Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.
Transcript of Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.
![Page 1: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/1.jpg)
Multiplicação de valores inteiros
Selecionar subconjuntode bits
Ponto decimalSinal
![Page 2: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/2.jpg)
Soma
![Page 3: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/3.jpg)
Multipli-cação
![Page 4: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/4.jpg)
Multiplicação de valores fracionais
Selecionar subconjuntode bits
Ponto decimalSinal
![Page 5: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/5.jpg)
Arrendondamento
a7 a6 a5 a4 a3 a2 a1 a0
b3 b2 b1 b0
A
B
Arredondamento para o mais próximoB = a7:a4 + a3
Arredondamento convergenteif a3:a0 <> 1000 B = a7:a4 + a3
else B = a7:a4 + a4
![Page 6: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/6.jpg)
ULAparapontofixo
![Page 7: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/7.jpg)
ULAparapontoflutuante
![Page 8: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/8.jpg)
Filtro FIR(resposta finita a impulso)
![Page 9: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/9.jpg)
Arquitetura Harvard
Memória A
Barramento de Endereços A
CPU
Memória B
Barramento de Dados A
Barramento de Endereços B
Barramento de Dados B
![Page 10: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/10.jpg)
Modos de endereçamentoregister indirect
Ler os dados apontados por endereço em registrador
postincrement Depois de ter lido os dados, incremente o ponteiro do endereço
postdecrement Depois de ter lido os dados, decremente o ponteiro do endereço
register postincrement
Depois de ter lido os dados, incremente o ponteiro do endereço de um número de posições indicado por um registrador
bit reversed (borboleta FFT)
Reorganize os bits de endereço para chegarNo proóximo endereço
![Page 11: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/11.jpg)
Modos de endereçamento
Endereçamento módulo
![Page 12: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/12.jpg)
Unidade de geração de endereços
![Page 13: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/13.jpg)
Sem Pipelining
I2I1
I2
I2I1
I2I1
87654321
ciclo de relógio
executar
ler/escrevermemória
decodificar
obter instrução
I1
![Page 14: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/14.jpg)
I1
Pipelining
87654321
ciclo de relógio
executar
ler/escrevermemória
decodificar
obter instrução
I1
I1
I1
I2
I2
I2
I2
I3
I3
I3
I3
I4
I4
I4
I4
I5
I5
I5
I5
![Page 15: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/15.jpg)
Conflito de disponibilidadede recursos
87654321
ciclo de relógio
executar
ler/escrevermemória
decodificar
obter instrução I1
I1
I1
I1
I2
I2
I2
I2
I3
I3
I2/3
I3
I4
I4
I4
I4
I5
I5
I5
I5
![Page 16: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/16.jpg)
Resolução do Conflitousando Bloqueiamento
87654321
ciclo de relógio
executar
ler/escrevermemória
decodificar
obter instrução I1
I1
I1
I1
I2
I2
I2
NOP
I3
I3
I2
I2
I4
I3
I3
I3
I4
I4
I4
I4
I5
I5
I5
![Page 17: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/17.jpg)
Falha de sincronização
I1 MOV R0,5678
I2 SUB R0,4444
I3 MOV X0,[R0]
![Page 18: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/18.jpg)
Efeito de salto
87654321
ciclo de relógio
executar
ler/escrevermemória
decodificar
obter instrução BRA
BRA
BRA
BRA
I2
-
-
NOP
-
-
-
-
-
-
N1
N1
N1
N1
N2
N2
N2
NOPNOP
![Page 19: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/19.jpg)
Solução: salto com retardo
I1 BRA 5678 ;salto para novo endereço
I2 SUB R0,R2 ;estas três
I3 MOV R3,R2 ;instruções são executadas
I4 ADD R4,R5 ;antes de salto
• problema: salto condicional
![Page 20: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/20.jpg)
Solução: salto com retardo
87654321
ciclo de relógio
executar
ler/escrevermemória
decodificar
obter instrução BRA
BRA
BRA
BRA
I2
I2
I2
I2
I3
I3
I3
I4
I4
I4
N1
N1
N1
N1
N2
N2
N2
I3 I4
![Page 21: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/21.jpg)
ResumoDiferenças entre DSP e processador comum
• DSPs são feitas para aplicações embarcadas de processamento de sinais em tempo real
• DSPs não podem ser programado pelo usuário (não existe UGM, nem SO, nem cache, nem multi-processamento)
• DSPs usam alguma forma de "Arquitetura Harvard"
• DSPs dedicam uma parte significativa de superfície de silício para operações de multiplicação/acumulação
![Page 22: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/22.jpg)
Resumo (continuação)
Diferenças entre DSP e processador comum
• Programas de DSPs estão armazenadas frequentemente em ROM on-chip
• DSPs frequentemente possuem dois RAMs on-chip para dados
• O mecanismo de interrupção de DSPs é simples e rápido
• DSPs são frequentemente programados em Assembler
![Page 23: Multiplicação de valores inteiros Selecionar subconjunto de bits Ponto decimal Sinal.](https://reader036.fdocument.pub/reader036/viewer/2022062404/552fc10c497959413d8c3432/html5/thumbnails/23.jpg)
Resumo (continuação2)
Diferenças entre DSP e processador comum
• Mecanismo de E/S simples• Espaço de endereçamento reduzido • DSPs de ponto fixo podem usar saturação em vez de
estouro• Modos de endereçamento específicos (buffer
circular, "borboleta")• Suporte para laços e as vezes pilha on-chip• benchmark para DSPs são diferentes: :
– Filtro FIR/IIR, FFTs– Convolução, Produto de vetores