arquitetura cleópatra bloco de controle (instruções e microinstruções)

20
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

Upload: raisie

Post on 29-Jan-2016

38 views

Category:

Documents


0 download

DESCRIPTION

Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções). Comunicações entre Bloco de Dados e Bloco de Controle. CPU. BLOCO DE CONTROLE. Sinais enviados do BD para o BC: - instrução lida da memória - flags de estado. ck. v. n. z. c. IR. µinst. ce. ck. rw. reset. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

prof. Dr. César Augusto M. Marcon

prof. Dr. Edson Ifarraguirre Moreno

Arquitetura Cleópatra

Bloco de Controle(Instruções e Microinstruções)

Page 2: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

2 / 19

Comunicações entre Bloco de Dados e Bloco de Controle

BLOCODE

CONTROLE

BLOCODE

DADOS

µinst IR

IRµinst

ck

ck

reset

ce

rw

dados

endereços MEMÓRIAdados e programa

CPU

ck

Sinais enviados do BD para o BC:- instrução lida da memória- flags de estado

reset

n z c

n z c

v

v

Sinais de controle geradosconforme a instrução e ciclo de máquina

Page 3: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

3 / 19

Interface de Entrada e Saída do Bloco de Controle

Page 4: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

4 / 19

Máquina de Estados Finita do Bloco de Controle

Page 5: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

5 / 19

Estados versus Microinstruções (FETCH 1/3)

MAR (0)

MDR (1)

IR (2)

RS (5)

PC(3)

AC (4)

ULA

0 mux1 sel

escreve na memória

lê da memória

DATAMEM

Codificação de escrita

Codificação de leitura

w

r

ulnz

lcv

CERW

CE RW

NZCV

MAR PC

Page 6: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

6 / 19

Estados versus Microinstruções (FETCH 2/3)

MAR (0)

MDR (1)

IR (2)

RS (5)

PC(3)

AC (4)

ULA

0 mux1 sel

escreve na memória

lê da memória

DATAMEM

Codificação de escrita

Codificação de leitura

w

r

ulnz

lcv

CERW

CE RW

MDR M[MAR];PC++

NZCV

Page 7: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

7 / 19

Estados versus Microinstruções (FETCH 3/3)

MAR (0)

MDR (1)

IR (2)

RS (5)

PC(3)

AC (4)

ULA

0 mux1 sel

escreve na memória

lê da memória

DATAMEM

Codificação de escrita

Codificação de leitura

w

r

ulnz

lcv

CERW

CE RW

IR MDR

NZCV

Page 8: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

8 / 19

Exercícios

Microinstruções Instruções

LDA #3CH

ADD VAR

1. Complete a tabela com as microinstruções correspondentes a cada instrução, sendo 3Ch uma constante em hexadecimal e VAR uma variável de memória

Page 9: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

9 / 19

Resposta de Exercícios

Microinstruções Instruções

MAR PC

LDA #3CH

MDR M[MAR], PC++IR MDRMAR PCMDR M[MAR], PC++AC MDR, LNZMAR PC

ADD VAR

MDR M[MAR], PC++IR MDRMAR PCMDR M[MAR], PC++MAR MDRMDR M[MAR]AC AC + MDR, LNZ, LCV

1. Complete a tabela com as microinstruções correspondentes a cada instrução, sendo 3Ch uma constante em hexadecimal e VAR uma variável de memória

Page 10: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

10 / 19

Exercícios

Microinstruções Instruções

MAR PCMDR M[MAR], PC++IR MDRAC <- NOT AC, LNZMAR PCMDR M[MAR], PC++IR MDRMAR PCMDR M[MAR], PC++MAR MDRMDR M[MAR]MAR MDRMDR M[MAR]AC AC OR MDR, LNZ, LCV

2. Dado o conjunto de microinstruções abaixo, associe a instrução correspondente à direita. Caso a instrução tenha operando e este seja uma constante, coloque o valor 33h, caso o operando seja uma variável coloque o label vv

Page 11: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

11 / 19

Resposta de Exercícios

Microinstruções Instruções

MAR PC

NOTMDR M[MAR], PC++IR MDRAC <- NOT AC, LNZMAR PC

OR VV,I

MDR M[MAR], PC++IR MDRMAR PCMDR M[MAR], PC++MAR MDRMDR M[MAR]MAR MDRMDR M[MAR]AC AC OR MDR, LNZ, LCV

2. Dado o conjunto de microinstruções abaixo, associe a instrução correspondente à direita. Caso a instrução tenha operando e este seja uma constante, coloque o valor 33h, caso o operando seja uma variável coloque o label vv

Page 12: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

12 / 19

Exercícios

3. Dado o programa ao lado (já com o código objeto) e a tabela de instruções/microinstruções, preencha os registradores e flags e a área de dados da Cleópatra

CK MAR MDR IR PC AC RS N Z C V Microinstruções Instruções1 MAR PC

