fabim escreveu:esta configuração de 2bit ck, é para DDR3 e constante ? Tipo estra transmissão é 100% do tempo, ou ela pode transferir até 2 bit por ck ? ou seja.
eh como um double data rate funciona:
http://zone.ni.com/devzone/cda/tut/p/id/7284obviamente a transferencia ou nao de dados validos depende de outros strobes, mas normalmente eh possivel transferir continuamente 2 bits por clock em operacoes de burst na mesma linha.
Para 1333mhz e 16 bits, ele pode transferir na verdade até (1333mhz * 2ck)* 2 bytes = 5.332GBPS.
Sendo assim, como o processador vai utilizar 32 bits de processamento e externamente vai ser 2 * 16bits * 512MB cada.
Esta regra de calculo vai ficar então, (1333mhz * 2ck)* 4 bytes = 10.664GBPS.
barramentos tipicos de memoria possuem 16, 32, 64 ou 128 bits em funcao do bandwidth requerido e nao tem relacao com a largura da palavra de operacao do processador. normalmente, para embarcados, 16 bits fornece bandwidth suficiente para todas as aplicacoes possiveis.
Cara mais tipo. Tu generalizou né ? Nestes 1333MHZ, tem muitos waith states, muitos refreshes, e os dados são transferidos em bancos né ?
Ou seja, na realidade a latencia de dados calculada, é muiiiiito abaixo disso ai, mais se for pelo menos METADE!!!! Ja esta putamente fuck velocity!!!
eh um pouco complicado... mas todos estes problemas jah foram resolvidos em memorias DRAM antigas!
uma memoria DRAM antiga eh composta de linhas e colunas de bits. por exemplo, uma memoria de 1Mbit eh composta de 1024 linhas e 1024 colunas. quando vc quer acessar um endereco especifico, primeiro vc fornece o endereco da linha e clocka RAS. uma linha inteira de 1024 bits sera lida, entao vc fornece o endereco da coluna e clocka CAS.
o truque eh que a linha inteira eh escrita novamente, independente de vc ter alterado um bit ou nao. ou seja, qualquer acesso implica em um refresh da linha. outro truque eh que vc leu a linha toda e ela esta disponivel, entao vc pode fornecer uma nova coluna e clockar CAS diretamente, fazendo transferencias em burst.
entao o impacto do tempo de acesso e refresh jah eh minimizado mesmo em uma DRAM. o que as SDR adicionam eh um clock global (RAS e CAS passam a ser linhas normais) e as DDR adicionam capacidade de transferir 2 bits por clock.
o pior caso seria uma rotina composta de duas instrucoes, uma no endereco 1023 e outra no endereco 1024. isso significa que a memoria tem que ler linhas diferentes o tempo todo. mas eh para compensar esse tipo de problema que existem caches!
por outro lado, um caso otimizado seria um loop nos enderecos 0 a 1023, onde a memoria soh precisaria mudar de linha para fazer o refresh periodico.
entao, na pratica, o tempo parado eh bem pequeno!
