Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado...

28
Máquina Microprogramada μFF Referências: Structured Computer Organization, A.S. Tanenbaum, (c) 2006 Pearson Education Inc Computer Organization and Architecture, W. Stallings, Prentice Hall Orlando Loques setembro 2006

Transcript of Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado...

Page 1: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Máquina Microprogramada

µFF

Referências:

• Structured Computer Organization, A.S. Tanenbaum, (c) 2006 Pearson Education Inc

• Computer Organization and Architecture, W. Stallings, Prentice Hall

Orlando Loquessetembro 2006

Page 2: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Sequenciador microprogramado – Wilkes 1951

código xxxxxxxxRI

← (macro) instrução do computador

DECODER

MUX

µ PC

status

●●

micro ordens endereços

● ●

● ●

micro ordem endereço ← formato de µ instrução

ativação ou carregamento de registros

endereço da próxima µinstrução

Page 3: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Sequenciador microprogramado – Wilkes 1951

código xxxxxxxxRI ← (macro) instrução do computador

DECODER

MUX

µ PC

status

●●

micro ordens endereços

● ●

● ●

micro ordem endereço ← formato de µ instrução

ativação ou carregamento de registros; função da ALU, desvios ...

endereço da próxima µ instrução

ROMmemória de controle

address

Page 4: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Organização do Computador (I)

AC EA CP AP

ULA 0000 RµIRIR

RE

RD

buffer

ca

ESE

SA BMS

ESD

CA REL

A B

S

Zera AC CAC

ADD SUB LIG CR’ DECR R0

R0 =1, quando (R) = 0

CRI

CRDM ABD

CRE

CAP INCRAP DECRAPCCP INCRCPDD DE CEA

AAC

AR ARI ARµI

ACPAEA AAP

Barra de Endereços

Barra deDados

8

12

16

Page 5: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Organização do Computador (ii)

RE

R D*

CRD

CRE

endereços

dados

M ESEMLMPRONTO ES

(LE + LM)desativa

LE

ABDativa

* bidirecional

16

12

Page 6: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Sequenciador microprogramável: µmáquina

CR

FONTE

RI12

R

µI

ROM

µ

CP

GRUPO 1DESTINO GRUPO 2

11 10 9 8 7 6 5 4 3 2 1 3 2 1 0

RI13

RI14

RI15

RµI7

RµI6

RµI5

RµI4

RµI3

RµI2

RµI1

RµI0

LD

RS CLK CLK

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

CR’

CAC=ADD+SUB+LIG

MUX

ESEESD

Page 7: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Observações� Capacidade da Memória de Macro-Instrução: O RE tem 12 bits, permitindo

endereçar 212 (4Kpalavras) palavras de 16 bits

� Capacidade da Memória de Micro-Instrução: O RµI tem 8 bits, permitindo endereçar 28 (256) palavras de 12 bits. Se for necessário, o espaço de endereçamento e o tamanho da micro-instrução poderiam ser facilmente alterados sem alterar a micro-arquitetura

� O conteúdo do registro de micro-instrução pode ser colocado na barra de dados (ARµI) e usado para carregar (sempre) o registro R. Isso pode ajudar a implementação de algumas instruções, e.g., temporizações, multiplicação, divisão, etc

� O micro-sequenciador usa um pipeline (µCP||RµI). Se isso for considerado, a micro-programação seria mais complexa (ver slide 28). Assim, para simplificar os exemplos, assumimos que RµI repete diretamente a saída da ROM (micro-instrução)

� As ordens SUB, LIG e ADD são combinadas em um “OU” para gerar o sinal de carregamento do Acumulador (CAC)

Page 8: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Código de Instrução (i)

OPERANDOi+1

ENDEREÇOCÓDIGOi

* Uso específico em algumas instruções

0111215

*

Page 9: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Código de Instrução (ii)

Desvio Condicional, para o endereço ENDCP ← END, se (AC) >= 0DESVC0111

Desvio incondicional, para o endereço ENDCP ← ENDDESV I0110

Armazena o conteúdo da extensão do acumulador na memória

M(END) ← EACARE0101

Armazena o conteúdo do acumulador na memóriaM(END) ← ACCARA0100

SUBTRAÇÃO DIRETA; o operando é o conteúdo da memória em END

AC ← AC + M(END)SUBD0011

SUBTRAÇÃO IMEDIATA; o operando é a palavra seguinte a da instrução na memória

AC ← AC - OperandoSUBI0010

