Pamięć komputerowa


Pamięć jest to urządzenie lub blok funkcjonalny, służące do przechowywania danych. Logicznie pamięć jest uporządkowanym (ponumerowanym od 0) zbiorem elementarnych komórek pamięci o określonej długości. Wyboru określonej komórki pamięci, np. w celu zapisu lub odczytu, dokonuje się przez podanie jej numeru, zwanego adresem.

Pamięci dynamiczne
Pamięci tego typu są zbudowane z macierzy kondensatorów przechowujących bity informacji w postaci ładunków elektrycznych. Pamięci te są znacznie tańsze od pamięci statycznych - każda komórka pamięci składa się tylko z jednego tranzyskora (złącze emiterowe i podłoże układu tworzą kondensator). Takie rozwiązanie posiada również swoje wady - konieczność nieustannego odświeżania zawartości pamięci. Również adresowanie tej pamięci jest bardziej skomplikowane. Adres komórki pamięci jest podawany w dwóch etapach - adres wiersza (wczytywany przy sygnale RAS), a potem adres kolumny (wczytywany przy sygnale CAS). Adresy komórek pamięci są multipleksowane, co dodatkowo wydłuża cykl odczytu. Wyżej wymienione cechy powodują, iż pamięć ta jest zbyt wolna do wielu zastosowań. Obecnie najszersze zastosowanie tej pamięci to pamięć podstawowa komputerów.

BIOS
BIOS (Basic Input Output System) - podstawowy system Wejścia /Wyjścia. Najniższy poziom oprogramowania komputera umożliwiający działanie innych programów i operacji wykonywanych przez komputer. BIOS jest łącznikiem między sprzętem a uruchamianymi programami. Procedura BIOS-u została zapisana w pamięci stałej komputera, w odpowiednich układach scalonych, w postaci rozkazów języka maszynowego. Procedury te można odczytać ale nie można ich zmodyfikować. (Oprogramowanie przechowywane w układach scalonych nazywa się oprogramowaniem układowym, ang. firmware).
Programy znajdujące się w BIOS-ie dzielą się na dwie grupy:
- programy testująco-inicjujące pracę komputera,
- programy zawierające procedury sterujące różnymi elementami komputera, jak np.: napędami dyskowymi , urządzeniami wejścia/wyjścia.
BIOS steruje współpracą wszystkich podstawowych funkcji komputera z systemem operacyjnym. Troszczy się między innymi o to, by sygnały wychodzące z klawiatury przetwarzane były do postaci zrozumiałej dla procesora. BIOS posiada własną, choć niewielką pamięć, w której są zapisane informacje na temat daty, czasu oraz dane na temat wszystkich urządzeń zainstalowanych w komputerze. Po uruchomieniu komputer wyświetla informacje na temat kombinacji klawiszy, za pomocą której możliwe jest wywołanie ustawień BIOS-u. Najczęściej jest to klawisz Delete lub kombinacja Ctrl + Alt + Esc. Po wejściu do BIOS-u możliwe jest dokonywanie różnych modyfikacji, na przykład takich jak skonfigurowanie nowo zainstalowanego dysku twardego. BIOS jest zasilany przez baterie. Jeżeli komputer nie jest używany przez dłuższy czas, należy włączyć go na kilka godzin, aby odpowiednio naładować baterię.

Pamięci ROM
Read Only Memory - Pamięć tylko do odczytu. Pamięć ROM jest pamięcią nieulotną, przeznaczoną tylko do odczytu. Nieulotność oznacza, że po wyłączeniu napięcia zasilania tej pamięci, informacja w niej przechowywana nie jest tracona. Określenie "tylko do odczytu" oznacza, że do pamięci tej nie możemy zapisywać w trakcie jej normalnej pracy w systemie.

Pamięci MROM
Informacja zawarta w tej pamięci jest zapisywana w czasie produkcji w formie maski na podstawie dostarczonego wzorca. Nie ma możliwości zmiany zawartości tej pamięci. Używana w urządzeniach produkowanych seryjnie, których zawartość jest ustalana w procesie produkcji i nie może być zmieniana. Przy założeniu długich serii produkcji, jest to najtańszy rodzaj pamięci ROM. W technice komputerowej dobrym przykładem zastosowania tego typu pamięci jest BIOS obsługujący klawiaturę.

