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