Od momentu, kiedy do obliczeń postanowiono zaprzęgnąć elektronikę, twórców komputerów nękał problem, jak zapisywać częściowe wynik obliczeń. Dane do obliczeń można było wysłać do elektronicznego procesora z kart perforowanych albo z papierowej taśmy dziurkowanej. Wynik końcowy drukowało się na dalekopisie, drukarce wierszowej lub elektrycznej maszynie do pisania. Ale w każdych niebanalnych obliczeniach powstają wyniki pośrednie, które trzeba zapamiętać do dalszych obliczeń. Jeśli chcemy się dowiedzieć, ile to jest 3·(2+8), to trzeba najpierw dodać 2 do 8, zapamiętać wynik i pomnożyć go przez 3. Przykład jest trywialny, ale pokazuje, że pamięć jest w komputerze niezbędnie potrzebna. Jak już ta pamięć jest, to można jej użyć do wielu celów, na przykład także do przechowywania programów, ale jak jej nie ma, to samodzielna praca komputera jest niemożliwa.

Pierwsze pamięci na przekaźnikach

Gdy powstały pierwsze komputery elektromechaniczne, można było zapamiętywać informację na przekaźnikach. Przekaźnik to taki mały elektromagnes. Jak płynie w nim prąd, to przyciąga on żelazną zworę, która łączy styki w innym obwodzie. W ten sposób przepływ prądu w uzwojeniu przekaźnika decyduje o tym, czy w tym drugim obwodzie przepływ prądu jest możliwy czy nie.

Pamięć składała się z wielu takich przekaźników. Jedne miały zworę przyciągniętą, inne wyluzowaną, co odpowiadało cyfrom 1 i 0 – i taką informację można było łatwo zapisać, włączając i wyłączając prąd w ich uzwojeniach (byle nie wyłączyć zasilania, bo wtedy wszystkie przekaźniki puszczą). Wytworzony zapis w takiej pamięci bez trudu odczytywano (sprawdzając, gdzie są zwarte styki, a gdzie nie) i dowolnie długo przechowano.

Ale elektromechaniczny komputer z przekaźnikami działał wolno. Żeby przyspieszyć jego pracę, zaczęto w procesorze używać elektroniki. Tylko jak już komputer był w całości elektroniczny (na przykład ENIAC), to zapamiętywanie informacji na „kłapiących" przekaźnikach nie wchodziło w rachubę.

Informacja krążąca w rurach z rtęcią

Jako pierwszy opisaną trudność przezwyciężył w 1949 r. Terence Williams, który wynalazł pamięć opartą na rurach z rtęcią. Skorzystał z tego, że impuls ultradźwiękowy w rtęci rozchodził się stosunkowo wolno (1407 m/s). Mając rurę o długości kilku metrów i wpuszczając do niej na jednym końcu krótkie (1 ms) impulsy ultradźwiękowe, można było spowodować, że w jednej rurze biegły sobie – jeden za drugim – aż 1024 bity informacji. Gdy te impulsy dobiegały do drugiego końca rury, pobudzały umieszczony tam odbiornik ultradźwięków (taki, jak przy badaniu USG) i były przesyłane jako sygnały elektryczne na początek rury i powtórnie wpuszczane do niej jako impulsy ultradźwiękowe.

Takie krążące w kółko bity można było w każdej chwili odczytać, rejestrując związane z nimi sygnały elektryczne, można było skasować (wystarczyło nie przesłać sygnału z odbiornika do nadajnika ultradźwięków) i zapisać w pamięci coś innego. Pamięci na rurach rtęciowych (zwanych czasami capacitronami) były łatwe do zbudowania i przez to tanie, ale niezdrowe (opary rtęci są szkodliwe).

Tkanie pamięci na rdzeniach ferrytowych

Wady pamięci rtęciowych (i innych opartych na podobnych zasadach, np. magnetostrykcyjnych) spowodowały, że poszukiwano lepszego rozwiązania. Znalazł je w 1950 r. pracownik MIT Jay Forrester. Massachusetts Institute of Technology (MIT) to do dzisiaj najlepsza na świecie uczelnia techniczna. W latach 1944–1952 zespół Forrestera dostał zlecenie na budowę szybkiego komputera na potrzeby wojska (obrony przeciwlotniczej). Sam szybki komputer (nazwany Whirlwind) udało się zbudować na bazie lamp elektronowych, ale jego pracę dramatycznie spowalniała opisana wyżej pamięć rtęciowa. Forrester odrzucił propozycję jej ulepszenia i w 1950 r. wymyślił całkiem nową zasadę działania pamięci, która przez co najmniej dwie dekady miała być podstawą budowy pamięci komputerów na całym świecie.

Informację w wynalezionych przez Forrestera pamięciach zapisywano w formie namagnesowania rdzeni magnetycznych mających formę małego (1 mm średnicy) pierścionka wytworzonego z tzw. twardego ferromagnetyku. Te rdzenie mogły być namagnesowane na dwa sposoby, co odpowiadało zapisowi binarnych cyfr 0 albo 1. Do magnesowania służyły przewody przechodzące przez otwór w środku rdzenia, co odpowiadało procesowi zapisu informacji. Namagnesowany rdzeń zachowywał swoje pole magnetyczne także po wyłączeniu zasilania, a to, jak jest namagnesowany, można było sprawdzić impulsem odczytu, wywołującym efekt indukcji magnetycznej.

