Procesory ILP
1/17
Szybkie
wprowadzenie do
procesorów o
równoległści poziomu
instrukcji
Procesory ILP
2/17
for( int i=1; i<4; i++ )
tab[i] = a[i-1] + b[i];
Równoległość poziomu instrukcji, przykład A
Procesory ILP
3/17
for( int i=1; i<4; i++ )
tab[i] = tab[i-1] + b[i];
Równoległość poziomu instrukcji, przykład B
Procesory ILP
4/17
Typy zależności, ograniczenie poziomu równoległości
True dependency
1. A = 3
2. B = A
3. C = B
Anti-dependency
1. B = 3
2. A = B + 1
3. B = 7
Output dependency
1. A = 2 * X
2. B = A / 3
3. A = 9 * Y
1. A2 = 2 * X
2. B = A2 /3
3. A = 9 * Y
for( int i=1; i<4; i++ )
tab[i] = tab[i-1] + b[i];
tab[1] = tab[0] + b[1];
tab[2] = tab[1] + b[2];
tab[3] = tab[2] + b[3];
for( int i=1; i<4; i++ )
tab[i] = a[i-1] + b[i];
tab[1] = a[0] + b[1];
tab[2] = a[1] + b[2];
tab[3] = a[2] + b[3];
przykład A
przykład B
Procesory ILP
5/17
Architektury przewidujące równoległości
poziomu instrukcji
Front-end
Określenie zależności
Określenie niezależności
Przypisanie do jednost.
funkcjonalnych
Przypisanie do ścieżek
transferu danych
Kod aplikacji
Wykonanie
Zadania
kompilatora
Zadania
procesora
Określenie zależności
Określenie niezależności
Przypisanie do jednost.
funkcjonalnych
Przypisanie do ścieżek
transferu danych
Zależności
procesory
przepływowe
Sekwencja
procesory
superskalarne
Niezależności
EPIC
Niezależności
VLIW
Niezależności
TTA
ar
chi
tekt
u
ry
st
aty
czn
e
ar
chi
tekt
ur
y
dyn
ami
cz
ne
Procesory ILP
6/17
Architektury przewidujące równoległości
poziomu instrukcji = ILP
ILP = Instruction Level Parallelism
Procesory ILP
7/17
Architektura VLIW = Very Long Instruction Word
Atom
Instrukcji
Operacja
dla FU-1
Atom
Instrukcji
Operacja
dla FU-2
Atom
Instrukcji
Operacja
dla FU-N
...
Molekuł Instrukcji
Instrukcja VLIW
1980 - J. Fisher, Yale
University
VLIW jako
architektura wzorowana na
kodzie horyzontalnym
1984 - J. Fisher,
Multiflow, TRACE series
Analog Devices
Sharc DSP
Texas Instr.
C6000
NXP
TriMedia
STMicroelectronics
ST200
Procesory ILP
8/17
Architektura superskalarna
Procesory ILP
9/17
Architektura EPIC
Explicitly Parallel Instruction Computing
Procesory ILP
10/17
Architektura VLIW, superskalarna i EPIC
H. Corporaal, Microprocessor Architectures: From VLIW to TTA, Wiley 1998
Atom
Instrukcji
Operacja
dla FU-1
Atom
Instrukcji
Operacja
dla FU-2
Atom
Instrukcji
Operacja
dla FU-N
...
Molekuł Instrukcji
FU-1
FU-2
FU-3
Jednostka
dekodująca
instrukcje
Jednostka
pobierająca
instrukcje
IDU
IFU
Pami
ęc programu
Pami
ęć
danych
CPU
FU-4
FU-5
RF
bl
ok
r
e
je
st
ró
w
procesory VLIW, superskalarne i EPIC
Instrukcja VLIW
Procesory ILP
11/17
FU-1
FU-2
FU-3
RF-1
RF-2
Jednostka
dekodująca
instrukcje
Jednostka
pobierająca
instrukcje
IDU
IFU
CN
si
eć
ko
mu
n
ika
cyj
n
a
Pami
ę
c pr
ogramu
Pami
ęć
danych
CPU
Architektura TTA
Procesory ILP
12/17
PE
PE
CN
si
e
ć ko
mu
n
ika
cyj
n
a
SU
RU
UU
Jednostka
uaktualniania
IQ
AS
Kolejka instrukcji
Pamięć aktywnych
operacji
IFU
Jednostka
pobierająca
instrukcje
OUs
Jednostki
przetwarzające
CN
do/od
lokalna
komunikacja
PE
Jednostka przetwarzająca
...
MIT Static Dataflow Architecture
Architektura przepływowa
Procesory ILP
13/17
Dual - core
Procesory ILP
14/17
Prawo Amdahla – forma ciężka i ogólna
0
1
n
k
k
k
S
P
S
=
=
∑
S
Speed up – przyspieszenie
wykonania programu
k
P
k-ta część programu
podlegającego
przyspieszeniu
k
S
Stopień przyspiesznia k-tej
części programu
Program podzielony jest na n części, z których każdą możemy przyspieszyć
w różnym stopniu.
Procesory ILP
15/17
(
)
1
1
N
N
S
N
α
=
+
−
Prawo Amdahla – forma oryginalna
N
S
Speed up – przyspieszenie
przy wykorzystaniu N proc.
N
Liczba procesorów
α
Część programu
wymagająca sekwencyjnego
wykonania
Tylko część programu można zrównoleglić. Pozostała część, ze względu na
występujące w niej zależności, musi być wykonana sekwencyjnie.
Procesory ILP
16/17
Polecana literatura
1) H. Corporaal, Microprocessor Architectures: From VLIW to TTA, Wiley 1998
2) W. Stallings, Organizacja i architektura systemu komputerowego, WNT 2003
Rozdział 13
3) J. Stokes, Inside the Machine, No Starch Press, 2007
Procesory ILP
17/17
KONIEC
dr inż. Mariusz Kapruziak
mkapruziak@wi.ps.pl
pok. 107, tel. 449 55 44