A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura e organização de computadores

Apresentações semelhantes


Apresentação em tema: "Arquitetura e organização de computadores"— Transcrição da apresentação:

1 Arquitetura e organização de computadores
Ciclo de instrução

2 O processador busca uma instrução de cada vez da memória e a executa
O processador busca uma instrução de cada vez da memória e a executa. Algumas instruções requerem várias operações. O processamento de uma instrução é chamado de ciclo de instrução ou de execução (execute cycle). O processo de busca de instruções na memória é chamado de ciclo de busca (fetch cycle).

3 Ciclo das instruções na CPU
As instruções são executadas sequencialmente (a não ser pela ocorrência de um desvio), uma a uma. O CI indica a sequência de execução, isto é, o CI controla o fluxo de execução das instruções. A seguir é ilustrado o ciclo de processamento de uma instrução.

4 Ciclo de busca e execução de instruções

5 Ciclos de UCP regulados pelo clock:
3 2 Ciclos de UCP regulados pelo clock: 4 Processador Intel Pentium-4 a partir de GHz 1

6 Ciclo de Instrução Descrição do processamento de uma instrução na UCP:
a UC lê o endereço da próxima instrução no CI; a UC transfere o endereço da próxima instrução, através do barramento interno, para o REM;

7 CPU Ciclo de instrução: Busca instrução; Decodifica a instrução;
Busca operandos; Executa a instrução; Escreve os resultados; Retorna ao primeiro passo.

8 Execução de um programa:
início Ciclo de busca Busca da instrução Ciclo de instrução Execução da instrução parada

9 Componentes de um computador
PC IR I/O AR MBR MAR I/O BR CPU instruções memória dados PC - program counter IR - instruction register MAR - memory address register MBR - memory buffer register buffers I/O I/O AR - I/O address register I/O BR - I/O buffer register

10 memória CPU I/O PC IR I/O AR MBR MAR I/O BR
No início de um ciclo de instrução, o processador busca uma instrução na memória e incrementa o valor armazenado em PC. instruções A instrução é armazenada em IR. A instrução é interpretada e a ação é realizada. memória dados Tipos de ações: processador - memória ou vice-versa processador - I/O ou vice-versa processamento de dados controle (mudança na seqüência de execução) buffers I/O

11 Exemplo: Execução de um programa que soma dois números armazenados em duas posições da memória e armazena o resultado na segunda posição. São necessários três ciclos de busca e três de execução.

12 memória PC 302 301 300 300 1940 301 5941 302 2941 940 0003 941 0002 1940 = 0005 IR AC 1940 5941 2941 0003 0005 Notação hexadecimal: CPU 0000=0 1000=8 0001=1 1001=9 0010=2 1010=A 0011=3 1011=B 0100=4 1100=C 0101=5 1101=D 0110=6 1110=E 0111= =F 3 16 opcode endereço magnitude Instruções: Load AC from Memory Store AC to Memory Add AC from Memory Instruções em hexa: 1 - Load AC from Memory 2 - Store AC to Memory 5 - Add AC from Memory

13 Interrupções: São mecanismos que possibilitam que outros módulos, tais como unidades de I/O ou de memória, possam interromper a seqüência de eventos sendo executada pelo processador, de forma a melhorar o desempenho.

14 Execução de um programa que realiza chamadas de escrita intercaladas com processamento
1 1 - sequência de instruções não envolve I/O início Programa de I/O 2 2 - sequência de instruções não envolve I/O Comando de I/O escrita fim 3 3 - sequência de instruções não envolve I/O escrita processador em espera processador em espera escrita

15 Execução de um programa:
início interrupção habilitada Verificação da ocorrência de interrupções. Programa suspenso. Ciclo de interrupção Ciclo de busca Busca da instrução Ciclo de instrução Execução da instrução interrupção desabilitada parada

16 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).

17 Ciclo de instrução A partir do carregamento do programa se realiza o processamento automático, executando-se as instruções sequencialmente 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 sequencial pode ser alterado.

18 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.

19

20 Ciclo de instrução Primeiro 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)

21 Ciclo de instrução Primeiro passo – Busca de instrução
Microoperaçõ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.

22 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

23 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);

24 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)

25 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";

26 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)

27 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.

28 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.

29 Ciclo de instrução Quinto passo Se o programa tiver terminado, Para; senão, volta ao passo 1.

30 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:

31 Ciclo de instrução Exemplo 1: formato de instrução:

32 Ciclo de instrução Exemplo 1: Conteúdo da memória principal

33 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

34 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".

35 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)

36 Ciclo de instrução Exemplo 1:

37 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.

38 Ciclo de instrução Exemplo 2:


Carregar ppt "Arquitetura e organização de computadores"

Apresentações semelhantes


Anúncios Google