- Sistemas de Memória Interna. por. Helcio Wagner da Silva



Documentos relacionados
Arquitetura e Organização de Computadores

Arquitetura de Computadores - Sistemas de Memória

Memória ROM. Organização Funcional de um. Computador. ROM (Read-Only Memory) Memória Somente Leitura.

Memória Cache. Prof. Leonardo Barreto Campos 1

Arquitetura e Organização de Computadores

Tecnologias de Construção de Memórias e Memórias RAM, entrelaçada e Virtual

Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e Organização de Memória

Memórias Prof. Galvez Gonçalves

CIÊNCIA E TECNOLOGIA DO RIO INFORMÁTICA BÁSICA AULA 03. Docente: Éberton da Silva Marinho ebertonsm@gmail.com 25/06/2014

ROM e RAM. Memórias 23/11/2015

ARQUITETURA DE COMPUTADORES

Os textos nestas caixas foram adicionados pelo Prof. Joubert

Figura 1 - Memória 1. OBJETIVO. Conhecer os principais tipos de memórias entendendo suas funcionalidades e características.

R S Q Tabela 17 - Tabela verdade NOR

Armazenar dados e programas que serão utilizados pelo processador (CPU Unidade Central de Processamento)

Disciplina: Introdução à Engenharia da Computação

Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal. Memória principal

HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO. Wagner de Oliveira

MEMÓRIAS. Sistemas Digitais II Prof. Marcelo Wendling Set/10

Introdução. Hardware (Parte II) Informações Adicionais. Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Sigla Nome Tecnologia. vez. Programable Read Only Memory (memória programável somente de leitura)

Conceitos Básicos. Conceitos Básicos Memória

O Hardware Dentro da Unidade do Sistema

MEMÓRIA. A memória do computador pode ser dividida em duas categorias:

CEFET-RS Curso de Eletrônica

Introdução a Informática. Prof.: Roberto Franciscatto

Diminui o gargalo existente entre processador e memória principal; 5 a 10 vezes mais rápidas que a memória principal; Ligada diretamente à MP;

MEMÓRIA. 0 e 1 únicos elementos do sistema de numeração de base 2

for Information Interchange.

Memórias. O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s)

ARQUITETURA DE COMPUTADORES Prof. João Inácio

Memória cache. Prof. Francisco Adelton

Portas lógicas e circuitos digitais. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Os dispositivos lógicos programáveis (PLD Programmable Logic Device) são circuitos integrados programáveis pelo usuário, que

Capítulo 12) Dispositivos de Memória

Memórias do Computador

Informática Aplicada à Química. Hardware - armazenamento

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Memórias. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva

Memória RAM. A memória RAM evolui constantemente. Qual a diferença entre elas? No clock (velocidade de comunicação com o processador)

Arquitetura de Computadores. Arquitetura de Computadores 1

SSC0112 Organização de Computadores Digitais I

DISPOSITIVOS DE MEMÓRIA

Memória RAM. Administração de Sistemas Informáticos I 2005 / Grupo 1:

SRAM Static RAM. E/L Escrita Leitura. FPM DRAM Fast Page Mode EDO DRAM Extended Data Output SDRAM Synchronous DDR SDRAM Double Data Rate RDRAM Rambus

Introdução a Informática. Prof.: Roberto Franciscatto

Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET

Fundamentos em Informática

Infraestrutura de Hardware. Memória Virtual

Organização de Computadores Como a informação é processada?

Introdução. Em se tratando de computador, entendemos que memória são dispositivos que armazenam dados com os quais o processador trabalha.

Aula 06. Memórias RAM

SISTEMAS DIGITAIS. Memórias. Prof. Guilherme Arroz Prof. Carlos Sêrro Alterado para lógica positiva por Guilherme Arroz.

Sistemas Computacionais

Fonte : Introdução

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Organização de Computadores 1

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Memórias. Sumário. Introdução Formatos... 2 DDR Memórias DDR Memórias DDR

William Stallings Arquitetura e Organização de Computadores 8 a Edição. retrospectiva Pearson Prentice Hall. Todos os direitos reservados.

Memórias Semicondutoras

Programação de Sistemas

Organização de Computadores (Aula 4) Memória

BARRAMENTO DO SISTEMA


ARQUITETURA DE COMPUTADORES

Admistração de Redes de Computadores (ARC)

Curso Profissional de Electrónica, Automação e Computadores. Automação e Computadores

Técnicas de Manutenção de Computadores

Setores Trilhas. Espaço entre setores Espaço entre trilhas

Arquitetura de Von Neumann e os Computadores Modernos

APOSTILA 4 SUBSISTEMA DE MEMÓRIA Prof. Murilo Parreira Leal, M.Sc. Arquitetura e Organização de Computadores

ARQUITETURA DE COMPUTADORES

Visão geral do sistema de armazenamento e hierarquia de memória

Introdução a Organização de Computadores Aula 4

Arquitetura e organização de computadores

Disciplina: Introdução à Informática Profª Érica Barcelos

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

HD e Memória Virtual. Qual as vantagens e desvantagens da Memória Virtual?

Circuitos de Memória: Tipos e Funcionamento. Fabrício Noveletto

Sistemas Operacionais

ARQUITETURA DE COMPUTADORES

Arquitetura e Organização de Computadores I

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

ULA Sinais de Controle enviados pela UC

Visão geral do sistema de memória de computadores

