CDC 7600

CDC 7600은 시모어 크레이가 CDC 6600의 후속작으로 설계했으며, 컨트롤 데이터의 슈퍼컴퓨터 분야 지배력을 1970년대까지 확장시켰다. 7600은 36.4 MHz (27.5 ns 클럭 주기)로 작동했으며, 자기 코어를 사용하는 65 K워드 주 메모리(60비트 워드 크기)와 가변 크기(최대 512 K워드) 보조 메모리(사이트에 따라 다름)를 가졌다. 일반적으로 CDC 6600보다 약 10배 빨랐고, 수동 컴파일 코드에서 약 10 MFLOPS를 제공할 수 있었으며, 최고 36 MFLOPS를 기록했다.Gordon Bell. A Seymour Cray Perspective . 또한, 1970년대 초 벤치마크 테스트에서 IBM의 경쟁 모델인 IBM 시스템/360 모델 195보다 약간 더 빠른 것으로 나타났다. 1967년 시스템이 출시되었을 때, 기본 구성으로 약 5백만 달러에 판매되었으며, 옵션과 기능이 추가되면 훨씬 더 비싸졌다.

7600의 주목할 만한 최첨단 기여 중에는 광범위한 파이프라인 외에도 물리적인 C자형 디자인이 있었다. 이는 바닥 공간을 줄이는 동시에 신호가 이동해야 하는 거리를 단축시켜 성능을 극적으로10배로 곱한다. 향상시켰다.

설계

섬네일|LLNL에 설치된 CDC 7600 어셈블리
6600이 생산 품질에 가까워지자 크레이는 흥미를 잃고 후속작 설계에 착수했다. 1960년대 후반에 "약간" 더 빠른 기계를 만드는 것은 그리 어렵지 않았다. 집적 회로의 도입으로 부품을 더 밀집하게 배치할 수 있었고, 이는 더 높은 클럭 속도를 가능하게 했다. 트랜지스터도 생산 공정과 품질이 향상되면서 전반적으로 약간 더 빨라졌다"They were also more than ten times faster than early MOS transistors" . 이러한 종류의 개선만으로도 기계가 두 배, 어쩌면 다섯 배까지 빨라질 수 있을 것으로 예상되었다. 그러나 6600 설계와 마찬가지로 크레이는 10배의 성능을 가진 기계를 생산하는 것을 목표로 삼았다.

6600이 동시대의 다른 컴퓨터보다 훨씬 빨랐던 이유 중 하나는 병렬로 작동할 수 있는 여러 기능 장치를 가지고 있었기 때문이다. 예를 들어, 이 기계는 두 숫자의 덧셈을 수행하면서 동시에 다른 두 숫자의 곱셈을 수행할 수 있었다. 그러나 주어진 명령어는 다음 명령어가 장치에 투입되기 전에 장치를 통한 여정을 완료해야 했으며, 스케줄러 시스템이 명령어가 부족할 때 병목 현상이 발생했다. 스케줄러를 크게 개선하지 않는 한, 특히 더 많은 메모리를 갖도록 하여 병렬 장치에 투입할 수 있는 명령어를 더 많이 찾을 수 있도록 하지 않는 한, 더 많은 기능 장치를 추가해도 성능은 향상되지 않았다. 이는 중대한 문제로 보였다.

이 문제를 해결하기 위해 크레이는 명령어 파이프라인 개념으로 눈을 돌렸다. 각 기능 장치는 순서대로 작동하는 여러 섹션으로 구성되었다. 예를 들어, 덧셈 장치는 메모리에서 피연산자를 검색하는 회로, 실제 연산 장치, 그리고 마지막으로 결과를 메모리로 다시 보내는 회로를 가질 수 있다. 주어진 순간에는 장치의 한 부분만 활성화되고 나머지는 차례를 기다렸다. 파이프라인은 첫 번째 명령어가 완료되기 전에 다음 명령어를 투입하여 이러한 유휴 시간을 활용함으로써 이를 개선한다. 예를 들어, 한 명령어가 덧셈되는 동안 다음 덧셈 명령어의 피연산자를 가져올 수 있다. 그렇게 하면 현재 명령어가 완료되어 출력 회로로 이동하자마자 다음 덧셈의 피연산자가 이미 덧셈을 기다리고 있게 된다. 이런 방식으로 각 기능 장치는 전체 기계와 마찬가지로 "병렬"로 작동한다."parallel functional units"  성능 향상은 일반적으로 장치가 완료하는 데 걸리는 단계 수에 따라 달라진다. 예를 들어, 6600의 곱셈 장치는 명령을 완료하는 데 10 사이클이 걸렸으므로, 장치를 파이프라인 처리함으로써 약 10배의 속도 향상을 기대할 수 있었다.

