EL PROCESADOR.pptx

125
EL PROCESADOR Ing. Miguel Aguilar Arquitectura de Computadoras 1

Transcript of EL PROCESADOR.pptx

EL PROCESADOR

Ing. Miguel Aguilar Arquitectura de Computadoras 1

Arquitectura de Computadoras 2Ing. Miguel Aguilar

ORGANIZACIÓN PROCESADOR

Arquitectura de Computadoras 3

ALUUNIDAD ARITMETICA LOGICA

Ing. Miguel Aguilar

Arquitectura de Computadoras 4Ing. Miguel Aguilar

INTRODUCCION

La realización de operaciones aritméticas y lógicas es una de las principales razones de ser de las computadoras actuales.

Existe un conjunto de circuitos bien conocidos que se utilizan con frecuencia para la realización de este tipo de

operaciones.

Arquitectura de Computadoras 5Ing. Miguel Aguilar

OBJETIVOS DEL TEMA

Introducir los circuitos básicos mas frecuentemente usados para realizar

operaciones aritméticas y lógicas.

Describir el diseño de una unidad Aritmético-Lógica sencilla capaz de

realizar operaciones de ambos tipos.

Arquitectura de Computadoras 6Ing. Miguel Aguilar

ANTECEDENTES HISTORICOS

John Presper Eckert y John William Mauchly idearon el concepto de la ALU en 1945.

EDVAC (Electronic Discrete Variable Automatic Computer).

Aplicado en la computadora IAS del Instituto de Estudios Avanzados de Princeton.

Arquitectura de Computadoras 7Ing. Miguel Aguilar

UNIDAD ARITMETICA LOGICA(ALU)

Es un circuito digital que calcula operaciones aritméticas ( como adición, sustracción , etc.) y

operaciones lógicas (como OR, NOT, XOR, etc.) sobre los datos (operandos).

Arquitectura de Computadoras 8Ing. Miguel Aguilar

La Unidad de Control, registros, memoria, E/S envían datos a la ALU para ser procesados y

luego tomar los resultados obtenidos.

La ALU esta basada en el uso de dispositivos lógicos digitales que pueden almacenar dígitos

binarios y ejecutar operaciones booleanas simples.

Arquitectura de Computadoras 9Ing. Miguel Aguilar

ENTRADAS Y SALIDAS DE LA ALU

Arquitectura de Computadoras 10Ing. Miguel Aguilar

ENTRADAS DE LA ALU

Los datos son presentados en registros.

La Unidad de Control provee señales que controlan la operación de la ALU y el movimiento de los datos hacia fuera

y dentro de la ALU.

Arquitectura de Computadoras 11Ing. Miguel Aguilar

SALIDAS DE LA ALU

El Resultado de una operación es almacenada en registros (locaciones de

almacenamiento temporal que son conectados por el camino de datos a la

ALU).

La ALU también puede activar banderas (Flags) como resultado de una

operación.

Arquitectura de Computadoras 12

SIMBOLO DE ALU

Ing. Miguel Aguilar

Arquitectura de Computadoras 13Ing. Miguel Aguilar

COMPONENTES BASICOS DE LA ALU

Circuito Operacional

Registros de Entrada

Registro Acumulador

Registros de Estado

Arquitectura de Computadoras 14Ing. Miguel Aguilar

Contiene los circuitos lógicos necesarios para la realización de las operaciones con los datos procedentes de los registros de entrada.

Circuito Operacional

Arquitectura de Computadoras 15Ing. Miguel Aguilar

Es donde se almacenan los operandos.

Registros de Entrada

Arquitectura de Computadoras 16Ing. Miguel Aguilar

Almacena los resultados de las operaciones ejecutadas por el circuito operacional, se encuentra conectado con los registros de entrada como una realimentación para realizar operaciones encadenadas.

Registro Acumulador

Arquitectura de Computadoras 17Ing. Miguel Aguilar

En ellos se deja constancia de algunas condiciones que se dieron en la ultima operación realizada.

Registro de

Estado

Arquitectura de Computadoras 18Ing. Miguel Aguilar

BANDERAS REGISTRO DE ESTADO

Z= El resultado es cero.

N= El resultado es negativo.

V= Desbordamiento.

P= Paridad

I= Interrupción

C= Acarreo de la operación realizada.

Arquitectura de Computadoras 19

CAMINO DE DATOS (DATA PATH)

Ing. Miguel Aguilar

Arquitectura de Computadoras 20Ing. Miguel Aguilar

Arquitectura de Computadoras 21Ing. Miguel Aguilar

CAMINO DATOS DE ARC

