Hierarquia Da Memória

Quando alguém usa o termo "memória," estão consultando tipicamente ao armazenamento de dados de fornecido pelas microplaquetas dedicadas situadas no cartão-matriz. O armazenamento que estas microplaquetas fornecem é consultado frequentemente como à memória de acesso aleatório (RAM), à memória principal, e ao armazenamento preliminar. Para trás na idade de ferro, quando os mainframes andaram a terra, foi chamado o núcleo. O armazenamento forneceu por estas microplaquetas é temporário, que deve dizer que os dados nas microplaquetas estão perdidos quando o poder é desligado.

Há uns vários tipos de RAM:

A RAM dinâmica (DRAM) tem que ser milhares recarregados das épocas cada segundo. O DRAM synchronous (SDRAM) é refrescado na velocidade de pulso de disparo em que o processador funciona o mais eficientemente. A RAM de estática (SRAM) não necessita ser refrescada como o DRAM, e o este fá-lo muito mais rápido. Infelizmente, SRAM é também muito mais caro do que o DRAM e é usado frugalmente. SRAM tende a ser usado em esconderijos do processador e o DRAM tende a ser usado para a memória por atacado. Finalmente, há a RAM video (VRAM), que é uma região da memória usada pela ferragem video.

Os avanços recentes na tecnologia e nos optimizations especiais executados por determinados fabricantes conduziram a um número de acrônimos adicionais. Está aqui um par deles:

DDR SDRAM está para a memória de acesso aleatório dinâmica synchronous dobro de taxa de dados. Com DDR SDRAM, os dados são lidos em levantar-se e na cair do tiquetaque de pulso de disparo do sistema, dobrando bàsicamente a largura de faixa normalmente disponível. RDRAM é curto para o DRAM de Rambus, uma versão high-performance do DRAM vendida por Rambus que pode transferir dados em 800 megahertz. O DRAM synchronous realçado (ESDRAM), manufaturado por sistemas realçados da memória, fornece uma maneira substituir SRAM com o SDRAM mais barato.

Um bocado é um único dígito binário (isto é, um 1 ou um 0). Um bocado em uma microplaqueta de RAM é bàsicamente uma estrutura da pilha de que seja composto, dependendo do tipo de RAM, uma determinada configuração dos transistor e capacitores. Cada pilha é um interruptor digital em que possa ou estar ou fora (isto é, 1 ou 0). Estas pilhas são agrupadas em bytes 8-bit da chamada das unidades. O byte é a unidade fundamental para medir a quantidade de memória fornecida por um dispositivo de armazenamento. Nos anos adiantados, os vendedores de ferragem usaram-se executar tamanhos diferentes do byte. Um vendedor usaria um 6-bit.byte e outro usaria um byte 16-bit. O padrão de de facto que todos parece abide perto hoje, entretanto, é o byte 8-bit.

Há um jogo inteiro do metrics byte-baseado para especificar o tamanho de uma região de memória:

1 byte = 8 bocados

1 palavra = 2 bytes

1 palavra dobro = 4 bytes

1 palavra do quad = 8 bytes

1 palavra octal = 8 bytes

1 parágrafo = 16 bytes

1 kilobyte (KB) = 1.024 bytes

1 megabyte (MB) = 1,024KB = 1.048.576 bytes

1 gigabyte (GB) = 1,024MB = 1.073.741.824 bytes

1 Terabyte (TB) = 1,024GB = 1.099.511.627.776 bytes

1 petabyte (PB) = 1,024TB = 1.125.899.906.842.624 bytes

Nota 

Nos 1980s, ter uma megabyte do DRAM era um negócio grande. Os miúdos usaram-se desinsetar seus pais para melhoramentos da memória 16KB assim que seu Atari 400s poderia jogar jogos maiores. Então, ter somente uma megabyte não era um problema significativo porque coordenadores tende a programar no código do conjunto e a construir programas muito pequenos. No fato, estas citações 1981 são atribuídas frequentemente a Bill Gates: "640K ought ser bastante para qualquer um."

Hoje, a maioria de máquinas do desenvolvimento têm ao menos 128MB do DRAM. Em 2002, ter 256MB parece ser a norma. Dez anos de agora, um gigabyte pôde ser a quantidade padrão de DRAM (se nós estamos usando ainda o DRAM). Esperançosamente, alguém não me citará.

A RAM não é o único lugar para armazenar dados, e este é o que nos conduz à hierarquia da memória. A escala dos lugares diferentes que podem ser usados armazenar a informação pode ser requisitada de acordo com sua proximidade ao processador. Isto que requisita produz a seguinte hierarquia:

  1. Registos

  2. Esconderijo

  3. RAM

  4. Armazenamento de disco

A distinção preliminar entre estas áreas de armazenamento é sua latência da memória, ou tempo de retardação. O armazenamento mais perto do processador faz exame de menos tempo alcançar do que o armazenamento que está um ausente mais adicional. A latência experimentada em dados de acesso em uma movimentação dura é muito mais grande do que a latência que ocorre quando o processador alcança a memória em seu esconderijo. Para o exemplo, a latência do DRAM tende a ser medida nos nanossegundos. A latência da movimentação de disco, entretanto, tende a ser medida nos milissegundos!

