¿Puede una CPU (como la Intel i3/i5/i7/Xeon) con caché de RAM en el chip usarla como su única RAM funcional, sin ningún banco de memoria externo conectado?
¿ O debe haber RAM externa y no se puede acceder a la memoria caché o usarla sola?
Las CPU modernas de escritorio/servidor a menudo tienen más RAM de caché interna que la que tenían muchas computadoras de la década de 1990 en la memoria del sistema completo, por lo que debería haber suficiente para ejecutar código simple.
Las CPU de antes de que existiera el caché, como el 6502, no podrían hacer nada, ya que la RAM interna de la CPU solo ascendía a unos pocos bytes para el contador de direcciones y los acumuladores.
No se trata de ejecutar ningún tipo de sistema operativo moderno, sino de ejecutar un código simple programado en una ROM personalizada o ingresado manualmente con un teclado de entrada hexadecimal.
Vea esta cuenta extremadamente detallada de la secuencia de arranque de la PC: http://www.drdobbs.com/parallel/booting-an-intel-architecture-system-par/232300699?pgno=2
Dado que no hay DRAM disponible en este momento, el código opera inicialmente en un entorno sin pila. La mayoría de los procesadores modernos tienen una memoria caché interna que se puede configurar como RAM para proporcionar una pila de software. Los desarrolladores deben escribir un código extremadamente estricto cuando usan esta función de caché como RAM porque una expulsión sería inaceptable para el sistema en este punto de la secuencia de arranque; no hay memoria para mantener la coherencia. Es por eso que los procesadores funcionan en "Modo sin desalojar" (NEM) en este punto del proceso de arranque, cuando funcionan con caché como RAM. En NEM, una pérdida de línea de caché en el procesador no provocará un desalojo. Desarrollar código con una pila de software disponible es mucho más fácil, y el código de inicialización a menudo realiza la configuración mínima para usar una pila incluso antes de la inicialización de DRAM.
Puede observar esto ejecutando una PC sin RAM: reproducirá una serie de pitidos. El programa que los reproduce se ejecuta desde la BIOS Flash ROM.
También he visto este comportamiento en algunos procesadores ARM. Habrá registros de configuración dentro del SoC que le permitirán usar el caché como RAM al principio de la secuencia de arranque, para ejecutar un programa que encuentre, enumere y configure la DRAM.
INVD
(al salir del modo CAR, invalidar el caché en lugar de tener datos inútiles escritos en la memoria, potencialmente sobre algo valioso).Generalmente, la memoria caché no es direccionable. Un programa no puede almacenar o recuperar datos intencionalmente de él.
Si bien esto no aborda directamente las familias de procesadores especificadas en la pregunta, el siguiente esquema funcionaría en los procesadores x86 anteriores, por lo que sí, es posible operar sin RAM ni caché, aunque este enfoque requiere algunas habilidades de programación creativa.
En la década de 1980 encontré un diseño para un receptor de radio que descodificaba las señales horarias de MSF emitidas en el Reino Unido. Este diseño usaba un procesador Z80 y solo tenía una ROM para el almacenamiento del programa. Todo el procesamiento y almacenamiento de datos se realizó utilizando los registros internos dentro del procesador. Obviamente, esto significaba que no podía haber llamadas a subrutinas ya que había memoria disponible para almacenar la pila.
En ese entonces, el costo de la memoria RAM era alto y, como se trataba de un proyecto de pasatiempo, era importante mantener los costos bajos, además de ser un ejercicio académico interesante. Esto también fue antes de los días de los microcontroladores ampliamente disponibles (un 8751 con eprom costaba más de £ 100 IIRC).
Por lo general, una CPU requerirá un reloj externo. Pero con eso, sí se puede.
PlasmaHH
usuario3528438
marcus muller
lector de matemáticas
chris stratton
Dmitri Grigoriev
david schwartz
Noexistiré Idonotexist
JBH
viejo contador de tiempo
viejo contador de tiempo