Arquitectura de Computadoras 22Ing. Miguel Aguilar

CONJUNTO DE INSTRUCCIONESCARACTERISTICAS Y FUNCIONES

Ing. Miguel Aguilar Arquitectura de Computadoras 23

Arquitectura de Computadoras 24Ing. Miguel Aguilar

INSTRUCCION

Es un comando codificado que especifica una función que la computadora debe ejecutar.

La operación del procesador esta determinada por las instrucciones de maquina que puede ejecutar.

Arquitectura de Computadoras 25Ing. Miguel Aguilar

La Arquitectura del Conjunto de Instrucciones (ISA)

El ISA permite comunicarse con la computadora.

Es el conjunto de diferentes instrucciones que el procesador puede ejecutar.

Es el interface entre el software que corre en la computadora y el hardware que lo ejecuta.

Arquitectura de Computadoras 26Ing. Miguel Aguilar

ELEMENTOS DE UNA INSTRUCCION

Código de Operación

Referencia al Operando Fuente

Referencia al Operando Resultante

Referencia a la Siguiente Instrucción

Arquitectura de Computadoras 27Ing. Miguel Aguilar

Código de Operación (Hacer esto)

Especifica la operación a realizar (suma, E/S, etc.). La operación se indica mediante un código binario

denominado código de operación o, abreviadamente Opcode.

Arquitectura de Computadoras 28Ing. Miguel Aguilar

Referencia al Operando Fuente(A esto)

La operación puede implicar uno o mas operandos fuente, es decir los operandos que son entradas para la

instrucción.

Arquitectura de Computadoras 29Ing. Miguel Aguilar

Referencia al Operando Resultante

(Poner la respuesta aquí)

La operación puede producir un resultado.

Arquitectura de Computadoras 30Ing. Miguel Aguilar

Referencia a la Siguiente Instrucción

(Cuando termines, hacer esto)

Le dice al procesador donde buscar la siguiente instrucción después de completar la instrucción anterior.

Arquitectura de Computadoras 31Ing. Miguel Aguilar

Los operandos fuente y destino pueden estar en alguna de las áreas siguientes:

Memoria principal o virtual

Registro del procesador

Dispositivo de E/S

Arquitectura de Computadoras 32Ing. Miguel Aguilar

REPRESENTACION DE LAS INSTRUCCIONES

Cada instrucción se representa por una secuencia de bits.

La instrucción esta dividida en campos, cada uno de los cuales proporciona parte de la información requerida.

El código de maquina de cada instrucción tiene un patrón único.

FORMATO DE INSTRUCCION

Ing. Miguel Aguilar Arquitectura de Computadoras 33

Arquitectura de Computadoras 34Ing. Miguel Aguilar

Para el entendimiento humano se usa representación simbólica para el Opcode.

Ing. Miguel Aguilar Arquitectura de Computadoras 35

Los operandos también pueden representarse simbólicamente.

ADD R,Y

Arquitectura de Computadoras 36Ing. Miguel Aguilar

Arquitectura de Computadoras 37Ing. Miguel Aguilar

TIPOS DE INSTRUCCIONES

Procesamiento de datos

Almacenamiento de datos

Transferencia de datos

Control

PROCESAMIENTO DE DATOS

Ing. Miguel Aguilar Arquitectura de Computadoras 38

INSTRUCCIONES ARITMETICASProveen capacidad

computacional para el procesamiento numérico de

datos.

INSTRUCCIONES LOGICAS (BOOLEANAS)

Operan sobre los bits de una palabra.

Estas operaciones son ejecutadas

principalmente sobre datos almacenados

temporalmente en los registros del procesador.

Ing. Miguel Aguilar Arquitectura de Computadoras 39

ALMACENAMIENTO DE DATOS

Ing. Miguel Aguilar Arquitectura de Computadoras 40

Son instrucciones para mover datos entre la memoria y los registros del procesador.

TRANSFERENCIA DE DATOS

Ing. Miguel Aguilar Arquitectura de Computadoras 41

Son instrucciones de Entrada/Salida necesarias para transferir programas y datos hacia la memoria y

retornar el resultado del computo al usuario.

CONTROL

Ing. Miguel Aguilar Arquitectura de Computadoras 42

Son instrucciones para el control del flujo del programa y pueden ser de Prueba (Salto Condicional) y

Ramificación (Bifurcación o Salto Incondicional).

Una fracción significativa de las instrucciones de cualquier programa tiene como misión cambiar la

secuencia de ejecución de instrucciones.

Arquitectura de Computadoras 43Ing. Miguel Aguilar

