¿Por qué no se pone RAM en el chip de la CPU?

55

Las CPU modernas son muy rápidas en comparación con todas las cosas externas, incluida la memoria (RAM).

Es comprensible, ya que la frecuencia del reloj de la CPU ha alcanzado un punto en el que se requieren varios tics de reloj para que una señal eléctrica simplemente se ejecute desde la CPU a través del bus hasta los chips de RAM y viceversa.

También complica la vida en muchos niveles: las jerarquías de caché multinivel se crean para entregar datos más cerca de la CPU, lo que a su vez requiere una lógica de sincronización compleja en el chip. Los programas deben escribirse de manera amigable con la caché para evitar ciclos de espera mientras se obtienen datos.

Muchos de estos problemas podrían evitarse si se localizara una cantidad significativa de RAM directamente en el chip de la CPU. No tiene que tener un acuerdo exclusivo: puede poner 1-4 GB en el chip, dependiendo de su clase y permitir que se instale memoria adicional por separado.

Estoy seguro de que hay buenas razones por las que Intel, AMD y similares no están haciendo esto. ¿Cuáles son estas razones? ¿Es que no hay espacio de sobra en el chip?

Erizo menor
fuente
29
La caché es RAM. El espacio y los pines en el dado son muy importantes
copper.hat
2
@ copper.hat Cache es RAM, pero el tamaño de caché es una pequeña fracción de la RAM instalada (por lo general, estamos hablando de los rangos MBytes vs Gbytes). Me pregunto por qué no poner 1 GB en el chip de la CPU.
Lesser Hedgehog
55
En general, está optimizado para una combinación de instrucciones / flujo de datos. Además, no todos los datos de / a RAM pasan por la CPU.
copper.hat
1
Cuanto más simple es un dado, más barato es. También significa que puede usar diferentes tamaños de proceso y métodos de proceso.
Journeyman Geek
@LesserHedgehog Hay un límite en cuanto a la tasa de aciertos de caché en general, por lo que agregar más caché realmente no ayuda en nada. Además, muchas CPU realmente tienen DRAM integrada ahora, especialmente en el espacio móvil / integrado (muchas SoC basadas en ARM, por ejemplo).
esponjoso

Respuestas:

79

Haswell de Intel (o al menos los productos que incorporan la GPU Iris Pro 5200) y POWER7 y POWER8 de IBM incluyen DRAM integrado, "eDRAM".

Una cuestión importante que ha llevado a que eDRAM no sea común hasta hace poco es que el proceso de fabricación de DRAM no es inherentemente compatible con procesos lógicos, por lo que deben incluirse pasos adicionales (que aumentan el costo y disminuyen el rendimiento) cuando se desea eDRAM. Por lo tanto, debe haber una razón convincente para querer incorporarlo para compensar esta desventaja económica. Alternativamente, la DRAM se puede colocar en un troquel separado que se fabrica independientemente, pero luego se integra en el mismo paquete que la CPU. Esto proporciona la mayoría de los beneficios de la localidad sin las dificultades de fabricar los dos de una manera verdaderamente integrada.

Otro problema es que la DRAM no es como la SRAM, ya que no almacena su contenido indefinidamente mientras se aplica la alimentación, y leerla también destruye los datos almacenados, que deben escribirse nuevamente. Por lo tanto, debe actualizarse periódicamente y después de cada lectura. Y, debido a que una celda DRAM se basa en un condensador, cargarla o descargarla lo suficiente como para que la fuga no corrompa su valor antes de que la próxima actualización tarde un tiempo finito. Este tiempo de carga no se requiere con SRAM, que es solo un pestillo; en consecuencia, puede sincronizarse a la misma velocidad que la CPU, mientras que la DRAM se limita a aproximadamente 1 GHz mientras se mantiene un consumo de energía razonable. Esto hace que la DRAM tenga una latencia inherente más alta que la SRAM, lo que hace que no valga la pena usarla para todos, excepto para los cachés más grandes, donde la tasa de fallas reducida dará sus frutos.

