폰노이만 구조
폰 노이만 구조 (Von Neumann architecture)는 1940년대 존 폰 노이만이 제안한 컴퓨터 구조로, 현재 대부분의 컴퓨터가 이 구조를 따르고 있다. 폰 노이만 구조의 핵심은 다음과 같다.
- 중앙 처리 장치 (CPU): 명령어 해독 및 실행을 담당한다. 산술 논리 연산 장치 (ALU), 제어 장치, 레지스터 등으로 구성된다.
- 주기억 장치 (메모리): 데이터와 명령어를 모두 저장한다. 폰 노이만 구조의 가장 큰 특징 중 하나는 데이터와 명령어를 동일한 메모리 공간에 저장한다는 점이다. 이러한 특징은 프로그램의 유연성을 높이지만, 보안 취약점을 야기할 수도 있다.
- 입력 장치: 외부에서 데이터를 입력받는 장치 (키보드, 마우스 등).
- 출력 장치: 연산 결과를 외부로 출력하는 장치 (모니터, 프린터 등).
- 버스: CPU, 메모리, 입출력 장치 간의 데이터 전송 통로이다.
폰 노이만 구조의 작동 원리는 다음과 같다.
- CPU는 메모리에서 명령어를 읽어온다.
- CPU는 명령어를 해독한다.
- CPU는 해독된 명령어를 실행하기 위해 필요한 데이터를 메모리에서 읽어온다.
- CPU는 데이터를 사용하여 연산을 수행한다.
- CPU는 연산 결과를 메모리에 저장하거나 출력 장치로 보낸다.
- 다음 명령어를 읽어와 1~5 단계를 반복한다.
폰 노이만 구조는 간단하고 효율적인 구조이지만, "폰 노이만 병목 현상"이라는 단점도 가지고 있다. 폰 노이만 병목 현상은 CPU와 메모리 간의 데이터 전송 속도 차이로 인해 발생하는 성능 저하 현상을 의미한다. 이를 해결하기 위해 캐시 메모리, 병렬 처리 등 다양한 기술이 사용되고 있다. 폰 노이만 구조와 대조되는 구조로는 하버드 구조가 있으며, 하버드 구조는 데이터와 명령어를 서로 다른 메모리에 저장하여 폰 노이만 병목 현상을 완화한다.