Sie sind auf Seite 1von 22

Prof. Jlio Carlos Balzano de Mattos e Prof.

Luciano Volcan Agostini

Universidade Federal de Pelotas Centro de Desenvolvimento Tecnolgico Mestrado em Computao Disciplina de Arquitetura e Projeto de Computadores

NOTAS DE AULA Sequenciamento e Controle


Bloco de Controle (Control Unit)
As informaes binrias armazenadas em um computador digital podem ser classificadas como dados ou informaes de controle. Na parte anterior da matria, os dados eram manipulados no datapath que executava as tarefas aritmticas, lgicas, deslocamento e os outros processamento dos dados. Estas operaes eram implementadas com ALUs, registradores, multiplexadores, barramentos, etc. O bloco de controle fornece sinais que ativam as vrias microoperaes no datapath para executar um processamento especfico de dados. O timing de todos os registradores em um sistema digital sncrono controlado por um gerador principal de relgio. Os pulsos de relgio so aplicados para todos os flip-flops e registradores do sistema, incluindo tambm a parte de controle. Para prevenir que pulsos contnuos de relgio mudem o estado de todos registradores em todos os ciclos de relgio, alguns registradores tem o sinal de controle de carga habilitado ou desabilitado. Os valores binrios que controlam a seleo dos multiplexadores, barramentos e ULAs e as entrdas de controle de carga dos registradores so gerados pelo bloco de controle. O bloco de controle gera os sinais para o sequenciamento das operaes no datapath. O circuito que gera estes sinais um circuito seqencial com estados que ditam os sinais de controle para o sistema. Em qualquer tempo, o estado do circuito seqencial ativa um conjunto de microoperaes pr-estabelecido. Utilizando condies de status e entradas de controle, a unidade de controle determina o prximo estado em que as microoperaes sero ativadas. O circuito digital que atua como unidade de controle fornece uma seqncia de sinais para ativao das microoperaes no datapath e tambm determina o prximo estado. 1

Circuito Seqencial
Entradas Sadas

Circuito Combinacional
Estado Atual Prximo Estado

Elementos de Memria

Relgio

Modelo de Mquinas de Estado Finito (FSMs)


Uma mquina de estado finito (Finite State Machine - FSM) pode ser definida abstratamente com uma quintpla: <S, I, O, f, h> onde S, I e O representam o conjunto de estados, o conjunto de entradas e o conjunto de sadas, respectivamente, e f e h representam as funes de prximo estado e sada, respectivamente. A funo prximo estado f definida abstratamente com o mapeamento S x I S. Em outras palavras, f associa (atribui) para todo para de smbolos de estado e entrada um outro smbolo de estado. O modelo de mquinas de estado finito assume que o tempo dividido em intervalos uniformes e que as transies de um estado para outro estado ocorre somente no incio de cada intervalo de tempo. Assim, a funo f (prximo estado) define qual ser o prximo estado no prximo intervalo de tempo, dado o estado e valores de entrada presentes no intervalo. A funo de sada h determina os valores de sada do estado corrente. Existem dois tipos diferentes de FSMs, que correspondem a duas diferentes definies da funo de sada h. Um tipo a mquina de estados MOORE, onde a funo h definida como o mapeamento S O. Em outras palavras, um smbolo de sada associado a cada estado da FSM. O outro tipo a mquina de estados MEALY, onde a funo h definida com o mapeamento S x I O. Neste caso, o smbolo de sada em cada estado definido por um par de smbolos de estado e sada.

Mquina de Estados MOORE uma mquina de estados (circuito seqencial) em que as sadas do sistema so funo somente do estado do sistema. O sistema digital possui sinais de entrada, e as sadas do sistema no utilizam os sinais de entrada para determinar a sada do sistema. Na mquina de estados MOORE as sadas no se alteram com a mudana dos estados. Exemplo:

S0/0 0

S1/1

S2/1

1 S3/0

Estado Corrente S0 S1 S2 S3

Prximo Estado X=0 S0 S0 S2 S3 X=1 S2 S2 S3 S1

Sada (Z) 0 1 1 0

Entradas X

Clock

D1

Q Sadas Z

FF1

f: S x I

S
D2 Q

h: S

FF2

Projeto da mquina de estados Moore (Lgica de Prximo Estado): Tabela Verdade I: Entradas Estado Entrada Corrente X S0 0 S0 1 S1 0 S1 1 S2 0 S2 1 S3 0 S3 1 Sadas Prximo Estado

Tabela Verdade II: Entradas Estado Corrente Entrada Q1t 0 0 0 0 1 1 1 1 Q0t 0 0 1 1 0 0 1 1


Q0t X

X 0 1 0 1 0 1 0 1

Sadas Prximo Estado Q1t+1 Q0t+1

Q1t

00

01

11

10

0 1

Q1t

Q0t X

00

01

11

10

0 1

Circuitos:

Projeto da mquina de estados Moore (Lgica de Sada): Tabela Verdade I: Entradas Estado Corrente S0 S1 S2 S3 Tabela Verdade II: Estado Corrente Q1t Q0t 0 0 0 1 1 0 1 1 Circuito: Sada Z Z Sadas Sada Z

Mquina de Estados MEALY definida como uma mquina de estados em que as sadas do sistema so funo do sinal ou sinais de entrada e o estado do sistema. As sadas do sistema so alteradas quando acontece a mudana do estado atual do sistema, mudana das entradas, ou tambm quando acontece a mudana de ambas, nas entradas e o estado do sistema. Exemplo:
0/0

S0 0/0 1/1

S1

1/0

S2

0/1

1/1 S3

1/0

0/0

Estado Corrente S0 S1 S2 S3

Prximo Estado X=0 S0 S0 S2 S3 X=1 S2 S2 S3 S1

Sada (Z) X=0 0 0 1 0 X=1 1 0 0 1

Entradas X

Clock

D1

Q Sadas Z

FF1

f: S x I

S
D2 Q

h: S x I

FF2

Projeto da mquina de estados Mealy (Lgica de Prximo Estado): Tabela Verdade I: Entradas Estado Entrada Corrente X S0 0 S0 1 S1 0 S1 1 S2 0 S2 1 S3 0 S3 1 Sadas Prximo Estado

Tabela Verdade II: Entradas Estado Corrente Entrada Q1t 0 0 0 0 1 1 1 1 Q0t 0 0 1 1 0 0 1 1


Q0t X

X 0 1 0 1 0 1 0 1

Sadas Prximo Estado Q1t+1 Q0t+1

Q1t

00

01

11

10

0 1

Q1t

Q0t X

00

01

11

10

0 1

Circuitos:

Projeto da mquina de estados Mealy (Lgica de Sada): Tabela Verdade I: Entradas Estado Entrada Corrente X S0 0 S0 1 S1 0 S1 1 S2 0 S2 1 S3 0 S3 1 Tabela Verdade II: Entradas Estado Corrente Entrada Q1t Q0t X 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
Q0t X

Sadas Sada Z

Sadas Sada Z

Q1t

00

01

11

10

0 1

Circuito:

10

Exerccio 1: A empresa de refrigerantes CACO-LACO deseja projetar um circuito que realize o controle de venda de 1 lata de refrigerante na sua mquina de refrigerantes. Para isto o empresa o contratou, voc como projetista-chefe do projeto deve especificar (desenhar) o diagrama de uma mquina estados finitos (FSM) que realize o controle da entrada de moedas na mquina. Se entrar o valor correto a latinha deve sair da mquina, caso contrrio, deve voltar para o estado inicial e devolver as moedas. Sabese que o preo do refrigerante um real, e tambm que a mquina somente aceita moedas de 1 real, 50 centavos e 25 centavos. Porm, a mquina pode aceitar qualquer seqencia de moedas. Sendo assim: Desenhe o diagrama da mquina de estados que realiza esta operao. Esta mquina Moore ou Mealy ? Por qu ?

