Proof of Understanding
Hardwired Computer가 범용 기계가 아닌 이유답 보기답 닫기
어떤 회로를 쓸지, 어떤 순서로 연결할지가 계산을 시작하기 전에 배선으로 고정되어 있기 때문이다
Examples
- Adder 배선을 가진 모델은 덧셈만 할 수 있고, 다른 계산을 하려면 회로를 교체하거나 배선을 다시 연결해야 한다.
Hardwired Computer가 계산 절차 자체를 저장하지 못하는 이유답 보기답 닫기
데이터인 Symbol은 Memory에 저장되지만, 계산 규칙과 수행 순서는 물리적인 회로와 배선에 들어 있기 때문이다
Examples
- R2의 결괏값은 Memory에 남지만, '두 수를 더하라'는 절차 자체는 어디에도 Symbol로 저장되어 있지 않고 Adder의 배선으로만 존재한다.
초기 ENIAC이 겪은 한계답 보기답 닫기
계산 절차를 플러그보드의 케이블과 스위치로 설정해야 해서, 문제를 바꿀 때마다 연결을 다시 구성하고 검증해야 했다
Examples
- 전자 회로는 계산 자체를 빠르게 수행했지만, 계산 절차를 기계에 입력하고 바꾸는 작업은 여전히 느리고 오류가 발생하기 쉬웠다.
Hardwired Computer의 한계를 극복하기 위해 필요했던 것답 보기답 닫기
계산 절차를 물리적인 회로와 배선에서 분리하는 것
Examples
- 계산 규칙과 수행 순서도 Symbol로 표현해 Memory에 저장하고, 기계가 하나씩 읽어 실행하게 만드는 Program 개념으로 이어진다.
Limitations
Hardwired Computer는 어떤 회로를 사용할지, 어떤 순서로 연결할지 계산을 시작하기 전에 정해져 있다. 계산 절차가 달라지면 배선을 다시 해야 한다. 즉, 이 모델은 미리 정한 계산에는 유용하지만 여러 계산을 자유롭게 실행하는 범용 기계는 아니다.
Hardwired Computer에서 사용한 LOAD는 사람이 Memory에 Symbol을 넣는 동작을 나타낸 표기일 뿐이다. 이 모델이 LOAD라는 명령어를 읽고 해석하는 것은 아니다.
이 모델로 더 복잡한 문제를 풀려고 하면 다음과 같은 한계가 생긴다.
- 연산이 고정되어 있다: Adder는 덧셈만 할 수 있다. 다른 계산을 하려면 회로를 교체하거나 배선을 다시 연결해야 한다.
- 반복을 자동으로 수행하지 못한다: 같은 계산을 반복하려면 사람이 출력 Symbol을 다시 입력으로 옮겨야 한다.
- 조건에 따라 동작을 바꾸지 못한다: 결과가 0일 때와 1일 때 서로 다른 계산을 수행하는 조건 분기가 없다.
- 계산 절차 자체는 고정되어있다: 데이터인 Symbol은 Memory에 저장할 수 있지만, 계산 규칙과 수행 순서는 물리적인 회로와 배선에 들어 있다. 따라서 계산 값이 아닌 계산 절차 그 자체를 저장하거나 복사하고 일부만 수정할 수 없다.
- 복잡해질수록 회로와 배선이 급격히 늘어난다: 계산 단계마다 필요한 회로를 만들고 직접 연결해야 하므로 전체 구조를 이해하기 어렵고 설정 오류도 찾기 어려워진다.
이것은 과거 인류가 마주한 문제의 간단한 버전
많은 초기 계산 기계에서도 지원하는 연산과 계산 절차가 기계의 구조에 묶여 있었다. 새로운 문제를 풀려면 기어, 스위치, 배선처럼 기계를 구성하는 물리적인 요소를 다시 설정해야 했다.
초기 방식의 ENIAC은 Simple Hardwired Computer보다 훨씬 복잡해서 반복과 조건 분기도 수행할 수 있었지만, 여전히 계산 절차를 플러그보드의 케이블과 스위치로 설정했다. 다른 문제를 풀 때는 연결을 다시 구성하고 올바르게 설정했는지 검증해야 했다. 전자 회로는 계산을 빠르게 수행했지만, 계산 절차를 기계에 입력하고 변경하는 작업은 여전히 느리고 오류가 발생하기 쉬웠다.
결국 극복해야 했던 것은 계산 속도만이 아니었다. 계산 절차를 물리적인 회로와 배선에서 분리해야 했다.
Computation 규칙과 수행 순서도 Symbol로 표현해 Memory에 저장하고
이를 하나씩 읽어 실행하게 만들 수 없을까?