8

von Neumann 아키텍처를 기반으로 한 컴퓨터 아키텍처가 Harvard 아키텍처보다 선호되는 이유는 무엇입니까? 하버드 아키텍처는 마이크로 컴퓨터 기반의 컴퓨터 시스템과 DSP 기반의 컴퓨터 시스템 설계에 사용 되는가?von neumann vs harvard architecture

답변

10

현재 PC 용으로 설계된 최신 CPU에는 하버드와 폰 노이만 요소가 모두 포함되어 있습니다 (자세한 내용은 폰 노이만,).

L1 캐시를 보면 AMD, ARM 및 Intel 시스템에서 명령어 L1 캐시와 데이터 L1 캐시가 있고 독립적으로 병렬로 액세스 할 수 있음을 알 수 있습니다. 그게 하버드 부품입니다. 그러나 L2, L3 또는 DRAM에서는 데이터와 코드가 섞여 있습니다. 그게 폰 노이만 부분입니다.

그럼 왜 PC에는 Harvard 아키텍처가 채택되지 않았습니까? 제 의견은 말이 안된다는 것입니다. 대부분의 응용 프로그램을 프로파일 링하면 L1 명령어 캐시 누락 비율이 매우 작음을 알 수 있습니다 (). 이는 일반적으로 코드 크기가 문제가되지 않는다는 것을 의미합니다. 따라서 코드에 대해 완전히 다른 경로를 설계하는 것은 이치에 맞지 않습니다. 데이터는 매우 커질 수 있지만 코드는 실제로는 불가능합니다.

DSP에서는 별도의 코드 및 데이터 경로를 사용하는 것이 좋습니다. 이는 DSP가 주로 "스트리밍 데이터"를 사용하기 때문에 캐싱의 필요성이 적기 때문입니다. 또한 DSP 코드는 코드 크기를 증가시키는 미리 계산 된 계수를 포함 할 수 있습니다. 따라서 데이터 크기와 코드 크기간에 균형이 이루어 지므로 Harvard 아키텍처를 사용하는 것이 의미가 있습니다.

+1

* pure * Harvard는 분할 캐시뿐만 아니라 별도의 RAM (또는 ROM)을 의미합니다. 따라서 방금 컴파일 한 코드를 데이터 메모리에서 디스크로 작성하고 디스크에서 프로그램 메모리로 다시로드해야 할 수 있습니다. 코드가 고정되어 있고 ROM에있는 경우에만 의미가 있습니다. (그리고 심지어 그렇다하더라도, 통일 된 캐시는 L1이 가리킬 때까지 이해가됩니다.) 분할 캐시의 이유 중 일부는 처리량/대기 시간입니다. 두 개의 별도 32k 캐시의 결합 처리량만큼 빠른 64k 캐시를 구축 할 수 없습니다. [또한이 답변을 참조하십시오] (http://stackoverflow.com/a/38549736/224132) 작은 캐시에 대한 속임수. –

4

폰 노이만 아키텍처와 하버드 아키텍처의 근본적인 차이점은 하버드 아키텍처에서는 명령어 메모리가 데이터 메모리와 구별되지만 폰 노이만에서는 동일하다는 점입니다. 이것은 프로그램이 데이터와 같은 매체 (일반적으로 디스크와 RAM)에서 저장되고 읽혀지는 PC와 프로그램이 비 휘발성 메모리에 저장되고 데이터가 휘발성 메모리에 저장되는 마이크로 컨트롤러의 실제적인 현실을 반영합니다).