1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos



Documentos relacionados
3. O NIVEL DA LINGUAGEM DE MONTAGEM

ULA Sinais de Controle enviados pela UC

1. NÍVEL CONVENCIONAL DE MÁQUINA

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

ARQUITETURA DE COMPUTADORES

2. A influência do tamanho da palavra

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Sistemas Computacionais II Professor Frederico Sauer

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Introdução à Arquitetura de Computadores IFES Campus Serra

Componentes do Computador e. aula 3. Profa. Débora Matos

BARRAMENTO DO SISTEMA

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.


Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I. de Computadores

Dadas a base e a altura de um triangulo, determinar sua área.

Informática I. Aula 4. Aula 4-11/09/2006 1

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

ARQUITETURA DE COMPUTADORES

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

3. Arquitetura Básica do Computador

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Visão geral do sistema de armazenamento e hierarquia de memória

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Unidade Central de Processamento

Guilherme Pina Cardim. Relatório de Sistemas Operacionais I

1. CAPÍTULO COMPUTADORES

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

28/9/2010. Unidade de Controle Funcionamento e Implementação

Máquina Multinível. Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa.

Organização de Computadores 1

Arquitetura de processadores: RISC e CISC

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Figura 1 - O computador

Informática I. Aula 5. Aula 5-13/05/2006 1

Sistema de Computação

Aula 26: Arquiteturas RISC vs. CISC

Arquiteturas RISC. (Reduced Instructions Set Computers)

Aula 14: Instruções e Seus Tipos

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Arquitetura de Computadores. Tipos de Instruções

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias

Introdução à Engenharia de Computação

Introdução à Lógica de Programação

Orientação a Objetos

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

Memórias Prof. Galvez Gonçalves

Sistemas Numéricos bit / Byte BIT BYTE. Prof. Celso Candido ADS / REDES / ENGENHARIA

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Introdução aos Computadores

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Capítulo 3 Processadores de Propósito Geral: Software

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

Introdução a Informática. Prof.: Roberto Franciscatto

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

Controladores Lógicos Programáveis CLP (parte-3)

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Sistemas Operacionais

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Componentes de um Computador: Modelo Von Neumann

2. ALGORITMOS. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro

- Aula 1 - ARQUITETURA DE COMPUTADORES

Disciplina: Organização de computadores

Sistemas de Numerações.

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

ARQUITETURA DE COMPUTADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

LÓGICA DE PROGRAMAÇÃO

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

ORGANIZACÃO DE COMPUTADORES PROCESSADORES CHIPS TRANSISTORES

Memória Cache. Prof. Leonardo Barreto Campos 1

Organização e Arquitetura de Computadores I. de Computadores

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Introdução à Programação de Computadores

Computadores XXI: Busca e execução Final

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Conceitos Básicos. Conceitos Básicos Memória

Organização e Arquitetura de Computadores I

Máquinas Multiníveis

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Sistemas Operacionais

Nível da Microarquitetura

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

2. Representação Numérica

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

Transcrição:

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos Já estudamos anteriormente que os processadores funcionam (ou melhor, o seu hardware funciona) através de ordens simples e básicas, tais como: Efetue a soma de dois números; Mova um dado de um local para outro; Adicione 1 ao valor de um número; Transfira 1 byte de dados da memória para uma porta de saída. Estas ordens são simples porque o hardware não é capaz de manipular diretamente ordens mais complexas. Ainda sabemos que essas ordens são transmitidas ao hardware (componentes do processador) para serem interpretadas e executadas por meio de sinais elétricos que representam ou o bit 1 ou o bit 0, ou seja, por um conjunto de bits, que chamamos formalmente de instrução de máquina. Todo processador já é fabricado de modo a conter em seu interior um grupo dessas instruções, que são chamadas em bloco de: conjunto de instruções ( instruction set ). A escolha das operações que o processador poderá realizar diretamente (ou seja, quais instruções irão realizar) e como cada uma delas será realizada, passo a passo, são dois itens importantes no projeto e na fabricação de um processador. Nesse ponto, nos referimos à fronteira entre: O entendimento do programador que deseja obter solução para seu problema e elabora um programa em uma linguagem que seja próxima de seu entendimento (de sua lógica) contendo operações complexas, em linguagens como: Pascal ; C ou Java, e: O hardware do processador que aceita apenas operações simples para ser executadas. O programador (em linguagem de baixo nível) pode ver e manipular alguns poucos elementos do hardware, como os registradores de dados, a parte de cima da tal fronteira, enquanto outro nível, chamado de microarquitetura (contendo micro-operações e microprogramação), se encarrega de interpretar essas instruções e efetivamente providenciar sua execução, passo a passo (micro-operação por micro-operação). Obs. Existem alguns processadores, no entanto, (p.ex., os de arquitetura RISC) que usam o controle por meio de programação direta no hardware, sem o uso de microprogramação. Fig. 1.3 Instruções passadas aos níveis inferiores ao nível de Máquina convencional. Disciplina: Projeto Lógico de Computadores (5º/6º Sem - 2014). Livro: Andrew S. Tanenbaum Página 1 de 7

