570 likes | 881 Views
Memória. CPU. Memória Principal. Memória Secundária. Registradores. Barramento de E/S. Barramento de memória. Sistema Básico de Memória. Fluxo de Dados. Localização CPU Placa mãe (primária) Externa (secundária) Capacidade Tamanho e Núm. de palavras Unidade de Transf.
E N D
CPU Memória Principal Memória Secundária Registradores Barramento de E/S Barramento de memória Sistema Básico de Memória Fluxo de Dados
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 Características de Memória
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) Nomenclatura Básica
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)
SIMM 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 Encapsulamento Montagem na MB
Acesso a memória principal (DRAM) Memória ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ 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)
____ ___ __ __ RAS CAS W OE MUX Row Dec oder A0 A1 ... ... A10 D1 D2 D3 D4 Column Decoder • 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) DRAMOrganização Internae Método de Acesso
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)
FPM DRAM - Fast Page Mode DRAM EDO DRAM - Extended Data-Output DRAM FPM 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 50nsPara barramento de 66 MHz use 60 ns ou melhor. • Acesso page mode = 5/2/2/2 a 66MHz
EDO DRAMMé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
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 BEDO - Burst EDO 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 SDRAM - Synchronous DRAM
Transfere dados na subida e descida do clock (compensa o uso de barramentos lentos) Uso de Serial Presence Detect para Plug-and-Play DDR SDRAM – Double Data Rate SDRAM
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 Direct Rambus DRAM ou RDRAM
Desenvolvido pelo SLDRAM Consortium (20 empresas) Uso de tecnologia mais comum: bus de 64-bit a200 MHz Transferência de dados na subida e descida do clock 3,2 GByte/s Synchronous Link DRAM - SLDRAM
VRAM - Vídeo RAMWRAM - 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 Memórias para Controlador de Vídeo
350 DecAlpha 300 250 200 DecAlpha 150 IBMPower2 DecAlpha 100 HP900 MIPS R3000 MIPS R2000 50 IBMPower1 SUN 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 Comparação da Performance da Mem. Principal e CPU CPU Memória
Quadro Fichário Pasta 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
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
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.
Hierarquia de Memó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
Características da Memória Cache • Estratégia de Escrita • Write through • Write back • Núm. de Caches • Single X Two-level • Unified X Split • 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)
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.
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. Async 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. SB SRAM - Syncronous Burst SRAM
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. PB SRAM - Pipeline Burst SRAM (cache)
Velocidade de Acesso a Memórias Cache A melhor memória para cada velocidade de barramento
Memória Cache:Tipos de Mapeamento Memória principal Blocos ou Linhas 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 30 31 Memória cache 0 1 2 3 4 5 6 7 Offset: identifica palavras em uma linha
0000...01 100 Offset Mapeamento Direto • 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 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 31 Memória cache dados tag linha Exemplo: End. linha = 12 mod 8 = 4 tag = ë12 / 8 û = 1 0 (000) 1 (001) 2 (010) 3 (011) 4 (100) 5 (101) 6 (110) 7 (111) Endereço da palavra Tag Linha Offset 01 Offset
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 0 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 000000...01100 Offset Offset
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 0 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 { 011 00 { Offset
Comparação de Métodos de Mapeamento • Associativa • Rápida • Menos falta • Cara (comparação do endereço em paralelo) • Mapeamento direto • Simples e Barata • Mais faltas • Associativa por conjunto: combinação das anteriores • Se NCC = NLCÞ Ass. por conjunto = Mapeamento Direto • Se NCC = 1Þ Ass. por conjunto = Associativa • NLC = núm. linhas da cache • NCC = núm. conjuntos da cache
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
Leitura/Escrita da Cache • Leitura: • 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)
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.
Memória Cache: escrita • Para se evitar espera durante escrita: • Write buffers
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
Endereço Tag Indice Off. CPU Dados (256) Tag (21) Val. (1) Dados Entrada Dados Saída 256 blocos Buffer de Escrita Mux =? Alpha AXP 21064- Cache Dados
CPU CPU Multiplexador Cache Cache Memória Memória Memórias mais largas
CPU Cache Cache Banco 0 Memória Banco 1 Memória Banco 2 Memória Banco 3 Memória Memória “Interleaved” CPU Memória