Sekvenční architektury. Optimalizace přístupu do paměti Pamět ový subsystém PC Statické paměti Dynamické paměti Cache
|
|
- Alena Říhová
- před 8 lety
- Počet zobrazení:
Transkript
1 Sekvenční architektury Sekvenční architektury Optimalizace přístupu do paměti Pamět ový subsystém PC Statické paměti Dynamické paměti Cache
2 Sekvenční architektury Definition Za sekvenční systém budeme považovat systém založený na von Neumannově architektuře s jednou centrální jednotkou - CPU. Sekvenční systém může být doplněn o aritmeticko logickou jednotku - ALU.
3 Von Neumannova architektura - připomenutí RAM CPU Timer I/O
4 Jak urychlit výpočet na sekvenčním systému?
5 Jak urychlit výpočet na sekvenčním systému? na straně hardware zrychlit spojení mezi CPU a RAM zvýšit výkon CPU na straně software optimalizovat přístup do paměti eliminovat zbytečné instrukce programu nebo instrukce náročné na provedení
6 Pamět ový subsystém PC Zdroj: Henessy, Patterson, Computer architecture: A quantitative approach, Morgan Kaufmann, 2011.
7 Pamět ový subsystém PC Výkon CPU roste mnohem rychleji než rychlost RAM: memory wall Von Neumann bottleneck Rychlost komunikace mezi pamětí a procesorem je dána: latencí (latency) udává, za jak dlouho je pamět ový modul schopný vyhledat požadovaná data je podstatná tehdy, pokud čteme malé bloky dat z různých míst v paměti přenosovou rychlostí (bandwidth) udává, jak rychle lze přenášet bloky dat po jejich nalezení uplatní se při práci s velkými souvislými bloky dat
8 Pamět ový subsystém PC Rozlišujeme dva základní typy pamětí: statická pamět - static RAM dynamická pamět - dynamic RAM
9 Statická pamět jeden bit je reprezentován 6 tranzistory tato pamět je velmi rychlá a nevyžaduje žádné obnovovací cykly využívá se zejména pro cache procesorů je velmi drahá
10 Dynamická pamět jeden bit je reprezentován 1 tranzistorem a 1 kondenzátorem tato pamět je jednodušší, ale vyžaduje obnovovací cykly pro dobíjení kondenzátoru kondenzátory se vybíjejí při čtení, ale i samovolně během obnovovacího cyklu nelze s pamětí pracovat tento typ paměti je ale výrazně menší (a tedy levnější) než statická pamět a má menší spotřebu energie
11 Organizace dynamické paměti DRAM nelze organizovat lineárně tj. připojit každou pamět ovou buňku k CPU přímo při 4 Gb RAM by to vyžadovalo 2 32 spojů adresa buňky se proto zakóduje jako binární číslo a je pak zpracována demultiplexorem aby nemusel být demultiplexor příliš složitý, organizuje se DRAM do 2D pole
12 Přístup do DRAM celá adresa se rozdělí na index řádku (RAS) a index sloupce (CAS) pamět ový modul nejprve přijme RAS a "připojí" požadovaný řádek následně přijme CAS a "připojí" požadovanou buňku pokud pracujeme s několika buňkami v jednom řádku, lze k nim přistupovat jen pomocí poslání jednoho RAS a několika CAS to může být výrazně rychlejší je lepší zpracovávat data sekvenčně nebo v malých blocích, než náhodně přistupovat na různá místa v paměti
13 Typy pamětí DRAM Nejčastěji se používá synchronní DRAM tj. SDRAM. nejjednodušší typ je SDR SDRAM (Single Data Rate SDRAM) pamět ový modul a sběrnice jsou taktovány stejně tj MHz. při 100 MHz je datová propustnost 100, 000, b/s = 800MB/s.
14 Typy pamětí DRAM Nástupce pamětí SDR SDRAM je DDR SDRAM (Double Data Rate SDRAM) na rozdíl od SDR SDRAM přenáší data i na sestupné hraně signálu aby bylo co přenášet, obsahuje pamět ový modul vyrovnávací pamět, která je připojena ke dvěma pamět ovým čipům při 100 MHz je datová propustnost Mb/s = 1, 600MB/s. zvýšila se tím datová propustnost, aniž by se navýšil takt pamět ových modulů, což by bylo energeticky velmi náročné
15 Typy pamětí DRAM DDR2 SDRAM - zvyšuje frekvenci přenosu dat na dvojnásobek pamět ové čipy jsou taktovány stejně, ale řadič pracuje rychleji proto je potřeba číst v jednom taktu z celkem 4 čipů při 100 MHz je datová propustnost 4 100, 000, b/s = 3, 200MB/s při 266 MHz je datová propustnost 4 266, 000, b/s = 8, 512MB/s
16 Typy pamětí DRAM DDR3 SDRAM - zvyšuje frekvenci přenosu dat na čtyřnásobek při 100 MHz je datová propustnost 8 100, 000, b/s = 6, 400MB/s při 266 MHz je datová propustnost 8 266, 000, b/s = 17, 024MB/s DDR4 SDRAM - navyšují takty pamět ových modulů (dostupné od roku 2014) při 200 MHz je datová propustnost 8 200, 000, b/s = 12, 800MB/s při 300 MHz je datová propustnost 8 300, 000, b/s = 19, 200MB/s Standard DDR5 se plánuje na rok 2020.
17 Typy pamětí DRAM viděli jsme, jak dochází k urychlení přenosu dat mezi CPU a RAM bylo ho dosaženo jen díky paralelnímu přístupu do více pamět ových modulů z modulu se čte blok 64 bitů = 8 bytů najednou pokud program ale využije jen jeden byte, není datová sběrnice využita plně efektivně podobný trik využívá i technologie Dual/Triple/Quad channel data se ukládají do dvou,tří nebo čtyř pamět ových modulů na přeskáčku DDR 4 quad channel GB/s = 76.8GB/s Žádná z jmenovaných technologii zatím výrazně nesnížila latenci.
18 Cache Za tím účelem se používají malé a rychlé vyrovnávací pamětí postavené na čipech SRAM - cache jde o poměrně malou ale velice rychlou pamět velikost je řádově 1/1000 velikosti operační paměti přístup do RAM je cca. 200 cyklů CPU přístup do cache je 3-15 cyklů CPU je implementována přímo na stejném čipu jako procesor a běží na stejném taktu v cache se udržuje kopie některých dat z operační paměti, pokud se pracuje s těmito daty, CPU sahá přímo do cache a ne do pomalé operační paměti využívá se faktu, že u operační paměti je snazší zvýšit přenosovou rychlost, než zkrátit latenci do cache se načítají větší souvislé bloky dat, ke kterým je pak rychlejší přístup správa cache je plně v režii CPU, programátor nebo OS mají jen malou možnost ovlivnit cache
19 Cache současné procesory obsahují několik úrovní cache označují se L1, L2 a L3 L1 se dělí na datovou a instrukční čím menší číslo, tím menší ale rychlejší cache je
20 Cache CPU se snaží, aby cache obsahovala ta data, se kterými program právě pracuje. procesor předpokládá, že právě běžící program pracuje s menšími ucelenými bloky dat a nepřistupuje do operační paměti na zcela náhodné adresy tomu se říká prostorová lokalita - spatial locality dále se předpokládá, že program nejprve zpracuje jeden blok dat, pak se posune k dalšímu bloku a k tomu původnímu se nevrací to je časová lokalita - temporal locality
21 Cache procesor provádí tzv. prefetching, tj. načítání dat s předstihem pokouší se odhadnout, jaká data budou brzy potřeba a načíst si je do cache dřív, než si o to řekne program sám pak je schopen k nim poskytnout mnohem rychlejší přístup
22 Jak funguje cache? data se do cache přenáší ve větších blocích, nejčastěji 64 bytů, což se provede v celkem 8 přenosech SDRAM jsou pro tento přenos optimalizovány a ušetří se tím vysílaní RAS a CAS signálů bloku dat, který je přenesen do cache najednou se říká cache line každá cache line musí být označena podle své adresy v operační paměti pokud chce program pracovat s určitou adresou, musí procesor nejprve zjistit, zda má tato data kešovaná nebo ne to musí být pochopitelně velmi rychlé
23 Plně asociativní cache Nejjednodušší přístup k organizování cache je fully associative cache...
24 Plně asociativní cache O 0 T A G EI no a O g A CACHE ( CACHE LINE = 1 B) RAM 1 9 r 0 0 l 1 PLNEASOCIATIVNT CACHE POJME LIBOUOLNOU KONDINACIADRES l l O l
25 Plně asociativní cache u plně asociativní cache přísluší každé cache line jeden komparátor, který porovná tag uložené cache line s cache line, která je vyžadovaná od CPU
26 Plně asociativní cache Na systémech s 32-bitovým adresováním se... celá adresa se rozdělí na tag a offset offset odpovídá adrese v rámci cache line, tj. má velikost O = 6 bitů zbývající část T = 26 bitů připadne tagu Obrázek : T = 26, S = 0 a O = 6
27 Plně asociativní cache jednotlivé cache line mohou odpovídat libovolným místům v paměti při velikosti cache 4 MB, máme celkem 4M/64 = 65, 536 komparátorů to by bylo velice náročné z hardwarového pohledu a drahé na výrobu Další možností je zkonstruovat cache s přímým mapováním direct mapped cache...
28 Cache s přímým mapováním O TAG ) CACHESET l # e 0 O 4 00 l l re l l R l l no CACHE ( CACHE LINE = 1 B) e 1 R R 1 l ^ Ol 0 RAM 1 9 r 0 0 l l CACHE SPRYMY 'n MAPOVAHIM l 0 0 NEUDRZINAJEDNOU DUE ADRESY USICT SE 0 CECOCISECNY ' NAIOBEK R 0 UEUKOSTI CACHE e l a r r
29 Cache s přímým mapováním pokud CPU potřebuje vyhledat data v cache, podívá se na část adresy odpovídající cache set okamžitě ví, kam má do cache sáhnout (to provádí multiplexor) aby zjistil, zda je zde uložena požadovaná cache line, provede porovnání těch částí adresy, které odpovídají tagu na to stačí jeden komparátor
30 Cache s přímým mapováním
31 Cache s přímým mapováním mějme opět 4 MB cache tj. 65, 536 cache line celou operační pamět si můžeme rozdělit právě na 65, 536 segmentů, kterým se říká cache set každou cache set lze adresovat pomocí 16 bitů spolu s offsetem to dělá = 22 bitů zbylých 10 bitů zůstává pro tag Obrázek : T = 10, S = 16 a O = 6
32 Cache s přímým mapováním tento typ cache je mnohem jednodušší na konstrukci problém je, že nelze mít v cache dvě cache line, které se liší jen tagem takové adresy se opakují po = 4M, tj. velikost cache to sice dobře souhlasí s podmínkou spatial locality, ale jakmile aplikace pracuje s větším blokem paměti, je tento přístup neefektivní V praxi se volí kombinace obou přístupů, tj. set associative cache...
33 , Set associative cache TAG CACHE SET % ^
34 Set associative cache celou cache rozdělíme na menší počet cache sets, ale do každé z nich umožníme uložit větší počet cache line 2, 4 nebo 8 velikost cache set adresy se zmenší o 1, 2 nebo 3 bity a tagová část se příslušně zvětší multiplexor vybere příslušnou cache set v ní je nyní 2 až 8 cache lines pomocí 2 až 8 komparátorů se provede porovnání tagové adresy
35 Set associative cache
36 Set associative cache L2 Cache Size Associativity Direct CL=32 CL=64 CL=32 CL=64 CL=32 CL=64 CL=32 CL=64 512k 27,794,595 20,422,527 25,222,611 18,303,581 24,096,510 17,356,121 23,666,929 17,029,334 1M 19,007,315 13,903,854 16,566,738 12,127,174 15,537,500 11,436,705 15,162,895 11,233,896 2M 12,230,962 8,801,403 9,081,881 6,491,011 7,878,601 5,675,181 7,391,389 5,382,064 4M 7,749,986 5,427,836 4,736,187 3,159,507 3,788,122 2,418,898 3,430,713 2,125,103 8M 4,731,904 3,209,693 2,690,498 1,602,957 2,207,655 1,228,190 2,111,075 1,155,847 16M 2,620,587 1,528,592 1,958,293 1,089,580 1,704, ,530 1,671, ,324 Tabulka : Efekt velikosti cache, asociativity a cache line na počet "cache misses". Testováno na gcc. V linuxu lze asociativitu cache zjistit příkazem: cat /sys/devices/system/cpu/cpu0/cache/index0/ways_of_associativity
37 Efekt cache Příklad: Budeme procházet následující spojový seznam: 1 template < i n t Size > 2 class ArrayElement 3 { 4 ArrayElement next ; 5 long i n t data [ Size ] ; 6 } všechny prvky seznamu se alokují jako velké pole následně se propojí bud sekvenčně nebo náhodně
38 Efekt cache seznam budeme pouze opakovaně procházet a budeme načítat první položku v poli data hodnota Size simuluje různou velikost jednoho prvku seznamu long int má stejnou velikost jako ukazatel, tj. 32 nebo 64 bitů podle toho, jestli máme 32 nebo 64 bitový systém
39 Efekt cache CPU tics/element Bandwidth in GB/sec kb 4 kb 16 kb 64 kb 256 kb 1 MB 4 MB 16 MB 64 MB Array size 0 1 kb 4 kb 16 kb 64 kb 256 kb 1 MB 4 MB 16 MB 64 MB Array size Obrázek : Výsledky s náhodným procházením pole na Intel Core 2 s 16Kb L1 cache, 4MB L2 cache a pamětmi DDR2. RAM 200 cyklů L2 cache 15 cyklů L1 cache 4 cykly
40 Efekt cache CPU tics/element kb 4 kb 16 kb 64 kb 256 kb 1 MB 4 MB 16 MB 64 MB Array size Bandwidth in GB/sec kb 4 kb 16 kb 64 kb 256 kb 1 MB 4 MB 16 MB 64 MB Array size Obrázek : Výsledky se sekvenčním procházením pole s různou velikosti Size na Intel Core 2 s 16Kb L1 cache a 4MB L2 cache.
41 Efekt cache - prefetching procesor provádí prefetching, tj. načítá několik cache line dopředu je-li Size = 1, do jedné cache line se vejde 8 prvků pole je-li Size = 8 je to jen 1 je-li Size = 32 je jeden element čtyřikrát větší než cache line
42 Efekt cache Random Sequential 15 CPU tics/element Bandwidth in GB/sec kb 4 kb 16 kb 64 kb 256 kb 1 MB 4 MB 16 MB 64 MB Array size Random Sequential 0 1 kb 4 kb 16 kb 64 kb 256 kb 1 MB 4 MB 16 MB 64 MB Array size Obrázek : Porovnání náhodné a sekvenční procházení pole na Intel Core 2 s 16Kb L1 cache a 4MB L2 cache.
43 Efekt cache AMD Phenom T Intel i7 3770K Intel Core2 E AMD Phenom T Intel i7 3770K AMD FX 6100 Intel Core2 E6600 Bandwidth in GB/sec Bandwidth in GB/sec kb 4 kb 16 kb 64 kb 256 kb 1 MB 4 MB 16 MB 64 MB Array size 6 1 kb 4 kb 16 kb 64 kb 256 kb 1 MB 4 MB 16 MB 64 MB Array size Obrázek : Porovnání náhodného a sekvenčního čtení pro různé procesory. AMD Phenom2 1075T 64 kb L1, 512 kb L2, 6 MB L3, GHz, Q Intel i7 3770K 32 kb L1, 256 kb L2, 8 MB L3, GHz, Q AMD FX kb L1, 1024 kb L2, 8 MB L3, GHz, 2011 Q4 Intel Core2 E kb L1, 4 MB L2, 2.4 Ghz, Q3 2006
44 Zapisování dat pokud je nějaká cache line změněna, jsou dvě možnosti, co udělat provést okamžitý zápis do RAM write-through cache je to jednoduchá strategie, ale na příliš účinná pokud program opakovaně zapisuje do stejné proměnné, je většina zápisů do operační paměti zbytečná provést zápis do RAM později write-back cache cache line se označí jako dirty ve chvíli, kdy je potřeba uvolnit nějaká data z cache, kontroluje se zda cache line není takto označena a pokud ano, provede se zápis do RAM
45 Efekt cache 250 Read Write 6 Read Write 200 Bandwidth in GB/sec Bandwidth in GB/sec kb 4 kb 16 kb 64 kb 256 kb 1 MB 4 MB 16 MB 64 MB Array size 2 1 kb 4 kb 16 kb 64 kb 256 kb 1 MB 4 MB 16 MB 64 MB Array size Obrázek : Porovnání procházení pole náhodně a sekvenčně se čtením a zápisem na Intel Core 2 s 16Kb L1 cache a 4MB L2 cache.
46 Efekt cache Testy nám ukazují, že: vždy se vyplatí využívat maximálně data, která máme již v cache sekvenční přístup do paměti je mnohem rychlejší než náhodný procházení pole je mnohem rychlejší, než procházení spojového seznamu při procházení pole s rostoucí velikostí ArrayElement klesá efektivita, protože využíváme jen některá data načtená do cache Pokud to jde: ukládáme data do paměti sekvenčně organizovaná tak, jak k nim nejčastěji přistupujeme to je důsledek spatial locality a prefetchingu pokud s daty pracujeme během výpočtu opakovaně, je lepší rozdělit výpočet na menší bloky, které se vejdou do cache to je důsledek temporal locality
47 Efekt cache Příklad: Může být výhodné nahradit pole struktur 1 struct Element 2 { 3 SmallKey key ; 4 BigData data ; 5 } za pole struktur 1 struct Element 2 { 3 SmallKey key ; 4 BigData data ; 5 } Při procházení pole a vyhledávání podle klíče se nebude cache zahlcovat samotnými daty, která nás většinou nezajímají.
48 Efekt cache - sčítání matic Příklad: Program matrix-addition testuje sčítání matic. Matice jsou v paměti uloženy po řádcích. Jsou dvě možnosti jak matice sčítat: 1 void addmatrixrowwise ( const ArrayMatrix < Real >& m ) 2 { 3 for ( i n t i = 0; i < size ; i ++ ) 4 for ( i n t j = 0; j < size ; j ++ ) 5 this >matrix [ i size + j ] += 6 m. matrix [ i size + j ] ; 7 } 1 void addmatrixcolumnwise ( const ArrayMatrix < Real >& m ) 2 { 3 for ( i n t j = 0; j < size ; j ++ ) 4 for ( i n t i = 0; i < size ; i ++ ) 5 this >matrix [ i size + j ] += 6 m. matrix [ i size + j ] ; 7 } Pro zajímavost uděláme to samé s matici uloženou pomocí kontejneru vector ze standardní knihovny STD.
49 Efekt cache - sčítání matic GFLOPS STD row wise STD column wise Array row wise Array column wise Matrix size GFLOPS STD row wise STD column wise Array row wise Array column wise Matrix size Obrázek : Porovnání násobení matice s přístupem po řádcích a po sloupcích, uloženou jako pole nebo pomocí STD třídy vector na Intel Core2 Duo E6600 (vlevo) a AMD Phenom2 X6 1075T (vpravo).
50 Efekt cache - násobení matic Příklad: Při násobení matic se ale přístupu po sloupcích nevyhneme. 1 void m u l t i p l y M a t r i c e s ( const ArrayMatrix < Real >& m1, 2 const ArrayMatrix < Real >& m2 ) 3 { 4 for ( i n t i = 0; i < size ; i ++ ) 5 for ( i n t j = 0; j < size ; j ++ ) 6 { 7 Real aux ( 0.0 ) ; 8 for ( i n t k = 0; k < size ; k++ ) 9 aux += m1. mat ri x [ i size + k ] 10 m2. m a t r i x [ k size + j ] ; 11 this >ma tr ix [ i size + j ] = aux ; 12 } 13 }
51 Efekt cache - násobení matic GFLOPS Baseline Matrix size Obrázek : Klasický algoritmus pro násobení matic na AMD Phenom 2 X6 1075T.
52 Efekt cache - násobení matic Pomůžeme si tím, že druhou matici si nejprve transponujeme: 1 void m u l t i p l y M a t r i c e s W i t h T r a n s p o s i t i o n ( const ArrayMatrix < Real >& m1, 2 const ArrayMatrix < Real >& m2 3 { 4 Real transposedmatrix = new Real [ size size ] ; 5 for ( i n t i = 0; i < size ; i ++ ) 6 for ( i n t j = 0; j < size ; j ++ ) 7 transposedmatrix [ i size + j ] = 8 m2. m a t r i x [ j size + i ] ; 9 10 for ( i n t i = 0; i < size ; i ++ ) 11 for ( i n t j = 0; j < size ; j ++ ) 12 { 13 Real aux ( 0.0 ) ; 14 for ( i n t k = 0; k < size ; k++ ) 15 aux += m1. mat ri x [ i size + k ] 16 transposedmatrix [ j size + k ] ; 17 this >ma tr ix [ i size + j ] = aux ; 18 } delete [ ] transposedmatrix ; 21 }
53 Efekt cache - násobení matic GFLOPS Baseline Transposition Matrix size Obrázek : Klasický algoritmus pro násobení matic a algoritmus s transpozicí na AMD Phenom 2 X6 1075T.
54 Efekt cache - násobení matic provádět transpozici ale může výrazně zvýšit nároky na pamět jinou možností je provést násobení blokově 1 template < i n t blocksize = 16 > 2 void m u l t i p l y M a t r i c e s B l o c k w i s e 1 ( const ArrayMatrix < Real >& m1, 3 const ArrayMatrix < Real >& m2 ) 4 { 5 memset ( this >matrix, 0, size size sizeof ( Real ) ) ; 6 for ( i n t i = 0; i < size ; i += blocksize ) 7 for ( i n t j = 0; j < size ; j += blocksize ) 8 for ( i n t k = 0; k < size ; k += blocksize ) 9 { 10 for ( i n t i 1 = i ; i 1 < i + blocksize ; i 1 ++ ) 11 for ( i n t j 1 = j ; j 1 < j + blocksize ; j 1 ++ ) 12 for ( i n t k1 = k ; k1 < k + blocksize ; k1++ ) 13 this >m a t r i x [ i 1 size + j 1 ] += 14 m1. m a t r i x [ i 1 size + k1 ] 15 m2. m a t r i x [ k1 size + j 1 ] ; 16 } 17 } 18 }
55 Efekt cache - násobení matic GFLOPS Baseline Transposition Blocks Matrix size Obrázek : Klasický algoritmus pro násobení matic, algoritmus s transpozicí a blokový algoritmus na AMD Phenom 2 X6 1075T.
56 Efekt cache - násobení matic výkon je ale překvapivě dost slabý důvodem je náročná aritmetika s ukazateli na řádcích 13, 14 a 15 provedeme optimalizaci 1 template < i n t blocksize = 16 > 2 void m u l t i p l y M a t r i c e s B l o c k w i s e 2 ( const ArrayMatrix < Real >& m1, 3 const ArrayMatrix < Real >& m2 ) 4 { 5 memset ( this >matrix, 0, size size sizeof ( Real ) ) ; 6 for ( i n t i = 0; i < size ; i += blocksize ) 7 for ( i n t j = 0; j < size ; j += blocksize ) 8 for ( i n t k = 0; k < size ; k += blocksize ) 9 { 10 Real res = &this >matrix [ i size + j ] ; 11 Real _m1 = &m1. matrix [ i size + k ] ; 12 for ( i n t i 1 = 0; 13 i 1 < blocksize ; 14 i1 ++, res += size, _m1 += size ) 15 for ( i n t j1 = 0; j1 < blocksize ; j1 ++ ) 16 { 17 Real _m2 = &m2. matrix [ k size + j ] ; 18 for ( i n t k1 = 0; 19 k1 < blocksize ; 20 k1++, _m2 += size ) 21 res [ j 1 ] += _m1[ k1 ] _m2[ j 1 ] ; 22 } 23 } 24 }
57 Efekt cache - násobení matic GFLOPS Baseline Transposition Blocks 1 Blocks Matrix size Obrázek : Klasický algoritmus pro násobení matic, algoritmus s transpozicí a blokový algoritmus na AMD Phenom 2 X6 1075T.
58 Efekt cache - násobení matic dál si můžeme všimnout, že prohozením smyček pro j1 a k1 lze počet operací dále zredukovat (ukazatel _m2 spravujeme nešikovně) 1 template < i n t blocksize = 16 > 2 void m u l t i p l y M a t r i c e s B l o c k w i s e 3 ( const ArrayMatrix < Real >& m1, 3 const ArrayMatrix < Real >& m2 ) 4 { 5 memset ( this >matrix, 0, size size sizeof ( Real ) ) ; 6 for ( i n t i = 0; i < size ; i += blocksize ) 7 for ( i n t j = 0; j < size ; j += blocksize ) 8 for ( i n t k = 0; k < size ; k += blocksize ) 9 { 10 Real res = &this >matrix [ i size + j ] ; 11 Real _m1 = &m1. matrix [ i size + k ] ; 12 for ( i n t i 1 = 0; 13 i 1 < blocksize ; 14 i1 ++, res += size, _m1 += size ) 15 { 16 Real _m2 = &m2. matrix [ k size + j ] ; 17 for ( i n t k1 = 0; 18 k1 < blocksize ; 19 k1++, _m2 += size ) 20 for ( int j1 = 0; j1 < blocksize ; j1 ++ ) 21 res [ j 1 ] += _m1[ k1 ] _m2[ j 1 ] ; 22 } 23 } 24 }
59 Efekt cache - násobení matic GFLOPS Baseline 1 Transposition Blocks Blocks 2 Blocks Matrix size Obrázek : Klasický algoritmus pro násobení matic, algoritmus s transpozicí a blokový algoritmus na AMD Phenom 2 X6 1075T.
60 Efekt cache - násobení matic tento příklad nám dobře ukazuje, že pokud efektivně využíváme L1 cache, vyplatí se eliminovat i zdánlivé drobnosti na této úrovni už se vyplatí znát i assembler a sledovat kód generovaný překladačem Speed-up Matrix size Obrázek : Celkové urychlení optimalizace násobení matic na AMD Phenom 2 X6 1075T.
61 Efekt cache - násobení matic při operacích s maticemi je efektivní využití cache naprosto zásadní mnoho operací je efektivně implementováno v řadě numerických knihoven jako: Blas, Lapack, Atlas, PETSc, Intel MKL obecně lze vhodným přeuspořádáním for cyklů výrazně navýšit výkon aplikace ukážeme si ještě, jaké výsledky nám dají profilery testy byly provedeny na Intel Core i7 4600M 32 kb L1, 256 kb L2, 4MB L3
62 Efekt cache - násobení matic Efekt přepínače -g překladače gcc. size baseline blocks 3 with -g without -g with -g without -g e e e e e e e e e e e e e e e e e e e e e e
63 Efekt cache - násobení matic Efekt přepínače odstranění optimalizací přepínačem -O3 překladače gcc. size baseline blocks 3 with -O3 without -O3 with -O3 without -O e e e e e e e e e e e e e e e e e e e e e
64 Efekt cache - násobení matic Naše měření ukazují následující výsledky (100% = běh všech pěti algoritmů): algorithm s -O3 bez -O3 baseline 37% 50% transposition 11% 9% blocks 1 21% 19% blocks 2 23% 11% blocks 3 6% 9%
65 Efekt cache - násobení matic Gprof s optimalizacemi -O3 1 Flat p r o f i l e : 2 3 Each sample counts as 0.01 seconds. 4 % cumulative s e l f s e l f t o t a l 5 time seconds seconds calls Ts / call Ts / call name TimerRT : : s t a r t ( ) TimerRT : : gettime ( ) _GLOBAL sub_i Z16writeTableHeaderRSo _GLOBAL sub_i_defaulttimer TimerRT : : r e s e t ( ) bez optimalizací -O3 1 Flat p r o f i l e : 2 3 Each sample counts as 0.01 seconds. 4 % cumulative s e l f s e l f t o t a l 5 time seconds seconds calls us / call us / call name m u l t i p l y M a t r i c e s (... ) multiplymatricesblockwise1 <16>(... ) multiplymatricesblockwise2 <16>(... ) m u l t i p l y M a t r i c e s W i t h T r a n s p o s i t i o n (... ) multiplymatricesblockwise3 <16>(... ) TimerRT : : stop ( ) TimerRT : : s t a r t ( ) TimerRT : : gettime ( )
66 Efekt cache - násobení matic Oprofile s optimalizacemi -O3 1 CPU: I n t e l Haswell m i c r o a r c h i t e c t u r e, speed 2.901e+06 MHz ( estimated ) 2 Counted CPU_CLK_UNHALTED events ( Clock cycles when not h alted ) with a u n i t mask of 0x00 (No u n i t mask ) cou 3 samples % image name symbol name matrix m u l t i p l i c a t i o n main [ vdso ] ( tgid :5205 range :0 x7fff393ba000 0x7fff393bbfff ) [ vdso ] ( tgid :5205 range :0 x7fff393b no vmlinux / no vmlinux libc so memset matrix m u l t i p l i c a t i o n TimerRT : : gettime ( ) libc so _ int_free libc so _ int_malloc libstdc ++.so / usr / l i b / x86_64 linux gnu / libstdc ++.so libc so memcmp_sse4_ libc so malloc bez optimalizací -O3 1 CPU: I n t e l Haswell m i c r o a r c h i t e c t u r e, speed 2.901e+06 MHz ( estimated ) 2 Counted CPU_CLK_UNHALTED events ( Clock cycles when not h a l t e d ) w ith a u n i t mask of 0x00 (No u n i t mask ) cou 3 samples % image name symbol name matrix m u l t i p l i c a t i o n m u l t i p l y M a t r i c e s (... ) matrix m u l t i p l i c a t i o n multiplymatricesblockwise1 <16>(... ) matrix m u l t i p l i c a t i o n multiplymatricesblockwise2 <16>(... ) matrix m u l t i p l i c a t i o n m u l t i p l y M a t r i c e s W i t h T r a n s p o s i t i o n (... ) matrix m u l t i p l i c a t i o n multiplymatricesblockwise3 <16>(... ) no vmlinux / no vmlinux [ vdso ] ( tgid :5481 range :0 x7ffff09ec000 0x7ffff09edfff ) [ vdso ] ( tgid :5481 range :0 x7ffff09e libc so memset matrix multiplication ArrayMatrix <float > : : setvalue ( float const&)
67 Efekt cache - násobení matic Callgrind s optimalizacemi -O3
68 Efekt cache - násobení matic Callgrind bez optimalizací -O3
69 Efekt cache - násobení matic Intel Vtune Amplifier s optimalizacema -O3
70 Efekt cache - násobení matic Intel Vtune Amplifier bez optimalizací -O3
71 Efekt cache - násobení matic Algorithm Code Gprof Oprofile Callgrind Vtune -O3 -O3 -O3 -O3 -O3 Baseline 37% 50% N/A 32% N/A 35% N/A 18% 23% 32% Transposition 11% 9% N/A 15% N/A 14% N/A 17% 19% 14% Blocks 1 21% 19% N/A 22% N/A 21% N/A 30% 19% 21% Blocks 2 23% 11% N/A 16% N/A 15% N/A 19% 20% 16% Blocks 3 6% 9% N/A 15% N/A 14% N/A 16% 17% 15% Vidíme, že: mnoho profilerů dává zcestné výsledky při zapnutí optimalizací překladače bez optimalizací běží výpočet pomaleji a neefektivita využití cache se tím pádem tolik neprojeví lepším nástrojem proto může být cachegrind valgrind -tool=cachegrind program args kcachegrind
72 Efekt cache - transpozice matic Příklad: Vrat me se ještě k transpozici matic. 1 void transpose ( ) 2 { 3 Real tmp ; 4 for ( i n t i = 1; i < size ; i ++ ) 5 for ( i n t j = 0; j < i ; j ++ ) 6 { 7 tmp = this >ma tr ix [ i size + j ] ; 8 this >ma tr ix [ i size + j ] = this >ma tr ix [ j size + i ] ; 9 this >ma tr ix [ j size + i ] = tmp ; 10 } 11 }
73 Efekt cache - transpozice matic testování tohoto kódu nám dá následující výsledky Rozměry Čas GFLOPS e e e e e e e e e e e e e e
74 . CELYFLOUPECEK JEDEN.... ' #- F- i Efekt cache - transpozice matic TAG... #.,. He -0T #64 1 tales: : :.#i : : f CFEFEI, SLOUPEEKE MANCE CACHE ( CACHE LINE B fx DOUBLE PREC.) " " :*. = q III. iii. Iii 2 An - /Az - SE MAPUJE Do JEDNE CACHE SET PRT, PROCHAZEM POSCEANT FHORA DOLO V CACHE ZOSTAHOU POUZE DVA IADKY FCOUPEC SE MAPUIE ROVHONEENE DO VFECH CACHE SET.
75 Efekt cache - transpozice matic ukazuje se, že zvětšení rozměrů matice o jedna může zkrátit dobu výpočtu téměř na třetinu důvodem je mapování adres do cache důležitý je tzv. critical stride ten udává, po kolika bytech se budou data mapovat do stejné cache set pokud je rozměr matice roven násobku kritického kroku, budou se při procházení jednoho sloupce matice mapovat všechny prvky do omezeného počtu cache set a cache nebude využita efektivně řešením by opět bylo provést transpozici po blocích, čímž by se změnilo pořadí, ve kterém k prvkům matice přistupujeme tento příklad také ukazuje, že někdy se může vyplatit prokládat prvky polí prázdnými políčky, což zabrání zmíněnému efektu
76 Virtuální pamět a TLB aby mohl operační systém současně provozovat více aplikací/procesů, je nutné implementovat virtuální pamět každý proces pak vidí svůj vlastní adresový prostor a nemůže ovlivňovat ostatní procesy proces udává virtuální adresy ve svém a.p., které je pak nutné přeložit na fyzické adresy pamět se procesům přiděluje po stránkách o velikosti 4kB operační systém spravuje systém tabulek, které adresují jednotlivé stránky
77 Virtuální pamět a TLB
78 Virtuální pamět a TLB než operační systém zjistí skutečnou fyzickou adresu, musí prohledat několik tabulek to je velmi pomalé pro urychlení provádí samotný překlad přímo procesor navíc se používá speciální cache pro již přeložené adresy té se říká TLB - translation look-aside buffer jde o velmi malou cache o velikosti cca. 128 nebo 256 adress je velice rychlá, většinou fully associative dělí se na instrukční a datovou její obsah se zahazuje při každém přepnutí mezi různými procesy pokud chce jeden proces efektivně využít TLB, měl by pracovat s omezeným počtem pamět ových stránek
79 Virtuální pamět a TLB virtualizace výrazně znesnadňuje překlad adres a využití TLB vzniká ještě jedna vrstva, takže to co původně byla fyzická adresa je nyní jen adresa adresového prostoru daného OS a musí být přeložena ještě jednou běžný procesor na to není vybaven moderní procesory mají rozšíření jako Extended Page Tables Intel Nasted Page Tables AMD
80 Cache a TLB - programování v C/C++ přístup k lokálním proměnným může být rychlejší než ke globálním, protože jsou uloženy na zásobníku, jehož vrchol je velice pravděpodobně uložen v cache může se vyplatit udělat si lokální kopie globálních proměnných budou v paměti u sebe a překladač o nich má lepší přehled a pozná jestli je nutné je znovu načítat do registrů například při volání jiné funkce překladač musí po návratu počítat s tím, že globální proměnné se mohly změnit často používané složky objektů je dobré uvést jako první a mít je u sebe
81 Dynamická alokace paměti jde o velice náročnou operaci, kdy operační systém musí procházet systémové tabulky a najít vhodný volný blok paměti u vícevláknových aplikací probíhá alokace sériové a může tak snížit efektivitu paralelizace častá dynamická alokace může vést k fragmentaci haldy pamětí přitom dnes není nutné šetřit může být výhodnější alokovat si veškerou pamět na začátku výpočtu, a pak dynamickou alokaci neprovádět vůbec lze také použít funkci alloca pro alokaci na zásobníku maximální velikost zásobníku bývá 8kB (ulimit -a)
82 Dynamická alokace paměti provedeme test následujících funkcí 1 i n t a [ 512 ] ; 2 3 void globalarraytest ( i n t pos ) 4 { 5 a [ pos 1 ] = 1; 6 } 7 8 void l o c a l A r r a y T e s t ( i n t pos ) 9 { 10 i n t b [ 512 ] ; 11 b [ pos 1 ] = 1; 12 } void stacktest ( i n t pos ) 15 { 16 int c = ( int ) a l l o c a ( pos sizeof ( int ) ) ; 17 c [ pos 1 ] = 1; 18 } void heaptest ( i n t pos ) 21 { 22 int c = ( int ) malloc ( pos sizeof ( int ) ) ; 23 c [ pos 1 ] = 1; 24 f r e e ( ( void ) c ) ; 25 } výsledek je 1 The g l o b a l array t e s t took : CPU cycles. 2 The l o c a l array t e s t took : CPU cycles. 3 The stack t e s t took : CPU cycles. 4 The heap t e s t took : CPU cycles.
83 Shrnutí Naše pozorování lze shrnout do následujících bodů: data by měla být v paměti uložena tak, aby se k nim přistupovalo sekvenčně a ne náhodně pokud to tak nejde, zkusíme výpočet rozdělit na menší bloky dat, které se vejdou do cache CPU data načtená do cache se snažíme využít co nejvíc
Paměťový podsystém počítače
Paměťový podsystém počítače typy pamětových systémů počítače virtuální paměť stránkování segmentace rychlá vyrovnávací paměť 30.1.2013 O. Novák: CIE6 1 Organizace paměťového systému počítače Paměťová hierarchie...
Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit
Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti
Systém adresace paměti
Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného
Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
Mezipaměti počítače. L2 cache. L3 cache
Mezipaměti počítače Cache paměť - mezipaměť Hlavní paměť procesoru je typu DRAM a je pomalá. Proto se mezi pomalou hlavní paměť a procesor vkládá menší, ale rychlá vyrovnávací (cache) paměť SRAM. Rychlost
Struktura a architektura počítačů (BI-SAP) 11
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 11 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)
Paměti EEPROM (1) EEPROM Electrically EPROM Mají podobné chování jako paměti EPROM, tj. jedná se o statické, energeticky nezávislé paměti, které je možné naprogramovat a později z nich informace vymazat
Pokročilé architektury počítačů
Pokročilé architektury počítačů Architektura paměťového a periferního podsystému České vysoké učení technické, Fakulta elektrotechnická A4M36PAP Pokročílé architektury počítačů Ver.1.00 2010 1 Motivace
Paměti cache. Cache může být realizována softwarově nebo hardwarově.
Paměti cache Cache je označení pro vyrovnávací paměť nacházející se mezi dvěma subsystémy s rozdílnou přenosovou rychlostí, a jak již její název vypovídá, tak tuto rychlost vyrovnává. Cache může být realizována
Paměti Josef Horálek
Paměti Josef Horálek Paměť = Paměť je pro počítač životní nutností = mikroprocesor z ní čte programy, kterými je řízen a také do ní ukládá výsledky své práce = Paměti v zásadě můžeme rozdělit na: = Primární
Pohled do nitra mikroprocesoru Josef Horálek
Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická
Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje
Paměti Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje Paměti počítače lze rozdělit do tří základních skupin: registry paměťová místa na čipu procesoru jsou používány
Operační systémy. Přednáška 8: Správa paměti II
Operační systémy Přednáška 8: Správa paměti II 1 Jednoduché stránkování Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné
Struktura a architektura počítačů (BI-SAP) 10
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 10 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
Operační paměti počítačů PC
Operační paměti počítačů PC Dynamické paměti RAM operační č paměť je realizována čipy dynamických pamětí RAM DRAM informace uchovávána jako náboj na kondenzátoru nutnost náboj pravidelně obnovovat (refresh)
Optimalizace. Optimalizace. Profilování. Gprof. Gcov. Oprofile. Callgrind. Intel Vtune. AMD CodeAnalyst
Optimalizace Optimalizace Profilování Gprof Gcov Oprofile Callgrind Intel Vtune AMD CodeAnalyst Cvičení Hlavní využití počítačů Vývoj paralelního algoritmu je nutné chápat jako optimalizaci. 1. nejprve
Hlavní využití počítačů
Úvod Hlavní využití počítačů Počítače jsou výkonné nástroje využívané pro zpracování dat. Provádějí: načtení a binární kódování dat provedení požadovaného výpočtu zobrazení výsledku Hlavní využití počítačů
Paměti a jejich organizace
Kapitola 5 Paměti a jejich organizace 5.1 Vnitřní a vnější paměti, vlastnosti jednotlivých typů Vnější paměti Jsou umístěny mimo základní jednotku. Lze je zařadit mezi periferní zařízení. Zápis a čtení
Paměti EEPROM (1) 25/07/2006 1
Paměti EEPROM (1) EEPROM - Electrically EPROM Mají podobné chování jako paměti EPROM, tj. jedná se o statické, energeticky nezávislé paměti, které je možné naprogramovat a později z nich informace vymazat
Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC
Informační systémy 2 Obsah: Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC ROM RAM Paměti typu CACHE IS2-4 1 Dnešní info: Informační systémy 2 03 Informační systémy
Dělení pamětí Volatilní paměti Nevolatilní paměti. Miroslav Flídr Počítačové systémy LS /11- Západočeská univerzita v Plzni
ělení pamětí Volatilní paměti Nevolatilní paměti Počítačové systémy Vnitřní paměti Miroslav Flídr Počítačové systémy LS 2006-1/11- Západočeská univerzita v Plzni ělení pamětí Volatilní paměti Nevolatilní
Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC
Informatika 2 Technické prostředky počítačové techniky - 2 Přednáší: doc. Ing. Jan Skrbek, Dr. - KIN Přednášky: středa 14 20 15 55 Spojení: e-mail: jan.skrbek@tul.cz 16 10 17 45 tel.: 48 535 2442 Obsah:
Paměti operační paměti
Paměti operační paměti Autor: Kulhánek Zdeněk Škola: Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice, Benešovo náměstí 1, příspěvková organizace Kód: VY_32_INOVACE_ICT_828 1.11.2012
PROCESOR. Typy procesorů
PROCESOR Procesor je ústřední výkonnou jednotkou počítače, která čte z paměti instrukce a na jejich základě vykonává program. Primárním úkolem procesoru je řídit činnost ostatních částí počítače včetně
Paměť počítače. 0 (neprochází proud) 1 (prochází proud)
Paměť počítače Paměť je nezbytnou součástí jakéhokoli počítače. Slouží k uložení základních informací počítače, operačního systému, aplikačních programů a dat uživatele. Počítače jsou vybudovány z bistabilních
Paměťové prvky. ITP Technika personálních počítačů. Zdeněk Kotásek Marcela Šimková Pavel Bartoš
Paměťové prvky ITP Technika personálních počítačů Zdeněk Kotásek Marcela Šimková Pavel Bartoš Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, 612 66 Brno Osnova Typy
Architektura počítače
Architektura počítače Výpočetní systém HIERARCHICKÁ STRUKTURA Úroveň aplikačních programů Úroveň obecných funkčních programů Úroveň vyšších programovacích jazyků a prostředí Úroveň základních programovacích
Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič
Obecné výpočty na GPU v jazyce CUDA Jiří Filipovič Obsah přednášky motivace architektura GPU CUDA programovací model jaké algoritmy urychlovat na GPU? optimalizace Motivace Moorův zákon stále platí pro
Cache paměti (2) Cache paměti (1) Cache paměti (3) Cache paměti (4) Cache paměti (6) Cache paměti (5) Cache paměť:
Cache paměti (1) Cache paměť: rychlá vyrovnávací paměť mezi rychlým zařízením (např. procesor) a pomalejším zařízením (např. operační paměť) vyrobena z obvodů SRAM s přístupovou dobou 1 20 ns V dnešních
Pamět ová hierarchie, návrh skryté paměti cache 2
Architektura počítačových systémů Róbert Lórencz 8. přednáška Pamět ová hierarchie, návrh skryté paměti cache 2 http://service.felk.cvut.cz/courses/36aps lorencz@fel.cvut.cz Róbert Lórencz (ČVUT FEL, 2005)
Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC
Informatika 2 Technické prostředky počítačové techniky - 2 Přednáší: doc. Ing. Jan Skrbek, Dr. - KIN Přednášky: středa 14 20 15 55 Spojení: e-mail: jan.skrbek@tul.cz 16 10 17 45 tel.: 48 535 2442 Obsah:
Cache paměť - mezipaměť
Cache paměť - mezipaměť 10.přednáška Urychlení přenosu mezi procesorem a hlavní pamětí Hlavní paměť procesoru je typu DRAM a je pomalá. Proto se mezi pomalou hlavní paměť a procesor vkládá menší, ale rychlá
Procesor. Procesor FPU ALU. Řadič mikrokód
Procesor Procesor Integrovaný obvod zajišťující funkce CPU Tvoří srdce a mozek celého počítače a do značné míry ovlivňuje výkon celého počítače (čím rychlejší procesor, tím rychlejší počítač) Provádí jednotlivé
Roman Výtisk, VYT027
Roman Výtisk, VYT027 Ohlédnutí za architekturou AMD K8 Představení architektury procesoru AMD K10 Přínos Struktura cache IMC, HyperTransport sběrnice Použitá literatura Ohlášení x86-64 architektury 5.
09. Memory management. ZOS 2006, L.Pešička
09. Memory management ZOS 2006, L.Pešička Správa paměti paměťová pyramida absolutní adresa relativní adresa počet bytů od absolutní adresy fyzický prostor adres fyzicky k dispozici výpočetnímu systému
Pamět ová hierarchie, virtuální pamět. doc. Ing. Róbert Lórencz, CSc.
Architektura počítačových systémů Pamět ová hierarchie, virtuální pamět doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů
2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu
Název školy Číslo projektu Autor Název šablony Název DUMu Tematická oblast Předmět Druh učebního materiálu Anotace Vybavení, pomůcky Ověřeno ve výuce dne, třída Střední průmyslová škola strojnická Vsetín
Přidělování paměti II Mgr. Josef Horálek
Přidělování paměti II Mgr. Josef Horálek Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování
Paměťová hierarchie. INP 2008 FIT VUT v Brně
Paměťová hierarchie INP 2008 FIT VUT v Brně 000 Výkonová mezera mezi CPU a pamětí Moorův zákon CPU CPU 60% za rok (2X/.5roku) výkonnost 00 0 980 98 DRAM 982 983 984 985 986 987 988 989 990 99 992 993 994
Cache paměti (1) Cache paměť: V dnešních počítačích se běžně používají dva, popř. tři druhy cache pamětí:
Cache paměti (1) Cache paměť: rychlá vyrovnávací paměť mezi rychlým zařízením (např. procesor) a pomalejším zařízením (např. operační paměť) vyrobena z obvodů SRAM s přístupovou dobou 1-20 ns V dnešních
Technické prostředky počítačové techniky
Počítač - stroj, který podle předem připravených instrukcí zpracovává data Základní části: centrální procesorová jednotka (schopná řídit se posloupností instrukcí a ovládat další části počítače) zařízení
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Petr
Matematika v programovacích
Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?
MSP 430F1611. Jiří Kašpar. Charakteristika
MSP 430F1611 Charakteristika Mikroprocesor MSP430F1611 je 16 bitový, RISC struktura s von-neumannovou architekturou. Na mikroprocesor má neuvěřitelně velkou RAM paměť 10KB, 48KB + 256B FLASH paměť. Takže
Princip funkce počítače
Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování
Něco málo o časování a frekvenci
Paměti 2 Něco málo o časování a frekvenci Pokud pomineme rozdílné technologie (FPM, EDO, SDRAM, DDR SDRAM...), liší se paměti v zásadě pouze frekvencí a časováním. Ale co to vůbec je? Tyto dva faktory
Paměti Flash. Paměti Flash. Základní charakteristiky
Paměti Flash K.D. - přednášky 1 Základní charakteristiky (Flash EEPROM): Přepis dat bez mazání: ne. Mazání: po blocích nebo celý čip. Zápis: po slovech nebo po blocích. Typická životnost: 100 000 1 000
asociativní paměti Ing. Jakub Št astný, Ph.D. 1 Katedra teorie obvodů FEL ČVUT Technická 2, Praha 6,
Pamět ové obvody, řadiče a implementace, asociativní paměti AČS Ing. Jakub Št astný, Ph.D. 1 1 FPGA Laboratoř Katedra teorie obvodů FEL ČVUT Technická 2, Praha 6, 166 27 http://amber.feld.cvut.cz/fpga
Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard
Základní deska (1) Označována také jako mainboard, motherboard Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje: procesor (mikroprocesor) patici pro numerický koprocesor (resp. osazený
Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:
Základní deska (1) Označována také jako mainboard, motherboard Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje: procesor (mikroprocesor) patici pro numerický koprocesor (resp. osazený
Operační systémy. Přednáška 7: Správa paměti I
Operační systémy Přednáška 7: Správa paměti I 1 Správa paměti (SP) Memory Management Unit (MMU) hardware umístěný na CPU čipu např. překládá logické adresy na fyzické adresy, Memory Manager software, který
Přednáška. Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
Uspořádání cache pamětí procesorů historie a současný stav
Uspořádání cache pamětí procesorů historie a současný stav Stránka: 1 / 17 Obsah 1Úvod...3 2Hierarchie pamětí počítače...4 2.1Pracovní registry procesoru...4 2.2L1 cache...4 2.3L2 cache...5 2.4Operační
Pokročilé architektury počítačů
Pokročilé architektury počítačů Tutoriál 3 CUDA - GPU Martin Milata Výpočetní model CUDA Organizace kódu Sériově organizovaný kód určený pro CPU Paralelní kód prováděný na GPU Označuje se jako kernel GPU
Pamět ová hierarchie, návrh skryté paměti 2. doc. Ing. Róbert Lórencz, CSc.
Architektura počítačových systémů Pamět ová hierarchie, návrh skryté paměti 2 doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů
Semestrální práce z předmětu Speciální číslicové systémy X31SCS
Semestrální práce z předmětu Speciální číslicové systémy X31SCS Katedra obvodů DSP16411 ZPRACOVAL: Roman Holubec Školní rok: 2006/2007 Úvod DSP16411 patří do rodiny DSP16411 rozšiřuje DSP16410 o vyšší
Metody připojování periferií BI-MPP Přednáška 2
Metody připojování periferií BI-MPP Přednáška 2 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011
Paměti Rambus DRAM (RDRAM) Paměti Flash Paměti SGRAM
Paměti Rambus DRAM (RDRAM) Paměti Flash Paměti SGRAM 1 Požadavky na RDRAM - začátky Nové DRAM musí zajistit desetinásobné zvýšení šířky pásma srovnání výkonu procesoru a paměti. Náklady na výrobu a prodej
Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností a hlavnímu parametry.
Paměti Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností a hlavnímu parametry. Klíčové pojmy: paměť, RAM, rozdělení pamětí, ROM, vnitřní paměť, vnější paměť. Úvod Operační paměť
Pokročilé architektury počítačů
Pokročilé architektury počítačů Přednáška 3 Hierarchické uspořádání pamětí počítače Martin Milata Obsah Paměťový subsystém Obvyklé chování programů při přístupu do paměti Cache paměti princip činnosti
Referát (pokročilé architektury počítačů)
Referát (pokročilé architektury počítačů) Představení architektury procesoru AMD K10 Roman Výtisk, VYT027 1 AMD K8 Nejprve bych zmínil, co této architektuře předcházelo a co tato architektura přinesla
Přidělování zdrojů (prostředků)
Přidělování zdrojů (prostředků) Proces potřebuje zdroje (prostředky) hardware (I/O zařízení, paměť) software (data, programy) Klasifikace zdrojů (z hlediska multitaskingového režimu) Násobně použitelné
Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/
Střední odborná škola elektrotechnická, Centrum odborné přípravy Zvolenovská 537, Hluboká nad Vltavou Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/34.0448 CZ.1.07/1.5.00/34.0448 1 Číslo projektu
Architektura Intel Atom
Architektura Intel Atom Štěpán Sojka 5. prosince 2008 1 Úvod Hlavní rysem Atomu je podpora platformy x86, která umožňuje spouštět a běžně používat řadu let vyvíjené aplikace, na které jsou uživatelé zvyklí
Ro R dina procesor pr ů Int In e t l Nehalem Šmída Mojmír, SMI108 PAP PA 2009
Rodina procesorů Intel Nehalem Šmída Mojmír, SMI108 PAP 2009 Obsah: Úvod Nejpodstatnější prvky Nehalemu (i7 900) Nehalem ve střední třídě (i7 800, i5 700) Výkon Závěr Úvod Nhl Nehalem staví na úspěšné
Rychlá vyrovnávací paměť v architektuře PC
Rychlá vyrovnávací paměť v architektuře PC 1 Cíl přednášky Prezentovat důvody, které vedly k zavedení rychlé vyrovnávací paměti (RVP) do architektury počítače. Vysvětlit principy činnosti RVP. Ukázat vývoj
IUJCE 07/08 Přednáška č. 6
Správa paměti Motivace a úvod v C (skoro vždy) ručně statické proměnné o datový typ, počet znám v době překladu o zabírají paměť po celou dobu běhu programu problém velikosti definovaných proměnných jak
Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010
Přednášky o výpočetní technice Hardware teoreticky Adam Dominec 2010 Rozvržení Historie Procesor Paměť Základní deska přednášky o výpočetní technice Počítací stroje Mechanické počítačky se rozvíjely už
Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2
Základy informatiky 2. Přednáška HW Lenka Carr Motyčková February 22, 2011 Základy informatiky 1 February 22, 2011 Základy informatiky 2 February 22, 2011 Základy informatiky 3 February 22, 2011 Základy
Informační a komunikační technologie
Informační a komunikační technologie 7. www.isspolygr.cz Vytvořil: Ing. David Adamovský Strana: 1 Škola Integrovaná střední škola polygrafická Ročník Název projektu 1. ročník SOŠ Interaktivní metody zdokonalující
Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur
Přehled paralelních architektur Přehled paralelních architektur Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur Přehled I. paralelní počítače se konstruují
Operační systémy. Správa paměti (SP) Požadavky na SP. Spojování a zavedení programu. Spojování programu (linking) Zavádění programu (loading)
Správa paměti (SP) Operační systémy Přednáška 7: Správa paměti I Memory Management Unit (MMU) hardware umístěný na CPU čipu např. překládá logické adresy na fyzické adresy, Memory Manager software, který
Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus
Činnost CPU Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Hodinový cyklus CPU je synchronní obvod nutné hodiny (f CLK ) Instrukční cyklus IF = doba potřebná
Paměti Rambus DRAM (RDRAM) Paměti Flash Paměti SGRAM
Paměti Rambus DRAM (RDRAM) Paměti Flash Paměti SGRAM 1 Požadavky na RDRAM - začátky Nové DRAM musí zajistit desetinásobné (?) zvýšení šířky pásma srovnání výkonu procesoru a paměti. Náklady na výrobu a
Paralelní architektury se sdílenou pamětí typu NUMA. NUMA architektury
Paralelní architektury se sdílenou pamětí typu NUMA NUMA architektury Multiprocesorové systémy s distribuovanou pamětí I. úzkým hrdlem multiprocesorů se sdílenou pamětí je datová komunikace s rostoucím
Vstupně - výstupní moduly
Vstupně - výstupní moduly Přídavná zařízení sloužící ke vstupu a výstupu dat bo k uchovávání a archivaci dat Nejsou připojována ke sběrnici přímo, ale prostřednictvím vstupně-výstupních modulů ( ů ). Hlavní
Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače
V roce 1945 vystoupil na přednášce v USA matematik John von Neumann a představil architekturu samočinného univerzálního počítače (von Neumannova koncepce/schéma/architektura). Základy této koncepce se
SDRAM (synchronní DRAM) Cíl přednášky:
SDRAM (synchronní DRAM) Cíl přednášky: Shrnout předcházející techniky řízení pamětí. Prezentovat techniku SDRAM, postihnout její výrazné rysy a odlišnosti od předcházejících typů. Shrnout získané informace.
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zjednodušené schéma systému z základ hardware pro mainframe tvoří: operační pamět - MAIN / REAL STORAGE jeden
Intel 80486 (2) Intel 80486 (1) Intel 80486 (3) Intel 80486 (4) Intel 80486 (6) Intel 80486 (5) Nezřetězené zpracování instrukcí:
Intel 80486 (1) Vyroben v roce 1989 Prodáván pod oficiálním názvem 80486DX Plně 32bitový procesor Na svém čipu má integrován: - zmodernizovaný procesor 80386 - numerický koprocesor 80387 - L1 (interní)
Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)
Paměti EEPROM (1) EEPROM Electrically EPROM Mají podobné chování jako paměti EPROM, tj. jedná se o statické, energeticky nezávislé paměti, které je možné naprogramovat a později z nich informace vymazat
Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).
Strojový kód k d a asembler procesoru MIPS Použit ití simulátoru SPIM K.D. - cvičení ÚPA 1 MIPS - prostředí 32 ks 32bitových registrů ( adresa registru = 5 bitů). Registr $0 je zero čte se jako 0x0, zápis
Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)
Procesor Intel Pentium (1) 32-bitová vnitřní architektura s 64-bitovou datovou sběrnicí Superskalární procesor: obsahuje více než jednu (dvě) frontu pro zřetězené zpracování instrukcí (značeny u, v) poskytuje
Miroslav Flídr Počítačové systémy LS 2006-1/21- Západočeská univerzita v Plzni
Počítačové systémy Vnitřní paměti Miroslav Flídr Počítačové systémy LS 2006-1/21- Západočeská univerzita v Plzni Hierarchire pamětí Miroslav Flídr Počítačové systémy LS 2006-2/21- Západočeská univerzita
2.9 Vnitřní paměti. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu
Název školy Číslo projektu Autor Název šablony Název DUMu Tematická oblast Předmět Druh učebního materiálu Anotace Vybavení, pomůcky Ověřeno ve výuce dne, třída Střední průmyslová škola strojnická Vsetín
Identifikátor materiálu: ICT-1-08
Identifikátor materiálu: ICT-1-08 Předmět Informační a komunikační technologie Téma materiálu Motherboard, CPU a RAM Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí základní desku počítače.
Server je v informatice obecné označení pro počítač, který poskytuje nějaké služby nebo počítačový program, který tyto služby realizuje.
Server je v informatice obecné označení pro počítač, který poskytuje nějaké služby nebo počítačový program, který tyto služby realizuje. Servery jsou buď umístěny volně nebo ve speciální místnosti, kterou
Paměti SDRAM (synchronní DRAM)
Paměti SDRAM (synchronní DRAM) 1 Paměti SDRAM Cíl přednášky: - Shrnout předcházející techniky řízení pamětí. - Prezentovat techniku SDRAM, postihnout její výrazné rysy a odlišnosti od předcházejících typů.
Parametry pamětí vybavovací doba (tj. čas přístupu k záznamu v paměti) = 10 ns ms rychlost toku dat (tj. počet přenesených bitů za sekundu)
Paměti Parametry pamětí vybavovací doba (tj. čas přístupu k záznamu v paměti) = 10 ns...100 ms rychlost toku dat (tj. počet přenesených bitů za sekundu) kapacita paměti (tj. počet bitů, slabik, slov) cena
Vstupně výstupní moduly. 13.přednáška
Vstupně výstupní moduly 13.přednáška Vstupně-výstupn výstupní modul (I/O modul) Přídavná zařízení sloužící ke vstupu a výstupu dat nebo k uchovávání a archivaci dat Nejsou připojována ke sběrnici přímo,
Základní uspořádání pamětí MCU
Základní uspořádání pamětí MCU Harwardská architektura. Oddělený adresní prostor kódové a datové. Používané u malých MCU a signálových procesorů. Von Neumannova architektura (Princetonská). Kódová i jsou
Správné vytvoření a otevření textového souboru pro čtení a zápis představuje
f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru
AGP - Accelerated Graphics Port
AGP - Accelerated Graphics Port Grafiku 3D a video bylo možné v jisté vývojové etapě techniky pracovních stanic provozovat pouze na kvalitních pracovních stanicích (cena 20 000 USD a více) - AGP představuje
Mikrokontroléry. Doplňující text pro POS K. D. 2001
Mikrokontroléry Doplňující text pro POS K. D. 2001 Úvod Mikrokontroléry, jinak též označované jako jednočipové mikropočítače, obsahují v jediném pouzdře všechny podstatné části mikropočítače: Řadič a aritmetickou
Paměti personálních počítačů, vývoj pojmů, technologie, organizace
Paměti personálních počítačů, vývoj pojmů, technologie, organizace 1 Cíl přednášky Popsat architektury vnitřních pamětí personálních počítačů. Zabývat se vývojem pojmů, technologií, organizací. Vyvodit
Paměti personálních počítačů, vývoj pojmů, technologie, organizace
Paměti personálních počítačů, vývoj pojmů, technologie, organizace 1 Cíl přednášky Popsat architektury vnitřních pamětí personálních počítačů. Zabývat se vývojem pojmů, technologií, organizací. Vývoj technologie
Sekvenční architektury II. Zpracování instrukcí
Sekvenční architektury II Zpracování instrukcí Jak zvýšit výkon CPU zkrátit čas nutný ke zpracování 1 instrukce urychlit časovač (Timer) = zvýšení taktu to je technicky velmi náročné, poslední dobou se
Úvod do OpenMP. Jiří Fürst
Úvod do OpenMP Jiří Fürst Osnova: Úvod do paralelního programování Počítače se sdílenou pamětí Základy OpenMP Sdílené a soukromé proměnné Paralelizace cyklů Příklady Úvod do paralelního programování Počítač
ÚVOD DO OPERAČNÍCH SYSTÉMŮ. Správa paměti. Přímý přístup k fyzické paměti, abstrakce: adresový prostor, virtualizace, segmentace
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Správa paměti Přímý přístup k fyzické paměti, abstrakce: adresový prostor, virtualizace, segmentace České vysoké učení technické Fakulta elektrotechnická Y38ÚOS Úvod do operačních
CHARAKTERISTIKY MODELŮ PC
CHARAKTERISTIKY MODELŮ PC Historie: červenec 1980 skupina 12 pracovníků firmy IBM byla pověřena vývojem osobního počítače 12. srpna 1981 byl počítač veřejně prezentován do konce r. 1983 400 000 prodaných