개인용 컴퓨터 ( Personal Computer ) 가 등장했을 무렵의 얘기들이 나온다. 초창기에 운영체제는 어떠했으며, 수치연산 프로세서가 왜 필요했는지, 프로그래밍 언어에는 어떤 것들이 있었으며, 그래픽, 모뎀 등의 장치들이 어떻게 등장했는지에 대해 알려준다. 대부분은 현재 사용되지 않고 있는 것이지만, 컴퓨터 관련 서적들에는 아직 그 흔적이 남아 있는 경우가 있다. 그 단어들만 등장하고 배경설명이 없어 겉핥기식으로 책을 읽게 되는 경우가 있어 아쉬운데, 이 책이 그런 부분을 보충해 줄 수 있다고 보여진다. ^^;;


CODE(코드)하드웨어와소프트웨어에숨어있는언어
카테고리 컴퓨터/IT > 컴퓨터공학
지은이 찰스 펫졸드 (인사이트, 2010년)
상세보기




챕터 22. 운영체제

운영체제는 부팅작업 ( 초기화 작업 ), 파일 시스템 관리 등이 중요하고, 멀티태스킹이 가능하도록 발전되었다는 얘기가 나오는데, 메모리 관리에 대해서는 별다른 얘기가 없었다. 아마 앞장들에서 메모리에 대한 설명을 충분히 했기 때문으로 보이지만, 다른 책들을 보면 운영체제의 주요 목표 중 하나로 메모리의 성능관리(?)를 꼽는 경우가 종종 있다.



챕터 23. 고정소수점과 부동소수점

다양한 수 체계를 디지털화된 이진수로 표현하는 데 문제가 많기에 표현되는 수를 전문적으로 다루는 별도의 장치가 필요했던 때가 있었음을 알려준다. 아마 지금도 남아있을 것 같다.



챕터 24. 고수준 언어와 저수준 언어

전설처럼 들리는 코볼, 포트란, 파스칼 등이 나온다. 지금은 대개 어셈블리에 대한 기초지식을 쌓고, C 배우고 C++, C#, 자바 같은 객체지향언어로 넘어가는 것으로 알고 있다. ^^;;



챕터 25. 그래픽 혁명

챕터 제목을 넘어서 CD, 모뎀 등에 대해서도 나온다. PC 초창기에 볼 수 있었던 여러 주변 장치에 대한 옛지식들을 볼 수 있다. 그래픽 파일 포맷에 대해서도 약간..

WRITTEN BY
리컨
영화를 즐기는 취미를 기록한 블로그입니다.

,




챕터 19. 두 가지 고전적인 마이크로프로세서들

최초의 마이크로프로세서는 1971년에 탄생한 인텔 4004 였다고 한다. 그 후 1974년에 인텔의 8080 프로세서와 모토로라 ( 지금의 핸드폰 회사인 그 회사라고 한다. ) 6800 프로세서가 발표되어 주류를 이루었다고 한다. 큰 차이는 없지만, 일단 두 프로세서는 기계어 수준에서는 서로 호환되지 않는다고 한다.

두 프로세서들은 여러 바이트에 걸쳐 값을 저장하는 방식에서 차이가 있는데, 전설처럼 들려오는 리틀 엔디안 ( 인텔의 방법) 과 빅 엔디안 ( 모토로라의 방법 ) 으로 불리는 얘기다. 이게 알고 보니 조나단 스위프트의 걸리버 여행기에서 삶은 계란을 어떤 방식으로 깨야 하는지에 대한 문제로 촉발된 릴리퍼트 ( Lilliput ) 와 블레푸스크 ( Blefuscu ) 의 전쟁에서 유래됐다고 한다. 계란의 넓은 쪽을 big end, 뾰족한 쪽을 little end 라고 하는데, 알고 보면 서로 어떤 게 더 장점이어서 이렇게 채택했는지 이유가 없는 차이라고 한다. 문제는 이 덕분에 서로 다른 방법을 채택한 컴퓨터 시스템 간에 정보를 교환할 때 호환되지 않는 문제를 발생시켰다는 점이라고 한다. ㅡㅡ;;

모로토라 마이크로프로세서는 후에 애플의 맥킨토시로 이어진다고 한다.

그 밖에 이 장에서는 기초적인 어셈블리 언어, 스택, 분기, 서브루틴, Call ( 호출 ) 등에 대해 다루고 있다.

