Buscar

Organização de computadores Aula 8 pdf

Prévia do material em texto

05/06/2019 Disciplina Portal
estacio.webaula.com.br/Classroom/index.html?id=2594723&courseId=13046&classId=1159517&topicId=2652568&p0=03c7c0ace395d80182db… 1/13
Organização de
Computadores
Aula 08: Memória
INTRODUÇÃO
Um dos assuntos de maior importância dentro da organização de arquitetura de computadores é o sistema de memória
utilizado dentro de uma máquina para suprir a necessidade de armazenamento durante o processamento das instruções.
Já conhecemos o ciclo de instrução e todos os processos que envolvem a execução da mesma, bem como a
necessidade constante de leitura e gravação em diversos tipos de memória, não somente a Memória Principal, mas
também os registradores que conhecemos brevemente.
Nesta aula, vamos estudar as memórias utilizadas no processamento das máquinas, bem como sua relação e
importância na otimização dos processos de computação. Vamos perceber que não se pode dizer que o computador tem
05/06/2019 Disciplina Portal
estacio.webaula.com.br/Classroom/index.html?id=2594723&courseId=13046&classId=1159517&topicId=2652568&p0=03c7c0ace395d80182db… 2/13
uma memória, mas sim que é formado por um subsistema de memória, complexo, e que interage entre si.
OBJETIVOS
 Reconhecer o subsistema de memória quanto à volatilidade.
Interpretar a importância dos registradores na arquitetura de computadores.
Reconhecer a motivação no desenvolvimento da memória cache, bem como seu funcionamento junto à CPU e Memória
Principal.
05/06/2019 Disciplina Portal
estacio.webaula.com.br/Classroom/index.html?id=2594723&courseId=13046&classId=1159517&topicId=2652568&p0=03c7c0ace395d80182db… 3/13
O que é memória?
Memória é o componente dentro da arquitetura e organização do computador com a função de armazenar os programas
e os dados que serão manipulados pelo sistema operacional dentro dos ciclos de instrução.
A memória não pode ser considerada um componente único, mas sim um subsistema.
Veremos nesta e na próxima aula que, para o perfeito funcionamento otimizado do computador, vários tipos de memória
são envolvidos a �m de compensar a velocidade da CPU, que é sempre superior à da velocidade da memória.
Caso dentro do sistema de computação existisse somente um tipo de memória, para que o processamento fosse
aceitável, sua velocidade teria que ser compatível à velocidade da CPU.
Isso inviabilizaria a construção da máquina, pois, com esta velocidade e com alta capacidade de armazenamento, a
tecnologia utilizada seria de alto custo e não acessível ao mercado.
Velocidade de processamento
Para �car mais clara a diferença de velocidade de processamento, vamos falar dos números. 
Dentro da CPU, um dado é processado em aproximadamente 5 nanossegundos (isto signi�ca 5 bilionésimos de segundo),
ao contrário do processamento da memória principal (glossário) (que será vista detalhadamente na próxima aula).  
Como sabemos que tudo que está sendo processado �ca armazenado na memória RAM e é requisitado pela CPU, quando
a CPU recebe este conteúdo e processa em 5ns, a CPU �ca mais 55ns ociosa aguardando o envio de uma nova
informação por parte da memória principal.  
Por esse e por outros motivos, surgiram outras memórias que auxiliam nesta compensação.
Memória primária x secundária
Para se entender a diferença dessas divisões, é importante conhecer o conceito de volatilidade. 
Uma memória é volátil quando ela perde o conteúdo, quando não há alimentação de energia. Resumindo, se o
equipamento é desligado, seu conteúdo é perdido.
Sendo assim, analise as de�nições:
Memória primária
 
São os componentes que fornecem dados e instruções para uso imediato, sendo voláteis.
 
 
Basicamente, é formada pelos seguintes componentes:
 
