맨위로가기

CDC 6600

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

CDC 6600은 1964년에 출시된 컨트롤 데이터 코퍼레이션(CDC)의 메인프레임 컴퓨터로, 당시 세계에서 가장 빠른 컴퓨터였다. 시모어 크레이가 주도하여 개발되었으며, 트랜지스터 기반 설계와 병렬 처리 기술을 통해 이전 모델인 IBM 7030 스트레치보다 3배 빠른 성능을 보였다. 100대 이상 판매되었으며, 핵무기 연구소와 대학 컴퓨팅 연구소에서 사용되었다. CDC 6600은 RISC 아키텍처의 초기 형태를 보여주었으며, 이후 CDC 7600, CDC 사이버 70 및 170 컴퓨터의 개발에 영향을 미쳤다.

더 읽어볼만한 페이지

  • 트랜지스터 컴퓨터 - PDP-1
    PDP-1은 DEC에서 개발한 초기 미니컴퓨터로, TX-0 컴퓨터 설계를 기반으로 해커 문화 형성에 기여하고 스페이스워! 같은 혁신적인 소프트웨어 개발 플랫폼 역할을 했으며, 현재 일부가 컴퓨터 역사 박물관에 소장되어 작동 가능한 상태로 시연되고 있다.
  • 트랜지스터 컴퓨터 - PDP-8
    PDP-8은 1965년 DEC에서 출시된 12비트 미니컴퓨터로, 30만 대 이상 판매되었으며, 단순한 설계와 저렴한 가격으로 컴퓨터 대중화에 기여했다.
  • 슈퍼컴퓨터 - 고성능 컴퓨팅
    고성능 컴퓨팅(HPC)은 과학 및 공학 분야의 복잡한 계산 문제 해결에 사용되는 강력한 컴퓨팅 기술로, 클러스터 방식이 주류이며 경영을 포함한 다양한 영역으로 확장되고 있고, TOP500 목록, 클라우드 컴퓨팅, GPGPU 등의 기술 발전과 함께 기후 변화 예측, 신약 개발, 국가 안보 등 광범위한 분야에서 활용되는 4차 산업혁명 시대의 핵심 기술이다.
  • 슈퍼컴퓨터 - 한국과학기술정보연구원
    한국과학기술정보연구원(KISTI)은 과학기술정보통신부 산하 정부출연연구기관으로, 과학기술 지식정보 인프라 구축 및 서비스 제공, 정보분석, 과학기술정보 유통, 슈퍼컴퓨팅 인프라 구축 및 운영을 통해 국가 과학기술 진흥과 산업 발전에 기여하는 것을 목표로 한다.
CDC 6600
CDC 6600
척도를 나타내는 그림이 있는 3D 렌더링
척도를 나타내는 그림이 있는 3D 렌더링
제조업체컨트롤 데이터 코퍼레이션
설계자시모어 크레이
출시일1964년 9월
가격미화 2,370,000달러
크기높이 : 2000mm
캐비닛 너비810mm
캐비닛 길이1710mm
전체 너비4190mm
무게약 12000lb
전력30kW
전압208V 400Hz
운영 체제SCOPE, KRONOS
CPU60비트 프로세서
주파수10MHz
메모리최대 982킬로바이트 (131000 x 60비트)
MIPS2 MIPS
후속 기종CDC 7600
이전 기종CDC 1604
판매 대수100대 이상

2. 역사와 영향

세이무어 크레이는 엔지니어링 리서치 어소시에이츠(ERA)에서 설계한 머신을 기반으로 CDC의 첫 번째 제품을 만들었다. CDC로 이적한 후 '리틀 캐릭터'라는 실험용 머신을 거쳐 CDC 1604를 출시했다. 1604는 최초의 상업용 트랜지스터 기반 컴퓨터 중 하나였고, 당시 가장 빠른 머신 중 하나였다. 경영진은 매우 기뻐하며 비즈니스 용도에 더 적합한 새로운 머신 시리즈(CDC 3000 시리즈)를 개발할 계획을 세웠지만, 크레이는 이러한 프로젝트에 관심이 없었다. 대신, 1604의 50배 성능을 가진 머신을 개발하는 것을 목표로 삼았다.

크레이는 CDC 본사 근처의 새로운 사무실에서 1604에 사용된 트랜지스터를 게르마늄 대신 페어차일드 반도체의 새로운 실리콘 기반 트랜지스터를 사용하기로 결정했다.

이 무렵, CDC는 대기업으로 성장했고, 크레이는 경영진의 간섭에 점점 더 좌절감을 느꼈다. 1962년에 CDC 3600이 출시를 앞두고 상황이 긴장되자, 크레이는 CEO 윌리엄 노리스에게 변화를 요구하며 회사를 떠날 수도 있다고 말했다. 노리스는 크레이를 잃는 것은 너무 중요하다고 생각하여 새로운 연구소 설립을 허가했다.

크레이는 고향 치페와폴스, 위스콘신에 새로운 연구소를 설립했다. 이 때문에 새로운 머신 설계는 상당히 늦어졌지만, 새로운 연구소에서 짐 손턴과 함께 작업하면서 머신은 빠르게 형태를 갖추었다.

CDC 6600은 총 100대 이상이 판매되었다. 로렌스 리버모어 국립 연구소를 비롯한 핵폭탄 관련 연구소[43]와 일부 대학의 컴퓨팅 관련 연구실이 구매했다. 크레이는 즉시 후속 기종 개발에 주력하여, CDC 7600의 성능 목표를 6600의 10배로 정했다. 이후의 CDC_Cyber영어 70과 170 컴퓨터는 CDC 6600과 매우 유사했다.