하지만 상황이 그렇게 간단하지만은 않다. 파이프라인은 장치의 내부가 각 작업 단계가 완전히 별개의 회로에서 실행되는 지점까지 효과적으로 분리될 수 있어야 한다. 이는 실제 세계에서는 거의 달성할 수 없다. 그럼에도 불구하고 7600에 파이프라인을 사용함으로써 6600보다 약 3배의 성능 향상을 이루었다. 나머지 목표를 달성하기 위해 기계는 더 빠른 속도로 실행되어야 했으며, 이는 이제 새로운 트랜지스터 설계를 사용하여 가능해졌다. 그러나 기계 부품 간에 신호가 이동하는 데 걸리는 시간 때문에 성능에는 물리적인 한계가 있으며, 이는 다시 물리적 크기에 의해 정의된다. 크레이의 설계 작업은 항상 이 문제에 상당한 노력을 기울였고, 따라서 더 높은 작동 주파수를 허용했다. 7600의 경우, 각 회로 모듈은 실제로 최대 6개의 인쇄 회로 기판으로 구성되었으며, 각 보드에는 초소형 저항기, 다이오드 및 트랜지스터가 가득 채워져 있었다. 6개의 보드는 쌓아 올려진 다음 가장자리를 따라 상호 연결되어 매우 컴팩트하지만 기본적으로 수리 불가능한 모듈을 만들었다.

그러나 동일한 고밀도 패킹은 기계의 가장 큰 문제인 열로 이어졌다. 7600의 경우 크레이는 다시 한번 그의 냉동 엔지니어이자 전 아마나 회사 소속이었던 딘 러시에게 의지했다. 러시는 코드우드 스택의 각 면 후면에 알루미늄 판을 추가했으며, 이 판은 기계의 핵심부를 통과하는 액체 프레온 시스템으로 냉각되었다. 이 시스템은 기계적이었고 따라서 고장이 나기 쉬웠기 때문에 7600은 대형 "C"자형으로 재설계되어 "C"자 안으로 걸어 들어가 캐비닛을 열면 냉각 파이프라인 양쪽의 모듈에 접근할 수 있도록 했다.

아키텍처
+ CDC 7600 레지스터 59 . . . 17 . . . 00 (비트 위치) 피연산자 레지스터 (60비트) X0 (LCM 시작 주소) 레지스터 0 X1 (읽기) 레지스터 1 X2 (읽기) 레지스터 2 X3 (읽기) 레지스터 3 X4 (읽기) 레지스터 4 X5 (읽기) 레지스터 5 X6 (쓰기) 레지스터 6 X7 (쓰기) 레지스터 7 주소 레지스터 (18비트)   A0 (SCM 시작) 주소 0   A1 (읽기 주소) 주소 1   A2 (읽기 주소) 주소 2   A3 (읽기 주소) 주소 3   A4 (읽기 주소) 주소 4   A5 (읽기 주소) 주소 5   A6 (쓰기 주소) 주소 6   A7 (쓰기 주소) 주소 7 증가 레지스터 (18비트)   B0 (모든 비트 0) 증가 0   B1 증가 1   B2 증가 2   B3 증가 3   B4 증가 4   B5 증가 5   B6 증가 6   B7 증가 7 프로그램 주소 (18비트)   P
7600은 건축학적 이정표였으며, 그 기능 대부분은 여전히 컴퓨터 설계의 표준 부분이다. 6비트 연산 코드를 포함하는 15비트 명령어 워드를 가진 로드-스토어 컴퓨터이다. NOP (코드)를 포함하여 64개의 기계 코드만 있으며, 중앙 처리 장치에는 고정소수점 곱셈 또는 나눗셈 연산이 없다.

7600에는 두 가지 주요 코어 메모리가 있다. 소형 코어 메모리는 현재 실행 중인 명령어와 현재 처리 중인 데이터를 저장한다. 27.5나노초 마이너 사이클 중 10의 접근 시간과 60비트 워드 길이를 갖는다. 대형 코어 메모리는 소형 코어 메모리로 전송할 준비가 된 데이터를 저장한다. 27.5나노초 마이너 사이클 중 60의 접근 시간과 480비트(패리티 포함 512비트)의 워드 길이를 갖는다. 접근은 완전히 파이프라인 처리되고 버퍼링되므로, 두 메모리는 27.5나노초마다 60비트의 동일한 순차 전송 속도를 갖는다. 두 메모리는 병렬로 작동하므로, 서로 간의 순차 전송 속도는 27.5나노초 마이너 사이클당 60비트이다. 운영체제 호출 시 소형 코어 메모리의 내용이 교체되고 운영체제에 의해 대형 코어 메모리에서 교체되며, 그 후 복원된다.

