You are on page 1of 13

UNIVERSIDADE DO VALE DO ITAJAÍ CURSO DE CIÊNCIA DA COMPUTAÇÃO DISCIPLINA DE ARQUITETURA DE COMPUTADORES PROFESSOR RAFAEL LUIZ CANCIAN, Msc

QUESTÕES SELECIONADAS DE ARQUITETURA DE COMPUTADORES Introdução à Arquitetura de Computadores 1) Apresente um esquema da máquina de Von Neumann indicando do fluxo de informações entre os componentes do computador e enumere os passos necessários à execução de uma instrução de máquina. 2) O que é um ciclo de máquina? De quais etapas ele é composto? 3) Descreva os passos necessários para executar uma instrução num computador. O que aconteceria se o segundo passo fosse eliminado? 4) Cite pelo menos 4 princípios de projeto de uma máquina RISC.

5) Três softwares de sistema básicos são o Sistema Operacional, Compiladores e Montadores. Qual é a função básica de
cada um? 6) Um programa escrito em linguagem de alto nível passa por cinco níveis hierárquicos de tradução: Compilador, Montador, Ligador e Carregador. Cite a função principal de cada uma.

7) Sabe-se que cada uma das instruções num dado computador monoprocessado leva 1 milionésimo de segundo (1 μs)
para executar. Entretanto, sua taxa de execução é de 4,5 MIPS. O que você pode concluir sobre a estrutura do processador desse computador?

8) Os discos rígidos levam cerca de 5 a 20 milissegundos para acessar uma informação, enquanto que a memória RAM
leva cerca de 50 a 100 nanossegundos. Se a RAM é tão mais rápida que o disco rígido, por que não usamos apenas a RAM para armazenar os arquivos?

9) Mostre o que você entende da seguinte definição de computador, explicando cada termo sublinhado: “Um
multicomputador heterogênio ligado por uma rede de inteconexão dinâmica tipo switch com nós multiprocessadores RISC superescalares e vetoriais”. 10) Dê o conceito associado às definições abaixo:

a) Abstração específica que o hardware fornece ao software.
b) Conjunto de implementações da mesma arquitetura de instruções. Elas estão disponíveis ao mesmo tempo, e variam de preço e performance. c) Maneira de classificar os computadores com base na tecnologia empregada na sua implementação. d) Comando individual para um computador. e) Programa que gerencia os recursos do computador, em benefício dos programas que rodam em tal computador.

f) Memória pequena e muito rápida que age como um buffer da memória principal.
11) Se o mesmo programa, escrito em C, for compilado para certa arquitetura, o arquivo executável não poderá ser executado numa arquitetura diferente. Por que? 12) Em um processador X, todas as instruções gastam 2 ns para executar. Em um processador Y, todas as instruções gastam 1 ns para executar. Você pode afirmar com certeza que o processador Y é mais rápido que o processador X? Justifique sua resposta.

13) É possível termos computadores com implementações de hardware diferentes, mas que executem os mesmos
softwares? Justifique. 14) Suponha que um avanço tecnológico permita um flip-flop representar três estados, ou seja, ao invés dos dois estados de um bit, ou seja, um flip-flop poderia representar um “trit”. Quantos valores possíveis teria um registrador de 8 trits? 15) Por que é mais fácil otimizar um programa escrito em linguagem de máquina de um computador RISC do que de um computador CISC? 16) Abaixo são apresentados exemplos de instruções em linguagem de montagem de máquinas diferentes. Para cada instrução apresentada, classifique a máquina que possui tal instrução, informando se ela deve ser RISC ou CISC, com registradores de uso geral, acumulador ou máquina de pilha. a) add r1, r2, r3 b) add [r1], r2 c) add [r2] d) add

ULA e . ( ) Responsável pela decodificação de instruções e controle de microinstruções. Que número foi realmente representado? Qual o erro de arredondamento cometido? 24) Relacione os conceitos às suas definições . Indique os casos em que ocorre overflow. simplesmente estabelecendo os pontos de conexão entre seus elementos (portas lógicas). aritméticas e de deslocamento ( ) Todas as instruções de máquina reconhecidas por um computador ( ) Responsável pela execução de programas e gerenciamento de toda a máquina ( ) Local onde são guardadas as respostas à operações aritméticas e lógicas. 18) Ninguém compra um computador com o objetivo de executar o Sistema Operacional.17) Modos de endereçamento são a maneira no qual o processador encontra os operandos especificados numa instrução. E e OU.65625 21) Represente os seguintes números inteiros em binário. são “11111111”. representado em SM.Unidade de Controle f . ( ) Realiza operações lógicas.Acumulador ( ) Local onde são armazenados os dados e instruções de programas. como indicativo de como o circuito pode ser implementado. respectivamente. numa máquina com 4 bits de expoente e 10 bits de mantissa.x. em binário.z são declaradas como: “signed byte w. que realize as operações de soma.Conjunto de Instruções g . “01111111” e “11000000”. Então por que todo computador vem com um? Qual é sua função? Ele é realmente necessário? 19) Suponha uma linguagem de programação que suporte o tipo de dados “short float” de 16 bits.y. “10000000”.x. Quais são os dois primeiros valores maiores que zero representáveis por esse tipo de dados? 20) Transforme o seguinte número decimal para binário: 85. Utilize sempre a representação em 8 bits. ( ) Via de comunicação entre componentes de um computador. a . 25) Quais são os dois componentes principais do processador e qual é a função principal de cada uma?] 26) Quais são os três principais fatores que levam à constante evolução dos computadores? 27) Apresente o esquema gráfico de um circuito que implemente uma ULA de 1 bit. Implemente o multiplexador 4x1 de 1 bit apresentado abaixo à esquerda na matriz lógica programável à direita. sendo 10 bits para a mantissa e 5 bits para o expoente. Uma conexão já foi feita. subtração.Memória Principal d .Unidade Central de Processamento c .Barramento b . Cite 4 modos de endereçamento.z”. e faça um esquema (incluindo registradores da CPU e a memória) para cada mode de endereçamento que explique como o operando é encontrado. Mostre o resultado (binário e decimal) das seguintes operações aritméticas (ou informe que ocorreu overflow): a) x − z b) z + y c) x + w d) y − w 23) Represente o número 127. w. Seus valores. 28) Uma matriz lógica programável permite montar um circuito digital qualquer.y.828125 em ponto flutuante. S0 S1 C1 E0 E1 E2 E3 C0 S0 E0 E1 E2 E3 C0 C1 MUX 4x1 . a) –16 b) –128 c) +128 d) –3 22) Quatro variáveis.

