2010/2011 ZS. operačních systémů. Copak je po jméně? Co růži zvou, i zváno jinak vonělo by stejně. William Shakespeare

Podobné dokumenty
Principy počítačů I ZVYŠOVÁNÍ VÝKONU PROCESORŮ. Sériové zpracování. Pipeline. Úspora při použití pipeline. Problém 1: přístup k datům.

Techniky zvýšení výkonnosti procesoru, RISC a CISC procesory

Architektury CISC a RISC, uplatnění v personálních počítačích

CHARAKTERISTIKA MODERNÍCH PENTIÍ. Flynnova klasifikace paralelních systémů

Principy počítačů a operačních systémů

Procesor. Procesor FPU ALU. Řadič mikrokód

Pohled do nitra mikroprocesoru Josef Horálek

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

Charakteristika dalších verzí procesorů v PC

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

Architektury VLIW M. Skrbek a I. Šimeček

Charakteristika dalších verzí procesorů Pentium

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Intel (2) Intel (1) Intel (3) Intel (4) Intel (6) Intel (5) Nezřetězené zpracování instrukcí:

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Procesory, mikroprocesory, procesory na FPGA O. Novák, CIE 11 1

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Struktura a architektura počítačů

RISC a CISC architektura

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

V 70. letech výzkumy četnosti výskytu instrukcí ukázaly, že programátoři a

Architektura počítačů Zvyšování výkonnosti

Řetězené zpracování. INP 2008 FIT VUT v Brně

Luděk Matyska. Jaro 2015

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

CISC A RISC PROCESORY Jak pracují procesory CISC:

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Princip funkce počítače

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Provádění instrukcí. procesorem. Základní model

Vývoj architektur PC 1

Architektura Pentia 1

Struktura a architektura počítačů (BI-SAP) 7

Technické prostředky počítačové techniky

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Paměťový podsystém počítače

Architektura počítače

Architektura Intel Atom

Principy počítačů I - Procesory

Představení a vývoj architektur vektorových procesorů

PROCESOR. Typy procesorů

Počítač jako prostředek řízení. Struktura a organizace počítače

Cache paměť - mezipaměť

Úvod do architektur personálních počítačů

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Architektura procesorů PC shrnutí pojmů

Přednáška. Strojový kód a data. 4. Přednáška ISA J. Buček, R. Lórencz

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Architektura Pentia úvod

Architektura procesoru ARM

MIKROPROCESOR. (c) Ing. Josef Varačka. Title: XI 28 11:40 (1 of 8)

CHARAKTERISTIKA PROCESORU PENTIUM První verze:

Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování

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

Pokročilé architektury počítačů

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Architektury CISC a RISC, uplatnění v personálních počítačích - pokračování

Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování

Struktura a architektura počítačů (BI-SAP) 11

Proudové zpracování instrukcí II. Hazardy v proudovém zpracování Proudové zpracování FP instrukcí

Pokročilé architektury počítačů

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Architektura počítačů Zvyšování výkonnosti

Proudové zpracování instrukcí I. Celočíselná pipeline RISC

Pokročilé architektury počítačů

Procesor z pohledu programátora

Strojový kód. Instrukce počítače

ARCHITEKTURA PROCESORŮ

Algoritmizace a programování

Struktura a architektura počítačů (BI-SAP) 1

4. Procesory CISC a RISC: Základní rysy a podněty pro vznik, zřetězení, predikce skoku, základní zástupci.

2 Hardware a operační systémy

Kubatova Y36SAP 9. Strojový kód ISA architektura souboru instrukcí střadačově, zásobníkově orientovaná, GPR Kubátová Y36SAP-ISA 1

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

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Úvod do problematiky návrhu počítačových systémů. INP 2008 FIT VUT v Brně

PROCESOR. Rozdělení procesorů

Přidělování paměti II Mgr. Josef Horálek

Architektury počítačů a procesorů

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Management procesu I Mgr. Josef Horálek

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:

Architektura počítačů Implementace procesoru

MSP 430F1611. Jiří Kašpar. Charakteristika

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

OPS Paralelní systémy, seznam pojmů, klasifikace

Mezipaměti počítače. L2 cache. L3 cache

Y36SAP

Řízení IO přenosů DMA řadičem

Pokročilé architektury počítačů

Jan Nekvapil ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán

Principy počítačů. Optimalizace. Martin Urza

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

09. Memory management. ZOS 2006, L.Pešička

a operačních systémů

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič

Transkript:

Principy počítačů a operačních systémů ZVYŠOVÁNÍ VÝKONU Copak je po jméně? Co růži zvou, i zváno jinak vonělo by stejně. William Shakespeare

Mikroarchitektura Zřetězené zpracování pipelining, pp deep ppp pipelining Současné vykonávání více instrukcí static/dynamic multiple issue Spekulativní provádění instrukcí reakce na problémy s výše uvedeným Instruction set architecture usnadnění realizace výkonné mikroarchitektury

Sériové zpracování

Pipeline

Úspora při použití pipeline Pipeline s k kroky, zpracování n instrukcí. Zrychlení: T S = T s T p = kt nkt nk = + ( n 1) t k + ( n 1) Pro n>>k: S k

Zásadní problém Pipeline zavádí paralelismus Bez ohledu na to, co se děje uvnitř, musí se procesor navenek tvářit striktně sekvenčně

Problémy při proudovém zpracování strukturální hazard hardware nepodporuje danou kombinaci instrukcí současný přístup k prostředku z více stupňů pipeline datový hazard instrukce nemá k dispozici data pro vykonání čeká se na výsledek předchozí instrukce řídící hazard nutno učinit rozhodnutí před vykonáním instrukce načtení následující instrukce po instrukci skoku

Hazardy 1: přístup k datům čtení dat z externí paměti způsobí zpoždění ve fázi fetch

Hazardy 2: závislosti add $r3, $r2, $r1 r3 r2 + r1 sub $r5, $r4, $r3 r5 r4 r3 load decode load op1 1 2 3 4 5 6 7 8 9 i1 i2 i1 i2 i1(r2) i2(r4) load op2 i1(r1) 1) i2(r3) execute i1 i2 store i1(r3) i2(r5)

Hazardy 2: závislosti Řešení: Nedovolit Diagram pipeline p s hranami označujícími závislost Závislost = hrana dopředu v čase Mezi závislé instrukce vložit neškodné Přerovnání instrukcí Vhodné uspořádání Dodání mezivýsledku (forwarding, bypassing) Pozdržení instrukce ( pipeline stall )

Forwarding

Hazardy 3: závislost skoků Loop: add $r3, $r2, $r1 sub $r6, $r5, $r4 beq $r3, $r6, Loop

Hazardy 4: skoky skok si vynutí vyprázdnění pipeline Řešení: multiple streams look ahead / look behind buffer delayed branch branch prediction

paměť skoku Motorola MC88110: cyklická paměť 32 instrukcí při skoku se uloží 2 instrukce z větve asociativní vyhledávání dle adresy

zpoždění skoku odložení skutečného skoku, dokud není zjištěna přesná adresa. Mezitím jsou vykonávány neškodné instrukce nutná spolupráce kompilátoru! RISC 2, SPARC 1 instrukce Mips X, Accel, CDC GaAs 2 instrukce

predikce skoku statická v instrukci uložena nápověda. Podle toho se instrukce načítají. Je-li nápověda správně, nedojde ke ztrátě. Je-li nápověda špatně, vyprázdní se pipeline, načte se správný obsah. statická predikce rozhodnutí bez znalosti skutečné historie průběhu může dělat jak překladač, tak hardware: j p, cykly obvykle skáčí na začátek, jen 1x neskočí

predikce skoku dynamická Jedno pochybení nevadí, druhé změní chování

Superpipelining Vývoj pipeline rozdělení kroků pipeline na menší jednodušší rychlejší (v singulárním případě: procesor s pipeline délky 5 je 5x rychlejší než procesor bez pipeline (pipeline délky 1)): MIPS R4000: 8 kroků ků ( deep pipelining ): i 1. Instruction Fetch (1 st half) 2. Instruction Fetch h(2 nd hlf) half) 3. Register Fetch 4. Data Cache Access (1 st half) 5. Data Cache Access (2 nd half) 6. Tag Check 7. Write Back

