1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Documentos relacionados
1) Enumere e dê exemplo dos tipos de conflitos que podem ocorrer em um pipeline de instruções de um processador.

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador.

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Arquitetura e Organização de Computadores

Esse programa inclui dependências de tipo: escrita-escrita, leitura-escrita e escrita-leitura. Identifique e mostre estas dependências.

Faculdade de Computação Arquitetura e Organização de Computadores 2 3 a Lista de Exercícios Prof. Cláudio C. Rodrigues Data de Entrega: 22/11/2018

Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. Pipeline

Organização e Arquitetura de Computadores INTRODUÇÃO

ORGANIZAÇÃO DE COMPUTADORES

Arquitetura de Computadores. Conjunto de Instruções

Escalonamento de Instruções

Arquitetura de Computadores II

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

AULA DE REVISÃO 4 ILP

I. Considere os seguintes processadores A e B, ambos com arquitectura em pipeline, conforme ilustrado

SSC510 Arquitetura de Computadores 1ª AULA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

1) Considere a situação atual da memória do sistema computacional abaixo discriminada.

Organização de Sistemas de Computadores

Prof. Leonardo Augusto Casillo

Infraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW

2ª Lista de Exercícios de Arquitetura de Computadores

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

ção de Computadores II

Prof. Gustavo Oliveira Cavalcanti

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Arquitetura e Organização de Computadores

Microprocessadores. Execução em Paralelo Pipelines

Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio

Unidade Central de Processamento UCP (CPU)

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

SSC0112 Organização de Computadores Digitais I

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

Instituto Superior Técnico Departamento de Engenharia Electrotécnica e de Computadores Arquitectura de Computadores. 2º sem.

Arquitetura de Computadores I

Arquitetura e Organização de Processadores. Aulas 06 e 07. Superescalaridade

2. A influência do tamanho da palavra

Arquitetura de Computadores. Ciclo de Busca e Execução

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

Instruções. Maicon A. Sartin

Explorando o paralelismo entre instruções

SSC0611 Arquitetura de Computadores

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

Prova 1 Eng. Elétrica Arquitetura de Computadores Prof. Celso A. Saibel Santos Nome: Data:

Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores)

EA869 Pipeline. Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof.

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE DE CONTROLE E A INTERPRETAÇÃO DE INSTRUÇÕES. Prof. MSc. Tiago Alves de Oliveira

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

X Y Z A B C D

Predição de Desvios e Processadores Superescalares Especulativos

ENDEREÇAMENTO DE INSTRUÇÕES. Adão de Melo Neto

Disciplina: Arquitetura de Computadores

ORGANIZAÇÃO DE COMPUTADORES

