Bacharelado em Ciência da Computação – DINF / UFPR – Prof. Luis Allan Künzle
CI 210 – Projetos Digitais e Microprocessadores – 2o Semestre de 2013 – Prova Final – 19/12/2013
Prova sem consulta – Horário de inı́cio: 13:30h – Horário de término: 15:10h
Aluno: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1. Projete uma ULA com as seguintes caracterı́sticas:
• Entradas da ULA: duas entradas de dados (Y e Z) e uma entrada S de seleção de 3 bits
(S2 , S1 e S0 ).
• Saı́das da ULA: um resultado G (G2 , G1 e G0 ) e um bit único de carry out C.
A tabela a seguir mostra as funções que você deve implementar para este problema. Note que
+ e − nesta tabela significam operações aritméticas em complemento de dois; as operações
lógicas são realizadas bit-a-bit.
(a) Preencha a tabela mostrando como devem ser atribuı́das as entradas do somador para
cada operação aritmética (para don’t cares use X).
(b) Derive as expressões mı́nimas em soma de produtos para Ai , Bi e Cin .
(c) Desenhe a Unidade Aritmética usando portas OR (use produtos, p.ex. Y S2 S1 , como
entradas).
(d) Desenhe a Unidade Lógica usando portas lógicas e um mux 4x1.
(e) Desenhe a ULA como um bloco com entradas de ENABLE, dados lógicos (conectados
à Unidade Lógica), dados aritméticos (conectados à Unidade Aritmética), seletor e com
saı́da de resultado, usando um mux 2x1.
S2
0
0
0
0
1
1
1
1
S1
0
0
1
1
0
0
1
1
S0
0
1
0
1
0
1
0
1
Operação
Y
NOT(Y )
Y +Z
Y NOR Z
−Y (compl. de 2)
Y NAND Z
Y − Z (compl. de 2)
Y XOR Z
A
B
Cin
2. O circuito lógico seqüencial da Figura 2 realiza uma operação especı́fica. No circuito, as
caixas rotuladas por C e A são registradores de 4 e 8 bits, respectivamente. O valor desses
registradores é inicialmente zero. O bit único de saı́da da caixa rotulada “neg” é 1 se e
somente se a entrada de 8-bits é um número negativa quando interpretado como um inteiro
em complemento de dois. O circuito também contém uma memória de 24 palavras de 8-bits,
um incrementador de 4-bits, um somador de 8-bits (com um bit de carry in sempre em 1), um
inversor de 8-bits e um multiplexador 2-1 de 8-bits.
Em apenas uma frase, que operação este circuito realiza? Ou seja, qual é a relação entre o
valor no registrador A após 16 ciclos com os valores armazenados na memória? Você pode
montar uma tabela-rascunho para monitorar as operações do circuito.
4
C
Memória
4
Clock
1
8
24 por 8 bits
+
8
8
+1
8
1
8
A
neg
8
8
Figura 1: Circuito lógico seqüencial da Questão 2
2
0
1
8
3. Considere a instrução SWAP e o datapath multiciclo, apresentados, respectivamente, nas
Figuras 2 e 3. Complete a tabela abaixo com os sinais necessários, para cada micro-instrução,
de forma que a instrução SWAP seja corretamente executada. Sua execução consiste em trocar
o conteúdo dos registradores RegBase e RegFonte. Lembre-se que em um datapath multiciclo
cada µ-instrução corresponde a um ciclo de relógio e a respectiva transferência de valores aos
registradores.
OBS: Não é necessário modificar o datapath.
1
2
3
4
5
6
3
LdIR
SelExt
tsADD
tsPC
LdPC
SelPC
SelBasePC
tsMDR
LdMDR
SelMDR
R/W
EnMem
LdMAR
LdDPY
tsKBD
LdSR
tsALU
ALUCtrl
Ações em Register Transfer Language
LdReg
SelRegBusA
SelRegDst
µ-instrução
µ-instrução
1
2
3
4
5
6
ALUCtrl
00
01
10
11
Operation
A+B
A−B
A
B
Tabela 1: Sinais de controle da ULA da Questão 3
SWAP
1111
RegFonte
RegBase
000000
Figura 2: Instrução SWAP da Questão 3
SelRegDst
LdReg
RegA
1
0
RegDst
1
3
RegDst
3
RegBusA
ValBusA
DataOut
BusA
RegB
ValBusB
0
16
tsKBD
SelBasePC
0
DPY
DataIn
LdDPY
Load
1
DataIn
1
ValALU
16
Load
LdSR
N
P
[5]
ValImm5
16
SIGNAL EXT.
5
[4..0]
16
ValImmExt
0
0
En
0
DataIn
SelPC
2
ValDataOut
1
SIGNAL EXT.
2
3
SIGNAL EXT.
Load
[5..0]
2
RegDst
SelExt
LdPC
[8..0]
6
16
2
ValNextPC
+1
MDRMUX
1
PCMUX
[10..0]
9
16
ValBus
ValPC+1
R/W
DataOut
SIGNAL EXT.
1
ValBase+Imm
MEMORIA
11
16
Address
0
Z
SelB
+
SelMDR
ValP
B
ValMAR
R/W
ValZ
ValBasePC
DataOut
EnMem
ValN
ValB
LdMAR
Load
MAR
BASEPCMUX
KBD
16
A
LOGIC
DataOut
RegBusB
BusB
FILE REGISTER
3
16
16
tsALU
2
DataIn
LoadReg
SelRegBusA
RegA
ALUCtrl
ALU
0
ALUBMUX
RegDst
ValBus
16
[11..9]
RegA
PC
[8..6]
RegB
[2..0]
Instruction
ValPC
tsMDR
LdMDR
DataIn
Load
DataOut
MDR
tsPC
LdIR
tsAdd
ValMDR
ValBus
Figura 3: Datapath da Questão 3
4
Load
IR
Download

Final