SOMA DIRETA; o operando é o conteúdo da memória em END

AC ← AC + M(END)SOMD0001

SOMA IMEDIATA; o operando é a palavra seguinte a da instrução na memória

AC ← AC + OperandoSOMI0000

DESCRIÇÃOAçãoMenemonicoCódigo

OPERANDOi+1

ENDEREÇOCÓDIGOi

* específico

0111215Nível Convencional

Page 10: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Código de Instrução (iii)

Armazena o AP Apontador de Pilha na memóriaM(END) ← APCAP1111

Inicializa o Apontador de Pilha (AP)AP ←M(END)IAP1110

MultiplicaçãoAC, EA ← AC*M(END)MULT1101

Zera o acumuladorAC ← 0ZERA1100

Retorna de procedimentoAP ← AP + 1; CP ←M (AP)

RETORNA1011

Chama procedimento iniciado em ENDM(AP) ← CP; AP ←AP-1; CP ← END

CHAMA1010

Escreve no AC o conteúdo da porta de entrada especificada por END

AC ← RE(END)ENTRA1001

Escreve o conteúdo do AC no registro de saída especificado por END

RS(END) ← ACSAI1000

DESCRIÇÃOAçãoMenemonicoCódigo

OPERANDO*i+1

ENDEREÇOCÓDIGOi

* específico

0111215

Page 11: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Microinstruções

ENDEREÇO DE DESVIOCONDIÇÃO1

0781011

ESORDEMSDESTINOFONTE0

01345781011

Tipo Desvio

Tipo Operacional

Campo ES (bit 0): especifica o valor do bit que vai ser injetado nasentradas seriais do AC e do EA, durante operações de de slocamentoà direita e à esquerda, respectivamente

Page 12: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Microinstruções

ENDEREÇO DE DESVIOCONDIÇÃO1

0781011

Tipo Desvio

Decodificação da Macroinstrução: permite o carregamento do registro de Μicroinstrução com o código Macroinstrução

DEC111

Estado do flip-flop de interrupçãoINT110

Estado do flip-flop “vai um”CA101

Estado do bit de sinal do AcumuladorSAC100

Gerado pela memória indicando que o dado foi escrito ou lidoPRONTO011

Bit menos significativo do AcumuladorBMS010

Ativa quando (R)=0R0001

Desvio IncondicionalNOP000

DESCRIÇÃOMNEMÔNICOCONDIÇÃO

• O desvio é efetuado sempre que a condição for confirmada

Page 13: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Tipo Operacional – Registro Fonte

ESORDENSSDESTINOFONTE0

01345781011

Registro de µInstrução*ARuI111

AcumuladorAAC110

Registro RAR101

Extensão do AcumuladorAEA100

Registro de InstruçãoARI011

Apontador de PilhaAAP010

Barra de Dados (externa)ABD001

Contador de ProgramaACP000

Registro Ativado (saída ligada à Barra de Dados)MNEMÔNICOFONTE

Nota: quando o R µI for selecionado como fonte, o destino será sempre o Registro R; o formato da µinstrução passa a ser:

parâmetroR µI0

0781011

Page 14: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Tipo Operacional – Registro Destino

ESORDENSSDESTINOFONTE0

01345781011

Registro de EndereçoCRE111

Extensão do AcumuladorCEA110

Contador de ProgramaCCP101

Registro de DadosCRD100

Apontador de PilhaCAP011

Registro de InstruçãoCRI010

Registro RCR001

---NOP000

Registro Carregado com o conteúdo da Barra de DadosMNEMÔNICODESTINO

Page 15: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Microinstruções

ESORDEMSDESTINOFONTE0

01345781011

S=0 – 1º Grupo de ordens

- - -NOP111

Decrementa Apontador de PilhaDECRAP110

Incrementa Contador de ProgramaINCRCP101

Decrementa RDECRR100

Leitura de Porta de EntradaLE011

Zera o AcumuladorZA010

Desloca à DireitaDD001

Leitura de MemóriaLM000

DescriçãoMNEMÔNICOORDEM

Page 16: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Microinstruções

ESORDEMSDESTINOFONTE0

01345781011

não usado- - -111

Incrementa Apontador de PilhaINCRAP110

Comando da ULA: S=BLIG101

Comando da ULA: S=A-BSUB100

Comando da ULA: S=A+BAD011

Escreve em Porta de SaídaES010

Desloca à esquerdaDE001

Escreve em memóriaEM000

