Programowanie mikroprocesorów jednoukładowych

Podobne dokumenty
Programowanie mikroprocesorów jednoukładowych

Programowanie mikroprocesorów jednoukładowych

Programowanie mikroprocesorów jednoukładowych

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

Ograniczenia efektywności systemu pamięci

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

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

Ograniczenia efektywności systemu pamięci

>>> Techniki rozbudowy systemów wbudowanych >>> Systemy wbudowane. Name: Mariusz Naumowicz Date: 29 maja 2019 [~]$ _ [1/32]

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

Programowanie Niskopoziomowe

Budowa komputera Komputer computer computare

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

Architektura komputera

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

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

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

Elementy składowe systemu komputerowego

System pamięci. Pamięć wirtualna

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Architektura Systemów Komputerowych

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

UKŁADY PAMIĘCI. Tomasz Dziubich

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

Rok akademicki: 2016/2017 Kod: JIS s Punkty ECTS: 6. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Wykład 2. Mikrokontrolery z rdzeniami ARM

Podstawy Informatyki Systemy sterowane przepływem argumentów

System pamięci. Pamięć podręczna

System komputerowy. System komputerowy

Zarządzanie zasobami pamięci

Architektura komputerów

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

Organizacja pamięci w procesorach graficznych

Architektura systemów komputerowych. dr Artur Bartoszewski

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

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

Rok akademicki: 2015/2016 Kod: IIN s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

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

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

System pamięci. Pamięć podręczna

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

Architektura mikroprocesorów TEO 2009/2010

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

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

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

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

Budowa Mikrokomputera

System obliczeniowy laboratorium oraz. mnożenia macierzy

Projektowanie. Projektowanie mikroprocesorów

Mikroprocesor Operacje wejścia / wyjścia

Mikrokontrolery czyli o czym to będzie...

LEKCJA TEMAT: Zasada działania komputera.

ARCHITEKTURA PROCESORA,

Przetwarzanie potokowe pipelining

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

Procesory. Schemat budowy procesora

architektura komputerów w. 7 Cache

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

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

Wykład 2. Mikrokontrolery z rdzeniami ARM

System pamięci. Pamięć wirtualna

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Systemy wbudowane. Przykłady kodu Assembler

Załącznik I Instrukcja działania FBs-PACK

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

Technologia informacyjna. Urządzenia techniki komputerowej

Podstawy Techniki Mikroprocesorowej

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Zrównoleglenie i przetwarzanie potokowe

Architektura komputerów

LEKCJA. TEMAT: Pamięć operacyjna.

10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu

dr inż. Jarosław Forenc

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

System pamięci. Pamięć wirtualna

Jednostka centralna. dr hab. inż. Krzysztof Patan, prof. PWSZ

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

Organizacja typowego mikroprocesora

Aparatura Elektroniczna (EAE) Stopień studiów i forma: I stopień, stacjonarna Rodzaj przedmiotu: obowiązkowy - 2

Wykład 7. Architektura mikroprocesorów powtórka

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1

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

Technologie informacyjne - wykład 2 -

Współpraca procesora ColdFire z pamięcią

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Maszyny liczace - rys historyczny

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

Mikroinformatyka. Tryb wirtualny

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

Architektura komputerów

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

Architektura systemów komputerowych. dr Artur Bartoszewski

Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Klony: VIA, SiS, Opti, Ali,... Wstęp do informatyki Cezary Bolek

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Architektura systemów komputerowych. dr Artur Bartoszewski

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

Komunikacja między sterownikami przez protokół ADS

Programowanie Mikrokontrolerów

Pracownia Komputerowa. Wyk ad I Magdalena Posiada a-zezula

Transkrypt:

Programowanie mikroprocesorów jednoukładowych Pamięć cache Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 1 / 22

Plan I Cache Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 2 / 22

Relacje miedzy pamięcią cache, procesorem i główna pamięcią Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 3 / 22

Pamięć cache i jednostka MMU(przed) Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 4 / 22

Pamięć cache i jednostka MMU(za) Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 5 / 22

Architektura pamięci CACHE achitektura Von Neumanna achitektura Harwardzka (I-cache i D-cache) Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 6 / 22

Podstawowa architektura pamięci cache Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 7 / 22

Kontroler cache Zadaniem kontrolera jest automatyczne odczytywanie danych z pamięci głównej do pamięci cache oraz zapis z pamięci cache do pamięci głównej. Przechwytuje on zadania do pamięci głównej i porównuje je z zawartością pól w linii cache. Kontroler porównuje bit statusu by sprawdzić czy linia cache jest aktywna, następnie porównuje cache-tag z zadanym adresem, jeżeli porównanie okaże się trafne, wtedy oznacza się to jako cache hit, jeżeli porównanie jest nieprawdzie traktuje się to jako cache miss. Jeżeli nastąpi cache miss, wtedy zawartość z pamięci głównej jest kopiowana do pamięci cache. Kopiowanie z pamięci głównej do pamięci cache nazywa się cache line fill. W przypadku cache hit dane lub kod przenoszone są z pamięci cache do procesora. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 8 / 22

