Diferença entre memória cache e registro?

5

Qual é a diferença entre memória cache e registros? Eu os conheço por definição, mas por que precisamos do outro quando temos algum deles?

    
por Fahad Uddin 09.11.2010 / 14:24

6 respostas

11

Os registros são:

  • Poucos em número (geralmente menos de 32)
  • Limitado em tamanho (32, 64, 80, 128 bits)
  • As únicas coisas em que a maioria dos processadores pode operar diretamente (embora x86 / x86-64 desfoque isso um pouco)

Cache é:

  • Extant (32kB +)
  • Maior em quanta (512 bytes ou mais)
  • Não é diretamente acessível para operações (apenas um pool entre a CPU e a loja principal)
por 09.11.2010 / 14:31
2

para tornar simples o registro do processador é muito mais rápido do que a memória cache, e ao contrário da memória cache que armazena dados, o processador armazena instruções que manipulam dados, por instrução i mean (address, opcode, small chuck de dados que precisamos para operar em ...).

    
por 09.11.2010 / 14:31
2

Os registros são controláveis, você pode armazenar e recuperar informações deles. Há muito poucos deles (no x86 pelo menos), mas muito rápido. Muitos deles têm usos muito particulares (Ponteiro de Instrução, Ponteiro de Base, etc.) e não devem ser usados pelo usuário.

O cache é quase completamente incontrolável. Você pode invalidá-lo (instruções privilegiadas INVD e WBINVD), mas não é possível armazenar ou recuperar informações explicitamente a partir dele. Ele também é colocado entre a memória e a CPU, então você nem sabe se está funcionando ou não, a menos que você faça comparações de tempo. Destina-se a ser completamente transparente nas operações. Além disso, eles podem ser hierárquicos e razoavelmente grandes (comparativamente aos registros, pelo menos).

    
por 09.11.2010 / 14:51
1

Então, eu acho que você está se perguntando, já que são apenas bytes armazenados, por que separar alguns deles como registradores e chamar o cache restante?

Bem, já faz um tempo desde que eu programei no PIC, mas se bem me lembro, o PIC não faz distinção entre "memória" e "registra", e chama toda a sua memória de "registradores"; todos compartilham um espaço de endereço. Algumas delas são de propósito especial, para coisas como portas IO, mas a maioria é de propósito geral.

É uma boa ideia? Bem, obviamente não é terrível porque o PIC é um microcontrolador razoavelmente bem sucedido. Mas você pode ver que isso teria limitações quando você começar a ampliar para adicionar mais memória e um relógio mais rápido. (Eu não sou um EE, então tome isso com um grão de sal). A vantagem de separar alguns registradores particulares é que eles podem ser conectados a menos coisas: todos os fios conectados a um circuito adicionam carga capacitiva que a retarda. Em uma máquina moderna com kilobytes de cache que seria muito carregado para algo que você deseja acessar basicamente todas as instruções. Eu imagino que também pode custar vantagens, porque você poderia fazer os registros de transistores amplos e rápidos, e então reduzir a escala para o cache que não precisa ser tão rápido.

    
por 30.04.2011 / 01:44
0

Um registrador contém instruções ou dados em que o processador está trabalhando ou estará trabalhando em breve. Eles fazem parte do processador e são capazes de manter apenas um item de cada vez.

Uma memória cache é uma área no computador onde os códigos e instruções são armazenados.

    
por 20.03.2014 / 00:15
0

O cache tem uma natureza endereçável pelo conteúdo - uma determinada linha (pelo menos conceitualmente) contém dados e endereços como valores dinâmicos, para que a linha reconheça seu próprio endereço e responda, além de ter que ser endereçada externamente endereço com fio gerado por computador.

É essa natureza endereçável por conteúdo que define algo como "cache".

(É claro que, na prática, o cache é frequentemente implementado com RAM relativamente convencional de "endereço físico" e uma unidade de tradução de endereço ao lado, mas não é realmente um "cache" até que você combine os dois.)

    
por 20.03.2014 / 01:38