DDR3 introduce un modo Fly-by, que complica el controlador de memoria, que ahora debe tener en cuenta los distintos tiempos de ida y vuelta entre bytes, a cambio de una mayor flexibilidad en el diseño de las placas de circuito impreso.
He mirado uno de los diseños de referencia de TI con DDR3, que IIRC tiene una mención en los esquemas, que las señales de control deben ir a través de bytes de una manera sucesiva, a partir de la más baja. Y se realizó en PCB/Gerbers exactamente de esta manera.
Recientemente he revisado otro diseño de referencia de TI con una CPU similar y DDR3. Lo que me llamó la atención fue el hecho de que este diseño tenía más bajo byte el más lejos ¡en cadena de vuelo!
Después intenté encontrar alguna recomendación o extracto estándar al respecto, pero fue en vano. Cada Appnote menciona que las señales de control pasan por cada byte en una sucesión y luego terminan a una fuente de alimentación medio DDR, pero ninguno hace hincapié en el orden de bytes que debe tomar.
Según tengo entendido, durante el arranque se examina cada carril de bytes y, a continuación, los retardos medidos se guardan en el espacio de configuración en tiempo de ejecución del controlador de memoria. Después, cada byte se trata independientemente de los demás teniendo en cuenta estos retardos. Así, durante la operación de lectura, el controlador de memoria emite comandos y espera cada byte después del retardo medido previamente. Y viceversa, durante la escritura, emite bytes de acuerdo con los retardos. ¿Es esto correcto? ¿O probablemente el controlador de memoria necesita recibir bytes en un orden específico?
Y en última instancia, ¿importa el orden de la topología de vuelo que atraviesa los bytes? ¿Por qué sí o por qué no?