Pamięci na rdzeniach ferrytowych miały na ogół postać płatów, w których przewody zapisu i odczytu informacji (zależnie od konstrukcji mogło ich być od 2 do 4) przeszywały wszystkie rdzenia pionowo, poziomo i ukośnie. Przypominało to tkaninę z prostopadłym przebiegiem nici wątku i osnowy. W każdym miejscu przecinania się drutów nanizany był rdzeń ferrytowy.

Przeplatanie maleńkich rdzeni cienkimi przewodami wymagało wielkiej staranności i cierpliwości, dlatego tę trudną i odpowiedzialną pracę zwykle wykonywały kobiety. Wiem coś o tym, bo widziałem halę, na której tkano pamięci ferrytowe, podczas studenckiej praktyki w fabryce Elwro, gdzie wytwarzano polskie komputery. Koszmarna robota! Na szczęście kolejny wynalazek zniwelował tę mordęgę.

Intel i pamięci półprzewodnikowe

Firma Intel jest obecnie znana głównie z produkcji mikroprocesorów. Ale gdy w 1968 r. Gordon Moore, Robert Noyce i Andy Grove zakładali tę firmę, to ich celem było właśnie stworzenie pamięci komputerowej, która zastąpi kosztowne pamięci rdzeniowe. Pierwszy układ scalony pełniący rolę pamięci, wyprodukowany w 1969 r., miał numer 3101 i pojemność zaledwie 64 bitów. 16 razy mniej niż rtęciowa rura pamięciowa, o której pisałem na początku!

Pamięci półprzewodnikowe dzieliły się na takie, które można było zapisać tylko raz, a potem ich zawartość odczytywać wiele razy. Takie pamięci nazywamy ROM (Read Only Memory – pamięć tylko do odczytu) i służą one do wbudowywania na stałe do komputerów programów, które działają zawsze tak samo i nie muszą się zmieniać (np. jądro systemu operacyjnego, sterownik do monitora, układ obsługi klawiatury itp.). Już w pierwszym roku swego istnienia Intel wypuścił pamięć ROM o pojemności 1024 bitów (tyle, co wzmiankowana wyżej rura). Ten układ scalony miał numer 3301.

Trudniejsze w budowie, ale bardziej przydatne, były jednak układy scalone, w których informacje można było zapisywać i kasować wielokrotnie, tak jak we wspomnianych wyżej pamięciach rdzeniowych. Takie pamięci określa się skrótem RAM (Random Access Memory – pamięć o dostępie swobodnym), przy czym wyróżnia się statyczne i dynamiczne pamięci tego rodzaju. Te dynamiczne oznaczane są skrótem DRAM („D" od „Dynamic"), a statyczne mają analogiczny skrót zaczynający się od litery S (od „Static"). Intel przed końcem 1969 r. wypuścił też pamięć RAM (statyczną) o numerze 1101, ale o pojemności zaledwie 256 bitów i dość wolną w działaniu, niebudzącą wielkiego entuzjazmu na rynku. Ale następny rok to już był prawdziwy „skok tygrysa". Pojawiła się pamięć DRAM o numerze 1103. Była szybka, pojemna (1024 bity) i tania. W latach 1970–1972 zawojowała rynek i zaczęła zdecydowanie wypierać pamięci rdzeniowe.

O dalszym rozwoju pamięci półprzewodnikowych nie ma potrzeby tu pisać, bo przebiegał on zgodnie z tzw. prawem Moore'a (tak, tak – jednego z twórców firmy Intel). Prawo to mówi, że funkcjonalne możliwości układów elektronicznych podwajają się co dwa lata. Ten wykładniczy wzrost powoduje, że obecnie Intel oferuje jednoukładową pamięć Optane o pojemności 64 GB. A zaczynał – jak wspomniałem wyżej – od pamięci 3101 o pojemności zaledwie 64 bitów. Pojemność wzrosła 8 miliardów razy!

Potrzeba pamięci masowej

Pamięci typu RAM i ROM stosuje się dziś we wszystkich komputerach: od tych wbudowanych do smartfonów aż do tych używanych jako moduły w superkomputerach. Jednak pamięci te – obok licznych zalet – mają także wady. Mimo swojej stale rosnącej pojemności zdecydowanie nie wystarczają do przechowywania wszystkich programów i danych – zarówno używanych w tej chwili, jak i takich, które będą potrzebne w przyszłości. Zwłaszcza że wraz z rozpowszechnianiem informatyki i masowym używaniem internetu ilość tych danych gwałtownie rośnie.

Jeszcze ważniejsze jest to, że pamięci ROM są wprawdzie trwałe, ale użytkownik komputera w typowych warunkach sam nie może do nich nic wpisać, natomiast informacje zapisane w pamięci RAM są ulotne – wystarczy wyłączenie komputera albo nawet tylko chwilowy zanik napięcia i traci się całą zawartość pamięci. Ja sam podczas pisania moich prac naukowych i popularyzatorskich felietonów kilka razy traciłem spore porcje napisanego tekstu, bo „wyleciały bezpieczniki" albo ktoś niechcący odłączył kabel zasilający – w tej samej chwili komputer awaryjnie się wyłączał.

Ze względu na konieczność trwałego rejestrowania obrabianych danych i przetwarzających je programów w każdym komputerze jest więc niezbędna dodatkowo tzw. pamięć masowa. Istnieje wiele rodzajów pamięci masowych i wiele technologii ich wytwarzania. Jednak największe znaczenie w historii rozwoju informatyki miały pamięci na nośnikach magnetycznych i na nich się właśnie skoncentruję w następnym odcinku tego cyklu.

Autor jest profesorem AGH