Para cada trecho de código em linguagem de alto nível listado abaixo. c != 100. $t1. while (c != b) c -= b++. a) if (a==b) a++. $s6. c++) if (c==5) b = a. Cite quatro deles. lalonge 9) Os microprocessadores. $s2 b) ori $t0. Por isso. $s7. Enumere-os. respectivamente. Assuma que as variáveis já estão em registradores e não precisam ser atualizadas em memória. 5) Mostre como os seguintes trechos escritos em linguagem de montagem do MIPS seriam montados em formato binário. a) add $s0. $s2 e $s3.Linguagem de Máquina 1) Ao longo do tempo surgiram computadores com conjuntos de instruções de estilos diferentes. mostre como os seguintes trechos de código em linguagem de alto nível C seriam compilados para linguagem de montagem do MIPS. c++ b) c = 1. $t0. apresentando as instruções em linguagem de montagem correspondentes. a) 00110010000100011111111111111111 c) 10100001000000000000000011111111 b) 00000001011101100100000000100101 d) 00010110000100011111111111111110 Reg Dst Esc Reg UAL Fonte UAL Op Ler Mem Esc Mem MemP Reg DvI DvC 8) Considerando que você tenha entendido o endereçamento relativo a PC. o programa e o procedimento precisam executar seis passos. $s1. 32($t0) 6) Para cada instrução em linguagem de montagem apresentada abaixo. 0($t1) beq $t0. c) a = 2*(b – c) – d. 3) Assumindo que as variáveis a. d) a = 3*b – c / 0. gere o menor código assembly possível que seja equivalente ao trecho apresentado. d) for (c=0. mostre como os seguintes trechos de código em linguagem de alto nível C seriam compilados para linguagem de montagem do MIPS. têm memória principal muito pequena.. explique por que um montador pode ter problemas na implementação de instruções de desvio na seguinte seqüência de código: aqui: . 2) Durante a execução de um procedimento. c e d já estão armazenadas nos registradores $s0. . ajustando os sinais de controle para que essas instruções executem corretamente. c) do a++ while (a != 10). $0. 4) b) c = –d – 3 . $s1. faça o papel da Unidade de Controle. else b++. 127 c) laço: lw $t0. laço d) bne $s6. lalonge:add $t1..5. se comparados com os PC normais (normalmente de 256 bytes e 2 KB). fimse addi $s6. que costumam ser utilizados em ambientes de controle e automação. b = 0. Instrução Sub Or Andi Lw Sw Beq Bne J 7) Faça uma engenharia reversa no trecho binário apresentado abaixo. $t1 beq $t1. 1 fimse: sw $s6. $t2. Assumindo que as variáveis utilizadas ainda estão em memória. em sistemas com microprocessadores o tamanho do código é extremamente importante. a) a = b + (c – d). b.

