Manchester Mark I

Wczesny angielski komputer

Manchester Mark I – jeden z najwcześniejszych komputerów przechowujących instrukcje w pamięci, zbudowany na uniwersytecie w Manchesterze. Był także nazywany Manchester Automatic Digital Machine lub MADM[1]. Został rozwinięty ze Small-Scale Experimental Machine (SSEM lub „Baby”). Prace nad nim zaczęły się w sierpniu 1948, a pierwsza wersja zaczęła działać w kwietniu 1949. Program poszukujący liczb Mersenne’a działał na nim bezbłędnie przez dziewięć godzin w nocy z 16 na 17 czerwca 1949.

Udane uruchomienie maszyny odbiło się echem w prasie brytyjskiej, która używała, w odniesieniu do niej, takich określeń, jak: „elektroniczny mózg”. Ten opis sprowokował reakcję naczelnika departamentu neurochirurgii na uniwersytecie w Manchesterze i długotrwałą debatę na temat tego, czy komputer może kiedykolwiek być prawdziwie kreatywny.

Mark I miał umożliwiać pracę obliczeniową na uniwersytecie, aby naukowcy mogli zdobywać doświadczenie w praktycznym użytkowaniu komputerów, lecz szybko zaczął być prototypem, na którym mogła bazować komercyjna wersja firmy Ferranti. Rozwój zatrzymał się na końcu 1949. Maszyna została rozebrana do końca 1950 i zastąpiona w lutym 1951 przez Ferranti Mark 1, pierwszy dostępny komercyjnie komputer elektroniczny ogólnego zastosowania[2].

Ten komputer ma szczególne znaczenie historyczne z powodu zastosowania pionierskich rejestrów indeksów – innowacji, która ułatwiła programowi sekwencyjny odczyt tablic słów maszynowych z pamięci. Jego rozwój poskutkował trzydziestoma czterema pracami naukowymi, a wiele pomysłów z jego konstrukcji zostało użyte w kolejnych komercyjnych produktach jak IBM 701 i 702, a także Ferranti Mark 1. Główni projektanci, Frederic C. Williams i Tom Kilburn, wywnioskowali ze swoich doświadczeń z Mark I, że komputery będą używane w celach naukowych częściej niż dla czystej matematyki. W 1951 rozpoczęli prace nad Meg, następcą Mark I, który miał posiadać jednostkę zmiennoprzecinkową.

Historia edytuj

W 1936 matematyk Alan Turing opublikował definicję teoretycznej „uniwersalnej maszyny liczącej” – komputera, który trzymał jego program na taśmie razem z danymi, na których pracował. Turing dowiódł, że taka maszyna jest w stanie rozwiązać każdy problem matematyczny, dla którego można napisać algorytm[3]. W latach 40. Turing i inni (jak Konrad Zuse) przedstawili ideę komputera używającego swojej pamięci zamiast taśmy[4], aby przechowywać zarówno program, jak i dane. Jednakże to matematykowi John von Neumannowi przypisuje się zdefiniowanie architektury komputera przechowującego instrukcje programu w pamięci. Na niej bazował Manchester Mark I[1].

Praktyczna konstrukcja komputera von Neumann'a zależała od dostępności odpowiedniego mechanizmu pamięci. Small-Scale Experimental Machine (SSEM) uniwersytetu w Manchesterze był pierwszym na świecie komputerem, który przechowywał program w pamięci. Demonstrował on praktyczność tego podejścia oraz lampy Williamsa, wczesnej formy pamięci komputerowej bazującej na standardzie CRT, przez uruchomienie pierwszego programu w lipcu 1948[5]. Wczesne komputery elektroniczne generalnie były programowane przez zmianę konfiguracji kabli lub paneli krosowniczych – nie było oddzielnego programu przechowywanego w pamięci, jak w nowoczesnych komputerach. Przykładowo przeprogramowywanie ENIAC-a mogło zająć kilka dni[6]. Komputery przechowujące instrukcje w pamięci były badane także przez innych naukowców, w szczególności: Pilot ACE w National Physical Laboratory (Wielka Brytania), EDSAC na Cambridge i EDVAC w armii Stanów Zjednoczonych[1]. SSEM i Mark I różniły się głównie zastosowaniem jako pamięci lamp obrazowych Williamsa, zamiast pamięci rtęciowej[1].

Od około sierpnia 1948 SSEM był intensywnie rozwijany jako prototyp Manchester Mark I, początkowo w celu zapewnienia uniwersytetowi rozsądnego zaplecza obliczeniowego[1]. W październiku 1948 przeprowadzono prezentację prototypu Mark I podczas wizyty Bena Lockspeiser'a, Chief Scientist (dosł. „główny naukowiec”) Rządu Wielkiej Brytanii. Lockspeiser był pod takim wrażeniem tego, co zobaczył, że natychmiast zainicjował zawarcie umowy z lokalną firmą Ferranti, aby wykonać komercyjną wersję maszyny, Ferranti Mark 1[7]. Kontrakt rządowy z firmą Ferranti trwał przez pięć lat od listopada 1948 i opiewał na około £35,000 rocznie.

Rozwiązania techniczne edytuj

W swojej finalnej specyfikacji (październik 1949) Mark I gromadził dane w jednej 40-bitowej liczbie (akumulator) lub dwóch 20-bitowych rejestrach instrukcji, i miał dwa 20-bitowe rejestry modyfikacji adresów, nazywane B-lines, które mogły funkcjonować zarówno jako rejestry indeksowe, jak i tzw. rejestry adresu bazowego. Jest to najwcześniejsza znana implementacja takich rejestrów - ważna innowacja w architekturze komputerowej, nieznana w innych konstrukcjach aż do pojawienia się komputerów drugiej generacji (w okresie 1955-1964).

