¿Puede una CPU funcionar solo con una fuente de alimentación y una ROM, utilizando solo la memoria caché interna como RAM?

59

¿Puede una CPU (como la Intel i3 / i5 / i7 / Xeon) con memoria RAM en caché en el chip usarla como su única RAM funcional, sin ningún banco de memoria externo conectado?

O debe que haya RAM externa, y no se puede acceder o usar el caché solo?

Las CPU de escritorio / servidor modernas a menudo tienen más memoria RAM interna que las computadoras de la década de 1990 en toda la memoria del sistema, por lo que debería haber suficiente espacio para ejecutar código simple.

Las CPU anteriores a la existencia de la memoria caché, como la 6502, no podrían hacer nada, ya que la CPU interna RAM solo contaba con 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.

    
pregunta Dale Mahalko

4 respuestas

67

Vea esta cuenta extremadamente detallada de la secuencia de inicio de la PC: enlace

  

Dado que no hay DRAM disponible en este punto, el código inicialmente opera en un entorno sin apilamiento. 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 código extremadamente ajustado al usar esta función de caché como RAM porque un desalojo sería inaceptable para el sistema en este punto de la secuencia de inicio; No hay memoria para mantener la coherencia. Es por eso que los procesadores operan en "Modo No Desalojar" (NEM) en este punto del proceso de arranque, cuando están operando en una base de caché como RAM. En NEM, una falla de línea de caché en el procesador no causará 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 ROM Flash del BIOS.

También he visto este comportamiento en algunos procesadores ARM. Habrá registros de configuración dentro del SoC que le permitirán usar la memoria caché como RAM al principio de la secuencia de inicio, para ejecutar un programa que encuentre, enumere y configure la DRAM.

    
respondido por el pjc50
14

En general, la memoria caché no es direccionable. Un programa no puede almacenar o recuperar datos intencionalmente de él.

    
respondido por el Lior Bilia
9

Si bien esto no aborda directamente las familias de procesadores especificadas en la pregunta, el siguiente esquema funcionaría con los procesadores x86 anteriores, así que sí, es posible operar sin RAM o 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 decodificaba señales de tiempo de MSF transmitidas 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. Esto obviamente significaba que no podía haber llamadas a subrutinas ya que había memoria disponible para guardar la pila.

En aquel entonces, el costo de la memoria RAM era alto y como se trataba de un proyecto de pasatiempo, era importante mantener los costos bajos, aparte de ser un ejercicio académico interesante. Esto también fue antes de los días de los microcontroladores ampliamente disponibles (un 8751 con un costo de más de £ 100 IIRC).

    
respondido por el uɐɪ
-3

Normalmente, una CPU requerirá un reloj externo. Pero con eso, sí se puede.

    
respondido por el John Hamilton

Lea otras preguntas en las etiquetas