Vamos acrescentar um exemplo que deve auxiliar o entendimento sobre o conceito e o papel das instruções de máquina e como, por isso, funcionam os processadores de emprego geral, assim comercialmente denominados. Exemplo 1: Considere uma máquina, um robô, construído de forma a possuir dois braços mecânicos, com terminações capazes de se mover para cima e para baixo (o braço da esquerda e o braço da direita) e cada uma das terminações sendo capaz de girar no sentido horário ou contrariamente ao sentido horário. Os outros movimentos deste Robô são irrelevantes para o exemplo, por isso só mencionaremos oito movimentos. Para que ele possa realizar cada um desses movimentos e tenha flexibilidade de realizar outros mais complexos, projetou-se um conjunto de instruções primitivas (simples) que acionam o hardware (efetivam os movimentos das articulações, braços): cada uma dessas instruções foi identificada por um código numérico de 0 a 7, conforme mostrado na Tabela 1.1. Tabela 1.1 Codificação e descrição de movimentos executados pelo robô no Exemplo 1. Essa máquina pode ser usada por uma empresa, por exemplo, para aparafusar algum objeto em uma parede ou desparafusar; a operação (de aparafusar) pode ser realizada em qualquer posição (como, p.ex., inclinada para baixo, cerca de 45 ou na perpendicular do chão, (90 ), usando qualquer um dos dois braços articulados, e assim por diante). Se, em determinado momento, se quiser aparafusar um objeto na perpendicular do chão (90 ), pode-se, a partir da posição de repouso do robô (braços estendidos para baixo), comandar a execução de um programa do tipo: Contador A = 1 Contador B = 100 Enquanto contador A < 90 Iniciar Instrução cod. 0 Contador A = contador + 1 Fim Enquanto contador B < 100 Iniciar Instrução cod. 2 Contador B = Contador B + 1 Fim Disciplina: Projeto Lógico de Computadores (5º/6º Sem - 2014). Livro: Andrew S. Tanenbaum Página 2 de 7