일본에서는 1970년에 CRC 솔루션즈(伊藤忠電子計算サービス)가 6600을 약 22억에 구매하여, 1966년에 도입된 3600과 함께 2대 구성으로 1971년 3월에 영업 운전을 시작했다.[44]

2. 1. 개발 배경

세이무어 크레이는 엔지니어링 리서치 어소시에이츠(ERA)에서 설계한 기계를 기반으로 CDC의 첫 번째 제품을 만들었다. 그는 CDC로 옮겨간 후 '리틀 캐릭터'라는 실험용 기계를 거쳐 1960년에 최초의 상업용 트랜지스터 컴퓨터 중 하나이자 당시 가장 빠른 기기 중 하나인 CDC 1604를 출시했다.[20] 경영진은 이에 고무되어 문자 처리 및 기록 보관 기능을 포함한 새로운 비즈니스용 기기를 계획했다. 그러나 크레이는 이러한 프로젝트에 관심이 없었고, 1604보다 50배 더 빠른 새로운 기계를 제작하는 것을 목표로 삼았다. 그는 5년 계획으로 "세계에서 가장 큰 컴퓨터를 생산하는 것"(당시 "가장 큰"은 "가장 빠른"과 동의어)을, 1년 계획으로는 "그 길의 5분의 1 지점까지 가는 것"이라고 답했다.[21]

크레이는 핵심 팀과 함께 CDC 본사 근처의 새로운 사무실로 옮겨 1604에서 사용했던 "저렴한" 트랜지스터의 고품질 버전을 실험했다. 그러나 게르마늄 기반 트랜지스터는 1604에 사용된 트랜지스터보다 훨씬 빠르게 작동시킬 수 없다는 것을 발견했다. 경영진이 원했던 "비즈니스 기계"는 CDC 3000 시리즈로 구체화되었고, 가능한 한 최대한의 성능을 끌어냈다. 크레이는 페어차일드 반도체의 새로운 실리콘 기반 트랜지스터가 스위칭 성능을 획기적으로 개선했다는 점에 주목하여 이를 사용하기로 결정했다.

이 기간 동안 CDC는 신생 기업에서 대기업으로 성장했고, 크레이는 경영 요구 사항에 점점 더 좌절감을 느꼈다. 1962년에 CDC 3600이 생산 품질에 가까워지고 경영진이 원하던 대로 출시될 때, 상황은 더욱 긴장되었다. 크레이는 CDC의 CEO인 윌리엄 노리스에게 변화가 필요하며, 그렇지 않으면 회사를 떠날 것이라고 말했다. 노리스는 크레이를 잃는 것이 큰 손실이라고 판단하여 그에게 원하는 곳에 새로운 연구소를 설립할 수 있도록 허락했다.

크레이는 고향인 치페와폴스, 위스콘신으로 돌아가 땅을 사서 새로운 연구소를 시작했다. 이 과정에서 새로운 기계 설계에 상당한 지연이 발생했지만, 새로운 연구소에서 경영진의 간섭 없이 일이 빠르게 진행되기 시작했다. 이 무렵 새로운 트랜지스터는 매우 안정적이 되었고, 이를 사용하여 제작된 모듈은 처음 시도에서 제대로 작동하는 경향이 있었다. 6600은 크레이가 시스템 설계자이자 6600의 "숨겨진 천재"인 짐 손턴과 함께 작업하면서 형태를 갖추기 시작했다.

6600은 이전 기록 보유자인 IBM 7030 스트레치보다 3배 더 빨랐다. 이는 IBM을 놀라게 했다. 당시 CEO인 토마스 왓슨 주니어는 1963년 8월 28일 직원들에게 보낸 메모에서 "지난주, 컨트롤 데이터 ... 6600 시스템을 발표했습니다. ... 이 소규모의 노력과 우리의 방대한 개발 활동을 비교해 볼 때, ... 우리가 어떻게 업계 선두 위치를 잃었는지 이해할 수 없습니다."라고 언급했다. 크레이는 "왓슨 씨가 자신의 질문에 답한 것 같군요."라고 냉소적으로 답했다.[23][24]

100대 이상의 CDC 6600이 1964년부터 1969년까지 판매되었다. 이들 중 다수는 다양한 핵무기 관련 연구소로 갔고, 상당수는 대학 컴퓨팅 연구소로 들어갔다. CDC 6600은 초기 직접 숫자 검색의 예시로 오일러의 거듭제곱 합 추측을 반증하는 데 사용되었다.

크레이는 즉시 다음 기계로 관심을 돌렸고, 6600의 10배 성능을 목표로 하는 CDC 7600을 출시했다. 이후의 CDC 사이버 70 및 170 컴퓨터는 전반적인 설계에서 CDC 6600과 매우 유사했으며 거의 완전히 이전 버전과 호환되었다.

일본에서는 1970년에 CRC 솔루션즈(伊藤忠電子計算サービス)가 6600을 약 22억에 구매하여, 1966년에 도입된 3600과 함께 2대 구성으로 1971년 3월에 영업 운전을 시작했다.[44]

2. 2. 주요 특징

CDC 6600은 트랜지스터 기반으로 설계되었으며, 특히 페어차일드 반도체실리콘 트랜지스터를 채택했다. 이는 당시 게르마늄 트랜지스터보다 훨씬 빠른 스위칭 속도를 제공하여 성능 향상에 크게 기여했다.[21]

