16
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

G6 Trabalho Microprocessadores Microprogramada

Embed Size (px)

Citation preview

Page 1: G6 Trabalho Microprocessadores Microprogramada

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

Page 2: G6 Trabalho Microprocessadores Microprogramada

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

Page 3: G6 Trabalho Microprocessadores Microprogramada

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

Page 4: G6 Trabalho Microprocessadores Microprogramada

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

Page 5: G6 Trabalho Microprocessadores Microprogramada

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

Page 6: G6 Trabalho Microprocessadores Microprogramada

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.

Page 7: G6 Trabalho Microprocessadores Microprogramada

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.

Page 8: G6 Trabalho Microprocessadores Microprogramada

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

Page 9: G6 Trabalho Microprocessadores Microprogramada

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

Page 10: G6 Trabalho Microprocessadores Microprogramada

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:

Page 11: G6 Trabalho Microprocessadores Microprogramada

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.

Page 12: G6 Trabalho Microprocessadores Microprogramada

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.

Page 13: G6 Trabalho Microprocessadores Microprogramada

* 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:

Page 14: G6 Trabalho Microprocessadores Microprogramada

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.)

Page 15: G6 Trabalho Microprocessadores Microprogramada

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.

Page 16: G6 Trabalho Microprocessadores Microprogramada

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