PAP_01 - Katedra informatiky FEI VŠB-TUO

Download Report

Transcript PAP_01 - Katedra informatiky FEI VŠB-TUO

Pokročilé architektury
počítačů (PAP_01.ppt)
Karel Vlček,
[email protected]
katedra Informatiky, FEI
VŠB Technická Univerzita
Ostrava
Kategorizace architektur počítačů
Co předmět architektury počítačů popisuje:
(CPU = ALU + řadič + paměť + Vstupy/Výstupy)
 Subskalární architektura (von Neumannova)
 Skalární architektura
 Superskalární architektura statická (VLIW)
 Superskalární architektura dynamická
 Přehled architektur fy INTEL

2
Karel Vlček
Pokročilé architektury procesorů
Metody popisu architektur



3
Úroveň abstrakce popisu (behavioristický
popis, funkční popis, popis struktury)
Modelování a simulace procesorů (model
programovací, model technický)
Implementace procesorů (modelování
logické a fyzické struktury, vliv integrace a
členění architektur a jejich částí na výpočetní
výkon)
Karel Vlček
Pokročilé architektury procesorů
Základní funkční jednotky počítače




4
Aritmetická a logická jednotka (ALU)
Řadič (konečný automat pro řízení činnosti)
Paměť (úrovně pamětí a jejich rychlost)
Vstupy a výstupy (adresování, způsoby
representace informace, podpora
formátování dat)
Karel Vlček
Pokročilé architektury procesorů
Subskalární procesory



5
Vyznačují se společnou pamětí pro instrukce
a data, kterou poprvé použil J. von Neumann
Doba provádění jednotlivých instrukcí je
dána součtem času pro načtení (catch),
dekódování a provedení (execution)
instrukce
Doba provádění programu je dána prostým
aritmetickým součtem časů trvání
jednotlivých instrukcí
Karel Vlček
Pokročilé architektury procesorů
Skalární architektura



6
V jednom instrukčním taktu je načtena a
dekódování jen jedna instrukce
Provádění instrukcí probíhá v časovém
překrývání nebo paralelně (například
operace v pevné a pohyblivé řádové čárce)
Trvání programu je delší, než součet dob
provádění instrukcí, protože v některých
taktech nemůže být načtena instrukce
Karel Vlček
Pokročilé architektury procesorů
Superskalární statická architektura



7
Zvýšení výpočetního výkonu bylo dosaženo
zřetězením výpočetních jednotek
(provádění instrukcí je tedy více překryto)
Pro zvýšení výkonu bylo nutné dosáhnout
paralelního načítání instrukcí: tato
architektura je nazývána superskalární
Řešení přineslo zvětšení délky slova
dekódované instrukce označované VLIW
Karel Vlček
Pokročilé architektury procesorů
Superskalární dynamická
architektura
8

Princip je zajištěn plánováním několika
instrukcí současně

Při instrukcích skoku jsou některé výsledky
provádění ztraceny, protože načtení muselo
předcházet provádění instrukcí

Týká se to zejména přístupu do operační
paměti při čtení nebo ukládání dat
Karel Vlček
Pokročilé architektury procesorů
Přehled procesorů INTEL
rok
1974
1978
1982
1985
1988
1993
1995
1997
1999
2000
9
model
8080
8086
80286
80386DX
80486
Pentium
Pentium Pro
Pentium II
Pentium III
Merced
f [MHz]
3
5
10
16
50
66,7
200
450
600
1000
Karel Vlček
data
8
16
16
32
32
64
64
64
64
64
adresa
16
20
24
32
32
32
36
46
46
64
počet transistorů
5 000
29 000
134 000
275 000
1 200 000
3 100 000
5 500 000
7 500 000
9 500 000
50 000 000
Pokročilé architektury procesorů
Agenda:
Principy architektury procesorů






10
CISC versus RISC
Překrývání catch – execution a MMU
CISC a mikroprogramové řízení
Základní vlastnosti RISC
RISC architektura a její vnitřní vztahy
RISC s architekturou L/S (Load/Store)
Karel Vlček
Pokročilé architektury procesorů
CISC versus RISC



