1 Rodzaje pami ci. 2 Hierarchia pami ci. 3 Lokalno± odwoªa« 4 Pami podr czna

Podobne dokumenty
Architektury systemów komputerowych

Architektura komputerów

Architektura komputerów

System pamięci. Pamięć podręczna

Bazy danych. Andrzej Łachwa, UJ, /15

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Systemy wbudowane Mikrokontrolery

System pamięci. Pamięć podręczna

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Ukªady równa«liniowych

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

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

Mapowanie bezpośrednie

Budowa komputera Komputer computer computare

Architektura komputerów

architektura komputerów w. 6 Pamięć I

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

Budowa systemów komputerowych

Lekcja 9 Liczby losowe, zmienne, staªe

dr inż. Jarosław Forenc

Lab. 02: Algorytm Schrage

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

Cyfrowe Ukªady Scalone

x y x y x y x + y x y

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Podstawy modelowania w j zyku UML

Pamięć. dr hab. inż. Krzysztof Patan, prof. PWSZ. Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa w Głogowie k.patan@issi.uz.zgora.

Bash i algorytmy. Elwira Wachowicz. 20 lutego

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

1 Pami wirtualna. 1.1 Stronicowanie

Wykład 2. Budowa komputera. W teorii i w praktyce

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

Budowa i zasada działania komputera. dr Artur Bartoszewski

Programowanie wspóªbie»ne

Lekcja 5 Programowanie - Nowicjusz

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

Listy i operacje pytania

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

Mikroprocesor Operacje wejścia / wyjścia

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

Metody dowodzenia twierdze«

1 Bª dy i arytmetyka zmiennopozycyjna

Rozwi zania klasycznych problemów w Rendezvous

CCNA Subnetting Guide

System pamięci. Pamięć wirtualna

przewidywania zapotrzebowania na moc elektryczn

Organizacja typowego mikroprocesora

1 Zarys architektury MIPS

System pamięci. Pamięć wirtualna

Pomiar mocy pobieranej przez napędy pamięci zewnętrznych komputera. Piotr Jacoń K-2 I PRACOWNIA FIZYCZNA

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

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2014 CZĘŚĆ PRAKTYCZNA

Schematy zarzadzania pamięcia

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

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

1. Warunek ka»dy proces w ko«cu wejdzie do sekcji krytycznej jest

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

Ostatnia cena sprzeda y klienta 1.0 dodatek do Symfonia Faktura dla 1 firmy

NAP D I STEROWANIE PNEUMATYCZNE

Mikroprocesory rodziny INTEL 80x86

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

Magistrala systemowa (System Bus)

XVII Warmi«sko-Mazurskie Zawody Matematyczne

Subversion - jak dziaªa

Elementy składowe komputera. Płyta główna

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

Programowanie wspóªbie»ne

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

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

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

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Charakterystyka systemów plików

Janusz Adamowski METODY OBLICZENIOWE FIZYKI Zastosowanie eliptycznych równa«ró»niczkowych

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

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]

MODEL HAHNFELDTA I IN. ANGIOGENEZY NOWOTWOROWEJ Z UWZGL DNIENIEM LEKOOPORNO CI KOMÓREK NOWOTWOROWYCH

Temat: Pamięci. Programowalne struktury logiczne.

Wojewódzki Konkurs Matematyczny

Macierze i Wyznaczniki

Systemy mikroprocesorowe - projekt

1 Stos: Stack i Stack<T>

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Programowanie i struktury danych

Mnożenie macierzy. Systemy z pamięcią współdzieloną Systemy z pamięcią rozproszoną Efektywność

Współczesne nowoczesne budownictwo pozwala na wyrażenie indywidualnego stylu domu..

System pamięci. Pamięć wirtualna

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

Ukªady równa«liniowych - rozkªady typu LU i LL'

Który z podzespołów komputera przy wyłączonym zasilaniu przechowuje program rozpoczynający ładowanie systemu operacyjnego? A. CPU B. RAM C. ROM D.

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

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Badanie silnika asynchronicznego jednofazowego