6600은 RISC 아키텍처의 초기 형태를 보여준다. 중앙 처리 장치(CPU)는 단순한 연산만을 수행하고, 입출력(I/O)과 같은 복잡한 작업은 10개의 주변 처리 장치(PP)에 분리하여 처리했다. CPU는 60비트 워드와 정수의 1의 보수 표현을 사용했다.[26] 이러한 설계는 CPU를 작고 빠르게 만들어 10MHz(100ns 사이클 시간)의 클럭 속도를 달성할 수 있게 했다. 이는 당시 다른 기계들보다 약 10배 빠른 속도였다.

10개의 PP는 "배럴 앤 슬롯" 구조를 통해 가상으로 구현되었다.[29] 하나의 PP에 대한 CPU 하드웨어만 존재했으며, 이 하드웨어는 10개의 PP 레지스터 세트(각 PP의 상태를 나타냄)에서 작동하며 공유되었다. 배럴이 "회전"하면서 각 PP 레지스터 세트가 실제 PP CPU가 차지하는 "슬롯"에 제공되었다. 공유 CPU는 PP의 명령을 실행하고, 배럴이 다시 회전하여 다음 PP의 레지스터 세트를 제공하는 방식으로 작동했다. 이러한 병렬 처리 방식은 기계의 성능을 크게 향상시켰다.

6600 CPU는 제한된 수의 간단한 명령어만 실행할 수 있었다. 당시 일반적인 CPU는 복잡한 명령어 집합을 가지고 있었지만, 시모어 크레이는 이러한 명령어를 별도의 더 간단한 프로세서에 구현하여 CPU에 훨씬 더 작은 명령어 집합을 남겼다. CPU, 주변 프로세서(PP) 및 I/O가 병렬로 작동하도록 함으로써 이 설계는 기계의 성능을 상당히 향상시켰다.

2. 3. 기술 발전과 영향

1964년부터 1969년까지 100대 이상의 CDC 6600이 판매되었다. 이들 중 다수는 핵무기 관련 연구소와 대학 컴퓨팅 연구소로 보내졌다. CDC 6600은 오일러의 거듭제곱 합 추측을 반증하는 데 사용되는 등 초기 직접 숫자 검색의 예시로 활용되었다.

크레이는 곧바로 6600의 10배 성능을 목표로 하는 후속 기계 CDC 7600 개발에 착수했다. 이후 출시된 CDC 사이버 70 및 170 컴퓨터는 CDC 6600과 전반적인 설계가 매우 유사했으며, 거의 완벽하게 이전 버전과 호환되었다.

CDC 6600은 이전 기록 보유자였던 IBM 7030 스트레치보다 3배 더 빠른 성능을 보였다. 이는 IBM을 놀라게 했으며, 당시 CEO였던 토마스 왓슨 주니어는 1963년 8월 28일 직원들에게 보낸 메모에서 "지난주, 컨트롤 데이터 ... 6600 시스템을 발표했습니다. ... 이 소규모의 노력과 우리의 방대한 개발 활동을 비교해 볼 때, ... 우리가 어떻게 업계 선두 위치를 잃었는지 이해할 수 없습니다."라고 언급했다. 이에 대해 크레이는 "왓슨 씨가 자신의 질문에 답한 것 같군요."라고 냉소적으로 பதிலளித்தார்.[23][24]

CDC 6000 시리즈는 CDC 6400, CDC 6500, CDC 6600, CDC 6700의 네 가지 기본 모델을 포함했다. 6000 시리즈 모델 간의 유일한 차이점은 CPU였으며, 6400 CPU와 6600 CPU 두 종류가 있었다. 6400 CPU는 통합 산술 장치를 사용하여 명령어 실행 시간을 중첩시킬 수 없었던 반면, 6600 CPU는 여러 개의 기능 유닛을 통해 병렬 작동을 지원하여 명령어 실행 시간을 중첩시킬 수 있었다. 또한 6600 CPU는 ''명령어 캐시''의 일종인 ''명령어 스택''을 갖추고 있었다. 두 CPU는 명령어 호환성을 유지하여, 6600 CPU에서 더 빠른 실행이 가능했다.

1970년, 일본의 CRC 솔루션즈(伊藤忠電子計算サービス)는 6600을 약 22억에 구매했다. 이듬해인 1971년 3월, 1966년에 도입된 3600과 함께 2대 구성으로 영업 운전을 시작했다.[44]

3. 기술적 특징

CDC 6600은 단일 중앙 처리 장치(CPU) 대신, 단순화된 중앙 처리 장치(CP)와 10개의 주변 처리 장치(PP)를 사용하여 시스템을 구동했다.[25] CP는 수학 및 논리 연산을 빠르게 수행하도록 설계되었으며, 배선 길이와 신호 지연을 줄이기 위해 가능한 작게 제작되었다. 십자형 섀시 중앙에 CPU 회로 기판을 배치하여 크기를 줄였다. 실리콘 트랜지스터의 빠른 스위칭 속도 덕분에 CPU는 10MHz(100ns 사이클 시간)로 작동했으며, 이는 당시 다른 기계보다 약 10배 빠른 속도였다. 단순한 프로세서는 더 적은 클럭 사이클로 명령을 실행하여, 10 사이클 만에 곱셈을 완료할 수 있었다.

