Você está na página 1de 22

Organizao

Microoperaes JMP end


read write
C1: MAR PC MEM
C2: PC PC + 1 Busc wrPC MAR_sr
C2: MDR MEM(MAR) a c wrMA
PC R
C3: IR MDR (fetc 0
C4: MAR PC h) 1
C5: MDR MEM(MAR)
incPC MAR
C6: PC MDR Decodifica
o e (Memory address
Execuo register)

wrAC
wrRDM
(Memory data
register) MDR
AC

A B N Bloco de
opULA UL Z controle
wrIR

A IR

wrNZ
Organizao
Microoperaes JN end, N = 0
read write
C1: MAR PC MEM
C2: PC PC + 1 Busc wrPC MAR_sr
C2: MDR MEM(MAR) a c wrMA
PC R
C3: IR MDR (fetc 0
h) 1
C4: PC PC + 1
incPC MAR
(aponta instruo que Decodifica
segue o JN) o e (Memory address
Execuo register)

wrAC
wrRDM
(Memory data
register) MDR
AC

A B N Bloco de
opULA UL Z controle
wrIR

A IR

wrNZ
Organizao
Microoperaes JN end, N = 1
read write
C1: MAR PC MEM
C2: PC PC + 1 Busc wrPC MAR_sr
C2: MDR MEM(MAR) a c wrMA
PC R
C3: IR MDR (fetc 0
C4: MAR PC h) 1
C5: MDR MEM(MAR)
incPC MAR
C6: PC MDR Decodifica
o e (Memory address
Execuo register)

wrAC
wrRDM
(Memory data
register) MDR
AC

A B N Bloco de
opULA UL Z controle
wrIR

A IR

wrNZ
Organizao
Microoperaes JZ end, Z = 0
read write
C1: MAR PC MEM
C2: PC PC + 1 Busc wrPC MAR_sr
C2: MDR MEM(MAR) a c wrMA
PC R
C3: IR MDR (fetc 0
h) 1
C4: PC PC + 1
incPC MAR
(aponta instruo que Decodifica
segue o JN) o e (Memory address
Execuo register)

wrAC
wrRDM
(Memory data
register) MDR
AC

A B N Bloco de
opULA UL Z controle
wrIR

A IR

wrNZ
Organizao
Microoperaes JZ end, Z = 1
read write
C1: MAR PC MEM
C2: PC PC + 1 Busc wrPC MAR_sr
C2: MDR MEM(MAR) a c wrMA
PC R
C3: IR MDR (fetc 0
C4: MAR PC h) 1
C5: MDR MEM(MAR)
incPC MAR
C6: PC MDR Decodifica
o e (Memory address
Execuo register)

wrAC
wrRDM
(Memory data
register) MDR
AC

A B N Bloco de
opULA UL Z controle
wrIR

A IR

wrNZ
Organizao
Microoperaes HLT
read write
C1: MAR PC MEM
C2: PC PC + 1 Busc wrPC MAR_sr
C2: MDR MEM(MAR) a c wrMA
PC R
C3: IR MDR (fetc 0
h) 1

incPC MAR
PRA O Decodifica
PROCESSAMENTO o e (Memory address
Execuo register)

wrAC
wrRDM
(Memory data
register) MDR
AC

A B N Bloco de
opULA UL Z controle
wrIR

A IR

wrNZ
Organizao
Exerccio 1
Listar as microoperaes necessrias para
implementar a instruo LDI (load imediato)
LDI valor
LDI 23 ; AC 23

8 bits

7 4 3 0

Cdigo Dont care


Instruo de 2 bytes
Valor imediato
Organizao
Microoperaes LDI valor
read write
C1: MAR PC MEM
C2: PC PC + 1 Busc wrPC MAR_sr
C2: MDR MEM(MAR) a c wrMA
PC R
C3: IR MDR (fetc 0
C4: MAR PC h) 1
C5: PC PC + 1
incPC MAR
C5: MDR MEM(MAR) Decodifica
C6: AC MDR; wrNZ o e (Memory address
Execuo register)

wrAC
wrRDM
(Memory data
register) MDR
AC

A B N Bloco de
opULA UL Z controle
wrIR

A IR

wrNZ
Organizao
Exerccio 2
Listar as microoperaes necessrias para
implementar a instruo ADDI (add imediato)
ADDI valor
ADDI 7 ; AC AC + 7

8 bits

7 4 3 0

Cdigo Dont care


Instruo de 2 bytes
Valor imediato
Organizao
Microoperaes ADDI valor
read write
C1: MAR PC MEM
C2: PC PC + 1 Busc wrPC MAR_sr
C2: MDR MEM(MAR) a c wrMA
PC R
C3: IR MDR (fetc 0
C4: MAR PC h) 1
C5: PC PC + 1
incPC MAR
C5: MDR MEM(MAR) Decodifica
C6: AC AC + MDR; wrNZ o e (Memory address
Execuo register)

wrAC
wrRDM
(Memory data
register) MDR
AC

A B N Bloco de
opULA UL Z controle
wrIR

A IR

wrNZ
Organizao
Exerccio 3
Listar as microoperaes necessrias para
implementar a instruo LDIN (load indireto)
LDIN end
LDIN 23 ; AC MEM(MEM(23))

8 bits

7 4 3 0

