Angielski elektryczny DEUCE - English Electric DEUCE

LICHO
Znany również jako Cyfrowy elektroniczny uniwersalny silnik obliczeniowy
Producent angielski elektryczny
Data wydania 1955 ( 1955 )
Wycofane 1964 ( 1964 )
Jednostki wysłane 33
procesor na bazie zaworu termoelektrycznego
Pamięć linie opóźniające rtęciowe
384 słowa 32-bitowe (Mark I i Mark II)
608 słowa 32-bitowe (Mark IIA)
Składowanie 8192-słowo bęben magnetyczny
Wyświetlacz 2 × CRT
Poprzednik Pilot ACE

DEUCE ( Cyfrowy elektroniczny Uniwersalny Computing silnika ) był jednym z pierwszych brytyjskich dostępnych na rynku komputerów , zbudowany przez angielskiego Electric od 1955. Była to wersja produkcyjna Pilot ACE , samego wyciętym w dół wersja Alana Turinga „s ACE .

Opis sprzętu

DEUCE miał 1450 zaworów termionowych i używał linii opóźniających rtęciowych dla swojej pamięci głównej ; każda z 12 linii opóźniających może przechowywać 32 instrukcje lub słowa danych po 32 bity. Przyjęło on wysoki wówczas taktowanie 1 megaherca pilota ACE. Wejście/wyjście odbywało się za pomocą 80-kolumnowego sprzętu do kart dziurkowanych firmy Hollerith . Czytnik odczytywał karty z szybkością 200 kart na minutę, a szybkość dziurkowania kart wynosiła 100 kart na minutę. DEUCE miał również bęben magnetyczny o długości 8192 słów do głównego przechowywania. Aby uzyskać dostęp do którejkolwiek z 256 ścieżek zawierających 32 słowa, bęben miał jedną grupę 16 głowic odczytujących i jedną grupę 16 głowic zapisujących, każda grupa na niezależnych ruchomych ramionach, z których każde mogło poruszać się w jednej z 16 pozycji. Czas dostępu wynosił 15 milisekund, jeśli głowice były już na swoim miejscu; wymagane było dodatkowe 35 milisekund, jeśli trzeba było poruszyć głowami. Podczas odczytu i zapisu na bęben nie wystąpiło opóźnienie obrotowe. Dane były przesyłane między bębnem a jedną z 32-słownych linii opóźniających.

DEUCE może być wyposażony w taśmę papierową ; prędkość czytnika wynosiła 850 znaków na sekundę, podczas gdy prędkość wyprowadzania taśmy papierowej wynosiła 25 znaków na sekundę. (DEUCE na Uniwersytecie Nowej Południowej Walii {UTECOM} miał dołączony teleprinter Siemens M100 w 1964, dający 10 znaków na sekundę wejścia/wyjścia). Można również dołączyć jednostki taśmy magnetycznej Decca. Automatyczny mnożnik i dzielnik działały asynchronicznie (tj. inne instrukcje mogły być wykonywane podczas pracy zespołu mnożnika/dzielnika). Dla operacji na liczbach całkowitych zapewniono dwie jednostki arytmetyczne: jedną 32-bitową i drugą zdolną do wykonywania operacji 32-bitowych i operacji 64-bitowych. Auto-inkrementacja i auto-dekrementacja była zapewniona w ośmiu rejestrach od około 1957 roku. Dozwolone były arytmetyczne tablice i transfery danych tablicowych. W porównaniu ze współczesnymi, takimi jak Manchester Mark 1 , DEUCE był około dziesięć razy szybszy.

Poszczególne słowa rejestrów poczwórnych były powiązane z funkcją auto-inkrementacji/dekrementacji. Ta funkcja może być wykorzystana do zliczania i modyfikowania instrukcji (indeksowania, sterowania pętlą i zmiany adresu źródłowego lub docelowego instrukcji).

Będąc maszyną szeregową, czas dostępu do pojedynczego rejestru wynosił 32 mikrosekundy, podwójny rejestr 64 mikrosekundy, a poczwórny rejestr 128 mikrosekund. To dla linii opóźniającej wynosiło 1024 mikrosekundy.

Czasy instrukcji to: dodawanie, odejmowanie, operacje logiczne: 64 mikrosekundy dla słów 32-bitowych; podwójna precyzja 96 mikrosekund; mnożenie i dzielenie 2 milisekundy. W przypadku operacji arytmetycznych na tablicach i operacji transferu czas na słowo wynosił 33 mikrosekundy na słowo dla 32 słów.

