¿Puede ejecutar un procesador de clase x86 sin ramificación?

9

Los procesadores x86 modernos tienen al menos 512K de caché L2. Hay aplicaciones que caben completamente en esta cantidad de memoria. ¿Puedes ejecutar estos chips sin RAM adjunta? Si es así, ¿hay una manera de hacerlo que elimine la penalización de tiempo de reescritura cuando la CPU intenta mantener la coherencia de RAM?

No tengo una aplicación específica en mente, solo es curiosidad ociosa. Sin embargo, estoy seguro de que en algún lugar hay una aplicación de nicho donde sería útil.

    
pregunta Mark Ransom

3 respuestas

12

Sí, puedes. Al simular lecturas de ubicaciones de memoria física consecutivas (no existentes), establece las etiquetas en el caché. Luego, desactiva el relleno adicional de las despedidas de soltero e ingresa la escritura, lo que limita las lecturas / escrituras al caché y se comportará como una RAM normal.

Algunos de los proyectos de reemplazo de bios hacen esto porque entonces puede gastar mucho más código en la configuración del controlador de memoria del conjunto de chips y el conjunto de chips, por lo que puede escribirlo en C, por ejemplo.

Esta práctica se usa ampliamente para las CPU de clase incorporada, así como para manejar los cargadores de arranque. Los métodos para convertir el caché en un modo similar a la RAM varían un poco.

Para una breve introducción de bajo nivel, puede consultar esta presentación.

Tenga en cuenta que, como otros han señalado, todavía necesita cargar el código de inicio desde algún lugar, obviamente.

    
respondido por el Bjorn Wesen
7

Cuando la CPU se reinicia, la memoria caché se desactiva. El BIOS es lo que inicialmente configura y borra el caché. Así que no, no se puede ejecutar sin RAM porque, en primer lugar, no hay RAM para arrancar la cosa.

    
respondido por el user3624
3

No sé qué tan preciso es esto, pero estos son mis pensamientos:

No creo que haya ninguna forma de obtener acceso programático al caché. No puede garantizar de una instrucción a la siguiente lo que estaría en el caché y dónde se ubicaría, por lo que no puede usarlo de manera confiable como RAM, incluso si pudiera acceder a él directamente.

Puede ejecutar un x86 sin RAM, pero no podrá hacer que sea muy útil. Estarías limitado a utilizar puramente los registros internos para el almacenamiento de datos.

    
respondido por el Majenko

Lea otras preguntas en las etiquetas