10개의 12비트 4KiB 주변 프로세서(PP)는 12개의 입력/출력(I/O) 채널을 통해 입출력을 처리하고 CP에서 처리할 데이터를 중앙 메모리로 전송했다. PP는 CPU가 연산을 수행하는 동안 메모리에 접근하여 중앙 처리 시간을 효율적으로 사용하게 했다.

6600의 CP는 60비트 워드와 정수의 1의 보수 표현을 사용했다.[26] 이는 1980년대 후반까지 CDC 기계에서 사용되었으며, 일부 디지털 신호 처리기를 제외하고 이 아키텍처를 사용하는 마지막 시스템이었다. CDC는 CP, PP 및 채널 수와 유형에 대한 옵션을 제공했다. 예를 들어, CDC 6700은 두 개의 중앙 프로세서, 6400 CP와 6600 CP를 가지고 있었다.

6600은 ''데드 스타트 패널''을 가지고 있었으며,[27] 듀얼 CRT 시스템 콘솔은 운영 체제에 의해 제어되었고 하드웨어를 직접 제어하거나 표시하지 않았다. 전체 6600 기계는 약 400,000개의 트랜지스터를 포함하고 있었다.[28]

물리적 설계는 다음과 같다.


  • 6600은 십자형 캐비닛에 내장되었으며, 네 개의 팔 끝에는 펌프와 열교환기가 배치되었다.
  • 냉각은 기기 내에서 프레온을 순환시켜 외부 냉각수 공급 장치와 열을 교환하는 방식으로 이루어졌다.[38]
  • 각 팔은 두께가 약 약 20.32cm인 4개의 섀시를 수용할 수 있었고, 중앙 근처에 경첩이 달려 책처럼 열 수 있었다.
  • "+"자 교차점은 섀시를 상호 연결하는 케이블로 채워졌다.
  • 섀시는 1번부터 16번까지 번호가 매겨졌는데, 1번 섀시는 10개의 PPU와 해당 메모리, 12개의 I/O 채널을 포함했다. CPU의 주 메모리는 여러 섀시에 분산되어 있었다. 주 메모리가 64K 워드인 시스템에서는 "+"의 팔 중 하나가 생략되었다.
  • 컴퓨터의 논리 회로는 약 약 6.35cm 정사각형이고 두께가 약 약 2.54cm인 모듈로 포장되었다.
  • 각 모듈은 한쪽 가장자리에 커넥터(30핀, 15개의 수직 행 2개)가 있고 반대쪽 가장자리에는 6개의 테스트 포인트가 있었다.
  • 모듈은 열을 제거하기 위해 두 개의 알루미늄 냉판 사이에 배치되었다.
  • 모듈은 두 개의 평행한 인쇄 회로 기판으로 구성되었으며, 구성 요소는 두 기판 중 하나 또는 두 기판 사이에 장착되었다. 이것은 매우 조밀한 구성을 제공했지만, 일반적으로 수리가 불가능했고, 우수한 열 전달 특성을 가졌다. 이것은 코드우드 구조로 알려졌다.[38]



3. 1. 중앙 처리 장치 (CPU)

CDC 6600은 수학 및 논리 연산을 빠르게 실행하도록 설계된 중앙 처리 장치(CP)를 사용했다.[25] CPU는 배선 길이와 신호 지연을 줄이기 위해 가능한 작게 만들어졌다. 실리콘 트랜지스터의 빠른 스위칭 속도와 결합하여, CPU는 10MHz(100ns 사이클 시간)로 작동했으며, 이는 당시 다른 기계보다 약 10배 빠른 속도였다. 클럭 속도가 빨라진 것 외에도, 단순한 프로세서는 더 적은 클럭 사이클로 명령을 실행했다. 예를 들어, CPU는 10 사이클 만에 곱셈을 완료할 수 있었다.

6600의 CPU는 현대의 RISC 시스템과 유사한 기본 구조를 가지고 있었다.[30] 프로세서는 비교적 단순하고 메모리 접근이 제한적이며 잘 정의된 명령을 수행하도록 설계되었다. 다른 많은 기계들은 복잡한 명령어를 사용했지만, 6600에서는 메모리에서 값을 로드하고 더하는 데 각각 별도의 명령어가 필요했다. 이론적으로는 추가적인 메모리 접근으로 인해 느려질 수 있지만, 잘 스케줄링된 코드에서는 여러 명령어가 병렬로 처리될 수 있어 이러한 비용을 상쇄했다.

CDC 6600 CP는 세 개의 피연산자를 모두 지정할 수 있는 3 주소 머신이었다.[30]

CDC 6000 시리즈는 CDC 6400, CDC 6500, CDC 6600, CDC 6700의 네 가지 기본 모델을 포함했다. 6000 시리즈의 모델들은 CPU만 달랐으며, 6400 CPU와 6600 CPU의 두 종류가 있었다. 6400 CPU는 통합 산술 장치를 가지고 있어 명령어 실행 시간을 중첩할 수 없었다. 반면, 6600 CPU는 여러 개의 기능 유닛을 가지고 있어 동시에, 즉 "병렬"로 작동하여 CPU가 명령어 실행 시간을 중첩할 수 있었다. 6600 CPU는 또한 일종의 ''명령어 캐시''인 ''명령어 스택''을 가지고 있어 CPU 처리량을 높이는 데 도움이 되었다. 두 종류의 CPU는 명령어 호환성을 가지고 있어 6600 CPU에서 더 빠르게 실행되었다.

