이 글은 「한 권의 컴퓨터 구조와 프로그래밍」 -제2장 전자회로의 조합논리-를 기반으로 작성되었습니다.
제 생각을 더해 만든 2차 창작물입니다.
내용상으로는 동일하지 않습니다.
나의 부족한 글보다 이 교재에 풍부한 학습 내용이 있다.
교재를 통해 즐겁게 공부하시길 바랍니다 🙂
십진법을 만든 인류 최초의 도구: 손가락
지난주에 우리는 컴퓨터가 비트 또는 이진수를 사용하여 작업을 수행하고 가상 세계를 만드는 방법을 살펴보았습니다. 컴퓨터는 왜 이진수를 사용합니까? 이번 주 학습을 통해 우리는 컴퓨터가 많은 시스템에서 이진수를 선택한 이유를 배웠습니다.
컴퓨터를 보기 전에 왜 우리는 10진법을 자주 사용할까요? 우리 호모 사피엔스는 아마도 문명이 시작되기 전에 세었을 것입니다. 도구가 없었던 원시인들은 손가락을 사용하여 숫자를 조금 더 쉽게 세었을 것입니다. 그것이 우리가 10진수를 사용하는 이유입니다. 왜냐하면 그것은 10개의 손가락을 가지고 있기 때문입니다. 인간의 손가락이 총 16개라면 16진법이 진화했을 것입니다.
(물론 역사적으로 십진법을 사용하지 않은 경우도 있습니다. 제가 아는 대표적인 곳은 과거에 영국인들이 12진법을 사용했던 곳입니다. 영어로 10(ten)뒤에 11을 표현할 때 “ten-one”이 아닌 “eleven”으로 표현한다. 12 “twelve”라는 독립된 단어도 있다. 그러나 그럼에도 불구하고 십진법이 인류 역사에 더 가깝고 더 보편적이라는 사실을 부인할 수 없습니다.)
인간이 10진수를 사용하는 이유는 인간의 첫 번째 도구인 손가락이 10개이기 때문입니다. 그렇다면 컴퓨터는 계산을 수행하기 위해 어떤 도구를 사용합니까? 컴퓨터는 “현재”를 사용하여 계산을 수행합니다. 컴퓨터의 도구는 전기입니다.
컴퓨터의 컴퓨팅 도구는 전기입니다!
컴퓨터는 전기를 사용하여 계산합니다. 물론 컴퓨터를 단순히 ‘계산기’라고 생각하면 전기를 사용하지 않고도 기어와 같은 기계 장치에 대한 계산을 할 수 있습니다. 그러나 좀 더 복잡하고 광범위한 계산을 수행할 수 있는 진정한 의미의 컴퓨터는 전기를 도구로 사용합니다.
그렇다면 우리는 어떻게 전기를 믿을 수 있습니까? 컴퓨터는 전기를 전달하고 차단하여 0과 1을 생성합니다. 전류가 흐르지 않을 때 0. 반면에 전류가 흐르면 1이 됩니다. 이것은 컴퓨터가 부울 대수 연산을 수행하는 방법이기도 합니다.