Prof. Daniel Gondim Informática

Microcomputadores. Prof. Marcelo GonG. onçalves. Rubinstein

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 5 Memória interna

2. Arquitetura de Computadores

Introdução à Arquitetura de Computadores

Portas lógicas e Circuitos. Marcos Monteiro, MBA

Informática Aplicada

Memória. Introdução. Unidades de medida de capacidade Tipos:

Hardware de Computadores

3. Arquitetura Básica do Computador

Tipos e Formatos de módulos de memória

Arquitetura de Computadores. Tipos de Instruções

Transcrição:

Arquitetura de Computadores - Sistemas de Memória Interna por Helcio Wagner da Silva 1

Organização da Memória Registradores custo por bit capacidade tempo de acesso freq. de acesso pelo processador Memória Cache Memória Principal Disco Magnético CD-R CD-RW DVD-R DVD-RW Fita Magnética 2

Características fundamentais Localização Processador Interna (principal) Externa (secundária) Capacidade Tamanho da palavra Número de palavras Unidade de Transferência Palavra Bloco Método de Acesso Sequencial Direto Aleatório Associativo 3

Método de Acesso Sequencial Os dados são organizados em registros sequenciais Exemplo: fitas magnéticas Trilha 01 Trilha 02 Trilha 03 Trilha 04 Trilha 05 Trilha 06 Trilha 07 Trilha 08 Trilha 09 (bit de paridade) Registro físico Espaço entre registros O tempo de acesso é variável 4

Método de Acesso Direto Cada bloco de dados possui um endereço único, baseado na localização física O acesso é feito através do acesso direto a uma vizinhança genérica do registro, e em seguida por uma busca seqüencial O tempo de acesso é variável Exemplo: HD Movimento do braço Movimento do disco Dado buscado (trilha 02, setor 25) 5

Método de Acesso Aleatório Cada posição de memória possui um endereço único O tempo de acesso a uma posição é constante, sendo independente dos acessos anteriores Exemplos: Memória principal e alguns sistemas de memória cache acesso endereços 000 001 010 011... 111 P1 P2 P3 P4... P8 6

Método de Acesso Associativo Tipo de acesso aleatório que compara simultaneamente certo número de bits de uma palavra com todas as palavras da memória, determinando quais delas contêm o mesmo padrão de bits Uma palavra é buscada com base em parte de seu conteúdo, e não de acordo com o seu endereço Exemplo: Memórias cache 7

Características fundamentais Desempenho Tempo de Acesso Tempo de ciclo Taxa de transferência Tecnologia Semicondutores Magnética Óptica Características físicas Volátil/não-volátil Apagável/nãoapagável Organização Arranjo físico de células Formas de Encapsulamento Detecção e correção de erros 8

Tempo de Acesso (T A ) Em memórias de acesso aleatório: Tempo decorrido desde o instante em que um endereço é apresentado à memória até o momento em que os dados são armazenados ou se tornam disponíveis para utilização Em memórias de acesso não-aleatório: Tempo gasto para posicionar o mecanismo de leitura-escrita na posição desejada 9

Tempo de Ciclo (T C ) Aplicável principalmente às memórias de acesso aleatório Compreende o tempo de acesso e o tempo adicional requerido antes que um segundo acesso possa ser iniciado O tempo adicional é necessário para o desaparecimento de transientes nas linhas de sinal 10

Taxa de Transferência (R) Taxa na qual os dados podem ser transferidos de ou para a unidade de memória Para memórias de acesso aleatório: R = 1/T C Para memórias de acesso não-aleatório: R = N/(T N T A ), em que: T N é o tempo médio para ler ou escrever N bits T A é o tempo de acesso médio 11

Tecnologia de Semicondutores Tipo de memória Categoria Mecanismo de apagamento Mecanismo de escrita Volatilidade Memória de acesso aleatório (RAM) Memória de leitura e de escrita Eletricamente, em nível de Byte Eletricamente Volátil Memória apenas de leitura (ROM) ROM Programável (PROM) Memória apenas de leitura Não é possível Máscaras PROM Apagável (EPROM) Luz UV, em nível de pastilha Não-volátil Memória Flash PROM Eletricamente Apagável (EEPROM) Memória principalmente de leitura Eletricamente, em nível de blocos Eletricamente, em nível de Bytes Eletricamente 12

Memórias RAM RAM dinâmica (DRAM) Células armazenam dados com a carga de capacitores É necessário um circuito de regeneração (refresh) RAM estática (SRAM) Valores são armazenados usando configurações de flip-flops com portas lógicas Não é necessário o circuito de regeneração São mais rápidas do que as DRAM, porém são mais caras 13

Memória ROM Possui um padrão permanente de dados, que não pode ser alterado Os dados são gravados na pastilha durante o processo de fabricação Memória PROM O processo de gravação (programação) é efetuado eletricamente, e pode ser feito pelo fornecedor ou pelo cliente após a fabricação da pastilha 14

Memória EPROM Pode ser apagada por um processo óptico (exposição à radiação UV) O processo de apagamento pode levar 20 min, e deve ser feito integralmente em todas as células de memória antes da gravação de novos dados A gravação e leitura de dados é feita eletricamente 15

Memória EEPROM Tanto a escrita como o apagamento são feitos eletricamente Não há necessidade de apagamento integral; apenas o Byte ou os Bytes endereçados são atualizados A operação de escrita leva um tempo consideravelmente maior que a de leitura; da ordem de centenas de microsegundos por Byte É mais cara e menos densa que a EPROM Combina não-volatilidade e flexibilidade 16

