Exercícios Referentes à Prova P2

Slides:



Advertisements
Apresentações semelhantes
Contadores e Registradores
Advertisements

Software Básico Silvio Fernandes Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:
Organização de Computadores I
Introdução à Hierarquia de Memória
Sistemas Digitais Projeto RTL – Unidade de Controle
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Circuitos Lógicos e Organização de Computadores Capítulo 8 –Circuitos Seqüenciais Síncronos Ricardo Pannain
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
A Arquitetura: conjunto de instruções
Software Básico Silvio Fernandes
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Ney Laert Vilar Calazans
Parte 7 - VHDL: Processos, Paralelismo e o Comando process (Continuação) LABORG 05/outubro/2009 César Augusto Missio Marcon Ney Laert Vilar Calazans.
Modelos de Troca de Dados em Nível Elétrico
Unidades de Execução e de Controle Sistemas Digitais.
Circuitos Lógicos Sequenciais
MC542 Organização de Computadores Teoria e Prática
Dicas de Circuitos MO801/MC912.
MC542 Organização de Computadores Teoria e Prática
Introdução à Informática
REPRESENTAÇÃO DE INSTRUÇÕES
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
1. Circuitos seqüenciais - conceito 2. Flip-flops 3. Registradores 4
Organização da Memória Principal
Arquitetura de Computadores
Estrutura de decisão e repetição em JAVA
Projeto de Somador com e sem Sinal
Sistemas Digitais Aula 11.
Cálculo da Freqüência de Operação do Relógio
Máquina de Estados Finito
Introdução à Programação
Circuitos Seqüenciais Descrição VHDL
Circuitos Combinacionais Básicos Descrição VHDL
UTFPR – Prof. Carlos Raimundo Erig Lima. .….… STD_LOGIC (equivalente ao BIT) STD_LOGIC_VECTOR (equivalente ao BIT_VECTOR)
Índice SUMÁRIO Introdução ao projeto de lógica seqüencial.
Engenharia de Software para Computação Embarcada
Funcionamento básico de um computador
Circuitos Seqüenciais Contadores
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Qualificadores.
Projeto de um Comparador Descrição Estrutural x Comportamental
Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)
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
Diagramas de Blocos e Descrição VHDL
Arquitetura de computadores
Projeto de Circuito Combinacional Unidade Lógica e Aritmética (ULA)
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Memórias.
Arquiteturas Von Neumann e Harvard Computador Cleópatra
Exercício 1 (POSCOMP ) De acordo com o teorema de De Morgan, o complemento de X + Y . Z é: X + Y . Z X . Y + Z X. (Y + Z) X . Y . Z.
ENGA78 – Síntese de Circuitos Digitais
Fundamentos de Programação
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Agenda Modos de Endereçamento.
Circuitos Combinacionais Exercícios 2 POSCOMP e ENADE
Unidade Central De Processamento: Processador
Unidade Central De Processamento: Processador
Circuitos Sequenciais
Circuitos Combinacionais Básicos Descrição VHDL
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.
Arquiteturas Von Neumann e Harvard Computador Cleópatra
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.
Eletrônica Digital II ELT013
Arquitetura de computadores
Introdução às Máquinas de Estados Finitos (Finite State Machine - FSM)
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Transcrição da apresentação:

Exercícios Referentes à Prova P2 1

Exercícios Assinale com V se a sentença estiver correta, caso contrário preencha com F ( ) Circuitos seqüenciais são aqueles cujas portas de saída são funções instantâneas das portas de entrada e do seu estado atual ( ) O que difere um sistema seqüencial de um sistema combinacional, é que o sistema combinacional tem elementos de memorização que permitem armazenar seu estado atual ( ) Flip-flop é um circuito com capacidade de armazenar um byte de informação. Este pode ser implementado com portas lógicas e laços de realimentação ( ) Normalmente, uma aplicação quando implementada de forma seqüencial consome menos área, mas é mais lenta que uma implementação combinacional equivalente ( ) Relógio é um sinal periódico com freqüência constante, normalmente utilizado para sincronizar operações de um sistema seqüencial ( ) Na lista de sensitividade de um processo que descreve um subsistema seqüencial devem estar todos os sinais utilizados no processo que podem ter o seu valor alterado Para que serve a lista de sensitividade dos processos?