6600 CPU는 10개의 병렬 기능 유닛을 가지고 있어 여러 명령을 동시에 처리할 수 있었다. 이는 오늘날 슈퍼스칼라 프로세서 설계로 알려져 있지만, 당시에는 독특했다. 기능 유닛은 다음과 같다:

  • 부동 소수점 곱셈 (두 개)
  • 부동 소수점 나눗셈
  • 부동 소수점 덧셈
  • "긴" 정수 덧셈
  • 증분기 (두 개; 메모리 로드/저장 수행)
  • 시프트
  • 부울 논리
  • 분기


부동 소수점 연산은 이 아키텍처에서 가장 중요한 위치를 차지했다. CDC 6600은 60비트 부동 소수점 곱셈을 프로그램 분기와 비슷한 시간 내에 실행할 수 있었다. 60비트 숫자의 고정 소수점 덧셈과 뺄셈은 음수를 위해 1의 보수를 사용하여 Long Add Unit에서 처리되었다.

이전에 실행된 명령은 "스택"이라고 하는 8개의 단어 캐시에 저장되었다. 스택 내 점프는 메모리 페치가 필요하지 않기 때문에 스택 외부 점프보다 빨랐다.

6400, 6500, 6600 기기의 중앙 처리 장치(CP)와 주 메모리는 60비트 워드 길이를 가졌다. 중앙 처리 장치에는 다음과 같은 레지스터들이 있었다.

종류레지스터 이름비트 수개수설명
범용 레지스터X0 ~ X760비트8개연산에 사용되는 데이터를 저장한다.
주소 레지스터A0 ~ A718비트8개메모리 주소를 저장한다. A1~A5 설정은 해당 주소의 데이터를 X1~X5에 로드하고, A6, A7 설정은 X6, X7의 데이터를 저장한다. A0는 부수 효과가 없다.
증분 레지스터B0 ~ B718비트8개배열 인덱스 등에 사용된다. B0은 항상 0으로 고정되어 있다.



시스템은 10MHz 클럭을 사용했으며, 전체 성능은 약 3MFLOPS였다. 최고의 컴파일러를 사용하면, FORTRAN 프로그램은 약 0.5MFLOPS를 유지할 수 있었다.

3. 2. 주변 처리 장치 (PP)

Peripheral Processor영어 (PP)는 입출력(I/O) 처리와 운영 체제 실행을 담당하는 장치이다. 6600 시스템에서 PP는 중앙 처리 장치(CPU)의 부담을 덜어주는 역할을 수행했다.

6600 시스템에는 10개의 PP가 존재했는데, 각각은 자체 메모리를 가지고 있었지만, 실행 유닛은 공유하는 형태였다. 이를 "배럴 앤 슬롯" 구조라고 불렀다. 각 PP는 4096개의 12비트 워드로 구성된 자체 메모리를 가지고 있었고, 이는 I/O 버퍼링과 프로그램 저장에 사용되었다.

PP의 실행 유닛("슬롯")은 10개의 PP("배럴") 사이를 순환하며 명령을 처리했다. 각 PP는 10 클럭 사이클마다 한 번씩 실행 유닛에 접근할 수 있었는데, 이는 CP 메모리에 접근하는 데 걸리는 시간과 일치했다. 이러한 설계는 비용 절감과 효율성을 동시에 달성할 수 있게 했다.

PP는 CDC 160-A를 기반으로 설계되었으며, CPU보다 훨씬 느리게 작동했다. PP는 데이터를 수집하여 전용 하드웨어를 통해 고속으로 주 기억 장치에 버스트 전송하는 역할을 했다.

PP 중 하나(PP0)는 기계 전체를 제어하는 역할을 맡았고, 다른 PP들은 다양한 I/O 작업을 담당했다. 예를 들어, PP9는 시스템 콘솔을 전담했다. CP 프로그램이 운영 체제 기능을 수행해야 할 때, PP0에게 요청을 보내고, PP0는 다른 PP에게 작업을 할당하는 방식으로 처리했다.

PP0의 독점적인 제어 역할은 잠재적인 단일 실패 지점이었다. PP0에 오작동이 발생하면 전체 기계가 중단될 수 있었다. 이후 CDC 7600에서는 이러한 문제점을 개선하여, 어떤 PP든 컨트롤러가 될 수 있도록 설계되었다.

PP는 중앙 프로세서와 통신하기 위해 다음과 같은 명령어들을 사용했다.[33]

명령어기능
CRD d주변 프로세서의 A 레지스터가 지정한 주소에 있는 중앙 메모리의 60비트 워드 하나를 주소 d부터 시작하는 연속된 5개의 PP 워드로 전송한다.
CRM d,mCRD와 유사하지만, 이전에 위치 d에 저장된 길이를 가진 워드 블록을 PP 주소 m부터 시작하는 PP 메모리로 전송한다.
CWD d위치 d부터 시작하는 연속된 5개의 PP 워드를 조립하여 레지스터 A가 지정한 중앙 메모리 위치로 전송한다.
CWM d,mPP 메모리 주소 m부터 시작하는 블록을 중앙 메모리로 전송한다. 중앙 메모리 주소는 레지스터 A에 저장되어 있었고, 길이는 실행 전에 위치 d에 저장되어 있었다.
RPN중앙 프로세서의 프로그램 주소 레지스터의 내용을 PP의 A 레지스터로 전송한다.
EXN교환 점프(Exchange Jump)A 레지스터에서 주소를 전송하고 프로세서에게 지정된 주소를 사용하여 교환 점프를 수행하도록 지시한다. CP 교환 점프는 프로세서를 인터럽트하고, 지정된 위치에서 레지스터를 로드하며, 이전 내용을 동일한 위치에 저장한다. 이렇게 하면 작업 전환이 수행된다.[33]


