Memórias Semicondutoras

Propaganda
Arquitetura de Computadores – Memória
Prof. Luiz Marcelo Chiesse da Silva
MEMÓRIAS SEMICONDUTORAS
Em um sistema computacional subentende-se memória como qualquer
dispositivo capaz de armazenar dados, mesmo temporariamente. Atualmente, os
métodos de armazenamento de informação digital (armazenamento de bits) mais
utilizados são as memórias semicondutoras, memórias de núcleos magnéticos
(disquetes, HD´s de computadores, fitas magnéticas,...) e óticos (CD´s). As
memórias modernas são compostas por circuitos semicondutores (eletrônicos),
apresentando a vantagem de não envolver dispositivos eletromecânicos e sensores
presentes em outros tipos de mídias, permitindo maior velocidade de acesso. Novas
tecnologias são criadas atualmente permitindo maior capacidade de
armazenamento, maior velocidade e maior eficiência das memórias. Abaixo
encontra-se um quadro com uma estimativa entre as velocidades de acesso entre
um dispositivo eletromecânico e um eletrônico:
dispositivo
Velocidade
Memória RAM 30 ns. (30x10-9 s.)
HD
3 ms. (3x10-3 s.)
Apesar das memórias semicondutoras apresentarem maior rapidez, a
capacidade de armazenamento em massa (grande quantidade de informação) é
relativamente pequena em relação a outros tipos de dispositivos de
armazenamento, devido ao alto custo na fabricação. O armazenamento dos valores
dos bits em uma memória semicondutora pode ser realizada por flip-flops, como na
SRAM – Static RAM (RAM estática), ou por um circuito de armazenamento de
cargas elétricas, como na DRAM – Dynamic RAM (RAM dinâmica).
Quanto à escrita e leitura dos dados, as memórias podem ser classificadas
em:
- memória apenas de leitura (ROM – Read Only Memory): programada em
fábrica;
- memória de leitura programável (PROM – Programable ROM): programável
apenas uma vez, como os CD´s graváveis;
- memória de leitura programável e apagável (EPROM – Eletrical PROM): é
possível programar e reprogramar.
As memórias que possuem armazenamento volátil são as que perdem os
dados sem alimentação elétrica. Geralmente as RAMs são voláteis e as ROMs são
não-voláteis, mas o advento de novas tecnologias, como a Flash RAM, permitem a
escrita, leitura, e a retenção dos dados por um grande intervalo de tempo.
A unidade básica de armazenamento em uma memória, ou a menor
quantidade de informação que uma memória pode armazenar é denominada célula
de memória. Uma memória semicondutora consiste em uma matriz retangular
Cefet/PR – Cornélio Procópio
1
Arquitetura de Computadores – Memória
Prof. Luiz Marcelo Chiesse da Silva
destas células, fabricada na forma de circuito integrado, sendo que cada célula pode
armazenar um bit ou mais. A maioria dos computadores utiliza células de memória
de oito bits.
Computador Tamanho da célula
IBM PC
célula de 8 bits
DEC PDP-8 célula de 12 bits
IBM 1130
célula de 16 bits
CDC Cyber célula de 60 bits
"n"
colunas
ENDEREÇAMENTO
É o processo de seleção de uma célula de memória para a escrita ou leitura.
Então uma célula de memória é a menor unidade de armazenamento de dados
endereçável, sendo dispostas em linhas e colunas (na forma de matriz) para formar
uma memória. Para o acesso ao conteúdo armazenado é necessário um circuito de
controle para “ativar” a linha e coluna em que se localiza a respectiva célula, sendo
necessário uma identificação ou endereço. Esta identificação é definida como
endereço da célula de memória.
0
1
2
3
"n"
0
1
2
célula de endereço 13
célula de endereço 22
3
"m"
linhas
célula de endereço 30
"m"
Cefet/PR – Cornélio Procópio
2
Arquitetura de Computadores – Memória
Prof. Luiz Marcelo Chiesse da Silva
DEMUX
endereço
Exemplos de circuitos de controle para acesso à memória são o mux e o
demux, em que o valor do endereço a ser ativado é dado pelas variáveis de seleção.
DEMUX
endereço
HIERARQUIA DE MEMÓRIA EM UM COMPUTADOR
Em função de características como tempo de acesso, capacidade de
armazenamento, custo, etc., é possível estabelecer uma hierarquia de dispositivos
de armazenamento em computadores.
Tipo
Capacidade Velocidade Custo Localização Volatilidade
Muito
Registradores
Bytes
muito alta
UCP
Volátil
alto
Memória
Kbytes
alta
Alto UCP/placa
Volátil
Cache
Memória
Mbytes
média
Médio
Placa
Volátil
Principal
Memória
Gbytes
baixa
Baixo
Externa
Não Volátil
Auxiliar
A UCP vê nesta ordem e acessa primeiro a que está mais próxima. Subindo
na hierarquia, quanto mais próximo da UCP: maior velocidade, maior custo, porém
Cefet/PR – Cornélio Procópio
3
Arquitetura de Computadores – Memória
Prof. Luiz Marcelo Chiesse da Silva
menor capacidade de armazenamento. Em um microcomputador, como o IBM PC, a
memória principal é denominada memória RAM e a memória auxiliar consiste nos
outros dispositivos de armazenamento não voláteis como o HD, disquetes e CD´s.
Os registradores e a memória cache estão incluídos no chip da UCP, mas
atualmente existe a possibilidade de expansão da cache fora do chip da UCP.
REGISTRADORES
Registradores são dispositivos de armazenamento temporário, localizados na
UCP, extremamente rápidos, com pequena capacidade (menos de 128 bits cada).
Devido a sua tecnologia de construção e por estar localizado como parte da própria
pastilha ("chip") da UCP, é muito caro. A utilização de registradores surgiu da
necessidade da UCP de armazenar temporariamente dados intermediários durante
um processamento. Por exemplo, um resultado de alguma operação precisa ser
armazenado até que o resultado de uma busca da memória esteja disponível para
realizar uma nova operação.
Máquinas RISC são geralmente construídas com um grande conjunto de
registradores, de forma a trazer os dados para o mais próximo possível da UCP, de
forma que o programa opere sempre sobre dados que estão em registradores.
MEMÓRIA CACHE
Com o desenvolvimento dos circuitos computacionais da UCP e das memórias
semicondutoras surgiu um problema: os circuitos das UCPs tornaram-se mais
rápidos que os circuitos de acesso às memórias semicondutoras, porque os
fabricantes concentraram-se mais no desenvolvimento da capacidade de
armazenamento das memórias do que na sua velocidade de acesso. Assim, os
tempos de acesso às memórias tornaram-se defasados em relação às UCPs. Uma
UCP, ao buscar um dado na memória necessitava gastar um tempo de muitos ciclos
do clock na “espera” ("wait state") até a memória terminar esta busca e retornar o
dado desejado, o que configura o chamado “gargalo” (ou "bottleneck") no
desempenho do sistema. Por esse motivo, desenvolveram-se outras arquiteturas de
memória privilegiando a velocidade de acesso. A arquitetura da memória cache é
muito diferente da arquitetura da memória principal e o acesso a ela é muitas vezes
mais rápido (p.ex: 5 ns contra 70 ns).
No entanto, o custo de fabricação da memória cache é muito maior que o da
memória principal. Desta forma, não é econômico construir um computador somente
com tecnologia de memória cache. Criou-se então um artifício, incorporando-se ao
computador uma pequena porção de memória cache, localizada entre a UCP e a
memória principal, e que funciona como um espelho de parte da memória principal.
Desenvolveram-se ainda algoritmos que fazem com que, a cada momento, a
memória cache armazene a porção de código ou dados (por exemplo, uma subrotina) que estão sendo usados pelas UCP. Esta transferência (memória principal <Cefet/PR – Cornélio Procópio
4
Arquitetura de Computadores – Memória
Prof. Luiz Marcelo Chiesse da Silva
-> Cache) é feita pelo hardware: ela independe do software, que ignora se existe ou
não memória cache, portanto ignora essa transferência
A memória cache opera em função de um princípio estatístico comprovado:
em geral, os programas tendem a referenciar várias vezes pequenos trechos de
programas, como loops, sub-rotinas, funções e só tem sentido porque programas
executados linearmente, seqüencialmente, são raros. Desta forma, algoritmos
(chamados algoritmos de cache) podem controlar qual parte do código ficará
copiado na cache, a cada momento.
Quando a memória principal busca um determinado trecho de código e o
encontra na cache, ocorre o denominado "cache hit", enquanto se o dado não
estiver presente na cache será necessário requisitar o mesmo à memória principal,
acarretando atraso no processamento e ocorre o "cache miss" ou "cache fault". O
índice de cache hit ou taxa de acerto da cache é geralmente acima de 90%.
MEMÓRIAS AUXILIARES
Memórias auxiliares resolvem problemas de armazenamento de grandes
quantidades de informações. A capacidade da memória principal é limitada pelo seu
alto custo, enquanto as memórias auxiliares tem maior capacidade e menor custo;
portanto, o custo por bit armazenado é muito menor.
Outra vantagem importante é que as memórias auxiliares não são voláteis, isto
é, não dependem de estar energizadas para manter gravado seu conteúdo.
Os principais dispositivos de memória auxiliar são: discos rígidos (ou HD), drives de
disquete, unidades de fita, CD-ROM, DVD, unidades ótico-magnéticas, etc.
OBS.: A chamada cache de disco não é a mesma tecnologia da memória cache.
Trata-se do emprego do mesmo conceito da memória cache, para acelerar a
transferência de dados entre disco, memória principal e UCP, mas utilizando um
software (por ex.: SmartDrive) para manter um espelho do conteúdo de parte do
disco (a mais provável de ser requisitada a seguir pela UCP) gravado em uma parte
da memória principal. Recentemente, as unidades de disco passaram a incorporar
em sua interface chips de memória para acelerar a transferência de dados,
utilizando um algoritmo de cache.
Cefet/PR – Cornélio Procópio
5
Download