• Una forma tradicional

para describir

la arquitectura de un

procesador es en

términos del

numero de

direcciones

contenidas en cada

instrucción.

NUMERO DE DIRECCIONES EN UNA INSTRUCCION

INSTRUCCIÓN CON CUATRO (4 ) DIRECCIONES

Ing. Miguel Aguilar Arquitectura de Computadoras 44

Ing. Miguel Aguilar Arquitectura de Computadoras 45

La mayoría de las instrucciones tienen una, dos o tres direcciones de operandos, entonces la dirección de la siguiente instrucción es implícita (obtenida desde el

contador de programa PC)

INSTRUCCIÓN CON TRES (3 ) DIRECCIONES

Ing. Miguel Aguilar Arquitectura de Computadoras 46

Se utilizaba en las primeras computadoras con memorias pequeñas y por lo tanto los campos de dirección necesitaban

pocos bits.

INSTRUCCIÓN CON DOS (2 ) DIRECCIONES

Ing. Miguel Aguilar Arquitectura de Computadoras 47

Una dirección hace doble trabajo, como operando y

resultado.Ejemplo: SUB R2 , R1

La instrucción lleva a cabo el calculo R2 - R1 y el

resultado se almacena en R2 .

INSTRUCCIÓN CON UNA (1 ) DIRECCION

Ing. Miguel Aguilar Arquitectura de Computadoras 48

La segunda dirección esta implícita. Hace referencia al registro

Acumulador AC, el cual contiene uno de los operandos y también es usado

para almacenar el resultado.

INSTRUCCIÓN CON CERO (0) DIRECCIONES

Ing. Miguel Aguilar Arquitectura de Computadoras 49

Hace referencia al Stack o Pila, tanto

para los operandos como el resultado.

UTILIZACION DE LAS DIRECCIONES

Ing. Miguel Aguilar Arquitectura de Computadoras 50

NUMERO DE DIRECCIONES REPRESENTACION SIMBOLICA INTERPRETACION

3 OP A,B,C A ← B OP C

2 OP A,B A ← A OP B

1 OP A AC ← AC OP A

0 OP T ← (T-1) OP T

(No para instrucciones de ramificación)

Arquitectura de Computadoras 51Ing. Miguel Aguilar

Ing. Miguel Aguilar Arquitectura de Computadoras 52

INSTRUCCIÓN CON TRES (3) DIRECCIONES

INSTRUCCION INTERPRETACION

SUB Y, A, B Y ← A - B

MPY T, D, E T ← D x E

ADD T, T, C T ← T + C

DIV Y, Y, T Y ← Y / T

T = Locación para almacenar resultados intermedios y así no alterar las locaciones de los operandos.

Ing. Miguel Aguilar Arquitectura de Computadoras 53

INSTRUCCIÓN CON DOS (2) DIRECCIONES

INSTRUCCION INTERPRETACION

MOVE Y,A Y ← A

SUB Y,B Y ← Y - B

MOVE T,D T ← D

MPY T,E T ← T x E

ADD T,C T ← T + C

DIV Y,T Y ← Y/T

Una dirección hace doble trabajo, como operando y resultado. Para evitar alterar el valor de un operando utiliza una instrucción

MOVE para transferir uno de los valores a una locación temporal o de resultados antes de realizar el calculo.

Ing. Miguel Aguilar Arquitectura de Computadoras 54

INSTRUCCIÓN CON UNA (1) DIRECCION

INSTRUCCION INTERPRETACION

LOAD D AC ← D

MPY E AC ← AC x E

ADD C AC ← AC +C

STOR Y Y ← AC

LOAD A AC ← A

SUB B AC ← AC – B

DIV Y AC ← AC / Y

STOR Y Y ← AC

La segunda dirección es implícita, el registro acumulador.

Arquitectura de Computadoras 55Ing. Miguel Aguilar

• Instrucciones mas sencillas.

• Procesador menos complejo.

• Los programas contienen mas instrucciones.

• Mayor tiempo de ejecución.

INSTRUCCIONES CON MENOS DIRECCIONES

Arquitectura de Computadoras 56Ing. Miguel Aguilar

• Suele disponerse de múltiples registros de uso general.

• Esto permite que algunas operaciones se realicen solo con registros.

• Ya que los accesos a registros son mas rápidos que a memoria se acelera la ejecución.

INSTRUCCIONES CON MULTIPLES DIRECCIONES

Un aspecto a considerar es si una dirección hace referencia a una posición de memoria o a un registro. Ya que hay menos registros, se necesitan

menos bits para referenciarlos.

