g6 trabalho microprocessadores microprogramada
TRANSCRIPT
UNIVERSIDADE FEDERAL DO ACRE
CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS – CCET
CURSO DE BACHARELADO EM ENGENHARIA ELÉTRICA
ALEXANDRE NAGAO GONÇALVES
WANDERLEY ARAÙJO DE CASTRO JÙNIOR
Unidade de Controle Microprogramada
Rio Branco – AC
Abril de 2013
ALEXANDRE NAGAO GONÇALVES
WANDERLEY ARAÙJO DE CASTRO JÙNIOR
Unidade de Controle Microprogramada
Trabalho apresentado a
Professora Dra. Ana Beatriz
Alvarez, da disciplina Eletrônica I
(CCET) do Quarto período do
Curso de Bacharelado em
Engenharia Elétrica da
Universidade Federal do Acre,
com vistas à obtenção da nota
N2.
Orientador: Prof. Dra. Ana Beatriz Alvarez
Rio Branco – AC
Abril de 2013
FICHA CATALOGRÁFICA
Apresentação do seminário sobre Unidade de Controle Microprogramada. Alexandre Nagao Gonçalves, Wanderley Araujo De Castro Junior - 2013.
Orientador: Prof. Dra. Ana Beatriz Alvarez
Trabalho para a composição da nota N2 –
Universidade Federal do Acre, Curso de Engenharia Elétrica.
2013
Unidades de Controle Microprogramada
Formato das microinstruções
Microssequenciador
Decodificador de instruções
Microprogramação
RESUMO
A fronteira entre hardware e software não sempre é bem definida e muda constantemente. Máquinas mais antigas tinham as instruções aritméticas e booleanas diretamente implementadas em hardware. Máquinas mais modernas, muitas vezes, têm suas instruções do nível convencional realizadas passo a passo por um interpretador executando um microprograma. Exemplos de máquinas microprogramadas incluem as famílias Intel e Motorola. Uma classe de máquinas modernas, chamadas RISC, entretanto, não são microprogramadas e será objeto de estudo mais adiante. Aqui vamos descrever o mecanismo de microprogramação. O hardware da Unidade de Controle microprogramada é responsável por buscar, uma a uma, cada micro instrução do microprograma na memória de controle e armazená-las em um registrador apropriado (Registrador de Microinstrução – MIR). Os sinais de controle da CPU codificados na microinstrução armazenada no MIR são decodificados pelo hardware da Unidade de Controle microprogramada, esta também é responsável pela execução da microinstrução, ou seja, a aplicação dos sinais de controle no caminho de dados da CPU, de acordo com uma temporização adequada e deve prover um meio de sequenciamento das microinstruções.
Palavras chave
Micro programa; Micro instrução; Decodificador
SUMÁRIO
Pág.
1 Objetivos 2
2 Introdução 3
3 Unidade de Controle Micropragramada 4
3.1 Formato das microinstruções 5
3.2 Microssequenciador 7
3.3 Decodificador de instruções 8
3.4 Microprogramação 9
3.4.1 Micro programação Horizontal x Micro programação
Vertical
9
3.4.2 Sequenciador 10
4 Conclusão 11
5 Bibliografia 12
1. Objetivos
Procurar explicar o que é unidade de controle micro programada e
analisar a fronteira entre hardware e software não sempre é bem definida e
muda constantemente. Máquinas mais antigas tinham as instruções aritméticas
e booleanas diretamente implementadas em hardware. Máquinas mais
modernas, muitas vezes, tem suas instruções do nível convencional realizadas
passo a passo por um interpretador executando um microprograma. Exemplos
de máquinas microprogramadas incluem as famílias Intel e Motorola. Uma
classe de máquinas modernas, chamadas RISC, entretanto, não são
microprogramadas e serão objeto de estudo mais adiante. Aqui vamos
descrever o mecanismo de microprogramação.
2 Introdução
A unidade de controle micro programada é utilizada para se desenvolver a
implementação de complexas instruções que não podem ser implementadas
em forma de hardware e teve como seu inventor o inglês Maurice Wilkes em
1953. Sua ideia era criar uma unidade de controle mais fácil de projetar e mais
flexível. A utilização da unidade de controle micro programada tem algumas
vantagens, pois, um computador base, que use a micro programação pode
emular outro computador, bem como uma instrução pode ser desenvolvida e
ser utilizada em diferentes modelos de hardware e paralelamente.
A IBM reconheceu a importância da unidade de controle micro-
programada e implementou no computador IBM 360 em abril de 1964. Todos
os modelos desta família de computadores contavam com uma memória de
controle rápida e barata, a qual estava micro programada. Isto se tornou um
grande sucesso na família IBM e desde então a microprogramação ficou
popular em todo o mundo.
3 Unidade de Controle Microprogramada
Tal como qualquer sistema de grande complexidade as CPUs modernas
são formadas por um conjunto de subsistemas especializados em realizar
operações específicas. Temos por exemplo o registrador PC, responsável por
armazenar o endereço da próxima instrução a ser executada, a ULA,
responsável por realizar as operações lógicas e aritméticas, muxes, arquivos
de registradores, etc.
Todos esses circuitos são como máquinas em uma usina de
processamento de dados. Dados brutos são fornecidos a estas máquinas e
elas após alguns instantes de tempo fornecem na sua saída o produto do seu
trabalho que é uma resposta àquele estímulo de entrada.
Individualmente uma máquina em uma fábrica realiza apenas uma pequena
parte do trabalho. Da mesma forma ocorre com os componentes da CPU.
Individualmente eles realizam operações relativamente “simples”.
O que faz com que as CPUs consigam realizar operações complexas é
um circuito cuja função é controlar a ordem em que as operações são
executadas, este circuito é muito adequadamente chamado de Unidade de
Controle. Dado que a unidade de controle controla a operação de todos os
outros módulos da CPU alguns autores consideram-na a parte mais importante
da CPU.
Unidade deControle
MicroprocessadorBus interno
Registradorde Instrução
Registros deUso Geral
ALU
Decodificadorde Instrução
Bus de dados
Bus de endereço
Bus de controle
FPU
CacheInterna (L1)
Arquitetura básica de um microprocessador com FPU e cache interna
O projeto da unidade de controle pode ser feito de duas formas diferentes.
A primeira é utilizando microprogramação. Nesta abordagem cada instrução
assembler da arquitetura é ela própria um microprograma. A unidade de
controle microprogramada tem em seu interior um circuito decodificador. Este
circuito decodifica as instruções assembler e utiliza as mesmas como um índice
para o microprograma interno da unidade de controle. Este microprograma é
quem aciona as linhas de controle que estão ligadas nos circuitos. O outro
projeto é da chamada Unidade de Controle Hardwire. Nesta abordagem o
funcionamento da unidade de controle é caracterizada por uma máquina de
estados finitos. O funcionamento desta máquina de estados é ditada pela
instrução assembler que a CPU está executando. Nesta abordagem, para cada
estado da máquina de estados da unidade de controle um conjunto de linhas
de controle ligadas aos circuitos da CPU são habilitados ou desabilitados de
uma forma ordenada.
Projetar uma unidade de controle microprogramada é mais fácil do que
uma hardwire porque o projetista escreve um microprograma para cada
instrução assembler. Por outro lado a hardwire é mais eficiente do que a
microprogramada por não ter instruções intermediárias, porém são bem mais
difíceis de projetar. No artigo Translating a Microprogram to Hardwire Control
este problema é atacado por meio de um método de conversão de um projeto
de unidade de controle microprogramada para uma hardware.
3.1 Formato das microinstruções
É uma palavra da memória de controle. Cada microinstrução especifica
de algum modo os sinais de controle e a próxima microinstrução a ser
executada, o controle micro programado é mais lento que o hardwired, mas
bastante mais flexível e com uma implementação estruturada.
O microprograma é uma representação simbólica do controle, que
deverá ser traduzida por um programa para uma lógica de controle. O
formato da microinstruções deve ser escolhido de modo a simplificar a
representação, tornando o microprograma mais fácil de entender e de se
escrever. Podemos distinguir que uma microinstruções é inconsistente
sempre que um certo sinal de controle tenha que receber dois valores
diferentes.
Para evitar um formato que permita microinstruções inconsistentes,
podemos fazer com que cada campo da microinstruções seja responsável
por especificar um conjunto de sinais de controle que não se sobreponham.
Um exemplo seria: Os primeiros seis campos da microinstruções controlam
o caminho de dados, enquanto o campo de “sequenciamento” especifica
como selecionar a próxima microinstruções.
As microinstruções são geralmente colocadas em uma ROM ou em uma
PLA e são utilizadas para implementar o controle, como vemos no quadro
abaixo:
Podemos atribuir os endereços às microinstruções, os endereços
costumam ser dados em sequência. Existem disponíveis três métodos para a
escolha da próxima microinstrução:
Incrementar o endereço da microinstrução corrente, para assim
obtermos o endereço da próxima.
Desviar para a microinstrução que começa a execução da próxima
instrução. Colocamos um indicador no campo de sequenciamento
para indicar qual a próxima instrução
Escolher a próxima microinstrução com base na entrada da
unidade de controle. Esta escolha também é chamada de
“despacho”. Na maioria das vezes as operações de despacho são
implementadas a partir da criação de uma tabela que contenha os
endereços das microinstruções alvo. Podemos implementar estas
tabela em uma Rom ou em uma PLA.
3.2 Microssequenciador
É um circuito responsável por informar a localização da próxima
microinstrução que será executada a partir da microinstrução atual, o indicador
de condição e o código da operação do registro de instruções.
Ele é encarregado de direcionar a memória do microprograma baseando-
se no contador de microprograma. O Contador de microprograma é um registro
que se incrementa com um relógio interno, mas que depende dos registros de
estado e instrução e de alguns bits do registro da micro palavra. Em algumas
situações determinadas toma valores preestabelecidos (RESET, INTERRUPT,
HOLD, etc.)
3.3 Decodificador de instruções
Tem a função de identificar as operações a serem realizadas, que estão
correlacionadas à instrução em execução.
RDM – Registrador de Dados da Memória
REM – Registrador de Endereço da Memória.
Comunicação e transferências de informações entre a UCP e a MP.
Cada instrução que e enviada para a Unidade Central de Processamento
é representada por um código (um conjunto de bits que representam a
instrução. Isto será visto mais adiante, em Instruções de Maquina). A Unidade
de Controle deve identificar a instrução que foi enviada a Central de
Processamento em forma de código (decodificar ou interpretar a instrução) e
acionar os dispositivos que executarão a instrução. A função do Decodificador
de Instrução e decodificar a instrução. Ele possui uma entrada, através da qual
se comunica com o Registrador de Instrução para receber a instrução que deve
ser decodificada, e varias saídas (um Decodificador de Instrução possui 2N
saídas, onde N e o numero de algarismos binários do valor de entrada), através
das quais ele informa a Unidade de Controle a operação correspondente
aquela instrução. A figura a seguir mostra um exemplo de Decodificador de
Instrução com entrada de 4 bits e 16 saídas. O decodificador de instrução
recebe o código da instrução na sua entrada e interpreta esse código de
acordo com a configuração que lhe foi programada pelo projetista do
processador. O resultado dessa interpretação e a ativação de uma das saídas
que vai para a Unidade de Controle informando a ela a operação. Cada linha
de saída aciona de modo diferente a Unidade de Controle e esta, por sua vez,
emite sinais de controle por diferentes caminhos, conforme a linha de saída
decodificada.
* Imagem retirada do livro Introdução à Organização de Computadores, Monteiro,
Mário A.
3.4 Micro programação
O nível de microprogramação funciona como interface entre compilador e
o interpretador. Deve interpretar eficientemente as macroinstruções,
explorando as vantagens oferecidas pelo hardware.
3.4.1 - Micro programação Horizontal x Micro programação Vertical:
Características da Micro programação Horizontal:
Sinais de controle da CPU explícitos nos campos da micro instrução,
possui um conjunto pequeno de micro instruções “largas”; ocupa mais memória
de controle; ocupa mais área do chip. Custo maior; precisa pouco ou nenhum
hardware de decodificação; são micro instruções mais versáteis, conseguem
fazer mais operações em paralelo; Em média, utiliza menos micro instruções
para interpretar uma macro instrução; os micro programas são mais curto,
implicando em um melhor desempenho.
Características da Micro programação Vertical:
Uso generalizado de codificação dos sinais de controle da CPU nos
campos da micro instrução; utilizam um conjunto grande de micro instruções
“estreitas”; ocupa menos memória de controle (micro programa mais comprido,
mas com microinstruções bem mais estreitas do que na micro programação
horizontal); Ocupa menos área do chip. Custo menor; Precisa de hardware
adicional para decodificação da micro instrução; Micro instruções primitivas
menos versáteis, não exploram paralelismo de operações no caminho de
dados; Em média, utiliza mais micro instruções para interpretar uma macro
instrução; Micro programa mais longo, implica em desempenho menor.
3.4.2 Seqüenciador
É um circuito responsável por informar a localização da próxima
microinstrução que será executada a partir da microinstrução atual, o indicador
de condição e o código da operação do registro de instruções.
Ele é encarregado de direcionar a memória do microprograma baseando-
se no contador de microprograma. O Contador de microprograma é um registro
que se incrementa com um relógio interno, mas que depende dos registros de
estado e instrução e de alguns bits do registro da micro palavra. Em algumas
situações determinadas toma valores preestabelecidos (RESET, INTERRUPT,
HOLD, etc.)
4 Conclusão
Concluímos que a unidade de controle micro programada possui função
primordial para um bom desempenho de maquina modernas pois possibilitam
uma quantidade de processamento em paralela que não seria impossível ser
implementado em modo hardware pois esta é utilizada para se desenvolver a
implementação de complexas instruções. A utilização da unidade de controle
micro programada tem algumas vantagens, pois, um computador base, que
use a micro programação pode emular outro computador, bem como uma
instrução pode ser desenvolvida e ser utilizada em diferentes modelos de
hardware e paralelamente.
5 Bibliografia
Monteiro, Mário A. Introdução à Organização de Computadores, 4ª edição.
Editora LTC.
Introdução aos Sistemas Digitais e Microprocessadores , G. Arroz, J. Monteiro,
A. Oliveira, 2003, (Capítulo 11, 12, 14).
http://www.hamer.com.br/arq/figuras.htm
https://sites.google.com/site/unicontrolmicro/
http://www.dca.ufrn.br/~pablo/FTP/arq_de_comp/apostilha/capitulo5.pdf
http://www2.ufersa.edu.br/portal/view/uploads/setores/110/arquivos/Arquitetura
%20de%20Computadores/ControleMicroprogramado.pdf