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.

Slides:



Advertisements
Apresentações semelhantes
Organização e Arquitetura de Computadores I Introdução
Advertisements

Capitulo 6: Entrada e Saída
Organização de Computadores I
1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
CPU: Controle e processamento
Sistemas Digitais Projeto RTL – Unidade de Controle
Arquitetura de Computadores
Arquitetura e organização de computadores
Arquitetura e organização de computadores
Arquitetura e organização de computadores.
Autor: Salvador P. Gimenez
Arquitetura de Computadores
A Arquitetura: conjunto de instruções
MIPS MULTICICLO Fluxo de Dados e Controle
Organização e Arquitetura de Computadores I Parte de Controle
Introdução à Informática
Rganização de Computadores A Interface entre o Processador e os Periféricos Capítulo 8 – Patterson & Hennessy (seções 8.4 e 8.5) Organização de Computadores.
Prof. Fábio M. Costa Instituto de Informática Universidade Federal de Goiás rganização de Computadores Organização do Processador Parte B Capítulo 5 –
Sistemas Digitais Microprocessados
1. Circuitos seqüenciais - conceito 2. Flip-flops 3. Registradores 4
Implementação da CPU Análise de um computador simplificado Implementação da Unidade de Controle para o computador simplificado.
Cálculo da Freqüência de Operação do Relógio
Máquina de Estados Finito
Processadores – Aula 3 Professor: André Luis Meneses Silva
Introdução à Programação
Exercícios Referentes à Prova P2
Circuitos Seqüenciais Descrição VHDL
PROGRAMAÇÃO I UNIDADE 1.
Unidade Central de Processamento
Unidade Central de Processamento
Comunicações do Bloco de Controle para Bloco de Dados e Memória
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 Descrição de Atrasos.
Circuitos Seqüenciais
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Computador Cleópatra Arquitetura e Programação.
Exercícios de Máquinas de Estado
Exercícios Referentes à Prova P1
Computador Cleópatra Formato de Instrução e Codificação
PCI- Introdução à Computação
Computador Cleópatra Programação Assembly e Alto Nível
Arquiteturas Von Neumann e Harvard Computador Cleópatra
Organização e Arquitetura de Computadores
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Agenda Modos de Endereçamento.
Processamento de dados na UCP e memória UCP
Organização de Computadores Bacharel em Sistema de Informação.
Capítulo VIII Ambientes de Execução
Organização e Arquitetura de Computadores
Unidade Central De Processamento: Processador
Introdução à Linguagem C
Circuitos Sequenciais
Capítulo 4 Nível da Microarquitetura
Circuitos Combinacionais Básicos Descrição VHDL
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
A Linguagem de Máquina – Desvios e Laços
Arquiteturas Von Neumann e Harvard Computador Cleópatra
Parte 3 Seção de Dados e Unidade de Controle
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Exercícios Circuitos Descritos em VHDL.
Software Básico Introdução à Organização de Computadores Capítulo 1 Mitsuo Takaki
Estrutura do Processador
Algoritmos e Programação MC102
Software Básico Apresentação da Disciplina Mitsuo Takaki
Processador MAC-1 Arquitectura.
Arquitetura de Computadores
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 08) Prof. Alessandro Bernardo.
Afonso Ferreira Miguel
Arquitetura de Microcomputadores
Organização e Arquitetura de Computadores
Arquitetura de computadores
Transcrição da apresentação:

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)

2 / 19 Comunicações entre Bloco de Dados e Bloco de Controle BLOCO DE CONTROLE BLOCO DE DADOS µinst IR µinst ck reset ce rw dados endereços MEMÓRIA dados e programa CPU ck Sinais enviados do BD para o BC: - instrução lida da memória - flags de estado reset nzc nzc v v Sinais de controle gerados conforme a instrução e ciclo de máquina

3 / 19 Interface de Entrada e Saída do Bloco de Controle

4 / 19 Máquina de Estados Finita do Bloco de Controle

5 / 19 Estados versus Microinstruções (FETCH 1/3) MAR (0) MDR (1) IR (2) RS (5) PC(3) AC (4) ULA 0 mux 1 sel escreve na memória lê da memória DATAMEM Codificação de escrita Codificação de leitura w r u lnz lcv CE RW CE RW NZCV MAR  PC

6 / 19 Estados versus Microinstruções (FETCH 2/3) MAR (0) MDR (1) IR (2) RS (5) PC(3) AC (4) ULA 0 mux 1 sel escreve na memória lê da memória DATAMEM Codificação de escrita Codificação de leitura w r u lnz lcv CE RW CE RW MDR  M[MAR]; PC++ NZCV

