1. 개요
1964년, 미국 CDC(Control Data Corporation) 사에서 개발한 컴퓨터이자 미국 슈퍼컴퓨터의 시초다. 애당초 이 컴퓨터는 개발 당시엔 슈퍼컴퓨터라는 분류가 없어 메인프레임으로 분류되었지만, 기존 컴퓨터 속도의 3배를 뛰어넘을 만큼 월등했다. 속도는 약 1메가플롭스(MFlops), 약 10밉스로, 밉스 값만 보면 약 30년 후 개인용 컴퓨터의 주력 CPU로 사용된 인텔 80486 DX와 비슷한 수치이다.이 컴퓨터가 미국 슈퍼컴퓨터의 시작으로 간주되는 건, 당시 미국의 일반 컴퓨터들보다 차별화된 성능과 구조를 바탕으로 대규모의 연산을 최대한 빠르게 한다는 슈퍼컴퓨터의 방향성을 제시했기 때문이라 볼 수 있을 것이다. 참고로 세계 최초의 현대적 슈퍼컴퓨터는 1962년 영국에서 개발된 아틀라스다.
또한 이 컴퓨터의 구조는 1980년 발표된 RISC 아키텍처와 매우 비슷했다고 한다. RISC가 영향을 받았는지는 모르겠지만, RISC의 원형으로도 볼 수 있는 셈이다.
2. 개발과 영향
시모어 크레이[1] 주도로 개발되었다. CDC 직원들이 기존의 매우 느린 컴퓨터의 속도에 빡쳐서 답답해서 내가 만든다며 시작했다는 얘기가 있다.CDC의 컴퓨터 라인업으로 출시된 CDC 1604가 빠른 성능을 제공해 크게 히트를 쳤고, 시모어 크레이와 개발진들은 "CDC 1604보다 50배 빠른 컴퓨터를 만들자!"고 계획을 세운다. 이들의 목표는 5년 내에 세계에서 가장 빠른 컴퓨터를 만드는 것이었으며, 1년마다 목표치의 1/5씩 성능을 높여나가는 것을 목표로 하고 있었다.
그러나 크레이는 개발하면서 당시 반도체에 쓰였던 저마늄 소재는 온도 문제에서 답이 없다는 것을 알게 되었고, 시중에 실리콘 소재 반도체가 새로 나오자 그것을 과감하게 채택했다. 이로써 기존 컴퓨터보다 비약적인 성능 향상을 이룰 수 있었다. 허나 회사의 요구는 비즈니스 컴퓨터였고, 개발팀은 성능을 계속 올리려 했다. 경영진의 간섭으로 많은 차질이 있었고, 크레이는 결국 사장과 1대1 대면을 한 끝에 CDC 3600이라는 비즈니스 컴퓨터로 타협하는 대신 위스콘신 주 치파와에 연구소를 차리고 경영진은 간섭하지 않는 것으로 매듭지었다.
그렇게 해서 연구소에서의 2년 간 개발은 순조롭게 진행되었고, 1964년 그 부산물인 CDC 6600이 세상에 발표되었다.
CDC 6600은 당시 미국에서 제일 성능이 좋았던 IBM의 IBM 7030보다 속도가 3배 빨랐으며, 최초로 메가플롭스라는 단위를 돌파하였다. CDC 6600 발표 1주 후 당시 IBM의 CEO였던 토마스 J. 왓슨은 직원들에게 메모를 전달했는데, 그 메모는 "IT업계를 선도하는 우리가 어떻게 선두를 빼앗길 수 있는지 이해를 못 하겠다"는, 쉽게 말해 업계 선두를 빼앗긴 것에 대해 직원들을 질타하는 내용이었다.
총 100여대 이상이 판매되었으며 이중 절반은 핵실험에 쓰였다. 처음 인도된 데가 로스 앨러모스의 국립연구소였고 여기서는 핵을 연구했다. 이외에도 CERN, UC 버클리의 방사선 연구소 등 여러 시설에 인도되었다.
3. 구조
당시 컴퓨터의 보편적인 구조는 하나의 CPU가 모든 시스템을 관장하는 것이었지만, CDC 6600의 CPU는 산술과 논리만 처리하도록 하였다. 다른 작업들은 유휴 상태의 메모리에 배당시켰다. 그 결과 모든 일을 처리해야 할 만큼 [커야 했던, 게다가 단순히 크기뿐만 아니라 구조가 매우 복잡하기 그지없었던 다른 CPU들과 대비해 CDC 6600의 CPU는 크게 간단해졌고 작아졌으며, 웬만해서는 부하가 잘 걸리지 않게 되었다. 게다가 속도는 10MHz로 당대 CPU들보다도 높은 클럭을 갖고 있었고, 이 때문에 최초로 MFlops의 벽을 돌파하게 된다.하지만 CDC 6600의 CPU는 제한된 수의 간단한 명령어만 실행시킬 수 있었다. CPU의 부하 방지를 위해서였으며, 다른 명령어들은 별도의 단순한 프로세서를 두고 거기에 구현했다. 이 구조는 후대 발표된 RISC와 일치한다.
중앙처리를 담당하는 센트럴 프로세서와 주 메모리는 60비트워드의 길이를 가졌고, CPU의 레지스터는 범용 60비트 레지스터 X0~X7, 18비트 주소 레지스터 A0~A7, 18비트 증분 레지스터 B0~B7로 구성되어 있다. CPU에서는 산하 프로세서를 통한 입출력에 대한 지침이 없다고 한다.
CPU, 프로세서를 병렬구조로 둠으로써 동시에 더 많은 명령어 처리가 가능했다. CPU 안에는 10개의 연산 유닛[2]이 병렬로 연결되었다. 이는 슈퍼스칼라 구조를 처음으로 시도한 것이다. 다만 당시에 슈퍼스칼라니 뭐니 그런 구조는 있을 리가 만무했고, 당시엔 그냥 독특한 시도 정도로만 취급받았다고 하며, 구조 상 부동소수점 연산 유닛이 4개나 되는 바람에 부동소수점 연산 관련해서 매우 큰 강점을 보였다.
메모리를 사용할 때 사용자 프로그램은 주 메모리의 인접한 영역만을 사용하도록 제한되었으며 실행 프로그램이 액세스하는 메모리의 부분은 사용자 프로그램에 액세스할 수 없는 주소 레지스터와 필드 레지스터에 의해 제어되었다.
CPU를 보조하기 위해 10개의 주변 프로세서(PP)가 도입되었다. 각각이 간단한 컴퓨터 1대씩의 성능을 가졌으며, 입출력을 제어하고 운영체제를 실행했다. 이중 하나는 프로그램과 시스템을 제어할 수 있었다고 한다. 각 12비트 워드 4096개가 포함되어 있으며 바이트 주소 지정 명령이 전혀 없어서 코드를 일일이 작성해 옮겨야 했다. 매우 큰 워드와 비교적 적은 양의 메모리로 인해 프로그래머는 비트 수준에서 워드에 데이터를 채워 메모리를 절약하는 경우가 많았다. 흥미로운 것은 워드가 크고, 워드 당 10자를 사용하기 때문에 한 번에 한 단어 씩 처리하는 것이 더 빠르다는 것이다. CDC 6600으로 코볼을 돌릴 경우 이 방법을 이용해 빠른 처리를 할 수가 있다.
실행되었던 명령어는 스택(stack)이라 불리는 8워드짜리 캐시에 저장되었으며 냉각재로는 프레온 가스를 사용했다.
4. 기타
- 운영체제에 엮인 비화가 있는데, 본래 출고 당시 CDC 6600은 COS라는 운영체제를 기본 탑재했고, SIPROS라는 운영체제를 선택 가능했다. 카탈로그상으로는 SIPROS가 더 강력했는데, 문제는 SIPROS는 개발 중이었다. 그러다 결국 베이퍼웨어가 되더니 개발 취소 크리를 맞고 만다.