O que é Memória Scratchpad?

O acesso aos dados é uma parte crítica do projeto da CPU. As CPUs operam em velocidades extremamente altas, processando várias instruções a cada ciclo de clock e, portanto, precisam de acesso a muitos dados. A grande maioria desses dados é armazenada na mídia de armazenamento. Os dispositivos de armazenamento, no entanto, são incrivelmente lentos em comparação com uma CPU. Os dispositivos de armazenamento também são significativamente melhores em leituras sequenciais do que em leituras aleatórias, embora os SSDs ofereçam uma melhoria marcante nesse aspecto (e em muitos outros) em relação aos HDDs.

A RAM do sistema foi projetada para ser carregada com todos os dados que a CPU possa precisar para o software em execução no momento. A RAM tem uma latência significativamente menor do que o armazenamento, e também é especificamente adaptada para ter alto desempenho de leitura aleatória. Ainda assim, por mais que a RAM moderna seja rápida, ainda não é nada comparada à CPU com latências da ordem de 400 ciclos de clock.

Para reduzir ainda mais a latência, as CPUs mais modernas incluem camadas de memória cache. Normalmente, eles são chamados de caches L1, L2 e L3. L1 é realmente de alta velocidade, normalmente levando cerca de 5 ciclos de clock para acessar. L2 é um pouco mais lento, da ordem de 20 ciclos. L3 é ainda mais lento em cerca de 200 ciclos. Embora o L1 seja incrivelmente rápido, também é minúsculo. Grande parte de sua velocidade vem do fato de que caches menores levam menos tempo para serem pesquisados. L2 é maior que L1, mas menor que L3, que é menor ainda que a RAM do sistema. Equilibrar bem o tamanho desses caches é fundamental para obter uma CPU de alto desempenho. As taxas de acerto do cache são importantes, mas você precisa equilibrar o número de acertos com o tempo que leva para obter esse acerto, daí as camadas.

memória do bloco de notas

Observe que a memória do bloco de anotações não se encaixa na hierarquia de memória tradicional. Isso porque não é usado na maioria das CPUs de consumo. A memória do Scratchpad foi projetada para ser usada como um Scratchpad seria na vida real. Você anota informações temporárias das quais precisa se lembrar, mas não precisa realmente arquivar. Na maior parte do tempo, uma CPU processa dados e precisa desse resultado novamente imediatamente. Ele pode copiá-lo para a memória, mas para poder acessá-lo rapidamente, também deve mantê-lo no cache.

A memória do Scratchpad preenche essencialmente a mesma lacuna que o cache L1. É acessível o mais rápido possível, geralmente em contagens de ciclo de um dígito. Para gerenciar isso, também é relativamente pequeno. No entanto, existem duas diferenças principais entre a memória L1 e a memória de rascunho. Em primeiro lugar, a memória do bloco de anotações é diretamente endereçável. Em segundo lugar, é compartilhado entre todos os núcleos e processadores.

Diferenças entre cache e rascunho

O cache da CPU é essencialmente transparente para a CPU, não pode colocar dados deliberadamente lá e seu conteúdo não pode ser programado. Em vez disso, a CPU apenas solicita dados da RAM e os recupera mais rapidamente, às vezes significativamente mais rápido do que o esperado. Permitir que o bloco de notas seja endereçável significa que o código pode especificar exatamente quais dados devem estar no bloco de notas. Isso pode ser útil, embora os algoritmos de cache modernos sejam excelentes, com taxas de acerto de 95 a 97% esperadas em cargas de trabalho padrão.

O cache L1 está sempre bloqueado para um núcleo de processamento individual. Nenhum outro núcleo de processamento pode acessá-lo. Isso significa que, se vários núcleos precisarem dos mesmos dados, eles podem duplicá-los em seus respectivos caches L1. Em algumas arquiteturas de CPU, o L2 é por núcleo, em outras é compartilhado por um pequeno número ou mesmo por todos os núcleos. L3 tende a ser compartilhado por todos os núcleos. O compartilhamento de cache entre núcleos permite que dois ou mais núcleos acessem os mesmos dados sem duplicá-los. Ele também permite que um núcleo utilize mais do que seu quinhão quando necessário e o cache tiver espaço.

