Modeling
Symbol, Computation, Memory 3개의 개념을 조합하면 간단한 계산기를 설계할 수 있다.
모델은 R0, R1, R2 총 3칸의 Memory를 갖는다. R0, R1은 입력, R2는 출력 전용이다.
R0, R1의 배선은 Adder(덧셈 논리 회로)의 입력에, R2의 배선은 Adder의 출력에 고정되어 있다.
R0 R1
+-----+-----+
symbols | | |
+-----+-----+
| |
v v
+-----------+
| Adder |
+-----------+
|
v
R2
+-----+
| |
+-----+
이 배선 덕분에 R0, R1에 전압(비트)이 설정되는 순간, 회로의 물리적 구조에 의해 R2의 전압도 자동으로 결정된다. 별도의 명령이나 판단 없이, 전기가 흐른 결과가 곧 R2에 나타난다.
예를 들어 R0에 101, R1에 110을 넣는다면:
01
Symbol Load
LOAD 명령어로 R0, R1에 Symbol을 넣는다.
LOAD R0, 101
LOAD R1, 110↓
02
Computation
R0, R1에 Symbol이 채워지는 순간, R2에 결괏값이 자동으로 채워진다.
R2
+-----+
|1011 |
+-----+Capabilities
이 모델은 두 입력 Symbol을 더하는 한 가지 Computation을 빠르고 자동으로 수행한다. 입력이 바뀌면 Adder의 물리적 구조에 따라 출력도 즉시 바뀐다.
Adder 대신 다른 회로를 연결하면 다음과 같은 계산기도 만들 수 있다.
- Subtractor를 연결하면 두 Symbol의 차를 구할 수 있다.
- Multiplier를 연결하면 두 Symbol의 곱을 구할 수 있다.
- Comparator를 연결하면 두 Symbol이 같은지, 어느 쪽이 큰지 판단한 결과를 Symbol로 출력할 수 있다.
- AND/OR 같은 논리 회로를 연결하면 입력 비트에 논리 규칙을 적용할 수 있다.
여러 회로를 직렬로 연결하면 한 회로의 출력을 다음 회로의 입력으로 보내 더 복잡한 고정 계산도 만들 수 있다.
사람이 R2의 Symbol을 다시 R0이나 R1에 넣는다면 여러 단계의 계산을 수행하거나 같은 계산을 반복할 수도 있다.
이 모델이 어디까지 가능하고 어디서 막히는지 보려면 Hardwired Computer의 한계로 이어진다.