Forum Pplware

Versão Completa: Clocks e DDR
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
A minha dúvida é porque memórias DDR2 e DDR3 tem clocks internos 2x e 4x ,respetivamente , superiores ao clocks do barramento enquanto que memórias DDR1 tem esses 2 clocks iguais?

As memórias, assim como outros componentes do computador, têm dois clocks distintos: o clock interno e o clock externo (ou barramento). Nas memórias DDR, o clock externo é maior que o clock interno, isto ocorre devido à tecnologia DDR. Porém, esses 2 tipos de clock só são diferentes a partir das memórias DDR2. Não percebo porque as memórias DDR1 têm esses dois valores iguais.
Reparem nos campos 'Memory clock' e 'I/O bus clock' das tabelas:
DDR1
DDR2
DDR3

Já procurei sobre o assunto mas até agora não consegui perceber. Li estes sítios falam sobre memórias DDR:
http://www.clubedohardware.com.br/artigo...DR3/1046/5
http://www.tecmundo.com.br/1775-o-que-e-ddr-.htm
Viva,

Sinceramente nunca estudei esse detalhe mas tanto quanto percebi a resposta esta nos links que disponibilizaste

Citar:DDR SDRAM gives a transfer rate of (memory bus clock rate) × 2 (for dual rate) × 64 (number of bits transferred) / 8 (number of bits/byte)

Citar:DDR2 allows higher bus speed and requires lower power by running the internal clock at half the speed of the data bus. The two factors combine to require a total of four data transfers per internal clock cycle. With data being transferred 64 bits at a time, DDR2 SDRAM gives a transfer rate of (memory clock rate) × 2 (for bus clock multiplier) × 2 (for dual rate) × 64 (number of bits transferred) / 8 (number of bits/byte). Thus with a memory clock frequency of 100 MHz, DDR2 SDRAM gives a maximum transfer rate of 3200 MB/s.

Citar:DDR3 SDRAM gives a transfer rate of (memory clock rate) × 4 (for bus clock multiplier) × 2 (for data rate) × 64 (number of bits transferred) / 8 (number of bits/byte)

Na memoria DDR nao tens multiplicador dai a "memoria interna" (aka Memory clock) ser igual a "memoria externa" (aka I/O bus clock).
Esse multiplicador deve-se a latencia:

Citar:DDR2's bus frequency is boosted by electrical interface improvements, on-die termination, prefetch buffers and off-chip drivers. However, latency is greatly increased as a trade-off. The DDR2 prefetch buffer is 4 bits deep, whereas it is two bits deep for DDR and eight bits deep for DDR3. While DDR SDRAM has typical read latencies of between 2 and 3 bus cycles, DDR2 may have read latencies between 4 and 6 cycles. Thus, DDR2 memory must be operated at twice the data rate to achieve the same latency
Abrigado pela tua resposta.
Mas agora o que é esse multiplicador e donde é que ele vem?

Também tem uns sítios que dizem que as DDR1 têm clock externo (barramento ou bus) igual ao clock interno (e DDR2 tem 2x e DDR3 4x) e outros que dizem que DDR1 têm o clock do barramento 2x o clock interno (e DDR2 tem 4x e DDR3 8x).
Por exemplo, nas tabelas que tem nos links da Wikipedia apontam o primeiro caso. O mesmo para este sítio: http://www.tecmundo.com.br/1775-o-que-e-ddr-.htm que para além das tabelas explicita:
Citar:Um pente de memória DDR2 transmite 4 dados por ciclo de clock, o que permite, na teoria, a velocidade de transmissão dobre, comparando com a DDR1. Nesta versão, a frequência do barramento vale o dobro do clock da memória, possibilitando que dois dados sejam transmitidos na borda de subida e outros dois na borda de descida. Nas memórias DDR versão 1, ambas frequências eram as mesmas.

Neste sítio, já é dito que o clock do barramento de memórias DDR1 é 2x do clock interno da memória e as DDR2 é 4x e DDR3 é 8x. Também é dito que
Citar:O esquema de nomenclatura DDRx-yyyy (onde x é a geração da tecnologia e yyyy é o clock da memória DDR) em teoria é usado apenas para os chips de memória.
Não acho que o yyyy seja o clock da memória DDR. Na lógica desse site, bate certo yyyy ser o clock da memórias DDR, mas isso contradiz o que está na wikipédia e no tecmundo.com.br.

Então quem está certo? E continuo com a minha dúvida em relação ao clock DDR1 se a wikipedia estiver certa: porque é que esses clocks são iguais na DDR1 e diferentes para outras gerações DDR?
Viva,

Acho que a leitura mista de ingles e brasileiro confunde as coisas.

Parece-me que e' a wikipedia que nao esta a apresentar bem os dados.

Citar:The interface uses double pumping to lower the clock frequency. The name "double data rate" refers to the fact that a DDR SDRAM with a certain clock frequency achieves nearly twice the bandwidth of a single data rate (SDR) SDRAM running at the same clock frequency, due to this double pumping.