3. 3. 메모리 구조

CDC 6600영어의 사용자 프로그램은 코어 메모리의 연속된 영역 하나만 사용할 수 있었다. 프로그램이 접근하는 메모리 영역은 '''RA''' (상대 주소, Relative Address) 레지스터와 '''FL''' (필드 길이, Field Length) 레지스터로 관리되었다.

프로그램이 메모리에 접근할 때, 프로세서는 해당 주소가 0부터 FL-1 사이인지 확인했다. 이를 통과하면 실제로는 해당 주소에 RA 값을 더한 주소의 메모리에 접근했다. 이 방식을 "논리 주소 변환 (Logical Address Translation)"이라고 한다. 각 사용자 프로그램에서는 메모리 공간이 0번지부터 FL 워드의 범위로 존재하는 것처럼 보였지만, 물리적으로는 사용자 프로그램이 사용하는 메모리는 적절한 주소에 할당되었다. 이 기법을 사용하면 운영 체제는 RA 레지스터를 적절하게 설정하여 각 사용자 프로그램을 임의의 주소에 배치하고 이동시킬 수 있었다.

허용된 범위를 벗어난 메모리에 접근하려는 사용자 프로그램은 오류를 발생시키고, 운영 체제가 이를 중단시켰다. 오류가 발생하면, 코어 덤프가 파일에 기록되어 개발자가 원인을 찾을 수 있었다. 가상 메모리 시스템과 달리, 실행 중인 프로세스는 반드시 주 기억 장치에 전체가 존재했다. 가상 메모리 지원은 이후 CDC_Cyber|사이버영어 180에서 이루어졌다.

3. 4. 명령어 집합 및 워드 구조

CDC영어 6600의 중앙 처리 장치(CP)는 60비트 워드를 사용했으며, 정수의 1의 보수 표현을 사용했다. 주변 처리 장치(PP)는 12비트 워드를 사용했다. CDC는 12비트 단위를 "바이트"라고 불렀으며, 문자는 6비트 CDC 디스플레이 코드로 표현되어 워드당 최대 10개의 문자를 저장할 수 있었다. 이 코드는 대문자, 숫자, 일부 구두점을 포함하는 64개의 문자 집합을 지원했다.[34][35][36]

중앙 처리 장치 명령어는 15비트 또는 부호 있는 18비트 주소 필드를 가진 30비트였으며, 후자는 128K 워드의 중앙 메모리를 직접 주소 지정할 수 있었다. 주소 레지스터의 부호 있는 특성으로 인해 개별 프로그램은 128K 워드로 제한되었다.[26] 점프 문 또는 서브루틴 반환 점프 명령의 대상일 때 명령어는 워드 경계에서 시작해야 했으므로, 워드의 마지막 15, 30 또는 45비트를 채우기 위해 무의미한(no-op) 명령어가 필요했다. 숙련된 어셈블러 프로그래머는 이러한 공간을 활용하여 프로그램을 최적화할 수 있었다.

6비트 문자는 CDC 디스플레이 코드라는 인코딩으로 워드에 최대 10개의 문자를 저장하는 데 사용할 수 있었다. FORTRAN 프로그램, 재무 보고서 또는 과학 보고서를 작성하기에 충분했다. CDC 디스플레이 코드 문자 집합에는 64 문자 및 63 문자 두 가지 변형이 있었다. 64 문자 집합은 ":" (콜론) 문자가 워드의 마지막 문자일 경우 무시(0으로 채움)되는 단점이 있었다. 크로노스 및 NOS 시분할 시스템에서도 사용하여 이전 소프트웨어와 다소 호환되는 방식으로 ASCII 문자 집합을 완전히 사용할 수 있도록 하는 6/12 디스플레이 코드라 불리는 보완적인 변형도 있었다.[37]

바이트 주소 지정 명령어가 없었기 때문에, 문자를 워드로 묶고 이동시키는 코드를 작성해야 했다. 큰 워드 크기와 상대적으로 적은 메모리 때문에 프로그래머들은 비트 수준에서 데이터를 워드로 묶어 메모리를 절약하는 경우가 많았다. 큰 워드 크기와 워드당 10개의 문자를 사용했기 때문에, 문자를 언패킹/처리/재패킹하는 것보다 워드 단위의 문자를 한 번에 처리하는 것이 더 빠른 경우가 많았다.

3. 5. 물리적 설계

6600은 십자형 캐비닛에 내장되었으며, 네 개의 팔 끝에는 펌프와 열교환기가 배치되었다. 냉각은 기기 내에서 프레온을 순환시켜 외부 냉각수 공급 장치와 열을 교환하는 방식으로 이루어졌다.[38] 각 팔은 두께가 약 약 20.32cm인 4개의 섀시를 수용할 수 있었고, 중앙 근처에 경첩이 달려 책처럼 열 수 있었다. "+"자 교차점은 섀시를 상호 연결하는 케이블로 채워졌다. 섀시는 1번부터 16번까지 번호가 매겨졌는데, 1번 섀시는 10개의 PPU와 해당 메모리, 12개의 I/O 채널을 포함했다. CPU의 주 메모리는 여러 섀시에 분산되어 있었다. 주 메모리가 64K 워드인 시스템에서는 "+"의 팔 중 하나가 생략되었다.