Registradores, Memória cache e Memória principal.
05/06/2019 Disciplina Portal
estacio.webaula.com.br/Classroom/index.html?id=2594723&courseId=13046&classId=1159517&topicId=2652568&p0=03c7c0ace395d80182db… 4/13
Dessa forma, podemos considerar como hierarquia de memória a estrutura apresentada a seguir:
Classi�cação Nome Nome Custo Volatilidade Velocidade
Primária
Registradores Bytes Muito
alto
Volátil Maior
Memória
Cache
de K a
MBytes
Alto Volátil
Memória
Principal
de M a
GBytes
Médio Volátil
Secundária Disco Rígido,
DVD, Bluray
de G a
TBytes
baixo Não-Volátil Menor
Fonte: Adaptado pelo autor
 Atenção! Para visualização completa da tabela utilize a rolagem horizontal
Registradores
Quando estudamos o ciclo de instrução, ou ciclo de busca–decodi�cação e execução, veri�camos a presença de
registradores, que são dispositivos de armazenamento temporário, localizados na CPU, utilizados constantemente dentro
do processo de execução das instruções.
Memória secundária
 
São os componentes que provêm capacidade de armazenamento permanente (não voláteis).
 
 
Exemplos de dispositivos de armazenamento secundário são:
 
Discos Rígidos, Discos Óticos (CDs, DVDs, etc.) e Fitas.


