Vous êtes sur la page 1sur 38

Facultad de Ingeniera de

Sistemas e Informtica

REPERTORIO DE INSTRUCCIONES:
CARACTERISTICAS Y FUNCIONES
Semestre 2013 - I

Asignatura: Arquitectura de Procesadores I


Docente: Alejandro Reategui Pezo

Qu es un conjunto de instrucciones?
La coleccin completa de instrucciones
que es entendida por una CPU.
Las instrucciones incluyen:
* Aritmtica (suma, resta).
* Instrucciones lgicas (and, or, not).
* Instrucciones de datos como mover (move),
entrada (input), salida (output), cargar (load), y almacenar
(store).
* Instrucciones de control de flujo como goto, if, call y
return.

Elementos de una Instruccin


Cdigo de operacin (cdigo Op)
Especifica la operacin a realizar.

Referencia a operando Fuente


Debido a que la operacin puede implicar a uno o mas
operandos fuentes.

Referencia al operando resultado


El resultado de la operacin.

Referencia a la siguiente Instruccion


Dice a la CPU de dnde captar la siguiente instruccin.

Dnde estn todos los operandos?


Tanto los operandos fuentes como los
resultados pueden estar en algunas de las
siguientes reas:
La memoria principal (o la memoria virtual o memoria cach)
Registro de la CPU( contiene uno o ms registros qu pueden
ser referenciados por instrucciones mquina.)
Dispositivo e/s (La instruccin debe especificar el mdulo y
dispositivo de E/S para la operacin.)

Diagrama de estado de Ciclo de


Instrucciones

Representacin de las Instruccines


Cada instruccin se representa por una secuencia de bits. La
instruccin est dividida en campos o secciones.
Tanto para los programadores como para lectores de libro de
texto, les resulta difcil manejar las representaciones binarias de
las instrucciones mquina.
Ejemplos de representaciones simblicas:
ADD, SUB, LOAD,MPY (agregar, Restar, CARGA, Multiplicar)

Tambin se puede representar de esta manera:

ADD A,B (AADIR A y B)

Formato de instrucciones simples

Tipos de instrucciones
Procesamiento de datos: Instrucciones
aritmticas y lgicas.
Almacenamiento de datos (memoria
principal):Instrucciones de memoria
Tranferencia de datos (e/s): Instrucciones de
E/S.
De Control:Instrucciones de comprobacin y
de bifurcacin.

Ejemplo de Instruccin
Considere una instruccin de alto nivel, tal y como se expresara en
un lenguaje como el BASIC o C#.
W=X+Y
Ahora con Instrucciones mquinas
X corresponde a la posicin 513
Y corresponde a la posicin 514

Se llevara a cabo con tres Instrucciones mquinas:


1. Cargar un registro con el contenido de la posicin de memoria 513.
2. Sumar al registro el contenido de la posicin de memoria 514.
3. Memorizar el contenido del registro en 1a posicin de memoria 513.

Nmero de direcciones (a)


Las CPU trabajan con instrucciones de una, dos o
tres direcciones.
3 direcciones
Operando 1 , Operando 2 , Resultado
Supongamos la instruccin SUB Y,B. Se calcula la resta (Y-B) y el resultado lo grabamos en Resultado

Se pudiera hablar de una cuarta direccin que


vendra a ser la direccin de la instruccin
siguiente.
No es comun, ya que se necesitan formatos
relativamente largos para albergar las tres referencias.

Nmero de direcciones (b)


2 direcciones
Una de las direcciones debe hacer el servicio
de uno de los operandos y del resultado.
Operando 1

doble

, Operando 2

Supongamos la instruccin SUB Y,B. Primero se calcula la resta (Y-B) y se guarda el resultado en
Y(Operando 1)

Reduce la duracin de la instruccin.


Requiere un poco de trabajo extra
Para evitar que se alteren valores se realiza almacenamiento
temporal para desempear algunos resultados.

Nmero de direcciones (c)