컴퓨터의 논리 회로는 약 약 6.35cm 정사각형이고 두께가 약 약 2.54cm인 모듈로 포장되었다. 각 모듈은 한쪽 가장자리에 커넥터(30핀, 15개의 수직 행 2개)가 있고 반대쪽 가장자리에는 6개의 테스트 포인트가 있었다. 모듈은 열을 제거하기 위해 두 개의 알루미늄 냉판 사이에 배치되었다. 모듈은 두 개의 평행한 인쇄 회로 기판으로 구성되었으며, 구성 요소는 두 기판 중 하나 또는 두 기판 사이에 장착되었다. 이것은 매우 조밀한 구성을 제공했지만, 일반적으로 수리가 불가능했고, 우수한 열 전달 특성을 가졌다. 이것은 코드우드 구조로 알려졌다.[38]

4. 운영 체제 및 프로그래밍

CDC 6600의 운영 체제는 초기에 COS(치페와 운영체제, Chippewa Operating System)라는 간단한 일괄 처리 시스템을 사용했다. COS는 이전 CDC 3000 시리즈 운영 체제를 기반으로 빠르게 개발되어 초기 시스템 테스트에 사용되었다.[20] 그러나 이 기계들은 원래 로스앤젤레스의 회사 시스템 과학 부서에서 개발 중이던 SIPROS(Simultaneous Processing Operating System, 동시 처리 운영 체제)라는 더 강력한 시스템과 함께 제공될 예정이었다. SIPROS는 개발 일정 지연으로 인해 결국 취소되었고, CDC는 이로 인해 큰 손실을 보았다.[20]

이후 운영 체제 개발은 두 갈래로 나뉘었다. CDC가 승인한 COS의 발전은 캘리포니아주 서니베일 소프트웨어 개발 연구소에서 SCOPE(Supervisory Control Of Program Execution, 프로그램 실행 감독)라는 이름으로 진행되었다. SCOPE 버전 1은 COS를 디스어셈블한 것이었고, 버전 2에는 새로운 장치 및 파일 시스템 지원이, 버전 3에는 영구 파일 지원, EI/200 원격 일괄 처리 지원, INTERCOM 시분할 지원이 포함되었다.[20] 그러나 SCOPE는 안정성과 유지 보수성 문제가 있었다.

CDC 6000 시리즈 SCOPE 3.1이 데스크탑 CYBER 에뮬레이터에서 실행되면서 자체 구축


COS의 비공식적인 발전은 미네소타주 아덴힐스 조립 공장에서 MACE([그렉] 맨스필드(Greg Mansfield)와 [데이브] 칼랜더(Dave Cahlander) Executive)라는 이름으로 이루어졌다. MACE는 COS 및 SCOPE 1과 기능은 유사했지만, 코드 모듈성을 발전시켜 시스템 안정성을 개선하고 새로운 저장 장치에 적응했다. MACE는 공식 제품은 아니었지만 많은 고객들이 사용했다.[20]

MACE는 이후 공식 SCOPE 제품을 제치고 Kronos의 기반이 되었다. Kronos는 TELEX 시분할 기능과 BATCHIO 원격 일괄 처리 기능을 개발하여 주목받았다. Kronos는 COS/SCOPE 1 파일 시스템을 계속 사용하면서 영구 파일 기능을 추가했다.[20]

SCOPE와 Kronos를 통합하려는 시도는 NOS(Network Operating System, 네트워크 운영 체제)를 탄생시켰다. CDC는 NOS를 모든 기기의 유일한 운영 체제로 만들고자 했으나, 많은 SCOPE 고객들이 SCOPE 아키텍처에 대한 의존성을 유지했기 때문에, Kronos 코드베이스에 SCOPE 기능을 추가하는 방식으로 NOS/BE(Batch Environment, 일괄 처리 환경)를 개발했다.[20]

조립 공장 환경에서는 하드웨어 테스트를 위한 엔지니어링 도구 SMM, 소프트웨어 스모크 테스트를 위한 KALEIDOSCOPE, 구성 요소 및 장치 스트레스 테스트를 위한 MALET(Maintenance Application Language for Equipment Testing, 장비 테스트를 위한 유지 관리 응용 프로그램 언어) 등의 운영 체제도 생산되었다.[20]

CDC는 CDC 6000 시리즈 (6600 포함)와 CDC 3000 시리즈 모두에 어셈블리 언어로 COMPASS라는 이름을 사용했고, SCOPE라는 이름은 3000 및 6000 시리즈에서 구현하는 데 사용되었다.

5. CDC 7600

CDC 7600은 원래 CDC 6800으로 알려져 있었으며, 기존 6000 시리즈 머신과 완전히 호환되도록 설계되었다.[23] 그러나 설계 과정에서 설계자들은 완전한 호환성을 유지하면 성능 향상이 제한된다는 것을 깨닫고, 성능을 위해 호환성을 희생하기로 결정했다.[23] CDC 7600의 CPU는 기본적으로 6400 및 6600 CPU와 명령어 호환성을 갖추어, 고급 언어 소스 코드 수준에서 코드 이식성을 허용했다. 하지만 CDC 7600의 하드웨어, 특히 주변 프로세서 유닛(PPU)의 하드웨어는 상당히 달랐으며, 별도의 운영 체제가 필요했다.[23]

이러한 비호환성은 결과적으로 6000 시리즈 설계의 일부 특성을 개선할 수 있게 해주는 행운으로 작용했다. 예를 들어, 6600은 주변 프로세서(PP), 특히 첫 번째(PP0)에 전적으로 의존하여 전체 시스템 작동을 제어했지만, 7600에서는 CPU가 모든 레지스터 내용을 코어 메모리와 교환하는 중앙 교환 점프(XJ) 명령어를 통해 자체 작동을 제어할 수 있었다.[23] 이후 6000 시리즈 머신도 이러한 기능으로 개조되었다.[23]

