Aula 6: Memória e a Hierarquia de Memória
Na aula anterior, todos os circuitos eram sem memória — a saída era determinada apenas pelas entradas atuais. Agora vamos cruzar uma fronteira importante: lógica sequencial (Sequential Logic) — circuitos que se lembram. A saída deles depende não só das entradas, mas também de um estado guardado nele
Até agora vimos circuitos que esquecem na hora. Agora vamos construir circuitos que se lembram: um flip-flop que guarda um bit, registadores rápidos na CPU e uma RAM grande. E vamos ver por que mantemos os dados mais usados perto e rápido, no cache.
- Lógica Sequencial
- Um circuito cuja saída depende tanto das entradas atuais quanto de um estado guardado nele a partir do passado — ou seja, um circuito que tem memória. O oposto da lógica combinacional.
- Trava
- Um circuito sequencial básico capaz de guardar um único bit: você pode 'travar' nele um valor 0 ou 1, e ele permanece até ser alterado.
- Flip-Flop
- Uma unidade de armazenamento de um bit que se atualiza no ritmo do clock. Um flip-flop do tipo D 'captura' o valor da entrada no instante da pulsação do clock e o guarda até a próxima pulsação.
- Registador
- Um pequeno grupo de flip-flops (por exemplo, 8, 32 ou 64) que guarda um valor inteiro dentro da CPU. É a memória mais rápida do computador.
- Memória de Acesso Aleatório
- Um grande array de células de memória, cada uma acessível diretamente por um endereço — para ler ou escrever o byte daquela célula. Volátil: é apagada ao desligar.
- Endereço
- Um número que identifica uma célula específica na memória. Você fornece um endereço e recebe (ou escreve) o valor dessa célula, como o número de um apartamento em um prédio.
- Volátil
- Uma propriedade da memória que perde seu conteúdo assim que a energia é cortada. A RAM é volátil; disco e SSD não são voláteis.
- Cache
- Uma memória pequena e muito rápida, próxima da CPU (L1/L2/L3), que guarda uma cópia dos dados usados com frequência para evitar um acesso lento à RAM.
- Hierarquia de Memória
- A escada da memória por velocidade, tamanho e custo: registadores -> cache (L1/L2/L3) -> RAM -> SSD/disco. Quanto mais rápido um nível, menor e mais caro ele é.
- Localidade de Referência
- A tendência dos programas de aceder repetidamente dados que acabaram de usar, ou dados próximos a eles. Graças a isso, um cache pequeno 'adivinha' bem o que será necessário em breve.