Você está na página 1de 37

UNIVERSIDADE FEDERAL RURAL DO SEMI-RIDO CURSO: CINCIA DA COMPUTAO

Aula 2 Estrutura de um processador

Prof. Leonardo Augusto Casillo

Arquitetura de Von Neumann:

Conceito de programa armazenado; Endereamento da memria por posio e no pelo tipo; Execuo seqencial de instrues; nico caminho entre memria e CPU .
Dados e instrues armazenados em uma nica memria de leitura e escrita.

Arquitetura de Harvard:

Variao da arquitetura de Von Neumann. Memrias separadas para dados e instrues. Barramentos separados para instrues e dados. Termo originado dos computadores Mark I a Mark IV

CPU
ULA Unidade de controle

Bus de Endereos

Bus de Dados
Bus de Controle

MEMRIA DE DADOS E DE PROGRAMA

UNIDADES DE E/S

Bus de Endereos da MP Bus de Dados da MP

Bus de Endereos da MD

CPU

Bus de Dados da MD

MEMRIA

DE
DADOS

Bus de Controle

MEMRIA DE PROGRAMA UNIDADES DE E/S

Processadores: CPU, controladores e co-processadores Possuem conjunto de instrues operando sobre instrues e dados organizados em palavras Memrias 2 subsistemas: externa e interna Custo relacionado capacidade de armazenamento e velocidade de operao Sistema de E/S Conversores de representao fsica de dados Lentos Sistema de interconexo Comunicao entre componentes atravs de barramentos e slots sob seu controle Disputa pelo uso de recursos compartilhados.

Registradores mais comuns dentro de um processador:


Acumulador (AC) Contador de programa (PC) Apontador de pilha (SP) Registrador de instruo (IR) Buffer de endereo de memria (MAR) Buffer de dados da memria (MBR) Registradores de uso geral

CPU Unidade operativa (ULA) Unidade de Controle Memria Principal Registradores E/S

Processador tipo LOAD-STORE com 40 bits de palavra.

Memria consiste em mil posies (palavras) constitudas de 40 bits.


Dados e instrues ambos armazenados na memria. Cada instruo possui um cdigo binrio de operao (CodOp). Cada nmero representado por um bit de sinal e um valor de 39 bits. Uma palavra pode conter duas instrues de 20 bits, sendo 8 bits para o CodOp e endereo de 12 bits, que designa uma palavra de memria (0 a 999).

Registradores presentes no IAS:


MAR especifica o endereo na memria da palavra a ser lida ou escrita do MBR; MBR contm uma palavra a ser armazenada na memria ou uma palavra recebida da memria; IR contm o cdigo da operao de 8 bits utilizado; IBR contm a instruo (completa) do lado direito de uma palavra da memria; PC contm o endereo do prximo par de instrues a ser buscado na memria; AC armazena temporariamente o operando da ULA e os 40 bits mais significativos de uma multiplicao; MQ quociente de multiplicao: armazena os 40 bits menos significativos de uma multiplicao.

Incio

Busca da prxima instruo

Execuo da instruo

Parada

Busca:
Busca da instruo Atualiza PC Decodificao

Execuo:
Busca operandos (se necessrio) Executa Armazena resultado (se necessrio)

PC = 12 bits MAR = 12 bits MBR = 40 bits IR = 8 bits IBR = 20 bits AC = 40 bits MQ = 40 bits 1 busca: 1 teste - No 2 teste - Sim

IAS contm 21 instrues, divididas entre os grupos:


Transferncia de dados: entre memria e registradores da ULA ou entre dois registradores da ULA; Desvio incondicional: altera a sequncia de instrues da memria; Desvio condicional: permite dois pontos de deciso; Aritmtica: operaes executadas pela ULA; Alterao de endereo: calcula endereos utilizando a ULA para inseri-los em instrues armazenadas na memria.

Cada processador possui seu prprio conjunto de instrues, embora exista um subconjunto bsico utilizado por todos os processadores de modo geral; Instrues com mesma funo podem ter nomes variados para cada processador (ex: multiplicao pode ser MUL ou MPY);

Os campos das instrues tambm variam de acordo com cada processador (ex: um campo pode representar um endereo ou um operando);
Existem instrues que referenciam 0, 1, 2 ou 3 registradores; Variveis so, na verdade, ponteiros de endereos de memria.

Para converter um programa de alto nvel para baixo nvel, deve-se adotar os seguintes passos:
Escrever o programa de modo mais detalhado possvel na forma de algoritmo (pseudo-cdigo / portugol / portugus estruturado / descrio narrativa / etc) Opcionalmente, vlido escrever o algoritmo na forma de fluxograma, sendo cada etapa do fluxograma representando uma ao do processador ou uma transferncia entre seus registradores (nvel RTL) ou transferncia processador memria necessrio conhecer a arquitetura (parte operativa) do processador que executar o programa, em particular a quantidade de bits e palavras, os registradores do processador e as operaes da ULA

C <= A + B;

Uma simples instruo em alto nvel pode ser convertida em vrias instrues em baixo nvel. Para realizar esta converso, algumas perguntas devem ser respondidas:

Quem so e de onde vm A e B? Onde armazenar C? Quais as entrada da ULA? O processador do tipo LOAD-STORE (memria processador) ou MQUINA COM REGISTRADORES (registrador-registrador ou registrador memria)?