참조

[1] PDF Adams Survey 1968 http://ed-thelen.org[...]
[2] PDF 6000 Series Site Prep, Sep 65 http://www.bitsavers[...]
[3] 웹사이트 Control Data 6600: The Supercomputer Arrives http://www.drdobbs.c[...] 2018-10-06
[4] PDF CDC 6400 Central Processor Training Manual, Feb 67 http://www.moorecad.[...]
[5] PDF The Computer Directory And Buyer's Guide 1967 http://bitsavers.tra[...]
[6] PDF Cyber 70 Product Announcement http://bitsavers.tra[...]
[7] 웹사이트 Whetstone Benchmark History and Results http://www.roylongbo[...]
[8] 서적 The American Midwest: An Interpretive Encyclopedia https://books.google[...] Indiana University Press 2006
[9] 웹사이트 CDC 6600 – Historical Interlude: From the Mainframe to the Minicomputer Part 2, IBM and the Seven Dwarfs – They Create Worlds https://videogamehis[...] 2014-11-08
[10] 서적 Making a World of Difference: Engineering Ideas into Reality https://books.google[...] National Academy of Engineering 2014
[11] 서적 Expert Systems, Knowledge Engineering for Human Replication https://books.google[...] Lulu.com 2013
[12] 웹사이트 The History of Supercomputers http://www.extremete[...] 2015-02-02
[13] 웹사이트 CDC 6600 http://www.britannic[...] 2015-02-02
[14] 웹사이트 CDC 7600 http://research.micr[...] 2017-10-15
[15] 논문 Purchasing Power: Rivalry, Dissent, and Computing Strategy in Supercomputer Selection at Los Alamos https://dx.doi.org/1[...] 2017
[16] 웹사이트 The CDC 6600 arrives at CERN http://timeline.web.[...]
[17] 웹사이트 The Contral Data 6600 computer arrives at CERN, the European Organisation for Nuclear Research https://videos.cern.[...] 1965-01-14
[18] 간행물 Bumper Crop http://www2.lbl.gov/[...] Lawrence Berkeley Laboratory 2017-05-04
[19] 웹사이트 Control Data 6600: The Supercomputer Arrives https://www.drdobbs.[...]
[20] 웹사이트 Control Data Corporation, "Little Character" Prototype http://www.computerh[...] 2016-04-21
[21] 잡지 Seymour Cray: An Appreciation http://www.cs.man.ac[...] 1997-02
[23] 서적 Readings in Computer Architecture Morgan Kaufmann 1999-09-23
[24] 웹사이트 Watson Jr. memo about CDC 6600 http://www.computerh[...] 1963-08-28
[25] 학술지 IBM's Single-Processor Supercomputer Efforts https://cacm.acm.org[...] Association for Computing Machinery 2010-12
[26] 문서 UNIVAC 1100/2200 series
[27] 서적 Control Data - 6000 Series - Computer Systems http://bitsavers.org[...] 2023-10-06
[28] 서적 Design of a Computer: the Control Data 6600 https://archive.org/[...] 1970-12-01
[29] 서적 Control Data 6000 Series Hardware Reference Manual http://bitsavers.tra[...] 1978
[30] citation Computer Architecture and Organization 1978
[31] 웹사이트 Archived copy http://ed-thelen.org[...] 2005-06-13
[32] 문서 This description covers early versions of CDC software; later versions used the Central Exchange jump (XJ) instruction to reduce the overhead for functions that could be performed entirely in the CP.
[33] 서적 Control Data® 6000 Series Computer Systems Reference Manual http://bitsavers.org[...] 2023-03-28
[34] 문서 The term "Display code" was associated with CDC much as "EBCDIC" was *originally* associated with IBM. Other terms used in the industry were BCD and SIXBIT (the latter being preferred by DEC)
[35] 웹사이트 DEC/PDP Character Codes http://rabbit.eng.mi[...]
[36] 웹사이트 SIXBIT Character Code Reference https://web.archive.[...] 2017-10-15
[37] 웹사이트 CDC Kronos http://www.bitsavers[...]
[38] 문서 Understanding Computers: Speed and Power 1990
[39] 웹사이트 COMPASS for 24 bit machines https://web.archive.[...] 2017-10-15
[40] 웹사이트 COMPASS for 48 bit machines http://www.bitsavers[...]
[41] 서적 Advances in Nuclear Science and Technology https://books.google[...] Elsevier 2014
[42] 서적 Computer Architecture and Organization McGRAW-HILL INTERNATIONAL BOOK COMPANY
[43] 기타 A History of LLNL Computing | Computation http://computation.l[...]
[44] 간행물 超大型コンピュータCDC6600を導入 コンピュータ・エージ社
[45] 서적 The American Midwest: An Interpretive Encyclopedia https://books.google[...] 2006
[46] 웹인용 CDC 6600 – Historical Interlude: From the Mainframe to the Minicomputer Part 2, IBM and the Seven Dwarfs – They Create Worlds https://videogamehis[...] 2014-11-08
[47] 웹인용 The History of Supercomputers http://www.extremete[...] 2012-04-10
[48] 웹인용 CDC 6600 http://www.britannic[...]
[49] 웹인용 CDC 7600 https://web.archive.[...] 2019-04-22



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com