L2 cache pamět

Pamět L2 slouží jako pamět mezi operační pamětí počítače a pamětí L1. L2 pamět má dnes okolo 512kB (u novějších procesorů 1024kB). A je pomalejší než L1. Původně byla součástí základní desky, ale od procesoru Pentium je na procesoru.
U procesorů Pentium 4 extreme edition se používá ještě L3 cache pamět. Ta propojuje operační a L2.

L1 cache pamět

Pamět běžící na rychlosti procesoru. Je mezi L2 a procesorem. Velikost je většinou 16 kB až 128 kB. Přičemž je rozdělena na 2 části: pamět na instrukce a pamět na data. Tato pamět má veliký vliv na výkon procesoru (znatelné hodně u procesorů AMD).

Front side bus FSB

Front side bus - systémová zběrnice spojující procesor a operační pamět. P Pracuje až na 800 Mhz (P4). U procesorů Athlon 64 (FX) nahrazena technologii Hypertransport, která zvyšuje propustnost a snižuje čekací doby.

Pipeline

Nebo-li zřetězené zpracování instrukcí vychází ze skutečnosti, že zpracování každé instrukce procesorem lze rozdělit do pěti základních fází:
  • PF (Prefetch): výber instrukce: dalsí zpracovávaná instrukce se bere bud z pameti RAM, nebo z vyrovnávací cache pameti.
  • D1 (Decode1): dekódování instrukce: urcí se délka a typ instrukce
  • D2 (Decode2): výpocet adresy: urcí se adresa operandu, se kterými instrukce pracuje
  • EX (Execution): provedení intstrukce: vlastní provedení instrukce
  • WB (Write Back): zápis výsledku: zapísí se výsledky zpracované instrukce
Každou z těchto fází může provádět samostatně pracující jednotka a v okamžiku, kdy je tato jednotka se svou prací hotova, předá svůj výsledek jednotce provádějící následující fázi zpracování a pokračuje ve své práci nad další instrukcí.
T1 T2 T3 T4 T5 T6 T7 T8 T9 T10
PF I1 I2
D1 I1 I2
D2 I1 I2
EX I1 I2
WB I1 I2
Pipeline zpracování instrukcí
T1 T2 T3 T4 T5 T6 T7 T8 T9 T10
PF I1 I2 I3 I4 I5 I6 I7 I8 I9 I10
D1 I1 I2 I3 I4 I5 I6 I7 I8 I9
D2 I1 I2 I3 I4 I5 I6 I7 I8
EX I1 I2 I3 I4 I5 I6 I7
WB I1 I2 I3 I4 I5 I6
Jednotlivé sloupce značí takt procesoru a v řádcích jsou vždy uvedeny instrukce v patřičné fázi zpracování. Při klasickém zpracování se tak zpracuje v prvních pěti taktech kompletně první instrukce. V dalsích pěti taktech se pak kompletně zpracuje druhá instrukce. Pri zřetězeném zpracování je v prvních pěti taktech opět zcela zpracována první instrukce, ale další instrukce jsou již rozpracovány, také v každém dalsím taktu je pak zpracována vždy jedna další instrukce. V optimálním případe tedy po deseti taktech je úplně zpracováno šest instrukcí. Tento 5 stupňoví model platil u Pentia. Dnes má Pentium 4 20 etap a Athlon 64 12 etap.

Při zřetězeném zpracování však vyvstává problém v okamžiku, kdy některá z instrukcí způsobí skok. V tomto okamžiku je nutné provést tzv. pipeline flush, tj. vyprázdnění fronty. Předzpracované instrukce totiž vůbec nebudou prováděny, protože chod programu bude pokračovat na místě, kam byl uskutečněn skok. Od tohoto místa se tedy začne opět plnit fronta instrukcí.

Procesor, který má právě jednu frontu pro takové zřetězené zpracování instrukcí, se nazývá skalární procesor.

Superskalár

Neustálé zvyšování frekvence bylo při 486kovém způsobu vykonávání instrukcí nepříliš efektivní. Jak se zvyšovala frekvence, tak také rostly požadavky na přísun dat. Procesory byly stále výrobně drahé, proto neměly příliš mnoho vyrovnávací paměti cache, a tak v extrémních případech dvojnásobná frekvence mohla znamenat, že procesor pouze dvojnásobné množství hodinových cyklů čekal na data z paměti, která byla stejně rychlá bez ohledu na frekvenci procesoru. Naopak v jiných, výpočetně náročných případech procesor často "makal" naplno, ale i tak to nebylo moc rychlé. Zvyšovat frekvenci také nešlo do nekonečna.

Po určité době někoho napadlo, že by možná nebylo od věci umístit do procesoru více stejných výpočetních jednotek a začít provádět výpočty paralelně, čímž by se v některých případech výkon značně zvýšil. Intel toto učinil v procesoru Pentium. I ten je z dnešního pohledu poměrně primitivní, namísto jedné jednotky pro výpočet celých čísel (ALU - Arithmetic Logic Unit) má dvě. Instrukce i tak vykonává v předem daném pořadí, jen místy vykoná dvě po sobě jdoucí instrukce vedle sebe ve stejný okamžik (každou v jiné ALU jednotce). Procesory, které mají více pipeline(tedy i více ALU) se nazívají superskalárové.

Out-of-order a spekulativní vykonávání instrukcí