Arquitectura de Computadoras 57Ing. Miguel Aguilar

• Repertorio de operaciones

• Tipos de datos

• Formato de instrucciones

• Registros• Direcciona

miento

DISEÑO DEL CONJUNTO DE INSTRUCCIONES

Arquitectura de Computadoras 58Ing. Miguel Aguilar

• Direcciones

• Números• Caracteres• Datos

lógicos

TIPOS DE OPERANDOS

Arquitectura de Computadoras 59Ing. Miguel Aguilar

• Enteros o en coma fija

• En coma flotante

• En decimal (Usuario del sistema)

NUMEROS

Arquitectura de Computadoras 60Ing. Miguel Aguilar

• IRA (International Reference Alphabet)

• ASCII (American Standard Code for Interchange)

• EBCDIC (Extended Binary Coded Decimal Interchange Code)

CARACTERES

Arquitectura de Computadoras 61Ing. Miguel Aguilar

• Se considera una unidad de n bits como n elementos o datos de un bit.

• Cada elemento tiene un valor de 1 o 0.

• Permite la manipulación de bits individuales.

DATOS LOGICOS

Arquitectura de Computadoras 62Ing. Miguel Aguilar

• Transferencia de datos

• Aritméticas• Lógicas• De

conversión• De E/S• De control

del sistema• De control

de flujo

TIPOS DE OPERACIONES

Arquitectura de Computadoras 63Ing. Miguel Aguilar

• En un formato típico de instrucción, los campos de dirección son relativamente pequeños.

• Es necesario emplear algunas técnicas que relacionen la capacidad disponible con la longitud de los campos.

• La manera en que los operandos se escogen durante la ejecución del programa depende del modo de direccionamiento.

DIRECCIONAMIENTO

Arquitectura de Computadoras 64Ing. Miguel Aguilar

• Especifica una regla

para interpretar o modificar

el campo de

dirección de la

instrucción antes de

que el operando

sea en realidad

referenciado.

MODO DE DIRECCIONAMIENTO

Arquitectura de Computadoras 65Ing. Miguel Aguilar

• Dar versatilidad de programación al usuario.

• Reducir el número de bits en el campo de dirección de la instrucción.

Las computadoras utilizan técnicas de direccionamiento por dos

razones:

Normalmente todas las arquitecturas de computadoras proveen mas de un modo de direccionamiento.

Arquitectura de Computadoras 66Ing. Miguel Aguilar

• Es implícito especificado por el Opcode.

• Uno o mas bits en el formato de instrucción pueden ser utilizados como campo de modo (Mode Field). El valor del Mode field determina cual direccionamiento es usado.

¿Cómo el procesador puede determinar cual modo de direccionamiento esta siendo

utilizado en una particular instrucción?

Arquitectura de Computadoras 67Ing. Miguel Aguilar

• Inmediato• Directo• Indirecto• Por Registro• Indirecto por

Registro• Por

Desplazamiento

• Por Pila

MODOS DE DIRECCIONAMIENTO

Arquitectura de Computadoras 68Ing. Miguel Aguilar

• A: Contenido del Campo de dirección en la instrucción.

• R: Contenido de un campo de dirección en la instrucción que se refiere a un registro.

• EA: Dirección actual (efectiva) de la locación donde esta el operando.

• (X): Contenido de la locación de memoria X o registro X.

NOTACION

Ing. Miguel Aguilar Arquitectura de Computadoras 69

DIRECCIONAMIENTO INMEDIATO

• Es la forma mas simple de direccionamiento, en el cual el valor del operando esta presente en la instrucción.

• Es utilizado para definir constantes o determinar valores iniciales para las variables.

Operando = A• Ejemplo: ADD 5

– Sumar 5 (operando) al contenido del Acumulador.

Arquitectura de Computadoras 70Ing. Miguel Aguilar

•No se hace referencia a memoria para obtener el operando.•Se acelera el calculo en aquellos casos donde esa constante o valor inicial es utilizada repetidamemte.

•El tamaño del número es restringido a la capacidad del campo de dirección.

VENTAJAS DESVENTAJAS

Ing. Miguel Aguilar Arquitectura de Computadoras 71

DIRECCIONAMIENTO DIRECTO

• La instrucción contiene la dirección efectiva del operando: EA=A

• Ejemplo: ADD A– Sumar el contenido de la

locación A en memoria al Acumulador

Arquitectura de Computadoras 72Ing. Miguel Aguilar

•Una sola referencia a memoria para accesar al dato.•No requiere efectuar cálculos especiales para encontrar el operando.

