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