Zainspirowany podcastami o historii komputerów (podcast #19 - część I oraz część II) postanowiłem przybliżyć Wam dokładniej zapomniane i nieużywane już technologie. Na początek tego małego cyklu będzie o pamięci. Moim zdaniem jej rozwój dyktował rozwój i produkcję komputerów, a nie na odwrót. Miała też wpływ na sposób programowania komputerów i dostęp do danych wynikowych. Temat jest bogaty, a technologii pamięci powstało wiele. Przez to wyszedł mi tak długi artykuł, że nawet mnie męczy jego czytanie. Dlatego podzieliłem go na trzy części. W pierwszej części przedstawiłem wczesne technologie, z których tylko jedna przetrwała dłużej. Druga część opisywała technologie niegdyś bardzo popularne, teraz już w większości zapomniane. Trzecia część zaś przedstawi technologie pamięci masowej, które w większości dotrwały do dzisiaj, oraz moje przeczucia na temat technologii, które mogą odejść do lamusa. Tak że zapraszam do czytania.
Magnetofon w służbie informatyki
Komputery, nawet wczesne modele z lat 50tych, potrafiły wykonywać obliczenia z niezwykłą prędkością i wydajnością. Wciąż jednak problemem była pamięć. Dostępne formy RAMu mogły pomieścić program, trochę danych wynikowych i zmiennych potrzebnych do obliczeń i relatywnie małą liczbę danych. Czytanie kart czy taśm perforowanych było dość wolne, dziurkowanie ich jeszcze wolniejsze. Taśma pozwalała odczytać 1000 znaków na sekundę. Czytniki kart zaś mogły czytać od 300 do 2000 kart na minutę, każda o pojemności kilkudziesięciu bajtów. Zapis stanowił ułamek tej prędkości. Wyniki można było drukować, ale nawet najszybsze drukarki bywały za wolne. Pomijam już nawet fakt relatywnie niskiej gęstości zapisu, która czyniła przechowywanie kart i taśm perforowanych na dłuższą metę rozwiązaniem niepraktycznym. Potrzebny był lepszy nośnik danych.
Pierwszym praktycznym formatem do przechowywania danych była taśma magnetyczna używana przez komputer UNIVAC I firmy Remington-Rand. Napęd nazywał się UNISERVO, zaś sama taśma była wykonana z niklowanego brązu. Taśma miała szerokość pół cala (12,7mm), mieściła 128 znaków na cal, a prędkość posuwu taśmy wynosiła 100 cali na sekundę. UNISERVO mogło zatem pracować z prędkością 12800 znaków na sekundę w teorii, w praktyce było to 7200 znaków. Rolka taśmy o długości 1200 stóp (~366 metrów) miała pojemność prawie 1,85 miliona znaków. O ile odczyt i zapis były bardzo szybkie, o tyle wyszukiwanie właściwego fragmentu taśmy zajmowało sporo czasu - ponad dwie i pół minuty od końca do końca. Remington-Rand oferował też czytnik ich 90-kolumnowych kart, które zapisywał na taśmę, oraz dziurkarkę zamieniającą dane z taśmy na karty. Jedna karta miała pojemność 90 znaków, a czytnik rozwijał prędkość 240 kart na minutę, czyli 360 znaków na sekundę. Było to 20 razy wolniej, niż prędkość napędu UNISERVO.
IBM miał własny format używający taśm żelazowych na podłożu z tworzywa. Początkowo stosowano taśmy o długości 1200 i 2400 stóp przy gęstości zapisu od 200 znaków na cal, do nawet 800 znaków na cal. Dawało to pojemności od ~2,9 miliona znaków do nawet 23 milionów. Późniejsze formaty używały formatu ośmiobitowego z dodatkowym bitem parzystości, co daje prawie 23 megabajty na standardową szpulę taśmy. Z czasem IBM zwiększyło gęstość zapisu do nawet 6250 bajtów na cal z pojemnością 140 megabajtów na rolkę.
Charakterystyczny wygląd napędów taśmowych wynika z zastosowania mechanizmu zapobiegającego przerwaniu taśmy przy dużych prędkościach odczytu i zapisu. Taśma przebiegała z jednej szpuli przez pierwszą rolkę napędową i dociskową, zespół głowic czytających, kasujących i zapisujących, drugą rolkę napędową i dociskową do drugiej szpuli. Rolki napędowe z kołami zamachowymi były sprzężone dzięki czemu utrzymywały stałą prędkość. Każda ze szpul miała też własny silnik napędowy odwijający i zwijający taśmę wedle potrzeb. Poniżej szpul znajdowały się dwa pionowe kanały. Specjalna dmuchawa zasilana kolejnym silnikiem wysysała z nich powietrze przy dnie. W tych kanałach zwisały pętle taśmy odwinięte ze szpul. Kilka centymetrów poniżej zespołu głowic i kilka centymetrów od dna znajdowały się bariery optyczne, które kontrolowały silniki szpul - pętla taśmy zassana w dół przerywała te bariery. Jeśli dolna bariera została przerwana, szpula zwijała taśmę. Jeśli górna przestawała być przerwana, taśma była odwijana. Tak powstałe luźne odcinki taśmy utrzymane w stanie lekkiego naprężenia przez przepływ powietrza pozwalały na szybką pracę właściwego napędu oraz na szybkie zmiany kierunku posuwu taśmy. Amortyzowały też wszelkie gwałtowne szarpnięcia i zapobiegały plątaniu się taśmy.
Wraz z pojawieniem się ośmiobitowych komputerów osobistych pojawił inny nośnik danych: zwykła kaseta magnetofonowa. Był to nośnik tani, relatywnie łatwy w produkcji i nie wymagający przesadnie skomplikowanego urządzenia odczytu/zapisu. Większość ośmiobitowych komputerów mogło współpracować ze zwykłym magnetofonem, jak rodzina ZX od Sinclaira. Commodore modyfikowała swoje magnetofony tak, by sterować nimi zdalnie. Kaseta magnetofonowa nie zapewniała ogromnych pojemności szpulowego odpowiednika znanego z dużych komputerów. Pierwszy, popularny format, Kansas City Standard, enkodował dane używając modulacji FSK (kluczowanie przez przełączanie częstotliwości). Minuta taśmy mieściła ~1,6kB, czyli taśma C-60 miała pojemność około 96kB. Komputer BBC Micro używał innego formatu zapisu dającego około ~4kB na minutę, albo ~234,4kB na godzinę.
Commodore C64 miał standardowy format zapisu danych na taśmie zaprogramowany w KERNALu (systemie operacyjnym), ale pozwalał też na stosowanie innych formatów do szybkiego ładowania. Standardowy format miał oferować dużą odporność na zakłócenia i problemy z nośnikiem, a nie prędkość. Dane były kodowane za pomocą impulsów o różnej długości: 352, 512 i 672 µs. Każdy bit składał się z impulsu krótkiego i średniego, a ich kolejność określała jego wartość. Po ośmiu bitach danych i bicie parzystości dodany był impuls długi, a za nim najczęściej średni celem oznaczenia końca bajtu. W tym formacie na każdą sekundę przypadało 111,6 bajtów, albo ~6,54kB/min czy ~392kB na godzinę. Jest to pojemność teoretyczna, bo w praktyce połowę danych stanowiły znaczniki ramek, nagłówki, dane do korekcji błędów i inne "dodatki", przez co dla użytkownika dostępna była połowa pojemności. Taśma C60 mieściła zatem około 192kB. Celem zwiększenia pojemności i przyspieszenia ładowania soecjalny program był dodany na początku nagrania z programem czy grą. Ta aplikacja zmieniała sposób odczytu danych, najczęściej przez zastąpienie kodowania nitu dwoma impulsami kodowaniem z użyciem jednego impulsu, przy okazji format był często pozbawiony wielu elementów czyniących go odpornym na zakłócenia i zniekształcenia. W zamian typowy fast loader oferował pojemność 347 bajtów na sekundę, ~20kB na minutę, albo ~1,2MB na godzinę. Celem takiego "upychania" danych nie była jednak duża pojemność, lecz maksymalne skrócenie czasu ładowania programów - większość komputerów ośmiobitowych miało między 4, a 128kB pamięci RAM. Dla przykładu standardowy format C64 potrzebował prawie dwudziestu minut (!) by zapełnić te 64kB RAMu. Szybkie ładowanie dawało znaczącą poprawę - jakieś trzy i pół minuty. A ludzie narzekają na czasy ładowania współczesnych gier.
Warto nadmienić, iż komercyjne taśmy z oprogramowaniem do komputerów osobistych miały pojemność 15 minut, przy czym na obu stronach było zapisane to samo. Jeśli kaseta zawierała więcej, niż jeden program, na etykiecie zapisany był stan licznika, gdzie jest początek każdego z nich - dlatego magnetofony przeznaczone do pracy z komputerami miały liczniki długości taśmy. Ponieważ kopiowanie taśm było banalnie proste, wielu wydawców gier stosowało najróżniejsze zabezpieczenia antypirackie, jak na przykład koła szyfrowe czy listy znaków na papierze, którego nie dało się skserować - program kazał podać znaki z określonej kolumny i rzędu, albo z okienka po ustawieniu idpowiedniej kombinacji na kole szyfrowym. Piraci obchodzili te zabezpieczenia albo na poziomie programu, albo przez ręczne przepisywanie wszystkich kluczy na zwykłą kartkę przed jej powieleniem. Dodatkowo piracka kaseta mogła mieć pojemność 60-90 minut, czyli zawartość 8-12 kaset komercyjnych - piraci nie przejmowali się redundancją.
Warto wspomnieć też o kasetach DAT - Digital Audio Tape, na których zapisywano muzykę w formacie cyfrowym w jakości CD - format nie odniósł aż tak wielkiego sukcesu na rynku konsumenckim, bo CD było tańsze w produkcji i szybko zyskiwało popularność. Za to w stacjach radiowych i w produkcji audio trzymał się dzielnie i długo.
Jeśli pasek taśmy przykleimy do sztywnego nośnika, jak kawałek kartonu lub plastiku, uzyskamy kartę magnetyczną, którą można odczytywać i zapisywać za pomocą relatywnie prostego mechanizmu. Karty magnetyczne nie mają wielkiej pojemności, ale są bardzo tanie w produkcji. Wykorzystywane są jako karty bankowe i kredytowe (od 20+ lat z dodatkowym układem chipowym, oraz z funkcją zbliżeniową), karty dostępowe, bilety autobusowe. Kalkulatory programowalne, począwszy od Olivetti Programma 101 po modele kieszonkowe używały kart jako sposobu na zachowanie programu. Był też system PlayCard dla keyboardów Yamaha, gdzie na duża karta z paskiem przy dolnej krawędzi zawierała wydrukowany zapis nutowy utworu oraz "wsad" dla instrumentu, by ten czekał na zagranie właściwych nut. Bardzo popularne były też karty telefoniczne (pamiętacie ich kolekcjonowanie?). W czasach, gdy w Polsce popularny był phreaking, wielu ludzi głowiło się nad tym, co i jak zapisane jest na karcie. Grupy w rodzaju Urmet Developers nie dzieliły się publicznie detalami formatu, ani "wsadami" kart używanych przez monterów. Co więcej, same nagrywarki często były robione z czytników wykradzionych z budek telefonicznych.
Taśma magnetyczna do przechowywania danych stosowana była od 1952 roku do czasów współczesnych. Opracowano wiele różnych formatów, w tym nawet zapis danych na taśmach VHS. Obecnie stosuje się formaty rodziny LTO, z pojemnościami od 100GB (LTO-1) do 18TB (LTO-9). Te formaty są przeznaczone tylko do celów archiwizacji, bo znalezienie konkretnego zbioru informacji może zająć godziny. LTO dla zwykłego użytkownika jest trudnodostępne, jako że jest to format przeznaczony dla serwerów, i nie są to tanie rzeczy. Potrzebna jest zwykle karta z interfejsem SAS, napęd zwykle i tak będzie używany, bo nowe mają zaporowe ceny, a do tego nie ma zbyt wielu kompatybilnych programów dla domowych systemów operacyjnych. Od paru lat chciałbym swój komputer wyposażyć w napęd LTO, ale żona krzywo patrzy na "zbędne wydatki"...
Bez taśmy też się da - magnetyczna pamięć bębnowa
Prekursor dysków twardych, wyprzedzający nawet pamięci ferrytowe. Nad tą pamięcią pracowała marynarka wojenna USA w czasie drugiej wojny światowej i po jej zakończeniu. Jeden z prototypowych komputerów został zamontowany w dużej ciężarówce wojskowej jako rozwiązanie mobilne. Dość szybko okazało się, że duży, wirujący bęben zachowuje się jak żyroskop, przez co ciężarówka w ruchu z pracującym komputerem miała trudności ze skręcaniem w jedną stronę, za to skręcając w drugą się przewracała. Problem rozwiązano dzieląc bęben na dwa mniejsze wirujące w przeciwnych kierunkach.
Pamięć bębnowa składa się z dużego, metalowego cylindra pokrytego warstwą materiału ferromagnetycznego. Wzdłuż osi cylindra umocowany jest zestaw nieruchomych głowic czytająco-zapisujących dane. Bęben wiruje z dużą, stałą prędkością przez cały czas. Pamięć bębnowa oferowała sporą pojemność i na tyle przyzwoity czas dostępu do danych zapisanych sekwencyjnie, że wokół niej budowano wiele pierwszych komputerów komercyjnych. Nawet po wynalezieniu i upowszechnieniu się pamięci ferrytowej stosowano pamięć bębnową jako pamięć pośrednią między pamięciami taśmowymi, a pamięcią operacyjną. O ile czas wyszukiwania właściwej informacji był mierzony w ułamkach sekund, o tyle czas odczytu kolejnych słów był dużo większy, i wokół tego ograniczenia programiści optymalizowali programy, ładując dane z taśmy magnetycznej lub nośników perforowanych na bęben, a potem przetwarzając je lub ładując do pamięci ferrytowej sekwencyjnie. Dlatego pamięć bębnowa stosowana była jako pamięć pomocnicza, nawet po wynalezieniu pamięci dyskowej.
Wszystkie dane na talerzu - pamięć dyskowa
Alternatywa do pamięci bębnowej pojawiła się już w latach sześćdziesiątych. Zestaw metalowych dysków pokrytych materiałem ferromagnetycznym był czytany przez zespół ruchomych głowić przesuwanych albo za pomocą silnika elektrycznego przez przekładnię, albo za pomocą specjalnie uformowanych cewek i magnesów. Firma IBM opracowała pierwszy dysk twardy w roku 1957 na potrzeby komputera IBM 305 RAMAC. Napęd o oznaczeniu IBM 350 oferował pojemność 5 milionów znaków, czyli 3,75MB. Zawierał 52 talerze o średnicy 24 cali, albo 61cm, z którymi współpracowało sto głowic. Każda powierzchnia magnetyczna podzielona była na sto ścieżek, co daje 500 znaków na ścieżkę. Przy prędkości 1200 obrotów na minutę oferował prędkość transferu danych na poziomie 8800 znaków na sekundę. Napęd ważył tonę. Ciekawostką jest fakt, iż IBM mogło zwiększyć pojemność napędu, ale ich dział sprzedaży nie miał pomysłu jak to sprzedać.
Pierwszym napędem z wymiennymi dyskami był zaprojektowany na potrzeby komputera IBM 1401 napęd IBM 1311 z 1962 roku. Oferował on pojemność 2 milionów znaków (12 ,megabitów, albo 1,5MB) na jeden zestaw talerzy. Jeden zestaw talerzy o oznaczeniu IBM 1316 Disk Pack miał grubość 10cm, ważył 4,5kg i zawierał 6 talerzy o średnicy 14 cali, czyli 36cm. Górna powierzchnia najwyższego dysku i dolna najniższego nie były używane bo mogły łatwo ulec uszkodzeniu. Dyski rozpędzały się do 1500 obrotów na minutę. Każda powierzchnia zawierała 100 ścieżek podzielonych na 20 sektorów, każdy sektor zawierał 100 znaków. Każdy taki zestaw miał przeźroczystą obudowę z plastiku - najpierw odpinało się spód obudowy, potem wkładało się całość do napędu, blokowało na osi napędowej i zdejmowało górną połowę część opakowania. Po zamknięciu pokrywy napędu dysk był gotowy do pracy.
Nieco później pojawiły się kasety zawierające pojedynczy talerz, a w 1971 pojawiły się pierwsze dyskietki od IBM. Pierwotnie dyskietki miały pojemność 80kB i były tylko do odczytu - przechowywały mikrokod dla procesorów IBM 2835 (Storage Control Unit), a potem jako oddzielny komponent dla dla serii IBM/370. IBM samo nagrywało te dyski z pomocą oddzielnego urządzenia i dostarczało oprogramowanie dla klientów. Było to zgodne z ich modelem biznesowym, gdzie systemy komputerowe były klientom wynajmowane, a nie odsprzedawane.
Dość szybko inne firmy zauważyły lukę w modelu od IBM i zaczęły oferować stacje dyskietek i dyskietki zapisywalne. Pierwszym takim napędęm był Memorex 650 oferujący pojemność 175kB. Dysk podzielony był na 8 sektorów i 50 ścieżek, przy czym każdy sektor był oznaczony otworem przy krawędzi nośnika, z dodatkowym otworem oznaczającym sektor zero. Późniejsze napędy i dyskietki ośmiocalowe umieszczały otwory indeksujące przy osi napędowej nośnika zamkniętego w dyskietce. Zwykle podzielone były na 8, 16 lub 32 sektory - każdy standard wymagał odpowiedniego nośnika i napędu. Maksymalna pojemność tego formatu wyniosła 1,2MB.
Stacje i dyskietki ośmiocalowe stały się standardem nie tylko w zastosowaniach profesjonalnych, ale też jako kosztowna, lecz dostępna opcja dla pierwszych mikrokomuterów, jak Altair 8800 czy IMSAI 8080. W drugiej połowie lat 70tuch pojawiły się napędy i nośniki w standardzie 5,25". Pojemność była mniejsza, bo typowo 90kB lub 113kB. Sporo niższa cena napędów i nośników sprawiły, że ten standard wyparł dysketki ośmiocalowe. Od strony sprzętu napędy 5,25" były niemal identyczne. Używano też tego samego formatu samej dyskietki. Ale implementacja programowa i konstrukcja kontrolera były bardzo różnorodne. Stacja dyskietek dla Commodore PET z dwoma napędami miała w sobie dosłownie drugiego PETa, tyle że bez monitora i klawiatury, co pozwalało napędowi kopiować dyskietki bez udziału właściwego komputera, a nawet wykonywać inne programy. Dość szybko pojawiły się dyskietki o pojemności 360kB i 720kB by w końcu dobić do 1,2MB.
Formaty 8" i 5,25" nazywane były po angielsku "floppy", czyli "miękkie", bo sam nośnik oraz opakowanie były wykonane z giętkich materiałów, W 1982 roku pojawiły się napędy 3,5" o pojemności 264kB. Ta dyskietka miała już twardą skorupę z plastiku. Format 3,5" dość szybko dobił do pojemności 1,44MB, bo już w 1986. Równolegle pojawiły się formaty 3", 2,5" i 2", ale nie przetrwały długo, gdyż były specyficzne dla konkretnych systemów.
Wracając do formatu danych, to różnorodność interpretacji tegoż była przyczyną upadku systemu operacyjnego CP/M i dominacji DOSa w latach 80tych. O ile CP/M na każdym komputerze działał tak samo i pozwalał na wykonywanie tych samych programów niezależnie od platformy sprzętowej, to już sam format zapisu danych na dyskietkach był inny dla każdej platformy sprzętowej, choć sam napęd mógł być wręcz identyczny. Dlatego pierwsze klony IBM PC oferowały niekiedy system CP/M z możliwością odczytu dyskietek konkurencji, choć już nie zapisu. Dopiero DOS to ujednolicił.
W Polsce Ludowej komputer osobisty był towarem luksusowym i trudnodostępnym. Jeszcze trudniej było zdobyć dyskietki lub stację dyskietek. Dopiero lata 90te pozwoliły na upowszechnienie się tego nośnika, który w USA był formą dominującą od początku komputerów osobistych. W wielu miejscach wciąż się korzysta z dyskietek jako nośnika trwałego i bezpiecznego - nie mają żadnej ukrytej elektroniki, jak napędy Flash USB.
Warto wspomnieć też o dyskietkach Zip i Jaz, które miały oferować ogromne pojemności dorównujące płytom CD za ułamek ceny nagrywarek. Dyskietki Zip oferowały pojemności 100MB, 250MB i 750MB, Jaz, które były po prostu dyskami twardymi z wymiennymi talerzami (jak Disk Pack) 1GB i 2GB. Początkowo Iomega odniosła spory sukces, ale dość szybko się okazało, że jakość wykonania samych napędów pozostawia wiele do życzenia. Do tego ceny nagrywarek CD i nośników CD-R oraz CD-RW dość szybko spadły w początkach lat dwutysięcznych. Do tego Jaz używał złącza SCSI, które kończyło już swoją karierę na rynku komputerów osobistych na rzecz nowego gracza: USB.
Dyskietka + laser, czyli MiniDisc
Niektórzy mogą kojarzyć MiniDisc jako konkurencję dla CD-Audio i DAT. Z wyglądu przypomina płytę CD w obudowie jak od dyskietki, bo właśnie dyskietką jest. Dane, zwykle audio w formie cyfrowej, zapisane są magnetycznie jak w dyskietce, ale proces zapisu wymaga rozgrzania punktu na płycie, co realizuje dioda laserowa. W praktyce oznacza to, że zapis danych na MiniDiscu jest trwały i odporny na rozmagnesowanie. MiniDisc przyjął się dobrze w świecie profesjonalnego audio, jako alternatywa dla DAT, ale na rynku konsumenckim wytrzymał dość krótko, wyparty przez płyty CD, a potem przenośne dotwarzacze z pamięcią Flash. Jako nośnik danych był formatem jeszcze mniej popularnym, od wersji audio, głównie ze względu na brak urządzeń współpracujących z komputerem. Trochę szkoda, bo mimo wszystko miał większą trwałość i odporność od płyt CD czy DVD.
Niedługo zapomniane
Do rodziny pamięci zapomnianych dołączają już płyty CD, DVD, HD DVD i Blu-Ray. Dyski twarde są wypierane przez dyski SSD i coraz lepsze pamięci Flash. Nasze lokalne archiwa zastępuje "chmura", czyli cudzy komputer. Gry, programy, muzyka, filmy i inne media kupujemy lub wynajmujemy jako prawo do dostępu, a nie jako fizyczny nośnik, albo cyfrową kopię lokalną. Były już próby wypuszczenia na rynek komputerów, które funkcjonują jak dawne terminale dostępowe bez lokalnej pamięci stałej, może z wyjątkiem ROMu dla systemu. Ja jednak wolałbym zachować swoje twarde dyski i swoje archiwa danych - bo co to będzie jak Internetu nie będzie?
Mam nadzieję, że udało mi się Was zaciekawić tematem pamięci (linki do części pierwszej i drugiej). Oczywiście go nie wyczerpałem więc może przypomnijcie mi o jakich pamięciach zapomniałem przypomnieć? Zapraszam do komentowania i dyskutowania, ale przypominam o części pierwszej i drugiej. Aha, czy chcielibyście zobaczyć moje boje z własnym napędem LTO w komputerze stacjonarnym? Jak przekonacie moją żonę, to i taki temat się może pojawić.
Magnetofon w służbie informatyki
Komputery, nawet wczesne modele z lat 50tych, potrafiły wykonywać obliczenia z niezwykłą prędkością i wydajnością. Wciąż jednak problemem była pamięć. Dostępne formy RAMu mogły pomieścić program, trochę danych wynikowych i zmiennych potrzebnych do obliczeń i relatywnie małą liczbę danych. Czytanie kart czy taśm perforowanych było dość wolne, dziurkowanie ich jeszcze wolniejsze. Taśma pozwalała odczytać 1000 znaków na sekundę. Czytniki kart zaś mogły czytać od 300 do 2000 kart na minutę, każda o pojemności kilkudziesięciu bajtów. Zapis stanowił ułamek tej prędkości. Wyniki można było drukować, ale nawet najszybsze drukarki bywały za wolne. Pomijam już nawet fakt relatywnie niskiej gęstości zapisu, która czyniła przechowywanie kart i taśm perforowanych na dłuższą metę rozwiązaniem niepraktycznym. Potrzebny był lepszy nośnik danych.
Pierwszym praktycznym formatem do przechowywania danych była taśma magnetyczna używana przez komputer UNIVAC I firmy Remington-Rand. Napęd nazywał się UNISERVO, zaś sama taśma była wykonana z niklowanego brązu. Taśma miała szerokość pół cala (12,7mm), mieściła 128 znaków na cal, a prędkość posuwu taśmy wynosiła 100 cali na sekundę. UNISERVO mogło zatem pracować z prędkością 12800 znaków na sekundę w teorii, w praktyce było to 7200 znaków. Rolka taśmy o długości 1200 stóp (~366 metrów) miała pojemność prawie 1,85 miliona znaków. O ile odczyt i zapis były bardzo szybkie, o tyle wyszukiwanie właściwego fragmentu taśmy zajmowało sporo czasu - ponad dwie i pół minuty od końca do końca. Remington-Rand oferował też czytnik ich 90-kolumnowych kart, które zapisywał na taśmę, oraz dziurkarkę zamieniającą dane z taśmy na karty. Jedna karta miała pojemność 90 znaków, a czytnik rozwijał prędkość 240 kart na minutę, czyli 360 znaków na sekundę. Było to 20 razy wolniej, niż prędkość napędu UNISERVO.
IBM miał własny format używający taśm żelazowych na podłożu z tworzywa. Początkowo stosowano taśmy o długości 1200 i 2400 stóp przy gęstości zapisu od 200 znaków na cal, do nawet 800 znaków na cal. Dawało to pojemności od ~2,9 miliona znaków do nawet 23 milionów. Późniejsze formaty używały formatu ośmiobitowego z dodatkowym bitem parzystości, co daje prawie 23 megabajty na standardową szpulę taśmy. Z czasem IBM zwiększyło gęstość zapisu do nawet 6250 bajtów na cal z pojemnością 140 megabajtów na rolkę.
Charakterystyczny wygląd napędów taśmowych wynika z zastosowania mechanizmu zapobiegającego przerwaniu taśmy przy dużych prędkościach odczytu i zapisu. Taśma przebiegała z jednej szpuli przez pierwszą rolkę napędową i dociskową, zespół głowic czytających, kasujących i zapisujących, drugą rolkę napędową i dociskową do drugiej szpuli. Rolki napędowe z kołami zamachowymi były sprzężone dzięki czemu utrzymywały stałą prędkość. Każda ze szpul miała też własny silnik napędowy odwijający i zwijający taśmę wedle potrzeb. Poniżej szpul znajdowały się dwa pionowe kanały. Specjalna dmuchawa zasilana kolejnym silnikiem wysysała z nich powietrze przy dnie. W tych kanałach zwisały pętle taśmy odwinięte ze szpul. Kilka centymetrów poniżej zespołu głowic i kilka centymetrów od dna znajdowały się bariery optyczne, które kontrolowały silniki szpul - pętla taśmy zassana w dół przerywała te bariery. Jeśli dolna bariera została przerwana, szpula zwijała taśmę. Jeśli górna przestawała być przerwana, taśma była odwijana. Tak powstałe luźne odcinki taśmy utrzymane w stanie lekkiego naprężenia przez przepływ powietrza pozwalały na szybką pracę właściwego napędu oraz na szybkie zmiany kierunku posuwu taśmy. Amortyzowały też wszelkie gwałtowne szarpnięcia i zapobiegały plątaniu się taśmy.
Wraz z pojawieniem się ośmiobitowych komputerów osobistych pojawił inny nośnik danych: zwykła kaseta magnetofonowa. Był to nośnik tani, relatywnie łatwy w produkcji i nie wymagający przesadnie skomplikowanego urządzenia odczytu/zapisu. Większość ośmiobitowych komputerów mogło współpracować ze zwykłym magnetofonem, jak rodzina ZX od Sinclaira. Commodore modyfikowała swoje magnetofony tak, by sterować nimi zdalnie. Kaseta magnetofonowa nie zapewniała ogromnych pojemności szpulowego odpowiednika znanego z dużych komputerów. Pierwszy, popularny format, Kansas City Standard, enkodował dane używając modulacji FSK (kluczowanie przez przełączanie częstotliwości). Minuta taśmy mieściła ~1,6kB, czyli taśma C-60 miała pojemność około 96kB. Komputer BBC Micro używał innego formatu zapisu dającego około ~4kB na minutę, albo ~234,4kB na godzinę.
Commodore C64 miał standardowy format zapisu danych na taśmie zaprogramowany w KERNALu (systemie operacyjnym), ale pozwalał też na stosowanie innych formatów do szybkiego ładowania. Standardowy format miał oferować dużą odporność na zakłócenia i problemy z nośnikiem, a nie prędkość. Dane były kodowane za pomocą impulsów o różnej długości: 352, 512 i 672 µs. Każdy bit składał się z impulsu krótkiego i średniego, a ich kolejność określała jego wartość. Po ośmiu bitach danych i bicie parzystości dodany był impuls długi, a za nim najczęściej średni celem oznaczenia końca bajtu. W tym formacie na każdą sekundę przypadało 111,6 bajtów, albo ~6,54kB/min czy ~392kB na godzinę. Jest to pojemność teoretyczna, bo w praktyce połowę danych stanowiły znaczniki ramek, nagłówki, dane do korekcji błędów i inne "dodatki", przez co dla użytkownika dostępna była połowa pojemności. Taśma C60 mieściła zatem około 192kB. Celem zwiększenia pojemności i przyspieszenia ładowania soecjalny program był dodany na początku nagrania z programem czy grą. Ta aplikacja zmieniała sposób odczytu danych, najczęściej przez zastąpienie kodowania nitu dwoma impulsami kodowaniem z użyciem jednego impulsu, przy okazji format był często pozbawiony wielu elementów czyniących go odpornym na zakłócenia i zniekształcenia. W zamian typowy fast loader oferował pojemność 347 bajtów na sekundę, ~20kB na minutę, albo ~1,2MB na godzinę. Celem takiego "upychania" danych nie była jednak duża pojemność, lecz maksymalne skrócenie czasu ładowania programów - większość komputerów ośmiobitowych miało między 4, a 128kB pamięci RAM. Dla przykładu standardowy format C64 potrzebował prawie dwudziestu minut (!) by zapełnić te 64kB RAMu. Szybkie ładowanie dawało znaczącą poprawę - jakieś trzy i pół minuty. A ludzie narzekają na czasy ładowania współczesnych gier.
Warto nadmienić, iż komercyjne taśmy z oprogramowaniem do komputerów osobistych miały pojemność 15 minut, przy czym na obu stronach było zapisane to samo. Jeśli kaseta zawierała więcej, niż jeden program, na etykiecie zapisany był stan licznika, gdzie jest początek każdego z nich - dlatego magnetofony przeznaczone do pracy z komputerami miały liczniki długości taśmy. Ponieważ kopiowanie taśm było banalnie proste, wielu wydawców gier stosowało najróżniejsze zabezpieczenia antypirackie, jak na przykład koła szyfrowe czy listy znaków na papierze, którego nie dało się skserować - program kazał podać znaki z określonej kolumny i rzędu, albo z okienka po ustawieniu idpowiedniej kombinacji na kole szyfrowym. Piraci obchodzili te zabezpieczenia albo na poziomie programu, albo przez ręczne przepisywanie wszystkich kluczy na zwykłą kartkę przed jej powieleniem. Dodatkowo piracka kaseta mogła mieć pojemność 60-90 minut, czyli zawartość 8-12 kaset komercyjnych - piraci nie przejmowali się redundancją.
Warto wspomnieć też o kasetach DAT - Digital Audio Tape, na których zapisywano muzykę w formacie cyfrowym w jakości CD - format nie odniósł aż tak wielkiego sukcesu na rynku konsumenckim, bo CD było tańsze w produkcji i szybko zyskiwało popularność. Za to w stacjach radiowych i w produkcji audio trzymał się dzielnie i długo.
Jeśli pasek taśmy przykleimy do sztywnego nośnika, jak kawałek kartonu lub plastiku, uzyskamy kartę magnetyczną, którą można odczytywać i zapisywać za pomocą relatywnie prostego mechanizmu. Karty magnetyczne nie mają wielkiej pojemności, ale są bardzo tanie w produkcji. Wykorzystywane są jako karty bankowe i kredytowe (od 20+ lat z dodatkowym układem chipowym, oraz z funkcją zbliżeniową), karty dostępowe, bilety autobusowe. Kalkulatory programowalne, począwszy od Olivetti Programma 101 po modele kieszonkowe używały kart jako sposobu na zachowanie programu. Był też system PlayCard dla keyboardów Yamaha, gdzie na duża karta z paskiem przy dolnej krawędzi zawierała wydrukowany zapis nutowy utworu oraz "wsad" dla instrumentu, by ten czekał na zagranie właściwych nut. Bardzo popularne były też karty telefoniczne (pamiętacie ich kolekcjonowanie?). W czasach, gdy w Polsce popularny był phreaking, wielu ludzi głowiło się nad tym, co i jak zapisane jest na karcie. Grupy w rodzaju Urmet Developers nie dzieliły się publicznie detalami formatu, ani "wsadami" kart używanych przez monterów. Co więcej, same nagrywarki często były robione z czytników wykradzionych z budek telefonicznych.
Taśma magnetyczna do przechowywania danych stosowana była od 1952 roku do czasów współczesnych. Opracowano wiele różnych formatów, w tym nawet zapis danych na taśmach VHS. Obecnie stosuje się formaty rodziny LTO, z pojemnościami od 100GB (LTO-1) do 18TB (LTO-9). Te formaty są przeznaczone tylko do celów archiwizacji, bo znalezienie konkretnego zbioru informacji może zająć godziny. LTO dla zwykłego użytkownika jest trudnodostępne, jako że jest to format przeznaczony dla serwerów, i nie są to tanie rzeczy. Potrzebna jest zwykle karta z interfejsem SAS, napęd zwykle i tak będzie używany, bo nowe mają zaporowe ceny, a do tego nie ma zbyt wielu kompatybilnych programów dla domowych systemów operacyjnych. Od paru lat chciałbym swój komputer wyposażyć w napęd LTO, ale żona krzywo patrzy na "zbędne wydatki"...
Bez taśmy też się da - magnetyczna pamięć bębnowa
Prekursor dysków twardych, wyprzedzający nawet pamięci ferrytowe. Nad tą pamięcią pracowała marynarka wojenna USA w czasie drugiej wojny światowej i po jej zakończeniu. Jeden z prototypowych komputerów został zamontowany w dużej ciężarówce wojskowej jako rozwiązanie mobilne. Dość szybko okazało się, że duży, wirujący bęben zachowuje się jak żyroskop, przez co ciężarówka w ruchu z pracującym komputerem miała trudności ze skręcaniem w jedną stronę, za to skręcając w drugą się przewracała. Problem rozwiązano dzieląc bęben na dwa mniejsze wirujące w przeciwnych kierunkach.
Pamięć bębnowa składa się z dużego, metalowego cylindra pokrytego warstwą materiału ferromagnetycznego. Wzdłuż osi cylindra umocowany jest zestaw nieruchomych głowic czytająco-zapisujących dane. Bęben wiruje z dużą, stałą prędkością przez cały czas. Pamięć bębnowa oferowała sporą pojemność i na tyle przyzwoity czas dostępu do danych zapisanych sekwencyjnie, że wokół niej budowano wiele pierwszych komputerów komercyjnych. Nawet po wynalezieniu i upowszechnieniu się pamięci ferrytowej stosowano pamięć bębnową jako pamięć pośrednią między pamięciami taśmowymi, a pamięcią operacyjną. O ile czas wyszukiwania właściwej informacji był mierzony w ułamkach sekund, o tyle czas odczytu kolejnych słów był dużo większy, i wokół tego ograniczenia programiści optymalizowali programy, ładując dane z taśmy magnetycznej lub nośników perforowanych na bęben, a potem przetwarzając je lub ładując do pamięci ferrytowej sekwencyjnie. Dlatego pamięć bębnowa stosowana była jako pamięć pomocnicza, nawet po wynalezieniu pamięci dyskowej.
Wszystkie dane na talerzu - pamięć dyskowa
Alternatywa do pamięci bębnowej pojawiła się już w latach sześćdziesiątych. Zestaw metalowych dysków pokrytych materiałem ferromagnetycznym był czytany przez zespół ruchomych głowić przesuwanych albo za pomocą silnika elektrycznego przez przekładnię, albo za pomocą specjalnie uformowanych cewek i magnesów. Firma IBM opracowała pierwszy dysk twardy w roku 1957 na potrzeby komputera IBM 305 RAMAC. Napęd o oznaczeniu IBM 350 oferował pojemność 5 milionów znaków, czyli 3,75MB. Zawierał 52 talerze o średnicy 24 cali, albo 61cm, z którymi współpracowało sto głowic. Każda powierzchnia magnetyczna podzielona była na sto ścieżek, co daje 500 znaków na ścieżkę. Przy prędkości 1200 obrotów na minutę oferował prędkość transferu danych na poziomie 8800 znaków na sekundę. Napęd ważył tonę. Ciekawostką jest fakt, iż IBM mogło zwiększyć pojemność napędu, ale ich dział sprzedaży nie miał pomysłu jak to sprzedać.
Pierwszym napędem z wymiennymi dyskami był zaprojektowany na potrzeby komputera IBM 1401 napęd IBM 1311 z 1962 roku. Oferował on pojemność 2 milionów znaków (12 ,megabitów, albo 1,5MB) na jeden zestaw talerzy. Jeden zestaw talerzy o oznaczeniu IBM 1316 Disk Pack miał grubość 10cm, ważył 4,5kg i zawierał 6 talerzy o średnicy 14 cali, czyli 36cm. Górna powierzchnia najwyższego dysku i dolna najniższego nie były używane bo mogły łatwo ulec uszkodzeniu. Dyski rozpędzały się do 1500 obrotów na minutę. Każda powierzchnia zawierała 100 ścieżek podzielonych na 20 sektorów, każdy sektor zawierał 100 znaków. Każdy taki zestaw miał przeźroczystą obudowę z plastiku - najpierw odpinało się spód obudowy, potem wkładało się całość do napędu, blokowało na osi napędowej i zdejmowało górną połowę część opakowania. Po zamknięciu pokrywy napędu dysk był gotowy do pracy.
Nieco później pojawiły się kasety zawierające pojedynczy talerz, a w 1971 pojawiły się pierwsze dyskietki od IBM. Pierwotnie dyskietki miały pojemność 80kB i były tylko do odczytu - przechowywały mikrokod dla procesorów IBM 2835 (Storage Control Unit), a potem jako oddzielny komponent dla dla serii IBM/370. IBM samo nagrywało te dyski z pomocą oddzielnego urządzenia i dostarczało oprogramowanie dla klientów. Było to zgodne z ich modelem biznesowym, gdzie systemy komputerowe były klientom wynajmowane, a nie odsprzedawane.
Dość szybko inne firmy zauważyły lukę w modelu od IBM i zaczęły oferować stacje dyskietek i dyskietki zapisywalne. Pierwszym takim napędęm był Memorex 650 oferujący pojemność 175kB. Dysk podzielony był na 8 sektorów i 50 ścieżek, przy czym każdy sektor był oznaczony otworem przy krawędzi nośnika, z dodatkowym otworem oznaczającym sektor zero. Późniejsze napędy i dyskietki ośmiocalowe umieszczały otwory indeksujące przy osi napędowej nośnika zamkniętego w dyskietce. Zwykle podzielone były na 8, 16 lub 32 sektory - każdy standard wymagał odpowiedniego nośnika i napędu. Maksymalna pojemność tego formatu wyniosła 1,2MB.
Stacje i dyskietki ośmiocalowe stały się standardem nie tylko w zastosowaniach profesjonalnych, ale też jako kosztowna, lecz dostępna opcja dla pierwszych mikrokomuterów, jak Altair 8800 czy IMSAI 8080. W drugiej połowie lat 70tuch pojawiły się napędy i nośniki w standardzie 5,25". Pojemność była mniejsza, bo typowo 90kB lub 113kB. Sporo niższa cena napędów i nośników sprawiły, że ten standard wyparł dysketki ośmiocalowe. Od strony sprzętu napędy 5,25" były niemal identyczne. Używano też tego samego formatu samej dyskietki. Ale implementacja programowa i konstrukcja kontrolera były bardzo różnorodne. Stacja dyskietek dla Commodore PET z dwoma napędami miała w sobie dosłownie drugiego PETa, tyle że bez monitora i klawiatury, co pozwalało napędowi kopiować dyskietki bez udziału właściwego komputera, a nawet wykonywać inne programy. Dość szybko pojawiły się dyskietki o pojemności 360kB i 720kB by w końcu dobić do 1,2MB.
Formaty 8" i 5,25" nazywane były po angielsku "floppy", czyli "miękkie", bo sam nośnik oraz opakowanie były wykonane z giętkich materiałów, W 1982 roku pojawiły się napędy 3,5" o pojemności 264kB. Ta dyskietka miała już twardą skorupę z plastiku. Format 3,5" dość szybko dobił do pojemności 1,44MB, bo już w 1986. Równolegle pojawiły się formaty 3", 2,5" i 2", ale nie przetrwały długo, gdyż były specyficzne dla konkretnych systemów.
Wracając do formatu danych, to różnorodność interpretacji tegoż była przyczyną upadku systemu operacyjnego CP/M i dominacji DOSa w latach 80tych. O ile CP/M na każdym komputerze działał tak samo i pozwalał na wykonywanie tych samych programów niezależnie od platformy sprzętowej, to już sam format zapisu danych na dyskietkach był inny dla każdej platformy sprzętowej, choć sam napęd mógł być wręcz identyczny. Dlatego pierwsze klony IBM PC oferowały niekiedy system CP/M z możliwością odczytu dyskietek konkurencji, choć już nie zapisu. Dopiero DOS to ujednolicił.
W Polsce Ludowej komputer osobisty był towarem luksusowym i trudnodostępnym. Jeszcze trudniej było zdobyć dyskietki lub stację dyskietek. Dopiero lata 90te pozwoliły na upowszechnienie się tego nośnika, który w USA był formą dominującą od początku komputerów osobistych. W wielu miejscach wciąż się korzysta z dyskietek jako nośnika trwałego i bezpiecznego - nie mają żadnej ukrytej elektroniki, jak napędy Flash USB.
Warto wspomnieć też o dyskietkach Zip i Jaz, które miały oferować ogromne pojemności dorównujące płytom CD za ułamek ceny nagrywarek. Dyskietki Zip oferowały pojemności 100MB, 250MB i 750MB, Jaz, które były po prostu dyskami twardymi z wymiennymi talerzami (jak Disk Pack) 1GB i 2GB. Początkowo Iomega odniosła spory sukces, ale dość szybko się okazało, że jakość wykonania samych napędów pozostawia wiele do życzenia. Do tego ceny nagrywarek CD i nośników CD-R oraz CD-RW dość szybko spadły w początkach lat dwutysięcznych. Do tego Jaz używał złącza SCSI, które kończyło już swoją karierę na rynku komputerów osobistych na rzecz nowego gracza: USB.
Dyskietka + laser, czyli MiniDisc
Niektórzy mogą kojarzyć MiniDisc jako konkurencję dla CD-Audio i DAT. Z wyglądu przypomina płytę CD w obudowie jak od dyskietki, bo właśnie dyskietką jest. Dane, zwykle audio w formie cyfrowej, zapisane są magnetycznie jak w dyskietce, ale proces zapisu wymaga rozgrzania punktu na płycie, co realizuje dioda laserowa. W praktyce oznacza to, że zapis danych na MiniDiscu jest trwały i odporny na rozmagnesowanie. MiniDisc przyjął się dobrze w świecie profesjonalnego audio, jako alternatywa dla DAT, ale na rynku konsumenckim wytrzymał dość krótko, wyparty przez płyty CD, a potem przenośne dotwarzacze z pamięcią Flash. Jako nośnik danych był formatem jeszcze mniej popularnym, od wersji audio, głównie ze względu na brak urządzeń współpracujących z komputerem. Trochę szkoda, bo mimo wszystko miał większą trwałość i odporność od płyt CD czy DVD.
Niedługo zapomniane
Do rodziny pamięci zapomnianych dołączają już płyty CD, DVD, HD DVD i Blu-Ray. Dyski twarde są wypierane przez dyski SSD i coraz lepsze pamięci Flash. Nasze lokalne archiwa zastępuje "chmura", czyli cudzy komputer. Gry, programy, muzyka, filmy i inne media kupujemy lub wynajmujemy jako prawo do dostępu, a nie jako fizyczny nośnik, albo cyfrową kopię lokalną. Były już próby wypuszczenia na rynek komputerów, które funkcjonują jak dawne terminale dostępowe bez lokalnej pamięci stałej, może z wyjątkiem ROMu dla systemu. Ja jednak wolałbym zachować swoje twarde dyski i swoje archiwa danych - bo co to będzie jak Internetu nie będzie?
Mam nadzieję, że udało mi się Was zaciekawić tematem pamięci (linki do części pierwszej i drugiej). Oczywiście go nie wyczerpałem więc może przypomnijcie mi o jakich pamięciach zapomniałem przypomnieć? Zapraszam do komentowania i dyskutowania, ale przypominam o części pierwszej i drugiej. Aha, czy chcielibyście zobaczyć moje boje z własnym napędem LTO w komputerze stacjonarnym? Jak przekonacie moją żonę, to i taki temat się może pojawić.
Fajne? Ranking DIY
