Professional Documents
Culture Documents
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 - 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.
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.
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.
Discusso:
Qual processador mais rpido:
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
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:
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
Ficaria:
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 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.
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.
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.
Salto Incondicional
Salto Condicional
As instrues 1 a 5 sero executadas 100 vezes, depois disto, a execuo continua normalmente na instruo 6