el registro contador de programa (cp) guarda la registro

25
El registro contador de programa (CP) guarda la dirección de la próxima instrucción. La dirección se guarda en el registro de instrucción (IR) y CP se incrementa en 1. Si no hay bus directo de acceso a memoria entonces: La dirección se pone en el registro de dirección de memoria (MAR). Se lee el contenido de la dirección y se pone en el registro de datos en memoria (MBR) Es el contenido del MBR el que se guarda en el IR. 30

Upload: others

Post on 29-Oct-2021

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: El registro contador de programa (CP) guarda la registro

� El registro contador de programa (CP) guarda la dirección de la próxima instrucción.

� La dirección se guarda en el registro de instrucción (IR) y CP se incrementa en 1.

� Si no hay bus directo de acceso a memoria entonces:

� La dirección se pone en el registro de dirección de memoria (MAR).

� Se lee el contenido de la dirección y se pone en el registro de datos en memoria (MBR)

� Es el contenido del MBR el que se guarda en el IR.

30

Page 2: El registro contador de programa (CP) guarda la registro

� La unidad de control analiza el campo “código de operación” de la instrucción

� Y determina las operaciones que hay que realizar para su correcta ejecución.realizar para su correcta ejecución.

31

Page 3: El registro contador de programa (CP) guarda la registro

� Si es necesario se obtienen los operandos o bien de los registros internos de la CPU, de la memoria, o incluso de la propia instrucción.

� Para ello se tendrá en cuenta el tipo de direccionamiento.direccionamiento.

32

Page 4: El registro contador de programa (CP) guarda la registro

� Se realiza la operación indicada en la instrucción.

� Si es precios se almacena el resultado en registros internos de la CPU o en la memoria.registros internos de la CPU o en la memoria.

33

Page 5: El registro contador de programa (CP) guarda la registro

� A veces es necesario hacer llamadas a subprogramas.

� Dicha llamada es una transferencia temporal de control al subprograma.

� Cuando este termine se tendrá que reanudar el programa principal.principal.

� Por eso cuando se hace una llamada a un subprograma:� Se guarda el contenido actual de CP o bien en un registro interno de la CPU o

en memoria. � Se carga S en el CP y se comienza su ejecución.� La instrucción final de S será RET, en ese momento se recupera en el CP el

valor que guardamos anteriormente en un registro o memoria.� Para llamadas recursivas a subprogramas, se puede usar una pila en la que

vamos almacenando los distintos CP que luego iremos recuperando con cada instrucción RET.

34

Page 6: El registro contador de programa (CP) guarda la registro

� Las peticiones de interrupción se pueden producir en cualquier instante del ciclo de ejecución.

� De todas formas, para asegurarse que no hay pérdida de información, el computador normalmente solo reconoce interrupciones tras finalizar la ejecución de reconoce interrupciones tras finalizar la ejecución de la instrucción actual.

� Para ello en ese momento EI (Enable Interrupt) = 1.

35

Page 7: El registro contador de programa (CP) guarda la registro

� Definir el repertorio de instrucciones indicando las operaciones que realizará cada una de ellas.

� Definir las operaciones que se realizan en cada instrucción mediante un diagrama de flujo del repertorio de instrucciones.

� Asignar los recursos que se necesitan en la ruta de datos para que pueda ser compatible con el diagrama de flujo del punto que pueda ser compatible con el diagrama de flujo del punto anterior.

� Se determina el diagrama ASM del procesador.

� Diseño de la unidad de control y las conexiones de la ruta de datos.

� Se analiza el diseño resultante para ver si es satisfactorio o no.

36

Page 8: El registro contador de programa (CP) guarda la registro

� Unidad de control controla la ejecución de las microoperaciones(µop)

� La unidad de control envía un conjunto de microordenes (µord) por cada µop

� Las microordenes son señales lógicas.

� Un procesador está procesador está procesador está procesador está mircroprogramadomircroprogramadomircroprogramadomircroprogramado cuando la información generada por su unidad de control se almacena en una memoria, la memoria de memoria de memoria de memoria de controlcontrolcontrolcontrol.

� Cada posición i de la memoria contendrá una microinstrucciones.

� Un microprograma es una serie ordenada de microinstrucciones: µP=[µI(1),µI(2),….µI(n)]

37

Page 9: El registro contador de programa (CP) guarda la registro

� Unidad de control microprogramada debe cumplir tres condiciones:

� Tener una memoria lo suficientemente grande para contener todos los microprogramas correspondientes a todas las instrucciones máquina de su repertorio.

� Ha de asociar a cada instrucción la dirección de comienzo de su microprograma.

� Ha de leer las sucesivas microinstrucciones del programa en curso y bifurcar a uno nuevo cuando termina el que está ejecutando.a uno nuevo cuando termina el que está ejecutando.

� Dos formas de garantizar que se cumplan las dos últimas:� Direccionamiento explicitoDireccionamiento explicitoDireccionamiento explicitoDireccionamiento explicito: cada instrucción contiene la dirección de la

microinstrucción siguiente, además de las microordenes correspondientes.� Direccionamiento implícitoDireccionamiento implícitoDireccionamiento implícitoDireccionamiento implícito: Las microinstrucciones se disponen de forma

consecutiva en al memoria.

� Necesitamos además de un microinstrucción especial que indique las bifurcaciones.

38

Page 10: El registro contador de programa (CP) guarda la registro

� El decodificador recibe como entrada la salida del registro de dirección de memoria MAR

� Con ello activa una de las 2n salidas.

