ARQUITETURA DE SISTEMAS DIGITAIS
Por: Hotoniones • 13/3/2017 • Trabalho acadêmico • 772 Palavras (4 Páginas) • 248 Visualizações
UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE ENGENHARIA ELÉTRICA
DISCIPLINA: ARQUITETURA DE SISTEMAS DIGITAIS (2013.2)
Lista de Exercícios
Parte I: Hierarquia de memória
- A execução de um programa em um computador com memória cache é sempre mais rápida do que sem cache (todas as outras condições sendo mantidas)? Por quê? Cite exemplos.
R. Nem sempre. Um programa pode ter um perfil de execução que tenha muitos cache-misses, ou seja, que o dado/instrução procurado não se encontre armazenado no cache. Neste caso serão realizados muitos acessos a memória principal. A cada acesso deve-se acrescentar o tempo necessário para decidir que o dado não está no cache. Além disso, o acesso a memória principal sempre é realizada em blocos. O aumento de desempenho de sistemas com memória cache baseia-se na premissa de que os dados seguem determinados padrões, especificamente localidade espacial e localidade temporal. Como exemplo, pode se citar o acesso de uma matriz de dimensões MxN, armazenada na memória como um vetor de M vetores de dimensão N. Se o acesso for realizado uma coluna após a outra, dependendo do tamanho da matriz, é possível que todo acesso seja um cache-miss, com um desempenho inferior ao do mesmo sistema sem cache.
- Explique a penalidade devido ao miss na memória cache.
A penalidade é relativa ao tempo que o sistema de memória leva para recuperar o valor em uma leitura, quando ocorre um miss (falta) no cache. Este tempo está associado com o tempo que o sistema de cache leva para decidir que o dado não está armazenado no cache, com o tempo que o sistema leva para ler o valor associado ao endereço requisitado. Normalmente o sistema de cache lê os dados em blocos, o que pode ser realizadas (dependendo do sistema) como várias leituras na memória principal. Cada leitura na memória principal por sua vez toma diversos ciclos de clock da CPU, por que o tempo de acesso é muito maior do que o tempo de acesso do cache.
- É possível utilizar a hierarquia de memória como mecanismo de compatibilização de uma arquitetura RISC interna e Von Neumman externamente? Explique.
Sim. Uma arquitetura RISC normalmente utiliza arquitetura Harvard formada por duas memórias, uma de instrução e uma de dados. O sistema de cache pode permitir a utilização de uma memória única, que caracteriza um sistema Von Neumman, na medida em que utilize duas memórias cachês distintas, para instruções e dados. A separação dos dados é realizada através do tipo de acesso realizado à memória: buscas de instruções e leituras e escritas de dados.
- Dê exemplos de localidade espacial e localidade temporal em programas de computador.
- Como é feito o cálculo de desempenho médio do processador com relação a taxa de acerto (hit ratio) do sistema de memória cache?
R. Ver Slide 20
- Cite mecanismos que podem ser utilizados para aumentar a taxa de acerto de um sistema de memória cache.
- i) Aumento da dimensão da memória cache.
- Uso de associatividade com mais vias.
- Uso de vários níveis de cache
- Faça um diagrama de tempo simplificado do acesso de memória com cache-hit e com cache- miss, sabendo que o tempo de acesso da memória principal é de 5 pulsos de clock do processador e da cache é de apenas um ciclo.
- Quantos bits totais de armazenamento são necessários para um cache com mapeamento direto com 16KB (dezesseis quilobytes) de dados e blocos de 4 (quatro) palavras de 16 bits, assumindo um endereço de 32 bits. Considere o armazenamento total incluindo os dados, o tag e bit de validade? Apresente seus cálculos.
R. Como cada bloco possui 4 palavras de 16 bits = 8 bytes. 16 KB = 2K blocos. Para armazenar o índice precisamos de log2(2048) = 11 bits. Não são usados no endereçamento 2 bits para determinar o bloco e 1 bit para determinar o byte na palavra. Temos então bits para o tag como Ntag = 32 – 11 – 2 – 1 = 18 bits. Cada linha do cache então tem 18 + 64 + 1 = 83 bits formados pelo tag, dados e bit de validade. Temos um total de 2K destas linhas. O total é então de 166Kb ou 169984 bits.
...