Detalhamento da instruo, considerando um computador LOAD-STORE e uma das entradas da ULA fixa (acumulador):
Ler valor de A da memria; Transferir o valor de A para o acumulador; Ler valor de B da memria; Transferir o valor de B para o segundo registrador de entrada da ULA; Realizar operao de SOMA (ADD) na ULA; Salvar o valor de C (enviar para a memria) ***Algumas destas instrues podem ser agrupadas em instrues nicas, dependendo do conjunto de instrues do processador. (EX: ler o valor de A da memria e transferir para o acumulador realizadas em uma nica instruo)

Utilizando instrues do IAS e definindo posies de memria para as variveis:


A = endereo 500 na memria B = endereo 501 na memria C = endereo 502 na memria

LOAD M(X) - Cdigo 01H ADD M(X) - Cdigo 05H STOR M(X) - Cdigo 21H

LOAD M(500): 00000001000111110100 0000 0001 0001 1111 0100 (011F4) ADD M(501): 00000101000111110101 0000 0101 0001 1111 0101 (051F5) STOR M(502): 00100001000111110110 0010 0001 0001 1111 0110 (211F6)

Endereo 000H

Contedo 011F4051F5H

001H
002H ... 1F4H 1F5H 1F6H

211F600000H
0000000000H Memria 0000000005H 0000000003H 0000000000H (0000000008H)

M(1F6) =M(1F4) + M(1F5) C=5+3

Considerando um computador com 16 bits de palavra:


4 primeiros bits = CodOp 12 bits restantes = endereo

Ex: 1940H
1H = 0001 CodOp 940H = 100101000000 endereo da memria

Registradores utilizados no exemplo:


PC IR AC

Instrues utilizadas no exemplo:


0001 = Carrega AC a partir do end. de memria
Mnemnico LOAD; Execuo AC <- M[X]

0010 = armazena o valor de AC no end. de memria


Mnemnico STORE; Execuo M[X] <- AC

0101 = soma AC com valor do end. de memria


Mnemnico ADD; Execuo AC <- AC + M[X]

End. 300 301 302 ... 940 941

Contedo 1940 5941 2941 ... 0003 0002

Registradores PC = 300 IR = 1940 AC =

Passo 1: Busca da instruo na memria:


Simplificando passos: Ocultando MAR e MBR


PC = 300 IR <- 1940 (M[300])

End. 300 301 302 ... 940 941

Contedo 1940 5941 2941 ... 0003 0002

Registradores PC = 301 IR = 1940 AC =

Passo 2: Decodificao da instruo


Simplificando: supondo cada instruo com 4 bytes


1 byte = CodOp; 2 a 4 bytes = endereo IR =1940H: codop = 0001; endereo = 940 Instruo = LOAD (AC <- M[X]) *** PC = PC + 1

End. 300 301 302 ... 940 941

Contedo 1940 5941 2941 ... 0003 0002

Registradores PC = 301 IR = 1940 AC = 0003

Passo 3: Execuo da instruo LOAD AC <- M[940] Volta ao ciclo de Busca

End. 300 301 302 ... 940 941

Contedo 1940 5941 2941 ... 0003 0002

Registradores PC = 301 IR = 5941 AC = 0003

Passo 4: Busca PC = 301 IR <- 5941 (M[301])

End. 300 301 302 ... 940 941

Contedo 1940 5941 2941 ... 0003 0002

Registradores PC = 302 IR = 5941 AC = 0003

Passo 5: Decodificao IR =5941H: CodOp = 0101; endereo = 941 Instruo = ADD (AC <- AC + M[X]) PC = PC + 1

End. 300 301 302 ... 940 941

Contedo 1940 5941 2941 ... 0003 0002

Registradores PC = 302 IR = 5941 AC = 0005

Passo 6: Execuo AC <- AC + M[X] AC = 0003 + 0002 (M[941]) AC = 0005

End. 300 301 302 ... 940 941

Contedo 1940 5941 2941 ... 0003 0002

Registradores PC = 302 IR = 2941 AC = 0005

Passo 7: Busca PC = 302 IR = 2941 (M[302])

End. 300 301 302 ... 940 941

Contedo 1940 5941 2941 ... 0003 0002

Registradores PC = 303 IR = 2941 AC = 0005

Passo 8: Decodificao IR =2941: CodOp = 0010; endereo = 941 Instruo = STORE (M[X] <- AC) PC = PC + 1

End. 300 301 302 ... 940 941

Contedo 1940 5941 2941 ... 0003 0005

Registradores PC = 303 IR = 2941 AC = 0005

Passo 9: Execuo M[941] <- AC (0005) Segue funcionamento...

Estudar as instrues do IAS e demonstrar a utilizao de cada uma delas com exemplos (trechos de cdigo)
exceto SUB |M(X)|, LOAD M(X), JUMP+M(X,20;39) e STOR M(X, 28:39) LOAD -|M(X)|,

Fazer a execuo detalhada de um programa que realize A x A utilizando o IAS incluir os procedimentos envolvendo MAR e MBR; Elabore um programa em assembly utilizando as instrues do IAS que realize a contagem crescente de um valor de 0 a 10.

Considere um microprocessador hipottico de 32 bits, cujas instrues de 32 bits so compostas de dois campos: o primeiro byte contm o cdigo da operao e os demais contm um operando imediato ou um endereo de operando. A. Qual a capacidade mxima de memria enderevel diretamente (em bytes)? B. Quantos bits so necessrios para o contador de programa (PC) e para o registrador de instruo (IR)? C. Qual o procedimento necessrio para busca de dados e instrues caso a memria no contenha 32 bits de palavra? Como isto poderia ser realizado?

Você também pode gostar