Sistemas Lógicos II
Aula 6
1
Arquitectura e controlo
• Flexibilizando
João Paulo Pimentão ([email protected])
– Usar uma RAM
2
RAM
2k posições de
n bits cada
k
k-bit read/write
address
bus
enable
João Paulo Pimentão ([email protected])
Flexibilidade: programa
3
• Programas residem
em memória
• Programa: sequência
de instruções
• Uma instrução
– Código de operação
(OpCode)
– Opcionalmente:
parâmetros
• Nº de bits do OpCode
– Função do número de
instruções suportado
• 4 instruções: 2 bits
• 8 instruções: 3 bits
• ...
• Não faz sentido ter
memórias de
dimensão (nº de bits)
variável
– Memória de Programa
– Memória de Dados
• Se o OpCode é
reduzido podemos
usar os outros bits
para parâmetros...
Programa
João Paulo Pimentão ([email protected])
• Considerem-se as seguintes operações
–
–
–
–
STOP
ADD ACC, addr
SUB ACC, addr
MOV addr, ACC
, Não faz nada e pára
, ACC <- ACC+RAM[addr]
, ACC <- ACC-RAM[addr]
, RAM[addr] <- ACC
• 1º definem-se os OpCode (2 bits chegam)
Mnemónica
STOP
ADD ACC, addr
SUB ACC, addr
MOV addr, ACC
OpCode
00
01
10
11
• Com 8 bits, sobram 6... É pô-los a render...
4
Programa
• Se tivermos 6 bits para endereçar memória
João Paulo Pimentão ([email protected])
– Podemos endereçar 64 posições
5
• As nossas instruções podem ser todas
codificadas usando um byte para cada uma
7
6
5
4
C1
C0
A5
A4 A3 A2 A1 A0
OpCode
3
2
Address
1
0
Programa
João Paulo Pimentão ([email protected])
addr
6
7
6
5
4
3
2
1
0
C1 C0 A5 A4 A3 A2 A1 A0
Comentários
00
1
0
1
1
1
0
1
1 SUB ACC, 59
01
0
1
1
1
1
1
0
0 ADD ACC, 60
02
1
0
1
1
1
1
0
1 SUB ACC, 61
03
0
1
1
1
1
1
1
0 ADD ACC, 62
04
0
1
1
1
1
1
1
1 ADD ACC, 63
05
1
1
1
0
0
1
1
1 MOV 39, ACC
06
0
0
X
X
X
X
X
X STOP
...
João Paulo Pimentão ([email protected])
addr
7
7
6
5
4
3
2
1
0
C1 C0 A5 A4 A3 A2 A1 A0
Comentários
00
1
0
1
1
1
0
1
1 SUB ACC, 59
01
0
1
1
1
1
1
0
0 ADD ACC, 60
02
1
0
1
1
1
1
0
1 SUB ACC, 61
03
0
1
1
1
1
1
1
0 ADD ACC, 62
04
0
1
1
1
1
1
1
1 ADD ACC, 63
05
1
1
1
0
0
1
1
1 MOV 39, ACC
06
0
0
X
X
X
X
X
X STOP
...
59
0
0
1
1
0
0
0
1
49
60
1
0
1
1
0
0
1
1
-79
61
1
1
0
0
1
1
0
0
-52
62
0
1
1
1
1
0
0
1
121
63
0
1
0
1
0
0
1
0
82
• Assumindo ACC = 0 no início
• RAM[39] <- 0-(49)+(-79)-(-52)+(121)+(82) = +127
IPC
Increment
Program Counter
PC
Program Counter
(6 bits)
TPC
Transfer from PC
MAR
Memory Address Register
(6 bits)
João Paulo Pimentão ([email protected])
TIR
Transfer from IR
8
OpCode
TB
Transfer
from BUS
enable
2 bits
RAM
64 palavras
de 8 bits
(6 bits endereço)
R/W
BUS 8 bits
Address
Instruction Register (IR)
(8 bits)
6 bits
W
R
I
C
Z
CI
Controlador
Somador
Sinais controlo
Alterações na
arquitectura...
W
R
Z
ACC
Passos na execução de
um programa
• Tudo começa na origem...
João Paulo Pimentão ([email protected])
– PC <-0
9
• Para cada uma das instruções FETCH:
Passo
MAR <- PC
IR <- RAM[MAR]
PC <- PC+1
Sinais activos
TPC
enable, R/W, TB
IPC
• A seguir, o controlo depende da instrução
EXECUTE
• No fim passa de novo a FETCH
– Excepto no caso STOP ☺ ☺ ☺
E se...
João Paulo Pimentão ([email protected])
• Precisarmos de mais memória
10
– 64 bytes é muito reduzido
– Comecemos por considerar 256 bytes então
precisamos de 8 bits de endereço
• As instruções podem ter mais de um
byte... exemplos
– Transferência: OpCode + Endereço
– Aritméticas: OpCode + Valor
– Controlo de fluxo
• Resultado: para algumas instruções, a
primeira parte da execução pode implicar
ir buscar mais dados ao programa.
Instruções multi-byte
João Paulo Pimentão ([email protected])
• Optimizar OpCode
11
– Detecção multi-byte deve depender de
um bit ou de uma operação simples de
bits (AND, OR, etc.)
• Ir buscar o próximo operando
– Aumentar o PC
– Onde guardar o operando
• Depende da Operação
IPC
Increment
Program Counter
PC
Program Counter
(6 bits)
TPC
Transfer from PC
MAR
Memory Address Register
(6 bits)
João Paulo Pimentão ([email protected])
TIR
Transfer from IR
12
OpCode
TB
Transfer
from BUS
2 bits
enable
RAM
64 palavras
de 8 bits
(6 bits endereço)
R/W
BUS 8 bits
Address
Instruction Register (IR)
(8 bits)
6 bits
W
R
I
C
Z
CI
Revisitando a
arquitectura...
Controlador
Caso multi-byte:
Somador
O FETCH coloca o
Sinais controlo
W
coloca o OpCode
ACC
R
Z
no IR depois: IPC, R/W, Enable e,
dependendo da instrução, W no CI ou
transferência para registo adicional (e.g. MAR)
João Paulo Pimentão ([email protected])
Outras arquitecturas
13
• Devem ser desenhadas de acordo
com as necessidades; i.e. com o
conjunto de instruções a
implementar.
João Paulo Pimentão ([email protected])
Trabalho 1
14
• Enunciado no Moodle
• Entregas no Moodle 20 de Abril 23:45