¿Cómo identifica la unidad del procesador las instrucciones descodificadas cuando desea la siguiente instrucción?

0

He leído que para evitar la falta de memoria caché, se recopilan y descodifican muchas instrucciones y se guardan en la memoria caché, ya que en la mayoría de los casos las instrucciones cercanas a la INSTRUCCIÓN SOLICITADA se solicitarán en un futuro próximo.

Acabo de comenzar Computer Architecture y estoy confundido en cuanto a cómo el PROCESADOR sabe qué instrucciones se han descodificado y ya se han guardado en el caché.

La computadora es una máquina, ¿verdad? Entonces, cuando encuentra una solicitud de una instrucción del procesador, se lee el caché, pero ¿cómo saber que el caché ya tiene esa instrucción descodificada?

¿Hay un marcador p. ej. HOLA, soy la instrucción descodificada INSTR2 que viene después de la instrucción un INSTR1 y pertenezco a este proceso ...?

Por favor, ayúdeme aquí, soy un principiante en arquitectura de computadoras y me gustaría algunos consejos sobre la pregunta,

gracias

    
pregunta Doopy Doo

2 respuestas

2

En términos generales, un caché es una capa que abstrae el acceso a la memoria. Cuando se necesita información, se especifica por su dirección. Todas las entradas en el caché están etiquetadas con la dirección de memoria del dato que contienen. Cuando el procesador solicita un dato, el circuito de control de caché busca una dirección coincidente.

  • Si la memoria caché es totalmente asociativa , la dirección completa (excepto los bits menos significativos) se compara con la memoria caché completa. Esta coincidencia no es una búsqueda lineal, sino una búsqueda asociativa. Las entradas de caché se comparan de alguna manera con la dirección en paralelo y una de ellas se anuncia como una coincidencia.

  • Si la memoria caché es establecer asociativa , algunos de los bits de dirección se utilizan para seleccionar directamente un grupo. Por ejemplo, si hay 16 depósitos, entonces cuatro bits de la dirección pueden tomarse como una dirección de depósito de 0 a 15. Luego, se realiza una búsqueda asociativa de la dirección dentro de ese depósito. Esto significa que para cualquier dirección de memoria dada, sabemos a qué grupo de caché se asigna, pero no a qué línea de caché específica dentro de ese grupo.

  • Si un caché se asigna directamente , algunos de los bits de dirección se utilizan para seleccionar una sola línea de caché, ya sea que contengan datos para esa dirección o no. Así que no hay búsqueda asociativa. Cada dirección se asigna a una sola línea de caché. (Si un programa accede de manera alternativa a dos elementos en diferentes direcciones que se asignan a la misma línea de caché, el rendimiento es malo. Este es el tipo de caché peor / más barato).

Cuando hay un acierto de caché, entonces el elemento puede suministrarse rápidamente al circuito solicitante fuera del caché. Si hay una falla, entonces se debe ejecutar un ciclo de acceso a la memoria. Los datos no solo se proporcionan al circuito solicitante, sino que también se instalan en la memoria caché (reemplazando otra cosa a la que no se haya accedido recientemente).

Los cachés de instrucciones tienden a ser especializados, para aprovechar los patrones de acceso y la estructura de los datos. El caché puede funcionar en un nivel superior, combinado con la decodificación de instrucciones. El circuito solicitante no pide simplemente un código de operación de instrucción, sino que exige una instrucción descodificada. El circuito combinado de almacenamiento en caché y decodificación lo proporciona. La idea es la misma. Tome la dirección y encuentre una instrucción descodificada para esa dirección. Si no se encuentra en el caché, entonces debe ser recuperado y decodificado.

Entonces, la respuesta a la pregunta "cómo sabe el procesador" es que el procesador está dividido en unidades lógicas, y estas unidades se prestan servicios entre sí. Las unidades que solicitan datos de la memoria no tienen que conocer la memoria caché. La responsabilidad se pone en el circuito de control de caché. Es decir. Dentro del procesador Ovearall, existe un procesador más pequeño que, de hecho, "no sabe" que los datos están en un caché.

    
respondido por el Kaz
1

esto se conoce como captación previa y se realiza de forma especulativa. El secuenciador simplemente calcula las ramas posibles delante del contador / puntero del programa y realiza un seguimiento de las variaciones. Es solo un simple direccionamiento a la nueva dirección precargada / calculada.

Debería ver primero las técnicas de canalización y otras, y luego este concepto será fácil de entender.

    
respondido por el placeholder

Lea otras preguntas en las etiquetas