Angielski elektryczny DEUCE - English Electric DEUCE
Znany również jako | Cyfrowy elektroniczny uniwersalny silnik obliczeniowy |
---|---|
Producent | angielski elektryczny |
Data wydania | 1955 |
Wycofane | 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
- "Angielski komputer elektryczny DEUCE" . uraone.com . Ta witryna zawiera obszerny zbiór oryginalnych dokumentów, w tym programy, podprogramy, wiadomości DEUCE i biuletyny.
- Wywiad ustny z Donaldem W. Daviesem , Charles Babbage Institute , University of Minnesota. Davies opisuje projekty komputerowe w brytyjskim National Physical Laboratory , od prac projektowych Alana Turinga w 1947 roku do opracowania dwóch komputerów ACE . Davies omawia znacznie większy, drugi ACE oraz decyzję o podpisaniu kontraktu z English Electric Company na budowę DEUCE – który nazywa pierwszym komercyjnie produkowanym komputerem w Wielkiej Brytanii.
- „The Deuce” artykuł o locie z 1955 r. na temat Deuce
- "Angielski komputer elektryczny DEUCE" . użytkownicy.tpg.com.au .