ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções Prof.: Agostinho S. Riofrio Nível do Conjunto de Instruções Agenda 1. 2. 3. 4. 5. 6. 7. 8. Introdução Registradores Tipos de Dados Formato de Instruções Modos de Endereçamento Instruções Entrada/Saída Interrupções Nível do Conjunto de Instruções Introdução Posicionado entre o nível de Microarquitetura e o nível do Sistema Operacional. Foi o primeiro nível a ser desenvolvido. Permite que a maioria dos computadores seja capaz de executar programas escritos em várias linguagens de alto nível. É a interface entre o software e o hardware. Nível do Conjunto de Instruções Introdução Nível do Conjunto de Instruções Registradores De uso Geral: •Registradores disponíveis para os programadores para usos gerais. De uso Especial: •PC (Contador de Programa), ST (Apontador da Pilha) •PSW (Registrador de stados da ULA) N – Marcado quando o resultado foi Negativo Z – Marcado quando o resultado foi Zero V – Marcado quando o resultado excedeu a capacidade da ULA (overflow) C – Marcado quando o resultado causou um “vai-um” do bit da extrema direita A – Marcado quando houve um vai-um do bit 3 (“vaium” auxiliar) P – Marcado quando o resultado teve paridade par. Nível do Conjunto de Instruções Registradores – Pentium 4 Nível do Conjunto de Instruções Tipos de dados •Numéricos •Inteiros •Complemento de dois •Com sinal ou sem sinal •Dupla precisão •Ponto flutuante (32, 64 ou 128 bits) •Não Numéricos •ASCII •Unicode •Valores Booleanos •Verdadeiro •Falso Nível do Conjunto de Instruções Numéricos – Pentium 4 Nível do Conjunto de Instruções Formatos de Instrução Quatro formatos comuns de instrução: (a) Instrução sem endereço. (c) Instrução com dois endereços. (b) Instrução com um endereço. (d) Instrução com três endereços. Nível do Conjunto de Instruções Modos de Endereçamento • Endereçamento Imediato Operando vem junto com a instrução. Usado para especificar constantes inteiras pequenas. Instrução imediata para carregar a constante 4 no registrador 1. Nível do Conjunto de Instruções Modos de Endereçamento • Endereçamento Direto Acessa sempre a mesma posição de memória. O endereço é dado na instrução. Só pode ser usado para variáveis globais cujos endereços são conhecidos no momento da compilação. Nível do Conjunto de Instruções Modos de Endereçamento • Endereçamento de Registrador Especifica um registrador em vez de memória. Nível do Conjunto de Instruções Modos de Endereçamento • Endereçamento Indireto de Registrador Endereço de memória está contido em um registrador. Endereçamento indireto de registrador: um programa genérico em linguagem de montagem para calcular a soma dos elementos de um vetor. Nível do Conjunto de Instruções Endereçamento • Indexado É quando o endereço de memória dado por um registrador adicionado a um deslocamento constante. O deslocamento vem da instrução. Possível representação de MOV R4, A (R2). Nível do Conjunto de Instruções Endereçamento Indexado Programa genérico em linguagem de montagem para calcular a operação OR de Ai AND Bi para dois vetores de 1024 Elementos. Nível do Conjunto de Instruções Modos de Endereçamento • De base indexado Endereço de memória é resultado da soma de dois registradores adicionados a um deslocamento. Um registrador é a base e o outro é o índice. LOOP: MOV R4,(R2+R5) AND R4,(R2+R6) Nível do Conjunto de Instruções Endereçamento • Pilha Não opera com endereços Nível do Conjunto de Instruções Endereçamento Nível do Conjunto de Instruções Instruções • De Desvio • Altera fluxo do programa para o endereço alvo determinado pelo modo de endereçamento. • Movimento de Dados • Gera cópia de um dado em registrador ou memória • Operações • Diádicas: Combinam dois operandos para obter um resultado • Monádicas: Só um operando e só um resultando Nível do Conjunto de Instruções Instruções • Comparações e Desvios Condicionais – Testar dados e alterar a sequência de instruções a ser executada. • Chamada de Procedimento – Grupo de instruções que realiza alguma tarefa e pode ser chamado de diversas partes do programa. Quando conclui a tarefa deve voltar a declaração após a chamada. • Controle de Laço – Execução de um grupo de instruções por um número fixo de vezes. • Operações de Entrada/Saída Nível do Conjunto de Instruções Instruções • Comparações e Desvios Condicionais – Testar dados e alterar a sequência de instruções a ser executada. • Chamada de Procedimento – Grupo de instruções que realiza alguma tarefa e pode ser chamado de diversas partes do programa. Quando conclui a tarefa deve voltar a declaração após achamada. Nível do Conjunto de Instruções Instruções • Controle de Laço – Execução de um grupo de instruções por um número fixo de vezes. (a) Laço do tipo “teste no final”. (b) Laço do tipo “teste no início”. Nível do Conjunto de Instruções Instruções • Operações de Entrada/Saída Registradores de dispositivo para um terminal simples. Nível do Conjunto de Instruções Instruções • Operações de Entrada/Saída Exemplo de E/S programada. Nível do Conjunto de Instruções Instruções de inteiros do Pentium 4 Nível do Conjunto de Instruções Entrada/Saída • Operações de Entrada/Saída • Instruções para controlar os controladores de dispositivos de entrada/saída. – E/S DMA – E/S por interrupção Nível do Conjunto de Instruções E/S por DMA Controlador de DMA assume a função de transferir o conteúdo solicitado ao periférico diretamente a memória. Nível do Conjunto de Instruções Interrupções • Interrupções são alterações no fluxo de controle que não são causados pelo programa em execução. • Em geral estão relacionadas a E/S. • Quando termina o tratamento de interrupção o controle é devolvido ao programa interrompido. • As interrupções podem ser agrupadas por prioridade. • Em alguns casos uma interrupção pode ser atendida antes da finalização da interrupção corrente. Nível do Conjunto de Instruções Interrupções • Ações de Hardware • O controlador de dispositivo ativa uma linha de interrupção no barramento. • Se o atendimeto de interrupção estiver habilitado, a CPU envia um sinal de reconhecimento ao dispositivo. O dispositivo de identifica a CPU através de um número chamado vetor de interrupção. • A CPU passa a o PC e PSW para a pilha. • Carrega o PC com o valor encontrado a partir do vetor de interrupção. Nível do Conjunto de Instruções Interrupções • Ações de Software • Rotina de tratamento de interrupção salva todos os registradores em uso. • O programa identifica o dispositivo gerador da interrupção. • O dispositivo é identificado pela CPU através de um número chamado vetor de interrupção. • Execução das instruções da rotina que trata a interrupção. • Restaura os registradores salvos. • Executa a instrução RETURN FROM INTERRUPT para que a CPU restaure PSW e PC. Nível do Conjunto de Instruções Interrupções Nível da Lógica Digital REFERÊNCIAS BIBLIOGRÁFICAS [1] TANEMBAUM, Andrew S. Organização Estruturada de Computadores. Quinta Edição. Editora Pearson Prentice Hall, São Paulo, 2007. [2] HENNESSY, John L.; Patterson, David A.; Organização e Projeto de Computadores – 2ª Edição 2000; ED LTC. [3] MONTEIRO, M. A. Introdução à organização de computadores. Quarta Edição. Editora LTC, Rio de Janeiro, 2002.