Escolar Documentos
Profissional Documentos
Cultura Documentos
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
UNIDADES DE E/S
Bus de Endereos da MD
CPU
Bus de Dados da MD
MEMRIA
DE
DADOS
Bus de Controle
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.
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
Incio
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
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)
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)
Ex: 1940H
1H = 0001 CodOp 940H = 100101000000 endereo da memria
Passo 5: Decodificao IR =5941H: CodOp = 0101; endereo = 941 Instruo = ADD (AC <- AC + M[X]) PC = PC + 1
Passo 8: Decodificao IR =2941: CodOp = 0010; endereo = 941 Instruo = STORE (M[X] <- AC) PC = PC + 1
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?