Anda di halaman 1dari 48

Arquitetura de Computadores II

PROF. ANDR FILIPE DE MORAES BATISTA

UNIVERSIDADE MUNICIPAL DE SO CAETANO DO SUL

Arquitetura de Computadores II

Processador: Conjunto de Instrues

O Processador
O processador o componente vital do sistema de computao,

responsvel pela realizao das operaes de processamento


(os clculos matemticos etc.) e de controle, durante a execuo de um programa.
Um

programa,

para

ser

efetivamente

executado

pelo

processador, deve ser constitudo de uma srie de instrues

de mquina. Para que a execuo tenha incio, as instrues


devem ser armazenadas em clulas sucessivas, na memria

principal.

Ciclo da Instruo
1. A CPU busca o cdigo a instruo na memria principal e 2.

3.
4. 5.

o armazena no registrador de instruo (IR) da UC A UC (decodificador de instrues) decodifica o Cdigo de Operao A UC busca os operandos (se houver) A UC comanda a execuo da instruo ( a operao executada sobre os operandos) Se o programa tiver terminado, Para; Caso contrrio, volta para o passo 1

INICIO
Buscar Prxima Instruo

Interpretar a Instruo

Buscar os Dados

Executar a Instruo

TRMINO

Registradores Importantes na CPU


Na Unidade de Controle: CI Contador de Instrues (em ingls

PC Program Counter): armazena o endereo da prxima instruo a ser executada


Na Unidade de Controle: RI Registrador de Instrues (em

ingls IR Instruction Register): armazena a instruo a ser executada


Na ULA ACC Acumulador armazena os dados (de entrada e

resultados) para operaes na ULA

Instruo de Mquina

Quem executa um programa o hardware Ele espera encontrar um programa em linguagem de mquina

Uma sequncia de instrues de mquina em cdigo binrio

Um programa em linguagem de alto nvel no pode ser executado diretamente pelo hardware

Ele tem que ser transformado (traduzido) para linguagem de mquina por um compilador, antes de ser carregado em memria, para que o hardware possa execut-lo

Linguagem de Mquina
A linguagem de mquina composta de cdigos binrios,

representando instrues, endereos e dados e est totalmente vinculada ao conjunto de instrues da mquina.
O conjunto de instrues um dos principais pontos centrais na

arquitetura de um processador.
Vrios aspectos na definio e implementao da arquitetura

so influenciados pelas caractersticas do conjunto de instrues.

As operaes de um computador
Funcionalmente as operaes de um computador so:

Matemticas: aritmticas, lgicas, de complemento, de deslocamento; Movimentao de dados: memria registrador Entrada-sada: leitura e escrita em dispositivos externos Controle: desvio da sequncia de execuo, parar, etc.

Intel 8080
O conjunto de instrues de alguns processadores, como por

exemplo o Intel 8080, no possui instrues de multiplicao/diviso

Uma linguagem de alto nvel pode implementar estes comandos, porm para a linguagem de mquina estes devem ser representados por uma srie de instrues binrias do conjunto de instrues Repetidas somas/substraes Ou deslocamento de bits

Ou seja, preciso haver uma certa camada entre a Linguagem

de Alto Nvel e a Linguagem de Mquina

Conjunto de Instrues
coleo completa das instrues que a CPU capaz de

executar (entende)

software

Conjunto de instrues

hardware

Arquitetura do Conjunto de Instrues


Corresponde aos nveis de linguagem de montagem (assembly)

e de linguagem de mquina
O compilador traduz uma linguagem de alto nvel, que

independente de arquitetura, na linguagem assembly, que dependente de arquitetura.


-O assembler traduz programas em linguagem Assembly em

cdigos binrios executveis

Arquitetura do Conjunto de Instrues

Montador: Exemplo

1 Passo

2 Passo

mov mov add mov nop

a,10h b,20h b,a c,b


Construo dos Objetos e definio dos endereos de memria. Gera uma tabela de smbolos Validao das Instrues Gerao do cdigo de mquina

mov a,10h = 01110000 00010000 mov b,20h = 01110100 00100000 add b,a = 11000100 mov c,b = 01001001 nop = 00000000

24

Conjunto de Instrues
O conjunto de instrues por uma arquitetura se distingue

atravs de diversas caractersticas. As principais so: Formato dos cdigos de instruo Tipos de instrues e operandos Nmero e localizao dos operandos em instrues aritmticas e lgicas Modos de endereamento para acesso aos dados na memria

Conjunto de Instrues
O conjunto de instrues por uma arquitetura se distingue

atravs de diversas caractersticas. As principais so: Formato dos cdigos de instruo Tipos de instrues e operandos Nmero e localizao dos operandos em instrues aritmticas e lgicas Modos de endereamento para acesso aos dados na memria

Formato da Instruo
Cdigo de operao

Faa isto Use isto Coloque o resultado aqui


Quanto terminar, faa isto (normalmente isto deixado por conta do PC)

Endereo do operando fonte

Endereo do operando resultado

Referncia para a prxima instruo

MOV A, B 00011000 0101 1011

Cdigo da Operao

Op. Fonte

Op. Destino

Formato das Instrues


Uma instruo consiste em um opcode, usualmente com

alguma informao adicional, tais como de onde vm os operandos, e para onde vo os resultados

Trataremos o tpico geral que trata de especificar onde esto os operandos (isto , seus endereos) mais adiante

Em algumas mquinas, as instrues tem o mesmo

comprimento, em outras pode haver muitos comprimentos diferentes (ditas regulares = mesmo comprimento)

Mesmo comprimento: mais fcil a decodificao, mas desperdia espao


OPCODE OPCODE
ADDRESS

OPCODE

ADDRESS 1

ADDRESS 2

Instrues: Regulares e Irregulares


Regular

Todos os cdigos de instruo possuem o mesmo tamanho, e um certo campo de bits sempre ocupa a mesma posio nas instrues onde aparece Se todas as instrues possuem tamanho de n bits, basta que o processador realize um nico acesso de n bits memria principal

Irregular

Possibilitam programas com menor tamanho de cdigo executvel Porm, como o tamanho varivel, o processador no sabe a priori quantos bits deve buscar para obter uma instruo completa

Instrues
Uma instruo de (n+k) bits com um opcode de k bits e um

nico endereo de n bits.

Esta instruo permite 2k operaes diferentes e 2n clulas de memria endereveis

Se uma mquina com cdigo de operao de tamanho fixo tem

N instrues, sero necessrios n bits para representar suas instrues, sendo: 2n = N Dessa forma, o nmero de bits necessrios ao opcode ser: n = log N

Conjunto de Instrues
O conjunto de instrues por uma arquitetura se distingue

atravs de diversas caractersticas. As principais so: Formato dos cdigos de instruo Tipos de instrues e operandos Nmero e localizao dos operandos em instrues aritmticas e lgicas Modos de endereamento para acesso aos dados na memria

Tipo de Instrues e Operandos de uma Arquitetura

As instrues oferecidas por uma arquitetura podem ser classificadas em categorias, de acordo com o tipo de operao que realizam. Em geral, um arquitetura fornece pelo menos trs categorias de instrues bsicas:

Instrues aritmticas e lgicas: so as instrues que realizam operaes aritmticas sobre nmeros inteiros (adio, subtrao), e operaes lgicas bit-a-bit (AND, OR) Instrues de movimentao de dados: instrues que transferem dados entre os registradores, ou entre os registradores e a memria principal Instrues de transferncia de controle: instrues de desvio e de chamada de rotina, que transferem a execuo para uma determinada instruo dentro do cdigo do programa.

Tipos de Operandos
A funo do operando identificar / localizar o dado que ser processado. Quanto aos tipos de operandos que podem ser diretamente manipulados

por uma arquitetura dependem dos tipos de instrues oferecidas.

Conjunto de Instrues
O conjunto de instrues por uma arquitetura se distingue

atravs de diversas caractersticas. As principais so: Formato dos cdigos de instruo Tipos de instrues e operandos Nmero e localizao dos operandos em instrues aritmticas e lgicas Modos de endereamento para acesso aos dados na memria

Nmero e Localizao dos Operandos

Uma outra caracterstica de um conjunto de instrues o nmero de operandos explicitamente indicados em uma instruo aritmtica ou lgica. Em algumas arquiteturas, estas instrues referenciam explicitamente trs operandos, dois operandos-fonte e um operando-destino, como por exemplo em:

ADD R1, R2, R3 (realiza soma nos contedos dos registradores R1 e R2 e armazena o resultado em R3)

Em outras arquiteturas, instrues aritmticas/lgicas especificam apenas dois operandos. Neste caso, um dos operandos-fonte tambm o operando-destino.

Por exemplo, na instruo: ADD R1, R2 (R1 = R1 + R2)

Localizao de Operandos
Quanto localizao, os operandos podem estar diretamente na

memria.

Como: ADD M1, R1, R2, ADD M1, M2, R2, etc.

Em outro extremo, existem arquiteturas onde todos os

operandos encontram-se apenas em registradores. As instrues so todas do tipo:

ADD R1, R2, R3 e ADD R1, R2

Conjunto de Instrues
O conjunto de instrues por uma arquitetura se distingue

atravs de diversas caractersticas. As principais so: Formato dos cdigos de instruo Tipos de instrues e operandos Nmero e localizao dos operandos em instrues aritmticas e lgicas Modos de endereamento para acesso aos dados na memria