Pamięci PROM
Jest dostarczana przez producenta w stanie niezaprogramowanym z możliwością jednokrotnego ustalania dowolnej zawartości bezpośrednio przez użytkownika. Właściwą treść pamięci ustala się jednorazowo przez elektryczne przepalenie odpowiednich połączeń wewnętrznych. Każda pomyłka w czasie programowania eliminuje programowany układ.

Pamięć EPROM
(Erasable Programmable ROM). Najpopularniejszy rodzaj pamięci kasowalnej i programowalnej o nieulotnej zawartości informacji. Kasowanie zawartości dokonuje się przez intensywne naświetlenie promieniem ultrafioletowym. Nie jest możliwe kasowanie pojedynczych bajtów pamięci, natomiast proces przeprogramowania zawartości pamięci może być powtarzany wielokrotnie. Przewidywany czas trwałości danych umieszczanych w pamięci EPROM wynosi co najmniej 10 lat.

Pamięci EEPROM
(Electrically Erasable Programmable ROM). Każdy bajt można kasować elektrycznie i zapisać nową zawartością bezpośrednio w urządzeniu, w którym normalnie funkcjonuje pamięć, a do zaprogramowania dowolnego bajtu wystarcza jeden cykl zapisu. Wykorzystanie tej możliwości sprawia, że pamięć ta jest idealnym rozwiązaniem przy uruchamianiu nowego oprogramowania, bądź modyfikacji zawartości istniejącej pamięci. Przyjmuje się, że pamięć EEPROM powinna wytrzymać 100 tys. przeprogramowań. Do PC pamięci EEPROM trafiły natychmiast, gdy tylko ich cena zaczęła na to pozwalać - możliwość przedłużenia "moralnego życia" płyty głównej przez wymianę BIOS-u była bardzo atrakcyjna dla producentów komputerów. Tym bardziej, że dostępność takich pamięci zbiegła się w czasie z początkiem dywersyfikacji standardu PC - stosowane w nich procesory przestały być wiernymi kopiami Intelowskich.
Możliwość przystosowania płyty głównej do procesora, który jeszcze nie istniał w chwili produkcji tej płyty uzasadniała zastosowanie EEPROM, a później nieco łatwiejszej w obsłudze i pewniejszej w działaniu EEPROM, nawet pomimo związanych z tym komplikacji konstrukcyjnych. Konstruktorzy komputerów i innych urządzeń, korzystających z pamięci ROM, byli już usatysfakcjonowani, a i użytkownicy komputerów wyposażonych we Flash BIOS czuli się dobrze ze świadomością, że w razie potrzeby mogą sobie wymienić BIOS bez udziału serwisu.
Niestety, nie samym komputerem człowiek żyje - wiele pomysłów nowych urządzeń czekało na chwilę, kiedy będą one miały większą pojemność, niższą cenę i będą łatwiejsze w obsłudze oraz szybsze w działaniu.

Pamięć Flash EEPROM
W tym typie pamięci zwykle nie można kasować ani programować pojedynczych bajtów. Możliwe jest kasowanie i programowanie blokami pamięci lub w całości. Pamięci Flash wytrzymują od 100 do 10 tys. cykli kasowania i programowania. Pamięci ROM są stosowane w praktyce do zapamiętywania podstawowych funkcji konfiguracyjnych oraz obsługi systemu operacyjnego komputera. Na ogół służą do zapamiętania informacji o rodzajach portów, stosowanej pamięci RAM, dyskach itp.
Pamięci Flash znajdują coraz szersze obszary zastosowań
Od największych, montowanych w zespoły złożone z kilku lub kilkunastu układów i przeznaczonych jako pamięci dla różnego rodzaju urządzeń (cyfrowe aparaty fotograficzne, cyfrowe dyktafony czy zastępujące dysk stały karty PCcards), aż do zupełnie małych, stanowiących integralny element tzw. Smart Cards, czyli kart chipowych, które w najbliższym czasie mają zastąpić popularne obecnie karty magnetyczne. Od zastosowania w Smart Cards wszystkie nośniki informacji, oparte na chipach pamięci Flash, coraz częściej zaczynają być określane jako Smart Media. Należą do tej grupy zarówno wylansowane przez Intela (który jest, obok AMD, jednym z głównych producentów pamięci tego rodzaju) "krzemowe dyskietki", jak i większe gabarytowo rozwiązania, zawierające chip w plastikowej karcie wielkości karty kredytowej (Smart Card) czy w obudowie karty PCMCIA.
Rozpowszechnienie w produkcji półprzewodników technologii 0,35 mikrometra pozwoliło na dalsze usprawnienia konstrukcji Flash ROM. Dzięki niższemu napięciu zasilania matrycy pamięci wyeliminowano konieczność stosowania dwu napięć zasilających.
Równocześnie, dzięki zwiększeniu gęstości upakowania elementów, wzrosła dwukrotnie pojemność pamięci, a wynikające ze zmniejszenia wymiarów poszczególnych elementów zmniejszenie pojemności bramek umożliwiło znaczne skrócenie czasu zapisu danych.
Pamięci Flash są w porównaniu z innymi typami pamięci półprzewodnikowych bardzo powolne czas dostępu dla odczytu to co najmniej 250 ns, a praktycznie prawie dwukrotnie więcej. Czas cyklu zapisu to, w zależności od długości bloków danych w pamięci, od 30 do 100 ms. Dla wielu zastosowań jest to nie do przyjęcia wolno. Cóż począć w takim przypadku? Pozostają jedynie pamięci statyczne, zamknięte w jednej obudowie z podtrzymującym ich zasilanie akumulatorem litowo-jonowym. Akumulator jest doładowywany z urządzenia dokonującego zapisu lub odczytu, a kiedy pamięć nie jest używana, pobiera tak niewielki prąd, że pojemność akumulatora wystarcza praktycznie na dwa do trzech lat. Ale pamięci statyczne są wciąż kosztowne i jeszcze długo takimi pozostaną.