Você implementou a função “movstr”. qual é a principal diferença entre chaveamento por pacote e chaveamento por circuito? Dê o exemplo de redes que utilizam essas metodologias. da memória para o vídeo. 7) Numa rede de computadores. Em que casos cada um deles é mais recomendado? 6) Faça 3 desenhos. qual é a fração do tempo do processador gasto com varreduras no mouse? 4) Calcule a banda passante gerada em um barramento para mostrar num vídeo VGA (640x480) um filme com 30 quadros por segundos e resolução de 16 bits por pixel. mostrando as possíveis maneiras de conectar os componentes de um computador (processador. Considere que os dados precisam passar duas vezes pelo barramento.10 −6 6 1. mas não deve ser contada.000 operações de entrada/saída por segundo. A palavra final deve ser copiada. 3) Um processador executa 100 pulsos de clock cada vez que faz um pooling (varredura) no mouse. 10) O tempo necessário para ler/escrever um dado no disco rígido é a soma do seu tempo de busca. Qual deve ser o tamanho da mensagem para que a rede ATM tenha o dobro de desempenho da rede Ethernet? TempoTotal ATM = 623 + b . Duas delas são o polling e as interrupções. b) f = 10 . b) Ethernet. e suporta no máximo 1. que copia uma string null-terminated de uma variável a outra.125.1. 11) Forneça a definição correta dos seguintes termos-chave: a) Entrada/saída mapeada em memória.1. do tempo de latência rotacional. Defina corretamente cada um desses tempos envolvidos. Se o processador tem freqüência de 500MHz e faz 40 varreduras no mouse por segundo. uma vez indo do CD-ROM para a memória e. e identifique cada um dos barramentos ilustrados conforme a nomenclatura de barramentos: “processador-memória” . c) Mestre de barramento.a) f = 2 * g + 2 * g . O programa pára de copiar ao encontrar uma palavra igual a 0. 2) Há muitas maneiras de acessar e atender dispositivos periféricos. Você não precisa preservar os valores dos registradores $a0 e $a1. Descreva para quê ele serve e como funciona. d) Protocolo do aperto de mão 12) Um buffer não inversor é um dispositivo de três estados. 5) Cite as principais características de barramentos síncronos e assíncronos. g = f – 3.10 9) Um sistema é capaz de executar 100 milhões de instruções por segundo. 8) As equações abaixo representam o tempo dotal envolvido na transmissão de uma mensagem de b bytes usando duas redes: uma Ethernet e uma ATM. memória e dispositivos). Termine o programa com a instrução de retorno de função. 10) Escreva um programa em linguagem assembly do MIPS que receba um número n no registrador $a0 e que guarde no registrador $v0 o valor do n-ésimo termo da série de Fibonacci. contando o número de palavras copiadas em $v0. “backplane” ou barramento de “entrada/saída”. Ignore o tempo de resposta e considere que as transações podem ser arbitrariamente sobrepostas no tempo. h=2*g.000 instruções. 12) Escreva a função em C “int fatorial(int n)” que calcula o fatorial de um número n. i = j – (2 * g + 2 * g) . que retorna de uma função. if ( f < g) f = f + 1. Considere que cada transação precise de 5 operações de entrada/saída para ser executado. Passe essa função para linguagem de montagem do MIPS. Interface entre Processador e Periféricos 1) O que é a arbitragem do barramento? Cite um mecanismo de arbitragem. Termine seu programa com a instrução “jr $ra”. na segunda. else g = g + 1. Explique o funcionamento básico desses dois mecanismos. e que cada operação de entrada/saída precise de 10. e calcule a taxa máxima de transações por segundo que esse sistema suporta. mas deve preservar os valores dos registradores $s0 a $s7. do tempo de transferência e do tempo da controladora.10 e TempoTotal Ethernet = 462 + b . .10 −6 6 10. 11) Escreva um programa em linguagem assembly do MIPS que copia palavras do endereço armazenado no registrador $a0 para o endereço armazenado em $a1.

e pi = 3. o monge líder dizia a segunda palavra a ser escrita no livro. e todos os escribas deveriam copiá-la. e todos os escribas deveriam copiá-la. 1: Escrita Usada tanto pela CPU quanto pela memória para sincronização. 1: Não há operação Usado pela CPU para informar que tipo de operação deve ser realizada: 0: Leitura. Ilustre com setas as dependências entre as mudanças de estado. Esse vídeo deve passar pelo barramento da máquina. Assim. colocando para tanto um grande número de escribas numa sala.14159 Número de FAT's: 2 Número de setores por FAT: 5721 Cabeças: 15 Setores por trilha: 63 18) Com base nessas informações. Atualmente ela está ligada a um barramento de 80 megabits por segundo. 14) Em certo computador. a memória pode ler ou gravar um byte em 25 nano segundos. Esse procedimento era repetido até o livro inteiro estivesse pronto. que pode transmitir numa taxa 100Mb/s. um mosteiro da Idade Média decidiu produzir livros escritos a mão. responda as seguintes perguntas: a) Qual é o tamanho total. Qual esquema de computador mais se parece com o sistema descrito? 3) Como pode ser realizado o paralelismo em nível de instruções? E o paralelismo em nível de processador? 4) O que é e como funciona a execução especulativa? . indicando o dispositivo mais prioritário e o menos prioritário. responda as seguintes perguntas: a) Qual é a distância entre dois bits consecutivos na trilha mais externa? b) Qual é densidade (bits/mm) da trilha mais externa? OBS: A circunferência de um círculo é 2. com 24 bits de cor por pixel. o monge líder dizia em voz alta a primeira palavra a ser escrita no livro. Com os sinais apresentados na figura abaixo.13) Para quê serve e como funciona o mecanismo Daisy-chain? Mostre um exemplo com um processador e 4 dispositivos. complete o diagrama de temporização que ilustra uma operação de escrita na memória. em megabytes. do disco rígido? b) Quantos kilobytes são gastos para armazenar as FATs? 20) Supondo ainda que o disco tem 3 cm de raio. Considerando as limitações da memória. qual será o aumento real na taxa de transferência para a memória? 15) Desejamos apresentar um vídeo de 800x600 pixels. ACK: 17) As próximas 3 questões referem-se às seguintes informações sobre um disco rígido: Total de setores: 5863662 Total de clusters: 731523 Bytes por setor: 512 Setores por cluster: 8 a) Há quantos bytes por trilha? b) Há quantos bytes por FAT? c) Há quantos bytes por cluster? 19) Com nas informações dadas. Durante a produção do livro. Linhas do Barramento Ender/Dado MREQ RD ACK RD: MREQ: Utilizado pela CPU para avisar a memória que há uma operação pendente: 0: Há operação. responda as seguintes perguntas: Processamento Paralelo e Distribuído 1) Quais são os tipos de computadores paralelos e qual é a principal diferença entre eles? 2) Para competir com a máquina de impressão recentemente inventada. até quantos quadros por segundo é possível apresentar esse vídeo? 16) Os barramentos assíncronos podem utilizar o protocolo handshake (aperto de mão) para realizar uma operação na memória.pi.r. Depois. se a taxa de transferência do barramento for aumentada para 400 megabits por segundo.

