영국 전기 KDF8

English Electric KDF8
영국 전기 KDF8
개발자잉글리시 일렉트릭
제조원잉글리시 일렉트릭
시대1
발매일1961년; 61년 전 (1961년) (KDP10으로서)
수명5년
초기 가격£400,000
판매대수13
기억(자기 코어 메모리)
보관소자기 테이프
이동식 저장소종이 테이프

KDF8영국 전기회사가 RCA 501의 버전으로 만든 초기 영국 컴퓨터이다.소프트웨어 호환 시스템을 제작함으로써 소프트웨어 개발에 소요되는 시간과 비용을 절감하는 것이 목적이었다.그러나 제조 능력을 개발하는 데 오랜 시간이 걸렸다는 것은 시스템이 곧 다른 벤더의 시스템에 의해 앞섰다는 것을 의미했습니다.생산 5년 동안 일부 시스템만 판매되었습니다.영국의 컴퓨터 산업이 통합됨에 따라 잉글리시 일렉트릭의 컴퓨터 부문은 ICL의 구성 요소 중 하나가 되었습니다.

배경

1950년대 후반에 English Electric은 두 가지 주요 컴퓨터 프로젝트를 시작했습니다.

첫째, English Electric은 KDP10(Kidsgrove Data Processing용 KDP)으로 알려진 RCA 501 컴퓨터를 만들었습니다.이 기계는 상용 데이터 처리 애플리케이션을 위한 기계로, 고정 길이 명령과 가변 길이 숫자 및 영숫자 데이터 처리 기능을 갖추고 있습니다.RCA의 원래 디자인은 영국에서 제조된 트랜지스터, 다이오드 및 기타 부품 유형을 사용하도록 수정되었습니다.KDP10은 1961년에 처음 납품되었다.1964년 KDF8로 재지정되어 [1]1965년까지 판매되었다.이 기계는 기본적으로 RCA 501과 동일하고 라이선스 하에 제조되었기 때문에 English Electric은 완전히 새로운 기계를 개발하지 않고도 모든 고객에게 모든 범위의 컴퓨터 시스템을 제공할 수 있었습니다.그 기계는 40만 파운드에 팔렸다.13대만 [2][3]팔렸다.

Kidsgrove에서 개발 작업을 마치고 나온 두 번째 대형 컴퓨터는 KDF9으로 주로 과학 작업을 위해 설계되었습니다.

KDF8은 The English Electric Company 컴퓨터국의 Kidsgrove (Staffordshire) 현장에 설치되었다.오랜 세월에 걸쳐, 그리고 일련의 합병에 의해, 이 조직은 English Electric Leo Marconi(EELM), International Computing Services Limited(ICSL)가 되어, 최종적으로 ICL과 Barclay's Bank, Baric의 공동 계약을 체결했습니다.

기본 기능

프로세서/메인 스토어

KDF8은 자기 코어 메모리를 갖춘 트랜지스터 기반 기계였다.키즈그로브 컴퓨터국에 설치된 컴퓨터의 코어 메모리는 64k에서 당시 최대 96k의 코어 메모리로 업그레이드되었습니다.KDF8은 8진수(베이스 8) 어드레싱 시스템을 사용했습니다.기계 코드 명령은 고정 길이, 10개의 8진수 문자로 구성되었습니다.명령어 세트는 상업용으로 특별히 설계되었습니다.가변 길이 번호로 동작하는 4진수 산술 함수 모두에 대한 기계 코드 레벨 명령과 가변 길이 데이터 스트링을 효율적으로 조작하기 위한 명령도 있었다.모든 명령이 10자 모두를 필요로 하는 것은 아닙니다.사용 가능한 최소 코어 메모리가 있기 때문에 프로그래머들은 상수 저장 명령 및 유사한 저장 방법에서 "예비" 문자를 자주 사용했습니다.

KDF8은 한 번에 하나의 프로그램을 실행하는 배치 처리 컴퓨터였다.한 번에 처리할 수 있는 컴퓨팅 명령어는 1개뿐이지만, 1개의 읽기 명령과/또는 쓰기 명령(일반적으로 자기 테이프에서 또는 자기 테이프에서)을 병렬로 실행할 수도 있습니다.동기 동작의 정도를 제어하기 위해 기계 코드 레벨에서 설정 및 점검된 하드웨어 "게이트" 시스템을 사용했습니다.그러나 운영체제가 없었기 때문에 개별 프로그램 수준에서 완전히 제어해야 했습니다.