Otimização de Execução em Processadores Modernos. William Stallings - Computer Organization and Architecture, Chapter 12 [Trad. E.Simões / F.

Aula 21: UCP: Instrução Jump, Monociclo vs. Multiciclo, Pipeline

III.2 - Princípios de Arquitetura

Univ ersidade Feder al do Rio de Janei ro Informáti ca DCC/IM. Pipeline. Gabriel P. Silva. Gabriel P. Silva

SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

PIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações

Estrutura e Funcionamento da CPU. Adriano Maranhão

Processador. Processador

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

18/10/2010. Unidade de Controle Controle. UC Microprogramada

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

SSC0510 Arquitetura de Computadores

SSC0114 Arquitetura de Computadores

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE DE CONTROLE E A INTERPRETAÇÃO DE INSTRUÇÕES. Prof. Dr. Daniel Caetano

Aula 15: Ciclo de Execução e Introdução ao Pipeline

Organização de Computadores

Parte 7 Pipeline: Conceitos básicos, implementação e ganho de desempenho

AULA DE REVISÃO 3 ILP

Introdução à Computação: Arquitetura von Neumann

Questionário Arquitetura e Organização de Computadores

2ª Lista de Exercícios de Arquitetura de Computadores

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Organização e Arquitetura de Computadores I

Organização de computadores. Aula 05

William Stallings Organização de computadores digitais. Capítulo 14 Operação da Unidade de Controle

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Solução Lista de Exercícios Processadores

Mestrado Integrado em Engenharia Informática e Computação. Arquitecturas Avançadas de Computadores Exame final

2. A influência do tamanho da palavra

Resumão de Infra-estrutura de Hardware

Arquitetura e Organização de Computadores

Micro-Arquiteturas de Alto Desempenho. Introdução. Ementa

Figura 1. Datapath do MIPS Superescalar Especulativo CES SE

Sistemas Operacionais. Conceitos de Hardware

Arquitetura de Computadores. Prof. João Bosco Jr.

Unidade de Controle. UC - Introdução

Transcrição:

1. A pastilha do processador Intel 80486 possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é organizado com mapeamento associativo por conjuntos de quatro linhas e com blocos de quatro palavras de 32 bits. A memória cache é organizada em 128 conjuntos. Existe um único "bit de linha válida" e três bits, BO, B1 e B2 (bits de uso para o algoritmo LRU), por conjunto. No caso de um acesso com falha na cache, o 80486 lê uma linha de 16 bytes da memória principal, em uma única leitura por meio do barramento de memória. Mostre como os diferentes campos do endereço são interpretados. 2. Uma memória cache associativa por conjuntos tem um tamanho de bloco de quatro palavras de 16 bits e um conjunto de duas linhas. A memória cache pode acomodar um total de 4048 palavras. A porção da memória principal que é cache tem dimensão de 64K x 32 bits. Mostre como os endereços do processador são interpretados. 3. Considere o seguinte código: for (i = O; i < 20; i++) for (j = O; j < 10; j + +) a[i] = a[i] * j; a. Dê um exemplo de localidade espacial no código. b. Dê um exemplo de localidade temporal no código. 4. Assumindo o pipeline de 4 estágios (BI: busca de instrução, DI: decodificação de instrução, EI: executa instrução, AR: armazena resultado), desenhe um diagrama de execução em pipeline para o seguinte fragmento de código. Assuma que o desvio não será tomado. ADD r1, r2, r3 SUB r4, r5, r6 BEQ r8, #0, r9 DIV r12, r13, r14 5. Desenhe um diagrama de tempo de um pipeline de dois estágios (busca e execução) para execução de um trecho de programa de quatro instruções. 6. Projete um código de operação com tamanho variável, de modo que permita que todas as operações a seguir sejam codificadas em uma instrução de 36 bits: i. Instruções com dois endereços de 15bits e um número de registrador de 3bits; ii. Instruções com um endereço de 15bits e um número de registrador de 3bits; iii. Instruções sem endereços ou registradores. iv. Suponha que um conjunto de instruções use um tamanho fixo de instruções de 16bits. As referências a operandos tem tamanho de 6bits. Existem k instruções com dois operandos e L instruções com zero operandos.

v. Qual o número máximo de instruções com um operando que pode ser fornecido? 7. Suponha que o endereço armazenado no contador de programa seja designado pelo símbolo X1. A instrução armazenada em X1 tem um campo de endereço (referência a operando) X2. O operando necessário para executar a instrução é armazenada uma palavra de memória de endereço X3. Um registrador índice contém o valor X4. Qual é a relação entre essas várias quantidades se o modo de endereçamento da instrução é i. direto; ii. indireto iii. indexado 8. Identifique as dependências de dados nesta seqüência de instruções: DIV r2, r5, r8 SUB r9, r2, r7 ASH r5, r14, r6 // r5=r14 deslocado r6 bits a esquerda MUL r11, r9, r5 BEQ r10, #0, r12 // desvia para endereço r10 se r12==0 OR r8, r15, r2 9. Suponha que é usado um pipeline de quatro estágios: busca, decodificação/iniciação, execução e resposta. Suponha que cada um dos estágios do pipeline consome um ciclo de relógio, exceto o estágio de execução. O estágio de execução gasta um ciclo para operações lógicas e para operações aritméticas simples sobre números inteiros, mas consome cinco ciclos para operações de carga (LOAD) de dado da memória. 10. Calcule os speedups de processadores pipeline com 2, 4, 8 e 16 estágios para um trecho de programa de 10 e 100 instruções. 11. Considere o seguinte programa em linguagem de montagem: I1: Move R3, R7 / R3 (R7) I2: Load R8, (R3) / R8 Memória (R3) I3: Add R3, R3, 4 / R3 (R3) + 4 I4: Load R9, (R3) / R9 Memória (R3) I5: BLE R8, R9, L3 / Desvia para L3 se (R9) > (R8) Esse programa inclui dependência de tipo escrita-escrita, leitura-escrita e escrita-leitura. Mostre essas dependências. 12. Descreva a Arquitetura básica proposta por Von Neumann e as vantagens da mesma em relação aos computadores anteriores à mesma. 13. Enumere as vantagens da microprogramação de instruções. 14. Descreva o ciclo de busca-decodificação-execução de instruções de uma CPU.

15. Um certo cálculo é altamente seqüencial. Explique se o mesmo seria executado de modo mais eficiente num processador pipeline ou num array processor. Justifique. 16. Descreva os princípios gerais em que se baseia a arquitetura superescalar. 17. Destaque as diferenças entre o nível de microprogramação e o nível de máquina convencional. 18. Que critérios devem ser adotados no projeto do formato de um conjunto de instruções? 19. Qual é a razão do uso de expansão do código de operação num conjunto de instruções de nível de máquina convencional? Como é implementada? 20. Explique o conceito de ortogonalidade do código de operação e operandos numa instrução de nível 3. 21. O que são Modos de Endereçamento? 22. Descreva: Endereçamento Imediato, Direto, Direto via Registrador, Indireto via Registrador, por Indexação e por Estrutura de Pilha. Destaque aplicações para as quais cada um destes modos é mais apropriado. 23. Enumere e dê exemplo dos tipos de conflitos que podem ocorrer em um pipeline de instruções de um processador. 24. Considere a execução do seguinte código em um pipeline de 5 estágios como definido na questão anterior: dadd R5, R6, R7 ld R6, 100(R7) dsub R7, R6, R8 dadd R7, R7, 1 sd 100(R7), R6 25. Quantos ciclos serão gastos para executar este código se não houver adiantamento de dados? E com adiantamento de dados? E se o processador possuir caches separadas para dados e instruções? 26. Considere a execução do seguinte código, com o mesmo pipeline descrito na questão anterior: Início: dadd R1, R2, R3 dadd R4, R5, R6 add R7, R8, R9 dadd R10, R11, R12 dadd R13, R14, R15 Se no primeiro ciclo a instrução correspondente ao label Início está sendo buscada, quais os registradores que estarão sendo lidos no quarto ciclo de execução,? Quais estarão sendo escritos? 27. Defina os conceitos de arquitetura VLIW, superpipelined e superescalar dos modernos processadores.

28. Dado um processador MIPS64 com um pipeline de 5 estágios, escreva um trecho de código em linguagem de montagem do MIPS64 em que ocorram as seguintes situações: a) Adiantamento de dados da saída para a entrada da ALU; b) Adiantamento de dados da saída do estágio de memória para a entrada da ALU; c) Uma bolha no pipeline devido a uma dependência de controle. 29. Considere o seguinte trecho de código em linguagem de montagem: dadd R5, R0, R0 daddi R20, R0, #400 Soma: ld R10, 1000(R20) dadd R5, R5, R10 dsubi R20, R20, #4 bnez R20, Soma Assuma que o pipeline do processador não possui mecanismos de stalls ou adiantamento de dados. Reescreva o código inserindo o menor número possível de nops para eliminar as dependências de dados. Se for possível, reordene as instruções para minimizar o número de nops (as instruções podem ser reordenadas desde que se preserve a equivalência semântica). 30. Considere o seguinte trecho de código: COPIA: ld sd R10, 1000(R20) R10, 2000(R20) dsubi R20, R20, 4 bnez R20, COPIA Assuma que o pipeline do processador não possui mecanismos de stalls ou adiantamento de dados. a) Reescreva o código inserindo o menor número de nops necessários; reordene as instruções, se possível, para minimizar o número de nops preservando a equivalência semântica. b) Escreva uma fórmula para o número de ciclos necessários para executar este laço como uma função de N (número de palavras copiadas), ou seja, se forem copiadas N palavras quantos ciclos serão necessários? Relacione os problemas que impedem que o pipeline obtenha a sua eficiência máxima na execução de um programa? 31. Quando acontece e como pode ser eliminado o conflito estrutural? 32. Descreva os tipos de dependências de dados, como e quando elas ocorrem e quais as técnicas para resolvê-las por hardware e por software? Que tipo (s) de dependência é(são) eliminada(s) com o renomeação de registradores?

