Baixe o app para aproveitar ainda mais
Prévia do material em texto
AOC Página 1 Registradores Em um sistema de computação, a destinação final do conteúdo de qualquer tipo de memória é o processador (a CPU). Isto é, o objetivo final de cada uma das memórias (ou do subsistema de memória) é armazenar informações destinadas a serem, em algum momento, utilizadas pelo processador. Ele é o responsável pela execução das instruções, pela manipulação dos dados e pela produção dos resultados das operações. As ações operativas do processador são realizadas nas suas unidades funcionais: na unidade aritmética e lógica - ULA (Aritmetic and Logic Unit), na unidade de ponto flutuante - UFP (Float Point Unit - FPU) ou talvez em uma unidade de processamento vetorial. No entanto, antes que a instrução seja interpretada e as unidades da CPU sejam acionadas, o processador necessita buscar a instrução de onde ela estiver armazenada (memória cache ou principal) e armazená-la em seu próprio interior, em um dispositivo de memória denominado registrador de instrução. Em seguida a este armazenamento da instrução, o processador deverá, na maioria das vezes, buscar dados da memória (cache, principal ou mesmo de unidades de disco em fita) para serem manipulados na ULA. Esses dados também precisam ser armazenados em algum local da CPU até serem efetivamente utilizados. Os resultados de um processamento (de uma soma, subtração, operação lógica, etc.) também precisam, às vezes, ser guardados temporariamente na CPU, ou para serem novamente manipulados na ULA por uma outra instrução, ou para serem transferidos para uma memória externa à CPU. Esses dados são armazenados na CPU em pequenas unidades de memória, denominadas registradores. Um registrador é, portanto, o elemento superior da pirâmide de memória (ver figura 1), por possuir a maior velocidade de transferência dentro do sistema (menor tempo de acesso), menor capacidade de armazenamento e maior custo. Analisando os diversos parâmetros que caracterizam as memórias, descritos no item anterior, temos: Tempo de acesso/ciclo de memória - por serem construídos com a mesma tecnologia da CPU, estes dispositivos possuem o menor tempo de acesso/ciclo de memória do sistema (neste caso, não é aplicável distinguir-se tempo de acesso e ciclo de memória, por serem sempre iguais), algo em torno de l0 a 20 nanossegundos, dependendo de tratar-se de CPU de um supercomputador ou de um microprocessador mais lento. Capacidade - os registradores são fabricados com capacidade de armazenar um único dado, uma única instrução ou até mesmo um único endereço. Desta forma, a quantidade de bits de cada um é de uns poucos bits (de 8 a 64), dependendo do tipo de processador e, dentro deste, da aplicação dada ao registrador em si. Registradores de dados têm, em geral, o tamanho definido pelo fabricante para a palavra do processador, tamanho diferente dos registradores usados exclusivamente para armazenar endereços (quando há registradores com esta função específica no processador). Por exemplo, o processador Intel 80486, cuja palavra é de 32 bits, tem registradores também de 32 bits, inclusive registradores de endereços (os números que indicam os endereços de célula de memória principal do processador têm 32 bits); o processador Motorola 68000 tem registradores AOC Página 2 de dados de 32 bits (palavra de 32 bits) e registrador de endereços de 24 bits, enquanto os processadores da família IBM 43xx possuem registradores de dados de 32 bits e endereços de 24 bits. Volatilidade - registradores são memórias de semicondutores e, portanto, necessitam de energia elétrica para funcionarem. Assim, registradores são memórias voláteis. Para a CPU funcionar sem interrupção, mesmo quando eventualmente a energia elétrica para o computador é interrompida, é necessário que o sistema de computação seja ligado a um dispositivo de alimentação elétrica denominado "no-break", o qual é constituído de bateria ou gerador de corrente, conversor AC/DC. Tecnologia - conforme mencionado no tópico anterior, os registradores são memórias de semicondutores, sendo fabricados com tecnologia igual à dos demais circuitos da CPU, visto que eles se encontram inseridos em seu interior. No entanto, há diversos modelos de tecnologia de fabricação de semicondutores, uns com tempo de acesso maior que outros, custos e capacidade de armazenamento, no mesmo espaço físico, diferentes. Tecnologias bipolar e MOS ("metal oxide semicondutor") são comuns na fabricação de registradores, sendo descritas na disciplina "Circuitos Lógicos". Temporariedade - os registradores são memórias auxiliares internas à CPU e, portanto, tendem a guardar informação (dados ou instruções) o mais temporariamente possível. Acumuladores ou registradores de dados armazenam os dados apenas o tempo necessário para sua utilização na ULA. Custo - devido à tecnologia mais avançada de sua fabricação, os registradores encontram-se no topo da pirâmide em termos de custos, sendo os dispositivos de maior custo entre os diversos tipos de memória. Memória Cache Na pirâmide de memória, abaixo dos registradores, encontra-se o conjunto cache- memória principal. Em sistemas de computação mais antigos, a pirâmide não possuía memória cache e, desse modo, os registradores eram ligados diretamente à memória principal. Em toda execução de uma instrução, a CPU acessa a memória principal (sem cache), pelo menos uma vez, para buscar a instrução (uma cópia dela) e transferi-la para um dos registradores da CPU. E mais ainda, muitas instruções requerem outros acessos à memória, seja para a transferência de dados para a CPU (que serão processados na ULA), seja para a transferência do resultado de uma operação da CPU para a memória. Em resumo, para a realização do ciclo de uma instrução há sempre a necessidade de ser realizado um ou mais ciclos de memória. Considerando-se que um ciclo de memória é atualmente bem mais demorado do que o período de tempo que a CPU gasta para realizar uma operação na ULA, fica claro que a duração da execução de um ciclo de instrução é bastante afetada pela demora dos ciclos de memória. AOC Página 3 Desde há muito, então, esta interface entre o processador e a memória principal vem sendo um ponto frágil no que se refere à performance do sistema. Na tentativa de melhorar o desempenho dos sistemas de computação, os projetistas das CPU vêm constantemente obtendo velocidades cada vez maiores nas operações dessas unidades, o que não está acontecendo na mesma proporção com o aperfeiçoamento tecnológico das memórias utilizadas como memória principal. Assim, anualmente a diferença de velocidade entre CPU e memória principal é talvez maior do que já foi no passado. Na busca de uma solução para este problema (o gargalo de congestionamento na comunicação CPU/MP que degrada o desempenho dos sistemas), foi desenvolvida uma técnica que consiste na inclusão de um dispositivo de memória entre CPU e MP, denominado memória CACHE, cuja função é acelerar a velocidade de transferência das informações entre CPU e MP e, com isso, aumentar o desempenho dos sistemas de computação. Para tanto, esse tipo de memória é fabricado com tecnologia semelhante à da CPU e, em conseqüência, possui tempos de acesso compatíveis, resultando numa considerável redução da espera da CPU para receber dados e instruções da cache, ao contrário do que acontece em sistemas sem cache . Assim, logo abaixo dos registradores na pirâmide é inserida a memória cache, com os seguintes parâmetros: Tempo de acesso/ciclo de memória - sendo memórias de semicondutores, fabricadas com tecnologia e recursos para prover menores ciclos de memória que as memóriasRAM comuns (memória principal do tipo dinâmica), elas possuem velocidade de transferência tal que lhes garante tempos de acesso entre l0 e 25 ns (nanossegundos), sendo por esta razão colocadas, na pirâmide, logo abaixo dos registradores. Capacidade - tendo em vista que a CPU acessa primeiramente a memória cache, para buscar a informação requerida (a próxima instrução ou dados requeridos pela instrução em execução), é importante que a referida memória tenha capacidade adequada para armazenar uma apreciável quantidade de informações, visto que, se ela não foi encontrada na cache, então o sistema deverá sofrer um atraso para que a informação seja transferida da memória principal para a cache. Por outro lado, uma grande capacidade implicará certamente elevação de seu custo, muitas vezes inaceitável para compor o preço total do sistema. Desta forma, deve-se conciliar o compromisso de uma apreciável capacidade com a não-elevação demasiada de seu preço. Valores típicos de memória cache oscilam entre 16K e 512K em máquinas de grande porte e até 256K para microcomputadores (é possível que em breve estes valores já estejam mais elevados), considerando-se memórias cache externas à CPU, já que atualmente alguns processadores (como o INTEL 80486) possuem uma certa quantidade de memória cache em seu interior, da ordem de 8K. AOC Página 4 Volatilidade - a exemplo dos registradores, memórias cache são dispositivos construídos com circuitos eletrônicos, requerendo, por isso, energia elétrica para seu funcionamento. São, deste modo, dispositivos voláteis. Tecnologia - memórias cache são fabricadas com circuitos eletrônicos de alta velocidade para atingirem sua finalidade. Em geral, são memórias estáticas, denominadas SRAM. Temporariedade - o tempo de permanência de uma instrução ou dado nas memórias cache é relativamente pequeno, menor que a duração da execução do programa ao qual a referida instrução ou dado pertence. Isto porque, devido a seu tamanho não ser grande e ser utilizada por todos os programas em execução, há necessidade de alteração periódica da informação armazenada para permitir a entrada de novas informações. Embora a transitoriedade das informações na cache seja uma realidade, o período efetivo de permanência de um dado ou instrução é dependente do tipo de política de substituição de informação. Custo - o custo de fabricação das memórias cache é alto. O valor por byte está situado entre o dos registradores, que são os mais caros, e o da memória principal, mais barata. Memórias cache internas à CPU ainda são mais caras do que as externas. Memória Principal Uma das principais características definidas no projeto de arquitetura do sistema de Von Neumann, o qual se constitui na primeira geração dos computadores, consistia no fato de ser uma máquina "de programa armazenado". O fato de as instruções, uma após a outra, poderem ser imediatamente acessadas pela CPU é que garante o automatismo do sistema e aumenta a velocidade de execução dos programas (uma máquina executando ações sucessivas, sem intervalos e sem cansar, como não acontece com os seres humanos). E a CPU pode acessar imediatamente uma instrução após a outra porque elas estão armazenadas internamente no computador. Esta é a importância da memória. E, desde o princípio, a memória especificada para armazenar o programa (e os seus dados) a ser executado é a memória que atualmente chamamos de principal (ou memória real), para distingui-la da memória de discos e fitas (memória secundária). A memória principal é, então, a memória básica de um sistema de computação desde seus primórdios. É o dispositivo onde o programa (e seus dados) que vai ser executado é armazenado para que a CPU vá "buscando" instrução por instrução. Seus parâmetros possuem as seguintes características: Tempo de acesso/ciclo de memória - a memória principal é construída com elementos cuja velocidade operacional se situa abaixo das memórias cache, embora sejam muito mais rápidas que a memória secundária. Nas gerações anteriores de computadores (até o advento da família IBM /360) o tipo mais comum de memória principal era uma matriz de pequenos núcleos magnéticos, os quais armazenavam o valor 1 ou o valor 0 de bit AOC Página 5 conforme a adição do campo magnético armazenado. Essas memórias possuíam baixa velocidade, a qual foi substancialmente elevada com o surgimento das memórias de semicondutores. Atualmente, as memórias desse tipo possuem tempo de acesso entre 50ns e l50ns. Capacidade - em geral, a capacidade da memória principal é bem maior que a da memória cache. Enquanto esta oscila atualmente entre 16 e 512 Kbytes, valores típicos de memória principal, seja para microcomputadores, computadores médios ou de grande porte, estão na faixa de MBytes (1000K), pois raramente vai se adquirir, nos dias de hoje, um microcomputador que não possua algo em torno de 32 Mb de memória principal, e já se vendem estes computadores com até 64 MBytes, embora eles possam endereçar memórias de 4 GBytes (gigabytes). Computadores de grande porte costumam funcionar com memória principal de até 512 MBytes. Volatilidade - sendo atualmente construídos com semicondutores e circuitos eletrônicos correlatos, este tipo de memória também é volátil, tal como acontece com os registradores e a memória cache. No entanto, há normalmente uma pequena quantidade de memória não volátil fazendo parte da memória principal, a qual serve para armazenar pequena quantidade de instruções que são executadas sempre que o computador é ligado. Tecnologia - conforme já mencionado, nos primeiros sistemas usavam-se núcleos de ferrite (processo magnético) para armazenar os bits na memória principal, até que foram substituídos pela tecnologia de semicondutores. Os circuitos que representam os bits nas memórias atuais possuem uma tecnologia bem mais avançada que seus predecessores de ferrite e, portanto, têm velocidade mais elevada de transferência, garantindo baixos tempos de acesso em comparação com o modelo anterior. São, porém, elementos mais lentos do que aqueles que constituem as memórias cache. Na maioria dos sistemas atuais esta tecnologia produz memória com elementos dinâmicos (DRAM), como será mostrado adiante. Temporariedade - para que um programa seja executado é necessário que ele esteja armazenado na memória principal (e seus dados também). Atualmente esta afirmação é parcialmente verdadeira, visto que não é mais necessário que o programa completo (todas as instruções) esteja na MP; neste caso, é obrigatório apenas o armazenamento, na MP, da instrução que será acessada pela CPU (na prática, não se usa somente a instrução que será executada, mas sim esta e um grupo de outras). Não importa, contudo, se é o programa todo ou parte dele que deve estar armazenado na MP para ser utilizado pela CPU. Fica claro que, em qualquer circunstância, as instruções e os dados permanecem temporariamente na MP, enquanto durar a execução do programa (ou até menos tempo). Esta temporariedade é bastante variável, dependendo de várias circunstâncias, como, por exemplo, o tamanho do programa e sua duração, a quantidade de programas que estão sendo processados juntos, e outras mais. No entanto, a transitoriedade com que as informações permanecem armazenadas na MP é, em geral, mais duradoura que na memória cache ou nos registradores, embora mais lenta que na memória secundária. Custo - memórias dinâmicas usadas como memória principal têm um custo mais baixo que o custo das memórias cache, por isso podem ser vendidos computadores com uma AOC Página 6 quantidade apreciável de MP (com 16 MB, 32 MBe até 64 MB) sem que seu preço seja inaceitável. Valores típicos de MP oscilam entre U$ 2,00 e U$ 4,00 por MByte. Memória RAM As memórias RAM (Random-Access Memory - Memória de Acesso Aleatório) constituem uma das partes mais importantes dos computadores, pois são nelas que o processador armazena os dados com os quais está lidando. Esse tipo de memória tem um processo de gravação de dados extremamente rápido, se comparado aos vários tipos de memória ROM. No entanto, as informações gravadas se perdem quando não há mais energia elétrica, isto é, quando o computador é desligado, sendo, portanto, um tipo de memória volátil. Há dois tipos de tecnologia de memória RAM que são muitos utilizados: estático e dinâmico, isto é, SRAM e DRAM, respectivamente. Há também um tipo mais recente chamado de MRAM. Eis uma breve explicação de cada tipo: - SRAM (Static Random-Access Memory - RAM Estática): esse tipo é muito mais rápido que as memórias DRAM, porém armazena menos dados e possui preço elevado se considerarmos o custo por megabyte. Memórias SRAM costumam ser utilizadas como cache. - DRAM (Dynamic Random-Access Memory - RAM Dinâmica): memórias desse tipo possuem capacidade alta, isto é, podem comportar grandes quantidades de dados. No entanto, o acesso a essas informações costuma ser mais lento que o acesso às memórias estáticas. Esse tipo também costuma ter preço bem menor quando comparado ao tipo estático; - MRAM (Magnetoresistive Random-Access Memory - RAM Magneto-resistiva): a memória MRAM vem sendo estudada há tempos, mas somente nos últimos anos é que as primeiras unidades surgiram. Trata-se de um tipo de memória até certo ponto semelhante à DRAM, mas que utiliza células magnéticas. Graças a isso, essas memórias consomem menor quantidade de energia, são mais rápidas e armazenam dados por um longo tempo, mesmo na ausência de energia elétrica. O problema das memórias MRAM é que elas armazenam pouca quantidade de dados e são muito caras, portanto, pouco provavelmente serão adotadas em larga escala. Aspectos do funcionamento das memórias RAM As memórias DRAM são formadas por chips que contém uma quantidade elevadíssima de capacitores e transistores. Basicamente, um capacitor e um transistor, juntos, formam uma célula de memória. O primeiro tem a função de armazenar corrente elétrica por um certo tempo, enquanto que o segundo controla a passagem dessa corrente. Se o capacitor estiver armazenamento corrente, tem-se um bit 1. Se não estiver, tem-se um bit 0. O problema é que a informação é mantida por um curto de período de tempo e, para que não haja perda de dados da memória, um componente do controlador de AOC Página 7 memória é responsável pela função de refresh (ou refrescamento), que consiste em regravar o conteúdo da célula de tempos em tempos. Note que esse processo é realizado milhares de vezes por segundo. O refresh é uma solução, porém acompanhada de "feitos colaterais": esse processo aumenta o consumo de energia e, por consequência, aumenta o calor gerado. Além disso, a velocidade de acesso à memória acaba sendo reduzida. A memória SRAM, por sua vez, é bastante diferente da DRAM e o principal motivo para isso é o fato de que utiliza seis transistores (ou quatro transistores e dois resistores) para formar uma célula de memória. Na verdade, dois transistores ficam responsáveis pela tarefa de controle, enquanto que os demais ficam responsáveis pelo armazenamento elétrico, isto é, pela formação do bit. A vantagem desse esquema é que o refresh acaba não sendo necessário, fazendo com que a memória SRAM seja mais rápida e consuma menos energia. Por outro lado, como sua fabricação é mais complexa e requer mais componentes, o seu custo acaba sendo extremamente elevado, encarecendo por demais a construção de um computador baseado somente nesse tipo. É por isso que sua utilização mais comum é como cache, pois para isso são necessárias pequenas quantidades de memória. Como as memórias DRAM são mais comuns, eles serão o foco deste texto a partir deste ponto. CAS e RAS O processador armazena na memória RAM as informações com os quais trabalha, portanto, a todo momento, operações de gravação, eliminação e acesso aos dados são realizadas. Esse trabalho todo é possível graças ao trabalho de um circuito já citado chamado controlador de memória. Para facilitar a realização dessas operações, as células de memória são organizadas em uma espécie de matriz, ou seja, são orientadas em um esquema que lembra linhas e colunas. O cruzamento de uma certa linha (também chamada de wordline), com uma determinada coluna (também chamada de bitline) forma o que conhecemos como endereço de memória. Assim, para acessar o endereço de uma posição na memória, o controlador obtém o seu valor de coluna, ou seja, o valor RAS (Row Address Strobe) e o seu valor de linha, ou seja, o valor CAS (Column Address Strobe). AOC Página 8 Temporização e latência das memórias Os parâmetros de temporização e latência indicam quanto tempo o controlador de memória gasta com as operações de leitura e escrita. Em geral, quanto menor esses valores, mais rápidas são as operações. Para que você possa entender, tomemos como exemplo um módulo de memória que informa os seguintes valores em relação à latência: 5-4-4-15-1T. Esse valor está escrito nesta forma: tCL-tRCD-tRP-tRAS-CR. Vejamos o que cada um desses parâmetros significa: - tCL (CAS Latency): quando uma operação de leitura de memória é iniciada, sinais são acionados para ativar as linhas (RAS) e as colunas (RAS) correspondentes, determinar se a operação é de leitura ou escrita (CS - Chip Select) e assim por diante. O parâmetro CAS Latency indica, em ciclos de clock, qual o período que há entre o envio do sinal CAS e a disponibilização dos respectivos dados. Em outras palavras, é o intervalo existente entre a requisição de um dado pelo processador e a entrega deste pela memória. Assim, no caso do nosso exemplo, esse valor é de 5 ciclos de clock; - tRCD (RAS to CAS Delay): esse parâmetro indica, também em ciclos de clock, o intervalo que há entre a ativação da linha e da coluna de um determinado dado. No exemplo acima, esse valor corresponde a 4; - tRP (RAS Precharge): intervalo em clocks que informa o tempo gasto entre desativar o acesso a uma linha e ativar o acesso a outra. Em nosso exemplo, esse valor é de 4 ciclos; - tRAS (Active to Precharge Delay): esse parâmetro indica o intervalo, também em clocks, necessário entre um comando de ativar linha e a próxima ação do mesmo tipo. Em nosso exemplo, esse valor é de 15 ciclos de clock; - CR (Command Rate): intervalo que há entre a ativação do sinal CS e qualquer outro comando. Em geral, esse valor é de 1 ou 2 ciclos de clock e é acompanhado da letra T. No nosso exemplo esse valor é de 1 ciclo. Esses parâmetros costumam ser informados pelo fabricante em um etiqueta colada ao pente de memória (muitas vezes, o valor de CMD não é informado). Quando isso não ocorre, é possível obter essa informação através de softwares específicos (como o gratuito CPU-Z, para Windows, mostrado abaixo) ou mesmo pelo setup do BIOS. AOC Página 9 CPU-Z exibindo dados sobre memória Os parâmetros de temporização fornecem uma boa noção do tempo de acesso das memórias. Note que, quando falamos disso, nos referimos ao tempo que a memória leva para fornecer os dados requisitados. O que não foi dito acima é que esse tempo é medido em nanossegundos (ns), isto é, 1 segundo dividido por 1.000.000.000. Assim, para se ter uma noção de qual é a frequência máxima utilizada pela memória, basta dividir 1000 pelo seu tempode acesso em nanossegundos (essa informação pode constar em uma etiqueta no módulo ou pode ser informada através de softwares especiais). Por exemplo: se um pente de memória trabalha com 15 ns, sua frequência é de 66 MHz, pois 1000/15=66. Outros parâmetros Algumas placas-mãe atuais ou direcionadas ao público que faz overclock (em poucas palavras, prática onde dispositivos de hardware são ajustados para que trabalhem além das especificações de fábrica) ou, ainda, softwares que detalham as características do hardware do computador, costumam informar outros parâmetros, além dos mencionados acima. Geralmente, estes parâmetros adicionais são informados da seguinte forma: tRC- AOC Página 10 tRFC-tRRD-tWR-tWTR-tRTP (por exemplo: 22-51-3-6-3-3), também considerando ciclos de clock. Vejamos o que cada um significa: - tRC (Row Cycle): consiste no tempo necessário para que se complete um ciclo de acesso a uma linha da memória; - tRFC (Row Refresh Cycle): consiste no tempo necessário para a execução dos ciclos de refresh da memória; - tRRD (Row To Row Delay): semelhante ao tRP, mas considera o tempo que o controlador necesita esperar após uma nova linha ter sido ativada; - tWR (Write Recovery): informa o tempo necessário para que o controlador de memória comece a efetuar uma operação de escrita após realizar uma operação do mesmo tipo; - tWTR (Write to Read Delay): consiste no tempo necessário para que o controlador de memória comece a executar operações de leitura após efetuar uma operação de escrita; - tRTP (Read to Precharge Delay): indica o tempo necessário entre uma operação de leitura efetuada e ativação do próximo sinal. Voltagem Em comparação com outros itens de um computador, as memórias são um dos componentes que menos consomem energia. O interessante é que esse consumo diminuiu com a evolução da tecnologia. Por exemplo, módulos de memória DDR2 (tecnologia que ainda será abordada neste texto), em geral, exigem entre 1,8 V e 2,5 V. É possível encontrar pentes de memória DDR3 (padrão que também será abordado neste artigo) cuja exigência é de 1,5 V. Módulos de memória antigos exigiam cerca de 5 V. Algumas pessoas com bastante conhecimento no assunto fazem overclock nas memórias aumentando sua voltagem. Com esse ajuste, quando dentro de certos limites, é possível obter níveis maiores de clock. SPD (Serial Presence Detect) O SPD é um pequeno chip (geralmente do tipo EEPROM) inserido nos módulos de memória que contém diversas informações sobre as especificações do dispositivo, como tipo (DDR, DDR2, etc), voltagem, temporização/latência, fabricante, número de série, etc. AOC Página 11 Chip SPD Muitas placas-mãe contam com um setup de BIOS que permite uma série de ajustes de configuração. Nesses casos, um usuário experimente pode definir os parâmetros da memória, no entanto, quem não quiser ter esse trabalho, pode manter a configuração padrão. Algumas vezes, essa configuração é indicada por algo relacionado ao SPD, como mostra a imagem abaixo: Exemplo de ajuste de memória em setup de BIOS baseado em SPD Detecção de erros Alguns mecanismos foram desenvolvidos para ajudar na detecção de erros da memória, falhas essas que podem ter várias causas. Esses recursos são especialmente úteis em aplicações de alta confiabilidade, como servidores de missão crítica, por exemplo. AOC Página 12 Um desses mecanismos é a paridade, capaz apenas de ajudar a detectar erros, mas não de corrigi-los. Nesse esquema, um bit é adicionado a cada byte de memória (lembre-se: 1 byte corresponde a 8 bits). Esse bit assume o valor 1 se a quantidade de bits 1 do byte for par e assume o valor 0 (zero) se a referida quantidade por ímpar (o contrário também pode acontecer: 1 para ímpar e 0 para par). Quando a leitura de dados for feita, um circuito verificará se a paridade corresponde à quantidade de bits 1 (ou 0) do byte. Se for diferente, um erro foi detectado. A paridade, no entanto, pode não ser tão precisa, pois um erro em dois bits, por exemplo, pode fazer com que o bit de paridade corresponda à quantidade par ou ímpar de bits 1 do byte. Assim, para aplicações que exigem alta precisão dos dados, pode-se contar com memórias que tenham ECC (Error Checking and Correction), um mecanismo mais complexo capaz de detectar e corrigir erros de bits. Tipos de encapsulamento de memória O encapsulamento correspondente ao artefato que dá forma física aos chips de memória. Eis uma breve descrição dos tipos de encapsulamento mais utilizados pela indústria: - DIP (Dual In-line Package): um dos primeiros tipos de encapsulamento usados em memórias, sendo especialmente popular nas épocas dos computadores XT e 286. Como possui terminais de contato - "perninhas" - de grande espessura, seu encaixe ou mesmo sua colagem através de solda em placas pode ser feita facilmente de forma manual; Encapsulamento DIP – - SOJ (Small Outline J-Lead): esse encapsulamento recebe este nome porque seus terminais de contato lembram a letra 'J'. Foi bastante utilizado em módulos SIMM (vistos mais à frente) e sua forma de fixação em placas é feita através de solda, não requerendo furos na superfície do dispositivo; AOC Página 13 Encapsulamento SOJ - TSOP (Thin Small Outline Package): tipo de encapsulamento cuja espessura é bastante reduzida em relação aos padrões citados anteriormente (cerca de 1/3 menor que o SOJ). Por conta disso, seus terminais de contato são menores, além de mais finos, diminuindo a incidência de interferência na comunicação. É um tipo aplicado em módulos de memória SDRAM e DDR (que serão abordados adiante). Há uma variação desse encapsulamento chamado STSOP (Shrink Thin Small Outline Package) que é ainda mais fino; Encapsulamento TSOP - CSP (Chip Scale Package): mais recente, o encapsulamento CSP se destaca por ser "fino" e por não utilizar pinos de contato que lembram as tradicionais "perninhas". Ao invés disso, utiliza um tipo de encaixe chamado BGA (Ball Grid Array). Esse tipo é utilizado em módulos como DDR2 e DDR3 (que serão vistos à frente). AOC Página 14 Encapsulamento CSP Módulos de memória Entendemos como módulo ou, ainda, pente, uma pequena placa onde são instalados os encapsulamentos de memória. Essa placa é encaixada na placa-mãe por meio de encaixes (slots) específicos para isso. Eis uma breve descrição dos tipos mais comuns de módulos: - SIPP (Single In-Line Pins Package): é um dos primeiros tipos de módulos que chegaram ao mercado. É formato por chips com encapsulamento DIP. Em geral, esses módulos eram soldados na placa-mãe; - SIMM (Single In-Line Memory Module): módulos deste tipo não eram soldados, mas encaixados na placa-mãe. A primeira versão continha 30 terminais de contato (SIMM de 30 vias) e era formada por um conjunto de 8 chips (ou 9, para paridade). Com isso, podiam transferir um byte por ciclo de clock. Posteriormente surgiu uma versão com 72 pinos (SIMM de 72 vias), portanto, maior e capaz de transferir 32 bits por vez. Módulos SIMM de 30 vias podiam ser encontrados com capacidades que iam de 1 MB a 16 MB. Módulos SIMM de 72 vias, por sua vez, eram comumente encontrados com capacidades que iam de 4 MB a 64 MB; - DIMM (Double In-Line Memory Module): os módulos DIMM levam esse nome por terem terminais de contatos em ambos os lados do pente. São capazes de transmitir 64 bits por vez. A primeira versão - aplicada em memória SDR SDRAM - tinha 168 pinos. Em seguida, foram lançados módulos de 184 vias, utilizados em memórias DDR, e módulos de 240 vias, utilizados em módulos DDR2 e DDR3. Existe um padrão DIMM de tamanhoreduzido chamado SODIMM (Small Outline DIMM), que são utilizados principalmente em computadores portáteis, como notebooks; AOC Página 15 - RIMM (Rambus In-Line Memory Module): formado por 168 vias, esse módulo é utilizado pelas memórias Rambus, que serão abordadas ainda neste artigo. Um fato curioso é que para cada pente de memória Rambus instalado no computador é necessário instalar um módulo "vazio", de 184 vias, chamado de C-RIMM (Continuity- RIMM). Módulo de memória inserido em um slot Tecnologias de memórias Várias tecnologias de memórias foram (e são) criadas com o passar do tempo. É graças a isso que, periodicamente, encontramos memórias mais rápidas, com maior capacidade e até memórias que exigem cada vez menos energia. Eis uma breve descrição dos principais tipos de memória RAM: - FPM (Fast-Page Mode): uma das primeiras tecnologias de memória RAM. Com o FPM, a primeira leitura da memória tem um tempo de acesso maior que as leituras seguintes. Isso porque são feitos, na verdade, quatro operações de leitura seguidas, ao invés de apenas uma, em um esquema do tipo x-y-y-y, por exemplo: 3-2-2-2 ou 6-3-3-3. A primeira leitura acaba sendo mais demorada, mas as três seguintes são mais rápidas. Isso porque o controlador de memória trabalha apenas uma vez com o endereço de uma linha (RAS) e, em seguida, trabalha com uma sequência de quatro colunas (CAS), ao invés de trabalhar com um sinal de RAS e um de CAS para cada bit. Memórias FPM utilizavam módulos SIMM, tanto de 30 quanto de 72 vias; - EDO (Extended Data Output): a sucessora da tecnologia FPM é a EDO, que possui como destaque a capacidade de permitir que um endereço da memória seja acessado ao mesmo tempo em que uma solicitação anterior ainda está em andamento. Esse tipo foi aplicado principalmente em módulos SIMM, mas também chegou a ser encontrado em AOC Página 16 módulos DIMM de 168 vias. Houve também uma tecnologia semelhante, chamada BEDO (Burst EDO), que trabalhava mais rapidamente por ter tempo de acesso menor, mas quase não foi utilizada, pois tinha custo maior por ser de propriedade da empresa Micron. Além disso, foi "ofuscada" pela chegada da tecnologia SDRAM; Módulo de memória EDO - SDRAM (Synchronous Dynamic Random Access Memory): as memórias FPM e EDO são assíncronas, o que significa que não trabalham de forma sincronizada com o processador. O problema é que, com processadores cada vez mais rápidos, isso começou a se tornar um problema, pois muitas vezes o processador tinha que esperar demais para ter acesso aos dados da memória. As memórias SDRAM, por sua vez, trabalham de forma sincronizada com o processador, evitando os problemas de atraso. A partir dessa tecnologia, passou-se a considerar a frequência com a qual a memória trabalha para medida de velocidade. Surgiam então as memórias SDR SDRAM (Single Data Rate SDRAM), que podiam trabalhar com 66 MHz, 100 MHz e 133 MHz (também chamadas de PC66, PC100 e PC133, respectivamente). Muitas pessoas se referem a essa memória apenas como "memórias SDRAM" ou, ainda, como "memórias DIMM", por causa de seu módulo. No entanto, a denominação SDR é a mais adequada; Módulo de memória SDR SDRAM - Observe que neste tipo há duas divisões entre os terminais de contato - DDR SDRAM (Double Data Rate SDRAM): as memórias DDR apresentam evolução significativa em relação ao padrão SDR, isso porque elas são capazes de lidar com o dobro de dados em cada ciclo de clock (memórias SDR trabalham apenas com uma operação por ciclo). Assim, uma memória DDR que trabalha à frequência de 100 MHz, por exemplo, acaba dobrando seu desempenho, como se trabalhasse à taxa de 200 MHz. Visualmente, é possível identificá-las facilmente em relação aos módulos SDR, porque este último contém duas divisões na parte inferior, onde estão seus contatos, enquanto que as memórias DDR2 possuem apenas uma divisão; - DDR2 SDRAM: como o nome indica, as memórias DDR2 são uma evolução das memórias DDR. Sua principal característica é a capacidade de trabalhar com quatro AOC Página 17 operações por ciclo de clock, portanto, o dobro do padrão anterior. Os módulos DDR2 também contam com apenas uma divisão em sua parte inferior, no entanto, essa abertura é um pouco mais deslocada para o lado.; Memória DDR2 acima e DDR abaixo - Note que a posição da divisão entre os terminais de contato é diferente - DDR3 SDRAM: as memórias DDR3 são, obviamente, uma evolução das memórias DDR2. Novamente, aqui dobra-se a quantidade de operações por ciclo de clock, desta vez, de oito. Uma novidade aqui é a possibilidade de uso de Triple-Channel. - Rambus (Rambus DRAM): as memórias Rambus recebem esse nome por serem uma criação da empresa Rambus Inc. e chegaram ao mercado com o apoio da Intel. Elas são diferentes do padrão SDRAM, pois trabalham apenas com 16 bits por vez. Em compensação, memórias Rambus trabalham com frequência de 400 MHz e com duas operações por ciclo de clock. Tinham como desvantagens, no entanto, taxas de latência muito altas, aquecimento elevado e maior custo. Memórias Rambus nunca tiveram grande aceitação no mercado, mas também não foram um total fiasco: foram utilizadas, por exemplo, no console de jogos Nintendo 64. Curiosamente, as memórias Rambus trabalham em pares com "módulos vazios" ou "pentes cegos". Isso significa que, para cada módulo Rambus instalado, um "módulo vazio" tem que ser instalado em outro slot. Essa tecnologia acabou perdendo espaço para as memórias DDR. Finalizando Com o passar do tempo, a evolução das tecnologias de memórias não somente as torna mais rápidas, mas também faz com que passem a contar com maior capacidade de armazenamento de dados. Memórias ROM do tipo Flash, por exemplo, podem armazenar vários gigabytes. No que se refere às memórias RAM, o mesmo ocorre. Por conta disso, a pergunta natural é: quanto utilizar? A resposta depende de uma série de fatores, no entanto, a indústria não para de trabalhar para aumentar ainda mais a velocidade e a capacidade desses dispositivos. Portanto, não se espante: quando menos você esperar, vai ouvir falar de uma nova tecnologia de memória que poderá se tornar um novo padrão de mercado AOC Página 18 Memória ROM As 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, essas informações não podem ser apagadas ou alteradas, apenas lidas pelo computador, exceto por meio de procedimentos especiais. Outra característica das memórias ROM é que elas são do tipo não voláteis, isto é, os dados gravados não são perdidos na ausência de energia elétrica ao dispositivo. Eis os principais tipos de memória ROM: - PROM (Programmable Read-Only Memory): esse é um dos primeiros tipos de memória ROM. A gravação de dados neste tipo é realizada por meio de aparelhos que trabalham através de uma reação física com elementos elétricos. Uma vez que isso ocorre, os dados gravados na memória PROM não podem ser apagados ou alterados; - EPROM (Erasable Programmable Read-Only Memory): as memórias EPROM têm como principal característica a capacidade de permitir que dados sejam regravados no dispositivo. Isso é feito com o auxílio de um componente que emite luz ultravioleta. Nesse processo, os dados gravados precisam ser apagados por completo. Somente depois disso é que uma nova gravação pode ser feita; - EEPROM (Electrically-Erasable Programmable Read-Only Memory): este tipo de memória ROM também permite a regravação de dados, no entanto, ao contrário do que acontece com as memórias EPROM, os processos para apagar e gravar dados são feitos eletricamente,fazendo com que não seja necessário mover o dispositivo de seu lugar para um aparelho especial para que a regravação ocorra; - EAROM (Electrically-Alterable Programmable Read-Only Memory): as memórias EAROM podem ser vistas como um tipo de EEPROM. Sua principal característica é o fato de que os dados gravados podem ser alterados aos poucos, razão pela qual esse tipo é geralmente utilizado em aplicações que exigem apenas reescrita parcial de informações; - Flash: as memórias Flash também podem ser vistas como um tipo de EEPROM, no entanto, o processo de gravação (e regravação) é muito mais rápido. Além disso, memórias Flash são mais duráveis e podem guardar um volume elevado de dados. É possível saber mais sobre esse tipo de memória no artigo Cartões de memória Flash, publicado aqui no InfoWester; - CD-ROM, DVD-ROM e afins: essa é uma categoria de discos ópticos onde os dados são gravados apenas uma vez, seja de fábrica, como os CDs de músicas, ou com dados próprios do usuário, quando o próprio efetua a gravação. Há também uma categoria que pode ser comparada ao tipo EEPROM, pois permite a regravação de dados: CD-RW e DVD-RW e afins. AOC Página 19 QUESTIONÁRIO INDIVIDUAL 1) O que você entende por registradores? 2) O que é memória cache? Explique. 3) Qual a função da memória principal? 4) O que é memória RAM? Explique de forma sucinta os seus tipos e suas características. 5) Explique o que você entende por FPM (Fast-Page Mode)? 6) Explique o que significa temporização e latência das memórias? 7) O que é paridade? 8) Quais são os tipos de encapsulamento de memória? Cite as suas características. 9) O que são módulos de memória? 10) Explique o que é a memória ROM? Quais são os seus principais tipos. Explique. AOC Página 20 TRABALHO PARA B2 – PARTE 01 A DATA DA ENTREGA SERÁ NO DIA 22/05/2013, SEM FALTA!!!! O TRABALHO DEVERÁ ESTAR IDENTIFICADO NA CAPA DO CD COM AS SEGUINTES ESPECIFICAÇÕES: UNG – UNIVERSIDADE GUARULHOS Ciência da Computação DISCIPLINA: ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES TRABALHO – B2 - MATRÍCULA: 999999-9 NOME: XXXXXXXXXXXXXXXXXX MATRÍCULA: 999999-9 NOME: XXXXXXXXXXXXXXXXXX MATRÍCULA: 999999-9 NOME: XXXXXXXXXXXXXXXXXX MATRÍCULA: 999999-9 NOME: XXXXXXXXXXXXXXXXXX MATRÍCULA: 999999-9 NOME: XXXXXXXXXXXXXXXXXX DATA DA ENTREGA: DD/MM/AAAA
Compartilhar