RAM
Random Access Memory - Pamięć o dowolnym dostępie - posiada możliwość odczytu i zapisu. Zawartość takiej pamięci jest tracona po zaniku zasilania. Obecnie najpopularniejsze są układy pamięci SDRAM w postaci 168 pionowych układów na złączu typu DIMM. Podstawowym parametrem układów pamięci RAM jest tzw. czas dostępu do informacji. W obecnie dostępnych pamięciach czas ten wynosi 8, 7 i 5 nanosekund.
Pamięć RAM znajduje zastosowanie nie tylko na płycie głównej komputera, lecz także np. w kartach graficznych czy muzycznych. Wówczas jednak mamy do czynienia z innym rozwiązaniem konstrukcyjnym takiej pamięci.

FPM RAM
Czasy dostępu do tych pamięci 60-70 ns. Obsługiwane są one w sekwencji 5-3-3-3

EDORAM
W pamięciach tych zmniejszono ilość cykli oczekiwania o 1 dzięki temu , że dane utrzymywane są na wyjściu pamięci po przejściu sygnału CAS# w stan wysoki. Pozwala to wcześniej wyznaczyć następny adres w wierszu. Dane są zdejmowane z wyjścia pamięci dopiero po ponownym przejściu sygnału CAS# w stan niski. Pamięci EDO mogą pracować w sekwencji cykli 5-2-2-2.

SDRAM
Jest to pamięć, na której operacje przebiegają synchronicznie z taktem zegara systemowego. Sygnały sterujące powodują wykonanie określonej operacji po pojawieniu się aktywnego zbocza na wejściu zegarowym. Moduły tych pamięci mają organizację 64-bitową, dostosowaną do szerokości magistrali procesora Pentium. Ich konstrukcja jest optymalizowana pod kątem pracy w trybie burst. Pamięci SDRAM potrafią pracować w sekwencji 5-1-1-1 nawet dla częstotliwości magistrali lokalnej równej 100MHz.

RDRAM
W pamięciach tych zastosowano nową koncepcję funkcjonowania. Informacja jest przechowywana w bloku standardowej pamięci DRAM. W opisywanej pamięci o pojemności 8MB (64 Mb) składa się on z czterech banków o pojemności 2MB każdy. Banki te są zorganizowane jako 1024 wiersze zawierające 256 kolumn 64-bitowych komórek (72 bity, uwzględniając kontrolę parzystości). Pojemność wiersza wynosi więc 2048 bitów. Komunikacja z pamięcią RDRAM przebiega przez 8-bitową magistralę D7¸D0. Przesyłane są nią pakiety (paczki) informacji zawierające adresy, dane lub rozkazy wykonania przez pamięć określonych operacji. Każdy pakiet ma pojemność 72 bitów (9x8 bajtów). Transmisja taktowana jest sygnałem RXCLK lub TXCLK. Po wprowadzeniu do pamięci przykładowo rozkazu odczytu i adresu wiersza w żądanym banku, wiersz ten jest ładowany do odpowiedniego bufora strony (ze standardowym czasem dostępu rzędu 10ns). Z buforów tych odczytywane są (z dużą szybkością - 1,6 ns/bajt) żądane kolumny (64-bitowe), które za pośrednictwem multipleksera transmitowane są na zewnątrz jako pojedyncze bajty. Opisana tu technologia i architektura nosi nazwę Rambus i została opracowana przez kalifornijską firmę o tej samej nazwie.

