architektura komputerów w. 7 Cache

Podobne dokumenty
Architektura komputerów

Architektura Systemów Komputerowych

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

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

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

System pamięci. Pamięć podręczna

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

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]

dr inż. Jarosław Forenc

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

W komputerze z programem zintegrowanym programy i dane mają tedencję do skupiania w wymiarze przestrzennym i czasowym.

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

Architektura komputerów

System pamięci. Pamięć podręczna

Stronicowanie w systemie pamięci wirtualnej

Procesory. Schemat budowy procesora

System pamięci. Pamięć wirtualna

Zarządzanie pamięcią w systemie operacyjnym

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

Budowa i zasada działania komputera. dr Artur Bartoszewski

Hierarchia pamięci w systemie komputerowym

Architektura komputerów

, " _/'--- " ~ 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 /.

Systemy operacyjne III

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

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

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

LEKCJA TEMAT: Zasada działania komputera.

System obliczeniowy laboratorium oraz. mnożenia macierzy

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

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

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Zrównoleglenie i przetwarzanie potokowe

System pamięci. Pamięć wirtualna

Ograniczenia efektywności systemu pamięci

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

System pamięci. Pamięć wirtualna

ARCHITEKTURA PROCESORA,

Budowa Mikrokomputera

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

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

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Zarządzanie pamięcią operacyjną

Schematy zarzadzania pamięcia

Architektura systemów komputerowych. dr Artur Bartoszewski

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

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

Architektura systemów komputerowych. dr Artur Bartoszewski

Wykład III. Procesor. Studia Podyplomowe INFORMATYKA Architektura komputerów

Podstawy. Pamięć wirtualna. (demand paging)

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

Zarządzanie zasobami pamięci

Programowanie Niskopoziomowe

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

Ograniczenia efektywności systemu pamięci

Budowa komputera Komputer computer computare

Wydajność programów sekwencyjnych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Architektura komputerów

Architektura mikroprocesorów TEO 2009/2010

Architektura systemów komputerowych

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

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

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

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

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

Mikroprocesor Operacje wejścia / wyjścia

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura komputerów

Wykład IV. Układy we/wy. Studia Podyplomowe INFORMATYKA Architektura komputerów

Architektura systemów komputerowych. dr Artur Bartoszewski

Tadeusz Pankowski

Funkcje procesora: kopiowanie danych z pamięci do rejestru z rejestru do pamięci z pamięci do pamięci (niektóre procesory)

Projektowanie. Projektowanie mikroprocesorów

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

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

Architektura komputerów

UKŁADY PAMIĘCI. Tomasz Dziubich

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

Programowanie mikroprocesorów jednoukładowych

Organizacja pamięci w procesorach graficznych

Architektura komputerów egzamin końcowy

Wykład 2. Mikrokontrolery z rdzeniami ARM

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Architektura komputerów

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

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

Współpraca procesora ColdFire z pamięcią

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

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

Magistrala systemowa (System Bus)

Architektura komputerów

Mikroprocesory rodziny INTEL 80x86

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

Transkrypt:

architektura komputerów w. 7 Cache Pamięci cache - zasada lokalności Program używa danych i rozkazów, które były niedawno używane - temporal locality kody rozkazów pętle programowe struktury danych zmienne robocze struktury regularne: wielokrotne użycie elementów Rozkazy i dane używane w krótkich odstępach czasu są zwykle zlokalizowane blisko siebie - spatial locality kody rozkazów rozmieszczone i wykonywane sekwencyjnie struktury danych skupione (zmienne robocze) lub regularne (tablice) Peter Denning The locality principle, CACM, July 2005 architektura komputerów w 7 1

Pamięci cache - zasada działania użycie bufora jest z założenia przezroczyste dla programu (realizacja całkowicie hardwareowa) sposób wykonania rozkazu nie może zależeć od obecności bufora Zastosowanie pamięci buforowej nie otwiera osobnej przestrzeni adresowej nie ma potrzeby tworzenia specjalnych rozkazów dostępu do bufora Zastosowanie bufora jest widoczne jedynie w skróceniu (lub nie) czasu wykonania programu Pamięci cache - zasada działania cache PAO CPU słowo trafienie Kopie bloku Linia - typowo 4-16 słów linia jednostka wymiany danych między buforem a pamięcią główną bloki są wyrównywane w sposób naturalny adres pierwszego słowa jest podzielny przez długość bloku architektura komputerów w 7 2

