EL PROCESADOR.pptx
Transcript of EL PROCESADOR.pptx
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 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 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.
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.
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 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.
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
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)
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.
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 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.
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 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.