위의 그림은 부울 대수인 AND 및 OR 연산을 수행하는 컴퓨터를 보여줍니다. 사실 실수가 아니라 전기의 흐름을 물의 흐름에 비유한 것이다. 우리는 전기를 볼 수 없기 때문에 물의 흐름을 제어하는 스위치 형태로 계산을 하는 컴퓨터를 상상할 수 있습니다.
AND 연산은 직렬 형식으로 실행됩니다. 전류가 흐르려면 두 스위치가 모두 열려 있어야 합니다. 반대로 OR 링크는 병렬 형식입니다. 스위치 중 하나가 열리면 전류가 흐를 수 있습니다. 이것은 컴퓨터가 전기의 흐름을 제어하여 계산을 수행하는 방법입니다.
전기를 도구로 사용하는 컴퓨터의 경우 바이너리는 숫자를 생성하고 작업을 수행하는 가장 좋은 방법입니다. 전류가 흐르면 ‘1’, 흐르지 않으면 ‘0’이라는 이분법적이고 직관적인 방법을 사용할 수 있기 때문이다.
바이너리를 사용하면 어떤 이점이 있습니까?
10진수 대신 2진수를 사용하면 많은 이점이 있습니다. 이 교과서에서는 다양한 예가 매우 어렵고 복잡한 방식으로 설명됩니다. 휴.. 어려운 점은 뒤로 하고 컴퓨터가 이진수를 사용할 때 가질 수 있는 가장 큰 이점은 “효율성”이라고 생각합니다.
생각해 봅시다. 인간의 손가락도 바이너리를 사용할 수 있습니다. 손가락을 접을 때는 0, 손가락을 펼 때는 1로 생각하세요. 이렇게 하면 이진 시스템도 사용할 수 있습니다. 이 계산을 통해 우리는 한 손으로 최대 16개의 숫자를 셀 수 있습니다. 5개의 손가락으로 2**4를 셀 수 있기 때문입니다. 열 손가락을 모두 사용해도 512까지 셀 수 있다. 그것은 경이 롭다.
그러나 우리는 여전히 10진수를 사용합니다. 우리는 산술이 느리고 “직관”하는 능력이 있기 때문에 십진법이 더 편리합니다. 그러나 컴퓨터는 직관을 사용하지 않습니다. 대신 컴퓨터는 인간보다 훨씬 빠르게 간단한 작업을 완료할 수 있습니다. 이 때문에 컴퓨터는 제한된 자원으로 더 많은 수를 수용할 수 있는 이진법을 선호합니다.
컴퓨터의 역사는 전기 흐름의 역사입니다.
컴퓨터는 전기의 흐름으로 작동합니다. 이 때문에 전기의 흐름을 허용하거나 전기의 흐름을 차단할 수 있는 장치가 필요합니다. 컴퓨터를 개발하는 것은 이 장치를 개발하는 것과 같습니다.
초기에는 “릴레이”라는 장치로 전기의 흐름을 제어했습니다.

위는 초창기 사진입니다. 언뜻 보면 엄청나게 비효율적으로 보인다. 이 릴레이로 컴퓨터를 만들면 부피가 크고 너무 시끄러울 것 같아요. 사실 중계로 전화 교환을 하던 시절에는 전화 교환이 굉장히 시끄러운 곳이었다고 합니다. 릴레이 방식은 느리고 전력을 많이 소모했다. 스위치 접점에 먼지나 벌레가 묻어도 제대로 작동하지 않습니다. (당시에는 릴레이에 버그가 걸려서 고장이 자주 발생했고, 그 이후로 “결함”은 컴퓨터 고장을 의미합니다.)

이 릴레이 이후에 진공관은 전기의 흐름을 제어하는 것 같았습니다. 릴레이는 열을 통해 전자를 이동시켜 전기의 흐름을 제어합니다. 기계적인 움직임이 없기 때문에 릴레이보다 훨씬 빠르게 계산을 수행합니다. 그러나 열을 발생시키기 때문에 매우 뜨겁고 깨지기 쉬운 단점이 있습니다.

진공관 다음으로 트랜지스터가 드디어 등장했습니다! 눈부신 컴퓨팅 파워와 현대 컴퓨터의 발전은 트랜지스터의 출현을 동반합니다. 트랜지스터는 도체와 절연체 사이에 끼워진 “반도체”라는 특수 소재로 만들어집니다. 트랜지스터 덕분에 더 작은 구성 요소로 대규모 계산을 수행할 수 있게 되었습니다. 이러한 트랜지스터 세트는 “집적 회로”입니다. 집적회로는 트랜지스터를 이용해 논리회로를 미리 조립한 제품이다. 집적 회로를 사용하는 것은 컴퓨터를 구축하면 트랜지스터를 사용하여 회로를 개별적으로 설계할 필요가 없기 때문에 매우 효율적입니다.