Procesor: w architekturze x86, osiągający co. wbudowane głośniki 2 x 1 W. Strona 1 z 11

Zaawansowana adresacja IPv4

Transkrypt:

1 Rodzaje pami ci W systemach komputerowych mamy do czynienia z pami ci wewn trzn (póªprzewodniki) oraz pami ci zewn trzn (techniki zapisu magnetyczne, optyczne). Pami ci wewn trzne dzielimy na dwa podstawowe rodzaje: RAM i ROM. Do masowej produkcji RAM stosujemy dwa rodzaje ukªadów: SRAM (Static RAM) i DRAM (Dynamic RAM). SRAM jest budowana w zasadzie w znany nam sposób: za pomoc przerzutników. Ukªady DRAM zbudowane s z czego± w rodzaju kondensatorów. Pami DRAM jest co jaki± czas (kilka milisekund) od±wie»ana, poniewa» ªadunek z kondensatorów ucieka. Gªówna cz ± pami ci RAM jest zbudowana we wspóªczesnych komputerach jako ukªady DRAM s one g ±ciej upakowane ni» SRAM, zu»ywaj mniej energii, produkuj mniej ciepªa i s ta«sze. Przewag SRAM jest szybko± dost pu (Porównanie czasu dost pu w 2004 r.: SRAM 0.5-5ns, DRAM 50-70ns, twardy dysk: kilkana±cie milionów ns.). Z tego powodu zazwyczaj pewna cz ± pami ci (pami podr czna procesora, cache) jest pami ci SRAM. Pami ROM (nieulotna, zachowuje dane po odª czeniu zasilania) przechowuje dane od których zale»y funkcjonowanie systemu, np. program wykonywany podczas inicjalizacji komputera. Oprócz komputerów, ROM jest wykorzystywana w systemach wbudowanych, czy innych systemach nie wymagaj cych programowania. Pami ROM mo»e by zrealizowana jako ukªad kombinacyjny: na wej±ciu podawany jest adres, na wyj±ciu pojawia si zawarto±» danej komórki pami ci. 2 Hierarchia pami ci Procesor - cache L1 - cache L2 - (cache L3) - pami gªówna - dyski magnetyczne - dyski optyczne - pami ci ta±mowa. Im dalej od procesora tym wolniej, ale taniej, wi cej i rzadziej... 3 Lokalno± odwoªa«wydajne funkcjonowanie systemu pami ci we wspóªczesnych systemach komputerowych bazuje na twz. lokalno±ci odwoªa«. Zasada jest taka: je±li przenosimy zawarto± fragmentu pami ci, który jest aktualnie potrzebny na wy»szym poziomie, to przy okazji przenosimy równie» troch s siednich danych, licz c,»e przydadz si one za chwil. Dlaczego taka strategia dobrze dziaªa? Rozkazy s zazwyczaj ªadowane sekwencyjnie, dane ukªadane w tablice, w programach wyst puj p tle... 4 Pami podr czna Chcemy uzyska (prawie) tak przeci tn szybko± transferu jak maj najszybsze pami ci (SRAM), mimo»e zdecydowana wi kszo± pami ci w naszym systemie jest zbudowana przy u»yciu ta«szej technologii (DRAM). Pami skªada si z 2 n sªów, ka»de sªowo ma swój jednoznaczny n-bitowy adres. Pami t dzielimy na pewn liczb bloków, z których ka»dy zawiera K sªów. Mamy zatem 2 n /K bloków. Pami podr czna zawiera C wierszy, z których ka»dy mie±ci K sªów (odpowiada zatem blokowi). Oczywi±cie C jest zdecydownanie mniejsze od 2 n /K. W ka»dej chwili pewne bloki pami ci gªównej znajduj si w pami ci podr cznej. Ka»dy wiersz zawiera znacznik okre±laj cy, który blok aktualnie przechowuje. Typowy schemat odwoªania do pami ci cache wygl da nast puj co: 1

