Buscar

Banco de Registradores do MIC-1

Prévia do material em texto

Laborato´rio de Sistemas, Processadores e Perife´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 Introduc¸a˜o Teo´rica
Os registradores correspondem a`s unidades internas de armazenamento de dados da CPU, atrave´s
dos quais e´ realizada a carga de dados de/para a memo´ria externa bem como as operac¸o˜es lo´gicas e
aritme´ticas sobre estes dados.
Nas CPUs comerciais de mercado, usualmente parte destes registradores internos e´ dedicada a
func¸o˜es espec´ıficas e parte a func¸o˜es gerais. No MIC-1, existem apenas registradores com func¸o˜es
espec´ıficas, como pode ser visto na figura 1, adaptada do livro-texto.
Todos os registradores sa˜o de 32 bits, exceto o MBR (Memory Byte Register) que e´ de 8 bits. As
principais operac¸o˜es envolvendo os registradores referem-se a` leitura do valor de sa´ıda da ULA, escrita
de um valor nas entradas da ULA, e acesso a` memo´ria externa, descritas a seguir.
1.1 Escrita do valor de sa´ıda da ULA nos registradores
1. Todos os registradores, com excec¸a˜o do MBR, podem receber o conteu´do da sa´ıda da ULA, de
forma independente entre si. A selec¸a˜o dos registradores que recebera˜o esta sa´ıda e´ feita atrave´s
de 9 sinais individuais de controle, representados na figura 1 pelo s´ımbolo ←. A identificac¸a˜o
destes sinais esta´ contida na figura 4-5 do livro-texto.
2. Devido ao atraso intr´ınseco da ULA na execuc¸a˜o de qualquer operac¸a˜o lo´gica ou aritme´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 (na˜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 Lo´gica e Aritme´tica (ULA) vem exclusivamente do registrador
H, ao passo que o segundo operando pode vir de qualquer outro registrador com excec¸a˜o dos
registradores H e MAR (Memory Addressing Register).
2. Diferentemente da escrita da sa´ıda da ULA nos registradores, a leitura do conteu´do dos re-
gistradores na entrada (barramento) B da ULA so´ pode ser executada de modo exclusivo, ou
seja, somente um registrador pode enviar dados nesta entrada num dado momento. Como sa˜o
8 registradores, a selec¸a˜o de escrita (representada na figura 1 pela seta com ponta na˜o cheia)
pode ser feita empregando-se apenas 4 bits de controle, cujas poss´ıveis combinac¸o˜es esta˜o apre-
sentadas na figura 4-5 do livro-texto. A escrita pode ser feita a qualquer tempo e na˜o depende
de sincronismo de clock.
3. No caso particular do MBR, a leitura de seu conteu´do na entrada B da ULA pode ser feita
de duas formas poss´ıveis: tratando seu conteu´do como um valor nume´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
conteu´do original de 8 bits deve ser estendido a 32 bits para a escrita na ULA.
1.3 Acesso a` memo´ria externa
1. Os registradores MAR (Memory Addressing Register), MDR (Memory Data Register), PC (Pro-
gram Counter) e MBR (Memory Byte Register) sa˜o responsa´veis pelo acesso a` memo´ria externa
de programa e de dados (ale´m destes serem utilizados para escrita/leitura de dados na/da ULA),
raza˜o pela qual tambe´m esta˜o interligados aos barramentos de enderec¸os e dados da mesma.
2. O MDR, desta forma, pode aceitar dados tanto da memo´ria externa quanto da sa´ıda da ULA.
A indicac¸a˜o que a origem do dado e´ a memo´ria externa e´ feita atrave´s de um sinal de controle
espec´ıfico. Ja´ o MBR recebe instruc¸o˜es/dados da memo´ria de programa tambe´m atrave´s de um
sinal de selec¸a˜o pro´prio. Estes dois sinais de controle, designados coletivamente de CTR MEM,
esta˜o designados na figura 1 pelo t´ıtulo ”Controle de Memo´ria”.
2 PARTE EXPERIMENTAL
A parte experimental consiste na elaborac¸a˜o e compilac¸a˜o de uma entidade correspondente ao banco
de registradores. Esta entidade corresponde ao conteu´do da caixa tracejada em vermelho existente na
figura 1. A simulac¸a˜o na˜o sera´ poss´ıvel, pois o nu´mero de pinos de E/S desta entidade ira´ superar
o ma´ximo suportado pela famı´lia FLEX10K da Altera. Esta limitac¸a˜o, contudo, sera´ removida na
pro´xima etapa do MIC-1 (Via de Dados).
A entidade resultante devera´ ter os sinais de E/S descritos na figura 2
Com relac¸a˜o a` arquitetura da entidade correspondente ao banco de registradores, sugere-se a
criac¸a˜o de um processo referente a` escrita do barramento C (sa´ıda da ULA) nos registradores, e outro
2
Figura 2: Entidade Banco de registradores.
referente a` leitura dos registradores para o barramento B. Lembre-se que, no processo de leitura, o
MDR devera´ ter tratamento especial, ja´ que a origem de seus dados pode ser tanto a memo´ria externa
quanto a sa´ıda da ULA. O pino de sa´ıda MBR UC deve conter, sempre, o valor do conteu´do do
registrador MBR (8 bits sem extensa˜o de sinal). Este sinal sera´ utilizado pela unidade de controle a
ser desenvolvida posteriormente.
3

Continue navegando