Exerccio 2: Construa a diagrama de estados de uma mquina de estados finitos (FSM que realize o controle de um elevador. O elevador dever respeitar a seguinte especificao: Se o elevador est parado e o andar requisitado igual ao andar corrente , ento o elevador continua parado. Se o elevador est parado e o andar requisitado menor que o andar corrente, ento o elevador deve descer para o andar desejado. Se o elevador est parado e o andar requisitado maior que o andar corrente, ento o elevador deve subir para o andar desejado.

Sendo assim: Desenhe o diagrama da mquina de estados que realiza esta operao. Esta mquina Moore ou Mealy ? Por qu ?

11

Projeto de um Bloco de Controle


Especificao do problema: Projetar um bloco de controle capaz de realizar o algoritmo de contagem de 1s em uma palavra de dados. Algoritmo em alto nvel:

Algoritmo em termos de registradores:

Palavras de controle:

12

Diagrama de estados:

Esquema da mquina de estados Moore:

13

Projeto da Lgica de Prximo Estado: Codificando os estados (a partir do diagrama de estados): 8 estados 3 bits de estado (3 flip-flops) Estado S0 S1 S2 S3 S4 S5 S6 S7 Tabela Verdade I: Entradas Incio Sada Prximo Estado Q2 Q1 Q0

Estado Atual S0 S1 S2 S3 S4 S5 S6 S7 Tabela Verdade I: Q2t

Igual

Estado Atual Q1t Q0t

Entradas Incio Igual

Prximo Estado Q2t+1 Q1t+1 Q0t+1

14

Q2

Q1 Q0

00

01

11

10

0 1

Q0 Igual Q2 Q1 00

01

11

10

00 01 11 10

Incio Igual Q1 Q0

Q2 = 0

Q2 = 1

00

01

11

10

00

01

11

10

00 01 11 10

15

Projeto da Lgica de Sada: Tabela Verdade I: Estado S0 S1 S2 S3 S4 S5 S6 S7 DA AA BA MB FS MD RW

Tabela Verdade II: Estado


DA2

DA
DA1 DA0 AA2

AA
AA1 AA0 BA2

BA
BA1 BA0

MB
MB FS4 FS3

FS
FS2 FS1 FS0

MD RW
MD RW

S0 S1 S2 S3 S4 S5 S6 S7

Q2

Q1 Q0

00

01

11

10

Q2

Q1 Q0

00

01

11

10

0 1

0 1

16

Q2

Q1 Q0

00

01

11

10

Q2

Q1 Q0

00

01

11

10

0 1

0 1

Q2

Q1 Q0

00

01

11

10

Q2

Q1 Q0

00

01

11

10

0 1

0 1

Q2

Q1 Q0

00

01

11

10

Q2

Q1 Q0

00

01

11

10

0 1

0 1

Q2

Q1 Q0

00

01

11

10

Q2

Q1 Q0

00

01

11

10

0 1

0 1

17

Q2

Q1 Q0

00

01

11

10

Q2

Q1 Q0

00

01

11

10

0 1

0 1

Q2

Q1 Q0

00

01

11

10

Q2

Q1 Q0

00

01

11

10

0 1

0 1

Q2

Q1 Q0

00

01

11

10

Q2

Q1 Q0

00

01

11

10

0 1

0 1

Q2

Q1 Q0

00

01

11

10

0 1

18

Implementao do Bloco de Controle


Nos discutimos o bloco de controle em termos de entradas, sadas e funes. Agora iremos discutir como a unidade de controle implementada (apesar de j termos implementados uma). Existe uma grande variedade de tcnicas que podem ser usadas. As maiorias das tcnicas encontram-se em uma das duas categorias: Implementao Hardwired Implementao Microprogramada

Controle Hardwired Na implementao Hardwired, a unidade de controle essencialmente um circuito combinacional. Os seus sinais de entrada so transformados em um conjunto de sinais de sada, que so sinais de controle. Para definir a implementao hardwired de uma unidade de controle, basta definir a lgica interna de controle que produz os sinais de controle de sada em funo dos sinais de entrada. Essencialmente, o que devemos fazer , para cada sinal de controle, derivar uma expresso boolena do sinal como funo das entradas. Porm, devemos saber que para um processador moderno e complexo, o n;mero de equaes booleanas para definir a unidade de controle muito grande. A tarefa de implementar o circuito combinacional que satisfaz todas as equaes torna-se extremamente difcil. Alternativamente, uma outra abordagem conhecida como microprogramada oferece, comparativamente, uma abordagem mais simples, mais estruturada e muito mais flexvel para projetos complexos.

Controle Microprogramado A unidade de controle com os seus valores binrios de controle armazenados como palavras em memria chamado um controle microprogramado. Cada palavra na memria de controle contm uma microinstruo que especifica uma ou mais microoperaes para o sistema. Uma seqncia de microinstrues constitui um microprograma ou firmware. O microprograma geralmente fixado em tempo de projeto e usualmente armazenado em uma ROM. A microprogramao envolve colocar algumas representaes de combinaes de valores de variveis em palavras de uma ROM para ser utilizado pelo resto da unidade de controle atravs de sucessivas operaes de leitura. O contedo da ROM 19

em um dado endereo especifica a microoperao que dever ser executada tanto no bloco operativo como bloco de controle.

Innstruction Register

Control Address Register

ALU flags Clock

Sequencial Logic

Control Memory

Control Buffer Register

Control Logic

Internal Control Signals

External Control Signals

Microarquitetura do Bloco de Controle O conjunto de microoperaes est armazenado na memria de controle; O registrador de controle de endereo (control address register) contm o endereo da prxima microinstruo que deve ser lida; Quando uma microinstruo lida da memria de controle, transferida para o registrador de sada (control buffer register).

20

Sequencial Logic

Control Address Register

read

Control Memory

Control Buffer Register

O bloco de controle funciona como o seguinte: 1. Executa uma instruo, a unidade de lgica de sequenciamento envia o comando READ para a memria de controle; 2. A palavra que possui o endereo especificada no control address register e lida no control buffer register; 3. O contedo do control buffer register gera os sinais de controle e a prxima informao de endereo para a unidade de lgica de sequenciamento; 4. A unidade de lgica de sequenciamento carrega o novo endereo no control address register baseado nas informaes de prximo endereo do control buffer register e flags da ALU. Vantagem Simplifica o projeto da unidade de controle.

Desvantagem Mais lento que comparado ao controle hardwired.

OBSERVAES: A microprogramao a tcnica dominante nas mquinas CISC. O controle hardwired utilizado nos porcessadores RISC, devido ao seu formato de instrues simples. 21

Bibliografia Bsica
MANO, M. Morris e KIME, Charles R. Logic and Computer Design Fundamentals. Upper Saddle River, New Jersey: Prentice Hall, 1997. GAJSKI, D. Principles of Digital Design. New York: Prentice-Hall, 1997.

22

Das könnte Ihnen auch gefallen