Memória Flash Apresenta características intermediárias entre a EPROM e a EEPROM Como a EEPROM, o apagamento é elétrico Como a EEPROM, é possível apagar apenas alguns blocos de memória Como a EPROM, ela não permite apagar o conteúdo de apenas um Byte 17

Organização da Memória de semicondutor Elemento básico: célula de memória Exibe dois estados estáveis Possui três terminais funcionais: Seleção Célula Controle Controle Dados de Entrada Seleção Estado Célula (a) Escrita (a) Leitura 18

Exemplos de Arranjos Físicos das Células Exemplo #01: arranjo físico é igual ao arranjo lógico das palavras na memória tal como é percebido pela CPU EPROM de 8 Mbits (ou 1 MB) 8 bits P 0 P 1 1M Palavras P 2 P 3 P 4... P 2 20-1 19

Exemplos de Arranjos Físicos das Células Formato da pastilha do Exemplo #01: 32 pinos 1,5 cm 2 Pinos de endereço Pinos de Dados Pino de Terra A19 A16 A15 A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 Vss 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 Vcc A18 A17 A14 A13 A8 A9 A11 Vpp A10 CE D7 D6 D5 D4 D3 Pino de alimentação Pinos de endereço Pino de programação Chip Enable Pinos de Dados 20

Exemplos de Arranjos Físicos das Células Exemplo #02: arranjo em matrizes quadradas contendo grupos de células DRAM de 16 Mbits (ou 2 MB) 2048 colunas... 11 Decodificador de linha..................... 2048 linhas 11 MUX Decodificador de coluna 4 11 21

Exemplos de Arranjos Físicos das Células Formato da pastilha do Exemplo #02: 16 pinos Pino de Alimentação Pinos de Dados Write Enable Row Address Strobe Number of Chip Pinos de endereço Pino de Alimentação Vcc D0 D1 WE RAS NC A10 A0 A1 A2 A3 Vcc 1 2 3 4 5 6 7 8 9 10 11 16 15 14 12 13 24 Vss 23 D3 22 D2 21 CAS 20 OE 19 A9 18 A8 17 A7 A6 A5 A4 Vss Pino de Terra Pinos de Dados Column Address Strobe Pinos de endereço Output Enable Pino de Terra 22

Exemplos de Arranjos Físicos das Células O arranjo em matrizes quadradas de grupos de células possibilita pastilhas mais densas A adição de uma linha de endereço faz com que se a quantidade de linhas e colunas da matriz seja duplicada A capacidade total de memória da pastilha é, portanto, quadruplicada 23

Organização em Módulos 256 K x 1 bit MAR 9 512 colunas..................... Decodificador de Coluna Pastilha #01...... 512 linhas... DRAM de 256 KB MBR 1 2 9 512 colunas......... 512 linhas... 7 8.................. Decodificador de Coluna Pastilha #08 24

Organização em Módulos MAR 1/512 A 1 1/512 B 1 1/512 C 1 1/512 D 1 CE 1/512 CE 1/512 CE 1/512 CE 1/512 MBR 9 1 1/512 A 2 1/512 B 2 1/512 C 2 1/512 D 2 2 9 CE 1/512 CE 1/512 CE 1/512 CE 1/512... 2 1/512 A 8 1/512 B 8 1/512 C 8 1/512 D 8 8 CE 1/512 CE 1/512 CE 1/512 CE 1/512 Habilitação de Grupo Grupo A Grupo B Grupo C Grupo D DRAM de 1 MB 25

Formas de Encapsulamento Módulos DIP (Dual Inline Package) Usados em PCs antigos (XTs, 286s e os primeiros 386) Soldados diretamente na placa mãe ou encaixados individualmente em soquetes disponíveis na placa Upgrade de memória ou substituição de módulos era difícil 26

Formas de Encapsulamento Módulos SIMM (Single Inline Memory Module) 30 vias 8 MB 72 vias 8 MB 27

Formas de Encapsulamento Módulos SIMM de 30 vias: Observações: Os µps 486 e 386DX acessavam a memória usando palavras de 32 bits O µp 386SX acessava a memória usando palavras de 16 bits 28

Formas de Encapsulamento Módulos SIMM de 72 vias: Observações: Tanto o µp 486 quanto o Pentium trabalham internamente com palavras de 32 bits No entanto, o µp Pentium acessa a memória usando palavras de 64 bits 29

Formas de Encapsulamento Módulos DIMM (Dual Inline Memory Module) Possuem contatos em ambos os lados do módulo Têm 168 vias Trabalham com palavras de 64 bits 30

Formas de Encapsulamento Comparação entre os tamanhos: Módulo DIMM Módulo SIMM de 72 vias Módulo SIMM de 30 vias 31

Detecção e Correção de Erros Todo sistema de memória baseado em semicondutor está sujeito a erros Tipos: Falhas graves: células são inutilizadas Erros moderados: células não são inutilizadas A maioria dos sistemas de memória principal modernos inclui uma lógica de detecção e correção de erros 32

Detecção e Correção de Erros Um código de correção é caracterizado pelo número de bits incorretos que ele é capaz de detectar e corrigir em uma única palavra O código de correção de erros mais simples é o Código de Hamming Esse código foi projetado por Richard Hamming na Bell Labs 33

Detecção e Correção de Erros Visualização do Código de Hamming Palavras de 4 bits Diagramas de Venn 34

Detecção e Correção de Erros Sinal de erro Saída de dados M Correção Entrada de dados M M f K' f K Memória K Comparação Resultados possíveis: Nenhum erro é detectado (linha azul) Um erro é detectado e é possível corrigi-lo (linha amarela) Um erro é detectado, mas é impossível corrigi-lo (linha vermelha) 35

Projeto de um Código de Correção de Erro Único (SEC) Memória M K f K ' Comparação K + K' = Palavra Síndrome Se todos os bits da Palavra Síndrome forem 0s, não houve erro Se a Palavra Síndrome contiver apenas um bit 1, ocorreu erro em um dos bits de teste nenhuma correção é necessária Se a Palavra Síndrome contiver mais de um bit 1, o valor numérico da Palavra Síndrome indica a posição do bit em que ocorreu erro a palavra é corrigida invertendo-se o valor desse bit de dado 36

Projeto de um Código de Correção de Erro Único (SEC) Como pode ocorrer erro em qualquer um dos M bits de dados ou dos K bits de teste, deve-se ter: Aumento no tamanho da Palavra com a correção de erros: Bits de dados Bits de teste Aumento (%) 8 4 50,00 16 32 64 128 256 5 6 7 8 9 31,25 18,75 10,94 6,25 3,52 37

Projeto de um Código de Correção de Erro Único (SEC) Posição do bit 10 Posição do bit 2 Bits de Teste Bits de Dados 12 11 1100 1011 M8 M7 Cálculo dos Bits de Teste: 10 1010 M6 C1 = M1 + M2 + M4 + M5 + M7 9 8 7 1001 1000 0111 C8 M5 M4 C2 = M1 + M3 + M4 + M6 + M7 C4 = M2 + M3 + M4 + M8 6 0110 M3 C8 = M5 + M6 + M7 + M8 5 0101 M2 4 0100 C4 3 0011 M1 2 0010 C2 1 0001 C1 38

Projeto de um Código de Correção de Erro Único (SEC) Exemplo: M8 M7 M6 M5 M4 M3 M2 M1 0 0 1 1 1 0 0 1 Cálculo dos Bits de Teste: C1 = M1 + M2 + M4 + M5 + M7 = 1 + 0 + 1 + 1 + 0 = 1 C2 = M1 + M3 + M4 + M6 + M7 = 1 + 0 + 1 + 1 + 0 = 1 C4 = M2 + M3 + M4 + M8 = 0 + 0 + 1 + 0 = 1 C8 = M5 + M6 + M7 + M8 = 1 + 1 + 0 + 0 = 0 39

Projeto de um Código de Correção de Erro Único (SEC) Supondo-se um erro em M3, M8 M7 M6 M5 M4 M3 M2 M1 0 0 1 1 1 1 0 1 Cálculo dos Bits de Teste: C1 = M1 + M2 + M4 + M5 + M7 = 1 + 0 + 1 + 1 + 0 = 1 C2 = M1 + M3 + M4 + M6 + M7 = 1 + 1 + 1 + 1 + 0 = 0 C4 = M2 + M3 + M4 + M8 = 0 + 1 + 1 + 0 = 0 C8 = M5 + M6 + M7 + M8 = 1 + 1 + 0 + 0 = 0 40

Projeto de um Código de Correção de Erro Único (SEC) Cálculo da Palavra Síndrome: + C8 C4 C2 C1 0 1 1 1 0 0 0 1 0 1 1 0 6 10 Conclusão: há um erro na 6a. posição (bit M3)! 12 11 10 9 8 7 6 5 4 3 M8 M7 M6 M5 C8 M4 M3 M2 C4 M1 0 0 1 1 0 1 1 0 1 1 2 C2 1 1 C1 1 41

Memória Cache Todos os sistemas de memória atuais contemplam uma memória cache Transferência de Palavras Transferência de Blocos CPU Memória Cache Memória Principal Uma memória principal grande e lenta é combinada com uma memória cache grande e rápida 42

Memória Cache Em qualquer instante, um subconjunto dos blocos da memória principal reside na cache Rótulo 0 1 2 3 Bloco 0 1 2 3 K - 1 Tamanho da Palavra Blocos (K palavras)... C - 1... Tamanho do Bloco (K palavras) M = 2 n /K Blocos C linhas C <<< M 2 n - 1 Bloco 43

Memória Cache Endereço Área de armazenamento temporário de endereço Processador Controle Memória Cache Controle Barramento do sistema Dados Área de armazenamento temporário de dados 44

INÍCIO Recebe endereço RA da CPU Operação de Leitura em Memória Cache O Bloco que contém o endereço RA está na memória cache? Não Efetua acesso à memória principal para obter o bloco que contém RA Sim Aloca linha da cache para o bloco da memória principal Obtém o conteúdo da palavra no endereço RA e entrega para a CPU Carrega o bloco da memória principal na linha da cache Entrega a palavra em RA para a CPU FIM 45

Elementos de Projeto de Memórias Cache Tamanho Função de mapeamento Direto Associativo Associativo por conjuntos Algoritmo de substitução LRU FIFO LFU Aleatório Política de escrita Write-through Write-back Write-once Tamanho da linha Número de Caches Um ou dois níveis Unificada ou separada 46