11
Od roku 1975 spolu soupeří dvě koncepce
architektur
CISC (Complex Instruction Set Computer)
RISC (Reduced Instruction Set Computer)
Karel Vlček
Pokročilé architektury procesorů
CISC se společnou pamětí Cache

CISC procesor s mikroprogramovým řízením
řadič
CPU
ROM mikroinstr.
Cache
Hlavní paměť
12
Karel Vlček
Pokročilé architektury procesorů
CISC s překrýváním



13
Procesory CISC začaly používat překrývání
provádění a načítání následující instrukce
Po dobu 95% času je zpracováváno asi jen
25% instrukcí z celkového sortimentu
Procesory měly příliš složitý řadič, který
zabíral, protože byl řešen hardwarově, příliš
velkou plochu na čipu.
Karel Vlček
Pokročilé architektury procesorů
Doba provádění instrukcí Tc

Doba provedení programu (čas provedení N
instrukcí je dána vztahem
Tc = T.N.CPI,
kde N je celkový počet vykonaných instrukcí
a CPI (Clock por Instruction) je průměrný
počet vykonávaných cyklů potřebných k
vykonání instrukce
14
Karel Vlček
Pokročilé architektury procesorů
Základní rysy RISC procesorů (1)





15
Malý počet relativně jednoduchých instrukcí
V jednom taktu je vykonány jedna instrukce
Řadič s pevně propojenou logickou sítí
hradel
Operace dat pouze nad registry zápisníkové
paměti
Velký počet programově dostupných registrů
Karel Vlček
Pokročilé architektury procesorů
Základní rysy RISC procesorů (2)



16
Tyto změny vyvolaly nutnost optimalizace
programu pomocí optimalizujícího
kompilátoru
Adresaci až 192 registrů při čtení operandů
a ukládání výsledku operace
Přístup do paměti pouze instrukcí přesunů,
proto se označují instrukce jako L/S instrukce
(Load/Save Instructions)
Karel Vlček
Pokročilé architektury procesorů
RISC s pevně propojeným řadičem

Funkce oddělených Cache pro instrukce a data
P. P. řadič
CPU
I - Cache
D - Cache
Hlavní paměť
17
Karel Vlček
Pokročilé architektury procesorů
Další vývoj RISC (1)



18
Pro rychlou činnost není důležitý počet
instrukcí, ale jejich provádění v jednom
instrukčním cyklu
Optimalizující překladač má tak k dispozici
větší možnosti optimalizace
Dosahuje se tím možnost optimalizace
programu mnohem snadněji, než volbou
složitých instrukcí
Karel Vlček
Pokročilé architektury procesorů
Další vývoj RISC (2)




19
Další vývoj směřoval ke zvýšení efektivity
práce procesoru s pamětí
CPU byla doplněna o jednotku správy paměti
MMU (Memory Management Unit)
Připojen byl také numerický koprocesor pro
zpracování dat v pohyblivé řádové čárce
Zdokonaleny byly i operace pro obsluhu bran
periferních zařízení
Karel Vlček
Pokročilé architektury procesorů
Současný stav vývoje RISC


20
RISC jsou již standardně řešeny jako L/S
architektura (Load/Store)
RISC jsou schopny vydávat několik
instrukcí v jednom instrukčním cyklu
(superskalární technika)
Karel Vlček
Pokročilé architektury procesorů
Agenda: Zřetězené zpracování






21
Typy zřetězení (ALU instrukce, prokládání
paměti, housenkové směrování, transakce)
Nezřetězené zpracování
Zřetězené zpracování
Synchronní a asynchronní implementace
Optimalizace počtu stupňů
Superzřetězení
Karel Vlček
Pokročilé architektury procesorů
Zřetězené zpracování



22
Zřetězení je založeno na rozpracování
několika instrukcí v souběžném režimu a
jejich průběžném dokončování
Dosáhne se tím zvýšení výkonu procesoru
podobně jako například při výrobě na
montážní lince automobilů
Při instrukcích skoků se snižuje účinnost
zvyšování výkonu
Karel Vlček
Pokročilé architektury procesorů
Typy zřetězení





23
Zřetězení lze uplatnit při řízení provádění
instrukcí nebo mikroinstrukcí
Při realizaci aritmetických instrukcí
Při přístupu do paměti (Interleaved Memory)
Při zasílaní zpráv (Wormhole Routing)
Při provozu na sdílené sběrnici s rozdělenými
transakcemi (Split-Transaction Bus)
Karel Vlček
Pokročilé architektury procesorů
Předpoklady pro účinné zřetězení



24
Nepřetržitý přísun údajů, nad nimiž je
prováděna stejná operace
Rozdělení do nezávislých kroků
Přibližně stejné trvání kroků činnosti
prováděné při dílčích krocích zřetězení
Karel Vlček
Pokročilé architektury procesorů
Nezřetězené zpracování
Nezřetězené zpracování je zobrazeno
tabulkou s dvanácti kroky provádění tří
instrukcí
Čas 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

25
Karel Vlček
Pokročilé architektury procesorů
Zřetězené zpracování (1)

26
Zřetězené zpracování je zobrazeno tabulkou
s deseti kroky
Čas 1 2 3 4 5
i1
S1 S2 S3 S4
i2
S1 S2 S3 S4
i3
S1 S2 x
i4
S1 x
i5
x
i6
6 7 8
9
10
S3 S4
S2 S3 S4
S1 S2 S3 S4
S1 S2 S3 S4
Karel Vlček
Pokročilé architektury procesorů
Zřetězené zpracování (2)




27
V předchozím diagramu jsou pomlčkou
vyznačeny situace, kdy je počítač bez práce
pomlčkou „-“
Čekání na mezivýsledek je zobrazeno
smbolem „x“
Počet stupňů je označován hloubka řezu
Doba průchodu všemi stupni je tzv. latence
řetězu
Karel Vlček
Pokročilé architektury procesorů
Minipočítače a střediskové
počítače a mikropočítače


28
Technika zřetězení byla ověřena již na konci
šedesátých let v jednotkách s plovoucí
řádovou čárkou na IBM 360/91 (1967)
U mikropočítačů byla technika zřetězení
poprvé použita v procesorech CISC v roce
1985
Karel Vlček
Pokročilé architektury procesorů
Technické řešení zřetězení
29
Řešení je možné dvojího provedení:
 Synchronní je řízeno zdrojem
synchronizace. Při realizaci se střídá logická
síť realizující výkonné jednotky se
„záchytnými“ registry
 Asynchronní dosahuje maximální rychlosti.
Při návrhu jednotky je kritickou hodnotou při
návrhu zpracování dat zpoždění signálů v
logické síti
Karel Vlček
Pokročilé architektury procesorů
Technické řešení zřetězení (2)

Synchronní linka se zřetězením
FF
S1
FF
FF
Sk
FF
Hodiny f MHz
30
Karel Vlček
Pokročilé architektury procesorů
Optimalizace počtu stupňů



31
Při návrhu architektury je nutné mít na
paměti, že průměrně každá desátá instrukce
je skok
Mezi zvýšením rychlosti a ceny existuje
optimální řešení
Počet stupňů linky nelze libovolně zvyšovat
Karel Vlček
Pokročilé architektury procesorů
Ukazatel zrychlení S

Zrychlení S definujeme jako poměr délky
sekvenčního zpracování Tl=N.k.τ a zkrácené
délky zřetězeného zpracování N vstupních
položek Tk=(k+N-1).(τ+td). Nedochází-li k
zastavování linky je poměr:
Sk=Tl/Tk= N.k.τ /(k+N-1).(τ+td)
32
Karel Vlček
Pokročilé architektury procesorů
Superzřetězení


33
Využije-li se během taktu signálu ze zdroje
synchronizace každé hradlo zhruba jednou,
jedná se o techniku tzv. superzřetězení
Účinnost superzřetězení je tedy závislá na
použité technologii
Karel Vlček
Pokročilé architektury procesorů
Agenda: Linky







34
Výkonnost nezřetězených procesorů
Uspořádání zřetězené linky
Typ RISC
Konflikty RAW, WAR a WAW
Předávání údajů u konfliktů
Výpočet adresy u skoku
Příklady
Karel Vlček
Pokročilé architektury procesorů
Výkonnost nezřetězených
procesorů


35
Sekvenční provádění instrukcí: doba
provádění programu je dána součtem dob
trvání instrukcí
Výkonnost nezřetězených procesorů P je tak
dána opakovací periodou signálu ze zdroje
synchronizace (periodou hodin)
Karel Vlček
Pokročilé architektury procesorů
Uspořádání zřetězené linky (1)





36
Architektura pro zřetězené zpracování
instrukcí v lince umožňuje překrytí doby
načtení a doby provádění instrukcí
K určení výkonnosti potřebujeme tři údaje:
Periodu signálu zdroje synchronizace
Latenci instrukcí (operací) a
Iniciační intervaly
Karel Vlček
Pokročilé architektury procesorů
Uspořádání zřetězené linky (2)



37
Nejstarší typ linky pro zřetězené zpracování
používal pouze 2 stupně: instrukční jednotku
a prováděcí jednotku
Soudobé linky obsahují 5 až 12 stupňů
Rozlišují se čtyři hlavní podmnožiny instrukcí:
1. aritmetické a logické s pevnou čárkou (FX),
2. operace s pohyblivou řádovou čárkou (FP),
3. skoky (B, Branching) a
4. čtení a ukládáni dat (L/S, Load/Store)
Karel Vlček
Pokročilé architektury procesorů
Tradiční procesory RISC
Činnosti zřetězení u RISC procesorů:
 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)
