Z1

Z Wikipedii, wolnej encyklopedii
Replika komputera Z1

Z1komputer mechaniczny zerowej generacji skonstruowany przez Konrada Zusego w Berlinie w latach 1936–1938. Był to pierwszy programowalny komputer na świecie wykorzystujący binarne liczby zmiennoprzecinkowe[1]. Jednakże ze względu na brak instrukcji warunkowej nie był on kompletną maszyną Turinga[2].

Komputer, którego budowę ukończono w 1938 r., został całkowicie zniszczony podczas bombardowania Berlina w grudniu 1943 r. Z1 będący pierwszym komputerem zbudowanym przez Zusego nosił początkowo nazwę „V1” – skrót od „Versuchmodell 1" (niem. „model eksperymentalny 1"), jednak po II wojnie światowej zmieniono jego nazwę dla odróżnienia od samolotu-pocisku V1[3].

Architektura[edytuj | edytuj kod]

Schemat architektury Z1

Architektura Z1 była zbliżona w ogólnym zarysie do współczesnych komputerów – posiadał wydzieloną jednostkę sterującą, arytmetyczno-logiczną, pamięć oraz urządzenia wejścia-wyjścia. Warto zwrócić uwagę, że spełniał tym samym założenia architektury von Neumanna na kilka lat przed jej ogłoszeniem w 1945 roku[2]. Komputer był programowalny za pomocą taśmy perforowanej. Wejście i wyjście opierało się na systemie dziesiętnym, natomiast wewnętrznie liczby reprezentowane były w 22-bitowej, zmiennoprzecinkowej postaci binarnej.

Reprezentacja liczb[edytuj | edytuj kod]

Liczby reprezentowane były w postaci 22-bitowej: 1 bit znaku, 7 bitów wykładnika oraz 14 bitów mantysy[2][3]. Wykładnik zapisany był w kodzie uzupełnieniowym do dwóch, zatem mógł przyjmować wartości od −64 do 63. Mantysa była znormalizowana (cyfra jedności wynosiła zawsze jeden), więc nie było potrzeby przechowywania tej cyfry, co oznacza, że faktyczny zakres liczb możliwych do reprezentowania w ten sposób był równoważny nieznormalizowanej mantysie 15-bitowej. Ze względu na fakt, że znormalizowana mantysa nie może reprezentować zera, było ono zakodowane za pomocą konwencji: dowolna mantysa z wykładnikiem −64. Natomiast wykładnik +63 zarezerwowany został na oznaczenie nieskończoności. Tym samym zakres liczb możliwych do zareprezentowania w Z1 rozciągał się od 2−63 do 1,99962[2].

Pamięć[edytuj | edytuj kod]

Diagram z patentu Konrada Zusego na pamięć wykorzystaną w Z1

Z1 posiadał pamięć, która mogła być zapisywana i odczytywana przez jednostkę sterującą. Pamięć mogła pomieścić w sumie 64 słowa (22-bitowe). Podzielona była na trzy bloki: pierwszy służył do przechowywania bitów znaku i wykładnika, natomiast pozostałe dwa przechowywały mantysy liczb[3]. Pamięć była całkowicie mechaniczna, jednak w przeciwieństwie do większości dotychczasowych maszyn liczących zrealizowano ją nie w postaci obracających się kół zębatych, lecz niedużych przesuwających się blaszek. Projekt ten był na tyle nowatorski, że Konradowi Zusemu udało się opatentować go w 1936 roku.

Programowanie[edytuj | edytuj kod]

Z1 był programowalny za pomocą taśmy perforowanej zawierającej instrukcje zapisane w 8-bitowym kodzie. Lista rozkazów procesora zawierała 8 poniższych instrukcji[2][4]:

typ instrukcja opis kod operacji
wejście/wyjście Lu odczyt liczby z klawiatury 01 110000
Ld wyświetlenie liczby 01 111000
odczyt/zapis pamięci Pr z odczyt liczby spod adresu z 11 z6z5z4z3z2z1
Ps z zapis liczby pod adresem z 10 z6z5z4z3z2z1
arytmetyka Lm mnożenie 01 001000
Li dzielenie 01 010000
Ls1 dodawanie 01 100000
Ls2 odejmowanie 01 101000

Powyższe instrukcje operowały na dwóch rejestrach: R1 i R2. Pierwszy odczyt z pamięci (Pr) w programie ładował liczbę do R1, natomiast wszystkie następne do R2, aż do napotkania instrukcji zapisu (Ps) lub wyświetlenia (Ld), która czyściła rejestr R1. Liczba odczytana z klawiatury (Lu) była zawsze umieszczana w R1, natomiast R2 był po odczycie zerowany, gdyż komputer wykorzystywał go do przechowywania tymczasowych wartości podczas konwersji z systemu dziesiętnego na dwójkowy. Wszystkie operacje arytmetyczne zapisywały wynik w R1 i również czyściły R2[2].