Relacje między pamięcią cache, a pamięcią główna Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 9 / 22

Cache trashing I Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 10 / 22

Pamięć cache z dodatkowymi modyfikacjami Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 11 / 22

Przykład pamięci cache w ARM940T 4 Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 12 / 22

Pomiar wydajności cache hit rate = ( cache hits memory requstes ) 100 Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 13 / 22

Writethrough Kiedy kontroler korzysta z zasad zapisu writethrough, dane które trafiają podczas zapisu do pamięci cache trafiają również do pamięci głównej, odbywa się to przy każdym zapisie, przez co działa to wolno. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 14 / 22

Writeback Kiedy kontroler korzysta z zasad zapisu writeback, dane są zapisywane do pamięci cache, a nie są zapisywane do głównej pamięci, przez co zawartość pamięci cache i głównej mogą się różnić. Zaleta takiego rozwiązania jest częste korzystanie ze zmiennych tymczasowych lokalnych w podprocedurach. Zmienne takie nie muszą być zapisywane do głównej pamięci, bowiem są one przezroczyste dla systemu z natury. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 15 / 22

Zastępowanie danych w liniach cache round-robin lub cykliczna - wybór następnej linii danych do podmiany danych. pseudolosowe - losowy wybór linii danych do podmiany danych. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 16 / 22

Polityka pamięci podręcznej Rdzeń Polityka zapisu Polityka nadpisywania Polityka lokacji ARM720T writethrough random read-miss ARM740T writethrough random read-miss ARM920T writethrough, writeback random, round-robin read-miss ARM940T writethrough, writeback random read-miss ARM926EJS writethrough, writeback random, round-robin read-miss ARM946E writethrough, writeback random, round-robin read-miss ARM10202E writethrough, writeback random, round-robin read-miss ARM1026EJS writethrough, writeback random, round-robin read-miss Intel StrongARM writeback round-robin read-miss Intel XScale writethrough, writeback round-robin read-miss, write-miss Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 17 / 22

Polityka alokacji na podstawie cache miss read allocate - alokuje linie cache podczas odczytu danych z pamięci, zawartość linii cache zapisywana jest do pamięci, a następnie wartość odczytana jest zapisywana do pamięci cache allocate - alokuje linie cache podczas odczytu/zapisu z/do pamięci pod warunkiem, ze jej zawartość nie znajduje się już w pamięci cache. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 18 / 22

Koprocesor 15 i pamięć podręczna Funkcja Pierwszy rejestr Drugie rejestry Opcode Clean and flush cache c7 c5, c6, c7, c10, c13, c14 0, 1, 2 Drain write buffer c7 c10 4 Cache lockdown c9 c0 0, 1 Round-robin replacement c15 c0 0 Flush cache oznacza wyczyszczenie pamięci podręcznej z jej zawartości, fizycznie następuje czyszczenie statusu valid. Clean cache oznacza wymuszenie zapisu linii o statusie dirty do głównej pamięci i wyczyszczenie statusu dirty. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 19 / 22

Flush cache Komenda Instrukcja MCR Wspierane rdzenie Flush cache MCR p15, 0, Rd, c7, c7, 0 ARM720T, ARM920T, ARM922T, ARM926EJ-S, ARM1022E, ARM1026EJ-S, StrongARM, XScale Flush data cache MCR p15, 0, Rd, c7, c6, 0 ARM920T, ARM922T, ARM926EJ-S, ARM940T, ARM946E-S, ARM1022E, ARM1026EJ-S, StrongARM, XScale Flush instruction cache MCR p15, 0, Rd, c7, c5, 0 ARM920T, ARM922T, ARM926EJ-S, ARM940T, ARM946E-S, ARM1022E, ARM1026EJ-S, StrongARM, XScale Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 20 / 22

Clean cache Komenda Instrukcja MCR Wspierane rdzenie Flush instruction cache line MCR p15, 0, Rd, c7, c5, 2 ARM926EJ-S, ARM940T, ARM1026EJ-S Flush data cache line MCR p15, 0, Rd, c7, c6, 2 ARM926EJ-S, ARM940T, ARM1026EJ-S Clean data cache line MCR p15, 0, Rd, c7, c10, 2 ARM920T, ARM922T, ARM926EJ-S, ARM940T, ARM946E-S, ARM1022E, ARM1026EJ-S Clean and flush data cache line MCR p15, 0, Rd, c7, c14, 2 ARM920T, ARM922T ARM926EJ-S, ARM940T, ARM946E-S, ARM1022E, ARM1026EJ-S Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 21 / 22

References Andrew Sloss, Dominic Symes, and Chris Wright. ARM System Developer s Guide: Designing and Optimizing System Software. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2004. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 22 / 22