¿Qué es una CPU basada en pila? ¿Qué lo hace especial y cuál es su contraparte?

Una CPU contiene lógica para actuar sobre instrucciones de “código de máquina”, así como una serie de “registros” que se utilizan para rastrear la dirección de memoria de la siguiente instrucción de máquina y cualquier dato temporal necesario para la operación actual, y otros datos relacionados. o direcciones. Cuando una CPU es “interrumpida” por un dispositivo periférico que necesita servicio, el contenido de los registros se escribe temporalmente en una ubicación específica en la memoria antes de que la CPU pueda atender la interrupción. Cuando finaliza el mantenimiento del dispositivo periférico, la CPU restaura su estado anterior al leer los datos de la pila y volver a escribirlos en sus registros. Cuando se completa esto, la CPU puede reanudar el procesamiento que estaba haciendo antes de la interrupción.

La pila es lo que se llama un búfer FIFO, lo que significa que la información se escribe en una forma de “Primero en entrar – Primero en salir”. La ubicación actual de la siguiente dirección disponible en la pila se almacena en un registro llamado “puntero de pila”. “Tradicionalmente, la pila comenzó en la dirección RAM más alta disponible.

Hoy, creo, los procesadores mantienen la memoria local que almacena la información de la pila, que es más rápida que la RAM, y no utilizan pilas tradicionales.

Una CPU de máquina de pila es una alternativa al modelo de máquina de registro que es tan estándar hoy en día. Vea aquí: Capítulo 6: Comprensión de las máquinas apiladoras

Lo que lo hace “tan especial” es principalmente que, debido al esquema de asignación única, los peligros de registro de nombres (por ejemplo, peligros WAR) son imposibles.

Su “contraparte” es la máquina de registro tradicional que se usa prácticamente en todas partes en la actualidad.

Las pilas de CPU son máquinas virtuales, otras CPU usan hyperthreads o Hyper-V que actúan como máquinas virtuales.

Hyperthreads se encuentran en procesadores de doble núcleo o procesadores de cuatro núcleos, principalmente nosotros en sistemas Intel x86 o x64.

Hyper-V se encuentra en los sistemas operativos Windows, utilizado para procesar datos como una máquina virtual incorporada. Hyper-V o hipervisor pueden crear máquinas virtuales en sistemas x86 o x64 que ejecutan Windows 7 a Windows 10. Hyper-V reemplazó a Microsoft Virtual PC de Microsofts.

Para explicaciones completas ver

http://users.ece.cmu.edu/~koopma

El significado habitual de una CPU basada en pila es una que utiliza una pila de valores LIFO en memoria en lugar de registros de máquina. Una máquina de pila puede ser muy simple.

Aquí hay uno implementado en 200 líneas de código verilog

La CPU J1 Forth

El consenso general es que las arquitecturas de pila son simples, pero lentas. Es muy difícil construir una implementación que haga más de una instrucción por ciclo de máquina.