시스템은 RCA 게르마늄 트랜지스터로 구축되었기 때문에 서비스국의 KDP10은 정상적으로 업데이트되었습니다.업데이트의 일부는 메인 로직을 실리콘 트랜지스터로 변환하는 것이었습니다.또한 3글자 주소 가산기가 추가되었으며, 기계 사이클은 15마이크로초이며, 6개의 타이밍 펄스가 있으며, 여기서 6번째 펄스는 시간 안착을 위한 것이므로 기계 사이클은 12.5마이크로초로 감소했습니다.

특히 데이터 레코드가 자기 테이프의 "실제" 데이터 블록에 여러 번 "배치"되는 경우, 모든 동시 체크가 프로그램에 직접 코딩되어야 했기 때문에 완전한 읽기/쓰기/컴퓨팅 오버랩을 제어하는 프로그래머의 기술 수준은 상당히 높았습니다.자동 에러 검출은 기본적으로 문자 레벨에서의 하드웨어 패리티 체크에 한정되어 프로그래머가 실행할 수 있는 기능에 대한 프로세서하드웨어 체크는 없었습니다.예를 들어 물리 메모리를 넘어 메모리 위치에 액세스하도록 지시받으면 컴퓨터가 정지합니다.

주변기기

자기 디스크, 드럼, 기타 유사한 임시 백업 저장 장치는 없었습니다.대용량 저장공간은 오픈릴의 자기테이프에 한정되어 있으며, 각 릴의 두께는 약 1인치, 폭은 약 229mm로 최대 2,400피트(730m)의 테이프를 수용할 수 있습니다.데이터와 프로그램은 이 테이프에 보관되어 있었습니다.주변기기 오류 체크는 모든 읽기 및 쓰기 및 쓰기 허용 링 사용에 대한 패리티 체크로 다시 제한되었습니다.Kidsgrove KDF8은 8개의 자기 테이프 유닛을 온라인에 탑재하고 있으며, 각 유닛의 읽기/쓰기 속도는 초당 40,000자였습니다.각 테이프 유닛의 높이는 약 1.8m, 폭은 약 2피트(0.61m)로 프로세서와 메모리 캐비닛의 크기와 수는 거의 동일했습니다.키즈그로브 구성에는 에어컨이 설치된 큰 방이 필요했습니다.

실제 KDF8 구성에 대해 채널당 1개씩 8개의 테이프 유닛이 동작하는 최대 수로 간주되었습니다.각 테이프 채널을 추가 하드웨어 유닛을 통해 8개의 테이프 덱으로 구성된 하위 그룹으로 분할할 수 있으며 이론적으로 최대 61개의 온라인 테이프 유닛을 제공합니다(기타 디바이스에는 적어도 3개의 고유 코드화된 I/O 채널 식별자가 필요했습니다).

메인프레임과는 독립적으로 동작할 수 있는 다른 테이프 유닛/프린터 쌍이 제공되었습니다.이것에 의해, 볼륨 출력을 위한 오프라인 인쇄 기능이 제공되어 KDF8은 다른 작업을 실행할 수 있게 되었습니다.

기타 주변기기:

  • 데이터 및 (초기) 프로그램 입력용 페이퍼 클리너(1000파운드)
  • 프로그램이 오퍼레이터에게 정보를 표시하고 오퍼레이터가 키보드를 사용하여 짧은 프로그램이나 데이터 항목을 페이퍼 트레이에 표시할 수 있도록 하는 오퍼레이터의 텔레프린터 장치(느린 종이테이프 펀치 포함)이 텔레프린터는 컴퓨터에 데이터를 직접 입력하기 위해 사용할 수 없었습니다.모든 오퍼레이터 명령어는 오퍼레이터 콘솔을 통해 입력해야 했습니다.
  • 주로 실패한 프로그램의 코어 덤프에 사용되는 온라인 프린터.

온라인 프린터와 오프라인 프린터는 모두 임팩트 프린터로, 모델에 따라 120자 또는 160자를 인쇄할 수 있습니다.대소문자는 사용하지 않습니다.프린터의 팬폴드 용지는, 용지 사이에 천공이나 급지 메카니즘을 위한 스프로킷 홀이 연속해 있습니다.특히 급여와 같은 어플리케이션에서는 미리 인쇄된 행/텍스트/컬러 등의 커스텀 용지 사이즈가 일반적이었습니다.또, 각 용지 타입에 페이지 투척 사이즈를 일치시키기 위해서, 작은 용지 테이프의 제어 루프가 필요했습니다.

