제 2차 세계대전때 독일군의 에니그마 암호를 튜링머신을 통해 푸는데 기여
Manhattan Project(핵 개발)에 참여
실질적으로 현대적 컴퓨터 구조를 제안
내장형 프로그램 방식의 컴퓨터(Stored - program computer)
폰 노이만 구조는 1940년대 초에 개발된 컴퓨터 아키텍처로, 존 폰 노이만(John von Neumann)과 그의 동료들이 제안했다. 이 구조는 현대 컴퓨터의 기본 모델로 여겨진다.
주요 특징
1. 내장형 프로그램 개념:
폰 노이만 구조는 프로그램을 메모리에 저장하고, CPU가 이 프로그램을 읽어 실행하는 방식을 채택한다. 즉, 명령어와 데이터가 동일한 메모리 공간에 저장된다.
2. 메모리:
프로그램과 데이터를 저장하는 메모리가 통합되어 있으며, 이 메모리는 순차적으로 접근된다. 데이터와 명령어는 같은 메모리 공간에서 관리된다.
3. 중앙 처리 장치 (CPU):
CPU는 제어 장치, 산술 논리 장치(ALU), 레지스터, 그리고 프로그램 카운터(PC)를 포함한다. 제어 장치는 명령어를 해석하고 실행하며, ALU는 산술 및 논리 연산을 수행한다.
4. 입출력 장치:
컴퓨터와 외부 장치 간의 데이터 전송을 담당한다.
5. 버스 시스템:
메모리, CPU, 입출력 장치 간의 데이터 전송을 담당하는 데이터 버스, 주소 버스, 제어 버스가 있다.
폰 노이만 병목현상(단점)
CPU가 메모리에서 명령어와 데이터를 순차적으로 가져와야 하므로, 명령어와 데이터 접근이 동시에 이루어질 수 없어서 성능이 제한되는 현상이다.
폰 노이만 방식의 컴퓨터가 발전된 형태
주요 특징
1. 캐시 메모리:
현대 컴퓨터는 CPU와 메모리 간의 속도 차이를 줄이기 위해 캐시 메모리를 사용한다. 캐시는 CPU와 메모리 사이에 위치하여 자주 사용하는 데이터와 명령어를 저장하고, 이로 인해 접근 속도를 향상시킨다.
2. 다중 처리(멀티코어 및 멀티스레딩):
최신 컴퓨터는 여러 개의 CPU 코어를 포함하여 동시에 여러 작업을 처리할 수 있다. 멀티스레딩은 하나의 CPU 코어가 여러 개의 스레드를 동시에 실행하도록 한다.
3. 파이프라이닝 및 슈퍼스칼라 구조:
CPU 내부의 파이프라이닝 기법은 명령어의 여러 단계를 동시에 처리하여 성능을 향상시킨다. 슈퍼스칼라 구조는 한 클럭 사이클에 여러 명령어를 실행할 수 있는 능력을 제공한다.
4. 분리된 캐시 및 메모리 계층:
현대 시스템은 L1, L2, L3 캐시와 같은 다양한 계층의 캐시를 사용하여 메모리 접근 속도를 더욱 향상시킨다.
5. 하버드 구조:
폰 노이만 구조와는 달리, 현대 컴퓨터는 하버드 구조를 채택할 수 있다. 하버드 구조는 명령어와 데이터를 분리된 메모리 공간에 저장하여 동시에 명령어와 데이터를 접근할 수 있다. 이로 인해 폰 노이만 병목현상을 줄일 수 있다.
6. 병렬 처리 및 분산 컴퓨팅:
여러 대의 컴퓨터가 함께 작업을 수행하는 분산 시스템 및 병렬 처리 기술이 널리 사용된다. 이는 대규모 데이터 처리와 복잡한 계산 작업에 유리하다.