A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Memória 6 1.

Apresentações semelhantes


Apresentação em tema: "Memória 6 1."— Transcrição da apresentação:

1 Memória 6 1

2 Sistema Básico de Memória
Fluxo de Dados CPU Registradores Memória Principal Secundária Barramento de memória de E/S

3 Características de Memória
Localização CPU Placa mãe (primária) Externa (secundária) Capacidade Tamanho e Núm. de palavras Unidade de Transf. Palavra ou bloco Método de Acesso Sequencial (ex. fita) Acesso direto (ex. disco) Acesso randômico Acesso associativo Performance Tempo de acesso Ciclo Taxa de transferência Implementação Semicondutor Superfície magnética Superfície ótica Manutenção de dados Volátil ou não Apagável ou não

4 Nomenclatura Básica RAM = Random Acces Memory SRAM = Static RAM
DRAM = Dynamic RAM VRAM - Video RAM WRAM - Windows RAM ROM = Read Only Memory PROM = Programmable ROM EPROM = Erasable PROM EEPROM = Electrically Erasable PROM (apagamento byte a byte) Flash EPROM = Fast erasable EPROM (apagamento por bloco) By 1998, Intel expects that the system bus will move to 100MHz and require SDRAM operating at 100MHz and higher. Current SDRAM designs can meet the 100MHz speed range, and SDRAM manufacturers claim that they can meet the industry's needs up to about 200MHz to 250MHz. To reach beyond that range will require a complete redesign of the SDRAM chip, which will very likely increase its footprint and cost. Neither of these alternatives is appealing to the industry as a whole. Two designs address Intel's memory speed and bandwidth needs: SyncLink and Rambus. SyncLink is a consortium of nine DRAM manufacturers, including Hyundai, IBM, Micron, NEC, and TI, which have proposed a draft standard to the IEEE for a uniform memory architecture that will evolve over several iterations. The SyncLink standard will be royalty-free and open to all. The proposal calls for a command-driven, packet-oriented bus operating at 400MHz, with a 16-bit-wide data path. SyncLink is slow in coming and has not progressed much past the conceptual stage. Rambus, on the other hand, has a working architecture, called Rambus DRAM (RDRAM), that comes close to meeting Intel's needs right now. Current RDRAM designs hit the 500MHz to 600MHz range to the memory controller. Additionally, Intel has entered an agreement with Rambus to develop even faster main DRAM. By using multiple channels or widening Rambus' current 8-bit channel size, Intel hopes to increase throughput to 1.6GB/sec. With that, Rambus will meet Intel's design needs for faster processors and a higher speed bus, as well as for AGP.

5 Tipos Básicos de Memória Semicondutora

6 RAM Dinâmica vs. Estática
DRAM (Dynamic Random Acess Memory) Grande capacidade de integração (baixo custo por bit) Perda de informação após algum tempo: Necessidade de refreshing SRAM (Static Random Acess Memory) Pequeno tempo de acesso Não existe necessidade de refreshing Alto custo por bit (baixa integração)

7 Encapsulamento SIMM DIMM Single In-line Memory Module
30 pinos, 8 bits/módulo 72 pinos, 32 bits/módulo DIMM Dual In line Memory Module 168 pinos, 64 bits/módulo Compact SIMM SIMM 30 pinos DIMM 168 pinos Montagem na MB

8 DIMM

9 Acesso a memória principal (DRAM)
______ CPU n bits Endereço multiplexado: Linhas e colunas n/2 bits Endereços Controlador de Memória Dados Dados Controle (RD, WR...) ____ RAS CAS ___ W ______ OE(RD)

10 DRAM Organização Interna e Método de Acesso
O endereço das linhas e colunas são enviados separadamente (prim. linha, depois coluna). Para acessar uma posição (leitura ou escrita), o endereço da linha é posto junto com o sinal RAS (Row Addres Selector). Depois o endereço da coluna vai junto com o sinal CAS (Column Address Selector) No exemplo abaixo, as 11 linhas de A0 a A10 são usadas para enviar end. de linha e coluna. Por isso esta memória tem 4Mega posições de endereçamento (4Mega = 222) ____ ___ __ __ RAS CAS W OE Row Dec oder Column Decoder D1 D2 D3 D4 A0 A1 ... A10 MUX

