컴퓨터 구조

업데이트:

컴퓨터공학 스터디 W3에서 직접 발표한 내용을 정리한 글입니다.

정확한 정보가 부족한 상태에서 작성된 글입니다. 잘못된 정보가 있다면 댓글로 지적 부탁드립니다.

들어가기 전에

컴퓨터 구조: 컴퓨터 공학에서 컴퓨터 시스템의 기능, 조직, 구현에 대한 법칙과 방법을 통칭하는 것

위키백과에서 정의하고 있는 컴퓨터 구조는 위와 같습니다. 하지만 이 글에서 언급하는 모든 컴퓨터 구조CPU, 메모리, 프로그램 구조를 의미합니다.

프로그램 외장 방식

초기 컴퓨터들은 프로그램이 소프트웨어가 아닌 하드웨어적으로 구성되는 프로그램 외장 방식을 사용했습니다. 하지만 이 프로그램 외장 방식은 새로운 프로그램이 필요할 때마다 하드웨어를 다시 설정해야 하기 때문에 아주 비효율적이었습니다.

프로그램 외장 방식의 예시

a + b라는 연산을 하려고 합니다. 이 연산도 일종의 프로그램이라고 할 수 있습니다. 연산을 하려면 해당 연산에 맞춰 회로를 구성해야합니다. 그럼 이 프로그램은 a와 b를 더하는 연산만 할 수 있고, 사용자는 오직 a와 b에 들어갈 값만 변경할 수 있습니다.

이 불편함을 느낀 폰 노이만은 1942년 8월 맨해튼 프로젝트에 참여할 당시 발표한 논문 <전자계산기의 이론 설계 서론>을 발표했습니다. 이 논문에서 “Stored-program concept”이라는 프로그램 내장 방식이 최초로 제시되었습니다. 현재 모든 컴퓨터는 당연하게 프로그램 내장 방식을 사용하고 있습니다.

“Stored-program concept”

프로그램이라는 것이라는 존재하고, 이 프로그램은 컴퓨터 내부에 저장되어 순차적으로 실행되어야 한다.

폰 노이만 구조

에드박의 보고서 최초 초안에서 폰 노이만과 다른사람들이 서술한 1945년 설명에 기반한 컴퓨터 구조입니다. 프로그램 내장 방식이라고도 불리는데 이는 폰 노이만 구조의 가장 큰 특징이자 장점이 프로그램 내장 방식을 처음으로 적용한 것이기 때문입니다. 명령어와 데이터는 같은 시스템 버스와 메모리를 사용하기 때문에 동시에 접근하는 것은 불가능합니다. 따라서 CPU는 한번에 하나의 명령어만 실행 가능하고, 명령어 실행은 반드시 메모리에 상주하여 수행합니다.

장점

  • 폰 노이만 구조는 프로그램 내장 방식을 적용했기 때문에 하드웨어를 재설정할 필요가 없이 소프트웨어만 교체하면 되므로 범용성이 크게 향상 된다는 특장점이 있습니다. 이 때문에 현재 거의 모든 컴퓨터들은 폰 노이만 구조로 설계되고 있습니다.

  • 공용 시스템 버스와 메모리를 사용하기 때문에 설계가 단순하고, 비용이 저렴합니다.

단점

  • 한번에 하나의 명령어 처리로 CPU를 효율적으로 사용할 수 없습니다.

  • 시스템 버스가 하나이므로 순차적으로 정보를 처리하기 때문에 고속 병렬처리에 부적합합니다.

폰 노이만 병목 현상

병목 현상

어떠한 특정 요소의 한계 때문에 전체가 제한 받는 상황을 비유한 말, 일부분에 의한 전체의 하향 평준화