Największą siłą Rambusów jest ich przepustowość, która pozwala przetoczyć trzykrotnie więcej danych w ciągu sekundy niż w PC100 SDRAM. Ich poważną wadą jest natomiast opóźnienie - czas upływający od żądania danych z pamięci do ich dostarczenia do CPU. Większe opóźnienie obniża wydajność w programach takich jak edytory tekstu czy pewne bazy danych, które często żądają małych porcji danych z pamięci. Stanowi to natomiast niewielki problem w przypadku oglądania filmów DVD czy edycji video, gdzie za jednym zamachem wrzucane są megabajty danych, a potem następuje chwilowa przerwa. W takich aplikacjach zaczyna się liczyć większa przepustowość RDRAM. Jednak korzyści z Rambusów nijak się mają do ceny tych układów. RDRAM tylko nieznacznie zwiększa wydajność w niektórych programach graficznych , a w aplikacjach biurowych daje praktycznie zerowe zyski.

CRDRAM
Moduły CRDRAM stanowią drugą generację modułów RDRAM o poprawionym protokole oraz 16-bitowej magistrali danych (18-bitowej w przypadku korzystania z ECC). Moduły CRDRAM powinny teoretycznie obsługiwać częstotliwości zewnętrzne do 600 MHz i pozwalać na osiąganie szybkości przesyłania danych rzędu 600 MB/s.

DDR/SDRAM II
Ich architektura oparta została o ten sam projekt, który wykorzystano do produkcji modułów SDRAM, przy czym moduły te bazują na paśmie o podwójnej szerokości. Pozwala to na odczytywanie danych niezależnie od tego, czy sygnał taktu wznosi się, czy opada. Moduły DDR/SDRAMII obsługują zewnętrzną częstotliwość taktowania do 330 MHz i są w pełni kompatybilne z dotychczasowymi modułami DIMM.

Direct RDRAM
Jest to trzecia generacja modułów RDRAM, wykorzystująca zoptymalizowany protokół oraz 16-bitową magistralę danych. Moduły DRDRAM powinny teoretycznie obsługiwać częstotliwości taktowania zewnętrznego do 800 MHz i powinny pozwalać na przesyłanie danych do 1,6 GB/s.

Enhanced SDRAM
Każdy układ modułu ESDRAM ma swoją pamięć podręczną (w stosunku 1 KB pamięci podręcznej na 4 MB pamięci RAM) i obsługuje częstotliwości zewnętrzne do 166 MHz. Czas dostępu w tego rodzaju modułach wynosi 5 ns, a szybkość przesyłania danych - około 1,6 GB/s.

Rambus DRAM
Technika Rambus oparta jest na wąskiej, ale szybkiej 8-bitowej magistrali danych ASIC oraz na właściwym module RDRAM. Moduł ten obsługuje częstotliwość taktowania zewnętrznego do 250 MHz i pozwala na przesyłanie danych z prędkością zbliżoną do 400 MB/s. Ta dość duża szybkość możliwa jest do osiągnięcia w modułach tych dzięki krótkim ścieżkom sygnałów oraz bardzo niskiemu napięciu zasilania równemu 0,6 V.

Sync Link DRAM
Standard SLDRAM jest rozszerzeniem architektury SDRAM. Zastosowanie nowych złączy oraz układów logicznych pozwala na wykorzystanie częstotliwości taktowania zewnętrznego do 800 MHz oraz umożliwia przesyłanie danych z szybkością maksymalną 3,2 GB/s.

Virtual Channel SDRAM
Moduły VC-SDRAM opracowane przez firmę NEC są modułami pamięci wyposażonymi w zintegrowany cashe (16 kanałów, a każdy o pojemności 1024 bitów). Powinny one pozwalać na osiąganie częstotliwości zewnętrznej rzędu 143 MHz, ale wymagają użycia specjalnego kontrolera RAM, który zintegrowany jest w układzie scalonym PVP4 firmy VIA.
VideoRAM
Jest to specjalny typ pamięci wielowejściowej posiadającej dwa porty, jeden równoległy, a drugi szeregowy. Od strony portu równoległego ta pamięć jest adresowana jak pamięc SRAM. Port szeregowy służy do wysyłania do monitora informacji o obrazie i kolorach.

