[컴퓨터의 작동원리 - CODE] 7. 기호와 실제
이번 장에서는 학습을 잠시 쉬어 가죠
대신 지금까지 배운 것에 대해 생각을 좀 해 봅시다
전가산기를 하나의 기호로 표시하면서 내부적인 구조는 모두 숨기고
장치의 기능에 집중할 수 있게 되었습니다
하지만 우리는 내부 구조가 얼마나 복잡한지 꼭 기억해야 합니다
그러한 통찰이 기술에 대한 깊은 이해를 이끌어 냅니다
AND 게이트 -> 릴레이 2개
OR 게이트 -> 릴레이 2개
NAND 게이트 -> 릴레이 3개 (인버터도 릴레이로 취급)
XOR 게이트 -> NAND + OR + AND -> 릴레이 7개
반가산기 -> XOR + AND -> 릴레이 9개
전가산기 -> 반가산기 2개 + OR -> 릴레이 20개
단순히 두 개의 이진수를 더하기 위해 무려 20개의 릴레이를 복잡하게 연결해야 합니다
지금 우리가 누리고 있는 모든 기술들은 이보다 훨씬 거대한 복잡성을 내포합니다
우리의 학습을 주저하게 만드는 이 복잡성을 알지 못해도 카톡을 보내고 넷플릭스를 시청할 수 있는 것은
단연코 현대사회의 축복입니다
전가산기가 얼마나 대단한 장치이고 우리가 지금 얼마나 복잡하고 높은 수준까지 왔는지
단순한 기호가 아닌 가장 저수준의 릴레이로 전가산기 회로를 표현해 보겠습니다
한 화면에 잘 보이지도 않네요 사진을 클릭해서 큰 화면으로 보세요
좌측 상단에 스위치 세개가 두 이진수 A, B와 이전 자리올림수 C 의 입력입니다
우측의 LED(전구)가 덧셈의 결과인 합과 자리올림 입니다
전가산기만으로도 이러한데 8비트 가산기의 회로를 릴레이로 표현한다면 생각만으로도 끔찍하네요
8비트 가산기는 8개의 전가산기가 필요하니 160개의 릴레이가 필요합니다
하지만, 꼭 기억해야 하는 것은
그것이 8비트 가산기의 실제입니다
직접 Simulator에서 보시고 싶으시면 https://www.falstad.com/circuit/circuitjs.html 에서
[File>Import From Text...] 를 클릭하고 다음의 문자열을 넣은 다음에 [Ok] 를 누르면 위 회로가 로드됩니다
아마 부하가 생겨 반응이 느릴 수 있는데 천천히 스위치를 눌러보시면 동작을 확인하실 수 있으실 겁니다
$ 1 0.000005 10.20027730826997 50 5 43
178 -640 -400 -544 -400 0 1 0.2 0 0.05 1000000 0.02 20
178 -640 -224 -544 -224 0 1 0.2 0 0.05 1000000 0.02 20
w -544 -384 -544 -288 0
s -1184 -368 -1120 -368 0 1 false
R -1184 -368 -1248 -368 0 0 40 5 0 0 0.5
R -1184 -192 -1248 -192 0 0 40 5 0 0 0.5
s -1184 -192 -1120 -192 0 1 false
g -640 -352 -640 -336 0
g -640 -176 -640 -160 0
R -640 -400 -640 -464 0 0 40 5 0 0 0.5
w -640 -368 -752 -368 0
w -640 -192 -720 -192 0
w -544 -288 -640 -288 0
w -640 -288 -640 -224 0
b -656 -432 -529 -314 0
b -656 -256 -528 -126 0
x -560 -445 -532 -442 4 12 Relay
x -560 -265 -532 -262 4 12 Relay
x -1152 -403 -1145 -400 4 12 A
x -1153 -227 -1146 -224 4 12 B
x -416 -265 -375 -262 4 12 Inverter
b -512 -256 -384 -126 0
w -544 -208 -496 -192 0
g -496 -176 -496 -160 0
178 -496 -224 -400 -224 0 1 0.2 0.0000024999749963700883 0.05 1000000 0.02 20
w -400 -240 -272 -192 0
R -496 -224 -496 -288 0 0 40 5 0 0 0.5
x -560 135 -532 138 4 12 Relay
x -560 -45 -532 -42 4 12 Relay
b -656 144 -528 274 0
b -656 -32 -529 86 0
R -640 0 -640 -64 0 0 40 5 0 0 0.5
g -640 224 -640 240 0
g -640 48 -640 64 0
178 -640 176 -544 176 0 1 0.2 0 0.05 1000000 0.02 20
178 -640 0 -544 0 0 1 0.2 0 0.05 1000000 0.02 20
R -640 176 -640 112 0 0 40 5 0 0 0.5
w -544 16 -496 16 0
w -544 192 -496 192 0
w -496 96 -272 -16 0
w -496 16 -496 96 0
w -496 96 -496 192 0
w -752 -192 -720 -192 0
w -752 -368 -752 32 0
w -752 32 -640 32 0
w -720 -192 -720 208 0
w -720 208 -640 208 0
x -192 -89 -164 -86 4 12 Relay
x -192 -269 -164 -266 4 12 Relay
b -288 -80 -160 50 0
b -288 -256 -161 -138 0
w -272 -112 -272 -48 0
w -176 -112 -272 -112 0
R -272 -224 -272 -288 0 0 40 5 0 0 0.5
g -272 0 -272 16 0
g -272 -176 -272 -160 0
w -176 -208 -176 -112 0
178 -272 -48 -176 -48 0 1 0.2 0.00000999960001599936 0.05 1000000 0.02 20
178 -272 -224 -176 -224 0 1 0.2 0.24927646041112306 0.05 1000000 0.02 20
178 -640 432 -544 432 0 1 0.2 0 0.05 1000000 0.02 20
178 -640 608 -544 608 0 1 0.2 0 0.05 1000000 0.02 20
w -544 448 -544 544 0
g -640 480 -640 496 0
g -640 656 -640 672 0
R -640 432 -640 368 0 0 40 5 0 0 0.5
w -544 544 -640 544 0
w -640 544 -640 608 0
b -656 400 -529 518 0
b -656 576 -528 706 0
x -560 387 -532 390 4 12 Relay
x -560 567 -532 570 4 12 Relay
w -752 -368 -1120 -368 0
w -752 -192 -1120 -192 0
w -640 464 -752 464 0
w -752 32 -752 464 0
w -720 208 -720 640 0
w -720 640 -640 640 0
w 240 432 320 432 0
w 240 0 240 432 0
w 208 -176 208 256 0
w 320 256 208 256 0
w 208 -400 -176 -32 0
w 208 -576 -1120 -592 0
x 400 359 428 362 4 12 Relay
x 400 179 428 182 4 12 Relay
b 304 368 432 498 0
b 304 192 431 310 0
w 320 336 320 400 0
w 416 336 320 336 0
R 320 224 320 160 0 0 40 5 0 0 0.5
g 320 448 320 464 0
g 320 272 320 288 0
w 416 240 416 336 0
178 320 400 416 400 0 1 0.2 0.000001666655472297411 0.05 1000000 0.02 20
178 320 224 416 224 0 1 0.2 0 0.05 1000000 0.02 20
178 688 -432 784 -432 0 1 0.2 0.24937655860238414 0.05 1000000 0.02 20
178 688 -256 784 -256 0 1 0.2 0.00000999960001599936 0.05 1000000 0.02 20
w 784 -416 784 -320 0
g 688 -384 688 -368 0
g 688 -208 688 -192 0
R 688 -432 688 -496 0 0 40 5 0 0 0.5
w 784 -320 688 -320 0
w 688 -320 688 -256 0
b 672 -464 799 -346 0
b 672 -288 800 -158 0
x 768 -477 796 -474 4 12 Relay
x 768 -297 796 -294 4 12 Relay
w 240 0 320 0 0
w 240 -400 240 0 0
w 208 -176 320 -176 0
w 208 -576 208 -176 0
w 208 -400 240 -400 0
w 464 -112 464 -16 0
w 464 -192 464 -112 0
w 464 -112 688 -224 0
w 416 -16 464 -16 0
w 416 -192 464 -192 0
R 320 -32 320 -96 0 0 40 5 0 0 0.5
178 320 -208 416 -208 0 1 0.2 0 0.05 1000000 0.02 20
178 320 -32 416 -32 0 1 0.2 0.000001666655472297411 0.05 1000000 0.02 20
g 320 -160 320 -144 0
g 320 16 320 32 0
R 320 -208 320 -272 0 0 40 5 0 0 0.5
b 304 -240 431 -122 0
b 304 -64 432 66 0
x 400 -253 428 -250 4 12 Relay
x 400 -73 428 -70 4 12 Relay
R 464 -432 464 -496 0 0 40 5 0 0 0.5
w 560 -448 688 -400 0
178 464 -432 560 -432 0 1 0.2 0.0000024999749999849556 0.05 1000000 0.02 20
g 464 -384 464 -368 0
w 416 -416 464 -400 0
b 448 -464 576 -334 0
x 544 -473 585 -470 4 12 Inverter
x 1302 -263 1326 -260 4 12 Sum
x 400 -473 428 -470 4 12 Relay
x 400 -653 428 -650 4 12 Relay
b 304 -464 432 -334 0
b 304 -640 431 -522 0
w 320 -496 320 -432 0
w 416 -496 320 -496 0
w 320 -400 240 -400 0
w 320 -576 208 -576 0
g 1376 -240 1376 -224 0
162 1248 -240 1376 -240 2 default-led 1 0 0 0.01
R 320 -608 320 -672 0 0 40 5 0 0 0.5
g 320 -384 320 -368 0
g 320 -560 320 -544 0
w 416 -592 416 -496 0
178 320 -432 416 -432 0 1 0.2 0.000001666655472297411 0.05 1000000 0.02 20
178 320 -608 416 -608 0 1 0.2 0 0.05 1000000 0.02 20
x -1152 -627 -1107 -624 4 12 C\s(carry)
R -1184 -592 -1248 -592 0 0 40 5 0 0 0.5
s -1184 -592 -1120 -592 0 1 false
x 768 519 796 522 4 12 Relay
x 768 339 796 342 4 12 Relay
b 672 528 800 658 0
b 672 352 799 470 0
R 688 384 688 320 0 0 40 5 0 0 0.5
g 688 608 688 624 0
g 688 432 688 448 0
178 688 560 784 560 0 1 0.2 0.0000024999749963700883 0.05 1000000 0.02 20
178 688 384 784 384 0 1 0.2 0.0000024999749963700883 0.05 1000000 0.02 20
R 688 560 688 496 0 0 40 5 0 0 0.5
w 784 400 832 400 0
w 784 576 832 576 0
w 832 400 832 480 0
w 832 480 832 576 0
w 416 416 688 416 0
w -544 624 688 592 0
w 1248 -240 784 -240 0
162 1248 -160 1376 -160 2 default-led 1 0 0 0.01
g 1376 -160 1376 -144 0
x 1302 -183 1330 -180 4 12 Carry
w 832 480 1024 480 0
w 1024 480 1024 -160 0
w 1024 -160 1248 -160 0