¿cómo almacena el contador de programas la memoria de instrucciones cuando se carga el programa? [cerrado]

1

se menciona en el libro organización y diseño de computadoras por Patterson / Hennessy página 252 que:

  

La memoria de instrucciones solo necesita proporcionar acceso de lectura porque la   datapath no escribe instrucciones. Desde la memoria de instrucciones.   Solo lee, lo tratamos como lógica combinacional: la salida en cualquier momento.   refleja el contenido de la ubicación especificada por la dirección introducida,   y no se necesita señal de control de lectura. ( Tendremos que escribir el   memoria de instrucciones cuando cargamos el programa; esto no es difícil de agregar,   y lo ignoramos por simplicidad.

mi pregunta es : ¿cómo es posible almacenar la memoria de instrucciones cuando se carga el programa? ¿deberíamos agregar un habilitar a la PC que se activa por el sistema operativo y el sistema operativo luego escribe la dirección en la PC? o hay otras formas ??

Aquí hay una figura simple de PC y memoria de instrucciones

    
pregunta Fatemeh Karimi

2 respuestas

3

Básicamente, todo el texto está diciendo que, de alguna manera, el programa se carga en la memoria antes de que la CPU pueda comenzar a ejecutarlo. Dado que el texto solo intenta discutir cómo la CPU ejecuta las instrucciones fuera de la memoria del programa, la forma en que las instrucciones terminan en la memoria del programa es, en primer lugar, un detalle de implementación.

Hay muchas formas de obtener las instrucciones en la memoria del programa, y depende en gran medida de la arquitectura.

Los sistemas basados en memoria de solo lectura tendrán las instrucciones cargadas en la memoria del programa durante la fabricación del chip (con una máscara ROM) o con un hardware de programación externo que escribe en la matriz de memoria.

Los sistemas que contienen memoria flash a menudo tienen algún mecanismo de autoprogramación en el que el procesador puede ejecutar instrucciones especiales o escribir en registros especiales para activar una operación de borrado o escritura en la memoria del programa. Es posible que la CPU deba detenerse temporalmente para permitir que la operación se complete.

Una computadora de escritorio estándar que se ejecuta fuera de la RAM y carga los programas desde un disco duro tiene un proceso mucho más complejo. En este caso, el arranque inicial se haría desde una ROM flash de algún tipo, posiblemente copiada en RAM por componentes en la placa base antes de que la CPU principal pueda comenzar a ejecutarse. Luego, este código de inicio cargará más código en la RAM desde un disco duro o unidad de estado sólido. Una CPU de escritorio o servidor en realidad ni siquiera ejecuta el código de la RAM, ejecuta el código de la memoria caché en el chip, que a su vez se carga desde la RAM. Debido a esto, es posible que la CPU ejecute el software fuera de la memoria caché mientras se realizan las operaciones de memoria para hacer otras cosas, incluida la copia de otro código ejecutable desde un disco duro y en la RAM. La CPU también tiene parada y espera de vez en cuando cuando el código que quiere ejecutar no está en el caché.

    
respondido por el alex.forencich
0

Entiendo tu pregunta, ¿cómo puedes arreglar un auto mientras conduces?

El procesador no necesita la memoria de instrucciones todo el tiempo, bloquea la instrucción en un registro (o muchas instrucciones en una cola). Hasta que se procese, la memoria de instrucciones, los datos y las direcciones pueden ser accedidos por el propio procesador o por otro coprocesador.

Si la escritura en la memoria de instrucciones es rápida como una memoria RAM, se puede hacer en un solo paso, luego la PC recupera las direcciones y la siguiente instrucción se puede leer en la memoria de instrucciones. En este momento, las direcciones son manejadas por un registro diferente.

Si es un proceso largo como en memorias flash, alguien más lo hace, por lo general la memoria de instrucciones está organizada en bancos, el banco que está en proceso de escritura no está disponible para leer instrucciones. El procesador está enviando los datos al motor de programación mientras ejecuta las instrucciones de un banco diferente.

Por supuesto, el código inicial, el gestor de arranque que le dice al procesador cómo cargar un programa, se escribe de forma externa, en la fábrica, usando programadores, etc. sin la intervención del procesador.

    
respondido por el Dorian

Lea otras preguntas en las etiquetas