Vývoj pipeline Superscalar pipelining více paralelních částí pipeline: RISC System/6000: větvení (fork) )po dekódování: různé cesty v pipeline pro integer a floating-point dnes někdy i více celých pipeline

Vývoj pipeline Dynamic pipeline přeplánování problematických částí: fetch and decode unit functional units (5-10) commit unit

Další zrychlování Simultánní multithreading do pipeline se zavádějí instrukce různých vláken, které na sobě skoro jistě nebudou závislé Predikce hodnoty Pozorování ukazuje, že instrukce Load zavede ve více než ½ případů stejnou hodnotu budeme to předpokládat

Statistika užívání instrukcí (IBM/360) skupina zastoupení přesuny dat 45,28% řízení 28,73% aritmetika ik 10,75% porovnávání 5,92% logické operace 3,91% posuny, rotace 2,93% bitové operace 2,05% I/O a ostatní 0,43%

Další pozorování 56% konstant je v rozsahu ±15 (5 bitů) 98% konstant je v rozsahu ±511 (10 bitů) 95% podprogramů potřebuje pro předání parametrů méně než 24 bytů

Výzkum DEC V typickém programu bylo použito 58% instrukční sady pro 98% instrukcí stačilo pouhých 15% firmware

Instrukční sady do 80. let trend rozšiřovat a budovat komplexní sady stovky instrukcí v souboru, nejrůznější varianty instrukce snaha o překlenutí sémantické propasti, neboli rozdílu mezi vyšší a nižší úrovní práce počítače sladit pohled programátora ve vyšším jazyce a programátora v assembleru poskytnout dostatečně širokou škálu instrukcí pro zachycení stylu programování ve vyšším jazyce dát podporu kompilátoru, aby opakující se problém vyřešil jedinou instrukcí místo (dlouhé) sekvence

Změna priorit Důraz na to, co je nejvíce potřeba a co trvá nejdéle Implementace méně používaných instrukcí může zhoršit celkový návrh Spolehnout se na vyšší jazyky a optimalizující kompilátory Paměť je dnes rychlejší a levnější

MIPS 80. léta, John Hennessy Stanford University Stanford silný v kompilátorech vývoj procesoru, jehož architektura by vyjadřovala snížení kompilátoru na úroveň HW (místo obvyklého povyšování HW na úroveň SW)

CISC vs RISC CISC Coplex Instruction Set Computer (zpětné označení) RISC Reduced Instruction Set Computer

Strategie návrhu RISCu zjištění nejpoužívanějších instrukcí (simulace a analýza programů) optimalizace datových cest pro tyto instrukce přidání dalších instrukcí, pokud jsou rozumně využitelné a nezpomalí procesor přesunutí komplexních činností do kompilátoru

CISC Proč se tedy vlastně vyvinuly? (První stroje měly jednoduchou architekturu) Cena HW klesla, cena SW stoupla Přesun složitosti do HW usnadní programování Méně ě instrukcí pro daný ýúkol znamená méně ě přístupů ů do (pomalé a drahé) paměti Implementace pomocí mikrokódu se dá snadno změnit

Charakteristické rysy pro RISC jedna instrukce na cyklus operace registr registr architektura load store malý počet a jednoduché adresovací režimy pevný formát instrukce malý počet a jednoduché instrukce velké množství registrů použití linky proudového zpracování (pipeline) zvláštní zpracování skoků hardwired dnávrh obvodového řešeníš í silná závislost na kompilátoru

Pokus o definici RISC N.J.Davis: omezená a jednoduchá instrukční sada velké množství obecných registrů důraz na optimalizaci pipelinep Colwell: provádění instrukcí v 1 taktu architektura load/store hardwired ddesign relativně málo instrukcí a způsobů adresování pevný formát instrukcí větší význam kompilátoru

První procesory typu RISC Výzkumné systémy: MIPS (Stanford) RISC 1, RISC 2 (Berkeley) IBM-801

