폰 노이만은 사실 폰 노이만 구조를 만든 사람으로 수학자이자 물리학자입니다.
이 사람은 현재와 같은 CPU, 메모리, 프로그램 구조를 갖는 범용 컴퓨터 구조를 확립했는데, 이 구조가 바로 폰 노이만 구조입니다.
폰 노이만 구조는 폰 노이만과 다른 사람들이 서술한 1945년 설명에 기반한 컴퓨터 아키텍처입니다.
위의 모습이 바로 폰 노이만 구조인데, 당장 그림에 보이는 Central Processing Unit, Memory Unit 뿐만 아니라 입출력 장치, 저장장치로 이루어져 있습니다.
또한, 내장 메모리 순차처리 방식으로 데이터 메모리와 프로그램 메모리가 구분되어 있지 않고 하나의 버스를 가지고 있는 구조를 말한다.
폰 노이만 구조는 프로그램 내장 방식 컴퓨터이기 때문에 새로운 프로그램을 실행할 때마다 하드웨어를 변경할 필요없이 소프트웨어만 교체하면 됩니다.
하드웨어 변경이란 컴퓨터에 다른 작업을 수행하기 위해 전선을 재배치하는 것을 말하는데, 이 과정에 상당한 시간과 인력이 필요해서 여러 작업들을 수행하는데에는 한계가 있었습니다.
이러한 과정을 생략하고 오로지 소프트웨어만 교체하면 되기 때문에 편의성이 크게 증가하고 다양한 작업을 수행할 수 있어 범용성이 향상되었습니다.
폰 노이만 구조는 인간의 사고과정을 참고해서 설계된 구조입니다.
인간은 어떤 연산을 마주쳤을 때, 머릿 속의 기억을 불러와서 계산하는 과정을 통해 연산을 해결하는데, 폰 노이만 구조 역시 이러한 과정을 통해 문제를 해결합니다.
하지만 이러한 과정은 치명적인 단점이 있는데, 기억을 불러오는 속도가 느리면 전체적으로 속도가 느려진다는 것입니다.
즉, 계산 속도가 기억장치 속도에 영향을 받게 됩니다.
기억장치의 속도가 전체 시스템의 성능 저하를 야기하는 이 현상을 폰 노이만 병목현상(Von-Neumann Bottleneck)이라고 합니다.
병목현상을 해결하기 위한 방법으로 여러 기술과 구조들이 등장했는데, 그 중 하나가 하버드 구조이다.
폰 노이만 병목현상의 근본적인 원인은 폰 노이만 구조에 있었는데, 프로그램 메모리와 데이터 메모리가 물리적 구분 없이 하나의 버스를 통해 CPU와 교류하고 있기 때문이었습니다.
이러한 구조로 인해 CPU는 명령어와 데이터에 동시에 접근할 수 없고 나열된 명령을 한 번에 하나씩 읽고 쓰게 됩니다.
하버드 구조는 CPU가 명령어와 데이터를 동시에 사용할 수 있도록 명령어 버스와 데이터용 버스를 물리적으로 구분했습니다.
이를 통해 현재 명령의 처리를 끝냄과 동시에 다음 명령을 읽어 들일 수 있기 때문에 기존의 폰 노이만 구조보다 더 빠른 속도를 낼 수 있습니다.