Universidade Federal de Juiz de Fora – UFJF

Propaganda
Universidade Federal de Juiz de Fora – UFJF
Departamento de Ciência da Computação – DCC
Disciplina: Organização de Computadores
Aluna: Cintia Carvalho Oliveira - 20022209
Relatório do Seminário sobre Memória Interna
Foram apresentadas durante o seminário os seguintes tópicos:
1
2
3
4
Visão geral
Memória Principal de semicondutor
Memória Cache
Organização das memórias cachê
1 . Visão Geral
Características das memórias :Capacidade, Transferência, Acesso e
Desempenho
A Capacidade é expressa em bytes ou palavras. Palavras usuais: 8, 16 e
32 bits
A transferência é igual ao número de linhas de dados do módulo de
memória.



Palavra
Unidade Endereçável - palavra
Unidade de Transferência – conjunto de bits lidos ou escritos de cada vez.
Os acessos podem ser feitos das seguintes maneiras:




Sequencial – como em uma fita
Direto – endereço baseado na sua localização física
Aleatório – posição com identificado único
Associativo – palavra buscada de acordo com seu conteúdo não com o endereço.

As medições podem ser efetuadas das seguintes maneiras:
Tempo de Acesso
• Gasto para efetuar leitura ou escrita

Tempo de Ciclo de Memória
• Acesso aleatório – tempo de acesso e um adicional antes que um segundo acesso seja
feito
Podemos calcular a taxa de Transferência do modo abaixo:
Tn = Ta + N/R
Tn = tempo médio para ler ou escrever N bits
N = número de bits
R = taxa de transferência em bps
A hierarquia de memória
Registradores
Memória Cache
Memória Principal
Memória Interna
Armazenamento
externo
Disco Magnético
CD-ROM
DVD + RW
DVD -RAM
Armazenamento
de Segurança
Fita Magnética
MO
WORM
figura 1.1 – Pirâmide demonstrando a hierarquia das memórias




Por mais capacidade, sempre será ocupada!
Tempo de Acesso mais rápido, custo por bit maior
Capacidade maior, custo por bit menor
Capacidade maior, tempo de acesso menor
Consideramdo a hierarquia anterior observamos que:




O custo por bit diminui
A capacidade aumenta
O tempo de acesso aumenta
A frequêcia de acesso ao processador diminui
Cálculo do tempo médio para acessar uma palavra:
Suponhamos 95% dos acessos à memória na cache:
(0,95) (0,1 ns) + (0,05) (0,1 ns + 1 ns) = 0,095,+ 0,055 = 0,15ns
Estamos considerando para os cálculos acima os dados acima:
 O nível 1 contém 1000 palavras e 0,1ns de acesso
 Nível 2, 100 mil palavras, 1 ns de acesso
Quando a informação procurada está no nível 1 o processador acessa diretamente
a memória. Mas quando ocorre da informação não for localizada no nível 1 ela é
buscada no nível 2 e depois passa para o nível 1 para depois ser acessada pelo
processador.
Tipos de Memórias
A memória Flash, é menor e mais cara, constituída de registradores.
Na Memória principal, cada posição possui um endereço único.
Normalmente é combinada com uma memória cache menor e de maior
velocidade.
Estes três tipos são voláteis e utilizam tecnologia de semicondutores.
Tipo de
Memória
Categoria
Mecanismo
Apagar
Mecanismo
Escrita
Volatilidade
RAM
Leitura
Escrita
Eletricamente a Eletricamente
nível bytes
Sim
ROM
Leitura
Não é possível
Máscaras
Não
PROM
Leitura
Não é possível
Eletricamente
Não
EPROM
Principal
Leitura
Luz Ultra
Eletricamente
Violeta, pastilha
Não
Flash
Principal
Leitura
Eletricamente a Eletricamente
nível de Bloco
Não
EEPROM
Principal
Leitura
Eletricamente a Eletricamente
nível de bytes
Não
Tabela 1.1 – Tabela esquematizando as características das memórias internas
2. Memória principal de semicondutor
Memória RAM
Memória de Acesso Aleatório : Dados podem ser lidos e escritos
rapidamente e com facilidade. É uma memória volátil.
 Memória RAM Dinâmica:
– Armazena com capacitores
– Regeneração para manter dados

Memória RAM Estática:
– Flip-flops com portas lógicas
A memória RAM dinâmica é mais densa (mais células) e mais barata do que a
memória RAM estática,
Memória ROM
Memória Apenas de Leitura, usada para
– Bibliotecas de sub-rotinas frequentemente utilizadas
– Programas de sistemas
– Tabelas de funções



