26
OPERACION INTERNA DE UN PROCESADOR Objetivos Brindar los conceptos básicos del comportamiento temporal interno en la Unidad Procesadora Central (CPU). Describir los ciclos de operación que componen una instrucción. Explicar temporal el funcionamiento de una instrucción. Comprender los modos de direccionamiento de un procesador. Discutir el concepto de sincronismo para la conexión de memorias y dispositivos. Explicar el concepto de modelo de programación.

OPERACION INTERNA DE UN PROCESADOR

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OPERACION INTERNA DE UN PROCESADOR

OPERACION INTERNA DE UN PROCESADOR

Objetivos

• Brindar los conceptos básicos del comportamiento temporal interno en la Unidad Procesadora Central (CPU).

• Describir los ciclos de operación que componen una instrucción.

• Explicar temporal el funcionamiento de una instrucción.

• Comprender los modos de direccionamiento de un procesador. • Discutir el concepto de sincronismo para la conexión de memorias y

dispositivos. • Explicar el concepto de modelo de programación.

Page 2: OPERACION INTERNA DE UN PROCESADOR

OPERACION INTERNA DE UN MICROPROCESADOR EEJJEECCUUCCIIÓÓNN DDEE UUNN PPRROOGGRRAAMMAA 1000 BEGIN MVI C, DATO1 C DATO1 MVI A, DATO2 A DATO2 ADD C A A + C JNZ BEGIN Funcionamiento del programa: PC <-- 1000H 1. IR MVI C; PC PC + 1; Decodificación de la instrucción 2. Lee DATO1; PC PC + 1; Almacena DATO1 en el registro C 3. IR MVI A; PC PC + 1; Decodificación de la instrucción 4. Lee DATO1; PC PC + 1; Almacena DATO2 en el registro A 5. IR ADD A; PC PC + 1; Decodificación de la instrucción 6. A A + C 7. IR JNZ ; PC PC + 1; Decodificación de la instrucción 8. Lee dirección baja de salto; PC PC + 1; almacena en temporario1 9. Lee dirección alta de salto; PC PC + 1; almacena en temporario2

Si z = 0 : PC <-- temporario1.temporario2.

Page 3: OPERACION INTERNA DE UN PROCESADOR

CCIICCLLOOSS DDEE OOPPEERRAACCIIOONN Operaciones Fundamentales de un Procesador: Búsqueda de la instrucción: en la cual el procesador busca el código de operación

(FETCH) Ejecución de la instrucción: en la cual el procesador ejecuta la operación

determinada por la instrucción. Definiciones: Ciclo de instrucción: es el tiempo total, medido en números de períodos de reloj, de duración del ciclo de búsqueda más el de ejecución de la instrucción, teniendo en cuenta los sucesivos accesos a memoria en el caso de ser una instrucción de más de un Byte. Ciclo de máquina: es el tiempo, medido en números de períodos de reloj de duración de una operación de lectura, de escritura o de búsqueda (Fetch) de una instrucción. Un ciclo de instrucción está compuesto por uno o varios ciclos de máquina (M1, M2, M3, M4).

M1 ciclo de búsqueda (“Fetch”)

Los ciclos de máquina más comunes son: ♦ Fetch: Búsqueda de la Instrucción ♦ Memory Read: Lectura de Memoria ♦ Memory Write: Escritura de Memoria ♦ I/O Read: Lectura del Espacio de Entrada/Salida ♦ I/O Write: Escritura del Espacio de Entrada/Salida ♦ INA: Reconocimiento de Interrupción

Estado de Reloj: es el período del reloj (clock) del microprocesador (T1, T2, T3, T4). Cada ciclo de máquina esta compuesto por un número entero de pulsos de reloj.

Ti: Secuencia del flujo de información Temporizado de las líneas de control Ti: Micro-instrucciones

Page 4: OPERACION INTERNA DE UN PROCESADOR