Tamanho da Cache Impossível determinar tamanho ideal Deve ser grande para que o tempo médio de acesso à memória total seja próximo ao tempo de acesso da memória cache Deve ser pequena para que o custo total por bit seja próximo do custo por bit da memória principal Outros motivos para minimização da cache: Quanto maior a cache, maior o número de pinos e mais lento o endereçamento O espaço limitado na placa de circuitos 47

Função de Mapeamento Necessidade O número de linhas da cache é menor do que o número de blocos da memória principal Técnicas utilizadas Mapeamento Direto Mapeamento Associativo Mapeamento Associativo por Conjuntos 48

Suposições Memória principal com 16 MB (2 24 B) Cada Byte é endereçável diretamente Memória principal pode ser vista como 4M (2 22 ) blocos de 4 B Memória cache de 64 KB, organizada em 16 K (2 14 ) linhas de 4 B Os dados são transferidos da memória principal para a cache em blocos de 4B 0000 0001 0002 Bloco (4 Bytes) 000000 000001 000002 000003 000004 000005 000006 000007 000008 000009 00000A 00000B 00000C 00000D 00000E 00000F 1 Byte P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 Bloco 0 Bloco 1 Bloco 2 00000D P13 Bloco 3 P14 P15......... 3FFF... Memória cache FFFFFC FFFFFD FFFFFE FFFFFF P(2 24-4) P(2 24-3) P(2 24-2) P(2 24-1) Memória principal Bloco 2 22-1 49

Mapeamento Direto Cada bloco da memória principal é mapeado em uma única linha da cache O mapeamento é expresso pela equação: Em que: i = j módulo m, i : número da linha da memória cache j : número do bloco da memória principal m : número de linhas da memória cache 50

Mapeamento Direto Segundo i = j módulo m, cada bloco da memória principal é assim mapeado em uma linha da memória cache: Linha da memória cache Blocos da memória principal mapeados na linha 0 1 0, m, 2m,..., 2 S - m 1, m + 1, 2m + 1,..., 2 S - m + 1 m - 1 m 1, 2m 1, 3m 1,..., 2 S -1 51

Mapeamento Direto Cálculo dos blocos: Bloco 0 = 000000 Bloco 1 = 000004 (000000 + 4 X 000001) Bloco 2 = 000008 (000000 + 4 x 000002) Bloco 3 = 00000C (000000 + 4 x 000003)... Bloco N = 000000 + 4 x N Bloco m = Bloco 2 14 = Bloco 004000 = 000000 + 4 x 004000 = 010000 Bloco 2 S -m = Bloco (2 22-2 14 ) = Bloco (400000-004000)= Bloco 3FC000 = 000000 + 4 x 3FC000 = FF0000 52

Mapeamento Direto Bloco m+1 = Bloco (2 14 +1) = Bloco (004000+1) = Bloco 004001 = 000000 + 4 x 004001 = 010004 Bloco 2 S -m+1 = Bloco (2 22-2 14 +1) = Bloco (400000-004000+1) = Bloco 3FC001 = 000000 + 4 x 3FC001 = FF0004 Bloco m-1 = Bloco (2 14-1) = Bloco (004000-1) = Bloco 003FFF = 000000 + 4 x 003FFF = 00FFFC Bloco (2m-1) = Bloco (2 x 004000 1) = Bloco (008000-1) = Bloco 007FFF = 000000 + 4 x 007FFF = 01FFFC Bloco (2 S -1) = Bloco (2 22-1) = Bloco (400000-1) = Bloco 3FFFFF = 000000 + 4 x 3FFFFF = FFFFFC 53

Mapeamento Direto Substituindo os valores, teremos: Linha da memória cache 0 1 Blocos da memória principal mapeados na linha 000000, 010000,..., FF0000 000004, 010004,..., FF0004 2 14-1 00FFFC, 01FFFC,..., FFFFFC 54

Mapeamento Direto Interpretação do endereço da memória principal: Identificação de um dentre 2 S blocos Rótulo s - r No nosso caso: s Linha da cache r w Palavra Rótulo 22 Linha da cache 2 Palavra 8 14 55

Rótulo 00 Linha + palavra Dados 0000 13579246 0004 Exemplo de Mapeamento Direto 16 FFF8 FFFC...... 0000 77777777 0004 11235813 339C FEDCBA98 FFFC 12345678 0000 0004 Rótulo Dados 00 13579246 16 11235813 16 FEDCBA98 FF 11223344 16 12345678 8 32 bits bits Número de linha 0000 0001 0CE7 3FFE 3FFF FF FFF8 11223344 FFFC 24682468 32 bits 56

Exemplo de Leitura no Mapeamento Direto 3' Rótulo Linha Palavra s - r r w P0 P1 P2 P3 B0 1 3 2... Comparação 3' 3 Acerto na cache 4 4' P4j P(4j+1) P(4j+2) P(4j+3) Bj Falha na cache 57

Mapeamento Associativo Vantagem: Oferece maior flexibilidade para escolha do bloco a ser substituído quando um novo bloco é trazido para a memória cache Desvantagem: Complexidade do conjunto de circuitos necessários para a comparação simultânea dos rótulos de todas as linhas da memória cache 58

Mapeamento Direto Vantagens: Simplicidade Custo baixo de implementação Desvantagem: Se um programa fizer repetidas referências a palavras em dois blocos distintos, mapeados em uma mesma linha, esses blocos serão trocados continuamente na cache e a taxa de acertos será baixa 59

