Upload
internet
View
107
Download
0
Embed Size (px)
Citation preview
Multiplicação de valores inteiros
Selecionar subconjuntode bits
Ponto decimalSinal
Soma
Multipli-cação
Multiplicação de valores fracionais
Selecionar subconjuntode bits
Ponto decimalSinal
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
ULAparapontofixo
ULAparapontoflutuante
Filtro FIR(resposta finita a impulso)
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
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
Modos de endereçamento
Endereçamento módulo
Unidade de geração de endereços
Sem Pipelining
I2I1
I2
I2I1
I2I1
87654321
ciclo de relógio
executar
ler/escrevermemória
decodificar
obter instrução
I1
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
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
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
Falha de sincronização
I1 MOV R0,5678
I2 SUB R0,4444
I3 MOV X0,[R0]
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
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
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
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
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
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