� 2n es el número de microinstrucciones que puede almacenar la memoria de control.

� El número total de líneas de las matrices C y S determinan la longitud de palabra de la memoria de control.

� El número total de líneas de las matrices C y S determinan la longitud de palabra de la memoria de control.

� Las líneas de la matriz C se corresponden con una microorden.

� Las líneas de S alimentan el MAR e indican la dirección de la siguiente microinstrucción.

39

Page 11: El registro contador de programa (CP) guarda la registro

� Tareas básicas de una unidad de control microprogramada:◦ Secuenciamiento de las microinstrucciones.

◦ Ejecución de la microinstrucción.

40

Page 12: El registro contador de programa (CP) guarda la registro

� Memoria de control:Memoria de control:Memoria de control:Memoria de control:� Contiene toda la información necesaria para controlar el procesador.

� Parte de esa información se envía al secuenciador.

� La otra parte contiene las m microordenes que se envían a la unidad de procesamiento.

� Secuenciador:Secuenciador:Secuenciador:Secuenciador:� Contiene un registro que guarda la dirección de la instrucción presente.

� Y unos circuitos lógicos que calculan la dirección de la siguiente microinstrucción.

� Registro de dirección de la memoria de control (RDC):Registro de dirección de la memoria de control (RDC):Registro de dirección de la memoria de control (RDC):Registro de dirección de la memoria de control (RDC): Mantiene la � Registro de dirección de la memoria de control (RDC):Registro de dirección de la memoria de control (RDC):Registro de dirección de la memoria de control (RDC):Registro de dirección de la memoria de control (RDC): Mantiene la dirección de la próxima instrucción (la recibe del secuenciador)

� Registro de datos de la memoria de control (RMC):Registro de datos de la memoria de control (RMC):Registro de datos de la memoria de control (RMC):Registro de datos de la memoria de control (RMC): El contenido de este registro son las señales de control que genera la unidad de control.

41

Page 13: El registro contador de programa (CP) guarda la registro

Para determinar la siguiente microinstrucción que se ha de ejecutar, el secuenciador tiene dos formas de hacerlo.

� Direccionamiento explícito:Direccionamiento explícito:Direccionamiento explícito:Direccionamiento explícito:� Dirección del a instrucción se especifica en un campo separado.� Esa dirección se carga en el registro de dirección de la memoria � Esa dirección se carga en el registro de dirección de la memoria

de control (RDC).� Si en el microprograma existen rupturas de secuencia

condicional se necesitan dos o más direcciones por microinstrucción.

� Es muy flexible y rápido pero requiere microinstrucciones con longitudes de palabras grande.

42

Page 14: El registro contador de programa (CP) guarda la registro

� Direccionamiento implícito:Direccionamiento implícito:Direccionamiento implícito:Direccionamiento implícito:(Preferible si hay pocas bifurcaciones son poco frecuentes)� Permite reducir el tamaño de microinstrucciones. En

este caso RDC�RDC+1� Las microinstrucciones de control tiene solo los

campos de control.� Las microinstrucciones de bifurcación contendrán la � Las microinstrucciones de bifurcación contendrán la

condición y la dirección de la siguiente microinstrucción. (Si no se cumple condición RDC�RDC+1)

43

Page 15: El registro contador de programa (CP) guarda la registro

� En su formato más sencillo, una microinstrucción tiene 1 bit por cada señal de control y una duración de un periodo.

� Esto nos lleva a microinstrucciones largas y llenas de bastantes ceros.

� Para reducir su longitud las microinstrucciones se codifican. Al menos la parte correspondiente al campo de control de la instrucciones (la otra parte vimos que era el campo de dirección).

� Hay dos estrategias por tanto para organizar las microordenes:

� Microprogramación Horizontal� Microprogramación Vertical

44

Page 16: El registro contador de programa (CP) guarda la registro

� Instrucciones no codificadas.

� Cada bit de la micromemoria se conecta con un punto físico de la unidad de procesamiento.

� Permite realizar la mayor cantidad de microordenes� Permite realizar la mayor cantidad de microordenespor microinstrucción.

45

Page 17: El registro contador de programa (CP) guarda la registro

� El campo de control de la microinstrucción se descompone en varios subcampos.

� Un subcampo de j bits podrá especificar 2j-1 señales de control.

� Como solo se puede activar una señal por subcampo, hay que elegirlas de forma que se garantice que las operaciones que controla un subcampo nunca va a ser necesario activarlas de forma simultánea.

� Usa longitudes de palabra más reducidas pero por contra es más lento ya que requiere � Usa longitudes de palabra más reducidas pero por contra es más lento ya que requiere decodificación.

� El retardo de decodificación de la

instrucción es igual al retardo del

decodificador más lento (el de más bits).

46

Page 18: El registro contador de programa (CP) guarda la registro

� Se pueden combinar estos dos métodos dentro de una misma instrucción. De hecho esto es algo habitual.

47

Page 19: El registro contador de programa (CP) guarda la registro

� Búsqueda (lectura) de la microinstrucción.

� Decodificación de los campos de la microinstrucción.

� Ejecución de las microoperaciones.

� Calculo de la dirección de la siguiente microinstrucción.

48

Page 20: El registro contador de programa (CP) guarda la registro

49

Page 21: El registro contador de programa (CP) guarda la registro

50

Page 22: El registro contador de programa (CP) guarda la registro

51

Page 23: El registro contador de programa (CP) guarda la registro

52

Page 24: El registro contador de programa (CP) guarda la registro

53

Page 25: El registro contador de programa (CP) guarda la registro

54