Mapeamento Associativo Permite que cada bloco da memória principal seja carregado em qualquer linha da memória cache Interpretação do endereço da memória principal: Identificação de um dentre 2 S blocos s Rótulo w Palavra No nosso caso: 22 Rótulo 2 Palavra 60

Mapeamento Associativo O rótulo corresponde aos significativos do endereço 22 bits mais Exemplos de cálculo de rótulos 000000 -> 000000 16339C -> 058CE7 FFFFF4 -> 3FFFFD FFFFF8 -> 3FFFFE FFFFFC -> 3FFFFF 61

Endereço Dados 000000 13579246 000004 Exemplo de Mapeamento Associativo FFF8 FFFC...... 163398 16339C FEDCBA98 1633A0 Rótulo Dados 3FFFFE 13579246 058CE7 FEDCBA98 3FFFFD 33333333 000000 11223344 3FFFFF 12345678 22 bits 32 bits Número de linha 0000 0001 3FFD 3FFE 3FFF FFFFF4 33333333 FFFFF8 11223344 FFFFFC 24682468 32 bits 62

Exemplo de Leitura no Mapeamento Associativo 2' s Rótulo Palavra w P0 P1 P2 P3 B0 1 2... Comparação 2' 2 Acerto na cache 3 3' P4j P(4j+1) P(4j+2) P(4j+3) Bj Falha na cache 63

Mapeamento Associativo por Conjuntos (de k linhas) Combina as vantagens do mapeamento direto e do mapeamento associativo e diminui suas desvantagens A memória cache é dividida em v conjuntos, cada qual com k linhas Em que: m = v x k i = j módulo v i : número do conjunto da memória cache j : número do bloco da memória principal m : número de linhas da memória cache 64

Mapeamento Associativo por Conjuntos (de k linhas) Interpretação do endereço da memória principal: Identificação de um dentre 2 S blocos s w Rótulo Conjunto Palavra s - d Considerando em nosso caso conjuntos de duas linhas, temos: d 22 2 Rótulo Conjunto Palavra 9 13 65

Mapeamento Associativo por Conjuntos (de k linhas) Segundo i = j módulo v, cada bloco da memória principal é assim mapeado em um conjunto da memória cache: Conjunto da memória cache Blocos da memória principal mapeados no conjunto 0 1 0, v, 2v,..., 2 S - v 1, v + 1, 2v + 1,..., 2 S - v + 1 v - 1 v 1, 2v 1, 3v 1,..., 2 S -1 66

Mapeamento Associativo por Conjuntos (de k linhas) Cálculo dos blocos: Bloco 0 = 000000 Bloco 1 = 000004 (000000 + 4 X 000001) Bloco 2 = 000008 (000000 + 4 x 000002) Bloco 3 = 00000C (000000 + 4 x 000003)... Bloco N = 000000 + 4 x N Bloco v = Bloco 2 13 = Bloco 002000 = 000000 + 4 x 002000 = 008000 Bloco 2 S -v = Bloco (2 22-2 13 ) = Bloco (400000-002000)= Bloco 3FE000 = 000000 + 4 x 3FE000 = FF8000 67

Mapeamento Associativo por Conjuntos (de k linhas) Bloco v+1 = Bloco (2 13 +1) = Bloco (002000+1) = Bloco 002001 = 000000 + 4 x 002001 = 008004 Bloco 2 S -v+1 = Bloco (2 22-2 13 +1) = Bloco (400000-002000+1) = Bloco 3FE001 = 000000 + 4 x 3FE001 = FF8004 Bloco v-1 = Bloco (2 13-1) = Bloco (002000-1) = Bloco 001FFF = 000000 + 4 x 001FFF = 007FFC Bloco (2v-1) = Bloco (2 x 002000 1) = Bloco (004000-1) = Bloco 003FFF = 000000 + 4 x 003FFF = 00FFFC Bloco (2 S -1) = Bloco (2 22-1) = Bloco (400000-1) = Bloco 3FFFFF = 000000 + 4 x 3FFFFF = FFFFFC 68

Mapeamento Associativo por Conjuntos (de k linhas) Substituindo os valores, teremos: Conjunto da memória cache 0 1 Blocos da memória principal mapeados no conjunto 000000, 008000,..., FF8000 000004, 008004,..., FF8004 2 13-1 007FFC, 00FFFC,..., FFFFFC 69

Rótulo 000 Conjunto + palavra Dados 0000 13579246 0004 Exemplo de Mapeamento Associativo por Conjuntos 02C 7FF8 7FFC...... 0000 77777777 0004 11235813 339C FEDCBA98 7FFC 12345678 0000 0004 Rótulo Dados 000 13579246 001 11235813 02C FEDCBA98 1FF 11223344 001 12345678 9 32 bits bits Número de conj. 0000 0001 0CE7 1FFE 1FFF Rótulo Dados 001 77777777 1FF 24682468 9 32 bits bits 1FF FFF8 11223344 FFFC 24682468 32 bits 70

Exemplo de Leitura no Mapeamento Associativo por Conjuntos (de k linhas) 3' Rótulo Conjunto Palavra s - d d w 1 P0 P1 P2 P3 B0 2 2 C0 C1... C2 Comparação 3' 3 Acerto na cache 4 C(v-1) 4' P4j P(4j+1) P(4j+2) P(4j+3) Bj Falha na cache 71

