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