máquina microprogramada - ic.uff.brloques/orgcomp/maquina-1.pdf · sequenciador microprogramado...
TRANSCRIPT
![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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/2.jpg)
Sequenciador microprogramado – Wilkes 1951
código xxxxxxxxRI
Rµ
← (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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/17.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/25.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/27.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021909/5be51c3309d3f2f4628db432/html5/thumbnails/28.jpg)
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