한 권으로 읽는 컴퓨터 구조와 프로그래밍 - 2장

Jajuna_99·2022년 8월 27일
0

2장 '전자 회로의 조합 논리', 컴퓨터는 어떤 논리로 비트를 다루는가

비트에 대해 동작하는 장치를 포함해 모든 물리적인 장치를 하드웨어(HW, Hardware)라고 하고, 조합 논리(Combinatorial logic)를 구현하는 하드웨어를 알아보는 장이다.

이 조합 논리가 아주 뽀인트이니 집중!

디지털 컴퓨터의 사례

컴퓨터의 정말 간략한 역사 설명 (p.92)
빌드업을 참 잘 잘하시는 분이다.

  • B.C. 100 안티키테라, Antikythera - 고대 그리스 제도에서 발견된 천문학 계산 수행 계산기
  • WWII 화기 제어 컴퓨터, Fire Control Computer - 수많은 톱니바귀를 사용해 삼각함수와 미적분을 계산한 컴퓨터
  • 계산자, Slide Rule - 존 네이피터, John Napier가 발견한 로그를 응용한 도구
  • 탤리 막대, Tally stcik - 기원전 18,000년 전부터 사용한 계산 도구
  • 차분 기관, Difference engine - 찰스 배비지, Charles Babbage가 개발한 복작합 10진 기계식 계산기

아날로그와 디지털의 차이 (p.94)
위에 여러 종류의 컴퓨터들을 설명한 이유는 '아날로그'와 '디지털'의 차이를 구별하기 위해서이다.

'아날로그'는 연속적, continuous이고, '디지털'은 이산적, discrete 이다. 작가님이 예시로 든 경우는, 아날로그는 계산자, 디지털은 손가락이다. (손가락은 라틴어로 'digitus'이다)

아날로그는 이론적으로 모든 실수의 경우를 표현할 수 있고, 디지털은 하나하나 구분된 유한한 경우의 수만 표현 가능하다.

이제 위에 컴퓨터 예시들을 아날로그와 디지털로 구별할 수 있겠는가?

하드웨어에서 크기가 중요한 이유 (p.95)

작가님이 예시로 든 '아이들을 학교로 데려다 주기'는 굉장히 인상적이다. 한번씩 보시길.

간략히 설명하자면, 컴퓨터에서는 전자를 움직여서 계산을 한다. 그렇다면 전자를 빨리 원하는 곳에 도달시키면 성능이 오른다는 뜻이 될테다. 그리고 전자는 빛의 속도로 움직인다. 다시 말해 전자의 속도 증가는 불가능하기 때문에, 전자가 도달해야되는 거리를 줄이는 것이다.

이게 하드웨어, 특히 CPU,를 작게 만들려고 엔지니어가 노력하는 이유겠다.

디지털을 사용하면 더 안정적인 장치를 만들 수 있다. (p.96)

물체를 작게 만들면 성능이 좋아지는 이유에 대해서는 이해를 했다. 근데 왜 디지털을 써야하는가? 아날로그는 왜 안 되는가? 에 대한 궁금증이 아직 풀리지 않았다.

이것은 아날로그와 디지털의 특성을 살펴보면 알 수 있다. 하드웨어를 최대한 작게 만들게 되면, 여러 잡음들에 취약하게 될 것이다. 공기의 움직임이나, 원자의 움직임으로도 결과값에 영향이 간다면 어떻게 그 계산기를 믿을 것인가?

그래서 연속적인 아날로그보다 이산적인 디지털이 합리적인 선택인 것이다.

디지털은 판정 기준, decision criteria를 사용해 비연속적인 결과값을 사용해 어느 정도 잡음내성, noise immunity이 생기는 것이다.

아날로그 세계에서 디지털 만들기 (p.98)

간략하게 자연적으로 발생하는 전이 함수, transfer function를 사용해서 판정 기준을 문턱값, threshold 를 만들면 디지털, 문턱값 없이 입력값 그대로 출력하면 아날로그 출력이 된다.

책에 설명히 매우 친절하게 돼 있다.

10진 숫자 대신 비트를 사용하는 이유 (p.100)

요는 10진수를 사용하면 10개의 문턱값을 가지는 하드웨어를 만들어야 되는데 이는 굉장히 복잡하고 비싼 작업이 되기 때문에 2진수인 비트를 사용하는 것이 합리적이다.

간단한 전기 이론 가이드

  • 전기를 물이 수도관에서 흐르는 것에 빗대 직렬 연결(series connection), 병렬 연결(parallel connection)를 설명하는 것으로 시작으로, 전기가 흐르는 물체인 도체(conductor), 부도체(insulator), 전압(volatage) - 볼트(volt), 전류(current) - 암페어(ampere), 저항(resistance) - 옴(ohm), 옴의 법칙(Ohm's law)까지 그리고 전파 지연(propagation delay)도 설명한다. (p.101)

  • 스위치(switch), 회로(circuit), 스키매틱 기호(schematic diagrams), 나이프 스위치(knife switch)로 만들 수 있는 단극단투(single-pole, single-throw), 단극쌍투(single-pole, double-throw), 상극쌍투(double-pole, double-throw) 스위치들의 실제 사진과 스키매틱 기호들을 보여준다. (p.105)

비트를 처리하기 위한 하드웨어

  • 위에 전기이론을 이용한 하드웨어들을 소개하고 설명해준다. (p.109)

  • 전자석(electromagnet)을 이용한 전자기(electromagnetism)을 설명한다.

  • 전자석을 사용하는 스위치 릴레이(relay, 혹은 계전기)에 대한 설명을 시작으로 여러 릴레이 종류들을 보여준다. (평상시 닫힌 릴레이, 스테퍼 릴레이 등)

  • 그 후 진공관(vacuum tube), 트랜지스터(transistor) - 반도체(semi-conductor), 직접회로의 대한 자세한 설명이 나온다.

논리 게이트

  • 직접 회로를 사용해 만들 수 있는 논리 게이트들을 설명한다. 정확하게는 논리 연산을 수행하는 회로가 미리 들어가 있는 칩들의 회로를 논리 게이트(logic gate) 라고 한다.(p.115)

게이트를 조합한 복잡한 회로

  • 게이트의 종류인 소규모 집적 회로(SSI, Small-scale integration), 중규모 집적 회로(MSI, Medium-scale integration), 대규모 집적 회로(LSI, Large-scale integration), 초대규모 집적 회로(VLSI, Very Large-scale integration)를 소개한다. (p.126)

  • 위에 게이트들을 조합해서 만들수 있는 고수준의 부품들 : 가산기(adder), 반가산기(half-adder), 전가산기(full-adder), 리플 자리올림 가산기(ripple-carry adder), 올림 예측 가산기(carry look-ahead adder), 디코더(decoder), 디멀티플렉서(demultiflexer), 실렉터(selector) 등의 설명과 쓰임새 등을 배운다.

결론

2장에서 주고자하는 '큰 그림'은 약간의 설명을 넣어 정리했고, 기술적인 용어나 내용은 간략하게, 언제든 볼 수 있게 정리했다.

아직 내용이 버겁진 않다. 사실 여타 교과서와 비교하면 매우 쉽다.

profile
Learning bunch, mostly computer and language

0개의 댓글