Mapeamento Associativo por Conjuntos (de k linhas) Casos extremos: v = m e k = 1 : mapeamento direto v = 1 e k = m : mapeamento associativo Configurações comuns: v = m/2 e k = 2 : taxa de acertos significantemente maior do que no mapeamento direto v = m/4 e k = 4 : pequena melhoria a um custo adicional relativamente pequeno K > 4 : sem melhoras significativas de desempenho 72

Algoritmos de Substituição Quando um novo bloco é trazido para a cache, um dos blocos existentes deve ser substituído No mapeamento direto, não há alternativa cada bloco é mapeado em uma única linha Para os mapeamentos associativo e associativo por conjuntos, é necessário um algoritmo de substituição Recomenda-se a implementação em HW, por motivo de desempenho 73

Algoritmos de Substituição Algoritmos disponíveis: LRU (Menos Recentemente Usado) Implementação com bits de uso FIFO (First In First Out) Implementação com áreas de armazenamento circular LFU (Menos Frequentemente Usado) Implementação com contadores Aleatório Apresenta um desempenho apenas levemente inferior aos demais 74

Políticas de Substituição Antes que um bloco residente na memória possa ser substituído, é necessário verificar se ele foi alterado na memória cache Se isso não ocorreu, então o novo bloco pode ser escrito sobre o bloco antigo Caso contrário, então a memória principal deve ser atualizada Problema encontrado: A memória principal pode ser utilizada tanto por outros processadores quanto por dispositivos de E/S 75

Políticas de Substituição Escrita Direta (write through) Todas as operações de escrita são feitas tanto na memória quanto na cache Vantagem: A memória principal está sempre atualizada Desvantagem: Geração de tráfego de memória considerável 76

Políticas de Substituição Escrita de Volta (write back) Escritas são feitas apenas na cache Quando uma linha da cache é atualizada, um bit de atualização associado a ela é setado em 1 Quando um bloco vai ser substituído, ele apenas é escrito de volta na memória principal se o seu bit de atualização estiver setado em 1 Vantagem: Minimiza o número de operações de escrita na memória Desvantagem: Partes da memória principal podem ficar inválidas Acesso à memória por módulos de E/S deve ser feita a partir da cache 77

Políticas de Substituição Escrita Uma Vez (write once) Ideal para sistemas multiprocessados com memória principal compartilhada É uma mistura de write through e write back Cada µp escreve a memória principal sempre que o bloco correspondente na cache foi atualizado pela primeira vez (write through) Os demais µp são alertados da alteração Outras alterações naquele bloco são realizadas apenas na cache local e o bloco da memória só será atualizado quando o bloco for substituído na cache (write back) 78

Tamanho da Linha Tamanho da linha = tamanho do bloco À medida em que esse número aumenta, aumenta inicialmente a taxa de acertos Entretanto, se esse número aumentar muito, a taxa de acertos diminuirá Porque não usar blocos muito grandes: Para uma dada capacidade, isso diminuirá o Para uma dada capacidade, isso diminuirá o número de linhas na cache Cada palava adicional estará mais distante da usada e a chance de uso será menor Um tamanho de duas a oito palavras está próximo do ótimo 79

Número de Memórias Cache Anteriormente, a cache era externa ao µp Com o avanço da eletrônica, tem-se: Cache L1: interna ao µp Cache L2: externa ao µp (SRAM) Unificadas ou Separadas? Unificadas (instruções + dados) Separadas (uma para instruções e outra para os dados) Projetos atuais baseiam-se em caches separadas, por motivos de desempenho junto ao pipeline 80

Evolução das Memórias Baseadas em Semicondutores Memórias Regulares Memórias FPM Memórias EDO Memórias SDRAM Memórias DDR Memórias DDR2 81

Memórias Regulares Foram o primeiro tipo de memória usado em micros PC Acesso era feito enviando primeiro o endereço RAS e em seguida o endereço CAS, da forma mais simples possível Eram fabricadas inicialmente com tempos de acesso de 150 ns; depois foram fabricadas com tempos de acesso de 120, 100 e 80 ns, para operação com o 286 Utilizadas em computadores XT, 286 e em alguns dos primeiros 386 Eram encontradas apenas sob a forma de módulos DIP 82

Memórias Regulares 83

Memórias FPM (Fast Page Mode) Transferem dados em rajadas de 4 palavras em uma mesma linha, ou página Baseadas na idéia de que os dados são gravados seqüencialmente na memória Encontradas na forma de pentes SIMM de 30/72 vias e com tempos de acesso de 80, 70 e 60 ns Foram usadas em computadores 386, 486 e nos primeiros Pentium Tempos de acesso podem também ser dados em termos de ciclos de clock da placa mãe por exemplo, 5-3-3-3 em um barramento operando a 66 MHz 84

Memórias FPM (Fast Page Mode) 85

Memórias FPM (Fast Page Mode) Uma nova operação de leitura só pode ser iniciada quando a operação anterior é encerrada Pequeno atraso imposto 86

Memórias EDO (Extended Data Output) Criadas em 1994 Caracterizadas pela existência de um pipeline interno à memória Uma nova leitura pode ser iniciada sem que a leitura atual tenha terminado São mais rápidas que as memórias FPM por exemplo, 5-2-2-2 em um barramento operando a 66 MHz (ganho de 25 %) Fabricadas com tempos de acesso de 70, 60 e 50 ns, encapsuladas em pentes SIMM de 72 vias 87