Explique porquê. Cite o nome dos três tipos de conflitos que diminuem o desempenho do pipeline. um programa executado nessa máquina roda mais rápido. $8. $8. COMA. Loop: lw addi beq $1. $4 7) O pipeline busca aumentar o desempenho do computador executando mais instruções em paralelo. mesmo assim. quais registradores estão sendo lidos e quais estão sendo escritos? add $1. $0 $9. Algum nó da rede vai deixar de se comunicar com algum outro em função desse problema? 10) Cite quatro métricas de desempenho usadas para avaliar redes de interconexão. $3 add $4. $7. e como essas métricas são obtidas. $9 add $10. 3) Explique porquê. MPP e COW? 7) O que são os ‘modelos de consistência’ e as ‘caches vigilantes’? Para quê eles são usados? 8) Uma rede de interconexão por comutadores com armazenamento na entrada apresenta o problema de bloqueio pelo cabeça da fila. calcule a CPI real se o programa rodar no processador com pipeline estudado 6) Mostre as modificações necessárias às instruções a seguir para possibilitar que elas façam uso do slot de desvio retardado. $5. mas sem nenhum método de otimização. 5) Considere um programa composto por 50 instruções lw. $2. $15 9) Suponha que o código assembly abaixo seja executado na máquina com pipeline.5) O que são e para quê servem as janelas de registradores? 6) Quais são as características principais de cada uma das seguintes arquiteturas: UMA. NUMA. No final do quinto ciclo de execução. que o endereço de destino de um salto condicional seja resolvido no 3 o estágio do pipeline. 8) Em quê consiste cada uma das técnicas de otimização do pipeline apresentadas abaixo? Em qual tipo de conflito elas são úteis? (use o verso) a) Caches separadas d) Salto retardado b) Adiantamento ou forwarding e) Reordenamento de instruções c) Previsão de salto f) Loop unrolling 13) Considere a execução do código abaixo na máquina com pipeline estudada. 4 $7. 50($7) $7. Para cada um dos 3 tipos de conflito. e que o período de relógio seja de 2 ns. O multiplexador que tem esse sinal como entrada usaria em seu lugar o sinal LerMem. 4) Na máquina estudada. Sabendo que cada instrução depende da instrução anterior a ela. $6 add $7. sem se preocupar com a qualidade de código. $1. $11. Mas nem sempre é possível manter o pipeline cheio. $12 add $13.000 iterações) add laco: lw $8. no pipeline estudado. não adianta usar a predição que o salto condicional irá ocorrer para buscar a próxima instrução após uma instrução de salto condicional. O que pode ser feito para solucionar esse problema? 9) Suponha que um fio entre os comutadores 2A e 3B da rede ômega tenha partido. Qual é o tempo de execução deste código? (obs: use o diagrama abaixo. Pipeline 1) Explique como funciona o pipeline 2) Um projetista está propondo eliminar o sinal de controle MemParaReg. 0($8) # $8  0 # $8  $8 + 1 # $9  Mem[$8] addi $8. o pipeline torna cada uma das instruções mais lenta (de 8ns para 10ns). São executadas 10. 1 . devido aos conflitos que podem ocorrer. cite todas as técnicas que podem ser utilizadas para eliminá-los ou diminuir seu impacto. $14. Você acha que esta modificação vai funcionar? Justifique sua resposta. $0.