LDA #5BH

2 MDR M[MAR], PC PC+13 IR MDR4 MAR PC5 MDR M[MAR], PC PC+16 AC MDR, LNZ7 MAR PC

ADD 75H,I

8 MDR M[MAR], PC PC+19 IR MDR10 MAR PC11 MDR M[MAR], PC PC+112 MAR MDR13 MDR M[MAR]14 MAR MDR15 MDR M[MAR]16 AC AC + MDR, LNZ, LCV17 MAR PC

JV 1,R

18 MDR M[MAR], PC PC+119 IR MDR20 MAR PC21 MDR M[MAR], PC PC+122 PC PC + MDR 23 MAR PC

HLT24 MDR M[MAR], PC PC+125 IR MDR

Área de programa Área de dados00: 40 5B LDA #5BH02: 58 75 ADD A,I04: EC 01 JV 1,R06: 00 NOT07: F0 HLT

.org #75HA: DB #BB: DB 78H

75:76:

Page 13: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

13 / 19

Resposta de Exercícios

CK MAR MDR IR PC AC RS N Z C V Microinstruções Instruções1 00 00 00 00 00 00 0 0 0 0 MAR PC

LDA #5BH

2 40 01 MDR M[MAR], PC PC+13 40 IR MDR4 01 MAR PC5 5B 02 MDR M[MAR], PC PC+16 5B AC MDR, LNZ7 02 MAR PC

ADD 75H,I

8 58 03 MDR M[MAR], PC PC+19 58 IR MDR10 03 MAR PC11 75 04 MDR M[MAR], PC PC+112 75 MAR MDR13 76 MDR M[MAR]14 76 MAR MDR15 78 MDR M[MAR]16 D3 1 1 AC AC + MDR, LNZ, LCV17 04 MAR PC

JV 1,R

18 EC 05 MDR M[MAR], PC PC+119 EC IR MDR20 05 MAR PC21 01 06 MDR M[MAR], PC PC+122 07 PC PC + MDR 23 07 MAR PC

HLT24 F0 08 MDR M[MAR], PC PC+125 F0 IR MDR

Área de programa Área de dados00: 40 5B LDA #5BH02: 58 75 ADD A,I04: EC 01 JV 1,R06: 00 NOT07: F0 HLT

.org #75HA: DB #BB: DB 78H

75: 7676: 78

3. Dado o programa ao lado (já com o código objeto) e a tabela de instruções/microinstruções, preencha os registradores e flags e a área de dados da Cleópatra

Page 14: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

14 / 19

Exercícios

4. Qual seria o tempo de execução do programa apresentado no exercício anterior (em segundo), se a Cleópatra tivesse uma freqüência de operação de 10MHz?

Page 15: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

15 / 19

Resposta de Exercícios

4. Qual seria o tempo de execução do programa apresentado no exercício anterior (em segundo), se a Cleópatra tivesse uma freqüência de operação de 10MHz?

f = 10 MHz --> T = 0,1us --> tempo de execução = 25 * 0,1us = 2,5us

Page 16: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

16 / 19

Exercícios

5. Faça uma função que descreve o tempo de operação do programa em função da variável n: f(n) = k1 n + k2

.codelda n

Enquanto:add #-4jz Fimlda nadd #3sta p,Ilda padd #1sta plda nadd #1sta njmp Enquanto

Fim:hlt

.endcode

.datan: db #0p: db #vetvet: db #0, #0, #0, #0

.enddata

#define TAM_VET 4int n = 0;int vet[TAM_VET] = {0, 0, 0, 0};

main(){

while(n < TAM_VET){

vet[n] = n + 3;n++;

}}

Page 17: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

17 / 19

Exercícios

5. Dado o programa em linguagem C apresentado abaixo, faça:

a. A compilação deste para o assembly da arquitetura Cleópatra

b. A codificação do assembly para a linguagem de máquina em hexadecimal, tanto para a área de dados, quanto para a área de código

c. Uma fórmula que caracterize o tempo de execução do programa em função das variáveis de controle de laços

d. A estimativa de qual deve ser a freqüência de operação do relógio para que este programa consiga ser executado em um tempo praticamente igual a 1us

e. A tradução das cinco primeiras instruções assembly para o microprograma (conjunto de microinstruções) correspondente

f. A associação das cinco microinstruções com suas respectivas microoperações

g. O preenchimento de todos os registradores e flip-flops devido a primeira passagem de cada uma das cinco microinstruções

#define TAM 10int vetA[TAM];

void main(){

for(int i=0; i < TAM - 1; i++)

{for(int k=i; k <

TAM-1; k++){

if(vetA[i] > vetA[k]){

int aux = vetA[i];

vetA[i] = vetA[k];

vetA[k] = aux;}

}}

}

Page 18: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

18 / 19

EXTRAS

Page 19: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

19 / 19

Máquina de Estados Finita (parcial e em blocos)

Page 20: Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)

20 / 19