Además, en lo que respecta a la latencia, una gran parte de la dificultad es la distancia física que deben recorrer las señales. La luz solo puede viajar 10 cm en el período de reloj de una CPU de 3 GHz. Por supuesto, las señales no viajan en línea recta a través de la matriz y tampoco se propagan a algo cercano a la velocidad de la luz debido a la necesidad de almacenamiento en búfer y despliegue, que generan retrasos en la propagación. Por lo tanto, la distancia máxima que una memoria puede estar alejada de una CPU para mantener 1 ciclo de latencia de reloj es de unos pocos centímetros como máximo, lo que limita la cantidad de memoria que se puede acomodar en el área disponible. El procesador Nehalem de Intel en realidad redujo la capacidad de la caché L2 frente a Penryn en parte para mejorar su latencia, lo que condujo a un mayor rendimiento. * Si no nos importa tanto la latencia, entonces no hay razón para poner la memoria en el paquete,

También se debe tener en cuenta que la tasa de aciertos de caché es muy alta para la mayoría de las cargas de trabajo: muy por encima del 90% en casi todos los casos prácticos, y no es raro incluso por encima del 99%. Por lo tanto, el beneficio de incluir memorias más grandes en el dado está inherentemente limitado a reducir el impacto de este pequeño porcentaje de fallas. Los procesadores destinados al mercado de servidores empresariales (como POWER) generalmente tienen enormes cachés y pueden incluir de manera rentable eDRAM porque es útil para acomodar los grandes conjuntos de trabajo de muchas cargas de trabajo empresariales. Haswell lo tiene para soportar la GPU, porque las texturas son grandes y no se pueden acomodar en la memoria caché. Estos son los casos de uso de eDRAM en la actualidad, no las cargas de trabajo de escritorio o HPC típicas, que están muy bien atendidas por las jerarquías de caché típicas.

Para abordar algunos problemas planteados en los comentarios:

Estas memorias caché de eDRAM no se pueden usar en lugar de la memoria principal porque están diseñadas como memorias caché de víctimas L4. Esto significa que son volátiles y efectivamente direccionables por el contenido, por lo que los datos almacenados en ellos no se tratan como residiendo en una ubicación específica y pueden descartarse en cualquier momento. Estas propiedades son difíciles de conciliar con el requisito de RAM para ser mapeado directamente y persistente, pero cambiarlas haría que los cachés fueran inútiles para su propósito previsto. Por supuesto, es posible incrustar memorias de un diseño más convencional, como se hace en microcontroladores, pero esto no es justificable para sistemas con memorias grandes, ya que la baja latencia no es tan beneficiosa en la memoria principal como en un caché, por lo que se amplía o agregar un caché es una propuesta más valiosa.

En cuanto a la posibilidad de cachés muy grandes con capacidad del orden de gigabytes, solo se requiere un caché que tenga como máximo el tamaño del conjunto de trabajo para la aplicación. Las aplicaciones de HPC pueden tratar con conjuntos de datos de terabytes, pero tienen una buena ubicación temporal y espacial, por lo que sus conjuntos de trabajo generalmente no son muy grandes. Las aplicaciones con grandes conjuntos de trabajo son, por ejemplo, bases de datos y software ERP, pero solo hay un mercado limitado para procesadores optimizados para este tipo de carga de trabajo. A menos que el software realmente lo necesite, agregar más caché proporciona rendimientos que disminuyen muy rápidamente. Recientemente hemos visto a los procesadores obtener instrucciones de captación previa, por lo que los cachés se pueden usar de manera más eficiente: se pueden usar estas instrucciones para evitar errores causados ​​por la imprevisibilidad de los patrones de acceso a la memoria, en lugar del tamaño absoluto del conjunto de trabajo,

* La mejora en la latencia no se debió solo al menor tamaño físico de la memoria caché, sino también a que se redujo la asociatividad. Hubo cambios significativos en toda la jerarquía de caché en Nehalem por varias razones diferentes, no todas centradas en mejorar el rendimiento. Entonces, si bien esto es suficiente como ejemplo, no es una cuenta completa.