•Solo puede direccionar memorias de poca capacidad.•Limitado espacio de direcciones 2K

•K= Longitud del campo de dirección.

VENTAJAS DESVENTAJAS

Ing. Miguel Aguilar Arquitectura de Computadoras 73

DIRECCIONAMIENTO INDIRECTO• La locación de memoria apuntada

por el campo de dirección contiene la dirección del operando: EA = (A)

• Ejemplo: ADD (A)

– Suma el contenido de la locación apuntada por el contenido de A al Acumulador

Arquitectura de Computadoras 74Ing. Miguel Aguilar

•Mayor espacio de direcciones •2N donde N = Longitud de una palabra > K = longitud del campo de dirección•Puede ser multinivel (en cascada)•Ejemplo: EA = (((A)))•Un bit bandera indica si la dirección efectiva esta contenida en la palabra.

•Múltiples accesos a memoria para encontrar el operando.

VENTAJAS DESVENTAJAS

Ing. Miguel Aguilar Arquitectura de Computadoras 75

DIRECCIONAMIENTO POR REGISTRO

• Es similar al direccionamiento directo, solo que hace referencia a un registro en lugar de una locación de memoria: EA=R

Arquitectura de Computadoras 76Ing. Miguel Aguilar

• Limitado número de registros de propósito general se necesita un pequeño campo de dirección (3-5 bits).• Instrucciones cortas• Mas rápida búsqueda del

operando• No hay accesos a memoria• Rápida ejecución de las

instrucciones

• Muy limitado espacio de direcciones.

VENTAJAS DESVENTAJAS

Ing. Miguel Aguilar Arquitectura de Computadoras 77

DIRECCIONAMIENTO INDIRECTO POR REGISTRO

• La instrucción especifica un registro R del procesador cuyo contenido es la dirección del operando en la memoria :

EA = (R)

Arquitectura de Computadoras 78Ing. Miguel Aguilar

• Mayor espacio de direcciones 2N

• Un acceso a memoria.

VENTAJAS DESVENTAJAS

Ing. Miguel Aguilar Arquitectura de Computadoras 79

DIRECCIONAMIENTO POR DESPLAZAMIENTO

• Requiere dos campos de direccionamiento– A = Valor Base– R = Registro que contiene el

desplazamiento

EA = A + (R)• Usos mas comunes:

– Direccionamiento Relativo – Direccionamiento con Registro

base– Indexado

Combina el direccionamiento directo e indirecto con registro.

DIRECCIONAMIENTO RELATIVO

• El contenido del contador de programa PC, es decir la dirección de la instrucción actual se suma al campo de dirección de la instrucción para obtener la dirección efectiva.

EA = A + (R)

Ing. Miguel Aguilar Arquitectura de Computadoras 80

Cuando se suma este numero al contenido del Contador de Programa, el resultado produce una dirección efectivacuya posición en la memoria es relativa a la dirección del siguiente instrucción.

DIRECCION A

Operando

PC +

MEMORIA

INSTRUCCIONOpcode

Ing. Miguel Aguilar Arquitectura de Computadoras 81

Opcode 24

Operando

826 +

MEMORIA

INSTRUCCIÓN

La instrucción en la localización 825 se lee de la memoria durante el ciclo de búsqueda

y el contador de programa es entonces incrementado en uno a 826.

El calculo de dirección efectiva para el modo de

dirección relativo es 826+24=850

PC

Siguiente Instruccion 826

850

24

Con frecuencia se utiliza el direccionamiento relativo con instrucciones tipo salto, cuando la dirección del salto esta en el área que rodea la

palabra de la instrucción misma

Arquitectura de Computadoras 82Ing. Miguel Aguilar

DIRECCIONAMIENTO POR REGISTRO BASE

Se utiliza en las computadoras para facilitar la localización de los programas en memoria. Cuando se mueven datos y programas de un

segmento a otro, como se requiere en la multiprogramación, los valores de dirección de las instrucciones deben reflejar este cambio

de posición.

EA = A + ( R )– El campo de dirección A contiene el desplazamiento.

• Es tratada como un entero sin signo.

– R contiene la dirección base de memoria.• La referencia a registro R puede ser implícita o explicita.

DIRECCIONAMIENTO POR REGISTRO BASE

Ing. Miguel Aguilar Arquitectura de Computadoras 83

IMPLICITO

Opcode Dirección A

Operando

Registro Base +

MEMORIA

INSTRUCCION

PROGRAMA

El registro Base contiene la dirección base en

memoria

Dirección Base

DIRECCIONAMIENTO POR REGISTRO BASE