Endereamento
Busca pelos operandos

Existem alguns modos de endereamento, quais sejam:

Implcito Imediato Direto Relativo base Indexado

Estes modos so formas de se representar o dito endereo

efetivo do operador, isto , a sua verdadeira localizao.

Endereamento: Modo Implcito


O cdigo da instruo traz implcito o endereamento dos

operandos

Logo, no h operandos na representao No processador 8080 existe uma instruo denominada RAL (Rotate Acumulador Left). Esta instruo descola bits, esquerda. O operando implcito o acumulador Ou uma instruo como: ADD R1 Esta adicionando o contedo do registrador R1 ao do acumulador

Exemplo:

Endereamento: Modo Imediato


O valor do campo operando o prprio dado

usado para trabalhar com valores constantes. Exemplo: ADD R1, #4 (R1 R1 + 4)

Vantagem: o operando obtido durante o ciclo de busca, em

apenas 1 acesso. No necessrio fazer nenhum acesso MP no ciclo de execuo, o que acarreta maior rapidez Desvantagem: o tamanho do dado fica limitado ao nmero de bits do operando. Uso: inicializao de contadores e constantes

Endereamento: Modo Direto


O valor do operando indica o endereo do dado na MP

O endereo efetivo um valor imediato contido no cdigo da instruo Por exemplo, na instruo ADD (100), R1, um dos operandos encontra-se na locao de memria com endereo 100

utilizado principalmente no acesso s variveis estticas de

um programa, cujo endereo de memria pode ser determinado durante a compilao Tambm utilizado quando o dado varia de valor a cada execuo Este mtodo bastante utilizado para variveis globais.

Endereamento: Modo Indireto


Neste modo, o endereo efetivo encontra-se em um registrador

Por exemplo: ADD (R1), R2, um dos operando encontra-se na

locao de memria cujo endereo est no registrador R1

(R1) significa o endereo de memria que consta em R1, e no R1 em si

Este mtodo usado no acesso a variveis dinmicas, cujo

endereo de memria mais conhecido durante a execuo do programa.

O acesso a variveis dinmicas realizado atravs de um ponteiro, que nada mais do que o endereo da varivel. Para realizar o acesso varivel dinmica, o ponteiro carregado em um registrador, e a instruo que acessa a varivel usa este registrador com modo de endereamento indireto.

Endereamento: Modo Relativo Base


O endereo efetivo a soma do contedo de um registrador,

chamado endereo-base, com um valor imediato contido na instruo, chamado de deslocamento

Por exemplo, ADD 100(R1) , R2

R1 contm o endereo base e 100 o deslocamento. O endereo efetivo do operando em memria a soma do contedo de R1 com o valor 100 Isto bastante usado em variveis dinmicas estruturadas (por exemplo, struct em C)

Endereamento: Modo Indexado


O endereo efetivo dado pela soma de um ndice com um

endereo-base, ambos armazenados em registradores

Por exemplo, na instruo ADD (R1+R2), R3 R1 contm o endereo-base, e R2 o ndice Este modo normalmente usado no acesso aos elementos de um vetor

Endereamento: via Registrador


Tudo acontece entre registradores apenas

Por exemplo: ADD R1, R2 Este modo bastante comum, devido ao acesso rpido e endereos curtos Muitos compiladores fazem todo o possvel para determinar quais variveis so acessadas com maior frequncia por exemplo, um ndice de um lao, e colocam estas variveis em registradores

possvel realizar endereamento via registrador tanto de modo

direto, quanto de modo indireto (endereo de uma posio de memria)

Deciso de Projeto
Para o projeto de uma arquitetura, em relao a instrues,

considera-se:

Repertrio de operaes ( quantas, quais e qual complexidade?) Tipo de Dados Formato das instrues (tamanho das instrues em bits, nmero de endereos) Registradores (nro. de registradores disponveis na CPU, propsito destes) Modos de endereamento (como calcular um endereo de memria) RISC vs. CISC Veremos em breve!

Resumo
Vimos as principais caractersticas de um conjunto de instrues em

uma arquitetura Praticamente todas as arquiteturas oferecem instrues aritmticas e lgicas, instrues de movimentao de dados e instrues de transferncia de controle As arquiteturas diferem quanto ao nmero de operandos e localizao destes nas instrues aritmticas/lgicas O modo de endereamento a maneira como uma instruo especifica a localizao dos seus operandos Alguns modos, como o relativo base e o indexado, so teis no acesso a alguns tipos de variveis normalmente encontrados em linguagens de alto nvel O formato de uma instruo diz respeito a caractersticas dos cdigos de instruo, tais como seu tamanho e localizao dos campos de bits

Dvidas?

Anda mungkin juga menyukai