7 / 19 Estados versus Microinstruções (FETCH 3/3) MAR (0) MDR (1) IR (2) RS (5) PC(3) AC (4) ULA 0 mux 1 sel escreve na memória lê da memória DATAMEM Codificação de escrita Codificação de leitura w r u lnz lcv CE RW CE RW IR  MDR NZCV

8 / 19 Exercícios MicroinstruçõesInstruçõ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

9 / 19 Resposta de Exercícios MicroinstruçõesInstruções MAR  PC LDA #3CH MDR  M[MAR], PC++ IR  MDR MAR  PC MDR  M[MAR], PC++ AC  MDR, LNZ MAR  PC ADD VAR MDR  M[MAR], PC++ IR  MDR MAR  PC MDR  M[MAR], PC++ MAR  MDR MDR  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

10 / 19 Exercícios MicroinstruçõesInstruções MAR  PC MDR  M[MAR], PC++ IR  MDR AC <- NOT AC, LNZ MAR  PC MDR  M[MAR], PC++ IR  MDR MAR  PC MDR  M[MAR], PC++ MAR  MDR MDR  M[MAR] MAR  MDR MDR  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

11 / 19 Resposta de Exercícios MicroinstruçõesInstruções MAR  PC NOT MDR  M[MAR], PC++ IR  MDR AC <- NOT AC, LNZ MAR  PC OR VV,I MDR  M[MAR], PC++ IR  MDR MAR  PC MDR  M[MAR], PC++ MAR  MDR MDR  M[MAR] MAR  MDR MDR  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

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 CKMARMDRIRPCACRSNZCVMicroinstruçõesInstruções 1MAR  PC LDA #5BH 2MDR  M[MAR], PC  PC+1 3IR  MDR 4MAR  PC 5MDR  M[MAR], PC  PC+1 6AC  MDR, LNZ 7MAR  PC ADD 75H,I 8MDR  M[MAR], PC  PC+1 9IR  MDR 10MAR  PC 11MDR  M[MAR], PC  PC+1 12MAR  MDR 13MDR  M[MAR] 14MAR  MDR 15MDR  M[MAR] 16AC  AC + MDR, LNZ, LCV 17MAR  PC JV 1,R 18MDR  M[MAR], PC  PC+1 19IR  MDR 20MAR  PC 21MDR  M[MAR], PC  PC+1 22PC  PC + MDR 23MAR  PC HLT 24MDR  M[MAR], PC  PC+1 25IR  MDR Área de programaÁrea de dados 00: 40 5BLDA#5BH 02: 58 75ADDA,I 04: EC 01JV1,R 06: 00NOT 07: F0HLT.org #75H A: DB #B B: DB 78H 75: 76:

13 / 19 Resposta de Exercícios CKMARMDRIRPCACRSNZCVMicroinstruçõesInstruções MAR  PC LDA #5BH 24001MDR  M[MAR], PC  PC+1 340IR  MDR 401MAR  PC 55B02MDR  M[MAR], PC  PC+1 65BAC  MDR, LNZ 702MAR  PC ADD 75H,I 85803MDR  M[MAR], PC  PC+1 958IR  MDR 1003MAR  PC MDR  M[MAR], PC  PC MAR  MDR 1376MDR  M[MAR] 1476MAR  MDR 1578MDR  M[MAR] 16D311AC  AC + MDR, LNZ, LCV 1704MAR  PC JV 1,R 18EC05MDR  M[MAR], PC  PC+1 19ECIR  MDR 2005MAR  PC MDR  M[MAR], PC  PC PC  PC + MDR 2307MAR  PC HLT 24F008MDR  M[MAR], PC  PC+1 25F0IR  MDR Área de programaÁrea de dados 00: 40 5BLDA#5BH 02: 58 75ADDA,I 04: EC 01JV1,R 06: 00NOT 07: F0HLT.org #75H A: DB #B B: DB 78H 75: 76 76: 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

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?

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

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.code lda n Enquanto: add #-4 jz Fim lda n add #3 sta p,I lda p add #1 sta p lda n add #1 sta n jmp Enquanto Fim: hlt.endcode.data n:db #0 p: db #vet vet: db #0, #0, #0, #0.enddata #define TAM_VET 4 int n = 0; int vet[TAM_VET] = {0, 0, 0, 0}; main() { while(n < TAM_VET) { vet[n] = n + 3; n++; }

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 10 int 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; }

18 / 19 EXTRAS

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

20 / 19