Memórias EDO (Extended Data Output) 88

Memórias SDRAM (Synchronous DRAM) As memórias anteriores trabalham em seus próprios ritmos, independentemente do clock da placa mãe Uma FPM projetada para funcionar em placas para µp 386 e 486 (25/33 MHz) funciona perfeitamente em placas para µp Pentium (66 MHz) Por isso, elas são tidas como memórias assíncronas Todas as ações em uma memória SDRAM estão sincronizadas com a borda de subida do sinal de clock da placa mãe 89

Memórias SDRAM (Synchronous DRAM) Estrutura: SDRAM de 4M x 4 bits = 2 MB CKE CLK CS# WE# CAS# RAS# Lógica de Controle Registrador de Modo Buffer de Linha Decodificador Decodificador de Linha de Linha 2048x1024x4 2048x1024x4 Buffer de Entrada Buffer de Saída DQ0... DQ3 Lógica de Controle de Banco Decodificador de Decodificador Coluna de Coluna Buffer de Coluna 90

Memórias SDRAM (Synchronous DRAM) Configuração através do Registrador de Modo Pode-se definir: Tamanho das rajadas Tipo das rajadas Seqüenciais Intercaladas Latência do CAS Modo de operação Normal Modo de escrita em rajadas Habilitado Desabilitado 91

Memórias SDRAM (Synchronous DRAM) BA A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 M11 M10 M9 M8 M7 M6 M5 M4 M3 M2 M1 M0 Reservado WB Código de Op. Latência do CAS BT Tamanho da rajada M2 M1 M0 Tamanho da rajada M3 = 0 M3 = 1 M3 Tipo da rajada 0 0 0 1 1 0 Seqüencial 0 0 1 2 2 1 Intercalada 0 1 0 4 4 0 1 1 8 8 1 0 0 Reservado Reservado 1 0 1 Reservado Reservado 1 1 0 Reservado Reservado 1 1 1 Pág.completa Reservado 92

Memórias SDRAM (Synchronous DRAM) BA A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 M11 M10 M9 M8 M7 M6 M5 M4 M3 M2 M1 M0 Reservado WB Código de Op. Latência do CAS BT Tamanho da rajada M9 Modo de escrita em rajada M6 M5 M4 Latência do CAS 0 Tamanho de rajada programado 1 Escrita em uma só posição 0 0 0 Reservado 0 0 1 1 M8 M7 M6-M0 Modo de operação 0 0 definido Normal - - Reservados 0 1 0 2 0 1 1 3 1 0 0 Reservado 1 0 1 Reservado 1 1 0 Reservado 1 1 1 Reservado 93

Memórias SDRAM (Synchronous DRAM) Configuração do Registrador de Modo se dá através do comando LOAD MODE REGISTER Outros comandos: COMAND INHIBIT Inibe a execução de comandos na SDRAM NOP Previne a emissão de comandos indesejáveis durante estados de espera ACTIVE Abre (ativa) uma linha de um banco para acesso subsequente BA: endereço do banco A0-A10: endereço da linha no banco 94

Memórias SDRAM (Synchronous DRAM) CLK Comando ACTIVE CKE CS# RAS# CAS# Don t care WE# A0-A10 Endereço da Linha BA Endereço do Banco 95

Memórias SDRAM (Synchronous DRAM) Outros comandos (cont.): PRECHARGE Desativa uma linha aberta em um banco BURST TERMINATE Trunca uma rajada em uma operação de leitura ou escrita AUTO REFRESH Regenera os dados SELF REFRESH Regenera os dados na ausência do clock SDRAM provê seu próprio sinal de clock interno READ/WRITE Leitura/escrita de dados 96

Memórias SDRAM (Synchronous DRAM) Comando READ CLK CKE CS# RAS# CAS# WE# Don t care A0-A9 A10 Endereço da Coluna Habilitar/des abilitar auto precharge BA Endereço do Banco 97

Memórias SDRAM (Synchronous DRAM) CLK COMANDOS READ NOP NOP DQ DADOS DADOS Don t care Indefinido Comando READ com Latência do CAS (CL) = 1 98

Memórias SDRAM (Synchronous DRAM) CLK COMANDOS READ NOP NOP NOP DQ DADOS DADOS Don t care Indefinido Comando READ com Latência do CAS (CL) = 2 99

Memórias SDRAM (Synchronous DRAM) CLK COMANDOS READ NOP NOP NOP NOP DQ DADOS DADOS Don t care Indefinido Comando READ com Latência do CAS (CL) = 3 100

Memórias SDRAM (Synchronous DRAM) Por serem sincronizadas com o clock da placa mãe, as SDRAM são mais rápidas Comparação entre SDRAM de 12 ns e EDO de 60ns: Barramento operando em 66 MHz: SDRAM: 5+1+1+1 = 8 ciclos em 4 acessos EDO: 5+2+2+2 = 11 ciclos em 4 acessos Conclusão: SDRAM é 30% mais rápida que a EDO Barramento operando em 82 MHz: SDRAM: 5+1+1+1 = 8 ciclos em 4 acessos EDO: 6+3+3+3 = 15 ciclos em 4 acessos Conclusão: SDRAM é 47 % mais rápida que a EDO 101