Exercícios Faça um programa VHDL de uma máquina reconhecedora de padrões Esta máquina tem como entradas os sinais: reset (std_logic), que quando tiver o valor ‘1’ faz com que os registradores e/ou contadores da máquina sejam zerados; clock (std_logic), que informa os momentos de carga dos registradores e/ou contadores. Considere que, tanto os registradores quanto contadores são assíncronos e sensíveis à borda de subida do clock; entr (std_logic_vector(7 downto 0)), vetor de 8 bits que contém uma seqüência randômica de padrões que devem ser reconhecidos pela máquina. Para reconhecimento dos padrões a máquina dispõe das seguintes saídas: numClocks (std_logic_vector(15 downto 0)), vetor que contém o número de vezes que a entrada entr teve o valor x”FF” desde que o sinal de reset foi ativado até o momento atual; numRep (std_logic_vector(15 downto 0)), vetor que contém o número de vezes que o vetor entr teve padrões iguais consecutivos desde que o sinal de reset foi ativado; Ov, flip-flop que, com valor 1, indica se algum dos contadores (numClocks ou numRep) atingiu o máximo da contagem de 16 bits. Uma vez Ov obtendo valor igual a 1, este se mantém enquanto não ocorrer um novo sinal de reset. Faça o VHDL tanto da entidade, como da arquitetura. OBS.: Não é necessário fazer o testbench!

Exercícios Faça um contador sensível à borda de subida e com um reset assíncrono. O contador deve ter também um valor para inicialização. A contagem deve ser em passos de 5 e o contador deve ter a capacidade de contar até 315. Depois do contador atingir este valor, ele deve ser zerado. Mostre a entidade e como ficaria o diagrama de blocos implementado na arquitetura Faça um testbench para o item acima. Considere 2 momentos de reset e um clock de 333.33 MHz Faça uma subrotina (com label Mult) para multiplicar dois valores que estão nas posições de memória apontadas pelos labels a e b. O resultado desta multiplicação deve ir para a posição de memória apontada pelo label c. Note que o valor da multiplicação pode ultrapassar a capacidade de armazenamento de c. Ignore este problema! Faça um programa que leia um vetor de 5 valores apontado pelo label vet e, utilizando a rotina Mult implementada acima, gere um novo vetor, apontado pelo label vetMul. Este último vetor deve ser igual ao vetor vet com todos os seus valores multiplicados pela constante que está no endereço cte

Exercícios Dado o programa ao lado, descrito em linguagem de montagem do processador Cleópatra Faça uma descrição em linguagem mais abstrata deste programa Mostre como fica o endereçamento de código e dados Coloque ao lado das instruções o número de ciclos de relógio gasto Gere o código objeto do mesmo Qual o tamanho em bytes do programa? Suponha que o label b tenha associado ao invés da constante 07h, a variável n (considere que a área de dados dá suporte a qualquer valor de n). Então, expresse o número de ciclos para executar este programa em termos de n, usando a forma: n_ciclos = a1*n + a2, onde a1 e a2 são constantes que devem ser calculadas a partir do programa e da definição de quantos ciclos de relógio cada instrução leva para ser executada. Ex. n_ciclos = 80*n + 45 Considerando que o tempo de execução desejado para o programa deva ser o mais próximo possível de 1 milissegundo, e que se fixa o valor de n = 8, calcule a freqüência de relógio do processador LDA b INI: jz FIM,R LDA a,I ADD #3 STA a,I LDA a ADD #1 STA a ADD #-1 STA b JMP INI FIM: HLT a: DB #c b: DB #07h c: DB #01h DB #02h DB #03h DB #04h DB #05h DB #06h DB #07h

Exercícios Preencher com o endereçamento (b), código objeto (d) e número de ciclos (c) Linha End Código Objeto ciclos 1. LDA b 2. INI: jz FIM,R 3. LDA a,I 4. ADD #3 5. STA a,I 6. LDA a 7. ADD #1 8. STA a 9. 10. ADD #-1 11. STA b 12. JMP INI 13. FIM: HLT Linha End Dados Objeto 14. a: DB #c 15. b: DB #07h 16. c: DB #01h 17. DB #02h 18. DB #03h 19. DB #04h 20. DB #05h 21. DB #06h 22. DB #07h

