Aula 4
Aula 4
Aula 4
• Micro-código (decodifique)
• 1: DECODE
• HDL
• 1: GOTO {2 CONDITIONED ON IR[31]xIR[30], ! desvio/sethi:
op=00
• Rótulo: comando 5
• Transferência de dados para o registrador A
• Registradores B e C enviados para CLU
(Combinational Logic Unit) que efetua a adição
• GOTO: Controle transferido para comando 10 se bit
12 do registrador IR = 1; próximo comando caso
Projeto HDL...
Derivação do circuito a partir da HDL
• Parte de Controle
• Trata sobre como transições são feitas de um
comando para o outro
• Parte de Dados
• Produção de saídas
• Modificação dos valores de elementos de memória
Circuito
HDL
do ARC
Excessões
Sofrendo no paraíso...
Exceções ! O que acontece ?
◦ Falha na página ao buscar a próxima instrução
◦ Código de instrução ilegal
◦ Código de instrução privilegiada
◦ Overflow ou underflow aritmético
◦ Divisão por zero e outros absurdos
◦ Falha na página ao buscar dados
◦ Mudança de status em dispositivo de I/O
◦ Power on / reset
Como tratar as exceções?
Alguns acreditam que deveríamos testar
todas as condições (após cada operação)
◦ Overflow
◦ Dispositivo de I/O pronto
Alguns testes precisariam ser executados
antes das operações
◦ Divisor diferente de zero
◦ Página de memória existente
◦ Argumentos não numéricos
Porém...
A esmagadora maioria dos testes dariam
resultados negativos, porém, todos
consumiriam tempo de CPU
Solução:
◦ Uma chamada surpresa para uma subrotina
◦ A esta chamada surpresa denominamos
“exceção”
Exceções: Visão Geral
Dois tipos de exceções:
◦ Interrupções (assíncronas)
◦ Armadilhas (síncronas)
O hardware sempre cuida da reação
inicial
Em seguida, uma rotina em software é
invocada para tratar a exceção
◦ Uma tabela de endereços de rotinas
◦ O núcleo do S.O. provê as rotinas...
Exceções: Hardware
Determina o estado que identificará a
causa da exceção
Muda para o modo privilegiado,
preparando a CPU para o trabalho
perigoso que terá pela frente...
Desabilita novas interrupções
Salva o PI atual
Invoca a rotina pré-determinada
Tratamento de Exceções
Interrupções
• Interrupções por software (ou traps)
• Procedimento chamado pelo hardware qdo
condição excepcional
• Ex. instrução ilegal, overflow, divisão por zero
• Micro-código
• Procedimento checa os bits de status
• Desvia para posição inicial do tratador de
interrupções (carrega o endereço no PC)
• Tabela de Desvios
• Seção fixa da memória
• Armazena o endereço inicial de cada tratador
Tabela de Desvios
Uma tabela de
desvios para
tratadores de
interrupção por
software (trap
handlers) e rotinas
de serviço de
interrupcões por
hardware (ou
interrupções):
Tratamento de Interrupções do
Hardware
• Interrupção assíncrona com o software
• (pode ocorrer em qualquer ponto do programa)
• Ex. teclado
• Coloca linha de interrupção em 1
• CPU liga linha de confirmação quando pronta
• Arbitragem do barramento
• Circuito do teclado coloca vetor de interrupções no
barramento de dados
• CPU armazena PC e registrador de status na pilha
• Vetor de interrupções indexa a tabela de desvios, que lista
os endereços das rotinas de interrupção