Universidade Estácio de Sá – Curso de Informática Disciplina de Organização de Computadores II Prof. Gabriel P. Silva - 1o Sem. / 2005 2ª Lista de Exercícios 1) O que é o relógio de um sistema digital? É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador. 2) No trecho em linguagem de montagem a seguir, identifique os diversos modos de endereçamento (imediato, registrador, indireto, relativo ao PC) e classifique os tipos de instruções (aritmética, lógica, transferência de dados, transferência de controle) existentes. addi bnez lw addi sw sub lw beqz j R2, R0, CONST2 R3, LABEL R4, 0(R16) R1, R2, -1 0(R16),r4 R1, R1, R2 R6, 4(R18) R2, LABEL EXIT registrador, imediato registrador, relativo ao PC registrador, indireto registrador, imediato indireto, registrador registrador registrador, indireto registrador, relativo ao PC relativo ao PC artimética transf. controle transf. de dados aritmética transf. de dados artimética transf. de dados transf. controle transf. controle 3) O que é uma pilha? Qual a função do “Stack Pointer”(SP)? A pilha é uma estrutura dinâmica em memória onde o último elemento colocado é obrigatoriamente o primeiro a ser retirado e, normalmente, cresce no sentido dos endereços mais altos para os mais baixos de memória. O apontador de pilha (SP) guarda o endereço do elemento que está no topo da pilha. 4) Na chamada de um procedimento, quais registradores devem ser salvos na pilha? Todos aqueles que possam ser modificados pelo procedimento chamado. Em especial o endereço de retorno (R31), o apontador de pilha (R29) devem ser salvos na pilha. 5) Supondo-se que os valores de LABEL e ROTINA sejam, respectivamente, 10000 e 13000, qual será o conteúdo do apontador de programa (PC), dos registradores R31 (RA) e R1 após a execução do seguinte trecho de programa? Justifique. LABEL: addi addi add jal R2, R0,#4 R3, R0,#7 R1, R2, R3 ROTINA PC =10.000 PC =10.004 PC= 10.008 PC= 10.012 Ao executar a instrução jal o valor do PC é 10.012, logo R31 receberá o valor 10.016 e o novo valor do PC será ROTINA, ou seja, 13000. O valor de R1 será 11. 6) Enumere e descreva suscintamente os tipos de conflitos que podem ocorrer em um pipeline de instruções de um processador. Conflito Estruturais – Quando um recurso é utilizado por dois ou mais estágios do pipeline. Conflito por Dados – Quando uma instrução depende de um resultado (registrador) que vai ser produzido por uma instrução anterior que ainda está no pipeline. Conflitos de Controle - Quando uma instrução de desvio condicional é executada, podem ser buscadas instruções para o pipeline que posteriormente serão anuladas, dependendo do resultado do desvio. 7) O uso de caches separadas para dados e instruções permite resolver que tipo de conflito no pipeline? Resolve o conflito estrutural, que ocorre quando o estágio de Busca e o de Memória precisam fazer acesso simultâneo à memória. 8) Além do uso do desvio atrasado, que outros mecanismos são utilizados para resolver o conflito de controle no pipeline? O uso de mecanismos de predição estática e/ou dinâmica de desvio. 9) No trecho a seguir, identifique as instruções que possuem dependência direta de dados: I1 Î I2 (R1) I2 Î I4 (R2) I3 Î I5 (R3) 10) Qual a característica em comum entre as arquiteturas VLIW e superescalares dos modernos processadores? A busca, decodificação e execução de múltiplas instruções por ciclo. 11) Quais as principais diferenças entre as arquiteturas do tipo RISC e CISC? As arquiteturas CISC possuem instruções complexas, com diversos modos de endereçamento, com formatos diversos e tempo de execução variável. Vários tipos de instruções podem referenciar operandos na memória. As arquiteturas RISC possuem instruções mais simples, com poucos modos de endereçamento, com poucos formatos e com tempo de execução determinado. Apenas as instruções de “load” e “store” podem referenciar operandos na memória. 12) Relacione as principais características das arquiteturas SMT. As arquiteturas SMT (multithreading simultâneo) buscam obter um maior desempenho despachando instruções de multiplos fluxos de instruções (threads) para as diversas unidades funcionais de um processador superescalar. A cada instante de tempo, instruções de diferentes “threads” podem estar sendo executadas nos diversos estágios do pipeline. 13) O que é um processador “superpipelined”? É aquele com um elevado número de estágios no pipeline, praticamente todos os modernos processadores superescalares são superpipelined. 14) Durante o projeto de um processador, verifica-se que os tempos de execução dos estágios de um pipeline são os seguintes: a. b. c. d. e. busca da instrução: 2 ns decodificação/leitura dos registradores: 3 ns execução/cálculo do endereço: 2,5 ns acesso à memória: 4 ns escrita do resultado: 3,5 ns Qual será o tempo de ciclo do relógio que deverá ter este processador? Justifique. 4 ns. Porque é o estágio com maior latência que determina a duração do período do ciclo do relógio do processador. 15) O código a seguir é executado em um processador com um pipeline de 5 estágios, sem adiantamento de dados, como definido na questão anterior: add lw sub R5, R6, R7 R6, 100(R7) R7, R6, R8 Considerando que um ciclo de relógio é o tempo gasto para acesso à memória principal, quantos ciclos serão gastos para executar este trecho de código? Justifique. 1 2 3 4 5 6 7 8 9 B add lw sub - D E M W add lw sub sub sub - add lw sub - add lw sub - add lw sub Resposta: 9 ciclos. 16) Considere a execução do seguinte trecho de código, em um processador com o mesmo pipeline descrito na questão acima: add sub add addi sub R1, R4, R7, R10, R13, R2, R5, R8, R11, R14, R3 R6 R9 #12 R15 M E D B Se a primeira instrução está sendo buscada no primeiro ciclo, no quarto ciclo de execução, quais os registradores que estarão sendo lidos? Quais estarão sendo escritos? No quarto ciclo de execução, deve-se determinar quais as instruções que estão nos estágios de decodificação e escrita. Os registradores que estarão sendo lidos são os registradores fontes da instrução, no caso, r8 e r9. Com onão ná nenhuma instrução no estágio de escrita, nenhum registrador estará sendo escrito. 17) O que é memória cache? Porque é utilizada? É uma memória mais rápida e de menor capacidade colocada entre o processador e a memória principal, que guarda cópia dos dados armazenados na memória principal, com a finalidade de oferecer a ilusão de uma grande capacidade de armazenamento, mas com uma velocidade de acesso perto da memória rápida. É utilizada porque o tempo do ciclo de relógio dos processadores tem diminuído muito mais rapidamente que o tempo de acesso à memória dinâmica (que compõe a memória principal). 18) O funcionamento da memória cache está baseado em que características de localidade presentes nos programas executáveis? Descreva cada uma delas. Localidade Temporal – as posições de memória, uma vez referenciadas, tendem a ser novamente refrenciadas em curto espaço de tempo; Localidade Espacial – os endereços dos acessos feitos à memória principal tendem a ser próximos dos endereços dos acessos anteriores; 19) Quais são os três tipos principais de organização da memória cache? Cite as vantagens e desvantagens de cada uma deles. Cache com mapeamento direto – Um bloco na memória pode apenas ocupar uma única posição na memória cache. A vantagem é o baixo custo e rapidez. A desvantagem é uma menor taxa de acerto. Cache com mapeamento totalmente associativo – Um bloco da memória principal pode ser colocado em qualquer posição da cache. A vantagem é alta taxa de acerto. A desvantagem é o seu alto custo e capacidade reduzida. Cache com mapeamento associativo por conjunto – Os blocos podem ser colocados em determinadas posições da cache denominadas de “conjuntos”. O número de linhas/blocos por conjunto determina o grau de associatividade da cache. A sua grande vantagem é uma alta taxa de acerto aliado a um baixo custo e rapidez. A desvantagem é que suas taxas de acerto são um pouco menores que a cache totalmente associativa. 20) Suponha que um bloco é buscado na memória principal e pode ser colocado em duas e apenas duas posições da memória cache. Que tipo de organização possui esta cache? Mapeamento Associativo por Conjunto com Associatividaded e Grau 2. 21) Quais são os três algoritmos mais utilizados na substituição de blocos em uma memória cache com associatividade? Faça uma descrição do funcionamento de cada um deles. L.R.U – Menos recentemente utilizado, retira do conjunto o bloco cujo acesso mais recente ocorreu há mais tempo. F.I.F.O – (First In, First Out), o bloco que foi colocado no conjunto há mais tempo será o primeiro a ser retirado. Aleatório – O bloco a ser retirado do conjunto é escolhido aleatoriamente. 22) Suponha que um bloco é buscado na memória principal para uma cache com associatividade 4. Se não houver mais espaço no conjunto destinado para este bloco, qual bloco deverá ser retirado se o algoritmo utilizado for o F.I.F.O.? O bloco que foi colocado no conjunto há mais tempo será o primeiro a ser retirado. 23) Descreva quais são as políticas de escrita de dados de uma cache na memória principal. Write-through – O dado é escrito no bloco da cache e a escrita é repetida imediatamente na memória principal. O tempo médio de acesso é prejudicado, pois a cada escrita, mesmo com acerto, o dado deve ser atualizado na memória. O controle para esse tipo de política é mais simples. Write-back – O dado é escrito no bloco da cache, mas o bloco só será escrito na memória principal quando for substituído. As taxas de acerto e o tempo médio de acesso são melhores, mas o controle é mais complexo. 24) O seguinte programa foi executado pelo processador DLX. O bloco com endereço correspondente a variável A está válido na cache. Qual será o conteúdo da memória principal e da memória cache correspondente a variável A após a execução deste programa se a política de atualização for “write back”? .data A: .word .text lw add sw 45 r3, A(r0) r3, r3, #1 A(r0), r3 O conteúdo da variável A na memória principal será 45 e na memória cache será 46. Como a cache é “write-back” o dado só será atualizado na cache e ficará desatualizado na memória principal até que o bloco seja substituído na cache. 25) Quais as vantagens da utilização de caches separadas de dados e instruções? A política de escrita só precisa ser aplicada à cache de dados; Podem ser utilizadas estratégias diferentes para cada cache: capacidade total, tamanho do bloco, organização, etc.; Permitem caminhos separados para acesso simultâneo a dados e instruções, por exemplo, em um pipeline; Normalmente as taxas de acerto são melhores. 26) Se a taxa de acerto de uma cache é de 98%, o tempo de acesso à cache é de 5 ns e o tempo de acesso à memória principal é de 50 ns, qual o tempo médio de acesso à memória? Tma = 0,98 x 5 + 0,02 x 50 = 5,9 ns 27) Considere uma memória cache de 128 Kbytes com mapeamento direto, com 16 bytes em cada linha da cache. Se o endereço possui 32 bits, quantos bits são gastos para o rótulo e para o índice? 17 128 Kbytes = 2 => 17 bits Rótulo = 32 – 17 = 15 bits 4 16 bytes/bloco (2 => 4 bits) Indice => Total de blocos da memória cache = 128 Kbytes / 16 bytes = 8 K blocos 13 4 Kblocos = 2 => Indíce = 13 bits Rótulo 15 Índice 13 offset 4 28) A seguir apresentamos uma série de endereços referenciados em uma memória contendo palavras de 32 bits: 1, 4, 8, 5, 20, 5, 19, 56, 9, 8 e 4. Considere uma cache mapeada diretamente, com 16 blocos com palavras de 32 bits cada. Estando inicialmente vazia, identifique cada referência na lista como falha ou acerto no acesso à cache e mostre o conteúdo final da cache, após o processamento de todas essas referências. F F F F F A F F F F F Endereço– 1, 4, 8, 5, 20, 5, 19, 56, 9, 8, 4 INDICE CONTEUDO 0 1 MEM[1] 2 3 MEM[19] 4 MEM[4] 5 MEM[5] 6 7 8 MEM[8] 9 MEM[9] 10 11 MEM[11] 12 13 14 15 29) Se um barramento síncrono possui largura de 32 bits e freqüência de relógio de 66 Mhz, qual a sua taxa de transferência máxima (largura de banda)? R: 32 bits = 4 bytes ==> B = 4B x 66 Mhz= 264 MB/s 30) Quais as diferenças entre um barramento multiplexado e um não multiplexado? R. O barramento multiplexado compartilha as mesmas linhas para os dados e endereço. O barramento não multiplexado possui linhas separadas para os dados e endereços.