Os registos são os espaços de armazenamento pequenos que são ficados situados dentro do processador próprio. Os registos são espaço de trabalho favorito de um processador. A maioria do trabalho cotidiano do processador é executado em dados nos registos. Os dados moventes de um registo a outro são a única maneira a mais expediente mover dados.

As Software Engineers que projetam compiladores saltarão com todas as sortes dos hoops apenas para manter variáveis e constantes nos registos. Ter um grande número registos permite que mais do estado sejam armazenadas dentro do processador próprio de um programa e reduzidas na latência da memória. O processador MIPS64 tem 32, registos 64-bit, general-purpose para esta razão very. O Itanium, microplaqueta 64-bit da geração seguinte de Intel, vai uma etapa mais mais e tem literalmente centenas dos registos.

O processador do Pentium de Intel tem um jogo variado dos registos. Há seis, 16-bit, registos do segmento (CS, DS, ES, FS, GS, SS). Há oito, registos 32-bit, general-purpose (EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP). Há também um registo 32-bit da bandeira do erro (EFLAGS) para sinalizar os problemas e um ponteiro de instrução 32-bit (EIP).

As funções avançadas da gerência da memória são facilitadas por quatro registos do sistema (GDTR, LDTR, IDTR, TR) e por cinco registos de controle da modalidade (CR0, CR1, CR2, CR3, CR4).

Nota 

É interessante anotar como a coleção do Pentium dos registos foi confinada por forças históricas. A exigência do projeto que exige a compatibilidade inversa resultou no Pentium que tem somente alguns mais registos do que os 8086.

Um esconderijo fornece o armazenamento provisório que pode ser alcançado mais rapidamente do que o DRAM. Colocando computacionalmente parcelas intensive de um programa no esconderijo, o processador pode evitar as despesas gerais de ter que continuamente alcançar o DRAM. As economias podem ser dramáticas. Há uns tipos diferentes de esconderijos. Um esconderijo L1 é um espaço de armazenamento que seja ficado situado no processador próprio. Um esconderijo L2 é tipicamente uma microplaqueta de SRAM fora do processador (para o exemplo, os navios do Pentium de Intel 4 com uns 256 ou 512KB L2 avançaram o esconderijo de transferência).

Nota 

Se você estiver tentando optimize o código que executa no esconderijo, você deve evitar ligações de controle desnecessárias. Uma chamada a uma função distante requer o processador executar o código que se encontra fora do esconderijo. Isto faz com que o esconderijo recaregue. Esta é uma razão porque determinados compiladores de C lhe oferecem a opção de gerar funções inline. O outro lado da moeda é que um programa que use funções inline será muito maior de um que não . O trade-off da tamanho-contra-velocidade é um ato balançando que eleve sua informática de do excesso da cabeça toda.

O armazenamento de disco é a opção do último recurso. Tradicional, o espaço de disco foi usado criar a memória virtual. A memória virtual é a memória que é simulada usando o espaço de disco. Ou seja as parcelas da memória, armazenadas normalmente no DRAM, são escritas ao disco de modo que a quantidade de memória que o processador pode alcançar seja mais grande do que a quantidade real de memória física. Para o exemplo, se você tiver 10MB do DRAM e você usar 2MB do espaço de disco simular a memória, o processador pode então alcançar 12MB da memória virtual.

Usar a memória virtual é como fazer um negócio com o diabo. Certo, você começará lotes da memória extra, mas você pagará um custo terrível nos termos do desempenho. O disco I/O envolve uma série inteira das ações imperativas, algumas de que são mecânicas. Estima-se que a paginação em Windows explica aproximadamente 10% do tempo de execução. A memória virtual controlando requer muitos da contabilidade na parte do processador.

O armazenamento de disco foi sempre mais barato do que a RAM. Para trás nos 1960s quando 8KB da RAM era um investimento grande, usar o disco criar a memória virtual fêz provavelmente o sentido. Hoje, entretanto, a discrepância do custo entre o DRAM e as movimentações de disco não é tão significativa como estava para trás então. Comprar uma máquina com o 512MB de SDRAM não é unheard de. Poder-se-ia ser que a memória virtual se transformará um relic completo ou executado como alguma sorte da proteção da emergência.

um artigo submeteu-se por Vuk Mitrovich


Disclaimer: Nosso Web site não é responsável para a informação contida por este artigo. Este artigo em nenhuma maneira reflete as vistas, as opiniões, os pensamentos ou a opinião da equipe de funcionários do diretório dos artigos.
Observação da tradução: O artigo da "hierarquia memória" foi traduzido usando um serviço de tradução automatizado. Nós desculpamo-nos sincerely por todos os erros da tradução que puderem ter ocorrido. Obrigado para sua compreensão.

Online: 492 users browsing the articles directory


  

.