Anda di halaman 1dari 30

Aula

Introdução a Sistemas Digitais

Paralelismo e Pipeline

1 / 30
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt
Aula
Paralelismo

• Hardware é inerentemente paralelo.


• Ao se conectar um circuito a fonte de alimentação, todos os
transistores podem potencialmente realizar algum trabalho.
• A habilidade de usar convenientemente o paralelismo é um desafio
para o projetista:
– Pensamento paralelo é dificil de ser atingido pois o projetista
normalmente pensa em termos seriais.
– Nem todas as aplicações podem ser desenvolvidas pensando
no processamento paralelo. (dependencia de dados).

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2 / 30


Aula
Estudo de Caso

Algoritmo:

int diffeq(int x, int y, int u, int dx, int a) {


int x1, u1, y1;
a é uma constante
while ( x < a ) {
x1 = x + dx;
u1 = u - (3 * x * u * dx) - (3 * y * dx);
y1 = y + u * dx;
x = x1;
u = u1;
y = y1;
}
return y;
}

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 3 / 30


Pseudo-codigo e dependência de Aula

dados
Enquanto (x<a){
x1= x +dx; 3 x u dx 3 y u dx x dx x a
u1= u – 3*x*u*dx – 3*y*dx;
y1= y + u*dx;
n1 * n2 * n4 * n3 * n5 + n9 <
x = x1; dx
y = y1; y
u = u1; n6 * n8 * n7 + teste
} x1
u

n10 - y1

n11 -
Paralelismo inerente ao
processo da aplicação
u1

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 4 / 30


Aula
Analise de Recursos de Hardware

• Depende do paralelismo implementado:

– Implementação puramente combinacional


– Implementação sequencial (certo número de ciclos de relogio
para completar o algoritmo) - Escalonamento
– Inserção de pipeline no fluxo sequencial de operação.

Enquanto (x<a){
x1= x +dx;
u1= u – 3*x*u*dx – 3*y*dx;
y1= y + u*dx;
x = x1;
y = y1;
u = u1;
}

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 5 / 30


Aula
Paralelismo dos Operadores
Puramente Combinacional

• Definir a quantidade de hardware necessária para a execução da


aplicação.
Opção 1: 3 x u dx 3 y u dx x dx x a
Tudo combinacional
n4 * n3 * + <
n1 * n2 *
- 6 multiplicadores dx n5
y n9
- 2 somadores
- 3 subtradores
n6 * n8 * n7 + teste
- 1 comparador x1
u
Atraso caminho critico:
2 multiplicadores + 2 subtratores n10 - y1

Ex: 100ns + 100ns + 30ns + 30 ns n11 -


= 260 ns

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 6 / 30


Aula
Paralelismo dos Operadores
Sequencial (sem limite de recursos)
3 x u dx 3 y u dx x dx x a
enquanto (x<a){
x1= x +dx; + <
* * * *
u1= u – 3*x*u*dx – 3*y*dx; n1 n2 dx n4 n3 n5 n9 Estado 1
y
y1= y + u*dx;
x = x1; n6 * n8 * n7 +
Estado 2
y = y1; u
u = u1;
} n10 -
Estado 3

Opção 2:
Execução por estados!!! n11 -
Estado 4

Necessita de variáveis intermediárias u1 y1 x1 teste

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 7 / 30


Aula
Paralelismo dos Operadores
Sequencial (sem limite de recursos)

• O numero de ciclos de relógio neste caso depende da dependencia


natural da aplicação.
3 x u dx 3 y u dx x dx x a
Opção 2:
Execução por estados n1 * n2 * n4 * n3 * n5 + n9 <
dx
y
- 4 multiplicadores
- 1 somadores n6 * n8 * n7 + teste
- 1 subtrador x1
u
- 1 comparador
Atraso caminho critico:
n10 - y1
1 multiplicador
Tempo de execução: 4 ciclos

Ex: 4 x 100ns = 400ns n11 -

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 8 / 30


Aula
Paralelismo dos Operadores
Sequencial (Recurso limitado)

