폰 노이만 구조와 하버드 구조

기운찬곰·2020년 10월 7일
3

Computer Science

목록 보기
13/27

🚀 폰 노이만 아키텍처

Von Neumann architecture. 존 폰노이만이 제시한 컴퓨터 구조. 프로그램 내장 방식이라고도 불립니다. 그 이전의 컴퓨터들은 스위치를 설치하고 전선을 연결하여 데이터를 전송하고 신호를 처리하는 식으로 프로그래밍하였습니다.

폰 노이만의 가장 큰 업적은 현재와 같은 CPU, 메모리, 프로그램 구조를 갖는 범용 컴퓨터 구조의 확립입니다. 이후에 나온 컴퓨터는 모두 폰 노이만의 설계를 기본 구조로 디자인되고 있다는 점만 보더라도 대단한 업적이죠... 👍👍

특징

  • 산술 논리 장치와 프로세서 레지스터를 포함하는 처리 장치
  • 명령 레지스터와 프로그램 카운터를 포함하는 컨트롤 유닛
  • 데이터와 명령어를 저장하는 메모리
  • 외부 대용량 스토리지
  • 입출력 매커니즘

장점

컴퓨터에 다른 작업을 시키려고 할 때 굳이 하드웨어(전선)를 재배치할 필요 없이 소프트웨어(프로그램)만 교체하면 되기 때문에 범용성이 크게 향상된다는 것입니다. 폰노이만 구조를 도입하면 프로그램을 교체하는 것으로 모든 일이 끝납니다. 이 엄청난 편의성 때문에, 현재 거의 모든 컴퓨터들은 폰노이만 구조를 따르고 있습니다.

단점

이 구조의 단점으로 폰노이만 병목현상이 있습니다.

  • 내장 메모리 순차처리 방식으로, 데이터 메모리와 프로그램 메모리가 구분되어 있지 않고 하나의 버스를 가지고 있는 구조 때문에 CPU가 명령어와 데이터에 동시 접근할 수 없습니다. 이를 해결하고자 나타난 구조가 하버드 구조입니다.

  • 또한 메모리의 값을 읽고 쓰는 구조이기 때문에 기억장치에 병목현상이 생길 수 밖에 없습니다. 이를 해결하고자 나타난 기술에는 메모리 계층 구조나 NUMA, DMA 등이 있습니다.


🌹 하버드 구조

하버드 아키텍처(Harvard architecture)는 본래 명령용 버스와 데이터용 버스로 물리적으로 분할한 컴퓨터 아키텍처를 나타내는 용어입니다 (폰 노이만 구조와 대비시킨 용어이기도 합니다).

장점

폰노이만 구조에서는 CPU가 명령어와 데이터에 동시에 접근이 불가능해서 한번에 하나씩 처리할 수 없었던 반면에, 하버드 아키텍처의 컴퓨터에서는 명령을 메모리로부터 읽는 것과 데이터를 메모리로부터 읽는 것을 동시에 할 수 있습니다. 따라서 현재 명령의 처리를 끝냄가 동시에 다음 명령을 읽어 들일 수 있어서 더 빠른 속도를 낼 수 있습니다.

단점

그렇지만 이러한 처리 속도를 높이려면 보다 많은 전기 회로가 필요합니다. 두개의 버스와 메모리를 가지게 되므로 CPU코어에서 공간을 많이 차지합니다.


🪁 현대


현대에 이르러서는 CPU의 외부적으로는 폰 노이만 구조를, 내부적으로는 하버드 구조를 적용하여 속도를 향상시킨 것이 많습니다. 그러나 이것 또한 폰노이만 구조를 기반으로 만들어진 것이기 때문에, 병목현상만 어느 정도 해결할 뿐 메모리 속의 프로그램을 순차적으로 실행하는 근본적인 구조 자체는 변하지 않습니다.


마침

다음시간에는 CPU가 명령어를 어떻게 처리하는지 알아보도록 하겠습니다.

References

profile
배움을 좋아합니다. 새로운 것을 좋아합니다.

0개의 댓글