MemParaReg = 1 12) Suponha que se queira implementar a instrução “load word register”. com a sintaxe “lwr <regd>.$10. UALFonte = 0 b.000 goto laco 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 B D X M R 10) Supondo agora que o código assembly da questão anterior seja executado na máquina com pipeline (Tr = 2ns).$8. que acessa a memória no endereço dado pela soma dos registradores <regs> e <regt> e coloca seu conteúdo no registrador <regd>. (obs: use o diagrama abaixo) Instrução add $8. $8. indique o valor de cada sinal de controle para que essa instrução seja executada corretamente. Se não for. Quais instruções não funcionam mais? Qual erro acontece? a. $0. alguns sinais de controle ficam sempre ativados ou sempre desativados. modifique o hardware para que ele seja capaz de executa-la.sub slti bne Instrução add $8.$8. Como conseqüência do defeito. Qual é o tempo de execução deste código? Calcule o aumento de desempenho obtido em relação ao tempo de execução calculado na questão anterior.0($8) sub $11. embora deveriam ser ativados/desativados pelo controle para algumas instruções. desvios retardados (salto resolvido no 2 o estágio) e reordenação de instruções.$9 slti $15. ou seja: <regd> := Mem[<regs> + <regt>].$0 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 B D X M R 11) Assuma que um defeito de fabricação ocorreu no hardware do caminho de dados (unidade de processamento) da figura anexa. Descreva o efeito deste tipo de defeito no funcionamento do processador. Desempenho de Computadores 1) O que são benchmarks? Qual é o problema com benchmarks sintéticos? 2) Por que MIPS e MFLOPS não são boas métricas de desempenho? Em que casos em que elas poderiam ser usadas com segurança? 3) O que estabelece a Lei de Amdhal? . DvC = 1 c. $9 $15.$0. <regs>. $10. 10000 $15.$0 laco: addi $8. laco # $11  $10 .10000 bne $15.1 lw $9. Este tipo de defeito é conhecido como uma falha do tipo "amarrado em zero" ou “amarrado em um”.000 ? # se $8 < 10.$0. com unidade de adiantamento. <regt>”. O hardware apresentado é capaz de executar essa nova instrução? Se for. laco $11.$9 # $8 < 10.$0.

é necessário garantir que essa rotina seja executada em até 16. respectivamente. ou o braço poderá ser esmagado por uma prensa hidráulica. b) Qual será a aceleração total se melhorarmos o acesso ao disco rígido? c) Qual será a aceleração total se fizermos ambos os melhorarementos? .”.000.000 e U$ 3. Sua decisão irá determinar a troca de todas as máquinas da empresa. Então qual deve ser a menor freqüência do processador para que o braço mecânico não seja destruído? 6) Desejamos comparar o desempenho de duas máquinas diferentes: X e Y. e sabe-se que ela envolve a execução de 550 mil instruções de máquina. quantos comandos de alto nível esse computador executa por segundo? 5) Num sistema embarcado de tempo real para certa indústria. cujo ‘mix’ de instruções de um programa típico é apresentado abaixo. um braço mecânico deve ser controlado por um microcontrolador. Programa P1 P2 P3 P4 P5 Taxa de Uso 50% 25% 15% 7% 3% Texec M1 8 1 2 2 1 Texec M2 4 3 6 10 20 Texec M3 3 2 5 4 7 9) Você deseja acelerar sua máquina. O novo chip poderá ser instalado na mesma placa onde anteriormente estava um chip da geração anterior (que rodava a 400MHz). Assumindo que o desempenho de uma máquina é o inverso do tempo de execução da carga de trabalho (workload) ao qual ela será submetida. U$ 2. que a importância relativa de um programa é sua taxa de uso. e que o benchmark deve ser composto por todos os programas da carga de trabalho. Você acha que a notícia constitui uma propaganda enganosa? 8) Três vendedores vieram à empresa onde vocë trabalha oferecer seus produtos. digamos M1. e há duas possibilidades de melhoramentos: fazer os acessos ao monitor de vídeo executarem 4 vezes mais rápido que antes (comprando uma placa aceleradora de 4x). a) Qual será a aceleração total se melhorarmos o acesso ao monitor de vídeo. sua taxa de uso e seu tempo de execução (em s) para cada máquina oferecida (pacientemente coletados por você) são apresentados abaixo. A máquina Y tem uma freqüência de clock de 600MHz. Qual deve ser a freqüência da máquina X para que ambas tenham o mesmo desempenho quando executando esse programa? Classe de instrução A B C D Máquina X CPI 1 2 3 4 % 35 25 20 20 Máquina Y CPI 2 2 4 6 % 50 35 10 5 7) Imagine a seguinte notícia hipotética divulgada pela imprensa: “Nossa empresa vai comercializar a partir de amanhã a primeira versão de um chip de 800MHz o qual oferece uma melhora de 20% no desempenho em relação ao último chip considerado como topo de linha. cada comando de uma linguagem de alto nível é traduzido em m instruções de uma linguagem intermediária. você determinou que 20% é usado para acesso ao monitor de vídeo.4) Num computador. ou fazer o acesso ao disco rígido 2 vezes mais rápido que antes (comprando um HD com 2x mais taxa de transferência). E cada instrução intermediária é traduzida em n instruções de máquina. Os programas usados na empresa (workload). Você repetidamente executou um programa que leva 200 segundos para rodar. Seu chefe mandou você avaliar as máquinas e decidir especificamente pela compra da máquina que apresentar o maior desempenho por U$ pago. M2 e M3. e claramente alguns são mais usados que outros. Através do manual do microprocessador descobriu-se que cada instrução executa em 1. 50% para acesso ao disco rígido e o restante para outras tarefas. que roda a 666MHz. com preços de U$ 1. Comente a definição ou as definições de desempenho que você acredita que a empresa utilizou em sua nota à imprensa. Se um computador tem freqüência de q MHz. Cada instrução de máquina precisa de p pulsos de clock para ser executada. para melhorar em 70% o desempenho do sistema. Nos computadores de sua empresa vários programas são necessários. A rotina de controle do braço já foi desenvolvida. A versão do programa compilado na máquina X tem 3 vezes mais instruções que o programa compilado na máquina Y.5 pulsos de relógio.5 milissegundos. Deste tempo. decida adequadamente pela compra da melhor máquina para sua empresa e garanta seu emprego. o que representa um grande investimento.000. Para que braço mecânico funcione corretamente.