Pamięci cache - zasada działania cache PAO CPU słowo Przesłanie bloku Chybienie (inaczej pudło) Pamięci cache ilościowa ocena skuteczności Współczynnik trafień (hit rate) h określa jaka część odwołań została obsłużona przez cache. Współczynnik chybień (miss rate) m=1-h t mp średnia strata czasu w razie chybienia (miss penalty) Średni czas dostępu w sytemie z pamięcią cache (jednopoziomową) wynosi t av = ht c + (1-h)t m gdzie t c - czas dostępu pamięci cache t m - czas dostępu pamięci głównej architektura komputerów w 7 3

Pamięci cache ilościowa ocena skuteczności Współczynnik trafień zależy od Pojemności cache Organizacji i algorytmów wymiany Wykonywanego programu W zakresie do 0,9 współczynnik trafień zależy głównie od wielkości pamięci cache Powyżej na współczynnik trafień wpływ ma organizacja pamięci i algorytmy wymiany Pamięci cache ilościowa ocena skuteczności Wpływ wielkości bloku Dla większych bloków współczynnik trafień zmniejsza się, bowiem bloków jest w tej samej pojemności mniej Kara za pudło zwykle przewyższa efekt wzrostu współczynnika trafień architektura komputerów w 7 4

Pamięć cache asocjacyjna Adres żądanej komórki CACHE PAO Indeks słowa Blok 1 Blok 2 N Etykieta bloku porównywana jest z mi bloków przechowywanych w pamięci cache. Jeżeli taki blok jest w cache, pobierane jest odpowiednie słowo. Adres obszar Pamięć cache direct-mapped słowo PAO 0 00 {... cache N obszar Blok 0 01 0 01 {... 1 N... N 05 0 {... N Zbudowana na bazie szybkiej pamięci RAM Prosta w realizacji i wydajna Może mieć dużą pojemność architektura komputerów w 7 5

Adres obszar Pamięć cache direct-mapped słowo ZZ cache Blok Nr obszaru adresuje blok w pamięci cache Adres obszar Pamięć cache direct-mapped słowo ZZ cache Blok Adres słowa w bloku komparator Wybór słowa trafienie Porównywane jest pole etykiety, adresowane słowo w bloku architektura komputerów w 7 6

Adres Pamięć cache direct-mapped ZZ cache Adres słowa w bloku Blok komparator Wybór słowa trafienie Porównywane jest pole etykiety, adresowane słowo w bloku dana Adres Pamięć cache direct-mapped ZZ cache Adres słowa w bloku Blok XY komparator Wybór słowa niezgodność Porównywane jest pole etykiety, adresowane słowo w bloku architektura komputerów w 7 7

Pamięć cache direct-mapped Problemem jest to, że tylko jedna linia o numerze obszaru NN może być jednocześnie w cache. Jeżeli program odwołuje się na przemian do komórek należących do dwóch różnych linii (o różnej etykiecie) z jednakowym indeksem obszarowym (środkową częścią adresu) wystąpi migotanie bloków. W praktyce nie jest to częste ale może się zdarzyć Rozwiązanie - zbiorowe odwzorowanie asocjacyjne. Jeżeli zbiór roboczy programu obejmuje w miare ciagły obszar adresowy to cache przyspiesza odwołania do pamięci dla zbiorów roboczych mniejszych niż dwukrotna pojemność cache. zbiorowe odwzorowanie asocjacyjne Cache typu zbiorowe odwzorowanie asocjacyjne powstaje przez połączenie kilku bloków cache bezpośrednio adresowanej. W cache może być tyle linii o tym samym indeksie, ile jest bloków. Zestaw takich linii nazywany jest zbiorem. Właściwa linia wybierana jest z bloku poprzez wybór asocjacyjny. Cache złożony z wielu bloków nazywany jest również cache wielodrożnym (np. dwu-, czterodrożnym). architektura komputerów w 7 8

zbiorowe odwzorowanie asocjacyjne ZZ Adres słowa w bloku Blok Wybór słowa Wybór słowa Wybór słowa Pobranie na żądanie (fetch on demand) Pamięci cache. Strategie pobierania linii Pobranie uprzedzające (prefetching). Najczęstsza metoda one block lookahead automatyczne (prefetch always) obciążenie magistral o 20 80% większe niż w pobraniach wymuszonych implikowane w razie chybienia (prefetch on a miss) obciążenie magistral nieznacznie większe ni w pobraniach wymuszonych markowane (tagged prefetch) obciążenie magistral podobne jak w pobraniach wymuszonych architektura komputerów w 7 9

Pamięci cache. Strategie wymiany linii Dla cache direct mapped zagadnienie nie istnieje Stosowane strategie: Losowa Kolejkowa (FIFO) LFU LRU Za najskuteczniejsze uważane są LFU i LRU, wymagają jednak rozbudowy linii o bity historii. Różnica efektywności pomiędzy nimi a strategią losową jest niewielka. Strategie wymiany bufora przy przełączania zadań bufor ciepły (warm cache) część bufora nie jest wymieniana bufor zimny (cold cache) unieważnianie całego bufora Pamięci cache. rodzaje Cache asocjacyjny nie jest stosowany do zapisu kodu lub danych Najczęściej stosowana jest organizacja zbiorowo-asocjacyjna Jeżeli czas dostępu jest krytyczny używa się pamięci o niskim stopniu asocjacyjności Tam gdzie wymagania na szybkość są bardzo ostre używana jest pamięć bezpośrednio adresowana lub zbiorowo-asocjacyjna dwudrożna architektura komputerów w 7 10

Pamięci cache. Zagadnienie spójności Zapis danych do pamięci powoduje, że zawartość kopii w cache może różnić się od zawartości w PAO Spójność zgodność wszystkich kopii informacji, albo znajomość lokalizacji informacji aktualnej technologie zapisu: write throught write -back (zapis z opóźnieniem) Zapewnienie spójności nie oznacza zapewnienia zgodności wszystkich kopii lecz jedynie zapewnienie że każdy dostęp będzie dotyczył wartości aktualnej Pamięci cache. Zagadnienie wydajności t mem h 5 10 50 0,9 1,4 1,9 5,9 0,95 1,2 1,45 3,45 0,99 1,04 1,09 1,49 Średni czas dostępu w zależności od współczynnika trafień i różnicy wydajności pamięci cache i pamięci głównej Użycie cache pozwala zniwelować różnicę w wydajności pamięci cache i pamięci głównej wielkości jednego rzędu dziesiętnego Poprawienie średniego czasu dostępu wymaga poprawienia wydajności innych poziomów pamięci Można użyć cache drugiego poziomu (L2), Może być większy Może być bardziej asocjacyjny architektura komputerów w 7 11

Pamięci cache. Cache inkluzywna Każdy obiekt z L1 ma swoja kopię w L2 Przepływ danych pamięć główna L2 L1 procesor Pojemność L2 jest znacząco większa od L1 Rozwiązanie stosowane do r. 2000. procesor L1 L2 Pamięć Pamięci cache. Cache ekskluzywna L2 zawiera obiekty usuwane z L1 Pojemność równa jest sumie L1 i L2 L2 nie musi być większy niż L1 Stopień asocjacyjności L2 wyższy niż L1 Stosowane od r 2000:.AMD K7,K8, Intel Pentium 4, Core procesor L1 L2 Pamięć architektura komputerów w 7 12

Pamięci cache. Cache L2 Pamięci cache. Cache L2 Ponieważ cache L1 ma bezpośredni wpływ na projekt procesora i cykl rozkazowy, to powinna być prosta i mała Większość technik optymalizacji można łatwiej zastosować do L2 cache, w tym duży rozmiar i blok, wysoki poziom asocjacyjności itp Techniki redukcji współczynnika chybień w praktyce łatwiej się implementuje w cache L2 architektura komputerów w 7 13

Pamięci cache pamięć podręczna Pentium I - 2 x 8KB L1, L2 - na płycie głównej MMX - 2 x 16KB L1, L2 - na płycie głównej Pentium Pro - 2 x 16KB L1, L2-256KB II - 2 x 16KB L1, L2-512KB III - 2 x 16KB L1, L2-512KB unified, non-blocking, or an integrated 256KB Advanced Transfer Cache IV - Level 1 Execution Trace Cache stores 12K micro-ops, 8KB L1 data cache, 512KB L2 Cache (for 2A GHz and Faster) or 256KB Cache (for 2 GHz and Slower) architektura komputerów w 7 14