명령어 세트

각 KDF8 기계 코드 명령은 다음과 같은 형식을 취했습니다.

OO AAA RR BBB

이 표현에서는

OO는 실행하는 명령을 식별하는 2글자 동작 코드를 나타냅니다.범위는 00 ~77 의 범위에서 AAA는 000000 ~7777 의 6글자 "A" 코어 주소를 나타냅니다(이론).14 Meg 직접 주소 지정 가능한 메인 스토어, 실제 96K!) RR은 2글자 레지스터 설정("A" 및 "B" 주소 수정에 사용되는 1~7까지의 2개의 가능한 레지스터에 대해 각각 1자씩, 0은 레지스터 수정이 없음을 나타냄)을 나타내며, BBB는 "A" 주소와 동일한 형식의 "B" 주소를 나타냅니다.

명령은 메인 스토어에서 레지스터로 차례로 읽힌 후 실행되었습니다.

예.온라인 종이 테이프 리더에서 매장 위치(옥탈)에서 시작하는 위치로 데이터를 읽는 방법은 다음과 같습니다.

14 200000 00 7700 (명확성을 위한 공간만)

여기서 14는 이런 유형의 판독에 대한 작동 코드이며, 200000은 데이터를 읽을 수 있는 가장 낮은 저장 위치이며, 00은 명령의 A 또는 B 주소에 대해 레지스터를 수정하지 않음을 나타내며, 77은 종이 테이프 리더의 (고정된) 장치 식별자를 나타냅니다.(주: 기입 조작의 디바이스 ID 로서 사용되는77 은, 오퍼레이터의 텔레프린터에 기입이 지시됩니다.이것이 프로그램오류로 인해 매그테이프용 대용량 데이터 블록이라면 곤란합니다....) 이 명령어에서는 마지막 4개의 8진수 문자(0000)는 필요하지 않으며 명령어 처리 시 무시됩니다.이러한 "예비" 문자는 프로그래머가 상수를 저장하기 위해 사용할 수 있는 주 저장소가 매우 제한적이기 때문에 자주 사용되었습니다.

명령 집합의 일부 측면은 고급화되었고 상업 시스템의 프로그래밍이 크게 완화되었습니다.

연산 코드 51-54는 10진수 문자로 저장된 가변 길이 숫자에 대한 10진수 산술 Add, Subtract, Multiply 및 Divide를 수행했습니다.각 오퍼랜드의 한쪽 끝은 명령의 "A" 및 "B" 주소에 저장되었습니다.다른 한쪽 끝은 ISS(Item Separator Symbol), 8진수로 식별되었다.따라서 숫자는 임의의 길이일 수 있습니다.「섹터 비교」명령(10월 43)은, 「A」주소로부터 「B」주소까지의 범위에 격납된 데이터가, 이하(이전 설정) 「T레지스터」의 좌측의 위치에 격납된 같은 수의 문자의 값보다 큰지, 작은지에 따라, 프로그램 제어의 3방향 조건부 분기를 허가했다.다음 어셈블리 언어 버전은 데모를 시도합니다.


태그 Op A-Address RR B-Address
설정된 T급, R SC Taxlimit Taxlimit Taxlimit, R CTC Taxlimit 초과 TTC Equal Taxlimit 비교

이 예에서는 급여와 세금 한도를 비교하여 각 값에 따라 세 가지 프로그램 위치 중 하나로 이동합니다.",R" 어셈블러 규칙은 명명된 필드의 오른쪽 끝에 있는 문자를 나타냅니다.CTC는 "Conditional Transfer of Control"을, TC는 (무조건) Conditional Transfer of Control을 의미한다.

상기 「비교」코드에서, 원래의(KDP10?) 명령 집합은 오른쪽에서 왼쪽으로 비교되며, 데이터 문자열의 전체 길이를 한 번에 한 문자로 비교해야 한다.KDP8은 왼쪽에서 오른쪽으로 비교하도록 강화되어 상대적인 값이 명확해지면 바로 비교가 중단되어 이러한 명령의 처리 속도가 상당히 빨라졌다.

