- 응용
- 유래
- 모델
- 수정 된 하버드 아키텍처
- 하버드 아키텍처는 어떻게 작동합니까?
- 건축의 추가
- 메모리 주소
- 메모리 시스템
- 이점
- 보호 수준
- 더 빠른 속도
- 단점
- 복잡성과 비용 증가
- 거의 사용
- 메모리 공간의 오용
- 참고 문헌
하버드 아키텍처는 프로그램의 데이터 및 명령들은 독립적으로 어드레스 할 수있는 메모리의 개별 셀에 위치하고있는 컴퓨터의 구성이다.
즉, 명령 또는 지침과 데이터에 대한 두 개의 별도 영역을 포함하는 컴퓨터 시스템에 사용되는 용어입니다. 따라서이 아키텍처의 주요 기능은 물리적으로 분리 된 데이터를 저장하여 명령 및 데이터에 대해 서로 다른 신호 경로를 제공하는 것입니다.

출처 : Nessa los-자체 작업, CC BY-SA 3.0, commons.wikimedia
이 아키텍처에서는 두 부분이 두 개의 개별 구조로 구성되어 있기 때문에 시스템의이 두 세그먼트의 형식과 미디어가 동일하지 않을 수 있습니다.
하버드 아키텍처의 일부 예는 프로그램 명령이 한 매체 (예 : 펀치 카드)에있을 수 있고 저장된 데이터가 다른 매체 (예 : 자기 테이프)에있을 수있는 초기 컴퓨터 시스템을 포함합니다.
응용
이러한 유형의 아키텍처는 비디오 및 오디오 처리 제품에 광범위하게 적용됩니다. 비디오 및 오디오를 처리하는 각 도구를 사용하면 Harvard 아키텍처의 모습을 볼 수 있습니다.
Analog Devices Blackfin 프로세서는 주요 용도로 사용되는 특정 장치입니다. 다른 전자 칩 기반 제품에서도 Harvard 아키텍처가 널리 사용됩니다.
그러나 대부분의 컴퓨터는 von Neumann 아키텍처를 사용하고 CPU 캐시를 사용하여 중첩을 달성합니다.
유래
1940 년대에 하워드 에이 켄 (Howard Aiken)의지도하에 하버드 대학에서 수행 된 작업은 하버드 아키텍처 개념이 탄생 한 용어 인 하버드 마크 I (Harvard Mark I)라는 원래 릴레이 기반 컴퓨터를 만들었습니다.
이 컴퓨터는 데이터와 명령어를 저장하기 위해 별도의 메모리 장치를 사용했습니다. 그런 다음이 아키텍처에 상당한 발전이있었습니다.
Aiken은 데이터 및 프로그램 명령에 대해 각각 별도의 버스를 사용하여 별도의 메모리를 사용하도록 권장했습니다.
원래의 Harvard 아키텍처는 일반적으로 천공 테이프에 대한 지침과 전기 기계 카운터에 데이터를 저장했습니다.
이러한 초기 머신의 데이터 저장은 전적으로 중앙 처리 장치 내에있었습니다. 반면에 그들은 데이터로 저장되는 명령에 대한 액세스 권한을 부여하지 않았습니다. 운영자는 프로그램을로드해야했습니다.
Harvard 아키텍처는 각각 고유 한 주소 버스가 있기 때문에 데이터를 처리하고 명령을 동시에 실행할 수 있습니다.
모델
이 모델은 정보 버스와 스토리지가 데이터와 프로그램 코드를 위해 물리적으로 분리되어있는 것이 특징입니다.
버스가 자율적으로 작동하므로 데이터 및 프로그램 명령을 동시에 얻을 수 있으므로 단일 버스 설계에 비해 속도가 향상됩니다.
따라서 Harvard 모델은 더 복잡한 것으로 밝혀졌습니다. 그러나 버스를 독립적으로 사용하면 폰 노이만 아키텍처에서 발생하는 병목 현상을 피할 수 있습니다.
명령을 검색하고 데이터에 액세스하는 것이 단일 메모리 버스를 놓고 싸울 필요가 없기 때문에 컴퓨터는 특정 복잡한 회로에 대해 더 빠를 수 있습니다.
작동하려면 두 개의 메모리 주소가 있습니다. 따라서 기계 명령어 용 메모리 레지스터와 데이터 용 메모리 레지스터가 있습니다.
버스를 사용하여 명령어와 데이터를 메모리로 이동하는 폰 노이만 아키텍처와 달리 하버드 아키텍처는 데이터에 대해 하나의 메모리 영역을 사용하고 명령어에 대해 다른 메모리 영역을 사용합니다.
수정 된 하버드 아키텍처
오늘날의 컴퓨터에서는 프로그램과 데이터가 사용하는 메모리 영역을 물리적으로 분리하지 않습니다. 이런 이유로 그들은 기술적으로 Von Neumann 아키텍처를 가지고 있다고 말할 수 있습니다.
그러나 수정 된 Harvard 아키텍처는 오늘날의 컴퓨터를 가장 잘 표현합니다.
현재 처리 장치는 메모리를 공유하지만 고유 한 명령과 같은 특정 요소가있어 데이터가 명령과 얽 히지 않도록합니다. 이를 수정 된 하버드 아키텍처라고합니다.
따라서 수정 된 Harvard 아키텍처에는 코드 용과 데이터 용으로 하나씩 두 개의 개별 버스가 있지만 메모리 자체는 물리적으로 공유되는 요소입니다.
메모리 컨트롤러는 변경 사항이있는 곳입니다.이 장치는 메모리를 처리하는 장치이고 사용 방법이기 때문입니다.
최신 컴퓨터 설계는 수정 된 Harvard 아키텍처에서 지원됩니다. 마이크로 컨트롤러 및 디지털 신호 처리에 사용됩니다.
하버드 아키텍처는 어떻게 작동합니까?
Harvard 아키텍처에는 프로그램과 데이터에 대해 서로 다른 메모리 주소 영역이 있습니다.
그 결과 버스와 제어 회로를 사용하여 프로그램 메모리에서 정보 흐름을 처리하고 별도의 회로를 사용하여 데이터 메모리로의 정보 흐름을 처리 할 수있는 방식으로 회로를 설계 할 수 있습니다.
별도의 버스를 사용한다는 것은 데이터를 데이터 메모리로 가끔 전송해도 중단되지 않고 프로그램을 검색하고 실행할 수 있음을 의미합니다.
예를 들어,이 아키텍처의 간단한 버전에서 프로그램 복구 유닛은 프로그램 시퀀스에서 다음 명령어를 검색하고 이전 프로그램 명령어의 일부일 수있는 데이터 전송 작업을 병렬로 수행하는 데 바쁠 수 있습니다. .
이 수준에서 Harvard 아키텍처는 일반적으로 데이터 메모리에 프로그램 코드를 넣고 거기에서 실행할 수 없기 때문에 제한이 있습니다.
건축의 추가
더 많은 복잡한 기존 변형을 단순한 형태의 Harvard 아키텍처에 추가 할 수 있습니다.
일반적인 추가 사항은 프로그램의 데이터 버스에 명령어 캐시를 추가하는 것입니다. 따라서 명령어 실행 장치는 더 느린 메모리로 이동하지 않고도 프로그램의 다음 단계에 더 빠르게 액세스 할 수 있습니다. 필요할 때마다 프로그램의.
메모리 주소
Harvard 아키텍처 컴퓨터는 명령어와 데이터 주소 영역이 다릅니다. 명령어 주소 1은 데이터 주소 1과 같은 영역이 아닙니다.
명령어 주소 1은 24 비트 값을 포함 할 수있는 반면, 데이터 주소 1은 24 비트 값의 일부가 아닌 8 비트 바이트를 나타낼 수 있습니다.
메모리 시스템
명령어와 데이터를위한 별도의 메모리 영역이 있기 때문에 신호와 코드 및 데이터의 메모리 저장 공간을 분리하여 각 메모리 시스템에 동시에 액세스 할 수 있습니다.
이점
-데이터와 명령이 서로 다른 버스를 통해 전송되기 때문에 전송 손상 가능성이 적습니다.
-데이터 및 지침은 동일한 방식으로 액세스됩니다.
-지침 및 데이터에 대해 다른 저장 매체를 허용합니다. 예를 들어 저렴한 ROM에 명령어를 넣고 값 비싼 RAM에 데이터를 넣을 수 있습니다.
-두 메모리는 서로 다른 셀 크기를 사용할 수 있으므로 자원을 효과적으로 사용할 수 있습니다.
-더 큰 메모리 대역폭을 가지고 있으며 명령어와 데이터를위한 별도의 메모리를 가지므로 더 예측 가능합니다.
보호 수준
메모리 관리 장치가없는 시스템에서는 데이터를 코드로 시작할 수 없으므로 시스템이 버퍼 오버플로와 같은 수많은 문제에 노출되므로 추가적인 보호 수준을 제공합니다.
그렇기 때문에 전자 레인지 나 시계와 같은 소형 임베디드 시스템에서 인기가 있습니다.
더 빠른 속도
Harvard 아키텍처는 명령을 읽고 동시에 빠른 속도로 데이터 메모리에 액세스 할 수 있습니다.
데이터와 명령을 동시에 획득하여 별도의 메모리에 저장하고 다른 버스를 통해 이동할 수 있기 때문에 더 나은 성능을 제공합니다.
Harvard 아키텍처는 일반적으로 코드와 데이터 메모리간에 리소스를 공유 할 필요가없는 한 특정 수준의 복잡성을 가진 컴퓨터가 Von Neumann 아키텍처보다 빠르게 실행되도록 도와줍니다.
핀 제한 또는 기타 요인으로 인해 단일 버스를 사용하여 두 메모리 공간에 모두 액세스해야하는 경우 이러한 이점은 크게 무효화 될 수 있습니다.
단점
복잡성과 비용 증가
Harvard 아키텍처의 문제점은 하나의 데이터 버스 대신 두 개가 필요하기 때문에 매우 복잡하고 비용이 많이 든다는 것입니다.
2- 버스 컴퓨터를 생산하는 것은 훨씬 더 비싸고 제조하는 데 더 오래 걸립니다. 두 개의 버스를위한 제어 장치가 필요하며, 이는 더 복잡하고 시간과 개발 비용이 많이 듭니다.
이는 제조업체에게 더 복잡한 구현을 의미합니다. CPU에 더 많은 핀, 더 복잡한 마더 보드, 중복 RAM 칩 및 더 복잡한 캐시 디자인이 필요합니다.
거의 사용
Harvard 아키텍처는 널리 사용되지 않아 구현하기가 더 어렵습니다. 이것이 CPU 외부에서 거의 사용되지 않는 이유입니다.
그러나이 아키텍처는 때때로 CPU 내에서 캐시를 관리하는 데 사용됩니다.
메모리 공간의 오용
데이터 메모리에 여유 공간이 있으면 명령어를 저장하는 데 사용할 수 없으며 그 반대의 경우도 마찬가지입니다.
그러므로 그들 각각에게 바쳐진 특별한 기억들은 그들의 제조에서 신중하게 균형을 이루어야합니다.
참고 문헌
- 차이점 나열 (2019). Von Neumann과 Harvard Architecture의 차이점은 무엇입니까? 출처 : listdifferences.com.
- PC 매거진 (2019). 정의 : 하버드 건축. 출처 : pcmag.com.
- Techopedia (2019). 하버드 건축. 출처 : ceilingpedia.com.
- 스콧 손튼 (2018). Von-Neumann과 Harvard 아키텍처의 차이점은 무엇입니까? 마이크로 컨트롤러 팁. 출처 : microcontrollertips.com.
- 무료 백과 사전, Wikipedia (2019). 하버드 건축. 출처 : en.wikipedia.org.
- 미친 프로그래머 (2019). Von Neumann과 Harvard Architecture의 차이점. 출처 : thecrazyprogrammer.com.
