250 likes | 338 Views
Arquitetura e organização de computadores. Ciclo de instrução Aula 08 Prof. Diovani Milhorim. Ciclo de instrução. CICLO DE INSTRUÇÃO
E N D
Arquitetura e organização de computadores Ciclo de instrução Aula 08 Prof. Diovani Milhorim
Ciclo de instrução CICLO DE INSTRUÇÃO Para se executar um programa, primeiramente ele precisa ser carregado (armazenado) na MP, o que é feito pelo Sistema Operacional, que também se encarrega de informar à UCP onde o programa começa. O Sistema Operacional faz isto "setando" o Contador de Instruções (isto é, colocando no CI o endereço da MP onde está localizada a primeira instrução daquele programa).
Ciclo de instrução CICLO DE INSTRUÇÃO A partir do carregamento do programa se realiza o processamento automático, executando-se as instruções seqüencialmente uma a uma, o que é obtido através do incremento automático do CI.Obs: Se o programa inclui uma instrução de desvio, o fluxo seqüencial pode ser alterado.
Ciclo de instrução CICLO DE INSTRUÇÃO A UCP não diferencia um dado de uma instrução. A UCP não "executa" dados devido ao conteúdo do CI, que é incrementado pelo tamanho da instrução e fica sempre apontando para a próxima instrução. Mas se em um programa houver uma instrução de desvio para um endereço em que esteja contido um dado, a UCP interpretaria o valor binário do dado como se fosse o código de uma instrução, tentaria executar e o resultado seria imprevisível.
Ciclo de instrução Ciclo de InstruçãoPrimeiro passo A UCP busca o código de operação na MP e armazena no Registrador de Instrução da UC Fase: Busca da instrução - (Instruction Fetch) - ciclo de busca RI <--- (CI)
Ciclo de instrução Ciclo de Instrução – Busca de instrução Micro-operações: - a UC lê o conteúdo do CI (endereço da próxima instrução ) e coloca o endereço no REM;- a UC envia um sinal à memória de operação de leitura (memory read), via barramento de controle;- a memória lê o endereço que está no REM, via barramento de endereços, e busca o conteúdo da célula referenciada;- a memória coloca no RDM, via barramento de dados, o conteúdo da célula lida;- a memória envia à UC, via barramento de controle, um sinal de "leitura concluída";- a UC transfere o código de operação (o conteúdo do RDM) ao RI.
Ciclo de instrução Ciclo de Instrução Segundo passo A UC (decodificador de instruções) decodifica o Código de Operação.Fase: Busca da instrução - (Instruction Fetch) - ciclo de busca
Ciclo de instrução Ciclo de Instrução Segundo passo Micro-operações:- o Decodificador de Instruções decodifica o opcode;- o Decodificador de Instruções determina quantas células a instrução ocupa;- a UC incrementa o CI para apontar para a próxima instrução: CI <--- (CI + n), onde n = nº de células que a instrução ocupa.- a UC incrementa o REM para apontar para o operando: REM <--- (REM + 1);
Ciclo de instrução Ciclo de Instrução Terceiro passo A UC busca (se houver) o(s) operando(s). Fase: Busca de operandos (Operand Fetch) - ciclo de execução RI <--- (Op)
Ciclo de instrução Ciclo de Instrução Terceiro passo Micro-operações: - a UC envia um sinal à memória de operação de leitura (memory read), via barramento de controle;- a memória lê o endereço que está no REM, via barramento de endereços, e busca o conteúdo da célula referenciada;- a memória coloca no RDM, via barramento de dados, o conteúdo da célula lida;- a memória envia à UC, via barramento de controle, um sinal de "leitura concluída";
Ciclo de instrução Ciclo de Instrução Terceiro passo Micro-operações: - a UC transfere o operando (o conteúdo do RDM) ao RI.* Se o operando é o próprio dado: -- a UC transfere o dado (o conteúdo do RDM) ao ACC. -- vai para operação 4; caso contrário: (continua)
Ciclo de instrução Ciclo de Instrução Terceiro passo Micro-operações: caso contrário: * Se o operando é um ponteiro para onde o dado está armazenado: -- a UC coloca no REM o endereço de onde o dado está armazenado; -- Repete-se o processo de leitura da memória. -- a UC transfere o dado (o conteúdo do RDM) ao ACC;-- vai para operação 4.
Ciclo de instrução Ciclo de Instrução Quarto passo A UC comanda a execução da instrução (a operação é executada sobre o dado).Fase: Execução da instrução - ciclo de execução- UAL executa a instrução.
Ciclo de instrução Ciclo de Instrução Quinto passo Se o programa tiver terminado, Para; senão, volta ao passo 1.
Ciclo de instrução Ciclo de Instrução Exemplo 1: Observe o formato da instrução e o conteúdo da memória principal na máquina hipotética a seguir:
Ciclo de instrução Ciclo de Instrução Exemplo 1: formato de instrução:
Ciclo de instrução Ciclo de Instrução Exemplo 1: Conteúdo da memória principal
Ciclo de instrução Ciclo de Instrução Exemplo 1: Solução: O CI tem 8 bits porque o operando tem 8 bits; o mapa de memória também mostra isso, com os endereços ocupando 2 dígitos hexadecimais (cada dígito hexadecimal requer 4 bits). A célula de memória tem 8 bits, conforme vemos pelo mapa de memória, em que os conteúdos das células ocupam 2 dígitos hexadecimais. O RI tem 16 bits porque a instrução tem 16 bits. ACC - não daria para assegurar porque depende do tamanho da palavra; vamos assumir 8 bits, de vez que como o operando, o opcode e a célula têm 8 bits, o RDM e o Acumulador provavelmente também terão 8 bits A instrução ocupará 2 células, logo o incremento do CI = n = 2
Ciclo de instrução Ciclo de Instrução Exemplo 1: Nesta máquina, considere que o código de operação 2A significa LDA Op ==> ACC <--- (Op) Obs.: A instrução do exercício LDA Op (LDA é um mnemônico para "load accumulator") significa "carrega no acumulador o conteúdo da posição de memória indicada no operando".
Ciclo de instrução Ciclo de Instrução Exemplo 1: Vamos acompanhar o processamento da instrução: LOAD (2A neste exemplo) => colocar o conteúdo do endereço indicado pelo operando no ACC (carrega dado no acumulador); T0, T1 e T2 representam os diversos estados dos registradores (nos respectivos tempos do ciclo de busca da instrução). n=2 (2 acessos à MP para buscar instrução)
Ciclo de instrução Ciclo de Instrução Exemplo 1:
Ciclo de instrução Ciclo de Instrução Exemplo 2: Considerando a mesma máquina do exemplo anterior, qual seria o processamento da instrução: LDIA Op ==> ACC <--- ((Op)) Obs.: A instrução do exercício LDIA Op (LDIA é um mnemônico para "load accumulator indirect") significa "carrega no acumulador o conteúdo da posição de memória apontada pela posição indicada no operando". Portanto, a posição de memória indicada pelo Operando é um ponteiro para a posição onde está o dado e existe uma indireção.
Ciclo de instrução Ciclo de Instrução Exemplo 2: