You are on page 1of 53

CPU - Aes

Busca de instrues: l uma instruo da memria. Interpretao da instruo: a instruo decodificada para determinar a ao. Busca de dados: a execuo de uma instruo pode requerer leitura de dados da memria ou de um mdulo de E/S Processamento de Dados: a execuo de uma instruo pode requerer efetuar uma operao aritmtica ou lgica sobre os dados. Escrita de dados: os resultados da execuo podem requerer escrever dados na memria ou em um mdulo de E/S.

CPU - Aes
A CPU necessita armazenar alguns dados temporariamente. Posio de memria da ltima instruo, para saber onde obter a prxima instruo; Armazenar instrues e dados temporariamente, enquanto uma instruo est sendo executada. A CPU necessita de uma memria interna, constituda basicamente por Registradores.

CPU Estrutura Interna

CPU - Pinagem

CPU - Registradores
Dispositivos capazes de armazenar informaes, conceitualmente, os registradores so o mesmo que memria principal. A diferena que os registradores esto fisicamente localizados dentro do prprio processador, de modo que eles podem ser lidos ou escritos mais rapidamente do que as palavras na memria principal.

CPU Comprimento dos Registradores


Como os registradores MAR e MBR esto intimamente associados aos barramentos de endereo e de dados respectivamente, os comprimentos destes registradores sero iguais s larguras destes barramentos. O registrador PC por tratar-se de um endereo, tambm ter o mesmo comprimento que o registrador MAR. Consideraes devem ser feitas antes de determinar o comprimento do registrador IR.

ULA - ALU
O circuito Aritmtico mais simples um somador, que pega duas entradas de n bits e produz uma sada (soma) Um circuito aritmtico mais geral a ALU (Arithmetic Logical Unit) ou ULA (Unidade Lgica Aritmtica). Ela tambm possui duas entradas de dados e uma sada de dados, mas tambm possui algumas entradas e sadas de controle.

ULA
Normalmente uma ULA tem dois bits de funo, que determinam qual a funo que a ULA deve realizar. Exemplo: A + B, A and B, A, not A

F0 F1 Funo
0 0 1 1 0 1 0 1 A+ B A and B A Not A

ULA
Entradas de controle F0 e F1; Tem tambm sadas de controle N e Z sendo que se N = 1 a sada da ULA (resultado) negativo caso contrrio positivo, e a sada Z que indica se a sada da ULA Zero.

Deslocadores
Embora algumas ULAs possam tambm realizar deslocamento, na maioria das vezes necessrio ter uma unidade de deslocamento separada. Este circuito pode deslocar uma entrada multibit de 1 bit para esquerda ou direita, ou ainda, no realizar nenhum deslocamento. (multiplico ou diviso)

Clocks
So circuitos que emitem uma seqncia peridica de pulsos que definem os ciclos da mquina, sendo que em cada ciclo, ocorre uma atividade bsica, tal como a execuo de uma micro-instruo. freqentemente til, dividir os ciclos em subciclos, de modo que diferentes partes da microinstruo possam ser realizadas em uma ordem bem definida.

O ciclo de instruo inclui os seguintes sub-ciclos:


Ciclo de Instruo

Busca: l a prxima instruo da memria para a CPU. Execuo: interpreta o cdigo de operao e efetua a operao indicada; Interrupo: se as interrupes esto habilitadas e ocorreu uma interrupo, salva o estado do processo atual e processa a interrupo.

Ciclo de Instruo

Ciclo de Instruo
Uma vez que o ciclo de busca termina, a unidade de controle examina o contedo do IR para determinar se a instruo especifica algum operando com endereamento indireto. Se isto ocorrer um ciclo indireto executado. Um ciclo indireto ocorrer sempre que uma instruo envolver um ou mais operandos, onde um deles poder requerer um acesso indireto memria, isto , necessitando de acessos adicionais memria.

Instrues por Ciclo


Quando se faz uma soma em uma calculadora, basta teclar cada um dos algarismos do 1 numero, teclar o sinal de mais, depois teclarmos os algarismos do segundo nmero e teclarmos o sinal de igual.

Instrues por Ciclo


J em um computador a histria bem mais complexa, veja a seguir os passos de uma simples soma: Localizar a instruo na memria; Move-la para o registrador de instrues (IR); Decodificar o cdigo binrio para executar a instruo; Determinar o tamanho dos dados; Determinar a localizao e buscar os dados; Finalmente fazer a soma (parte mais simples e mais rpida da operao)