O Scratchpad atua de forma semelhante ao L1 em ​​termos de velocidade e capacidade, mas é compartilhado entre todos os núcleos. Isso permite acesso muito rápido a dados específicos sendo executados em uma carga de trabalho multithread. A memória do Scratchpad pode até ser compartilhada entre CPUs distintas em placas-mãe com vários soquetes.

Uma desvantagem da memória do bloco de rascunho é que ela pode ser muito utilizada. Podendo acessá-lo diretamente, o software pode contar com sua presença em determinadas quantidades. Nesse caso, ele seria incapaz de rodar em CPUs sem tanta memória de rascunho. As camadas de cache simplesmente não sofrem com esse problema e, portanto, são mais adequadas para uso geral.

Casos de uso

A memória Scratchpad é encontrada com mais frequência em sistemas de servidor com vários soquetes projetados para HPC (computação de alto desempenho). Lá, sua combinação de velocidade e acesso compartilhado o torna útil para cargas de trabalho altamente paralelas.

A memória do Scratchpad também é usada em processadores muito menores. Processadores embutidos, geralmente MPSoCs. Um processador embarcado geralmente é relativamente de baixo consumo de energia e especializado para uma tarefa específica. Essa especialização é frequentemente representada em otimizações de hardware. Especialmente em um sistema multiprocessador em um chip, a memória compartilhada de alta velocidade pode fornecer melhorias significativas de latência para vários processadores diferentes. Esses tipos de CPUs costumam ter um design muito fixo. Os consoles de jogos, por exemplo, já recebem muitas otimizações para design de hardware e, portanto, podem fazer bom uso desses recursos sem precisar se preocupar com a compatibilidade com versões anteriores ou posteriores.

Conclusão

A memória do Scratchpad é semelhante ao cache L1, mas possui várias diferenças que alteram seus casos de uso. Em vez de ser um cache, é diretamente endereçável, permitindo que os dados sejam especificamente atribuídos a uma memória particularmente de alta velocidade. Ele também é compartilhado entre todos os núcleos e processadores do processador, tornando-o particularmente útil em cargas de trabalho altamente multithread.



Leave a Comment

Como clonar um disco rígido

Como clonar um disco rígido

Na era digital moderna, onde os dados são um bem valioso, a clonagem de um disco rígido no Windows pode ser um processo crucial para muitos. Este guia completo

Como consertar o driver WUDFRd que falhou ao carregar no Windows 10?

Como consertar o driver WUDFRd que falhou ao carregar no Windows 10?

Você está enfrentando a mensagem de erro ao inicializar o computador, informando que o driver WUDFRd falhou ao carregar no seu computador?

Como corrigir o código de erro NVIDIA GeForce Experience 0x0003

Como corrigir o código de erro NVIDIA GeForce Experience 0x0003

Você está enfrentando o código de erro 0x0003 da experiência NVIDIA GeForce em sua área de trabalho? Se sim, leia o blog para descobrir como corrigir esse erro de forma rápida e fácil.

Noções básicas de impressão 3D: adesão à base da impressora

Noções básicas de impressão 3D: adesão à base da impressora

Aprendendo sobre impressão 3D? Aqui está o que você precisa saber sobre a adesão da base da impressora.

Como remover uma GPU do Windows PC em 2023

Como remover uma GPU do Windows PC em 2023

Você precisa remover a GPU do seu PC? Junte-se a mim enquanto explico como remover uma GPU do seu PC neste guia passo a passo.

Como instalar um SSD NVMe em um desktop e laptop

Como instalar um SSD NVMe em um desktop e laptop

Comprou um novo SSD NVMe M.2, mas não sabe como instalar? Continue lendo para saber como instalar um SSD NVMe em um laptop ou desktop.

O que é uma bomba lógica?

O que é uma bomba lógica?

Uma bomba lógica é um incidente de segurança em que um invasor configura uma ação atrasada. Continue lendo para saber mais.

O que é Stuxnet?

O que é Stuxnet?

O Stuxnet era um worm autopropagado. Foi o primeiro uso de uma arma cibernética e a primeira ocorrência de malware.

O que é um hacker ético?

O que é um hacker ético?

Um hacker ético é um hacker que age dentro das restrições da lei. Continue lendo para saber mais sobre o assunto.

O que é criptografia simétrica?

O que é criptografia simétrica?

Existem muitas partes diferentes da criptografia. Se você deseja criptografar alguns dados, existem dois tipos de algoritmos que você pode usar: simétrico