Escolar Documentos
Profissional Documentos
Cultura Documentos
um processador simples
Busca
Executa Decodifica
Memórias diferentes
para instruções e
dados
Organização e Arquitetura de Computadores – IC/UFAL – Prof. Erick A. Barboza 3
Análise de Implementação Monociclo
Vantagem:
– Simplicidade de implementação
Datapath e Controle
Desvantagens:
– Custo de hardware
Duplicação de componentes devido a restrição de um ciclo para
o processamento de instrução
– Desempenho
Ciclo de clock longo para comportar instrução mais lenta
Instruções que demandam menos tempo deixam CPU ociosa
Implementação pouco eficiente
Implementação Multiciclo!
– Dividir processamento de instrução em diferentes estágios
– Cada estágio é executado em um ciclo de clock
Ciclo pode ser menor
– Diferentes instruções requerem quantidade de estágios
diferentes
Algumas instruções podem ser processadas em menos tempo
Tempo médio de processamento pode melhorar
– Mesmo componente de HW pode ser utilizado em estágios
diferentes
Executa Decodifica
Decodifica
e Lê Registradores
Busca
Executa Decodifica
Decodifica
e Lê Registradores
Acessa a Memória
Escreve em
Registradores
Formato
Aritméticos/Lógicos op rs rt rd sa funct
Armazenamento/Branch op rs rt deslocamento/endereço
Jump op endereço
Duplicação de componentes
para realizar somas
Instruction
register
Data
PC Address
A
Register #
Instruction
Memory or data Registers ALU ALUOut
Memory Register #
data B
Data register Register #
Instruction
register
Data
PC Address
A
Register #
Instruction
Memory or data Registers ALU ALUOut
Memory Register #
data B
Data register Register #
Registradores auxiliares
entre unidades funcionais
maiores
Valores que serão usados na mesma instrução, mas em ciclo de
clock diferente devem ser armazenados nestes registradores
Adicionado
Modificado
Compartilhamento de recursos
– Mais multiplexadores ou multiplexadores expandidos
Busca Instrução e
Atualiza PC
Decodifica
e Lê Registradores
Acessa a Memória
Escreve em
Registradores
IR <= Memory[PC];
PC <= PC + 4;
A <= Reg[IR[25:21]];
B <= Reg[IR[20:16]];
ALUOut <= PC + sign-ext(IR[15:0]) << 2;
Lê registradores A e B
Dependendo da instrução, executa
diferentes ações com ALU
Branch e Jump completados
Organização e Arquitetura de Computadores – IC/UFAL – Prof. Erick A. Barboza 30
Opera com a ALU: Instruções Aritméticas
Endereço
calculado no
ciclo anterior
//Referência à memória LW
MDR <= Memory[ALUOut];
OU
//Referência à memória SW
Memory[ALUOut] <= B
OU
//Operação Arit/Lógica
Reg[IR[15:11]] <= ALUOut
Monociclo
– Simplicidade de implementação
Tabela verdade usada para gerar lógica combinacional
Multiciclo
– Complexa
Estado do processamento da instrução deve ser levado em
conta
Pode ser projetada com o auxílio de uma máquina de estados
finita (Finite State Machine – FSM)
Start
IR <= Memory[PC];
PC <= PC + 4;
Estado
Transição
Escreve na
memória
Lê da memória e
depois escreve
em registrador
Executa
operação
especificada no
campo funct
Escreve
resultado no
registrador
Branch Jump
ALUSrcA
ALU SrcA = 0
Start IRWrite ALU SrcB = 11
ALUSrcB
ALUSrcB = 01 ALUOp = 00
ALUOp = 00
PCWrite
P C Source = 00
(Op = 'J')
Memory address
Branch Jump
computation Execution completion completion
2 6 8 9
ALU SrcA = 1
ALU SrcA = 1 ALU SrcA =1 ALU SrcB = 00
ALU SrcB = 10
ALUSrcB P CWrite
ALU SrcB = 00 ALUOp = 01
ALUOp = 00 P C Source = 10
ALU Op= 10 P CWriteCond
P C Source = 01
(Op = 'LW')
Memory Memory
access access R-type completion
3 5 7
RegDst = 1
MemR ead
MemRead MemWrit e RegWrite
IorD = 1 IorD = 1 MemtoReg = 0
Write-back step
4
R
RegDst=0
egDst =0
R
RegWrite
egWrite
MemtoReg=1
Organização e Arquitetura de Computadores – IC/UFAL – Prof. Erick A. Barboza 44
Exceções
Tipos de Exceções:
– Instrução Indefinida
– Overflow aritmético
Registrador EPC
– guarda endereço da instrução afetada
Registrador de Causa
– identifica o tipo de evento que causou a exceção
Novos estados
decorrentes do
tratamento de
exceção
PC - 4