이번 글은 아래의 책을 읽고 새롭게 알게된 점과 예상 면접 문제를 정리한 글이다.
한 권으로 읽는 컴퓨터 구조와 프로그래밍: 더 나은 소프트웨어 개발을 위한 하드웨어, 자료구조, 필수 알고리즘 등 프로그래머의 비밀 노트
2장 전자 회로의 조합 논리_컴퓨터는 어떤 논리로 비트를 다루는가
2-1. 디지털 컴퓨터의 사례
2-2. 간단한 전기 이론 가이드
2-3. 비트를 처리하기 위한 하드웨어
2-4. 논리 게이트
2-5. 게이트를 조합한 복잡한 회로
📌 숫자 대신 비트를 사용하는 게 합리적인 이유
조합 논리의 기본과 더 복잡한 기능을 비트와 논리를 사용해 만드는 방법
95쪽
하드웨어에서 크기가 중요한 이유
오늘날 컴퓨터 클록 속도clock speed는 4GHz이며, 이 말은 1초에 40억 가지 계산을 처리할 수 있다는 뜻이다. 40억 분의 1초 동안 전자가 이동할 수 있는 거리는 75밀리미터뿐이다.
123쪽
출력 유형
전원의 음극과 양극을 직접 연결하면 어떤 일이 벌어나는지는 https://www.youtube.com/watch?v=4fj5BLo27yw 등을 보면 알 수 있다
125쪽
그런데 저항이 Vcc에 연결되어 있으므로 출력은 자동으로 1이 된다. 이때 풀업 저항은 Vcc에서 와이어드 AND의 출력에 흐르는 전류를 제한하는 역할을 한다….
이게 도대체 무슨 말이지... 이해하기가 조금 어렵다.
10진 숫자는 직관적이지만 효율적이지 못한 것이 제일 큰 이유이고, 또 다른 이유는 숫자를 사용하면 전이 함수를 각기 다른 10가지 문턱값으로 구분할 수 있는 간단한 방법이 없기 때문이다.
(출처: 책 100쪽)
이것에는 논리 연산을 수행하는 회로가 미리 들어가 있다. 이것을 사용하면 하드웨어 설계자가 밑바닥부터 모든 회로를 설계할 필요 없이, IC를 선으로 연결해 복잡한 회로를 쉽게 만들 수 있었다.
논리 게이트logic gate, 게이트
(출처: 책 115쪽-116쪽)
이번 장에서 공부한 것의 비중이 작은 이유는 반절 이상의 내용을 이해하지 못했기 떄문이다. 역시나 논리적인 개념만을 이해하는 것과 그것이 실체 작동하는 하드웨어를 이해하는 것의 난이도는 차이가 많이 나는 것 같다. 비트에 대해서 주로 다룬 1장에서는 이해하기 크게 어렵지 않았지만 비트의 기능으로 넘어가니 갑자기 어려워졌다.
비트는 메모리 관련해서 프로그래밍 언어를 이해하는 데에 도움이 될 수 있어도 디코더, 디멀티플렉서, 실렉터와 같은 회로를 알면 무엇에 도움이 될 지는 아직 모르겠다. 같이 스터디하는 팀원 말로는 임베디드에 관심이 있다면 직접 회로를 조합하는 데에 필요할 수 있으니 알아두면 좋겠지만은 웹 개발은 잘 모르겠다고 했다.
그래도 지금은 아니지만 언젠간 임베디드도 찍먹해보고 싶은 마음인지라... 다 까먹고 넘어가기 보다는 틈틈이 다시 보고 이해해보려고 해야겠다.