Baixe o app para aproveitar ainda mais
Prévia do material em texto
Nível de Microarquitetura 1 Máquinas Multiníveis Máquinas Multiníveis 2 Máquinas Multiníveis • Ao longo do tempo, definiu-se uma maneira estruturada de se organizar os computadores, tratando-os como uma série de abstrações, sendo cada uma dessas, construída com base naquela situada imediatamente abaixo. • Um computador com n níveis pode ser visto como n máquinas. Todos os níveis de máquina apresentam níveis de linguagens distintas. • As pessoas interessadas em entender como um computador realmente funciona precisam estudar todos os seus níveis 3 Tradução (compilador) Nível das linguagens orientadas para a solução de problemas Nivel da Linguagem Assembly Nível do Sistema Operacional Nível do Conjunto das Instruções Nivel da Microarquitetura Nível da lógida digital Hardware Tradução (montador) Interpretação parcial (s.o.) Interpretação (microprograma) ou execução direta Nível de Microarquitetura 4 Nível de Microarquitetura O microprocessador Nível de Microarquitetura 5 Fluxo de Dados: -Registradores; -Unidade Lógico- Aritmética -Barramentos Sinais de controle: habilitar barramentos B e C Nível de Microarquitetura 6 Unidade de Controle microprogramada Fluxo de dados Exemplo de uma Microarquitetura Nível de Microarquitetura 7 Sinais de controle enviados para o Fluxo de dados Nível de Microarquitetura 8 Exemplo de um Fluxo de Dados com 5 Registradores PC MA Memória RIMDAC ULA end Dados e instruções Decodificação e Unidade de controle Instruções a a serem decodificadas Nível de Microarquitetura 9 Registradores • PC = contador de programas (program counter) • MA = registrador de endereços (memory address) • RI = registrador de instruções • MD = registrador memory data (armazena dados e instruções) • AC = registrador acumulador: auxilia no armazenamento dos resultados processados pela ULA. Nível de Microarquitetura 10 Ciclo de Execução de uma Instrução 1 – Busca da Instrução. O conteúdo do contador de programas PC é copiado no registrdor MA. Desta forma a via de endereços apresenta o edndereço da instrução atual, a ser executada. 2 – O conteúdo do contador PC é atualizado. Esta etapa tem a função de deixar o processador preparado para que o endereço da próxima instrução esteja disponível. 3 – Decodificação da Instrução. 4 – Busca do operando se a instrução incluir operandos 5 – Execução da operação na unidade lógico-aritmética. Nível de Microarquitetura 11 Interrupções • As interrupções são modificações no fluxo de controle de um programa causadas por um evento externo ao processamento do programa, usualmente eventos relacionados a operações de Entrada e Saída. • As interrupções também param o processamento do programa atual e transferem o controle para uma rotina de tratamento da interrupção, que executa ações apropriadas. • Quando essa rotina termina sua execução, o controle retoma ao programa que teve seu processamento interrompido. O processo interrompido deve recomeçar seu processamento exatamente no mesmo estado de quando ocorreu a interrupção, o que significa que os valores de todos os registradores devem ser restaurados para a situação imediatamente anterior à ocorrência da nterrupção. Nível de Microarquitetura 12 Interrupções (2) AÇÕES do HARDWARE 1. O controlador do dispositivo ativa uma linha de interrupção no barramento do sistema para iniciar a seqüência de interrupção. 2. Tão logo esteja pronto para tratar a interrupção, o processador ativa no barramento um sinal de reconhecimento da interrupção. 3. Quando o controlador do dispositivo enxerga o reconhecimento do sinal de interrupção, coloca um pequeno valor inteiro nas linhas de dados, para identificação dele próprio. Esse número é conhecido como vetor de interrupção. 4. O processador remove o vetar de interrupção do barramento e salva seu valor temporariamente. Nível de Microarquitetura 13 Interrupções 5. Em seguida o procedimento coloca na pilha o conteúdo do program counter e do registrador contendo a PSW (Program Status Word). 6. Depois disso o processador localiza um novo program counter com a ajuda do vetor de interrupção que funciona como um índice para uma tabela situada na parte baixa da memória. Se, por exemplo, o program counter tiver 4 bytes, o vetar de interrupções n corresponde ao endereço 4n. Esse novo program counter aponta para o início da rotina de serviço da interrupção para o dispositivo causador da interrupção. Muitas vezes a PSW é carregada e modificada (como no caso de ser necessário desabilitar outras interrupções por algum tempo). Nível de Microarquitetura 14 Interrupção • 7. A primeira coisa que a rotina de tratamento de interrupção deve fazer é salvar o conteúdo de todos os registradores a fim de possibilitar que eles sejam restaurados mais tarde. Esses valores podem ser salvos na pilha ou em uma tabela do sistema. • 8. Cada vetor de interrupção é compartilhado por todos os dispositivos de um mesmo tipo, de maneira que nesse momento ainda não se conhece qual dos terminais causou a interrupção. O número do terminal será conhecido a partir da leitura de um registrador do dispositivo. Nível de Microarquitetura 15 Interrupção 9. Qualquer outra informação sobre a interrupção, como códigos de estado, pode ser obtida a partir desse momento. 10. Caso tenha ocorrido algum erro de E/S, ele poderá ser tratado agora. l l . As variáveis globais ptr e count são atualizadas. A primeira é incrementada para apontar para o próximo byte, e a última é decrementada para indicar que há menos um byte a ser colocado na tela do terminal. Se count for maior do que 0, ainda há mais caracteres a serem colocados na tela. Copie para o registrador buffer aquele caractere apontado por ptr .. 12. Se necessário, é gerado um código especial para informar ao dispositivo ou ao controlador do dispositivo que uma interrupção está sendo processada. Nível de Microarquitetura 16 Interrupção • 13. Todos os valores originais dos registradores são restaurados. 14.Execução da instrução RETURN FROM INTERRUPT, colocando o processador de novo no modo e no estado que ele tinha imediatamente antes da ocorrência da interrupção. O processador continua o processamento do programa como se nada tivesse acontecido. O processador pode auto-interromper-se para tratar exceções de execução, tais como um erro em uma operação aritmética, uma tentativa de execução deinstrução ilegal ou uma falha de página em memória virtual.
Compartilhar