RISC typičtí představitelé Desktop/Server: Alpha (Digital) PA-RISC (Hewlett-Packard) PowerPC (IBM + Motorola) MIPS (Silicon Graphics) SPARC (Sun Microsystems)

RISC typičtí představitelé Embedded systems: ARM (Advanced RISC Machines) Thumb (Advanced RISC Machines) SuperH (Hitachi) M32R (Mitsubishi) MIPS16 (Silicon Graphics) Web Extension I: Survey of RISC Architectures

Alpha MIPS I PA-RISC 1.1 PowerPC SPARC V8 Date announced 1992 1986 1986 1993 1987 Instruction size (bits) 32 32 32 32 32 Address space 48 bits, 64 bits, flat 32 bits, flat (size, model) segmented 32 bits, flat 32 bits, flat Data alignment Aligned Aligned Aligned Unaligned Aligned Data addressing 1 modes 1 5 4 2 Protection Page Page Page Page Page Minimum page size 8 KB 4 KB 4 KB 4 KB 8 KB I/O Memory mapped Memory mapped Memory mapped Memory mapped Memory mapped Integer registers 31 GPR 31 GPR 31 GPR 32 GPR 31 GPR (number, model, x 64 bits x 32 bits x 32 bits x 32 bits x 32 bits size) Separate 31 x 32 or 16 x 32 or 56 x 32 or 32 x 32 or 32 x 32 or floating-point 31 x 64 bits 16 x 64 bits 28 x 64 bits 32 x 64 bits 32 x 64 bits registers Floating-point format IEEE 754 single, IEEE 754 single, double double IEEE 754 single, double IEEE 754 single, double IEEE 754 single, double

Návrh procesoru pevná/proměnná délka instrukcí? pevný/proměnný počet a typ operandů? počet adresovacích režimů? mikrokód/hardwired řadič? stupeň paralelismu? důraz na vyšší programovací jazyky? schopnosti kompilátoru?

zvolit RISC nebo CISC? Neexistuje jednoznačná odpověď! Kvantitativní přístup: porovnat velikosti programů a rychlost provádění Kvalitativní přístup: vyhodnotit podporu vyšších programovacích jazyků a schopnosti technologií Problémy: žádné dva procesory RISC a CISC nejsou přímo porovnatelné tlé není konečná sada testovacích programů obtížné odlišit vliv HW a vliv kompilátoru obtížné odlišit vliv HW a vliv kompilátoru (většina dnešních návrhů bere z obou kategorií)

Konvergence CISC a RISC od 80-let se technologie i znalosti změnily mnohé techniky jsou používány procesory z obou táborů: CISC schopné vykonávat v 1 taktu více instrukcí, RISC se zlepšením technologií zbývá místo, vyplnění komplikovanějšími instrukcemi vznikají post-risc návrhy, kombinující oba přístupy s metodami, které nejsou použity v žádné ztěchto kategorií (přesto si RISC RISC zachovává charakteristické vlastnosti)

post-risc Rozdíl od superskalárních RISCů: přidání ne-riscových instrukcí (pro zvýšení výkonu) ( architektura FISC - Fast Instruction Set Computer) agresivní přerovnávání instrukcí v průběhu zpracování out-of-order execution, speculative execution (odklon od závislosti na kompilátoru) nové uspořádání, nové jednotky větší míra paralelismu Beyond RISC The Post-RISC Architecture (1996)

Přechod RISC Post-RISC

Nové komponenty: predecode unit renaming registers reorder buffer retire unit generic post-risc

