
- •II. Pamięci
- •Pojedyncza I sieć jednostek pamięci (o wielu wejściach) zbudowanych na bramkach or
- •Komórka pamięci o pojemności 1 bit, po lewej sram, po prawej dram
- •Porównanie parametrów urządzeń pamięci
- •Struktura logiczna 1-bitowej komórki pamięci
- •Schemat (I symbol) fizycznej jednostki pamięci I jej łączy z zewnętrzem
- •Tablica wartości modułu sterującego pamięci
- •Dekodowanie I demultipleksowanie adresów na kości dram 64k
- •Schemat logiczny pamięci rom
- •Struktura logiczna pamięci rom 25×8
- •Tabela wartości dekodera
- •Komórka pamięci rom – (Metal Oxide Semiconductor)
- •Typowa organizacja pamięci podręcznej
- •Przykład odwzorowania bloków pamięci ram na linie pamięci podręcznej
Schemat (I symbol) fizycznej jednostki pamięci I jej łączy z zewnętrzem
Jednostka pamięci zawiera wewnątrz informację o liczbie słów jakie może zapamiętać i długości pojedynczego słowa.
Operacje zapisywania i odczytywania
Po otrzymaniu sygnału ‘in’ obwody elektroniczne pamięci wykonują następujące działania:
- wprowadzają binarny adres na linię adresową,
- wprowadzają bity danych na linię wejścia,
- otwierają bramkę ‘write’,
- pamięć pobiera bity danych i umieszcza je w słowie o podanym adresie.
Jeżeli jest to sygnał ‘out‘ działania są następujące:
- obwody elektroniczne wprowadzają binarny adres na linię adresową,
- aktywują wejście ‘read’
- pamięć pobiera bity danych z słowa o podanym adresie i wprowadza je na linię wyjścia.
Zawartość komórki, z której zostały pobrane dane nie zmienia się, to znaczy operacja odczytu nie jest destruktywna.
Pamięć aktywna |
Read/ write |
Operacja
|
0 |
- |
- |
1 |
0 |
Write |
1 |
1 |
Read |
Tablica wartości modułu sterującego pamięci
Zmienna ‘pamięć dostępna’ jest konieczna gdy pamięć RAM komputera jest zbiorem wielu kości (chipów), wartość zmiennej = 1 pozwala na dostęp do jednej wybranej kości, inne pozostają nieaktywne.
Kodowanie i multipleksowanie sygnałów komunikacyjnych
Jakakolwiek współpraca z komórkami pamięci wymaga łączności elektrycznej z każdą z nich. Doprowadzenie oddzielnych przewodów do każdej komórki byłoby nieekonomiczne a nawet niemożliwe technicznie. Duża pojemność pamięci DRAM (a zatem duża liczba komórek pamięci) w zasadzie wymaga wielościeżkowych linii adresowych a każda z nich kończy się pinem (nóżką) lub stykiem na kości pamięci. Tymczasem na obecnie stosowanym module (karcie) pamięci (Dual In-lineMemoryModule)jest miejsce na nieco ponad200 styków. Ponadto magistrale adresowe o liczbie ścieżek równej liczbie komórek lub nawet słów w pamięciach zajmowałyby zbyt dużo miejsca. Jedyny praktycznie realny system łączności wymaga zastosowania kodowanie i/lub multipleksowanie (przesyłanie jedną ścieżką wielu sygnałów) sygnałów adresowych oraz sygnałów read/write na liniach CPU pamięć RAM. Jednak wtedy niezbędnym składnikiem kości pamięci są układy dekodujące sygnały z linii adresowych. W użyciu są systemy adresujące do całych słów jak i systemy adresujące oddzielnie do każdego bitu słowa. Tutaj poprzestaniemy na tym drugim rozwiązaniu.
Kodowanie
System kodowania nie może być zbytnio skomplikowany, jest to możliwe wtedy gdy kości mają pojemności 2k słów. Wówczas każdej komórce o pojemności jednego słowa można przypisać adres (numer identyfikacyjny), który w postaci binarnej jest ciągiem k zer i jedynek. Takich ciągów jest dokładnie 2k. Wystarczy więc aby magistrala adresowa posiadała k (a nie 2k ) linii adresowych. Procesor dokonuje wyboru konkretnej komórki wewnątrz pamięci wprowadzając k-bitowy adres do linii adresowych. Wewnętrzny dekoder pamięci przyjmuje adres i otwiera ścieżkę do wybranej komórki. Pojedyncza kość pamięci może mieć objętość od 1K(ilo) (210) do wielu G(iga) (232) bajtów. Na przykład jednostka pamięci o pojemności 1K słów o długości 8 bitów każde, ma pojemność 210= 1024 bajtów.
adres binarny |
adres dziesiętny |
zawartość słowa (przykłady) |
0000000000 |
0 |
101101011 |
0000000001 |
1 |
10101011 |
0000000010 |
2 |
00001101 |
|
. |
. |
|
. |
. |
1111111101 |
1021 |
10011101 |
1111111110 |
1022 |
00001101 |
1111111111 |
1023 |
11011110 |
Przykład adresów i zawartości sześciu spośród 210 słów pamięci (k = 10)
Dwie pierwsze kolumny podają adresy kolejnych słów w postaci binarnej i dziesiętnej, każde słowo ma długość 8 bitów. Słowo pamięci jest w całości zajęte nawet wtedy gdy informacja zajmuje mniej bitów niż długość słowa. Ilość bitów zajęta przez pojedynczy adres zależy od pojemności pamięci.
Multipleksowanie
Jeżeli komórki pamięci tworzą w kości strukturę dwuwymiarową to adres komórki musi być zadany dwoma liczbami; numerem wiersza i numerem komórki. W celu przesłania obydwu liczb jedną i tą samą linią adresową, dokonuje się podziału przedziału czasu przeznaczonego na transfer adresu na dwie części (multipleksowanie w czasie). W pierwszej części przesyłany jest numer wiersza komórki pamięci, a w drugiej numer kolumny.
Również sygnały read i write są multipleksowane i przesyłane jedną linią. Wysoka wartość sygnału interpretowana jako 1 otwiera ścieżkę od przerzutnika do wyjścia umożliwiając odczytanie bitu. Niska wartość sygnału interpretowana jako 0 otwiera ścieżkę od wejścia do przerzutnika umożliwiając zapisanie bitu.
Najmniejszym elementem chipu pamięci jest komórka zdolna zapamiętać jeden bit, prowadzą do niej trzy linie wejścia i jedna linia wyjścia.
Symbol graficzny 1-bitowej komórki pamięci
Zbiór komórek odpowiednio połączonych uzupełniony o dekoder adresów tworzy użyteczną jednostkę pamięci RAM. Poniżej znajduje się schemat logiczny miniaturowej jednostki tego typu mogącej zapamiętać cztery 4-bitowe słowa. Pamięć o pojemności czterech słów wymaga dwóch linii adresowych i dekodera 2×4.
Schemat logiczny jednostki pamięci o pojemności czterech słów cztero-bitowych
Objaśnienie rysunku: Sygnały zawierające zakodowany adres komórki są (na karcie pamięci) dekodowane przed wysłaniem ich do komórek pamięci. Dekoder jest jedną lub wieloma dwuwymiarowymi sieciami. Kwadraty oznaczone BC (binary cell) reprezentują komórki pamięci o pojemności 1 bit. Dwa wejścia do komórki spośród trzech przyjmują sygnały z dekodera wybierające jedną czwórkę bitów przechowującą jedno słowo, trzecie wejście przyjmuje wartość jednego bitu tego słowa. Wejście EN (‘enable’, przeciwieństwem jest ‘disable’) steruje aktywnością pamięci, jeżeli na wejściu jest 0 to ani zapis ani odczyt nie jest możliwy, jeżeli EN = 1 to wybrane zostaje jedno z czterech słów pamięci. Wówczas na wejście Read/Write przychodzi sygnał wskazujący, która z tych operacji ma być wykonana. Jeżeli jest to operacja read wtedy cztery bity wybranego słowa są wysyłane przez bramki OR do zewnętrznego terminala. Natomiast na sygnał ‘write’ dane z linii wejścia zostają przesłane do czterech jednobitowych komórek wybranego słowa. Pozostałe komórki pozostają nieczynne i ich zawartość nie ulega zmianie. Jeżeli EN = 0 żadne słowo nie zostaje wybrane, a zawartość wszystkich komórek pozostaje bez zmiany.
Dostępne na rynku pamięci DRAM mają pojemność setek tysięcy 64 bitowych słów. Poniższy rysunek pokazuje strukturę dekodera adresów na przykładzie pamięci o pojemności 64k 8- bitowych słów. Linie adresowania są pojedyncze, sygnał przychodzący na RAS (row address strobe) uaktywnia (zmienia swój stan z 1 na 0) 8-mio bitowy rejestr wierszy, podobnie CAS (column address strobe) uaktywnia 8-mio bitowy rejestr kolumn. 16-to bitowy adres jest wprowadzany do pamięci w dwóch etapach, wpierw adres wierszy (idzie do rejestru wierszy) potem adres kolumn (trafia do rejestru kolumn). Kiedy obydwa adresy są już w rejestrach pełny adres jest dekodowany co pozwala na wykonanie operacji ‘read’ lub ‘write’ na właściwej komórce.