1 direccin
Implcito segunda direccin, que es un registro de
CPU conocido como acumulador, ste contiene uno
de los operandos y se emplea para almacenar el
resultado.
Comn en las primeras mquinas

Nmero de direcciones (d)


0 (zero) direcciones
Todas las direcciones son implcitas
Son aplicables a una organizacin especial de
memoria a traves de una pila, que es un conjunto
posiciones del tipo last-in-Jirst-out (el ltimo en
entrar es primero en salir).

Cuntas direcciones?
Ms direcciones
Ms compleja, con mayor tiempo de ejecucin.
Menos instrucciones por programa
Menos direcciones

Menos complejos
Implican instrucciones cortas.
Ms instrucciones por programa
Ms rpido obtener/ejecucin de instrucciones

Decisiones de diseo (1)


El diseo de un repertorio de instrucciones es muy complejo, ya que afecta a
muchos aspectos del computador, define muchas de las funciones realizadas
por la CPU.
Los ms importantes entre dichos aspectos de diseo son:
Repertorio de operaciones
cuantas?
Qu operaciones?
cuan complejas deben ser?
Tipos de datos (con los que se realizan las operaciones)
Formatos de instrucciones

Nmero de direcciones
Longitud de la instruccion(en bits)

Decisiones de diseo(2)
Registros
Nmero de registros de la CPU disponible
Nmero de registros de la CPU que pueden ser referenciados por
instrucciones.

Modos de direccionamiento

( Los modos mediante los cuales puede especificarse la direccin de un


operando.)

Tipos de operandos
Las categoras generales ms importantes de datos son:

Direcciones
(Direccin de memoria principal o virtual. En este contexto, las direcciones
pueden considerarse como nmeros enteros sin signo.)

Nmeros
Entero/ punto flotante
Los usuarios utilizamos nmeros decimales, stos se convierten en binarios, y
de binario a decimal para las salidas.

Carcteres
-ASCII (Cdigo Estndar Americano para Intercambio de informacin)
Cada carcter es representado en este cdigo por un patrn distinto de 7 bits.

Datos lgicos
-Una unidad de n bits como n elementos o datos de 1 bit

Pentium II: Tipos de datos


Puede tratar tipo de datos de:
Tipo de datos de 8 byte.
16 bits de longitud- Palabra
32 bits de longitud- Palabra doble
64 bits de longitud- Palabra Cudruple.
El byte,la palabra,la palabra doble y la cudruple, son referidas
como tipos generales de datos. Adems, el Pentium II admite
una variedad impresionante de tipos de datos especficos.

Tipos de datos especficos


General -Contenido binario arbitrario (byte,16,32,64 bits)
Entero -Un valor binario con signo, representado en

complemento de

dos.

Ordinal - Entero sin signo.


BCD desempaquetado - Un dgito por byte (rango 0-9)

BCD empaquetados, 2 dgitos BCD por byte (rango 0-99)


Puntero Cercano -Una direccin efectiva de 32 bits que representa el
desplazamiento dentro de un segmento.

Campo de Bits - Una secuencia contigua de bits en la que cada posicin de


bit se considera como unidad independiente.

Byte Cadena -Una secuencia contigua de bytes ,de palabras,o de palabras


dobles.

Tipos de datos PowerPC


Maneja tipos de datos de 8 (byte), 16 (media palabra), 32
(palabra) y 64
(palabra doble) bits de longitud.
Byte sin signo: Puede utilizarse para operaciones lgicas o para
aritmticas con enteros
Media palabra sin signo: Como antes, pero para cantidades de 16 bits.
Media palabra con signo: Utilizado para operaciones aritmticas
Palabra sin signo: Utilizado para operaciones lgicas y como puntero de
direcciones
Palabra con signo: Utllizado para operaciones aritmticas.

Tipos de Operacin
1. Transferencia de datos
2. aritmtica
3. lgico
4. conversin
5. E / S
6. sistema de control

7. Transferencia de Control