A essência do conceito aqui mostrado é apenas a capacidade de a máquina poder realizar operações complexas diferentes (e, pois, uma máquina de emprego geral) usando as mesmas instruções primitivas (da Tabela 1.1), as quais podem ser manipuladas de forma diferente para obterem-se resultados diferentes. O programa mostrado é bastante incompleto, porém sua única finalidade é mostrar a diferença entre uma instrução primitiva, que realiza uma operação básica simples, e uma outra operação, mais complexa, que requer várias instruções básicas (um programa) para ser realizada. Além disso, teremos grande flexibilidade de ações complexas a realizar, pois podemos variar a combinação das primitivas, obtendo-se, com isso, resultados diferentes. Essa é uma das características essenciais dos computadores de emprego geral. Ou seja, possuem um conjunto básico de instruções primitivas e o usuário (programador) pode combina-las de diferentes modos (criar diferentes programas), obtendo diferentes resultados. Assim é que um determinado computador (pode ser um dos sistemas baseados em um processador Pentium 4 ou AMD Athlon XP), com seu conjunto de instruções de máquina (primitivas) pode ser empregada para o desenvolvimento de textos (com o MS Office ou Open Office), mas também pode ser empregado para controlar o fluxo de carros em uma região (controlando a abertura e o fechamento dos sinais de trânsito) e, em determinadas circunstâncias, poderá, também, ser empregado como plataforma para um sistema de controle bancário e outras aplicações. O que se quer demonstrar e que a inteligência e a versatilidade do sistema estão na combinação dessas instruções primitivas (nos programas), no software, visto que o hardware e imutável (pelo menos para o usuário). 1.4. FORMATO DE UMA INSTRUÇÃO DE MÁQUINA Como já estudamos, o conjunto de instruções de um processador define o que ele é capaz de realizar em si, permitindo ao programador do programa compilador escrever seu código de acordo. Lembramos que esta é a razão de, por exemplo, um programa escrito em um programa compilador para PC não rodar em uma plataforma Apple. As instruções dos processadores são diferentes, por isso o programa deve ser ajustado à plataforma do processador. Uma instrução de máquina deve, então, especificar para o hardware (especificamente a unidade de controle do processador) que determinada operação deve ser realizada (soma de dois números, movimento de um dado, etc.). Em função da interpretação do que é a instrução, a UC, que já possui a sequência de execução (programação) de todas as instruções daquele especifico processador, "dispara" (emite os sinais elétricos de controle correspondentes a cada microação) a sinalização para efetivação das ações subsequentes para a completa execução da operação. A Fig. 1.4 mostra exemplos de diversas operações primitivas que podem redundar em instrução de máquina de um determinado processador. Disciplina: Projeto Lógico de Computadores (5º/6º Sem - 2014). Livro: Andrew S. Tanenbaum Página 3 de 7

Fig. 1.4 Exemplo de operações primitivas típicas. Quais são os elementos requeridos para execução de uma operação? Como eles são projetados para formatar, em binário, uma instrução de máquina? Qual ou quais tipos de dados ela manipulara? Por exemplo, uma operação de somar dois números requer a indicação da operação em si (como ela ocorrera) e a localização dos dados envolvidos: a 1ª parcela, a 2ª parcela e o resultado; é também necessário indicar se os valores são números inteiros ou números fracionários (ponto flutuante conforme visto em Circuitos Digitais). A resposta a essas e outras questões pertinentes configura o projeto do conjunto de instruções de um determinado processador ou "família" de processadores. O projetista do conjunto de instruções define, então, que operações aquele processador irá realizar e especifica, para cada uma delas, todos os detalhes de identificação e execução da operação, estabelecendo, assim, o formato de cada instrução da máquina. Além disso, é necessário detalhar sua execução, ou seja, criar uma sequência de micro-operações para efetivamente realizar a tarefa. Fig. 1.5 Formato básico de uma instrução de máquina. Fig. 1.6 Três formatos típicos de instrução: (a) instrução sem endereço; (b) instrução de um endereço; (c) instrução de dois endereços. Disciplina: Projeto Lógico de Computadores (5º/6º Sem - 2014). Livro: Andrew S. Tanenbaum Página 4 de 7