CDC 문서에서는 명령어 워드 스택이라고 불리는 12 워드 명령어 파이프라인이 있다. 스택의 모든 주소는 명령어 필드가 처리되기를 기다리지 않고 가져온다. 따라서 조건부 분기의 대상 명령어 가져오기는 분기 조건 평가보다 먼저 이루어진다. 10 워드(최대 40 명령어) 루프 실행 중에 필요한 모든 명령어는 스택에 남아 있으므로, 명령어를 가져오지 않아 소형 코어 메모리는 데이터 전송을 위해 비어 있게 된다.

각각 주소 레지스터가 있는 8개의 60비트 레지스터가 있다. 주소를 주소 레지스터로 이동하면 소형 코어 메모리 읽기 또는 쓰기가 시작된다. 산술 및 논리 명령어는 이러한 레지스터를 소스 및 대상으로 사용한다. 프로그래머나 컴파일러는 데이터를 제때 가져와 사용하고, 더 많은 데이터가 동일한 레지스터를 필요로 하기 전에 데이터를 저장하려고 하지만, 준비되지 않으면 프로세서는 준비될 때까지 대기 상태로 들어간다. 또한 4개의 부동 소수점 산술 장치 중 하나가 요청 시 준비되지 않으면 대기하지만, 파이프라이닝으로 인해 일반적으로 이런 일은 발생하지 않는다.1970년경 UCLA 컴퓨터 센터에서 CDC 대표가 강연한 내용.

CDC 6600과의 관계
CDC 7600은 "6600과 기계 코드 상위 호환되도록 설계되었지만 상당한 성능 향상을 제공했다." 한 사용자는 "대부분의 사용자는 변경 없이 두 시스템 모두에서 실행할 수 있었다"고 말했다.

7600은 하드웨어, 명령어, 60비트 워드 크기 등 6600의 많은 기능을 공유했지만, CDC 6600과 객체 코드 호환되지 않았다.이는 하위 호환성, 즉 이전 것이 새것에서 실행되는 것과는 다르다. 또한, 7600에는 6600에 없는 일부 명령어가 있었고 그 반대도 마찬가지였기 때문에 소스 코드(COMPASS) 호환성도 완전히 확보되지 않았다. 원래 CDC 6800으로 명명되었으나, 크레이가 완전히 호환될 수 없다고 판단했을 때 7600으로 변경되었다. 그러나 7600의 운영체제 설계 덕분에 6600과 7600은 낮은 수준의 차이에도 불구하고 "균일한 소프트웨어 환경"을 공유했다.

실제로 높은 수준에서 보면 7600은 6600과 상당히 유사했다. 당시 컴퓨터 메모리는 독립적인 접근 경로를 가진 블록으로 구성될 수 있었고, 크레이의 설계는 이를 유리하게 활용했다. 대부분의 기계가 단일 중앙 처리 장치를 사용하여 시스템의 모든 기능을 실행하는 반면, 크레이는 이로 인해 각 메모리 블록이 CPU가 명령어를 처리하고 다른 블록에 접근하는 동안 상당한 시간을 유휴 상태로 보낸다는 것을 깨달았다. 이를 활용하기 위해 6600과 7600은 출력 인쇄나 천공 카드 읽기와 같은 일상적인 관리 작업을 "주변 프로세서 장치" 또는 PPU로 알려진 CDC 160-A 기반의 10개의 작은 12비트 기계 시리즈에 맡겼다. 기계의 주어진 사이클 동안 PPU 중 하나가 제어권을 가지고 주 프로세서가 숫자를 처리하는 동안 데이터를 메모리로 공급했다. 사이클이 완료되면 다음 PPU에 제어권이 주어졌다. 이런 방식으로 메모리는 항상 주 프로세서가 작업할 최신 정보를 유지했으며(외부 장치 자체의 지연은 제외), 데이터 지연을 제거하고 CPU를 수학적 성능만을 위해 구축할 수 있도록 했다. PPU는 매우 똑똑한 "통신 채널"이라고 불릴 수도 있었다.

