본문 바로가기

임베디드

폰 노이만 구조 vs 하버드 아키텍쳐

 

요약

1. 폰 노이만 구조는 명령/데이터 메모리가 통합됨.
but 버스에서의 병목현상 발생

2. 하버드 아키텍쳐는 명령/데이터 메모리가 분리됨. 보다 빠른 읽기/쓰기 가능
but 더 복잡하고 많은 공간 차지, 명령어/데이터 캐시 분리 문제 발생

3. 최신 CPU나 마이크로프로세서 대부분은 명령/데이터 캐시를 분리해 처리속도를 높이는 방법을 채용(하버드 아키텍쳐)

 


 

하버드 아키텍쳐를 다양한 임베디드 시스템에서 채용하기 때문에 알아둘 필요가 있다

아래의 글은 위키의 내용을 비교해 보기 편하게 정리한 것이다

https://ko.wikipedia.org/wiki/%ED%8F%B0_%EB%85%B8%EC%9D%B4%EB%A7%8C_%EA%B5%AC%EC%A1%B0

 

폰 노이만 구조 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 폰 노이만 구조 폰 노이만 구조(영어: Von Neumann architecture)는 에드박의 보고서 최초 초안(First Draft of a Report on the EDVAC)에서 수학자이자 물리학자 존 폰 노이만과

ko.wikipedia.org

https://ko.wikipedia.org/wiki/%ED%95%98%EB%B2%84%EB%93%9C_%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98

 

하버드 아키텍처 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 하버드 아키텍처 하버드 아키텍처(Harvard architecture)는 본래 명령용 버스와 데이터용 버스로 물리적으로 분할한 컴퓨터 아키텍처를 나타내는 용어이다. (폰 노이

ko.wikipedia.org

 

위키에 의한 정보에 따르면,
하버드 아키텍쳐는 1944년 하버드 마크1이라는 순차 컴퓨터(최초의 범용 컴퓨터)에서 등장했고,
폰 노이만 구조는 1945년 에드박의 보고서 최초 초안이라는 문서에서 등장했다.

 

폰 노이만 구조와 하버드 아키텍쳐의 차이는 메모리 유닛의 차이에서 온다.

폰 노이만 구조는 내장 메모리 순차처리 방식이다. 데이터 메모리(램)과 프로그램 메모리(롬)이 구분되지 않고 하나의 버스를 사용한다. 이로 인한 데이터 전송률의 한계(폰 노이만 병목현상)가 존재한다.

폰 노이만 구조는 1개의 메모리 유닛을 사용한다

 

하버드 아키텍쳐는 폰 노이만 구조와 대비된다. 프로그램 메모리와 데이터 메모리가 분리된다.

등장 배경은 초기의 컴퓨터가 천공 테이프를 사용했기 때문이다. 초기의 컴퓨터는 메모리가 매우 작았기에 메모리가 온전히 CPU에 포함되었고 그것을 데이터로 취급할 수 없었다. 대신 메모리와 천공 테이프를 동시에 읽을 수 있었음.

하버드 아키텍쳐는 명령/데이터 메모리 유닛을 구분한다

 

이후 하버드 아키텍쳐는 어떻게 등장하게 되었는가?
CPU와 메모리가 발전하면서, 성능을 높이기 위해선 주 메모리의 접근 횟수를 줄여야 하게 되었기 때문이다.

이를 위한 대표적인 방법이 캐시를 사용하는 것이다. 이거랑 하버드 아키텍쳐가 무슨상관이있냐?
그것은 성능 좋은 CPU에서 명령용과 데이터용 캐시를 따로 사용하기 때문이다.

이렇게 하면 명령용 캐시와 데이터용 캐시를 동시에 읽을 수도 있고, 데이터용 캐시에 write하면서 명령어를 read 할 수도 있으므로 처리 속도가 빨라진다. 또한 두 캐시의 비트 수를 다르게 할 수도 있다. (명령어 16비트 / 데이터 8비트)

대신 그만큼 버스와 캐시를 추가로 구성해야 하므로 회로와 구조가 복잡해지고 그만큼 공간을 차지한다.

또한, 명령어/데이터 분리 캐시 문제가 발생한다. (이해 못함)

'임베디드' 카테고리의 다른 글

임베디드 레시피 독파 (1일차)  (2) 2023.12.03