까먹고 있었네.





입력과 출력에 대해 168 페이지 입력과 출력‘ 절에서 프로세서 코어로 들어오고 나가는 데이터를 언급하면서 간략히 설명했다. 이런 입출력은 그리 어렵지 않다. 필요한 것은 출력을 위한래치 (138 페이지 ‘래치‘ 절을 참고하라)와 입력을 위한 트라이스테이트 버퍼(그림 2-38 참조)뿐이다.
I/O 장치의 모든 편이 래치나 버퍼에 연결되고 컴퓨터 CPU가 이 모든 연결을 직접 조작하던때도 있었다. - P221

6장에서는 프로그래밍 관점에서 여전히 흥미로운 I/O 장치와 상호작용하는 기술을 다룬다. - P221

LED와 저항을 직렬로 연결했다는 점에 유의하라. 저항을 연결한 이유는 LED에 흐르는 전류를제한해서 PB와 LED가 타버리는 일이 없도록 방지하기 위함이다. - P222

옴의 법칙을 보면 저항은 전압을 전류로 나눈 값이므로, (42 - 0.7)/0.01 = 3502 이 필요한 저항값이다. 그림을 보면 PB, 이 전압을 (논리) 01로 전환할 수 있음을 알 수 있다. 0으로 설정되어 있기 때문에 PB에는 아무 전류도 흐르지 않는다. 전기는 PB가 1일 때 LED를 통해 흐르고, LED를 빛나게 한다. - P222

DDRB는 포트 B에 대한 데이터 방향 레지스터다. 이 레지스터의 어느 비트에 1을 넣으면 그비트 번호에 해당하는 포트 B 비트가 출력에 쓰이게 된다. 0을 넣으면 입력이다. PORTB는 포트의 출력 부분이다. PORTB의 어느 비트에 0이나 1을 넣으면 (해당 비트가 출력 비트로 DDRB에 지정된 경우) 편의 출력 전압이 0이나 1로 바뀐다. PINB를 읽으면 연관된 핀의 상태를 읽을수 있다. 따라서 6번과 0번 핀을 하이로 끌어올리고 나머지를 로우로 끌어내리면 PINB의 값은01000001, 즉 0x41 이 된다. - P223

다양한 장치에 어떤 종류든 버튼이나 스위치가 들어간다. 버튼이나 스위치가 설계된 방식으로인해 컴퓨터가 이들의 값을 읽기는 쉽지 않다. 간단한 푸시 버튼push button은 두 접점과 버튼이눌리면 두 접점을 연결해주는 금속 조각으로 이뤄져 있다. 그럼 6-4의 회로를 살펴보라. - P224

디바운스하는 간단한 방법은 그림 6-6처럼 인터럽트 핸들러에 타이머를 설정하고 그 시간이 지나면 버튼 상태를 감지하는 것이다. 이런 접근 방식을 두 가지 방법으로 실현할 수 있다.  - P225

또한 대부분의 장치에는 버튼이 하나 이상 있지만 프로세서에인터럽트 핀이 그만큼 많이 있을 것 같지는 않다. 인터럽트를 공유하는 회로를 만들 수도 있지만 소프트웨어로 구현하는 편이 더 싸게 먹힌다. 대부분의 시스템에는 주기적인 인터럽트를 만들어내는 일종의 타이머가 있다. - P225

이 디스플레이에 있는 8개의 LED를 처리하려면 16가지 전기적 접점이 필요하다. 하지만 보통은 16개의 핀을 사용하지 않고, 각 LED마다 핀을 1개씩 연결하고, 핀 하나에는 모든 LED를 함께 연결한다. - P227

