오늘 끝나면
저장 프로그램이라는 반전
- ✓저장 프로그램 방식이 ENIAC식 배선 방식과 어떻게 다른지 한 줄로 설명함
- ✓명령도 데이터처럼 메모리에 숫자로 저장된다는 걸 예로 듦
- ✓PC가 fetch→execute를 반복하는 흐름과, 메모리만 바꾸면 범용이 되는 이유를 말함
실습 미션
오른쪽 머신에서 명령 셀의 op나 주소를 바꿔 OUT 결과를 의도대로 바꿔보고, 배선이 아니라 메모리만 바꿨다는 걸 확인함.
성공 조건
- □명령 셀을 고쳐 OUT 값을 바꿔봤음
- □PC가 0부터 칸을 훑으며 fetch→execute 하는 흐름을 봤음
- □명령 칸과 데이터 칸이 같은 메모리에 있다는 걸 확인했음
폰 노이만 · 배선 → 메모리 · 명령도 숫자 · 범용 컴퓨터
저장 프로그램이라는 반전
명령을 데이터처럼 같은 메모리에 넣었더니, 배선을 안 바꿔도 다른 일을 하는 기계가 됨. 컴퓨터 역사상 가장 큰 한 수임.
그 전엔 프로그램이 곧 배선이었다
초기 컴퓨터는 일을 바꾸려면 기계 자체를 바꿔야 했음.
1945년 ENIAC. 전선 18,000개 진공관 덩어리인데, 프로그램이 곧 배선이었음. 다른 계산을 시키려면 사람이 케이블을 다시 꽂고 회전 스위치 수천 개를 다시 맞췄음.
이 재설정에 보통 며칠이 걸렸음. 곱셈기를 더하기로 바꾸는 게 코드 한 줄이 아니라 노동이었음.
즉 하드웨어가 곧 프로그램이었음. 기계 하나가 한 가지 일에 묶여 있었음 / 다른 일은 사실상 다른 기계를 만드는 셈.
작업을 바꿔보셈. 케이블 경로가 통째로 다시 그려짐 — 코드 한 줄이 아니라 손으로 다시 꽂는 일임.
명령을 데이터처럼 메모리에 넣다
1945년, 폰 노이만이 정리한 EDVAC 보고서에 반전이 담겼음.
명령을 배선으로 박지 말고, 데이터처럼 똑같은 메모리에 숫자로 저장하자는 것임. 명령과 데이터가 한 저장소를 나눠 씀.
메모리는 주소로 값을 담는 칸의 줄임. 그 칸에 무엇이 들었든 컴퓨터에겐 다 그냥 숫자임. 똑같은 1011이 어떤 칸에선 더하기 명령이고 어떤 칸에선 데이터 11임.
그래서 명령도 숫자임. 종이가 아니라 같은 전기 메모리에 들어가니, 기계가 자기 명령을 읽고 쓰는 게 가능해짐.
지금 4칸은 명령, 4칸은 데이터로 읽는 중임. 비트는 하나도 안 바뀌었음 — 똑같은 01000101이 명령(LOAD 5)도 되고 데이터(69)도 됨. 무엇으로 볼지는 CPU가 그 칸을 명령으로 가져오느냐, 값으로 가져오느냐에 달림.
PC가 칸을 훑으며 fetch → execute
명령이 메모리에 줄지어 있으니, CPU는 그걸 순서대로 읽어내면 됨.
PC(프로그램 카운터)가 다음 명령의 주소를 가리킴. CPU는 그 칸을 읽어오고(fetch) 시키는 대로 하고(execute) PC를 +1 함. 이 두 박자를 끝없이 반복함.
이게 컴퓨터가 살아 움직이는 유일한 동작임. 화려한 앱도 결국 이 fetch→execute 사이클의 반복일 뿐임.
배선을 다시 꽂는 며칠짜리 노동이, PC가 칸을 훑는 1초에 수십억 번짜리 사이클로 바뀐 것임.
버튼을 눌러 한 박자씩 진행해보셈. 읽어오고(fetch) → 실행하고(execute), 그리고 PC가 다음 칸으로 넘어감.
그래서 범용 컴퓨터가 된다
명령이 메모리에 있으니, 배선을 안 건드리고 메모리만 바꿔 다른 일을 시킴.
기계는 그대로인데 무엇이든 함 — 이게 범용임. 같은 칩 하나로 계산기도, 게임도, 채팅 앱도 돌림 / 바꾸는 건 메모리에 적힌 숫자뿐임.
게다가 명령도 숫자라, 프로그램이 다른 프로그램을 데이터로 읽고 고치고 새로 만들 수 있음. 컴파일러·운영체제가 바로 이 자기참조에서 나옴.
지금 모든 PC·폰·서버의 칩이 이 폰 노이만 구조 위에 서 있음. 80년 전 보고서 한 편이 깐 토대임.
위 카트리지를 갈아끼우면 CPU는 그대로인데 하는 일이 달라짐 — 이게 범용임. 게다가 컴파일러·운영체제처럼 프로그램이 다른 프로그램을 읽고 만드는 일도, 명령이 숫자라서 가능해진 것임.
직접 저장 프로그램 머신 돌려보기
오른쪽 머신에서 메모리 8칸을 직접 만짐. 앞쪽은 명령, 뒤쪽은 데이터인데 둘 다 같은 메모리에 있음.
▶ 실행을 누르면 PC가 0번 칸부터 훑으며 fetch→execute 함. 파란 칸이 지금 실행 중인 명령임.
명령 셀의 op나 주소를 바꿔보셈. 배선은 하나도 안 건드렸는데 OUT 결과가 통째로 바뀜 — 메모리만 바꾼 게 전부임.
이 작은 기계가 곧 노트북·폰 안에서 벌어지는 일의 축소판임.
이대로 돌리면 OUT = 25 이 나옴. 명령 셀의 op·주소를 바꾸면 결과가 통째로 바뀜 — 배선이 아니라 메모리만 바꾼 것.