Ing. Miguel Aguilar Arquitectura de Computadoras 84

EXPLICITO

Si la longitud del campo de direcciones es K y el numero de registros posibles es N, una instrucción puede referenciar cualquiera de las N áreas de palabras (Explicito).

Arquitectura de Computadoras 85Ing. Miguel Aguilar

• Se utiliza para la relocalización de programas en la memoria.

• Permite direccionar todo un programa a partir de una dirección base.

• Permite la carga simultanea de varios programas, cada uno de los cuales es referenciado mediante un registro.

APLICACIÓN REGISTRO BASE

Ing. Miguel Aguilar Arquitectura de Computadoras 86

DIRECCIONAMIENTO INDEXADO

• EA = A + ( R )– El campo de dirección A hace referencia a una dirección de

memoria.– R registro índice contiene un desplazamiento positivo desde esa

dirección.• Es tratado como un entero sin signo• R puede ser explicito o implícito

• Es un eficiente mecanismo para ejecutar operaciones iterativas con arreglos y matrices de datos almacenados en memoria.

DIRECCIONAMIENTO INDEXADO

REGISTRO IMPLICITO

Ing. Miguel Aguilar Arquitectura de Computadoras 87

Opcode Dirección A

Operando

Registro Indice +

INSTRUCCION

TABLA DE DATOS

El campo de dirección contiene la dirección base

en memoria

Arquitectura de Computadoras 88Ing. Miguel Aguilar

DIRECCIONAMIENTO INDEXADOSuponga que se quiere sumar 1 a cada elemento de la lista. Necesitamos cada valor, sumarle 1 y memorizar el resultado. La secuencia de direcciones efectivas necesarias

es A, A+1, A+2, A+3,…..hasta la ultima posición de lista.

.

.A+n

A

A+1

A+2

A+3

A+4

Opcode Dirección A

Dato

0+

INSTRUCCION

El campo de dirección contiene la dirección base

en memoria

Registro IndiceDato

Dato

Dato

Dato

Dato

(R) ← (R) +1

Autoindexado

Arquitectura de Computadoras 89Ing. Miguel Aguilar

Opcode Registro R Dirección A

Registro Indice +

REGISTROS

MEMORIA

INSTRUCCION

Operando

TABLA DE DATOS

REGISTRO EXPLICITO

DIRECCIONAMIENTO INDEXADO

Arquitectura de Computadoras 90

Post Indexado• El indexado es ejecutado

después de calcular la dirección.

• EA = (A) + (R)• El contenido de A es usado

para el acceso a una locación de memoria que contiene la dirección directa.

• La dirección es indexada mediante el valor del registro índice R.

Opcode Dirección A

Operando

Registro Indice +

MEMORIA

INSTRUCCION

Direccion

Ing. Miguel Aguilar

Algunas computadoras disponen de direccionamiento tanto indirecto como indexado, y es posible emplear ambos en la misma instrucción. Hay dos

posibilidades el indexado se realiza antes o después del direccionamiento indirecto.

Es una técnica útil para acceder a uno entre un numero de bloques de datos con un formato fijo, por ejemplo el bloque de control que el sistema operativo

utiliza para cada proceso.

Arquitectura de Computadoras 91Ing. Miguel Aguilar

Identificador

Estado

Prioridad

Contador de Programa

Punteros de memoria

Datos de contexto

Información de estado de E/S

Información de cuentas

.

.

.

.

BLOQUE DE CONTROL DE PROCESOS

Para cada proceso del sistema, el sistema operativo debe mantener información de su estado identificando la situación en que se

encuentra el proceso y cualquier información adicional necesaria para la ejecución del mismo.

Para eso, cada proceso se representa ene el sistema operativo mediante un bloque de

control de procesos.

Arquitectura de Computadoras 92

PRE INDEXADO

• El indexado es ejecutado antes de calcular la dirección.

• EA = (A+(R))• La locación A+(R) no contiene el

operando pero si la dirección de este.

Opcode Dirección A

Registro Indice +

MEMORIA

INSTRUCCION

OPERANDO

DIRECCION

Ing. Miguel Aguilar

Un ejemplo del uso de esta técnica es la construcción de tablas de bifurcación multirama. En un punto concreto de un programa puede haber

una bifurcación a una de entre varias posiciones, en función de diversas condiciones.

Normalmente, un mismo repertorio de instrucciones no incluirá el post indexado y pre-indexado simultáneamente.

Ing. Miguel Aguilar Arquitectura de Computadoras 93

Ing. Miguel Aguilar Arquitectura de Computadoras 94

EJECUCION DE LA INSTRUCCIÓN ADD