이런 디스플레이를 제어하기 위한 소프트웨어는 아주 간단하다. 필요한 것은 숫자(또는 문자와그에 따라 세그먼트의 어느 LED를 켤지 연관시켜주는 표뿐이다. 여기에 약간 복잡한 부분이 남아 있다고 해도 놀라지 말아야 한다. 보통 디스플레이를 하나만 사용하는 경우는 드물다. - P227

이 디스플레이가 작동하게 하기 위해 사람의 시각의 잔상효과persistence of vision를 활용한다. 사람들이 디스플레이가 켜져 있는 것으로 인식하게 하기 위해 디스플레이를 계속 켜둘 필요는 없다.
우리 눈과 두뇌는 1/24초보다 짧은 간격으로 깜빡거리는 경우, 빛이 켜져 있는 것으로 인식한다. 이는 영화나 비디오 같은 움직이는 영상이 작동하는 원리와 마찬가지다. - P228

알람 시계에는 디스플레이의 밝기를 조절하는 장치가 포함될 수도 있다. 어떻게 밝기를 조절할수 있을까? 그림 6-11 처럼 디스플레이의 듀티 사이클duty cycle을 조절함으로써 밝기를 조절할 수있다. - P230

그레이의 2가지 그림자센서를 읽어서 모터, 바퀴, 놉 같은 회전축의 위치를 알아내야 하는 경우가 종종 있다. 회전축에스위치를 넣거나 광센서가 읽을 수 있는 검은색과 흰색 점을 사용해 위치를 알아낼 수 있다. 어떤 접근 방법을 택하든 축의 위치를 2진수로 인코딩해야 한다. - P230

 벨 전화 연구소의 미국 물리학자 프랭크 그레이Frank Gray (1887~1969)는 이 문제를 살펴보다가 각도가 달라질 때 비트가하나씩만 달라지는 다른 인코딩 방법을 발명했다. - P231

 각 비트에는 똑같은 시간이 할당된다. 동기화 오류가 발생할 때 송신자가 해야 할 일은 정해진 문자 시간character time 동안 조용히 있으면서 수신자가 동기화를 다시 할 때까지 기다리는 것이다. 이때 시간을 나눈 슬롯을 만들고 슬롯마다 각기 다른비트를 할당해서 데이터를 한 선에 멀티플렉싱한다. 이런 기법을 시간 분할 멀티플렉싱time divisionmultiplexing이라고 하며, 시프트 레지스터 대신 실렉터 (132페이지의 ‘실렉터‘ 절을 참고하라) 를 통해 구현할 수 있다. - P236

어느 한 순간에는메시지가 생긴다. 그래서 무선 통신 기사들은 메시지를 송신하고 나면 ‘오버‘라는 단어를 붙인다. 무전기를 사용해본 독자는 반이중 통신에 대해 이미 잘 알고 있다고 볼 수 있다. 충돌collision은 동시에 둘 이상의 송신자가 메시지를 보내려고 시도해서 데이터가 혼신되는 경우를 뜻한다. - P236

이제 RS-232 는 거의 다 USB로 바뀌었지만, 잡음 내성을 높이기위해 차동 신호 방식을 사용하는 (2장의 그림 2-32 참조) RS-485라는 변종이 산업 환경에서 쓰이고 있다. 병렬 IDE 인터페이스는 SATA라는 직렬 버전으로 변경됐다. 최근의 전자 장치들은 충분히 빠르기 때문에 과거 병렬로 처리해야만 했던 일을 충분히 직렬로 처리할 수 있다. - P237

하지만 과거 전신이 더 나은 기술로 대치된 시점에는 남아 있는 장거리 통신 기술이 전화와 전파(라디오)뿐이었기 때문에 이 문제가 아주 큰 문제였다. 이런 마크-스페이스 신호 문제는 라디오를 가능하게 한 트릭을 똑같이 적용해 해결할 수 있다. - P237

파도를 타듯 파동에 올라타 볼 때다. 먼저 올라탈 파동을 찾아야 한다. 이런 파동을 반송파carrier(캐리어)라고 한다. 우리는 전달하려는 신호를 바탕으로 반송파를 마크-스페이스 파형Waveform처럼 변화시키는 변조 modulation를 하고 싶다. - P238

USBUniversal Serial Bus (범용 직렬 버스)는 그렇게 흥미롭지는 않지만 아주 흔히 쓰이기 때문에 언급해둘 만한 가치가 있다. USB는 좀 더 사용하기 어렵고 호환성이 떨어지는 커넥터를 사용하며,
데이터 전송보다는 어쩌다 보니 요즘에는 장치 충전에 더 중요한 역할을 한다. - P239

USB는 음향과 비디오를 등시성 전송isochronous transfer 을 통해 처리할 수 있다. 종단점은 데이터전송을 보장하기 위해 자신이 원하는 대역폭bandwidth (데이터 전송 비율)을 예약해달라고 요청할수 있다. 충분한 대역폭이 없는 경우 컨트롤러는 이런 요청을 거부할 수 있다. - P239

네트워크는 일반적으로 두 가지로 구분한다. 근거리 네트워크LAN, local area network는 집이나 사무실같이 좁은 지리적 영역을 묶는다. 광역 네트워크WAN, wide area network는 더 넓은 지리적 영역을 묶는다. 좁다‘와 ‘넓다‘라는 용어의 명확한 정의가 없으므로 이 두 용어의 경계는 약간 모호하다. - P240

벨 연구소에서 개발된 UUCPUNIX-to-UNIX COPY라는 일련의 컴퓨터 프로그램이 1979년 외부 세계로 배포됐다. UUCP를 사용하면 컴퓨터가 다른 컴퓨터에게 데이터를 전송하거나 원격에서 프로그램을 실행할 수 있었다. UUCP는 최초 전자우편 시스템과 유즈넷USENET 같은 뉴스 시스템의 근간이 됐다. 이런 시스템은 흥미로운 해킹의 결과였다. 데이터를 미국의 한끝에서 다른 끝으로 보내는 경우, 원하는 목적지에 도착할 때까지 한 기계에서 다른 기계로 넘기면서 hop‘ 메시지를 전달할 수 있다. 이렇게 하는 이유는 장거리 전화 통화 비용을 피하기 위함이다. - P241

초기 컴퓨터 네트워크는 냉전 시대의 방어 시스템인 반자동 지상 환경SAGE, Semi-Automatic GroundEnvironment의 일부분이었다. SAGE는 전화 네트워크와 모뎀을 사용해 각 지점 사이의 통신을 수행했다. - P240

보통 어떤 장치가 이야기하면 같은 선에 연결된) 그 밖의 장치들은 이것을 들을 수 있다. 하지만 프레임의 MAC 주소가 자신의 주소와 일치하지 않는 장치는 데이터를 무시한다. 모든 장치가 선에서 어떤 일이 벌어지고 있는지 들을 수 있기 때문에 다른 장치가 이야기하는 것을 들은장치는 아무 말도 하지 않는다. - P242

