컴퓨터 공학 스터디 W3. 컴퓨터 구조 🖥
컴퓨터 공학 스터디 주제를 찾다가 파이프 라이닝이라는게 흥미로워 보여서 파이프 라이닝에 대해 준비하려고 했는데 다음 발표자와 주제가 겹쳐서 황급히 주제를 바꾸었다.🥺 폰 노이만 구조를 딱 보았을때 '오 폰 노이만..? 존 폰 노이만..? 작년 컴구 수업때 들었는데 뭐였지..??' 라는 궁금증이 생겨서 이 주제를 한번 알아보기로 하였다.
다들 한번 씩은 들어본 그 사람 바로
이 사람은 바로 존 폰 노이만이다. 폰 노이만 구조는 이 존 폰 노이만이 제시한 컴퓨터 구조이다. 폰 노이만 구조는 데이터 메모리와 프로그램 메모리가 분리되어있지 않아 하나의 버스를 가지고 있는 구조이다. 폰 노이만 구조는 튜링이 완전하며 명령어와 데이터가 함께있는 프로그램 내장 방식의 컴퓨터 아키텍처이다. 또한 단일 저장장치 연산의 수행과 관련된 일련의 명령어와 연산에 필요 혹은 결과로 생성된 데이터를 함께 수용하는 컴퓨터 아키텍처이다.
폰 노이만 구조의 특징은 무엇이 있을까? 크게 두가지로 나누어 볼 수 있다. 첫번째는 범용성 향상이다. 하드웨어 전선을 재배치할 필요 없이 소프트웨어만 교체한다고 한다. 두번째는 병목현상이다. 병목현상은 메모리에 명령어와 데이토가 함께 존재하는 것을 말하는데 병목현상은 폰 노이만 구조의 특징이기도 하지만 문제점이기도 하다. 왜 문제가 되는지는 뒤에서 짚고 넘어가도록 하겠다.
폰 노이만 구조의 구조도는 다음과 같으며 CPU는 메모리로부터 명령을 읽고, 메모리로부터 데이터를 읽고 쓰기도 하는데 명령과 데이터는 같은 신호 버스와 메모리를 사용하기 때문에 동시에 접근하는 것은 불가능하다
폰 노이만 구조의 문제점은 CPU의 비효율적인 활용과 메모리 버스 병목현상 두가지가 있다. 폰 노이만 구조는 한번에 한 명령어 처리로 인해 CPU를 효율적으로 사용할 수 없다. 폰 노이만 구조의 특징에서 언급한 병목현상은 기억장소의 지연현상을 일컫는데 나열된 명령을 순차적으로 수행하고 그 명령은 일정한 기억장소의 값을 변경하는 작업이다. 폰 노이만 구조는 메모리의 값을 읽고 쓰는 구조이기 때문에 명령과 데이터를 접근할 때 병목현상이 생길 수 밖에 없다. 이 병목 현상을 완화하기 위해 나타난 것이 하버드 구조이다.
하버드 구조는 명령어 버스와 데이터용 버스로 물리적으로 분할한 컴퓨터 구조를 나타내는 용어이다. 명령어 버스와 데이터용 버스가 물리적으로 분할되어 있는 것이 폰 노이만 구조와의 가장 큰 차이점이다.
하버드 구조는 폰 노이만 구조에서 생기는 병목 현상이 적어 명령의 처리를 끝내자 마자 다음의 명령어를 읽어들일 수 있기 때문에 더 빠른 속도를 낼 수 있다. 하지만 이러한 처리 속도를 높이려면 많은 전기 회로가 필요하다는 단점이 있다.
이러한 하버드 구조의 단점을 해결하기 위해 나온 것이 수정된 하버드 구조입니다.
수정된 하버드 구조는 하버드 구조에서 사용했던 통합 캐시 메모리를 분리하여 하나의 블록 사이클에서 적재와 저장을 동시에 할 수 있게 해준다. 캐시 메모리 장치는 명령용과 데이터용으로 구분되어 있고 성능 좋은 CPU 설계에는 이 수정된 하버드 구조를 도입하고 있다.