11 No Page Mode, o controlador de memória faz até 4 acessos em sequência à DRAM. É comum designar o núm. de pulsos de clock de cada acesso para cada tipo de memória. Ex. a FPM RAM tem acesso 5/3/3/3 (a 66MHz) em page mode, o que significa 5 pulsos de clock para obter o primeiro dado, e 3 para o segundo, terceiro e quarto. Modo de Acesso Ex: FPM RAM Ativa uma fila (RAS) Acessos sequenciais a colunas (vários pulsos de CAS)

12 FPM DRAM - Fast Page Mode DRAM EDO DRAM - Extended Data-Output DRAM
DRAM mais simples Tempo de acesso 70ns and 60ns. Acesso page mode = 5/3/3/3 a 66MHz EDO DRAM Tempo de acesso 70ns, 60ns and 50ns Para barramento de 66 MHz use 60 ns ou melhor. Acesso page mode = 5/2/2/2 a 66MHz

13 EDO DRAM Método de Acesso
No page mode, um latch na saída de dados permite o acesso simultâneo a novas posições de memória enquanto os dados estão sendo lidos na saída. Isso permite a diminuição do tempo entre pulsos de CAS

14 BEDO - Burst EDO DRAM Page (burst) mode = 5/1/1/1 a 66MHz Tempo de acesso randômico é igual ao FPM ou EDO RAM Possui registrador e gerador interno de ender. sequenciais To help overcome these wait states, DRAM designers employ a bursting technique that allows sequential reading of an entire page of DRAM. Once the page address has been accessed, the DRAM itself provides the address of the next memory location. This address prediction eliminates the delay associated with detecting and latching an address externally provided to the DRAM. Implementing this burst feature requires the definition of burst length and burst type to the DRAM. The burst length is the actual length of the burst plus the starting address. This lets the internal address counter properly generate the next memory location. The burst type determines whether the address counter will provide sequential ascending page addresses or interleaved page addresses within the burst length.

15 SDRAM - Synchronous DRAM
Page (burst) mode = 5/1/1/1 a 100MHz Tempo de acesso randômico é igual à FPM ou EDO RAM. Trabalha na velocidade do bus, por isso o nome. Interleaved Uso de Serial Presence Detect para Plug-and-Play

16 DDR SDRAM – Double Data Rate SDRAM
Transfere dados na subida e descida do clock (compensa o uso de barramentos lentos) Uso de Serial Presence Detect para Plug-and-Play

17 Direct Rambus DRAM ou RDRAM
Padrão proprietário da Rambus Inc. Usa o Direct Rambus Channel – 400MHz, 16 bits (o barramento estreito permite estas taxas altas) Transferência de dados na subida e descida do clock  1,6 GByte/s Uso de Serial Presence Detect para Plug-and-Play

18 Direct Rambus DRAM ou RDRAM

19 Direct Rambus DRAM ou RDRAM

20 Synchronous Link DRAM - SLDRAM
Desenvolvido pelo SLDRAM Consortium (20 empresas) Uso de tecnologia mais comum: bus de 64-bit a 200 MHz Transferência de dados na subida e descida do clock  3,2 GByte/s

21 Memórias para Controlador de Vídeo
VRAM - Vídeo RAM WRAM - Windows RAM Têm duas portas de acesso: uma para o controlador de vídeo e outra para a CPU WRAM é 50% mais rápida e 20% mais barata MDRAM - Multibank DRAM Vários bancos de DRAMs (cada um 32 KB) com I/O próprio ligados num bus interno. Dados podem ser acessados em vários bancos simultaneamente. Chips de qualquer tamanho podem ser fabricados. Ex: 2.5MB, usados em cont. de vídeo com resolução de 1,024x768 por 24bit

22 Memória Cache