• Definir a quantidade de hardware necessária para a execução da


aplicação.
3 x u dx 3 y u dx x dx x a
Opção 3:
Execução por estados n1 * n2 * n4 * n3 * n5 + n9 <
dx
y
- 1 multiplicadores
- 1 somadores n6 * n8 * n7 + teste
- 1 subtrador x1
u
- 1 comparador
TO
Atraso caminho critico: n10 - y1
EN
1 multiplicador
N AM
Tempo de execução: X ciclos L O
C A
Ex: ? x 100ns = ? ns n11 - ES

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 9 / 30


Aula
Otimizações
1 – Otimizar temos em comum

3 x u dx 3 y u dx x dx x a

n1 * n2 * n4 *
dx
n3 *X n5 + n9 <

y
n6 * n8 * n7 + teste
x1
u

n10 - y1

n11 -

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 10 / 30


Aula
Algoritmos de Otimização
• ASAP (as soon as possible) 3 x u dx 3 y x dx x a

n1 * n2 * n4 * n5 + n9 <
dx Estado 1
y
n6 * n8 * n7 +
Estado 2
Estado1: 3 multiplicadores, u
1 somador e 1 comparador
Estado 2: 2 multiplicadores,
n10 -
1 somador
Estado 3
Estado 3: 1 subtrator
Estado 4: 1 subtrator
n11 -
Estado 4

u1 y1 x1 teste

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 11 / 30


Aula
Algoritmos de Otimização
• ALAP (as late as possible) 3 x u dx

n1 * n2 *
3 y Estado 1

n6 * * n4 teste
Estado 2
Estado1: 2 multiplicadores, u dx
Estado 2: 2 multiplicadores,
Estado 3: 1 multiplicador e 1 n10 - n8
subtrator *
Estado 3
Estado 4: 1 subtrator, 2 x dx x a
somadores, 1 comparador y
n11 - n7 + n5 + n9 <
Estado 4

u1 y1 x1
teste

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 12 / 30


Aula
Algoritmos de Otimização
• ALAP (as late as possible) 3 x u dx
melhorado
n1 * n2 *
3 y Estado 1

n6 * * n4
Estado 2
Estado1: 2 multiplicadores, u dx x dx
Estado 2: 2 multiplicadores,
Estado 3: 1 multiplicador e 1
n10 - n8
*
n5 +
subtrator e 1 somador
Estado 3
Estado 4: 1 subtrator, 1
x a
somador, 1 comparador y
n11 - n7 + <
Estado 4
n9
u1 x1
y1
teste

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 13 / 30


Aula
Paralelismo dos Operadores
Puramente Combinacional

• Definir a quantidade de hardware necessária para a execução da


aplicação.
3 x u dx
Opção 1:
Tudo combinacional
n1 * n2 *
3 y
- 5 multiplicadores
- 2 somadores
- 3 subtradores n6 * * n4
- 1 comparador u dx x dx

Atraso caminho critico: n10 - n8


*
n5 +
2 multiplicadores + 2 subtratores
x a
y
Ex: 100ns + 100ns + 30ns + 30 ns n11 - n7 + <

= 260 ns n9
u1 x1
y1 teste
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 / 30
Aula
Paralelismo dos Operadores
Sequencial (sem limite de recursos)

• Definir a quantidade de hardware necessária para a execução da


3 x u dx
aplicação.
n1 * n2 *
Opção 2: 3 y
Execução por estados
n6 * * n4
- 2 multiplicadores u dx x dx
- 1 somadores
- 1 subtrador
n10 - n8
*
n5 +
- 1 comparador
Atraso caminho critico:
x a
1 multiplicador y
Tempo de execução: 4 ciclos n11 - n7 + <
n9
Ex: 4 x 100ns = 400ns u1 x1
y1

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 15 / 30


Aula
Hardware necessário
Sequencial (sem limite de recursos)
Entradas dos multiplexadores x a

X, Y, U, dx, 3, m1, m2, s1, s2

multiplicador multiplicador somador subtrator comparador