Exercícios Complete a tabela abaixo com as microinstruções referente às instruções das linhas 5 e 6 do programa exemplo anterior (instruções STA e LDA) ALU write_r read_r lnz lcv ce rw MAR MDR IR PC AC N Z C V Microcódigo

Exercícios  (POSCOMP 2009 - 38) Após a execução do pedaço de programa a seguir, escrito na linguagem de montagem do 8086, que valores estarão em AL e BL? ; IF 25 = 10 then VAR = 30 MOV AL, 25 MOV BL, 10 CMP AL, BL JNZ rot1 MOV AL, 30 MOV VAR, AL rot1: ... VAR DB 0 AL = 15, BL = 10 AL = 25, BL = 10 AL = 15, BL = 30 AL = 25, BL = 30 AL = 30, BL = 10

Exercícios  (POSCOMP 2010 - 34) Considere o conjunto de operações descritas a seguir, em linguagem de transferência entre registradores. F1: REM  CP; F2: RDM  M[REM], CP  CP + 1; F3: RI  RDM; Dados: REM é o registrador de endereços da memória; RDM é o registrador de dados da memória; RI é o registrador de instruções; CP é o contador de programa e M[X] é o conteúdo de memória indicado pelo endereço X. Assinale a alternativa que indica a que fase do processamento de uma instrução em uma máquina pipeline corresponde o conjunto de operações descrito. a) Decodificação de instrução. b) Busca de operando. c) Execução de instrução. d) Busca de instrução. e) Armazenamento de resultado.

Exercícios (POSCOMP 2010 - 40) Considere o diagrama a seguir. Seja a máquina de estados finitos representada pelo diagrama acima, determine o modelo (Mealy ou Moore) e o circuito digital ao qual ela corresponde. a) Modelo de Mealy correspondente a um contador módulo 5 b) Modelo de Moore correspondente a um contador módulo 5 c) Modelo de Mealy correspondente a um identificador da seqüência 100 d) Modelo de Moore correspondente a um identificador da seqüência 100 e) Modelo de Mealy correspondente a um flip-flop JK

RESPOSTAS

RESPOSTAS

Resposta de Exercícios Faça um programa VHDL de uma máquina reconhecedora de padrões ... entity Cont is port ( reset, clock: in std_logic; entr: in std_logic_vector(7 downto 0); numClocks: out std_logic_vector(15 downto 0); numRep: out std_logic_vector(15 downto 0); Ov: out std_logic ); end Cont; architecture Cont of Cont is signal numClocksInt: std_logic_vector(15 downto 0); signal numRepInt: std_logic_vector(15 downto 0); signal entrOld: std_logic_vector(7 downto 0); signal OvInt: std_logic; begin Ov <= OvInt; numClocks <= numClocksInt; numRep <= numRepInt; process(reset, clock) if reset = '1' then numClocksInt <= (others=>'0'); numRepInt <= (others=>'0'); OvInt <= '0'; elsif clock'event and clock ='1' then if entr = x"FF" then numClocksInt <= numClocksInt + 1; end if; if entr = entrOld then numRepInt <= numRepInt + 1; entrOld <= entr; if numClocksInt = x"FFFF" or numRepInt = x"FFFF" then OvInt <= '1'; end process; end Cont;

Resposta de Exercícios Faça uma sub-rotina (com label Mult) para multiplicar dois valores que estão nas posições de memória apontadas pelos labels a e b. ... .code lda #4 sta a lda #5 sta b jsr Multip lda c hlt Multip: lda #0 sta c lda a LoopMultip: jz FimMultip lda b add c add #-1 jmp LoopMultip FimMultip: rts .endcode .data a: db #0h b: db #0h c: db #0h .enddata

Resposta de Exercícios Faça um programa que leia um vetor de 5 valores apontado pelo label vet e, utilizando a rotina Mult implementada acima ... .code lda cte sta b Inicio: lda size jz Fim lda pVet,i sta a jsr Multip lda c sta pVetMult,i lda pVetMult add #1 sta pVetMult lda pVet add #1h sta pVet add #-1 sta size jmp Inicio Fim: hlt Multip: lda #0 sta c lda a LoopMultip: jz FimMultip lda b add c jmp LoopMultip FimMultip: rts .endcode .data pVet: db #vet pVetMult: db #vetMult size: db #5h vet: db #3h db #4h db #5h db #6h db #7h vetMult: db #0h cte: db #3h a: db #0h b: db #0h c: db #0h .enddata