스택 구조의 최대 장점은 프로그램에 존재하는 수많은 영역에서 별다른 고려없이 스택을 사용하더라도 큰 문제가 발생하지 않는다는 점입니다.
- 436쪽 발췌.

이 장에서도 중요하고 재밌는 내용들이 제법 나오는데, 정리할 만한 수준이 안되니 나중에 필요할 때 검색어로 찾아보는 수 밖에 없다. ㅋㅋㅋㅋ

이러다 보면, 대부분 프로그램의 버그로 인한 것이기는 하지만, 스택이 너무 커지면서 명령어 코드나 프로그램 수행에 필요한 프로그램 영역까지 덮어쓰는 것도 가능합니다. 이러한 문제는 스택 오버플로 ( stack overflow ) 문제라 알려져 있습니다. 마찬가지로, POP 명령어를 너무 많이 사용해서 스택의 내용을 모두 사용하고도 그 다음 내용에 접근하려고 하는 경우를 스택 언더플로 ( stack underflow ) 라 합니다.
- 438쪽 발췌.




챕터 20. 아스키 코드와 문자의 변환.

아스키 코드, EBCDIC, 유니코드 등의 부호화된 문자코드들에 대한 설명이 나온다.


CODE(코드)하드웨어와소프트웨어에숨어있는언어
카테고리 컴퓨터/IT > 컴퓨터공학
지은이 찰스 펫졸드 (인사이트, 2010년)
상세보기




챕터 21. 버스에 올라탑시다.

우리가 일상적으로 타는 버스 말고, 메인보드 기판에 달린 버스에 관한 얘기다.

컴퓨터를 구성하는 모든 집적회로는 반드시 회로 기판 ( PCB : Printed Circuit Board ) 에 부착되어야 합니다. 작은 컴퓨터들의 경우 모든 IC 가 하나의 회로기판에 집적되는 일도 있지요. 하지만, 많은 경우에는 컴퓨터를 구성하는 다양한 요소들을 여러 개의 기판에 나누어 두는 것이 효과적일 것입니다. 이러한 기판 간의 통신에는 버스 ( bus ) 라는 것이 이용됩니다. 버스는 간단히 말하자면 디지털 신호들의 집합이며, 컴퓨터에 사용되는 모든 기판에서는 이런 버스 형태가 지원됩니다.
- 483쪽.

오랜만에 ISA ( Industry Standard Architecture. 버스 규격의 일종으로 PCI 이전에 사용되던 것. ) 와 DMA 라는 단어도 들어봤다. ^^;;

DMA ( 직접 메모리 접근, direct memory access ) 를 사용하지 않을 때보다 더 빠르게 데이터 이동을 수행할 수 있습니다. 보통의 경우에는 마이크로프로세서가 메모리에 대한 읽기와 쓰기를 제어하게 되지만, DMA 를 사용하는 경우에는 해당 장치가 마이크로프로세서의 도움 없이 버스에 접근하여 메모리에 대한 읽기와 쓰기를 직접 수행할 수 있기 때문이지요.
- 488쪽 발췌.

