프로그램 내장식 컴퓨터
1. 개요
프로그램 내장식 컴퓨터는 튜링 기계의 이론을 바탕으로 1936년에 개념이 시작되었으며, 컴퓨터의 프로그램 명령어를 메모리에 저장하여 실행하는 방식을 의미한다. 초기 컴퓨터들은 펀치 카드나 스위치 조작을 통해 프로그래밍되었으나, 1948년 맨체스터 베이비가 저장된 프로그램을 실행하는 데 성공하면서 획기적인 발전을 이루었다. 이후 EDSAC, IBM SSEC 등 다양한 컴퓨터들이 개발되었고, 통신 분야에도 활용되었다.
이미지 준비중입니다.
| 유형 | 컴퓨터 아키텍처 |
|---|---|
| 설계 패러다임 | 컴퓨터 구조 |
| 최초 제안 | 존 폰 노이만 |
|---|---|
| 구현 | 맨체스터 소형 규모 실험 기계 (1948년) EDSAC (1949년) |
| 핵심 개념 | 프로그램과 데이터를 동일한 메모리에 저장 |
|---|---|
| 구성 요소 | 중앙 처리 장치 (CPU) 메모리 입출력 장치 |
| 작동 방식 | CPU가 메모리에서 명령어를 순차적으로 읽어와 실행 |
| 장점 | 프로그램 수정 용이 유연성 효율적인 메모리 사용 |
|---|---|
| 단점 | 폰 노이만 병목 현상 보안 취약성 |
| 하버드 아키텍처 | 프로그램과 데이터를 분리된 메모리에 저장 |
|---|---|
| 수정된 하버드 아키텍처 | 하버드 아키텍처와 폰 노이만 아키텍처의 장점을 결합 |
| 현재 사용 | 대부분의 현대 컴퓨터 |
|---|---|
| 적용 분야 | 데스크톱 컴퓨터 서버 임베디드 시스템 |
| 명령어 집합 아키텍처 (ISA) | CPU가 이해할 수 있는 명령어의 집합 |
|---|---|
| 마이크로아키텍처 | ISA를 실제로 구현하는 방법 |
2. 역사
프로그램 내장 방식 컴퓨터의 개념은 1936년 앨런 튜링의 튜링 기계에서 비롯되었다. 존 폰 노이만은 이 개념을 발전시켜 동료들에게 깊은 인상을 주었다.
초기 컴퓨터들은 애타나소프-베리 컴퓨터처럼 재프로그래밍이 불가능하거나, Zuse Z3, 하버드 마크 I과 같이 펀치 카드에 프로그램을 저장하여 사용했다. 콜로서스 컴퓨터는 스위치와 플러그를 물리적으로 조작하여 프로그래밍할 수 있었다. 1936년 콘라트 추제는 기계 명령어가 데이터를 사용하는 것과 동일한 저장소에 저장될 수 있다는 아이디어를 제시했다. ENIAC 프로젝트에서는 프로그램 변경 시 배선 작업을 줄이기 위해 프로그램 내장 방식을 고안했다는 설이 유력하다.
1948년 맨체스터 대학교에서 개발된 맨체스터 베이비는 세계 최초로 프로그램 내장 방식을 구현한 전자식 컴퓨터로 인정받고 있다. 그러나 맨체스터 베이비는 완전한 컴퓨터는 아니었고, 맨체스터 마크 1의 개념 증명 선행 모델이었다. 1949년 5월 6일 케임브리지의 EDSAC가 첫 번째 프로그램을 실행했다. 1948년 1월에 가동된 IBM SSEC를 최초의 저장 프로그램 컴퓨터라고 주장하기도 하지만, 논란의 여지가 있다. 유럽 대륙에서 제작된 최초의 저장 프로그램 컴퓨터는 1950년 소련에서 완성된 MESM이었다.
초기 컴퓨터에서 프로그램을 모두 롬(ROM)에 저장한 사례는 없으며, 오늘날에는 프로그램을 저장하는 기억 장치가 재작성 가능한지 여부는 따지지 않는다. 하버드 아키텍처도 보통 프로그램 내장 방식으로 하는 경우가 많다. 역사적으로 초기 프로그램 구동형 컴퓨터는 주 기억 장치(ROM 포함)를 데이터 저장 용도로만 사용하고, 프로그램은 펀치 카드나 천공 테이프와 같은 보조 기억 장치로 제공하여 실행하는 방식이었다. 이러한 설계는 프로그래밍 측면에서 제한적이었고, 곧 구식으로 여겨지게 되었다. 릴레이식 컴퓨터의 예로는 일본에서 제작된 FACOM 128과 ETL MarkI 및 II가 있다.
2.1. 최초의 프로그램 내장 방식 컴퓨터들
튜링 기계의 이론적 개념과 존 폰 노이만의 연구를 바탕으로, 1940년대 후반부터 여러 기관에서 프로그램 내장 방식 컴퓨터 개발 경쟁이 시작되었다.
| 컴퓨터 이름 | 가동/인도/출시일 | 특징 및 기타 |
|---|---|---|
| IBM SSEC | 1948년 1월 (가동) | 전자 기계식 컴퓨터였기 때문에 논란의 여지가 있음. |
| ENIAC | 1948년 4월 (수정) | 기능표의 다이얼 설정을 통해 프로그램을 저장하는 방식으로 수정. 일부 역사가들은 이를 인정하지 않음. |
| ARC2 | 1948년 5월 12일 (가동) | 릴레이 기계. 최초의 회전 드럼 저장 장치. |
| 맨체스터 베이비 | 1948년 6월 21일 (가동) | 저장된 프로그램을 성공적으로 실행한 완전 전자식 컴퓨터. 맨체스터 마크 1의 개념 증명 선행 모델. |
| EDSAC | 1949년 5월 6일 (가동) | 사용자 커뮤니티에 서비스를 제공하는 본격적인 운영 컴퓨터. |
| EDVAC | 1949년 8월 (인도), 1951년 (실제 작동) | 1945년에 구상. |
| BINAC | 1949년 8월 22일 (인도) | 인도 후 제대로 작동했는지에 대한 논란. 미국 최초의 프로그램 내장 방식 컴퓨터. |
| 페란티 마크 1 | 1951년 (출시) | 최초의 상업용 전자 디지털 컴퓨터. |
| 불 감마 3 | 1952년 (출시) | 최초의 대량 생산 상업용 컴퓨터 중 하나. |
| IBM 650 | 1953년 (출시) | 최초의 대량 생산 상업용 컴퓨터 중 하나. |
| 맨체스터 대학교 트랜지스터 컴퓨터 | 1953년 11월 (가동) | 최초의 트랜지스터 기반 프로그램 내장 방식 컴퓨터. |
이처럼 여러 컴퓨터들이 경쟁적으로 개발되었으며, 각 컴퓨터는 기술 발전과 컴퓨터 역사에 중요한 기여를 했다.
3. 통신
저장 프로그램 제어(SPC)는 저장 프로그램 컴퓨터를 통신 회선 스위칭에 사용하는 개념이다. 벨 시스템의 미국 전화 전신 회사(AT&T)는 최초의 전자식 교환 시스템을 개발하는 데 중요한 역할을 했다. 이 개발은 1954년경 벨 연구소의 에르나 슈나이더 후버의 초기 개념 설계를 통해 본격적으로 시작되었다. 최초의 SPC 시스템은 1960년 일리노이주 모리스에 시험적으로 설치되었다. 프로그램 명령을 위한 저장 매체는 약 1마이크로초의 접근 시간을 가진 광학 스캐너로 읽는 비행 스폿 저장소인 사진 건판이었다. 임시 데이터의 경우, 시스템은 배리어 그리드 정전기 저장 튜브를 사용했다.