Wejście / wyjście[edytuj | edytuj kod]

Po przeczytaniu instrukcji Lu komputer przerywał obliczenie i oczekiwał na wprowadzenie liczby. Mantysę wpisywano za pomocą klawiatury o 40 klawiszach – każda z czterech kolumn odpowiadała jednej pozycji dziesiętnej mantysy i zawierała cyfry od 0 do 9. Natomiast ustalenie wykładnika odbywało się poprzez wciskanie przycisków ponumerowanych od −8 do 8. Tym samym możliwe do wprowadzenia liczby należały do przedziału od do Każda wprowadzona cyfra mantysy była kodowana w czterech bitach, a następnie za pomocą dodawania i mnożenia (lub dzielenia, jeśli wykładnik był ujemny) liczbę zamieniano na zmiennoprzecinkowy zapis binarny. Operacja ta była dosyć kosztowna obliczeniowo dla bardzo dużych lub bardzo małych liczb, ze względu na dużą liczbę działań do wykonania[2].

Wyświetlenie liczby (instrukcja Ld) odbywało się za pomocą rzędów zapalających się lampek. Wykorzystywany przy tym algorytm do konwersji systemów był podobny do tego używanego przy wczytywaniu liczb. Na mantysę przeznaczono jednak o jedną pozycję dziesiętną więcej, wobec czego Z1 był w stanie wyświetlać liczby od do [2].

Historia[edytuj | edytuj kod]

Zrekonstruowany Z1 w Niemieckim Muzeum Techniki

Pierwotną motywacją dla Konrada Zusego do rozpoczęcia prac nad komputerem były duże ilości mozolnych obliczeń, które musiał wykonywać jako student. W 1936 roku porzucił pracę w zakładach lotniczych Henschel, aby poświęcić się konstrukcji Z1. Prace nad maszyną prowadził w prowizorycznym warsztacie w mieszkaniu swoich rodziców. Oprócz udostępnienia pomieszczenia, wsparli oni także projekt finansowo, będąc, obok siostry Zusego – Lieselotte, jednymi z niewielu sponsorów przedsięwzięcia. Zuse korzystał także z pomocy swoich znajomych – nie tylko w postaci pieniędzy, lecz również udziału w konstrukcji. Szczególnie istotną rolę w stworzeniu Z1 oraz późniejszych maszyn odegrał przyjaciel Zusego, Helmut Schreyer[4].

Komputer został ukończony w roku 1938. Składał się z ok. 20 000 części, zajmował powierzchnię ok. 2m x 2m i ważył ok. 1000 kg[1][4]. Był w całości mechaniczny, oparty na systemie przesuwających się blaszek. Jedynym elektrycznym elementem Z1 był silnik odpowiadający za taktowanie częstotliwością 1 Hz (aczkolwiek komputer posiadał również 2 korby do ręcznego taktowania). Ze względów konstrukcyjnych maszyna nie była nigdy w pełni sprawna – przesuwające się blaszki często ulegały uszkodzeniom[1]. Z tego powodu Konrad Zuse zdecydował się wykorzystać przekaźniki w swoich następnych maszynach – modelach Z2 i Z3.

Komputer został zniszczony w grudniu 1943 r. w wyniku bombardowania Berlina przez siły aliantów walczące z III Rzeszą. W latach 80. Konrad Zuse zdecydował się odbudować Z1 – pierwsze szkice powstały w 1984. Ostatecznie w 1989 r. powstała replika, która znajduje się w Niemieckim Muzeum Techniki w Berlinie[5][6].

Zobacz też[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]

  1. a b c Raúl Rojas. The Zuse Computers. „Resurrection: The Bulletin of the Computer Conservation Society”, 2006. ISSN 0958-7403. [dostęp 2015-01-23]. 
  2. a b c d e f g h Raúl Rojas. Konrad Zuse’s Legacy: The Architecture of the Z1 and Z3. „IEEE Annals of the History of Computing”. 19 (2), s. 5–15, 1997. DOI: 10.1109/85.586067. ISSN 1934-1547. [dostęp 2015-01-23]. 
  3. a b c Horst Zuse: The life and work of Konrad Zuse. EPEmag. [dostęp 2015-01-23]. [zarchiwizowane z tego adresu (2010-04-18)].
  4. a b c Konrad Zuse – The first relay computer. [dostęp 2015-01-23].
  5. Reconstruction of the Z1 Computer | Raúl Rojas [online], dcis.inf.fu-berlin.de [dostęp 2018-11-03] (ang.).
  6. Raul Rojas, The Z1: Architecture and Algorithms of Konrad Zuse’s First Computer, „arXiv:1406.1886 [cs]”, 7 czerwca 2014, arXiv:1406.1886 [dostęp 2018-11-03].

Linki zewnętrzne[edytuj | edytuj kod]