가변 길이 데이터는 특별히 지정된 문자의 도움을 받아 처리되었습니다.ISS 또는 Item Separator Symbol(8진수 기호)은 일반적으로 "●"로 표현되며 가변 길이 데이터 필드를 구분하는 데 사용되었습니다.Octal 75 "<" 및 76 ">"는 데이터 메시지의 시작과 끝을 나타냅니다.Octal 77777은 관례상 파일 종료를 식별하는 데 사용됩니다.따라서 이름이나 주소 등의 데이터를 데이터 입력용 종이 테이프에 삽입할 수 있습니다(예:

<IAN●CHAN●41●High Street●KIDSGROVE●HANGE>

이 가변 길이 데이터에 대해 다양한 명령을 직접 실행할 수 있으며 효율적인 저장을 위해 레코드를 배치에 10배치할 수 있습니다.프로세서 및 I/O 속도가 (현재의 표준에서는) 비교적 느리기 때문에, 프로그래머의 태스크의 중요한 측면은, 테이프상의 데이터 배치와 레코드 마다 필요한 컴퓨팅의 밸런스를 맞추고, I/O와 컴퓨팅의 동시 운용을 편성해, I/O와의 오버랩을 최대화하고, 테이프·덱을 회피하는 것이었습니다.ping을 실행합니다.

소프트웨어

OS는 없었습니다.프로그램은 온라인 운영자가 운영자 콘솔을 통해 시작했습니다.오퍼레이터는, 수동으로 메모리를 클리어 해, 프로그램간의 컴퓨터의 재설정, 테이프의 마운트 및 변경, 오프라인 인쇄의 제어등을 담당했습니다.

일부 표준 소프트웨어 패키지는 모두 RCA 조직에 의해 미국에서 작성되었습니다.여기에는 다음이 포함됩니다.

  • 매우 많은 양의 데이터를 처리할 수 있는 매개 변수 기반 정렬 병합 프로그램입니다.소트 파라미터는 종이테이프 리더에서 읽어 들여와 일회성 소트 또는 (프로그램에 저장되어 있는) 컴파일 할 수 있습니다.정렬/병합 프로세스의 다양한 단계에서 사용자 제공 코드를 넣을 수 있는 광범위한 사용자 "훅"이 있었습니다.
  • EZ-Code라고 불리는 어셈블러 언어 컴파일러.이것은 한동안 상업적으로 사용되지 않았는데, 그 이유는 컴파일 시간이 큰 오버헤드로 여겨졌기 때문이다. 그러나 이후 점차 더 많이 사용되게 되었다.컴퓨터 시간을 절약하기 위해 일반적으로 프로그래머는 초기 컴파일을 수행하고 프로그램을 수동으로 체크하고 다시 컴파일한 다음 프로그램의 컴파일된 기계 코드 버전을 테스트하고 디버깅하여 수정 때마다 프로그램에 종이 테이프 기계 코드 패치를 축적합니다.상당히 견고한 복사본을 사용할 수 있게 되면 변경 내용은 어셈블러에서 복제되고 프로그램은 다시 컴파일 및 재테스트됩니다.종종 마지막 단계가 완전히 완료되지 않았고, 프로덕션 프로그램에서는 매번 종이 테이프에서 기계 코드 패치를 로드해야 하는 경우가 있었습니다.또, 급여, 어카운트, 주식 등록을 위한 다수의 주요한 상업 패키지는, 어셈블러 컴파일러가 받아들여지기 전에 Bureau의 스탭에 의해서 작성되어 머신 코드로 완전하게 유지되고 있습니다.또 다른 문제는 어셈블러의 I/O 생성 루틴이 COBOL 파일 기술 테이블 형식을 기반으로 테이프 컨트롤이라고 불리는 자체 범용 I/O 패키지를 작성한 프로그래밍 섹션에 의해 사용되지 않았다는 것입니다.이를 통해 레코드의 배치/배치 해제와 동시 읽기/쓰기 작업 및 파일 종료 조건 제어와 같은 오류 발생 가능성이 높은 프로그래밍이 대부분 자동화되었습니다.
  • COBOL 컴파일러이것은 매우 드물게 사용되었고, 초기 경험은 완전히 바람직하지 않았다.한 가지 주목할 만한 예외는 "WRS1"이라고 불리는 배선 설계 프로그램으로, 이는 이후 English Electric KDF9System 4 메인프레임 컴퓨터 제품군의 하드웨어 설계를 돕기 위해 사용되었습니다.또 다른 특이점은 COBOL 프로그램을 위한 결정 테이블 프리프로세서이며, 그 자체가 COBOL로 작성되었다.당시 국 프로그래밍 직원이 플로우차트의 대안으로 의사결정표를 사용하는 실험을 하고 있었기 때문에 이 작업은 다소 흥미로웠습니다.그러나 이들 프로그래머는 손으로 쓴 의사결정 테이블에서 어셈블러로 핸드코드를 계속했지만 컴파일 오버헤드로 인해 프리프로세서를 사용할 수 없었습니다.

생산 프로그램의 throughput을 최적화하기 위해 bureau 프로그래머에 의해 급여, 판매 및 구매 장부, 주식 등록, 재고 관리 등을 위한 표준 소프트웨어 패키지가 생성되었으며, 급여와 같은 일부 애플리케이션은 개별 매개 변수를 사용하여 많은 bureau 고객으로부터의 데이터 처리를 지원했습니다.설정을 사용하여 개별 고객의 요구사항을 관리합니다.커스텀 빌드 프로그램은 보다 복잡한 클라이언트 요건을 충족시켰습니다.

컴퓨터 조작

각 프로그램 테이프의 전면에 매우 작은 부트스트랩 로더를 장착할 수 있었지만, 이 접근법조차 항상 사용되지는 않았습니다.테이프 라벨은 (COBOL 및 테이프 제어 관리 애플리케이션을 제외하고) 거의 존재하지 않았습니다.테이프 순환 사이클을 통해 프로덕션 테이프는 큰 재해로부터 보호되지만, 세심한 수동 제어가 필요했습니다.프로그래머(또는 운영 스위트 프로덕션 컨트롤 직원용)는 오퍼레이터에게 어떤 프로그램 테이프와 데이터 테이프를 로드할지, 어떤 장치에 로드할지, 그리고 각 프로그램을 로드하고 시작하는 방법에 대한 개요를 서면으로 제공했습니다.그런 다음 작업자가 테이프를 로드하고 콘솔에서 각 프로그램을 수동으로 로드 및 시작합니다.

콘솔은 높이 약 10인치(250mm) x 길이 약 1.5m의 수직 디스플레이 패널로 구성되어 있으며, 그 아래에는 비슷한 크기의 약간 각진 제어 패널이 있습니다.이 두 부품은 각각 라벨이 붙은 버튼과 약 1인치 정사각형으로 점등된 표시기로 채워져 있었습니다.표시 섹션은 표시기로 구성되어 있으며, 점등되었을 때 계산, 읽기 및 쓰기 작업에 대해 개별 기계 코어 주소 및 레지스터 수준에서 기계의 현재 실행(또는 정적) 상태를 이진수로 표시합니다.프로그램이 실행 중일 때, 이 디스플레이는 빠르게 변화하고, 깜박이고, 다양한 색상의 불빛으로 이루어진 만화경이었다.제어판 섹션은 설정할 다음 레지스터를 선택하는 누름 버튼과 단일 기계 코어 주소의 레이아웃을 반영하는 중앙 부분으로 구성되어 있습니다.다른 버튼은 더 복잡한 작업에 액세스했습니다.조작자는 이러한 버튼을 사용하여 기계의 핵심 저장 위치를 선택하고 직접 입력할 수 있으며 수동으로 입력한 8진수 패턴을 등록할 수 있습니다.오퍼레이터가 단일 기계 명령을 입력하려면 명령의 최대 10개의 8진수 문자를 각각 올바른(홀수) 패리티 비트로 선택하고 바이너리 패턴으로 입력해야 합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Simon Hugh Lavington, 초기 영국 컴퓨터: 빈티지 컴퓨터의 이야기와 그것을 만든 사람들, 맨체스터 대학 출판부, 1980 ISBN0719008107 76페이지
  2. ^ B. Jack Copeland(에드), Alan Turing의 Electronic Brain: 세계에서 가장 빠른 컴퓨터, ACE를 구축하기 위한 투쟁, OUP Oxford, 2012, ISBN 0191625868, 페이지 166-168
  3. ^ A. Gandy, 초기 컴퓨터 산업: 규모와 범위의 한계, Springer, 2012, ISBN 0230389112, 196-198페이지