Download - Caminho de Dados
![Page 1: Caminho de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022062409/56814918550346895db65093/html5/thumbnails/1.jpg)
Caminho de Dados• Busca de Instrução + Instruções Aritm. e Lóg. (R-format) + Instruções de Referência à Memória (I-Format) + Desvio
Reg a ser lido # 1
Reg a ser lido #2
Reg a ser escrito
Dado de escrita
Dado lido #1
Dadolido #2
EscReg
3
Endereço
Dado a ser escrito
Dadolido
LerMem
EscMen
Extensãode sinal
UAL
MUX
MUX
Memória de Instruções
Endereço deleitura
Instrução
PC
1 Somador
16 32
MUX
UAL
MUX
DvC
(aula passada)
![Page 2: Caminho de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022062409/56814918550346895db65093/html5/thumbnails/2.jpg)
Inserindo o Controle
• Identificar os pontos de controle no caminho de dados– Busca da instrução– Operações lógicas e aritméticas– Operações de Memória
• Identificar tipo de controle do sinal– Fluxo de dados através de multiplexadores– Escrita e leitura de dados
• Pensar nos sinais de controle para cada instrução
![Page 3: Caminho de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022062409/56814918550346895db65093/html5/thumbnails/3.jpg)
Busca da Instrução
Reg a ser lido # 1
Reg a ser lido #2
Reg a ser escrito
Dado de escrita
Dado lido #1
Dadolido #2
EscReg
3
Endereço
Dado a ser escrito
Dadolido
LerMem
EscMen
Extensãode sinal
UAL
MUX
MUX
Memória de Instruções
Endereço deleitura
Instrução
PC
1 Somador
16 32
MUX
UAL
MUX
DvC = 0
(=X) Não influencia
![Page 4: Caminho de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022062409/56814918550346895db65093/html5/thumbnails/4.jpg)
Controle para Operação Aritmética
Reg a ser lido # 1
Reg a ser lido #2
Reg a ser escrito
Dado de escrita
Dado lido #1
Dadolido #2
EscReg
3
Endereço
Dado a ser escrito
Dadolido
LerMem
EscMen
Extensãode sinal
UAL
MUX
MUX
Memória de Instruções
Endereço deleitura
Instrução
PC
1 Somador
16 32
MUX
UAL
MUX
DvC = 0op
=0
=1
=1
=0
=0
=1
EscMen = LerMem = 0 pois nem escreve nem lê da memóriaEscReg = 1 pois “Reg a ser escrito” seleciona registrador que vai receber “dado de escrita”
![Page 5: Caminho de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022062409/56814918550346895db65093/html5/thumbnails/5.jpg)
Controle para Operação de Carga
Reg a ser lido # 1
Reg a ser lido #2
Reg a ser escrito
Dado de escrita
Dado lido #1
Dadolido #2
EscReg
Endereço
Dado a ser escrito
Dadolido
LerMem
EscMen
Extensãode sinal
UAL
MUX
MUX
Memória de Instruções
Endereço deleitura
Instrução
PC
1 Somador
16 32
MUX
UAL
MUX
DvC = 0Add
=1
=1
=0
=0
=1
=0
LerMem = 1 pois lê da memóriaEscReg = 1 pois “Reg a ser escrito” seleciona registrador que vai receber “dado de escrita”
![Page 6: Caminho de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022062409/56814918550346895db65093/html5/thumbnails/6.jpg)
Controle para Operação de Armazenamento
Reg a ser lido # 1
Reg a ser lido #2
Reg a ser escrito
Dado de escrita
Dado lido #1
Dadolido #2
EscReg
Endereço
Dado a ser escrito
Dadolido
LerMem
EscMen
Extensãode sinal
UAL
MUX
MUX
Memória de Instruções
Endereço deleitura
Instrução
PC
1 Somador
16 32
MUX
DvC = 0Add
=1
=0
=X
=1
=0
=X
EscMem = 1 pois escreve da memóriaEscReg = 0 pois não usa o “Reg a ser escrito”
UAL
MUX
![Page 7: Caminho de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022062409/56814918550346895db65093/html5/thumbnails/7.jpg)
Controle para Op. de Desvio Condicional
Reg a ser lido # 1
Reg a ser lido #2
Reg a ser escrito
Dado de escrita
Dado lido #1
Dadolido #2
EscReg
Endereço
Dado a ser escrito
Dadolido
LerMem
EscMen
Extensãode sinal
UAL
MUX
MUX
Memória de Instruções
Endereço deleitura
Instrução
PC
1 Somador
16 32
MUX
DvC = 1Sub
=0
=0
=X
=0
=0
=X
EscMen = LerMem = 0 pois nem escreve nem lê da memóriaEscReg = 0 pois não usa o “Reg a ser escrito”Se R[regA]-R[regB] = 0 então o sinal na saída Zero é 1, se não o sinal na saída Zero é 0.
(beq)
UAL
MUX
![Page 8: Caminho de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022062409/56814918550346895db65093/html5/thumbnails/8.jpg)
Sinal de Controle
Reg a ser lido # 1
Reg a ser lido #2
Reg a ser escrito
Dado de escrita
Dado lido #1
Dadolido #2
EscReg
3
Endereço
Dado a ser escrito
Dadolido
LerMem
EscMen
Extensãode sinal
UAL
MUX
MUX
Memória de Instruções
Endereço deleitura
Instrução
PC
1 Somador
16 32
MUX
UAL
MUX
DvC
mDadoEsc
mUAL
mRegDest
UALop
![Page 9: Caminho de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022062409/56814918550346895db65093/html5/thumbnails/9.jpg)
Resumo Sinais de Controle
Op 000 010 011 100
add lw sw beq
mRegDest 1 0 X X
mUAL 0 1 1 0
mDadoEsc 1 0 X X
EscReg 1 1 0 0
LerMem 0 1 0 0
EscMen 0 0 1 0
DvC 0 0 0 1
UALop add add add sub
![Page 10: Caminho de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022062409/56814918550346895db65093/html5/thumbnails/10.jpg)
Resumo Sinais de Controle
Op 000 010 011 100
add lw sw beq
mRegDest 1 0 X X
mUAL 0 1 1 0
mDadoEsc 1 0 X X
EscReg 1 1 0 0
LerMem 0 1 0 0
EscMen 0 0 1 0
DvC 0 0 0 1
UALop0 0 0 0 0
UALop1 1 1 1 1
UALop2 0 0 0 1
UALop0 = 0UALop1 = 1
![Page 11: Caminho de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022062409/56814918550346895db65093/html5/thumbnails/11.jpg)
Implementação da Função de Controle
Op0
Op1
Op2
R-format lw sw beq
mUAL
mDadoEsc
EscMenDvC
LerMen
EscReg
UALOp2
mRegDest
![Page 12: Caminho de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022062409/56814918550346895db65093/html5/thumbnails/12.jpg)
Juntando as Partes
Instr [24:22] op
Reg a ser lido # 1
Reg a ser lido #2
Reg a ser escrito
Dado de escrita
Dado lido #1
Dadolido #2
EscReg
3
Endereço
Dado a ser escrito
Dadolido
LerMem
EscMem
Extensãode sinal
UAL
MUX
MUX
Memória de Instruções
Endereço deleitura
Instrução
PC
1 Somador
16 32
MUX
UAL
MUX
DvC
mDadoEsc
mUAL
mRegDest
UALop
ControlePrincipal
mUALmDadoEsc
EscMemDvC
LerMemEscReg
UALOp2
mRegDest
![Page 13: Caminho de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022062409/56814918550346895db65093/html5/thumbnails/13.jpg)
Implementação Monociclo
• Vantagens– Um ciclo de relógio por instrução torna lógica mais
simples• Desvantagens– Ciclo de clock determinado pela instrução que leva
maior tempo• Instrução de carga utiliza cinco unidades funcionais em
série: tempo de acesso à memória de instruções +– tempo de acesso ao banco de registradores +– retardo da UAL +– tempo de acesso à memória de dados +– tempo para armazenar os dados para o banco de
registradores– Duplicação de unidades funcionais