인터넷상의 각 컴퓨터(또는 장치)에는 IP 주소IP address 라는 유일한 주소가 할당되어 있다. MAC주소와 달리 IP 주소는 하드웨어에 묶여 있지 않아서 변경될 수도 있다. IP 주소 시스템은 계층적인 시스템으로, 주소 중 일부분(주소 블록)을 누군가에게 할당하면, 그 누군가는 다시 자신에게 할당된 주소 중 일부 블록을 다른 누군가에게 할당하는 식으로 이뤄진다. 이런 할당 과정은누군가 여러분의 장치에 구체적인 주소를 할당해줄 때까지 반복된다. - P243

월드 와이드 웹

TCP/IP 위에 만들어진 여러 프로토콜이 있다. 예를 들어, SMTPSimple Mail Transfer Protocal (단순 우편 전달 프로토콜)는 전자우편 시스템이 작동하는 기반 프로토콜이다. 이런 여러 프로토콜 중에서 가장 많이 사용하는 프로토콜은 HTTP다. HTTP는 하이퍼텍스트 전송 프로토콜HyperText TransferProtocol의 약자로, 보안이 강화되어 안전하다는 뜻의 형용사 ‘secure‘의 첫 글자인 ‘S‘가 추가된HTTPS와 더불어 웹 페이지 전송을 책임진다. - P244

웹 페이지는 보통 HTML HyperText Markup Language (하이퍼텍스트 마크업 언어로서 존재한다. HTML은 웹에서 가장 많이 쓰이는 콘텐츠 기술) 언어다. 시간이 지남에 따라 HTML에 여러 가지 다양한 기능이 들어가고, 상당히 복잡해졌다. 9장에서 HTML에 대해 더 자세히 다룬다. - P244

샘플링은 새롭지 않다. 무성 영화 시절에도 영화 화면은 1초당 16프레임을 샘플링해 만들어졌다. 샘플링을 다루는 이산수학discrete mathematics 이라는 분야가 있을 정도다. - P245

 해상도resolution 라는 용어는DAC가 만들어내는 단계 수를 느슨히 표현할 때 쓰인다. ‘느슨히‘라고 말한 이유는 DAC가 10비트 해상도라고 하면, 실제로는 1/2¹⁰ 가지씩 수준을 변경할 수 있다는 뜻이기 때문이다. - P247


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo