본문 바로가기

학업 정리

Harvard Architecture, Von Neumann Architecture

컴퓨터에서 CPU는 메모리에서 명령과 데이터를 읽고 작업을 수행한다. 이때 컴퓨터의 구조는 크게 Havard Architecture와 Von Neumann Architecture로 구분된다. 둘의 차이는 메모리에서 명령과 데이터의 저장방식의 차이로부터 기인된다.

 

Havard Architecture

Havard Architecture는 명령과 데이터가 다른 메모리에 저장된다. 따라서 CPU는 명령과 메모리를 각각 버스를 통해 동시(1 clock)에 로드할 수 있기 때문에 처리속도가 빠르다고 할 수 있다. 하지만 회로가 복잡해지는 단점이 있다.

 

Von Neumann Architecture

Von Neumann Architecture는 명령과 데이터가 구분되지 않고 같은 메모리에 저장된다. 따라서 CPU는 명령이나 메모리를 한 버스를 통해 로드한다. 명령과 데이터의 구분은 없고, 따라서 프로그램이 스스로를 수정할 수 있다는 장점이 있다. Havard Architecture에 비해 회로가 단순하고, 메모리를 제약없이 더 자유롭게 사용할 수 있으므로 범용적이다.

 

Which one is used?

메모리는 CPU보다 동작속도가 느리다. 따라서 메모리 접근이 잦을수록 성능이 낮아진다. 이런 측면에서 보면 Havard Architecture를 사용하는 것이 좋다. 하지만 Von Neumann Architecture는 범용적으로 사용할 수 있고, 이 때문에 컴퓨터는 그동안 Von Neumann Architecture로 발전해왔다. 그렇다고 해서 Havard Architecture가 사용되지 않는 것은 아니다. 현대 컴퓨터는 CPU와 메모리의 속도 차이에 따른 성능저하를 개선하기 위해 cache를 두는데, 이 cache를 Havard Architecture로(명령어 cache와 데이터 cache로 분리) 하여 성능을 높인다고 한다. 그리고 마이크로 컨트롤러 등 간단한 장치에는 더 빠른 속도를 위해 Havard Architecture가 사용된다.