William Stallings Computer Organization and Architecture Capítulo 3 Como o Processador Funciona Arquitetura von Neumann Como discutido anteriormente, os projetos dos computadores modernos são baseados na Arquitetura de von Neumann. A Arquitetura von Neumann se fundamenta em três conceitos chaves: Dados e Instruções são armazenados em uma única memória de leitura-escrita. Os conteúdos da memória são endereçados por posição, sem considerar o tipo de dados armazenado. A execução ocorre em modo seqüencial. 2
Conceito de Programação Sistemas em hardware são inflexíveis Hardwares de propósito geral podem realizar tarefas distintas, fornecendo sinais de controle corretos Em vez de re-instalar, forneça um novo conjunto de sinais de controle. 3 Abordagens de Hardware e Software Hardware dedicado Dados Seqüência de funções Lógicas e Aritméticas Resultados Código de instruções Programando em Hardware Interpretador de instruções Sinais de controle Dados Funções Lógicas e aritméticas de propósito geral Resultados Programando em Software 4
O que é um programa? Uma sequência de passos Em cada passo, uma operação lógica ou aritmética é realizada Em cada operação, um conjunto diferente de sinais de controle são necessários 5 Função da Unidade de Controle Para cada operação é provido um código único ex. ADD, MOV Um módulo de hardware interpreta o código e fornece os sinais de controle Assim, temos um computador! 6
Componentes Básicos de um Computador A Unidade de Controle e a Unidade Lógica e Aritmética constituem a Unidade Central de Processamento (CPU) Dados e instruções precisam entrar no sistema e os resultados, sairem Via mecanismos de Entrada/Saída Armazenagem temporária do código e resultados se faz necessária Memória principal 7 Componentes do Computador : Top Level View 8
Ciclo de Execução de Instruções Cilco de dois estágios: Busca (fetch) Executa 9 Ciclo de Busca (fetch cycle) O Contador de Programa (PC) mantém o endereço da próxima instrução na memória. O processador busca (fetch) a instrução armazenada na posição de memória referênciada por PC. Realiza o incremento do PC Se não houver comando indicando o contrário. A instrução é carregada no Registrador de Instrução (IR). O processador interpreta a instrução e realiza as ações requeridas. 10
ciclo de execução (Execute Cycle) Movimentação Processador - Memória transferência de dados entre CPU e memória principal Movimentação Processador - E/S transferência de dados entre CPU e módulos de E/S Processamento de Dados Realiza alguma operação lógica ou aritmética nos dados Operações de Controle Alteração da seqüência de execução de instruções. ex.: desvios condicionais e não-condicionais (jump) Combinação das operações acima 11 Execução de um Programa Máquina Hipotética (a) Instruction Format (b) Integer Format OpCode S Endereço ou Operando Magnitude (c) Internal CPU Registers Program Counter (PC) = Address of Function Instruction Register (IR) = Instruction Being Executed Accumulator (AC) = Temporary Storage (c) Partial List of OpCodes 0001 = Load AC from Memory 0010 = Store AC to Memory 0101 = Add to AC from Memory 0011 = Load AC from I/O 0111 = Store AC to I/O 12
Exemplo de Execução de um Programa Processando a expressão: B = B+A Variável A armazenada no endereço 940 Variável B armazenada no endereço 941 13 Ciclo de Instrução - Diagrama de Estados 14
Interrupções Mecanismos pelos quais outros módulos (ex. E/S) podem interromper a seqüência normal de processamento. Fontes de interrupções: Programa ex. overflow, division by zero Timer Gerado pelo processamento interno do relógio (timer) Usado em sistemas multi-tarefa preemptivos E/S a partir do controlador de E/S Falha de Hardware ex. memory parity error 15 Fluxo de Controle do Programa 16
Interrupt Cycle (ciclo de interrupção) Acrescentado ao ciclo de instrução Processador verifica se há interrupção Indicado por um sinal de interrupção Se não há interrupção, busca a próxima instrução na memória. Se houver interrupção pendente: Suspende a execução do programa corrente. Salva o contexto. Configura PC com o endereço de início da rotina de tratamento da interrupção (interrupt handler routine). Processamento da interrupção. Restaura o contexto e continua com o programa interrompido. 17 Ciclo de Instruções (com interrupções) Diagrama de Estado 18
Cenário com Múltiplas Interrupções Desabilitar Interrupções O processador ignorará futuras interrupções enquanto processa uma interrupção Interrupções permanecem pendentes e serão conferidas a primeira interrupção ter sido processada Interrupção são manipuladas na seqüência que elas acontecem Definir Prioridades Interrupções de baixa prioridade são interrompidas por interrupções de alta prioridade Quando a interrupção de mais alta prioridade foi processada, o processador retorna a interrupção anterior 19 Múltiplas Interrupções - Seqüêncial 20
Múltiplas Interrupções - Aninhadas (nested) 21 Foreground Reading Stallings, capítulo 3 www.pcguide.com/ref/mbsys/buses/ www.pcguide.com/ 22