6600과 마찬가지로 7600은 60비트 워드를 사용했으며, 명령어 길이는 일반적으로 15비트였지만 30비트 명령어 또한 존재했다. 명령어는 60비트 워드에 패킹되었지만, 30비트 명령어는 두 워드에 걸쳐 있을 수 없었고, 제어는 워드의 첫 번째 명령어로만 전송될 수 있었다. 그러나 명령어 세트 자체는 새로운 내부 메모리 레이아웃을 반영하도록 변경되었으므로 이전 6600과는 호환되지 않았다. 두 기계는 컴파일러와 운영체제의 포팅이 큰 어려움 없이 가능할 정도로 유사했다. 이 기계는 처음에는 소프트웨어와 함께 제공되지 않았으며, 사이트들은 LTSS, NCAROS 등 자체 운영체제와 LRLTRAN(동적 메모리 관리 및 기타 비표준 기능을 갖춘 리버모어의 포트란 버전)과 같은 컴파일러를 작성해야 했다.

CDC는 7600을 기반으로 한 두 대의 멀티프로세서 컴퓨터인 7700 모델도 제조했다.Eventually, they were offered for sale: 2 CDC 7700s, 1 CDC 6400; 6 IBM 3033s were also for sale.  이들은 중앙 및 보조 기계로 구성된 비대칭 구성의 7600 두 대였다. 이들은 미사일 발사와 소련 ICBM의 유입 추적에 사용되었다. 레이더 시뮬레이터는 입출력 프론트엔드용 CDC 6400을 갖춘 실시간 시뮬레이터였다. 이 시스템은 태평양 미사일 시험장에 사용될 예정이었다. 한 대의 컴퓨터는 캘리포니아 리돈도 비치의 TRW에 설치되었고(나중에 남태평양 콰잘라인 환초로 이전), 두 번째는 헌팅턴비치의 맥도널 더글러스에 설치되었다. 이들은 섀시 25로 연결되어 7600 MP를 구성하는 실제 7600이었다.

평가 및 활용
대략 1969년부터 1975년까지 CDC 7600은 특수 장치를 제외하고는 일반적으로 세계에서 가장 빠른 컴퓨터로 평가받았다. 그러나 고급 기계와 냉각 시스템에도 불구하고 7600은 고장에 취약했다. LLNL과 NCAR 모두 이 기계가 하루에 최소 한 번, 종종 4~5번 고장 났다고 보고했다. 설치 현장에서의 수락은 버그가 해결될 때까지 몇 년이 걸렸고, 이 기계는 "하이엔드" 틈새시장임을 감안할 때 충분히 잘 팔렸지만, CDC에 실질적인 수익을 가져다주지는 못했을 것으로 보인다. 후속작인 CDC 8600은 완성되지 못했으며, 시모어 크레이는 자신의 회사인 크레이 리서치를 설립했다.

현존하는 7600 중 하나는 컴퓨터 역사 박물관에 부분적으로 전시되어 있다. 엄청난 크기 때문에 두 개의 코너 유닛만 전시할 수 있다. 나머지는 보관되어 있다. 또 다른 7600은 치페와 폴스 산업 기술 박물관에 콘솔과 테이프 컨트롤러와 함께 전시되어 있다.

갤러리

 각주 

 외부 링크 
 로버트 모, 웨인 스페커, 데니스 그리나, 톰 로완, 모리스 헛슨, 커트 알렉산더, 돈 파겔코프, 마리스 버그만니스, 돌란 토스, 척 홀리, 래리 크루거, 마이크 파블로프, 데이브 레스닉, 하워드 크론, 빌 벤드, 켄트 스타이너, 레이몬 코트, 닐 R. 링컨을 포함한 18명의 컨트롤 데이터 코퍼레이션(CDC) 엔지니어와 함께한 컴퓨터 아키텍처 및 설계에 대한 닐 R. 링컨, 찰스 배비지 연구소, 미네소타 대학교. 토론 주제는 CDC 1604, CDC 6600, CDC 7600, CDC 8600, CDC STAR-100 및 시모어 크레이이다.
 시모어 크레이가 설계한 CDC 7600 및 기타 기계 프리젠테이션—마이크로소프트 리서치(이전 DEC 소속)의 C. 고든 벨
 SCD 컴퓨터 갤러리
 컴퓨터 역사 박물관
 치페와 폴스 산업 기술 박물관
 CDC 7600에 대한 많은 링크

사진
 7600 내부

분류:슈퍼컴퓨터