IBM 801
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
IBM 801은 IBM이 개발한 실험적인 컴퓨터 프로세서로, 최초의 RISC (Reduced Instruction Set Computing) 아키텍처를 구현한 것으로 평가받는다. 1970년대 초 전화 교환기 설계를 위한 연구에서 시작되었으며, 불필요한 연산을 제거하고, 내부 레지스터에서 작동하는 명령어 위주로 구성하여 성능 향상을 추구했다. 1980년에 처음 구현되었으며, 이후 32비트 아키텍처로 개선되었다. 801의 설계는 IBM의 후속 프로세서인 POWER 아키텍처와 PowerPC에 큰 영향을 미쳤으며, 존 코크는 801 연구에 기여한 공로로 튜링상 등을 수상했다.
더 읽어볼만한 페이지
- IBM 미니컴퓨터 - IBM 1130
IBM 1130은 1965년 IBM에서 출시한 16비트 소형 컴퓨터 시스템으로, 과학 및 엔지니어링 분야를 주 대상으로 솔리드 로직 기술을 적용하여 개발되었으며, 다양한 프로그래밍 언어를 지원하고 여러 박물관 및 교육 기관에서 소장하고 있다. - 미니컴퓨터 - PDP-11
PDP-11은 DEC에서 1970년에 발표한 16비트 미니컴퓨터 제품군으로, 혁신적인 아키텍처, 직교 명령어 집합, 메모리 맵 I/O, 인터럽트 처리 방식 등의 특징을 가지며 다양한 분야에서 활용된 미니컴퓨터이다. - 미니컴퓨터 - 프로그램 데이터 프로세서
프로그램 데이터 프로세서(PDP)는 디지털 이큅먼트 코퍼레이션(DEC)에서 개발한 다양한 모델의 컴퓨터 시리즈로, 각 모델은 고유한 특징을 가지며 미니컴퓨터 혁명을 이끌고 컴퓨터 역사에 큰 영향을 미쳤다.
IBM 801 | |
---|---|
기본 정보 | |
유형 | 미니컴퓨터 |
제조사 | IBM |
출시일 | 1970년대 |
기술 사양 | |
아키텍처 | RISC |
특징 | 효율적인 컴파일러 운영 체제 소프트웨어 개발을 용이하게 하기 위한 설계 |
개발 목표 | 더 간단하고 효율적인 명령어 집합 아키텍처 (ISA) 구축 컴파일러와 운영 체제 성능 최적화 |
역사 | |
개발 배경 | 복잡한 CISC 아키텍처의 대안으로 개발 |
영향 | 현대 RISC 프로세서 설계에 큰 영향 |
기타 | |
참고 자료 | The 801 minicomputer (ACM 디지털 라이브러리) |
2. 역사
801 프로젝트는 1974년 IBM이 초당 약 300통, 시간당 100만 통의 통화를 처리할 수 있는 전화 교환기 제작 가능성을 검토하면서 시작되었다.[1] 이 기계는 약 12 MIPS(Million Instructions Per Second)의 성능이 필요했는데, 이는 당시 최고급 기종인 IBM System/370 Model 168의 약 3MIPS보다 훨씬 높은 성능이었다.
존 코크를 포함한 토머스 J. 왓슨 연구 센터의 프로젝트 팀은 필요한 성능을 달성하기 위해, 부동 소수점 연산과 같이 전화 교환에 불필요한 연산을 제거하고, 대부분의 연산을 프로세서 레지스터 내에서 처리하는 방식을 채택했다. 이를 통해 단순하면서도 빠른 프로세서 설계를 목표로 했다.[1]
1975년 전화 교환기 프로젝트는 취소되었지만, IBM은 이 단순화된 프로세서 설계의 가능성을 보고 범용 설계로 연구를 계속하기로 결정했다. 연구팀은 그들이 작업하는 건물의 이름을 따서 프로젝트명을 "801"로 정했다. 실제 프로그램 실행 분석 결과, 다음의 명령어들이 전체 명령어 실행 시간의 절반 이상을 차지한다는 사실을 발견했다.[1]
명령어 |
---|
메모리에서 값을 로드 |
메모리에 값을 저장 |
분기 |
고정 소수점 숫자 비교 |
고정 소수점 숫자 더하기 |
이는 801의 단순화된 설계가 범용 미니컴퓨터에도 효과적임을 시사했다.[1]
당시 널리 사용되던 마이크로코드 방식은 다양한 명령어와 어드레싱 모드를 지원하여 호환성을 높였지만,[2] 801 연구팀은 마이크로코드가 명령어 해독 및 실행에 추가적인 시간을 소요시켜 성능 저하를 일으킨다고 판단했다. 연구팀은 마이크로코드를 제거하고 컴파일러가 하드웨어에 최적화된 코드를 생성하도록 함으로써 성능을 향상시킬 수 있다고 보았다.
1980년 여름, 801 아키텍처를 기반으로 한 첫 CPU가 모토로라 MECL-10K 개별 부품 기술을 사용하여 제작되었다.[3][4] 이 CPU는 66ns 사이클(약 15.15 MHz)로 클럭되었으며, 약 15 MIPS의 속도로 연산할 수 있었다. 초기 아키텍처는 16개의 24비트 레지스터를 가진 가상 메모리가 없는 기계였다.
1980년대 초, 컴퓨터 업계 전반의 추세에 맞춰 801도 32비트 아키텍처로 전환되었다.[1] 이 과정에서 가상 메모리 지원, 레지스터 개수 증가(16개에서 32개), 3-피연산자 형식 지원 등의 개선이 이루어졌다. 또한 문자열 데이터 처리와 2진화 십진법 처리를 위한 기능도 추가되었다. 개선된 801 설계는 PL/I 컴파일러로 생성한 코드보다 더 빠른 성능을 보이는 경우가 많았는데, 이는 컴파일러 최적화의 중요성을 보여준다.[1]
2. 1. 초기 개념 (1974-1975)
1974년, IBM은 초당 약 300통, 시간당 100만 통의 통화를 처리할 수 있는 전화 교환기 제작 가능성을 검토하기 시작했다. 각 통화에 2만 개의 명령어가 필요하다고 계산했으며, 시간 오버헤드 등을 고려하면 이러한 기계는 약 12 MIPS(Million Instructions Per Second)의 성능이 필요했다.[1] 이는 1972년 말 당시 최고급 기종인 IBM System/370 Model 168이 약 3 MIPS를 제공했던 것에 비해 상당한 성능 발전이 요구되는 것이었다.존 코크를 포함한 토머스 J. 왓슨 연구 센터의 프로젝트 팀은 이 목적을 위한 프로세서를 설계했다. 필요한 성능을 달성하기 위해, 그들은 그러한 기계에 필요한 연산을 고려하고 부적절한 연산을 제거했다. 예를 들어, 부동 소수점 장치는 이 애플리케이션에 필요하지 않아 제거되었다. 또한, 주 기억 장치의 데이터를 처리하는 많은 명령어를 제거하고 내부 프로세서 레지스터에서 작동하는 명령어만 남겼다. 이는 이러한 명령어를 사용하는 것이 훨씬 더 빠르고 전화 교환기의 간단한 코드는 이러한 유형의 명령어만 사용하도록 작성할 수 있었기 때문이다. 이 작업의 결과는 필요한 성능을 가진 단순화된 프로세서에 대한 개념적 설계였다.[1]
1975년, 전화 교환기 프로젝트는 취소되었지만, 팀은 이 개념에 대해 상당한 진전을 이루었고, 10월에 IBM은 이를 범용 설계로 계속 진행하기로 결정했다. 팀은 그들이 작업하는 건물의 이름을 따서 "801"이라고 부르기로 결정했다. 범용 역할을 위해, 팀은 일반적인 미니컴퓨터에서 실행될 실제 프로그램을 고려하기 시작했다. IBM은 자사 기기에서 실제 작업 부하의 성능에 대한 방대한 양의 통계 데이터를 수집했으며, 이 데이터는 일반적인 프로그램에서 시간의 절반 이상이 다음 다섯 가지 명령어만 수행하는 데 사용됨을 보여주었다.[1]
명령어 |
---|
메모리에서 값을 로드 |
메모리에 값을 저장 |
분기 |
고정 소수점 숫자 비교 |
고정 소수점 숫자 더하기 |
이는 동일한 단순화된 프로세서 설계가 특수 목적의 교환기뿐만 아니라 범용 미니컴퓨터에도 마찬가지로 잘 작동할 것임을 시사했다.[1]
2. 2. 마이크로코드 사용에 대한 비판 (1975-1980)
801 연구팀은 당시 널리 사용되던 마이크로코드 기반 설계 방식에 대해 비판적인 시각을 제시했다. IBM System/360, System/370 등에서 널리 사용된 마이크로코드는 다양한 명령어와 어드레싱 모드를 지원하여 호환성을 높이는 장점이 있었다.[2] 하지만, 801 연구팀은 마이크로코드가 명령어 해독 및 실행에 추가적인 시간을 소요시켜 성능 저하를 일으킨다고 보았다.마이크로코드를 사용하면 간단한 프로세서가 많은 명령어를 제공할 수 있었고, 설계자는 이를 통해 다양한 어드레싱 모드를 구현했다. 예를 들어, `ADD` 명령어는 내부 레지스터에서 두 숫자를 더하는 버전, 메모리의 값에 레지스터를 더하는 버전, 메모리의 두 값을 더하는 버전 등 수십 가지 버전이 있을 수 있었다. 하지만, 801팀은 실제 프로그램에서는 사용 가능한 명령어 중 일부만 주로 사용되며, 컴파일러는 특정 명령어 버전을 선택하는 경향이 있다는 점을 발견했다.
801 연구팀은 "컴퓨터와 사용자 사이에 마이크로코드를 두는 것은 가장 자주 실행되는 명령어를 수행하는 데 많은 비용이 드는 오버헤드를 부과한다"고 주장했다. 마이크로코드는 명령어를 수행하기 전에 해당 명령어를 검사하는 데 시간이 걸리는데, 마이크로코드가 제거되면 이 오버헤드가 제거되어 명령어 실행 속도가 빨라진다는 것이다.
연구팀은 마이크로코드를 제거하고 컴파일러가 하드웨어에 최적화된 코드를 생성하도록 함으로써, 명령어 실행 속도를 높이고 전체 시스템 성능을 향상시킬 수 있다고 주장했다. 초기에는 이러한 방식으로 작성된 프로그램이 더 많은 메모리를 차지할 수 있다는 우려가 있었지만, 설계를 진행하고 컴파일러를 개선하면서 프로그램 길이가 370용으로 작성된 프로그램과 거의 같아진다는 것을 확인했다.
2. 3. 최초 구현 (1980)
1980년 여름, 801 아키텍처를 기반으로 한 첫 CPU가 구현되었다.[3][4] 이 CPU는 대형 와이어 랩 맞춤형 보드에 모토로라 MECL-10K 개별 부품 기술을 사용하여 제작되었다. 66ns 사이클(약 15.15 MHz)로 클럭되었으며, 약 15 MIPS의 속도로 연산할 수 있었다.초기 아키텍처는 16개의 24비트 레지스터를 가진 가상 메모리가 없는 기계였다. 명령어는 두 개의 피연산자 형식을 사용하여 `A = A + B` 와 같은 형태를 가졌다.
2. 4. 이후 발전 (1980년대)
초기 801 설계는 가상 메모리 지원 부족, 24비트 아키텍처 등 여러 한계점을 가지고 있었다.[1] 1980년대 초, 컴퓨터 업계 전반의 추세에 맞춰 801도 32비트 아키텍처로 전환하려는 움직임이 있었다.[1]32비트 형식으로 전환하면서 가상 메모리 지원과 함께 다음과 같은 개선이 이루어졌다.[1]
- 레지스터 개수 증가: 16개에서 32개로 증가하여 801 코드 검토 결과에 따른 변화를 반영했다.[1]
- 3-피연산자 형식 지원: 2-피연산자 형식의 한계를 극복하고, 연산 결과를 별도의 레지스터에 저장할 수 있게 되어 메모리 접근을 줄였다.[1]
이러한 변화로 인해 프로그램 크기는 33% 이상 증가하지 않았으며, 오히려 로드 및 저장을 줄여 성능 향상에 기여했다.[1]
또한, 문자열 데이터 처리를 위한 명령어와 2진화 십진법 처리를 위한 기능도 추가되었다.[1]
개선된 801 설계를 시뮬레이터로 실행한 결과, PL/I 컴파일러로 생성한 코드보다 더 빠른 성능을 보이는 경우가 많았다.[1] 이는 컴파일러 최적화의 중요성을 보여주는 사례로, PL.8 컴파일러는 레지스터 사용을 최적화하여 메모리 접근을 줄임으로써 CISC 프로세서에서도 성능 향상을 이끌어냈다.[1]
3. 파생 아키텍처 및 응용
801 아키텍처는 다양한 파생 아키텍처와 응용 분야에 영향을 미쳤다.
초기 801 아키텍처는 IBM RT PC 워크스테이션과 여러 실험용 컴퓨터에 사용된 IBM ROMP 마이크로프로세서의 기반이 되었다.[1] 1980년대 초, 801에서 얻은 교훈은 IBM 고급 컴퓨터 시스템 프로젝트와 결합되어 "치타(Cheetah)"라는 실험용 슈퍼스칼라 프로세서를 탄생시켰다. 치타는 2-웨이 슈퍼스칼라 프로세서였으며, 이후 "팬서(Panther)", "아메리카(America)"로 발전하였다.[8] 이 디자인은 1986년 IBM의 오스틴 지사로 보내져 IBM RS/6000 시스템으로 개발되었다.
RS/6000 이후, IBM은 다양한 규모로 효율적으로 제작할 수 있는 801 개념의 버전을 개발하였고, 그 결과 IBM POWER 명령어 집합 아키텍처와 PowerPC 파생 제품이 탄생했다.
3. 1. IBM ROMP
801 아키텍처의 초기 버전은 IBM RT PC 워크스테이션과 여러 실험용 컴퓨터에 사용된 IBM ROMP 마이크로프로세서의 기반이 되었다.[1]3. 2. IBM POWER, PowerPC
1980년대 초, 801에서 얻은 교훈은 IBM 고급 컴퓨터 시스템 프로젝트의 교훈과 결합되어 "치타(Cheetah)"라는 실험용 슈퍼스칼라 프로세서가 탄생했다. 치타는 2-웨이 슈퍼스칼라 프로세서였으며, 1985년 "팬서(Panther)"라는 프로세서로 발전했고, 1986년에는 "아메리카(America)"라는 4-웨이 슈퍼스칼라 디자인으로 최종 발전했다.[8] 이는 명령어를 가져와 해독하는 명령어 프로세서, 명령어 프로세서와 역할을 공유하는 고정 소수점 프로세서, 그리고 이를 필요로 하는 시스템을 위한 부동 소수점 프로세서를 포함하는 3개의 칩 프로세서 세트였다. 801 팀에 의해 설계된 최종 디자인은 1986년 IBM의 오스틴 지사로 보내졌고, 여기서 IBM RS/6000 시스템으로 개발되었다. RS/6000은 25MHz로 작동하였으며, 당시 시대에서 가장 빠른 기계 중 하나였다. 일반적인 테스트에서 다른 RISC 기계보다 2~3배의 성능을 보였고, 이전의 CISC 시스템을 쉽게 능가했다.RS/6000 이후, 회사는 다양한 규모로 효율적으로 제작할 수 있는 801 개념의 버전에 집중했다. 그 결과는 IBM POWER 명령어 집합 아키텍처와 PowerPC 파생 제품이었다.
4. 801 프로젝트의 영향 및 평가
801 프로젝트는 RISC 개념을 처음으로 구현한 사례 중 하나로 평가받으며, 현대 프로세서 설계에 지대한 영향을 미쳤다.[9] 1982년 ASPLOS-I에서 "801 미니컴퓨터"라는 제목으로 발표되었다.[15]
4. 1. 존 코크의 업적
존 코크는 801 연구에 대한 공로로 여러 상과 메달을 받았다.연도 | 상/메달 이름 | 비고 |
---|---|---|
1985년 | 에커트-모클리 상[9] | |
1987년 | 튜링상[10] | |
1989년 | 컴퓨터 개척자 상[11] | |
1991년 | 국가 기술 메달[12] | |
1994년 | IEEE 존 폰 노이만 메달[13] | |
1994년 | 국가 과학 메달[12] | |
2000년 | 벤자민 프랭클린 메달 | 프랭클린 연구소[14] |
참조
[1]
웹사이트
On the 370/165 and the 360/85
https://alt.folklore[...]
[2]
웹사이트
The IBM System/360 and the Use of Microcode
http://scihi.org/ibm[...]
2016-04-07
[3]
웹사이트
The 801 Minicomputer - An Overview
http://www.bitsavers[...]
1976-10-08
[4]
웹사이트
System 801 Principles of Operation
http://www.bitsavers[...]
1976-01-16
[5]
서적
Microprocessors: A Programmer's View
https://archive.org/[...]
McGraw-Hill
1990
[6]
간행물
Implementing a mainframe architecture in a 9370 processor
null
1988-09
[7]
서적
Inside the AS/400, Second Edition
https://books.google[...]
Duke Press
[8]
서적
Modern Processor Design: Fundamentals of Superscalar Processors
McGraw-Hill
[9]
웹사이트
John Cocke
https://awards.acm.o[...]
2022-08-29
[10]
웹사이트
John Cocke - A.M. Turing Award Laureate
https://amturing.acm[...]
2022-08-29
[11]
웹사이트
IEEE Computer Society Women of ENIAC Computer Pioneer Award
https://www.computer[...]
2018-04-09
[12]
웹사이트
NSTMF
https://www.national[...]
2020-05-12
[13]
웹사이트
IEEE John von Neumann Medal Receipients
https://corporate-aw[...]
[14]
웹사이트
John Cocke
https://www.fi.edu/l[...]
2022-08-29
[15]
서적
Computer architecture: pipelined and parallel processor design
Jones & Bartlett Learning
[16]
컨퍼런스
The 801 minicomputer
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com