2. Arquitetura de Computadores
A estrutura bem como o funcionamento dos computadores digitais são
baseados num modelo elaborado pelo matemático húngaro e cientista da
computação John von Neumann na década de 40. Este modelo é chamado de
arquitetura de von Neumann e consiste de alguns poucos elementos
interconectados, que quando considerados em conjunto constituem a forma como os
computadores atuais estão organizados.
Os principais elementos desta arquitetura são a unidade de controle (UC), a
unidade lógico-aritmética (ULA), a memória, o barramento (também chamado de
bus, em inglês) e as interfaces para dispositivos de entrada e saída (E/S). A unidade
de controle é responsável pela coordenação dos demais elementos, determinando
qual componente da arquitetura deve atuar e quando. Na ULA são realizados todos
os cálculos artiméticos bem como operações de comparação. Com a evolução da
computação, a UC e a ULA acabaram encapsuladas em um único elemento
denominado de unidade central de processamento, a UCP (ou CPU, da sigla em
inglês).
A arquitetura de von Neumann.
Os dados e as instruções do programa que está sendo executado ficam
armazenadas na memória, que é acessada pela CPU através do barramento. A CPU
1
ULA UC
CPU
MEMÓRIA
Barramento do sistema
Barramento de E/S
Periféricos
busca na memória tanto as instruções que deve executar como os dados associados
a estas instruções, e pode também armazenar na memória o resultado da
computação por ela realizada, como por exemplo o resultado de uma operação de
soma de dois valores que estavam nesta memória.
O barramento pode ser considerado, a grosso modo, uma série de vias
paralelas através da qual os dados, na forma de bits, são transmitidos. A quantidade
de vias paralelas (isto é, a largura do barramento) e a sua frequência de
funcionamento (ou o “ ritmo” com o qual os dados são transmitidos) são os dois
principais fatores que determinam o desempenho do barramento. Esta é uma
consideração relevante pois o desempenho do barramento exerce uma influência
muito grande no desempenho da arquitetura, uma vez que os dados e as instruções
que estão sendo executadas devem passar necessariamente pelo barramento para
irem da memória para a CPU e vice-versa.
O fato do barramento representar um fator limitante para o desempenho do
computador é conhecido como gargalo de von Neumann, e é importante ainda hoje
pois as CPUs atuais possuem uma capacidade de processamento significativamente
maior que a capacidade de vazão (ou taxa de transferência ou ainda throughput) do
barramento. Ainda com relação ao barramento, este pode ser diferenciado em dois
tipos principais: o barramento do sistema, responsável pela comunicação entre a
CPU e a memória, e o barramento de entrada e saída, dedicado a transferência de
dados com os dispositivos de entrada e saída.
Os dispositivos de entrada e saída de dados, também chamados de
periféricos, permitem que dados do meio externo sejam armazenados na memória e
processados pela CPU, e também possibilitam que dados armazenados sejam
apresentados ao meio externo. O monitor e a impressora são dois exemplos de
dispositivos de saída de dados, enquanto que o scanner, o teclado, o mouse, o
microfone e a webcam são exemplos de dispositivos de entrada de dados. Com a
evolução tecnológica alguns dispositivos assumem o papel tanto de entrada como
de saída de dados, como é o caso de telas de monitor sensíveis ao toque
(touchscreens). Nas seções a seguir serão detalhados os principais componentes
desta arquitetura.
2
A memória
A memória é o dispositivo responsável pelo armazenamento dos dados que
participam da computação. A memória pode ser classificada inicialmente como
sendo primária (ou principal) ou então secundária (também chamada de auxiliar ou
ainda memória de massa). A memória principal é aquela que via de regra é
implementada por chips presentes na placa-mãe ou em pentes de memória enquanto
que a memória secundária é representada por meios de armazenamento magnético
(como em discos rígidos), ótico (como no CD e no DVD) ou estado sólido (como
na memória Flash e unidades SSD). Nesta seção será focada a memória primária.
Com relação a memória principal, pode-se distinguir dois tipos de memória,
no que diz respeito a volatilidade dos dados: na memória RAM (Random Access
Memory), os dados somente são mantidos pelos circuitos de memória enquanto
estes forem supridos com energia elétrica; já na memória do tipo ROM (Read Only
Memory) não é necessário este suprimento de energia elétrica, não havendo perda
de dados caso seja interrompido este suprimento.
Outra diferença importante entre estes dois tipos de memória é que a
memória RAM pode ter seu conteúdo modificado constantemente, sendo por isto
usada para armazenar as instruções que a CPU deve executar, por exemplo. A
memória ROM geralmente não pode ter seu conteúdo modificado, sendo este
gravado “em fábrica”. Com o tempo surgiram variações de memória ROM que
permitem que esta tenha seu conteúdo alterado, mas neste caso o processo de
gravação é bem mais lento e complexo se comparado com a escrita em memória
RAM.
De maneira simplificada, a comunicação entre CPU e memória ocorre
através de um barramento, onde parte de suas vias é encarregada do tráfego de
dados, outra parte é responsável pelo tráfego de endereços de memória e um
terceiro conjunto de vias transmite informações de controle. Cada posição da
memória é referenciada por um endereço, sendo que neste endereço de memória
está armazenado um valor resultado de uma computação realizada pela CPU, por
exemplo.
3
Os diferentes grupos de vias do barramento: dados, endereços e controle.
Caso a CPU deseje armazenar na memória um dado resultante de uma
computação, ela irá colocar o dado na parte de dados do barramento, enquanto que
na parte de endereço ela irá colocar a posição onde este dado deve ser armazenado
na memória e nas vias de controle a CPU colorá a informação de que esta é uma
operação de escrita na memória.
A título de exemplo, se a parte de endereços do barramento for composta
por 20 vias, então a memória só poderá ter 220 (isto é, um mega) posições
endereçáveis, sendo o endereço inicial correspondente a posição zero e o último
endereço correspondente a posição 1048575, de um total de 1048576 endereços de
memória (ou um mega posições de memória).
A memória ROM
A primeira forma de ROM desenvolvida foi a ROM de estado sólido, onde
os circuitos já eram configurados durante sua fabricação para codificar (representar)
os dados. Um conteúdo tipicamente gravado em ROM é o firmware, que
geralmente representa um programa e dados voltados para o controle de
dispositivos eletrônicos. A memória PROM (Programmable ROM) desenvolvida no
meio da década de 50 permite que o conteúdo da memória seja modificado através
de pulsos elétricos de alta voltagem, embora este processo só possa ser realizado
uma única vez.
No início da década de 70, um avanço importante foi o desenvolvimento da
EPROM (Erasable PROM) que pode ter seu conteúdo apagado através do uso de
4
CPU
MEMÓRIA
vias de endereço
vias de controle
vias de dados
BARRAMENTO
luz ultravioleta. O processo de apagamento implica no uso de uma lâmpada que
emitirá este tipo de luz através de uma pequena janela (de quartzo) no chip, por
onde os circuitos de memória ficam expostos a radiação eletromagnética. A
gravação é realizada também com o uso de pulso elétricos de alta voltagem. Uma
vez concluída a gravação, a janela é coberta com material opaco a fim de preservar
o conteúdo da memória.
Um chip de memória EPROM.
A memória EEPROM (Electrically Erasable PROM) ou E2PROM, permite
que o contéudo seja regravado diversas vezes, sem haver a necessidade do uso de
luz ultravioleta, empregando-se somente pulsos elétricos da ordem de 12 a 20 V.
Uma forma mais recente de EEPROM desenvolvida na década de 80 pela Toshiba é
a memória Flash. É baseada no uso de portas lógicas do tipo NOR ou NAND, e
permite no seu atual estágio de desenvolvimento até um milhão de regravações. É
muito popular como dispositivo de memória de massa na forma de pendrives, por
exemplo.
A BIOS (Basic Input Output
System) é um exemplo de chip de
memória ROM presente nas placas-mãe
dos microcomputadores, e que contém
uma série de rotinas básicas de gravação e
leitura em dispositivos periféricos (como a
5
Um chip de BIOS da AMI
rotina de escrita de um caracter na tela do console em modo texto, por exemplo). A
BIOS possui também uma rotina chamada POST (Power On Self Test) que é
responsável pelo auto teste do hardware do computador no momento em que este é
ligado, identificando a configuração da máquina, inicializando o chipset da placa-
mãe, detectando quanto de memória RAM está instalada, verificando se o teclado
está conectado, iniciando a carga do sistema operacional (se houver), etc.
O programa de Setup é outro elemento que faz parte da BIOS e é através
dele que o usuário pode configurar alguns aspectos importantes do funcionamento
do computador, como a frequência de funcionamento de alguns dispositivos como
barramentos e memórias, embora esta capacidade de configuração dependa de
diversos fatores e os fabricantes a tenham diminuído significativamente nos últimos
anos.
A tela de Setup de uma BIOS AMI .
Os dados da configuração do Setup são geralmente armazenados em
memória CMOS presente na placa-mãe (integrada a chipset), e que é usualmente
alimentada por uma bateria. A memória CMOS (Complementary Metal-Oxide-
Semiconductor) foi desenvolvida na década de 60 e tem como características
6
relevantes o baixo consumo de energia e uma alta imunidade a ruídos, sendo
também empregada para a implementação de memórias SRAM.
Os principais fabricantes de chips BIOS (AMI-American Megatrends,
Phoenix e Award) deixaram de empregar a tecnologia ROM clássica para ao
longo dos anos migrar para as EPROMs (década de 80 e primeira metade da década
de 90) e finalmente para a tecnologia Flash. Isto confere uma flexibilidade maior
para o usuário final, que pode com o auxilio de software específico (flasher)
atualizar a BIOS de seu computador para a versão mais recente disponibilizada pelo
fabricante.
A especificação SMBIOS (System Management BIOS) define rotinas e
estruturas de dados que devem ser suportadas pela BIOS de tal modo que um
aplicativo possa solicitar informações de configuração para a BIOS, que irá
fornecer estes dados para o programa solicitante, permitindo desta forma um
gerenciamento automatizado do computador. Antes da SMBIOS este conjunto de
rotinas era padronizado através de outra especificação denominada DMI (Desktop
Management Interface).
A partir dos computadores equipados com CPU 80386 passou a ser utilizada
uma técnica conhecida como shadowing, onde o conteúdo da BIOS era copiado
para uma porção da memória RAM (mais rápida que a ROM), e toda vez que
rotinas da ROM (isto é, da BIOS) tivessem que ser executadas, eram chamadas as
cópias encontradas nesta região da memória RAM.
A memória RAM
Uma das primeiras formas de implementação de memória RAM deu-se
através das memórias de núcleo de ferrite desenvolvidas no final da década de 40,
que empregavam pequenos anéis de cerâmica perpassados por finos fios de cobre.
Apesar de possuir um desempenho inferior se comparada às tecnologias posteriores
como a RAM dinâmica, a memória de núcleo de ferrite foi empregada até meados
dos anos 80, devido ao fato de ser uma memória não volátil e ser também bastante
7
imune a radiação. Os tempos de acesso chegaram a ser de 600 ns nas
implementações da década de 70.
Uma matriz de memória RAM de núcleo de ferrite com 1 KB.
Com o abandono progressivo das memórias de núcleo de ferrite e a adoção
maciça dos chips baseados em silício a tecnologia de memórias RAM desembocou
nas memórias SRAM (Static RAM) e DRAM (Dynamic RAM). Alguns conceitos
são importantes no contexto destas tecnologias:
Tempo de acesso : é o tempo decorrido desde o momento em que o circuito
de memória recebe o endereço a ser acessado até o momento em que o dado
correspondente a este endereço esteja disponibilizado nas vias de dados do
barramento do sistema. Geralmente é medido em nanosegundos (1 nano
segundo corresponde a 1 bilionésimo de segundo);
Operação de refresh : as informações armazenadas em células de memória
DRAM necessitam ser reforçadas periodicamente ( a cada poucos
milisegundos) através de cargas elétricas, caso contrário o conteúdo desta
células é perdido.
Wait states : as primeiras gerações de memória DRAM tinham um tempo de
acesso muito alto, o que obrigava a CPU a suspender suas operações
8
durantes alguns ciclos (chamados então de wait states) para permitir que os
circuitos de memória conseguissem fornecer os dados solicitados pela CPU.
Tempo de ciclo: é o tamanho do ciclo, medido em nanosegundos; se um
barramento funciona a 100 MHz, seu tempo de ciclo é de 1/100000, o que
corresponde a 100 ns; já se a frequência for de 166 MHz, o tempo de ciclo
será de aproximadamente 6ns.
Chips de memória são atualmente montados nos chamados pentes de memória,
e são organizados em módulos. Por exemplo: numa memória descrita como sendo
8 x 32, o número 8 indica a quantidade de chips encontrada no módulo enquanto
que o número 32 indica a capacidade de cada chip (usualmente em mega ou
gigabits). Neste caso específico, este pente possui 8 vezes 32 megabits, ou seja, 8
vezes 4 megabytes, o que resulta num pente de 32 megabytes.
Encapsulamentos
Ao longo da evolução da tecnologia de memórias, diversas formas de
encapsulamento físico foram desenvolvidas, incluíndo desde o formato DIP até as
variantes do formato DIMM e RIMM empregadas atualmente.
DIP (Dual in-line package) : é a forma mais antiga de empacotamento de
memória; foi empregada nas linhas IBM PC, XT e AT; eram chips
encaixados em soquetes apropriados na placa-mãe.
Memória com encapsulamento DIP
SIPP (Single in-line pin package): empregado nos computadores que
utilizavam microprocessadores 80286 e 80386, possuindo pinos dispostos
em linha para encaixe na placa-mãe.
9
Memória com encapsulamento SIPP
ZIP (Zig-zag in-line package): muito semelhante ao encapsulamento SIPP,
mas já possuindo chips com uma densidade mais alta e portanto de maior
capacidade, necessitando um número maior de pinos; isto foi solucionado
através de uma disposição em zig-zag dos pinos; foi empregado nos últimos
ATs e primeiros 80386.
SIMM (Single in-line Memory Module): os pinos foram substituídos por
terminais elétricos; existiram em duas versões, de 30 terminais (80386 e
primeiros 80486) e 72 terminais (80486 e primeiras gerações Pentium);
possuiam capacidade de 256 KB a 12 MB para pentes de 30 vias e de 1 MB
a 64 MB para pentes de 72 vias. Os pentes de 30 vias possuiam 8 bits na
parte de dados do barramento, enquanto que pentes de 72 vias possuiam 32
bits para o barramento de dados.
Acima um pente SIMM-30 vias e abaixo um pente SIMM-72 vias
DIMM (Double in-line Memory Module): em um pente DIMM há 168
terminais elétricos; com este tipo de encapsulamento foram fabricados os
primeiros módulos de memória com tecnologia SDRAM (DRAM
síncrona), correspondendo aos padrões PC-66, PC-100 e PC-133). Nestes
10
pentes há normalmente a presença de um pequeno chip E2PROM,
denominado SPD (Serial Presence Detect), responsável pelo
armazenamento de informações de configuração dos módulos de memória,
como o tipo do padrão (PC-100, por exemplo) e tempos de latência. A
capacidade de um pente DIMM varia entre 8 MB e 256 MB. Possuem 64
bits na parte de dados do barramento.
Um pente DIMM (168 vias); em destaque, chip SPD.
DDR-DIMM (Double Data Rate DIMM): são pentes com 184 terminais
(DDR) ou 240 terminais (DDR2 e DDR3) que utilizam tecnologia DDR
SDRAM. Este tipo de pente possui um chanfrado duplo nas suas laterais
que o diferenciam de um pente DIMM convencional. Podem apresentar
capacidades de armazenamento da ordem de gigabytes.
Um pente DDR (184 vias); em destaque, chanfrados.
Uma variante empregada principalmente em computadores servidores são
pentes de memória com buffers, denominados buffered, fully buffered (FB-DIMM)
ou registered DIMMs. Os chips adicionais (que exercem o papel de buffer) isolam
11
os demais chips de memória do pente dos circuitos do barramento, o que permite
uma maior escalabilidade aos módulos de memória, pois a interface com o
barramento de memória permanece inalterada, uma vez que é projetada para
comunicar-se com os buffers. O custo de pentes com buffer é maior do que o de
módulos convencionais (sem buffer); além disso, o desempenho de módulos com
buffer tende a ser menor, pois em função dos buffers as operações de escrita e
leitura em meória tornam-se mais complexas, e consequentemente mais
demoradas.
Pente registered DIMM
RIMM (Rambus in-line Memory Module): pente com módulos de memória
utilizando tecnologia licensiada pela empresa Rambus Inc.(atualmente é
uma subsidiária da Intel); possuem 184 terminais e seus pentes devem
sempre ocupar todos soquetes de memória disponíveis na placa-mãe. Caso
isto não aconteça é necessária a utilização de pentes do tipo C-RIMM
(Continuity RIMM) nos soquetes vagos. Há versões com 16 e 32 bits na
parte de dados do barramento.
Um pente RIMM de 128MB
SO-DIMM (Small Outline DIMM) e MicroDIMM: são encapsulamentos
empregados em computadores portáteis (laptops), possuindo dimensões
12
reduzidas. O encapsulamento SO-DIMM possui versões com 72, 100 e 144
terminais (DIMMs convencionais) e 200 e 204 terminais nas versões com
tecnologia DDR. O encapsulamento MicroDIMM possui versões com 172
e 214 terminais (DDR2).
Um pente SO-DIMM
Pente SDRAM MicroDIMM 256 MB PC133
Pente DDR2-533 MicroDIMM
Bancos de memória
Um banco de memória é constituído por um grupo de módulos de memória,
que quando considerados em conjunto, possuem a mesma largura na parte de dados
do barramento que o barramento de dados da CPU. Uma placa-mãe pode por sua
vez disponibilizar uma série de bancos de memória, que devem então ser
13
preenchidos adequadamente com pentes de memória de tal forma que a restrição
acima seja satisfeita.
Como exemplo, observe-se os dois casos a seguir:
O processador 80486 possui um barramento externo de dados com 32
bits de largura (isto é, com 32 vias); neste caso, para completar um
banco de memória são necessários quatro pentes SIMM-30 vias (cada
pente SIMM-30 possui 8 bits na parte de dados do barramento) ou então
somente um pente SIMM-72 vias, pois este possui 32 bits de largura no
seu barramento de dados.
O processador Pentium já nas suas primeiras gerações possuia um
barramento externo de 64 bits; neste caso, para completar um banco
seriam necessários dois pentes SIMM-72 vias ou então somente um
pente DIMM-168 vias.
O uso de bancos de memória é interessante do ponto de vista do
desempenho porque acelera o acesso a dados sequênciais. Se num banco de
memória está o primeiro byte a ser lido, num outro banco está localizado o byte
consecutivo, o que livra o processo de leitura de tempos de espera obrigatórios
quando se trata de acessos dentro de um mesmo banco.
Memórias SRAM (Static RAM)
Normalmente implementadas com transistores, este tipo de memória não
necessita de operações de refresh para manter seu conteúdo pois não havendo
capacitores envolvidos não há perda de informação ao longo do tempo (isto é,
enquanto os circuitos forem alimentados eletricamente). A figura abaixo ilustra a
estrutura de uma célula de memória SRAM capaz de armazenar 1 bit de
informação, e onde pode-se notar a presença de 6 transistores, geralmente utilizando
a tecnologia MOSFET (metal–oxide–semiconductor field-effect transistor), que é
uma das formas mais comuns de implementação de transistores em circuitos
integrados.
14
Uma célula de memória SRAM com um dos transistores em destaque (Imagem
de domínio público)
Em comparação com células de memória RAM dinâmicas (DRAMs), uma
célula SRAM ocupa mais espaço mas é bem mais rápida, permitindo tempos de
acesso muito baixos, inferiores a 10 ns. Memórias SRAM são usadas
principalmente como memória cache, permitindo que dados muito acessados na
RAM sejam disponibilizados em uma memória mais rápida que a DRAM. Seu
custo também é maior que o de memórias DRAM. Pode aparecer em chips na
placa-mãe (cache L3 e L4) ou então dentro da própria CPU (caches do tipo L1 e
L2).
Quando se trata de cache externo, são duas as formas mais comuns de se
encontrar este tipo de memória: ou em chips com encapsulamento DIP conectados
em soquetes ou soldados diretamente na placa-mãe ou então utilizando um módulo
de memória COAST (Cache On A Stick), similar a um pente SIMM-72 vias,
conectado a um soquete próprio próximo a CPU.
Memórias DRAM (Dynamic RAM)
As RAM dinâmicas foram desenvolvidas a partir do meio da década de 60
por engenheiros da IBM e Toshiba. Possuem uma estrutura mais simples que as
memórias SRAM, armazenando 1 bit de informação através da combinação de um
capacitor e um transistor. A figura abaixo apresenta uma célula DRAM, completa
com dois transistores de acesso.
15
Uma célula de memória DRAM com o capacitor em destaque (Imagem de domínio
público)
Pelo fato do estado (valor) do bit ficar armazenado no capacitor, e este ser
um componente que retém carga durante um período limitado de tempo, memórias
DRAM necessitam executar operações periódicas de refresh para reestabelecer seu
conteúdo. Seu tempo de acesso é significativamente maior que o de memórias
SRAM. No início da década de 90, chips de memória DRAM convencionais
apresentavam tempos de acesso da ordem de 120 ns, evoluíndo em poucos anos
para tempos em torno de 50 e 60 ns, enquanto que chips SRAM apresentavam no
mesmo período tempos de acesso de 6 a 9 ns.
Em chips de pentes DRAM convencionais geralmente vinha impresso seu
tempo de acesso, na forma de um número precedido por um traço ou barra, como na
figura abaixo.
Chip de memória DRAM com tempo de acesso em destaque.
16
As células de memória DRAM são organizadas em formato matricial, em
linhas e colunas, e na intersecção de cada linha e coluna há uma célula (1 bit). O
funcionamento de um módulo de memória DRAM é ditado pelo controlador de
memória e envolve dois sinais denominados RAS (Row Address Strobe) e CAS
(Column Address Strobe). Quando o controlador recebe o endereço a ser acessado,
este endereço é convertido para um endereço de linha e um endereço de coluna. A
figura a seguir apresenta este esquema:
Organização e funcionamento da DRAM.
O processo de conversão de endereço é realizado em etapas através do
disparo pelo controlador dos sinas RAS e CAS, como apresentado a seguir:
17
célulasde
memória
Write Enable
• Barramento de endereço recebe a posição a ser acessada;
• Sinal RAS é ativado, o que coloca o endereço de linha no Latch de
endereço de linha;
• O decodificador de endereço de linha seleciona a linha da matriz de
células de memória que deve ser acessada;
• Se for uma operação de escrita, o sinal Write Enable (habilitação de
escrita) estará ativado; se for uma operação de leitura este sinal é
desativado;
• Sinal CAS é ativado, e o endereço de coluna é colocado no Latch de
endereço de coluna;
• Assim que o sinal CAS esteja estabilizado, o dado correspondente a
linha e colunas selecionadas é colocado no barramento de dados
(Data Bus), no caso de uma operação de leitura; se for uma operação
de escrita, o dado presente no barramento de dados é armazenado nas
células da linha e colunas selecionadas; estas operações são
realizadas pelo circuito de Sensores e Amplificação;
• Os sinais RAS e CAS são desativados, a fim de que um novo ciclo
de leitura/escrita possa ser realizado.
O diagrama apresentado a seguir ilustra esta sequência de eventos:
18
Diagrama de temporização de memórias DRAM
Os seguintes atrasos (delays) constituem um ciclo de acesso a memória:
• tRCD: é o RAS to CAS delay time; é o intervalo de tempo após a ativação
RAS quando o CAS é ativado; o valor do endereço de coluna já deve estar
estabilizado nas linhas de endereço;
• tRAH: é o address hold time; é o tempo necessário que o endereço de linha
deve ser mantido (retido) após a ativação do sinal RAS;
• tCAC: é o Tempo de Acesso de Coluna, que corresponde ao delay mínimo
entre o momento em que o sinal CAS é ativado e o momento em que o dado
está disponível no Data Bus;
• tRAC: é o Tempo de Acesso de Linha e corresponde ao tempo mínimo
necessário de espera entre o momento em que o sinal RAS é ativado e o
momento em que o dado desejado está no Data Bus.
Outros atrasos devem também ser considerados quando se trata da
temporização de memórias DRAM. Um tipo de atraso é o que deve existir entre
dois acessos consecutivos a memória DRAM. Este atraso é necessário pois como
as células de memória trabalham com capacitores estes consomem um certo tempo
para carga e descarga. Os atrasos denominados RAS precharge delay (tRP) e CAS
precharge delay (tCP) são os tempos mínimos necessários para que estes sinais
19
Dado disponível no Data Bus (se for operação de leitura)
tRCD
tRAC
ROW COL
DADO
tRAH
tCAC
Ativação RAS
Ativação CAS
Desativação RAS e CAS
RAS precharge
CAS precharge
possam ser novamente ativados. Estes tempos de pré-carga ocorrem logo após estes
sinais serem desativados.
Uma das técnicas empregadas para acelerar o funcionamento das memórias
dinâmicas foi o uso de memória paginada (Page Mode RAM), onde a memória é
dividida em seções (páginas) de, por exemplo, 2 KB ou 4 KB. Os circuitos do
controlador foram otimizados de tal forma que quando dados são acessados dentro
de uma mesma página não havia a necessidade da introdução de tempos de espera
(wait states), que só ocorriam quando era preciso acessar dados de diferentes
páginas.
A memória DRAM convencional possui uma interface assíncrona com o
barramento do sistema (que a comunica com a CPU). Isto significa que os circuitos
de memória funcionavam o mais rápido que podiam mas sem estarem atrelados ao
clock do barramento do sistema, uma vez que este era mais rápido que a memória,
assim como a CPU que também trabalhava numa frequência bem superior aos
circuitos de memória. Neste contexto, os tempos de acesso dos módulos de
memória eram fornecidos em nanosegundos. Com o advento da DRAM síncrona,
cuja frequência de operação (na interface) era a mesma do barramento do sistema,
deixou-se de utilizar uma medida de tempo (como o nanosegundo) para quantificar
o tempo de acesso, sendo este agora representado por ciclos de clock.
A evolução tecnológica de memórias dinâmicas começou a ocorrer de forma
mais acentuada a partir do fim da década de 80 e se estendeu por toda década de 90.
Diversas melhorias foram sendo introduzidas, resultando nas variantes conhecidas
como FPM, EDO, BEDO, SDRAM, DDR SDRAM e Rambus DRAM, e que são
discutidas a seguir.
FPM DRAM (Fast Page Mode DRAM): Esta tecnologia foi empregada até o meio
da década de 90. A FPM existe em módulos SIMM-72, com capacidades de 2, 4, 8,
16 e 32 MB. Seu diferencial era manter o último endereço de linha acessado, o que
acelerava acesso posteriores feitos a mesma linha de células de memória. O
primeiro acesso (a uma linha) envolvia uma quantidade de ciclos maior que os
20
acessos subsequentes a mesma linha. No caso da FPM, uma linha de células
equivale a uma página, daí a denominação Fast Page Mode.
Como exemplo, no caso do barramento trabalhando a 66 MHz, poderiamos
ter os módulos de memória FPM operando com 6-3-3-3, ou seja 6 ciclos para o
primeiro acesso e 3 ciclos para cada um dos 3 acessos (na mesma linha) posteriores;
com 66 MHz o tempo de ciclo é de 15 ns, e 6 ciclos correspondem portanto a 90 ns
(o tempo de acesso). O tempo total levando em conta os 4 acessos seria de 90 ns +
(3 vezes 45 ns), o que corresponde a 225 ns. Comparando com uma DRAM
convencional, esta operaria com ciclos 6-6-6-6, correspondendo a um tempo total
de 360 ns.
EDO DRAM (Extended Data Out DRAM): é resultado de uma modificação nas
memórias FPM, que permite manter o conteúdo de uma leitura de dados no
barramento de saída do chip enquanto o acesso seguinte já é iniciado pela CPU.
Disponível em módulos SIMM-72 e DIMM-168. Essa modificação permite um
ganho médio de desempenho de 10% em relação aos módulos FPM.
Supondo uma frequência de 66 MHz, se em um pente FPM a ciclagem fosse
6-3-3-3, em um pente EDO poderíamos ter 6-2-2-2, num total de 3 pulsos de clock
a menos. Os módulos de memória EDO operavam com tempos de acesso de até 50
ns. As memórias BEDO (Burst EDO) contavam com um controlador um pouco
mais sofisticado, só demandando gasto de tempo para acessar o primeiro dado, pois
os 3 dados seguintes eram automaticamente disponibilizados pelo controlador no
Data Bus de saída, o que gerava um ganho de tempo para acessos sequenciais da
ordem de até 20% em relação a memórias EDO.
SDRAM (Synchronous DRAM): No fim da década de 90 surgiram os módulos com
tecnologia SDRAM. Este tipo de memória trabalha com a mesma frequência do
barramento do sistema.
PC-66: São memórias SDRAM de até 10ns que trabalhem a 66MHz.
PC-100: trabalham na freqüência de operação 100 MHz e com tempo de
acesso de 8 ns ou inferior.
21
PC-133: São SDRAM que operam na frequência de 133MHz.
DDR SDRAM (Double Data Rate SDRAM): As memórias do tipo DDR (Double
Data Rate) são baseadas numa nova tecnologia que permite a transmissão de dados
tanto na borda de subida como na borda de descida da onda correspondente ao sinal
de clock, o que na prática permite que a largura de banda (capacidade de
tranferência) seja o dobro em relação as memórias SDRAM convencionais.
A título de exemplo, o módulo de DDR-200 trabalha com um clock de 100
MHz, mas como possui um aproveitamento superior da onda do sinal de clock,
atinge o desempenho que seria o correspondente a uma memória SDRAM
convencional que funcionasse (hipoteticamente) a 200 MHz. Daí o módulo ser
batizado de DDR-200. Na tabela a seguir pode-se observar as principais
características de algumas configurações típicas de módulos DDR.
Denominação
do móduloClock real da memória
Tempo
de ciclo
Taxa de
transferência
Denominação
do padrãoDDR-200 100 MHz 10 ns 1600 MB/s PC-1600DDR-266 133 MHz 7,5 ns 2100 MB/s PC-2100DDR-333 166 MHz 6 ns 2700 MB/s PC-2700DDR-400 200 MHz 5 ns 3200 MB/s PC-3200
Denominação
do módulo
Clock real da
memória
Clock do
barramento
Tempo de
ciclo
Taxa de
transferência
Denominação
do padrãoDDR2-400 100 MHz 200 MHz 10 ns 3200 MB/s PC2-3200DDR2-533 133 MHz 266 MHz 7,5 ns 4266 MB/s PC2-4200DDR2-667 166 MHz 333 MHz 6 ns 5333 MB/s PC2-5300DDR2-800 200 MHz 400 MHz 5 ns 6400 MB/s PC2-6400DDR2-1066 266 MHz 533 MHz 3,75 ns 8533 MB/s PC2-8500
22
Denominação
do módulo
Clock real da
memória
Clock do
barramento
Tempo de
ciclo
Taxa de
transferência
Denominação
do padrão DDR3-800 100 MHz 400 MHz 10 ns 6400 MB/s PC3-6400DDR3-1066 133 MHz 533 MHz 7,5 ns 8533 MB/s PC3-8500DDR3-1333 166 MHz 667 MHz 6 ns 10667 MB/s PC3-10600DDR2-1600 200 MHz 800 MHz 5 ns 12800 MB/s PC3-12800
RDRAM (Rambus DRAM): A tecnologia RDRAM emprega um padrão de
barramento proprietário. A arquitetura interna dos circuitos difere das demais pois
não utiliza uma única matriz dos capacitores e sim 16 matrizes de capacitores,
possibilitando a leitura e escrita simultânea de até 16 dados por circuito. Como
exemplo, pode possuir uma taxa de transferência de 1,6GB/s em CPUs que operam
com o barramento do sistema na frequência de 200 MHz.
23
Top Related