Por exemplo: se o clock interno (memory clock) e' de 100Mhz o clock externo (bus clock ou I/O clock) sera de 200Mhz, devido a tecnologia double pumping, isto comparando a memoria DDR1 com o seu antecessor, SDRAM.

A memoria DDR1, comparando com a SDRAM, passa 2 dados em simultaneo (usando apenas um ciclo). Por sua vez a memoria DDR2 passa 4 dados em apenas um ciclo (o dobro comparando com a DDR1) e por ultimo a DDR3 passa 8 dados por ciclo (2xcomparando com DDR2; 4xcomparando com DDR1)

O multiplicador que e' falado na wikipedia e' derivado de uma comparacao de DDR2 com DDR1 e DDR3 com DDR1.

O calculo e' feito pela seguinte formula:

Taxa de Transferência para DDR1 = clock interno (memoryclock) x 2 (double pumping) x 8 (DDR trabalha com 64 bits por segundo, ou seja, 8 bytes)

Taxa de Transferência para DDR2 = clock interno (memoryclock) x 4 (ou seja, 2xdouble pumping) x 8 (DDR trabalha com 64 bits por segundo, ou seja, 8 bytes)

Taxa de Transferência para DDR3 = clock interno (memoryclock) x 8 (ou seja, 4xdouble pumping) x 8 (DDR trabalha com 64 bits por segundo, ou seja, 8 bytes)[/b]
Muito obrigado brunoantunes pela tua resposta.
Com ela respondes à questão do multiplicador, mas ainda fico na dúvida que sítio está correto (wkipedia e tecmundo.com.br vs clubedohardware.com.br) e em relação à questão específica do clock interno (memory clock) vs clock externo (I/O bus clock ou clock do barramento) das memórias DDR1 que é a dúvida que me levou a abrir o tópico (pois na wikipedia e no tecmundo.com.br é dito que esses clock têm um mesmo valor e só é deferente para gerações superiores, enquanto que no clubedohardware.com.br é dito que o bus clock = 2 x memory clock).
Agradeço qualquer ajuda para clarificar o assunto.
Pelo que percebi sera mesmo a wikipedia que esta em erro mas apenas no grafico.

Tal como eles proprio dizem (clock frequency achieves nearly twice the bandwidth), se ambos os clocks estivem com a mesma frequencia, entao o barramento na DDR1 sera o dobro da SDRAM. Logo o grafico nao esta correcto (o mesmo digo para o grafico na DDR2 e DDR3)

Julgo que quem escreveu isso nao se apercebeu desse detalhe.

O site do tecmundo (e a wikipedia) esta de acordo com o clubedohardware. O que eles se referem com "Dados por segundo", e' na verdade o clock de barramento.

A unica coisa que difere e' mesmo o grafico presente na wikipedia.
Não sei se percebi bem, mas não consigo encontrar o erro nas tabelas da wikipedia que te referes. Acho que estás a pensar que, na wikipedia, a tabela da DDR1 compara DDR1 com SDRAM e a tabela da DDR2 compara DDR2 com DDR1 e assim por adiante, foi o que percebi do que disseste, mas não é assim. a tabela refere-se apenas à geração de memória que está no título da página.
Parece-me que as tabelas da wikipedia estão em conformidade com as tabelas do tecmundo.com.br

Citar:O site do tecmundo (e a wikipedia) esta de acordo com o clubedohardware. O que eles se referem com "Dados por segundo", e' na verdade o clock de barramento.
Bruno, acho que isso não é verdade. O tecmundo uso 'Taxa de Barramento (em MHz)' para designar o clock de barramento e 'Dados por segundo' é outra coisa como aparece nas tabelas. Podes ver que essa coluna não aparece na tabela referente ao DDR1, pois ,como o tecmundo diz e como já citei no post #3, os clocks interno e de barramento da DDR1 são iguais (também a tabela da wikipedia diz isto).

A confusão é que no clubedohardware onde, para a mesma memória, os clock são superiores (2x) os clocks referidos na wikipedia e no tecmundo.
Como citei anteriormente do clubedohardware, "DDRx-yyyy (onde x é a geração da tecnologia e yyyy é o clock da memória DDR)". Assim, por exemplo, DDR2-400 tem clock interno 200 MHz e clock de barramento 400 MHz, segundo o clubdohardware. Na wikipedia diz:
Citar:DDR2-xxx denotes data transfer rate
e diz que DDR2-400 tem clock interno de 100 MHz e clock de barramento 200MHz (na tabela).