Cdigo Dont care


Instruo de 2 bytes
Endereo indireto
Organizao
Microoperaes LDIN end
read write
C1: MAR PC MEM
C2: PC PC + 1 Busc wrPC MAR_sr
C2: MDR MEM(MAR) a c wrMA
PC R
C3: IR MDR (fetc 0
C4: MAR PC h) 1
C5: PC PC + 1
incPC MAR
C5: MDR MEM(MAR)
C6: MAR MDR Decodifica (Memory address
register)
C7: MDR MEM(MAR) o e
C8: MAR MDR Execuo
C9: MDR MEM(MAR)
wrAC
C10: AC MDR; wrNZ wrRDM
(Memory data
register) MDR
AC

A B N Bloco de
opULA UL Z controle
wrIR

A IR

wrNZ
Organizao read write

MEM
wrPC MAR_sr
c wrMA
PC R
0
1

Que modificao poderia ser incPC MAR


feita na organizao a fim (Memory address
de que a busca de register)
instruo custe apenas 2
ciclos ?
wrAC
wrRDM
(Memory data
register) MDR
AC

A B N Bloco de
opULA UL Z controle
wrIR

A IR

wrNZ
Organizao read write
C1: MAR PC MEM
C2: PC PC + 1 Busc wrPC MAR_sr
C2: IR MEM(MAR) a c wrMA
PC R
(fetc 0
h) 1

Que modificao poderia ser incPC MAR


feita na organizao a fim (Memory address
de que a busca de register)
instruo custe apenas 2
ciclos ?
wrAC
wrRDM
(Memory data
register) MDR
AC

A B N Bloco de
opULA UL Z controle
wrIR

A IR

wrNZ
Organizao
Nmero de ciclos necessrios para a execuo de
cada instruo na organizao estudada
CPI Cycles per Instruction

Instruo Ciclos
LDA, STA, ADD, OR, AND 8
JMP, JN (N=1), JZ (Z=1) 6
JN (N=0), JZ (Z=0), NOT 4
NOP, HLT 3
Desempenho
Tempo gasto na execuo de um programa
(ciclos de clock)
Instrues tem diferentes tempos de execuo (CPI)
1. Verificar as instrues executadas e quantas vezes elas so
executadas
2. Verificar o CPI de cada instruo executada e somar tudo
Exemplo

8 ciclos LDA a
4 ciclos NOT
8 ciclos ADD um
8 ciclos STA a
3 ciclos HLT
Total: 31 ciclos
Desempenho
Tempo gasto na execuo de um programa
(ciclos de clock)
loop:
1: 3*8 + 4
2: 3*8 + 4 LDA i ;
3: 3*8 + 6 ADD menos_um ;
3x
86 ciclos STA i ; i--
JZ fim ; Se i = 0 salta para fim
2*6 2x JMP loop ; Seno salta para loop
12 ciclos
fim:
3 ciclos 1x HLT ; Pra o processador

org 80h 2x o salto no ocorre (4 ciclos)


i: db 3 1x o salto ocorre (6 ciclos)
Total: 101 ciclos menos_um: db 0ffh
Desempenho
Tempo gasto na execuo de um programa
(segundos)
Basta multiplicar o nmero total de ciclos pelo perodo do
clock
Exemplo: Processador operando com um clock de
100MHz
Perodo = 1/Frequncia
Perodo = 1/100MHz
Perodo = 1/100*106
Perodo = 1/108
Perodo = 10-8s
Perodo = 10ns
Considerando exemplo anterior
101 ciclos * 10ns = 1010ns = 1,01s
Desempenho
Tempo gasto na execuo de um programa
(segundos)
Basta multiplicar o nmero total de ciclos pelo perodo do
clock
Exemplo: Processador operando com um clock de
200MHz
Perodo = 1/Frequncia
Perodo = 1/200MHz
Perodo = 1/200*106
Perodo = 1/2*108
Perodo = 0,5.10-8s
Perodo = 5ns
Considerando exemplo anterior
101 ciclos * 5ns = 505ns
Desempenho
CPI mdio para um programa
Varia conforme o mix de instrues executadas
CPImdio = Nmero total de ciclos/Nmero total de
instrues executadas
loop:
LDA i ; 15 instrues executadas
ADD menos_um ; em 101 ciclos
3x
STA i ; i--
JZ fim ; Se i = 0 salta para fim CPImdio = 101/15 = 6,73
2x JMP loop ; Seno salta para loop
fim: Para este programa, cada
1x HLT ; Pra o processador instruo leva em mdia
6,73 ciclos para ser
org 80h executada
i: db 3
menos_um: db 0ffh
Desempenho
Calcular o CPI mdio de um programa com
o seguinte mix de instrues executadas
40% instrues lgicas aritmticas
20% instrues de acesso memria
30% saltos no concretizados
10% saltos concretizados
CPI = 0,4*8 + 0,2*8 +0,3*4 + 0,1*6
CPI = 6,6
Organizao read write

MEM
wrPC MAR_sr
c wrMA
PC R
0
1

Como contar o nmero de incPC MAR


instrues executadas por (Memory address
um programa ? register)

wrAC
wrRDM
(Memory data
register) MDR
AC

A B N Bloco de
opULA UL Z controle
wrIR

A IR

wrNZ

Você também pode gostar