Mark I mógł wykonywać 40-bitową arytmetykę szeregową ze sprzętowym wspomaganiem instrukcji dodawania, odejmowania, mnożenia i operacji logicznych. Używał jednoadresowego kodu rozkazu z 13 kodami funkcji. Standardowy czas wykonania instrukcji wynosił 1,8 milisekundy, ale mnożenie było znacznie wolniejsze.

Jako pamięci Mark I używał dwóch lamp obrazowych Williamsa, każda mieszcząca 64 rzędy po 40 punktów, w sumie 128 słów. 64 słowa były uważane za pojedynczą stronę, zatem system mieścił 4 strony. Oprócz lamp używano dwóch bębnów magnetycznych, które mogły pomieścić po 64 strony. Instrukcje były ładowane do maszyny za pomocą taśmy dziurkowanej.

Pierwsze programy edytuj

Pierwszym użytecznym programem uruchomionym na Mark I był algorytm poszukiwania liczb pierwszych Mersenne’a, na początku kwietnia 1949, który działał bezbłędnie przez dziewięć godzin w nocy z 16 na 17 czerwca 1949. Algorytm został wyspecyfikowany przez Maksa Newmanna, naczelnika departamentu matematyki na uniwersytecie w Manchesterze, a został napisany przez Kilburna i Tootilla. Turing później napisał zoptymalizowaną wersję tego programu, nazywaną „Mersenne Express”[1].

Manchester Mark I kontynuował wykonywanie użytecznych matematycznych obliczeń aż do 1950, w tym do badania hipotezy Riemanna i obliczeń w zakresie optyki[1].

Dalszy rozwój edytuj

Geoff Tootil został tymczasowo przeniesiony z uniwersytetu w Manchesterze do Ferranti w sierpniu 1949, aby kontynuować pracę nad projektem Ferranti Mark 1 i spędził cztery miesiące pracując dla tej firmy[1]. Manchester Mark I został rozebrany i złomowany pod koniec 1950[8], a kilka miesięcy później zastąpiony przez pierwszy Ferranti Mark 1. Był to pierwszy dostępny na rynku komercyjnym komputer ogólnego użytku[2].

Pomiędzy 1946 a 1949 średnia liczebność zespołu pracującego nad Mark 1 i jego poprzednikiem, SSEM, wynosiła cztery osoby. W tym czasie otrzymano trzydzieści cztery patenty na podstawie pracy zespołu, albo na rzecz Ministry of Supply, albo dla jego następnika, National Research Development Corporation[1]. W lipcu 1949 IBM zaprosiło Williamsa do Stanów Zjednoczonych, aby przedyskutować projekt Mark I, pokrywając koszty jego podróży. Firma następnie licencjonowała kilka z patentów zespołu, w tym tuby Williamsa, na potrzeby ich własnych komputerów 701 i 702. Najbardziej znaczącym wkładem Manchester Mark I w rozwój następnych komputerów były prawdopodobnie rejestry indeksów, opatentowane przez Williamsa, Kilburna, Tootilla i Newmana[1].

Kilburn i Williams stwierdzili, że komputery będą używane do bardziej naukowych celów niż czystej matematyki i zdecydowali rozwinąć nową maszynę, która zawierała jednostkę zmiennoprzecinkową. Prace rozpoczęły się w 1951, skutkując maszyną, która uruchomiła swój pierwszy program w maju 1954. Znana była jako Meg lub „megacycle machine”. Była mniejsza i prostsza niż Mark I, a także znacznie szybsza w obliczeniach matematycznych. Ferranti wyprodukowało udoskonaloną wersję Meg, zamieniając tuby Williamsa na bardziej niezawodną pamięć ferrytową, nazywając ją Ferranti Mercury[1].

Przypisy edytuj

  1. a b c d e f g h i j k Simon Lavington: A History of Manchester Computers. Wyd. 2. The British Computer Society, 1998. ISBN 1-902505-01-8.
  2. a b University of Manchester: The Manchester Mark 1. [dostęp 2016-02-10].
  3. A. M. Turing. On Computable Numbers, with an Application to the Entscheidungsproblem. „Proceedings of the London Mathematical Society”. 42, s. 230–265, 1936–37. DOI: 10.1112/plms/s2-42.1.230. 
  4. J. A. N. Lee: Some Great Myths of the History of Computing. W: Klaus Brunnstein, Jacques Berleur: Human Choice and Computers: Issues of Choice and Quality of Life in the Information Society. Springer, 2002. ISBN 978-1-4020-7185-0.
  5. Nicholas Enticknap. Computing's Golden Jubilee. „Resurrection”, Lato 1998. The Bulletin of the Computer Conservation Society. ISSN 0958-7403. [dostęp 2016-02-10]. 
  6. University of Manchester: Early Electronic Computers (1946–51). [dostęp 2008-11-16]. [zarchiwizowane z tego adresu (5 stycznia 2009)].
  7. R. B. E. Napper: The Manchester Mark 1. [dostęp 2009-01-22]. [zarchiwizowane z tego adresu (29 grudnia 2008)].
  8. Christopher P. Burton: Baby’s Legacy – The Early Manchester Mainframes. University of Manchester. [dostęp 2009-01-24].

Zobacz też edytuj

Linki zewnętrzne edytuj