Para além disso, no clubedohardware o clock de barramento é o dobro do clock interno (que eles chamam de clock real máximo) independentemente de ser DDR1, 2 ou 3:
Citar:Por causa desta característica, essas memórias são rotuladas com o dobro do clock real máximo que elas conseguem trabalhar. Por exemplo, memórias DDR2-800 trabalham a 400 MHz, memórias DDR2-1066 e DDR3-1066 trabalham a 533 MHz, memórias DDR3-1333 trabalham a 666,6 MHz e assim por diante.
- segundo a wikipedia e o tecmundo, DDR2-800 trabalha a 200MHz e consegue atingir 400MHz de barramento por causa da tecnologia DDR, DDR2-1066 trabalha a 226 MHz e atinge 532 MHz de barramento, DDR3-1333 trabalha a 166,6 MHz e atinge 666,6 MHz, aproximadamente.

Se a wikipedia e o tecmundo estiverem certos (como acredito que estão), porque DDR1 tem clock interno igual ao clock de barramento e outras gereções têm esses clocks diferentes?

Errata: eu disse
Citar:Também tem uns sítios que dizem que as DDR1 têm clock externo (barramento ou bus) igual ao clock interno (e DDR2 tem 2x e DDR3 4x) e outros que dizem que DDR1 têm o clock do barramento 2x o clock interno (e DDR2 tem 4x e DDR3 8x).
aos outros estava-me a referir ao clubdohardware. O que está a negrito está mal, como citei acima, o clock de barramento é o dobro do clock interno seja qual for a geração da DDR segundo o clubedohardware, o que acho que não está correto.
(13-10-2011 00:01)sobrinho Escreveu: [ -> ]A confusão é que no clubedohardware onde, para a mesma memória, os clock são superiores (2x) os clocks referidos na wikipedia e no tecmundo.
Como citei anteriormente do clubedohardware, "DDRx-yyyy (onde x é a geração da tecnologia e yyyy é o clock da memória DDR)". Assim, por exemplo, DDR2-400 tem clock interno 200 MHz e clock de barramento 400 MHz, segundo o clubdohardware. Na wikipedia diz:
Citar:DDR2-xxx denotes data transfer rate
e diz que DDR2-400 tem clock interno de 100 MHz e clock de barramento 200MHz (na tabela).

ah ok, percebi..julgo que ai deve ter sido falha do clubedehardware.

Devido a esse pormenor, retiro o que disse sobre a tabela da wikipedia.
Parece-me tambem que estava a interpretar mal a leitura que estava a fazer. Ou seja, quando os dados saem do clock interno (memory clock) para o clock externo (bus clock), na DDR1, sai "1 canal" com a mesma frequencia, mas devido a tecnologia double pumping e' como se saisse com o dobro da frequencia. Na DDR2 o numero de canais sobe para 2 e na DDR3 sobe para 4.

Por exemplo:
Numa memoria DDR300 tera como taxa de transferencia (data rate) o valor de 300 certo? E' Calculado da seguinte forma:
150 x 1 x 2
Legenda:
150 = clock interno
1 = 1 canal com 150Mhz de frequencia
2 = double pumping, 2 dados por ciclo

Neste exemplo, o barramento apenas tem um canal de dados a trabalhar a 150Mhz, tal como a memoria interna. Devido ao double pumping o valor duplica, e' como se trabalhasse a 300Mhz.

Na DDR2-500 ficaria:
125 x 2 x 2
Legenda:
125 = clock interno
2 = 2 canais com 125Mhz de frequencia
2 = double pumping, 2 dados por ciclo

Neste exemplo, o barramento ja possui 2 canais de dados a trabalhar a 125Mhz, perfazendo um total de 250Mhz, mas e' como se trabalhasse a 500Mhz (duplicando devido ao double pumping).

Na DDR3-1600, calcula-se:
200 x 4 x 2
Legenda:
200 = clock interno
4 = 4 canais de 200Mhz cada
2 = double pumping, 2 dados por ciclo

O que estava a faltar era a interpretacao do "canal". Se adicionares este detalhe 'a equacao ja faz tudo sentido.
Se isso explica porque DDR1 tem clock interno igual ao clock de barramento, não percebi. Atenção que DDRx-yyy, yyy não é a taxa de transferência, data rate em inglês é Megatransferências por segundo (MT/s) ou dados por segundo em milhões e não sei explicar mais que isso (podes comprovar nas tabelas da wikipedia). A taxa de transferência (que vem em megabytes por segundo ou mebibytes por segundo - MiB/s) está nos módulos das memórias (os pentes, a nomenclatura acima é própria dos chips), por exemplo um módulo PC2-3200 tem taxa de transferência de 3200 MiB/s que corresponde à DDR2-400

Taxa de transferência = [clock interno] x [nº de dados por clock] x [nº de bytes] isso está no tecmundo. O nº de bytes são 8 para o caso DDR, isto tem haver com o hardware e o nº de pinos acho.

Para DDR2-400 temos Taxa de transferência = 100 Mhz x 4 x 8 bytes = 3200 MB/s

Não percebi essa coisa dos canais. DDR1 é 2 dados por ciclo. DDR2 é 4 dados por ciclo. DDR3 é 8 dados por ciclo.
URL's de Referência