Protože vykonávání instrukcí v určeném pořadí mělo určitá slabá místa ve využití výpočetních jednotek, zavedl Intel v procesoru Pentium Pro out-of-order execution (zpracování instrukcí mimo pořadí). Procesor vnitřně pracuje s malým množstvím instrukcí zvaných microOPs, nebo také jen OPs (jedná se o RISC jádro), kde na začátku pipeline jsou instrukční dekodéry - ty přijímají instrukce a vytvářejí z nich OPs - instrukce pro vnitřní RISCové jádro. Uvnitř si jádro organizuje OPs podle potřeb, a provádí tak instrukce mimo programátorem stanovené pořadí... v mezích bariér daných závislostí jednotlivých instrukcí. Nárůst výkonu je proti in-order způsobu často extrémní. Nevýhodou ale je, že takto navrhnutý čip je již velmi složitý a může také obsahovat velmi mnoho chyb.

Branch logic

U zpracování mimo pořadí a spekulativní vykonávání instrukcí se objevuje stále problém v případě, že prováděná instrukce způsobí skok. V ten moment je opět nutné provést pipeline flush a pokračovat ve zpracování na místě, kam byl skok proveden. Aby k temto situacím docházelo co možná nejméně, má procesor Intel Pentium zabudováno tzv. dynamické předvídání skoku (dynamic branch prediction), pomocí kterého se podle dosavadního chování programu snaží odhadnout, zda při dalším průchodu skoková instrukce skok způsobí nebo ne. K této činnosti Pentium používá paměť označovanou jako BTB (Branch Target Buffer), v níž jsou uchovány poslední instrukce, které způsobily skok, spolu s dvoubitovou informací, jež určuje dosavadní chování těchto instrukcí. Podle hodnot techto bitu je také dána předpověd, zda instrukce skok způsobí či ne. Instrukce, která způsobila skok, je uložena do BTB spolu se dvěma bity, jejichž hodnoty jsou rovny 1. Tyto hodnoty při příštím průchodu přes tuto instrukci signalizují předpověd, že skok bude. Pokud skok skutečně byl, hodnoty bitu zůstanou nezmodifikovány. Pokud byla předpověd mylná a skok nebyl, jsou bity nastaveny na hodnotu 10, která opět signalizuje, že skok bude. Podle toho, zda skok skutecně následuje nebo ne, jsou pak příslusným způsobem bity modifikovány a jejich hodnota signalizuje předpověd skoku.

Některé procesory jsou navrženy tak, aby vykonávaly obě větve po podmínce s tím, že jednu z nich po vyhodnocení výsledku podmínky zapomenou.

Rozšiřující instrukční sady

Mikroprocesory se již odedávna dělí na řady CISC (Complete Instruction Set Computer) a RISC (Reduced Instruction Set Computer). Jednoduše si lze představit, že u architektury RISC je pouze základní malá sada instrukcí, se kterou si programátor musí vystačit, ale dá to trošku více práce, a u CISCu je instrukční sada rozšířena již opředem předprogramované (makro) instrukce, které jsou tvořeny základní sadou, a programátor má práci v mnoha případech ušetřenu. Problém je s tím, že RISC sada má pevnou délku a CISC sada má proměnou délku instrukce. A právě zdůvodu délky se přistoupilo k překladu instrukcí. Pro mikroprocesor je samozřejmě mnohem jednodušší zpracovávat instrukce s pevnou délkou než proměnnou délkou.A proto se začaly instrukce u mikroprocesorů dekódovat a vnitřně převádět na instrukce blízké sadě RISC. Pro výběr a dekódování instrukcí slouží modulDecode unit, který nazývají shodně všichni tři výrobci. Ovšem každý z nichjiž dekóduje instrukce jinak.

MMX

V roce 1995 instukce MMX znamenaly rozvoj procesorů.Poprvé byly MMX instrukce použity v roce 1995 v procesoru Intel Pentium MMX 166 MHz.Procesory s MMX mají o 57 nových instrukcí navíc. Používají se hlavně na vyšší výkon vmultimediálních aplikacích - kompresi a dekompresi zvukových a obrazových dat (MP3, MPEG), syntéze a rozpoznávání hlasu, výpočtu 3D scény,nebo komunikačních algoritmů. První procesory s technologií MMX byly procesory od Intelu - Intel MMX.Dnes MMX instrukce nechybí u žádného procesoru. Později byly implementovány do MMX instrukce SIMD, které dovolovaly zpracovávat vícecelých čísel (integer) najednou. Tato technologie je u procesorů Intel Pentium III, která takézvýšila rychlost výpočtů s plovoucí čárkou.

3DNow!

Po MMX instrukcích přišly v roce 1998 další, tentokráte od firmy AMD, instrukce s názvem 3DNow!.Mají 21 nových instrukcí, které urychlují 3D grafiku. Jedná se hlavně o hry.Samozřejmě hra musí tyto instrukce podporovat. Kromě 3DNow! ještě existuje enhanced 3DNow! (rozšířené 3DNow!).

SIMD

SIMD instrukce obsahují 70 nových instrukcí ke zlepšení chodu internetových aplikací. Dále umožňuje vyšší rozlišení a kvalitu obrázků, lepší podpora přehrávání MPEG2 a audia.

SSE3

13 instrukcí použitých v P4 s jádrem Prescott
xhtml || css      004 by fallvonder