.... 11% stores e 5% saltos incondicionais...... instruções de multiplicação tomam 12 ciclos para executar e que são 10% das instruções em um programa típico.. .109 instruções ? Hierarquia de Memória 1) As memórias de um computador são divididas em níveis hierárquicos... Considere um programa típico. Os níveis mais próximos do processador..10) Você é gerente de projeto de um famoso processador..... 30% loads.3%... 6) Complete as sentenças: A memória de um computador é dividida em níveis hierárquicos... e também tempo de acesso mais .. Do mais próximo para o mais distante do processador... mas isso implicaria um aumento de 20% no período do relógio..... Taxa de faltas na cache de dados: 1....2%............ O número de ciclos requeridos para cada tipo de operação é: Multiplicação em ponto flutuante Adição em ponto flutuante Divisão em ponto flutuante Instruções inteiras 12 5 25 2 A máquina SX não tem hardware de ponto flutuante.... 2) Uma memória tem 131072 bits de capacidade..... Cite quais são esses níveis e como variam a velocidade e a capacidade de armazenamento nesses níveis. Sua equipe de projetistas de hardware indicou que é possível reduzir o número de ciclos requeridos pela multiplicação de 12 para 6 ciclos (dobrando sua velocidade!!!)...1........ Cache de 512KB com 4 palavras por bloco. portanto pode executar operações em ponto flutuante diretamente. Barramento cache/RAM de 64 bits... . CPI médio das instruções (apenas executando) de 1.. um 80486 DX. (maior / menor) que os níveis mais distantes.. Essas características têm alguma implicação na taxa de acerto na cache desses programas? Justifique sua resposta.......... quantos endereços terá? 3) Cite 4 vantagens em utilizar o mecanismo de memória virtual.. (rápido / lento) que os níveis mais distantes.. muitos desvios e faz acesso aleatório a posições num vetor. e que os outros 90% das instruções requerem uma média de 4 ciclos para cada instrução.. com o seguinte mix de instruções: Multiplicação em ponto flutuante Adição em ponto flutuante Divisão em ponto flutuante Instruções inteiras 15% 10% 15% 60% A máquina DX possui coprocessador para ponto flutuante.... 10% saltos condicionais.... sem esse hardware especial para operações em ponto flutuante.. 7) Quais são os 3 tipos de memória cache existentes? Qual é a diferença entre eles? ........ Nada mais seria afetado..... e um 80486 SX. Já um segundo programa possui poucos laços........ acessados mais freqüentemente.. nesse processador...... com coprocessador numérico capaz de executar instruções em ponto flutuante. Tempo de acesso à RAM de 80 ns...... 4) O que é a localidade espacial? O que é a localidade temporal? 5) Um programa possui muitos laços......... Endereços e palavras de 32 bits...... ...... poucos desvios condicionais e acesso seqüencial a um vetor.. portanto ela precisa emular as operações em ponto flutuante usando instruções inteiras.... esses níveis hierárquicos são: ...... Eles devem prosseguir com a alteração? Quantas vezes a máquina ficaria mais rápida com essa alteração? 11) Estamos interessados em duas implementações uma máquina... de registradores à memória terciária... Tempo de envio de endereço e envio/recebimento de informação da RAM de 4 ns.. Qual máquina é mais rápida e quão mais rápida? 12) Suponha um computador com as seguintes características: Frequência do relógio de 250MHz. enquanto que o 80486 DX possui freqüência de 66MHz.. Taxa de faltas na cache de instruções: 1. O número de instruções inteiras necessárias para implementar cada operação em ponto flutuante é: Multiplicação em ponto flutuante Adição em ponto flutuante Divisão em ponto flutuante 30 20 50 O 80486 SX possui freqüência de 166MHz.. Assuma que....... Suponha ainda as seguintes características de um programa típico: Mix de instruções: 44% aritméticas ou lógicas..... têm capacidade de armazenamento ...... Qual é o tempo total de execução desse programa se ele tem 1.. Se essa memória for organizada com resolução de um byte.

