TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

A Organização de Computadores

Por:   •  29/8/2021  •  Trabalho acadêmico  •  1.181 Palavras (5 Páginas)  •  151 Visualizações

Página 1 de 5

[pic 1]

AD1 - Organização de Computadores 2021.2

  1. (1,6 ponto) Considere uma máquina hipotética com arquitetura semelhante àquela apresentada em aula. Pode-se endereçar no máximo 16 M células de memória. Cada célula armazena uma palavra e cada instrução tem o tamanho de uma palavra. Todas as instruções desta máquina possuem o mesmo formato: um código de operação, que permite a existência de um valor máximo de 256 códigos, e um operando, que indica um endereço de memória.
  1. (0,2 ponto) Qual o tamanho mínimo do contador de instruções (CI)? Para que serve o CI? Indique uma instrução que pode mudar diretamente o valor do CI.
  2. (0,2 ponto) Qual a capacidade máxima da memória em bits? Na arquitetura padrão vista nas aulas, essa capacidade máxima é compartilhada entre instruções e dados? Ou serve apenas para armazenar instruções? Ou apenas dados?
  3. (0,3 ponto) Qual o tamanho mínimo do registrador de endereços (REM)? Por que o REM também é chamado, às vezes, de contador de dados (CD)? Qual o paralelo entre CI e CD?
  4. (0,3 ponto) Qual o tamanho mínimo do registrador de instrução (RI)? O que ocorre se for armazenado no registrador de instrução um código de operação não suportado pela máquina? Em que condições isso pode acontecer?
  5. (0,3 ponto) Qual a relação entre o tamanho do barramento de endereços, tamanho mínimo do CI, e tamanho mínimo do REM?
  6. (0,3 ponto) Na máquina em questão, são necessários quatro ciclos de busca para obter uma instrução. Com base nessa informação, qual é a largura do barramento de dados da máquina?
  1. (2,0 pontos) Esta questão trata de localidade espacial e temporal.
  1. (0,5 ponto) Explique os conceitos de localidade espacial e localidade temporal, indicando como a memória cache tira vantagem desses princípios.

Para os próximos itens, considere o seguinte código fonte:

for(i = 0; i < 4; i++)

for(j = 0; j < 10; j++) a[i] = a[i]*j;

  1. (0,5 ponto) No código acima, existe localidade temporal? Ou seja, existe alguma posição de memória que é acessada várias vezes consecutivas, num curto período de tempo?
  1. (0,5 ponto) No código acima, existe localidade espacial? Ou seja, existem algumas posições de memória próximas que são acessadas em instantes próximos?
  1. (0,5 ponto) Assuma que a memória cache tem tamanho 2, ou seja, consegue armazenar conteúdos de apenas 2 endereços de memória (por exemplo, 2 elementos do vetor a). Em particular, assuma também que a cache é usada exclusivamente para armazenar elementos do vetor a. Indique, ao longo da execução do programa acima, quais são as posições do vetor a armazenadas em cache, e quais os acessos à cache que geram um cache hit (acerto na cache). Nesse último caso, indique se o cache hit se deve à localidade espacial ou localidade temporal. Atenção! Você pode assumir uma visão otimista da realidade, segundo a qual as posições de

memória armazenadas na cache são sempre as mais favoráveis.

  1. (1,2 ponto) Certo ou errado? Justifique:

  1. (0,3 ponto) Numa memória cache com mapeamento totalmente associativo, quando se deseja referenciar um endereço de uma posição de memória principal, tal endereço é dividido em duas partes, os n bits mais significativos são removidos, e os bits menos significativos são usados para formar o campo “tag” que então é repassado para a memória cache.
  2. (0,3 ponto) Numa memória cache com mapeamento totalmente associativo, os campos “tag” dos blocos em cache são pesquisados em paralelo para verificar se algum deles “casa” com o “tag” do endereço que se busca.
  3. (0,3 ponto) Numa memória cache com mapeamento totalmente associativo, cada bloco de memória principal pode ser armazenado, em princípio, em apenas um bloco da memória cache. Já em uma memória cache com mapeamento direto, cada bloco da memória principal pode ser armazenado em qualquer posição da memória cache.
  4. (0,3 ponto) A memória cache com mapeamento totalmente associativo tem menos conflitos de blocos, e é muito mais flexível que a memória cache com mapeamento direto, mas requer hardware muito mais caro e especializado para que se possa fazer uma busca em paralelo para verificar se um acesso corresponde a um acerto (cache hit) ou erro (cache miss), em comparação com a abordagem de memória mapeamento direto.
  1. (1,0 ponto) Faça uma pesquisa sobre o conceito de hash. Explique como que o mapeamento direto pode        ser        interpretado        como        um        hash.        (por        exemplo, http://ee.usc.edu/~redekopp/cs350/slides/Ch9_Caching.pdf). Em seguida, indique como que o mesmo conceito de hash também é usado em um contexto completamente diferente: urnas eletrônicas https://www.tse.jus.br/eleicoes/urna-eletronica/seguranca-da-urna/hash
  1. (1,2 ponto) Considere a máquina apresentada na aula 4. Descreva detalhadamente (do mesmo modo que é apresentado na aula 4) como é realizada a execução das seguintes instruções:
  1. (0,4 ponto) JZ 15, considerando que ACC = 0
  2. (0,4 ponto) LDA 18
  3. (0,4 ponto) MUL 2 (para esta instrução, consulte a tabela do item 7)
  1. (1,0 ponto) Os discos SSD (Solid State Drive - Unidade de Estado Sólido) são utilizados em diversas aplicações e possuem algumas vantagens em relação ao HD (Hard Disc - Disco Rígido) magnético, como maior velocidade e menor consumo de energia. Faça uma pesquisa sobre as principais características do SSD e responda os itens a seguir.
  1. (0,5 ponto) Compare as vantagens e desvantagens do SSD em relação aos HDs magnéticos.
  2. (0,5 ponto) Considere um computador que possua um disco SSD e um HD magnético. Desenhe a pirâmide de hierarquia de memória do Slide 24 da Aula 1, identificando os locais do SSD e do HD na hierarquia.
  1. (1,5 ponto) Escreva um programa que utilize as instruções de linguagem de montagem apresentadas na aula 4 para executar o seguinte procedimento.

Subtrai-se o conteúdo da memória cujo endereço é 10 do conteúdo da memória cujo endereço é 15, e verifica-se três possíveis condições. Se o resultado da subtração for maior que 0, o conteúdo de memória cujo endereço é 20 é multiplicado pelo conteúdo de memória cujo endereço é 30. Se o resultado da subtração for menor que 0, o conteúdo de memória cujo endereço é 20 é dividido pelo conteúdo de memória cujo endereço é 30. Se o resultado da subtração for igual a zero, o programa finaliza. Além de apresentar seu programa escrito em linguagem de montagem, apresente também o programa traduzido para linguagem de máquina.

...

Baixar como (para membros premium)  txt (7.1 Kb)   pdf (112.1 Kb)   docx (557.3 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com