background image

Procesory ILP

1/17

Szybkie 

wprowadzenie do 

procesorów o 

równoległści poziomu 

instrukcji

background image

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

background image

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

background image

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

background image

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

background image

Procesory ILP

6/17

Architektury przewidujące równoległości 

poziomu instrukcji = ILP

ILP = Instruction Level Parallelism

background image

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. FisherYale 
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

background image

Procesory ILP

8/17

Architektura superskalarna

background image

Procesory ILP

9/17

Architektura EPIC

Explicitly Parallel Instruction Computing

background image

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

w

procesory VLIW, superskalarne i EPIC

Instrukcja VLIW

background image

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

 ko

mu

n

ika

cyj

n

a

Pami

ę

c pr

ogramu

Pami

ęć

 danych

CPU

Architektura TTA

background image

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

background image

Procesory ILP

13/17

Dual - core

background image

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 części, z których każdą możemy przyspieszyć
w różnym stopniu.

background image

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. 

background image

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

background image

Procesory ILP

17/17

KONIEC

dr inż. Mariusz Kapruziak

mkapruziak@wi.ps.pl

pok. 107, tel. 449 55 44