23 Comparação da Performance da Mem. Principal e CPU
1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 50 100 150 200 250 300 350 DecAlpha IBMPower2 HP900 IBMPower1 MIPS R3000 R2000 SUN CPU Memória

24 Memória Principal Vs. Cache
O fichário representa o disco rígido. A pasta sobre a mesa representa a memória principal. No quadro de avisos se encontram informações que podem ser acessadas de forma muito rápida. O quadro representa a cache. Mesa e usuário são a CPU Pasta Quadro Fichário

25 Motivação para hierarquia
Principio da localidade + Relação custo/desempenho das tecnologias Alto desempenho da CPU C a c h e Memória Principal Memória Secundária CPU Registradores Barramento de E/S Barramento de memória

26 Princípio da Localidade
Localidade Temporal Num futuro próximo, o programa irá referenciar os programas e dados referenciados recentemente Localidade Espacial Num futuro próximo, o programa irá referenciar os programas e objetos de dados que tenham endereços próximos das últimas referências.

27 Hierarquia de Memória Velocidade Custo e tamanho memória secundária
chip CPU Registradores Reg. Velocidade Cache cache (L1) Principal cache (L2) Custo e tamanho Cache de Disco memória principal Disco Magnético memória secundária Fita CD-ROM

28 Níveis de memória

29 Características da Memória Cache
Organização Tamanho do Bloco Tipos de mapeamento Direto Associativo Associativo por conjunto Estratégias de substituição Random First-in-first-out (FIFO) Least-recently used (LRU) Least-frequently used (LFU) Estratégia de Escrita Write through Write back Núm. de Caches Single X Two-level Unified X Split

30 Avanços em implementação de caches
Sincronizada ao clock do sistema Os sinais são sincronizados ao clock. Simplifica o projeto da memória Burst Incorpora controle interno que permite acesso rápido a posições subsequentes (ex. reg. e gerador de endereços) Pipelining Usa registradores na entrada e/ou saída o que permite fornecer dados e acessar novos endereços em paralelo.

31 Async SRAM A mais antiga
É mais rápida que a DRAM apenas por ser estática. 20, 15 or 12 ns. Não é suficientemente rápida para permitir acesso síncrono.

32 SB SRAM - Syncronous Burst SRAM
8.5ns to 12ns Acesso em page mode 2/1/1/1 em 66 MHz 3/2/2/2 em > 66 MHz Para velocidadades de barramento até 66 MHz, SB SRAM apresenta a melhor performance.

33 PB SRAM - Pipeline Burst SRAM (cache)
Usa registradores na entrada ou saída. Gasta um clock a mais para carregar o registrador, mas depois permite acesso simultâneo a novas posições de memória enquanto os dados estão sendo lidos na saída. Acesso page mode 3/1/1/1. Mais lenta que SB SRAM em bus < 66MHz. Melhor se > 66MHz. 4.5ns to 8ns.

34 Velocidade de Acesso a Memórias Cache
A melhor memória para cada velocidade de barramento

35 Memória Cache: Tipos de Mapeamento
Memória principal Blocos ou Linhas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 30 31 Memória cache 1 2 3 4 5 6 7 Offset: identifica palavras em uma linha

36 Mapeamento Direto 0000...01 100 Offset Memória principal Memória cache
Cada linha na mem. principal tem uma posição fixa na cache End. linha = ELMP mod NLC onde ELMP = endereço linha mem. principal NLC = núm. linhas da cache Tag = ëELMP / NLCû (Informa qual linha da mem. principal está armazenada na linha de cache correspondente) Offset cache = Offset Mem. Principal Memória principal 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 31 Memória cache dados tag linha 0 (000) 1 (001) 2 (010) 3 (011) 4 (100) 5 (101) 6 (110) 7 (111) Exemplo: End. linha = 12 mod 8 = 4 tag = ë12 / 8 û = 1 Endereço da palavra Tag Linha Offset 01 Offset Offset

37 Mapeamento direto