Rysunek 1: Prosty system pami ci podr cznej odczytanie rzeczywistego adresu RA z CPU czy blok zawieraj cy RA jest w cache? je±li tak (traenie) prze±lij odpowiednie sªowo do CPU je±li nie (chybienie): znajd¹ blok w pami ci gªównej zawieraj cy RA przydziel wiersz cache blokowi dostarcz sªowo z RA do CPU zaªaduj blok pami ci gªównej do wiersza cache Rysunek 2: Typowa organizacja pami ci podr cznej Projektuj c pami cache nale»y ustali nat puj ce parametry: liczba poziomów pami ci cache pojemno± pami ci na ka»dym poziomie funkcja odwzorowuj ca algorytm wymiany 2

Rysunek 3: Struktura pami ci gªównej i podr cznej sposób zapisu rozmiar bloku 4.1 Funkcja odwzorowuj ca Do którego wiersza pami ci cache powinien tra dany blok? Trzy mo»liwe rozwi zania: bezpo- ±rednie, skojarzeniowe i sekcyjno-skojarzeniowe. Rozwa»a b dziemy przykªad: pami podr czna 64 KB bloki s czterobajtowe; cache ma zatem 2 14 wierszy pami gªówna to 16 MB; sªowo to pojedynczy bajt; adres ma zatem 24 bity; liczba bloków: 4 M. 4.1.1 Odwzorowanie bezpo±rednie Ka»dy blok pami ci ma przypisany dokªadnie jeden wiersz cache. Numer wiersza i zale»y od numeru bloku j i liczby wierszy cache m w prosty sposób: i = j mod m. W naszym przykªadzie oraganizacja b dzie taka jak na rysunku 5. Wiersz pierwszy ma przyporz dkowane bloki 000000,010000,...,FF0000. Wiersz pierwszy bloki 000001,010001,...,FF0001. Znacznikiem w tym przypadku jest osiem pierwszych bitów adresu rzeczywistego. Odwzorowanie bezpo±rednie jest metod prost i tani w realizacji. Wad jest sztywne przypisanie bloku do wiersza. W efekcie, je±li pewne dwa bloki, dziel ce ten sam wiersz s ±ci gane na przemian, wydajno± systemu spada. 3

Rysunek 4: Odwzorowanie bezpo±rednie 4.1.2 Odwzorowanie skojarzeniowe (asocjacyjne) Ka»dy blok mo»e by ªadowany do dowolnego wiersza. W efekcie znacznikiem musi by caªy numer bloku, czyli w naszym przypadku 22 bity (dwa ostatnie bity oznaczaj przesuni cie w bloku). Ogólna organizacja skojarzeniowej pami ci podr cznej oraz sytuacja w naszym przykªadzie przedstawione s na rysunkach 6, 7. Odwzorowanie skojarzeniowe wymaga zaprojektowania algorytmu wymiany. Jest elastyczne, ale jego wad s zªo»one ukªadu sªu» ce do jednoczesnego badania wszyskich znaczników jednocze±nie. Dlatego w praktyce u»ywa si rozwi zania po±redniego. 4.1.3 Odwzorowanie sekcyjno-skojarzeniowe W tym rozwi zaniu pami podr czna podzielona jest na v sekcji, z których ka»da skªada si z k wierszy. Blok pami ci mo»e by przechowywany w dowolnym wierszu ustalonej sekcji (kompromis pomi dzy poprzednimi rozwi zaniami). Je±li przez i oznaczymy numer sekcji, j numer bloku, m liczb wierszy, to wzory s nast puj ce: m = v k, i = j mod v. Adres rzeczywisty jest dzielony logicznie na trzy pola: znacznik, sekcja, sªowo. Za pomoc d bitów wybieramy jedn z v = 2 d sekcji. Porównujemy równolegle wszyskie znaczniki i je±li trali±my to wybieramy odpowiednie sªowo z wiersza (o tym decyduj najmniej znacz ce bity adresu). W naszym przykªadzie (rys. 9) u»ywamy pami ci z liczb wierszy w sekcji k = 2. Znacznik musi mie 9 bitów, numer sekcji 13, a sªowo, tak jak poprzednio 2. W skrajnych przypadkach: v = m, k = 1 mamy odwzorowanie bezpo±rednie, v = 1, k = m odwzorowanie skojarzeniowe. W praktyce u»ywa si niewielkich k 2 lub 4. Dalsze zwi kaszanie k przynosi bardzo niewielki wzrost liczby trae«przy niewspóªmiernie du»ym wzro±cie komplikacji sprz tu. 4