Operacje zmiennoprzecinkowe zapewniało oprogramowanie; razy: 6 milisekund na dodawanie i odejmowanie, średnio 5½ milisekundy na mnożenie i 4½ milisekundy na dzielenie.

We wczesnych maszynach wszystkie instrukcje dotyczące bębna magnetycznego były ze sobą powiązane, gdy operacja była w toku. Tak więc, jeśli głowice czytające zostały przesunięte, każda kolejna operacja magnetyczna, taka jak odczytanie ścieżki lub zapisanie ścieżki, była zabroniona do czasu zakończenia pierwszej. Od około 1957 roku udostępniono nową jednostkę, zwaną „zracjonalizowanymi magnetykami”. Ta jednostka wyeliminowała niepotrzebne blokady. W ten sposób można było wykonać instrukcję poruszającą głowicą odczytu: jeśli po niej nastąpiła instrukcja przesunięcia głowic zapisu lub zapisu ścieżki, takie instrukcje nie były ze sobą powiązane i mogły przebiegać równolegle z przesuwaniem głowic czytających.

Na przednim panelu DEUCE znajdowały się dwa wyświetlacze CRT : jeden pokazywał aktualną zawartość rejestrów, a drugi pokazywał zawartość dowolnego z rtęciowych magazynów linii opóźniających.

Od około 1958 roku można było dołączyć siedem dodatkowych linii opóźniających, co dałoby 224 dodatkowe słowa szybkiego zapisu. IBM 528 połączony czytnik-dziurkacz może być zastąpiony przez sprzęt Holleritha, dając takie same prędkości wejścia / wyjścia, w którym to przypadku maszyna została nazwana Mark II. Dla wszystkich osiemdziesięciu kolumn kart zapewniono automatyczną konwersję danych alfanumerycznych do BCD na wejściu i odwrotną operację na wyjściu. Na tym sprzęcie odczytywanie i wykrawanie może odbywać się jednocześnie, jeśli jest to wymagane, a zatem może być używane do odczytu rekordu, aktualizacji go, a następnie wycinania zaktualizowanego rekordu jednocześnie z odczytem następnego rekordu. Z siedmioma dodatkowymi liniami opóźnienia, DEUCE został oznaczony jako Mark IIA.

Oprogramowanie

Głównymi językami programowania wysokiego poziomu były GEORGE (Generator Zamówień Ogólnych), ALPHACODE, STEVE, TIP, GIP i ALGOL . Tłumacze języka asemblera obejmowały ZP43 i STAC.

Wynaleziony przez Charlesa Leonarda Hamblina w 1957 roku, GEORGE był najbliżej współczesnych języków programowania. Używał odwrotnej notacji polskiej . Na przykład, aby obliczyć e = ay 2 + przez + c, napisali

a y dup × × b y × + c + (e).

gdzie "dup" duplikuje poprzedni wpis, będąc tym samym, co użycie tutaj "y".

GEORGE dostarczył 12-pozycyjny akumulator jako wysuwany stos. Użycie nazwy zmiennej w programie (np. 'd') wprowadziło wartość zmiennej 'd' do akumulatora (tj. wstawiło d na górę stosu), jednocześnie umieszczając nazwę w nawiasach {np. (d ) } przypisana do zmiennej 'd' wartość na szczycie stosu (akumulatora). Do zniszczenia (zderzenia i odrzucenia) wartości na szczycie stosu użyto średnika (;). Poniższy program GEORGE odczytuje dziesięć liczb i drukuje ich kwadraty:

1, 10 rep (i)
   read
   dup ×
   punch
   ;
]

W powyższym programie polecenie "dup" zduplikowało wierzchołek stosu, tak że na szczycie stosu znajdowały się wtedy dwie kopie wartości.

GIP (General Interpretive Program) był programem sterującym do manipulowania programami zwanymi „cegły”. Jego główną usługą było uruchamianie kilkuset programów z biblioteki algebry liniowej DEUCE . Przygotowanie takiego programu polegało na dobraniu wymaganych klocków (na kartach dziurkowanych), skopiowaniu ich i GIP w dziurkaczu odtwarzającym oraz złożeniu kopii w talię kart. Następnie zostałyby napisane proste słowa kodowe, aby wykorzystać klocki do wykonania takich zadań, jak: mnożenie macierzy; inwersja macierzy; arytmetyka macierzy termin po termie (dodawanie, odejmowanie, mnożenie i dzielenie); rozwiązywanie równań symultanicznych; Wejście; i wyjście. Wymiary macierzy nigdy nie zostały określone w słowach kodowych. Wymiary pobrano z samych matryc, albo z karty poprzedzającej karty danych, albo z matryc przechowywanych na bębnie. Tak więc programy były całkowicie ogólne. Po napisaniu taki program radził sobie z dowolną wielkością matryc (oczywiście do pojemności bębna). Krótki program do wczytywania matrycy z kart, transpozycji matrycy i wybijania wyników na kartach wymaga następujących słów kodowych:

0,   0,   5, 1
5,   0, 120, 2
120, 0,   0, 3

W każdym ze słów kodowych czwarta liczba to numer cegły. Pierwsze słowo kodowe określa, że ​​macierz jest odczytywana z kart i przechowywana pod adresem bębna 5; drugie słowo kodowe określa, że ​​macierz pod adresem bębna 5 jest transponowana, a wynik jest przechowywany pod adresem bębna 120; i trzecie ciosy, które wynikają z kart.

STAC był makro-asemblerem. Większość instrukcji została zapisana w formie przelewu, w postaci dziesiętnej, np. 13-16, co oznacza skopiowanie słowa z rejestru 13 do rejestru 16. Lokalizacja instrukcji nie została określona. STAC przypisał instrukcję do słowa w linii opóźniającej i obliczył sześć składników instrukcji binarnej. Przydzielił następną instrukcję do optymalnej lokalizacji, aby była wykonana natychmiast po zakończeniu poprzedniej instrukcji, jeśli to możliwe.

Poniższy program odczytuje wartość n, a następnie odczytuje n binarnych liczb całkowitych. Wycina liczbę całkowitą i jej kwadrat. Komentarze pisane małymi literami wyjaśniają instrukcję.

1.0 12-24      start the card reader. The location of the program is specified as 1.0.
     0-13X     read one number (n) from the card reader. The letter X causes the computer to wait
               until the first row of the card has arrived at the reading station.
R2  12-24      start or re-start the card reader.
     0-16X     read one number to be squared, store it in the multiplier register.
     9-24      stop the card reader.
    16-21.3    copy the number to the multiplicand register.
    30-21.2    clear the low-order bits of the multiplicand register.
     MULT
    10-24      start the card punch.
    21.2-29X   send the square to the card punch.
     9-24      stop the card punch.
    27-26      decrement n.
    13-28  R1  test for zero. Branch on zero to R1; branch on not zero to R2.
R1   1-1X      halt; the program is complete.

STAC wyprodukuje następujące instrukcje (oprócz programu binarnego). Miejsce w pamięci każdej instrukcji jest pokazane po lewej stronie.

1.0  12-24
1.2   0-13X
1.4  12-24
1.6   0-16X
1.8   9-24
1.10 16-21.3
1.13 30-21.2
1.16  0-24    wait 1
1.18  1-1     wait 1
1.20 10-24
1.22 21.2-29X
1.24  9-24
1.26 27-26
1.28 13-28 1.3
1.3   1-1X

Liczby oczekiwania i czasu nie są wyświetlane, z wyjątkiem mnożenia.

Programowanie

Programowanie DEUCE różniło się od innych komputerów. Szeregowy charakter linii opóźniających wymagał, aby instrukcje były uporządkowane w taki sposób, że po zakończeniu wykonywania jednej instrukcji następna była gotowa do wyjścia z linii opóźniającej. W przypadku operacji na pojedynczych rejestrach najwcześniejszy czas wykonania następnej instrukcji wynosił 64 mikrosekundy po obecnej. W ten sposób instrukcje nie były wykonywane z kolejnych lokalizacji. Ogólnie instrukcje mogą przenosić jedno lub więcej słów. W konsekwencji każda instrukcja określała lokalizację następnej instrukcji. Optymalne programowanie oznaczało, że po wykonaniu każdej instrukcji następna właśnie wyłaniała się z linii opóźniającej. Pozycja instrukcji w sklepie może znacznie wpłynąć na wydajność, jeśli lokalizacja instrukcji nie była optymalna.

Odczytywanie danych z czytnika kart odbywało się w czasie rzeczywistym – każdy wiersz musiał zostać odczytany, przechodząc przez szczotki odczytu, bez zatrzymywania się. Podobnie w przypadku dziurkacza do kart; słowo dla konkretnego rzędu było przygotowane wcześniej i musiało być gotowe, gdy dany rząd kart znajdował się pod nożami. Normalny tryb czytania i wykrawania był binarny. Wejście i wyjście dziesiętne zostało wykonane za pomocą oprogramowania.

