나무 숲

폰 노이만 구조 vs 하버드 구조 vs 수정된 하버드 구조 본문

Career

폰 노이만 구조 vs 하버드 구조 vs 수정된 하버드 구조

wood.forest 2017. 3. 30. 18:30

폰 노이만 구조 Von Neumann architecture


이름 그대로 존 폰 노이만이 고안한 내장 메모리 순차처리 방식이다. 데이터 메모리와 프로그램 메모리가 구분되어 있지 않고 하나의 버스를 가지고 있는 구조를 말한다. 이 구조에서 CPU는 메모리로부터 명령을 읽고, 메모리로부터 데이터를 읽고 쓰기도 한다. 명령과 데이터는 같은 신호 버스와 메모리를 사용하기 때문에 동시에 접근하는 것은 불가능하다.

폰 노이만은 CPU, 메모리, 프로그램 구조를 갖는 프로그램 내장 방식 컴퓨터의 아이디어를 처음 제시하였고, 이후에 나온 컴퓨터는 모두 폰 노이만의 설계를 기본 구조로 디자인되고 있다. 그 이전의 컴퓨터들은 다른 작업을 하려고 할 때 스위치를 설치하고 전선을 재배치하여 데이터를 전송하고 신호를 처리하는 식으로 프로그래밍하였다. 폰 노이만 구조를 도입하면 소프트웨어(프로그램)만 교체하면 되므로 범용성이 크게 향상된다.


폰 노이만 구조의 디지털 컴퓨터에서는 ‘저장된 프로그램’(stored-program)의 개념이 도입되었다. 이는 프로그램을 구성하는 명령어들을 임의 접근이 가능한 메모리상에 순차적으로 배열하고, 동시에 조건 분기를 무제한적으로 허용한다는 것을 뜻한다. 폰 노이만 구조에서는 같은 메모리 속에 실행코드와 데이터가 따로 구분되지 않고 함께 섞여 있다.








폰 노이만 병목현상 Von-Neumann Bottleneck이란?


일반적으로 자료경로의 병목현상 또는 기억장소의 지연 현상을 이른다. 이는 나열된 명령을 순차적으로 수행하고, 그 명령은 일정한 기억장소의 값을 변경하는 작업으로 구성되는 폰 노이만 구조에서 기인한다. (메모리의 값을 읽고 쓰는 구조이기 때문에 기억장치에 병목현상이 생길 수 밖에 없다.)

이러한 문제를 완화하기 위해 도입된 기술은 메모리 계층/DMA/하버드 구조/뉴로모르픽 컴퓨팅 등이 있다,








하버드 구조 Harvard architecture



이름 그대로 하버드에서 만들었다.

명령용 버스와 데이터용 버스로 물리적으로 분할한 컴퓨터 구조를 나타내는 용어이다. (폰 노이만 구조와 대비시킨 용어이기도 하다).

이러한 구조의 컴퓨터에서는 명령을 메모리로부터 읽는 것과 데이터를 메모리로부터 읽는 것을 동시에 할 수 있다. 하버드 아키텍처의 컴퓨터는 명령의 처리를 끝내자마자 다음의 명령을 읽어들일 수 있기 때문에 보다 더 빠른 속도를 낼 수 있다고 말할 수 있다. 그렇지만 이러한 처리 속도를 높이려면 보다 많은 전기 회로가 필요하다.








수정된 하버드 구조 Modified Harvard architecture



최신의 성능이 좋은 CPU 설계에서는 하버드와 폰 노이만 두 쪽 모두의 구조를 도입하고 있다. 캐시 메모리 장치는 보통 명령용과 데이터용으로 분리되어 있는데, 이를 다소 완화시킨다. 하버드 구조는 캐시에 오류가 일어나면 주 메모리로부터 데이터를 가져 오고, 명령 캐시나 데이터 캐시에 저장한다. 폰 노이만 구조는 CPU 외부에 적용된다.






-

https://namu.wiki/w/%ED%8F%B0%20%EB%85%B8%EC%9D%B4%EB%A7%8C%20%EA%B5%AC%EC%A1%B0

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

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

https://en.wikipedia.org/wiki/Modified_Harvard_architecture

http://www.edgefxkits.com/blog/difference-between-von-neumann-and-harvard-architecture/

http://nptel.ac.in/courses/Webcourse-contents/IIT-KANPUR/microcontrollers/micro/ui/Course_home1_2.htm

http://embeddedsystemdesignhub.blogspot.kr/2009/11/introduction-to-dspic-dsc.html

http://www.cs.mcgill.ca/~cs573/fall2002/notes/lec273/lecture8/

728x90
반응형

'Career' 카테고리의 다른 글

매개변수로서의 스택 사용  (0) 2017.04.11
직업/ 국가정보원 (국정원) NIS  (0) 2017.04.09
MIT App Inventor 소개  (0) 2017.03.28
[인물] 다익스트라 Dijkstra  (1) 2017.03.19
Big endian, Little endian 에 대해  (0) 2017.03.18
Comments