Z1

Z1 – komputer 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. Jednakże ze względu na brak instrukcji warunkowej nie był on kompletną maszyną Turinga.

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.

Spis treści

1 Architektura

1.1 Reprezentacja liczb

1.2 Pamięć

1.3 Programowanie

1.4 Wejście / wyjście

2 Historia

3 Zobacz też

4 Przypisy

5 Linki zewnętrzne

Architektura

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. 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

Liczby reprezentowane były w postaci 22-bitowej: 1 bit znaku, 7 bitów wykładnika oraz 14 bitów mantysy. 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.

Pamięć

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. 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

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:

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.

Wejście / wyjście

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.

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 .

Historia

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.

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. 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. 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.