38 Mapeamento Associativo
Memória principal Uma linha na memória principal pode ocupar qualquer posição na cache Tag Þ armazena na cache o end. da linha na mem. principal Offset cache = Offset Mem. Principal 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 31 Memória cache dados tag Exemplo: tag = 12 (011002) 01100 Endereço da palavra Tag Offset Offset Offset

39 Mapeamento Associativo

40 Mapeamento Associativo por Conjunto
Uma linha na memória principal pode ocupar qualquer posição dentro de um conjunto definido de linhas da cache Tag = ë ELMP / NCC û Set = ELMP mod NCC onde ELMP = endereço linha mem. principal NCC = núm. conjuntos da cache Offset cache = Offset Mem. Principal Memória principal 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 31 Memória cache Conjuntos (sets) dados tag Exemplo: two-way set associative tag = 12 / 4 = 3 (0112)) set = 12 mod 4 = 0 { 011 { Endereço da palavra Tag set { Offset { Offset

41 Mapeamento Associativo por Conjunto

42 Comparação de Métodos de Mapeamento
Mapeamento direto Simples e Barata Mais faltas Associativa Rápida Menos falta Cara (comparação do endereço em paralelo) Associativa por conjunto: combinação das anteriores Se NCC = NLC Þ Ass. por conjunto = Mapeamento Direto Se NCC = Þ Ass. por conjunto = Associativa NLC = núm. linhas da cache NCC = núm. conjuntos da cache

43 Políticas de Substituição de Páginas
Randômica: Simples e fácil de implementar FIFO (First-In-First-Out) LFU (Least-Frequently Used) LRU (least-recently used) Menor taxa de faltas

44 Leitura/Escrita da Cache
Mais frequentes, rápidas e fáceis de implementar Escrita: Mais lentas e complicadas e consistência de dados com a memória principal deve ser mantida (se uma página da cache foi alterada pela CPU, não pode ser descartado da cache sem garantir que foi copiada para a página correspondente na mem. principal)

45 Políticas de Escrita e Consistência
Write through Cache e memória são atualizadas simultaneamente Write back Memória principal é atualizada quando bloco é substituído Usa dirty bit para marcar linhas alteradas na cache.

46 Memória Cache: escrita
Para se evitar espera durante escrita: Write buffers

47 Exemplo: Alpha AXP 21064 Cache separadas de dados e de instruções
Vantagens: Melhor capacidade de otimizações Evita hazard estrutural Características: Tamanho:8192 bytes Blocos de 32 bits Mapeamento direto Write through Four buffer write-buffer

48 Alpha AXP 21064- Cache Dados CPU Mux Tag Indice Off. Val. (1) (21)
(256) =? CPU Entrada Saída Endereço Buffer de Escrita 256 blocos Mux

49 Memórias mais largas CPU Cache Memória Multiplexador

50 Memória “Interleaved”
CPU CPU Cache Cache Banco 0 Memória Banco 1 Memória Banco 2 Memória Banco 3 Memória Memória

51 Memória Interleaved Bancos de memória para escrita/leitura de múltiplas palavras Reduz penalidade Necessita pouco hardware adicional

52 Código Corretor de Erro: Código de Hamming
- Capaz de corrigir 1 erro (Single Error Correction - SEC) - Expansível para Single Error Correction - Double Error Detection (SEC-DED) 1 Bits de Dados 1 1 1 1 Bits de verificação (redundantes) 1 1 1 1 Erro

53 Código de Hamming C1 = M3 + M5 + M7 + M9 + M11
Exemplo: Check Data bit bit M12 M11 M10 M9 C8 M7 M6 M5 C4 M3 C2 C1 M bits de dados K bits de verificação devem ser capazes de codificar erros em M+K posições, quando houver erro, mais uma posição que indica que não houve erro. => 2k ³ M + K + 1 C1 = M3 + M M7 + M M11 C2 = M M6 + M M10 + M11 C4 = M5 + M6 + M M12 C8 = M9 + M10 + M11 + M12 O O O O O O O O O O O O O O


Carregar ppt "Memória 6 1."

Apresentações semelhantes


Anúncios Google