Resposta de Exercícios Linguagem mais abstrata (a) int c[] = { 1, 2, 3, 4, 5, 6, 7 }; int *a = &c[0]; int b = 7; while(b != 0) { *a = *a + 3; a++; b--; }

Resposta de Exercícios Preencher com o endereçamento (b), número de ciclos (c), código objeto (d) Linha End Código Objeto ciclos 1. 00 LDA b 44 1A 8 2. 02 INI: jz FIM,R BC 14 5/6 3. 04 LDA a,I 48 19 10 4. 06 ADD #3 50 03 6 5. 08 STA a,I 28 19 9 6. 0A LDA a 44 19 7. 0C ADD #1 50 01 8. 0E STA a 24 19 7 9. 10. 12 ADD #-1 50 FF 11. 14 STA b 24 1A 12. 16 JMP INI 84 02 13. 18 FIM: HLT F0 4 Linha End Dados Objeto 14. 19 a: DB #c 1B 15. 1A b: DB #07h 07 16. c: DB #01h 01 17. 1C DB #02h 02 18. 1D DB #03h 03 19. 1E DB #04h 04 20. 1F DB #05h 05 21. 20 DB #06h 06 22. 21 DB #07h

Resposta de Exercícios Tamanho do código (e) 9. Equação (f) 9. Tempo (g) 25 bytes de código 9 bytes de dados 34 bytes no total n_ciclos = (5 + 10 + 6 + 9 + 8 + 6 + 7 + 8 + 6 + 7 + 6) * N + (8 + 6 + 4) n_ciclos = 78N + 18 n_ciclos = 78 * (8) + 18 = 642 ciclos = 642 T (períodos de relógio) 642 T = 1ms = 0,001s  T = 0,001 / 642 = 1,558 us f = 1 / T = 1 / 1,558 us = 642 KHz

Resposta de Exercícios Complete a tabela abaixo com as microinstruções referente às instruções das linhas 5 e 6 do programa exemplo anterior (instruções STA e LDA)

Resposta de Exercícios  (POSCOMP 2009 - 38) Após a execução do pedaço de programa a seguir, escrito na linguagem de montagem do 8086, que valores estarão em AL e BL? ; IF 25 = 10 then VAR = 30 MOV AL, 25 MOV BL, 10 CMP AL, BL JNZ rot1 MOV AL, 30 MOV VAR, AL rot1: ... VAR DB 0 AL = 15, BL = 10 AL = 25, BL = 10 AL = 15, BL = 30 AL = 25, BL = 30 AL = 30, BL = 10

Resposta de Exercícios  (POSCOMP 2010 - 34) Considere o conjunto de operações descritas a seguir, em linguagem de transferência entre registradores. F1: REM  CP; F2: RDM  M[REM], CP  CP + 1; F3: RI  RDM; Dados: REM é o registrador de endereços da memória; RDM é o registrador de dados da memória; RI é o registrador de instruções; CP é o contador de programa e M[X] é o conteúdo de memória indicado pelo endereço X. Assinale a alternativa que indica a que fase do processamento de uma instrução em uma máquina pipeline corresponde o conjunto de operações descrito. a) Decodificação de instrução b) Busca de operando c) Execução de instrução d) Busca de instrução e) Armazenamento de resultado

Resposta de Exercícios  (POSCOMP 2010 - 40) Considere o diagrama a seguir. Seja a máquina de estados finitos representada pelo diagrama acima, determine o modelo (Mealy ou Moore) e o circuito digital ao qual ela corresponde. a) Modelo de Mealy correspondente a um contador módulo 5 b) Modelo de Moore correspondente a um contador módulo 5 c) Modelo de Mealy correspondente a um identificador da seqüência 100 d) Modelo de Moore correspondente a um identificador da seqüência 100 e) Modelo de Mealy correspondente a um flip-flop JK