Explicación de la Integración de la controladora de memória en los K8.


  • 0

    Bueno, como estoy enfermo y me aburro me he entretenido a traducir una parte de un artículo que hay en cpuid.com, el cual me ha servido de mucho para terminar de aclarar mis ideas sobre la controladora de memoria de los A64. Ahi va (marco en negrita lo que me parece de más interés)

    La controladora de memoria integrada:

    El hecho de añadir la controladora de memoria en la CPU representa un cambio importante en la relación entre los componentes de la placa base, así como el control de la memoria era específico del northbridge. El diagrama siguiente muestra la relación clásica entre una CPU y el controlador de la memoria. Este ejemplo puede representar la CPU de un Pentium 4 de 200MHz de FSB que trabaja con la memoria síncrona.

    El generador de reloj genera un reloj de 200MHz al northbridge, ésto es el FSB. El bus entre el northbridge y la CPU es de un ancho de 64 bits a 200MHz, pero cuatro paquetes de 64 bits se envían en cada ciclo de reloj. Esto es como si bus fuera de 4x200MHz y un ancho de 64 bits, ésta es la razón por la cual la velocidad del bús se muestra a menudo como si fuera de 800MHz. El bus de la memoria (que enlaza la memoria con la controladora) es también de 200MHz y 64 o 128 bits (single o dual channel). Como es memoria DDR, dos paquetes de 64/128 bits se envían en cada ciclo de reloj.

    La estructura del K8 es “bastante” distinta:

    El generador de reloj siempre controla el northbridge, y proporciona la referéncia de frecuéncia del HyperTransport entre el northbridge y la CPU. La frecuencia de HyperTransport puede así considerarse como el FSB, porque la CPU utiliza ésta frecuencia para generar su propio reloj interno, con un multiplicador interno.
    Según lo demostrado en el diagrama, la velocidad de la controladora de memoria es igual que la velocidad de la CPU. Las peticiones de la memoria por lo tanto se envían a la velocidad de la CPU, en un bus de 64/128 bits, según el número de canales de memoria. Podemos ver que ya no hay enlaces entre el generador de reloj y la memoria. El reloj de la memoria es obtenido del reloj de la CPU, dividido por un factor que depende de las especificaciones de la memoria. La tabla de abajo muestra los divisores usados según la frecuencia de la CPU y el reloj solicitado de la memoria.

    Por supuesto, la controaldora integrada de la memoria no mejora la banda ancha de la memoria, sino que permite reducir drásticamente el tiempo de la petición (laténcia). La latencia es muy baja. Por otra parte, de forma distinta a la de una controladora externa de la memoria, el rendimiento de la controladora integrada de memoria del K8 aumenta a medida que aumenta la velocidad de la CPU (de ahi que de un ancho de banda más alto a 200x11 que a 200x9); por lo tanto, también lo hace la velocidad de peticiones (baja la latencia).
    La controladora integrada tiene un interés particular para los sistemas multi-CPUs: en este caso, el tamaño de la memoria direccionable y la anchura de banda total aumentan con el número de CPUs.

    El problema con la integración de la controladora de memoria es la falta deflexibilidad. La controladora está dedicada a una tecnología de memoria, y a cada cambio en el estándar de la memoria necesitará un cambio en el diseño de la CPU. Por supuesto, esto no ocurre muy a menudo (por lo menos no tan a menudo como el cambio de la familia de la CPU), pero esto podría aumentar drásticamente el coste de la CPU, ya que su proceso de manufacturación deberia ser cambiado.

    La tecnología de HyperTransport
    HyperTransport es un protocolo de acoplamiento entre la CPU y los periféricos, y entre CPUs en un sistema de multi procesadores. Permite intercambios a baja laténcia, que lo hace muy relevante para la comunicación entre varias CPUs.
    Utiliza un bus de 16bits (de anchura) y funciona a 800MHz double data rate, permitiendo una anchura màxima de 3’2GB.
    El futuro del HyperTransport es ser utilizado con periféricos PCI Express, como controladoras para discos duros, targetas ethernet gigabit, etc.



  • 1

    Uffff… que interesante!! Si vas a seguir escribiendo post tan buenos no se te ocurra curarte!! jeje...



  • 2

    Muy interesante, tenia muchas dudas sobre el funcionamiento del HyperTransporty el FSB en AMD… :rollani:
    Muy bueno el post, te lo as kurrado!!



  • 3

    …...memoria no lleva tilde (es para que pierdas menos tiempo, que lo has escrito unas 10 veces) :D :D :D

    El post es muy bueno. Muchas gracias por ilustrarnos con artículos de calidad.

    Saludos. :)



  • 4

    Ya me lo pareció.. eso es por el catalán :p Juer… corregido, 22 veces sale dicha palabreja :risitas:



  • 5

    Buenas a todos!!

    Mu buen post krampak! jeje, aun estoy esperando a poder probar el athlon64 winchester 3200+ y su controlador de memoria integrado que tan bien explicas! jeje

    bye!!



  • 6

    Hombre un ^xFg^ por aqui ;) Bienvenido, aunque veo que hace tiempo que estas registrado jejeje.



  • 7

    @krampak:

    Hombre un ^xFg^ por aqui ;) Bienvenido, aunque veo que hace tiempo que estas registrado jejeje.

    jaja ola!! xDD pues si, me registre hace bastante! pero nunca me dio por postear! solo leia!! pero me he animado!! asias por la bienvenida!! xD

    chao a todos!



  • 8

    Joer macho, pues como sigas mucho tiempo enfermo, eres capaz de descubrir la cuadratura del circulo…



  • 9

    Hola
    Muy bueno , alto y claro ; haber si te animas de vez en cuando y nos aclaras las ideas a los que no " chanamos " inglis.
    adios



  • 10

    @krampak:

    Según lo demostrado en el diagrama, la velocidad de la controladora de memoria es igual que la velocidad de la CPU. Las peticiones de la memoria por lo tanto se envían a la velocidad de la CPU, en un bus de 64/128 bits, según el número de canales de memoria. Podemos ver que ya no hay enlaces entre el generador de reloj y la memoria. El reloj de la memoria es obtenido del reloj de la CPU, dividido por un factor que depende de las especificaciones de la memoria.

    A mi entender hay un error en el diagrama, y en su explicación posterior. Si bien la velocidad de la controladora de memoria es la de la CPU, las peticiones a la memoria no se hacen a 2000 MHz, acabariamos de inventar un nuevo tipo de memoria y solucionado de un plumazo los problemas de latencia de la DDR , DDR II y posteriores… Las peticiones a traves del bus de direcciones se hacen segun el tipo de memoria a su velocidad correspondiente, en el caso de DDR400 funciona a 200 MHz el bus de direcciones al igual q el bus de datos lo que ocurre es q las celdas de memoria envian dos datos por ciclo, uno en el flanco de subida y otro en el de bajada de la señal de reloj.

    @krampak:

    Por supuesto, la controaldora integrada de la memoria no mejora la banda ancha de la memoria, sino que permite reducir drásticamente el tiempo de la petición (laténcia). La latencia es muy baja. Por otra parte, de forma distinta a la de una controladora externa de la memoria, el rendimiento de la controladora integrada de memoria del K8 aumenta a medida que aumenta la velocidad de la CPU (de ahi que de un ancho de banda más alto a 200x11 que a 200x9); por lo tanto, también lo hace la velocidad de peticiones (baja la latencia).

    Como bien dices el aumento de la velocidad de la CPU hace que baje la latencia, ¿como se explica esto sin q las peticiones a la memoria se hagan a la velocidad de la CPU?. Pues porque la comunicación entre el procesador y el controlador de memoria tiene una latencia, sobre unos 25 ciclos, a medida que aumentamos la frecuencia del procesador pues estos ciclos son mas cortos. El controlador de memoria esta unido al nucleo del procesador a traves del Crossbar (XBAR) que comunica entre si el hypertransport la memoria y el nucleo, si no fuera asi no podria haber peticiones DMA del resto de dispositivos. es un gran diseño que permite tener unas latencia muy bajas que permiten operar entre si a los micros en configuraciones multiprocesador con la memoria de cada uno.

    Como se ve en la imagen al aumentar la frecuencia del procesador la latencia tiende hacia la asintota que seria el tiempo empleado por la memoria.



  • 11

    Habrá que rectificar a Franck Delattre pues xD Creador del programa universal CPUZ.



  • 12

    Habrá que rectificar a Franck Delattre pues Creador del programa universal CPUZ.

    Supongo q es ironico…
    Yo el camino de la fe lo abandone hace tiempo incluso para cuestiones religiosas.

    Saludos.



  • 13

    DarkDante, creo k kuando krampak dice k la velocidad de la memoria es la misma k la del CPU se refiere a la del BUS, pues es la k realmente afecta al ancho de banda.. La frecuencia total de un procesador es la k tenemos (en tu caso has expuesto 2000) pk se multiplica por su correspondiente multiplicador individual e interno a la CPU, lo k la ram si utiliza del CPU es el reloj.. xo el multi no puede utilizarlo. El multiplicador no afecta a nada mas, por tanto la memoria es imposible k trabaje a 2000Mhz.

    Krampak, la guia esta muy bien. Esta muy trabajada, y nos solucionas a algunos mas de una duda.
    Xo 1 pregunta, en la tabla, las velocidades de cpu, no sale 200 pk se entiende k se expresa el bus en DDR? Esk con la table me he liado un poco.
    Entiendo k las memorias funcionan a la misma velocidad k el cpu, dividida por un valor segun las especificaciones de la memoria.. es decir, entiendo el concepto, xo a la hora de verlo en accion o mostrado en estadisticas no me cuadra. Lo he comprobado y veo k realmente el bus del cpu dividido por el numero X resulta la velocidad actual de la memoria… xo es eso, al verlo ahi puesto... xD Podrias explicar un poco la table, en palabras? :risitas:

    gracias de antemano, y felicidades por la guia



  • 14

    Que el controlador de memoria funcione a una velocidad no implica que el bus funcione a la misma velocidad, ni que la memoria funcione a dicha velocidad. La ventaja es solamente en el caso de la latencia, ya que tener un controlador de memoria funcionando a una velocidad tan elevada es mucho más efectivo que tenerlo en el chipset funcionando a velocidades diez veces inferior.



  • 15

    Según lo demostrado en el diagrama, la velocidad de la controladora de memoria es igual que la velocidad de la CPU

    Dice "segun lo mostrado en el diagrama"
    Claro k la velocidad de la memoria no implica k la del cpu funcione a la misma ni viceversa.
    Uf.. creo k me he liado un poco….. :frio:



  • 16

    Hola

    Yo lo que no entiendo muy bien es la ventaja. Me refiero a que, de que sirve tener una latencia tan alta, si la memoria no puede ir mas rapido. Vaya, que si la controladora es mas rapida haciendo peticiones que la memoria respondiendo, no la va a saturar?

    Que la CPU sea mas rapida es logico porque hace muchas mas cosas que acceder a la memoria, pero la controladora (i esto es una supoisicion mia) solo tiene que controlar el flujo de informacion pedida por la CPU a la memoria i las respuestas, asi que llega un punto que por muy rapido que la controladora vaya el flujo de informacion no ira mas rapido. Vaya, eso es lo que yo creo, si alguien me puede aclarar el tema pues mejor :p



  • 17

    Que la latencia baje es muy bueno cuando las lecturas no son secuenciales, como ocurre en la mayoría de los casos. Si la controladora funciona a la velocidad de la CPU podrá tramitar las peticiones de manera mucho más eficiente, con lo que reducimos el tiempo que pasa entre que se pide el dato y llega.



  • 18

    Que el controlador de memoria funcione a una velocidad no implica que el bus funcione a la misma velocidad, ni que la memoria funcione a dicha velocidad. La ventaja es solamente en el caso de la latencia, ya que tener un controlador de memoria funcionando a una velocidad tan elevada es mucho más efectivo que tenerlo en el chipset funcionando a velocidades diez veces inferior.

    Eso es a lo que yo me referia y creo que DarkDante a interpretado mal. La memoria por supuesto no trabaja a la velocidad de la CPU.

    Arak, esa tabla es así, no tiene mas xD Solo hay que tener en cuenta un factor distinto a las cpu's anteriores.
    El tema de la sincronía; por ejemplo con los XP's tenias la memoria asincrona con un divisor 200:166, la memoria siempre trabajava a 166Mhz pusieras el multiplicador que pusieras a la CPU pues trabajaban "independientemente" en cambio el A64 uso un divisor interno entero para obtener la frecuencia de la ram de ahi que no siempre sea exacta.
    Esa tabla lo que hace es mostrarte los enteros que usa para obtener la frecuencia de la ram, SIEMPRE esos.

    Por esa razon (si no te habias fijado ya), qué pasa si la CPU funciona a 2100Mhz? (eso no pasará "nunca" dado que tienen un bus de 200 de fábrica y siempre usan multiplicadores enteros) pero nosotros que hacemos overclocking pude pongamos un multiplicador real como 10'5X.
    Entonces como la controladora de memoria solo sabe operar con numeros enteros pues por el morro pilla en siguiente entero de la tabla (11).
    Asi pues nuestra CPU a 200x10'5 con la memoria ""sincrona"" (este concepto no deberia existir con los K8) no tendrá la memoria funcionando a 200Mhz sino a 190Mhz (2100/11).

    Bueno no se si he resuelto tu duda, estoy algo espeso pero espero que se haya aclarado un poco más.



  • 19

    Entonces, si no te he entendido mal, disminuimos el tiempo de direccionamiento a la memoria, dicho de otra manera, lo rapido que sabe la controladora a que direccion de memoria tiene que acceder para leer o escribir el dato que pide la CPU, no? con lo que se hace la peticion antes, ok, ya veo. Aunque en el caso de hacer peticiones en menos de 5 microsegundos (200Mhz del bus) no se podra ir mas rapido que a esta velocidad. A no ser que hagan buses mas rapidos en las placas o los doblen…





Has perdido la conexión. Reconectando a Hardlimit.