05/06/2019 Disciplina Portal
estacio.webaula.com.br/Classroom/index.html?id=2594723&courseId=13046&classId=1159517&topicId=2652568&p0=03c7c0ace395d80182db… 5/13
Por serem usados pela CPU, entende-se que são memórias muito rápidas. Na verdade, são consideradas as memórias
mais rápidas existentes no sistema de computação.
Porém, como seu objetivo é o armazenamento do conteúdo de memória a ser processado pela CPU, sua capacidade de
armazenamento se limita à palavra daquele processador, normalmente variando de 8 a 64 Bits.
Mesmo sendo de baixa capacidade de
armazenamento, os registradores são
sempre construídos internamente no chip do
processador.
O que faz com que sua tecnologia de construção seja cara e não permita o uso de muitos registradores. Contudo, isso
permite que seu tempo de acesso seja compatível com a velocidade da CPU, entre 1 e 5 nanossegundos.
O conceito de registrador surgiu da necessidade da CPU armazenar temporariamente dados que serão usados em seu
processamento.
SAIBA MAIS
, Um exemplo é o armazenamento temporário do resultado de um cálculo, que será utilizado posteriormente após a execução do
ciclo de instrução seguinte, que necessita de uma nova consulta na memória.
Por estarem dentro da CPU, subentende-se que os registradores são voláteis, isto é, precisam ser alimentados
constantemente pela energia elétrica para manter o conteúdo armazenado.
Memória cache
Como já estudado, a CPU trabalha diretamente com a memória RAM. Sendo assim, todos os dados processados são
recebidos dos módulos de memória RAM, para, dessa forma, serem decodi�cados e executados.
Porém, com o desenvolvimento constante na tecnologia de construção de processadores, (lembre-se inclusive da Lei de
Moore) a sua velocidade foi �cando cada vez maior quando comparada à velocidade de transmissão da memória
principal (que não acompanhou da mesma forma a evolução em velocidade, mas sim em capacidade de
armazenamento).
Com isso, surgiu um desequilíbrio entre a comunicação da CPU e a memória principal, de forma que a CPU processa
dados mais rápido do que a memória RAM poderia enviar, resultando em longos períodos de ociosidade ou estados de
espera (“wait states”) devido ao gargalo (“bottleneck”) criado por este desequilíbrio, o que logicamente resulta em um
desperdício da capacidade de processamento da CPU.
05/06/2019 Disciplina Portal
estacio.webaula.com.br/Classroom/index.html?id=2594723&courseId=13046&classId=1159517&topicId=2652568&p0=03c7c0ace395d80182db… 6/13
Por esse fato e também porque os registradores possuem alta velocidade mas baixa capacidade de armazenamento, foi
necessário, dentro da hierarquia da memória, criar uma nova “camada” que possibilitasse a CPU usar melhor toda a sua
capacidade de processamento: a memória cache.
Memória Cache feita no núcleo da CPU.
Portanto, a cache é uma memória criada
justamente para diminuir os “estados de
espera” entre CPU e memóriaprincipal, sendo
muito mais rápida do que a memória RAM e
com mais capacidade do que os
registradores.
Ela tem a função de armazenar temporariamente conteúdos muito requisitados e fornecer as informações para a CPU de
forma mais ágil, evitando que a memória principal tenha que ser consultada a todo momento, reduzindo a ociosidade da
CPU.
Certamente, o custo da memória cache é maior do que o da principal e menor do que o custo de registradores, o que
justi�ca parte da solução encontrada.
05/06/2019 Disciplina Portal
estacio.webaula.com.br/Classroom/index.html?id=2594723&courseId=13046&classId=1159517&topicId=2652568&p0=03c7c0ace395d80182db… 7/13
No entanto, o custo de fabricação da memória cache é muito maior do que o da principal, não justi�cando a extinção da
principal. Ou seja, não seria viável economicamente construir um computador somente com tecnologia de memória
cache.
A partir dos processadores 386, surgiu a inclusão de memória cache, localizada entre a CPU e a principal, e que
funcionaria como um espelho de parte do conteúdo dessa memória principal.
Exemplo das primeiras placas-mãe lançadas com memória cache, localizada na própria placa-mãe.
Princípio da localidade
O funcionamento da memória cache se faz da seguinte forma: todo conteúdo consultado com mais frequência na
memória principal é mantido de forma espelhada na memória cache, ou seja, este conteúdo não é apagado na memória
principal, somente espelhado.
Esse conteúdo consultado com frequência é veri�cado pelo princípio da localidade.
Por esse princípio, se um endereço, por exemplo, na memória principal, foi requisitado pela CPU, é bem provável que um
endereço próximo ou vizinho a este seja o próximo a ser consultado pela CPU na memória principal.
Dessa forma, antecipa-se não somente o conteúdo solicitado pela CPU, mas também o conteúdo dos endereços
próximos a esta localidade são espelhados da memória principal para a cache, de modo que, em uma próxima vez que for
efetuada uma consulta por parte da CPU, este conteúdo possa ser acessado diretamente pela cache, otimizando o tempo
de processamento.
Tipos de princípio da localidade
Princípio da localidade temporal
Baseia-se no fato de que um dado acessado recentemente tem mais chances de ser usado
novamente do que um dado usado há mais tempo.
Isso é uma realidade pois, quando um programa está em execução, uma variável pode ser
consultada diversas vezes durante seu processamento, por exemplo, se houver uma rotina de
loop ou sub-rotinas.
Sendo assim, o princípio da localidade temporal tende a manter os dados e instruções
recentemente acessados.
Princípio da localidade espacial
Baseia-se no fato de que há uma grande probabilidade de acesso para dados e instruções em
endereços próximos àqueles acessados recentemente pela CPU (como no exemplo citado
anteriormente).
05/06/2019 Disciplina Portal
estacio.webaula.com.br/Classroom/index.html?id=2594723&courseId=13046&classId=1159517&topicId=2652568&p0=03c7c0ace395d80182db… 8/13
Durante a execução de um programa, normalmente as variáveis são criadas e armazenadas
próximas umas às outras, dentro da memória principal.
O conteúdo estará disponível na memória cache de imediato?
Logicamente, nem sempre, em uma consulta efetuada pela CPU, o conteúdo estará disponível na memória cache de
imediato.  
Sendo assim, existem duas possibilidades:
• Se a CPU busca um determinado dado e o encontra na cache, dá-se o que chamamos de cache hit, ou seja, conteúdo é
localizado na cache; 
• Se o caso for negativo, ou seja, se o dado não estiver presente na cache, sendo necessário requisitar o conteúdo para a
memória principal, dá-se o que chamamos de cache miss.
Independente de cache miss ou cache hit,
dentro do processo de fabricação da
memória cache e suas metodologias de
gravação de dados, o índice de cache hit é
geralmente acima de 90%.
Isso nos mostra que, em boa parte do tempo, o equipamento atua pesquisando na memória cache.
Níveis de cache
Cache L1 (nível 1)
Pequena memória inserida internamente no processador, ou seja, encapsulada dentro do
núcleo de processamento.
Também conhecida como cache on-die (no núcleo), exatamente por estar dentro do
processador.
Alguns fabricantes identi�cam as memórias cache L1 como formada por dois elementos: 
Memória de instrução – acionada quando o processador está buscando uma instrução; 
Memória para dados – acionada se o processador estiver buscando um dado.
Cache L2 (nível 1)
Localizada fora do núcleo, mas muito próxima do mesmo, sendo construída normalmente
dentro do processador.
Cache L3 (nível 3)
Em algumas arquiteturas, encontramos ainda o nível 3 na placa-mãe.
05/06/2019 Disciplina Portal
estacio.webaula.com.br/Classroom/index.html?id=2594723&courseId=13046&classId=1159517&topicId=2652568&p0=03c7c0ace395d80182db… 9/13
Em outras, dentro do processador. Porém, usada como cache compartilhada entre os núcleos
de um processador.
Foi criada originalmente pelo fabricante AMD.
Exemplo do processador Phenom II X3 da AMD
Para �car mais claro, veja o exemplo abaixo, de um processador Phenom II X3 da AMD, de 6 núcleos, em que são
mostradas suas especi�cações por meio de imagem microscópica.
• L1 Cache: 128KB (64KB Instrução + 64KB Dados) em cada Núcleo; 
• L2 Cache: 512KB em cada Núcleo; 
• L3 Cache: 6MB L3 (Compartilhado entre os núcleos).
Atenção
, Caches são geralmente inclusivas. Isso signi�ca que o conteúdo total de uma cache L1 está na cache L2, que também está na
cache L3.
Mapeamento de cache
Mesmo com a memória cache, a localização das instruções ou dados a serem manipulados pela CPU continuam se
relacionando a endereços da memória principal e não da memória cache.
Se a CPU busca um determinado conteúdo, continua sendo referenciado o endereço da MP.
Sabendo que a memória cache possui uma pequena porção de memória e que normalmente o índice de cache hit é de
90%, como esta memória é referenciada na cache, de forma a evitar que toda a memória cache tenha que ser varrida a �m
de localizar um determinado endereço?
O que seria ine�ciente?
A base disso é o processo de mapeamento da memória, ou seja, é feita uma divisão da memória principal em blocos de
tamanho �xo, conhecidas como linhas de cache.
Essas linhas possuem de 4 bytes (32 bits) a 64 bytes (512 bits) e são endereçadas a partir do zero, de forma que, se a
memória principal for dividida em 64 bytes, teríamos as linhas que iriam de 0 a 63 bytes, de 64 a 127 bytes, e assim por
diante.
Feito isso, já se tem uma forma de mapeamento que pode ser feito na cache.
Veja algumas formas desse mapeamento da cache:
Caches totalmente associativas
Neste método todas as linhas de cache da memória principal podem ser gravadas em qualquer localização na memória
cache.
05/06/2019 Disciplina Portal
estacio.webaula.com.br/Classroom/index.html?id=2594723&courseId=13046&classId=1159517&topicId=2652568&p0=03c7c0ace395d80182d… 10/13
É uma forma ine�ciente porque a recuperação dos dados pode levar à varredura completa da cache para localizar o
conteúdo.
Caches de mapeamento direto
O método de mapeamento direto limita a gravação das linhas de cache em locais especí�cos na cache. Porém, este
índice pré-de�nido dos locais permite que a pesquisa do conteúdo na cache seja mais ágil.
A �gura abaixo mostra um esquema de mapeamento direto em que a linha de cache consiste em 32 bytes (256 bits).
Exemplo
, Antes de continuar, veja um exemplo (galeria/aula8/docs/Exemplo.pdf) e entenda melhor.
Caches associativas de conjunto
Este tipo de mapeamento é um esquema híbrido entre o mapeamento totalmente associativo e o mapeamento direto.
Ele permite que os problemas do mapeamento totalmente associativo (em que a cache inteira precisa ser varrida à
procura de um endereço) e do mapeamento direto (em que ocorrem colisões) sejam minimizados.
Nele, um mesmoendereço na memória principal pode ser armazenado em mais de um local (por vez) da cache, através
da criação de vias de cache, ou seja, cada linha pode possuir n vias de cache, onde normalmente são de 2 a 4 vias.
Utilizando o exemplo mencionado anteriormente, onde foi consultado pela CPU o endereço 195 e logo após o 65, que
faziam parte da mesma linha de chave, a colisão seria evitada, pois, com 2 vias possíveis na linha de cache 0, ambas as
linhas da memória principal poderão ser gravadas, cada uma em uma via especí�ca.
Isso resolve parte dos problemas encontrados nos métodos anteriores e agiliza o mapeamento e a consulta de conteúdo
na cache.
05/06/2019 Disciplina Portal
estacio.webaula.com.br/Classroom/index.html?id=2594723&courseId=13046&classId=1159517&topicId=2652568&p0=03c7c0ace395d80182d… 11/13
Métodos de substituição de dados
No que se refere à memória cache, é importante lembrar que existe um momento em que sua capacidade está lotada e os
dados precisam ser substituídos, como, por exemplo, os das vias de cache.
Como optar por qual via de cache a ser excluída  para uma nova substituição? 
Existem três métodos conhecidos de substituição de dados na cache:
Substituição
Aleatória
É escolhida uma posição qualquer da cache aleatoriamente
para ser substituída.
First-in
First-out
Remove a linha que está mais tempo na cache.
Least
Recently
Used (LRU)
Remove a via menos recentemente utilizada e a linha que a
mais tempo não é referenciada pelo CPU. Quando há um cache
hit, um contador é zerado para esta via, enquanto todos os
demais tem seu contador incrementado.
Quando for necessário substituir uma linha na cache, será retirada aquela cujo contador tiver o valor mais alto. Utilizado
para substituição de dados no mapeamento de cache associativa de conjunto.
Políticas de escrita em cache na memória principal
Logicamente, é necessário que, em algum momento, os dados atualizados na memória cache também sejam atualizados
na memória principal. A�nal, uma deve ser o espelho da outra.
Sendo assim, existem políticas que efetuam esta atualização:
ATIVIDADE
1 - Nesta aula, conhecemos mais a fundo o subsistema de memória, incluindo a memória cache.
Sobre isso, responda:
Quanto seu equipamento possui de memória cache?
Write Through
Consiste em atualizar o valor em cache e na MP simultaneamente.
Write Back
Consiste em atualizar a cache, porém ao enviar atualizações em blocos para a memória principal.
05/06/2019 Disciplina Portal
estacio.webaula.com.br/Classroom/index.html?id=2594723&courseId=13046&classId=1159517&topicId=2652568&p0=03c7c0ace395d80182d… 12/13
Quais os tipos encontrados?
Para esta atividade, instale o aplicativo CPUZ (glossário) e procure descobrir a con�guração de memória cache que seu
computador possui.
Resposta Correta
2 - Sobre memória cache, selecione a alternativa INCORRETA:
Há ocorrência de cache miss e cache hit.
Funciona como espelho da parte de memória principal.
Velocidade de acesso maior do que dos registradores.
Capacidade de armazenamento maior do que dos registradores.
Velocidade de acesso maior do que a da memória principal.
Justi�cativa
3 - É considerada como uma memória secundária:
Memória RAM
Disco rígido
Memória cache
Registrador
Acumulador
Justi�cativa
4 - Remove a via menos recentemente utilizada. Remove a linha que mais tempo não é referenciada pelo CPU:
Substituição Aleatória
First-in First-Out
LRU
Write Back
Write ThroughCondicional
Justi�cativa
05/06/2019 Disciplina Portal
estacio.webaula.com.br/Classroom/index.html?id=2594723&courseId=13046&classId=1159517&topicId=2652568&p0=03c7c0ace395d80182d… 13/13
Glossário
MEMÓRIA PRINCIPAL
Essa memória principal é a tão conhecida memória RAM, que leva aproximadamente 60 nanossegundos para processar um dado e
transferir para a CPU.

Continue navegando