8. o que aconteceria com a penalidade e com a taxa de faltas se: a) Aumentássemos a quantidade de blocos e diminuíssemos a quantidade de palavras por bloco? Ou seja. 9. com 2 conjuntos e uma palavra por bloco. após o processamento de todas as referências. c) Write-through com buffer. 0. 5. 14. . identifique cada referência como uma falta ou um acerto no acesso à cache e mostre o conteúdo final da cache. 13) Assinale Verdadeiro ou Falso às sentenças abaixo. ) O aumento do tamanho de uma página aumenta o tamanho da tabela de páginas. ) Caches associativas por conjunto têm taxa de falta maiores que das caches mapeadas diretamente. 9. 19. ) O aumento do tamanho de uma página aumenta o número de bits no end. 5. 14) Suponha uma cache qualquer. 6. 6.8) Suponha uma cache com um total de 8 palavras e a seguinte sequência de referências a endereços na memória: 0. 43. 1. a quantidade de acertos e a quantidades de faltas. ( ( ( ( ( ) Toda memória cache tira proveito da localidade temporal. 9) Sabendo que os endereços têm 32 bits e a memória é endereçável byte a byte. 15. 17. Considerando uma cache mapeada diretamente. se a cache for: a) Mapeamento direto e uma palavra por bloco. 7. ) A falta por capacidade ocorre apenas em caches com mapeamento direto. b) Mapeamento direto e duas palavras por bloco. ) Pode-se ter uma falta na cache se houve um acerto na TLB. com 8 blocos de uma palavra cada. ) Pode-se ter uma falta de página se houve um acerto na TLB. aumentássemos sua associatividade? 14) Que características um programa deve possuir para ter alta localidade temporal e baixa localidade espacial em relação às instruções? 15) Forneça a definição correta dos seguintes termos abaixo: a) Endereço físico b) Endereço virtual ( ( ( ( ( ( ( ( ( c) Falta de página d) Tabela de páginas e) Translation Lookaside Buffer f) Localidade espacial 16) Marque cada sentença abaixo como Verdadeira ou Falsa. c) Associativa por conjunto. 56. 20. virtual para o número da página. 6. qual é o tamanho total de uma cache de 512KB associativa por conjunto. ) O Sistema Operacional deve desabilitar as exceções enquanto já estiver tratando alguma exceção. 4. 9. 4. ) O aumento do tamanho de uma página aumenta a taxa de acertos na TLB. ) O mecanismo write-through é recomendado na escrita de páginas em memória. que estava inicialmente vazia. Mostre o estado final da cache. Mantendo constante a quantidade de informação útil que ela armazena. 4. 0. ) A falta por conflito ocorre em caches totalmente associativas. 4. b) Write-through. ) O aumento do tamanho de uma página aumenta a taxa de faltas de página. 11) O que ocorre durante falta na cache? Qual é a “penalidade” paga? Quais os tempos envolvidos? 12) Qual é a diferença dos seguintes métodos de escrita em memória: a) Write-back. 17) Marque cada sentença abaixo como Verdadeira ou Falsa. ) Toda memória cache tira proveito da localidade espacial. 11. ) O aumento da freqüência do processador diminui o impacto negativo da penalidade por faltas na cache. diminuíssemos sua associatividade? b) Aumentássemos a quantidade de palavras por blocos e diminuíssemos a quantidade de bloco? Ou seja. 8. 17. 5. com quatro conjuntos de duas palavras por bloco? Qual é a porcentagem de informação útil armazenada nessa cache em relação ao seu tamanho total? 10) ) A seguir apresentamos uma série de referências a endereços de palavras: 1. 9.

