Architektura systeów koputerowych Paięć główna, paięć cache Cezary Bolek Katedra Inforatyki Plan wykładu 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 Architektura systeów koputerowych Cezary Bolek 2
Technologia Static RAM (SRAM) Ułaki nanosekund $2 $5 za GB Dynaic RAM (DRAM) 5ns 7ns $2 $75 za GB Dyski agnetyczne 5s 2s $.2 $2 za GB Architektura systeów koputerowych Cezary Bolek 3 RAM Rando Access Meory Macierz koórek paięciowych Paięć ulotna Przechowuje dane tak długo, jak jest zasilana Dostęp swobodny - Rando Access Czas dostępu praktycznie taki sa do kaŝdej koórki paięci Sygnał sterujący Chip Select (CS) Wybór aktywnego układu Sygnał sterujący Read/Write (R/W) Operacja Odczyt/Zapis RAM n Data CS R/W Układ RAM 2 n RAM: n-bitowy adres i -bitowe dane Architektura systeów koputerowych Cezary Bolek 4
Przykładowa struktura paięci RAM Dekoder wiersza Wybór wiersza do odczytu/zapisu Dekoder koluny Wybór koluny do odczytu/zapisu Macierz koórek paięci 2D array of tiny eory cells Wzacniacze odczytu/zapisu Wzacnianie sygnałów danych Sterowanie/wzacnianie danych wejściowych Te sae linie sygnałowe dla wej. i wyj. Row address Row Decoder Data R / W... 24 24 Cell Matrix... Sense/write aplifiers... Colun Decoder Colun address Architektura systeów koputerowych Cezary Bolek 5 Koórka paięci statycznej - SRAM Static RAM (SRAM) szybka lecz droga Stosowana najczęściej jako paięć cache Krótki czas dostępu 6 tranzystorów MOS (znikoy prąd w stanie statyczny) Realizacja Dwa inwertery Dwa tranzystory sterujące wybór koórki do odczytu/zapisu Dekoder wiersza wybiera linie wiersza (word line) bit Word line Vcc bit Typowa koórka SRAM Architektura systeów koputerowych Cezary Bolek 6
Koórka paięci dynaicznej - DRAM Dynaic RAM (DRAM): wolna ale tania, duŝa gęstość upakowania koórek Stosowana najczęściej jako główna paięć operacyjna Realizacja: Kondensator (typu trench) Tranzystor sterujący Bit przechowywany jako ładunek w kondensatorze Paięć usi być okresowo odświeŝana Z uwagi na wyciek ładunku z pojeności OdświeŜanie Odczyt kaŝdego wiersza i ponowny zapis w celu odświeŝenia stanu ładunku pojeności bit Word line Pass Transistor Capacitor Typowa koórka DRAM Architektura systeów koputerowych Cezary Bolek 7 Cykl odświeŝania paięci DRAM Okres cyklu odświeŝania dziesiętne części ilisekundy OdświeŜanie usi być odniesione do całej paięci KaŜdy wiersz paięci jest czytany i zapisywany ponownie w celu odzyskania stanu ładunku Cykle odświeŝania wpływają na szybkość paięci Napięcie pozio zapisana odświeŝenie odświeŝenie odświeŝenie Napięcie progowe Napięcie pozio przech. Cykl odświeŝania Czas Architektura systeów koputerowych 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 uszą być odświeŝane przynajniej co 5 s OdświeŜenie wiersza trwa ns Jaki jest udział 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% Architektura systeów koputerowych Cezary Bolek 9 Trend przy produkcji paięci DRAM Do 996 pojeność paięci zwiększana czterokrotnie co 3 lata Od 996 podwajana co 2 lata Rok Pojeność Koszt MB Łączny czas dostępu do nowego wiersza Czas dostępu do koluny w dany wierszu 98 64 Kbit $5. 25 ns 5 ns 983 256 Kbit $5. 85 ns ns 985 Mbit $2. 35 ns 4 ns 989 4 Mbit $5. ns 4 ns 992 6 Mbit $5. 9 ns 3 ns 996 64 Mbit $. 6 ns 2 ns 998 28 Mbit $4. 6 ns ns 2 256 Mbit $. 55 ns 7 ns 22 52 Mbit $.25 5 ns 5 ns 24 24 Mbit $. 45 ns 3 ns Architektura systeów koputerowych Cezary Bolek
Poszerzanie szyny danych Układy paięci ają z reguły wąskie szyny danych Poszerzenie szerokości szyny danych (p-krotne) Zastosowanie p układów RAM i podanie tych saych sygnałów na agistralę adresową Zastosowanie tych saych sygnałów sterujących dla CS oraz R/W CS R/W CS R/W... CS R/W Data Data.. Data Szerokość szyny danych = p bitów Architektura systeów koputerowych Cezary Bolek Zwielokrotnienie roziary paięci 2 k krotnie Zastosowanie dekodera k na 2 k wybierającego jeden z 2 k układów Młodsze n bitów podawane na wejścia adresowe wszystkich układ. Starsze k bitów dekodowane w celu wybrania (CS) jednego z układ. n+k n k k to 2 k decoder... Wspólne szyny danych układów Tylko wybrany (CS) czyta/zapisuje dane CS R/W CS R/W... CS R/W Data Data Data Data width = bits Architektura systeów koputerowych Cezary Bolek 2
Luka wydajności procesor-paięć Prawo Moore a CPU: 55% na rok Perforance 98 98 982 983 984 985 986 987 988 989 99 99 992 993 994 995 996 997 998 999 2 Luka wydajności procesor-paięć: (rośnie 5% co roku) DRAM: 7% na rok 98 Brak paięci cache w procesorach 995 Dwupozioowa paięć cache w procesorach Architektura systeów koputerowych Cezary Bolek 3 Potrzeba stosowania paięci podręcznej (Cache) Rosnąca luka wydajności iędzy procesore a paięcią Czas realizacji instrukcji przez procesor poniŝej ns Paięć główna potrzebuje ponad 5 ns w celu odczytania danych KaŜda instrukcja procesora przynajniej raz odwołuje się do paięci Pobranie kodu instrukcji z paięci Odczyt, zapis danych na których operuje progra Ograniczona szybkość paięci zniejsza wydajność pracy procesora Paięć podręczna pozwala wypełnić lukę wydajności procesor-paięć główna Paięć podręczna jest ałą lecz bardzo szybka Architektura systeów koputerowych Cezary Bolek 4
Typowa hierarchia paięci Rejestry Typowy roziar < KB Czas dostępu <,5 ns Cache poziou (8 64 KB) Czas dostępu:,5 ns Cache poziou 2 (52KB 8MB) Czas dostępu: 2 ns Paięć główna ( 4 GB) Czas dostępu: 5 7 ns Paięć asowa (> 2 GB) Czas dostępu: ilisekundy Szybsze Procesor Rejestry L Cache L2 Cache Szyna danych Meory Magistrala I/O HDD, etc Większe Architektura systeów koputerowych Cezary Bolek 5 Zasady lokalności dostępu do danych Progray odwołują się do niewielkiej części przestrzeni adresowej W danej chwili tylko niewielka porcja instrukcji i danych jest wykorzystywana Zasada lokalności w czasie JeŜeli realizowany był dostęp do określonych instrukcji lub danych, to wkrótce nastąpi to ponownie W pętli, te sae instrukcje odczytywane są wielokrotnie podczas kaŝdej iteracji Instrukcje naleŝące do podprograów są najczęściej odczytywane wielokrotnie Zasada lokalności w przestrzeni jeśli jakaś instrukcja lub dana była raz odczytana, to inne instrukcje lub dane blisko niej będą równieŝ odczytane Sekwencyjne odczytywanie instrukcji Dostęp do danych tablicowych (trawersowanie) Architektura systeów koputerowych Cezary Bolek 6
Czy jest paięć cache? Szybka paięć (krótki czas dostępu) wykonana najczęściej w technologii SRAM Przechowująca podzbiór wykonywanych instrukcji oraz analizowanych danych, pierwotnie uieszczonych w paięci głównej (operacyjnej) Stosowana w celu redukcji czasu dostępu do paięci Cache korzysta z zasady lokalności w czasie... Przechowując ostatnio odczytane dane blisko procesora Cache korzysta z zasady lokalności w przestrzeni... Odczytując przyległe do siebie instrukcje i dane Cele jest: Zwiększenie wydajności dostępu do instrukcji i danych WywaŜenie stosunku kosztu-szybkości podsysteu paięci Architektura systeów koputerowych Cezary Bolek 7 Paięć podręczna na ścieŝce danych Inc NPC Next PC PCSrc u x PC Instruction Cache Instruction Instruction Rs Rt Rd I26 u x Register File I6 u x u x B A I6 Rw Ext u x A L U Rw B ALU result ALU result Data Cache Data_in u x WriteData Rw Control Data Interfejs iędzy CPU i paięcią Paięć główna Architektura systeów koputerowych Cezary Bolek 8
Prawie wszystko jest paięcią podręczną W architekturze systeu koputerowego prawie wszystkie podsystey korzystają z koncepcji paięci podręcznej! Rejestry: cache dla ziennych zarządzane prograowo Cache poziou : cache dla cache poziou 2 Cache poziou 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 Architektura systeów koputerowych Cezary Bolek 9 Aspekty realizacji paięci cache Mapowanie bloku paięci Kojarzenie bezpośrednie, apowanie bezpośrednie - direct apped Kojarzenie dowolne, apowanie skojarzeniowe pełne - full associative Kojarzenie zestawai/kanałai, apowanie sekcyjno-skojarzeniowe - set associative Identyfikacja bloku paięci Adres bloku Znacznik Indeks Strategia wyiany bloków paięci Zastępowanie Najdawniej uŝywany LRU (Least Recently Used) Najrzadziej uŝywany (Least Frequently Used) Kolejka FIFO Strategie zapisu Zapis przeźroczysty - write-through Zapis zwrotny - write-back Architektura systeów koputerowych Cezary Bolek 2
Mapowanie bezpośrednie bloku 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 iejscu w cache Dla danego przykładu: Indeks paięci cache = najłodsze 3 bity adresu paięci głównej Paięć główna Architektura systeów koputerowych Cezary Bolek 2 Znaczniki i bity aktualności Skąd wiadoo, który blok paięci jest przechowywany w dany wierszu cache? Inforacja o adresie zapisywana jest raze z danyi Wystarczą tylko bardziej znaczące bity określane iane znacznika (tag) JeŜeli w dany wierszu nie a danych, nie odpowiadają adresowi lub są nieaktualne Bit aktualności validity bit: = są, = nie a Dane są odczytywane/zapisywane z/do paięci głównej i paięci cache Architektura systeów koputerowych Cezary Bolek 22
Mapowanie bezpośrednie przykład /6 8 wierszy paięci cache, blok = słowo Stan początkowy Nr wiersza (indeks) Bit akt. (Validity) Znacznik (Tag) Dane Architektura systeów koputerowych Cezary Bolek 23 Mapowanie bezpośrednie przykład 2/6 Adres Adres (binarnie) Trafienie? Blok cache 22 Nie Nr wiersza (indeks) Bit akt. (Validity) Znacznik (Tag) Dane Me[ ] Architektura systeów koputerowych Cezary Bolek 24
Mapowanie bezpośrednie przykład 3/6 Adres Adres (binarnie) Trafienie? Blok cache 26 Nie Nr wiersza (indeks) Bit akt. (Validity) Znacznik (Tag) Dane Me[ ] Me[ ] Architektura systeów koputerowych Cezary Bolek 25 Mapowanie bezpośrednie przykład 4/6 Adres Adres (binarnie) Trafienie? Blok cache 22 26 Tak Tak Nr wiersza (indeks) Bit akt. (Validity) Znacznik (Tag) Dane Me[ ] Me[ ] Architektura systeów koputerowych Cezary Bolek 26
Mapowanie bezpośrednie przykład 5/6 Adres Adres (binarnie) Trafienie? Blok cache 6 3 Nie Nie 6 Tak Nr wiersza (indeks) Bit akt. (Validity) Znacznik (Tag) Dane Me[ ] Me[ ] Me[ ] Me[ ] Architektura systeów koputerowych Cezary Bolek 27 Mapowanie bezpośrednie przykład 6/6 Adres Adres (binarnie) Trafienie? Blok cache 8 Nie Nr wiersza (indeks) Bit akt. (Validity) Znacznik (Tag) Dane Me[ ] Me[ ] Me[ ] Me[ ] Architektura systeów koputerowych Cezary Bolek 28
Bezpośrednio apowana paięć podręczna Adres w paięci dzielony jest na: Adres bloku: identyfikacja bloku w paięci Offset bloku: identyfikacja bajtów w bloku Adres bloku jest dalej dzielony na: Indeks: nuer wiersza cache, bezp. dostęp Znacznik (Tag): najbardziej znaczące bity adresu bloku w paięci Adres paięci Adres bloku Tag Indeks offset V Tag Dane bloku Indeks = Adres bloku od Liczba wierszy (blok.) cache Znacznik (tag) usi być takŝe zapisany w paięci cache W celu identyfikacji bloku W cache usi być takŝe zapisany bit aktualności (valid bit) = Dane By oznaczyć aktualność danych Trafienie Architektura systeów koputerowych Cezary Bolek 29 Bezpośrednio apowana paięć podręczna Trafienie odczytu cache: blok znajduje się w paięci cache Indeks adresuje blok (wiersz) w paięci cache Znacznik adresu porównywany jest ze znacznikie w cache Gdy tagi równe, blok jest aktualny trafienie (hit) W przeciwny przypadku: chybienie (iss) Gdy liczba wierszy (bloków) cache równa 2 n n bitów uŝywanych do indeksowania cache Gdy liczba bajtów w bloku równa 2 b b bitów uŝywanych do wyznaczenia przesunięcia w bloku (offset) Dla 32 bitowej szyny adresowej 32 n b bitów uŝywanych na znacznik (tag) Roziar paięci cache = 2 n+b bajtów Adres paięci Adres bloku Tag Indeks offset V Tag Dane bloku = Dane Trafienie Architektura systeów koputerowych Cezary Bolek 3
Mapowanie adresu w blokach cache Przykład Bezpośrednio apowana paięć podręczna z 256 blokai Roziar bloku = 6 bajtów Wyznaczyć tag, indeks oraz offset dla adresu: xfff8ac Rozwiązanie 32-bitowy adres dzieli się na: 4-bitowe pole przesunięcia bajtu (byte offset), gdyŝ roziar bloku = 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 = xc = 2 (4 najniej znaczące bity adresu) Indeks cache = x8a = 38 (kolejne 8 łodszych bitów adresu) Tag Tag = xfff (starsze 2 bitów adresu) Adres bloku 2 8 4 Indeks offset Architektura systeów koputerowych Cezary Bolek 3 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 pusta, roziar bloku = 6 bajtów Następują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 = x3e8 indeks cache = xe Chybienie (pierwszy dostęp) 4 = x3ec indeks cache = xe Trafienie 8 = x3f indeks cache = xf Chybienie (pierwszy dostęp) 2548 = x9f4 indeks cache = xf Chybienie (róŝne tagi) 2552 = x9f8 indeks cache = xf Trafienie 2556 = x9fc indeks cache = xf Trafienie 4 Architektura systeów koputerowych Cezary Bolek 32
Przykład procesora: Intrinsity FastMATH Procesor MIPS do urządzeń wbudowanych Dzielony cache: I-cache (rozkazów) and D-cache (danych) kaŝdy 6KB: 256 wierszy po 6 słów Architektura systeów koputerowych Cezary Bolek 33 Mapowanie skojarzeniowe pełne Blok oŝe być uieszczony w dowolny iejscu paięci cache brak indeksowania Dla bloków: Potrzeba zastosować koparatorów porównujących znaczniki Roziar danych paięci cache = 2 b bajtów Adres 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 Fully Associative Cache Trafienie Dane ux Architektura systeów koputerowych Cezary Bolek 34
Mapowanie sekcyjno-skojarzeniowe Sekcja jest grupą bloków, które ogą być indeksowane Blok apowany jest najpierw do sekcji Indeks sekcji = Adres bloku 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 = ) Architektura systeów koputerowych Cezary Bolek 35 Mapowanie sekcyjno-skojarzeniowe scheat Adres Tag Index offset V Tag Blok danych V Tag Blok danych V Tag Blok danych V Tag Blok danych Sekcja = = = = -droŝne odwzorowanie Trafienie Dane ux Architektura systeów koputerowych Cezary Bolek 36
Liczba bloków na sekcję przykład Paięć cache z 8-ioa blokai JednodroŜna paięć sekcyjno-skojarzeniowa (apowana bezpośrednio) DwudroŜna paięć sekcyjno-skojarzeniowa CzterodroŜna paięć sekcyjno-skojarzeniowa OśiodroŜna paięć sekcyjno-skojarzeniowa (pełne apowanie skojarzeniowe) Architektura systeów koputerowych Cezary Bolek 37 Ile bloków na sekcję? Zwiększenie liczby wierszy w sekcji zniejsza liczbę chybień Ale niezbyt iponująco Syulacja systeu 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,% Architektura systeów koputerowych Cezary Bolek 38
Mapowanie sekcyjno-skojarzeniowe przykład Architektura systeów koputerowych Cezary Bolek 39 Koniec Architektura systeów koputerowych Cezary Bolek 4