Arquitetura de Computadores II
O Processador
O processador o componente vital do sistema de computao,
programa,
para
ser
efetivamente
executado
pelo
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
Instruo de Mquina
Quem executa um programa o hardware Ele espera encontrar um programa em linguagem de mquina
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
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
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
Conjunto de Instrues
coleo completa das instrues que a CPU capaz de
executar (entende)
software
Conjunto de instrues
hardware
e de linguagem de mquina
O compilador traduz uma linguagem de alto nvel, que
Montador: Exemplo
1 Passo
2 Passo
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
Cdigo da Operao
Op. Fonte
Op. Destino
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
comprimento, em outras pode haver muitos comprimentos diferentes (ditas regulares = mesmo comprimento)
OPCODE
ADDRESS 1
ADDRESS 2
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
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
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
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
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.
Localizao de Operandos
Quanto localizao, os operandos podem estar diretamente na
memria.
Como: ADD M1, R1, R2, ADD M1, M2, R2, etc.
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
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:
usado para trabalhar com valores constantes. Exemplo: ADD R1, #4 (R1 R1 + 4)
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
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
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.
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.
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)
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
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
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?