Tempo de execução do laço: teste


4 ciclos de relógio

X Y U

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 16 / 30


Aula
Uso de Pipeline
Pipeline 3 x u dx
Opção 3:
Pipeline n1 * n2 * x dx
3 y Estado 1
- 5 multiplicadores
- 2 somadores n6 * * n4
- 3 subtradores Estado 2
- 1 comparador u dx

Atraso caminho critico: n10 - n8


*
n5 +
1 multiplicador Estado 3

y a
Tempo de execução: 1 ciclo,
Após o preenchimento do n11 - n7 + <
Estado 4
pipeline que tem profundidade
4. u1 x1 n9
y1
Ex: 1x100ns = 100 ns

u y x teste

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 17 / 30


3 x u dx Aula
Pipeline n1 * n2 *
3 y Estado 1

clk n6 * * n4
dx Estado 2
u dx x

n1 xxxxxxxxciclo1 ciclo2 ciclo3 n10 - n8


* n5 + Estado 3

n2 xxxxxxxxciclo1 ciclo2 ciclo3 y x a


n11 - n7 + <Estado 4
n6 xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 n9
u1 y1 x1

n4 xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 teste

n11 xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 …

n8 xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 ….

U1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..


Y1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..
X1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 18 / 30


3 x u dx Aula
Pipeline n1 * n2 *
3 y Estado 1

clk n6 * * n4
dx Estado 2
u dx x

n1 xxxxxxxxciclo1 ciclo2 ciclo3 n10 - n8


* n5 + Estado 3

n2 xxxxxxxxciclo1 ciclo2 ciclo3 y x a


n11 - n7 + <Estado 4
n6 xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 n9
u1 y1 x1

n4 xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 teste

n11 xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 …

n8 xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 ….

U1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..


Y1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..
X1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 19 / 30


3 x u dx Aula
Pipeline n1 * n2 *
3 y Estado 1

clk n6 * * n4
dx Estado 2
u dx x

n1 xxxxxxxxciclo1 ciclo2 ciclo3 n10 - n8


* n5 +
Estado 3

n2 xxxxxxxxciclo1 ciclo2 ciclo3 y x a


n11 - n7 + <Estado 4
n6 xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 n9
u1 y1 x1

n4 xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 teste

n11 xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 …

n8 xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 ….

U1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..


Y1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..
X1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 20 / 30


3 x u dx Aula
Pipeline n1 * n2 *
3 y Estado 1

clk n6 * * n4
dx Estado 2
u dx x

n1 xxxxxxxxciclo1 ciclo2 ciclo3 n10 - n8


* n5 + Estado 3

n2 xxxxxxxxciclo1 ciclo2 ciclo3 y x a


n11 - n7 + <Estado 4
n6 xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3
u1 y1 x1 n9

n4 xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 teste

n11 xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 …

n8 xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 ….

U1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..


Y1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..
X1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 21 / 30


3 x u dx Aula
Pipeline n1 * n2 *
3 y Estado 1

clk n6 * * n4
dx Estado 2
u dx x

n1 xxxxxxxxciclo1 ciclo2 ciclo3 ciclo4


n10 - n8
* n5 +
Estado 3

n2 xxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 y x a


n11 - n7 + <Estado 4
n6 xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 n9
u1 y1 x1

n4 xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 teste

n11 xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 …

n8 xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 ….

U1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..


Y1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..
X1 valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 22 / 30


Aula
Comparação
Combinacional 4 estados (PC-PO) Pipeline

5 multiplicadores 2 multiplicadores 5 multiplicadores


Area 2 somadores 1 somadores 2 somadores
3 subtradores 1 subtrador 3 subtradores
1 comparador 1 comparador 1 comparador

Atraso de 2 4 ciclos de 1 ciclo de


Desempenho multiplicadores Atraso 1 Atraso de 1
+ 2 subtratores multiplicador multiplicador
Latencia = 4.

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 23 / 30


Aula

Laboratório 1

24 / 30
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt
Implementação em VHDL Aula

