25/04/2011 Organização de Computadores ORGANIZAÇÃO DE COMPUTADORES Curso: Tecnologia em Gestão da Tecnologia da Informação Prof.: Helio Ano: 2011 Instrução • Precisam ser entendidas pelo processador • Precisam ser decodificadas e executadas • Busca instrução • Decodifica instrução Ciclo da Instrução • Busca os dados • Executa Instrução • Ela deve possuir um formato • Define o que é a instrução • E quais informações ela ira passar ao processador • É formada por um conjunto de campo • O nome dado a esse conjunto de campos é “Palavra” Prof.: Helio 1 25/04/2011 Instrução • Podem possuir de 1 a 4 campos • Precisam conter para serem executadas • Código do operando • Endereço dos operandos • O código do operando deve ser único • Opecode (operation code) • Cada operação deve ser executada sobre operandos ou variáveis • As variáveis são classificadas pelo papel que assumem • Operando Fonte 1 • Operando Fonte 2 • Operando Destino Prof.: Helio Instruções • Podemos ter instruções com: Prof.: Helio 2 25/04/2011 Modo de endereçamento • Classificação dos operandos • Registrador Prof.: Helio Modo de endereçamento • Direto Prof.: Helio 3 25/04/2011 Modo de endereçamento • Indireto Prof.: Helio Modo de endereçamento • Indexado Prof.: Helio 4 25/04/2011 Modo de endereçamento • O número de bits do código de operação depende de quantas instruções tem o set de instruções da máquina. 8 • Ex: um processador com 256 instruções (ou 2 instruções) teria necessidade de 8 bits para representar o código de operação. Lembre-se que cada instrução precisa ter o seu código binário! Um processador pode ter suas instruções com código de operações com tamanho fixo ou variável. • Códigos de operação com tamanho fixo são mais fáceis de implementar e manipular durante a execução de programas Prof.: Helio Modo de endereçamento • Exemplos de instruções Instrução Significado ADD A,B Somar A com B MOV A, B Mover o valor de B para A MULT R1, R2 Multiplicar R1 por R2 INC R1 Incrementar em 1 o valor de R1 Prof.: Helio 5 25/04/2011 Modo de endereçamento • Exemplos de instruções de uma maquina hipotética Instrução Significado Operação Código Load Carregar no acumulador ACC <-- op 0000 Store Salvar na memória op <-- ACC 0001 Add Somar ACC <-- ACC + op 0010 Sub Subtrair ACC <-- ACC - op 0011 Mult Multiplicar ACC <-- ACC * op 0100 Div Dividir ACC <-- ACC / op 0101 Jmp Desviar CI <-- op 0110 Jz Desviar, se ACC igual zero CI <-- op, se ACC = 0 0111 Jnz Desviar, se ACC não zero CI <-- op, se ACC != 0 1000 Read Ler entrada op <-- entrada 1001 Print Imprimir saida <-- op 1010 Stop Terminar 1100 Prof.: Helio Modo de endereçamento • Exercícios • 1. O que se pode entender por Conjunto de Instruções? • 2. Quais os componentes de uma palavra de instrução? • 3. Quais os principais modos de endereçamento e como cada um funciona? • 4. Represente em número exponencial o set de uma maquina de 8 operandos. • 5. Represente um palavra de 20 bits com um código de operação de 4 bits e dois operandos. Prof.: Helio 6 25/04/2011 Registradores de Controle • Representação Funcional UCP Prof.: Helio Registradores de Controle Registradores Importantes para execução das instruções • CI Contador de Instruções ou PC - Program Counter (Inglês) - armazena o endereço da próxima instrução a ser executada, tem sempre o mesmo tamanho do REM • RI Registrador de Instrução ou IR - Instruction Register (Inglês) armazena a instrução a ser executada • Registrador de Dados em Memória (RDM) – Registrador de Dados em Memória, um para informar o dado a ser escrito na memória, outro para receber um dado lido da memória • Registrador de endereçamento à memoria (MAR) – Contem o endereço de uma posição de memória Prof.: Helio 7 25/04/2011 Registradores de Controle • Outros registradores • DI - Circuito que decodifica, ou seja, descobre o que é a instrução (o que ela faz) e quais os seus operandos. O decodificador de instruções descobre o que tem na palavra de instrução • ACC Acumulador ou Accumulator (Inlês) - armazena os dados (de entrada e resultados) para as operações na UAL Obs: o acumulador é um dos principais elementos que definem o tamanho da palavra do computador - o tamanho da palavra é igual ao tamanho do acumulador. Prof.: Helio Registradores de Controle • Exemplos ENDEREÇO CONTEÚDO da CÉLULA 00 3B 01 1A 02 2B 03 04 04 56 ..... ..... 1A 01 2A 00 Memória Principal Formato da Instrução Código Operação Operando 8 bits 8 bits tamanho da instrução = 16 bits Prof.: Helio 8 25/04/2011 Registradores de Controle • Definições • 3B = LDA OP • ACC <--- (Op) • Descrição: carrega no acumulador o conteúdo da posição de memória indicada no operando. Prof.: Helio Registrador de Controle • Resultado exemplo 1 CICLO de TEMPO ACC REM RDM T0 x 00 3B 3Bxx Lê opcode T1 x 01 1A 3B1A Lê operando T2 1A 01 1A 3B1A Carrega Acumulador RI (16 bits) OPERAÇÃO Prof.: Helio 9 25/04/2011 Registrador de Controle • Exercícios 1 • Definições • Considerando a mesma maquina do exemplo anterior • LDIA Op • ACC <--- ((Op)) • Descrição: LDIA (load accumulator indirect) significa "carrega no acumulador o conteúdo da posição de memória apontada pela posição indicada no operando. Prof.: Helio Registradores de Controle • Resultado exercício 1 CICLO de TEMPO ACC REM RDM T0 x 00 3B 3Bxx Lê opcode T1 x 01 1A 3B1A Lê operando T2 x 1A 01 3B1A Lê dado T3 01 1A 01 3B1A Carrega dado no acumulador RI (16 bits) OPERAÇÃO Prof.: Helio 10 25/04/2011 Registradores de Controle • Exercício 2 • Dados da memória Principal ENDEREÇO MP (T1) 10 6B2B3 .... ..... B2 03210 B3 04591 .... ..... • Formato da Instrução Formato da instrução opcode operando 1 operando 2 (20 bits) 4 bits 8 bits 8 bits Prof.: Helio Registradores de Controle • Definições: • 6 = ADD Op1, Op2 • (Op1) <---- (Op1) + (Op2) • Descrição: soma o conteúdo da posição de memória indicada em Op1 com o conteúdo da posição de memória indicada em Op2 e coloca o resultado na posição de memória indicada em Op1. Prof.: Helio 11 25/04/2011 Registrador de Controle • Resultado exercício 3 Tempo REM RDM ACC OPERAÇÃO T0 10 6B2B3 0 Lê instrução (opcode + 2 operandos) T1 B2 03210 03210 Lê 1º dado T2 B3 04591 077A1 Lê 2º dado T3 B2 077A1 077A1 Executa instrução CÁLCULO DO VALOR DO ACUMULADOR 03210 04594+ -------077A1 Prof.: Helio Referências Bibliográficas TANENBAUM, Andrew S. Organização Estruturada de Computadores. Editora LTC, 5 ed. PATTERSON, David A. & HENNESSY, John L. Organização e Projeto de Computadores: a interface hardware/software. Rio de Janeiro: Elsevier, 2005. Diversos sites na internet Prof.: Helio 12