Title: Pokrocil
1PokrocilĂ© architektury pocĂtacu (PAP_01.ppt)
- Karel Vlcek, karel.vlcek_at_vsb.cz
- katedra Informatiky, FEI
- VŠB Technická Univerzita Ostrava
2Kategorizace architektur pocĂtacu
- Co predmet architektury pocĂtacu popisuje
- (CPU ALU radic pamet Vstupy/Výstupy)
- Subskalárnà architektura (von Neumannova)
- Skalárnà architektura
- Superskalárnà architektura statická (VLIW)
- Superskalárnà architektura dynamická
- Prehled architektur fy INTEL
3Metody popisu architektur
- Ăšroven abstrakce popisu (behavioristickĂ˝ popis,
funkcnà popis, popis struktury) - Modelovánà a simulace procesoru (model
programovacĂ, model technickĂ˝) - Implementace procesoru (modelovánĂ logickĂ© a
fyzickĂ© struktury, vliv integrace a clenenĂ
architektur a jejich cástà na výpocetnà výkon)
4ZákladnĂ funkcnĂ jednotky pocĂtace
- Aritmetická a logická jednotka (ALU)
- Radic (konecnĂ˝ automat pro rĂzenĂ cinnosti)
- Pamet (Ăşrovne pametĂ a jejich rychlost)
- Vstupy a vĂ˝stupy (adresovánĂ, zpusoby
representace informace, podpora formátovánà dat)
5Subskalárnà procesory
- VyznacujĂ se spolecnou pametĂ pro instrukce a
data, kterou poprvé použil J. von Neumann - Doba provádenà jednotlivých instrukcà je dána
souctem casu pro nactenà (catch), dekódovánà a
provedenà (execution) instrukce - Doba provádenà programu je dána prostým
aritmetickým souctem casu trvánà jednotlivých
instrukcĂ
6Skalárnà architektura
- V jednom instrukcnĂm taktu je nactena a
dekĂłdovánĂ jen jedna instrukce - ProvádenĂ instrukcĂ probĂhá v casovĂ©m prekrĂ˝vánĂ
nebo paralelne (naprĂklad operace v pevnĂ© a
pohyblivĂ© rádovĂ© cárce) - TrvánĂ programu je delšĂ, neĹľ soucet dob
provádenĂ instrukcĂ, protoĹľe v nekterĂ˝ch taktech
nemuže být nactena instrukce
7Superskalárnà statická architektura
- ZvýšenĂ vĂ˝pocetnĂho vĂ˝konu bylo dosaĹľeno
zretezenĂm vĂ˝pocetnĂch jednotek (provádenĂ
instrukcĂ je tedy vĂce prekryto) - Pro zvýšenĂ vĂ˝konu bylo nutnĂ© dosáhnout
paralelnĂho nacĂtánĂ instrukcĂ tato architektura
je nazývána superskalárnà - Rešenà prineslo zvetšenà délky slova dekódované
instrukce oznacované VLIW
8Superskalárnà dynamická architektura
- Princip je zajišten plánovánĂm nekolika instrukcĂ
soucasne - Pri instrukcĂch skoku jsou nekterĂ© vĂ˝sledky
provádenà ztraceny, protože nactenà muselo
predcházet provádenĂ instrukcĂ - TĂ˝ká se to zejmĂ©na prĂstupu do operacnĂ pameti
pri ctenà nebo ukládánà dat
9Prehled procesoru INTEL
- rok model f MHz data adresa pocet
transistoru - 1974 8080 3 8 16 5 000
- 1978 8086 5 16 20 29 000
- 1982 80286 10 16 24 134 000
- 1985 80386DX 16 32 32 275 000
- 1988 80486 50 32 32 1 200 000
- 1993 Pentium 66,7 64 32 3 100 000
- 1995 Pentium Pro 200 64 36 5 500 000
- 1997 Pentium II 450 64 46 7 500 000
- 1999 Pentium III 600 64 46 9 500 000
- 2000 Merced 1000 64 64 50 000 000
10Agenda Principy architektury procesoru
- CISC versus RISC
- Prekrývánà catch execution a MMU
- CISC a mikroprogramovĂ© rĂzenĂ
- Základnà vlastnosti RISC
- RISC architektura a jejĂ vnitrnĂ vztahy
- RISC s architekturou L/S (Load/Store)
11CISC versus RISC
- Od roku 1975 spolu souperĂ dve koncepce
architektur - CISC (Complex Instruction Set Computer)
- RISC (Reduced Instruction Set Computer)
12CISC se spolecnou pametĂ Cache
- CISC procesor s mikroprogramovĂ˝m rĂzenĂm
13CISC s prekrĂ˝vánĂm
- Procesory CISC zacaly pouĹľĂvat prekrĂ˝vánĂ
provádenĂ a nacĂtánĂ následujĂcĂ instrukce - Po dobu 95 casu je zpracováváno asi jen 25
instrukcĂ z celkovĂ©ho sortimentu - Procesory mely prĂliš sloĹľitĂ˝ radic, kterĂ˝
zabĂral, protoĹľe byl rešen hardwarove, prĂliš
velkou plochu na cipu.
14Doba provádenà instrukcà Tc
- Doba provedenĂ programu (cas provedenĂ N
instrukcà je dána vztahem - Tc T.N.CPI,
- kde N je celkový pocet vykonaných instrukcà a
CPI (Clock por Instruction) je prumernĂ˝ pocet
vykonávanĂ˝ch cyklu potrebnĂ˝ch k vykonánĂ
instrukce
15Základnà rysy RISC procesoru (1)
- MalĂ˝ pocet relativne jednoduchĂ˝ch instrukcĂ
- V jednom taktu je vykonány jedna instrukce
- Radic s pevne propojenou logickou sĂtĂ hradel
- Operace dat pouze nad registry zápisnĂkovĂ© pameti
- Velký pocet programove dostupných registru
16Základnà rysy RISC procesoru (2)
- Tyto zmeny vyvolaly nutnost optimalizace programu
pomocĂ optimalizujĂcĂho kompilátoru - Adresaci aĹľ 192 registru pri ctenĂ operandu a
ukládánĂ vĂ˝sledku operace - PrĂstup do pameti pouze instrukcĂ presunu, proto
se oznacujĂ instrukce jako L/S instrukce
(Load/Save Instructions)
17RISC s pevne propojeným radicem
- Funkce oddelených Cache pro instrukce a data
P. P. radic
CPU
I - Cache
D - Cache
HlavnĂ pamet
18Dalšà vývoj RISC (1)
- Pro rychlou cinnost nenĂ duleĹľitĂ˝ pocet
instrukcĂ, ale jejich provádenĂ v jednom
instrukcnĂm cyklu - OptimalizujĂcĂ prekladac má tak k dispozici vetšĂ
moĹľnosti optimalizace - Dosahuje se tĂm moĹľnost optimalizace programu
mnohem snadneji, neĹľ volbou sloĹľitĂ˝ch instrukcĂ
19Dalšà vývoj RISC (2)
- Dalšà vývoj smeroval ke zvýšenà efektivity práce
procesoru s pametà - CPU byla doplnena o jednotku správy pameti MMU
(Memory Management Unit) - Pripojen byl také numerický koprocesor pro
zpracovánà dat v pohyblivé rádové cárce - Zdokonaleny byly i operace pro obsluhu bran
perifernĂch zarĂzenĂ
20Soucasný stav vývoje RISC
- RISC jsou již standardne rešeny jako L/S
architektura (Load/Store) - RISC jsou schopny vydávat nekolik instrukcà v
jednom instrukcnĂm cyklu (superskalárnĂ technika)
21Agenda ZretezenĂ© zpracovánĂ
- Typy zretezenà (ALU instrukce, prokládánà pameti,
housenkovĂ© smerovánĂ, transakce) - NezretezenĂ© zpracovánĂ
- ZretezenĂ© zpracovánĂ
- SynchronnĂ a asynchronnĂ implementace
- Optimalizace poctu stupnu
- SuperzretezenĂ
22ZretezenĂ© zpracovánĂ
- Zretezenà je založeno na rozpracovánà nekolika
instrukcà v soubežném režimu a jejich prubežném
dokoncovánĂ - Dosáhne se tĂm zvýšenĂ vĂ˝konu procesoru podobne
jako naprĂklad pri vĂ˝robe na montážnĂ lince
automobilu - Pri instrukcĂch skoku se sniĹľuje Ăşcinnost
zvyšovánà výkonu
23Typy zretezenĂ
- ZretezenĂ lze uplatnit pri rĂzenĂ provádenĂ
instrukcĂ nebo mikroinstrukcĂ - Pri realizaci aritmetickĂ˝ch instrukcĂ
- Pri prĂstupu do pameti (Interleaved Memory)
- Pri zasĂlanĂ zpráv (Wormhole Routing)
- Pri provozu na sdĂlenĂ© sbernici s rozdelenĂ˝mi
transakcemi (Split-Transaction Bus)
24Predpoklady pro ĂşcinnĂ© zretezenĂ
- NepretrĹľitĂ˝ prĂsun Ăşdaju, nad nimiĹľ je provádena
stejná operace - Rozdelenà do nezávislých kroku
- Približne stejné trvánà kroku cinnosti provádené
pri dĂlcĂch krocĂch zretezenĂ
25NezretezenĂ© zpracovánĂ
- Nezretezené zpracovánà je zobrazeno tabulkou s
dvanácti kroky provádenà trà instrukcà - Cas 1 2 3 4 5 6 7 8 9 10 11
12 - i1 S1 S2 S3 S4
- i2 S1 S2 S3 S4
- i3
S1 S2 S3 S4
26Zretezené zpracovánà (1)
- Zretezené zpracovánà je zobrazeno tabulkou s
deseti kroky - Cas 1 2 3 4 5 6 7 8 9 10
- i1 S1 S2 S3 S4
- i2 S1 S2 S3 S4 -
- i3 S1 S2 x S3 S4
- i4 S1 x S2
S3 S4 - i5 x S1
S2 S3 S4 - i6
S1 S2 S3 S4
27Zretezené zpracovánà (2)
- V predchozĂm diagramu jsou pomlckou vyznaceny
situace, kdy je pocĂtac bez práce pomlckou - - CekánĂ na mezivĂ˝sledek je zobrazeno smbolem x
- Pocet stupnu je oznacován hloubka rezu
- Doba pruchodu všemi stupni je tzv. latence retezu
28MinipocĂtace a strediskovĂ© pocĂtace a
mikropocĂtace
- Technika zretezenĂ byla overena jiĹľ na konci
šedesátých let v jednotkách s plovoucà rádovou
cárkou na IBM 360/91 (1967) - U mikropocĂtacu byla technika zretezenĂ poprvĂ©
pouĹľita v procesorech CISC v roce 1985
29TechnickĂ© rešenĂ zretezenĂ
- RešenĂ je moĹľnĂ© dvojĂho provedenĂ
- SynchronnĂ je rĂzeno zdrojem synchronizace. Pri
realizaci se strĂdá logická sĂt realizujĂcĂ
výkonné jednotky se záchytnými registry - Asynchronnà dosahuje maximálnà rychlosti. Pri
návrhu jednotky je kritickou hodnotou pri návrhu
zpracovánĂ dat zpoĹľdenĂ signálu v logickĂ© sĂti
30Technické rešenà zretezenà (2)
- SynchronnĂ linka se zretezenĂm
31Optimalizace poctu stupnu
- Pri návrhu architektury je nutnĂ© mĂt na pameti,
Ĺľe prumerne kaĹľdá desátá instrukce je skok - Mezi zvýšenĂm rychlosti a ceny existuje optimálnĂ
rešenà - Pocet stupnu linky nelze libovolne zvyšovat
32Ukazatel zrychlenĂ S
- Zrychlenà S definujeme jako pomer délky
sekvencnĂho zpracovánĂ TlN.k.t a zkrácenĂ© dĂ©lky
zretezenĂ©ho zpracovánĂ N vstupnĂch poloĹľek
Tk(kN-1).(ttd). NedocházĂ-li k zastavovánĂ
linky je pomer - SkTl/Tk N.k.t /(kN-1).(ttd)
33SuperzretezenĂ
- Využije-li se behem taktu signálu ze zdroje
synchronizace každé hradlo zhruba jednou, jedná
se o techniku tzv. superzretezenà - Úcinnost superzretezenà je tedy závislá na
použité technologii
34Agenda Linky
- Výkonnost nezretezených procesoru
- Usporádánà zretezené linky
- Typ RISC
- Konflikty RAW, WAR a WAW
- Predávánà údaju u konfliktu
- Výpocet adresy u skoku
- PrĂklady
35Výkonnost nezretezených procesoru
- SekvencnĂ provádenĂ instrukcĂ doba provádenĂ
programu je dána souctem dob trvánà instrukcà - Výkonnost nezretezených procesoru P je tak dána
opakovacà periodou signálu ze zdroje
synchronizace (periodou hodin)
36Usporádánà zretezené linky (1)
- Architektura pro zretezené zpracovánà instrukcà v
lince umoĹľnuje prekrytĂ doby nactenĂ a doby
provádenà instrukcà - K urcenà výkonnosti potrebujeme tri údaje
- Periodu signálu zdroje synchronizace
- Latenci instrukcĂ (operacĂ) a
- IniciacnĂ intervaly
37Usporádánà zretezené linky (2)
- Nejstaršà typ linky pro zretezenĂ© zpracovánĂ
pouĹľĂval pouze 2 stupne instrukcnĂ jednotku a
provádecà jednotku - Soudobé linky obsahujà 5 až 12 stupnu
- RozlišujĂ se ctyri hlavnĂ podmnoĹľiny instrukcĂ
1. aritmetické a logické s pevnou cárkou (FX), 2.
operace s pohyblivou rádovou cárkou (FP), 3.
skoky (B, Branching) a - 4. ctenà a ukládáni dat (L/S, Load/Store)
38TradicnĂ procesory RISC
- Cinnosti zretezenĂ u RISC procesoru
- IF (Instruction Fetch)
- ID (Instruction Decode) a RO (Read Operands)
- EX (Execute) a WB (Write Back)
- CA (Cache Access)
- AG (Address Generation)
- E/C (Execute/Cache Access)
39Konflikty RAW, WAR a WAW
- Tri druhy datovĂ˝ch závislostĂ
- RAW (Read After Write) ctenà po zápisu
- WAR (Write After Read) zápis po ctenĂ
- WAW (Write After Write) zápis po zápisu
- Závislost RAR (Read After Read) ke konfliktu
nikdy nevede
40Predávánà údaju u konfliktu
- RAW - predávánà dat (forwarding, bypassing) jinak
nazývané postupová závislost nebo pravá závislost
(true dependence) - WAR - Protiproud (anti-dependence). Tato sekvence
muĹľe dávat vĂ˝sledky v jinĂ©m poradĂ, neĹľ uvádĂ
program - Skoky predstavujĂ tzv. rĂdicĂ závislost (control
dependence)
41Výpocet adresy u skoku
- Pro vĂ˝pocet adresy skoku je vĂ˝hodnĂ© pouĹľĂt
samostatnou aritmetickou jednotku. - Tento výpocet je prováden již ve fázi ID a pak
lze pres multiplexor uloĹľit novou adresu prĂmo do
programovĂ©ho cĂtace - SnĂĹľit tuto nevĂ˝hodu je moĹľnĂ© takĂ© pouĹľitĂm
dynamickĂ© predpovedi skoku. - To je nezbytnĂ© u superskalárnĂch procesoru
42Literatura
- Dvorák, V. Architektura a programovánĂ
paralelnĂch systĂ©mu, VUTIUM Brno, (2004), ISBN
80-214-2608-X - Dvorák, V., Drábek, V. Architektura procesoru,
VUTIUM Brno, (1999), ISBN 80-214-1458-8 - Drábek, V. VĂ˝stavba pocĂtacu, PC-DIR, s.r.o.
Brno, (1995), ISBN 80-214-0691-7 - Mueller, S. OsobnĂ pocĂtac, Computer Press,
Praha, (2001), ISBN 80-7226-470-2 - Pluhácek, A. ProjektovánĂ logiky pocĂtacu,
VydavatelstvĂ CVUT Praha, (2003), ISBN
80-01-02145-9