EA869Computadores Microprogramados
Faculdade de Engenharia Eltrica e de Computao (FEEC)Universidade Estadual de Campinas (UNICAMP)
Prof. Levy Boccato 1
Introduo Controlador:
Circuito que sequencia a execuo das instrues de mquina, sendo responsvel por mover os dados atravs do hardware e acionar apropriadamente as unidades que vo processar a informao.
Como ele faz isto? Gerando todos os sinais de controle, tambm chamados de
microcomandos, nos instantes apropriados. Em uma implementao uniciclo, temos um circuito combinacional. Em uma implementao multiciclo, como vista no tpico anterior,
temos um circuito sequencial.
2
Introduo Uma abordagem direta para a construo do controlador consiste em
projetar o circuito sequencial que implementa todos os ciclos de execuo de uma instruo, desde a busca da instruo, seguindo para a decodificao, a leitura de operandos, etc.
3
Introduo Possveis desvantagens:
Processo mais complexo.
Teste e verificao do hardware so relativamente difceis.
Circuito inflexvel: difcil alter-lo caso uma nova instruo de mquina precise ser acrescentada.
Por outro lado, uma opo vivel considerando uma abordagem RISC.
4
Microprogramao Microprogramao: mtodo alternativo para gerar os sinais de
controle de maneira sistemtica e ordenada.
Ideia central: Uma memria de controle armazena sequncias de cdigos
binrios que disparam apropriadamente os sinais de controle que executam determinadas microoperaes.
Microprograma: sequncia de microinstrues cuja execuo corresponde a uma instruo de mquina. Para cada instruo de mquina, h um microprograma especfico que
indica todas as microoperaes necessrias para sua execuo. Executar um microprograma, portanto, tem o mesmo efeito que
executar uma instruo de mquina.
5
Microprogramao Podemos enxergar a microprogramao como uma nova aplicao
da ideia de programa armazenado, mas agora dentro do prprio controlador:
6
Processador Memria
Instruo
Operao realizada: ADD, SUB, MOV, etc.
A ao que o processador ir realizar determinada a partir da leitura de uma instruo de mquina, a qual est armazenada em sua memria interna.
CLSSICO
Microprogramao Podemos enxergar a microprogramao como uma nova aplicao
da ideia de programa armazenado, mas agora dentro do prprio controlador:
7
Controlador Micromemria
Microinstruo
Sada: sinais de controle que devem ser ativados
A ao que o controlador ir realizar determinada a partir da leitura de uma microinstruo, a qual est armazenada em sua memria interna.
MICROPROGRAMAO
Microprogramao - Firmware A linguagem de programao dentro do controlador ainda mais
elementar que a simblica.
Firmware: ponte entre hardware e software.
mais fcil projetar um firmware do que um hardware.
mais difcil escrever um microprograma (firmware) do que um programa em linguagem de alto nvel (software).
8
Microprogramao Equivalncia de conceitos:
9
Instruo em linguagem simblica
Microprograma Microinstruo Microoperao Sinais de controle
Uma instruo de mquina
Um microprograma
1 REM (PC) TPC
2RI ((REM)) E, ReadMem, TB
PC (PC )+ 1 IPC
3
Microprogramao
10
ADD R1, R3SUB R1 , R5B label
ALGORITMO
PROGRAMA
Instruo Assembly
Lida pelo Controlador microprogramado...
...e executada por um microprograma...
...composto por microinstrues.
Domnio do usurio Domnio do firmware/hardware
Cada microinstruo um conjunto de sinais de controle.
Microprogramao Proposta original: Wilkes (1951)
11
Microprogramao Proposta original: Wilkes (1951)
Inicialmente, o opcode mapeado em um endereo da matriz de controle e carregado no respectivo registrador.
O decodificador de endereos interpreta o opcode e seleciona uma linha horizontal (microinstruo).
As linhas verticais que interceptam a linha horizontal ativada (indicadas por ) tambm so acionadas, tanto na matriz de controle quanto na matriz de sequenciamento.
As sadas da matriz de controle ativam um subconjunto de microcomandos.
As sadas da matriz de sequenciamento preparam o endereo da prxima microinstruo (aps a unidade de atraso).
12
Microprogramao Proposta original: Wilkes (1951)
O desvio condicional na organizao de Wilkes pode ser feito atravs da subdiviso da linha horizontal.
Dependendo do contedo de um flip-flop de condio, uma das linhas ser selecionada.
13
Microprogramao Estrutura da unidade de controle microprogramada:
14
Microprogramao O modus operandi de um computador microprogramado idntico ao
de um computador convencional, exceto pelo funcionamento da unidade de controle:
1. Busca da instruo: o opcode transferido para o controlador.
2. (Convencional) O opcode decodificado e, assim, ativa-se uma sequncia de estados especfica para a execuo da instruo.
2. (Microprogramado) O opcode mapeado em um endereo da memria de controle. A respectiva posio da memria de controle acessada, dando incio execuo do microprograma associado quela instruo de mquina.
15
Microprogramao
16
Controlador
RI
Microcomandos
Vamos ento exemplificar passo a passo a execuo de uma instruo...
ULAULA
MICROMEMRIA
MPC
MIR
DECOD.
ADD R1 R2
1. Instruo carregada em RI.
ADD R1 R2
2. Controlador l o CO e o decodifica para identificar o microendereo.
25
3. Microendereo enviado ao MPC.4. Microinstruo enviada MIR.
101...110
5. Microcomandos so acionados sequencialmente.
6. Terminada a execuo da microinstruo, a mesma passa ao decodificador um sinal, o qual calcula o endereo da prxima microinstruo a ser executada, repetindo este ciclo at o trmino da execuo da instruo de mquina.
Microinstrues Microoperaes podem ser executadas em um nico ciclo de relgio
por meio do acionamento de um conjunto de sinais de controle (microcomandos).
Uma microinstruo prev a ativao de um conjunto de microcomandos que implementam algumas microoperaes.
Existem algumas formas de representao dos microcomandos nas microinstrues.
17
Microinstrues Microinstruo horizontal:
Na microinstruo, h a especificao de todas as possveis microoperaes da mquina, associando um bit a cada sinal de controle existente.
Cuidado: algumas combinaes de microoperaes so invlidas, i.e., no podem ser realizadas dentro do mesmo ciclo de relgio. Exemplo: transferir o contedo de dois registradores diferentes
para o mesmo barramento.
18
Microinstrues Exemplo:
Unidade lgico-aritmtica: implementa 8 operaes distintas. 16 registradores de 8 bits. 3 barramentos de 8 bits.
19
Microinstrues Exemplo:
Microoperaes:
Transferncia do contedo de um registrador para o barramento A 16 microcomandos, cada um referenciando um dos 16 registradores.
Transferncia do contedo de um registrador para o barramento B 16 microcomandos, cada um referenciando um dos 16 registradores.
Seleo da operao da ALU 8 microcomandos, cada um referenciando uma das 8 operaes permitidas para a ALU.
Transferncia do contedo do barramento C para um registrador 16 microcomandos, cada um referenciando um dos 16 registradores.
20
Microinstrues Exemplo:
Microinstruo horizontal:
Instruo: ADD R2, R3, R4 R4 (R2) + (R3) Dois ciclos de relgio duas microinstrues
21
Sel. ALU A Regi B Regi Regi C
8 bits 16 bits 16 bits 16 bits
00000001 0000000000000100 0000000000001000 0000000000000000
00000000 0000000000000000 0000000000000000 0000000000010000
ADD TAR2 TBR3
TCR4
Microinstrues Microinstruo horizontal:
Vantagens: Maior eficincia na utilizao dos recursos de hardware ao
explorar o paralelismo das microoperaes.
Desvantagens: Desperdcio de memria de controle: apenas alguns sinais de
controle so utilizados em cada microinstruo. Dificuldade de programao em funo da grande quantidade
de bits que controlam os sinais de controle.
22
Microinstrues Microinstruo vertical:
Cada microinstruo especifica uma nica microoperao a ser executada.
Vantagens: Todos os campos da microinstruo so teis para identificar a
microoperao. Simplicidade do formato facilita a preparao das microinstrues.
Desvantagens: Gera microprogramas mais longos, com maior tempo de execuo. No explora o potencial paralelismo de algumas microoperaes.
23
Microinstrues Exemplo:
Microinstrues verticais:
24
Sel. A Regi2 bits 16 bits
Sel. B Regi2 bits 16 bits
Sel. C Regi2 bits 16 bits
Sel. ALU Sem uso
2 bits 8 bits
Operao
A (Regi)
B (Regi )
Regi (C)
Seleciona a operao da ALU
Microinstrues Exemplo:
Microinstrues verticais:
necessrio acrescentar um campo Cdigo da Microoperao (CO), equivalente ao opcode de instrues de mquina, para identificar a microoperao a ser executada pela microinstruo.
Um bit da microinstruo pode controlar mais de um microcomando (multiplexagem de microcomandos), acionando microoperaes que nunca so executadas ao mesmo tempo. Isto exige um hardware adicional para acionar o microcomando apropriado.
25
Microinstrues Exemplo:
Microinstrues verticais:
26
00 0000000000000100
2 bits TAR2
01 0000000000001000
2 bits TBR3
11 0000000000010000
2 bits TCR4
10 Sem uso
2 bits ADD
00000001
A (R2)
B (R3)
R4 (C)
Seleciona a operao ADD
Microinstrues Microinstruo diagonal:
Soluo de compromisso entre as opes horizontal e vertical.
Alguns microcomandos so associados a bits de uma microinstruo individualmente como na configurao horizontal e outros a um conjunto de bits como na configurao vertical.
Esta estratgia permite um certo grau de paralelismo na execuo de microoperaes sem o inconveniente de uma microinstruo muito longa.
27
Microinstrues Codificao de microinstruo:
O princpio explorado no caso da microinstruo vertical pode ser estendido para os demais campos, lembrando sempre que ser necessrio acrescentar hardware adicional para a decodificao.
Exemplo: em vez de usar 16 bits, um para cada registrador, poderamos codificar este campo usando somente 4 bits. No entanto, uma etapa adicional de decodificao para gerar um sinal de
controle especfico para cada registrador seria necessria.
28
Exemplo
29
Controlador
Microcomandos
ULAULA
MICROMEMRIA
MPC
MIR
DECOD.
C.O.
Vamos supor que desejemos executar a instruo ADD end do processador EA869 projetado durante o estudo de arquitetura de computadores.
O controlador necessita acionar, sequencialmente, os seguintes sinais de controle:
Lembrando que uma instruo nada mais do que uma sequncia de bits, como poderamos criar uma microinstruo para acionar estes comandos?
TRIE, RTRB, WTRT, REWE
12345
Exemplo
30
Controlador
Microcomandos
ULAULA
MICROMEMRIA
MPC
MIR
DECOD.
C.O.
TRIE, RTRB, WTRT, REWE
12345
Microinstruo HorizontalTRI TB TRB WT RT CT IT ... RE WE
Ideia: associar cada bit da microinstruo diretamente a um sinal de controle. Assim, um bit 1 indica que o SC faz parte daquela microoperao, enquanto o 0 serve
para indicar que ele no deve ser ativado. O processador EA869 possui 19 sinais de controle. Desta forma, as palavras da nossa
microinstruo devem ter pelo menos 19 bits.
Exemplo
31
Consideremos agora que o processador EA869 tenha um controlador microprogramado onde cada bit da microinstruo refere-se a um sinal de controle (microinstruo horizontal).
TRI IPC TBR E R IPC TRB WT TB RA RT WA RE WE I C Z
TRIE, RTRB, WTRT, REWE
12345
O que precisamos para executar a instruo ADD end?
Uma soluo configurar todos os sinais de controle na microinstruo.
1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0
Qual o problema
dessa soluo?
Qual o problema
dessa soluo?
Todos os sinais de controle sero acionados no mesmo ciclo de relgio!
SoluesSoluesUsar uma microinstruo para cada conjunto de SCs acionados no mesmo ciclo de relgio.
Soluo ruim: uso excessivo de memria
Dividir a microinstruo em fases, onde cada fase refere-se a um ciclo de relgio diferente.
FASE 1 FASE 2 FASE 3 FASE 4 FASE 5
Desta forma conseguimos executar um conjunto de microoperaes com poucas microinstrues!
MICROINSTRUO POLIFSICA
REM (RI.end) RDM ((REM)) TMP (RDM) (ACC) + (TMP) ACC ( )
Microinstrues Microinstruo polifsica: o ciclo de execuo da microinstruo se
divide em vrias fases.
A execuo de microoperaes no-paralelas sequencial.
Em cada fase, porm, algumas microoperaes podem ser executadas simultaneamente.
Duas categorias: Sncronas: o nmero de fases o mesmo para todas as microinstrues. Ou
seja, o tempo de execuo de cada microinstruo igual. Assncronas: o nmero de fases pode variar conforme a microinstruo.
32
Microinstrues Exemplo: busca de instruo
Microoperaes Sinais de controle1. REM (PC) TPC2. RDM ((REM)) E, R/W, WRDM3. PC (PC) + 1 IPC4. RI (RDM) RRDM, WRI
Microinstruo horizontal representao:
33
2 3 4 5 6 71
TPC E R/W
WRDMIPC RRDM WRI
Microinstrues Exemplo: busca de instruo
Microoperaes Sinais de controle1. REM (PC) TPC2. RDM ((REM)) E, R/W, WRDM3. PC (PC) + 1 IPC4. RI (RDM) RRDM, WRI
Microinstruo horizontal monofsica:
34
0 0 0 0 0 01
1 1 1 1 0 00
0 0 0 0 1 10
1
2 e 3
4
Microinstrues Exemplo: busca de instruo
Microoperaes Sinais de controle1. REM (PC) TPC2. RDM ((REM)) E, R/W, WRDM3. PC (PC) + 1 IPC4. RI (RDM) RRDM, WRI
Microinstruo horizontal polifsica:
Fase 1: bit 1 Fase 2: bits 2 a 5 Fase 3: bits 6 a 7
35
1 1 1 1 1 11 Fase 1
Fase 2Fase 3
Exemplo
36
Encontramos, assim, uma implementao eficiente, conhecida como microinstruo horizontal (cada bit refere-se a um SC) e polifsica (execuo da microinstruo dividida em fases do relgio).
SC1 SC2 SC3 SC4 SC5 SC6 SC7 SC8 ... SCP
FASE 1 FASE 2 FASE 3 ... FASE X Falta agora acertarmos um ltimo detalhe:
Ao terminar a execuo de uma microinstruo, qual ser a prxima microinstruo a ser executada? Como inform-la ao controlador?
Ao terminar a execuo de uma microinstruo, duas opes so possveis:
1. Executar a prxima microinstruo:
2. Desviar para outra rea da micromemria:
MPC (MPC) + 1
MPC end
Como? Atravs de um bit Desvio/Incrementa
D/I
D/I
0: indica que, aps a execuo dos SCs, MPC deve ser incrementado. MPC (MPC) + 1
1: SCs so desativados e a microinstruo lida como um endereo, o qual carregado em MPC.MPC end
Crditos
37
Este material est baseado nas notas de aula elaboradas pelo Prof. Lo Pini e pelo aluno de doutorado Tiago Novaes.
EA869 Computadores MicroprogramadosIntroduoIntroduoIntroduoMicroprogramaoMicroprogramaoMicroprogramaoMicroprogramao - FirmwareMicroprogramaoMicroprogramaoMicroprogramaoMicroprogramaoMicroprogramaoMicroprogramaoMicroprogramaoMicroprogramaoMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesExemploExemploExemploMicroinstruesMicroinstruesMicroinstruesMicroinstruesExemploCrditos