ele leve 4ns acessando um dado na memória? 26) Associe corretamente as colunas. cache.2 ciclo de clock.03 faltas por referência. Qual deve ser a taxa de acerto na cache de um programa que executa nesse computador para que. o tempo de acesso à cache é de 1ns e o tempo de acesso à RAM é 40ns. Mostre como funcionam duas das cinco técnicas apresentadas no livro. b) 95% 25) Em certo computador. Se cada entrada na tabela de páginas possui quatro bytes. qual é o tamanho total da tabela de páginas de um processo? 20) Algumas técnicas são usadas para reduzir a quantidade de memória necessária ao armazenamento da tabela de páginas. melhorando a taxa de faltas de 0. ) Tempo necessário à busca de um bloco em um nível inferior da hierarquia da memória. ) Estrutura de dados que contém as informações para a tradução de um endereço virtual em um endereço real. ) Técnica de organização da memória que usa a memória principal como uma “cache” para a memória secundária. Se o tempo de acesso à cache for de 1 ns e o tempo de acesso à memória principal for de 40 ns. Isto faz com que o tempo de acesso cresça para 1. 18) Que características um programa deve possuir para ter baixa localidade temporal e alta localidade espacial em relação às instruções? 19) Suponha que o endereço virtual possui 32 bits e as páginas são de quatro KB. a do Pentium II tem 1 nível ou 2 níveis e a paginação do MC68030 tem 4 níveis. o processador inicialmente a procura na cache. o tempo gasto é o tempo de acesso à cache mais o tempo de acesso à memória principal. qual seria o tempo médio de acesso a uma informação se a taxa de acerto na cache for de: a) 50%. Em que momentos ele é invocado? O que ele deve fazer? Que cuidados o Sistema Operacional deve ter nesse gerenciamento? 24) Para acessar uma informação na memória. ) Esquema que manipula as escritas atualizando os valores somente quando o bloco modificado for devolvido à memória de mais baixo nível da hierarquia. ) Falha no acesso à cache que ocorre quando vários blocos competem pelo mesmo conjunto de endereços da cache. Suponha que possamos dobrar o tamanho da cache. memória física e disco). então procura na memória principal. determine se as modificações são ou não convenientes.( ) O aumento do tamanho de uma página aumenta o número de páginas na memória. TLB. 28) Por que motivo um compilador efetuaria a otimização especificada a seguir? Justifique porquê essa alteração pode melhorar o desempenho desse programa. onde certamente a encontrará. Ou seja. de maneira a evitar acessos à tabela de páginas. a relação entre esses mecanismos e o tamanho dos campos envolvidos (quantos bits tem cada informação). o tempo gasto é apenas o tempo de acesso à cache. ) Esquema de substituição no qual o bloco substituído é aquele que não é usado há mais tempo. garantindo a consistência dos dados armazenados nessas duas memórias.05 para 0. endereço físico. 23) Descreva claramente qual é o “papel“ do Sistema Operacional no gerenciamento da memória virtual. 27) Sabe-se que o tempo médio de acessos á memória (TMAM) é dado pela fórmula a seguir: TMAM = tempo gasto em um acerto + Taxa faltas x Penalidade por falta. Usando o TMAM como métrica. /* Antes */ /* Depois */ . 22) A paginação no MIPS R2000 tem 0 níveis. O que significam os níveis de paginação? Forneça informações relevantes que demonstrem seu conhecimento do assunto. em média. ) Cache que guarda os mapeamentos de endereços mais recentes. a) Falta por conflito b) TLB c) Tabela de páginas d) Penalidade por falta e) LRU f) Write-back g) Write-through h) Memória virtual ( ( ( ( ( ( ( ( ) Esquema no qual a atualização da cache e da memória principal ocorre ao mesmo tempo. se a informação estiver na cache. tabela de páginas. 21) Apresente um esquema com os mecanismos de hardware envolvidos na tradução do endereço virtual em endereço físico (endereço virtual. Se não estiver. relacionando os conceitos às suas definições. Se não encontrar.

Você estima que.6% de taxa de falta na cache de instruções. ) Toda memória cache tira proveito da localidade temporal. Nesse computador um programa foi executado inúmeras vezes e a taxa de faltas nas duas caches foi. e 2. qual será a penalidade por falta para cada uma dessas organizações? 32) Suponha um computador com organização de memória do tipo (c) da figura acima. Suponha agora que essa máquina rode um programa típico com as seguintes características: 40% das instruções executadas acessam dados na memória (lw ou sw). i < 200 . Suponha que o tamanho do bloco da cache é de 16 palavras. e a cache tem mapeamento direto com 4 palavras por bloco. Desconsiderando as faltas nas caches. ( ( ( ( ( ( ( ( ( ( ) O mecanismo write-through é recomendado na escrita de páginas em memória. i < 200. ) Caches associativas por conjunto têm taxa de falta maiores que das caches mapeadas diretamente. que o comprimento da organização ‘b’ da figura é de quatro palavras. e a cache tem uma palavra por bloco. o tempo de envio/recebimento de uma palavra através do barramento é de 1 ns. mas agora de 8 palavras por bloco. ) A falta por conflito ocorre em caches totalmente associativas. j < 20. ) A falta por capacidade ocorre apenas em caches com mapeamento direto. j < 20 . A freqüência do processador é de 1GHz. com 512 blocos. ) Pode-se ter uma falta na cache se houve um acerto na TLB. Se a latência da memória principal para um novo acesso for de 10 ciclos de clock e o tempo de transferência for de 1 ciclo. tal solução acarretaria uma penalidade maior. for (i = 0 . Avalie a porcentagem do tempo de execução desse programa gasto esperando pela memória durante as faltas nas caches. 31) Considere uma hierarquia de memória usando uma das três organizações para a memória principal mostradas na figura abaixo.for (j = 0 . o tempo de acesso à memória é de 15 ns / palavra.5 ciclos de clock. 3%. A freqüência do processador é de 500 MHz.1% de taxa de falta na cache de dados. as instruções executadas por esse programa gastam. 25% acessavam a memória. i++) x[i. ) O aumento do tamanho de uma página aumenta a taxa de faltas de página. 29) Calcule o número total de bytes necessários à implementação de uma cache associativa por conjunto. j] + 1. j] = x[i. em média. há 4 bancos de memória. . j] + 1. Das instruções executadas. j] = x[i. o tempo de transferência pelo barramento é de 3 ns / palavra. i++) for (j = 0. ) Pode-se ter uma falta de página se houve um acerto na TLB. A memória principal é SRAM com tempo de acesso de 5 nanossegundos. 1. se colocasse uma cache de mesmo tamanho (de informação útil). ) O aumento do tamanho de uma página aumenta o tamanho da tabela de páginas. 16 conjuntos e 8 palavras de 4 bytes por conjunto. onde haja 4 bancos de memória e o barramento tenha largura de uma palavra (32 bits). 30) Marque cada sentença abaixo como Verdadeira ou Falsa. E também quanto mais rápido (ou mais lento). a taxa de faltas seria então 4 vezes menor. j++) for (i = 0. pois. j++) x[i. Supondo que sua estimativa esteja certa. ) O aumento do tamanho de uma página aumenta a taxa de acertos na TLB. deseja-se saber se a colocação dessa nova cache deixaria o programa mais rápido ou não. tendo 1. o que talvez melhore o desempenho do sistema de memória. e que a organização ‘c’ tem quatro bancos. em média. 33) Suponha um computador que possua a organização de memória ‘c’ da figura acima. em contrapartida.