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: 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

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:
  1. 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
  2. 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
  3. 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
  4. 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.
    1. 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
    2. 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
    3. 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:

     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

Registradores

Memória dentro da UCP.
Exemplos: registrador de instrução, registrador de dados

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

Memória principal

Dispositivo onde dados e instruções são colocados para que a UCP possa acessá-los para executar um programa.

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.