Oleksandr R.
fuente
1
Bien explicado ,, @Oleksandr R. En resumen, parece que hay algo así como un "desajuste de impedancia" entre la CPU y la DRAM, lo que dificulta el acoplamiento de los dos.
Lesser Hedgehog
3
Y, por supuesto, SRAM sigue siendo bastante grande: incluso los cachés pequeños (en comparación con la RAM) ocupan aproximadamente la mitad del área del dado en las CPU modernas (bueno, excepto las CPU con GPU integradas: D).
Luaan
2
Me pregunto si hay una manera de correr sin memoria principal. 128 MB deberían ser suficientes para ejecutar una distribución de Linux reducida (o una versión anterior de Windows).
user253751
Se llama 'GPU-on-die', no 'GPU-on-package'.
AStopher
44
@cybermonkey: las instrucciones se obtienen de la memoria caché L1, no de la memoria principal. Sería horrible buscarlos de la memoria principal, 60 ns de tiempo de ciclo más o menos, lo que limita su CPU a 16 Mhz para un diseño de un solo núcleo.
MSalters
17

Las razones principales por las que la memoria más grande (GB de DRAM) no se incluye en el dado de la CPU en sí misma se deben principalmente al costo. El espacio de la matriz de la CPU es significativamente más costoso debido al proceso de fabricación requerido para hacer las características muy pequeñas. Es posible que tampoco sea posible fabricar los dos en el mismo dado, aunque no sé lo suficiente sobre los detalles para dar una respuesta definitiva aquí.

Vamos a evaluar la viabilidad de poner una gran cantidad de DRAM directamente en el dado de la CPU.

Para dar una comparación de la escala, una matriz de CPU moderna podría ser ~ 180 mm (tamaño aproximado de las matrices Intel Haswell). No tengo cifras precisas para los tamaños de troqueles DRAM de CPU, pero supongamos que 1 GB de DRAM tradicional toma 140 mm (calculado a partir de los tamaños de DRAM GPU). Para una aproximación de primer orden, está duplicando aproximadamente el tamaño de la matriz de CPU, lo que significa al menos duplicar el costo de una CPU, y probablemente más por solo 1 GB de DRAM en la misma matriz ... No estoy pagando varios cientos de dólares solo para obtener 1 GB de DRAM, y no creo que nadie lo haga.222

Sin embargo, la idea de pegar la memoria más cerca de la CPU no es una causa completamente perdida. Es probable que la memoria se mueva en el futuro porque el hecho es que la velocidad de la luz es limitada y solo es posible comunicarse tan rápido a cierta distancia.

Técnicas realistas para acercar la memoria a la CPU (tenga en cuenta que también tienen compensaciones con las técnicas tradicionales):

  1. Apílelos encima de la CPU misma. Esto ya está hecho en la Raspberry Pi, y es parte del estándar de memoria Wide I / O. La memoria sigue siendo un troquel separado fabricado en un proceso separado. Sin embargo, esto tiene el problema de que cualquier calor disipado en la CPU debe pasar por la memoria antes de llegar a un disipador de calor. Esto significa que no funcionará para procesadores de alta potencia, y por qué las aplicaciones principales para esta tecnología están en procesadores móviles / otras aplicaciones integradas donde su CPU no consume muchas decenas o cientos de vatios.

  2. Péguelos muy cerca en un sustrato de menor costo. Así es como HBM está diseñado para funcionar, con un bus muy grande fabricado en un troquel "interposer" de menor costo, y es la dirección en la que va la memoria GPU de gama alta porque el ancho de banda es significativamente mayor. Los chips de memoria y el intercalador todavía se fabrican en diferentes troqueles del procesador real.

