Transcript Pamięć

Pamięć
Rodzaje dostępu do danych:
a) sekwencyjny, zapis dzieli się na rekordy, odczyt i zapis przy użyciu tego
samego mechanizmu
b) bezpośredni, bloki lub rekordy mają unikatowy adres wynikajacy z lokacji
fizycznej. Dostęp realizowany przez dotarcie do bezpośredniego otoczenia
a następnie odbywa się sekwencyjne poszukiwanie, liczenie lub
oczekiwanie w celu osiagnięcia lokacji docelowej.
c) Swobodny. Kazda lokacja ma unikatowy adres, czas dostepu nie zalezy
od poprzednio wykonywanych operacji.
d) Dostęp skojarzeniowy (asocjatywny): dostęp odbywa się przez porównanie
i badanie zgodności wybranych bitów wewnątrz słowa (realizowane dla
wszystkich słów jednocześnie. Podstawę wyszukwania stanowi zawartość
a nie adres (mechanizmy używane w pamieciach podrecznych)
Wydajność pamieci zalezy od:
a) Czasu dostępu (czas potrzebny do wykonania odczytu lub zapisu)
b) Czas cyklu pamięci (czas dostępu + dodatkowy czas niezbedny
np.. Do zaniku sygnałów sterujacych lub regeneracji danych
c) Szybkość przesyłania (dla dostępu swobodnego 1/czas cyklu)
Dla pamieci o dostępie nieswobodnym:
TN = Ta + N/R,
TN to średni czas odczytu lub zapisu N bitów,
Ta średni czas dostępu
N liczba bitów
R szybkość transferu (bity/s)
Zależności:
Krótszy czas dostępu – większy koszt na bit
Większa pojemność – mniejszy koszt na bit
Wieksza pojemność – większy czas dostępu
Oba typy pamięci zapomną zapis po wyłączeniu zasilania! (pamięć ulotna)
Statyczna nie wymaga odświeżania, jest szybsza
Rodzaje pamięci stałych:
ROM – zapis zawartości podczas produkcji, nie może ulec zmianie
PROM – Programmable ROM – producent lub klient może jednorazowo
wpisać zawartość (potrzebny tzw. programator)
„Pamięć głównie do odczytu” – znacznie częściej czyta się niż pisze
EPROM – optycznie wymazywalna pamięć stała (lampa kwarcowa
naświetla ukłąd wymazując zawartość
EEPROM – Elektrycznie wymazywalna pamięć stała (zwykle droższa
i mniej pojemna niż EPROM, zaleta: możliwość zmiany
zapisu wewnątrz urządzenia
FLASH – tzw. pamięć błyskawiczna, bardzo szybko wymazywana, możliwe
wymazywanie całych bloków, wada: wytrzymuje ok.. 100000
cykli zapisu i odczytu. Teoretyczna trwałość zapisu min. 10 lat
Korekcja błędów
Błędy – stałe (w produkcji lub podczas użytkowania)
przypadkowe – nieniszczące, przyczyną mogą być problemy z zasilaniem
lub radioaktywność naturalna (cząstki alfa)
Podczas wczytywania danych do pamięci wykonuje się na tych danych obliczenia
generując funkcję f tworzącą kod korekcji i zapamietuje się dane oraz kod.
Jeżeli mamy M-bitowe słowo danych i K-bitowy kod to musimy zapamietać M+K
bitów. Podczas odczytu sprawdza się czy odczytywane dane generują identyczny
kod.
Jeżeli sa rozbieżności kod pozwala odtworzyć oryginalny zapis. Kody różnią się
liczbą błędów bitowych, które mogą wykryć i poprawić.
Najprostszy kod korekcyjny zaproponował R. Hamming z Bell Labs.
M = 4 (słowo 4-bitowe), mamy siedem przedziałów. 4 bity danych
przypisujemy przedziałom wewnętrznym. Pozostałe przedziały wypełniają tzw.
„bity parzystości” – całkowita liczba jedynek w całym okręgu danego bitu
powinna być parzysta. Na rysynku c pojawil się błąd (0 zamiast 1). Mamy
sprzeczności w okręgach A i C, tylko nie w B. Tlko jeden przedział jest
wspólny w A i C i nie występuje w B. Wystarczy zmienić bit w tym przedziale z
0 na 1.
Praktyka: porównujemy dwa kody o długości K bitów wykonując na nich operację
EXOR – tworz się tzw „słowo-syndrom” o długości K bitów. Wartość liczb w tym
słowie mieści się w przedziale [0, 2K-1] i służy do znalezienia i poprawy błedu.
0 – brak błędu. Błąd może wystąpić w kazdym z M+K bitów w pamięci, więc
2K-1 >= M+K
Nierówność pozwala wyznaczyć ile bitów potrzebujemy do korekty pojedynczego
błednego bitu w słowie M-bitowym. Np. w słowie 8-bitowym
K = 3: 23-1 < 8+3
K = 4: 24-1 > 8+4, czyli potrzebujemy 4 bitów parzystości
Wygodne rozwiązanie: syndrom 4-bitowy o nastepujących właściwościach:
a) Jeżeli zawiera tylko zera – nie ma błędu
b) Jeżeli jest tylko jedna 1 – błąd wystapił w bicie parzystości, nic nie trzeba
poprawiać
c. Więcej niż jedna 1 – wartość liczbowa syndromu powinna wskazać błędny
bit, którego wartość wystarczy odwrócić
Nowe typy pamięci dynamicznych:
a) SDRAM – synchroniczna pamięć DRAM, w odróżnieniu od DRAM
wymiana danych synchronizowana przez zegar systemu – mniejsze
opóźnienia
b) RDRAM (Rambus)
c) Pamięć podreczna CDRAM (Mitsubishi) – w duzym bloku DRAM
wbudowna jest mała pamięc podręczna SRAM – pełni rolę bufora
Pamięć podręczna
Przykład: procesor ma dostęp do dwóch poziomów pamięci –
a) 1000 słów, czas dostępu 0.01 usec
b) 100000 słów, czas dostępu 0.1 usec
Jeżeli szukane słowo jest na poziomie 1 to procesor ma
dostęp bezpośredni, jeżeli na poziomie 2 to najpierw musi
być przeniesione na poziom 1. Zaniedbujemy czas potrzebny procesorowi
na stwierdzenie, na którym poziomie jest szukane słowo
H – współczynnik trafienia (część wszystkich dostępów do pamięci, które są
realizowane na poziomie 1 (H : [0,1])
T1 – czas dostepu do poziomu 1
T2 – czas dostępu do poziomu 2
Jeżeli założymy, że 95% dostępów do pamięci realizuje poziom 1 to
(0.95 * 0.01 usec)+(0.05*0.1 usec) = 0.0095 + 0.0055 = 0.015 usec
Średni czas dostępu jest dużo bliższy T1