Laboratório de Sistemas, Processadores e Periféricos (SPP)
MIC-1: Banco de Registradores
Prof. Luiz T. S. Mendes, Prof. Gustavo G. Parma
Objetivos: Implementar e simular o banco de registrores do MIC-1
1
Introdução Teórica
Os registradores correspondem às unidades internas de armazenamento de dados da CPU, através
dos quais é realizada a carga de dados de/para a memória externa bem como as operações lógicas e
aritméticas sobre estes dados.
Nas CPUs comerciais de mercado, usualmente parte destes registradores internos é dedicada a
funções especı́ficas e parte a funções gerais. No MIC-1, existem apenas registradores com funções
especı́ficas, como pode ser visto na figura 1, adaptada do livro-texto.
Todos os registradores são de 32 bits, exceto o MBR (Memory Byte Register) que é de 8 bits. As
principais operações envolvendo os registradores referem-se à leitura do valor de saı́da da ULA, escrita
de um valor nas entradas da ULA, e acesso à memória externa, descritas a seguir.
1.1
Escrita do valor de saı́da da ULA nos registradores
1. Todos os registradores, com exceção do MBR, podem receber o conteúdo da saı́da da ULA, de
forma independente entre si. A seleção dos registradores que receberão esta saı́da é feita através
de 9 sinais individuais de controle, representados na figura 1 pelo sı́mbolo ←. A identificação
destes sinais está contida na figura 4-5 do livro-texto.
2. Devido ao atraso intrı́nseco da ULA na execução de qualquer operação lógica ou aritmética,
a leitura da saı́da da mesma para o(s) registrador(es) selecionado(s) deve necessariamente ser
sincronizada com um pulso de clock. Naturalmente, o pulso de clock (não representado na figura
1) deve ter a largura mı́nima correspondente ao maior atraso possı́vel da ULA.
1.2
Leitura do valor de um registrador para a ULA
1. Um dos operandos para a Unidade Lógica e Aritmética (ULA) vem exclusivamente do registrador
H, ao passo que o segundo operando pode vir de qualquer outro registrador com exceção dos
registradores H e MAR (Memory Addressing Register).
2. Diferentemente da escrita da saı́da da ULA nos registradores, a leitura do conteúdo dos registradores na entrada (barramento) B da ULA só pode ser executada de modo exclusivo, ou
seja, somente um registrador pode enviar dados nesta entrada num dado momento. Como são
8 registradores, a seleção de escrita (representada na figura 1 pela seta com ponta não cheia)
pode ser feita empregando-se apenas 4 bits de controle, cujas possı́veis combinações estão apresentadas na figura 4-5 do livro-texto. A escrita pode ser feita a qualquer tempo e não depende
de sincronismo de clock.
3. No caso particular do MBR, a leitura de seu conteúdo na entrada B da ULA pode ser feita
de duas formas possı́veis: tratando seu conteúdo como um valor numérico com sinal (indicado
Figura 1: Banco de registradores.
pela linha de controle MBR) ou sem sinal (linha de controle MBRU). Em ambos os casos, seu
conteúdo original de 8 bits deve ser estendido a 32 bits para a escrita na ULA.
1.3
Acesso à memória externa
1. Os registradores MAR (Memory Addressing Register), MDR (Memory Data Register), PC (Program Counter) e MBR (Memory Byte Register) são responsáveis pelo acesso à memória externa
de programa e de dados (além destes serem utilizados para escrita/leitura de dados na/da ULA),
razão pela qual também estão interligados aos barramentos de endereços e dados da mesma.
2. O MDR, desta forma, pode aceitar dados tanto da memória externa quanto da saı́da da ULA.
A indicação que a origem do dado é a memória externa é feita através de um sinal de controle
especı́fico. Já o MBR recebe instruções/dados da memória de programa também através de um
sinal de seleção próprio. Estes dois sinais de controle, designados coletivamente de CTR MEM,
estão designados na figura 1 pelo tı́tulo ”Controle de Memória”.
2
PARTE EXPERIMENTAL
A parte experimental consiste na elaboração e compilação de uma entidade correspondente ao banco
de registradores. Esta entidade corresponde ao conteúdo da caixa tracejada em vermelho existente na
figura 1. A simulação não será possı́vel, pois o número de pinos de E/S desta entidade irá superar
o máximo suportado pela famı́lia FLEX10K da Altera. Esta limitação, contudo, será removida na
próxima etapa do MIC-1 (Via de Dados).
A entidade resultante deverá ter os sinais de E/S descritos na figura 2
Com relação à arquitetura da entidade correspondente ao banco de registradores, sugere-se a
criação de um processo referente à escrita do barramento C (saı́da da ULA) nos registradores, e outro
2
Figura 2: Entidade Banco de registradores.
referente à leitura dos registradores para o barramento B. Lembre-se que, no processo de leitura, o
MDR deverá ter tratamento especial, já que a origem de seus dados pode ser tanto a memória externa
quanto a saı́da da ULA. O pino de saı́da MBR UC deve conter, sempre, o valor do conteúdo do
registrador MBR (8 bits sem extensão de sinal). Este sinal será utilizado pela unidade de controle a
ser desenvolvida posteriormente.
3
Download

Prática 5