Actividades Básicas de un Ciclo de Máquina:

- Enviar direcciones al canal de direcciones - Preparar transferencias en el canal de datos - Realizar la transferencia propiamente dicha - Decodificación de la Instrucción, en el caso que sea un Ciclo de máquina Fetch

Ciclo de Búsqueda y de Ejecución Notación: M1 (Fetch):

AB PC DB [AB]; PC PC+1 : lectura de memoria (R/W=1) IR DB : comienza decodif. de instrucción Comienza a ejecutar inst. : descripción de la operación

M2 (Read):

AB PC DB [AB]; PC PC+1 : lectura de memoria (R/W=1) TEMP DB / Ri DB : ejecuta la instrucción

Page 5: OPERACION INTERNA DE UN PROCESADOR

Ejemplo: Ejecución de una instrucción STA DIR:

M1 (Fetch):

AB PC DB [AB]; PC PC+1 : (R/W=1) IR STA : PC = 2001H Comienza a ejecutar inst. : descripción de la operación

M2 (Read):

AB PC DB [AB]; PC PC+1 : (R/W=1) TEMP1 10H : PC = 2002H

M3 (Read):

AB PC DB [AB]; PC PC+1 : (R/W=1) TEMP2 1AH : PC = 2003H

M4 (Write):

AB TEMP1 . TEMP2 DB A : (R/W=0) [AB] DB : PC = 2003H

Page 6: OPERACION INTERNA DE UN PROCESADOR

Operaciones Realizadas por cada Instrucción de Programa

Diagrama de Estado de una CPU Sea: M1, M2,... los ciclos de máquinas T1, T2, ... los estados del reloj Un diagrama de estado es un esquema donde se muestra "aproximadamente" cuáles son las operaciones internas (microoperaciones) realizadas por el microprocesador en cada estado. La transición entre estados (Ti), se representa por flechas, y la transición se produce cuando la condición indicada en cada flecha es verdadera.

Page 7: OPERACION INTERNA DE UN PROCESADOR

CCOONNTTRROOLL YY TTEEMMPPOORRIIZZAADDOO Un microprocesador es, esencialmente, una máquina secuencial sincrónica cuyos estados son determinados por:

• las instrucciones • la lógica interna de control • eventos externos como interrupciones

Circuitos de Reloj:

• simple fase: 2 estados y 2 flancos • múltiple fase (2,4): 3 estados y 4 flancos

Page 8: OPERACION INTERNA DE UN PROCESADOR

OSC. Q1 Q2 Q3 Q4

OPERACIONES DE LOS CANALES Temporizado necesario para realizar una transferencia de datos entre la CPU y la memoria o dispositivo de I/O. Ciclo de canal (“bus”) se define como el proceso por el cual una secuencia fija de señales digitales efectúan una transferencia de datos entre módulos del sistema (CPU, memoria, disp. I/O).

Page 9: OPERACION INTERNA DE UN PROCESADOR

Un ciclo de bus puede ser dependiente o independiente del ciclo de máquina.

Dependiente: los ciclos de máquina corresponden a ciclos de bus (como la mayoría de los microprocesadores de 8 bits.)

Independiente: cuando posee un unidad de ejecución que es independiente de la interfaz con el bus (como los procesadores con “pipeline” o las arquitecturas tipo “Harvard”)

Funcionamiento del Canal de una CPU El intercambio de información entre una CPU y los módulos de memoria e I/O se realizan en los ciclos de buses, y está sincronizado por el reloj de la CPU. Los ciclos de buses pueden ser de acuerdo a la CPU:

- Reloj de simple fase de canal no multiplexado (ejemplo: Z-80), - Reloj de simple fase de canal multiplexado (ejemplo; 8085), - Reloj bifásico (ejemplo: 6800). - Reloj de cuatro fases (μcontroladores PIC )

Reloj de Simple Fase de Canal no Multiplexado