Transferencia de datos
Definicin:
En trminos de la accin de la CPU, las operaciones de transferencia de datos
son quizs las ms sencillas. Cuando, tanto el origen como el destino, son
registros, la CPU simplemente hace que los datos se transfieran de un registro
a otro; sta es una operacin interna a la CPU.
Tres puntos que debe tener en cuenta
Especificar
Posiciones de los operandos fuente
Posiciones de los operandos de destino
Cantidad de datos
Direccionamiento para cada operando.
Los movimientos se dan de la siguiente manera:
-> registro - registro
-> registro memoria
-> memoria - registro
-> registro pila
-> memoria memoria
-> memoria pila
-> pila registro
-> pila-memoria

Si el origen y el destino son registros, la CPU hace la


operacin (interna).
Si uno o ambos operandos estn en memoria -> La CPU debe
realizar alguna o todas las siguientes tareas:
1. Calcular la direccin de memoria basndose en el modo de
direccionamiento utilizado.
2. Si la direccin hace referencia a memoria virtual: traducir de
direccin virtual a real.
3. Determinar si el elemento direccionado esta en cache.
4. Si no, cursar la orden al modulo de memoria.

Acciones(instrucciones) mas frecuentes:


Move (Transferir) : copia el contenido de un registro(o memoria) a otro.
Store(Memorizar): copia el contenido de un registro a memoria.
Push(Introducir en la pila- Aplilar): introduce un dato en la cabecera de la
pila.
Pop (extraer de la pila,despilar):saca un dato de la cabecera de la
pila.
Load(cargar o captar):copia el contenido de una posicin de memoria a
un registro
Clear(reiniciar o poner a 0): pone a 0 el destinto. (todos los bits)
Set(poner a 1): pone a 1 el destino. (todos los bits)

Aritmtica
La mayora de las mquinas proporcionan las operaciones aritmticas bsicas
suma, resta, multiplicacin y divisin. Estas se tienen siempre para nmeros
enteros con signo (coma fija). A menudo, las proporcionan tambin para nmeros
en coma flotante y para decimales empaquetados.
Puede incluir varias Instrucciones de un solo operando:
o Absolute |a|: obtiene el valor absoluto del
operando.
o Negate (-a): cambia el signo del operando.
o Increment (a++): Incrementa en 1 el operando.
o Decrement (a--): decrementa en 1 el operando.
Su ejecucin puede implicar: operaciones de transferencia de datos para
ubicar los operando como entradas a la ALU y para almacenar la salida de la
ALU

Lgico
La mayora de las mquinas tambin disponen de diversas operaciones para
manipular bits individuales dentro de una palabra o de otra unidad
direccionable. Estn basadas en operaciones booleanas.

Nota: con una palabra puesta a todo unos, la operacin XOR invierte los bists de la otra palabra
(Complemento a 1)

(R1) = 10100101
(R2) = 11111111
entonces: (R1) XOR (R2) = 01011010

Adems de las operaciones lgicas bit a bit, la mayora de las mquinas ofrecen
diversas funciones de desplazamiento y rotacin.

Desplazamiento y rotacin: permiten desplazar o rotar un operando a la derecha o


izquierda un determinado numero de bits

Desplazamiento lgico : En el desplazamiento lgico los bits de un registro son


desplazados (movidos) una o ms posiciones hacia la
derecha o hacia la izquierda

Desplazamiento Lgico a la izquierda

Desplazamiento Lgico a la derecha

OJO: Los ceros que se van introduciendo en la


palabra desplazan la informacin no deseada,
que se va perdiendo por el otro extremo.

trata el dato como entero con


Desplazamiento Aritmtico :
signo, y no desplaza el bit de signo.

Desplazamiento Aritmtico a la izquierda

Desplazamiento Aritmtico a la derecha

Estos desplazamientos sirven para acelerar ciertas operaciones