그밖에도 메인보드 ( 마더보드 혹은 시스템보드 ) 와 관련된 장치들 - 메모리 ( SRAM, DRAM, SIMM ( single inline memory modules ), DIMM ( dual inline memory modules ) ), 영상장치 ( 주사선 ( scan line ), 비월주사 ( interlaced 방식 ), ROM, 비디오 카드, 키보드, 저장장치 ( 디스크 드라이브 ) 등 - 에 관한 기초적인 내용들이 등장하는데, 한번 읽어둘 만 하다.

초기에는 비디오 카드와 그래픽 카드가 다른 의미로 사용되기도 한 듯한 설명이 나와 좀 웃겼다. 영상장치가 단순히 문자만 출력하는 경우에는 비디오 카드라는 단어를 사용했고, 문자 이외의 다른 것들도 출력이 가능하면 그래픽 카드라고 불리웠던 모양이다. 찰스 펫졸드는 은근히 꼼꼼했다. ㅋㅋㅋ





WRITTEN BY
리컨
영화를 즐기는 취미를 기록한 블로그입니다.

,





흔히 듣던 컴퓨터의 역사가 정리되어 있다. 천공카드, 콜로서스 컴퓨터, 에니악 ( ENIAC ), 에드박 ( EDVAC ), 최초의 상용 컴퓨터 유니박 UNIVAC 등등이 등장하고, 앨런 튜링, 폰 노이만 등의 인물이 소개된다.

최초의 프로그래머로 알려진 어거스타 에이다 바이런 ( Augusta Ada Byron, 1815-1852 ) 은 구멍이 있는 천공기 이전의 어떤 카드들을 통해 프로그래밍 작업을 했던 인물이라고 한다. 이때 표현이 " 대수적인 패턴 ( algebraical patterns ) 을 짜 넣었다고 이야기할 수 있습니다. " 라고 적혀있다. 이 분은 도대체 어떤 짓을 하신 것인지.. ㅋㅋㅋ

" 버그 " 라는 단어의 유래로 보여지는 설명이 등장하는데, 이때 사용하던 컴퓨터는 트랜지스터도 아니고, 진공관보다도 먼저 사용됐던 릴레이라는 장치 13,000 개를 사용하고 있었다. 나방을 어떻게 찾아냈을까 싶다. ㅎ
1947년에는 Harvard Mark-II 컴퓨터 내부에 있는 릴레이에서 나방이 끼어 있는 것이 발견된 유명한 일화가 있기도 했습니다. 1944년부터 에이켄의 팀에 있으며, 이후에 컴퓨터 프로그래밍 언어 분야에서 매우 유명해진 그레이스 머레이 호퍼 ( Grace Murray Hopper, 1906 - 1992 ) 는 컴퓨터 사용일지에 나방을 붙이고 ' 버그가 발견된 첫 번째 실제 사례 ' 라는 메모를 적어두었습니다.
- 381쪽 발췌.

잠깐 샛길로 가서 " 정보이론 " 이라는 것에 대해 기록해 둔다. 이런 단어인줄 몰랐다. ㅋㅋㅋ

이 논문의 발표는 말 그대로 논문이 소개되었다는 의미보다는 오늘날 정보이론 ( Information theory ) 으로 알려진 분야가 생겼음을 알리는 신호탄이었습니다. 정보이론은 잡음 ( 정보가 전달되는 것을 방해하는 모든 요소 ) 이 존재하는 상황에서 디지털 정보를 어떤 방식으로 전송할 수 있을지와 어떤 방식으로 정보를 잘 복원해낼 수 있을지에 대하여 관심을 가지는 학문입니다.
- 387쪽 발췌.

CODE(코드)하드웨어와소프트웨어에숨어있는언어
카테고리 컴퓨터/IT > 컴퓨터공학
지은이 찰스 펫졸드 (인사이트, 2010년)
상세보기



트랜지스터와 집적회로 ( Integrated circuit, IC ) 의 탄생은 컴퓨터 발전에 엄청난 기여를 하게 된다. 트랜지스터는 릴레이, 진공관에 비해 엄청난 장점들이 있지만, 근본적으로는 똑같이 증폭기 역할을 하는 것이다.

트랜지스터로 인하여 고체 전자 공학 ( solid-state electronics ) 이라는 학문이 열렸습니다. 이는 트랜지스터가 진공관을 필요로 하지 않게 만들었으며 반도체나 ( 최근에는 대부분 ) 실리콘과 같은 고체를 이용하기 때문이지요. 트랜지스터는 진공관에 비하여 훨씬 작았으며, 전력소모도 현저히 적었고, 열도 적게 발생하였으며 수명 역시 훨씬 길었습니다.
- 392쪽 발췌.

트랜지스터들은 이전처럼 논리게이트나 그밖의 구성요소들을 만들 때 사용됐는데, 자주 사용되는 구성들에 대해서는 미리 조합해 두어 편리하게 사용할 수 있도록 했다고 한다.

트랜지스터가 등장하고 반도체의 사용이 일반화되면서, 연결하는 선들이 없는 네모 상자 형태의 전자기기들을 상상해볼 수 있을 것 같습니다. 이 블록들은 절연체, 전도체, 정류와 증폭을 위한 물질들의 층으로 구성되어 있을 것이며, 이러한 전자 회로의 기능들은 다양한 층의 해당 영역을 잘라내어 직접 연결하는 방식이 사용될 것입니다.
-395쪽 발췌. 영국 물리학자인 제프리 더머의 연설 중에서.

이런 제안들의 결과로 오늘날 칩 ( chip ) 이라 불리는 집적회로 ( integrated circuit, IC ) 가 탄생했다고 한다.

집적회로는 미세한 구성요소들을 만들기 위하여 서로 다른 영역들에 정밀하게 불순물을 첨가하고 에칭 등의 처리를 통하여 얇은 실리콘 웨이퍼 층을 만들어 내는 복잡한 과정을 거치게 됩니다. 새로운 집적회로를 개발하는 것은 매우 돈이 많이 드는 일이지만, 집적회로는 대량 생산을 하는 경우 다른 전자 부품보다 훨씬 저렴해지는 특성을 가지고 있습니다.
실제 실리콘칩은 매우 얇고 섬세하기 때문에 반드시 패키지를 이용하여 보관해야 하며, 패키지는 칩을 보고하고 칩 안의 요소들을 다른 칩과 연결할 수 있는 방법으르 제공해 주는 역할을 합니다.
- 396쪽 발췌.

반도체는 이런 기술개발 외에도 인구조사나 우주개발경쟁 등의 사회적, 역사적 사건들에 사용되면서 그 가능성과 필요성을 인정받아 줄기차게 발전하게 됐다고 한다.

그뒤로 어디선가 들어본 TTL ( 트랜지스터-트랜지스터 로직, transistor-transistor logic ) 과 CMOS ( 씨모스, Complementary Metal-Oxide Semiconductor ) 이라는 단어가 등장하면서 뭔가 실제 사용되던 디지털회로 설계에 관한 얘기들이 등장한다. 여기서 씨모스가 우리가 메인보드에서 사용하는 씨모스라는 단어인지는 모르겠지만, 아마 같은 단어일 것 같다. ^^;;

집적회를 다룰 때 반드시 알고 있어야 하는 값으로는 입력의 변화가 출력에 반영될 때까지 걸리는 시간을 의미하는 지연시간 ( propagation time ) 을 들 수 있습니다.
- 401쪽 박췌.

이렇게 디지털회들이 아주 작고 성능이 좋은 집적회로로 개발되어 마이크로프로세서가 탄생하게 됐다고 한다. 이후로 마이크로프로세서들의 비교는 궁극적으로 속도의 차이를 나타내는데, 그 기준은 크게 3 가지라고 한다. 첫째가 데이터 패스의 넓이 즉, 몇 비트 프로세서인가 하는 것이고, 둘째로 클럭 주파수가 얼마인가 하는 것 끝으로 메모리의 크기가 어느 정도인가 하는 점이라고 한다. 요즘은 이때보다 기술이 훨씬 발전했고 다양한 요소들이 첨가되어 꼭 맞는 것은 아니지만, 기본적인 부분에서 아직 유효하다고 본다. ^^;;

1970년대의 얘기라 고리짝시절이라 치부할 수도 있겠지만, 이 책은 현재 기술들의 원형을 살펴보는 데 그 목적이 있다는 걸 잊지 말아야겠다. 원형을 살펴 깊이있게 이해한 후, 과거와 현재를 비교해 내일의 모습이 어떨지 예상해 보자는데, 개인적으로 그런 상상력이 있었으면 이 책을 읽고 있지는 않았을 것 같다. ㅋㅋㅋㅋ


WRITTEN BY
리컨
영화를 즐기는 취미를 기록한 블로그입니다.

,




지은이 찰스 펫졸드의 말을 빌리자면, 일단 이 책은 컴퓨터의 아주 기초적이고, 원형적인 모습을 찾아 떠나는 특이한 여행이다. 실제 컴퓨터와는 다르지만, 컴퓨터에 사용되는 많은 장치들의 초기 모습과 동작원리들을 하나씩 밝혀주고 있다. 가끔은 어떻게 실제와 다르고 어떤 문제의 소지가 있는지도 알려준다. 머리는 못 따라가도 좋은 얘기를 해주고 있다는 믿음은 어느 정도 생기는 책이라고 위안을 하고 싶다. ㅋㅋㅋㅋ

재밌게 읽기는 했는데, 후반부에 머리가 지끈거리며 한계를 느꼈다. 조만간 이런 게 있구나 싶은 수준에서 후딱 읽기만 할 때가 다가오고 있다. 회로가 정말 복잡하게 그려지기 시작한다. 게다가 타이밍(?)까지 상상해야 하는.. 흠.. ㅡㅡ;;


챕터 14. 피드백과 플립플롭

오실레이터 ( oscillator ) 는 컴퓨터에서 사용되는 메인보드에도 등장했던 단어다. 지금도 있는지는 모르겠지만, 클럭 발진기 ( clock generator ) 를 오실레이터라고도 불렀다. CPU 클럭에 작동주기를 주는 장치였는데, 그에 대한 기초적인 원리를 이 챕터에서 살펴볼 수 있다.

인버터의 출력은 입력의 반대가 되지만, 위의 그림에서는 입력은 곧 출력이 되므로 논리적으로 모순인 것 같기도 합니다. 하지만 인버터 역시 릴레이와 마찬가지로 어떤 상태에서 다른 상태로 변할 때 약간의 시간이 필요하다는 것을 기억하실 것입니다. 따라서 입력에 출력 값이 전달되어 같은 값이 되더라도, 오래지 않아 출력이 바뀌어 입력과 반대되는 값이 됩니다. 물론, 출력이 바뀜에 따라 입력도 금방 바뀌겠지요.
그렇다면 이 회로의 출력은 어떻게 될까요? 아마도 전압이 공급되는 상태와 공급되지 않는 상태를 빠르게 왔다 갔다 하게 될 것입니다. 다른 말로 하면 출력이 0과 1사이를 빠르게 왔다 갔다 한다는 말이지요.
이런 회로를 오실레이터 ( oscaillator, 진동자 ) 라 부릅니다. 이 장치는 우리가 지금까지 보아왔던 회로들과는 근본적인 차이가 있습니다. 이전의 회로들은 스위치 조작에 따라 회로의 상태가 변했습니다. 하지만, 오실레이터는 외부의 개입 없이 자체적으로 동작하기 때문에 사람의 조작이 필요하지 않습니다.
- 250쪽 발췌.

릴레이, 스위치, 접점을 그림으로 보여주며 아주 단순하게 설명해주는 데, 두 개의 스위치가 있는 회로에서 ( 두번째 스위치는 접점에 연결된 상태. ) 첫번째 스위치를 연결하면 전체 라인(?)이 연결되고 전자기력이 생긴다. 전자기력은 당기는 힘으로 두번째 스위치를 접점에서 떼어내고 전체 회로의 연결은 다시 끊긴다. 연결이 끊기는 순간, 전자기력은 사라지고, 두번째 스위치는 다시 접점으로 돌아가 ( flip back ) 전체 연결을 완성시킨다. 그러면 다시 전자기력이 발생한다. 이렇게 무한 반복이 발생하면서 클럭 혹은 사이클이 발생한다.

그림 그리기 어려워 말로 하는 것을 양해했으면 하고, 어차피 볼 사람은 나밖에 없을 듯 싶다. ㅋㅋㅋ

이 그림이 표현하고자 한 것은 시간이 지남에 따라 오실레이터의 출력이 규칙적으로 0과 1사이를 왔다 갔다 하며 일종의 진동을 발생시킨다는 것입니다. 이러한 진동의 횟수를 세면 시간에 관련된 정보를 알 수 있기 때문에 보통 오실레이터를 클럭 ( clock ) 이라고 부릅니다.
- 251쪽 발췌.

위의 원리에 따라 스위치가 붙었다 떨어졌다 하며, 전기가 흘렀다 끊어졌다 하는 주기를 아래와 같이 클럭으로 표시할 수 있다. 3.4 기가 헤르쯔가 얼마나 위대한 숫자인지 존경스러워진다. ㅋㅋㅋ

주기 ( period ) 의 역수를 구함으로써 오실레이터의 주파수를 구할 수 있습니다. ( 1 ÷ 주기 ) 위의 예에서와 같이 오실레이터의 주기가 0.05 라면 오실레이터의 주파수는 1 ÷ 0.05 가 되어 초당 20 사이클이 됩니다. 이 이야기는 오실레이터의 출력값이 변하고, 다시 변해서 원래의 값으로 돌아오는 것이 1초에 20번씩 반복된다는 말입니다. ( = 20 Hz, 20 헤르쯔 )
...
( 옮긴이 ) 앞에서 사이클도 주기라 했는데, 여기서 period 도 역시 주기라 이야기했습니다. 용어가 같은 이유는 개념상으로 아주 비슷하기 때문이지요. 사이클은 반복적으로 이벤트를 발생시키는 클럭에서 어떤 이벤트 ( event ) 가 발생한 시점부터 같은 이벤트가 발생할 때까지를 의미하고, 이를 시간으로 표현하면 period 가 되기 때문이지요. 여기서는 사이클과 주기라는 표현으로 구분하도록 하겠습니다.
- 252쪽 발췌. CODE.

출력이 입력이 되고, 입력이 출력이 되고.. 어쩌구 하는데, 장자가 나비의 꿈을 꾸는 건지 나비가 장자의 꿈을 꾸는 건지 알 수 없다는 말과 비슷하게 들린다. ^^;;

이상하게 회로를 둘러 들어오는 전선이 눈에 띌 것입니다. 왼쪽에 있는 NOR 게이트의 출력이 오른쪽 NOR 게이트의 입력으로 들어가고, 오른쪽 NOR 게이트의 출력이 다시 왼쪽 NOR 게이트의 입력으로 들어가지요. 이러한 형태를 피드백 ( feedback ) 이라 합니다. 오실레이터에서 보신 것처럼 회로의 출력이 입력으로 되돌아가는 형태를 가집니다.
- 254쪽 발췌.


플립플롭이란 말을 애초에 이렇게 설명 들었으면 훨씬 이해하기 쉬웠을 텐데 하는 아쉬움이 남는 대목이다. 플립플롭에서 중요했던 건 이제 회로들이 " 기억 " 이란 걸 할 수 있다는 것이었다. AND, OR 게이트 같은 것들 뒤에 느닷없이 플립플롭이 나왔다고 하면 그걸 누가 자연스레 이해할 수 있겠는가..

* 위쪽 스위치를 닫으면 전구가 켜지며, 그 이후에는 스위치가 열리더라도 그 상태 ( 전구가 켜진 상태 ) 를 유지하게 됩니다.
* 아래쪽 스위치를 닫으면 전구가 꺼지며, 그 이후에는 스위치가 열리더라도 그 상태 ( 전구가 꺼진 상태 ) 를 유지하게 됩니다.

이 회로에서 이상한 점은 똑같이 두 스위치가 열려 있더라도 어떤 경우에는 전구에 불이 들어오고, 어떤 경우에는 전구에 불이 들어오지 않는다는 점입니다. 위와 같은 경우를 ' 이 회로는 두 스위치가 모두 열려 있을 때 두 가지 안정된 상태 ( stable state ) 를 가지고 있다 ' 고 합니다. 또한, 이런 회로를 플립플롭 ( flip-flop ) 이라 합니다. 플립플롭은 바닷가에서 신는 샌들 ( 옮긴이. 우리나라에서는 쪼리라는 일본어(?)로도 불리는 발가락 샌들을 이야기하죠. ) 을 부르는 말로도 사용되며, 정치적 견해를 갑자기 바꾸는 것을 이야기할 때도 사용됩니다.
...
플립플롭 회로는 정보를 유지할 수 있다는 특징을 가지고 있습니다. 정보를 ' 기억할 수 있는 것 ' 이지요. 위와 같은 형태의 플립플롭은 직전에 어떤 스위치가 닫혔는지에 대한 정보를 기억하고 있는 것입니다.
- 256쪽 발췌.

뭔가 어려운 얘기들이 시작되며 서서히 정신상태가 페이드 아웃.. ㅋㅋㅋ

이러한 형태의 회로를 레벨 트리거 D-타입 플립플롭 ( level-triggered D-type flip-flops ) 이라 합니다. 여기서 D 는 데이터를 나타냅니다. 레벨 트리거 ( level-triggered ) 는 값 보존 입력이 특정 값 ( 위의 경우에는 1이었지요. ) 인 경우에 이 플립플롭이 데이타 입력 값을 저장한다는 의미입니다.
...
실제로 이 책에서 설명한 회로들과 유사환 회로들이 사용될 때 입력으로 ' 값 보존 ' 이라는 이름은 잘 사용되지 않습니다. 보통 클럭 ( Clock ) 이라는 이름이 사용되지요. 그렇다고 이 신호가 실제 시계 ( clock ) 는 아니고, 0 과 1 사이를 주기적으로 왔다 갔다 하는 시계와 비슷한 속성을 가지고 있는 신호입니다. 하지만 일단 여기서의 클럭은 데이터 입력이 언제 저장되어야 하는지를 알려주는 신호라고만 생각하셔도 됩니다.
- 264쪽 발췌.

래치라는 말을 어디선가 봤는데, 기억이 나질 않는다. 일단 기록은 해둔다.

(옮긴이) 래치 ( latch ) 라는 단어는 문고리를 걸어 잠근다는 의미인데, 앞의 회로에서 클럭과 같은 신호가 입력을 걸어 잠그는 역할을 해주는 걸 생각하면 아주 적절한 용어겠지요. 참고로 논리 회로에서 대체로 레벨 트리거 속성을 가진 경우 래치라는 용어를, 뒤에서 설명될 엣지 트리거 ( edge-triggered ) 속성을 가진 경우에는 플립플롭이란 용어를 사용하는 것이 일반적입니다.
- 265쪽 발췌.


찰스 펫졸드가 자신의 역작이라고 했고, 정말 이해하기 쉽도록 썼다고 하는데, 나는 열외인 모양이다. 벌써 막힌다. ㅋㅋㅋ 그래도 오실레이터 알아낸 게 소득이고, 클럭이 이런 식으로 발생하는구나 정도는 알겠다. 플립플롭 이후의 회로들은 각 입력 상태, 출력 상태를 몇 번 따라가면서 확인했더니 눈이 팽팽 돈다. ㅡㅡ;;

WRITTEN BY
리컨
영화를 즐기는 취미를 기록한 블로그입니다.

,




컴퓨터 구조나 뭐 이런 비슷한 얘기하면 꼭 나오는 논리게이트들에 대한 설명과 논리게이트들을 통해 어떻게 연산을 수행하는지 정말 눈높이를 맞춰주며 설명하고 있다. ^^;;


챕터 11. 빌 게이츠? 논리 게이트!

AND, OR, NOR, NAND, 인버터 등의 논리 게이트를 릴레이와 스위치, 전구 등의 그림을 알기 쉽게 설명해 준다. 원래 논리 게이트는 두 개의 입력으로 출력값을 결정하는 회로라 인버터의 경우에는 논리 게이트라고 할 수 없단다. 그냥 입력값과 출력값이 반대로 바뀌는 회로인데, 바뀌는 사이에 아주 짧지만 일정 시간이 소요된다는 점을 알고 있어야 한다. 이게 나중에 CPU 에서 사용되는 단어인 " 클럭 " 과 연관이 있다.


챕터 12. 이진 덧셈기

반가산기 ( Half Adder ) 와 전가산기 ( Full Adder ) 의 차이에 대해 알게 됐다. 반가산기는 아랫자리에서 덧셈을 통해 올라오는 자리올림을 처리할 수 없단다. 둘 다 합출력 ( Sum ) 과 자리올림출력 ( Carry On ) 이 있다.

이진 덧셈을 논리게이트를 통해 수행하는 방식을 설명해 원형을 보여주기는 하지만, 실제 덧셈기 ( 혹은 컴퓨터에서의 수행 ) 과는 차이가 있다고 한다. 우선 덧셈 속도를 빠르게 하기 위해 자리올림을 예상 ( look-ahead carry ) 하는 기능을 수행하는 추가회로가 있고, 다음으로 여기서 사용하던 릴레이가 발전해 진공관이 되고, 트랜지스터까지 왔단다. 이게 흔하게 들었던 눈에 보이지 않을 만큼 작게 집약되어 있다는 바로 그 트랜지스터들이다.


챕터 13. 그렇다면 뺄셈은 어떨까요?

보수를 통해 뺄셈을 덧셈방식으로 처리하는 것과 부호표현에 대해 설명하고 있다.

CODE(코드)하드웨어와소프트웨어에숨어있는언어
카테고리 컴퓨터/IT > 컴퓨터공학
지은이 찰스 펫졸드 (인사이트, 2010년)
상세보기




전체적인 느낌은 학교 다닐 때 이런 수준으로 설명했으면 좀 더 수업에 집중할 수 있었을 것이다라는 원망이 든다. ㅋㅋㅋ



WRITTEN BY
리컨
영화를 즐기는 취미를 기록한 블로그입니다.

,