helloworld922
fuente
55
Esperaría que los rendimientos disminuyan a medida que intente colocar más de miles de millones de transistores en un gran dado: la probabilidad de una falla o falla aumenta con cada dispositivo adicional. Si divide el sistema en varias piezas más pequeñas, la posibilidad de que aparezca una falla en una sola pieza disminuye enormemente, y el costo de descartar esa pieza defectuosa también es menor. Me imagino que un dado muy grande también sería mucho más difícil de fabricar, todo lo demás es igual.
John U
44
@JohnU Es difícil decir cómo escalará el precio porque la tasa de defectos real es un secreto comercial. Las GPU ya usan troqueles en el rango de ~ 440 mm se venden por alrededor de $ 550, por lo que a un precio de escala de aproximación de primer orden con un tamaño de troquel no parece demasiado bajo. Además, los dispositivos con defectos aún pueden venderse como dispositivos de gama baja con ciertas funciones desactivadas. Esta es una práctica común en muchas empresas. 2
helloworld922
@JohnU: colocar un gran número de módulos repetidos en un dado tiene la ventaja de que cuando se produce un defecto, simplemente puede deshabilitar el módulo en el que se encuentra y liberar el dado conforme a un estándar de menor costo (esto sucede mucho con DRAM, volviendo a los años 80, cuando muchas máquinas que tenían módulos de 32 KB estaban usando chips de 64 KB con una sección defectuosa desactivada). Esto en realidad puede significar que el rendimiento aumenta cuando integra DRAM con procesadores ...
Jules
7

Hay varias razones por las cuales agregar grandes cantidades de DRAM a una CPU podría no ser factible.

  1. El proceso y el fab pueden no estar configurados para DRAM. DRAM requiere elementos de circuito especiales que requieren pasos de fabricación adicionales para producir. Esto aumenta el costo de fabricación.

  2. Toda esa memoria tiene que ser probada. Las pruebas de memoria aumentan el tiempo de prueba. Ese es otro aumento de costos.

  3. Ampliar el dado es en sí mismo un aumento de costos, ya que significa menos dados por oblea. También afecta el rendimiento: un defecto elimina una fracción mayor de su oblea. Para un ejemplo extremo de esto, mire el costo de los sensores de imagen de fotograma completo (35 mm) en las cámaras.

  4. Desarrollar un proceso que pueda manejar tipos especiales de memoria requiere más tiempo, dinero y trabajo, y tiene un mayor riesgo de falla. Cualquier problema con la DRAM retrasaría el lanzamiento de la CPU. Las CPU de escritorio están a la vanguardia de la fabricación de semiconductores, por lo que un retraso puede ser una gran desventaja competitiva. (Ver: AMD vs. Intel de los últimos años).

  5. DRAM requiere detección analógica para las lecturas, así como una actualización periódica. No soy un experto en DRAM, pero dudo que alguna vez pueda ser tan rápido como una CPU de gama alta, independientemente de si está fuera del chip o en el chip. Por lo tanto, es probable que todavía esté atascado con el almacenamiento en caché SRAM.

  6. Incluso si puede superar los problemas anteriores y colocar un par de gigabytes de DRAM en una matriz de CPU, aún no será suficiente para ejecutar una PC de escritorio, una computadora portátil o un servidor, por lo que tendrá que tener memoria fuera del chip de todos modos .

Adam Haun
fuente
1
La mayoría de los cachés se implementan con ECC, y algunos procesadores Intel recientes incorporan chipkill y bloquean la redundancia para el caché. Esto reduce los requisitos de prueba y mejora los rendimientos significativamente para los troqueles más grandes. En contraste, con un sensor de imagen, no hay posibilidad de corrección de errores porque la información no se conoce a priori , y tampoco podemos decidir, cuando un bloque de píxeles no funciona correctamente, simplemente ignorarlo y usar uno de repuesto en su lugar.
Oleksandr R.
Es cierto que es más fácil obtener un mayor rendimiento con los recuerdos. Como dije, fue un ejemplo extremo.
Adam Haun
3