DescriçãoMNEMÔNICOORDEM

S=1 - 2º Grupo de ordens

Page 17: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Microprograma (i)

0 0 0 0 0 0 0 0NOP17

xAD1NOPARI06

xLM0CRIABD05

xINCRCP0CREACP04

0 1 0 00 0 0 0DEC13

xLM0CRIABD02

xINCRCP0CREACP01

# # # # # # # #INT10

endereço de desvioCONDIÇÃO1

parâmetroRµI0

ESORDEMSDESTINOFONTE0

01234567891011END

SOMI

Busca e Decodificaçãode Instrução

endereço da memória de controle; hexadecimal

ver µmáquina → RI15 RI14 RI13 RI12

Page 18: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Microprograma (ii)

0 0 0 0 0 0 0 0NOP117

xAD1NOPARI016

xLM0CRIABD015

xNOP0CREARI014

endereço de desvioCONDIÇÃO1

parâmetroRµI0

ESORDEMSDESTINOFONTE0

01234567891011END

SOMAD

endereço da memória de controle; hexadecimal

Page 19: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Microprograma (iii)

0 0 0 0 0 0 0 0NOP197

xLIG1---ABD096

xLE0CRDABD095

xNOP0CREARI094

0 0 0 0 0 0 0 0NOP187

xES1NOP---086

xNOP0CRDAAC085

xNOP0CREARI084

endereço de desvioCONDIÇÃO1

parâmetroRµI0

ESORDEMSDESTINOFONTE0

01234567891011END

ENTRA

SAI

Page 20: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Microprograma (iv)

0 0 0 0 0 0 0 0NOP1B7

xLM0CCPABD0B6

xNOP0CREAAP0B5

xINCRAP1NOP---0B4

0 0 0 0 0 0 0 0NOP1A7

xNOP0CCPARI0A6

xEM1CRDACP0A5

xDECRAP0CREAAP0A4

endereço de desvioCONDIÇÃO1

parâmetroRµI0

ESORDEMSDESTINOFONTE0

01234567891011END

RETORNA

CHAMA

Page 21: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Ciclos de Instrução

Page 22: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Modelo da Unidade de Controle (i)

unidade de controle

Clock

sinais de controledentro da UCP

sinais de controleda barra do sistema

sinais de controlepara a barra do sistema

flags:IntAC

wait,etc

Registro de Instrução

Page 23: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Unidade de Controle Lógica Fixa (ii)

lógica de controle

Clock

Registro de Instrução

Geradorde

Timing

T1

Tn

decodificador

flags:IntAC

wait,etc

sinais de controledentro da UCP

sinais de controleda barra do sistema

sinais de controlepara a barrado sistema

Page 24: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Unidade de Controle Microprogramada(iii)

Clock

sinais de controledentro da UCP

sinais de controleda barra do sistema

sinais de controlepara a barra do sistema

ROM

µPC

flags:IntAC

wait,etc

Registro de Instrução

Page 25: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

a) Passagem de parâmetros: a pilha antes da chamada

b) A pilha durante a execução do procedimento

Chamada de Procedimento: Uso da Pilha

count = read(fd, buf, nbytes)

Page 26: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Sequenciador microprogramável

ROM

µ

CP

LD

RS CLKCLK

REL

Sem pipeline:Ciclo de Relógio >= Tac_ROM + Tativação_lógica

TAC_ROM TA_LOG

TREL

Page 27: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Sequenciador microprogramável

R

µI

ROM

µ

CP

LD

RS CLK CLK

REL

Com pipeline:Ciclo de Relógio >= TmaxTmax = Max[Tac_ROM, Tativação_lógica]

TA_LOG

TAC_ROM

TMAX

Page 28: Máquina Microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · Sequenciador microprogramado – Wilkes 1951 RI código xxxxxxxx Rµ ←(macro) instrução do computador D E C

Sequenciador microprogramável:→ efeito do pipeline em µinstruções de desvio

R

µI

ROM

µ

CP

LD

RS CLK CLK

REL

No ciclo de execução da µinstrução(n) – tipodesvio - está sendo buscada a µinstrução(n+1). Como o o resultado do teste só é conhecido após a execução daµinstrução(n), o desvio só poderá serexecutado após a execução daµinstrução(n+1). Ou seja, temos que nos preocupar com o que ela faz

Soluções:

• Software: eg, introduzir NOP ou algumainstrução útil

• Hardware: modificar o ciclo de execuçãoda µinstrução de desvio