Instrues por Ciclo


Em cada nova gerao de processadores, os mesmos so capazes de executar as operaes relativas ao processamento de uma instruo em menor nmero de ciclos do clock.
Processador 80386 80486 Pentium Pentium Pro Ciclos para operao No mnimo 6 ciclos para uma instruo de soma de 2 nmeros Em geral 2 ciclos para uma instruo de soma de 2 nmeros 1 ciclo para instruo de soma de 2 nmeros 1 ciclo para instruo de soma de 3 nmeros

Instrues por Ciclo


Se compararmos um processador 80486 de 100 MHZ com um Pentium de 100 MHZ fica muito claro perceber que o processador Pentium muito mais eficaz. Podemos concluir que a freqncia no o nico fator a ser considerado para determinar qual o melhor processador, e sim analisarmos tambm a construo do processador para definir a sua eficcia.

Discusso:
Qual processador mais rpido:

Intel Pentium 4 3.0 Ghz ou AMD Athlon 3000+ ?

Multiplexadores e Decodificadores
Os circuitos que possuem uma ou mais linhas de entradas e calcula um ou mais valores de sada que so determinados unicamente pelas entradas atuais so chamados circuitos combinatrios. Dois dos mais importantes so os multiplexadores e os decodificadores.

Pipelines
Pipeline uma lista de todos os estgios que uma dada instruo precisa percorrer para ser executada; Tem como objetivo aumentar o desempenho da CPU;

Pipelines
Exemplo de uma execuo sequencial com trs estgios (busca, decodificao e execuo)

Pipelines
Exemplo execuo em Pipeline com trs estgios (busca, decodificao e execuo)

Pipelines
Nmero de estgios dos processadores

Unidade de Controle Microarquitetura e Micro-programao


A execuo de uma instruo envolve uma seqncia de sub-passos (ciclos); Uma execuo pode consistir de ciclos de busca, indireto, execuo e interrupo; Cada ciclo constitudo por uma seqncia de uma ou mais operaes denominadas microoperaes; Uma nica microoperao envolve transferncia de dados entre registradores, entre um registrador e um barramento externo ou uma operao simples da ULA;

Execuo de um Programa Elementos

Unidade de Controle
A Unidade de Controle de um processador efetua duas tarefas: (1) faz com que o processador execute microoperaes na seqncia apropriada, determinada pelo programa que est sendo executado; (2) gera sinais de controle que causam a execuo de cada micro-operao.

Micro-instruo
Um ciclo de busca pode ser constitudo pelas micro-operaes:

Neste caso temos uma Micro-instruo de busca

Micro-instrues
Uma seqncia de micro-instrues, denominamos microprograma ou firmware. (meio termo entre o hardware e o software); O micro-programa para ser executado previamente armazenado em uma memria de controle interna a Unidade de Controle;

Micro-instrues

Microoperaes

Microinstrues

A coleo de diferentes instrues que a CPU capaz de executar conhecida como conjunto de instrues da CPU. Cada instruo deve conter:

Conjunto de Instrues

Cdigo da operao: especifica a operao a ser executada (por exemplo: ADD). A operao especificada por um cdigo binrio, conhecido como cdigo da operao. Referncia a operando fonte: a operao pode envolver um ou mais operandos fontes, ou seja, operandos que constituem dados de entrada para a operao. Referncia a operando destino: a operao pode produzir um resultado. Endereo da prxima instruo: indica onde a CPU deve buscar a prxima instruo, depois que a execuo da instruo corrente for completada.

Operaes
MPYD DIVD ADDD SUBD MOVE LODD STOD - Multiplicao - Diviso - Soma - Subtrao - Move o contedo - grava em AC - recebe AC

Instrues com 3 operandos


Os campos operando 3 e operando 2 representam o endereo de cada dado utilizado em uma operao aritmtica ou lgica. O campo Operando 1 contm o endereo para armazenamento do resultado dessas operaes.

Instrues com 3 operandos


Supondo que um programa escrito em linguagem de alto nvel tenha a seguinte instruo: Como resultado do processo de compilao em um sistema que utiliza instrues de trs operandos teremos o seguinte trecho de programa em linguagem de montagem:
T1 e T2: variveis temporrias

Instrues com 2 operandos