Además de las otras respuestas, hay más que se puede decir sobre dicho sistema. Mover la memoria al dado principal incluiría una serie de otros problemas de ingeniería. Tendría que redirigir los buses, construir un controlador DMA en el procesador principal, reestructurar el bus IRQ y determinar cómo deshacerse de todo ese calor extra que estaría generando en un área concentrada. Esto significa que el fabricante de la placa base también tendría que involucrarse para apoyar un cambio tan sustancial. Mientras que los sistemas de gama baja probablemente se beneficiarían de tal cambio, los sistemas de gama alta probablemente requerirían un enfriamiento sustancial. Dudo que la computadora portátil promedio pueda manejar tal chip, por ejemplo.

Tal chip sería mucho más caro, aunque la placa base principal bajaría de precio (aunque probablemente no sea apreciable). Si ha visto los paquetes para un controlador DMA, más los paquetes de RAM, sería difícil creer que toda esa lógica podría ser presionada en un solo dado que no sería sustancialmente más grande. También recuerde que las CPU están cortadas de obleas grandes que son de un tamaño particular. Esto significa que el fabricante también tendría muchos menos procesadores por oblea, lo que también aumentaría el costo general.

Tenga en cuenta que no estamos hablando sobre el uso de potencia en todo el sistema, lo que disminuiría, sino que habría una concentración aún mayor de potencia (y, por lo tanto, calor) en una sola área, lo que probablemente aumentaría la probabilidad de fracaso.

Finalmente, hay otra desventaja aquí, y es la capacidad de proporcionar sistemas personalizados. En este momento, los fabricantes pueden optar por instalar sistemas con procesadores idénticos pero con diferentes cantidades de memoria, o con diferentes procesadores pero con la misma cantidad de memoria, según las preferencias del cliente. Para ofrecer la multitud de configuraciones diferentes, tendrían que construir troqueles diferentes, cada uno en una línea de montaje diferente.

AMD está utilizando activamente la tecnología que realmente funciona de esa manera, donde cada parte del chip del procesador es una unidad lógica discreta que se puede cambiar por diferentes configuraciones. En el futuro, si tal diseño es viable, podríamos ver muy bien las CPU que ofrecen memoria en chip como una actualización costosa del módulo, tal vez intercambiando algo de potencia de procesamiento a cambio u otros ajustes. Por ejemplo, un día podríamos elegir entre 256 núcleos sin memoria incorporada, o 128 núcleos con memoria incorporada, o tal vez incluso otras configuraciones como parte GPU, parte CPU, parte RAM.

phyrfox
fuente
El principal problema con esta respuesta es que los diseños de SoC para teléfonos inteligentes en realidad contienen RAM. Esos no son mucho más caros, de hecho son más baratos.
MSalters
@MSalters Excepto que no están integrados en el mismo dado. Los troqueles de memoria están separados, después de haber sido probados y confirmados para que funcionen correctamente, y simplemente se empaquetan junto con el troquel del microprocesador.
Cepillo de dientes
2

Casi todo lo anterior + un problema adicional más: el calor.

Las células DRAM son esencialmente condensadores con fugas. Y el dieléctrico aquí es la capa de SiO2 en sí. A medida que aumenta la temperatura, las corrientes de fuga aumentan proporcionalmente. Estos descargan las células DRAM mucho más rápido, lo que requeriría velocidades de actualización mucho más rápidas, lo que aumentaría la complejidad, la corriente requerida y, por supuesto, agregaría algo más de calor.

Vasu
fuente
2

Además de las respuestas ya dadas, hay un aspecto adicional: el desperdicio debido a fallas de producción:

Digamos que 1/100 de todas las CPU de un determinado modelo producido son defectuosas (en realidad es menos, por supuesto; 1/100 es más fácil de calcular) y 1/100 de todas las RAM producidas son defectuosas.

Si ambos componentes se combinaran en un solo chip, 1/100 de todos los chips tendrían una CPU defectuosa y 1/100 de todos los chips tendrían una RAM defectuosa.

