Wykład jest przygotowany dla IV semestru kierunku Elektronika i Telekomunikacja. Studia I stopnia Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna dydaktyka bez ograniczeń zintegrowany rozwój Politechniki Łódzkiej zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Zadanie nr 30 Dostosowanie kierunku Elektronika i Telekomunikacja do potrzeb rynku pracy i gospodarki opartej na wiedzy 90-924 Łódź, ul. Żeromskiego 116, tel. 042 631 28 83 www.kapitalludzki.p.lodz.pl
Pamięć i przechowywanie Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Kilka przerzutników tworzy rejestr; funkcjonalnie pamięć jest zestawem rejestrów, gdzie przechowywane są dane i instrukcje Najszybszy dostęp jest do pamięci głównej (primary memory) gdzie musi znaleźć się zestaw wykonywanych instrukcji, tańsza i wolniejsza może być pamięć wtórna (secondary memory) Ze względu na dostęp do informacji pamięci dzielimy na: RAM (random-access memory) pamięć swobodnego dostępu RWM (read/write memory) pamięć do odczytu i zapisu ROM (read only memory) pamięć tylko do odczytu [zaliczana przez niektórych autorów do RAM, jako, że jest swobodny dostęp do odczytu dowolnego rejestru] CAM (content-addressable memory) lub AM (associative memory) DAM (direct access memory)
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Pamięć swobodnego dostępu W pamięci typu RAM można w sposób losowy podać adres dowolnej lokalizacji i funkcje zapisu i odczytu do/z takiej lokalizacji będą przebiegały jednakowo i zabierały tyle samo czasu RWM każdy rejestr pamięci, lub każda lokalizacja, posiada adres z nim związany. Dostęp do danej lokalizacji, czyli wejście danych (zapis) oraz wyjście (odczyt) następuje poprzez adres. Adres ten umieszcza się w MAR (Memory Address Register). Transfer do i z pamięci odbywa się zestawem bitów słowem pamięci. Jeżeli MAR jest n-bitowy, czyli umożliwia zaadresowanie 2 n lokalizacji (każda mieści słowo) a słowo jest m-bitowe, pojemność pamięci wynosi (2 n x m) bitów Ilość dostępnej pamięci podaje się zawsze w formacie N X M czyli N słów zawierających M jednostek. Jednostka może być: bitem, bajtem (8 bitów) lub słowem
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Schemat blokowy pamięci RWM
RWM ciąg dalszy Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego MBR (memory buffer register) rejestr bufora pamięci. Tam przechowuje się dane, które zostaną zapisane do pamięci, lub zostały odczytane Procedura odczytu: Do MAR dostarczony zostaje adres, sygnał sterujący READ ustawiony na 1, zawartość zaadresowanego słowa zostaje skopiowana do MBR. ZAWARTOŚĆ PAMIĘCI POZOSTAJE NIEZMIENIONA Procedura zapisu: Do MBR zostaje dostarczone słowo, do MAR adres, sygnał sterujący WRITE zostaje ustawiony na 1. Zawartość MBR zostaje przeniesiona do zaadresowanej lokalizacji pamięci. PAMIĘĆ ZOSTAJE ZMIENIONA
Długość słowa Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Typowe długości słowa: 6, 16, 32, 36, 64 bity Zwłaszcza przy długich słowach nie zawsze mogłyby być one w pełni wykorzystane; istnieje więc możliwość adresowania półsłowa lub ćwierć-słowa najczęściej bajtu. Takie pamięci nazywają się: byte-addressable. ROM pamięć ROM możemy logicznie rozpatrywać jak RWM, gdzie nie ma sygnału WRITE. Zawartość pamięci zostaje wpisana ( wypalona ) raz, u producenta, lub wiele razy ale w specyficznych, niestandardowych warunkach
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego CAM pamięć adresowana zawartością W tej koncepcji nie istnieje wyraźny adres, a logika poszukuje lokalizacji zawierających szczególny, wyspecyfikowany wzór. Dane zostały wpierw wprowadzone do pamięci hardware pamięci poszukuje zgodności z zadanym wzorem albo identyfikuje taką lokalizację (pierwszą, lub wszystkie), albo daje sygnał NO MATCH Zadany wzór powstaje z maskowania rejestru danych (gdzie zostało wprowadzone pełne słowo) rejestrem maski (wskazującym obszar słowa, który będzie stanowił wzór). Wynik znajduje się w rejestrze wyboru słowa Jeżeli wyszukiwane są wszystkie zgodne słowa, zostaje zastosowany układ MMR multiple-match resolver UWAGA hardware poszukuje zgodności z wieloma bitami jednocześnie MUSI BYĆ ZAPEWNIONY OBWÓD RÓWNOLEGŁEGO ODCZYTYWANIA I PORÓWNYWANIA
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Pamięć o dostępie sekwencyjnym (SAM) Przykład: rejestr przesuwny z szeregowym wejściem i wyjściem PRZESUWANIE W PRAWO daje logiczne FIFO (first in, first out) SHIFT RIGHT INPUT OUTPUT Nie ma adresów, dane są sekwencyjnie zapisywane i odczytywane. Pamięć o dostępie sekwencyjnym, z algorytmem FIFO, nazywana jest KOLEJKĄ (queue) Na podobnej zasadzie działa pamięć szeregowa np. taśma w kasecie trzeba przewinąć wszystkie pozycje pomiędzy, aby przejść między pozycjami na początku i końcu taśmy
SAM LIFO Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego PRZESUWANIE W PRAWO przy zapisie oraz W LEWO przy odczycie; odczyt i zapis z jednej strony; LIFO last in/first out odczytuje się najświeższy zapis STOS Logiczne sygnały: PUSH (przy zapisie, wpychaj przesuwanie w prawo); POP (przy odczycie, pobierz przesuwanie w lewo) INPUT PUSH OUTPUT POP
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego DAM pamięć o dostępie bezpośrednim Przykład: dysk (magnetyczny, optyczny) Przetwornik (głowica, laser ) ustawiany jest w dowolnej wyznaczonej pozycji. Od tego miejsca dane są pobierane w sposób sekwencyjny Inna nazwa semi-ram, pamięć równoległa (w odróżnieniu od szeregowej)
Pamięć DAM Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Parametry systemów pamięci Pojemność maksymalna ilość jednostek (bitów, bajtów, słów) danych, które mogą być przechowywane (ilość adresów x zawartość pojedynczej lokalizacji) Czas dostępu ile czasu musi minąć, aby uzyskać dostęp do danych od momentu ustawienia adresu (w RAM dostęp oznacza, że dane pojawią się w MBR) W pamięciach DAM czas dostępu jest funkcją pozycji głowicy (gdzie była wcześniej i gdzie musi przejść teraz) Czas cyklu jest miarą jak często można uzyskać dostęp do pamięci; w pamięciach wymagających ponownego zapisu (odświeżania) danych po odczycie, jest większy niż czas dostępu Szybkość transferu danych [bps] ile bitów na sekundę może zostać odczytanych
Inne parametry Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Koszt iloczyn pojemności i ceny, podzielony na ilość bitów Tolerancja błędów (dopuszczalna ilość błędów w %) Odporność na promieniowanie (w różnych zakresach częstotliwości EM) Kompresja danych Wielkość i waga Zużycie mocy (w odniesieniu do bitu) Rodzaj i konieczność zasilania (pamięć ulotna i nieulotna)
Hierarchia pamięci Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Pamięć główna (primary memory) w systemie komputerowym zawsze jest typu RAM (najszybsza) Program i potrzebne dane w momencie gdy potrzebuje ich procesor, powinny być w pamięci głównej Pozostałe dane i nieużywane bloki instrukcji mogą być pamięci wtórnej (secondary memory), najczęściej typu DAM Obie pamięci organizowane są w schemat pamięci wirtualnej z punktu widzenia użytkownika - cała pamięć jest dostępna do programowania. OS (system operacyjny) kieruje przesyłaniem odpowiednich bloków do i z pamięci głównej do wtórnej Nawet pamięć główna (połączona magistralą) jest zbyt wolna dla procesora; dlatego wykorzystywana jest pamięć podręczna (CACHE) równolegle zaopatrywana z pamięci głównej; jeszcze szybsze są rejestry procesora
Poziomy hierarchii pamięci Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 1. Rejestry CPU 2. Cache pamięć podręczna (jest to RAM z szybszymi, równoległymi połączeniami) 3. Pamięć główna (procesor pobiera programy i dane poprzez cache) 4. Pamięć wtórna, masowa, najczęściej typu DAM i SAM Jeżeli koszt pamięci poziomu i oznaczymy jako: C i a pojemność tego poziomu przez S i, to średni koszt systemu pamięci: C a n i= 1 = n i= 1 C S i S i i Aby średni koszt był najbliższy pamięci najtańszej (n), a najczęściej C i >>C i+1 dąży się do warunku S i <<<S i+1
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Inne akronimy dotyczące pamięci CDROM (compact disk ROM) WORM (write-once-read-many-times) SRAM (static RAM) nie wymagają odświeżania po odczycie DRAM (dynamic RAM) odczyt jest rozładowaniem pojemności zapis musi zostać ponownie dokonany (odświeżanie) MC (memory cell); DMC (dynamic MC) komórka pamięci iram (integrated RAM) obecnie najczęściej dynamiczne i nieulotne PROM (programmable ROM) EPROM (erasable PROM) kasowanie najczęściej światłem ultrafioletowym EAROM (electrically alterable ROM)
Inne akronimy Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego AMC (associative memory cell); [associative = content-addressable] DVD (Digital Video Disk) HD DVD (High Density DVD) RAID (Redundant Array of Independent Disks) wykorzystywane, gdy tolerancja błędów = 0; wszystkie operacje są wykonywane symultanicznie na więcej niż jednym urządzeniu; każdy dysk posiada niezależne urządzenie sterujące SLED (single large expensive disk) RAID level 0 : oznacza 0 dysków zapasowych (czyli zapisuje się tylko w jednej lokalizacji) RAID level 1 : zapisuje się wszystko na 2 dyskach symultanicznie (1 jest zapasowy lustrzany mirror)
RAID Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego RAID level 0+1 (HDTP: high data-transfer performance): zapisuje się tylko na 1 dysku (szybszym) a później dokonuje zapisu na dysku lustrzanym RAID level 2 (kod Hamminga) mapowanie dysku (fizyczna lokalizacja obu dysków jest identyczna; możliwe wykrycie błędów parzystości, odzyskiwanie zawartości; proces powolny RAID level 3 (PTP parallel transfer with parity) oprócz lustrzanego kopiowania stosuje się zapis informacji o parzystości (wąskie gardło przy jej obliczaniu, ale zajmuje mniej miejsca, chociaż potrzeba 3 dysków) RAID level 4 (with Shared Parity) (jak level 0, tylko z obliczaniem parzystości) dane zapisywane są w blokach równej wielkości (taśma), po którym następuje taśma (strip) z zapisem parzystości
RAID Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego RAID level 5 (Distributed Parity Blocks) umożliwia zapis danych o różnych wielkościach (bloki nie muszą być jednakowe); po każdej taśmie następuje informacja o parzystości. Duża szybkość odczytu, średnia zapisu. Bardzo trudno jest odtworzyć zawartość takiego dysku. RAID level 6 (with Two Independent Parity Schemes) tzw. Dual parity czyli podwójne sprawdzanie parzystości czyli podwójna taśma parzystości, reszta, jak w level 5 RAID level 10 (HRHP high reliability & high performance) matryca, której segmentami są matryce RAID level 1
Zwiększenie szybkości Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Dla danej technologii pamięci czas dostępu i cyklu są zdefiniowane. Dla przyspieszenia działania pamięci w układzie konieczna jest optymalizacja dekodowania adresów i technik dostępu BANKING (ang. bank pole stykowe); adresy umieszcza się dla każdego modułu pamięci w jednym, tym samym banku, albo oddzielnych, np. dla programu i danych (szybciej, w fazie pobierania instrukcji, można pobierać dane) Przeplot (Interleaving) żądanie dostępu do następnego słowa inicjowane jest, gdy następuje dostęp do słowa bieżącego (najmniej znaczące bity podają już nr banku) Stosuje się sekwencyjne przeplatanie (kolejne odwołanie następuje poprzez kolejny fizyczny bank); istnieje wiele algorytmów
Zwiększenie szybkości Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Pamięci wieloportowe (wielo-dostepowe) (multiport memories) każdy port to MAR i MBR. Niezależny dostęp do pamięci może nastąpić poprzez dowolny port - p. Szczególnie użyteczne przy wielu urządzeniach korzystających z jednej pamięci Pobieranie szerszego słowa. Przykład: z pamięci 64 bitowej można w jednej fazie pobierania przekazać do MBR 8 bajtów żądanych przez 8 niezależnych, ustawionych adresów, albo 2 pełne słowa 32- bitowe Bufor instrukcji w schemacie FIFO gdy CPU kończy pobieranie instrukcji, następna już umieszczana jest w buforze (trudności przy skoku, używa się wtedy rozkazu FREEZE zatrzymanie wcześniejszego pobierania, lub instrukcjach wyboru - rozgałęzionych)
Zwiększenie szybkości Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Zasada regionalizacji programu (program locality principle) lokalizacje, do których w krótkim czasie będzie się odwoływał CPU powinny być zapisane w jednym obszarze (zasada wykorzystywana przede wszystkim w pamięci podręcznej ściąganie całego klastera i sprawdzenie, czy adres, do którego jest odwołanie znajduje się już w cache, tzw. cache hit ); potrzebny jest wtedy algorytm wymiany które bloki (klastery) mogą w pamięci podręcznej zostać wymienione na nowe (w przypadku: cache miss ) Mapowanie bezpośrednie (każdy adres pamięci ma swoje miejsce w danym bloku pamięci podręcznej kłopot, jeżeli kolejne odwołania są do adresów mapowanych w tym samym bloku system staje się niewydolny
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Algorytmy wymiany w pamięci podręcznej LRU (least recently used) usuwany jest blok nieużywany najdłużej; do każdego bloku musi być przypisany licznik (tzw. asking counter, lub aging counter) każde odwołanie do bloku zeruje licznik a wszystkie pozostałe liczniki zostają zwiększone o 1. W przypadku wymiany LRU usuwany jest blok, którego licznik ma wartość największą Usuwanie bloku wpisanego najdawniej FIFO, bardzo łatwy w zastosowaniu, ale niektóre bloki są wciąż zapisywane, bo wykorzystywane często a kasowane LFU (least frequently used) kasowany jest blok z najmniejszą liczbą odwołań Losowo symulacje wskazują, że przy zwiększającym się czasie pomiaru nie ma zbyt dużej różnicy w porównaniu do innych
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Operacje zapisu w pamięci podręcznej CPU może pobrać daną z pamięci cache i aktualizować ją, tzn. zmienić jej wartość w konsekwencji dane w pamięci głównej, skąd klaster zawierający daną został odczytany również musi zostać zmieniony (zasada spójności) Write back blok zaktualizowany w cache otrzymuje specjalną etykietę (tzw. brudny blok). Gdy taki dirty block ma zostać usunięty z cache, wpierw zostaje skopiowany do pamięci głównej Write through w momencie aktualizacji w pamięci podręcznej, odpowiedni blok w pamięci głównej również jest zapisywany z tą samą wartością; mechanizm zapewnia zasadę spójności (szczególnie istotne przy wielodostępie), ale nie jest efektywny (przy aktualizacji kilku danych z tego samego klastera będzie potrzebnych kilka aktualizacji bloku w pamięci głównej)
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Operacje zapisu w pamięci podręcznej Write once możliwe przy wielu procesorach i wspólnej magistrali do pamięci. Pierwszy procesor (Master) pracuje z algorytmem WRITE THROUGH czyli, gdy zmienia zawartość w swojej pamięci podręcznej, brudny blok jest natychmiast przepisywany do pamięci głównej; pozostałe procesory, jeżeli mają w swoich pamięciach podręcznych ten blok natychmiast usuwają go i pobierają nowy, uaktualniony. Pozostałe procesory pracują z zasadą write-back i po aktualizacji brudne bloki zapisywane są do pamięci głównej przy ich wymianie Przy włączeniu zasilania zawartość pamięci podręcznej jest przypadkowa, wadliwa i nie może być wykorzystana (muszą być ustawiane bity ważności informacji przy wczytywaniu kolejnych bloków)
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Optymalizacja pamięci podręcznej Jeżeli T m jest średnim czasem dostępu do pamięci głównej a T c do pamięci podręcznej, h jest prawdopodobieństwem trafień (hit ratio), (1-h) prawdopodobieństwem nietrafienia (miss ratio), to średni czas dostępu do systemu pamięci wynosi: T a = ht c + (1 h)t m Aby uzyskać jak najkrótszy średni czas dostępu (czyli zbliżony do T c ) należy projektować i stosować algorytmy z jak największym h, co nie zawsze jest realne Inne rozwiązanie zwiększać pojemność pamięci podręcznej (Intel Pentium posiada dwa poziomy pamięci cache: pierwszy poziom w chipie i drugi na zewnątrz)
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Logiczne zwiększanie pamięci głównej Program i dane muszą znajdować się podczas wykonywania w pamięci głównej. Zwykle jej wielkość nie pozwala na to i wielka część programu i danych znajduje się w pamięci wtórnej Wirtualna pamięć: (virtual address space) cały zasób pamięci wtórnej jest dostępny dla programów i danych, chociaż procesor odwołuje się wciąż tylko do pamięci głównej. Stosowane są nakładki (overlays) Pamięć wirtualna podzielona jest na strony (jednakowej długości) lub segmenty (równoznaczne z nakładką) o niejednakowej długości, dalej mogące być podzielone na strony Mechanizm obsługi pamięci wirtualnej jest podobny do podręcznej: należy sprawdzić adres odwołania i czy dana zawartość pamięci wtórnej jest w pamięci głównej, czy należy ją tam umieścić; do wymiany stosowane jest FIFO i LRU
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Różnice przy obsłudze pamięci podręcznej i wirtualnej W pamięci podręcznej operuje się blokami o wymiarach kilku bajtów, przy pamięci wirtualnej wymieniane strony mają wielkość kilku kilobajtów (wielkość ta jest zmienna, zależnie od aplikacji i wielkości przeciętnych segmentów) Gdy w pamięci podręcznej następuje nietrafienie (miss) procesor bezczynnie czeka na wpisanie bloku z głównej pamięci; dla przyśpieszenia tego procesu, obsługiwany jest on wyłącznie sprzętowo To samo w pamięci wirtualnej jest nazywane błędem strony (page fault), traktowanym jako wywołanie przez OS procesor zostaje przełączony do innego zadania w czasie gdy strona jest przenoszona z pamięci wtórnej do głównej; obsługa tej procedury jest częściowo programowa, częściowo implementowana sprzetowo MMU (memory management unit)
Przykłady trybów MMU Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tryb płaski - Flat mode przestrzeń adresowa jest pojedyncza i ciągła dla całego programu; razem znajdują się kod, dane i stosy procedur; typowa wielkość 4 GB Tryb segmentowy Segmented mode kod programu, dane i stosy procedur są oddzielnie zarządzane przez oddzielne segmenty; procesor może zaadresować np. 16383 segmenty, każdy o pojemności 2 32 bajty (dane Intela) Tryb adresów rzeczywistych Real address mode liniowa przestrzeń adresowa dla programu i systemu operacyjnego składa się z matrycy segmentów (64 KB każdy); maksymalny wymiar liniowej przestrzeni adresowej w tym trybie 2 20 bajtów
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tryby odwołań do pamięci przez procesor Protected Real-address System management (SMRAM) Inne uwagi: - niektóre procesory w pamięci podręcznej zapisują wyłącznie programy (a nie dane)
KONIEC CZĘŚCI ÓSMEJ Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna dydaktyka bez ograniczeń zintegrowany rozwój Politechniki Łódzkiej zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Zadanie nr 30 Dostosowanie kierunku Elektronika i Telekomunikacja do potrzeb rynku pracy i gospodarki opartej na wiedzy 90-924 Łódź, ul. Żeromskiego 116, tel. 042 631 28 83 www.kapitalludzki.p.lodz.pl