Organização de Computadores ORGANIZAÇÃO DE COMPUTADORES Curso: Tecnologia em Gestão da Tecnologia da Informação Ano: 2011 Instrução Precisam ser entendidas pelo processador Precisam ser decodificadas e executadas Busca instrução Decodifica instrução Busca os dados Executa Instrução Ela deve possuir um formato Define o que é a instrução Ciclo da 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 1
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 Instruções Podemos ter instruções com: 2
Classificação dos operandos Registrador Direto 3
Indireto Indexado 4
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. Ex: um processador com 256 instruções (ou 2 8 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 Exemplos de instruções Instrução ADD A,B MOV A, B MULT R1, R2 INC R1 Significado Somar A com B Mover o valor de B para A Multiplicar R1 por R2 Incrementar em 1 o valor de R1 5
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 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. 6
Representação Funcional UCP 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 7
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. Exemplos ENDEREÇO CONTEÚDO da CÉLULA Memória Principal Formato da Instrução 00 3B 01 1A 02 2B 03 04 04 56...... 1A 01 2A 00 Código Operação Operando 8 bits 8 bits tamanho da instrução = 16 bits 8
Definições 3B = LDA OP ACC <--- (Op) Descrição: carrega no acumulador o conteúdo da posição de memória indicada no operando. Registrador de Controle Resultado exemplo 1 CICLO de TEMPO ACC REM RDM RI (16 bits) OPERAÇÃO T0 x 00 3B 3Bxx Lê opcode T1 x 01 1A 3B1A Lê operando T2 1A 01 1A 3B1A Carrega Acumulador 9
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. Resultado exercício 1 CICLO de TEMPO ACC REM RDM RI (16 bits) OPERAÇÃO 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 10
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 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. 11
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 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 12