컴퓨터 구조의 영향
x = x + 1 같은 문장은 어디에서 왔을까?
컴퓨터의 생김새
메모리와 CPU가 따로 있습니다
대표적인 컴퓨터 구조인 폰 노이만 구조(von Neumann architecture)입니다. 명령어와 데이터가 같은 메모리에 있고, CPU가 그것을 가져와 처리한 뒤 결과를 돌려 놓습니다.
CPU가 하는 일
가져오고, 풀고, 실행하고, 되풀이
이 되풀이가 인출-실행 주기(fetch-execute cycle)입니다. 그림의 카운터는 다음에 실행할 명령어의 위치를 담는 프로그램 카운터입니다.
명령어 네 개는 예시입니다.
언어가 닮은 것
변수는 메모리 칸, 대입문은 값 옮기기
변수는 메모리 칸에 붙인 이름이고, 대입문은 값을 CPU로 가져가 계산해 도로 넣는 일입니다. 이 구조를 본뜬 언어가 명령형 언어(imperative language)입니다.
대입문은 변수에 값을 넣는 문장입니다. 값 5는 예시입니다.
반복문도
카운터만 되돌리면 반복입니다
명령어는 메모리에 나란히 놓여 있습니다. 그래서 프로그램 카운터를 앞쪽으로 되돌리기만 하면 같은 명령어들을 다시 실행합니다. 명령형 언어에서 반복이 효율적인 이유입니다.
명령어의 내용은 예시입니다.
약점
사이의 통로가 병목입니다
CPU는 명령어를 빠르게 실행하지만, 메모리와 CPU 사이로 명령어와 데이터를 나르는 속도는 그보다 느립니다. 그래서 통로가 컴퓨터의 속도를 정합니다. 폰 노이만 병목(von Neumann bottleneck)입니다.
막대의 길이는 실제 비율이 아닙니다.
다음 편