Memória
Em um sistema de computação temos a UCP se comunicando com a memória e os dispositivos de E/S.
Podemos fazer um paralelo do acesso à memória com um carteiro entregando cartas ou um acesso à biblioteca.
Duas ações básicas podem ser executadas:
- armazenamento (escrita ou gravação (write))
- recuperação (leitura (read))
Em sistemas de computação a unidade básica é o bit que pode ter 2 valores. Mas precisamos de mais valores para representar informação: números, letras do alfabeto, símbolos.
Para isso, os bits são agrupados em grupos de bits que são armazenados na memória e são acessados sempre em grupo.
Para acessar um grupo de bits, utiliza-se um endereço que varia de 0 a (N-1) onde N é o número total de grupos existentes.
Exemplo:
|--------------|
end 0 | M bits |
|--------------|
end 1 | M bits |
|--------------|
end 2 | M bits |
|--------------|
| . |
|--------------|
end N-1 |bm-1|bm-2|...|b0|
|--------------|
Operação de escrita
Escreve no endereço 4
UCP Memória
|-------------| |--------------|
| | end 0 | |
| |------| | |--------------|
| | 1110 | | end 1 | 1000 |
| |------| | |--------------|
| | end 2 | 1100 |
|-------------| |--------------|
| end 3 | |
| |--------------|
| end 4 |0001 -> 1110 |
| |--------------|
| |
|------------------------|
Operação de leitura
Lê do endereço 1
UCP Memória
|-------------| |--------------|
| | end 0 | |
| |------| | |--------------|
| | 1110 | | end 1 | 1000 |
| | | | | |--------------|
| | 1000 | | end 2 | 1100 |
| |------| | |--------------|
|----------- | end 3 | |
| |--------------|
| end 4 | 1110 |
| |--------------|
| |
| |
|------------------------|
Memória
- Dados e instruções são armazenados na memória, lidos e escritos pela UCP
- Instruções são armazenadas de forma seqüencial (mas podem não ser executadas da mesma forma)
- Memória organizada em células de M bits, mas acesso depende do tamanho de palavra
utilizado pela máquina
- Cada grupo de bits (célula) possui um endereço associado. Organização utilizada atualmente: cada célula possui 8 bits
e o tamanho da palavra varia entre 16, 32 e 64 bits
- Tamanho da palavra: Quantidade de bits transferida entre a Memória e UCP em operações de leitura e escrita
Exemplo de organização de memória: Memória com 1KBytes,
cada célula possui 8 bits.
|--------------|
end | |
|--------------|
end 257 | 2A |
|--------------|
end 258 | F1 |
|--------------|
| . |
|--------------|
end 1023| |
|--------------|
Organização da Memória
Parâmetros a serem definidos na organização da memória
1K=210=1024, 1M=220=1.048.576, 1G=230=1.073.741.824
Memória organizada em células de 8 bits, capacidade dada em bytes
Acesso é feito por palavra.
exemplo: int em C possui 4 bytes, então cada acesso à memória traz 4 células para a UCP.
Capacidade da memória=T= N x M, onde N é o número de células e M o número de bits de cada célula.
Se M = 4 bits, quantos valores podemos ter armazenados ?
Cada endereço N é obtido por E linhas de endereço, logo N=2E.
Se N=1024, quantas linhas usamos para endereçamento ?
T=1024*4=4096 bits = 4 X 1024 bits = 4K bits = 512 bytes
Exemplos:
- Espaço de endereçamento = 8K células e cada célula pode armazenar 8 bits. Qual a capacidade da Memória e quantas linhas de endereço devem ser utilizadas ?
T = N X M = 213 X 2 3=216=64K bits
N = 2 13, logo teremos que ter 13 linhas para endereço
- Uma memória pode armazenar no máximo 512K bits e cada célula possui 8 bits. Qual é o número máximo de células possíveis e quantos bits devem ser utilizados para endereçar este número de células?
T = N x M, N = T/M = 512 x 210/8=29x210/23=216=26x210=64K células.
Bits para endereçamento: N = 64K = 216, logo precisaremos de 16 bits
- Um computador possui capacidade máxima de armazenamento de 512K células, cada uma de 16 bits.
Qual o número mínimo de bits que o barramento de endereços e de dados devem ter, supondo que duas células
são acessadas em cada operação de leitura/ou escrita? Qual o maior endereço da Memória e qual a
capacidade da Memória?
Se temos 512 K células=29x210=219, teremos 19 bits para o barramento de
endereços.
Se em cada acesso à memória, duas células são transferidas, então o barramento de dados deve ter o tamanho igual a 32 bits.
O maior endereço da Memória é N-1=219-1=524.287
Capacidade da Memória = NxM=219x16=223bits=220bytes=1M bytes
- Suponha que uma máquina possui um barramento de dados de 64 bits e um barramento de endereços de 24 bits.
Sabe-se que em cada acesso são lidas duas células da memória.
- Qual a capacidade máxima de endereçamento da máquina ?
Se temos 24 bits para endereço, podemos endereçar 224 células=16 M células ou 16M endereços
- Qual a capacidade máxima de armazenamento da memória em bits ?
Em cada acesso são lidas 2 células, e como o barramento de dados é de 64 bits, temos que cada célula possui 32 bits.
Logo capacidade = 32 x 16 M = 512 Mbits
- Qual o tamanho de célula da máquina?
O tamanho da célula é 32 bits
Hierarquia de memória
Vários tipos de memória:
- Mais rápida, mais cara e menor capacidade
- Mais lenta, mais barata e maior capacidade
custo mais alto /\
vel. alta / \ Registradores
baixa capacidade ------
/ \
/ \ Cache
------------
/ \
/ \ Memória principal
------------------
/ \
/ discos \ Memória secundária
maior capacidade /----------------------\
vel. baixa / CD-ROM \
custo baixo /--------------------------\
Parâmetros de memória
- Tempo de acesso: tempo decorrido entre o pedido de dado à memória (endereço) e a disponibilização do dado pela memória.
RAM - independe da posição do dado
Disco e CD-ROM- depende da posição do dado
- Capacidade: medida em bytes (8 bits)
1K=210, 1M=220, 1G=230, 1T=240
- Volatilidade: diz respeito à capacidade de manter dados sem energia elétrica
- Tecnologia: semicondutores, magnéticos, óticos
Registradores
Memória dentro da UCP.
Exemplos: registrador de instrução, registrador de dados
- Tempo de acesso: tecnologia igual a UCP, mais rápido. Um ciclo de máquina, 1GHZ, 1ns
- Capacidade: 1 único dado, instrução, endereço, pouca capacidade.
Exemplo: Intel: 10 registradores de 32 bits
MIPS (Silicon Graphics): 32 registradores de 32 bits
- Voláteis e caros
Cache
O ciclo de instrução é composto do ciclo de memória mais o ciclo de execução.
A tecnologia possibilitou um aumento de velocidade muito maior para UCP do que
para memória principal, causando um gargalo.
Solução: colocar uma memória
intermediária conhecida como cache.
Nível L1: dentro do processador.
Nível L2: fora do processador na placa mãe
- Tempo de acesso: menor que memória principal, maior que registradores, 10ns.
- Capacidade: se muito grande, muito cara. Se muito pouca, baixo desempenho.
Valores típicos: 16K para L1 e 64K a 2MB para L2.
- Voláteis e caras
- Tecnologia SRAM
Memória principal
Dispositivo onde dados e instruções são colocados para que a UCP possa acessá-los para executar um programa.
- Tempo de acesso: maior que cache, pode variar de 50 a 150 ns.
- Capacidade: bem maior que a cache. 64 MB, 128 MB, 256 MB, 1GB
- Voláteis e mais baratas
- Tecnologia DRAM
Memória secundária
Memória que permite o armazenamento permanente de dados e instruções.
Pode ser constituída de vários dispositivos: discos rígidos, disquetes, fitas, CD-ROMs.
- Tempo de acesso: dispositivos eletromecânicos possuem tempo maior que dispositivos semicondutores.
Discos rígidos: 8 a 15ms
CD-ROMs: 120 a 300ms
Fitas: ordem de segundos
- Capacidade: bem maior que a memória principal: 100GBytes, 1 Terabyte
- NÃO Voláteis e mais baratas
- Magnético e ótico