64 votos

¿Puede una CPU funcionar con nada más que una fuente de alimentación y una ROM, utilizando únicamente la caché interna como RAM?

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

O debe ¿hay memoria RAM externa y no se puede acceder a la caché o utilizarla sola?

Las CPUs modernas de escritorio/servidor suelen tener más memoria RAM de caché interna que la que tenían muchos ordenadores de los años 90 en toda la memoria del sistema, por lo que debería haber suficiente para ejecutar código sencillo.

Las CPUs de antes de que existiera la caché, como el 6502, no podrían hacer nada, ya que la memoria RAM interna de la CPU sólo alcanzaba 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 simple código programado en una ROM personalizada, o introducido a mano con un teclado hexadecimal.

68voto

jns Puntos 449

Vea este relato extremadamente detallado de la secuencia de arranque del PC: http://www.drdobbs.com/parallel/booting-an-intel-architecture-system-par/232300699?pgno=2

Como no hay DRAM disponible en este punto, el código opera inicialmente en un entorno sin pilas. La mayoría de los procesadores modernos tienen una caché interna que puede configurarse como RAM para proporcionar una pila de software. Los desarrolladores deben escribir un código extremadamente ajustado cuando utilizan esta función de caché como RAM porque un desalojo sería inaceptable para el sistema en este punto de la secuencia de arranque; no hay memoria para mantener la coherencia. Por eso los procesadores operan en "Modo Sin Desalojo" (NEM) en este punto del proceso de arranque, cuando están operando en base a la caché como RAM. En NEM, una pérdida 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 utilizar una pila incluso antes de la inicialización de la DRAM.

Esto se puede observar haciendo funcionar un PC sin RAM: reproducirá una serie de pitidos. El programa que los reproduce se ejecuta desde la Flash ROM de la BIOS.

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

14voto

Matt Puntos 150

Generalmente, la memoria caché no es direccionable. Un programa no puede almacenar o recuperar datos intencionadamente de ella.

10voto

sq1020 Puntos 143

Aunque esto no se refiere directamente a las familias de procesadores especificadas en la pregunta, el esquema que se presenta a continuación funcionaría en los primeros procesadores x86, por lo que sí es posible operar sin RAM ni caché, aunque este enfoque requiere algunas habilidades creativas de programación.

En la década de 1980 me encontré con un diseño para un receptor de radio que decodificaba el Señales horarias MSF emitido en el Reino Unido. Este diseño utilizaba un procesador Z80 y sólo tenía una ROM para el almacenamiento de programas. Todo el procesamiento y almacenamiento de datos se realizaba utilizando los registros internos del procesador. Esto obviamente significaba que no podía haber llamadas a subrutinas ya que había memoria disponible para mantener la pila.

Por aquel entonces, el coste de la memoria RAM era elevado y, al tratarse de un proyecto de aficionado, era importante mantener los costes bajos, además de ser un ejercicio académico interesante. Esto fue también antes de los días de los microcontroladores ampliamente disponibles (un 8751 con eprom costaba más de £100 IIRC).

-3voto

BramMooij Puntos 101

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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X