Nové komponenty: predecode unit renaming registers reorder buffer retire unit cí he) Vyrovnáva paměť (cach LOAD STORE Paměť Predekódování 1 Vyrovnávací paměť instrukcí Fetch/Flow Decode/Branch 3 Dispatch Reorder Buffer Exekuční jednotky BRANCH Completed Instruction Buffer 6 1 2 4 5 generic post-risc Retire Unit 6

Predecode unit, I-cache instrukce načítány po blocích částečné dekódování zjistí vlastnosti instrukcí a uloží je do vyrovnávací paměti instrukcí dodatečné příznaky určují: identifikaci skoků typ potřebné exekuční jednotky zda bude instrukce potřebovat paměť

příklad záznamu v I-cache ve vyrovnávací paměti uloženo: blok instrukcí historie skoků predekódované příznaky historie vykonávání bloku

fetch / flow načítání z I-cache musí být chytré záznam v I-cache ukazuje na další blok instrukcí ukáže-li se odkaz jako špatný, je změněn

decode / branch vlastní dekódování instrukce rozdělení na dva proudy do doby, než je znám skutečný cíl skoku barvení instrukcí

Barvení instrukcí

Výsledky z Branch Unit Fetch/Flow Unit aktualizace flow history načtení správných instrukcí Branch/Decode Unit aktualizace branch history Dispatch and Reorder Buffer zahození instrukcí, které se nemají vykonat Completed ltdinstruction ti Buffer Bff zahození instrukcí, které se neměly vykonat

Instruction Dispatch and Reorder Buffer dekódované instrukce čekají na provedení k provedení dojde, jsou-li k dispozici vstupní hodnoty výstup exekuční jednotka přednost mají starší instrukce instrukce load

Datové závislosti při přerovnání True data dependency RAW (Read after Write) výstup instrukce je použit jako vstup následující Output dependency WAW (Write after Write) dvě instrukce zapisují na stejné místo Anti-dependency WAR (Write after Read) zatímco jedna instrukce zpracovává data, další instrukce tato data změní (WAW a WAR lze vyřešit přeznačením)

Eliminace WAW MOVE r3, r7 ADD r3, r4, r5 MOVE r1, r3 MOVE r3, r7 ADD r8, r4, r5 MOVE r1, r8

out-of-order execution

out-of-order execution

execution units podobně jako u RISC jednotky, které nepočítají v 1 cyklu, použijí pipeline jednotky load/store obvykle umožňují rozpracovat více přístupů najednou

Completed Instruction Buffer, Retire Unit ukládání vykonaných instrukcí, spolu s: příznakem vygenerované výjimky mapováním (přejmenováním) použitých registrů Retire unit odebírá instrukce z bufferu: v takovém pořadí, v jakém by byly sekvenčně zpracovány může uvolnit v 1 taktu více instrukcí

Problém výjimky při výskytu výjimky musí procesor zastavit činnost na tomto místě instrukce, které mají být vykonány až po této instrukci, nesmí ovlivnit stav stroje nesmí existovat nezpracované instrukce ležící před touto instrukcí všechny výjimky způsobené ů předchozími ř dh iinstrukcemi i jsou vyřízeny precizní přerušení/výjimka

RISC vs post-risc RISC: výkon je dán stupněm paralelismu post-risc: výkon je dán počtem najednou odkládaných instrukcí

Představa proudové linky u post-risc Fetch Decode Vyrovnávací paměť jednotky přidělování instrukcí Execute Vyrovnávací paměť odkládací jednotky Instrukce Retire

Příklady procesorů post-risc procesory s ojedinělými znaky post-risc DEC Alpha 21164, SUN UltraSPARC procesory s typickou organizací post-risc IBM PowerPC 604, MIPS R10000, HP PA-8000 smíšené organizace Intel Pentium P6 ( interesting blend of architectures )

DEC Alpha 21164 používá pouze minimum z návrhu post-risc vysoký základní hodinový kmitočet predikce skoku tabulka historie skoků obecně nepoužívá spekulativní provádění instrukcí (pouze některé mimo pořadí) nemá precizní přerušení

DEC Alpha 21164 21164 Instruction Cache Instruction Fetch Decode Branch Integer Integer FP FP Slučovací logika Vyrovnávací paměť dat 40-bit adresa Paměť Bus Vnější Cache Interface vyrovnávcí 98 kb Unit paměť 128-bit data

SUN UltraSPARC více RISC než Post-RISC instrukce v balíku po 4 vicache I-cache 2 záznamy pro branch history mezi fetch a dispatch je fronta 12 instrukcí některé instrukce odkládány out-of-order 2xINT ALU, 5xFP ALU 9 Load, 8 Store buffer fast context switch, traps, motion estimation

SUN UltraSPARC

MIPS R10000 exceptionally Post-RISC zaměřený na grafiku a floating-point plně 4cestně superskalární architektura 64k dvoucestná cache on chip tři plánovací fronty (pro 5 pipeline) nemá flow prediction, branch prediction klasické shadow map ukládání mapy registrů před skokem branch resume cache ukládání instrukcí

MIPS R10000

HP PA-8000 (PA-7000 typický RISC, PA-8000 zcela jinak) IRB pro 56 instrukcí (28 aritm. + 28 memory) velká SRAM cache off chip plně asociativní BTAC (Branch Target Address Cache) pro predikci toku instrukcí (32) inside CPU možnost vypnout dynamic branch prediction

HP PA-8000

PowerPC 604 čtyřcestný superskalární návrh predikční mechanismus vyrovnávací paměť cílových adres (BTAC) tabulka historie větvení (BHT, dvoubitová) přejmenovávané registry, registry podmínkových kódů rezervační stanice pro exekuční jednotky speciální jednotka pro "branch-on-counter"

PowerPC 604 Time Base Fetcher Instruction Queue (8 words) INSTRUCTION UNIT 64 BTAC Branch Processing Unit Rename Buffers CTR 128 / IMMU Clock Multiplier JTAG 128 Dispatch Unit BHT 128 Reservation Station (2 Entry) Multiple l Cycle Integer Unit + - * / 32 / Reservation Station (2 Entry) Single Cycle Integer Unit + - * / 32 GPR File Rename Buffers (8) 32 Reservation Station (2 Entry) FPR File 32 Rename Buffers (8) Load/Store 64 Unit 64 EA Calculation Reservation Station (2 Entry) Floating Point Unit + - * / COMPLETION UNIT 32 Tags 16 kbyte Cache 16 Entry Reorder Buffer Finish Load Queue / 32 DMMU Tags 16 kbyte Cache Bus Interface Unit 32-bit Address Bus 64-bit Data Bus

Intel Pentium P6 instrukční sada CISC interpretována mikrooperacemi na jádře post-risc instrukce rozkládány na mikroinstrukce pipeline provádí mikroinstrukce třícestný superskalární návrh spekulativní provádění

P6 block diagram Bus Interface Unit L1 I-Cache L1 D-Cache Fetch/Decode Unit Dispatch/ Execute Unit Retire Unit Instruction Pool

P6 6detailed edstructure ucue System Bus (External) L2 Cache Bus Interface Unit Instruction Fetch Unit Instruction Cache Next IP Unit Simple Instruction Decoder Instruction Decoder Simple Instruction Decoder Complex Instruction Decoder Branch Target Buffer Microcode Instruction Sequencer Memory Reorder Buffer Register Alias Table Retirement Unit Reorder Unit (Instruction Pool) Retirement Register File (IA Registers) Data Cache Unit Reservation Station FP FP Integer Integer Unit Unit Unit Unit Memory Interface Unit Internal Buses

odbočka Intel Pentium Pipelines

P6 Pipeline

Proudová linka v P6 Reservační stanice a exekuční jednotky Vyrovnávací paměť cílů větvení Jednotka vyzvednutí instrukcí Dekódování instrukcí Přejmenování registrů a změna uspořádání Port0 Port1 Odkládací jednotka BTB0 BTB1 IFU0 IFU1 IFU2 ID0 ID1 RAT ROB RS Port2 ROB RRF Port3 Členění proudové linky Port4 Dvě paralelní linky proudového zpracování X1 X2 WBF Pohyblivá řádová čárka PF D1 D2 EX WB Pevná řádová čárka MR/W Mex MW/M M WBM MMX

Bus Interface Unit

Fetch Unit

Dispatch/Execute Unit

Execution Units

Retire Unit

Dekódování makroinstrukcí maximálně tři makroinstrukce na jeden cyklus maximálně šest mikrooperací na jeden cyklus makroinstrukce kce může být max. 7 bytů a dekóduje se : operace registr/registr 1 μop operace load 1 μop operace store 2 μop operace read/modify/write 4 μop p složitější makroinstrukce mají více než 4 μop a potřebují více cyklů na dekódování

Dataflow CPU vs Post-RISC