33. Descreva as técnicas empregadas na resolução do conflito de controle, indicando quais são realizadas pelo compilador e quais pelo hardware (CPU). Comente as vantagens e desvantagens de cada técnica. 34. Descreva o funcionamento do branch target buffer, considerando as vantagens em usá-lo (considere o uso de 2 bits em cada entrada do buffer para previsão de desvio, mostrando a máquina de estados). Qual a vantagem dese usar um único bit ou dois bits na máquina de estados para a previsão de desvios? 35. Quando é necessário anular resultados de instruções já ou parcialmente executadas? 36. Descreva quais as vantagens e desvantagens de um processador realizar o acesso à memória através de apenas dois tipos de instruções: load e store? 37. Porque a implementação eficiente de pipelines só é possível em máquinas RISC? 38. Assuma que um programa tem um profile de execução onde 80% das instruções são simples (tais como AND, XOR, DADD e BEQZ) e o restante 20% são instruções complexas (tais como DMUL e DDIV). Adicionalmente considere que que as instruções simples precisam de 4 ciclos de máquina e as complexas precisam de 8 ciclos em uma máquina CISC (cada ciclo = 100 ns). Em uma máquina RISC, as instruções simples serão executadas em 1 ciclo, enquanto que as instruções complexas deverão ser simuladas por software necessitando, em média, 14 ciclos por instrução. Devido a sua simplicidade o tempo de ciclo em uma máquina RISC é de 70 ns. A máquina RISC será mais rápida que a CISC para na execução do programa mencionado? 39. Uma tabela de histórico de desvios (BHT) é uma pequena memória colocada no estágio de busca de instruções, indexada pelos bits mais baixos do endereço da instrução que está sendo buscada. Cada entrada na BHT codifica a predição do resultado da próxima execução de qualquer instrução de desvio que indexe essa entrada na tabela. i. Desenhe um diagrama de estados para um preditor bimodal e explique seu funcionamento. ii. Discuta a acurácia de predição desse esquema para um desvio no final de um loop. iii. Discuta a acurácia da predição de desvio se o preditor for de um bit. 40. Sobre a organização interna da CPU, é correto afirmar que: i. As operações aritméticas são realizadas diretamente pela Unidade de Controle; ii. Todos os registradores da CPU são visíveis ao usuário; iii. O registrador PC contém o endereço da instrução a ser buscada; iv. O registrador MAR contém uma palavra de dados a ser escrita na memória ou a palavra mais recentemente lida. 41. Analise as seguintes informações acerca dos modos de endereçamento:

I. O modo de endereçamento direto é aquele no qual o operando se encontra presente na instrução; II. O modo de endereçamento indireto permite um espaço de endereçamento maior, quando comparado ao modo de endereçamento direto; III.O modo de endereçamento à pilha é, na verdade, uma especialização do modo de endereçamento indireto via registrador. São verdadeiras as informações: (a) I, II e III; (b) I e II; (c) II e III; (d) I e III.