Page 10: OPERACION INTERNA DE UN PROCESADOR

Reloj de Simple Fase de Canal Multiplexado Dentro de los sistemas de reloj de simple fase se encuentran implementaciones con canales multiplexados; es decir, se comparten físicamente algunas líneas, como son las del canal de datos con las líneas correspondientes a las direcciones. En este caso, es necesario demultiplexarlas para poder obtener el canal de direcciones completo. Esto se logra agregando un latch en el canal de datos, capturando las direcciones con la señal MUX (para el caso particular del Intel la señal MUX se denomina ALE Address Latch Enable).

MUX Reloj Bifásico de fases no solapadas Ciclo de Lectura

Latch

C P U

Page 11: OPERACION INTERNA DE UN PROCESADOR

Reloj de Cuatro Fases no Solapadas OSC. Q1 Q2 Q3 Q4

PC=PC+1 IR OP CODE MMOODDOOSS DDEE DDIIRREECCCCIIOONNAAMMIIEENNTTOO Los modos de direccionamiento determinan las distintas formas de acceder a datos en celdas de memorias del espacio total de direcciones del procesador.

Modos de Direccionamiento Dirección Efectiva (EA) La Dirección Efectiva (EA): es la dirección usada para acceder a un elemento, en memoria principal, dentro de los registros del microprocesador o de un dispositivo de I/O (o sea, dentro del espacio total de direccionamiento del microprocesador). Los modos de direccionamiento pueden ser:

- explícitamente especificados por la instrucción, - implicados por la instrucción.

El espacio de direccionamiento de un procesador se puede dividir en 3 clases:

- Registros del procesador. - Memoria principal. - Dispositivos externos.

Page 12: OPERACION INTERNA DE UN PROCESADOR

Registros del Procesador Este método de direccionamiento (también llamado implícito o inherente) consiste en dedicar un pequeño campo dentro del OP CODE de la instrucción para seleccionar el registro. Este tipo de direccionamiento involucra operaciones internas al microprocesador:

- Desplazamiento (SHIFT) - Transferencia entre registros (MOV A,B) - Comparaciones CMP R (A-R), - Operaciones lógicas y aritméticas entre registros (ADD B).

Al emplear registros internos como operandos (en lugar de memoria), las ejecuciones resultan más rápidas.

Direccionamiento de Memoria Principal Direccionamiento inmediato Este direccionamiento no constituye un direccionamiento propiamente dicho, pues la instrucción no contiene ninguna dirección. En el lugar de la dirección figura el operando sobre el cual se va actuar

Page 13: OPERACION INTERNA DE UN PROCESADOR

Direccionamiento inherente o implícito Este direccionamiento lo constituyen las instrucciones del manejo de pila (stack).

- PUSH Ri: inserción de datos en la pila - POP Ri :extracción de datos de la pila

Direccionamiento extendido o absoluto Este modo de direccionamiento permite acceder a cualquier palabra contenida en la memoria principal, por medio de la dirección absoluta de memoria explicitada como bytes en el operando de la instrucción. Este tipo de direccionamiento incluye instrucciones de manejo de variables del tipo:

- LDA A, DIR - STA A, DIR.

Direccionamiento directo o página cero Una forma de acelerar el direccionamiento extendido, sería usar el direccionamiento paginado, donde la EA se calcula como:

Page 14: OPERACION INTERNA DE UN PROCESADOR

Un caso especial: direccionamiento de página 0 El método de direccionamiento directo es una poderosa herramienta, pues reduce el número de bytes de algunas instrucciones. Direccionamiento relativo En este modo el operando se encuentra en una dirección relativa a la instrucción ejecutada, es decir, la dirección efectiva (EA) se forma:

EA = PC + “offset” de la instrucción El desplazamiento se interpreta como un número binario con signo (en complemento a 2)

Es muy usado en las instrucciones de salto (condicional o incondicional). Ejemplo:

BRA F0 BNZ 37

Direccionamiento indexado En este modo de direccionamiento la EA se genera como:

EA = XR + desplazamiento Conceptualmente, el valor dado en la instrucción es la dirección base de una tabla o arreglo, y el registro índice es el desplazamiento de la base.

Page 15: OPERACION INTERNA DE UN PROCESADOR

La implementación del direccionamiento indexado es muy variado, puede ser: XR : 16 bits XR : 8 bits DIR : 8 bits s/signo DIR : 16 bits s/signo XR : 16 bits XR : 16 bits DIR : 8 bits c/signo DIR :16 bits s/signo Este modo de direccionamiento se usa para el acceso a arreglos de datos, especialmente cuando éstos son accedidos en forma secuencial, ascendente o descendente.

Las instrucciones con direccionamiento indexado son muy poderosas, pero demoran mucho tiempo de procesamiento. Son, por lo general, de 2 bytes. Hay variantes de direccionamiento indexado, en las cuales el contenido del XR se autoincrementa o auto decrementa en 1: XR-1 --> XR ; (XR+offset) A Auto decremento (XR+offset) A ; (XR+1) XR Auto incremento

Page 16: OPERACION INTERNA DE UN PROCESADOR

Direccionamiento indirecto En este modo de direccionamiento, se da una referencia intermedia donde se halla la dirección efectiva del operando. Esta referencia puede ser:

- Por medio de una dirección de memoria. - Por medio de un registro de la CPU

Son muy útiles en el manejo de tablas. Direccionamiento indirecto - indexado Este modo de direccionamiento consiste en realizar, primero, una indirección y luego indexar la dirección para hallar la dirección efectiva.

Page 17: OPERACION INTERNA DE UN PROCESADOR

Direccionamiento indexado-indirecto Este método consiste en realizar, primero, una indexación de la dirección del operando (en pág.0) y luego, una indirección.

Ejemplo

Direccionamiento basado En este modo de direccionamiento, la dirección efectiva se obtiene como:

EA = BX + desplazamiento

Page 18: OPERACION INTERNA DE UN PROCESADOR

Este modo provee una forma sencilla de direccionar estructuras de datos. Diferentes copias de la misma estructura se pueden acceder simplemente cambiando el registro base.

Direccionamiento basado - indexado En este modo de direccionamiento la EA se genera como:

EA = XR + BX + desplazamiento

Ejemplos típicos son:

- Estructuras de datos cuyos elementos son arreglos. - Direccionamiento de matrices.

Page 19: OPERACION INTERNA DE UN PROCESADOR

Direccionamiento de bits Algunos microprocesadores tienen instrucciones que direccionan bits individuales de registros o de lugares de memoria, especificándolo en la instrucción. SET B A.2 pone bit 2 de A=1 CLR A.3 pone bit 3 de A=0 JB A.1,dir Jump if bit set JBC A.1,dir Jump if bit set and clear bit MOV A.i,C A.i C Dispositivos Externos Direccionamiento de Dispositivos de I/O:

• Mapeo de Memoria • I/O Aisladas

Esto permite manejar el espacio de direccionamiento de los dispositivos de I/O independiente del espacio de direccionamiento de memoria principal. Ventajas:

• Menos posibilidad de cometer errores de programación que causen una operación de I/O no deseada o catastrófica

Desventajas:

• El espacio de I/O se maneja por medio de instrucciones especiales que hacen uso de un único (o un conjunto reducido) registro, no pudiendo emplear otros tipos de instrucciones o registros para esos dispositivos.

• Poca flexibilidad y rapidez para el manejo de I/O. • Limitación en la capacidad de direccionamiento.

Page 20: OPERACION INTERNA DE UN PROCESADOR

Direccionamiento indirecto de I/O Este modo de direccionamiento es similar al de registro indirecto de memoria. El número del port se toma de un registro, pudiendo acceder a cualquier dirección del espacio de I/O. Ejemplo: Para el microprocesador 8086:

IN AX,DX AX <-- (DX) OUT DX,AX (DX) <-- AX

Page 21: OPERACION INTERNA DE UN PROCESADOR

Sincronismo de Canales Los protocolos de transferencia de información en canales de microprocesadores, se pueden clasificar en tres grupos: • Sincrónicos: transferencias sincronizadas, una transferencia por período de reloj. • Asincrónicos: transferencias sin reloj de sincronismo. • Semisincrónicos: transferencias sincronizadas, una transferencia por uno o más

períodos de reloj. La función las líneas de sincronismo es la de indicar el comienzo y el fin de una transferencia de datos o de información. Canales Sincrónicos Los canales sincrónicos poseen una única línea de control: el reloj. El flanco ascendente del reloj indica el comienzo de la transferencia y el descendente el fin de la misma. Ventaja: Simple y transacciones rápidas Desventaja: Conexión de dispositivos lentos Ejemplo: 6800

Page 22: OPERACION INTERNA DE UN PROCESADOR

Canales Asincrónicos Los Canales Asincrónicos permiten realizar transacciones rápidas para los dispositivos rápidos y lentas para los dispositivos lentos. Ejemplo: Microprocesador LSI-11 de Digital.

La principal desventaja de este tipo de canal es el retardo de propagación, que limitan el ancho de banda del canal. Canal Semisincrónico Una solución alternativa intermedia entre velocidad de operación y compatibilidad entre dispositivos de distintas velocidades sería el canal semisincrónico. Los Canales Semisincrónicos emplean, por lo general, dos señales de control: • La señal de reloj o una señal proporcional al reloj del microprocesador (señales RD

o WR), que son enviadas por el master • La señal WAIT (también deniominada XACK, “transfer acknowledge”) que es

enviada por el slave, la cual controla la velocidad de transferencia "estirando" los accesos a los dispositivos

Page 23: OPERACION INTERNA DE UN PROCESADOR

RD - WR WAIT Ventajas: Para dispositivos suficientemente rápidos, el canal se comporta como

sincrónico; para dispositivos lentos se comporta como asincrónico. Un ejemplo de un microprocesador con estas características de transferencia son los microprocesadores Intel 8085/86, etc.

Desventaja: La máxima longitud del canal, ya que la señal wait debe ser establecida

en un período de tiempo fijo.

PPRROOCCEESSOO DDEE SSIINNCCRROONNIISSMMOO Operaciones en el Proceso de Transferencia de Información:

- Presentar dirección de memoria. - Proceso de sincronismo. - Transferencia de información.

MASTER

SLAVE

Page 24: OPERACION INTERNA DE UN PROCESADOR

En el proceso de sincronismo es necesario diferenciar 3 estados: - Lectura. - Escritura. - No acceso al canal (canal ocioso).

Por lo tanto es necesario contar con 2 líneas de control. Históricamente existen 2 escuelas bién diferenciadas para la implementación: • Las técnicas de los microprocesadores de Intel (80XX), que consiste en emplear dos

líneas de sincronismo mutuamente excluidas: señal /WR y señal /RD, las cuales indican el instante (temporizado) y la operación de escritura o de lectura respectivamente

• Las técnicas de los microprocesadores de Motorola (68XX), que consiste en

emplear una línea lógica de lectura-escritura (R/W), que indica la dirección de los datos y otra de sincronismo (φ2), indicando el instante de la transferencia.

Ejemplos de conexión entre los μp 8085 y 6800 con memorias con /OE y sin /OE:

Page 25: OPERACION INTERNA DE UN PROCESADOR
Page 26: OPERACION INTERNA DE UN PROCESADOR

Problemas de sincronización cuando se desean conectar dispositivos periféricos diseñados para un tipo de técnica de sincronismo a otra: