System pamięci. Pamięć podręczna

Podobne dokumenty
System pamięci. Pamięć podręczna

Architektura komputerów

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Architektura komputerów

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/

System pamięci. Pamięć wirtualna

Plan wykładu. Architektura systemów komputerowych. Strategie zapisu. Cezary Bolek

Pamięci półprzewodnikowe

System pamięci. Pamięć wirtualna

System pamięci. Pamięć wirtualna

Pamięci półprzewodnikowe na podstawie książki: Nowoczesne pamięci

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Organizacja pamięci współczesnych systemów komputerowych : pojedynczy procesor wielopoziomowa pamięć podręczna pamięć wirtualna

Temat: Pamięci. Programowalne struktury logiczne.

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek. Szybkość pamięci Pamięć główna. Pamięć podręczna. Pamięć główna, pamięć cache

Pamięć. Podstawowe własności komputerowych systemów pamięciowych:

, " _/'--- " ~ n\l f.4e ' v. ,,v P-J.. ~ v v lu J. ... j -:;.",II. ,""", ",,> I->~" re. dr. f It41I r> ~ '<Q., M-c 'le...,,e. b,n '" u /.

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Mapowanie bezpośrednie

Budowa komputera Komputer computer computare

Rys. 1. Podłączenie cache do procesora.

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

Zarządzanie zasobami pamięci

Współpraca procesora ColdFire z pamięcią

architektura komputerów w. 7 Cache

Wprowadzenie do architektury komputerów. Pamięci w systemach komputerowych Pamięć podręczna

UKŁADY PAMIĘCI. Tomasz Dziubich

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

43 Pamięci półprzewodnikowe w technice mikroprocesorowej - rodzaje, charakterystyka, zastosowania

Systemy operacyjne III

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Zrównoleglenie i przetwarzanie potokowe

Architektura Systemów Komputerowych

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Magistrala systemowa (System Bus)

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

Budowa systemów komputerowych

Zasada działania pamięci RAM Pamięć operacyjna (robocza) komputera - zwana pamięcią RAM (ang. Random Access Memory - pamięć o swobodnym dostępie)

Opracował: Grzegorz Cygan 2012 r. CEZ Stalowa Wola. Pamięci półprzewodnikowe

Architektura harwardzka Architektura i organizacja systemu komputerowego Struktura i funkcjonowanie komputera procesor, rozkazy, przerwania

ARCHITEKTURA PROCESORA,

Ograniczenia efektywności systemu pamięci

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Architektura systemu komputerowego

Wykład II. Pamięci półprzewodnikowe. Studia Podyplomowe INFORMATYKA Architektura komputerów

dr inż. Jarosław Forenc

Organizacja pamięci wewnętrznej komputerów

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Dotyczy jednostek operacyjnych i ich połączeń stanowiących realizację specyfikacji typu architektury

Stronicowanie w systemie pamięci wirtualnej

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH. Poziomy abstrakcji cyfrowego systemu komputerowego. Procesor i pamięć. organizacja pamięci

LEKCJA. TEMAT: Pamięć operacyjna.

Urządzenia zewnętrzne

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Architektura komputerów egzamin końcowy

Wykład 7. Zarządzanie pamięcią

Ograniczenia efektywności systemu pamięci

Schemat blokowy procesora rdzeniowego ATmega16. Głównym zadaniem JC jest zapewnienie poprawnego i szybkiego wykonywania programu.

Logiczny model komputera i działanie procesora. Część 1.

METODY ELIMINACJI STUDENTÓW INFORMATYKI. Czyli co student INF-EKA powinien wiedzieć o MESI...

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Podstawy Informatyki JA-L i Pamięci

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

Zarządzanie pamięcią w systemie operacyjnym

Systemy operacyjne. Struktura i zasady budowy. Rozdział 1 Wprowadzenie do systemów komputerowych

Dydaktyka Informatyki budowa i zasady działania komputera

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Architektura mikroprocesorów z rdzeniem ColdFire

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Architektura systemów informatycznych

Zaleta duża pojemność, niska cena

Organizacja typowego mikroprocesora

Architektura komputerów

dr hab. Joanna Jędrzejowicz Podstawy informatyki i komputeryzacji Gdańska Wyższa Szkoła Humanistyczna

Architektura komputerów

Architektura komputerów

Pamięć RAM. Pudełko UTK

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Wykład II. Pamięci półprzewodnikowe. Studia stacjonarne inżynierskie, kierunek INFORMATYKA Architektura systemów komputerowych

Podstawowe zadanie komputera to wykonywanie programu Program składa się z rozkazów przechowywanych w pamięci Rozkazy są przetwarzane w dwu krokach:

Budowa pamięci RAM Parametry: tcl, trcd, trp, tras, tcr występują w specyfikacjach poszczególnych pamięci DRAM. Czym mniejsze są wartości tych

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Architektura mikroprocesorów TEO 2009/2010

Wykład II. Pamięci półprzewodnikowe. Studia stacjonarne inżynierskie, kierunek INFORMATYKA Architektura systemów komputerowych

architektura komputerów w. 8 Zarządzanie pamięcią

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Przetwarzanie potokowe pipelining

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

Wykład I. Podstawowe pojęcia Pamięci półprzewodnikowe. Studia stacjonarne inżynierskie, kierunek INFORMATYKA Architektura systemów komputerowych

dr inż. Jarosław Forenc

przypisanie różnym strukturom programowym tych samych obszarów pamięci fizycznej

Pamięci magnetorezystywne MRAM czy nowa technologia podbije rynek pamięci RAM?

Hierarchia pamięci w systemie komputerowym

ARCHITEKTURA KOMPUTERÓW Bufory pamięci bufor zawiera kopie aktualnie przetwarzanych danych

Programowanie Niskopoziomowe

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Wprowadzenie do architektury komputerów. Pamięci w systemach komputerowych Pamięć podręczna

Transkrypt:

System pamięci Pamięć podręczna

Technologia Static RAM (SRAM) Ułamki nanosekund, $500-$1000 za GB (2012r) Dynamic RAM (DRAM) 50ns 70ns, $10 $20 za GB Pamięci Flash 5000-50000 ns, $0.75 - $1 Dyski magnetyczne 5ms 20ms, $0.05 $0.10 za GB Idealny system pamięci Czas dostępu porównywalny z SRAM Pojemność i koszt porównywalne z dyskami

DRAM i SRAM SRAM: bit informacji przechowywany dzięki,,zapętleniu sygnału, jak w przerzutnikach; DRAM: bit informacji przechowywany w miniaturowym kondensatorze; ładunek ucieka i wymaga odświeżania co kilkadziesiąt milisekund Bity w DRAM są gęściej upakowane niż w SRAM

Hierarchia pamięci Rejestry Cache L1 (SRAM) Cache L2 (SRAM); ew. Cache L3 Pamięć główna RAM (DRAM) Dyski magnetyczne Dyski optyczne Taśmy magnetyczne rośnie czas dostępu i pojemność, maleje cena

Zasada lokalności Programy odwołują się w jednej chwili do niewielkiego fragmentu przestrzeni adres. Lokalność czasowa: Słowa, do których się odwołujemy mogą być za chwile znowu potrzebne rozkazy w pętli, zmienne indeksujące, liczniki Lokalność miejscowa: Oprócz aktualnego słowa mogą się przydać za moment słowa sąsiednie Np. dostęp do rozkazów, tablic

Cache ogólna zasada Przechowujemy wszystko w pamięci głównej (DRAM), a ostatnio używane słowa oraz słowa sąsiednie dodatkowo w pamięci cache (SRAM) Słowa szukamy zawsze najpierw w cache, a jeśli tam go nie znajdziemy - ściągamy je z pamięci głównej do cache razem z całym blokiem danych Pamięć cache znajduje się na płytce procesora

Cache ogólna zasada, cd. Pamięć główna RAM podzielona na bloki Każdy blok to pewna, ustalona liczba słów Transfer RAM - Cache całe bloki Transfer Cache procesor pojedyncze słowa Trafienie (hit): poszukiwane słowo znajduje się w cache; chybienie (miss): musi być ściągnięte z RAM Współczynnik trafień: #trafień / #odczytów

Cache - mapowanie Skąd wiemy, w którym miejscu w cache znajduje się poszukiwane słowo? Istnieje kilka możliwych rozwiązań: mapowanie bezpośrednie mapowanie skojarzeniowe mapowanie sekcyjno-skojarzeniowe

Mapowanie bezpośrednie Adres (numer) bloku w RAM wyznacza wiersz (blok) w cache Nie ma wyboru: (Nr bloku w RAM) modulo (#bloków cache) #wierszy cache -potęga 2 Używamy mniej znaczących bitów numeru bloku w RAM

Znaczniki i bity aktualności Skąd wiadomo, który blok przechowywany jest w danym wierszu cache? Informacja o adresie przechowywana jest razem z danymi Wystarczą oczywiście bardziej znaczące bity Nazywamy je znacznikiem albo tagiem A co jeśli w danym wierszu cache nie ma żadnych danych? Bit aktualności: 1 = są, 0 = nie ma Np. przy starcie komputera bity aktualności są zerowane

Przykład 8 wierszy, blok=słowo, mapowanie bezpośrednie Stan początkowy Nr wiersza Bit akt. Znacznik Dane 000 0 001 0 010 0 011 0 100 0 101 0 110 0 111 0

Przykład Adres Adres bin. Trafienie? Blok cache 22 10 110 nie 110 Nr wiersza 000 0 001 0 010 0 011 0 100 0 101 0 Bit Akt. Znacznik Dane 110 1 10 Mem[10110] 111 0

Przykład Adres Adres bin. Trafienie? Blok cache 26 11 010 nie 010 Nr wiersza 000 0 001 0 Bit akt. Znacznik Dane 010 1 11 Mem[11010] 011 0 100 0 101 0 110 1 10 Mem[10110] 111 0

Przykład Adres Adres bin. Trafienie Blok cache 22 10 110 Tak 110 26 11 010 Tak 010 Nr wiersza 000 0 001 0 Bit akt. Znacznik Dane 010 1 11 Mem[11010] 011 0 100 0 101 0 110 1 10 Mem[10110] 111 0

Przykład Nr wiersza Adres Adres bin. Trafienie? Blok cache Bit Akt. Znacznik Dane 000 1 10 Mem[10000] 001 0 010 1 11 Mem[11010] 011 1 00 Mem[00011] 100 0 101 0 110 1 10 Mem[10110] 111 0 16 10 000 Nie 000 3 00 011 Nie 011 16 10 000 Tak 000

Przykład Adres Adres bin. Trafienie? Blok cache 18 10 010 nie 010 Wiersz cache Bit akt. Znacznik Dane 000 1 10 Mem[10000] 001 1 010 1 10 Mem[10010] 011 1 00 Mem[00011] 100 0 101 0 110 1 10 Mem[10110] 111 0

Logiczny podział adresu

Przykład: wielosłowowe bloki 64 wiersze w cache, 16 bajtów na blok W którym wierszu cache przechowywana jest zawartość adresu 1200? Numer bloku w RAM = 1200/16= 75 Nr wiersza cache = 75 modulo 64 = 11 31 10 9 4 3 0 Znacznik Wiersz Offset 22 bits 6 bits 4 bits

Rozmiar bloku Czy większe bloki zwiększają współczynnik trafień? Niekoniecznie! W cache o ustalonym rozmiarze Większe bloki mniej bloków Większa rywalizacja o wiersze cache Większa,,kara za chybienie (miss penalty)

Rozmiar bloku a chybienia

Chybienia w cache Trafienie odczytu w cache: CPU pracuje standardowo Chybienie: Wstrzymujemy potok Przenosimy cały blok z RAM do cache (zazwyczaj wiele słów!) Chybienie przy odczycie rozkazu: Ponownie pobierz rozkaz (będzie trafienie!) Chybienie przy odczycie danych: Dokończ odczyt

Zapis,,przez (write-through) Trafienie zapisu: wystarczyłoby zapisać tylko do cache Ale cache i RAM są wtedy niespójne! Zapis,,przez : zapisujemy też do pamięci Zapisy trwają wtedy długo np., bazowe CPI (# cykli na instrukcję) = 1, 10% rozkazów sw, zapis do pamięci 100 cykli procesora efektywne CPI = 1 + 0.1 100 = 11 Rozwiązanie: bufor zapisu Przechowuje zapisywane dane CPU kontynuuje pracę Zatrzymujemy potok dopiero po przepełnieniu bufora

Zapis,,po (write-back) Zapisujemy tylko do cache Dodatkowy bit (dirty bit) w wierszu cache wskazuje, czy blok został zmodyfikowany Przy wymianie zmodyfikowanego bloku Zapisujemy go do RAM Można również użyć bufora zapisu

Przykład: Intrinsity FastMATH Procesor MIPS do urządzeń wbudowanych Dzielony cache: I-cache (rozkazów) and D- cache (danych) każdy 16KB: 256 wierszy po 16 słów obsługuje write-through oraz write-back współczynnik chybień na SPEC2000 I-cache: 0.4% D-cache: 11.4% Średnia ważona: 3.2%

Przykład: Intrinsity FastMATH

Pamięć główna a cache Pamięć główna zbudowana jako DRAM Ustalona szerokość (np. 1 słowo) Połączona z CPU magistralą sterowaną zegarem Częstotliwość zegara magistrali mniejsza niż procesora Przykładowy odczyt bloku 1 cykl magistrali na przesłanie adresu 15 cykli na dostęp do pamięci 1 cykl na transfer danych Dla 4-słowowego bloku i pamięci szer. 1 słowa Miss penalty = 1 + 4 15 + 4 1 = 65 cykli mag. Przepustowość = 16 bajtów / 65 cykli = 0.25 B/cykl

Zwiększenie przepustowości Pamięć szerokości 4 słów Miss penalty = 1 + 15 + 1 = 17 cykli Przepustowość = 16 b / 17 cykli = 0.94 B/cykl Pamięć z przeplotem o 4 bankach Miss penalty = 1 + 15 + 4 1 = 20 cykli Przpustowość = 16 b / 20 cykli = 0.8 B/cykl

Generacje DRAM Rok Pojemno ść chipa $/GB 1980 64Kbit $1500000 1983 256Kbit $500000 1985 1Mbit $200000 1989 4Mbit $50000 1992 16Mbit $15000 1996 64Mbit $10000 1998 128Mbit $4000 300 250 200 150 100 50 Trac Tcac 2000 256Mbit $1000 2004 512Mbit $250 2007 1Gbit $50 0 '80 '83 '85 '89 '92 '96 '98 '00 '04 '07

Przykład obliczeń Dane Współczynnik chybień w I-cache = 2% Współczynnik chybień w D-cache = 4% Miss penalty = 100 cykli procesora bazowe CPI (idealny cache) = 2 Lw & sw stanowią 36% rozkazów Stracone cykle / rozkaz I-cache: 0.02 100 = 2 D-cache: 0.36 0.04 100 = 1.44 rzeczywiste CPI = 2 + 2 + 1.44 = 5.44

Przykład obliczeń cd. Co się stanie jeśli poprawimy bazowe CPI do 1, ale nie poprawimy transferu z RAM? rzeczywiste CPI = 1 + 2 + 1.44 = 4.44 Dwukrotne przyspieszenie procesora spowodowało zmniejszenie CPI tylko o około 1/5!

Mapowanie skojarzeniowe Pełne: Blok może iść do dowolnego wiersza cache Wszystkie tagi badane jednocześnie Każdy wiersz wymaga komparatora Sekcyjno-skojarzeniowe (n-drożne) Cache podzielony na n-wierszowe sekcje Numer bloku RAM określa sekcję (Nr bloku) modulo (# sekcji w cache) Badamy jednocześnie tagi z jednej sekcji Wystarczy n komparatorów

Mapowanie skojarzeniowe

Liczba wierszy w sekcji Dla cache z 8 wpisami

Przykład Porównamy 4-blokowe pamięci cache Z mapowaniem bezpośrednim, 2-drożnym skojarzeniowym, pełnym skojarzeniowym Nr żądanych bloków: 0, 8, 0, 6, 8 Mapowanie bezpośrednie: Block address Cache index Hit/miss Cache content after access 0 1 2 3 0 0 miss Mem[0] 8 0 miss Mem[8] 0 0 miss Mem[0] 6 2 miss Mem[0] Mem[6] 8 0 miss Mem[8] Mem[6]

Przykład cd. 2-drożne sekcyjno-skojarzeniowe Block address Cache index Hit/miss Cache content after access Set 0 Set 1 0 0 miss Mem[0] 8 0 miss Mem[0] Mem[8] 0 0 hit Mem[0] Mem[8] 6 0 miss Mem[0] Mem[6] 8 0 miss Mem[8] Mem[6] Pełne skojarzeniowe Block address Hit/miss Cache content after access 0 miss Mem[0] 8 miss Mem[0] Mem[8] 0 hit Mem[0] Mem[8] 6 miss Mem[0] Mem[8] Mem[6] 8 hit Mem[0] Mem[8] Mem[6]

Ile wierszy w sekcji? Zwiększenie liczby wierszy w sekcji zmniejsza liczbę chybień Ale niezbyt imponująco Symulacja systemu z 64KB pamięcią D-cache, 16-słowowe bloki, SPEC2000 1-drożna (mapowanie bezpośrednie): 10.3% 2-drożna: 8.6% 4-drożna: 8.3% 8-drożna: 8.1%

Organizacja (1-słowowe bloki)

Strategia wymiany bloków Mapowanie bezpośrednie: nie dotyczy Sekcyjno-skojarzeniowe Zajmij wiersz z bitem akt. = 0 (jeśli taki jest) W przeciwnym wypadku kilka strategii Najdawniej używany (LRU) Proste dla 2-drożnej (jeden dodatkowy bit), do zrobienie dla 4-drożnej, bardzo kosztowne dla większych n FIFO, LFU, losowy (przy dużym n zaskakująco dobry),