Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS DIGITAIS Diogo Braga da Costa Souza C5_Microprogramacao.indd 12 14/06/2018 17:23:48 Microprogramação Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: Reconhecer a estrutura da unidade de controle microprogramada. Identificar os conceitos de microprogramação. Descrever os passos das instruções na microprogramação. Introdução Máquinas de processamentos digitais são programadas por meio de instruções de hardware, ou seja, a programação determina as conexões dos componentes internos do dispositivo, como acontece nos disposi- tivos lógicos programáveis (PLDs — Programmable Logic Devices). Já a microprogramação determina passos de execução de determinada tarefa sem que haja a necessidade do conhecimento total de todo o circuito de hardware utilizado pelo dispositivo que processa as instruções. Neste capítulo, você vai conhecer a estrutura das unidades micropro- gramadas e os conceitos de microprogramação. Unidades de controle microprogramadas As unidades de controle microprogramadas consistem em dispositivos pro- gramados por meio de instruções que determinam a correta sequência de operação do controlador. Isso diminui a necessidade de um conhecimento muito amplo do hardware para a programação do dispositivo, como acontecia, por exemplo, em dispositivos lógicos programáveis. Essas unidades lógicas possuem o funcionamento geral conforme representado na Figura 1. Esses dispositivos são programados por instruções muito elementares chamadas microinstruções (TAUB, 1984). U N I D A D E 3 C5_Microprogramacao.indd 1 14/06/2018 17:23:43 A IBM implementou a primeira unidade de controle microprogramada no computador IBM 360, em 1964. Nesse caso, era utilizada uma memória de controle rápido e barato. Figura 1. Funcionamento geral de uma unidade de controle microprogramada. Fonte: Adaptada de Rodrigues Neto (2009). Como você pode ver na Figura 1, uma unidade de controle microprogra- mada possui suas instruções armazenadas em um registrador que orienta a sequência correta de operação do controlador. Essas instruções são inseridas na unidade de controle e executadas de acordo com o ritmo determinado pelo dispositivo capaz de realizar a lógica sequencial. A memória do dispositivo Microprogramação2 C5_Microprogramacao.indd 2 14/06/2018 17:23:44 tem um papel essencial no funcionamento: nela são armazenadas todas as informações necessárias para que as operações não percam a sequência nem o sincronismo (TAUB, 1984). Levando em consideração uma análise geral, as unidades de controle microprogramadas são formadas por: memória de controle sequência — armazena as instruções; sequenciador — garante a sequência de operação conforme o micro- programa de instruções, além de ser o elemento que informa o local da próxima instrução a ser executada e guarda essa instrução no contador de programa; contador de programa — é o registrador que armazena a posição da próxima instrução a ser executada. Observe a Figura 2, a seguir. Figura 2. Estrutura de conexão entre a unidade de controle e a unidade lógica aritmética. Fonte: Adaptada de Brito ([200-?]). 3Microprogramação C5_Microprogramacao.indd 3 14/06/2018 17:23:44 Na Figura 2, você pode notar a interação da unidade de controle com o elemento de processamento ULA (Unidade Lógica e Aritmética). Os comandos a serem processados são enviados pela unidade de controle ao registrador, e os dados a serem aplicados às operações são acessados da memória auxiliar da ULA, conforme instrução de endereço dos dados enviada. A ULA utiliza oito registradores para estabelecer o pleno funcionamento. Também utiliza dois barramentos que ligam os registradores a ela, como você pode ver na Figura 3 (TAUB, 1984). Figura 3. Tráfego de informações na microarquitetura. Fonte: Nível... [(201-?)]. A seguir, você pode ver o significado de cada uma das siglas da Figura 3. CP: Contador de Programa. AC: Acumulador, que recebe toda a resposta de operação. PP: Ponteiro de Pilha. RI: Registrador de Instrução. Microprogramação4 C5_Microprogramacao.indd 4 14/06/2018 17:23:44 RT: Registrador de armazenamento Temporário, utilizado para arma- zenamento de dados temporários, como dados de decodificação de códigos de instruções. MASC: Máscara que possui a finalidade de extrair o operador de instrução. REM: Registrador de Endereço da Memória, que permite endereçar memória principal. RDM: Registrador de Dados da Memória, que armazena dados em transferências de e para a memória principal. Latches A e B: são os dois registradores que comunicam os outros oito à ULA, conectando-os por meio de dois barramentos A e B. Atualmente existem linguagens de programação, denominadas de alto nível, em que instruções simples realizam diversas instruções de microprogramação, facilitando significativamente a elaboração de programas para aplicação em microcontroladores e processadores. Alguns tipos de linguagens de alto nível são: C/C++, Pascal, Java, entre outras. Conceitos de microprogramação Um microprograma é realizado por meio das operações de transferência entre os registradores. Nessa transferência, são enviadas as instruções que serão inseridas em uma unidade de controle para que ela realize a operação conforme solicitado. É utilizada uma representação simbólica das instruções a serem realizadas, sendo necessária a conversão dessa simbologia em um código binário para que o controlador “entenda” o código solicitado. A necessidade de uma simbologia de programação ocorre devido à difi culdade de programar um controlador por instruções binárias. A utilização do mi- croprograma facilita a elaboração e a programação do elemento processador (STALLINGS, 2017). Alguns termos são recorrentes na elaboração de microprogramas, como você pode ver a seguir. 5Microprogramação C5_Microprogramacao.indd 5 14/06/2018 17:23:44 Microinstrução — é a informação gravada na memória ROM do ele- mento processador, que contém a micro-operação a ser executada pela unidade de controle. Micro-operação — é o sinal digital de informação da operação atual a ser realizada pelo elemento processador. Microprograma — é o conjunto de microinstruções para a realização do controle. Microrrotina — é o conjunto de microinstruções que realizam funções específicas no microprograma. Para aprender mais sobre a arquitetura dos controladores e dos computadores, leia os capítulos 8 e 9 do livro Circuitos Digitais e Microprocessadores (TAUB, 1984). Instruções de microprogramação Considere as instruções de uma máquina de 16 instruções de 4 bits cada. As funções serão indicadas à ULA para que ela as execute em relação aos dados contidos em seus registradores de dados. Instruções de transferência de dados: LOAD X — carrega os dados no registrador; STOR X — carrega e armazena direto no registrador; LOCO X — carrega o valor de uma constante no registrador. Instruções aritméticas: ADDD X — adiciona ao valor presente no registrador; SUBD X — subtrai do valor presente no registrador; ADDL X — adiciona o valor de uma memória ao valor presente no registrador; SUBL X — subtrai o valor de uma memória do valor presente no registrador. Microprogramação6 C5_Microprogramacao.indd 6 14/06/2018 17:23:45 Instruções de desvio: JUMP X — desvia para outro passo de operação que não seja o próximo; JZER X — desvia para outro passo de operação que não seja o próximo se a análise da variável for igual a zero; JNEG X — desvia para outro passo de operação que não seja o próximo se a análise da variável for negativa. Instruções de procedimentos: CALL X — chama procedimento para execução; RETN — retorna do procedimento para o próximo passo de operação. Instruções de pilha: PUSH — empilha; POP — desempilha. Você pode observar os códigos binários referentes às operações na Figura 4. Figura4. Conjunto de instruções. Fonte: Nível... [(201-?)]. 7Microprogramação C5_Microprogramacao.indd 7 14/06/2018 17:23:45 Como exemplo de aplicação, considere a Figura 5. Ela contém um micro- programa com as instruções de operação da ULA e seus devidos comentários. Utilizando as instruções, nota-se uma sequência de operação em que condições são estabelecidas para que a execução da próxima linha seja optada ou não, lembrando que a ULA é capaz de executar somente funções aritméticas simples e funções lógicas digitais (STALLINGS, 2017). Figura 5. Exemplo de microprograma. Fonte: Nível... [(201-?)]. Microprogramação8 C5_Microprogramacao.indd 8 14/06/2018 17:23:45 Para mais exemplos de linguagens aplicadas à programação de microcontroladores, leia Microcontroladores PIC18 com Linguagem C (ZANCO, 2013). 1. Em relação às unidades de controle microprogramadas, assinale a alternativa correta. a) São unidades de processamento do controlador, sendo que executam somente as operações lógicas. b) São unidades de processamento do controlador, sendo que executam as operações lógicas e aritméticas. c) São elas que determinam a unidade lógica aritmética e a sequência de operação a ser executada, de acordo com a sequência do microprograma realizado. d) São elas que armazenam todos os dados de processamento de forma dinâmica, sendo consideradas também um tipo de memória volátil. e) São unidades de processamento do controlador, sendo que executam somente as operações aritméticas. 2. Assinale a alternativa correta a respeito dos registradores utilizados pela ULA para seu processamento. a) O registrador AC recebe a resposta de todos os cálculos executados. b) O registrador RI endereça a memória principal. c) O registrador MASC extrai os dados de instrução para a leitura da ULA. d) O registrador CP aponta a posição da pilha de memória. e) No registrador REM, fica armazenada a informação da proxima instrução a ser executada. 3. Levando em consideração as subfunções da unidade de controle microprogramada, há a memória de controle, o sequenciador e o contador de programa. Assinale a alternativa correta a respeito deles. a) A memória de controle indica a próxima instrução a ser executada, o sequenciador armazena os dados das instruções do microprograma descarregado e o contador de programa informa a posição em que se encontra a instrução a ser executada. 9Microprogramação C5_Microprogramacao.indd 9 14/06/2018 17:23:47 b) A memória de controle indica a próxima instrução a ser executada, o sequenciador informa a posição em que se encontra a instrução a ser executada e o contador de programa armazena os dados das instruções do microprograma descarregado. c) A memória de controle informa a posição em que se encontra a instrução a ser executada, o sequenciador indica a próxima instrução a ser executada e o contador de programa armazena os dados das instruções do microprograma descarregado. d) A memória de controle armazena os dados das instruções do microprograma descarregado, o sequenciador indica a próxima instrução a ser executada e o contador de programa informa a posição em que se encontra a instrução a ser executada. e) A memória de controle armazena os dados das instruções do microprograma descarregado, o sequenciador informa a posição em que se encontra a instrução a ser executada e o contador de programa indica a próxima instrução a ser executada. 4. Em relação aos conceitos da microprogramação, marque a alternativa correta. a) Microinstrução consiste em um conjunto de micro-operações que realizam uma função específica de processamento. b) Micro-operação consiste em uma microinstrução decodificada em um sinal digital de forma a ser executada. c) A micro-operação é uma forma sinmbólica de representação de uma microinstrução. d) Um microprograma consiste em um conjunto de microrrotinas. e) Microrrotina consiste no conjunto de microinstuções, não executando funções específicas no processador. 5. Para a implementação de uma soma consecutiva em um microprograma, se deve utilizar a função: a) ADDD b) LOCO c) RETN d) CALL e) SUBD Microprogramação10 C5_Microprogramacao.indd 10 14/06/2018 17:23:48 BRITO, A. V. Estrutura de uma CPU. [200-?]. Disponível em: <http://producao.virtual. ufpb.br/books/edusantana/old-arq/livro/livro.chunked/index.html>. Acesso em: 13 jun. 2018. NÍVEL de microprogramação. In: ARQUITETURA de computadores. [201-?]. Disponível em: <https://www.dca.ufrn.br/~pablo/FTP/arq_de_comp/apostilha/capitulo5.pdf>. Acesso em: 12 jun. 2018. RODRIGUES NETO, C. William Stallings organização de computadores digitais. 2009. Disponível em: <http://www.each.usp.br/camiloneto/ocd/2009ocd_cp_15%20Con- trole%20microprogramado.pdf>. Acesso em: 12 jun. 2018. STALLINGS, W. Arquitetura e organização de computadores. 10. ed. São Paulo: Pearson, 2017. TAUB, H. Circuitos digitais e microprocessadores. São Paulo: Makron Books do Brasil, 1984. Leituras recomendadas FLOYD, T. Sistemas digitais: fundamentos e aplicações. 9. ed. Porto Alegre: Bookman, 2007. TOCCI, R. J.; WIDMER, N. S.; MOSS, G. L. Sistemas digitais: princípios e aplicações. 11. ed. São Paulo: Pearson Prentice Hall, 2011. TOKHEIM, R. Fundamentos de eletrônica digital: sistemas sequenciais. Porto Alegre: McGraw-Hill, 2013. v. 2. VAHID, F. Sistemas digitais: projeto, otimização e hdls. Porto Alegre: Bookman, 2008. ZANCO, W. S. Microcontroladores PIC18 com Linguagem C. São Paulo: Érica, 2013. 11Microprogramação C5_Microprogramacao.indd 11 14/06/2018 17:23:48 http://producao.virtual/ http://ufpb.br/books/edusantana/old-arq/livro/livro.chunked/index.html https://www.dca.ufrn.br/~pablo/FTP/arq_de_comp/apostilha/capitulo5.pdf http://www.each.usp.br/camiloneto/ocd/2009ocd_cp_15%20Con- Encerra aqui o trecho do livro disponibilizado para esta Unidade de Aprendizagem. Na Biblioteca Virtual da Instituição, você encontra a obra na íntegra. Conteúdo:
Compartilhar