폰 노이만 구조
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
폰 노이만 구조는 CPU, 메모리, 프로그램 구조를 갖는 범용 컴퓨터 구조로, 1940년대 폰 노이만이 제안하여 오늘날 대부분의 컴퓨터 아키텍처의 기본이 되었다. 이 구조는 명령어와 데이터를 메모리에 함께 저장하고, CPU가 순차적으로 명령어를 처리하는 방식으로 작동한다. 하지만, CPU와 메모리 간의 데이터 전송 속도 차이로 인한 폰 노이만 병목 현상이 발생하여 성능 저하를 야기하며, 이를 해결하기 위해 캐시, 수정된 하버드 아키텍처, 멀티코어 프로세서 등의 기술이 사용된다. 폰 노이만 구조에 대한 비판과 대안으로 데이터 플로우 머신과 같은 비 폰 노이만형 아키텍처가 연구되고 있다.
더 읽어볼만한 페이지
- 참조 모형 - 더블린 코어
더블린 코어는 웹 자원 검색 효율성을 높이는 메타데이터 표준으로, 15개 기본 요소로 구성되어 확장되었고, 국제 표준으로 제정되었으며, DCMI에서 관리된다. - 참조 모형 - 인터넷 프로토콜 스위트
인터넷 프로토콜 스위트는 인터넷 통신을 위한 핵심 기술로, 응용 계층, 전송 계층, 인터넷 계층, 링크 계층으로 구성되어 TCP와 IP를 중심으로 데이터를 주고받으며, 하드웨어 및 소프트웨어 환경에 종속되지 않고 다양한 플랫폼에서 구현된다. - 존 폰 노이만 - 게임 이론
게임 이론은 참여자들의 전략적 상호작용을 수학적으로 분석하는 모델로, 20세기 중반 폰 노이만과 모르겐슈테른의 연구로 학문 분야가 되었으며 내시 균형 등의 발전을 거쳐 다양한 분야에 응용되고 여러 학자들이 노벨 경제학상을 수상했다. - 존 폰 노이만 - 폰 노이만 대수
폰 노이만 대수는 C* 대수 또는 복소 힐베르트 공간 위의 유계 작용소 C* 대수로 정의되며, 약하게 닫힌 *-대수, 이중 가환자, 쌍대 공간을 갖는 C*-대수 등으로 정의될 수 있고, 폰 노이만 인자로 분류되며 매듭 이론, 통계 역학 등 다양한 분야에 응용된다. - 플린 분류 - MIMD
MIMD는 여러 프로세서가 각기 다른 명령어와 데이터를 처리하는 병렬 컴퓨팅 구조로, 공유 메모리 및 분산 메모리 모델로 나뉘며, 높은 병렬성을 요구하는 다양한 분야에 활용되지만 프로그래밍 복잡성 등의 과제를 안고 있다. - 플린 분류 - SIMD
SIMD(Single Instruction, Multiple Data)는 단일 명령어로 여러 데이터를 처리하는 병렬 처리 기술로, 멀티미디어 처리 성능 향상에 기여했으며 이미지 처리, 오디오 DSP 등에서 활용되지만, 모든 알고리즘에 적용하기 어렵고 하드웨어 제약 등의 단점도 존재한다.
폰 노이만 구조 | |
---|---|
컴퓨터 구조 | |
유형 | 컴퓨터 아키텍처 |
주요 특징 | |
특징 | 프로그램과 데이터가 동일한 메모리 공간을 공유 |
개발 | |
개발자 | 존 폰 노이만 |
개발 시기 | 1945년 |
핵심 개념 | |
공통 주소 공간 | 중앙 처리 장치 (CPU)와 메모리가 단일 주소 공간을 공유 |
명령어 처리 | 명령어를 메모리에서 가져와 순차적으로 실행 |
프로그램 저장 | 프로그램 코드를 데이터와 동일한 메모리에 저장 |
영향 | |
영향 | 대부분의 현대 컴퓨터는 폰 노이만 구조를 따름 |
주요 장점 | |
장점 | 유연성: 프로그램의 수정 및 확장이 용이 단순성: 비교적 간단한 구조로 구현 가능 |
주요 단점 | |
단점 | 폰 노이만 병목 현상: CPU와 메모리 간 데이터 전송 속도 제한 보안 취약성: 코드와 데이터가 같은 공간에 있어 악성 코드 실행 위험 증가 |
관련 용어 | |
관련 용어 | 하버드 아키텍처 병렬 컴퓨팅 캐시 메모리 |
2. 역사
폰 노이만 구조의 역사는 컴퓨터 발전 과정에서 중요한 전환점으로, 폰 노이만을 비롯한 여러 선구자들의 공헌으로 이루어졌다.
초창기 컴퓨터는 고정된 프로그램을 사용했기 때문에 프로그램을 변경하려면 기계를 다시 배선하거나 재설계해야 하는 번거로움이 있었다. 예를 들어, ENIAC은 프로그램을 설정하고 디버깅하는 데 3주나 걸릴 정도로 복잡했다.[5] 이러한 문제점을 해결하기 위해 저장 프로그램 방식이 제안되었는데, 이는 명령어 집합을 메모리에 저장하여 계산을 수행하고 자기 수정 코드를 가능하게 하는 혁신적인 방식이었다.
앨런 튜링은 1936년 "계산 가능한 수에 관하여, 결정 문제에의 적용"이라는 논문에서 튜링 머신이라는 가상 기계를 제시하며 저장 프로그램 방식의 이론적 토대를 마련했다.[7] 폰 노이만은 튜링과의 교류를 통해 그의 아이디어에 영향을 받았을 것으로 추정된다.
콘라트 추제 역시 1936년에 기계 명령어를 데이터와 동일한 저장소에 저장할 수 있다는 아이디어를 특허 출원하며 독자적인 연구를 진행했다.[8]
J. 프레스퍼 에커트와 존 모클리는 ENIAC을 개발하면서 저장 프로그램 개념을 구체화했다.[9][10] 1944년, 에커트는 데이터와 프로그램을 수은 금속 지연선 메모리에 저장하는 EDVAC을 제안하며 실용적인 저장 프로그램 컴퓨터 개발의 첫걸음을 내딛었다.
폰 노이만은 맨해튼 프로젝트 참여 중 ENIAC 프로젝트에 합류하여 EDVAC 설계에 참여했고, "EDVAC에 관한 보고서 초안"을 작성했다.[4] 이 보고서는 폰 노이만의 이름으로 배포되어 널리 알려졌으며, 이후 컴퓨터 설계에 큰 영향을 미쳤다.[11]
하지만 잭 코플랜드와 폰 노이만의 동료 스탠 프랑켈은 폰 노이만이 튜링의 아이디어를 잘 알고 있었으며, 기본적인 개념은 튜링에게서 비롯되었다고 증언하며, '폰 노이만 머신'이라는 용어가 역사적으로 부적절하다고 지적했다.[12][13] 폰 노이만과 튜링의 논문은 모두 저장 프로그램 컴퓨터를 설명했지만, 폰 노이만의 논문이 더 널리 배포되어 "폰 노이만 아키텍처"라는 명칭이 굳어졌다.
폰 노이만의 "초안" 보고서는 많은 대학과 기업에서 컴퓨터를 제작하는 데 사용되었다.[17] 그러나 ILLIAC과 ORDVAC만이 호환되는 명령어 집합을 가졌다.
초기 컴퓨터 개발은 여러 기관에서 경쟁적으로 진행되었다. 다음은 주요 컴퓨터 개발 연대기이다.
컴퓨터 이름 | 개발 기관 | 가동 시작일 |
---|---|---|
ARC2 | 런던 대학교 버크벡 칼리지 | 1948년 5월 12일[18] |
맨체스터 베이비 | 영국 맨체스터 빅토리아 대학교 | 1948년 6월 21일 |
EDSAC | 영국 케임브리지 대학교 | 1949년 5월 |
맨체스터 마크 1 | 영국 맨체스터 대학교 | 1949년 6월 |
CSIRAC | 영국 연방 과학 산업 연구 기구 | 1949년 11월 |
MESM | 키예프 전자기술 연구소 | 1950년 11월 |
EDVAC | 탄도 연구소, 애버딘 시험장 | 1951년 |
IAS 머신 | 고등 연구소 | 1951년 |
ORDVAC | 일리노이 대학교 메릴랜드주 애버딘 시험장 | 1951년 11월[19] |
MANIAC I | 로스앨러모스 국립 연구소 | 1952년 3월 |
ILLIAC | 일리노이 대학교 어배너-섐페인 | 1952년 9월 |
BESM-1 | 모스크바 | 1952년 |
AVIDAC | 아르곤 국립 연구소 | 1953년 |
ORACLE | 오크리지 국립 연구소 | 1953년 6월 |
BESK | 스톡홀름 | 1953년 |
JOHNNIAC | 랜드 연구소 | 1954년 1월 |
DASK | 덴마크 | 1955년 |
WEIZAC | 바이츠만 과학 연구소 이스라엘 레호보트 | 1955년 |
PERM | 뮌헨 | 1956년 |
SILLIAC | 시드니 | 1956년 |
IBM SSEC는 1948년 1월에 공개 시연되었지만, 완전 전자식이 아닌 부분적으로 전기 기계식이었고 메모리가 제한적이었다.[20][21][22] ARC2는 1948년 5월 12일에 가동되었으며, 최초의 회전 드럼 저장 장치를 갖추고 있었다.[18][23][24] 맨체스터 베이비는 1948년 6월 21일에 저장된 프로그램을 실행한 최초의 완전 전자식 컴퓨터였다. ENIAC은 1948년 9월 16일에 폰 노이만을 위해 아델 골드스타인이 작성한 프로그램을 실행하는 방식으로 시연되었다.
BINAC은 1949년에 완성되었고, 맨체스터 마크 1은 1949년 10월에, EDSAC은 1949년 5월 6일에 첫 번째 프로그램을 실행했다. EDVAC은 1949년 8월에 인도되었지만, 1951년까지 문제를 겪었다. CSIR Mk I는 1949년 11월에, SEAC는 1950년 4월에, Pilot ACE는 1950년 5월 10일에, SWAC는 1950년 7월에, Whirlwind는 1950년 12월에 완성되어 1951년 4월에 사용되었다. 최초의 ERA Atlas는 1950년 12월에 설치되었다.
폰 노이만 구조라는 명칭은 폰 노이만의 보고서에서 유래했지만, 에커트와 모클리의 공헌을 경시한다는 비판도 있다.[31] 모리스 윌크스는 자서전에서 ENIAC 관련 정보가 군사 기밀이었던 반면, 폰 노이만의 초고는 그렇지 않아 많은 사람들이 폰 노이만을 발명자로 여기게 된 것은 불공정한 결과였다고 주장한다.[32] EDVAC의 개발은 지연되었고, 세계 최초의 프로그램 내장 방식 컴퓨터는 SSEM이며, 실용적인 구현은 EDSAC이었다. EDVAC의 지연은 에커트와 모클리의 이탈이 큰 이유로 여겨진다.[34][35] 폰 노이만의 초고에 가까운 머신으로는 EDVAC 외에 IAS 머신이 있다.
이케다 토시오는 1965년 보고서에서 폰 노이만이 확립한 프로그램 내장 방식이 전자 계산기의 가장 기본적인 개념이며, 컴퓨터는 모두 2진법이어야 한다고 말했다고 설명한다.[38]
2. 1. 폰 노이만 구조의 등장 배경
폰 노이만 구조는 CPU, 메모리, 프로그램 구조를 갖는 범용 컴퓨터 구조로, 폰 노이만의 가장 큰 업적으로 평가받는다. 폰 노이만은 맨해튼 프로젝트 참여 중 발표한 논문에서 프로그램 내장 방식 컴퓨터의 아이디어를 처음 제시했고, 이후 케임브리지 대학교의 의뢰로 세계 최초의 프로그램 내장 방식 컴퓨터 EDSAC을 제작한다.[5] 이후 제작된 컴퓨터들은 모두 폰 노이만의 설계를 기본 구조로 채택하였다.최초의 컴퓨터는 고정된 프로그램을 사용했기 때문에, 프로그램을 변경하려면 기계를 다시 배선하거나 재설계해야 했다. ENIAC의 경우 프로그램을 설정하고 디버깅하는 데 3주가 걸릴 정도로 복잡하고 노동 집약적인 과정이었다.[5] 이러한 상황은 저장 프로그램 컴퓨터의 제안으로 바뀌었는데, 이 컴퓨터는 명령어 집합을 포함하고 프로그램이라 불리는 일련의 명령어를 메모리에 저장하여 계산을 수행하며, 자기 수정 코드를 가능하게 했다.
앨런 튜링은 1936년 "계산 가능한 수에 관하여, 결정 문제에의 적용"이라는 논문에서 튜링 머신을 묘사했는데, 이 가상 기계는 지침과 데이터를 모두 포함하는 무한 저장소(메모리)를 가지고 있었다.[7] 존 폰 노이만은 튜링과 교류하며 그의 1936년 논문을 알게 되었을 것으로 추정된다. 같은 해 콘라트 추제는 기계 명령어를 데이터와 동일한 저장소에 저장할 수 있다는 아이디어를 특허 출원했다.[8]
J. 프레스퍼 에커트와 존 모클리는 ENIAC을 개발하면서 1943년 12월에 저장 프로그램 개념에 대해 작성했다.[9][10] 1944년 1월, 에커트는 데이터와 프로그램을 새로운 주소 지정 가능한 메모리 장치인 수은 금속 지연선 메모리에 저장하는 EDVAC을 제안했다.
폰 노이만은 맨해튼 프로젝트 참여 중 ENIAC 프로젝트에 합류하여 EDVAC 설계 토론에 참여했고, 에커트와 모클리의 작업을 바탕으로 "EDVAC에 관한 보고서 초안"을 작성했다.[4] 이 보고서는 폰 노이만의 이름으로 배포되어 널리 읽혔고, 이후 컴퓨터 설계에 큰 영향을 미쳤다.[11]
잭 코플랜드는 전자 저장 프로그램 디지털 컴퓨터를 '폰 노이만 머신'이라고 부르는 것은 역사적으로 부적절하다고 주장하며,[12] 폰 노이만의 동료 스탠 프랑켈은 폰 노이만이 튜링의 1936년 논문의 중요성을 잘 알고 있었고, 기본적인 개념은 튜링에게서 비롯되었다고 강조했다.[13] 폰 노이만과 튜링의 논문은 모두 저장 프로그램 컴퓨터를 설명했지만, 폰 노이만의 논문이 더 널리 배포되어 그가 제시한 컴퓨터 아키텍처는 "폰 노이만 아키텍처"로 알려지게 되었다.
폰 노이만 구조라는 명칭은 존 폰 노이만이 작성한 보고서(『EDVAC에 관한 보고서의 초고』)에서 유래했지만, 일각에서는 에커트와 모클리의 공헌을 경시한다는 비판도 제기되고 있다.[31]
2. 2. 폰 노이만과 튜링의 기여
폰 노이만은 현재 사용되는 CPU, 메모리, 프로그램 구조를 가진 범용 컴퓨터 구조를 확립하는 데 큰 기여를 했다.[4] 폰 노이만은 맨해튼 프로젝트에 참여하던 중 발표한 논문에서 프로그램 내장 방식 컴퓨터의 아이디어를 처음 제시했고, 7년 후 케임브리지 대학교의 의뢰로 세계 최초의 프로그램 내장 방식 컴퓨터 EDSAC을 제작했다.[4] 이후 제작된 컴퓨터들은 모두 폰 노이만의 설계를 기본 구조로 채택했다.앨런 튜링은 1936년 "계산 가능한 수에 관하여, 결정 문제에의 적용"이라는 논문에서 튜링 머신이라 불리는 가상의 기계인 "보편 튜링 머신"을 묘사했다.[7] 이 기계는 지침과 데이터를 모두 포함하는 무한 저장소(오늘날의 메모리)를 가지고 있었다. 폰 노이만은 1935년 케임브리지에서 객원 교수로 있던 튜링과 1936년부터 1937년까지 프린스턴 대학교의 고등 연구소에서 튜링이 박사 과정을 밟는 동안 튜링과 알게 되었다.[7]
J. 프레스퍼 에커트와 존 모클리는 펜실베이니아 대학교의 무어 전기 공학 학교에서 ENIAC을 개발하면서 1943년 12월에 저장 프로그램 개념에 대해 썼다.[9][10] 1944년 1월, 에커트는 데이터와 프로그램을 새로운 주소 지정 가능한 메모리 장치인 수은 금속 지연선 메모리에 저장하는 EDVAC을 계획했다. 폰 노이만은 1944년 여름 ENIAC 프로젝트에 합류하여 EDVAC 설계 토론에 참여했고, 에커트와 모클리의 작업을 바탕으로 "EDVAC에 관한 보고서 초안"을 작성했다.[4]
잭 코플랜드는 전자 저장 프로그램 디지털 컴퓨터를 '폰 노이만 머신'이라고 부르는 것은 "역사적으로 부적절하다"고 주장한다.[12] 폰 노이만의 동료 스탠 프랑켈은 폰 노이만이 1943년 또는 1944년경에 튜링의 1936년 논문의 중요성을 잘 알고 있었으며, 폰 노이만은 기본적인 개념이 튜링에게서 비롯되었다고 강조했다고 전했다.[13]
폰 노이만과 튜링의 논문은 모두 저장 프로그램 컴퓨터를 설명했지만, 폰 노이만의 논문이 더 널리 배포되어 그가 제시한 컴퓨터 아키텍처는 "폰 노이만 아키텍처"로 알려지게 되었다.
폰 노이만 구조라는 명칭은 아이디어를 정리한 보고서(『EDVAC에 관한 보고서의 초고』)가 존 폰 노이만에 의해 작성된 데서 유래한다.[31] 하지만, 이 명칭이 폰 노이만에게 과도한 명예를 부여하고, 실제로 머신을 개발한 에커트와 모클리를 경시한다는 비판도 있다.[31]
2. 3. 초기 컴퓨터 개발 경쟁
폰 노이만의 가장 큰 업적은 현재와 같은 CPU, 메모리, 프로그램 구조를 갖는 범용 컴퓨터 구조를 확립한 것이다. 폰 노이만은 맨해튼 프로젝트에 참여할 당시 발표한 논문 <전자계산기의 이론 설계 서론>에서 CPU, 메모리, 프로그램 구조를 갖는 프로그램 내장 방식 컴퓨터의 아이디어를 처음 제시하였고, 7년 후 케임브리지 대학교의 의뢰로 세계 최초의 프로그램 내장 방식 컴퓨터 EDSAC을 제작한다.[4] 이후에 나온 컴퓨터는 모두 폰 노이만의 설계를 기본 구조로 디자인되고 있다.
최초의 컴퓨터는 고정된 프로그램을 가지고 있었다. 단순성을 위해, 혹은 훈련 목적으로 매우 단순한 컴퓨터 중 일부는 여전히 이 설계를 사용한다. 예를 들어, 책상용 계산기는 (원칙적으로) 고정 프로그램 컴퓨터이다. 기본적인 수학은 할 수 있지만, 워드 프로세서나 게임을 실행할 수는 없다. 고정 프로그램 기계의 프로그램을 변경하려면 기계를 다시 배선하거나, 구조를 변경하거나, 재설계해야 한다. 최초의 컴퓨터는 특정 작업에 대해 "프로그래밍"되었다기보다는 "설계"되었다고 할 수 있다. "재프로그래밍"은 (가능할 경우) 순서도와 종이 노트를 시작으로 세부적인 엔지니어링 설계를 거쳐, 물리적으로 기계를 다시 배선하고 재조립하는 종종 고된 과정이 따르는 노동 집약적인 과정이었다. ENIAC에서 프로그램을 설정하고 디버깅하는 데 3주가 걸릴 수 있었다.[5]
저장 프로그램 컴퓨터의 제안으로 이러한 상황이 바뀌었다. 저장 프로그램 컴퓨터는 설계상 명령어 집합을 포함하며, 프로그램이라 불리는 일련의 명령어를 메모리에 저장하여 계산의 세부 사항을 설명할 수 있다.
수학자 앨런 튜링은 케임브리지 대학교의 맥스 뉴먼의 강의를 통해 수리 논리의 문제에 대한 경고를 받고 1936년에 "계산 가능한 수에 관하여, 결정 문제에의 적용"이라는 논문을 작성하여 ''런던 수학회 회보''에 게재했다.[7] 그 논문에서 그는 "튜링 머신"이라고 알려진 가상의 기계인 "보편 튜링 머신"을 묘사했다. 이 가상 기계는 지침과 데이터를 모두 포함하는 무한 저장소(오늘날의 용어로는 메모리)를 가지고 있었다. 존 폰 노이만은 1935년 케임브리지에서 객원 교수로 있던 튜링과 1936년부터 1937년까지 프린스턴 대학교의 고등 연구소에서 튜링이 박사 과정을 밟는 동안 튜링과 알게 되었다. 그 당시 그가 튜링의 1936년 논문을 알고 있었는지는 불분명하다.
1936년, 콘라트 추제는 또한 두 개의 특허 출원에서 기계 명령어를 데이터에 사용되는 것과 동일한 저장소에 저장할 수 있다고 예상했다.[8]
독립적으로, J. 프레스퍼 에커트와 존 모클리는 펜실베이니아 대학교의 무어 전기 공학 학교에서 ENIAC을 개발하면서 1943년 12월에 저장 프로그램 개념에 대해 썼다.[9][10] 새로운 기계 EDVAC을 계획하면서 에커트는 1944년 1월에 데이터와 프로그램을 새로운 주소 지정 가능한 메모리 장치인 수은 금속 지연선 메모리에 저장할 것이라고 썼다. 이것이 실용적인 저장 프로그램 기계의 건설이 제안된 첫 번째 경우였다. 그 당시 그와 모클리는 튜링의 작업을 알지 못했다.
폰 노이만은 로스 알라모스 국립 연구소에서 맨해튼 프로젝트에 참여했다. 이는 엄청난 양의 계산을 필요로 했고, 따라서 1944년 여름에 그를 ENIAC 프로젝트로 이끌었다. 거기에서 그는 이 저장 프로그램 컴퓨터인 EDVAC의 설계를 둘러싼 진행 중인 토론에 합류했다. 그 그룹의 일원으로, 그는 에커트와 모클리의 작업을 바탕으로 "EDVAC에 관한 보고서 초안"이라는 제목의 설명을 작성했다.[4] 그의 동료 허먼 골드스타인이 배포했을 때는 완성되지 않았고, 폰 노이만의 이름만 붙어 있었다(에커트와 모클리의 당황함을 야기함).[11]
잭 코플랜드는 전자 저장 프로그램 디지털 컴퓨터를 '폰 노이만 머신'이라고 부르는 것은 "역사적으로 부적절하다"고 생각한다.[12] 그의 로스 알라모스 동료인 스탠 프랑켈은 폰 노이만이 튜링의 아이디어에 대해 다음과 같이 말했다고 한다.[13]
"초안" 보고서가 배포될 당시, 튜링은 "제안된 전자 계산기"라는 보고서를 작성하고 있었다. 이 보고서는 그가 "자동 계산 엔진 (ACE)"이라고 부르는 기계에 대한 그의 아이디어를 엔지니어링 및 프로그래밍 세부 사항으로 설명했다.[14] 그는 1946년 2월 19일에 이 보고서를 영국 국립 물리 연구소의 집행위원회에 제출했다. 튜링은 블레츨리 파크에서의 전시 경험을 통해 그가 제안한 것이 실행 가능하다는 것을 알고 있었지만, 이후 수십 년 동안 유지된 콜로서스 컴퓨터를 둘러싼 비밀은 그가 그렇게 말하는 것을 막았다. ACE 설계의 다양한 성공적인 구현이 제작되었다.
폰 노이만과 튜링의 논문 모두 저장 프로그램 컴퓨터에 대해 설명했지만, 폰 노이만의 이전 논문은 더 많이 배포되었고, 그가 개요를 제시한 컴퓨터 아키텍처는 "폰 노이만 아키텍처"로 알려지게 되었다.
''초안''은 많은 대학교와 기업들이 컴퓨터를 제작하는 데 사용한 설계를 설명했다.[17] 이러한 다양한 컴퓨터 중에서, ILLIAC과 ORDVAC만이 호환되는 명령어 집합을 가지고 있었다.
다음은 초기 컴퓨터 개발 연대기이다.
컴퓨터 이름 | 개발 기관 | 가동 시작일 |
---|---|---|
ARC2 | 런던 대학교 버크벡 칼리지 | 1948년 5월 12일[18] |
맨체스터 베이비 | 영국 맨체스터 빅토리아 대학교 | 1948년 6월 21일 |
EDSAC | 영국 케임브리지 대학교 | 1949년 5월 |
맨체스터 마크 1 | 영국 맨체스터 대학교 | 1949년 6월 |
CSIRAC | 영국 연방 과학 산업 연구 기구 | 1949년 11월 |
MESM | 키예프 전자기술 연구소 | 1950년 11월 |
EDVAC | 탄도 연구소, 애버딘 시험장 | 1951년 |
IAS 머신 | 고등 연구소 | 1951년 |
ORDVAC | 일리노이 대학교 메릴랜드주 애버딘 시험장 | 1951년 11월[19] |
MANIAC I | 로스앨러모스 국립 연구소 | 1952년 3월 |
ILLIAC | 일리노이 대학교 어배너-섐페인 | 1952년 9월 |
BESM-1 | 모스크바 | 1952년 |
AVIDAC | 아르곤 국립 연구소 | 1953년 |
ORACLE | 오크리지 국립 연구소 | 1953년 6월 |
BESK | 스톡홀름 | 1953년 |
JOHNNIAC | 랜드 연구소 | 1954년 1월 |
DASK | 덴마크 | 1955년 |
WEIZAC | 바이츠만 과학 연구소 이스라엘 레호보트 | 1955년 |
PERM | 뮌헨 | 1956년 |
SILLIAC | 시드니 | 1956년 |
프로그램 내장 방식의 디지털 컴퓨터는 CPU, 주소 지정된 기억 장치, 그리고 이들을 연결하는 버스로 구성된다. 명령어(프로그램)와 데이터는 구분 없이 기억 장치에 저장된다.
폰 노이만 구조는 CPU, 메모리, 프로그램 구조를 갖는 범용 컴퓨터 구조이다. 폰 노이만은 논문에서 프로그램 내장 방식 컴퓨터의 아이디어를 처음 제시하였고, 이후 세계 최초의 프로그램 내장 방식 컴퓨터 EDSAC을 제작한다. 이후의 컴퓨터는 모두 폰 노이만의 설계를 기본으로 한다.[6]
'''폰 노이만 병목''' 현상은 중앙 처리 장치(CPU)와 메모리 간 데이터 전송률(data transfer rate)의 한계로 인해 발생하는 병목 현상 또는 기억 장소의 지연 현상을 말한다. 이는 폰 노이만 구조에서 기인하는데, 이 구조에서는 명령어와 데이터를 같은 버스로 가져오기 때문에 처리량이 제한된다.[27][28] CPU 속도와 메모리 크기가 빠르게 증가하면서 이 문제는 더욱 심각해졌다.
IBM SSEC는 명령을 데이터로 처리하는 기능을 가지고 있었으며, 1948년 1월 27일에 공개 시연되었다.[20][21] 그러나 완전히 전자식은 아니고 부분적으로 전기 기계식이었다. 실제로는 메모리가 제한적이어서 종이 테이프에서 명령을 읽었다.[22]
ARC2는 앤드루 부스와 캐슬린 부스가 런던 대학교 버크벡 칼리지에서 개발했으며, 1948년 5월 12일에 공식적으로 가동되었다.[18] 최초의 회전 드럼 저장 장치를 갖추고 있었다.[23][24]
맨체스터 베이비는 저장된 프로그램을 실행한 최초의 완전 전자식 컴퓨터였다. 1948년 6월 21일에 단순 나눗셈 프로그램과 두 숫자가 상대적으로 소수임을 보여주는 프로그램을 실행한 후 52분 동안 소인수 분해 프로그램을 실행했다.
ENIAC은 원시적인 읽기 전용 저장 프로그램 컴퓨터로 실행되도록 수정되었으며 (프로그램 ROM에 기능 테이블 사용) 1948년 9월 16일에 폰 노이만을 위해 아델 골드스타인이 작성한 프로그램을 실행하는 방식으로 시연되었다.
BINAC는 1949년 2월, 3월, 4월에 일부 테스트 프로그램을 실행했지만 1949년 9월에야 완성되었다.
맨체스터 마크 1은 베이비 프로젝트에서 개발되었다. 마크 1의 중간 버전은 1949년 4월에 프로그램을 실행할 수 있었지만 1949년 10월에 완성되었다.
EDSAC는 1949년 5월 6일에 첫 번째 프로그램을 실행했다.
EDVAC은 1949년 8월에 인도되었지만 1951년까지 정기적인 작동을 하지 못하게 하는 문제가 있었다.
CSIR Mk I는 1949년 11월에 첫 번째 프로그램을 실행했다.
SEAC는 1950년 4월에 시연되었다.
Pilot ACE는 1950년 5월 10일에 첫 번째 프로그램을 실행했으며 1950년 12월에 시연되었다.
SWAC는 1950년 7월에 완성되었다.
Whirlwind는 1950년 12월에 완성되었으며 1951년 4월에 실제로 사용되었다.
최초의 ERA Atlas (나중에 상업용 ERA 1101/UNIVAC 1101)는 1950년 12월에 설치되었다.
폰 노이만 구조라는 명칭은 아이디어를 정리한 보고서 (『EDVAC에 관한 보고서의 초고』)가 존 폰 노이만에 의해 작성된 데서 유래한다. 이를 아이디어를 초고로 정리한 노이만에게 명예를 너무 많이 부여하고, 실제로 머신을 개발한 에커트와 모클리를 경시하고 있다는 견해가 있어, 폰 노이만형이라는 용어를 사용하지 않는 사람도 있다.[31]
모리스 윌크스는 자서전에서 ENIAC 관련 정보가 군사 기밀 하에 있는 것이 보통이었는데, 초고가 그 보호를 받지 못하고 많은 사람들이 노이만을 발명자로 여긴 것은 불공정한 결과였다고 하며, 노이만이 참여하기 전에도 본질적인 진보가 있었다고 주장한다.[32] 한편, 튜링상 강연에서는 수치 데이터와 명령을 같은 기억 장치에 두는 것은 부자연스럽다거나, 그 때문에 필요한 지연 기억 장치는 신뢰성이 떨어진다는 신기술에 대한 의문에 대해, 물리학자로서, 또한 수학자(계산 이론)로서, 노이만이 계산기의 잠재력을 간파하고 신망과 영향력을 행사한 것은 중요했다고 언급하고 있다.[34][35]
EDVAC의 개발은 지연되었고, 세계 최초의 프로그램 내장 방식의 전 전자식 컴퓨터는 SSEM, 실용적인 구현은 EDSAC이 되었다. 이들 머신은 "보고서"에 영향을 받은 것으로 여겨진다. EDVAC의 지연은 에커트와 모클리의 이탈이 큰 이유로 여겨지며, 이탈의 이유는 여러 설이 있다. 어쨌든, "노이만의 법칙 '언제 물어봐도 완성은 반년 후'"와 같이 이야기되면서, 1949년 8월에 대학에서 군 시설로 옮겨졌고, 1951년에 가동을 시작했다.
노이만의 초고 구성에 가까운 머신으로, EDVAC 외에, IAS 머신이 있다.
이케다 토시오가 1965년에 컴퓨터에 대해 정리한 보고[38]에서는, 전자 계산기의 가장 기본적인 개념은 폰 노이만에 의해 확립된 프로그램 내장 방식이며, (주) 기억 장치에 주소를 부여하여 명령을 거기에 기억하고 순차적으로 꺼내어 실행하는 것이라고 설명한다. 또한 노이만은 "컴퓨터는 모두 2진법이어야 한다"라고 말했다고 한다 (이 점에 대해서는 10진 연산을 병용해야 하는 경우와의 균형 감각이 필요하다는 다소 비판적인 견해를 이케다 토시오는 제시하고 있다).
3. 폰 노이만 구조의 구성 요소
4. 폰 노이만 구조의 작동 방식
프로그램 내장 방식의 디지털 컴퓨터는 CPU와 주소 지정된 기억 장치, 그리고 이들을 연결하는 버스로 구성된다. 명령어(프로그램)와 데이터를 구분하지 않고 기억 장치에 저장한다. 기억 장치를 무제한으로 추가할 수 있다면, 계산 모형(「노이만 머신」이라고 불리는 경우가 있다) 튜링 완전으로 간주할 수 있다. 노이만형 컴퓨터를 계산 모형으로 정의한 것으로 RAM 머신(랜덤 액세스 머신)이 있다.
이러한 구조는 어셈블러, 컴파일러, 링커, 로더 등 자동화된 프로그래밍 도구를 가능하게 한다. 즉, "프로그램을 작성하는 프로그램"을 가능하게 한다.[6] 고급 프로그래밍 언어는 런타임에 실행 파일을 조작하거나, JIT 컴파일을 조정하는 방식으로 폰 노이만 아키텍처를 활용한다.
폰 노이만 구조는 BITBLT 또는 픽셀 및 버텍스 셰이더와 같은 반복 작업을 가속화하는 데에도 사용될 수 있다.
하지만, 버스가 좁으면 병목 현상이 발생하여 컴퓨터 전체의 성능이 저하될 수 있다. 이를 폰 노이만 병목 현상이라고 한다.
5. 폰 노이만 병목 현상
존 바커스는 1977년 ACM 튜링상 강연에서 이 문제를 지적하며, "한 번에 단어 단위로 생각하는 데 묶이도록 한 지적 병목 현상"이라고 표현했다.[27][28]
5. 1. 폰 노이만 병목 현상의 원인
폰 노이만 병목 현상은 프로그램 메모리인 롬(ROM)과 데이터 메모리인 램(RAM) 사이의 공유 버스, 즉 CPU와 메모리 간 데이터 전송률의 한계로 인해 발생하는 지연 현상이다. 이는 나열된 명령을 순차적으로 수행하고, 그 명령이 일정한 기억 장소의 값을 변경하는 작업으로 구성되는 폰 노이만 구조에서 기인한다.[27][28]
명령어와 데이터를 가져오는 데 동일한 버스를 사용하면 중앙 처리 장치(CPU)와 메모리 사이의 처리량(데이터 전송 속도)이 메모리 양에 비해 제한된다. 단일 버스는 한 번에 두 종류의 메모리 중 하나에만 접근할 수 있으므로 처리량은 CPU가 작업할 수 있는 속도보다 낮다. 이는 CPU가 대량의 데이터에 대해 최소한의 처리를 수행해야 할 때 효과적인 처리 속도를 심각하게 제한한다. CPU는 필요한 데이터를 메모리로 이동하거나 메모리에서 가져오기 위해 지속적으로 대기 상태가 된다. CPU 속도와 메모리 크기가 그 사이의 처리량보다 훨씬 빠르게 증가했기 때문에 병목 현상은 더욱 심각한 문제가 되었으며, CPU의 새로운 세대가 나올 때마다 그 심각성이 증가하고 있다.[27][28]
존 바커스는 1977년 ACM 튜링상 강연에서 폰 노이만 병목 현상을 다음과 같이 설명했다.[27][28]
> 분명히 저장소에서 큰 변화를 만드는 데 폰 노이만 병목 현상을 통해 엄청난 수의 단어를 앞뒤로 밀어넣는 것보다 덜 원시적인 방법이 있을 것입니다. 이 튜브는 문제의 데이터 트래픽에 대한 문자 그대로의 병목 현상일 뿐만 아니라, 더 중요한 것은 우리가 당면한 작업의 더 큰 개념적 단위로 생각하도록 장려하는 대신, 한 번에 단어 단위로 생각하는 데 묶이도록 한 지적 병목 현상입니다. 따라서 프로그래밍은 기본적으로 폰 노이만 병목 현상을 통한 엄청난 단어 트래픽을 계획하고 상세화하는 것이며, 해당 트래픽의 대부분은 중요한 데이터 자체가 아니라 데이터를 어디에서 찾아야 하는지에 관한 것입니다.
5. 2. 병목 현상 완화 기술
CPU와 주 기억 장치 사이에 캐시를 제공하거나, 데이터와 명령어를 위한 별도의 캐시 또는 별도의 접근 경로를 제공(소위 수정된 하버드 아키텍처)하는 것은 폰 노이만 구조의 성능 병목 현상을 완화하기 위한 방법이다.[27][28] 또한, 분기 예측기 알고리즘과 로직을 사용하거나, 메모리 접근을 줄이기 위해 제한된 CPU 스택 또는 기타 온칩 스크래치패드 메모리를 제공하는 것도 성능 향상에 도움이 된다. CPU와 메모리 계층을 시스템 온 칩으로 구현하여 더 큰 참조 지역성을 제공하고, 프로세서 레지스터와 주 기억 장치 간의 지연 시간을 줄이고 처리량을 증가시킬 수 있다.
비균일 메모리 접근(NUMA) 아키텍처를 사용하는 병렬 컴퓨팅을 활용할 수도 있는데, 이 방식은 주로 슈퍼컴퓨터에서 사용된다. 1996년 데이터베이스 벤치마크 연구에 따르면, CPU 사이클 4개 중 3개가 메모리 대기에 소모되었다.[29][30] 멀티스레딩 또는 단일 칩 멀티프로세싱으로 동시 명령어 스트림 수를 늘리면 이 병목 현상이 더욱 악화될 것으로 예상되었다. 멀티코어 프로세서에서는 프로세서와 스레드 간 캐시 일관성 유지를 위한 추가 오버헤드가 필요하다.
6. 비판 및 대안
21세기 초 대부분의 컴퓨터는 폰 노이만 구조를 따르고 있다. 반면, 데이터 플로우 머신 등은 비 폰 노이만형으로 불린다. "폰 노이만형"은 다음에 실행할 명령이 기억 장치에 순서대로 나열되어 있고, 이를 버스를 통해 차례대로 가져오는 모델을 의미한다. 데이터 플로우 머신은 "필요한 데이터가 갖춰져 있으므로 지금부터 실행할 수 있는 명령"을 결정하는 장치를 갖추고 있으며, 아웃 오브 오더 실행은 부분적으로 비 폰 노이만적이라고 할 수 있다.
재구성 가능 컴퓨팅, 광 컴퓨터, 양자 컴퓨터, 뉴로컴퓨터, DNA 컴퓨터 등은 폰 노이만 구조를 벗어난 새로운 계산 방식을 추구한다. "비 폰 노이만"이라는 용어는 이러한 시도들을 포괄하지만, 구체적인 의미는 문맥에 따라 다르다.
데이터 플로우 프로세서의 예로는 NEC의 μPD7281(1984년, ImPP:Image Pipelined Processor)이 있다.[39][40] μPD7281은 이미지 처리 등에 응용되었으며,[41] 이후 일반 메모리에 접속하기 위한 LSI로 μPD9305가 출시되었다.[39]
폰 노이만 구조에 포함되지 않지만, 일반적으로 수정 범위 내로 간주되는 요소는 다음과 같다.
- 캐시, 주 기억과 보조 기억과 같은 기억 계층
- 외부에서 명령 실행 순서를 변경하는 인터럽트
- 채널 컨트롤러·DMA·버스 마스터링 등에 의한, CPU를 거치지 않는 주변 기기나 기억 장치 사이의 직접 입출력
6. 1. 폰 노이만 구조에 대한 비판
폰 노이만 병목 현상은 프로그램 메모리인 롬(ROM)과 데이터 메모리인 램(RAM) 사이의 공유 버스, 즉 CPU와 메모리 간 데이터 전송 속도의 한계 때문에 발생하는 병목 현상 또는 기억 장소의 지연 현상을 말한다. 이는 나열된 명령을 순차적으로 수행하고, 그 명령은 일정한 기억 장소의 값을 변경하는 작업으로 구성되는 폰 노이만 구조에서 기인한다.[31]폰 노이만 구조라는 명칭은 존 폰 노이만이 작성한 보고서(『EDVAC에 관한 보고서의 초고』)에서 유래한다. 그러나 이 명칭이 아이디어를 초고로 정리한 폰 노이만에게 과도한 명예를 부여하고, 실제로 머신을 개발한 에커트와 모클리를 경시한다는 비판이 있다.[31]
모리스 윌크스는 자서전에서 ENIAC 관련 정보가 군사 기밀로 보호받지 못하고, 많은 사람들이 노이만을 발명자로 여긴 것은 불공정한 결과였다고 주장한다. 그는 노이만이 참여하기 전에도 이미 본질적인 진보가 있었다고 말한다.[32]
한편, 튜링상 강연에서는 수치 데이터와 명령을 같은 기억 장치에 두는 것은 부자연스럽다거나, 그 때문에 필요한 지연 기억 장치는 신뢰성이 떨어진다는 신기술에 대한 의문[33]에 대해, 물리학자이자 수학자(계산 이론)로서 노이만이 계산기의 잠재력을 간파하고 신망과 영향력을 행사한 것은 중요했다고 언급하고 있다.[34][35]
6. 2. 대안적인 컴퓨터 아키텍처
하버드 아키텍처[37]는 프로그램을 교체할 필요가 없는 임베디드 시스템 등에 사용되지만, 범용 컴퓨터에서는 여전히 폰 노이만 구조가 널리 쓰인다.폰 노이만 병목 현상은 버스가 좁아 컴퓨터 전체 성능을 제한하는 문제를 야기한다. 이와 대조적으로, 데이터 플로우 머신 등은 비 폰 노이만형으로 불린다. 이들은 "필요한 데이터가 갖춰져 있으므로 지금부터 실행할 수 있는 명령"을 결정하는 장치를 갖추고 있으며, 아웃 오브 오더 실행은 부분적으로 비 폰 노이만적이라고 할 수 있다.
재구성 가능 컴퓨팅, 광 컴퓨터, 양자 컴퓨터, 뉴로컴퓨터, DNA 컴퓨터 등은 폰 노이만 구조를 벗어난 새로운 계산 방식을 추구한다. "비 폰 노이만"이라는 용어는 이러한 시도들을 포괄하지만, 구체적인 의미는 문맥에 따라 다르다.
데이터 플로우 프로세서의 예로는 NEC의 μPD7281(1984년, ImPP:Image Pipelined Processor)이 있다.[39][40] μPD7281은 이미지 처리 등에 응용되었으며,[41] 이후 일반 메모리에 접속하기 위한 LSI로 μPD9305가 출시되었다.[39]
폰 노이만 구조에 포함되지 않지만, 일반적으로 수정 범위 내로 간주되는 요소는 다음과 같다.
- 캐시, 주 기억과 보조 기억과 같은 기억 계층
- 외부에서 명령 실행 순서를 변경하는 인터럽트
- 채널 컨트롤러·DMA·버스 마스터링 등에 의한, CPU를 거치지 않는 주변 기기나 기억 장치 사이의 직접 입출력
참조
[1]
Citation
First Draft of a Report on the EDVAC
https://sites.google[...]
2011-08-24
[2]
Citation
2009
[3]
Citation
Fifty Years of Army Computing: From ENIAC to MSRC, U.S. Army Research Laboratory
https://www.govinfo.[...]
2024-11-05
[4]
Citation
The Von Neumann Bottleneck
http://aws.linnbento[...]
2007
[5]
Citation
2006
[6]
Citation
"'MFTL' (My Favorite Toy Language) entry Jargon File 4.4.7"
http://catb.org/~esr[...]
2008-07-11
[7]
Citation
On Computable Numbers, with an Application to the Entscheidungsproblem
1936
[8]
간행물
Electronic Digital Computers
1948-09-25
[9]
서적
From Dits to Bits: A personal history of the electronic computer
Robotics Press
1979
[10]
문서
ENIAC project administrator Grist Brainerd's December 1943 progress report for the first period of the ENIAC's development implicitly proposed the stored program concept (while simultaneously rejecting its implementation in the ENIAC) by stating that "in order to have the simplest project and not to complicate matters", the ENIAC would be constructed without any "automatic regulation".
[11]
Citation
2006
[12]
Citation
A Brief History of Computing: ENIAC and EDVAC
http://www.alanturin[...]
2010-01-27
[13]
Citation
A Brief History of Computing: ENIAC and EDVAC
http://www.alanturin[...]
2010-01-27
[14]
Citation
2006
[15]
Citation
1953
[16]
Citation
1953
[17]
웹사이트
Electronic Computer Project
http://www.ias.edu/p[...]
Institute for Advanced Study
2011-05-26
[18]
논문
The Development of Computer Programming in Britain (1945 to 1955)
1982-04
[19]
Citation
Illiac Design Techniques
report number UIUCDCS-R-1955–146, Digital Computer Laboratory, University of Illinois at Urbana-Champaign
1955
[20]
US patent
Selective Sequence Electronic Calculator (USPTO Web site)
[21]
US patent
Selective Sequence Electronic Calculator (Google Patents)
[22]
Citation
Computer: Bit Slices From a Life
http://www.columbia.[...]
Third Millennium Books
1991
[23]
서적
Alan Turing and his Contemporaries: Building the World's First Computers
British Computer Society
2012
[24]
웹사이트
School of Computer Science & Information Systems: A Short History
http://www.dcs.bbk.a[...]
University of London
2008-04
[25]
Citation
A New Architecture for Mini-Computers – The DEC PDP-11
http://research.micr[...]
1970
[26]
Citation
The essentials of computer organization and architecture
https://books.google[...]
Jones & Bartlett Learning
2010
[27]
논문
Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs
1978-08
[28]
웹사이트
E. W. Dijkstra Archive: A review of the 1977 Turing Award Lecture
http://www.cs.utexas[...]
2008-07-11
[29]
논문
Architects Look to Processors of Future
http://cva.stanford.[...]
1996-08-05
[30]
논문
Architects Look to Processors of Future
http://cva.stanford.[...]
1996-08-05
[31]
문서
パターソン&ヘネシー『コンピュータの構成と設計 第3版 〈別冊〉歴史展望』 p. 10
[32]
문서
『ウィルクス自伝』 p. 141
[33]
문서
『ウィルクス自伝』 p. 165, 226 によれば、[[ハワード・エイケン]]がそういった疑念を持っていたという。
[34]
문서
編注: [[マタイ効果]]か
[35]
문서
『ACMチューリング賞講演集』 p. 234
[36]
서적
フォン・ノイマンの生涯
[37]
문서
ハーバード・アーキテクチャと意図的に並べる場合、ノイマン型を「プリンストン・アーキテクチャ」と、こちらも大学名で呼ぶことがある。
[38]
간행물
電子計算機の発展過程
FUJITSU
1965
[39]
뉴스
ImPP
http://www.st.rim.or[...]
st.rim.or.jp
2020-10-04
[40]
웹사이트
Data flow chip ImPP and its system for image processing
https://ieeexplore.i[...]
IEEE (ICASSP '86. IEEE International Conference on Acoustics, Speech, and Signal Processing)
2021-05-24
[41]
뉴스
非ノイマン型データ駆動プロセッサImPPの開発 (NEC)
http://www.shmj.or.j[...]
shmj.or.jp
2010-10-16
[42]
인용
First Draft of a Report on the EDVAC
https://sites.google[...]
1945
[43]
문서
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com