Baixe o app para aproveitar ainda mais
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
Compartilhar