Conjunto de Instruções IFBA – Instituto Federal de Educ. Ciencia e Tec Bahia Curso de Analise e Desenvolvimento de Sistemas Arquitetura de Computadores – 20 e 21/30 Prof. Msc. Antonio Carlos Souza Referências Bibliográficas: 1. 2. 3. Ciência da Computação: Uma visão abrangente - J.Glenn Brokshear Introdução à organização de computadores – Mário Monteiro – LTC Organização Estrutura de Computadores – Andrew S. Tanembaum - LTC A Execução de Instruções ¡ Seqüência de passos de execução busca ¡ decodificação execução resultado Cada passo de execução Þ operações básicas l l l l transferência de dados entre regs transferência de dados entre regs e ALU transferência de dados entre regs e a memória operações lógicas e aritméticas realizadas pela ALU A Execução de Instruções Divisão dos passos de execução de uma instrução busca decodificação execução resultado Diferença entre instruções Þ l número l tipo operações básicas realizadas em cada passo ¡ Execução de Instruções ¡ Exemplo de classes de instruções Tipo Exemplo Lógica / Aritmética ADD R1, R2, Rd Desvio incondicional JMP dst Desvio condicional JZ dst Acesso à memória LOAD end, R1 STORE end, R1 Operações Básicas na Execução de Instruções Aritméticas e Lógicas B MAR ¬ PC MDR ¬ M[MAR] IR ¬ MDR PC++ D decod A ¬ Rs1 B ¬ Rs2 R ¬ A op B E (E) MDR (E) M[MAR] (L) R Rd ¬ R (L) Desvios Incondicionais MAR ¬ PC MDR ¬ M[MAR] IR ¬ MDR PC++ decod PC ¬ destino Desvios Condicionais MAR ¬ PC MDR ¬ M[MAR] IR ¬ MDR PC++ decod cond Acessos à Memória MAR ¬ PC MDR ¬ M[MAR] IR ¬ MDR PC++ se (cond) PC ¬ destino decod MAR ¬ end MDR ¬ Rs M[MAR] ¬ MDR ¬ Rd ¬ MDR A Seção de Controle ¡ Ativação dos sinais de controle operação básica sinal de controle descrição da operação básica (1) (2) s1, s2 s3,s4 coloca o conteúdo de R1 e R2 nos barramentos S1 e S2, respectivamente. armazena a informação presente nos barramentos S1e S2 em A e B, respectivamente. (3) s5 S6 seleciona a operação de soma na ALU. armazena o resultado produzido pela ALU em R. (4) s7 S8 coloca o conteúdo de R no barramento D. armazena a informação presente no barramento D em R3. A Seção de Controle ¡ ¡ A ordem em que os sinais de controle são ativados é crítica Sinais de clock l unidade de controle opera em sincronismo com o sinal de clock l execução de uma instrução Þ quantidade diferentes de ciclos de clock Representação de Instruções Tipos de Instruções ¡ Processamento de dados l ¡ Armazenamento de dados l ¡ Instruções de Memória Movimentação de Dados l ¡ Instruções Aritméticas e Lógicas Instruções de E/S Controle l Instruções de Desvio Condicional ou Incondicional Tipos de Dados ¡ Números l l l ¡ Caracteres l l ¡ ¡ Inteiro ou ponto fixo Ponto Flutuante Número Decimal (BCD) ACSII (American Standard Code for Information Interchange) EBCDIC (Extended binary Coded Decimal Interchange Code) Dados Lógicos Endereços Tipos de Operações ¡ ¡ ¡ ¡ Operações Operações Operações Operações l ¡ ¡ Convert, Translate Operações de E/S l ¡ de transferência de dados aritméticas lógicas de conversão Read, write Operações de Controle de Sistema Operações de transferência de Controle l Jmp, jnz, execute, halt Modos de Endereçamento Até agora, vimos considerando que o operando contém o endereço da MP onde está localizado o dado, mas esta não é a única forma. Existem outros modos de endereçamento de forma a ampliar a flexibilidade para o programador. O endereço da próxima instrução é apontado através do valor armazenado no PC. A ação a ser realizada pela instrução é determinada pelo mnemônico da instrução, armazenado no campo “CÓDIGO DE OPERAÇÃO” (ou abreviadamente opcode). O dado da instrução pode ser um valor numérico, um caractere ou mesmo um endereço (no caso das instruções de desvio). A localização do dado é em geral explicitamente indicada na própria instrução, sendo representada no campo (ou campos) “OPERANDO” (ou abreviadamente Oper). Modos de Endereçamento MODO IMEDIATO O valor do campo operando é o próprio dado. Modos de Endereçamento MODO DIRETO O valor do campo operando indica o endereço do dado na MP. Modos de Endereçamento ENDEREÇAMENTO POR REGISTRADOR Existem outros modos de endereçamento, que usam registradores para indicar a posição onde estão os dados. ¡ Os modos de endereçamento direto e indireto por registrador funcionam de forma semelhante aos modos de endereçamento direto e indireto vistos anteriormente (em que o operando aponta para uma posição de memória), ¡ Porém o operando aponta para um registrador (onde está o dado - endereçamento direto - ou então faz referência à memória - endereçamento indireto). Modos de Endereçamento MODO INDEXADO O endereço de cada elemento é obtido através da soma do campo Operando com o conteúdo de um registrador (Registrador de Índice). O endereço de cada elemento (por exemplo, de um vetor) é a soma (antes da colocação do endereço no REM) do valor do campo operando com o conteúdo de um registrador (escolhido como registrador índice). Modos de Endereçamento MODO BASE + DESLOCAMENTO Utiliza um registrador chamado Registrador de Base, que contém o endereço base na MP e um operando, que contém o deslocamento do dado em relação à base. Diferenças ¡ ¡ Modo lndexado Acesso a diferentes dados pela alteração do endereço através do registrador-índice, com um único valor no operando. É utilizado para manipulação de estruturas de dados. Modo Base + Deslocamento Um único valor no registrador-base e valores diferentes no campo deslocamento da instrução. É utilizado para relocação de programas.