Aula 18: Organização de Computadores Execução de instruções Rodrigo Hausen [email protected] 13 de outubro de 2011 http://cuco.pro.br/ach2034 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 1 / 10 Apresentação 1. Bases Teóricas I I I 1.0. Sistemas de numeração 1.1. Representação de dados 1.2. Lógica e circuitos digitais 2. Organização de computadores I I 2.1. Introdução 2.2. Execução de instruções 3. Histórico, evolução e performance Aula de hoje: Stallings (5a. edição), “3.2. Funções dos Computadores” Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 2 / 10 controle endereço dados Barramento do Sistema Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU) Memória Principal Obs.: Não inclui subsistema de Entrada/Saída. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 3 / 10 ... Rn PC IR M B R M A R ULA Unidade de Controle (UC) Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU) endereço R2 controle R1 dados Barramento do Sistema Memória Principal Obs.: Não inclui subsistema de Entrada/Saída. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 3 / 10 ... ... Rn PC IR M B R M A R ULA Unidade de Controle (UC) Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU) endereço R2 controle R1 dados Barramento do Sistema Memória Principal Obs.: Não inclui subsistema de Entrada/Saída. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 3 / 10 ... ... Rn PC IR M B R M A R ULA Unidade de Controle (UC) Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU) endereço R2 controle R1 dados Barramento do Sistema Memória Principal Obs.: Não inclui subsistema de Entrada/Saída. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 3 / 10 ... ... Rn PC IR M B R M A R ULA Unidade de Controle (UC) Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU) endereço R2 controle R1 dados Barramento do Sistema Memória Principal Obs.: Não inclui subsistema de Entrada/Saída. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 3 / 10 ... ... Rn PC IR M B R M A R ULA Unidade de Controle (UC) Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU) dados R2 endereço R1 Barramento do Sistema controle Barramento interno à CPU Memória Principal Obs.: Não inclui subsistema de Entrada/Saída. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 3 / 10 Execução de instruções Função básica desempenhada por um computador: executar programa. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 4 / 10 Execução de instruções Função básica desempenhada por um computador: executar programa. Programa = conjunto de instruções, armazenadas na memória. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 4 / 10 Execução de instruções Função básica desempenhada por um computador: executar programa. Programa = conjunto de instruções, armazenadas na memória. Como cada instrução é executada? Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 4 / 10 Execução de instruções Função básica desempenhada por um computador: executar programa. Programa = conjunto de instruções, armazenadas na memória. Como cada instrução é executada? Basicamente: I 1) Processador lê uma instrução da memória (passo de busca, ou fetch). Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 4 / 10 Execução de instruções Função básica desempenhada por um computador: executar programa. Programa = conjunto de instruções, armazenadas na memória. Como cada instrução é executada? Basicamente: I I 1) Processador lê uma instrução da memória (passo de busca, ou fetch). 2) Processador executa instrução da memória (passo de execução). Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 4 / 10 Execução de instruções Função básica desempenhada por um computador: executar programa. Programa = conjunto de instruções, armazenadas na memória. Como cada instrução é executada? Basicamente: I I 1) Processador lê uma instrução da memória (passo de busca, ou fetch). 2) Processador executa instrução da memória (passo de execução). O passo de execução de uma instrução pode envolver diversas operações, dependendo da instrução. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 4 / 10 Execução de instruções Função básica desempenhada por um computador: executar programa. Programa = conjunto de instruções, armazenadas na memória. Como cada instrução é executada? Basicamente: I I 1) Processador lê uma instrução da memória (passo de busca, ou fetch). 2) Processador executa instrução da memória (passo de execução). O passo de execução de uma instrução pode envolver diversas operações, dependendo da instrução. Execução de um programa: repetição do processo envolvendo os passos de busca e execução, ordenadamente. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 4 / 10 Ciclo de Instrução Básico Tabém chamado ciclo de busca e execução ou ciclo de fetch-execute. Início Busca da próxima instrução na memória Passo de busca (ou subciclo de busca) Rodrigo Hausen ([email protected]) Execução da instrução Parada Passo de execução (ou subciclo de execução) Aula 18: Organização de Computadores 13 de outubro de 2011 5 / 10 Ciclo de Instrução Básico Tabém chamado ciclo de busca e execução ou ciclo de fetch-execute. Início Busca da próxima instrução na memória Passo de busca (ou subciclo de busca) Execução da instrução Parada Passo de execução (ou subciclo de execução) Ciclo é interrompido apenas se: máquina for desligada; Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 5 / 10 Ciclo de Instrução Básico Tabém chamado ciclo de busca e execução ou ciclo de fetch-execute. Início Busca da próxima instrução na memória Passo de busca (ou subciclo de busca) Execução da instrução Parada Passo de execução (ou subciclo de execução) Ciclo é interrompido apenas se: máquina for desligada; ocorrer erro não recuperável (por exemplo, defeito no hardware); Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 5 / 10 Ciclo de Instrução Básico Tabém chamado ciclo de busca e execução ou ciclo de fetch-execute. Início Busca da próxima instrução na memória Passo de busca (ou subciclo de busca) Execução da instrução Parada Passo de execução (ou subciclo de execução) Ciclo é interrompido apenas se: máquina for desligada; ocorrer erro não recuperável (por exemplo, defeito no hardware); for executada uma instrução específica que pare a operação do computador (geralmente chamada halt ou hlt). Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 5 / 10 Exemplo de execução de instruções Considere uma arquitetura hipotética a seguir. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 6 / 10 Exemplo de execução de instruções Considere uma arquitetura hipotética a seguir. Registrador de uso geral: chamado AC (acumulador), de 16 bits Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 6 / 10 Exemplo de execução de instruções Considere uma arquitetura hipotética a seguir. Registrador de uso geral: chamado AC (acumulador), de 16 bits Registradores de uso específico PC (program counter), IR (instruction register), MAR (memory address register), MBR (memory buffer register); PC e MAR têm 12 bits; IR e MBR têm 16 bits. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 6 / 10 Exemplo de execução de instruções Considere uma arquitetura hipotética a seguir. Registrador de uso geral: chamado AC (acumulador), de 16 bits Registradores de uso específico PC (program counter), IR (instruction register), MAR (memory address register), MBR (memory buffer register); PC e MAR têm 12 bits; IR e MBR têm 16 bits. Instruções são palavras de 16 bits, no formato: 15 12 11 0 endereço opcode Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 6 / 10 Exemplo de execução de instruções Considere uma arquitetura hipotética a seguir. Registrador de uso geral: chamado AC (acumulador), de 16 bits Registradores de uso específico PC (program counter), IR (instruction register), MAR (memory address register), MBR (memory buffer register); PC e MAR têm 12 bits; IR e MBR têm 16 bits. Instruções são palavras de 16 bits, no formato: 15 12 11 0 endereço opcode I I opcode, ou código de operação, é um código de 4 bits que indica a instrução a ser executada. endereço, em 12 bits, é a posição de memória que contém um dado a ser obtido, ou a posição onde devemos escrever um dado. Neste exemplo, a memória está organizada em palavras também de 16 bits. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 6 / 10 Exemplo de execução de instruções Considere uma arquitetura hipotética a seguir. Registrador de uso geral: chamado AC (acumulador), de 16 bits Registradores de uso específico PC (program counter), IR (instruction register), MAR (memory address register), MBR (memory buffer register); PC e MAR têm 12 bits; IR e MBR têm 16 bits. Instruções são palavras de 16 bits, no formato: 15 12 11 0 endereço opcode I I opcode, ou código de operação, é um código de 4 bits que indica a instrução a ser executada. endereço, em 12 bits, é a posição de memória que contém um dado a ser obtido, ou a posição onde devemos escrever um dado. Neste exemplo, a memória está organizada em palavras também de 16 bits. Quantas posições de memória, no máximo, podemos acessar? Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 6 / 10 Exemplo de execução de instruções Considere uma arquitetura hipotética a seguir. Registrador de uso geral: chamado AC (acumulador), de 16 bits Registradores de uso específico PC (program counter), IR (instruction register), MAR (memory address register), MBR (memory buffer register); PC e MAR têm 12 bits; IR e MBR têm 16 bits. Instruções são palavras de 16 bits, no formato: 15 12 11 0 endereço opcode I I opcode, ou código de operação, é um código de 4 bits que indica a instrução a ser executada. endereço, em 12 bits, é a posição de memória que contém um dado a ser obtido, ou a posição onde devemos escrever um dado. Neste exemplo, a memória está organizada em palavras também de 16 bits. Quantas posições de memória, no máximo, podemos acessar? 212 = 4096 palavras de memória, com 16 bits cada uma. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 6 / 10 Exemplo de execução de instruções Instruções são palavras de 16 bits, no formato: 15 12 11 opcode endereço Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 0 13 de outubro de 2011 7 / 10 Exemplo de execução de instruções Instruções são palavras de 16 bits, no formato: 15 12 11 opcode endereço 0 Opcodes da máquina hipotética: 00012 = 116 (AC ← Mem[end.]) carregar AC com conteúdo do end. de memória indicado Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 7 / 10 Exemplo de execução de instruções Instruções são palavras de 16 bits, no formato: 15 12 11 opcode endereço 0 Opcodes da máquina hipotética: 00012 = 116 (AC ← Mem[end.]) carregar AC com conteúdo do end. de memória indicado 00102 = 216 (Mem[end.] ← AC ) armazenar conteúdo de AC no end. de memória indicado Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 7 / 10 Exemplo de execução de instruções Instruções são palavras de 16 bits, no formato: 15 12 11 opcode endereço 0 Opcodes da máquina hipotética: 00012 = 116 (AC ← Mem[end.]) carregar AC com conteúdo do end. de memória indicado 00102 = 216 (Mem[end.] ← AC ) armazenar conteúdo de AC no end. de memória indicado 01012 = 516 (AC ← AC + Mem[end.]) soma conteúdo de AC com conteúdo do end. de memória indicado Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 7 / 10 Exemplo de execução de instruções Instruções são palavras de 16 bits, no formato: 15 12 11 opcode endereço 0 Opcodes da máquina hipotética: 00012 = 116 (AC ← Mem[end.]) carregar AC com conteúdo do end. de memória indicado 00102 = 216 (Mem[end.] ← AC ) armazenar conteúdo de AC no end. de memória indicado 01012 = 516 (AC ← AC + Mem[end.]) soma conteúdo de AC com conteúdo do end. de memória indicado 11112 = F16 (halt) interrompe o ciclo de instrução (endereço é ignorado) Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 7 / 10 Exemplo de execução de instruções Instruções são palavras de 16 bits, no formato: 15 12 11 opcode endereço 0 Opcodes da máquina hipotética: 00012 = 116 (AC ← Mem[end.]) carregar AC com conteúdo do end. de memória indicado 00102 = 216 (Mem[end.] ← AC ) armazenar conteúdo de AC no end. de memória indicado 01012 = 516 (AC ← AC + Mem[end.]) soma conteúdo de AC com conteúdo do end. de memória indicado 11112 = F16 (halt) interrompe o ciclo de instrução (endereço é ignorado) Para facilitar a escrita e a compreensão do programa, escreveremos os opcodes e endereços em hexadecimal. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 7 / 10 Execução do ciclo de instrução 0. Estado inicial Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 300 ???? ???? ??? ???? = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 1.1. Fetch: MAR ← PC Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 300 ???? ???? 300 ???? = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 1.2. Fetch: MBR ← Mem[MAR] Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 300 ???? ???? 300 1940 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 1.3. Fetch: IR ← MBR Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 300 ???? 1940 300 1940 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 1.4. Execute: MAR ← IR11 . . . IR0 Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 300 ???? 1940 940 1940 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 1.5. Execute: MBR ← Mem[MAR] Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 300 ???? 1940 940 0003 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 1.6. Execute: AC ← MBR Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 300 0003 1940 940 0003 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 1.7. Execute: PC ← PC + 1 Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 301 0003 1940 940 0003 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 2.1. Fetch: MAR ← PC Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 301 0003 1940 301 0003 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 2.2. Fetch: MBR ← Mem[MAR] Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 301 0003 1940 301 5941 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 2.3. Fetch: IR ← MBR Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 301 0003 5941 301 5941 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 2.4. Execute: MAR ← IR11 . . . IR0 Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 301 0003 5941 941 5941 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 2.5. Execute: MBR ← Mem[MAR] Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 301 0003 5941 941 0002 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 2.6. Execute: na ULA, faz AC + MBR Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 301 0003 5941 941 0002 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 2.7. Execute: AC ← resultado da ULA Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 301 0005 5941 941 0002 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 2.8. Execute: PC ← PC + 1 Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 302 0005 5941 941 0002 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 3.1. Fetch: MAR ← PC Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 302 0005 5941 302 0002 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 3.2. Fetch: MBR ← Mem[MAR] Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 302 0005 5941 302 2941 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 3.3. Fetch: IR ← MBR Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 302 0005 2941 302 2941 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 3.4. Execute: MAR ← IR11 . . . IR0 Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 302 0005 2941 941 2941 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 3.5. Execute: MBR ← AC Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0002 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 302 0005 2941 941 0005 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 3.6. Execute: Mem[MAR] ← MBR Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0005 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 302 0005 2941 941 0005 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 3.7. Execute: PC ← PC + 1 Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0005 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 303 0005 2941 941 0005 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 4.1. Fetch: MAR ← PC Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0005 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 303 0005 2941 303 0005 = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 4.2. Fetch: MBR ← Mem[MAR] Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0005 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 303 0005 2941 303 FFFF = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 4.3. Fetch: IR ← MBR Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0005 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 303 0005 FFFF 303 FFFF = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Execução do ciclo de instrução 4.4. Execute: pare a máquina Memória end. . . . significado 300 dado . . . 1940 301 5941 AC ← AC + Mem[941] 302 2941 Mem[941] ← AC 303 . . . 940 941 . . . FFFF . . . 0003 0005 . . . Pare (halt) AC ← Mem[940] Registradores da CPU PC AC IR MAR MBR 303 0005 FFFF 303 FFFF = +3 = +2 Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 8 / 10 Múltiplos operandos Nas instruções vistas para essa máquina hipotética, sempre temos apenas 1 operando (um endereço de memória). Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 9 / 10 Múltiplos operandos Nas instruções vistas para essa máquina hipotética, sempre temos apenas 1 operando (um endereço de memória). Como seria o ciclo de instrução se tivéssemos múltiplos operandos? Por exemplo, se quiséssemos implementar a instrução Mem[X ] ← Mem[Y ] + Mem[Z ] diretamente (3 operandos)? Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 9 / 10 Múltiplos operandos Nas instruções vistas para essa máquina hipotética, sempre temos apenas 1 operando (um endereço de memória). Como seria o ciclo de instrução se tivéssemos múltiplos operandos? Por exemplo, se quiséssemos implementar a instrução Mem[X ] ← Mem[Y ] + Mem[Z ] diretamente (3 operandos)? Busca de instrução Armazenamento de resultado Busca de operando múltiplos operandos Cálculo de endereço de instrução Decodificação de instrução Cálculo de endereço de operando múltiplos resultados Execução da operação Cálculo de endereço de operando busca da próxima instrução Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 9 / 10 Interrupções Seção 3.2. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 10 / 10 Para casa Ler seções 3.1 e 3.2. Exercícios do cap. 3 (5a edição): 3.1 a 3.5. Rodrigo Hausen ([email protected]) Aula 18: Organização de Computadores 13 de outubro de 2011 11 / 10