Outros tipos derivados da tecnologia da memória ROM
ROM Programável - PROM
ROM Programável e Apagável – EPROM
EEPROM – apenas de leitura programável e apagável eletricamente
3. Memória Cache
Figura 1.2 – Esquema de comunicação entre o processador, a cache e a memória principal
Na memória principal temos 2n palavras endereçáveis, sendo n o número
de bits por palavra.
Sendo blocos com K palavras a memória principal tem M = 2n/K blocos
A Cache tem C linhas de K palavras, sendo que C<<M, então cada linha
com um bloco da memória principal.
Operação de leitura na Cache
O endereço
buscado da
palavra está na
cache?
Não
Localiza na Memória
Principal o bloco que
Contém o endereço
Coloca o bloco em
uma linha da Cache
Sim
Obtém o conteúdo
da palavra do endereço
e entrega para a CPU
Carrega o bloco da
Memória Principal
para a Cache
Entrega a palavra
para a CPU
Fim
Organização Típica da Cache Moderna
Tamanho da Memória Cache
O Tamanho da memória Cache deve ser pequeno para que o custo por bit
seja próximo ao da memória principal. Mas também grande para que o tempo
médio de acesso à memória seja próximo ao da memória cache.
Com memórias muito grandes são mais lentas, com mais portas envolvidas.
Estudos mostram que memórias entre 1K a 512 K são mais eficazes.
Funções de mapeamento
As Funções de mapeamento podem ser vistas com melhores detalhes no
capítulo 4, não sendo então objetivo entrar em detalhes neste resumo. O qual
traria somente mais imagens do capítulo em questão.
Algoritmo para mapear memória principal em linhas da Cache e onde cada
bloco fica nela
A Cache pode ser mapeado por 3 funções diferentes:
– Mapeamento Direto
– Mapeamento Associativo
– Mapeamento Associativo por Conjunto
Mapeamento Direto
Utiliza-se esta função:
i = j módulo m
i = número da linha da Memória Cache
j = número bloco da memória principal
m = número de linhas na memória Cache
Mapeamento Associativo
Um rótulo (22 bits mais significativos) identificam um bloco na memória
principal de modo unívoco.
Para verificar se o bloco está na memória cache os rótulos são comparados.
Endereço memória
0001 0110 0011 0011 1001 1100 (bin)
1
6
3
3
9
C (hex)
Rótulo
00 0101 1000 1100 1110 0111 (bin)
0
5
8
C
E
7 (hex)
Mapeamento associativo por Conjunto
Combina as vantagens das anteriores e minimiza seus problemas.
A Cache é dividida em v conjuntos com k linhas.
– Com as relações:
m=vxk
i = j módulo v
i = número do conjunto na memória cache
j = número do bloco da memória principal
m = número de linhas da memória cache
Algoritmos de Substituição
No Direto cada bloco é mapeado em uma linha, o que determina o bloco a ser
substituido, não há alternativa
Nos associativos uso de algoritmos de substituição, implementados em
hardware.
Mais eficaz LRU – least recently used. Bit de USO
FIFO – first in first out
LFU – least frequently used – contador de frequência
Aleatoriamente
Este possui desempenho levemente inferior ao seu antecessor.
Políticas de Atualização
Se ocorrer uma escrita na cache nos demais locais onde a informação anterior
estava devem ser invalidadas (na memória principal, em outras caches)
Técnicas de Atualização;
– Escrita Direta (write-through) : Diretamente x Muito tráfego
– Escrita de Volta (write-back) : bit de Atualização x E/S direto na Cache
Na Direta outras caches ficam desatualizadas:
– Transparência em hardware : hardware adicional que atualiza as caches.
Tamanho da Linha
Com um aumento do tamanho da linha ocorre um crescimento da taxa de
acerto: princípio de localidade de referências.
Ruim se ficar tão grande que a probabilidade de os dados buscados serem
utilizados é menor que utilizar os dados que foram substituídos
Número de Memória Cache
Antes, uma única cache
Com a densidade dos circuitos integrados – integrando na pastilha do
processado – L1 – reduzindo o uso de barramento
Outra fora da pastilha, L2, para comunicação mais eficiente de L1 com Memória
Principal, para evitar possível falha na L1.
Divisão entre cache de dados e cache de instruções – Verificou-se que a taxa
de acerto de uma unificada é maior! (balanceamento entre buscas de dados e
de instruções)
Download