Esto significaría:

  • 1 de 10000 chips tendría RAM y CPU defectuosas
  • 99 chips tendrían RAM defectuosa
  • 99 chips tendrían una CPU defectuosa
  • En total, 199 de cada 10000 piezas producidas serían residuos

Produciendo chips separados, el cálculo es el siguiente:

  • 50 de 5000 RAM son defectuosas
  • 50 de 5000 CPU están defectuosas
  • 100 de 10000 piezas producidas serían residuos

Tenga en cuenta que un GB de RAM generalmente se hace en forma de un banco que consta de ocho chips, por lo que no tendría que combinar dos sino 9 componentes en un chip si desea colocar RAM y CPU en el mismo chip. Esto conduciría a aproximadamente 865 piezas defectuosas de 10000 producidas en el ejemplo simple anterior.

Las CPU "IBM Cell" tenían exactamente este problema. La consola "Playstation" usaba chips que estaban parcialmente defectuosos; El software de Playstation fue escrito de tal forma que los núcleos y SRAM defectuosos no fueron utilizados.

Martin Rosenau
fuente
1
AMD ofreció CPU de 3 núcleos por un tiempo por la misma razón. Creo que, en la práctica, las piezas generalmente se prueban a nivel de matriz antes de ser empaquetadas, por lo que su preocupación es más aplicable a las combinaciones de memoria y CPU monolíticas.
Oleksandr R.
Darpa ha obtenido un premio por una eficiencia energética de 50x al superar la pared de la memoria usando 3dSoC, que es tierra de fantasía en relación con los ingenieros de Intel y Qualcom, excepto que darpa es darpa. monolithic3d.com/blog/… Los SoC (sistema en un chip) son los mejores para procesadores en paralelo, lo que significa que hay 1000ds de grupos en lugar de 2/16.
com.prehensible
1

En realidad, hay dos tipos de RAM. Son RAM estática y RAM dinámica. La memoria estática es muy rápida pero tiene un costo más alto. Mientras tanto, la RAM dinámica es lenta en comparación con la RAM estática, pero tiene un costo económico en comparación con la RAM estática.

La memoria caché cae en la RAM estática. puede ver que vienen en tamaños KB o MB. Ellos son rápidos. Pero de alto costo.

Mohammed Fawzan
fuente
No exactamente, sí, son rápidos, pero eso se debe principalmente a que la distancia que deben recorrer los datos es mucho menor que en DRAM.
AStopher
3
En realidad, la celda SRAM es más rápida porque es más simple. Es un circuito digital biestable. Si accidentalmente lo configurara al valor analógico 0.8, se arreglaría moviéndose a la posición estable 1.0. DRAM no tiene tales estados estables. No se aleja de los estados intermedios. Peor aún, se mueve hacia tales estados, razón por la cual necesita circuitos de "actualización" correctivos adicionales.
MSalters
@MSalters: la celda SRAM NO es más simple que una celda DRAM. Tiene razón en que es mucho más estable, lo que hace que su uso sea ​​más simple (tanto en términos de circuitos de soporte como en diagramas de temporización). Pero las celdas SRAM son aproximadamente 6 veces más circuitos por bit que DRAM.
Ben Voigt
1
@BenVoigt: en el recuento de transistores, sí - 6T vs 1T. Pero DRAM tiene un condensador que es un componente bastante extraño. SRAM es solo transistores conectados juntos.
MSalters
El condensador en DRAM también se implementa como un transistor
Ben Voigt
1

Además de las otras razones mencionadas, muchos sistemas tienen más de un núcleo de CPU. En ocasiones, cuando la información almacenada en la DRAM principal es coherente con todas las copias almacenadas en caché, todos los procesadores que no tienen la información almacenada en caché tendrán el mismo acceso. Algunas arquitecturas están diseñadas en el supuesto de que cada núcleo de CPU "poseerá" un rango de espacio de direcciones, e incluso si una CPU es capaz de acceder a la memoria que es propiedad de otros procesadores, dichos accesos serán mucho más lentos que los accesos a su propia memoria , pero x86 generalmente no se implementa de esa manera.