Comportamental
COMBINACIONAL
process (clock, reset)
variable x1, y1, u1 : std_logic_vector(7 downto 0);
begin
if reset=‘1’ then
x1 := “00010000”;
y1 := “00001110”; clock reset
u1 := “00111010”;
elsif (clock’event and clock=‘1’) then
if (x1<a) then 16
x1:= x +dx; a
u1:= u – 3*x*u*dx – 3*y*dx;
y1:= y + u*dx; dx
end if;
16
x <= x1;
y <= y1;
u <= u1; 16 16 16
end process;

xo <= x; xo yo uo
y0 <= y;
uo <= u;

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 25 / 30


Implementação em VHDL Aula

Comportamental
Resolvendo problema no tamanho dos operandos
process (clock, reset)
variable x1, y1, u1 : integer;
begin
if reset=‘1’ then
x1 := 0;
y1 := 0; clock reset
u1 := 0;
elsif (clock’event and clock=‘1’) then
if (x1<a) then 16
x1:= x +dx; a
u1:= u – 3*x*u*dx – 3*y*dx;
y1:= y + u*dx; dx
end if;
16
x <= conv_std_logic_vector(x1, 16);
y <= conv_std_logic_vector(y1, 16);
u <= conv_std_logic_vector(u1, 16); 16 16 16
end process;

xo <= x; xo yo uo
y0 <= y;
uo <= u;

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 26 / 30


Aula
Exercicio

• Simular 10 laços do algoritmo e ver o tempo de execução:

• Determinar:
– Quantos ciclos de relogio são necessarios para efetuar os 10
laços do algoritmo?
– Qual é o periodo de relogio necessario para o funcionamento?

– Qual é o custo em área (numero de LUTs e numero de flip-


flops)?
Virtex2-Pro

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 27 / 30


Implementação em VHDL Aula

Comportamental 3 x u dx
PIPELINE
process (clock, reset) n1 * n2 *
3 y Estado 1
variable x1, y1, u1, n1, n2 n6, n4, n10, n8,
n5, n9, n11, n7 : integer; n6 * * n4 Estado 2
begin u dx x dx
if reset=‘1’ then
x1 := 0; y1 := 0; u1 := 0; …. n7:=0; n10 - n8
* n5 + Estado 3
elsif (clock’event and clock=‘1’) then
y x
if (teste=‘1’) then a
n11 - n7 + <Estado 4
n5:= x +dx;
… u1 y1 x1 n9
end if;
x <= conv_std_logic_vector(x1, 16); teste
y <= conv_std_logic_vector(y1, 16); process(clock, reset)
begin
u <= conv_std_logic_vector(u1, 16); If reset=‘1’ then
end process; teste <= ‘1’;
elsif (clock’event and clock=‘1’) then
if x<a then
xo <= x; teste <=‘1’;
else teste <= ‘0’;
y0 <= y; end if;
uo <= u; end if;
end process;
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 28 / 30
Aula
Implementação com Pipeline - RTL
process(fiox, fioy)
process (clock, reset) begin
begin fiow <= fiox*fioy;
if reset=‘1’ then multiplicador
end process;
reg <= “00000000”;
elsif (clock’event and clock=‘1’) then
if (p=‘1’) then process(x, a)
reg = fioX; begin
registradores if (x<a) then
end if;
end if; p <= ‘0’;
end process; else
p <= ‘1’; comparador
process(fiox, fioy) end process;
begin
fiow <= fiox+fioy; somador
end process;

process(fiox, fioy)
begin
fiow <= fiox-fioy; subtrador
end process;

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 29 / 30


Aula
Exercicio

• Simular 10 laços do algoritmo e ver o tempo de execução:

• Determinar:
– Quantos ciclos de relogio são necessarios para efetuar os 10
laços do algoritmo?
– Qual é o periodo de relogio necessario para o funcionamento?

– Qual é o custo em área (numero de LUTs e numero de flip-


flops)?
Virtex2-Pro

Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 30 / 30

Anda mungkin juga menyukai