Plan wykład Architektra systeów kopterowych Paięć główna, paięć cache Cezary Bolek Katedra Inforatyki Szybkość paięci Paięć główna SRAM DRAM Paięć podręczna Zasady lokalności Mapowanie bloków paięci apowanie bezpośrednie apowanie skojarzeniowe pełne apowanie sekcyjno-skojarzeniowe Architektra systeów kopterowych Cezary Bolek 2 Technologia Static RAM (SRAM) Ułaki nanoseknd $2 $5 za GB Dynaic RAM (DRAM) 5ns 7ns $2 $75 za GB Dyski agnetyczne 5s 2s $.2 $2 za GB RAM Rando Access Meory Macierz koórek paięciowych Paięć lotna Przechowje dane tak dłgo, jak jest zasilana Dostęp swobodny - Rando Access RAM n CS R/W Czas dostęp praktycznie taki sa do kaŝdej koórki paięci Sygnał sterjący Chip Select (CS) Wybór aktywnego kład Sygnał sterjący Read/Write (R/W) Operacja Odczyt/Zapis Układ RAM 2 n RAM: n-bitowy adres i -bitowe dane Architektra systeów kopterowych Cezary Bolek 3 Architektra systeów kopterowych Cezary Bolek 4
Przykładowa strktra paięci RAM Dekoder wiersza Wybór wiersza do odczyt/zapis Dekoder kolny Wybór kolny do odczyt/zapis Macierz koórek paięci 2D array of tiny eory cells Wzacniacze odczyt/zapis Wzacnianie sygnałów danych Sterowanie/wzacnianie danych wejściowych Te sae linie sygnałowe dla wej. i wyj. Row address Row Decoder R / W 24 24 Cell Matri Sense/write aplifiers Coln Decoder Coln address Koórka paięci statycznej - SRAM Static RAM (SRAM) szybka lecz droga Stosowana najczęściej jako paięć cache Krótki czas dostęp 6 tranzystorów MOS (znikoy prąd w stanie statyczny) Realizacja Dwa inwertery Dwa tranzystory sterjące wybór koórki do odczyt/zapis Dekoder wiersza wybiera linie wiersza (word line) bit Word line Vcc Typowa koórka SRAM bit Architektra systeów kopterowych Cezary Bolek 5 Architektra systeów kopterowych Cezary Bolek 6 Koórka paięci dynaicznej - DRAM Dynaic RAM (DRAM): wolna ale tania, dŝa gęstość pakowania koórek Stosowana najczęściej jako główna paięć operacyjna Realizacja: Kondensator (typ trench) Tranzystor sterjący Bit przechowywany jako ładnek w kondensatorze Paięć si być okresowo odświeŝana Z wagi na wyciek ładnk z pojeności OdświeŜanie Odczyt kaŝdego wiersza i ponowny zapis w cel odświeŝenia stan ładnk pojeności bit Word line Pass Transistor Capacitor Typowa koórka DRAM Cykl odświeŝania paięci DRAM Okres cykl odświeŝania dziesiętne części ilisekndy OdświeŜanie si być odniesione do całej paięci KaŜdy wiersz paięci jest czytany i zapisywany ponownie w cel odzyskania stan ładnk Cykle odświeŝania wpływają na szybkość paięci Napięcie pozio Napięcie progowe Napięcie pozio przech. zapisana odświeŝenie odświeŝenie odświeŝenie Cykl odświeŝania Czas Architektra systeów kopterowych Cezary Bolek 7 Architektra systeów kopterowych Cezary Bolek 8
Spadek wydajności spowodowana odświeŝanie Przykład: Układ DRAM 256 Mb Organizacja wewnętrzna: acierz 6K 6K koórek Wiersze szą być odświeŝane przynajniej co 5 s OdświeŜenie wiersza trwa ns Jaki jest dział cykli odświeŝania w ogólny czasie pracy? Rozwiązanie: OdświeŜenie wszystkich 6K wierszy trwa: 6 24 ns =.64 s Strata.64 s na kaŝde 5 s Spadek wydajności =.64 / 5 = 3.3% Architektra systeów kopterowych Cezary Bolek 9 Trend przy prodkcji paięci DRAM Do 996 pojeność paięci zwiększana czterokrotnie co 3 lata Od 996 podwajana co 2 lata Rok 98 983 985 989 992 996 998 2 22 24 Pojeność 64 Kbit 256 Kbit Mbit 4 Mbit 6 Mbit 64 Mbit 28 Mbit 256 Mbit 52 Mbit 24 Mbit Koszt MB $5. $5. $2. $5. $5. $. $4. $. $.25 $. Łączny czas dostęp do nowego wiersza 25 ns 85 ns 35 ns ns 9 ns 6 ns 6 ns 55 ns 5 ns 45 ns Czas dostęp do kolny w dany wiersz 5 ns ns 4 ns 4 ns 3 ns 2 ns ns 7 ns 5 ns 3 ns Architektra systeów kopterowych Cezary Bolek Poszerzanie szyny danych Układy paięci ają z regły wąskie szyny danych Poszerzenie szerokości szyny danych (p-krotne) Zastosowanie p kładów RAM i podanie tych saych sygnałów na agistralę adresową Zastosowanie tych saych sygnałów sterjących dla CS oraz R/W Zwielokrotnienie roziary paięci 2 k krotnie Zastosowanie dekodera k na 2 k wybierającego jeden z 2 k kładów Młodsze n bitów podawane na wejścia adresowe wszystkich kład. Starsze k bitów dekodowane w cel wybrania (CS) jednego z kład. n+k n k k to 2 k decoder Wspólne szyny danych kładów Tylko wybrany (CS) czyta/zapisje dane CS R/W CS R/W.. Szerokość szyny danych = p bitów CS R/W CS R/W CS R/W CS width = bits R/W Architektra systeów kopterowych Cezary Bolek Architektra systeów kopterowych Cezary Bolek 2
Lka wydajności procesor-paięć Perforance 98 98 Prawo Moore a 98 Brak paięci cache w procesorach CPU: 55% na rok 982 983 984 985 986 987 988 989 99 99 992 993 994 995 996 997 998 999 2 Lka wydajności procesor-paięć: (rośnie 5% co rok) DRAM: 7% na rok 995 Dwpozioowa paięć cache w procesorach Potrzeba stosowania paięci podręcznej (Cache) Rosnąca lka wydajności iędzy procesore a paięcią Czas realizacji instrkcji przez procesor poniŝej ns Paięć główna potrzebje ponad 5 ns w cel odczytania danych KaŜda instrkcja procesora przynajniej raz odwołje się do paięci Pobranie kod instrkcji z paięci Odczyt, zapis danych na których operje progra Ograniczona szybkość paięci zniejsza wydajność pracy procesora Paięć podręczna pozwala wypełnić lkę wydajności procesor-paięć główna Paięć podręczna jest ałą lecz bardzo szybka Architektra systeów kopterowych Cezary Bolek 3 Architektra systeów kopterowych Cezary Bolek 4 Typowa hierarchia paięci Zasady lokalności dostęp do danych Rejestry Typowy roziar < KB Czas dostęp <,5 ns Cache pozio (8 64 KB) Czas dostęp:,5 ns Cache pozio 2 (52KB 8MB) Czas dostęp: 2 ns Paięć główna ( 4 GB) Czas dostęp: 5 7 ns Paięć asowa (> 2 GB) Czas dostęp: ilisekndy Szybsze Procesor Rejestry L Cache L2 Cache Szyna danych Meory Magistrala I/O Większe Progray odwołją się do niewielkiej części przestrzeni adresowej W danej chwili tylko niewielka porcja instrkcji i danych jest wykorzystywana Zasada lokalności w czasie JeŜeli realizowany był dostęp do określonych instrkcji lb danych, to wkrótce nastąpi to ponownie W pętli, te sae instrkcje odczytywane są wielokrotnie podczas kaŝdej iteracji Instrkcje naleŝące do podprograów są najczęściej odczytywane wielokrotnie Zasada lokalności w przestrzeni jeśli jakaś instrkcja lb dana była raz odczytana, to inne instrkcje lb dane blisko niej będą równieŝ odczytane Sekwencyjne odczytywanie instrkcji Dostęp do danych tablicowych (trawersowanie) HDD, etc Architektra systeów kopterowych Cezary Bolek 5 Architektra systeów kopterowych Cezary Bolek 6
Czy jest paięć cache? Paięć podręczna na ścieŝce danych Szybka paięć (krótki czas dostęp) wykonana najczęściej w technologii SRAM Przechowjąca podzbiór wykonywanych instrkcji oraz analizowanych danych, pierwotnie ieszczonych w paięci głównej (operacyjnej) Stosowana w cel redkcji czas dostęp do paięci Cache korzysta z zasady lokalności w czasie... Przechowjąc ostatnio odczytane dane blisko procesora Cache korzysta z zasady lokalności w przestrzeni... Odczytjąc przyległe do siebie instrkcje i dane Cele jest: Zwiększenie wydajności dostęp do instrkcji i danych WywaŜenie stosnk koszt-szybkości podsyste paięci PCSrc Control PC Inc Instrction Cache Instrction NPC Instrction Rs Rt Rd I26 Net PC Register File I6 B A I6 Rw Paięć główna Et A L U Rw ALU reslt B ALU reslt Cache _in Interfejs iędzy CPU i paięcią Write Rw Architektra systeów kopterowych Cezary Bolek 7 Architektra systeów kopterowych Cezary Bolek 8 Prawie wszystko jest paięcią podręczną W architektrze syste kopterowego prawie wszystkie podsystey korzystają z koncepcji paięci podręcznej! Rejestry: cache dla ziennych zarządzane prograowo Cache pozio : cache dla cache pozio 2 Cache pozio 2: cache dla paięci głównej Paięć główna: cache dla paięci asowej Przechowywanie prograów i danych, z których korzystają Paięć asowa oŝe być traktowany jako rozszerzenie paięci głównej Aspekty realizacji paięci cache Mapowanie blok paięci Kojarzenie bezpośrednie, apowanie bezpośrednie - direct apped Kojarzenie dowolne, apowanie skojarzeniowe pełne - fll associative Kojarzenie zestawai/kanałai, apowanie sekcyjno-skojarzeniowe - set associative Identyfikacja blok paięci blok Indeks Strategia wyiany bloków paięci Zastępowanie Najdawniej Ŝywany LRU (Least Recently Used) Najrzadziej Ŝywany (Least Freqently Used) Kolejka FIFO Strategie zapis Zapis przeźroczysty - write-throgh Zapis zwrotny - write-back Architektra systeów kopterowych Cezary Bolek 9 Architektra systeów kopterowych Cezary Bolek 2
Mapowanie bezpośrednie blok paięci Blok paięci: zestaw koórek paięci przesyłanych poiędzy paięcią główną a paięcią cache Bezpośrednio apowana paięć podręczna Dany blok oŝe znajdować się tylko w jedny iejsc w cache Dla danego przykład: Indeks paięci cache = najłodsze 3 bity adres paięci głównej i i bity aktalności Skąd wiadoo, który blok paięci jest przechowywany w dany wiersz cache? Inforacja o adresie zapisywana jest raze z danyi Wystarczą tylko bardziej znaczące bity określane iane znacznika (tag) JeŜeli w dany wiersz nie a danych, nie odpowiadają adresowi lb są nieaktalne Paięć główna Bit aktalności validity bit: = są, = nie a są odczytywane/zapisywane z/do paięci głównej i paięci cache Architektra systeów kopterowych Cezary Bolek 2 Architektra systeów kopterowych Cezary Bolek 22 Mapowanie bezpośrednie przykład /6 Mapowanie bezpośrednie przykład 2/6 8 wierszy paięci cache, blok = słowo Stan początkowy 22 (binarnie) Trafienie? Nie Blok cache Me[ ] Architektra systeów kopterowych Cezary Bolek 23 Architektra systeów kopterowych Cezary Bolek 24
Mapowanie bezpośrednie przykład 3/6 Mapowanie bezpośrednie przykład 4/6 26 (binarnie) Trafienie? Nie Blok cache 22 26 (binarnie) Trafienie? Tak Tak Blok cache Me[ ] Me[ ] Me[ ] Me[ ] Architektra systeów kopterowych Cezary Bolek 25 Architektra systeów kopterowych Cezary Bolek 26 Mapowanie bezpośrednie przykład 5/6 Mapowanie bezpośrednie przykład 6/6 6 3 6 (binarnie) Trafienie? Nie Nie Tak Blok cache 8 (binarnie) Trafienie? Nie Blok cache Me[ ] Me[ ] Me[ ] Me[ ] Me[ ] Me[ ] Me[ ] Me[ ] Architektra systeów kopterowych Cezary Bolek 27 Architektra systeów kopterowych Cezary Bolek 28
Bezpośrednio apowana paięć podręczna Bezpośrednio apowana paięć podręczna w paięci dzielony jest na: blok: identyfikacja blok w paięci Offset blok: identyfikacja bajtów w blok blok jest dalej dzielony na: Indeks: ner wiersza cache, bezp. dostęp : najbardziej znaczące bity adres blok w paięci Indeks = blok od Liczba wierszy (blok.) cache (tag) si być takŝe zapisany w paięci cache W cel identyfikacji blok W cache si być takŝe zapisany bit aktalności (valid bit) By oznaczyć aktalność danych paięci blok Tag Indeks offset V Tag blok = Trafienie Trafienie odczyt cache: blok znajdje się w paięci cache Indeks adresje blok (wiersz) w paięci cache adres porównywany jest ze znacznikie w cache Gdy tagi równe, blok jest aktalny trafienie (hit) W przeciwny przypadk: chybienie (iss) Gdy liczba wierszy (bloków) cache równa 2 n n bitów Ŝywanych do indeksowania cache Gdy liczba bajtów w blok równa 2 b b bitów Ŝywanych do wyznaczenia przesnięcia w blok (offset) Dla 32 bitowej szyny adresowej 32 n b bitów Ŝywanych na znacznik (tag) Roziar paięci cache = 2 n+b bajtów paięci blok Tag Indeks offset V Tag blok = Trafienie Architektra systeów kopterowych Cezary Bolek 29 Architektra systeów kopterowych Cezary Bolek 3 Mapowanie adres w blokach cache Przykład Bezpośrednio apowana paięć podręczna z 256 blokai Roziar blok = 6 bajtów Wyznaczyć tag, indeks oraz offset dla adres: FFF8AC Rozwiązanie 32-bitowy adres dzieli się na: 4-bitowe pole przesnięcia bajt (byte offset), gdyŝ roziar blok = 2 4 = 6 bajtów 8-bitowy indeks cache, gdyŝ istnieje 2 8 = 256 bloków (linii) w cache 2-bitowe pole znacznika (tag) Offset = C = 2 (4 najniej znaczące bity adres) Indeks cache = 8A = 38 (kolejne 8 łodszych bitów adres) Tag Tag = FFF (starsze 2 bitów adres) blok 2 8 4 Indeks offset Trafienia i chybienia w cache przykład Niewielka bezpośrednio apowana paięć podręczna złoŝona z 32 bloków Cache jest początkowo psta, roziar blok = 6 bajtów Następjące adresy paięci są odczytywane:, 4, 8, 2548, 2552, 2556 (dziesiętnie). Dokonać apowania bloków cache i określić czy nastąpiło trafienie bądź chybienie Rozwiązanie: 23 Tag 5 Indeks offset = 3E8 indeks cache = E Chybienie (pierwszy dostęp) 4 = 3EC indeks cache = E Trafienie 8 = 3F indeks cache = F Chybienie (pierwszy dostęp) 2548 = 9F4 indeks cache = F Chybienie (róŝne tagi) 2552 = 9F8 indeks cache = F Trafienie 2556 = 9FC indeks cache = F Trafienie 4 Architektra systeów kopterowych Cezary Bolek 3 Architektra systeów kopterowych Cezary Bolek 32
Przykład procesora: Intrinsity FastMATH Procesor MIPS do rządzeń wbdowanych Dzielony cache: I-cache (rozkazów) and D-cache (danych) kaŝdy 6KB: 256 wierszy po 6 słów Mapowanie skojarzeniowe pełne Blok oŝe być ieszczony w dowolny iejsc paięci cache brak indeksowania Dla bloków: Potrzeba zastosować koparatorów porównjących znaczniki Roziar danych paięci cache = 2 b bajtów Tag offset V Tag Blok danych V Tag Blok danych V Tag Blok danych V Tag Blok danych = = = = Paięć podręczna z pełny apowanie skojarzeniowy Flly Associative Cache Trafienie Architektra systeów kopterowych Cezary Bolek 33 Architektra systeów kopterowych Cezary Bolek 34 Mapowanie sekcyjno-skojarzeniowe Mapowanie sekcyjno-skojarzeniowe scheat Sekcja jest grpą bloków, które ogą być indeksowane Tag Inde offset Blok apowany jest najpierw do sekcji Indeks sekcji = blok od Liczba sekcji w cache Dla bloków w sekcji (-droŝne odwzorowanie): znaczników (tagów) jest sprawdzanych przez koparatorów Dla 2 n sekcji indeks sekcji składa się z n bitów Roziar danych cache = 2 n+b bajtów (z 2 b bajtai na blok) Nie licząc znaczników (tagów) i bitów waŝności (validity bit) Cache apowany bezpośrednio posiada jeden blok na kaŝdą sekcję ( = ) Paięć pełna skojarzeniowa posiada tylko jedną sekcję (2 n = czyli n = ) V Tag Blok danych V Tag Blok danych V Tag Blok danych V Tag Blok danych = = = = -droŝne odwzorowanie Trafienie Sekcja Architektra systeów kopterowych Cezary Bolek 35 Architektra systeów kopterowych Cezary Bolek 36
Liczba bloków na sekcję przykład Paięć cache z 8-ioa blokai JednodroŜna paięć sekcyjno-skojarzeniowa (apowana bezpośrednio) CzterodroŜna paięć sekcyjno-skojarzeniowa DwdroŜna paięć sekcyjno-skojarzeniowa OśiodroŜna paięć sekcyjno-skojarzeniowa (pełne apowanie skojarzeniowe) Ile bloków na sekcję? Zwiększenie liczby wierszy w sekcji zniejsza liczbę chybień Ale niezbyt iponjąco Sylacja syste z 64KB paięcią D-cache,6-słowowe bloki, SPEC2 -droŝna:,3% (apowanie bezpośrednie) 2-droŜna: 8,6% 4-droŜna: 8,3% 8-droŜna: 8,% Architektra systeów kopterowych Cezary Bolek 37 Architektra systeów kopterowych Cezary Bolek 38 Mapowanie sekcyjno-skojarzeniowe przykład Koniec Architektra systeów kopterowych Cezary Bolek 39 Architektra systeów kopterowych Cezary Bolek 4