Si un sistema fuera diseñado bajo la suposición de que los núcleos del procesador poseen ciertos rangos de direcciones, y el código debería tratar de minimizar el uso de los rangos de direcciones de otros procesadores, entonces tendría sentido que cada código del procesador incluyera una generosa cantidad de memoria en el chip. Tal diseño podría reducir el tiempo requerido para que un núcleo de procesador acceda a su propia memoria, pero probablemente aumentaría el tiempo requerido para acceder a la memoria de otro procesador. Sin embargo, a menos que el sistema se diseñe en torno a tal suposición, es probable que los datos se distribuyan entre los procesadores sin tener en cuenta quién los necesita cuando. Incluso si el tiempo adicional requerido para acceder a los datos desde otra CPU (frente a un sistema de memoria externo) fuera solo la mitad del tiempo ahorrado en un acceso interno,

Si uno estuviera diseñando un sistema desde cero para adaptarse a las tecnologías actuales, una arquitectura de memoria no uniforme podría permitir una mayor inversión que la que necesita permitir que todos los procesadores accedan a toda la memoria de manera eficiente. Sin embargo, dados los diseños de software actuales, tener un sistema de memoria externo que sea compartido entre los procesadores puede ser más eficiente que tratar de tener un almacenamiento de datos masivo dentro de los procesadores mismos.

Super gato
fuente
2
Las arquitecturas de memoria no uniformes ya se utilizan (e incluso son comunes) en la actualidad. Para una CPU con controladores de memoria integrados utilizados en un sistema de múltiples procesadores, los datos almacenados en la memoria física de otro procesador son más distantes y accesibles con una latencia más alta que la de su RAM conectada localmente. En la práctica, lo que sucede en estos sistemas es que los procesadores están equipados con niveles adicionales de caché y el tráfico de coherencia es manejado en parte por el tejido de conexión. POWER7 y POWER8 son de este tipo.
Oleksandr R.
1

Si bien todas las respuestas anteriores son correctas al señalar por qué es tan difícil agregar más memoria a la CPU, también es cierto que hay mucha memoria en las CPU modernas.

En las operaciones en tiempo real, cuando los retrasos deterministas son importantes, no es extraño usar el caché en chip como memoria direccionable, para código y / o datos. La ventaja es un tiempo de acceso rápido y constante, y la desventaja es que la memoria en el chip es bastante limitada.

Surgir
fuente
1

Los problemas que describe en su pregunta original solo podrían evitarse si TODA la memoria de la máquina se incluyera en la CPU. Cualquier memoria adicional agregada a la máquina a través de las ranuras en la placa principal estaría sujeta a los mismos retrasos que usted describe y requeriría dispositivos de control lógico y de clasificación entre la CPU / RAM y la RAM incorporada.

La RAM es barata y los usuarios la expanden normalmente una o incluso dos veces entre la actualización de sus CPU.

También recuerde que una llamada "Fetch" típica, incluso si la RAM se está ejecutando a la velocidad del reloj de la CPU, provocará una serie de ticks inactivos en la CPU.

La organización tradicional de la memoria en una máquina es una pirámide con los registros de la CPU en la parte superior, luego el caché, luego la RAM y luego el disco. Por lo general, las máquinas que funcionan bien tienen una combinación de una velocidad de reloj decente, una cantidad razonable de caché, una buena cantidad de RAM y un disco duro (o matriz) de alta velocidad. En los últimos años, el rendimiento del disco generalmente brinda el mejor aumento de rendimiento en la mayoría de los discos de PC y de altas RPM, los discos con caché y discos de estado sólido dan un buen impulso de rendimiento.

Sí, una máquina con toda su RAM en el chip funcionaría bien en las aplicaciones modernas, pero una máquina con algo de su RAM en el chip que ejecuta un sistema operativo estándar probablemente no proporcionará el aumento de rendimiento que usted podría pensar.

Steve Matthews
fuente