Os campos operando 1 e operando 2 representam o endereo de cada dado utilizado em operao aritmtica ou lgica. O campo operando 1 tambm ser o operando destino, onde ser armazenado o resultado da operao. Sendo assim, o valor original do operando 1 ser perdido.

Instrues com 2 operandos


Pode-se evitar a perda do valor do 1o. Operando salvando-se o valor da varivel, antes da execuo da instruo. Esse salvamento de varivel pode ser realizado atravs de uma nova instruo:

Instrues com 2 operandos


Com essas instrues de dois operandos, o comando correspondente a instruo: Ficaria assim: ou :

Instrues com 1 operando


Com esse tipo, o acumulador (AC) empregado como operando implcito, guardando o valor de um dos dados e, posteriormente, o valor do resultado da operao.

Instrues com 1 operando


A instruo:
LODD C // AC <- C STOD X // X <- AC

Ficaria:

Modos de Endereamento de Memria


As instrues apresentadas at o momento definiram o campo operando como contendo o endereo da Memria Principal onde est localizado o dado referido na instruo.

X um endereo de memria representado pela varivel X

Modos de endereamento
Imediato; Direto; Indireto; Por registrador; Indexado.

Modo Imediato
O dado se encontra na prpria instruo a ser executada. Neste caso, durante a execuo da instruo, no ser necessrio mais nenhum acesso Memria Principal para busca de dados.

Modo Direto
O valor binrio contido no campo operando da instruo indica o endereo de memria onde se localiza o dado. um modo bastante simples e rpido, pois s requer um acesso Memria Principal para a busca do dado durante o ciclo de execuo. Mas, mais lento que o modo imediato.

Modo Indireto (Ponteiro)


O valor binrio do campo operando representa o endereo de uma clula de memria como no modo Direto, mas o contedo da clula referida no o valor de um dado, um endereo de memria, cujo contedo o valor do dado. Assim, h um duplo endereamento para um acesso a um dado, e conseqentemente, mais lento que o modo direto.

Modo Indireto (Ponteiro)


EX:

Modo por Registrador


conceitualmente idntico ao endereamento direto e indireto, exceto que o operando referenciado na instruo substitudo por um dos registradores da CPU. O operando um registrador. Este registrador pode conter o prprio dado a ser usado pela instruo (direto) ou um endereo de memria onde est o dado a ser usado (indireto).

Modo Indexado
usado quando se usa uma estrutura de dados do tipo vetor ou matriz, onde tem-se um ponto inicial e um deslocamento dentro da estrutura.

Palavra de Status de Programa PSW

Um dos registradores mais importantes dentro de uma CPU a PSW ou Palavra de Status de Programa ou simplesmente Registrador de Flags. Muitas das instrues em linguagem de montagem necessitam saber o resultado de outras instrues j executadas, por exemplo:

PSW
Antes de ser atribudo um valor para PC (6 ou 8) feito uma comparao entre os valores atuais de x e de y (linha 4). O resultado desta comparao deve ser guardado em um local da CPU para que ela possa tomar uma deciso posterior.

PSW - Registrador de FLAGS do 80x86

No exemplo acima, temos um registrador de 16 bits onde alguns dos bits recebem o valor de um flag. Por exemplo, o bit 6 (ZF) setado (=1) quando o resultado de uma operao igual a zero e ressetado (=0) quando o resultado de uma operao diferente de zero, o bit 11 (OF) setado (=1) quando o resultado de uma operao no pode ser armazenado no campo destino.

PSW

X = 5 Y = 3 LODD JNZE LODD JUMP DIFERENTE: ADDD FIM: STOD X DIFERENTE Y FIM Y X

Na operao LODD X o valor de X carregado da memria para o registrador AC na CPU, no percurso do dado, ele passa pela ULA. Se o valor de x for igual a zero, o flag Z setado (=1), seno o flag Z ressetado. Quando testado na prxima instruo JNZE diferente, o flag Z ser 0 (j que x != 0) e o endereo representado pelo smbolo diferente ser atribudo ao PC. Sendo assim, a prxima instruo a ser executada ser ADDD Y.

Saltos condicionais e incondicionais


Nem sempre h capacidade de memria para executar todas as instrues, fazendo a CPU continuar a execuo a partir de um endereo determinado. A execuo "pula" para a instruo do novo endereo.

Salto Incondicional

Salto Condicional

As instrues 1 a 5 sero executadas 100 vezes, depois disto, a execuo continua normalmente na instruo 6

You might also like