IBM 650 [IBM 650 | 1954]
IBM 650 자기 드럼 데이터 처리 기계는 1950년대 중반에 IBM이 생산한 초기 디지털 컴퓨터이다. 세계에서 최초의 대량 생산 컴퓨터로, 거의 2,000대가 생산되었으며 마지막 기계는 1962년에 제작되었다. 이 컴퓨터는 의미 있는 이익을 낸 최초의 컴퓨터이기도 하다. 첫 번째 기계는 1954년 말에 설치되었으며, 1950년대 가장 인기 있는 컴퓨터였다.
IBM 650은 IBM 701 및 IBM 702 컴퓨터보다 느리고 저렴한 대안으로 비즈니스, 과학 및 공학 사용자에게 제공되었다. 또한 계산용 펀치 카드 기계를 사용하던 사용자들이 컴퓨터로 업그레이드할 수 있도록 마케팅되었다.
상대적으로 낮은 비용과 프로그래밍의 용이성 덕분에 650은 다양한 응용 프로그램의 개척에 사용되었다. 잠수함 승무원 성능 모델링부터 고등학교 및 대학 학생들에게 컴퓨터 프로그래밍을 가르치는 데까지 활용되었다. IBM 650은 대학에서 매우 인기가 높아, 많은 학생들이 처음으로 프로그래밍을 배우는 기회가 되었다.
1953년에 발표된 IBM 650은 1956년에 IBM 650 RAMAC으로 개선되어 최대 4개의 디스크 저장 장치를 추가하였다. 1959년에는 IBM 650 콘솔의 구입 가격이 $150,000였으며, 이는 2023년 기준으로 약 $1,500,000에 해당한다. 650과 그 구성 요소에 대한 지원은 1969년에 종료되었다.
IBM 650은 두 주소, 바이-퀸리 코드 십진수 컴퓨터로, 데이터와 주소 모두가 십진수로 처리된다. 메모리는 회전하는 자기 드럼에 저장된다. 문자 지원은 입력/출력 장치가 펀치 카드의 알파벳 및 특수 문자 인코딩을 두 자리 십진수 코드로 변환하여 제공된다.
650은 125 kHz의 주파수로 클럭된다. 덧셈 또는 뺄셈은 1.63 밀리초, 곱셈은 12.96 밀리초, 나눗셈은 16.90 밀리초에 수행할 수 있다. 평균 속도는 27.6 밀리초로 추정되며, 초당 약 40개의 명령을 처리할 수 있다.
도널드 크누스의 저서인 《컴퓨터 프로그래밍의 예술》은 650에 헌정되어 있다.
첫 번째 650은 1954년 12월 8일, 보스턴의 존 핸콕 뮤추얼 생명 보험 회사의 제어 부서에 설치되었다.
IBM 7070은 1958년에 발표되었으며 650과 IBM 705의 "공통 후계자"가 될 것으로 예상되었다. IBM 1620은 1959년에 도입되어 시장 하단을 겨냥하였다. UNIVAC 솔리드 스테이트는 1958년 12월에 발표되었으며 650에 대한 대응으로 두 주소 컴퓨터로 설계되었다. 이들 중 어느 것도 650과 호환되는 명령 집합을 가지고 있지 않다.
하드웨어
기본 650 시스템은 세 가지 유닛으로 구성되었다:
- IBM 650 콘솔 유닛: 자기 드럼 저장 장치, 산술 장치(진공관 사용) 및 운영자 콘솔이 포함되어 있다.
- IBM 655 전원 유닛
- IBM 533 또는 IBM 537 카드 리드 펀치 유닛: IBM 533은 읽기와 펀치에 별도의 공급 장치를 가지고 있으며, IBM 537은 하나의 공급 장치로 읽기와 펀치를 모두 처리할 수 있다.
무게: 5,400–6,263 파운드(2.7–3.1 단톤)이다.
선택적 유닛:
- IBM 46 테이프 카드 펀치, 모델 3
- IBM 47 테이프 카드 인쇄 펀치, 모델 3
- IBM 355 디스크 저장 장치: 디스크 유닛이 있는 시스템은 IBM 650 RAMAC 데이터 처리 시스템으로 알려져 있다.
- IBM 407 회계 기계
- IBM 543 카드 리더 유닛
- IBM 544 카드 펀치 유닛
- IBM 652 제어 유닛 (자기 테이프, 디스크)
- IBM 653 저장 유닛 (자기 테이프, 디스크, 코어 저장, 인덱스 레지스터, 부동 소수점 산술)
- IBM 654 보조 알파벳 유닛
- IBM 727 자기 테이프 유닛
- IBM 838 문의 스테이션
주 메모리
회전 드럼 메모리는 1,000, 2,000 또는 4,000 단어의 메모리를 제공하며, 주소는 각각 0000에서 0999, 1999 또는 3999까지이다. 각 단어는 10개의 바이-퀸리 코드 십진수 숫자로 구성되어 있으며, 서명된 10자리 숫자 또는 5개의 문자를 나타낸다. 드럼의 단어는 드럼 주위의 밴드에 조직되어 있으며, 각각의 모델에 따라 20, 40 또는 80개의 밴드가 존재한다. 단어는 드럼 표면이 읽기/쓰기 헤드 아래로 지나갈 때 액세스된다. 드럼은 12,500 rpm으로 회전하며, 비최적화 평균 접근 시간은 2.5 밀리초이다. 이 타이밍 덕분에 각 명령의 두 번째 주소는 다음 명령의 주소가 된다. 프로그램은 이전 명령 실행이 완료될 때 즉시 접근할 수 있는 주소에 명령을 배치하여 최적화할 수 있다. IBM은 프로그래머가 명령 및 데이터를 추적할 수 있도록 10열 200행의 양식을 제공하였다. 이후 SOAP(상징 최적 어셈블리 프로그램)라는 어셈블러가 제공되어 대략적인 최적화를 수행하였다.
LGP-30, Bendix G-15 및 IBM 305 RAMAC 컴퓨터도 진공관과 드럼 메모리를 사용했지만 IBM 650과는 상당히 달랐다.
드럼에서 읽은 명령은 프로그램 레지스터(현재 용어로는 명령 레지스터)로 전달되며, 드럼에서 읽은 데이터는 10자리 분배기를 통해 전달된다. 650은 20자리 누산기를 가지며, 하위 및 상위 누산기로 나뉘어져 있으며, 공통 부호를 공유한다. 산술 연산은 1자리 가산기로 수행된다. 콘솔(10자리 스위치, 1자리 부호 스위치 및 10개 바이-퀸리 디스플레이 등불), 분배기, 하위 및 상위 누산기는 모두 주소 지정이 가능하다.
IBM 653 저장 유닛
선택적 IBM 653 저장 유닛은 1955년 5월 3일에 도입되어 궁극적으로 다섯 가지 기능을 제공한다:
- 자기 테이프 제어기 (IBM 727 자기 테이프 유닛용) (10개의 추가 작업 코드)
- 디스크 저장 장치 제어기 (1956년에 새로운 IBM 355 디스크 저장 장치에 대한 개선) (5개의 추가 작업 코드)
- 60개의 10자리 단어의 자기 코어 메모리 (주소 9000~9059). 이 작은 빠른 메모리는 96μs의 접근 시간을 가지며, 회전 드럼에 비해 26배 개선된 성능을 자랑한다. 이 기능은 테이프 및 디스크 I/O의 버퍼 역할을 하며, 프로그램이 내부 루프 및 테이블 조회를 빠르게 처리하는 데 사용될 수 있다.
- 세 개의 4자리 인덱스 레지스터 (주소 8005~8007); 드럼 주소는 2000, 4000 또는 6000을 더해 인덱싱되며, 코어 주소는 0200, 0400 또는 0600을 더해 인덱싱된다. 4000단어 드럼 시스템을 가진 경우 인덱싱은 첫 번째 주소에 대해 4000을 추가하는 방식으로 적용된다. (18개의 추가 작업 코드)
- 부동 소수점 – 산술 명령은 8자리 가수와 2자리 특성을 지원하며 (오프셋 지수) – MMMMMMMMCC, ±0.00000001E-50에서 ±0.99999999E+49 범위를 제공한다. (7개의 추가 작업 코드)
650의 명령어는 두 자리 작업 코드, 네 자리 데이터 주소, 그리고 다음 명령의 네 자리 주소로 구성되어 있다. 기본 기계에서는 부호가 무시되지만, 선택적 기능이 있는 기계에서는 사용된다. 기본 기계는 44개의 작업 코드를 가지고 있으며, 부동 소수점, 코어 저장, 인덱스 레지스터 및 추가 I/O 장치와 같은 옵션에 대해 추가 작업 코드가 제공되었다. 모든 옵션이 설치된 경우 총 97개의 작업 코드가 존재한다.
테이블 조회(TLU) 명령은 참조된 10자리 단어와 같은 드럼 밴드의 48개 연속 단어를 5밀리초 회전 안에 고속 비교할 수 있으며, 다음 48개 단어를 위해 제시간에 다음 밴드로 전환할 수 있다. 이 성능은 1963년 1,000배 더 빠른 이진 기계와 비교했을 때 약 1/3의 속도에 해당하며(IBM 7040은 1,500 마이크로초, 650은 5,000 마이크로초), 두 기계 모두 어셈블러로 프로그래밍된 경우 46개의 항목을 조회할 수 있다. 같은 성능을 가진 선택적 테이블 조회 동등 명령도 있다.
읽기(RD) 명령은 숫자 데이터가 포함된 80열 카드를 열 개의 메모리 단어로 읽어들인다. 숫자의 배분은 카드 리더의 제어 패널 배선에 의해 결정된다. 533 리더 펀치 유닛의 알파벳 장치와 함께 사용할 경우, 숫자와 알파벳 조합의 열(최대 30개의 알파벳 열)을 읽을 수 있다. 확장 기능을 통해 더 많은 알파벳 열을 허용할 수 있지만, 카드 읽기 작업으로 드럼에 저장되는 단어는 10개(단어당 5자)로 제한된다.

