폰 노이만형 아키텍처, 하버드 아키텍처

개념
단일저장장치(메모리)에 연산 수행과 관련된 일련의 명령어와 연산에 필요한 또는 연산의 결과로 생성된 데이터를 함께 수용하는 Computing Machine 모델

I.  Von Neumann Architecture와 Harvard Architecture의 개요
     가.  폰 노이만 구조의 정의

  • 단일저장장치(메모리)에 연산 수행과 관련된 일련의 명령어와 연산에 필요한 또는 연산의 결과로 생성된 데이터를 함께 수용하는 Computing Machine 모델

 

     나.  폰 노이만 구조의 특징

  • 프로그래머가 디자이한 가상 하드웨어를 기반으로 프로그램을 작성하고 H/W가 이에 맞게 동작
  • CPU는 한번에 단 하나의 명령어만 실행가능(SISD: Single Instruction Single Data; Flynn의 분류)
  • Fetch -> Decode -> Execute -> Stored”의 Cycle로 명령어 처리
  • 하나의 메모리에 명령어, 데이터를 모두 저장해 메모리 버스의 병목현상 발생 및 성능향상을 위한 pipelining 구현 곤란 -> 명령 메모리와 데이터 메모리를 별도로 갖는 Harvard 구조로 발전

 

    다.  Harvard Architecture의 정의

  • Von Neumann 구조의 문제점 극복을 위해, 명령어와 데이터 메모리가 구분되어 병렬적으로 작업이 처리되도록 구현된 Von Neumann을 변형한 컴퓨터 아키텍처
  • 메모리를 분리하여 파이프라인 사용시 최적의 환경 제공

 

    라.  Harvard Architecture의 특징

  • 하바드 아키텍쳐 컴퓨터에서는 CPU는 메모리로부터 명령어와 데이터를 동시에 사용할 수 있음
  • 현재 명령을 마치는 것과 동시에 다음 명령을 가져올 수 있기 때문에 속도가 더 빠를 수 있음
  • 데이터 메모리와 프로그램 메모리가 분리되어 각각의 어드레스/데이터 버스를 소유함
  • Stored Program이란 측면에서는 Von Neumann Architecture와 같음.

 

II.  Von Neumann Architecture와 Harvard Architecture의 비교
    가.  구조적 특징 비교
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

나.  기능적 특징 비교

구분

Von Neumann

Harvard

 목적

 CPU는 한번에 하나의 명령어만 실행가능

 병렬처리를 위해 메모리 구분

 메모리

 - 하나의 메모리 공유

 - 단일 read-write memory 사용

 - 명령어, 데이터 메모리 분리

 - 명령어 메모리는 read-only memory도  사용가능

 프로세스

 메모리 -> FI -> 메모리 -> DI -> 메모리 -> EI -> Store(메모리) 순차적으로 수행

 - 명령어 메모리 -> FI

 - Store -> 데이터 메모리

 - 동시에 명령어와 데이터 처리 가능

 장점

 공용 메모리 사용으로 상대적 구현 비용 저렴

 파이프라이닝 기술 사용을 위한 최적의 환경 제공

 단점

 파이프라이닝 시 메모리 공유 문제 발생

 - 별도 메모리 사용으로 구현 비용 증가

 - 회로 구조 복잡

 적용사례

 일반적인 범용 CPU

 - Microchip Technology의 PIC

 - Atmel AVR

 

 

III. 폰 노이만 구조의 문제점 및 해결방안
    가.  Von Neumann Architecture의 문제점

  • CPU의 비효율적 활용: 한번에 하나의 명령어 처리로 상대적으로 빠른 속도의 CPU를 효율적으로 사용하지 못함
  • 주기억장치의 병목현상 발생: 명령어와 데이터를 모두 주기억 장치에 저장하기 때문에 발생

    나.  Von Neumann Architecture의 문제점 해결방안

 

 해결방안

설명

 병렬처리 개념 도입

- 다중 프로세서/다중 데이터 스트임 처리가 가능한 병렬처리 컴퓨터 등장

- 명령어 병렬처리 기술(Pipeline, Super scalar 등) 적용

- SMP(Shared Memory Processor), MPP(Massively Parallel Processor)형태의 병렬처리

- 하나의 Processor에서 여러개의 thread를 처리하는 multi-core 및 hyper-threading 기술 출현

 주기억 장치 병목 해결

- Bus를 instruction용과 data용으로 분리

- CPU에 Memory Controller를 내장하는 방식 도입

- CPU와 주기억장치사이에 고속의 cache memory 구성

- 최근에는 Bus를 읽기용과 쓰기용으로 세분화하는 Hyper transport 기술 출현

 Harvard 아키텍처와

병행 사용

최근 폰 노이만과 하버드 구조를 함께 사용한 고성능 CPU 개발

- Harvard Architecture: 칩에 내장된 캐시 메모리는 명령어 캐시와 데이터 캐시로 분리

- Von Neumann Architecture: Cache가 적중하지 못한 경우 데이터와 명령어가 구분되지 않는 메모리에서 데이터를 로딩

 

댓글