GIER – Wikipedia, wolna encyklopedia
GIER (od duń. Geodætisk Instituts Elektroniske Regnemaskine – elektroniczna maszyna licząca Instytutu Geodezyjnego, zwana także drugim komputerem Danii) – w pełni tranzystorowy komputer drugiej generacji skonstruowany w latach 1958-1961 przez duńską firmę Regnecentralen. Przeznaczony przede wszystkim na potrzeby akademickie, swoją nazwę wziął od rządowego Instytutu Geodezyjnego w Danii – instytucji finansującej budowę pierwszego egzemplarza. Językiem programowania wysokopoziomowego dla maszyny był ALGOL. Wyprodukowano i sprzedano około 34[1] egzemplarze komputera GIER.
Przy budowie komputera oraz konsultacjach, projektowaniu i implementacji kompilatora brały udział znane autorytety w dziedzinie informatyki, m.in. Peter Naur, Jørn Jensen, Christian Gram, Esdger Dijkstra. Kompilator GIER Algol uważany był za jeden z najbardziej niezawodnych i najlepiej udokumentowanych w swoich czasach.
Maszyna GIER oraz współpraca z firmą Regnecentralen w środowisku akademickim miała istotny wpływ na informatyzację w Polsce i przyczyniła się do powstania Instytutu Informatyki na Uniwersytecie Warszawskim. Po sukcesie komercyjnym w Polsce komputery GIER znalazły klientów w państwach bloku wschodniego: Czechosłowacji, Węgrzech, Bułgarii, Rumunii czy Jugosławii.
Architektura
[edytuj | edytuj kod]Elementami przetwarzania sygnałów elektrycznych użytymi w komputerze GIER były tranzystory zamiast używanych wcześniej lamp elektronowych. Maszyna miała rozmiary trzydrzwiowej szafy, dodatkowo wymagała stanowiska operatora, przy którym dostępne były urządzenia wejścia-wyjścia. Nowsza technika pozwoliła poprawić parametry techniczne[2][3]:
- długość słowa w maszynie to 42 bity, z czego dwa wykorzystywane były na specjalne znaczniki (jeden określał długość instrukcji – 40 lub 20 bitów, drugi rodzaj operacji – zmienno lub stało pozycyjne)
- pamięć operacyjna składała się z 1024 słów, co dawało 4kb pamięci całkowitej
- pamięć zewnętrzną stanowił bęben składający się z 320 ścieżek po 40 słów na każdej (12800 słów maszynowych)
- liczby zmiennoprzecinkowe reprezentowane były na 10 bitach wykładnika i 30 bitach mantysy
- operacje na liczbach stałopozycyjnych zajmowały 36 do 50 mikrosekund
- operacje zmiennopozycyjne wymagały odpowiednio: dodawanie 100 mikrosekund, mnożenie 170 mikrosekund, dzielenie 220 mikrosekund
- wejście maszyny: czytnik 8 kanałowej taśmy perforowanej o prędkości 1000 znaków na sekundę
- wyjście maszyny: perforacja na papierowej taśmie wynikowej z prędkością 150 znaków na sekundę
Alternatywnymi metodami interakcji z komputerem były: konsola operatora w postaci maszyny do pisania, która pozwalała wykonywać instrukcje maszynowe oraz panel z 42 przyciskami białymi i czarnymi umożliwiającymi zapisywanie odpowiednich bitów słów maszynowych bezpośrednio w rejestrach i pamięci operacyjnej.
Programista mógł korzystać z programów bibliotecznych – odwołanie do kodu bibliotecznego wymagało manualnej zmiany taśmy z programem po napotkaniu odpowiedniej instrukcji w kodzie. Ze względu na szybkość czytania wejścia taśma mogła zatrzymać się za instrukcją blokującą, więc część danych była buforowana do późniejszego wykonania.
GIER Algol
[edytuj | edytuj kod]Na potrzeby komputera GIER stworzony został dedykowany kompilator języka ALGOL 60 do kodu wykonywanego przez maszynę. Ze względu na dynamiczną naturę języka wejściowego kompilator uwzględniał mechanizmy wirtualizacji w przypadku kończącej się pamięci operacyjnej, dając większą swobodę programiście. Proces tłumaczenia programu na instrukcje asemblera realizowany był w następujących przebiegach[3]:
- Analiza poprawności zapisu programu na taśmie, tłumaczenie na język pośredni, asemblacja i umieszczenie w pamięci ciągów znaków.
- Dopasowanie identyfikatorów użytych w programie – każdy unikalny identyfikator reprezentowany był jako liczba z przedziału 512 i 1022.
- Analiza i sprawdzenie struktury znaków przystankowych i separatorów. Znaki wieloznaczne zamieniane były na unikatowe odpowiedniki w zależności od kontekstu. Na potrzeby kolejnych przejść dodawane były pomocnicze znaki.
- Deklaracje z początków bloków (instrukcja begin) oraz nagłówków procedur były zbierane, analizowane i wrzucane na stos. Następowało uporządkowanie wywołań procedur.
- Tworzenie i dystrybucja tablicy symboli dla bloków w programie, alokacja pamięci dla zmiennych.
- Faza sprawdzania typów dla identyfikatorów i operandów. Konwersja do odwrotnej notacji polskiej.
- Generowanie instrukcji maszynowych dla wyrażeń. Alokacja zmiennych roboczych.
- Końcowe adresowanie instrukcji i zmiennych programu, podział na poszczególne ścieżki pamięci bębnowej, wygenerowanie instrukcji skoków i ostatecznego kodu maszynowego.
- Ułożenie segmentów kodu na ścieżkach w pamięci bębnowej
Historia powstania
[edytuj | edytuj kod]Komputer GIER powstał w Regnecentralen jako technologiczny następca maszyny DASK (duńskiej wersji szwedzkiego komputera pierwszej generacji BESK). Lampy elektronowe zostały zastąpione tranzystorami co znacznie poprawiło wydajność i niezawodność. Prace nad zaprojektowaniem i realizacją maszyny zaczęły się w 1958 roku na zamówienie duńskiego Instytutu Geodezyjnego, który miał już długoletnie doświadczenie w pracy z maszynami liczącymi (m.in. IBM 602A). Projekt prowadzili głównie Henning Isaksson i H. Worsøe[1]. Pomimo niewielkiego budżetu udało się zrealizować założenia i w 1961 roku oddać w pełni funkcjonalny sprzęt. Ze względu na uniwersalne podejście i względnie niski koszt produkcji do Regnecentralen zwrócili się prywatni przedsiębiorcy z ofertami kupna, przez co postanowiono zbudować kolejne 8 egzemplarzy. Wzrost popularności, szczególnie w Europie Wschodniej, poskutkował kolejnymi zamówieniami.
Ciekawostki
[edytuj | edytuj kod]- GIER posiadał najszybszy czytnik taśmy perforowanej na świecie pozwalający przetwarzać dane z prędkością nawet 5 metrów na sekundę.
- Koszt zakupu maszyny w 1964 roku dla Uniwersytetu Warszawskiego to wysoka kwota 140 tys. dolarów amerykańskich.
- Komputer GIER na Uniwersytecie Warszawskim działał nieprzerwanie przez 15 lat. Przeszedł na emeryturę, kiedy techniczna konstrukcja stała się przestarzałą, choć cały czas pozostawał sprawny funkcjonalnie.
- Istnieje symulator komputera GIER napisany w języku C. Można go pobrać z witryny: http://datamuseum.dk/site_dk/rc/giersimulator/
Przypisy
[edytuj | edytuj kod]- ↑ a b Per V. Kluver , From Research Institute to Computer Company: Regnecentralen 1946-1964 [online] .
- ↑ Christian Gram , GIER-A Danish Computer of Medium Size, Danish Institute of Computing Machinery, Danish Academy of Technical Sciences, Copenhagen, Denmark. 1963 .
- ↑ a b Peter Naur , THE DESIGN OF THE GIER ALGOL COMPILER, 1963 .