Arquitectura de Computadoras 95Ing. Miguel Aguilar

• Direccionamiento Indirecto por Registro Implícito : • El Registro Puntero de Pila, Stack pointer (SP):

contiene la dirección del elemento superior (Top) de la pila.

• EA = top del stack• Los operandos están (implícitos) en el top del

stack

DIRECCIONAMIENTO POR PILA

Ing. Miguel Aguilar Arquitectura de Computadoras 96

Arquitectura de Computadoras 97Ing. Miguel Aguilar

Arquitectura de Computadoras 98Ing. Miguel Aguilar

Ing. Miguel Aguilar Arquitectura de Computadoras 99

Utilizando la memoria descrita, determinar que valores se cargan en los registros.

Ing. Miguel Aguilar Arquitectura de Computadoras 100

Utilizando la memoria descrita, determinar cuales valores son cargados por cada instrucción del programa. Note que, cuando la memoria es usada como stack, el stack crece desde la dirección mas baja a la mas alta. X es la dirección de memoria simbólica.

EL PROCESADORESTRUCTURA Y FUNCION

Ing. Miguel Aguilar 101Arquitectura de Computadoras

Arquitectura de Computadoras 102Ing. Miguel Aguilar

•Buscar instrucciones•Interpretar instrucciones•Buscar datos•Procesar datos•Escribir datos

Para entender la organización del procesador debemos considerar las

cosas que puede hacer.

Arquitectura de Computadoras 103Ing. Miguel Aguilar

• Recordar la locación de la ultima instrucción para conocer donde encontrar la siguiente.

• Almacenar instrucciones y datos temporalmente mientras una instrucción esta siendo ejecutada, en otras palabras necesita una pequeña memoria interna (Registros).

Para hacer todo lo anterior el procesador necesita:

PROCESADOR Y SISTEMA DE BUSES

• La ALU realiza el procesamiento de datos.

• La Unidad de Control controla el movimiento de datos e instrucciones hacia dentro y fuera del procesador, además controla las operaciones de la ALU.

• Los registros son un conjunto de locaciones que constituyen la memoria interna del procesador.

Ing. Miguel Aguilar Arquitectura de Computadoras 104

ESTRUCTURA INTERNA DEL PROCESADOR

• El bus interno del procesador es necesario para transferir datos entre los registros y la ALU, debido a que esta opera solamente sobre datos en la memoria interna del procesador.

Ing. Miguel Aguilar Arquitectura de Computadoras 105

Arquitectura de Computadoras 106Ing. Miguel Aguilar

•Registros Visibles por el Usuario•Registros de Control y Estado

TIPOS DE REGISTROS

Arquitectura de Computadoras 107Ing. Miguel Aguilar

• Están disponibles

para el programado

r en lenguaje de maquina o

ensamblador para

minimizar las

referencias a memoria mediante la optimización del uso de los registros.

REGISTROS VISIBLES POR EL USUARIO

Arquitectura de Computadoras 108Ing. Miguel Aguilar

• Usados por la Unidad de Control para controlar la operación

del procesador,

también utilizados

por programas del sistema operativo

para controlar la

ejecución de los

programas.

REGISTROS DE ESTADO Y CONTROL

Arquitectura de Computadoras 109Ing. Miguel Aguilar

•Propósito General•Datos•Direcciones•Códigos de Condición

REGISTROS VISIBLES POR EL USUARIO

Arquitectura de Computadoras 110Ing. Miguel Aguilar

• Pueden ser asignados a una variedad de funciones por el programador.

• Algunas veces su uso dentro del conjunto de instrucciones es ortogonal a la operación, es decir, cualquier registro de propósito general puede contener el operando para cualquier Opcode.

• Direccionamiento indirecto por registro o con desplazamiento.

REGISTROS DE PROPOSITO GENERAL

Arquitectura de Computadoras 111Ing. Miguel Aguilar

• Pueden ser usados solamente para almacenar datos y no pueden emplearse en el calculo de una dirección de operando.

• Ejemplo: El Acumulador

REGISTROS DE DATOS

Arquitectura de Computadoras 112Ing. Miguel Aguilar

•Punteros de Segmento•Registros Indice•Puntero de Pila

REGISTROS DE DIRECCIONES

Arquitectura de Computadoras 113Ing. Miguel Aguilar

• Son bits activados por el hardware del procesador como resultado de operaciones efectuadas en la ALU.

• Los bits de código de condición son agrupados en uno o mas registros. Usualmente forman parte de un registro de control.