PRAM
(PCRAM - Phase Change RAM) - typ pamięci nieulotnej opartej na nośniku krystalicznym. Wykorzystano zjawisko zmiany fazy punktów nośnika z krystalicznej na amorficzną (i odwrotnie) za pomocą podgrzewania impulsami elektrycznymi. Odczyt dokonywany jest przez pomiar rezystancji nośnika (różna dla różnych faz). Nośnikiem jest stop tellurku antymonu i tellurku galu, podobny do stosowanego w płytach CD-RW.
Zalety:
możliwość zapisu w jednej komórce więcej niż 1 bitu informacji
stosunkowo duża szybkość zapisu i odczytu - ok. 300 ns
stosunkowo duża trwałość - 1012 cykli
długi czas przechowywania informacji
stosunkowo prosta produkcja przy zastosowaniu istniejącego sprzętu
bezpośrednia zamienność z pamięciami typu Flash EEPROM
Wady:
na obecnym etapie wysoki koszt produkcji
wysokie temperatury występujące podczas zapisu mogą pogorszyć niezawodność w rzeczywistych układach
do zastosowań w miejsce obecnych pamięci RAM - ciągle zbyt mała prędkość zapisu i trwałość

MRAM
Rodzaj pamięci nieulotnej RAM wykorzystującej tunelowy efekt magnetorezystancyjny. Element pamięciowy zbudowany jest z trzech warstw: miękkiej warstwy ferromagnetycznej, niemagnetycznej bariery tunelowej i twardej warstwy ferromagnetycznej oraz z oplotu przewodnika. Zapis polega na przemagnesowaniu miękkiego materiału magnetycznego przez płynący prąd, co powoduje zmianę rezystancji złącza. Odczytu dokonywany jest przez pomiar rezystancji.
Pierwsze prace nad pamięciami MRAM dokonał IBM. Obecnie najbardziej zaawansowani w tej technologi są Altis Semiconductor i Freescale Semiconductor (dawniej dział półprzewodników firmy Motorola).
Zalety:
praktycznie nieograniczony czas przechowywania informacji bez zasilania
praktycznie nieograniczona liczba cykli zapis / odczyt
duża szybkość działania - czas zapisu ok. 30 ns (porównywalny z DRAM)
Wady:
niezgodność z technologią CMOS
stosunkowo wysokie koszty proukcji
stosunkowo duże rozmiary elementarnej komórki pamięci

FRAM
(FeRAM, Ferroelectric RAM) - typ pamięci nieulotnej opartej na nośniku krystalicznym - kryształach roztworu stałego cyrkonianu i tytanianu ołowiu (materiały typu perowskitu). Kryszały te zawierają wewnątrz siatki atomy o dwóch stabilnych pozycjach. Przyłożenie napięcia o odpowiedniej polaryzacji wymusza zmianę pozycji atomu. Odczyt polega na pomiarze pochłanianej energii po kolejnym przyłożeniu napięcia - wiąże się to z koniecznością regeneracji zapisu w komórce.
Zalety:
mały pobór energii
stosunkowo duża trwałość (10 000 do 100 000 cykli)
stosunkowo duża szybkość
Wady:
duży rozmiar komórki
kłopotliwe odświeżanie
mała kompatybilność z technologia CMOS

Cache
Pamięć buforowa drugiego poziomu jest instalowana na płycie głónej w sposób umożliwiający jej rozbudowę. Płyty główne wyposażane są standardowo w pewną określoną ilość pamięci cache L2. Najczęściej spotykane rozmiary to 256 KB, 512 KB, 1MB, 2MB. Najważniejsze jest aby pamięć była zainstalowana (chociaż 128 KB, a najlepiej 512 KB). W efekcie następuje ogromny wzrost wydajności komputera. Zainstalowanie kolejnych kilobajtów już nie powoduje tak radykalnych przyrostów wydajności systemu (np. rozbudowa z 256 KB do 512 KB daje wzrost wydajności rzędu 5%), także koszt rozbudowy tej pamięci może okazać się niewspółmierny do wyników jakie przez to osiągniemy. Powyższe rozważania odnoszą się do pracy pod kontrolą systemów jednowątkowych. W przypadku korzystania z Windows NT, OS/2 lub Unix'a (systemów wielozadaniowych) każdemu wątkowi przydzielony jest odpowiedni rozmiar bufora, tak więc korzystne jest posiadanie przynajmniej 512 KB cache L2.


www.piotrsog.prv.pl