La computadora de mi oficina tiene 8 núcleos. Recientemente actualicé el sistema de 4 Gb de RAM (en dos módulos) a 24 Gb de RAM (en seis módulos) y noté un aumento considerable en el rendimiento cuando hay varios núcleos activos. En particular, cuando todos los núcleos (o casi todos) están activos y ejecutando programas que exigen más de lo que proporciona el caché de cada núcleo (8Mb).
La memoria RAM antigua y la nueva tienen la misma velocidad (FSB 1333MHz). Así que sospecho que eso no es lo que está pasando.
¿Es posible que (algunas?) Las arquitecturas de PC permitan que los núcleos accedan simultáneamente a la RAM del sistema si la memoria que están usando está suficientemente "alejada"? No estoy seguro de lo que podría significar "lejos" pero puede que haya un modo de que un núcleo lea / escriba en la tarjeta 1 (o el chip 3 en la tarjeta 1), mientras que otro núcleo pueda leer / escribir en la tarjeta 2 (o el chip 1 en la tarjeta 1)? ¿Son las arquitecturas de PC (y quizás los sistemas operativos) tan inteligentes?
fuente
Bueno hay NUMA . Cuando se usa, cada núcleo recibe un RAM asignado. De esta manera sucede exactamente lo que usted describió. Un procesador funcionará con la memoria RAM asignada y otro funcionará con una parte diferente de la memoria RAM. Algunas placas base ni siquiera detectarán la RAM a menos que haya suficientes CPU presentes para usarlo todo. No sé si este es el caso de la computadora que se menciona aquí, pero si es una computadora de nivel de estación de trabajo, entonces es posible.
Otra opcion es entrelazado de memoria . Algunas computadoras pueden acceder a la memoria más rápido si la memoria se "separa". El principio es que mientras un módulo está ejecutando la operación de escritura, otro puede aceptar comandos, por lo que no es necesario esperar a que la operación de escritura finalice en un módulo antes de comenzar en otro.
Así que imagina una serie de números. Cada número representa una ubicación de memoria. Digamos que en este ejemplo se simplificó en exceso cada ubicación tiene un byte de tamaño. Entonces, si el procesador necesita escribir 4 bytes, escribirá datos en las primeras 4 ubicaciones de memoria. Normalmente los wold estarán en el mismo módulo de memoria y probablemente en el mismo chip de memoria. La computadora debería esperar a que se complete cada operación de escritura antes de enviar el siguiente dato a la memoria. Si se utiliza el intercalado, las direcciones se asignan de forma diferente. Si tenemos una computadora con 4 ranuras de memoria, la dirección 1 estará en la primera ranura, 2 en la segunda, 3 en la tercera y 4 en la cuarta. De esta manera, cuando el procesador necesita escribir 4 bytes, los enviará a las primeras 4 direcciones de memoria, pero como están en módulos diferentes, no es necesario esperar a que se complete cada operación de escritura. En su lugar, enviará datos a la primera ubicación y luego a la segunda y así sucesivamente. De esta manera, para cuando termina la primera operación de escritura, otros 3 están llegando a su fin, por lo que los datos se pueden escribir más rápido en la memoria.
fuente