Rysunek 5: Przykªad odwzorowania bezpo±redniego 4.2 Co si dzieje w przypadku chybienia odczytu? Potok musi zosta opó¹niony - wysyªamy do ukªadu pami ci warto± PC-4,» damy przesªanie odpowiedniego bloku, zapisujemy dane (i znacznik) do wiersza pami ci cache, wznawiamy potok (je±li chybienie nast piªo przy pobieraniu rozkazu, ponownie pobieramy rozkaz). 4.3 Algorytmy wymiany Dotyczy rozwi zania skojarzeniowego i sekcyjno-skojarzeniowego. Gdy wprowadzamy nowy blok do pami ci podr cznej, wtedy jeden z dotychczasowych trzeba wyrzuci. Który? Nasz algorytm musi by mo»liwie prosty, poniewa» b dzie oczywi±cie implementowany sprz towo. Wymienimy cztery najcz ±ciej u»ywane algorytmy: 1. least-recently used wymieniamy ten, do którego odwoªywali±my si najdawniej; w przypadku pami ci skojarzeniowo-sekcyjnej dwudro»nej strategia ta jest ªatwa do zaimplementowania: mamy dodatkowy bit dla ka»dego wiersza cache. Gdy si do niego odwoªujemy ustawiamy bit na 1, a bit drugiego wiersza w sekcji na 0. Wymieniamy ten, który ma aktualnie 0. 2. rst-in-rst-out w rozwa»anym przypadku dwudro»nym równie» ªatwy do zrealizowania 3. least-frequently used z ka»dym wierszem musimy zwi za licznik 5

Rysunek 6: Organizacja skojarzeniowej pami ci podr cznej 4. przypadkowo co ciekawe, okazuje si,»e losowa wymiana nie jest du»o gorsza od wcze- ±niejszych algorytmów 4.4 Algorytm zapisu Kolejna istotna kwestia spójno± danych umieszczonych w pami ci podr cznej i w pami ci gªównej. Przed wymian bloku w cache musimy ustali, czy stary blok nie zostaª zmieniony i czy wobec tego nie trzeba zmieni zawarto±ci pami ci gªównej. W rzeczywistych systemach mamy problem: do pami ci gªównej mo»e mie dost p wi cej ni» jedno urz dzenie. Na przykªad moduª IO mo»e zapisywa /odczytywa pami bezpo±rednio (bez udziaªu procesora). Mo»liwe algorytmy: Zapis jednoczesny (write through). Wszystkie operacje zapisu s prowadzone jednocze±nie na pami ci podr cznej i gªównej (statystycznie okoªo 15 % operacji dost pu do pami ci to zapisy). Ewentualne inne moduªy wyposa»one we wªasn pami cache monitoruj wtedy magistral i równocze±nie uaktualniaj swoj zawarto±. Wada du»y przepªyw danych pomi dzy cache a pami ci gªówn. Aby nie spowalnia potoku mo»emy mie dodatkowy bufor zapisu - dane zapisywane s do bufora, z którego pó¹niej przenoszone s do pami ci (potok dziaªa dalej). Bufor ma zazwyczaj od jednej do kilku pozycji. Drugie rozwi zanie: zapis opó¹niony (write back) aktualizuje si tylko pami cache. Dopiero podczas wymiany bloku sprawdza si (bit aktualizacji) czy blok byª modykowany i je±li tak kopiuje si go do pami ci gªównej. Wada pami gªówna nie zawsze jest aktualna zatem moduªy IO musz korzysta z pami ci podr cznej. Powa»ne problemy (przy obydwu rozwi zaniach) mog wyst powa, gdy wiele urz dze«(zwykle procesorów) posiada wªasne pami ci podr czne. Wtedy nawet przy zapisie jednoczesnym pami ci podr czne poszczególnych urz dze«mog by nieaktualne. Spójno± systemu pami ci 6

