폰 노이만 아키텍쳐
- EDVAC 컴퓨터에 대한 보고서에서 처음으로 등장 아키텍쳐
- 폰 노이만 아키텍쳐 컴퓨터의 구성 요소
- ALU와 프로세서 레지스터를 지닌 CPU
- 명령어 레지스터와 PC를 가진 제어 유닛
- 데이터와 명령어를 저장하는 주기억장치
- 큰 용량의 외부 보조기억장치
- I/O 메커니즘
- 폰 노이만 아키텍쳐는 점차 '프로그램 내장식 컴퓨터(stored-program computer)' 라는 단어로 진화
- Instruction fetch와 Data operation이 동시에 일어나지 않아야 함
- 그 둘은 같은 System bus를 공유하기 때문
- 이러한 특성으로 인해 폰 노이만 병목 현상이 발생되어, 종종 성능 저하 발생
- 폰 노이만 아키텍쳐와 하버드 아키텍쳐의 가장 큰 차이는 Main memory가 아닌 캐시 아키텍쳐에 적용됨(분산 캐시 구조)
폰 노이만 병목 현상
- 프로그램 메모리와 데이터 메모리를 공유하는 시스템 버스는 폰 노이만 병목 현상을 야기함
- CPU와 메모리 사이의 제한된 데이터 전송률로 인해 발생
- 하나의 버스는 프로그램 메모리, 데이터 메모리 중 하나의 메모리에만 접근 가능하기 때문에, throughput이 CPU의 작업 속도에 한참 미치지 못함
- 특히, 적은 CPU 사용에 많은 양의 데이터를 필요로 할 때 그 성능 저하가 극에 달하게 됨
병목 현상 완화 방안
- CPU와 Main memory 사이에 cache 설치
-
분리된 캐시 혹은 명렁어와 데이터에 분산된 접근을 사용(so-called Modified Harvard architecture)
-
분기 예측 알고리즘과 로직을 사용
- 메모리 접근 횟수를 줄이기 위해 제한된 수의 CPU 스택 혹은 다른 on-chip Local memory를 사용