Počítačové systémy Procesor Miroslav Flídr Počítačové systémy LS 2006-1/17- Západočeská univerzita v Plzni
Víceúrovňová organizace počítače Digital logic level Microarchitecture level Processor Instruction set architecture level Operating system machine level Problem oriented language level Miroslav Flídr Počítačové systémy LS 2006-2/17- Západočeská univerzita v Plzni
Logické obvody Základní stavební prvky logických obvodů Prvky sestavené z bipolárních tranzistorů +V CC +V CC +VCC Vout Collector V1 Vout V out Vin V2 V1 V2 ase Emitter invertor (a) NND (b) brána NOR (c) brána Symboly a chování základních typů bran NOT X NND X NOR X ND X OR X X 0 1 1 0 X 0 0 1 0 1 1 1 0 1 1 1 0 X 0 0 1 0 1 0 1 0 0 1 1 0 X 0 0 0 0 1 0 1 0 0 1 1 1 X 0 0 0 0 1 1 1 0 1 1 1 1 XOR 0 0 0 0 1 1 1 0 1 1 1 0 (a) (b) (c) (d) (e) (a) (b) Miroslav Flídr Počítačové systémy LS 2006-3/17- Západočeská univerzita v Plzni
Logické obvody Kombinační obvody a aritmetické obvody Multiplexer Dekodér Komparátor D 0 D0 EXCLUSIVE OR brána D 1 0 D1 0 D2 D2 D 3 D 4 F D3 1 1 D4 = D 5 D 6 C C D5 2 D7 C D6 2 C C D7 3 3 C Shifter D0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 C S0 S1 S2 S3 S4 S5 S6 S7 Miroslav Flídr Počítačové systémy LS 2006-4/17- Západočeská univerzita v Plzni
Logické obvody ritmetické obvody Half adder Exclusive OR gate Sum Carry 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Sum Carry Full adder Carry in Carry in Sum Carry out Sum 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 Miroslav Flídr Počítačové systémy LS 2006-5/17- Západočeská univerzita v Plzni Carry out
ritmeticko-logická jednotka 1-bitová LU Logical unit Carry in INV EN EN + Output Sum Enable lines F 0 Full adder F 1 Decoder Carry out 8-bitová LU 7 7 F F0 1 1-bit LU 6 6 1-bit LU 5 5 1-bit LU 4 4 1-bit LU 3 3 1-bit LU 2 2 1-bit LU 1 1 1-bit LU 0 0 1-bit LU INC O7 O6 O5 O4 O3 O2 O1 O0 Carry Carry in out Miroslav Flídr Počítačové systémy LS 2006-6/17- Západočeská univerzita v Plzni
Příklad mikroarchitektury Memory control signals (rd, wr, fetch) MR MDR 3 4-to-16 Decoder MPC 9 4 DDR NEXT DDR 9b 6 PC MR SP LV CPP TOS OPC H LU control LU Shifter C bus bus N Z 8 High bit 2 8 O 2 1-bit flip flop 512 36-it control store for holding the microprogram JMPC MIR ddr J LU C M JMN/JMZ Control signals Enable onto bus Write C bus to register JM LU C MEM JMPC JMN JMZ SLL8 SR1 F0 F1 EN EN INV INC H OPC TOS CPP LV SP PC MDR MR WRITE RED FETCH us 3b 8b 9b 3b 4b Miroslav Flídr Počítačové systémy LS 2006-7/17- Západočeská univerzita v Plzni
Instrukce Co obsahuje instrukce? kód instrukce jakým způsobem bude získán operand (adresace) kam budou předány výsledky Příklad primitivní instrukční sady označení OPCODE DD 0000 LOD 0001 STORE 0010 registr kód 00 01 C 10 D 11 OPCODE OPCODE yte Cílový registr Registr Zdrojový registr Formát aritmetické instrukcí DD,SU 1 yte 2 yte Formát instrukcí LOD, STORE 0 0 dresa assembler strojový jazyk LOD, #12 00010000 00001100 LOD, #13 00010100 00001101 DD, 00000001 STORE, #14 00100000 00001110 Miroslav Flídr Počítačové systémy LS 2006-8/17- Západočeská univerzita v Plzni
Instrukce ěžné formáty instrukcí OPCODE (a) OPCODE (b) DDRESS OPCODE DDRESS1 DDRESS2 (c) OPCODE DDR1 DDR2 DDR3 (d) Obecné typy instrukcí Figure 5-9. Four common instruction formats: (a) Zeroaddress instruction. (b) One-address instruction (c) Twoaddress instruction. (d) Three-address instruction. datové přesuny přesun dat mezi různými zdroji a cíli operace V/V práce se zásobníkem aritmetické operace 1-3 operandové; různé dle datových typů logické operace rotace a posuny větvení programu podmíněné a nepodmíněné větvení pro manipulaci s bity ovlivňují udané pole bitů speciální a řídicí Miroslav Flídr Počítačové systémy LS 2006-9/17- Západočeská univerzita v Plzni
dresní módy Implicitní (registrový) Operand je jednoznačně určena typem instrukce S přímým operandem (adresa nultého řádu) Přímý (adresa prvního řádu) Operand je součástí instrukce Součástí instrukce je adresa operandu Miroslav Flídr Počítačové systémy LS 2006-10/17- Západočeská univerzita v Plzni
dresní módy Nepřímý (adresa druhého řádu) Součástí instrukce je adresa adresy operandu. Nepřímý s registrem dresa operandu je uložena ve specifikovaném registru. Miroslav Flídr Počítačové systémy LS 2006-11/17- Západočeská univerzita v Plzni
dresní módy Indexový dresa je získána jako součet hodnoty indexového registru a relativního posunu. Relativní Obdobně jako při indexovém adresování je adresa operandu nalezena jako součet bázového registru a relativního posunu. V tomto případě je bázovou adresou hodnota PC. Miroslav Flídr Počítačové systémy LS 2006-12/17- Západočeská univerzita v Plzni
dresní módy utoinkrementační Jako nepřímé s registrem, ale navíc je obsah registru po operaci inkrementován (používané pro cykly) utodekrementační Obsah registru je dekrementován a pak je použito nepřímé adresování s registrem. Miroslav Flídr Počítačové systémy LS 2006-13/17- Západočeská univerzita v Plzni
Jaké prostředky se nabízejí ke zvýšení výkonu procesoru? Technologie urychlující procesor pipelining vyrovnávací pamět předvídání větvení vykonávání operací mimo pořadí spekulativní vykonávání instrukcí Miroslav Flídr Počítačové systémy LS 2006-14/17- Západočeská univerzita v Plzni
Pipelining Co je to Pipelining? Modifikace hardwaru umožňující zpracování více instrukcí najednou. Z pohledu programátora není přímo viditelná a ovlivnitelná. možnost vykonání více činností s využitím různých zdrojů v každém strojovém cyklu je možné zahájit vykonáván instrukce potenciální urychlení činnosti odpovídá hloubce pipeline rychlost omezována nejpomalejší fází Obecný průběh zpracování instrukce 1 Fetch - načtení instrukce z adresy dané v PC 2 Decode - uložení instrukce v registru instrukcí a její dekódování 3 Execute - vykonání instrukce v LU/FPU/LSU načtení obsahu vstupních registrů vykonání operace nad vstupními registry 4 Write - zapsání výsledků do příslušných registrů Miroslav Flídr Počítačové systémy LS 2006-15/17- Západočeská univerzita v Plzni
Pipelining Instrukční cyklus bez pipeline Charakteristiky pipeline počet úrovní (hloubka) struktura dostupných zdrojů propustnost čekací doba (latence) Miroslav Flídr Počítačové systémy LS 2006-16/17- Západočeská univerzita v Plzni
Pipelining Instrukční cyklus se čtyřstupňovou pipeline Charakteristiky pipeline počet úrovní (hloubka) struktura dostupných zdrojů propustnost čekací doba (latence) Miroslav Flídr Počítačové systémy LS 2006-16/17- Západočeská univerzita v Plzni
Pipelining Instrukční cyklus se čtyřstupňovou pipeline Charakteristiky pipeline počet úrovní (hloubka) struktura dostupných zdrojů propustnost čekací doba (latence) Miroslav Flídr Počítačové systémy LS 2006-16/17- Západočeská univerzita v Plzni
Pipelining Problémy pipeliningu Rizikové situace strukturální rizika - snaha použít jeden zdroj pro dva účely najednou datová rizika - snaha použít výsledky instrukcí, které nejsou k dispozici RW (read after write) následná instrukce se pokusí číst data, která předchozí instrukce ještě nedodala WR (write after read) následná instrukce se pokusí zapsat operand dříve něž jej předchozí instrukce načte WW (write after write) následná instrukce se pokusí zapsat operand dříve něž jej zapíše předchozí instrukce rizika řízení - snaha provést rozhodnutí před vyhodnocením podmínek Řešení rizikových situací řídící logika musí předem detekovat možnost rizika a provést nápravu posečkání s vykonáním instrukce vložení bubliny do pipeline. vhodným návrhem instrukčních cyklů Miroslav Flídr Počítačové systémy LS 2006-17/17- Západočeská univerzita v Plzni
Pipelining Problémy pipeliningu Rizikové situace strukturální rizika - snaha použít jeden zdroj pro dva účely najednou datová rizika - snaha použít výsledky instrukcí, které nejsou k dispozici RW (read after write) následná instrukce se pokusí číst data, která předchozí instrukce ještě nedodala WR (write after read) následná instrukce se pokusí zapsat operand dříve něž jej předchozí instrukce načte WW (write after write) následná instrukce se pokusí zapsat operand dříve něž jej zapíše předchozí instrukce rizika řízení - snaha provést rozhodnutí před vyhodnocením podmínek Řešení rizikových situací řídící logika musí předem detekovat možnost rizika a provést nápravu posečkání s vykonáním instrukce vložení bubliny do pipeline. vhodným návrhem instrukčních cyklů Miroslav Flídr Počítačové systémy LS 2006-17/17- Západočeská univerzita v Plzni