Tamaño de registro de instrucción en procesadores

Estoy aprendiendo los conceptos básicos del procesador. tengo esta duda

Si tengo un procesador con 9 instrucciones de un byte y una instrucción de 2 bytes en su arquitectura de conjunto de instrucciones, ¿no debería ser el registro de instrucciones del procesador de 16 bits en lugar de 8 bits? Di por ejemplo:

2000  MOV A,B
2001  MVI C, 20h  --- 2 byte instruction

En mi libro, dice que la PC apunta a la dirección 2003 después de 2001. Entonces, significa que cuando la PC apuntaba a 2001, tanto los datos inmediatos de 8 bits como el código de operación de 8 bits se obtuvieron en el registro de instrucciones de una vez, ¿verdad? ¿O se obtiene en dos ciclos? También me gustaría saber cuál es el significado de las cachés de datos e instrucciones en un procesador. ¿Es necesario en un procesador?

El segundo es también una instrucción de 8 bits con argumentos. Los argumentos se cargan en otros registros.
Sus ejemplos de código se parecen a las instrucciones 8080, 8085, Z80, etc. Todos estos son procesadores sin caché, con bus de datos de 8 bits. Entonces, mov a,b requiere una transacción de bus, mientras que mvi c,20h requiere dos transacciones de bus secuenciales. En estos procesadores simples, la PC se incrementa en 1 por cada transacción de bus (excepto para las instrucciones de tipo jmp, call, return, reset , donde se sobrescribe el contenido de la PC).

Respuestas (1)

El registro de instrucciones generalmente contiene solo los bits que constituyen la parte del "código de operación" de una instrucción (incluidos los bits que afectan los modos de direccionamiento) durante la ejecución de la instrucción, de modo que la lógica de decodificación de la instrucción tenga acceso a él.

Los bytes de la instrucción que son solo operandos generalmente no se mantienen en el registro de instrucciones.

Si el ancho del bus del procesador es de solo 8 bits, los dos bytes de la instrucción se recuperan en ciclos separados. El segundo ciclo se ejecuta después de que la lógica de decodificación de instrucciones haya decidido que hay un segundo byte como resultado de examinar el código de operación en el primer byte.

Y no, los cachés no son necesarios para el funcionamiento de un procesador, pero ayudan a eliminar los cuellos de botella cuando el procesador es más rápido que la memoria principal.

Hmm aquí es donde realmente reside mi duda. Two fetch significa que la PC tiene que apuntar a 2002 después de 2001, ¿verdad? Si apunta a 2003 después de 2001, ¿cómo se pueden obtener los datos de 2002 en el segundo ciclo, desde la memoria del programa?
Eso es un detalle de implementación. Es probable que durante la ejecución de la instrucción, la PC apunte temporalmente a 2002 para buscar el segundo byte. Pero una vez finalizada la instrucción, la PC apunta a 2003. Nadie dijo nunca que va de 2001 a 2003 en un solo paso.
En realidad, era una pregunta en PC sin especificar ningún detalle de implementación. Acabo de leer la respuesta ya que la PC apuntará a 2003 y la explicación como: "La PC apunta a la siguiente instrucción que se recuperará de la memoria". Eso causó toda esta confusión :-)