38
Karel Vlček
Pokročilé architektury procesorů
Konflikty RAW, WAR a WAW
Tři druhy datových závislostí:
 RAW (Read After Write) čtení po zápisu
 WAR (Write After Read) zápis po čtení
 WAW (Write After Write) zápis po zápisu
 Závislost RAR (Read After Read) ke konfliktu
nikdy nevede
39
Karel Vlček
Pokročilé architektury procesorů
Předávání údajů u konfliktů



40
RAW - předávání dat (forwarding, bypassing)
jinak nazývané postupová závislost nebo
pravá závislost (true dependence)
WAR - Protiproud (anti-dependence). Tato
sekvence může dávat výsledky v jiném
pořadí, než uvádí program
Skoky představují tzv. řídicí závislost (control
dependence)
Karel Vlček
Pokročilé architektury procesorů
Výpočet adresy u skoku




41
Pro výpočet adresy skoku je výhodné použít
samostatnou aritmetickou jednotku.
Tento výpočet je prováděn již ve fázi ID a pak
lze přes multiplexor uložit novou adresu
přímo do programového čítače
Snížit tuto nevýhodu je možné také použitím
dynamické předpovědi skoků.
To je nezbytné u superskalárních procesorů
Karel Vlček
Pokročilé architektury procesorů
Literatura:





42
Dvořák, V.: Architektura a programování paralelních
systémů, VUTIUM Brno, (2004), ISBN 80-214-2608X
Dvořák, V., Drábek, V.: Architektura procesorů,
VUTIUM Brno, (1999), ISBN 80-214-1458-8
Drábek, V.: Výstavba počítačů, PC-DIR, s.r.o. Brno,
(1995), ISBN 80-214-0691-7
Mueller, S.: Osobní počítač, Computer Press, Praha,
(2001), ISBN 80-7226-470-2
Pluháček, A.: Projektování logiky počítačů,
Vydavatelství ČVUT Praha, (2003), ISBN 80-0102145-9
Karel Vlček
Pokročilé architektury procesorů