Skip to content
난이도 문제은행 3

컴퓨터 구조의 큰 그림 ​

오늘날 노트북·스마트폰·서버는 생김새가 달라도 뼈대는 같다. 프로그램과 데이터를 메모리에 올려 두고, CPU(Central Processing Unit, 중앙 처리 장치)가 거기서 명령어를 하나씩 꺼내 실행하며, 결과를 저장 장치와 입출력 장치로 주고받는다. 이 문서는 그 뼈대인 폰 노이만 구조(von Neumann architecture)와 네 가지 핵심 부품을 정리한다.

프로그램 내장 방식 ​

초기 컴퓨터 중에는 계산 내용을 바꾸려면 전선 연결을 직접 바꿔 꽂아야 하는 것이 있었다. 이 방식은 프로그램 하나를 바꾸는 데 며칠이 걸릴 수 있었다. 프로그램 내장 방식(stored-program)은 프로그램, 즉 명령어들도 데이터처럼 메모리에 저장해 두고 실행하는 방식이다. 이렇게 하면 다른 프로그램을 실행하고 싶을 때 메모리 내용만 바꾸면 된다. 컴퓨터가 계산기 한 대가 아니라 무엇이든 실행하는 범용 기계가 된 것은 이 방식 덕분이다.

폰 노이만 구조 ​

폰 노이만 구조는 프로그램 내장 방식을 구체적인 설계로 정리한 것이다. 1945년 존 폰 노이만이 쓴 보고서 초안에서 이름이 붙었다. 핵심은 세 가지다.

  • 명령어와 데이터를 같은 메모리에 둔다.
  • CPU가 메모리에서 명령어를 하나씩 차례로 가져와 해석하고 실행한다.
  • CPU와 메모리는 하나의 통로로 명령어와 데이터를 주고받는다.

단순하고 유연해서 오늘날 대부분의 컴퓨터가 이 구조를 따른다. 대신 약점도 있다. 명령어와 데이터가 같은 통로를 지나므로 CPU가 아무리 빨라도 메모리에서 가져오는 속도를 넘을 수 없다. 이 한계를 폰 노이만 병목(von Neumann bottleneck)이라 한다.

명령어용 메모리와 데이터용 메모리를 따로 두고 통로도 따로 쓰는 설계를 하버드 구조(Harvard architecture)라 한다. 명령어와 데이터를 동시에 가져올 수 있어 빠르다. 대신 메모리와 통로를 두 벌 만들어야 해서 회로가 복잡하고 비싸며, 두 메모리의 크기를 따로 정해야 해서 공간을 유연하게 나눠 쓰기 어렵다. 요즘 CPU는 겉으로는 폰 노이만 구조를 따르면서, CPU에 가장 가까운 1단계(L1) 캐시 메모리(cache memory)만 명령어용과 데이터용으로 나눈다. 그러면 CPU가 두 곳에서 명령어와 데이터를 동시에 가져올 수 있고, 거기에 없을 때만 하나의 통로로 메인 메모리까지 가므로 병목이 줄어든다.

네 가지 핵심 부품 ​

컴퓨터를 이루는 부품은 역할에 따라 네 가지로 나눌 수 있다. 계산하는 CPU, 실행 중인 프로그램을 담는 메인 메모리(main memory), 데이터를 오래 보관하는 보조기억장치(secondary storage), 바깥과 데이터를 주고받는 입출력장치(I/O device)다. 메인 메모리로는 주로 RAM(Random Access Memory, 임의 접근 메모리)을 쓴다.

부품하는 일예
CPU명령어를 해석하고 계산한다인텔·AMD·Apple 칩
메인 메모리실행 중인 프로그램과 데이터를 담는다RAM
보조기억장치전원이 꺼져도 남을 데이터를 오래 보관한다SSD, HDD
입출력장치바깥 세계와 데이터를 주고받는다키보드, 모니터, 네트워크 카드
  • CPU는 컴퓨터의 두뇌다. 메모리에서 명령어를 읽어 해석하고, 그대로 계산하거나 데이터를 옮긴다. 안쪽 구성은 CPU의 동작에서 다룬다.
  • 메인 메모리는 지금 실행 중인 프로그램이 머무는 곳이다. RAM은 전원이 꺼지면 내용이 사라진다. 그래서 프로그램을 실행하려면 먼저 저장 장치에서 메모리로 올려야 한다.
  • 보조기억장치는 전원이 꺼져도 데이터를 보관한다. 메모리보다 훨씬 크고 싸지만 훨씬 느리다. CPU는 보조기억장치의 데이터를 직접 실행하지 않고, 일단 메모리로 가져온 뒤 쓴다.
  • 입출력장치는 사람이나 다른 컴퓨터와 데이터를 주고받는다. CPU는 보조기억장치에서 명령어를 직접 실행하지 않고 키보드나 네트워크 카드처럼 데이터를 주고받기만 하므로, 보조기억장치도 CPU 입장에서는 입출력장치의 하나로 다룬다.

네 부품이 프로그램 하나를 실행하는 흐름으로 보면 역할이 한눈에 들어온다.

다이어그램 로딩…

메모리는 바이트 단위로 번호가 붙은 칸의 긴 줄이다. 이 번호를 주소(address)라 한다. CPU는 "몇 번 주소의 값을 읽어라, 몇 번 주소에 써라"라는 식으로만 메모리를 다룬다.

이어지는 내용은 컴퓨터 구조의 큰 그림 2에서 다룬다. 네 부품을 잇는 공용 통로인 시스템 버스(system bus)를 본다.

면접 포인트 ​

  • "폰 노이만 구조란?" → 명령어와 데이터를 같은 메모리에 두고 CPU가 하나씩 꺼내 실행하는 구조. 약점은 폰 노이만 병목.
  • "하버드 구조와 차이는?" → 명령어·데이터 메모리와 통로를 분리. 요즘 CPU는 L1 캐시 메모리만 나누는 식으로 섞어 쓴다.
  • "네 가지 부품은?" → CPU, 메인 메모리, 보조기억장치, 입출력장치.
  • 프로그램은 보조기억장치에서 메모리로 올라와야 실행된다.

관련 문서