• Generalmente , las instrucciones de maquina permiten que esos bits sean leídos por referencia implícita, pero el programador no puede alterarlos.

REGISTROS CODIGOS DE CONDICION

Arquitectura de Computadoras 114Ing. Miguel Aguilar

• Contador de Programa (PC)

• Registro de Instrucciones (IR)

• Registro de Direcciones de Memoria (MAR)

• Registro Buffer de Memoria (MBR)

REGISTROS DE CONTROL Y ESTADO

Arquitectura de Computadoras 115Ing. Miguel Aguilar

• SIGN• ZERO• CARRY• EQUAL• OVERFLOW• INTERRUPT

ENABLE/DISABLE

• SUPERVISOR

PALABRA DE ESTADO DEL PROGRAMA (PSW)

EJEMPLO ORGANIZACIÓN DE REGISTROS EN PROCESADORES

Ing. Miguel Aguilar 116Arquitectura de Computadoras

EL CICLO DE INSTRUCCION

• Búsqueda• Ejecución• Interrupción

Debemos introducir un subciclo adicional, conocido como ciclo indirecto.

Ing. Miguel Aguilar Arquitectura de Computadoras 117

EL CICLO INDIRECTO

Sabemos que la ejecución de una instrucción puede involucrar uno o mas operandos en memoria, cada uno de los cuales requiere

un acceso a memoria.

Es mas, si es usado direccionamiento indirecto, entonces se requieren accesos

adicionales a memoria

Ing. Miguel Aguilar Arquitectura de Computadoras 118

EL CICLO DE INSTRUCCION• La línea principal de actividad

consiste en la búsqueda y ejecución de la instrucción.

• Después, una instrucción es buscada y examinada para determinar si implica algún ciclo indirecto.

• Si existe ciclo indirecto, los operandos son buscados usando direccionamiento indirecto.

• Después de la ejecución una interrupción puede ser procesada antes de buscar la siguiente instrucción.

Ing. Miguel Aguilar Arquitectura de Computadoras 119

• Una vez que la instrucción es traída desde memoria, sus operandos deben ser identificados.

• Cada operando debe ser buscado y esto este proceso requiere direccionamiento indirecto.

• Una vez que el Opcode es ejecutado, un proceso similar puede ser necesario para almacenar el resultado en memoria principal.

Ing. Miguel Aguilar Arquitectura de Computadoras 120

Arquitectura de Computadoras 121

FLUJO DE DATOS EN UN PROCESADOR

Ing. Miguel Aguilar

Arquitectura de Computadoras 122Ing. Miguel Aguilar

PC MAR

IR MBR

UNIDAD DE

CONTROL

CPU

MEMORIA

BUS DIRECCIONES

BUS DATOS

BUS CONTROL

CICLO DE BUSQUEDA

• PC contiene la dirección de la siguiente instrucción.

• La dirección es cargada en el MAR.

• La dirección es colocada en el bus de direcciones.

• La Unidad de Control envía una señal de solicitud de lectura.

• El resultado es colocado en el bus de datos, copiado en el MBR, y luego a IR.

• Mientras tanto el PC es incrementado en 1.

Arquitectura de Computadoras 123Ing. Miguel Aguilar

MAR

UNIDAD DE

CONTROL

CPU

MEMORIA

BUS DIRECCIONES

BUS DATOS

BUS CONTROL

CICLO INDIRECTO

MBRIR

• IR es examinado• Si el direccionamiento

es indirecto , el ciclo indirecto es ejecutado.– Los N bits mas a la

derecha del MBR son transferidos al MAR.

– La Unidad de Control solicita una lectura de memoria.

– El resultado (dirección del operando) es cargado en el MBR.

Arquitectura de Computadoras 124Ing. Miguel Aguilar

PC MAR

MBR

CPU

MEMORIA

CICLO DE INTERRUPCION

UNIDAD DE

CONTROL

BUS DIRECCIONES

BUS DATOS

BUS CONTROL

ISR

• La dirección actual del PC es salvada para permitir retomar el programa después de la interrupción.– El contenido del PC es

copiado al MBR.– Especial locación de

memoria (puntero de pila) cargado al MAR.

– El contenido del MBR es escrito en memoria.

• PC es cargado con la dirección del ISR.

• La siguiente instrucción (primera del ISR) puede ser buscada.

CICLO DE EJECUCION

• Puede tomar muchas formas.• Depende de la instrucción que esta siendo ejecutada.• Puede incluir:

– Transferencia de registros– Lectura/Escritura en memoria– Entrada/Salida– Operaciones de la ALU

Ing. Miguel Aguilar Arquitectura de Computadoras 125