수업시간에 폰 노이만 구조에 대해 배웠다.
그 구조를 만든 사람이 폰 노이만이라는 사람이라는데 엄청난 사람이라 해서 관심이 가서 찾아봤다.
존 폰 노이만(John von Neumann)
- 1903년 12월 28일 ~ 1957년 2월 2일
폰 노이만의 연구에는 경계가 없었다.
헝가리 출신으로 미국에서 활동한 경제학자, 컴퓨터과학자, 수학자 이다. 양자 역학, 함수 해석학, 집합론, 위상수학, 컴퓨터 과학, 수치해석, 경제학, 통계학 등 여러 분야에 걸쳐 다양한 업적을 남겼다. 특히 연산자 이론을 양자역학에 접목시켰으며, 맨해튼 계획과 프린스턴 고등 연구소에 참여했으며, 게임 이론과 세포 자동차의 개념을 개발한 것으로도 잘 알려져 있다. - 학문의 경계를 무너뜨린 천재 '폰 노이만'
존 폰 노이만은 천재가 인정하는 천재 중 천재다. 노벨물리학상를 수상한 유진 위그너에게 기자가 수상 소감을 물으며 "헝가리에 천재가 많은 이유가 무엇이라고 생각하냐"라고 묻자 즉시 "천재가 많다고? 진정한 천재는 폰 노이만뿐"이라고 단언한 일화는 폰 노이만의 천재성을 단적으로 보여주는 사례이다.
그는 9살 때 미적분을 풀었다. 12살에는 정수론을 깨쳤다. 정수론은 유리수, 실수, 복소수는 가지지 않는 정수만의 특성을 탐구하는 학문이다. 폰 노이만이 통달한 정수론은 과거에는 관심이 적은 학문이었다. 하지만 컴퓨터가 발달하면서 정수론은 함호학으로 쓰임이 확장되면서 크게 두각을 나타내게 된다.
폰 노이만은 많은 업적을 세웠지만 대표적인 업적 중 하나인 폰 노이만 구조에 대해 알아보자.
폰 노이만 구조
현재와 같은 CPU, 메모리, 프로그램 구조를 갖는 범용 컴퓨터 구조를 확립했는데, 이 구조가 바로 폰 노이만 구조 이다.
폰 노이만 구조는 폰 노이만과 다른 사람들이 서술한 1945년 설명에 기반한 컴퓨터 아키텍처이다.
이 구조가 폰 노이만 구조인데, 그렘에 보이는 Central Processing Unit, Memory Unit 뿐만 아니라 입출력 장치, 저장장치로 이루어져 있다. 또한, 내장 메모리 순차처리 방식으로 데이터 메모리와 프로그램 메모리가 구분되어 있지 않고 하나의 버스를 가지고 있는 구조를 말한다.
폰 노이만 구조는 뛰어난 범용성이 가장 큰 장점 중 하나이다. 프로그램 내장 방식 컴퓨터이기 때문에 새로운 프로그램을 실행할 때마다 하드웨어를 변경할 필요 없이 소프트웨어만 교체하면 된다. 하드웨어 변경이란 컴퓨터에 다른 작업을 수행하기 위해 전선을 재배치하는 것을 말하는데, 이 과정에 상당한 시간과 인력이 필요해서 여러 작업들을 수행하는 데에는 한계가 있었다. 이러한 과정을 생략하고 오로지 소프트웨어만 교체하면 되기 때문에 편의성이 증가하고 다양한 작업을 수행할 수 있어 범용성이 향상되었다.
하지만 폰 노이만 구조에도 단점이 존재한다. 폰노이만 병목현상이다.
폰 노이만 구조는 인간의 사고 과정을 참고해서 설계된 구조이다.
인간은 어떤 연산을 마주쳤을 때, 머릿속의 기억을 불러와서 계산하는 과정을 통해 연산을 해결하는데, 폰 노이만 구조 역시 이러한 과정을 통해 문제를 해결한다. 하지만 이러한 과정은 기억을 불러오는 속도가 느리면 전체적으로 속도가 느려진다는 단점이 있다.
즉, 계산 속도가 기억장치 속도에 영향을 받게 된다. 이러한 현상을 폰 노이만 병목현상이라고 한다.
이를 해결하기 위한 방법으로 여러 기술과 구조들이 등장했는데 그중 대표적인 방법이 하버드 구조이다.
하버드 구조
폰 노이만 병목현상의 근본적인 원인은 폰 노이만 구조에 있었는데, 프로그램 메모리와 데이터 메모리가 물리적 구분 없이 하나의 버스를 통해 CPU와 교류하고 있기 때문이다.
이러한 구조로 인해 CPU는 명령어와 데이터에 동시에 접근할 수 없고 나열된 명령을 한 번에 하나씩 읽고 쓰게 된다.
하버드 구조는 CPU가 명령어와 데이터를 동시에 사용할 수 있도록 명령어 버스와 데이터용 버스를 물리적으로 구분했다.
이를 통해 현재 명령의 처리를 끝냄과 동시에 다음 명령을 읽어 들일 수 있기 때문에 기존의 폰 노이만 구조보다 더 빠른 속도를 낼 수 있다. 하지만 단점으로는 이러한 처리 속도를 높이려면 보다 많은 전기 회로를 필요로 한다. 두 개의 버스와 메모리를 가지게 되므로 CPU 코어에서 공간을 많이 차지한다.
현대
현대에 이르러서는 CPU의 외부적으로는 폰 노이만 구조를, 내부적으로는 하버드 구조를 적용하여 속도를 향상한 것이 많다. 그러나 이것 또한 폰 노이만 구조를 기반으로 만들어진 것이기 때문에, 병목현상만 어느 정도 해결할 뿐 메모리 속의 프로그램을 순차적으로 실행하는 근본적인 구조 자체는 변하지 않는다.
참고
https://velog.io/@nayoon-kim/%ED%8F%B0-%EB%85%B8%EC%9D%B4%EB%A7%8C
https://velog.io/@ckstn0777/%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0
https://ko.wikipedia.org/wiki/%ED%8F%B0_%EB%85%B8%EC%9D%B4%EB%A7%8C_%EA%B5%AC%EC%A1%B0
'공부방' 카테고리의 다른 글
웹 3.0 이 뭘까? (0) | 2023.06.12 |
---|---|
Copilot 과 유사한 기능을 하는 CodeWhishperer (0) | 2023.05.08 |
[리뷰] 객체지향의 사실과 오해 (0) | 2023.05.07 |
AWS Summit Seoul 2023 후기 (0) | 2023.05.07 |
딥택트(deeptact)? (0) | 2022.10.30 |