Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Poˇcítaˇcové systémy Procesor
Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-1/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Víceúrovˇnová organizace poˇcítaˇce
Digital logic level
Processor
Microarchitecture level
Instruction set architecture level
Operating system machine level
Problem−oriented language level
Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-2/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Logické obvody
Základní stavební prvky logických obvod˚u Prvky sestavené z bipolárních tranzistor˚u +VCC +VCC +VCC Vout V1
Collector
Vout
Vout Vin
V2
V1
V2
Emitter
Base
invertor (a)
NAND (b) brána
NOR (c) brána
Symboly a chování základních typ˚u bran NOT A
X
A
NAND X
B A 0 1
(a)
Miroslav Flídr
X 1 0
NOR
A
X
B A 0 0 1 1
B 0 1 0 1 (b)
X 1 1 1 0
AND
A
X
B A 0 0 1 1
B 0 1 0 1 (c)
X 1 0 0 0
OR
A
X
B A 0 0 1 1
B 0 1 0 1 (d)
Poˇcítaˇcové systémy LS 2006
X 0 0 0 1
A 0 0 1 1
B 0 1 0 1
X 0 1 1 1
A
A
B
XOR
0
0
0
0
1
1
1
0
1
A
1
1
0
B
B
(a)
(e)
-3/17A
(b)
A
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Logické obvody
Kombinaˇcní obvody a aritmetické obvody Multiplexer
Komparátor
Dekodér
D0
EXCLUSIVE OR brána
D0
D1
A0
D1
B0
D2 A
D3 F
D4
D2
A
D3
A1 B1
B
B
D5
A
A=B
D4
B
D6
B2
C
D7
A2
D5
C
C
D6
A A B B C C
D7
A3 B3
A
B
C
Shifter D0
D1
D2
D3
D4
D5
S0
S1
S2
S3
S4
S5
D6
D7
S6
S7
C
Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-4/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Logické obvody
Aritmetické obvody Half adder Exclusive OR gate A
B
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
Sum Carry
A
Sum
B
Carry
Full adder Carry in Carry Carry Sum in out
A
B
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
A
Sum
B
Carry out
Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-5/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Aritmeticko-logická jednotka
1-bitová ALU Logical unit
Carry in
AB INVA A ENA B ENB
A+B
Output
B Sum
Enable lines
F0
Full adder
F1
Decoder
Carry out
8-bitová ALU F1 F0
Miroslav Flídr
A7 B7
A6 B6
A5 B5
A4 B4
A3 B3
A2 B2
A1 B1
A0 B0
1-bit ALU
1-bit ALU
1-bit ALU
1-bit ALU
1-bit ALU
1-bit ALU
1-bit ALU
1-bit ALU
O7
O6
O5
O4
O3
O2
O1
O0
Carry in
Carry out
Poˇcítaˇcové systémy LS 2006
-6/17-
INC
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Pˇríklad mikroarchitektury Memory control signals (rd, wr, fetch) 3
4 4-to-16 Decoder
MAR MDR
MPC
ADDR
9
NEXT ADDR 9b
PC O
8
MBR SP
512 × 36-Bit control store for holding the microprogram
8
LV
JMPC
CPP
Addr
J
ALU
C
JAM
MIR M B
ALU
TOS JAMN/JAMZ
OPC H
B bus
ALU
2 1-bit flip–flop
N
6 ALU control
High bit
C bus
C
Enable onto B bus
Z
Shifter
Control signals
2 Write C bus to register
MEM B
Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-7/17-
JMPC JAMN JAMZ SLL8 SRA1 F0 F1 ENA ENB INVA INC H OPC TOS CPP LV SP PC MDR MAR WRITE READ FETCH B Bus
3b
8b
9b
3b 4b
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Instrukce
Co obsahuje instrukce? â kód instrukce â jakým zp˚usobem bude získán operand (adresace) â kam budou pˇredány výsledky Pˇríklad primitivní instrukˇcní sady Byte
oznaˇcení ADD LOAD STORE
OPCODE 0000 0001 0010
OPCODE
Cílový registr
Zdrojový registr
Formát aritmetické instrukcí ADD,SUB 1 Byte OPCODE
Registr
2 Byte 0
0
Adresa
Formát instrukcí LOAD, STORE
registr A B C D Miroslav Flídr
kód 00 01 10 11
assembler LOAD A, #12 LOAD B, #13 ADD A, B STORE A, #14
Poˇcítaˇcové systémy LS 2006
strojový jazyk 00010000 00001100 00010100 00001101 00000001 00100000 00001110 -8/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Instrukce
Bˇežné formáty instrukcí OPCODE
OPCODE
ADDRESS1 ADDRESS2
ADDRESS
OPCODE
(a)
(b)
OPCODE ADDR1 ADDR2 ADDR3
(c)
(d)
5-9. Four common instruction formats: Obecné typy instrukcí Figure address instruction. (b) One-address instruction address instruction. (d) Three-address instruction.
(a) Zero(c) Two-
â datové pˇresuny pˇresun dat mezi r˚uznými zdroji a cíli operace V/V práce se zásobníkem
â aritmetické operace – 1-3 operandové; r˚uzné dle datových typ˚u â logické operace â rotace a posuny â vˇetvení programu – podmínˇené a nepodmínˇené vˇetvení â pro manipulaci s bity – ovlivˇnují udané pole bit˚u â speciální a rˇídicí Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-9/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Adresní módy
Implicitní (registrový)
Operand je jednoznaˇcnˇe urˇcena typem instrukce S pˇrímým operandem (adresa nultého ˇrádu) Operand je souˇcástí instrukce Pˇrímý (adresa prvního ˇrádu)
Souˇcástí instrukce je adresa operandu Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-10/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Adresní módy
Nepˇrímý (adresa druhého ˇrádu)
Souˇcástí instrukce je adresa adresy operandu. Nepˇrímý s registrem
Adresa operandu je uložena ve specifikovaném registru.
Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-11/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Adresní módy
Indexový
Adresa je získána jako souˇcet hodnoty indexového registru a relativního posunu. Relativní
Obdobnˇe jako pˇri indexovém adresování je adresa operandu nalezena jako souˇcet bázového registru a relativního posunu. V tomto pˇrípadˇe je bázovou adresou hodnota PC. Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-12/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Adresní módy
Autoinkrementaˇcní
Jako nepˇrímé s registrem, ale navíc je obsah registru po operaci inkrementován (používané pro cykly) Autodekrementaˇcní
Obsah registru je dekrementován a pak je použito nepˇrímé adresování s registrem. Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-13/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Jaké prostˇredky se nabízejí ke zvýšení výkonu procesoru?
Technologie urychlující procesor â pipelining â vyrovnávací pamˇet’ â pˇredvídání vˇetvení â vykonávání operací mimo poˇradí â spekulativní vykonávání instrukcí
Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-14/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Pipelining
Co je to Pipelining? Modifikace hardwaru umožˇnující zpracování více instrukcí najednou. Z pohledu programátora není pˇrímo „viditelná“ a ovlivnitelná. â možnost vykonání více cˇ inností s využitím r˚uzných zdroj˚u â v každém strojovém cyklu je možné zahájit vykonáván instrukce â potenciální urychlení cˇ innosti odpovídá hloubce pipeline â rychlost omezována nejpomalejší fází Obecný pr˚ubˇeh zpracování instrukce ¬ Fetch - naˇctení instrukce z adresy dané v PC Decode - uložení instrukce v registru instrukcí a její dekódování ® Execute - vykonání instrukce v ALU/FPU/LSU í naˇctení obsahu vstupních registr˚u í vykonání operace nad vstupními registry ¯ Write - zapsání výsledk˚u do pˇríslušných registr˚u Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-15/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Pipelining
Instrukˇcní cyklus bez pipeline
Charakteristiky pipeline â poˇcet úrovní (hloubka) â struktura dostupných zdroj˚u â propustnost â cˇ ekací doba (latence) Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-16/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Pipelining
Instrukˇcní cyklus se cˇ tyˇrstupˇnovou pipeline
Charakteristiky pipeline â poˇcet úrovní (hloubka) â struktura dostupných zdroj˚u â propustnost â cˇ ekací doba (latence) Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-16/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Pipelining
Instrukˇcní cyklus se cˇ tyˇrstupˇnovou pipeline
Charakteristiky pipeline â poˇcet úrovní (hloubka) â struktura dostupných zdroj˚u â propustnost â cˇ ekací doba (latence) Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-16/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Pipelining
Problémy pipeliningu Rizikové situace â strukturální rizika - snaha použít jeden zdroj pro dva úˇcely najednou â datová rizika - snaha použít výsledky instrukcí, které nejsou k dispozici RAW (read after write) – následná instrukce se pokusí cˇ íst data, která pˇredchozí instrukce ještˇe nedodala WAR (write after read) – následná instrukce se pokusí zapsat operand dˇríve nˇež jej pˇredchozí instrukce naˇcte WAW (write after write) – následná instrukce se pokusí zapsat operand dˇríve nˇež jej zapíše pˇredchozí instrukce â rizika rˇízení - snaha provést rozhodnutí pˇred vyhodnocením podmínek ˇ Rešení rizikových situací â ˇrídící logika musí pˇredem detekovat možnost rizika a provést nápravu â poseˇckání s vykonáním instrukce ⇒ vložení „bubliny“ do pipeline. â vhodným návrhem instrukˇcních cykl˚u Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-17/17-
Západoˇceská univerzita v Plzni
Základní prvky procesoru
Instrukˇcní sada
Metody zvýšení výkonu procesoru
Pipelining
Problémy pipeliningu Rizikové situace â strukturální rizika - snaha použít jeden zdroj pro dva úˇcely najednou â datová rizika - snaha použít výsledky instrukcí, které nejsou k dispozici RAW (read after write) – následná instrukce se pokusí cˇ íst data, která pˇredchozí instrukce ještˇe nedodala WAR (write after read) – následná instrukce se pokusí zapsat operand dˇríve nˇež jej pˇredchozí instrukce naˇcte WAW (write after write) – následná instrukce se pokusí zapsat operand dˇríve nˇež jej zapíše pˇredchozí instrukce â rizika rˇízení - snaha provést rozhodnutí pˇred vyhodnocením podmínek ˇ Rešení rizikových situací â ˇrídící logika musí pˇredem detekovat možnost rizika a provést nápravu â poseˇckání s vykonáním instrukce ⇒ vložení „bubliny“ do pipeline. â vhodným návrhem instrukˇcních cykl˚u Miroslav Flídr
Poˇcítaˇcové systémy LS 2006
-17/17-
Západoˇceská univerzita v Plzni