¿Cómo funciona un microprocesador en secuencia?

5

Estoy tratando de entender cómo funcionan los microprocesadores. Soy un experto en sumadores completos, aritmética booleana, buses y similares, y de hecho, he "construido" un sumador completo antes (en una simulación por computadora).

Pero cuando trato de aprender más, siempre me quedo atascado en esto: ¿cómo hace un microprocesador las cosas en secuencia? Toda la documentación y los videos dicen "La unidad de control hace esto, y luego hace esto, y luego hace esto ..." pero, ¿cómo puede hacerlo? En mi sumador completo, usted configuraría sus entradas y eso generaría la respuesta, y no había forma de que empezara a hacer otra cosa. Entonces, ¿qué permite a los microprocesadores realizar varios pasos?

EDITAR: Para las personas que tienen la misma pregunta ... Un procesador tiene estados que operan en los que controlan su comportamiento, y estos estados se definen por los datos que se almacenan en él. Ciertos dispositivos (como pestillos o chanclas) permiten que el procesador cambie su estado con cada pulso de reloj. No entiendo todos los detalles, pero espero que esto ayude.

    
pregunta Mahkoe

2 respuestas

5

Todos los microprocesadores internamente tienen un conjunto de registros. La mayoría son de propósito general y se usan para operaciones aritméticas (+, -) o lógicas (AND, OR, XOR) y otros propósitos. Sin embargo, hay un registro dedicado llamado contador de programas o PC (que no debe confundirse con el PC de su escritorio).

Cuando un microprocesador se enciende, la PC se carga con un valor fijo, a menudo 0. La PC es un puntero a la memoria del programa, es decir, si la PC es 0, entonces se obtienen y ejecutan las instrucciones de la dirección 0. La PC se incrementa. Asumiré una arquitectura de microprocesador de 16 bits (dos bytes), con una memoria direccionable por bytes, por lo que la PC se incrementa en dos cada vez. Así que las instrucciones se ejecutan en secuencia, 0, 2, 4, 6, 8, etc.

Este orden secuencial se divide en dos casos: una instrucción de bifurcación (a veces llamada salto) y una llamada de subrutina. Una instrucción de bifurcación contiene la dirección de la siguiente instrucción que se ejecutará. Entonces, si la instrucción en la dirección de memoria 8 era BRA 100, la siguiente instrucción que se buscaría saldría de la ubicación de memoria 100. La siguiente instrucción después de eso provendría de la ubicación 102, etc.

Las instrucciones de bifurcación pueden ser incondicionales o condicionales. El ejemplo que acabamos de dar fue una rama incondicional, siempre se toma. También puede tener ramas condicionales, que dependen de alguna condición, como que un registro particular sea cero. Si el registro tuviera un valor inicial y se redujera repetidamente en algún punto antes de la instrucción de bifurcación condicional, esto formaría un bucle.

Una llamada de subrutina también va a otra ubicación, pero cuando el código allí (la subrutina) finaliza, ejecuta una instrucción de retorno y regresa a la instrucción que sigue a la llamada de subrutina.

40    CALL 80     (subroutine call)
42    (comes back here after subroutine executes RET instruction)
.
.
.
80    (first instruction of subroutine)
.
.     (more instructions)
.
88    RET    (will go back to address 42)

Por lo general, hay un área especial en la memoria llamada "pila" que mantiene un registro de la dirección a la que la subrutina regresa.

    
respondido por el tcrosley
0

Si puede encontrar una copia de 'The Art of Digital Design' de Prosser & Winkel, esto tiene una buena explicación de cómo funcionan los microprocesadores en el nivel de la puerta lógica (la última parte del libro es un ejemplo detallado del diseño de una CPU compatible con PDP-8). Encontré el libro muy útil para comprender cómo se puede construir un algoritmo secuencial arbitrario a partir de puertas lógicas: la clave para mí fue pensar en el algoritmo en términos de algorithmic state machine , que es bastante sencillo de convertir a lógica.

    
respondido por el Chris Johnson

Lea otras preguntas en las etiquetas