IT 인터넷

폰 노이만 구조 뜻(저장 프로그램, CPU 명령어 실행, 하버드 구조와 차이)

쉬운정리 IT 2026. 11. 12. 03:07

폰 노이만 구조는 프로그램의 명령어와 처리할 데이터를 같은 주기억장치에 두는 컴퓨터 구조다. 중앙처리장치인 CPU는 메모리에서 명령어를 가져와 뜻을 알아낸 뒤 실행한다. 폰 노이만 구조 뜻을 이해하려면 ‘무엇을 할지’와 ‘무엇을 처리할지’가 어디에 놓이는지부터 보면 된다. 숫자 2와 3을 더하는 예로 CPU의 동작을 살펴보고, 같은 통로를 쓸 때 왜 대기가 생기는지도 알아보자.

폰 노이만 구조 뜻 제목과 설명 아래에 줄무늬 카드와 점무늬 카드가 주기억장치라고 적힌 상자에 들어 있다.

폰 노이만 구조 뜻, 명령어와 데이터는 어디에 둘까?

명령어와 데이터는 하나의 주기억장치에 함께 둔다. 명령어는 ‘값을 읽어라’, ‘두 값을 더해라’처럼 CPU에 시키는 일이다. 데이터는 숫자 2와 3처럼 그 명령이 처리할 값이다. 둘 다 메모리에 기록되며, CPU는 필요한 위치를 주소로 찾아간다.

 

한 주기억장치 안에서도 명령어와 데이터는 서로 다른 주소에 놓을 수 있다. 더하라는 명령어와 그 명령에 쓰일 숫자가 각각 다른 주소에 저장되는 식이다. CPU는 다음 명령어를 읽을 위치와 계산에 필요한 값을 읽을 위치를 각각 알아내 접근한다.

 

이처럼 실행할 명령어를 메모리에 넣어 두는 방식을 저장 프로그램 방식이라고 한다. 실행할 프로그램을 바꾸면 같은 CPU가 다른 명령을 읽고 다른 일을 한다. 예를 들어 계산기를 실행할 때와 문서 편집기를 실행할 때 같은 컴퓨터가 서로 다른 작업을 하는 바탕이 된다.

같은 주기억장치를 나타내는 열린 서랍 하나에 명령어 카드와 데이터 카드가 나란히 들어 있다.

CPU는 명령어를 어떻게 실행할까?

CPU의 동작은 명령어를 가져오는 인출, 뜻을 푸는 해독, 실제 일을 하는 실행으로 나눠 볼 수 있다. 폰 노이만 구조 뜻을 실제 동작과 연결하려면 프로그램 카운터를 보면 된다. 프로그램 카운터는 다음에 가져올 명령어의 메모리 주소를 가리키는 CPU 내부의 저장 공간이다.

 

숫자 2와 3을 읽어 더하는 프로그램을 예로 들어 보자. 아래는 계산에 필요한 명령어를 CPU가 처리하는 흐름이다.

 

  1. 인출. CPU가 프로그램 카운터가 가리키는 주소에서 다음 명령어를 가져온다.
  2. 해독. 가져온 명령어를 읽고, 값을 불러올지 더할지처럼 어떤 동작을 해야 하는지 알아낸다.
  3. 실행. 읽기 명령이면 메모리의 값을 CPU 안으로 불러오고, 덧셈 명령이면 이미 불러온 두 값 2와 3을 더한다. 계산 결과인 5는 CPU 안의 작은 저장 공간인 레지스터에 둘 수 있다.

 

값 읽기와 덧셈, 결과를 메모리에 쓰는 일은 각각 별도 명령으로 처리할 수 있다. CPU는 다음 명령어를 가져와 이 흐름을 이어 간다. 조건에 따라 다른 위치로 이동하라는 명령을 만나면 프로그램 카운터가 가리키는 주소를 바꿔 실행 순서를 바꾼다.

카드를 집는 손, 카드를 읽는 사람, 돌아가는 톱니바퀴를 화살표로 잇고 인출, 해독, 실행이라고 표시했다.

같은 통로를 쓰면 왜 병목이 생길까?

기본 모형에서는 명령어와 데이터가 CPU와 주기억장치 사이의 전송 통로를 공유한다. 명령어를 가져오는 요청과 데이터를 읽거나 쓰는 요청이 같은 통로에 몰리면 서로 기다릴 수 있다. CPU가 계산을 빨리 끝내도 다음 명령이나 값이 늦게 도착하면 전체 실행이 느려진다. 이를 폰 노이만 병목이라고 부른다.

 

하버드 구조에서는 명령어와 데이터를 별도 메모리에 두고 각각의 통로로 접근한다. 기본 모형끼리 비교하면 명령어를 읽는 동안 다른 통로에서 데이터에 접근할 수 있다는 차이가 있다.

 

실제 CPU는 주기억장치에 접근하는 시간을 줄이기 위해 가까운 곳에 캐시라는 빠른 저장 공간을 둔다. 주기억장치를 함께 쓰면서도 CPU 가까이의 캐시를 명령어용과 데이터용으로 나누는 설계도 있다. 구조를 비교할 때는 주기억장치와 CPU 가까이의 캐시를 구분해서 보면 이해하기 쉽다. 코넬대 메모리와 캐시 강의 자료 바로가기

명령어 카드와 데이터 카드가 오른쪽 화살표가 그려진 공유 통로 앞에 줄지어 서 있다.

마치면서

하나의 주기억장치에 프로그램의 명령어와 처리할 데이터를 함께 두는 것이 핵심이다. 폰 노이만 구조 뜻을 CPU의 동작과 연결해 보면, CPU가 명령어를 가져오고 해독한 뒤 값을 읽거나 계산한다는 흐름이 보인다. 기본 모형에서는 명령어와 데이터가 같은 통로를 써서 대기가 생길 수 있고, 실제 컴퓨터는 캐시를 두어 주기억장치에 접근하는 일을 줄인다. 하버드 구조에서는 명령어와 데이터의 저장 공간과 통로를 나눠 둔다.

 

[안내드립니다] 이 글은 입문용 기본 모형을 설명합니다. 메모리와 캐시를 연결하는 방식은 CPU의 설계에 따라 달라집니다.