기본적으로 메모리의 값을 읽고 쓰는 구조이므로 CPU와 메모리의 속도 차이 때문에 병목현상이 발생하게 됩니다. 이 병목현상을 해결하기 위해 캐시 메모리를 사용합니다. 폰 노이만 구조는 데이터와 명령어를 메모리에서 하나의 시스템 버스로 읽고 쓰기 때문에 폰 노이만 병목 현상을 야기합니다. 특히 적은 CPU 사용에 많은 양의 데이터를 필요로 할 때 성능 저하가 극에 달하게 됩니다. 이를 개선하기 위해 메모리 계층 구조, DMA, 하버드 구조, 뉴로모르픽 컴퓨팅 등이 등장했습니다.

하버드 구조

하버드 대학교에 납품된 세계 최초의 범용 컴퓨터 하버드 마크 I에서 나온 컴퓨터 구조입니다. 폰 노이만 구조와 거의 동일하나 폰 노이만 병목현상을 개선하기 위해 명령어와 데이터 메모리가 분리되어 취급됩니다. 따라서 명령어, 데이터 메모리의 시스템 버스가 각각 존재합니다. 폰 노이만 구조와 대비되는 구조이고, 명령 구조상으로 RISC구조입니다.

명령어와 데이터 메모리가 분리되어 있기 때문에 명령어와 데이터가 다른 비트 수 기반을 가질 수 있습니다. 통상 소형 기기(스마트폰 등)에서 명령어 메모리는 플래시 메모리를 사용하고, 데이터 메모리는 SRAM을 사용하는 하버드 구조가 사용됩니다.

장점

  • 명령어를 읽는 동시에 데이터를 읽거나 쓸 수 있어 성능이 우수합니다.

  • 폰 노이만 병목현상이 적어 명령의 처리를 끝내자마자 다음의 명령을 읽어들일 수 있기 때문에 더 빠른 속도를 낼 수 있습니다.

  • 상대적으로 적은 수의 명령어와 주소 모드를 가집니다.

  • 파이프라이닝 기술을 사용할 수 있는 환경을 제공하여, CPU를 효율적으로 활용할 수 있습니다.

단점

  • 버스 시스템이 복잡하고, 많은 전기 회로가 필요해 설계가 어렵습니다.

  • 별도 메모리 사용으로 비용이 증가합니다.

  • 명령어 중에 데이터가 함께 혼합된 경우, 예를 들어 폰트 데이터나 표시할 문장 데이터, 메뉴 데이터 등은 명령어와 함께 존재해야 하는데, 프로세서가 이러한 데이터를 읽어들이려고 시도하면 엄연히 ‘데이터’를 읽으려 하므로 데이터 메모리에서 이 내용을 찾으려 합니다. 그런데 이 데이터들은 명령어 메모리에 존재하기 때문에 명령어 메모리로부터 데이터를 읽을 수 있는 특수 상황의 명령어가 필요하고, 더구나 명령어 메모리와 데이터 메모리의 비트수가 다른 경우 주소를 변환하는 과정을 거쳐야 합니다.

현재 컴퓨터 구조

최근 컴퓨터는 폰 노이만 구조와 하버드 구조를 모두 적용하고 있습니다. 아래 사진과 같이 CPU 외부에는 폰 노이만 구조를 적용하고, 캐시 메모리에 하버드 구조를 적용합니다.

Q&A

출처

위키백과

나무위키

https://m.blog.naver.com/PostView.nhn?blogId=mothra&logNo=50029948978&proxyReferer=https:%2F%2Fwww.google.com%2F

https://prezi.com/pphlxnhtxf8y/presentation/

https://hackerspace.tistory.com/entry/기본-설계-구조

https://needjarvis.tistory.com/431

https://woodforest.tistory.com/164

https://devfon.tistory.com/63

https://needjarvis.tistory.com/437?category=619245

https://jsy6036.tistory.com/entry/폰-노이만-구조와-하버드-구조

https://sangcho.tistory.com/entry/폰-노이만-구조-vs-하버드-구조

http://www.ktword.co.kr/abbr_view.php?m_temp1=3609

댓글남기기