A Fig. 1.6 mostra vários formatos típicos para as instruções de nível 2. Em algumas máquinas de nível 2 todas as instruções possuem o mesmo comprimento, já em outras podem existir dois ou três comprimentos. Alem disso, as instruções podem ser mais curtas, do mesmo tamanho ou mais longas do que o comprimento de uma palavra. 1.4.1. Campo Operando (Op.) O campo operando, ou campos operando (pois pode haver mais de um campo, indicando a localização de mais de um dado ou endereço), de uma instrução indica genericamente o dado que se deseja manipular em um endereço para buscar ou armazenar um dado ou resultado de uma determinada operação. O dado pode estar explicitamente colocado: No próprio campo operando da instrução, ou; Estar armazenado em uma posição de memória, ou ainda: Em um registrador de dados do processador, cujo endereço é o que se encontra no Campo Operando da instrução. Essa diversidade de apresentação do dado na instrução denomina-se genericamente modo de endereçamento. Na prática, o conjunto de instruções definido para um determinado processador ou família de processadores (como é o caso da arquitetura x86) é sempre constituído de uma mistura de formatos diferentes, justamente para permitir a melhor aplicação em cada caso, exceto em arquiteturas do tipo RISC. No que se refere ao Campo Operando, podem-se analisar dois aspectos: Quantidade de operandos (3, 2, 1 e 0 operandos); Modo de endereçamento do dado (modo de interpretação do valor armazenado no campo operando). 1.5. MODOS DE ENDEREÇAMENTO Ao analisarmos o formato básico de instruções de máquina e o ciclo de execução de cada instrução, concluindo que: a) O endereçamento de uma instrução é sempre realizado através do valor armazenado no Contador de Instrução (Cl). Todo ciclo de instrução é iniciado pela transferência da instrução para o Rl Registrador de Instrução (usando-se o endereço contido no Cl). b) Toda instrução consiste em uma ordem codificada (código de operação), para o processador executar uma operação qualquer sobre dados. No contexto da interpretação de uma instrução, o dado pode ser um valor numérico, um caractere alfabético, um endereço (instrução de desvio). c) A localização do(s) dado(s) pode estar explicitamente indicada na própria instrução por um ou mais conjuntos de bits, denominados campo do operando, ou implicitamente (quando o dado estiver armazenado no único registrador existente no processador para este fim, como era o caso quando os processadores possuíam o ACC - acumulador). Disciplina: Projeto Lógico de Computadores (5º/6º Sem - 2014). Livro: Andrew S. Tanenbaum Página 5 de 7

Todos os exemplos apresentados até esse ponto definiram o campo operando como contendo o endereço onde esta localizado o dado referido na instrução; no entanto, essa não é a única maneira de indicar a localização de um dado, havendo outros modos de endereçamento. A existência de vários métodos para localizar um dado que está sendo referenciado em uma instrução se prende a necessidade de dotar os sistemas de computação da necessária flexibilidade no modo de atender aos diferentes requisitos dos programas, o que é uma característica típica de arquiteturas ClSC. Algumas relações possíveis entre comprimento de instrução e comprimento de palavra são mostradas na Fig. 1.7. Fig. 1.7 Algumas relações possíveis entre comprimento de uma instrução e comprimento de uma palavra. Para justificar a existência de muitos métodos de indicar a localização do dado referenciado na instrução pode-se citar o caso de instruções em que e ineficiente usar 0 dado armazenado na MP, como, por exemplo, o de um contador, o qual tem um valor fixo inicial e, durante a execução do programa, e sistematicamente atualizado. Nesse caso, melhor seria se 0 referido contador (dado) fosse inicialmente transferido para um registrador, dentre os que estivessem disponíveis no processador ela permanecesse (sendo diretamente atualizado no processador até o final da execução do programa, caso contrário poderia acarretar um considerável gasto de tempo para os repetidos ciclos de leitura e gravação). A manipulação de vetores acarreta a necessidade de se estabelecer um método eficaz de endereçamento para variáveis que ocupam posições contiguas de memória, ocasionando outro tipo de necessidade de indicar se o dado de forma diferente. E assim por diante. Disciplina: Projeto Lógico de Computadores (5º/6º Sem - 2014). Livro: Andrew S. Tanenbaum Página 6 de 7

Dentre os diversos modos de endereçamento desenvolvidos para processadores, os principais são: imediato; direto; indireto; por registrador; indexado; base mais deslocamento. A existência de muitos modos de endereçamento de dados em um mesmo conjunto de instruções e típico de arquiteturas ClSC, pois sem duvida aumenta a complexidade da decodificação de cada instrução e aumenta a quantidade delas, com isso acarretando todas as desvantagens já mencionadas quando analisamos a largura do campo código de operação. Nem todos esses modos estão incluídos nos conjuntos de instruções dos processadores contemporâneos, mas devem ser descritos não só por razões históricas, mas para percepção do processo evolutivo da tecnologia. Disciplina: Projeto Lógico de Computadores (5º/6º Sem - 2014). Livro: Andrew S. Tanenbaum Página 7 de 7