Buscar

Topico_10 (Representação HDL, exceções e microarquitetura avançada)

Prévia do material em texto

Tópico 10: Representação HDL, exceções e 
microarquitetura avançada
Prof. Jhonattan Cordoba Ramirez
Escola de Engenharia
Universidade Federal de Minas Gerais (UFMG)
ELT123 - Arquitetura e Organização de Computadores
Representação HDL
• Processador MIPS de ciclo único
• Caminho de dados
• Controlador
• Memórias externas
• Código HDL
• Caminho de dados
• Códigos genéricos como os registros e
multiplexores, para qualquer
microarquitetura
• Testbench e sua interação com memórias
externas.
Exceções
Uma exceção é a forma como uma chamada de função sem marcação, 
salta para um novo endereço. Exceções podem ser causadas por 
hardware ou software:
• Causadas por:
• Hardware, também chamada de interrupção.
• Software, também chamadas de traps ou armadilhas.
• Quando exceções ocorrem, o processador:
• É escrito um código indicando a origem da exceção (registro 
Cause). Adicionalmente, é armazenado o valor do PC (registro 
EPC - Exception Program Counter). (Coprocessador 0)
• Pula para a função de tratamento de exceção. (No MIPS, a função 
de tratamento de exceção está sempre localizada em 0x80000180)
• Volta ao programa.
Exceções Motivo
Interrupção 
de hardware
0x00000000
System call 0x00000020
Breakpoint 
(Divide por 0)
0x00000024
Instrução 
indefinida 0x00000028
Overflow 
aritmético 0x00000030
Exceções
Exceções
Exceções
IorD = 0
AluSrcA = 0
ALUSrcB = 01
ALUOp = 00
PCSrc = 00
IRWrite
PCWrite
Reset
S0: Buscar S1: Decodificar
ALUSrcA = 1
ALUSrcB = 10
ALUOp = 00
S2: Endereço de 
Memória
RegDst = 0
MemtoReg = 1
RegWrite
S4: Escrita no 
Registrador
IorD = 1
MemtoWrite
S5: Escrita na 
Memória
IorD = 1
S3: Leitura na 
Memoria
RegDst = 1
MemtoReg = 0
RegWrite
S7: Escrita no 
Registrador
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 10
S6: Executar
Op = Tipo R
ALUSrcA = 0
ALUSrcB = 11
ALUOp = 00
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 01
PCSrc = 01
Branch
S8: Branch
Op = beq
RegDst = 0
MemtoReg = 0
RegWrite
S10: Escrita no 
Registrador
ALUSrcA = 1
ALUSrcB = 10
ALUOp = 00
S9: Executar
addi
Op = addi
PCSrc = 10
PCWrite
S11: Jump
Op = j
PCSrc = 11
PCWrite
IntCause = 
0
CauseWrite
EPCWrite
S13: Overflow
PCSrc = 11
PCWrite
IntCause = 
1
CauseWrite
EPCWrite
S12: Undefined
Op = Others
S14: mfc0
Op = mfc0
RegDst = 0
MemtoReg = 
10
RegWrite
Overflow
Overflow
Microarquitetura avançada
• Melhor desempenho
• Diminuição no tempo de relógio
• Reduzir CPI.
• Consumo de energia?
• Profundidade do Pipeline
• Limitado pelo número de hazards, sobrecarga de sequenciamento e aumento no custo.
• Quanto mais longo, maior número de dependências.
• Solução, encaminhamento e stalls. (Aumento do CPI).
• Entre estágios temos sobrecargas de sequenciamento do tempo de setup e atraso de clock.
• Adição de mais estágios proporciona retornos decrescentes e aumenta o custo por causa dos
registros de pipeline extras e do hardware necessário para lidar com hazards.
Exemplo
Considere a construção de um processador com pipeline por quebra do processador de ciclo-único em N
estágios (N ≥ 5). O processador de ciclo-único tem um atraso de propagação de 875 ps através da lógica
combinacional. A sobrecarga de sequenciamento de um registro é de 50 ps. Assume-se que o atraso
combinacional pode ser arbitrariamente dividido em quaisquer que sejam os estágios requeridos e que a
lógica de harzard do pipeline não aumente o atraso. O pipeline de cinco estágios convencional tem um
CPI de 1,15. Suponha que cada estágio adicional aumenta o CPI de 0,1 por causa dos erros de previsão
dos branchs e outros hazards dos pipelines. Quantos estágios de pipeline devem ser usados para
conseguir que o processador execute programas o mais rapidamente possível?
𝑇𝑇𝑐𝑐 = �875 𝑁𝑁 + 50 𝑝𝑝𝑝𝑝 → 𝑇𝑇𝑐𝑐 = 129.5454 ps
N = 11
Tempo de
ciclo𝐶𝐶𝐶𝐶𝐶𝐶 = 1,15 + 0,1 𝑁𝑁 − 5 → 𝐶𝐶𝐶𝐶𝐶𝐶 = 1,75
Tempo de instrução 226,70 para N = 11
• Previsão de branch
• CPI ideal 1
• Branch misprediction penalty é uma das principais razões para o aumento do CPI.
• Alguns branch ocorrem quando o programa chega ao fim (ciclos while ou for).
• A forma mais simples de previsão de desvios verifica a direção dos branchs de retorno e prevê que
branchs de retorno devem ser realizados. Isto é chamado de previsão de desvio estático, uma vez
que não dependem da história do programa.
Microarquitetura avançada
add $s1, $0, $0 # sum = 0 
addi $s0, $0, 0 # i = 0 
addi $t0, $0, 10 # $t0 = 10 
for: 
beq $s0, $t0, done # if i == 10, branch to done
add $s1, $s1, $s0 # sum = sum + i
addi $s0, $s0, 1 # increment i
j for 
done: 
Microarquitetura avançada
1 Bit 2 BitsRealizado Realizado
________
Realizado
Realizado
Não
Realizado
Não
Realizado
________
Realizado
Realizado
________
Realizado
Realizado
Fortemente
Realizado
Fracamente
Realizado
Fracamente
Não Realizado
Fortemente
Não Realizado
________
RealizadoRealizado
Microarquitetura avançada
Um processador superescalar contém várias cópias do hardware do caminho de dados para executar múltiplas 
instruções simultaneamente. Reduzindo de forma significativa o CPI.
Microarquitetura avançada
Microarquitetura avançada
Microarquitetura avançada
Para lidar com o problema das dependências, um processador superescalar out-of-order inspeciona à
frente através de muitas instruções para obter, ou iniciar a execução, de instruções independentes o mais
rapidamente possível. As instruções podem ser obtidas numa ordem diferente do que foi escrito pelo
programador, enquanto as dependências são observadas para que o programa produza o resultado
pretendido.
Ciclo 1: Obtenção de lw e or, evitando
dependência do add e possível stall.
Ciclo 2: Obtenção de sw, ainda evitando
dependência do add e possível stall.
Ciclo 3: $t0 está disponível. sub não pode
ser executada antes de add.
Ciclo 4: and é lida.
Microarquitetura avançada
Utilização de renomeação de registros
Ciclo 1: Obtenção de lw e sub, sub
independente devido à renomeação de $t0.
Ciclo 2: Obtenção de and e or. sw não
pode ser executado antes de or. Ainda
evitando dependência do add pelo $t0.
Ciclo 3: $t0 está disponível. add e sw são
executadas
Processadores
Processadores
MISC – Minimal Instruction Set Computer
PCI Express (Peripheral Component Interconnect 
Express
Cache L1, Cache L2 e Cache L3
	Tópico 10: Representação HDL, exceções e microarquitetura avançada
	Slide Number 2
	Slide Number 3
	Slide Number 4
	Slide Number 5
	Slide Number 6
	Slide Number 7
	Slide Number 8
	Slide Number 9
	Slide Number 10
	Slide Number 11
	Slide Number 12
	Slide Number 13
	Slide Number 14
	Slide Number 15
	Slide Number 16
	Slide Number 17

Continue navegando