Pamięć (część 1) Przedmioty prowadzone w ramach Programu Rozwoju WSFiZ w BiaÅ‚ymstoku realizowane sÄ… w ramach Programu Operacyjnego KapitaÅ‚ Ludzki, Priorytet IV Szkolnictwo wyższe i nauka, PoddziaÅ‚anie 4.1.1 Wzmocnienie potencjaÅ‚u dydaktycznego uczelni, współfinansowanego ze Å›rodków Europejskiego Funduszu SpoÅ‚ecznego (POKL.04.01.01-00-030/08) 9. Pamięć (część 1) Spis treÅ›ci 9. Pamięć (część 1) .................................................................................................................. 1 9.1 Podstawowe typy i parametry ........................................................................................ 1 9.2 Pamięć operacyjna......................................................................................................... 5 9.2.1 Rodzaje pamiÄ™ci operacyjnych ............................................................................. 5 9.2.1.1 Organizacja matryc............................................................................................... 5 9.2.1.2 Klasyfikacja ze wzglÄ™du na technologiÄ™ wytwarzania ........................................... 7 9.2.2 Banki pamiÄ™ci i ich adresacja ............................................................................... 9 9.1 Podstawowe typy i parametry Zgodnie z zaÅ‚ożeniami sformuÅ‚owanymi przez von Neumanna pamięć systemu komputerowego sÅ‚uży do przechowywania rozkazów i danych. Jeżeli potraktować jÄ… jako czarne pudeÅ‚ko realizujÄ…ce okreÅ›lone funkcje, to najważniejszymi parametrami charakteryzujÄ…cymi pamięć sÄ…: 1. Pojemność; 2. Szybkość; 3. Koszt; 4. Pobór mocy. Pojemność (ang. capacity) okreÅ›la ilość informacji, która może być w niej przechowywana. Mierzona jest najczęściej w bajtach lub sÅ‚owach. Niezależnie od jednostek, w których wyraża siÄ™ pojemność pamięć dzieli siÄ™ na fragmenty o staÅ‚ej dÅ‚ugoÅ›ci, którym przyporzÄ…dkowuje siÄ™ kolejne liczby caÅ‚kowite nazywane adresami. W zależnoÅ›ci od typu pamiÄ™ci (patrz dalej) fragmenty te mogÄ… mieć różnÄ… wielkość. W pamiÄ™ci głównej (tzw. operacyjnej) komputera fragmenty te majÄ… zazwyczaj dÅ‚ugość sÅ‚owa i nazywane sÄ… komórkami. DÅ‚ugość sÅ‚owa zawiera siÄ™ pomiÄ™dzy bajtem (dla mikrokomputerów) a oÅ›mioma bajtami (dla dużych instalacji). W zwiÄ…zku z tym wyrażajÄ…c pojemność pamiÄ™ci w sÅ‚owach zwyczajowo podaje siÄ™ liczbÄ™ słów i wielkość sÅ‚owa, przy czym liczbÄ™ słów poprzedza siÄ™ mnożnikiem lub jego skrótem, np. Kilo- (K, mnożnik = 210), Mega- (M, mnożnik = 220), Giga- (G, mnożnik = 230) czy Tera- (T, mnożnik = 240). W pamiÄ™ciach masowych, które sÄ… zazwyczaj wiÄ™ksze od pamiÄ™ci operacyjnych, adresuje siÄ™ fragmenty o dÅ‚ugoÅ›ci od kilkuset do kilku tysiÄ™cy bajtów. Dobrym przykÅ‚adem sÄ… tu dyski magnetyczne, dla których takim fragmentem jest tzw. sektor (patrz rozdziaÅ‚ 9.3 PamiÄ™ci 1 Pamięć (część 1) dyskowe). IstotnÄ… cechÄ… opisywanego fragmentu jest to, że jest on najmniejszÄ… porcjÄ…, którÄ… można zapisać do lub odczytać z pamiÄ™ci. Szybkość pamiÄ™ci okreÅ›la jak czÄ™sto można z niej korzystać. Na tÄ… okoliczność podawane sÄ… różne parametry, np. takie jak: Czas dostÄ™pu (ang. access time); Czas cyklu (ang. cycle time); Szybkość transmisji (ang. transfer speed). Czas dostÄ™pu jest czasem pomiÄ™dzy momentem zażądania dostÄ™pu do informacji a chwilÄ…, w której ta informacja pojawi siÄ™ na wyjÅ›ciu pamiÄ™ci. Dla pamiÄ™ci operacyjnej wartoÅ›ci czasu dostÄ™pu zawierajÄ… siÄ™ pomiÄ™dzy 10 ns a 100 ns. Czas cyklu jest najkrótszym czasem, jaki musi upÅ‚ynąć pomiÄ™dzy dwoma kolejnymi żądaniami dostÄ™pu do pamiÄ™ci. W istocie jest to opóznienie wnoszone przez ukÅ‚ady elektroniczne, z których zrobiona jest pamięć. Zazwyczaj jest to czas nieco dÅ‚uższy od czasu dostÄ™pu. Szybkość transmisji wyraża siÄ™ liczbÄ… bajtów, jakÄ… można przesÅ‚ać w jednostce czasu pomiÄ™dzy pamiÄ™ciÄ… a innym urzÄ…dzeniem. Zazwyczaj jest on stosowany do urzÄ…dzeÅ„, dla których fragment jest dużo wiÄ™kszy niż sÅ‚owo. Wynika to z faktu, że w takich urzÄ…dzeniach najmniejszÄ… adresowalnÄ… jednostkÄ… jest wspomniany fragment, czyli zapisuje siÄ™ go lub odczytuje w caÅ‚oÅ›ci, a w takiej sytuacji czas dostÄ™pu do pojedynczego sÅ‚owa jest mniej istotny. Co do kosztów, to Å›wiatowy trend wskazuje jednoznacznie, że jednostkowa cena pamiÄ™ci nieustannie spada. Najwyrazniej widać to na pamiÄ™ciach półprzewodnikowych. Rynek jest jednak mocno zróżnicowany. Z jednej strony wystÄ™pujÄ… na nim tanie, ale niezbyt szybkie ukÅ‚ady scalone pamiÄ™ci półprzewodnikowych o dużych pojemnoÅ›ciach. Z drugiej szybkie ukÅ‚ady pamiÄ™ciowe majÄ…ce niewielkie pojemnoÅ›ci i na dodatek wysokÄ… cenÄ™. StÄ…d w praktyce pamiÄ™ci operacyjne realizuje sie przede wszystkim na dużych, tanich ale wolnych ukÅ‚adach półprzewodnikowych. JednoczeÅ›nie w celu przyÅ›pieszenia wykonywania programów używa siÄ™ jako pomocniczÄ…, współpracujÄ…cÄ… z głównÄ…, niewielkÄ…, drogÄ… ale szybkÄ… tzw. pamięć kieszeniowÄ… (ang. cache memory). Zagadnienia organizacji współpracy obu rodzajów pamiÄ™ci bÄ™dÄ… omówione w dalszej części tego rozdziaÅ‚u (patrz rozdziaÅ‚ 9.2.4 Pamięć kieszeniowa). Każdy pracujÄ…cy ukÅ‚ad scalony pobiera moc i wydziela ciepÅ‚o. O ile budowanie odpowiednio wydajnych zasilaczy nie stanowi (poza kosztami) jakiegoÅ› szczególnego problemu, to szybkie odprowadzenie ciepÅ‚a tak, aby utrzymać nominalnÄ… temperaturÄ™ pracy ukÅ‚adu już nim jest. Problem wielkoÅ›ci poboru mocy, do pominiÄ™cia w niewielkich pamiÄ™ciach, staje siÄ™ istotnym problemem dla bardzo dużych pamiÄ™ci. AÄ…czonych jest wtedy ze sobÄ… dużo ukÅ‚adów scalonych i iloÅ›ci wytworzonego ciepÅ‚a mogÄ… być trudne do odprowadzenia. Innym obszarem, gdzie zagadnienie minimalizacji poboru mocy musi być traktowane jako pierwszoplanowe jest Å›wiat laptopów i komputerów kieszonkowych. Zagadnienie staje siÄ™ szczególnie krytyczne, jeżeli roÅ›nie zapotrzebowanie na moc ze strony innych części systemu komputerowego, np. procesora. Konstruktorzy zmuszeni sÄ… do instalowania w systemie komputerowym wielu rodzajów pamiÄ™ci. Różne rodzaje pamiÄ™ci półprzewodnikowych sÄ… niezbÄ™dne, gdyż jako jedyne dorównujÄ… swojÄ… szybkoÅ›ciÄ… procesorowi, a w zwiÄ…zku z tym mogÄ… z nim efektywnie współpracować; szybkie pamiÄ™ci magnetyczne (głównie dyski) ponieważ sÄ… pojemnymi pamiÄ™ciami nieulotnymi (zachowujÄ… informacjÄ™ po wyÅ‚Ä…czeniu napiÄ™cia), na których można zrealizować system plików i przechowywać oprogramowanie (w tym kod systemu operacyjnego) oraz różne istotne informacje użytkownika; dyski optyczne i pamiÄ™ci taÅ›mowe bo sÄ… wygodnym 2 Pamięć (część 1) (pojemnym, przenoÅ›nym) narzÄ™dziem do sporzÄ…dzania kopii bezpieczeÅ„stwa (ang. backup) oraz dystrybuowania oprogramowania. Wszystkie one tworzÄ… tzw. hierarchiÄ™ pamiÄ™ci. Można wyróżnić 5 jej poziomów: 1. Pamięć rejestrowa; 2. Pamięć kieszeniowa; 3. Pamięć operacyjna; 4. Pamięć masowa; 5. Pamięć zewnÄ™trzna. nazwa pojemność Czas dostÄ™pu rejestrowa <1Kb <1 ns kieszeniowa d"144MB 1÷10 ns operacyjna 512MB÷16GB 10÷100 ns masowa >100GB <10 ms zewnÄ™trzna nieograniczona sekundy÷minuty Tabela 9.1. Zestawienie parametrów różnych typów pamiÄ™ci Pamięć rejestrowÄ… tworzÄ… wszystkie rejestry znajdujÄ…ce siÄ™ w procesorze. Ponieważ jest ich od kilku do kilkudziesiÄ™ciu to jest pamięć o najmniejszej pojemnoÅ›ci, ale za to o najkrótszym czasie dostÄ™pu. Poza tym niektóre z rejestrów sÄ… dostÄ™pne jedynie dla ukÅ‚adu sterowania, inne (tzw. rejestry ogólnego przeznaczenia) sÄ… dostÄ™pne dla programisty. Pamięć kieszeniowa jest niezbyt dużą (poniżej 144MB) pamiÄ™ciÄ… o czasie dostÄ™pu rzÄ™du 1÷10 ns. PeÅ‚ni rolÄ™ bufora na podrÄ™czne, czÄ™sto używane informacje. Może być umiejscowiona w procesorze (ang. internal cache; L1, L2) albo poza nim (ang. external cache; L3). Ze wzglÄ™du na maÅ‚y czas dostÄ™pu istotnie przyÅ›piesza ona dziaÅ‚anie procesora. Wybrane problemy jej organizacji bÄ™dÄ… omówione pózniej w tym rozdziale. Pamięć operacyjna jest głównÄ… pamiÄ™ciÄ… komputera. Jej pojemność może siÄ™gać kilkunastu Giga bajtów. Ponieważ tendencja jest wzrostowa to można spodziewać siÄ™, że granice te mogÄ… być w bliskiej przyszÅ‚oÅ›ci przesuniÄ™te w górÄ™. Czas dostÄ™pu zależy mocno od zastosowanej technologii, ale najczęściej jest to 10÷100 ns. Pamięć masowa jest zwykle realizowana na dyskach magnetycznych. Jej pojemność jest rzÄ™du setek Mega bajtów dla mikrokomputerów do Tera bajtów dla dużych instalacji. Czas dostÄ™pu zazwyczaj nie przekracza 10 ms. Dyski sÄ… przedstawicielami tzw. pamiÄ™ci nieulotnych, tzn. takich, w których zapisane informacje nie ginÄ… po zaniku napiÄ™cia zasilajÄ…cego. OdnoÅ›nie pamiÄ™ci zewnÄ™trznych trudno operować parametrami liczbowymi, gdyż te sÄ… mocno zależne od konkretnego typu pamiÄ™ci. Nawiasem mówiÄ…c ten rodzaj pamiÄ™ci, w odróżnieniu od pozostaÅ‚ych, jest wyjÄ…tkowo niejednorodny technologicznie. SÄ… tu i streamery, gdzie noÅ›nikiem jest taÅ›ma magnetyczna, ale również dyski optyczne (oba sÄ… pamiÄ™ciami nieulotnymi). Można tylko powiedzieć, że ich kluczowym parametrem jest czas transmisji. Ich najważniejszÄ… cechÄ… jest możliwość wymiany noÅ›nika. Ponieważ rozbudowane systemy informacyjne (np. bazy danych) mogÄ… być przechowywane na wielu noÅ›nikach to daje to tÄ… korzyść, że w danej chwili używa siÄ™ tylko potrzebnego noÅ›nika. 3 Pamięć (część 1) Zestawienie rodzajów i parametrów pamiÄ™ci znajduje sie w tabeli 9.1 (patrz wyżej) Ze wzglÄ™du na sposób dostÄ™pu do informacji pamiÄ™ci można podzielić na cztery nastÄ™pujÄ…ce klasy: 1. PamiÄ™ci z dostÄ™pem bezpoÅ›rednim; 2. PamiÄ™ci z dostÄ™pem cyklicznym; 3. PamiÄ™ci z dostÄ™pem sekwencyjnym; 4. PamiÄ™ci z dostÄ™pem asocjacyjnym. Nazwa dostÄ™p bezpoÅ›redni albo inaczej swobodny (ang. RAM random access memory) wzięła siÄ™ stÄ…d, że czas dostÄ™pu w tych pamiÄ™ciach nie zależy od adresu komórki. NoÅ›nikami informacji w tych pamiÄ™ciach sÄ… tzw. matryce elementów. Zasada dziaÅ‚ania matryc jest taka, że każdy element matrycy pamiÄ™ta jeden bit. Dla n-bitowego adresu i m-bitowego sÅ‚owa matryca realizuje 2n słów m-bitowych, czyli jest pamiÄ™ciÄ… o pojemnoÅ›ci 2n×m. Schemat dziaÅ‚ania takiej pamiÄ™ci pokazany jest na rysunku 9.1. n Matryca m m Adres 2n×m Bufor E R/W Rysunek 9.1. Schemat pamiÄ™ci RAM Jak wynika z rysunku procesor wysyÅ‚a n-bitowy adres i sygnaÅ‚ E, który uaktywnia wejÅ›ciowy dekoder (na rysunku oznaczony jako prostokÄ…t przekreÅ›lony ukoÅ›nÄ… liniÄ…). PrzeksztaÅ‚ca on adres w numer sÅ‚owa. LiniÄ… R/W wysyÅ‚any jest sygnaÅ‚ rodzaju pracy: odczyt/zapis (ang. read/write). W rezultacie, na koniec cyklu odczytu w wyjÅ›ciowym buforze pojawia siÄ™ m-bitowe sÅ‚owo, a na koniec cyklu zapisu sÅ‚owo z bufora zostaje zapamiÄ™tane pod podanym adresem. ProszÄ™ zwrócić uwagÄ™ na sposób okreÅ›lania z ilu bitów skÅ‚ada siÄ™ szyna. Obu-kierunkowe strzaÅ‚ki miÄ™dzy matrycÄ… a buforem oraz ta na wyjÅ›ciu sÄ… niezbÄ™dne, gdyż przy zapisie i odczycie m-bitowego sÅ‚owa kierunek przepÅ‚ywu informacji jest przeciwny. Specjalnym rodzajem pamiÄ™ci o dostÄ™pie swobodnym sÄ… pamiÄ™ci ROM (ang. read only memory). SÄ… to pamiÄ™ci jednokrotnie zapisywane i wielokrotnie odczytywane (patrz niżej). Przy okazji: pamiÄ™ci RAM sÄ… wielokrotnie zapisywane i wielokrotnie odczytywane. PamiÄ™ci z dostÄ™pem cyklicznym to przede wszystkim dyski bÄ™dÄ…ce przedstawicielem grupy pamiÄ™ci z ruchomym noÅ›nikiem. GrupÄ™ drugÄ…: pamiÄ™ci cyklicznych z noÅ›nikiem nieruchomym tworzÄ… pamiÄ™ci zbudowane na rejestrach przesuwnych, w których informacja krąży w zamkniÄ™tej pÄ™tli sprzężenia zwrotnego. Zasada dziaÅ‚ania pamiÄ™ci cyklicznych jest taka, że co pewien ustalony czas umożliwia ona odczyt lub zapis informacji pod pewien adres nazywany adresem bieżącym. PorównujÄ…c ten adres z adresem wejÅ›ciowym można wychwycić moment zgodnoÅ›ci i wykonać akcjÄ™ zapisu lub odczytu. PamiÄ™ci z dostÄ™pem sekwencyjnym sÄ… pamiÄ™ciami realizowanymi na taÅ›mach magnetycznych w urzÄ…dzeniach nazywanych streamerami. Informacja zapisywana jest w kolejnoÅ›ci jej przychodzenia w porcjach nazywanych blokami lub rekordami. Aby odczytać informacjÄ™ należy 4 Pamięć (część 1) podać numer bloku liczony od poczÄ…tku noÅ›nika, a urzÄ…dzenie przewinie taÅ›mÄ™ do bloku o wskazanym numerze. PamiÄ™ci asocjacyjne (ang. associative memory) nazywane sÄ… również pamiÄ™ciami adresowanymi zawartoÅ›ciÄ… (ang. content addressable memory) albo pamiÄ™ciami skojarzeniowymi. PamiÄ™ci takie skÅ‚adajÄ… siÄ™ z pamiÄ™ci RAM oraz dodatkowej elektroniki przeszukujÄ…cej jej zawartość. PrzykÅ‚ady takiej pamiÄ™ci zostanÄ… opisane dalej w tym rozdziale. 9.2 Pamięć operacyjna 9.2.1 Rodzaje pamiÄ™ci operacyjnych ZostanÄ… omówione dwie klasyfikacje pamiÄ™ci operacyjnych: pierwsza bazuje na różnicach w sposobie wybierania elementów z matryc, druga na różnicach w technologii wytwarzania. Zaczniemy od tej pierwszej. 9.2.1.1 Organizacja matryc NoÅ›nikami informacji w pamiÄ™ci operacyjnej sÄ… tzw. matryce elementów. Ich ogólna definicja i sposób dziaÅ‚ania zostaÅ‚ opisany wyżej. Matryca może być tak skonstruowana, że w każdym jej wierszu znajduje siÄ™ dokÅ‚adnie jedno sÅ‚owo. WejÅ›ciowy dekoder zamienia adres na numer sÅ‚owa, które przy odczycie pojawia siÄ™ na liniach wyjÅ›ciowych, a przy zapisie, korzystajÄ…c z tych samych linii ustawia wartoÅ›ci bitów w wybranym sÅ‚owie zgodnie z podanymi na nich wartoÅ›ciami. Na rysunku 9.2a pokazana jest przykÅ‚adowa pamięć o takiej organizacji. a) b) a0 wejÅ›cia a1 Matryca wybierajÄ…ce E R/W linie danych Rysunek 9.2. Pamięć typu 2D: a) matryca; b) ukÅ‚ad współpracujÄ…cy Jej pojemność wynosi 16 bitów uÅ‚ożonych w matrycÄ™ 4×4 (4 sÅ‚owa 4-ro bitowe). Wystarczy okreÅ›lić jednÄ… liniÄ™ (podać na niÄ… jedynkÄ™) aby wybrać caÅ‚e sÅ‚owo. Na rysunku 9.2b pokazany jest schemat ukÅ‚adu współpracujÄ…cego z opisanÄ… matrycÄ…. W zwiÄ…zku z przyjÄ™tÄ… organizacjÄ… dekoder wejÅ›ciowy przeksztaÅ‚ca 2-bitowy adres (2 bity a1a2 wystarczÄ…, aby ponumerować każde z 4 słów) w sygnaÅ‚ na dokÅ‚adnie jednym z 4 swoich wyjść, a mianowicie tym, którego numer jest zakodowanym binarnie adresem (taki sposób kodowania nazywa siÄ™ kodowaniem 1 z n, w naszym przykÅ‚adzie 1 z 4). Kierunek przepÅ‚ywu informacji na wyjÅ›ciach ukÅ‚adu współpracujÄ…cego wynika z realizowanej operacji: odczytu lub zapisu. 5 Pamięć (część 1) Pamięć z matrycÄ… wyposażonÄ… w jedno wejÅ›cie wybierajÄ…ce nazywana jest pamiÄ™ciÄ… z wybieraniem liniowym lub pamiÄ™ciÄ… typu 2D. Jej podstawowÄ… wadÄ… jest konieczność używania dekodera o liczbie wyjść równej pojemnoÅ›ci pamiÄ™ci (liczonej w sÅ‚owach). Przy rozmiarach pamiÄ™ci np. 64K daje to dekoder o 16 wejÅ›ciach i 216 wyjÅ›ciach. Skonstruowanie takiego dekodera jest trudne. W zwiÄ…zku z tym używa siÄ™ pamiÄ™ci o dwóch liniach wybierajÄ…cych pamięć o takiej organizacji nazywa siÄ™ pamiÄ™ciÄ… 3D. Jedna linia wybiera wiersz matrycy, druga kolumnÄ™. W obu przypadkach sygnaÅ‚em wybierajÄ…cym jest jedynka. Matryca zorganizowana jest w pÅ‚aty (podmatryce), z których każdy przechowuje jeden bit sÅ‚owa, tak wiÄ™c pÅ‚atów jest tyle ile bitów w sÅ‚owie. Na rysunku 9.3a (patrz niżej) pokazana jest organizacja pojedynczego pÅ‚ata dla pamiÄ™ci 16×4 (16 słów 4-ro bitowych). Z 4 bitów adresu 2 (a0a1) wybierajÄ… wiersz, a pozostaÅ‚e dwa (a2a3) kolumnÄ™. Przy typie 3D i rozmiarach pamiÄ™ci 64K potrzebujemy dwa dekodery o 8 wejÅ›ciach i 28 wyjÅ›ciach. SÄ… one prostsze do skonstruowania niż dekoder o 216 wyjÅ›ciach niezbÄ™dny przy realizacji pamiÄ™ci o takiej samej pojemnoÅ›ci, ale typie 2D. CenÄ…, która pÅ‚acimy jest wydÅ‚użenie czasu dostÄ™pu ze wzglÄ™du na wydÅ‚użenie czasu dekodowania. a) b) linie danych a0 PÅ‚at a1 4×4 E a2 a3 Rysunek 9.3. Pamięć typu 3D: a) pÅ‚at; b) ukÅ‚ad współpracujÄ…cy Istnieje rozwiÄ…zanie poÅ›rednie, tzw. typ 2½D. Tak jak w typie 2D jedna linia wybiera 1 wiersz, ale do sÅ‚owa wyjÅ›ciowego przechodzÄ… z tego wiersza tylko wybrane kolumny (np. co piÄ…ta liczÄ…c od pierwszej albo co piÄ…ta liczÄ…c od drugiej albo co piÄ…ta od trzeciej albo co piÄ…ta od czwartej). Wyboru dokonuje siÄ™ za pomocÄ… multiplekserów, z których każdy sterowany jest tÄ… sama częściÄ… bitów adresu. Mamy wiÄ™c jednÄ… matrycÄ™, a na jej wyjÅ›ciu tyle multiplekserów ile bitów w sÅ‚owie, a każdy z nich wybiera po jednym, kolejnym bicie do sÅ‚owa wyjÅ›ciowego. Na rysunku 9.4a pokazana jest matryca 2½D dla pamiÄ™ci 16×1, a na rysunku 9.4b 1K×8 (patrz niżej). 6 Pamięć (część 1) a) b) a0 7 a1 Matryca adres Matryca 128×64 E a2 3 a3 adres 1 2 .... 8 R/W Rysunek 9.4. Pamięć typu 2½D: a) 16×1; b) 1K×8 Obliczenie parametrów dla pamiÄ™ci z rysunku 9.4b wymaga nieco arytmetyki. Zauważmy, że w ogólnoÅ›ci, jeżeli mamy skonstruować matrycÄ™ dla 2n słów po 2m bitów w sÅ‚owie, to istnienie matrycy kwadratowej jest możliwe jeżeli n+m jest parzyste. Wtedy mamy m+n = 2"p. Pojemność matrycy wynosi 2n"2m = 2n+m =22"p i istnieje pierwiastek z tej liczby równy 2 p, który jest jednoczeÅ›nie liczbÄ… wierszy (l) i kolumn (k) poszukiwanej matrycy kwadratowej. W naszym przykÅ‚adzie matryca liczy 1K=210 słów 8=23 bitowych, czyli n=10, m=3, i m+n=13, co oznacza, że matryca kwadratowa nie istnieje i trzeba konstruować matrycÄ™ prostokÄ…tnÄ…. Liczba wierszy wynosi l = 210/23=27=128. Ponieważ k" l = 210 to k = 210/l = 210/27 = 26 = 64. Pamięć ma sÅ‚owa 8- bitowe, co oznacza, że potrzeba 64/8 = 8 multiplekserów wybierajÄ…cych na wyjÅ›ciu 8 jego bitów. Na zakoÅ„czenie tej części należy podnieść ponownie kwestiÄ™ dÅ‚ugoÅ›ci sÅ‚owa pamiÄ™ci. Ze wzglÄ™du na możliwość powstawania przekÅ‚amaÅ„ (zjawisko polegajÄ…ce na tym, że sÅ‚owo zapisane i odczytane różniÄ… siÄ™ od siebie) powodowanych przez niewÅ‚aÅ›ciwe poziomy napięć albo zbyt duże natężenie promieniowania stosuje sie ukÅ‚ady detekcji i korekcji takich przekÅ‚amaÅ„. NajpopularniejszÄ… metodÄ… detekcji bÅ‚Ä™dów sÄ… tzw. bity parzystoÅ›ci. Metoda polega na tym, aby przy zapisie dopisać do każdego sÅ‚owa bit z ustawionÄ… jedynkÄ…, jeżeli liczba jedynek w sÅ‚owie jest parzysta i bit z zerem - jeżeli jest nieparzysta. Jeżeli przy odczycie wykona siÄ™ identycznÄ… operacjÄ™, to porównanie wartoÅ›ci odczytanego i obliczonego bitu parzystoÅ›ci pozwala na wykrycie przekÅ‚amaÅ„ na nieparzystej liczbie bitów sÅ‚owa. JednÄ… z popularniejszych metod detekcji i korekcji sÄ… tzw. kody CRC, które opierajÄ… siÄ™ również na dopisywaniu do każdego sÅ‚owa dodatkowych bitów. W obu przypadkach dÅ‚ugość sÅ‚owa ulega zmianie, a z niÄ… zmienia sie pojemność caÅ‚ej pamiÄ™ci. StÄ…d operujÄ…c dÅ‚ugoÅ›ciÄ… sÅ‚owa pamiÄ™ci należy upewnić siÄ™, czy w podawanej liczbie zostaÅ‚y uwzglÄ™dnione bity realizujÄ…cych opisane wyżej cele. 9.2.1.2 Klasyfikacja ze wzglÄ™du na technologiÄ™ wytwarzania Druga klasyfikacja pamiÄ™ci opiera siÄ™ o różnice w technologii wytwarzania. Omówione zostanÄ… dwa podziaÅ‚y: pierwszy dotyczy tzw. pamiÄ™ci staÅ‚ych (nazywanymi również pamiÄ™ciami tylko do odczytu ) ROM (ang. read only memory) wyróżniajÄ…cych siÄ™ swoimi wÅ‚asnoÅ›ciami na tle wszystkich innych pamiÄ™ci półprzewodnikowych, które na tÄ… okoliczność nazywa siÄ™ nieprecyzyjnie pamiÄ™ciami RAM. PodziaÅ‚ drugi dotyczy wyÅ‚Ä…cznie pamiÄ™ci RAM. Wyróżnia siÄ™ wÅ›ród nich pamiÄ™ci statyczne SRAM (ang. static RAM) oraz dynamiczne DRAM (ang. dynamic RAM). PamiÄ™ci ROM, pomimo że sÄ… pamiÄ™ciami półprzewodnikowymi zachowujÄ… swojÄ… zawartość po wyÅ‚Ä…czeniu napiÄ™cia zasilajÄ…cego (sÄ… pamiÄ™ciami nieulotnymi). Ta cecha oraz duża (w porównaniu np. z pamiÄ™ciami dyskowymi) szybkość dziaÅ‚ania zadecydowaÅ‚a o używaniu ich do 7 Pamięć (część 1) przechowywaniu istotnych skÅ‚adników systemu operacyjnego (np. BIOSu). Zaprezentowana poniżej klasyfikacja typów pamiÄ™ci ROM podana zostaÅ‚a w ujÄ™ciu historycznym, od typów powstaÅ‚ych najwczeÅ›niej do typów nowszych. Pozwala to przeÅ›ledzić rozwój technologii ze Å›wiadomoÅ›ciÄ…, że niektóre z typów nie sÄ… już używane. MROM (ang. maskable ROM) zawartość tych pamiÄ™ci ustalana jest w procesie produkcji przez stosowanie odpowiednich masek (stÄ…d nazwa). Maski sÄ… sposobem na ksztaÅ‚towanie pożądanych cech funkcjonalnych ukÅ‚adów scalonych. Jest to najtaÅ„szy rodzaj pamiÄ™ci ROM (przy zaÅ‚ożeniu odpowiednio dÅ‚ugiej serii produkcyjnej). PROM (ang. programmable ROM) zawartość tej pamiÄ™ci można zaprogramować ale można to zrobić tylko raz (proces programowania niszczy nieodwracalnie pewne poÅ‚Ä…czenia wewnÄ™trzne pamiÄ™ci). Obecnie ten typ nie jest używany. EPROM (ang. erasable ROM) pamięć wielokrotnie programowalna. PoprzedniÄ… zawartość można skasować przez naÅ›wietlenie koÅ›ci pamiÄ™ci promieniami UV. Można to zrobić po uprzednim wyjÄ™ciu koÅ›ci z komputera. Obecnie ten typ jest używany sporadycznie. EEPROM albo E2PROM (ang. electrically erasable PROM) pamięć kasowana i programowana w drodze podawanie na jej wejÅ›cia odpowiednich sekwencji sygnałów. Proces ten może przebiegać bez koniecznoÅ›ci wyjmowania koÅ›ci z komputera. W ten sposób można np. instalować nowe wersje BIOSa. Warto wspomnieć o pamiÄ™ci typu NVRAM (ang. non volatile RAM). Jest to poÅ‚Ä…czenie pamiÄ™ci RAM z EEPROM. W tym typie pamiÄ™ci można na żądanie przepisać zawartość pamiÄ™ci RAM do EEPROM. Czas tej operacji jest wprawdzie dÅ‚ugi (kilkanaÅ›cie ms) ale uzyskujemy bardzo wygodnÄ… możliwość przechowania przez dowolnie dÅ‚ugi czas okreÅ›lonych, wczeÅ›niej wypracowanych wartoÅ›ci. Dobrym przykÅ‚adem zastosowaÅ„ sÄ… tu parametry konfiguracyjne, z których korzystamy przy wÅ‚Ä…czaniu systemu komputerowego, a które od czasu do czasu zmieniamy zgodnie z naszymi potrzebami. Czas dostÄ™pu dla pamiÄ™ci typu EEPROM jest rzÄ™du 100 200 ns. MogÄ… być one wyposażone w mechanizm pozwalajÄ…cy na wprowadzanie tzw. stanu wyÅ‚Ä…czenia (ang. standby power). W taki stan można wprowadzić ukÅ‚ad, kiedy nie jest realizowany ani zapis ani odczyt. Wtedy pobór mocy może spadać w nim nawet 100 krotnie w stosunku do mocy pobieranej w stanie aktywnym. Przejdzmy do podziaÅ‚u na pamiÄ™ci statyczne SRAM oraz dynamiczne DRAM. PamiÄ™ci statyczne SRAM sÄ… to szybkie, drogie, ale o niezbyt dużych pojemnoÅ›ciach, za to o dużym poborze mocy pamiÄ™ci półprzewodnikowe. Pojedynczy element takich pamiÄ™ci (tj. element pamiÄ™tajÄ…cy jeden bit) zawiera tzw. przerzutnik. Jest to 2-stanowy ukÅ‚ad zbudowany z kilku tranzystorów, sprzedawany na rynku również jako samodzielny ukÅ‚ad, podobnie jak np. bramki logiczne. To wÅ‚aÅ›nie wysoki pobór mocy jest powodem problemów ze zbudowaniem ukÅ‚adu SRAM o dużej pojemnoÅ›ci. PamiÄ™ci SRAM stosuje siÄ™ wiec tam, gdzie pojemność nie musi być szczególnie duża, za to wskazana jest jak najwiÄ™ksza szybkość dziaÅ‚ania. Takie wÅ‚aÅ›nie parametry powinna posiadać tzw. pamięć kieszeniowa (ang. cache memory). Problemy organizacji takich pamiÄ™ci i ich współpraca z procesorem oraz pamiÄ™ciÄ… operacyjnÄ… zostanÄ… omówione dalej w tym rozdziale. Zajmijmy siÄ™ teraz pamiÄ™ciami dynamicznymi DRAM. Podstawowym elementem tych pamiÄ™ci jest kondensator. Jeżeli jest on naÅ‚adowany, to taki stan interpretujÄ™ siÄ™ jako bit równy jeden. 8 Pamięć (część 1) Pobór mocy dla tych pamiÄ™ci jest maÅ‚y, a pojemność informacyjna (mierzone iloÅ›ciÄ… bitów) pojedynczych koÅ›ci duża. Szybkość tych pamiÄ™ci nie jest imponujÄ…ca z reguÅ‚y nie przekracza 100 ns. Ich podstawowÄ… wadÄ… jest dosyć szybka utrata zapisanych informacji powodowana rozÅ‚adowywaniem siÄ™ kondensatorów. Odczyt informacji przyÅ›piesza proces rozÅ‚adowania. W zwiÄ…zku z tym zachodzi potrzeba okresowego odÅ›wieżania (ang. refresh) zawartoÅ›ci pamiÄ™ci (typowe wartoÅ›ci okresu odÅ›wieżania to 2, 4 lub 8 ms). Jeżeli dla potrzeby oszacowania czÄ™stotliwoÅ›ci odÅ›wieżeÅ„ zaÅ‚ożymy, że jest to 1 ms, to mamy: 1 ms/100 ns = 10-3/100"10-9 = 10-3/10-7 = 104 = 10 000; co oznacza, że akcjÄ™ odÅ›wieżania należy przeprowadzić raz na 10 000 cykli pamiÄ™ci. Sama akcja odÅ›wieżania polega na odczycie i powtórnym zapisie tej samej informacji. Wymaga to chwilowego odÅ‚Ä…czenia procesora od pamiÄ™ci, przejÄ™cia magistrali przez generator adresów, który wygeneruje kolejno wszystkie adresy komórek i wymusi na każdej z nich operacjÄ™ odczytu i ponownego zapisu. 9.2.2 Banki pamiÄ™ci i ich adresacja Jak to już powiedziano, pamiÄ™ci DRAM nie należą do najszybszych. W zwiÄ…zku z tym poszukiwano pozatechnologicznych sposobów poprawienia ich parametrów. Jednym z powszechniej stosowanym jest podzielenie pamiÄ™ci na części nazywane bankami, z których każdy ma parÄ™ rejestrów: MAR i MDR pozwalajÄ…cych na niezależny zapis i odczyt. Rozbicie pamiÄ™ci operacyjnej na mniejsze banki pozwala po rozpoczÄ™ciu operacji zapisu lub odczytu z dowolnego banku, zainicjować kolejnÄ… operacjÄ™ na innym banku nie czekajÄ…c na rezultat pierwszej z nich. W oczywisty sposób przyspiesza to pracÄ™. Zysk czasowy przy n siÄ™gniÄ™ciach do adresów rozrzuconych po różnych bankach teoretycznie może siÄ™gać n"Tc, gdzie Tc oznacza czas cyklu pamiÄ™ci. PrzykÅ‚ad pamiÄ™ci o architekturze bankowej pokazano na rysunku 9.5. SÄ… na nim 4 banki po 7 słów w każdym. Adresy takiej pamiÄ™ci sÄ… 5-cio bitowe (przy 32 komórkach pamiÄ™ci mamy: 32 = 25). Dwa pierwsze bity interpretowane sÄ… jako numer banku, a pozostaÅ‚e 3 jako numer komórki w tym banku, np. komórka 22 = (10110)2 oznacza szóstÄ… komórkÄ™ (6 = 1102) w banku numer 2 (2 = 102). bank 0 bank 1 bank 2 bank 3 0 8 16 24 1 9 17 25 2 10 18 26 3 11 19 27 4 12 20 28 5 13 21 29 6 14 22 30 7 15 23 31 MDR 0 MDR 1 MDR 2 MDR 3 MAR 0 MAR 1 MAR 2 MAR 3 Rysunek 9.5. Pamięć o architekturze bankowej OczywiÅ›cie, jeżeli kolejne adresy sÄ… z tego samego banku to należy czekać i zysk spada do zera. Rachunek prawdopodobieÅ„stwa wskazuje, że jeżeli wystÄ…piÅ‚o siÄ™gniÄ™cie do komórki o adresie m pamiÄ™ci to siÄ™gniÄ™cie do komórki o adresie sÄ…siednim jest dużo bardziej 9 Pamięć (część 1) prawdopodobne niż siÄ™gniÄ™cie pod inny adres. Oznacza to, że przy architekturze bankowej zyski bÄ™dÄ… dużo mniejsze od maksymalnych. RozwiÄ…zaniem tego problemu jest tzw. architektura z przeplotem. W takiej architekturze komórki o sÄ…siednich adresach umieszczane sÄ… w różnych bankach. Efekt taki można uzyskać używajÄ…c najmniej znaczÄ…ce bity w adresie jako numer banku. PrzykÅ‚ad tego rodzaju pamiÄ™ci pokazany jest na rysunku 9.6 (patrz niżej). bank 0 bank 1 bank 2 bank 3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 MDR 0 MDR 1 MDR2 MDR3 MAR 0 MAR 1 MAR 2 MAR3 Rysunek 9.6. Pamięć o architekturze z przeplotem Adresy takiej pamiÄ™ci sÄ… tak jak uprzednio 5-cio bitowe. Dwa ostatnie bity interpretowane sÄ… jako numer banku, a 3 pierwsze jako numer komórki w tym banku, np. komórka 22 = (10110)2 oznacza piÄ…tÄ… komórkÄ™ (5 = 1012) w banku o numerze 2 (2 = 102). 10