Prévia do material em texto
Arquitetura de Computadores I Prof. MSc. Daniel Menin Tortelli danielmenintortelli@gmail.com Memória – Parte II Arquitetura dos módulos de memória. • Num chip de memória DRAM, cada bit é formado pelo conjunto de um transistor e um capacitor. • O transistor controla a passagem da corrente elétrica, enquanto o capacitor a armazena por um curto período. • Quando o capacitor contém um impulso elétrico, temos um bit 1 e quando ele está descarregado, temos um bit 0. • Os "capacitores" usados nos chips de memória são extremamente pequenos e simples, basicamente dois pequenos blocos de metal ligados ao transístor, que conservam o impulso elétrico por apenas uma fração de segundo. Arquitetura dos módulos de memória. • Para evitar a perda dos dados, a placa mãe inclui um circuito de refresh, que é responsável por regravar o conteúdo da memória várias vezes por segundo (a cada 64 milissegundos ou menos). • O processo de refresh atrapalha duplamente, pois consome energia (que acaba sendo transformada em calor, contribuindo para o aquecimento do micro) e torna o acesso à memória mais lento. • Apesar disso, não existe muito o que fazer, pois a única solução seria passar a usar memória SRAM, que é absurdamente mais cara :). • A principal diferença é que na memória SRAM cada célula é formada por 4 ou 6 transístores, ao invés de apenas um. • Dois deles controlam a leitura e gravação de dados, enquanto os demais formam a célula que armazena o impulso elétrico (a célula continua armazenando um único bit). Capacidades • A capacidade da memória pode se referir ao chip de memória (cuja capacidade é medida em bits) ou ao módulo de memória (cuja capacidade é medida em bytes). • O quanto cada chip de memória armazena é chamado densidade do chip. • Essa capacidade é normalmente expressa na forma “bits X organização interna”. • Um pente de memória de 1 GB, por exemplo, é formado geralmente por 8 chips de 1 gigabit cada um (8 gigabits = 1 gigabyte). • Cada chip possui nada menos do que 1 bilhão de transístores e capacitores e o módulo inteiro acumula um total de 8 bilhões de conjuntos. • Apesar dessa brutal quantidade de transistores, os chips de memória são relativamente simples de se produzir, já que basta repetir a mesma estrutura indefinidamente. Capacidades • A tabela abaixo ilustra as capacidades típicas (as densidades por chip estão em bits, portanto você deverá dividir por oito para ter a densidade de cada chip em bytes). • A placa-mãe e/ou o processador (já que atualmente o circuito controlador de memória está embutido no processador) também podem limitar a capacidade máxima que cada módulo pode ter. Pré-busca • As memórias dinâmicas armazenam dados dentro de uma matriz de pequenos capacitores, composta de linhas e colunas. • As memórias DDR têm um circuito de pré-busca que permite manter uma linha selecionada, permitindo que o controlador de memória busque dados que estejam adjacentes na mesma linha nas operações seguintes, de forma automática, sem a necessidade de selecionar novamente esta linha, economizando tempo e aumentando o desempenho. • A quantidade de dados que serão lidos dessa forma varia de acordo com a tecnologia da memória. Pré-busca • Por exemplo, no caso das memórias DDR3 e DDR4, quando o controlador de memória pede um dado, a memória já lê e entrega os próximos oito dados seguintes. • A largura dos dados (número de bits) dependerá da organização interna do chip de memória. • Por exemplo, em um chip DDR3 “1 Gb x 8”, os dados estão organizados internamente em grupos de oito bits, e a pré-busca fará a entrega de oito dados de oito bits, ou seja, 64 bits. Temporizações das memórias RAM • As memórias DDR, DDR2, DDR3 e DDR4 são classificadas de acordo com a velocidade máxima que conseguem operar, bem como suas temporizações. Temporizações são números como 3-4-4-8, 5-5-5-15, 7-7-7-21 ou 9-9-9-24. • Quanto menor forem esses números, melhor. • As memórias construídas com tecnologia DDR (quando falarmos “tecnologia DDR”, aplica-se para todas as suas variações, como DDR4, DDR3, etc.) seguem a seguinte classificação: DDRxxx/PCyyyy. Temporizações das memórias RAM • O primeiro número (xxx) indica o clock máximo que os chips da memória suportam. • Por exemplo, as memórias DDR3-1333 podem trabalhar a até 1.333 MHz e as memórias DDR4-2133 podem trabalhar até 2.133 MHz. • É importante notar que este não é o clock real das memórias. • O clock real das memórias com tecnologia DDR é metade do clock rotulado. Por exemplo, o clock real das memórias DDR3-1333 é 666 MHz, não 1.333 MHz, e o clock real das memórias DDR4-2133 é 1.067 MHz e não 2.133 MHz. Temporizações das memórias RAM • O segundo número (yyyy) indica a taxa de transferência máxima teórica da memória (também conhecida como largura de banda), medida em MB/s. • A taxa de transferência de dados das memórias DDR400 é de no máximo 3.200 MB/s, e por isso que elas são rotuladas como PC3200. • A taxa de transferência das memórias DDR2-800 é de 6.400 MB/s, e por isso que elas são rotuladas como PC2-6400. • Já a taxa de transferência das memórias DDR3-1333 é de 10.664 MB/s, e por isso elas são rotuladas como PC3-10600 ou PC3-10666. • E a largura de banda das memórias DDR4-2133 é de 17.064 MB/s e elas são rotuladas como PC4- 17000. • Observe que é usado os números “2”, “3” ou “4” após os nomes “DDR” ou “PC” para indicar que estamos falando das memórias DDR2, DDR3 ou DDR4, e não das memórias DDR. Temporizações das memórias RAM • A primeira parte da classificação, DDRxxx, é o padrão usado para classificar os chips de memória, enquanto que a segunda parte, PCyyyy, é usada para classificar os módulos de memórias. • Na Figura, pode-se ver um módulo de memória PC3-10666, que utiliza chips DDR3-1333. Preste atenção nas temporizações (7-7-7-18) e na tensão de alimentação (1,5 V). Módulo de memória DDR3-1333/PC3-10666 Temporizações das memórias RAM • A taxa de transferência máxima teórica dos módulos de memórias pode ser calculada através da seguinte fórmula: Largura de banda = clock x Número de Bits / 8 • Como os módulos de memória DIMM transferem 64 bits por vez, o “número de bits” da fórmula é 64. Como 64 / 8 é igual a 8, podemos simplificar esta fórmula para: Largura de banda = clock x 8 • Se você instalar um módulo de memória em um computador onde o seu barramento de memória esteja rodando com um clock inferior, a taxa de transferência que o módulo de memória alcançará será menor do que a sua taxa de transferência máxima teórica. Temporizações das memórias RAM • Por causa das temporizações, dois módulos de memória com mesma taxa de transferência máxima teórica podem apresentar desempenhos diferentes. • As temporizações da memória são dadas através de uma série de números, como, por exemplo 4-4-4-8, 5-5-5-15, 7-7-7-21 ou 9-9-9-24. • Estes números indicam a quantidade de pulsos de clock que a memória demora para fazer uma determinada operação. • Quanto menor o número, mais rápida é a memória. Temporizações das memórias RAM • As operações que estes números indicam são as seguintes: • CL: CAS Latency • tRCD: RAS to CAS Delay • tRP: RAS Precharge • tRAS: Active to Precharge Delay • CMD: Command Rate • Para entendê-los, tenha em mente que a memória é organizada internamente em forma de matriz, onde os dados são armazenados na interseção de linhas e colunas. Um módulo de memória DDR3-1600/PC3-12800 com temporizações 8-8-8-24 Temporizações das memórias RAM • CL: CAS Latency. Indica a quantidade de pulsos de clock que a memória leva para retornar um dado solicitado. • Uma memória com CL=7 demora sete pulsos de clock para entregar um dado, enquanto que uma memória com CL=9 demora nove pulsos de clock para realizar a mesma operação. • Dessa maneira dois módulos trabalhando com o mesmo clock o que tiver a menor latência do CAS será o mais rápido. • Uma memória com CL=7 tem uma melhoriade 22,2% na latência da memória em relação a uma memória com CL=9, considerando que as duas estejam rodando com o mesmo clock. Temporizações das memórias RAM • CL: CAS Latency. Indica a quantidade de pulsos de clock que a memória leva para retornar um dado solicitado. Temporizações das memórias RAM • tRCD: RAS to CAS Delay. Tempo demorado entre a ativação da linha (RAS) e a coluna (CAS) onde o dado está armazenado na matriz. • Cada chip de memória é organizado internamente como uma matriz. Na interseção de cada linha e coluna temos um pequeno capacitor responsável por armazenar um “0” ou “1” – o dado. • Internamente, o processo de acessar um dado armazenado é feito ativando-se a linha onde ele está localizado e, em seguida, a coluna. • Esta ativação é feita por dois sinais de controle chamados RAS (Row Address Strobe) e CAS (Column Address Strobe). • Quanto menor for o tempo entre esses dois sinais, melhor, já que o dado será lido mais rapidamente. Temporizações das memórias RAM • tRCD: RAS to CAS Delay. Tempo demorado entre a ativação da linha (RAS) e a coluna (CAS) onde o dado está armazenado na matriz. Temporizações das memórias RAM • tRP: RAS Precharge. Tempo demorado entre desativar o acesso a uma linha de dados e iniciar o acesso a outra linha de dados. • Após o dado ter sido entregue pela memória, um comando chamado Precharge precisa ser executado para desativar a linha da memória que estava sendo usada e para permitir que uma nova linha seja ativada. • O tempo RAS Precharge (tRP) é o tempo entre o comando Precharge e o próximo comando “Active” (“Ativar”). O comando “Active” inicia um ciclo de leitura ou de escrita. Temporizações das memórias RAM • tRP: RAS Precharge. Tempo demorado entre desativar o acesso a uma linha de dados e iniciar o acesso a outra linha de dados. Temporizações das memórias RAM • tRAS: Active to Precharge Delay. O quanto a memória tem que esperar até que o próximo acesso à memória possa ser iniciado. • CMD: Command Rate. Tempo demorado entre o chip de memória ter sido ativado e o primeiro comando poder ser enviado para a memória. • Algumas vezes este valor não é informado. • Normalmente possui o valor T1 (1 clock) ou T2 (2 clocks). Temporizações das memórias RAM Canais de Memória Arquiteturas de Memória de Dois, Três e Quatro Canais • A memória RAM impede que o micro obtenha seu desempenho máximo. Isto acontece porque o processador é muito mais rápido do que a memória RAM e muitas vezes ele tem de ficar esperando a memória para poder entregá-la um determinado dado. • Durante esse tempo de espera o processador fica ocioso, sem fazer nada (isto não é absolutamente verdade, mas vale para nossas explicações). • Em um computador ideal, a velocidade da memória deve ser igual à do processador. Arquiteturas de Memória de Dois, Três e Quatro Canais • As arquiteturas de dois, três e quatro canais são técnicas usadas para dobrar, triplicar ou quadruplicar a velocidade de comunicação entre o controlador de memória e a memória RAM, aumentando assim o desempenho do micro. • A memória é controlada por um circuito chamado controlador de memória. • Atualmente, a maioria dos processadores tem este componente integrado, o que significa que o processador tem um barramento de memória dedicado conectando-o à memória. • Em processadores antigos, no entanto, este circuito estava localizado no chipset da placa-mãe, mais especificamente no chip ponte norte (este chip também é conhecido como MCH, Memory Controller Hub, Hub Controlador de Memória). Arquiteturas de Memória de Dois, Três e Quatro Canais Arquiteturas de Memória de Dois, Três e Quatro Canais • Neste caso, o processador não se comunica diretamente com a memória RAM; o processador acessa o chip ponte norte, que, por sua vez, envia as solicitações do processador à memória. • A primeira opção oferece maior desempenho, já que não há um intermediário nas comunicações entre o processador e a memória. Como a memória é acessada em processadores com controlador de memória integrado Como a memória é acessada em processadores sem controlador de memória integrado Arquiteturas de Memória de Dois, Três e Quatro Canais • A memória RAM é conectada ao controlador de memória através de uma série de fios, coletivamente chamados “barramento de memória”. Esses fios são divididos em três grupos: dados, endereço e controle. • Os fios do barramento de dados são responsáveis por transportar os dados que estão sendo lidos (ou seja, dados que estão sendo transferidos da memória para o controlador de memória) ou escritos (ou seja, transferidos do controlador de memória para a memória RAM, isto é, saindo do processador). • Os fios do barramento de endereços dizem aos módulos de memória onde exatamente (isto é, em qual endereço) os dados precisam ser lidos ou armazenados. • Os fios do barramento de controle enviam comandos para os módulos de memória dizendo a eles qual tipo de operação deve ser feita – por exemplo, se é uma operação de escrita (armazenamento) ou leitura.Outro fio importante presente no barramento de controle é o sinal de clock da memória. Largura de Banda • Largura de banda é a taxa de transferência máxima teórica de um canal de comunicação. No caso das memórias, a largura de banda é medida em megabytes por segundo (MB/s) ou gigabytes por segundo (GB/s), ou seja, quantos milhões ou bilhões de bytes podem se transferidos por segundo, respectivamente. • A largura de banda da memória pode ser obtida através seguinte fórmula: Largura de banda = clock DDR x 8 Arquiteturas de Memória de Dois, Três e Quatro Canais • As arquiteturas de memória de dois, três e quatro canais funcionam aumentando a quantidade de fios de dados disponíveis no barramento de memória, dobrando, triplicando ou quadruplicando a largura de banda disponível, respectivamente. • É importante notar que o aumento de desempenho é obtido apenas no subsistema de memória; dobrar o desempenho teórico da memória não significa que o computador ficará duas vezes mais rápido. Arquitetura de Canais Arquitetura de Canal Simples • Quando dizemos que o barramento de dados da memória é de 64 bits, isto significa que existem 64 fios (sim, fios físicos na placa-mãe) conectando o controlador de memória aos soquetes de memória. • Esses fios são rotulados como D0 a D63. O barramento de dados da memória é compartilhado entre todos os soquetes de memória. • Os barramentos de endereços e controle ativarão o soquete apropriado dependendo do endereço onde o dado deve ser armazenado ou lido. Arquitetura de Canal Simples Como o modo de canal único funciona (Single Channel) Arquitetura de Canal Simples Arquitetura de Dois Canais • A arquitetura de dois canais expande a quantidade de fios disponíveis no barramento de dados da memória de 64 para 128. • Isto dobra a largura de banda disponível. Por exemplo, se você usa memórias DDR3- 1333, a taxa de transferência máxima teórica é dobrada de 10.664 MB/s (10,6 GB/s) para 21.328 MB/s (21,3 GB/s). • Cada módulo de memória, no entanto, é um dispositivo de 64 bits. • Dessa forma, para que a arquitetura de dois canais funcione, é necessário instalar dois módulos de memória em paralelo, expandindo o barramento de memória para 128 bits. • A arquitetura de dois canais funciona acessando dois módulos em paralelo, isto é, ao mesmo tempo. Arquitetura de Dois Canais • Em micros que suportam a tecnologia de dois canais, o barramento de dados da memória é expandido para 128 bits. • Isto significa que existem 128 fios conectando o controlador de memória aos soquetes de memória. • Esses fios são rotulados como D0 a D127. • Como cada módulo de memória aceita apenas 64 bits por pulso de clock, dois módulos de memória são usados para preencher o barramento de dados de 128 bits. • Como os dois módulos são acessados ao mesmo tempo, eles precisam ser idênticos (mesma capacidade, mesma temporizaçãoe mesmo clock). Arquitetura de Dois Canais Como o modo de dois canais funciona (Dual Channel) Arquitetura de Dois Canais Habilitando o Modo de Dois Canais • Para habilitar a tecnologia de dois canais você precisa ter: • Um controlador de memória com suporte à arquitetura de dois canais (praticamente todos os atuais processadores suportam esta arquitetura). • Dois ou uma quantidade par de módulos de memória; cada par de módulos deve ser idêntico. • Instalar os módulos de memória nos soquetes corretos na placa-mãe que habilitarão esta arquitetura. Habilitando o Modo de Dois Canais Instale módulos de memória em soquetes de mesma cor Modo de dois canais habilitado em um micro com processador Intel (ver o soquete vazio entre eles) Responda... 1. O fator crítico de desempenho é na comunicação entre processador e memória principal. Explique algumas medidas que podem ser tomadas para melhorar essa comunicação. 2. O que são memórias de acesso sequencial, direto e aleatório? 3. Qual a relação entre tempo de acesso, custo de memória e capacidade. 4. Como o Princípio de Localidade (Temporal e Espacial) se relaciona com o uso de múltiplos níveis de memória. 5. Explique como funciona internamente as duas tecnologias de acesso aleatório, dinâmica e estática, utilizadas para construção de memória cache e principal. Fale sobre as vantagens e desvantagens de cada uma em termos de custo, capacidade e tempo de resposta.