Szybki magazyn składał się z czterech rejestrów pojedynczych słów po 32 bity każdy, trzech rejestrów podwójnych słów i dwóch rejestrów poczwórnych słów. Każde 32-bitowe słowo rejestru podwójnego i poczwórnego może być adresowane oddzielnie. Mogły być również dostępne jako para, a w przypadku rejestrów poczwórnych jako grupa trzech lub czterech. Pamięć instrukcji składała się z dwunastu rtęciowych linii opóźniających, każda po 32 słowa i ponumerowana od 1 do 12. Linia opóźniająca 11 (DL11) służyła jako bufor między bębnem magnetycznym a magazynem o dużej szybkości. Będąc „maszyną transferową”, dane mogą być przesyłane jednorazowo po jednym słowie, po parze słów na raz i dowolnej liczbie słów do 33 na raz. W ten sposób, na przykład, 32 słowa odczytane z bębna mogą być przekazywane jako blok do dowolnej innej linii opóźniającej; cztery słowa mogą być przesyłane jako blok z jednego rejestru poczwórnego do drugiego lub między rejestrem poczwórnym a linią opóźniającą — wszystko za pomocą jednej instrukcji. 32 słowa linii opóźniającej można zsumować, przekazując je do sumatora o pojedynczej długości (za pomocą jednej instrukcji).

Dzięki specjalnemu połączeniu między DL10 a jednym rejestrem, mianowicie rejestrem 16, DL10 może być używany jako stos push-down.

Produkcja

Pierwsze trzy maszyny dostarczono wiosną 1955 roku; pod koniec 1958 roku pojawił się ulepszony model DEUCE Mark II . Ta wersja wykorzystywała połączony czytnik kart i dziurkacz. Połączony czytnik i dziurkacz IBM 528 zachowywał się jak oddzielne jednostki Holleritha we wcześniejszych maszynach DEUCE Mark I; jednak był również wyposażony w sprzętową konwersję danych alfanumerycznych na BCD na wejściu i odwrotnie na wyjściu. Dane mogą być również wczytywane i dziurkowane jednocześnie z szybkością 100 kart na minutę. DEUCE Mark IIA warunkiem siedem dodatkowych linii opóźniających rtęć, każdy z 32 słów.

W latach 1955-1964 sprzedano łącznie 33 maszyny DEUCE, z czego dwie zostały zakupione przez producenta silników Bristol Siddeley .

Sukces DEUCE był spowodowany biblioteką programów zawierającą ponad 1000 programów i podprogramów.

Charakterystyka sprzętu

DEUCE Mark 0 i I:

Clock rate         1 MHz
Word size         32 bits
High speed store 384 words
Arithmetic:
  one 32-bit accumulator;
  one 64-bit accumulator that could be used also as two 32-bit accumulators.
  addition/subtraction
     64 microseconds single length,
     96 microseconds double precision
     Addition of a single-length number to a double-length number,
     with automatic sign extension, 64 microseconds.
  multiplication 2080 microseconds
  division       2112 microseconds
magnetic drum 8192 words
  separate read heads and write heads
  Track read time  15 ms
  Head shift time  35 ms
card reader speed 200 cards per minute
card punch speed  100 cards per minute
paper tape reader speed 850 character/second
  tape: 5, 7, 8-row tape.
  stopping time:    ½ millisecond (m.s.)
  start time       20 milliseconds
paper tape punch speed 25 characters/second
  tape: 5 or 7 rows
Software floating-point (average times):
  addition/subtraction 6  m.s.
  multiplication       5½ m.s.
  division             4½ m.s.

ZNAK DRUGI II:

  As for DEUCE Mark I.
  A combined IBM 528 card reader and punch could read cards at 200 per minute, and punch at 100 cards per minute.  When simultaneously started, the reader and punch ran at 100 cards per minute. Automatic conversion to and from 6-bit characters was provided. This mode was in addition to the programmed conversion provided by the Mark I DEUCE.

ZNAK DRUGI IA I IIA:

  As above, with 7 extra delay lines providing 224 words of high-speed store.

Uwagi: Mnożnik i dzielnik były asynchroniczne. Kilka liczb całkowitych można było pomnożyć w jednym wykonaniu instrukcji mnożenia, wstawiając liczby całkowite do mnożnika lub rejestrów mnożenia podczas mnożenia oraz przez wyciąganie wyników podczas mnożenia. Inne efekty specjalne obejmowały liczenie bitów w słowie i konwersję Binary Coded Decimal (BCD) na binarny. Podobnie jest z dzieleniem, które może być użyte do konwersji liczb całkowitych na Binary Coded Decimal (BCD) oraz do konwersji funtów, szylingów i pensów na pensy.

Zobacz też

Bibliografia

Zewnętrzne linki