Introdução a Sistemas Digitais - UFRGSfglima/aula11.pdf · Introdução a Sistemas Digitais...
Transcript of Introdução a Sistemas Digitais - UFRGSfglima/aula11.pdf · Introdução a Sistemas Digitais...
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt1 / 30
Introdução a Sistemas DigitaisIntrodução a Sistemas Digitais
Paralelismo e Pipeline
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2 / 30
ParalelismoParalelismo
• 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).
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 3 / 30
EstudoEstudo de de CasoCaso
Algoritmo:
int diffeq(int x, int y, int u, int dx, int a) {int x1, u1, y1;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;}
a é uma constante
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 4 / 30
PseudoPseudo--codigocodigo e e dependênciadependência de de dadosdados
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;
}
3 x u dx 3 y u dx x dx x a
dx y
u
u1
y1
x1 teste
n1 n2 n3n4 n5 n9
n6 n8 n7
n10
n11
* * * * + <
* * +
-
-Paralelismo inerente aoprocesso da aplicação
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 5 / 30
AnaliseAnalise de de RecursosRecursos de Hardwarede 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;
}
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 6 / 30
ParalelismoParalelismo dos dos OperadoresOperadores
• Definir a quantidade de hardware necessária para a execução daaplicação.
3 x u dx 3 y u dx x dx x a
dx y
u
y1
x1 teste
n1 n2 n3n4n5 n9
n6 n8 n7
n10
n11
* * * * + <
* * +
-
-
Opção 1:Tudo combinacional
- 6 multiplicadores- 2 somadores- 3 subtradores- 1 comparador
Atraso caminho critico:2 multiplicadores + 2 subtratores
Ex: 100ns + 100ns + 30ns + 30 ns= 260 ns
Puramente Combinacional
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 7 / 30
ParalelismoParalelismo dos dos OperadoresOperadores
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;
}
u1 y1 x1 teste
Opção 2:Execução por estados!!!
3 x u dx 3 y u dx x dx x a
dx y
u
n1 n2 n3n4 n5 n9
n6 n8 n7
n10
n11
* * * * + <
* * +
-
-
Estado 1
Estado 2
Estado 3
Estado 4
Sequencial (sem limite de recursos)
Necessita de variáveis intermediárias
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 8 / 30
ParalelismoParalelismo dos dos OperadoresOperadores
• O numero de ciclos de relógio neste caso depende da dependencianatural da aplicação.
3 x u dx 3 y u dx x dx x a
dx y
u
y1
x1 teste
n1 n2 n3n4 n5 n9
n6 n8 n7
n10
n11
* * * * + <
* * +
-
-
Opção 2:Execução por estados
- 4 multiplicadores- 1 somadores- 1 subtrador- 1 comparador
Atraso caminho critico:1 multiplicadorTempo de execução: 4 ciclos
Ex: 4 x 100ns = 400ns
Sequencial (sem limite de recursos)
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 9 / 30
ParalelismoParalelismo dos dos OperadoresOperadores
• Definir a quantidade de hardware necessária para a execução daaplicação.
Opção 3:Execução por estados
- 1 multiplicadores- 1 somadores- 1 subtrador- 1 comparador
Atraso caminho critico:1 multiplicadorTempo de execução: X ciclos
Ex: ? x 100ns = ? ns
Sequencial (Recurso limitado)
3 x u dx 3 y u dx x dx x a
dx y
u
y1
x1 teste
n1 n2 n3n4 n5 n9
n6 n8 n7
n10
n11
* * * * + <
* * +
-
- ESCALONAMENTO
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 10 / 30
OtimizaçõesOtimizações
3 x u dx 3 y u dx x dx x a
dx y
u
y1
x1 teste
n1 n2 n3n4 n5 n9
n6 n8 n7
n10
n11
* * * * + <
* * +
-
-
1 – Otimizar temos em comum
X
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 11 / 30
AlgoritmosAlgoritmos de de OtimizaçãoOtimização• ASAP (as soon as possible)
u1 y1 x1 teste
3 x u dx 3 y x dx x a
dxy
u
n1 n2 n4 n5 n9
n6 n8 n7
n10
n11
* * * + <
* * +
-
-
Estado 1
Estado 2
Estado 3
Estado 4
Estado1: 3 multiplicadores,1 somador e 1 comparadorEstado 2: 2 multiplicadores, 1 somadorEstado 3: 1 subtratorEstado 4: 1 subtrator
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 12 / 30
AlgoritmosAlgoritmos de de OtimizaçãoOtimização• ALAP (as late as possible)
u1 y1 x1teste
3 x u dx
3 y
x dx x a
dx
y
uteste
n1 n2
n4
n8
n5 n9
n6
n7
n10
n11
* *
*
+ <
*
*
+
-
-
Estado 1
Estado 2
Estado 3
Estado 4
Estado1: 2 multiplicadores,Estado 2: 2 multiplicadores, Estado 3: 1 multiplicador e 1 subtratorEstado 4: 1 subtrator, 2 somadores, 1 comparador
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 13 / 30
AlgoritmosAlgoritmos de de OtimizaçãoOtimização• ALAP (as late as possible) melhorado
u1 y1 x1teste
3 x u dx
3 y
x dx
x a
dx
y
u
n1 n2
n4
n8 n5
n9
n6
n7
n10
n11
* *
*
+
<
*
*
+
-
-
Estado 1
Estado 2
Estado 3
Estado 4
Estado1: 2 multiplicadores,Estado 2: 2 multiplicadores, Estado 3: 1 multiplicador e 1 subtrator e 1 somadorEstado 4: 1 subtrator, 1 somador, 1 comparador
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 / 30
ParalelismoParalelismo dos dos OperadoresOperadores
• Definir a quantidade de hardware necessária para a execução daaplicação.
Opção 1:Tudo combinacional
- 5 multiplicadores- 2 somadores- 3 subtradores- 1 comparador
Atraso caminho critico:2 multiplicadores + 2 subtratores
Ex: 100ns + 100ns + 30ns + 30 ns= 260 ns
u1 y1 x1
3 x u dx
3 y
x dx
x a
dx
y
u
n1 n2
n4
n8 n5
n9
n6
n7
n10
n11
* *
*
+
<
*
*
+
-
-
teste
Puramente Combinacional
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 15 / 30
ParalelismoParalelismo dos dos OperadoresOperadores
• Definir a quantidade de hardware necessária para a execução daaplicação.
Opção 2:Execução por estados
- 2 multiplicadores- 1 somadores- 1 subtrador- 1 comparador
Atraso caminho critico:1 multiplicadorTempo de execução: 4 ciclos
Ex: 4 x 100ns = 400ns u1 y1 x1
3 x u dx
3 y
x dx
x a
dx
y
u
n1 n2
n4
n8 n5
n9
n6
n7
n10
n11
* *
*
+
<
*
*
+
-
-
Sequencial (sem limite de recursos)
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 16 / 30
Hardware Hardware necessárionecessário
multiplicador multiplicador somador subtrator comparador
X Y U
teste
a
Tempo de execução do laço:4 ciclos de relógio
X, Y, U, dx, 3, m1, m2, s1, s2
Entradas dos multiplexadores xSequencial (sem limite de recursos)
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 17 / 30
UsoUso de Pipelinede Pipeline
u1 y1 x1
teste
3 x u dx
3 y x dx
a
dx
y
u
n1 n2
n4
n8 n5
n9
n6
n7
n10
n11
* *
*
+
<
*
*
+
-
-
Estado 1
Estado 2
Estado 3
Estado 4
Opção 3:Pipeline
- 5 multiplicadores- 2 somadores- 3 subtradores- 1 comparador
Atraso caminho critico:1 multiplicador
Tempo de execução: 1 ciclo,Após o preenchimento do pipeline que tem profundidade4.
Ex: 1x100ns = 100 ns
Pipeline
u y x
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 18 / 30
PipelinePipeline
clk
u1 y1 x1
teste
3 x u dx
3 y
x dx
x a
dx
y
u
n1 n2
n4
n8 n5
n9
n6
n7
n10
n11
* *
*
+
<
*
*
+
-
-
Estado 1
Estado 2
Estado 3
Estado 4
n1
n2
n6
n4
n11
n8
U1Y1X1
xxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 …
xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 ….
valorc0 ciclo1 ciclo2 ciclo3 ciclo4 ….. valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 19 / 30
PipelinePipeline
clk
u1 y1 x1
teste
3 x u dx
3 y
x dx
x a
dx
y
u
n1 n2
n4
n8 n5
n9
n6
n7
n10
n11
* *
*
+
<
*
*
+
-
-
Estado 1
Estado 2
Estado 3
Estado 4
n1
n2
n6
n4
n11
n8
U1Y1X1
xxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 …
xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 ….
valorc0 ciclo1 ciclo2 ciclo3 ciclo4 ….. valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 20 / 30
PipelinePipeline
clk
u1 y1 x1
teste
3 x u dx
3 y
x dx
x a
dx
y
u
n1 n2
n4
n8 n5
n9
n6
n7
n10
n11
* *
*
+
<
*
*
+
-
-
Estado 1
Estado 2
Estado 3
Estado 4
n1
n2
n6
n4
n11
n8
U1Y1X1
xxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 …
xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 ….
valorc0 ciclo1 ciclo2 ciclo3 ciclo4 ….. valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 21 / 30
PipelinePipeline
clk
u1 y1 x1
teste
3 x u dx
3 y
x dx
x a
dx
y
u
n1 n2
n4
n8 n5
n9
n6
n7
n10
n11
* *
*
+
<
*
*
+
-
-
Estado 1
Estado 2
Estado 3
Estado 4
n1
n2
n6
n4
n11
n8
U1Y1X1
xxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 …
xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 ….
valorc0 ciclo1 ciclo2 ciclo3 ciclo4 ….. valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 22 / 30
PipelinePipeline
clk
u1 y1 x1
teste
3 x u dx
3 y
x dx
x a
dx
y
u
n1 n2
n4
n8 n5
n9
n6
n7
n10
n11
* *
*
+
<
*
*
+
-
-
Estado 1
Estado 2
Estado 3
Estado 4
n1
n2
n6
n4
n11
n8
U1Y1X1
xxxxxxxxciclo1 ciclo2 ciclo3 ciclo4
xxxxxxxxciclo1 ciclo2 ciclo3 ciclo4
xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3
xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 …
xxxxxxxxxxxxxxxxxxxxxxxciclo1 ciclo2 ciclo3 ciclo4 ciclo5 ….
valorc0 ciclo1 ciclo2 ciclo3 ciclo4 ….. valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..valorc0 ciclo1 ciclo2 ciclo3 ciclo4 …..
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 23 / 30
ComparaçãoComparação
Area
Desempenho
Combinacional 4 estados (PC-PO) Pipeline
5 multiplicadores2 somadores3 subtradores1 comparador
5 multiplicadores2 somadores3 subtradores1 comparador
2 multiplicadores1 somadores1 subtrador1 comparador
Atraso de 2 multiplicadores+ 2 subtratores
4 ciclos de Atraso 1 multiplicador
1 ciclo de Atraso de 1 multiplicadorLatencia = 4.
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt24 / 30
LaboratórioLaboratório 11
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 25 / 30
ImplementaçãoImplementação emem VHDL VHDL ComportamentalComportamental
process (clock, reset)variable x1, y1, u1 : std_logic_vector(7 downto 0);beginif reset=‘1’ then
x1 := “00010000”;y1 := “00001110”;u1 := “00111010”;
elsif (clock’event and clock=‘1’) thenif (x1<a) then
x1:= x +dx;u1:= u – 3*x*u*dx – 3*y*dx;y1:= y + u*dx;
end if;x <= x1;y <= y1;u <= u1;end process;
xo <= x;y0 <= y;uo <= u;
a
dx
clock reset
xo yo uo
16
16
16 16 16
COMBINACIONAL
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 26 / 30
ImplementaçãoImplementação emem VHDL VHDL ComportamentalComportamental
process (clock, reset)variable x1, y1, u1 : integer;beginif reset=‘1’ then
x1 := 0;y1 := 0;u1 := 0;
elsif (clock’event and clock=‘1’) thenif (x1<a) thenx1:= x +dx;u1:= u – 3*x*u*dx – 3*y*dx;y1:= y + u*dx;
end if;x <= conv_std_logic_vector(x1, 16);y <= conv_std_logic_vector(y1, 16);u <= conv_std_logic_vector(u1, 16);end process;
xo <= x;y0 <= y;uo <= u;
a
dx
clock reset
xo yo uo
16
16
16 16 16
Resolvendo problema no tamanho dos operandos
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 27 / 30
ExercicioExercicio
• 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
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 28 / 30
ImplementaçãoImplementação emem VHDL VHDL ComportamentalComportamental
process (clock, reset)variable x1, y1, u1, n1, n2 n6, n4, n10, n8,
n5, n9, n11, n7 : integer;beginif reset=‘1’ then
x1 := 0; y1 := 0; u1 := 0; …. n7:=0;elsif (clock’event and clock=‘1’) then
if (teste=‘1’) thenn5:= x +dx;
…end if;
x <= conv_std_logic_vector(x1, 16);y <= conv_std_logic_vector(y1, 16);u <= conv_std_logic_vector(u1, 16);end process;
xo <= x;y0 <= y;uo <= u;
PIPELINE
u1 y1 x1
teste
3 x u dx
3 y
x dx
x a
dx
y
u
n1 n2
n4
n8n5
n9
n6
n7
n10
n11
* *
*
+
<
*
*
+
-
-
Estado 1
Estado 2
Estado 3
Estado 4
process(clock, reset)beginIf reset=‘1’ then
teste <= ‘1’;elsif (clock’event and clock=‘1’) then
if x<a thenteste <=‘1’;
else teste <= ‘0’;end if;end if;end process;
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 29 / 30
ImplementaçãoImplementação com Pipeline com Pipeline -- RTLRTL
process (clock, reset)beginif reset=‘1’ then
reg <= “00000000”;elsif (clock’event and clock=‘1’) then
if (p=‘1’) thenreg = fioX;
end if;end if;end process;
process(fiox, fioy)begin
fiow <= fiox+fioy;end process;
process(fiox, fioy)begin
fiow <= fiox-fioy;end process;
process(fiox, fioy)begin
fiow <= fiox*fioy;end process;
process(x, a)begin
if (x<a) thenp <= ‘0’;elsep <= ‘1’;
end process;
subtrador
somador
comparador
multiplicador
registradores
Aula
Disciplina: Sistemas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 30 / 30
ExercicioExercicio
• 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