Rysunek 7: Przykªad odwzorowania asocjacyjnego podr cznej jest obecnie przedmiotem intensywnych testów. 4.5 Rozmiar pami ci cache Nie mo»e by zbyt du»a z kilku powodów: cena (chcemy utrzyma przeci tn cen bitu caªego systemu pami ci systemowej na poziomie pami ci DRAM), zajmowane miejsce (umieszczamy j w procesorze), szybko± dziaªania (du»a pami cache dziaªa wolniej ni» maªa ze wzgl du na czas adresowania liczba bramek adresuj cych jest wi ksza). Trudno poda oczywi±cie najlepszy rozmiar to zale»y np. od tego jakie programy s wykonywane. 4.6 Rozmiar bloku Wydaje si,»e optymalny jest rozmiar kilku-kilkunastu (maksymalnie kilkudziesi ciu) jednostek adresowalnych (sªów lub bajtów). Testy wykazuj,»e pocz tkowe zwi kszanie rozmiaru bloku zwi ksza wspóªczynnik trae«, ale pó¹niej zaczyna on male (wi ksze bloki == mniej bloków po pobraniu bloku mo»e on zosta szybko wymieniony; du»e bloki pobierane s sªowa do± odlegªe od potrzebnego) 4.7 Liczba pami ci podr cznych W momencie wprowadzenia pami ci cache system posiadaª zazwyczaj pojedyncz pami c cache. Obecne systemy dysponuj zazwyczaj kilkoma poziomami cache, dodatkowo czasem pami 7

Rysunek 8: Organizacja sekcyjno-skojarzeniowa pami ci podr cznej rozkazów jest oddzielona od pami ci danych. 4.7.1 Pami ci wielopoziomowe Pierwszy poziom znajduj si bezpo±rednio w procesorze. Nie wykorzystuje on zatem oczywi±ci szyny systemowej. Oznaczany jest zazwyczaj jako L1. We obecnych systemach buduje si tak»e dodatkowe poziomy. Poziom L2 zawiera wi cej pami ci ni» poziom L1, dost p do niego mo»e by nieco wolniejszy, ale równie» nia u»ywa zazwyczaj szyny systemowej. Znajduje si obecnie zazwyczaj równie» na chipie procesora. Badania wykazuj,»e wprowadzenie drugiego poziomu poprawia funkcjonowanie systemu. Nie jest to takie oczywiste, bo oczywi±ci komplikuje si ukªad steruj cy (dodatkowe problemy z wymian, strategi zapisu, itp.). W niektórych systemach nie ko«czy si na dwóch poziomach. Np. w Itanium mamy: L1 (16KB+16KB), L2 (96KB) i L3 (4MB). 4.7.2 Jednolita czy dzielona pami cache? Od pewnego czasu standardowe staje si dzielenie pami ci cache na pami rozkazów i pami danych. Zauwa»my,»e przewaga cache jednolitego jest automatyczne balansowanie liczby roz- 8

Rysunek 9: Przykªad organizacji sekcyjno-skojarzeniowej pami ci podr cznej (dwudro»nej) kazów i danych oraz prostota ukªadu steruj cego. Z czego wynika zatem tendencja do dzielenia pami ci: spisuje si ona lepiej w maszynach superskalarnych i potokowych. 5 Organizacja pami ci podr cznej w procesorze Pentium 4 Historia: 386 bez cache procesora; 486 8kb, rozmiar bloku 16 bajtów, czterodro»na pami sekcyjno-asocjacyjna; Pentium dwie pami ci cache (dane, rozkazy) W przypadku Pentium 4 (jednego z modeli) mamy 8KB pami ci danych na poziomie L1 (64 bajty w bloku, czterodro»na) oraz osobny cache dla rozkazów (o nim za chwil ). Poziom L2 obsªuguje obydwie cz ±ci poziomu L1 (128 bajtów, o±miodro»ny, 256 KB). W cache rozkazów umieszczane s nie rozkazy asemblera, ale mikrorozkazy, które przeszªy ju» przez cykl pobrania (z pami ci L2) i zdekodowania. 9