Memória 6 1.

Slides:



Advertisements
Apresentações semelhantes
UNIDADE 1: INTRODUÇÃO ÀS TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO
Advertisements

Integridade de Dados em Memórias Cache
Administração Sistemas Informáticos I
Arquitetura e organização de computadores
Entrada e Saída Introdução.
Memorias ROM RAM.
Aula 16: Memória Principal e Memória Virtual
William Stallings Arquitetura e Organização de Computadores 8a Edição
Memórias cache CPU procura por dados em L1, depois em L2 e finalmente na memória principal CPU registradores ALU L1 cache barramento de cache barramento.
MEMORIAS RAUL DIAZ ROSAS.
Maria Aparecida Castro Livi
Dispositivos Lógicos Programáveis (PLD)
Memória RAM.
HARDWARE do CLP Os controladores lógicos programáveis são equipamentos com uma aplicação muito vasta dentro dos diversos processos de automação. Desta.
Sistemas Operacionais I
Hardware toda a Parte física do computador. É o cerebro do Computador. Ele processa as informações e as transforma em dados que são enviados aos dispositivos.
Memórias Digitais Memórias:
Memórias Digitais Departamento de Engenharia Elétrica – UFRJ
Memórias.
Subsistemas de memória
Infra-estrutura Hardware
Agenda - Aula 03 Introdução (Computador Digital) Memória
Arquitetura de Computadores Memória - 2 Waldemiro Arruda.
Memória Principal.
Técnico em Informática
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
INTRODUÇÃO À COMPUTAÇÃO
Memórias Memórias ROM (Read-Only Memory - Memória Somente de Leitura) recebem esse nome porque os dados são gravados nelas apenas uma vez. Depois disso,
Hardware : Memórias Instrutor : Marcos
Memória RAM Prof. Emanoel de Oliveira.
Placa de rede, Memória RAM, Hub
Cursos: Sistemas de Informação
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
SEC (Single Error Correction) Código de Hamming
Organização e Arquitetura de Computadores
DEPARTAMENTO DE INFORMÁTICA UFPE GRECO Gerenciamento de Memória.
Componentes básicos de um computador
Tipos De Memória.
Memorias.
INFORMÀTICA E COMUNICAÇÃO Memórias e Dispositivos de Entrada e Saída
Localidade Princípio da localidade è um programa acessa uma
Bruno Iran Ferreira Maciel
Bruno Iran Ferreira Maciel
DSC/CEEI/UFCG Introdução à Computação. DSC/CEEI/UFCG 2 Hardware – Memória  Componente de um sistema de computação cuja função é armazenar informações.
Escola Secundária Sebastião da Gama
Memórias RAM, ROM E CACHE.
Ch7b-1 Capítulo Sistemas de Memória - Memória Virtual.
São dispositivos onde os dados e programas são armazenados.
REDE DE COMPUTADORES Arquitetura de Computadores Prof. Bruno Viana
M I B Memórias.
INTRODUÇÃO À COMPUTAÇÃO
Prof. André Luis M. Silva Hierarquia de Memória Prof. André Luis M. Silva
Memória.
Bem vindos!!!. Roteiro Hardware Processamento Periféricos Memória Componentes Placa mãe.
Trabalho realizado por: Nuno bandola nº7
Memórias Memórias ROM (Read-Only Memory - Memória Somente de Leitura) recebem esse nome porque os dados são gravados nelas apenas uma vez. Depois disso,
MEMÓRIAS.
Por: Lucas da Silva Montes, Marcos Ghesla e Vinícius Randon.
MEMÓRIA CACHE E TÉCNICAS DE MAPEAMENTO Capítulo 5
William Stallings Arquitetura e Organização de Computadores 8a Edição
Memória Principal Anotações de Aula
Memória Cache.
Memórias Faculdade de Ciências Aplicadas e Sociais de Petrolina - FACAPE Ciência da Computação Professora: Cynara Carvalho
MEMÓRIA (INFORMÁTICA)
Bruno Iran Ferreira Maciel
MEMÓRIA. SERVE PARA ARMAZENAR DADOS PODEM SER: ROM – PERMANENTE (ROM – READ ONLY MEMORY) EX. CD ROM e BIOS RAM – TEMPORÁRIA (RAM – RANDON ACCESS MEMORY)
Disciplina: Circuitos Digitais
Tipos de Memória Prof. André Luís Del Mestre Martins
Transcrição da apresentação:

Memória 6 1

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

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

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.

Tipos Básicos de Memória Semicondutora

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)

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

DIMM

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)

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

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

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

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.

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

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

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

Direct Rambus DRAM ou RDRAM

Direct Rambus DRAM ou RDRAM

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

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

Memória Cache

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

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

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

Níveis de memória

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

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.

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.

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.

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.

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

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 0000...01 100 Offset

Mapeamento direto

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 000000...01100 Offset Offset

Mapeamento Associativo

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 { 011 00 Offset

Mapeamento Associativo por Conjunto

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

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

Memórias mais largas CPU Cache Memória Multiplexador

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

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

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

Código de Hamming C1 = M3 + M5 + M7 + M9 + M11 Exemplo: Check Data bit bit 12 1100 M12 11 1011 M11 10 1010 M10 9 1001 M9 8 1000 C8 7 0111 M7 6 0110 M6 5 0101 M5 4 0100 C4 3 0011 M3 2 0010 C2 1 0001 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 + M5 + M7 + M9 + M11 C2 = M3 + M6 + M7 + M10 + M11 C4 = M5 + M6 + M7 + M12 C8 = M9 + M10 + M11 + M12 O O O O O O O O O O O O O O