aritmticas.
Con nmeros en notacin de C 2, un desplazamiento a izquierda o
derecha equivale a multiplicar o dividir por 2 respectivamente,
asumiendo que no hay desbordamiento ni desbordamiento a 0.

Rotacin o desplazamiento cclico: Preserva todos los bits con que se

esta operando.

Rotacin Izquierda

Rotacin Derecha

Conversin
Las instrucciones de conversin son aquellas que cambian el
formato u operan sobre el formato de los datos. un ejemplo es la
conversin de decimal a binario.

Entrada / Salida
Puede haber instrucciones especficas
Se puede realizar utilizando las instrucciones de
movimiento de datos (memoria mapeada)
Puede ser realizada por un controlador separado
(DMA=acceso directo a memoria )
Sirve para la entrada y salida de datos entre el
computador y dispositivos perifricos

Sistemas de Control
Las instrucciones de control del sistema son, por lo general, instrucciones
privilegiadas que pueden ejecutarse slo mientras el procesador est en un
estado privilegiado concreto o est ejecutando un programa de una zona
privilegiada especfica de memoria. Normalmente, estas instrucciones
estn reservadas para que las use el sistema operativo.

Instrucciones privilegiadas que usa el sistema operativo


RESET: para reiniciar el computador
RTE: retorno de excepcin o interrupcin
Ejemplo:
Leer o alterar un registro de control
Para leer o modificar una clave de proteccin de memoria

Transferencia de Control
En todos los tipos de operaciones discutidos hasta ahora, la siguiente
instruccin a ejecutar es la inmediatamente posterior, en memoria, a la
instruccin en curso. Sin embargo, una fraccin significativa de las
instrucciones de cualquier programa tiene como misin cambiar la secuencia de
ejecucin de instrucciones. Para estas instrucciones, la operacin que realiza la
CPU es actualizar el contador de programa para que contenga la direccin de
alguna de las instrucciones que hay en memoria.
Varias razones para utilizar estas instrucciones:
1. Si se va a procesar una tabla o una lista de elementos(lo normal es
utilizar un Bucle de programa).
2. Los programas incluyen tomas de decisin
3. Existen programas muy largos, se parte la tarea en trozos mas pequeos.
Encontramos:
Instrucciones de bifurcacin, tambin llamadas de salto
Salto Implcito

La mayora de los programas requieren de los ordenadores en que se ejecutan la


capacidad de examinar datos y luego alterar la evolucin del programa en funcin de los
resultados de esa comprobacin

Instrucciones de bifurcacin: tienen como uno de sus operandos la direccin de


la siguiente instruccin a ejecutar

Las llamadas anidadas Procedimiento programa auto consistente que se incorpora en uno m

grande.
Razones de su uso:
Economa y modularidad
Economiza
esfuerzo
de
programacin y hace mas
eficiente el uso del espacio de
memoria.

La CPU debe guardar la direccin de retorno en algn sitio.


Existen 3 lugares habituales:
o Un registro
o Al principio de procedimiento
o En la cabecera de una pila: es la opcin mas potente y mas general

o Registro: CALL X ( llamada al procedimiento de la posicin x). Si se utiliza un


registro se produce:
RN <- PC +
,
RN: registro utilizado a este fin
PC <- X
,
PC: contador de programa, : longitud de la instruccin
El procedimiento llamado puede consultar RN para el retorno
posterior.
o Al Principio del Procedimiento: Almacenar la direccin de retorno al
comienzo del procedimiento: CALL X X<- PC +
PC<- x+1 Aqu la direccin de retorno queda almacenada en un lugar
seguro.
Limitacin: Impiden el uso de procedimientos reentrantes (Reentrante: Es posible
tener abiertas varias llamadas
al mismo tiempo). Los procedimientos recursivos son un ej. del uso de esta
caracterstica).

o En la cabecera de una Pila

La CPU cuando ejecuta una llamada, coloca la direccin de retorno en


la pila.
Cuando ejecuta un retorno utiliza la direccin guardada.

Vous aimerez peut-être aussi