Você está na página 1de 82

Arquitectura

Computadoras

de

UNIDAD II

Estructura y funcionamiento de la CPU


INSTITUTO TECNOLGICO DE
TAPACHULA
ING. EN SISTEMAS COMPUTACIONALES

CATEDRTICO

ING. ROSEL MUOZ LOPEZ


INTEGRANTES

Arias Mrida Aldo


Miguel Alejandro Arreola Apan
Diego de Jess Arvalo Ibarra

Tapachula Chiapas a 29 de 09 del 2015

Contenido
2.1 Organizacin del procesador.........................................................................4
2.2 Estructura de registros.................................................................................. 8
2.2.1 Registros visibles para el usuario..........................................................16
2.2.2 Registros de control y estados..............................................................19
2.3 El ciclo de instruccin................................................................................. 22
2.3.1 Ciclo Fetch Decode Execute.............................................................29
2.3.2 Segmentacin de instruccin................................................................33
2.3.3 Conjunto de instrucciones: Caractersticas y funciones........................49
2.3.4 Modos de direccionamiento y formatos................................................51
2.4 Casos de estudio de CPU reales..................................................................63

Introduccin
En esta unidad se abordara distintos tipos de temas y subtemas
relacionados con el funcionamiento del CPU aprenderemos de su
organizacin, tambin sobre su estructura de registros, tambin se
tratara de ver un poco sobre la definicin de estos mismos y como estn
clasificados, como los registros visibles para el usuario, los registros de
control y de estados algunos ejemplos de como estn organizados.Se
tomara en cuenta tambin los ciclos de instrucciones, que tambin son
muy importantes en la CPU, se tomara en cuenta que existen distintos
tipos, uno de los mecionados y conocidos es el ciclo Fetch DecodeExecute, seguidamente un poco de la segmentacin de instrucciones, se
vern sus caractersticas y sus funciones, los modos de direccionamiento
y sus formatos, los casos de CPU reales es un tema extenso en el cual se
busca generalizar un poco lo que se vera en la unidad ya que se puede
ver de distintos enfoques uno mas comercial y tenemos en el cual se
profundizara ms, ya que se puede llegar a desconocer muchos de estos
trminos que se enfocan principalmente en la CPU, el objetivo de la
unidad es dar a conocer como son de vital importancia cada una de
estas acciones, instrucciones, registros, etc. Ya que de esta manera se
pueda llegar a comprender realmente que hace el CPU y no caer en la
conclusin de que es una sola pieza, ya que est formada por el chip
microprocesador y el microprocesador se apoyara de la ALU(unidad
aritmtica y lgica) y de la UC (unidad de control). Aqu es donde se
observara como es que cada componente juega un papel importante

2.1 Organizacin del


procesador

Los procesadores tienen como misin ejecutar operaciones de cmputo.


Sabemos del modelo de Von Neumann que estas operaciones se definen
como instrucciones. En el procesador se sabe que, desde que recibe
energa hasta que se apaga ejecuta constantemente instrucciones. Esta
funcin de procesamiento es la ms importante en el funcionamiento de
una computadora, por lo cual al procesador se le denomina Unidad
Central de Procesamiento o CPU. En esta unidad analizaremos las
estructuras que requiere un CPU muy sencillo para poder ejecutar una
instruccin siguiendo los pasos del ciclo de Instruccin.
Memoria de control organizacin del microprocesador.
La funcin de la unidad de control es iniciar secuencias de micro
operaciones. La cantidad de tipos de operaciones diferentes que estn
disponibles en un sistema dado es finita.
Cuando se generan seales de control por medio de tcnicas de diseo
lgico convencional se dice que la unidad de control es por circuitera.
La funcin de control que especifica una micro operacin es una variable
binaria. Memoria de Control El estado activo puede ser el estado 1 o 0
segn la aplicacin
En un sistema organizado con bus, las seales de control son grupos de
bits que seleccionan las trayectorias en los multiplexores,
decodificadores y unidades lgicas aritmticas.
Cada palabra en la memoria de control contiene un microinstruccin la
cual, especifica una o ms micro operaciones para el sistema. Una
secuencia de microinstrucciones constituye un microprograma.
Memoria de Control La principal ventaja del control microprogramado es
que, una ves establecida la configuracin de la circuitera, no hay
necesidad de cambios posteriores. Memoria de Control La memoria de
control puede ser una memoria de solo lectura (ROM).El contenido de las
palabras en la ROM es fijo y no puede alterarse mediante la
programacin simple.
La microprogramacin dinmica
Permite que una microprograma se cargue al principio desde una
memoria auxiliar; por ejemplo, desde un disco magntico. Este tipo de
memoria puede utilizarse para escribir (cambiar el microprograma).
Secuencia de la Direccin Cada instruccin de PC tiene su propia rutina
de microprograma en la memoria de control para generar las
microoperaciones que ejecutan la instruccin.

Se carga una direccin inicial en el registro de direccin cuando se


enciende la PC, por lo general, es la primera microinstruccin que activa
la rutina de bsqueda de instruccin.

Al final de la rutina de bsqueda, la instruccin est en el registro


instruccin de la computadora. Secuenciador del Microprograma
propsito es presentar una direccin a la memoria de control con el
de que pueda leerse y ejecutarse una microinstruccin. Secuenciador
Microprograma Hay dos multiplexores en el circuito:

de
Su
fin
de

El primero selecciona una direccin de las cuatro fuentes y le marca una


ruta hacia dentro del registro de direccin de control CAR.
El segundo prueba el valor de un bit de estado seleccionado y el
resultado de la prueba se aplica a un circuito lgico de entrada. Formato
de Microinstrucciones
La microinstruccin es una palabra binaria con tantos bits como seales
de control existan en el microprocesador.
Un bit a cero indica que la seal no debe activarse,
Un bit a uno indica lo contrario.
Los bits de una microinstruccin se organizan, conceptualmente, en
campos. Cada campo representa un conjunto de seales elctricas
relacionadas entre si.
Una unidad de control microprogramada consiste esencialmente en
microprocesador dentro del microprocesador consta de elementos
anlogos aunque mas simplificados.
Memoria de programa.
Suele ser una pequea memoria ROM que
microprograma. Formato de Microinstrucciones

incluye

toda

la

Un micro contador de un programa: Es un registro que indica cual es la


microinstruccin en curso.
Un registro de microinstruccin: Contiene la microinstruccin en curso.
Un demultiplexor, en caso de que existan campos multiplexados. Un
pequeo sumados, que permite los saltos de una instruccin a otra.
Una seal de reloj: que indica la duracin de cada microinstruccin Un
microprograma es una secuencia de datos binarios o microinstrucciones
que representan seales elctricas internas de la unidad de control de
un microprocesador.

Formato de Microinstrucciones
Unas pocas de estas microinstrucciones implementan una instruccin
completa del microprocesador. Por ejemplo, la instruccin "sumar dos
registros" tpica de cualquier microprocesador, se implementa mediante
la activacin y desactivacin de un conjunto reducido de seales
elctricas en el banco de registros y la unidad aritmtico-lgica. En
concreto, el microprograma de esta instruccin significara: Formato de
Microinstrucciones.
Activar las seales de seleccin de registro como primer operando de la
ALU.
Activar las seales de seleccin de registro como segundo operando de
la ALU.
Activar las seales de seleccin de operador para que corresponda a la
suma en la ALU.
Esperar unos ciclos de reloj hasta que la operacin est completada.
Activar la seal de escritura en el registro acumulador. Secuencia de la
Direccin En seguida, la memoria de control recoge la rutina que
determina la direccin efectiva del operador.
Despus, se generan las microoperaciones que ejecutan las
instrucciones que se trajo de la memoria. La Transformacin de bits del
cdigo de instruccin a una direccin en la memoria de control donde se
localiza la rutina se denomina proceso de mapeo. Secuencia de la
Direccin En resumen, las posibilidades de secuencia de direccin que
se requieren en la memoria de control son: Incrementar el registro de
direccionamiento de control. Transferencia de control del programa
condicional o incondicional, dependiendo de las condiciones de los bits
de estado.
Un proceso de mapeo de los bits de la instruccin a una direccin para
una memoria de control.
Una opcin para llamar y regresar solicitud de una subrutina y retorno.
Los secuenciadores incluyen dentro de la unidad una pila de registro
interno que se usa para el almacenamiento temporal de direcciones
durante solicitudes de subrutinas y ciclos de microprograma.
Secuenciador de Microprograma El campo CD (condicin) selecciona uno
de los bits de estado del segundo multiplexor, si es 1 la variable T "true"
(prueba) es igual a 1, sino lo iguala a 0.

El valor T junto con los dos bits del campo BR (brincar) van a un circuito
lgico de entrada. La lgica de entrada determinara el tipo de
operaciones disponibles en la unidad.
Las operaciones tpicas son: Incrementar, transferir o hacer saltar,
llamar y retornar de subrutina, cargar una direccin externa, salvar o
leer la pila, entre otras. Secuenciador de Microprograma El secuenciador
puede proporcionar hasta ocho operaciones de secuenciamiento de
direccin. Algunos secuenciadores tienen tres o cuatro entradas adems
de la entrada T siendo estos de mayor rango de operaciones. Tres
entradas: I0, I1 y T / Tres salidas: S0, S1 y L El circuito puede construirse
con tres compuertas AND, una OR y un Inversor

2.2 Estructura de
registros

En el CPU tienen lugar la mayor cantidad de trabajo real de una


computadora. El CPU tiene muchas sub-partes, incluyendo una unidad
aritmtica y lgica (ALU), una unidad de control (CU) y registros. La ALU
realiza aritmtica bsica y compara dos valores para determinar si son
iguales o si uno es ms grande. La CU administra el movimiento de
datos e instrucciones en el CPU. Los registros vienen de tres tipos: datos,
direcciones e ndice, que tiene lugar en casi todos los aspectos de la
operacin del CPU. El tamao de un registro depende del CPU; los ms
simples tienen registros que aceptan 8 o 16 bits de datos y los ms
complejos tienen registros de 32, 48 o 64 bits.
Registros de la CPU
Para poder hacer estas cosas, es obvio que la CPU necesita almacenar
algunos datos temporalmente. Debe recordar la posicin de la ltima
instruccin de forma que sepa dnde ir a buscar la siguiente. Necesita
almacenar instrucciones y datos temporalmente mientras una
instruccin est siendo ejecutada. En otras palabras, la CPU necesita
una pequea memoria interna. En la estructura interna de la CPU se
indican los caminos de transferencia de datos y de control lgico, que
incluyen un elemento con el rtulo bus interno de la CPU. Este elemento
es necesario para transferir datos entre los diversos registros y la ALU,
ya que sta en realidad slo opera con datos de la memoria interna de la
CPU.
Los registros de la CPU son:
Registros visibles al usuario.
Permiten al programador de lenguaje de mquina o ensamblador
minimizar las referencias a memoria principal optimizando el uso de los
registros.
Registros de control.
Son utilizados por la unidad de control para controlar el funcionamiento
de la CPU y por programas privilegiados del sistema para controlar la
ejecucin de programas.
Registro de estado.
Se utiliza para tomar decisiones en funcin de operaciones realizadas.
Registro puntero a pila.
SP = Puntero de pila (stack pointer).
Apunta a la cabeza de la pila. Utilizado en las instrucciones de manejo
de la pila.

BP = Puntero base (base pointer).


Es un puntero de base, que apunta a una zona dentro de la pila dedicada
al almacenamiento de datos (variables locales y parmetros de las
funciones en los programas compilados).
Registros de datos
Un CPU puede funcionar con datos en uno de tres modos: entre dos
registros, entre registros y una ubicacin de Memoria de acceso al azar
(RAM - Random-Access Memory) y entre dos ubicaciones RAM. Como el
CPU est conectado directamente a los registros, las operaciones que
implican dos registros son las ms rpidas; las que se dan entre
ubicaciones RAM son las ms lentas. Es decir, junta dos registros, aade
un registro a una ubicacin RAM, o aade dos ubicaciones RAM. El CPU
debe primero cargar datos desde la RAM a los registros antes de poder
usarlos; esto lleva tiempo, pero una vez hecho, las operaciones
subsecuentes del registro se ejecutan rpidamente.
AX, BX, CX, DX: pueden utilizarse bien como registros de 16 bits o como
dos registros separados de 8 bits (byte superior e inferior) cambiando la
X por H o L segn queramos referirnos a la parte alta o baja
respectivamente. Por ejemplo, AX se descompone en AH (parte alta) y
AL (parte baja). Evidentemente, cualquier cambio sobre AH o AL altera
AX!: valga como ejemplo que al incrementar AH se le estn aadiendo
256 unidades a AX.
AX = Acumulador.
Es el registro principal, es utilizado en las instrucciones de multiplicacin
y divisin y en algunas instrucciones aritmticas especializadas, as
como en ciertas operaciones de carcter especfico como entrada, salida
y traduccin. Obsrvese que el 8086 es suficientemente potente para
realizar las operaciones lgicas, la suma y la resta sobre cualquier
registro de datos, no necesariamente el acumulador.
BX = Base.
Se usa como registro base para referenciar direcciones de memoria con
direccionamiento indirecto, manteniendo la direccin de la base o
comienzo de tablas o matrices. De esta manera, no es preciso indicar
una posicin de memoria fija, sino la nmero BX (as, haciendo avanzar
de unidad en unidad a BX, por ejemplo, se puede ir accediendo a un
gran bloque de memoria en un bucle).

CX = Contador.

Se utiliza comnmente como contador en bucles y operaciones


repetitivas de manejo de cadenas. En las instrucciones de
desplazamiento y rotacin se utiliza como contador de 8 bits.

DX = Datos.
Usado en conjuncin con AX en las operaciones de multiplicacin y
divisin que involucran o generan datos de 32 bits. En las de entrada y
salida se emplea para especificar la direccin del puerto E/S.
Registros de direcciones
Para que un CPU pueda almacenar y recuperar datos en RAM, debe tener
la direccin de la memoria de la informacin. Esas operaciones que
implican RAM usan registros de direccin de memoria. EL CPU no realiza
aritmtica en estos registros; en cambio, los usa para ubicar datos que
necesita. Por ejemplo, un programa almacena el comienzo de tu primer
nombre en una ubicacin 100.000 de memoria RAM. El CPU procesa tu
primer nombre moviendo el nmero 100.000 a un registro de direccin,
luego mueve cada letra a un registro de datos hasta que alcanza el final
del nombre.
Registro de ndice
Un CPU no puede hacer matemticas en registros de datos, aunque
puede hacerlo indirectamente con un registro de ndice. ste trabaja con
los registros de datos, permitiendo a un programa procesar hilos de
informacin eficazmente. Para procesar tu primer nombre, por ejemplo,
un programa mueve 100.000 a un registro de direccin y cero a un
registro de ndice. Una operacin en los ndices aade el valor del ndice
al registro de datos, recuperando la letra de la ubicacin 100.000.
Luego, el programa aumenta el ndice en uno, y obtiene la siguiente
letra. Repite este proceso hasta que ha movido todo el nombre. En s
mismo, el registro de ndice hace muy poco; su valor es que le da mayor
velocidad y conveniencia a los registros de direcciones.
SI = ndice fuente (source index).
Utilizado como registro de ndice en ciertos modos de direccionamiento
indirecto, tambin se emplea para guardar un valor de desplazamiento
en operaciones de cadenas.
DI = ndice destino (destination index).

Se usa en determinados modos de direccionamiento indirecto y para


almacenar un desplazamiento en operaciones con cadenas.
Puntero de instrucciones o contador de programa:
IP = Puntero de instruccin (instruction pointer).
Marca el desplazamiento de la instruccin en curso dentro del segmento
de cdigo. Es automticamente modificado con la lectura de una
instruccin.

Registros de segmento:
Definen reas de 64 Kb dentro del espacio de direcciones de 1 Mb del
8086. Estas reas pueden solaparse total o parcialmente. No es posible
acceder a una posicin de memoria no definida por algn segmento: si
es preciso, habr de moverse alguno.
CS = Registro de segmento de cdigo (code segment).
Contiene la direccin del segmento con las instrucciones del programa.
Los programas de ms de 64 Kb requieren cambiar CS peridicamente.
DS = Registro de segmento de datos (data segment).
Segmento del rea de datos del programa.
SS = Registro de segmento de pila (stack segment).
Segmento de pila.
ES = Registro de segmento extra (extra segment).
Segmento de ampliacin para zona de datos. Es extraordinariamente til
actuando en conjuncin con DS: con ambos se puede definir dos zonas
de 64 Kb, tan alejadas como se desee en el espacio de direcciones, entre
las que se pueden intercambiar datos.
Registros punteros de pila:
SP = Puntero de pila (stack pointer).
Apunta a la cabeza de la pila. Utilizado en las instrucciones de manejo
de la pila.
BP = Puntero base (base pointer).

Es un puntero de base, que apunta a una zona dentro de la pila dedicada


al almacenamiento de datos (variables locales y parmetros de las
funciones en los programas compilados).

Registro de estado o de indicadores (flags).


Es un registro de 16 bits de los cuales 9 son utilizados para indicar
diversas situaciones durante la ejecucin de un programa. Los bits 0, 2,
4, 6, 7 y 11 son indicadores de condicin, que reflejan los resultados de
operaciones del programa; los bits del 8 al 10 son indicadores de control
y el resto no se utilizan. Estos indicadores pueden ser comprobados por
las instrucciones de salto condicional, lo que permite variar el flujo
secuencial del programa segn el resultado de las operaciones.
Clasificacin de los registros.
Los registros internos del procesador se puede clasificar en 6 tipos
diferentes.
1) Registros de segmento.
2) Registros de propsito general.
3) Registros de apuntadores.
4) Registros de banderas.
5) Registros de Puntero de instruccin.
6) Registros de propsito general.
Registros de segmento.
Un registro de segmento tiene 16 bits de longitud y facilita una rea de
memoria para direccionamiento conocida como segmento actual.

Registro Cs: El dos almacena la direccin inicial del segmento de cdigo


de un programa en el registro CS. Indica la direccin de una instruccin
que es buscada para su ejecucin.
Registro DS: genera una referencia a la localidad de un byte especfico
en el segmento de datos.
Registros SS: permite la colocacin en memoria de una pila, para
almacenamiento temporal de direccin y datos.
Registros ES: se utiliza para algunas operaciones con cadenas de
caracteres se utiliza para el manejo de direccionamiento de memoria.

Registros de Propsito General.


Los registros de propsito general AX, BX, CX y DX son los caballos de
batalla del sistema. Son nicos en el sentido de que se puede
direccionarlos como una palabra o como una parte de un byte.
Registro AX: El registro AX es el registro acumulador, es utilizado para
operaciones que implican entrada/salida, y multiplicacin y divisin
(estas dos ltimas en conjunto con el registro DX).
Registro BX: El registro BX es el registro base, y es el nico registro de
propsito general que puede ser un ndice para direccionamiento
indexado.
Registro CX: El registro CX es conocido como el registro contador. Puede
contener un valor para controlar el nmero de veces que un ciclo se
repite o un valor para corrimiento de bits.
Registro DX: El registro DX es el registro de datos. En algunas
operaciones se indica mediante este registro el nmero de puerto de
entrada/salida, y en las operaciones de multiplicacin y divisin de 16
bits se utiliza junto con el acumulador AX.
Registro de Apuntador de Instrucciones.
El registro apuntador de instrucciones (IP) de 16 bits contiene el
desplazamiento de direccin de la siguiente instruccin que se ejecuta.

el IP indica la instruccin actual dentro del segmento de cdigo que se


esta ejecutando actualmente.
Los registros SP (apuntador de la pila) Y BP (apuntador de base) estn
asociados con el registro SS y permiten al sistema accesar datos en el
segmento de la pila.
SP: El apuntador de pila de 16 bits est asociado con el segmento SS y
proporciona un valor de desplazamiento que se refiere a la palabra
actual que est siendo procesada en la pila
BP: El apuntador base de 16 bits facilita la referencia de parmetros
dentro de la pila.
Registros ndice Los registros SI y DI estn
direccionamiento indexado y para sumas y restas.

disponibles

para

Registro SI: El registro ndice fuente de 16 bits es requerido por algunas


operaciones con cadenas de caracteres. El SI est asociado con el
segmento DS.
Registro DI: El registro ndice destino tambin es requerido por algunas
operaciones con cadenas de caracteres. El DI est asociado con el
segmento ES.

Registros de Banderas (Over flow flag, desbordamiento).


Indica desbordamiento del bit de mayor orden despus de una operacin
aritmtica de nmeros con signo (1=existe overflow; 0=no existe
overflow). DF (Direction flag, Direccion): Controla la seleccin de
incremento o decremento de los registros SI y DI en las operaciones con
cadenas de caracteres (1=decremento automtico; 0=incremento).
IF (Interruption flag, Interrupcion): Controla el disparo de las
interrupciones (1=habilita las interrupciones; 0=deshabilita las
interrupciones) Indica que una interrupcin externa, como la entrada
desde el teclado sea procesada o ignorada.
TF (Trap flag, Trampa): Permite la operacin del procesador en modo de
depuracin (paso a paso)
SF (Sign flag, Signo): Contiene el signo resultante de una operacin
aritmtica (0=positivo; 1=negativo).

ZF (Zero flag, Zero): Indica el resultado de una operacin aritmtica o de


comparacin (0=resultado diferente de cero; 1=resultado igual a cero).
AF (Auxiliary carry flag, Acarreo auxiliar): Contiene el acarreo del bit 3.
Esta bandera se prueba con las instrucciones DAA y DAS para ajustar el
valor de AL despus de una suma o resta BCD.
PF (Parity flag, Paridad): Indica si el nmero de bits 1, del byte menos
significativos de una operacin, es par (0=nmero de bits 1 es impar;
1=nmero de bits 1 es par).
CF (Carry flag, Acarreo): Contiene el acarreo del bit de mayor orden
despus de una operacin aritmtica; tambin almacena el contenido
del ltimo bit en una operacin de desplazamiento o de rotacin.
AX

SP

CS

IP

BX

BP

DS

flags

CX

SI

SS

DX

DI

ES

Registros Registro
Registr punteros
s
de
os de de pila e segmen
datos
ndices
to

Registro
puntero
de
instrucciones
y flags

2.2.1 Registros visibles para el usuario


Un registro visible al usuario es aqul que puede ser referenciado por
medio del lenguaje mquina que ejecuta la CPU. Prcticamente todos los
diseos contemporneos de CPUs estn provistos de varios registros
visibles al usuario, en oposicin a disponer de un nico acumulador.
Podemos clasificarlos en:
- Uso General
- Datos
- Direcciones
- Cdigos de Condicin

Registros de uso general.

pueden ser asignados por el programador a diversas funciones. A veces,


su uso dentro del repertorio de instrucciones es para contener el
operando para cualquier cdigo de operacin. Esto proporciona una
utilizacin de registros de autntico uso general. Con frecuencia, sin
embargo, existen restricciones. Por ejemplo, puede haber registros
especficos para operaciones en coma flotante. En algunos casos los
registros de uso general pueden ser utilizados para funciones de
direccionamiento. En otros casos hay una separacin clara o parcial
entre registros de datos y registros de direcciones.
Registros de datos.
pueden ser usados nicamente para contener datos y no se pueden
emplear en el clculo de una direccin de operando.
Registros de direccin
pueden ser en s registros de uso ms o menos general, o pueden estar
dedicados a un modo de direccionamiento particular. El caso ms
conocido es el puntero a pila. La cantidad de registros generales o
especializados es una cuestin de diseo. No hay solucin ptima, pero
la tendencia parece ir hacia el uso de registros especializados. Otro
problema de diseo es el numero de registros, de uso general o de datos
ms direcciones, que tienen que incluirse.
Los registros de datos deben ser capaces de contener valores de la
mayora de tipos de datos. Algunas mquinas permiten que los registros
contiguos sean usados como uno para contener valores de doble
longitud. Una categora final de registros, que es al menos parcialmente
visible al usuario, contiene cdigos de condicin (tambin llamados
indicadores o flags).
Los cdigos de condicin.
son bits fijados por el hardware de la CPU como resultado de alguna
operacin. Por ejemplo, una operacin aritmtica puede producir un
resultado positivo, negativo o nulo, o con desbordamiento. Adems de
almacenarse el propio resultado en un registro o en la memoria, se
obtiene tambin un cdigo de condicin. El cdigo puede ser examinado
con posterioridad como parte de una condicin de bifurcacin
condicional. Los bits de cdigos de condicin se renen en uno o ms
registros. Por lo general, forman parte de un registro de control.
Comnmente, las instrucciones de mquina permiten que estos bits
sean ledos por referencia implcita, pero no pueden ser alterados por el
programador. En algunas mquinas, una llamada a subrutina dar lugar

a la salvaguarda automtica de todos los registros visibles al usuario,


que sern restablecidos en el retorno de la subrutina.

Registro ndice
El direccionamiento indexado es un modo comn de direccionamiento
que implica sumar un ndice a un valor base para obtener la direccin
efectiva.
Puntero de segmento
Con direccionamiento segmentado, la memoria se divide en segmentos,
que son bloques de palabras de tamao variable. Una referencia a
memoria consta de una referencia a un segmento particular y un
desplazamiento dentro del segmento. En este modo, se utiliza un
registro que alberga una direccin base (ubicacin inicial) de un
segmento. Puede haber varios registros de este tipo: por ejemplo, uno
para el sistema operativo (es decir, cuando se ejecuta cdigo del
sistema operativo en el procesador) y otro para la aplicacin que est en
ejecucin.
Puntero de pila.
Si hay un direccionamiento de pila visible para los usuarios, la pila
estar, por lo general, en la memoria principal, existiendo un registro
dedicado a sealar la cima de la pila.
Esto permite el uso de instrucciones que no contienen ningn campo de
direccin, tales como push (poner) y pop (sacar).
En algunas mquinas, una llamada a un procedimiento o subrutina
provocar que los registros visibles de usuario se salven
automticamente, para luego restaurarlos al retomar. Este proceso de
salvar y restaurar lo lleva a cabo el procesador como parte de la
ejecucin de las instrucciones de llamada y retomo. Esto permite que
cada procedimiento pueda usar los registros de forma independiente. En
otras mquinas, es responsabilidad del programador salvar los
contenidos de los registros de usuario visibles que sean relevantes antes
de hacer la llamada a un procedimiento, incluyendo instrucciones en el
programa con tal propsito. As pues, las instrucciones de salvar y
restaurar pueden ser llevadas a cabo por el hardware o por el software,
dependiendo de la mquina.

2.2.2 Registros de control y estados


Varios registros se emplean para controlar las operaciones del
procesador. En la mayora de las mquinas, la mayor parte de estos
registros no son visibles para los usuarios. Algunos de ellos pueden estar
accesibles a las instrucciones de mquina ejecutadas en un modo de
control o modo del sistema.
Una serie de factores inciden en el diseo de la organizacin de los
registros de control y estado. Un punto clave es el soporte del sistema
operativo. Cierto tipo de informacin de control es de utilidad especfica
para el sistema operativo. Si el diseador del procesador dispone de una
visin funcional del sistema operativo, la organizacin de los registros
puede adaptarse convenientemente.
Otra decisin clave del diseo es la asignacin de informacin de control
a los registros y la memoria. Es habitual dedicar los primeros centenares
o miles de palabras (las ms bajas) de memoria para el control. El
diseador debe decidir la cantidad de informacin de control que debe
residir en los rpidos y costosos registros, junto a la cantidad que debe
permanecer en memoria principal, que es ms lenta y barata.
Registro de estado.

Todos los diseos de CPUs incluyen un registro o un conjunto de


registros, conocidos a menudo como palabra de estado de programa
"programa status word", PSW), que contiene informacin de estado. La
PSW contiene tpicamente cdigos de condicin adems de otra
informacin de estado. Entre los campos comunes o indicadores se
incluyen los expresados en la tabla.

Los
siguientes registros son esenciales en la ejecucin de instrucciones;
Contador de programa (PC, Program Counter): Contiene la
direccin de la instruccin a ser leda.
Registro de instruccin (IR, Instruction Regster): Contiene la
ltima instruccin leda. Todos los diseos de procesadores incluyen
adems un registro o conjunto de registros, conocidos a menudo como
palabra de estado del programa (PSW, Program Status Word), que
contiene informacin de estado. Normalmente, la PSW contiene cdigos
de condicin junto a otra informacin de estado. Entre los campos e
indicadores ms comunes se incluyen los siguientes:
Signo: Contiene el bit del signo de la ltima operacin aritmtica
efectuada.
Cero: Se activa cuando el resultado de una operacin aritmtica es
cero.
Acarreo: Se activa cuando, como resultado de una suma o una resta, se
produce un acarreo ms all del bit ms significativo. Se utiliza en
operaciones aritmticas de ms de una palabra.
Igualdad: Se activa si una comparacin lgica da como resultado la
igualdad.
Desbordamiento:
aritmtico.

Empleado

para

sealar

un

desbordamiento

Habilitar/inhahilitar interrupcines: Empleado para habilitar o


inhabilitar interrupciones. Cuando Las interrupciones estn inhabilitadas,
el procesador las ignora. Esto es muy deseable cuando el sistema
operativo est ocupado en el tratamiento de otra interrupcin.
Supervisor: Indica si el procesador est ejecutando en modo supervisor
o en modo usuario. Ciertas instrucciones privilegiadas slo se pueden
ejecutar en modo supervisor y slo se puede tener acceso a ciertas
reas de memoria en modo supervisor.

2.3 El ciclo de instruccin

Un ciclo de instruccin (tambin llamado ciclo de fetch-and-execute o


ciclo de fetch-decode-execute en ingls) es el perodo que tarda la
unidad central de proceso (CPU) en ejecutar una instruccin de lenguaje
mquina.
Comprende una secuencia de acciones determinada que debe llevar a
cabo la CPU para ejecutar cada instruccin en un programa. Cada
instruccin del juego de instrucciones de una CPU puede requerir
diferente nmero de ciclos de instruccin para su ejecucin. Un ciclo de
instruccin est formado por uno o ms ciclos mquina.
Para que cualquier sistema de proceso de datos basado en
microprocesador (por ejemplo un ordenador) o Microcontrolador (por
ejemplo un reproductor de MP3) realice una tarea (programa) primero
debe buscar cada instruccin en la memoria principal y luego ejecutarla.
Secuencia de acciones del ciclo de instruccin.
Habitualmente son cuatro los eventos o pasos que se llevan a cabo en
cada ciclo de instruccin (ciclo de fetch):
Buscar la instruccin en la memoria principal
Se vuelca el valor del contador de programa sobre el bus de direcciones.
Entonces la CPU pasa la instruccin de la memoria principal a travs del
bus de datos al Registro de Datos de Memoria (MDR). A continuacin el
valor del MDR es colocado en el Registro de Instruccin Actual (CIR), un
circuito que guarda la instruccin temporalmente de manera que pueda
ser decodificada y ejecutada.
Decodificar la instruccin
El decodificador de instruccin interpreta e implementa la instruccin. El
registro de instruccin (IR) mantiene la instruccin en curso mientras el
contador de programa (PC, program counter) guarda la direccin de
memoria de la siguiente instruccin a ser ejecutada.

Recogida de
la memoria

datos desde
principal

Tambin se lee la direccin efectiva de la memoria principal si la


instruccin tiene una direccin indirecta, y se recogen los datos
requeridos de la memoria principal para ser procesados y colocados en
los registros de datos.
Ejecutar la instruccin
A partir del registro de instruccin, los datos que forman la instruccin
son decodificados por la unidad de control. sta interpreta la informacin
como una secuencia de seales de control que son enviadas a las
unidades funcionales relevantes de la CPU para realizar la operacin
requerida por la instruccin.
Almacenar o guardar resultados
El resultado generado por la operacin es almacenado en la memoria
principal o enviado a un dispositivo de salida dependiendo de la
instruccin. Basndose en los resultados de la operacin, el contador de

programa se incrementa para apuntar a la siguiente instruccin o se


actualiza con una direccin diferente donde la prxima instruccin ser
recogida.
En l se ejecuta la instruccin. El registro de instrucciones est
conectado a un decodificador, que determina cuntos bytes de
informacin adicionales se requieren. stos se cargan mediante ciclos de
bsqueda, como se indic con anterioridad.
Cuando la ejecucin est completa, la mquina comienza
automticamente el ciclo de bsqueda de la siguiente instruccin del
programa. La ejecucin es por tanto, una secuencia continua de ciclos
de bsqueda y ejecucin.

Unidades Funcionales
Los pasos a seguir para el procesamiento de las instrucciones son los
siguientes:
1. cada instruccin es leda ( una a la vez), desde la memoria, por el
procesador.
2. cada instruccin es ejecutada por el procesador. La repeticin de la
lectura y ejecucin (pasos 1 y 2 respectivamente), conforman la
ejecucin de un programa. Dicha ejecucin puede detenerse si: la
mquina se apaga, ocurre un error que no puede ser recuperado, o si, se
encuentra una instruccin en el programa que detenga la computadora.
Lectura y ejecucin de instrucciones
El procesador lee una instruccin de la memoria, al comienzo de cada
Ciclo de instruccin. Se cuenta con un contador de programas ( PC
program counter ), que lleva la cuenta de cual es la prxima instruccin
a leer. Luego de leer cada instruccin el procesador incrementara el PC,
de manera tal que la siguiente instruccin a leer ser; la que se
encuentra en la direccin inmediatamente superior de la memoria. La
instruccin leda es cargada en el registro de instruccin ( IR instuction
register ), que es un registro del procesador. El procesador interpreta la
instruccin, la cual est en forma de cdigo binario, que especifica la
accin que el procesador llevar a cabo, y realizar la accin requerida.
Las acciones que se realizan para la lectura y ejecucin de instrucciones
se pueden clasificar en las siguientes categoras:
Procesador-memoria: los datos se transfieren del procesador a la
memoria o viceversa.

Procesador E/S: los datos se transfieren desde o hacia un dispositivo


perifrico. Se realiza la transferencia entre el procesador y un mdulo de
entrada-salida.
Tratamiento de datos: el procesador puede realizar alguna operacin
aritmtica o lgica sobre los datos.
Control: la secuencia de ejecucin puede ser alterada si la instruccin
lo especifica.
La ejecucin de una instruccin puede incluir una combinacin de las
acciones antes mencionadas.

Funciones de E/S
Los mdulos de E/S, por ejemplo un controlador de disco, peden
intercambiar datos directamente con el procesador y el este puede
iniciar una escritura o lectura en la memoria, para ello debe indicar la
direccin de una ubicacin especifica.
El procesador puede leer datos de un mdulo de E/S o escribir en l,
para ello indica a un dispositivo especifico que esta controlado por un
determinado mdulo de E/S.
Para relevar al procesador de la tarea de E/S, es conveniente que los
intercambios de E/S se produzcan directamente con la memoria. De esta
manera el procesador le da a un mdulo de E/S autoridad para leer o
escribir en la memoria de modo que la transferencia de E/S se realiza sin
obstruir al procesador.
Se releva al procesador durante la transferencia de la responsabilidad de
intercambio, ya que el modulo de E/S emite ordenes de lectura o
escritura en la memoria. La operacin realizada se conoce como DMA
(direct memory access) o acceso directo a memoria.
Ciclo de instruccin
Un ciclo de instruccin (tambien llamado ciclo de traer y ejecutar) es el
perodo de tiempo durante el cual un ordenador lee y procesa una

instruccin de lenguaje mquina de su memoria o la secuencia de


acciones que la unidad central (CPU) funciona para ejecutar cada
instruccin de cdigo de mquina en un programa.
El nombre el ciclo traer-y-ejecutar comnmente es usado.La instruccin
debe ser trada de la memoria principal, y luego ejecutado por la
CPU.Esto es fundamentalmente como un ordenador funciona, con su
lectura de CPU y ejecucin de una serie de instrucciones escritas en su
lenguaje mquina.De esto surgen todas las funciones de un ordenador
familiar a partir del final del usuario.
La CPU de cada ordenador puede tener ciclos diferentes basados en
juegos de instruccin diferentes.
Para traer la instruccion desde la memoria principal la CPU presenta el
valor de la PC sobre el bus de direccin.La CPU entonces trae la
instruccin de la memoria principal va el bus de datos en el Registro de
Datos de Memoria (MDR).El valor del MDR entonces es colocado en el
Registro de Instruccin Actual un circuito que sostiene la instruccin de
modo que pueda ser descifrado y ejecutado.

Memory Data Register (MDR).


Al decodificar la instruccin el decodificador de instruccin interpreta y
pone en prctica la instruccin.
Registros que son crticos al ejecutar la trada:
El registro de instruccin (IR) - mantiene la instruccin actual. La PC sostiene la direccin en la memoria de la siguiente instruccin a ser
ejecutada.
Al traer archivos desde la memoria principal se lee la direccin eficaz de
la memoria principal si la instruccin tiene una direccin indirecta. Traer
requiere datos de la memoria principal para ser procesados y colocados
en registros.

2.3.1 Ciclo Fetch Decode Execute


Un ciclo de instruccin (tambin llamado ciclo de fetch-and-execute o
ciclo de fetch-decode-execute en ingls) es el periodo de tiempo que
tarda la unidad central de proceso (CPU) enejecutar una instruccin de
lenguaje mquina.Comprende una secuencia de acciones determinada
que debe llevar a cabo la CPU para ejecutar cada instruccin en un
programa. Cada instruccin del juego de instrucciones de una CPUpuede
requerir diferente nmero de ciclos de instruccin para su ejecucin. Un
ciclo deinstruccin est formado por uno o ms ciclos mquina.

Fase de bsqueda.
En esta fase se transfiere la instruccin que corresponde ejecutar
desdela memoria central a la unidad de control.
Fase de ejecucin.
Consiste en la realizacin de todas las acciones que conlleva la propia
instruccin.

TIPOS

DE

INSTRUCCIONES.

Las instrucciones de acuerdo a su funcin se clasifican en:


Instrucciones de clculo (aritmtico y lgico).
Instrucciones aritmticas: pueden implicar transferencia de datos
antes y/o despus. Realizan operaciones aritmticas de las que se
encarga la ALU. Se pueden clasificar en de 1 operando (valor absoluto,
negacin) y 2 operandos (suma, resta).
Instrucciones lgicas: al igual que las aritmticas, la ALU se encarga
de realizar estas operaciones, que en este caso son de tipo lgico.
Instrucciones de transferencia de datos: en este tipo de
instrucciones, se transfieren datos desde una localizacin a otra. Los
pasos que se siguen para realizarlo son:
1.- Determinacin de las direcciones de origen y destino de memoria.
2.- Realizacin de la transformacin de memoria virtual a memoria real.
3.- Comprobacin de la cach.
4.- Inicio del proceso de lectura/escritura en la memoria.
Instrucciones de ruptura de secuencia. De acuerdo a su formato y
nmero de operandos se clasifican en:

INSTRUCCIONES DE TRES OPERANDOS.

Tambin denominadas instrucciones de tres direcciones. Constan en


primer lugar del cdigo de operacin al que siguen tres operandos, de
los cuales, los dos primeros son las direcciones delos argumentos que
hay que operar y el tercero es la direccin donde se depositar el
resultado.
INSTRUCCIONES DE DOS OPERANDOS.
Contiene el cdigo de operacin y dos operandos, de los cuales uno de
ellos acta, adems, como receptor del resultado de la operacin.
INSTRUCCIONES DE UN OPERANDO.
Se utiliza en computadoras cuya arquitectura funciona con filosofa de
acumulador. El acumulador contiene previamente el primer argumento
de la operacin, el segundo es el contenido en la propia instruccin, y
despus de ser operado ambos, el resultado queda depositado de nuevo
en el acumulador.

MTODOS DE DIRECCIONAMIENTO
El mtodo de direccionamiento de una instruccin es el modo que se
utiliza en la misma para indicar la posicin de memoria en que est
situado el dato o datos que constituyen los operandos que intervienen
en la instruccin. Los principales mtodos son:
Direccionamiento inmediato.
En este mtodo el dato que hay que utilizar forma parte de la propia
instruccin, no siendo necesario ningn acceso a memoria para la
realizacin de la misma.
Direccionamiento directo.
En este caso la instruccin contiene la direccin de la memoria donde se
encuentra almacenado el dato. Esto hace necesario un acceso a la
memoria para trasladar el dato hasta la unidad aritmtico-lgica.
Direccionamiento indirecto
Aqu la direccin contenida en la instruccin no es la del dato implicado
sino la de una posicin de memoria que contiene la direccin de ese
dato. Esta posicin se denomina direccin intermedia e implica en las
instrucciones que utilizan este mtodo de direccionamiento la necesidad
de un ciclo de memoria ms para acceder al dato.
Direccionamiento relativo.

En l, la direccin de memoria donde se encuentra el dato, se consigue


sumando la direccin contenida en la propia instruccin con una
magnitud fija contenida en un registro especial. De esta manera se
posibilita el acceso a un conjunto de posiciones Entonces para concluir
un ciclo Fetch es un conjunto de etapas que utiliza el procesador para
ejecutar una instruccin de mquina. Cada instruccin es ejecutada
siguiendo este mismo ciclo repetitivo. Las etapas que conforman el ciclo
de instruccin, son las siguientes:
Fetch de Instruccin
Realiza la bsqueda de la instruccin en memoria. El procesador extrae
la direccin desde el contador de programa, PC, para conocer la
ubicacin de esa instruccin. Luego se realiza la lectura de la
instruccin, quedando sta en el registro de datos. El contador de
programa es incrementado en 1, para contener la direccin de la
siguiente instruccin.2.
Decodificacin
El cdigo de operacin de la instruccin que se encuentra en el DR, se
deposita en el registro de instrucciones IR. Luego, los circuitos de control
interpretan ese cdigo de operacin para determinar qu operacin se
va aejecutar.3.
Fetch de Operando.
Realiza la bsqueda de un operando en memoria, si es necesario.
Generalmente es la misma instruccin quien proporciona la direccin del
operando al procesador.4.
Ejecucin de la Operacin.
Una vez conocida la naturaleza de la instruccin, y el operando ha sido
extrado desde memoria, el procesador ejecuta la operacin indicada por
el cdigo contenida en la instruccin.

2.3.2 Segmentacin de instruccin


Segmentacin de cauce:
Conceptos bsicos
La segmentacin de cauce (pipelining) es una forma particularmente
efectiva de organizar el hardware de la CPU para realizar ms de una
operacin al mismo tiempo.
Consiste en descomponer el proceso de ejecucin de las instrucciones
en fases o etapas que permitan una ejecucin simultnea.
Explota el paralelismo entre las instrucciones de un flujo secuencial.
Caractersticas
La segmentacin es una tcnica de mejora de prestaciones a nivel de
diseo hardware.
La segmentacin es invisible al programador.
Necesidad de uniformizar las etapas.
Al tiempo de la ms lenta
El diseo de procesadores segmentados tiene gran dependencia del
repertorio de instrucciones.
1.- Bsqueda (Fetch)
Se accede a memoria por la instruccin

Se incrementa el PC
2.- Decodificacin (D, Decode)
Se decodifica la instruccin, obteniendo operacin a realizar en la ruta
de datos
Se accede al banco de registros por el/los operando/s (si es necesario)
Se calcula el valor del operando inmediato con extensin de signo (si
hace falta)
3.- Ejecucin (X, Execute)
Se ejecuta la operacin en la ALU
4.- Acceso a memoria (M, Memory Access)
Si se requiere un acceso a memoria, se accede
5.- Almacenamiento (W, Writeback)
Si se requiere volcar un resultado a un registro, se accede al banco de
registro
Ruta de datos de un ciclo

Repertorio de Instrucciones
Instrucci
n

Pseudocdigo

Descripcin

LW
SW
ADD
SUB
AND
OR
SLT
BEQ

LW
RT, Carga registro RT desde memoria
inmed(RS)
SW
RT, Almacena en memoria desde registro
inmed(RS)
RT
ADD RD, RS, RT
Suma palabras en registros RS y RT,
resultado en RD
SUB RD, RS, RT
Resta palabras en registros RS y RT,
resultado en RD
AND RD, RS, RT
AND de palabras en registros RS y RT,
resultado en RD
OR RD, RS, RT
OR de palabras en registros RS y RT,
resultado en RD
SLT RD, RS, RT
Pone 1 en RD si RS es menor o igual
que RT
BEQ
RS,
RT, Salta a destino si RS es igual a RT
destino

Formato de instruccin

Diagrama de estados del controlador

Ruta de Datos y unidad de control

Comparacin monociclo-multiciclo

Ruta de datos segmentados

Ruta de datos y control segmentado

Prestaciones del cauce segmentado

Terica: El mximo rendimiento es completar una instruccin con cada


ciclo de reloj.
Si K es el nmero de etapas del cauce Vel. procesador segmentado =
Vel. secuencial x K
El incremento potencial de la segmentacin del cauce es proporcional al
nmero de etapas del cauce.
Incrementa la productividad (throughput), pero no reduce el tiempo de
ejecucin de la instruccin
Ejemplo de segmentacin

Anlisis de la segmentacin (1)


Suposiciones:
Todas las tareas duran el mismo tiempo.
Las instrucciones siempre pasan por todas las etapas.
Todos las etapas pueden ser manejadas en paralelo.

Anlisis de la segmentacin (2)


Problemas:
No todas las instrucciones necesitan todas las etapas.
SW RT, inmed(RS) ; no utiliza W
En MSX88: un MOV AX, mem ; no requiere X
No todas las etapas pueden ser manejadas en paralelo.
F y M acceden a memoria
No se tienen en cuenta los saltos de control.

Atascos de un cauce (stall)


Situaciones que impiden a la siguiente instruccin
que se ejecute en el ciclo que le corresponde.
Estructurales
Provocados por conflictos por los recursos
Por dependencia de datos
Ocurren cuando dos instrucciones se comunican por
medio de un dato (ej.: una lo produce y la otra lo usa)
Por dependencia de control
Ocurren cuando la ejecucin de una instruccin depende de cmo se
ejecute otra (ej.: un salto y los 2 posibles caminos)

Riesgos estructurales

Dos o ms instrucciones necesitan utilizar el mismo recurso hardware en


el mismo ciclo.

Riesgos estructurales (2)


Resolucin ante el riesgo:

Riesgos por dependencias de datos


Condicin en la que los operandos fuente o destino de una instruccin
no estn disponibles en el momento en que se necesitan en una etapa
determinada del cauce.

Tipos de dependencias de datos


1.- Lectura despus de Escritura (RAW, dependencia verdadera)

una instruccin genera un dato que lee otra posterior

2.- Escritura despus de Escritura (WAW, dependencia en salida)

una instruccin escribe un dato despus que otra posterior


slo se da si se deja que las instrucciones se adelanten unas a otras

3.- Escritura despus de Lectura (WAR, antidependencia)

una instruccin modifica un valor antes de que otra anterior que lo


tiene que leer, lo lea no se puede dar en nuestro cauce simple

Tipos de dependencias (2)

Riesgos por dep datos (2)

Riesgos por dep datos (3)

Riesgos de control (o de instrucciones)


Una instruccin que modifica el valor del PC no lo ha hecho cuando se
tiene que comenzar la siguiente.

Riesgos de control (2)

Las tcnicas de organizacin se fueron implementando a medida que la


tecnologa fue avanzando y permitieron ponerlas en practica.
La de segmentacin de instrucciones es una tcnica muy usada hoy en
da.
Que es la segmentacin de instrucciones?. Para explicarlo recordemos
primero el ciclo de la instruccin, abarca varias etapas, en las cuales se
realizan distintas tareas, bien, como son distintas, las realizan
generalmente distintas partes del procesador, por ejemplo, la parte de
ejecucin la va a realizar la ALU, pero en la etapa de captacin la ALU no
interviene, este es el punto, mientras una parte del procesador esta
trabajando, hay otras que no. La tcnica de segmentacin de cause
intenta que trabajen las distintas partes del procesador en paralelo.
Por ejemplo cuando la etapa de ejecucin recibe la instruccin, la etapa
de captacin se libera y podra empezar a captar la prxima instruccin.

Es muy grfico y simple verlo haciendo una analoga con una linea de
montaje de un producto en una fabrica, en la cual el producto va
pasando por distintas etapas y en cada una se le hace algo al producto,
no es necesario que el producto termine de pasar por todas las etapas
para poder ingresar un nuevo producto a la linea de montaje.
El tema es hacer tareas en simultaneo en las cuales no se superpongan
unidades funcionales.
Cuanto mas se pueda sementar el ciclo de instruccin mas beneficioso
seria.
No todas las instrucciones utilizan todas las etapas, por ejemplo un
movimiento de datos no utilizara la etapa de ejecucin, ni tampoco las
etapas consumen la misma cantidad de tiempo, pero para simplificar la
implementacin, todas las instrucciones pasan por todas las etapas y
todas las etapas duran lo que tarda la etapa mas lenta.
Tericamente el incremento de la productividad es proporcional al
numero de etapas, digo tericamente porque el uso de segmentacin
trae aparejado muchos contratiempos que le van a bajar un poco ese
rendimiento terico.
Otra cosa a tener en cuenta es que la instruccin va a tardar lo mismo
en ejecutarse, la diferencia esta en que el procesador va a ser ms
productivo.

2.3.3
Conjunto
de
instrucciones:
Caractersticas y funciones
Ante el diseo de un nuevo ordenador de propsito general hay que
plantearse la siguiente cuestin: Qu tipos de instrucciones deben ser
incluidos en sus conjuntos de instrucciones? Antes de responder a esta
pregunta, analizaremos las caractersticas que deben tener los juegos de
instrucciones de las mquinas.
Los conjuntos de instrucciones de las maquinas deben tender a poseer
una serie de propiedades, bastante ideales e imprecisas, que pueden
resumirse en las siguientes:
El conjunto de instrucciones de un computador debe ser completo en el
sentido de que se pueda construir un programa para evaluar una funcin
computable usando una can- tidad de memoria razonable y empleando
un tiempo moderado, es decir, el nmero de instrucciones de ese
programa no debe ser demasiado elevado.
Los juegos de instrucciones tambin tienen que ser eficientes, esto
significa que las funciones ms necesarias deben poder realizarse
usando pocas instruccion.
El conjunto de instrucciones de una mquina debe ser regular, es decir
be ser simtrico (por ejemplo, si existe una instruccin de
desplazamiento a la izquierda debe haber otra de desplazamiento a la
derecha, etc.) y ortogonal, es decir, deben poder combinarse, en la
medida de lo posible, todos las operaciones con todos los tipos de datos
y modos de direccionamiento.
en muchas ocasiones tambien se le debe exigir a un computador que su
juego de instrucciones sea compatible con modelos anteriores.
Una mquina puede llegar a funcionar con un juego de instrucciones
muy limitado (re- curdese, por ejemplo, la mquina de Turing que slo
tiene 4 instrucciones, incluso se han diseado mquinas tericas con
menos instrucciones), esto simplificara mucho los circuitos de la
mquina. Sin embargo, un conjunto de instrucciones demasiado
simplificado origina, como consecuencia, unos programas demasiado
complejos e ineficientes. Es necesario encontrar un compromiso entre la
simplicidad del hardware y del software. Un mnimo para llegar a ese
compromiso se consigue con los tipos de instrucciones siguientes:

Instrucciones de transferencia de datos.


La operacin de copiar datos de un lugar a otro es la operacin ms simple y a la vez
importante. Las palabras mover o cargar que aparecen en los juegos de instrucciones de
muchos ordenadores pueden dar lugar a confusin porque no se trata de mover o cargar
sino de copiar (generalmente, en Informtica, la palabra mover tiene el significado de
copiar borrando el original). Las instrucciones de transferencia de datos necesitan que se
especifiquen el original (fuente u origen) y el lugar donde se desea la copia (destino). Esta
especificacin variar segn sean estos lugares que pueden estar en tres sitios: registros del
procesador, memoria o cima de pila. Si el acceso es a una direccin de memoria habr que
especificarla de forma explcita, si se trata de la cima de pila normalmente la especificacin
ser implcita, lo mismo ocurrir si se trata del acumulador.
En general, el dato a transferir podramos definirlo como una terna con las siguientes
componentes:
Direccin
Tipo
Valor
Normalmente la componente del dato que se transfiere es el valor pero existen
instrucciones especiales para transferir las dems componentes, en especial la direccin. La
extraccin de la direccin de un dato se hace necesaria para facilitar la relocalizacin de los
programas. Para aplicar muchos modos de direccionamiento (indexados, autoindexados,
etc.) es necesaria la transferencia de una direccin a un registro. En muchos ordenadores
esta direccin no se conoce a la hora de compilar el programa (precisamente porque el
programa es relocalizable), por tanto, son necesarias instrucciones que calculen la direccin
de un dato para transferirla a un registro, actualmente la mayora de las mquinas poseen
este tipo de instruccin bajo el nombre de move address.
Instrucciones aritmticas e Instrucciones lgicas.
Todos los ordenadores incorporan instrucciones aritmticas en sus juegos de instrucciones;
la utilidad de este tipo de operaciones es evidente y no la comentaremos. En cuanto a las
operaciones lgicas (AND, OR, NOT y XOR) tienen un uso muy variado: desde
operaciones con bits individuales (TEST, SET, RESET y CHANGE) hasta el
empaquetamiento y desempaquetamiento de caracteres. Tambin pueden considerarse
dentro de este grupo los desplazamientos y rotaciones cuya utilidad queda fuera de toda
duda.

Para aplicarlas, se realiza una operacin AND del dato que se quiere analizar con una
mscara que tenga un 1 en el lugar cuyo bit se quiere probar con el resto de la mscara a 0.
El resultado de la operacin ser 0 si el bit en cuestin es 0, o distinto de 0 si el bit que se
quiere probar es 1; por tanto, el resultado de la prueba quedar en el flag Z en forma
complementada como se muestra en la figura 4.1. Muchas mquinas tienen esta operacin
bajo el nombre de BIT TEST.
Para poner a 0 un bit de un dato, se aprovechan las mismas propiedades del operador AND.
Para aplicarlas, se construye una mscara que tenga a 1 todos los bits excepto el
correspondiente al lugar que se quiere borrar que se pone a 0 y se hace un AND de esta
mscara con el dato que se quiere tratar; como resultado de la operacin tendremos el
mismo dato pero con el bit puesto a cero. El proceso se muestra en la figura 4.2. Esta
operacin puede realizarse con varios bits a la vez, basta poner en la mscara 0 todos los
bits que se quieran borrar. Muchos ordenadores poseen esta instruccin con el nombre de
BIT CLEAR o BIT RESET.

Los desplazamientos pueden ser de tres tipos: lgicos, aritmticos y rotaciones o


desplazamientos circulares dependiendo del bit entrante. El desplazamiento lgico a la
derecha difiere del aritmtico en que el bit entrante es, en ste ltimo, el mismo bit de
mayor peso (bit de signo), mientras que en aqul es siempre un 0; As se consigue que los
desplazamientos aritmticos sean equivalentes a multiplicaciones (izquierda) y divisiones
(derecha) por 2. En las rotaciones el valor del bit entrante es el mismo que el del saliente.

Instrucciones de control del flujo del programa (bifurcaciones,


bucles, procedimientos, etc.)
Las instrucciones de control de flujo son las que modifican el secuenciamiento de la
ejecucin de las instrucciones del programa. En general, el secuenciamiento es implcito, es
decir. la siguiente instruccin en ejecutarse es la que est fsicamente detrs en el programa.
Cuando esto no es as es por la accin de una instruccin de control de flujo.

Todas las instrucciones que modifican el flujo de la ejecucin manejan el contador de


programa. Tambin, si la modificacin del flujo de instrucciones se hace de forma
condicional, esta condicin vendr dada por los bits de estado (N, Z, V y C). Vemos, por
tanto, que para las instrucciones de control de flujo hay dos variables fundamentales: el
contador de programa y los bits de condicin.

2.3.4 Modos de direccionamiento y


formatos
Direccionamiento:
El campo de direcciones en un formato de instruccin esta bastante
limitado.
Seria deseable referenciar un rango elevado de posiciones en memoria
principal o de memoria virtual.
Existen diversas tcnicas:
Compromiso entre:
Rango de direcciones y/o flexibilidad de direccionamiento
Numero de referencias a memoria y/o complejidad de clculo de las
direcciones.
Modos de direccionamiento
1.- Inmediato
2.- Directo
3.- Indirecto
4.- Registro
5.- Indirecto con registro
6.- Con desplazamiento (Indexado)
7.- Pila
Notaciones normalmente utilizadas:
A= Contenido de un campo de direccin en la instruccin.
R= Contenido de un campo de direccin en la instruccin que referencia
un registro.
EA= Direccin real (efectiva) de la posicin que contiene el operando
que se referencia.
(X)= Contenido de la posicin X.

Consideraciones:
Prcticamente todas las arquitecturas ofrecen mas de uno de estos
modos.
Problema a resolver: Como determina la unidad de control que modo de
direccionamiento se esta utilizando en cada instruccin.?
Codops diferentes emplean modos distintos
Uno o mas bits pueden utilizarse como campo de modo.
Este campo de modo indica que tipo de direccionamiento
Otra cuestin: Direccin efectiva (EA).
Sin memoria virtual: La EA es una direccin de memoria principal o un
registro
Con memoria virtual: La EA es una direccin virtual o un registro.
La correspondencia real con una direccin fsica depender del
mecanismo de paginacin.
No esta por tanto visible al programador.
Direccionamiento inmediato (1.1)
a) Modo de direccionamiento inmediato
Este modo puede utilizarse para definir y utilizar
constantes, o para fijar valores iniciales de variables.
Normalmente el nmero se almacena en complemento a dos; el bit ms
a la izquierda del campo operando se utiliza como bit de signo.
Direccionamiento inmediato (1.2)
El operando est en realidad presente en la propia instruccin:
Operando = A
e.j. ADD 5
Suma 5 al contenido del acumulador
5 es el operando
No se requiere una referencia a memoria para obtener el operando,
ahorrndose un ciclo

Rpido / Mas sencilla


Desventaja: Rango limitado. Tamao del nro limitado a la long. Del
campo de direcciones, que es pequeo comparado con la longitud de la
palabra.
Direccionamiento Directo (2.1)
Campo de direcciones contiene la direccin efectiva del operando
EA= A
e.j. ADD A
Busca en memoria la direccin A para el operando
Slo requiere una referencia a memoria
No necesita ningn clculo especial
Espacio de direcciones restringido

Direccionamiento indirecto (3.1)


Problema del modo anterior: La long. del campo de direcciones es
normalmente < la longitud de la palabra- > limita el rango de
direcciones.
El campo de direcciones referencia la direccin de una palabra de
memoria

La palabra de memoria contiene la direccin completa del operando


EA = (A)
Mira en A, encuentra el contenido de A (A) y busca all el operando
e.j. ADD (A)
Agrega el contenido de la celda apuntada por el contenido de A al
acumulador

Direccionamiento indirecto (3.3)


Espacio de direccionamiento grande
Si N bits = longitud de la palabra, se dispone de un espacio de 2N
direcciones.
Puede ser anidado, multinivel o en cascada
e.j. EA = ((..(A)..))
Indicador de indireccin: 0: contiene el valor de EA
1: se invoca otro nivel.
Desventajas:

La ejecucin de la inst. requiere dos referencias a memoria para captar


el operando: una para captar su direccin y otra para obtener su valor.
Demasiado lento

Direccionamiento de registro (4.1)


El campo de direcciones referencia un registro, en lugar de una direccin
de memoria principal. EA = R
Un campo de direcciones que referencia a registros consta de 3 o 4 bits,
->pueden referenciarse un total de 8 o 16 registros de uso general
Es necesario un campo pequeo de direcciones en la instruccin
Instrucciones ms cortas
Instrucciones de captacin ms rpidas
Direccionamiento de registro (4.2)
No se requieren referencias a memoria
Ejecucin muy rpida
Desventaja: Espacio de direcciones muy limitado
Las CPU modernas emplean mltiples registros de uso general.
Requiere una buena programacin en lenguaje ensamblador (ej. cuando
se desarrollan compiladores) para conseguir una ejecucin eficiente.
Direccionamiento de registro (4.3)
En caso de utilizar masivamente este tipo, los registros de la CPU se
utilizan intensivamente.
Debido a su numero limitado se deben utilizar eficientemente solo si
tiene sentido.
Ej.: almacenamiento de resultados intermedios de un calculo.
Implementacin de un algoritmo de multiplicacin en complemento a
dos, una cierta variable se referencia muchas veces, y seria conveniente
implementarla en registro en lugar de memoria principal.

Direccionamiento indirecto con registro (5)


Es anlogo al indirecto
EA = (R)
El operando est en una celda de memoria referenciada mediante el
contenido del Registro R
La limitacin del espacio se supera: haciendo que R, referencie a una
posicin de palabra completa ( un registro), que contenga la direccin.
Emplea una referencia menos a memoria que el direccionamiento
indirecto.

Direccionamiento con desplazamiento (6)


Modo muy potente: combina direccionamiento directo e indirecto con registro.

EA = A + (R)

Requiere que las instrucciones tengan dos campos de direcciones, al menos


uno de ellos es explcito.
A = valor base, se utiliza directamente
R = registro que contiene el desplazamiento, cuyo contenido se suma a A para
obtener la direccin efectiva.
o viceversa
Tres versiones:
Desplazamiento relativo
Direccionamiento con registro base.
Indexado.

Direccionamiento relativo (6.1)


Es una versin del direccionamiento con desplazamiento
R= Contador de programa, PC
La direccin de instruccin actual se suma al campo de direcciones
EA = A + (PC): La direccin efectiva es un desplazamiento relativo a la
direccin de la instruccin.
i.e. toma el operando de la celda A a partir de la localizacin corriente
apuntada por el PC
Si la mayora de las referencias a memoria estn prximas a la
instruccin en ejecucin, permite ahorrar bits de direcciones en la
instruccin.

Direccionamiento con Registro Base (6.2)


El registro referenciado contiene una direccin de memoria
Y el campo de direccin contiene un desplazamiento desde dicha
direccin
R contiene un apuntador a la direccin de memoria base
R (la referencia a registro) puede ser explcita o implcita
Direccionamiento indexado (6.3)
Es opuesto a la interpretacin del registro-base.
Registro referenciado contiene un desplazamiento positivo
Campo direccin es una direccin de memoria principal=> contiene +
bits que un campo de direcciones
De una instruccin. Comparable que emplee el mtodo anterior
El mtodo para calcular EA en ambos es igual
A = base
R = contiene un desplazamiento positivo desde esa direccin
EA = A + R
Las referencias a registro pueden ser explicitas o implcitas.
Mecanismo eficiente para ejecutar operaciones iterativas.
EA = A + R
R++
Direccionamiento indexado (6.4)
Ejemplo: Dado una lista de n nmeros. Almacenados a partir de la
posicin A.
Se quiere sumar 1 a cada elemento de la lista.
Se necesita-> captar c/elemento, sumar 1 y memorizar el resultado.
La secuencia de direcciones efectivas necesarias es:
A, A+1, A+2,.
El valor A se almacena en el campo de direccin de la instruccin;
El registro elegido (registro ndice) se inicializa a 0.

Luego de c/operacin, el registro se incrementa en 1.


Esta operacin puede hacerse automticamente, como parte del ciclo de
instruccin (auto indexado).
Combinaciones (6.5)
El autoindexado con incremento:
EA = A + (R).
(R)<- (R) + 1;

Direccionamiento de Pila (7)


Pila: Matriz lineal de posiciones
Los elementos se aaden en la cabecera.
La pila tiene asociado un puntero, cuyo valor es la direccin de la
cabecera o tope de la pila.
El puntero de pila se mantiene en un registro.
Operando est (implcitamente) en el tope de la pila.
Son de hecho, direcciones de acceso indirecto con registro.
Las instrucciones maquina no necesitan incluir una referencia a
memoria, operan implcitamente con la cabecera de la pila.
Bastante comunes en microprocesadores.
Como se organizan los bits de una instruccin:
Formatos de instrucciones
Descripcin en bits de una instruccin en trminos de las distintas
partes que la componen.
Incluye un cdigo de operacin (codop)
Incluye (implcita o explcitamente) ninguno o algunos operandos.
Cada operando explicito se referencia segn los modos vistos.

El formato debe indicar (implcita o explcitamente) el modo de


direccionamiento para cada operando
En la mayora de los repertorios de instrucciones se emplea ms de un
formato de instruccin
Existe una gran variedad de diseos de formatos
Analizaremos aspectos claves del diseo:
Longitud de instruccin (I)
El aspecto de diseo ms bsico a considerar.
Afecta y se ve afectada por:
Tamao de memoria
Organizacin de memoria
Estructura de buses
Complejidad de la CPU
Velocidad de la CPU
Programadores desean + codops + operandos
direccionamiento y > rango de direcciones) -

+,

modos

de

Requiere de ms bits, y empuja hacia longitudes de instruccin mayores.


Compromiso entre el deseo de disponer de un repertorio
instrucciones mquina potente y la necesidad de ahorrar espacio.

de

Todo empuja a longitudes de inst. Mayores, pero:


Una long de 32 bits ocupa el doble de espacio de una de 16, pero
probablemente no es el doble de til.
Longitud de instruccin (II)
Otra consideracin: Debiera cumplirse que el tamao de la instruccin fuera
igual al tamao de las transferencias a memoria (tamao del bus de datos).
O que uno fuera un mltiplo del otro.
Si as no fuera: no se consigue un nro. Entero de instrucciones durante un ciclo
de captacin.
Esto afecta la velocidad de transferencia de la memoria
La velocidad del procesador ha aumentado mucho
Cuello de botella: solucin uso de memoria cache o de instrucciones mas
cortas.

Las instrucciones de 16 bits pueden captarse el doble de rpido que las de 32,
pero no pueden ejecutarse el doble de rpido.

Longitud de instruccin (III)


Otra consideracin: La longitud de la instruccin debiera ser un mltiplo
de la long. de un carcter (8 bits) y de la long. de los nros en coma fija.
La long. de palabra de memoria: unidad natural de organizacin.
La palabra define normalmente el tamao de los nmeros en coma fija
(gralmente coinciden)
El tamao de palabra suele coincidir, con el tamao de transferencias a
memoria.
Seria deseable que una palabra almacenara un nro. entero de
caracteres.
SINO: Se perderan bits en cada palabra cuando se almacenan mltiples
caracteres o,
Habra caracteres partidos entre dos palabras.
Por ej. IBM debi pasar de arquitecturas de 36 bits a las de 32 bits en la
serie (700/7000)
Asignacin de los bits (I)
Otro aspecto a considerar: como asignar los bits en el formato de la
instruccin?
Relacin clave entre codops y capacidad de direccionamiento. (+ Codops
bits direccionamiento)
Existen codops de long. Variable
Factores que afectan la definicin del uso dado a los bits de
direccionamiento:
Nmero de modos de direccionamiento
Nmero de operandos
Registros frente a memoria
Nmero de conjuntos de registros
Rango de direcciones
Granularidad de las direccione
Asignacin de los bits (II)

Nmero de modos de direccionamiento


Un modo puede indicarse de manera implcita (indexacin)
Los modos explcitos requieren uno o ms bits de modo.
Nmero de operandos
Las instrucciones actuales permiten dos operandos.
C/direccin de operando podria requerir su propio indicador de modo, o
el uso del indicador de modo podr estar limitado a solo uno de los
campos de direcciones.
Asignacin de los bits (III)
Registros frente a memoria
Maquina debe disponer de registros para traer los datos a la CPU para
procesarlos.
Con varios registros solo se necesitan unos pocos bits para especificar el
registro.
Diversos estudios indican que es aconsejable disponer de 8 a 32
registros visibles para el usuario.
Nmero de conjuntos de registros
Varias maquinas tienen un conj. De registros de uso general, que
contiene 8 o 16 registros.
Suelen emplearse para guardar datos y para almacenar direcciones para
direccionamiento con desplazamiento.
Tendencia actual: grupos de registros especializados.
Asignacin de los bits (IV)
Rango de direcciones
Para referencia a memoria, este rango esta relacionado con el nro. De
bits de direccionamiento.
Esto impone limitacin, raramente se emplea direccionamiento directo.
En direccionamiento con desplazamiento: el rango se amplia al definido
por la longitud del registro de direcciones.
Es conveniente permitir desplazamientos bastantes mas largos que los
del registro de direcciones y esto necesita de un nro. Relativamente
grande de bits de direcciones en la instruccin.

Granularidad de las direcciones:


Para direcciones que referencian a memoria en lugar de registros.
Con palabras de 16 o 32 bits, una direccin puede referenciar una
palabra o un byte, segn elija el diseador.
El direccionamiento por bytes es conveniente para manipular caracteres,
pero requiere, para un tamao de memoria dado, de ms bits de
direcciones.
Asignacin de los bits (IV)
Al momento de determinar la asignacion de bits en un formato:
Gran cantidad de factores a tener en cuenta y sopesar.
Instrucciones de longitud variable
Esta tctica hace ms fcil proporcionar un amplio repertorio de codops
de log. Variable.
El direccionamiento puede ser ms flexible, con varias combinaciones de
referencias a registros y a memoria y modos de direccionamiento.
Desventajas: Aumento de complejidad de la CPU.

2.4 Casos de estudio de


CPU reales

La CPU se compone de
seis elementos clave que
trabajan en combinacin
para procesar y ejecutar
comandos.
1.- En primer lugar, la
unidad de control es el
cerebro de la CPU. Esta
parte recibe los datos de
entrada y decide dnde
enviar la informacin
procesada.
2.- En segundo lugar, el cach de instrucciones es donde se almacenan
las instrucciones de la unidad de control. Los datos especficos de
instruccin se cargan en la CPU al momento de fabricarla.
3.- En tercer lugar, la unidad de captacin previa es el portal de
informacin. Los datos de entrada pasan a travs de la captacin previa,
que almacena una copia de los datos antes de enviarlos a ser
procesados por la unidad de control
4.-En cuarto lugar, la unidad de decodificacin traduce la instruccin de
entrada en cdigo binario, que luego se enva al quinto componente,
5.-la unidad lgica aritmtica. La ALU (por sus siglas en ingls) recibe el
cdigo de la unidad de decodificacin y elige la accin necesaria para
llevar a cabo el comando.
6.-La sexta es la memoria cach de la CPU. Aqu, se almacena toda la
informacin que ha sido enviada, recibida o precargada.
Tipos
Existen diferentes tipos de CPU, cada tipo viene con diferentes grados
de velocidad de memoria e instrucciones preestablecidas. Cuanto ms
grande sea la CPU, ms rpido puede procesar, almacenar y ejecutar
comandos.
Una CPU de un solo ncleo es la unidad ms pequea disponible. Se
encuentra generalmente en pequeos aparatos que slo realizan un
simple conjunto de acciones tales como un control remoto o un juguete.
Las CPU de doble ncleo contienen dos unidades de mando y contienen
suficiente energa y memoria para las computadoras personales. Las
CPU multincleo contienen varias unidades de comandos. Ellas son

utilizadas principalmente por grandes dispositivos


industriales, servidores y estaciones de trabajo de red.

electrnicos

Tamao
El tamao de la CPU se refiere al poder de la unidad para realizar tareas
y la cantidad de espacio de memoria que contiene. El tamao de la CPU
se mide en dgitos binarios y se llaman bits. Originalmente, las CPU
contenan cuatro bits, pero las modernas tienen ocho.
Las CPU de ocho bits son los componentes modernos ms pequeos y
lentos disponibles y se utilizan sobre todo en juguetes o
electrodomsticos.
Las de 16 y 32 bits se han convertido en el tamao estndar de CPU y se
pueden encontrar en computadoras personales, computadoras
porttiles, telfonos celulares y otros dispositivos electrnicos que
pueden realizar una variedad de tareas.
Las CPU de sesenta y cuatro bits son cada vez ms populares en la
gama alta de computadoras personales y porttiles. Existen las CPU ms
grandes, las cuales se utilizan generalmente para fines industriales.
Introduccin a los distintos casos
Una de las primeras decisiones a la hora de disear un procesador es
decidir cul ser su juego de instrucciones.
Este conjunto de
instrucciones (rdenes) es el lenguaje que realmente entiende el
procesador, y constituye lo que se conoce como lenguaje ensamblador o
lenguaje-mquina.
Lenguaje maquina
Consta nicamente de 0 y 1 para su funcionamiento El lenguaje
mquina es el de nivel ms bajo posible. Las instrucciones en este
lenguaje son secuencias binarias, que por comodidad puedes escribirlas
en hexadecimal.
El lenguaje mquina es distinto para cada computador. Excepto cuando
existe compatibilidad entre familias Las ventajas de esto son evidentes,
ya que para el hombre resulta ms fcil manipular grupos de caracteres
y la traduccin se hara de manera automtica. Por ejemplo, se podra
escribir:
ALMACENAR = 11010110, 00011101
Esto indicara que el contenido de la posicin 11010110 haba que
pasarlo a la posicin 00011101 si se sabe que al grupo alfabtico
ALMACENAR le corresponde la secuencia de bits 11110101.
Ventajas del Lenguaje Mquina

Posibilidad de cargar (transferir un programa a la memoria) sin


necesidad de traduccin posterior, lo que supone una velocidad de
ejecucin superior a cualquier otro lenguaje de programacin.

Desventajas del Lenguaje Mquina


Dificultad y lentitud en la codificacin.
Poca fiabilidad.
Gran dificultad para verificar y poner a punto los programas.
Los programas solo son ejecutables en el mismo procesador (CPU).
Lenguaje ensamblador
El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado
para escribir programas informticos, y constituye la representacin ms
directa del cdigo mquina especfico para cada arquitectura de
computadoras legible por un programador.
Fue usado ampliamente en el pasado para el desarrollo de software,
pero actualmente slo se utiliza en contadas ocasiones, especialmente
cuando se requiere la manipulacin directa del hardware o se pretenden
rendimientos inusuales de los equipos.
Tipos de instrucciones:
Instrucciones de transferencia
Instrucciones de bifurcacin
Instrucciones aritmticas y lgicas
Instrucciones de comparacin y de bit
Instrucciones de desplazamiento
Instrucciones de entrada/salida
Instrucciones de control
Caractersticas
Programar en lenguaje ensamblador es difcil de aprender, entender,
leer, escribir, depurar y mantener, por eso surgi la necesidad de los
lenguajes compilados.
A pesar de perder rendimiento en un proceso de compilacin, en la
actualidad la mayora de las computadoras son suficientemente rpidas.

El lenguaje ensamblador no es portable.


Programar en lenguaje ensamblador lleva mucho tiempo.
Los programas hechos en lenguaje ensamblador son generalmente ms
rpidos. Al programar cuidadosamente en lenguaje ensamblador se
pueden crear programas de 5 a 100 veces ms rpidos que con
lenguajes de alto nivel.
Los programas hechos en lenguaje ensamblador generalmente ocupan
menos espacio. Un buen programa en lenguaje ensamblador puede
ocupar casi la mitad de espacio que su contrapartida en lenguaje de alto
nivel.
Con el lenguaje ensamblador se pueden crear segmentos de cdigo
imposibles de formar en un lenguaje de alto nivel.
Ventajas
Rpido en ejecucin. (Velocidad de ejecucin)
Ahorra memoria.
Pocas instrucciones
Gratis.
Desventajas
Difcil programar.
programacin)

(Difcil

de

comprender

la

metodologa

Susceptible a errores. (Difcil de encontrar un error)


Instrucciones de transferencia
MOV transfiere el operando fuente al destino
PUSH transfiere el operando fuente a la pila
POP transfiere el ltimo dato de la pila al operando destino
Instrucciones de bifurcacin

de

la

Instrucciones aritmticas y lgicas


ADD: suma sin acarreo
ADC: suma con acarreo
SUB: resta sin acarreo
SBB: resta con acarreo
MUL: multiplicacin sin signo
IMUL: multiplicacin con signo
DIV: divisin sin signo
IDIV: divisin con signo
INC: incrementar
DEC: decremento
NEG: cambia de signo dejando el operando en C2
Instrucciones lgicas:
AND, NOT, OR, XOR
Instrucciones de comparacin y de bit
Instruccin de comparacin:
No almacenan el resultado, slo modifican los flags

CMP: compara nmeros (resta pero no guarda el resultado solamente


modifica los flags de estado)
Instrucciones de bit:
Tienen la funcin de modificar un solo bit o leer su estado. Son tpicas en
la configuracin de los flags
TEST: comparacin lgica a nivel de bits
CLI: clear flag de interrupcin
STI: set flag de interrupcin
CLC: clear flag de acarreo
STC: set flag de acarreo (realiza la operacin lgica AND pero no guarda
el resultado nicamente modifica los flags)

Instrucciones de desplazamiento
Todas las instrucciones de desplazamiento y rotaciones tienen en
comn:
El ltimo valor desplazado se copia en el flag de acarreo
Si el nmero de desplazamientos es mayor que uno, se debe colocar el
valor en el registro CL
Instrucciones de desplazamiento:
SAR: desplazamiento aritmtico a la derecha
SAL: desplazamiento aritmtico a la izquierda
SHR: desplazamiento lgico a la derecha
SHL: desplazamiento lgico a la izquierda
ROR: rotacin a la derecha
ROL: rotacin a la izquierda
RCR: rotacin a la derecha a travs del acarreo
RCL: rotacin a la izquierda a travs del acarreo

Instrucciones de entrada/salida
IN: Transfiere informacin desde un puerto de entrada a un registro

OUT: Escribe informacin en un puerto de salida desde un registro


Instrucciones de control
WAIT: hace esperar al procesador
HLT: detiene el procesador
NOP: no operacin

Estructura de un programa en ensamblador


Dosseg; prepara los segmentos para trabajar con DOS
.model small; define el modo del ejecutable
.stack 100h; define el tamao de la pila
.data; zona de definicin de los datos
Definicin de datos
.code
Mov ax, @data; inicializacin de los datos en
Mov ds, ax; el segmento de datos
Cdigo del programa
Mov AH, 4Ch; terminacin del programa y
Int 21h; devolucin del control
End; fin de programa
CISC Y RISC
Una de las primeras decisiones a la hora de disear un microprocesador
es decidir cul ser su juego de instrucciones.
La decisin por dos razones; primero, el juego de instrucciones decide el
diseo fsico del conjunto; segundo, cualquier operacin que deba
ejecutarse en el microprocesador deber poder ser descrita en trminos
de un lenguaje de estas instrucciones.

Frente a esta cuestin caben dos filosofas de diseo; mquinas


denominadas CISC y mquinas denominadas RISC.

Arquitectura RISC
En la arquitectura computacional, RISC (del ingls reduced instruction
set computer) es un tipo de microprocesador con las siguientes
caractersticas fundamentales:
Instrucciones de tamaos fijos y presentados en un reducido nmero de
formatos.
Slo las instrucciones de carga y almacenamiento acceden a la memoria
de datos.
El objetivo de disear mquinas con esta arquitectura es posibilitar la
segmentacin y el paralelismo en la ejecucin de instrucciones y reducir
los accesos a memoria.

Las mquinas RISC protagonizan la tendencia actual de construccin de


microprocesadores. PowerPC, DEC Alpha, MIPS, ARM, SPARC... son
ejemplos de algunos de ellos.
RISC es una filosofa de diseo de CPU para computadora que est a
favor de conjuntos de instrucciones pequeas y simples que toman
menor tiempo para ejecutarse.

El tipo de procesador ms comnmente utilizado en equipos de


escritorio, el x86, est basado en CISC en lugar de RISC, aunque las
versiones ms nuevas traducen instrucciones basadas en CISC x86 a
instrucciones ms simples basadas en RISC para uso interno antes de su
ejecucin.
La idea fue inspirada por el hecho de que muchas de las caractersticas
que eran incluidas en los diseos tradicionales de CPU para aumentar la
velocidad estaban siendo ignoradas por los programas que eran
ejecutados en ellas. Adems, la velocidad del procesador en relacin con
la memoria de la computadora que acceda era cada vez ms alta. Esto
con llev la aparicin de numerosas tcnicas para reducir el
procesamiento dentro del CPU, as como de reducir el nmero total de
accesos a memoria.

Caractersticas:
En pocas palabras esto significa que para cualquier nivel de desempeo
dado, un chip RISC tpicamente tendr menos transistores dedicados a la
lgica principal. Esto permite a los diseadores una flexibilidad
considerable; as pueden, por ejemplo:
Incrementar el tamao del conjunto de registros.
Mayor velocidad en la ejecucin de instrucciones.
Implementar medidas para aumentar el paralelismo interno.

Aadir cachs enormes.


Aadir otras funcionalidades, como E/S y relojes para mini controladores.
Construir los chips en lneas de produccin antiguas que de otra manera
no seran utilizables.
No ampliar las funcionalidades, y por lo tanto ofrecer el chip para
aplicaciones de bajo consumo de energa o de tamao limitado.
Las caractersticas que generalmente son encontradas en los
diseos RISC son:
Codificacin uniforme de
codificacin ms rpida.

instrucciones,

lo

que

permite

una

de

Un conjunto de registros homogneo, permitiendo que cualquier registro


sea utilizado en cualquier contexto y as simplificar el diseo del
compilador.
Modos de direccionamiento simple con modos ms complejos
reemplazados por secuencias de instrucciones aritmticas simples.
Los tipos de datos soportados en el hardware no se encuentran en una
mquina RISC.
Los diseos RISC tambin prefieren utilizar como caracterstica un
modelo de memoria Harvard, donde los conjuntos de instrucciones y los
conjuntos de datos estn conceptualmente separados.

Arquitectura CISC
En la arquitectura computacional, CISC (Complex instruction set
computer) es un modelo de arquitectura de computadora.
Los microprocesadores CISC tienen un conjunto de instrucciones que se
caracteriza por ser muy amplio y permitir operaciones complejas entre
operandos situados en la memoria o en los registros internos, en
contraposicin a la arquitectura RISC.

Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por


lo que, en la actualidad, la mayora de los sistemas CISC de alto
rendimiento implementan un sistema que convierte dichas instrucciones
complejas en varias instrucciones simples del tipo RISC, llamadas
generalmente micro instrucciones.
Los CISC pertenecen a la primera corriente de construccin de
procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son:
Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la
mayora de las computadoras personales actuales.
Entre las ventajas de CISC destacan las siguientes:
Reduce la dificultad de crear compiladores.
Permite reducir el costo total del sistema.
Reduce los costos de creacin de software.
Mejora la compactacin de cdigo.
Facilita la depuracin de errores.

MERCADO DE PROCESADORES.
Aunque los procesadores Intel y AMD comparten dos arquitecturas
comunes, x86(utilizada en los procesadores de 32 bits y en los de 64 bits
que actan en el modo de 32 bits) y x64(una extensin de x86 que
permite archivos ms grandes, mayores tamaos de memoria y
programas ms complejos), estas familias de procesadores difieren en
muchos sentidos, como:
Zcalos de procesador distinto.
Tipos de micro cdigo diferentes.
Diferencias en los diseos de doble ncleo o multincleo.

Tamaos de cache.
Rendimiento frente a la velocidad del reloj.

Intel
Procesadores Intel.
Entre los procesadores Intel desarrollados desde el 2000 hasta la actualidad se
encuentran las siguientes familias de productos:
Pentium III
Pentium IV
Pentium D
Celeron
Core 2 Do
Core 2 Quad
La tecnologa Centrino de Intel consiste en una combinacin del Core 2 Do y
ciertos chipsets de Intel creados para los ordenadores porttiles,

AMD
Procesadores AMD.
Los Procesadores AMD contemporneos de los de Intel Pentium III y sus
sucesores pertenecen a las siguientes familias hasta mediados del 2008:
Athlon
Duron
Athlon XP
Sempron
Athlon 64

Athlon 64 FX
Athlon 64 X2
Phenom X3
Phenom X4
Tecnologas de CPU

Tecnologa HT (HyperThreading)
La Tecnologa HyperThreading, la desarroll Intel para el procesamiento de dos
hilos de ejecucin dentro de un solo procesador. En esencia, cuando la
tecnologa HT est habilitada en el BIOS del sistema y el procesador est
ejecutando una aplicacin multihilo, lo que est haciendo es emular dos
procesadores fsicos

Regulacin del Procesador.


No es necesario que los procesadores a toda velocidad cuando tienen
pocas tareas que realzar o ninguna. Reduciendo o regulando la
frecuencia de reloj del procesador cuando hay poco trabajo, el chip
funciona a menos temperatura, el sistema gasta menos energa y, en el
caso de los ordenadores porttiles, la batera dura ms. La regulacin,
veces conocida como regulacin trmica, tambin puede producirse
cuando el procesador se calienta demasiado para que el sistema de
refrigeracin del ordenador funcione de forma correcta.
Intel emplea los trminos SpeedStep y Enhanced SpeedStep para sus
tecnologas de regulacin de procesador AMD ha optado por el nombre
de CoolQuiet.

Overclock
Overclock es un trmino ingls que alude a la prctica de hacer
funcionar un procesador u otro componente, como la memoria o la
unidad de procesamiento grafico (GPU) de una tarjeta de video, a
velocidades superiores a la normal.
Las tcnicas utilizadas con procesadores son aumentar el multiplicador
del reloj o hacer funcionar el Bus delantero (FSB) a frecuencias
superiores a la normal. Estos cambios se realizan modificando los
ajustes normales en la configuracin del BIOS del sistema para el
procesador.

Modulo Regulador de Voltaje (VRM).


Desde las versiones Socket 7 de Intel Pentium, los procesadores no han
recibido la corriente directamente desde la fuente de alimentacin. En lugar de
ello, se usa un dispositivo llamado modulo regulador de voltaje (VRM) para
reducir la corriente de 5V o 12V de la fuente de alimentacin a la potencia que
solicita el procesador a travs de su identificador de voltaje (VID).

Frecuencia de Reloj y rendimiento.


La frecuencia de reloj en relacin a un procesador o microprocesador
indica la frecuencia a la cual los transistores que lo conforman conmutan
elctricamente, es decir abren y cierran el flujo de una corriente
elctrica

Una medida comn del rendimiento del procesador es la frecuencia de


reloj. Sin embargo, ese dato puede ser engaoso.
Por ejemplo, los procesadores Intel Core 2 Do y AMD Athlon 64 X2
realizan las tareas de computacin mucho ms rpido que el Pentium D,
a pesar de que la frecuencia de reloj de Pentium D es mucho mayor.

32 Bits frente a 64 Bits.


Los procesadores desarrollados antes del AMD Athlon 64 se disearon
para sistemas operativos y aplicaciones de 32 Bits. El software de 32
bits no puede acceder a ms de 4GB de RAM (de hecho, los programas
Windows de 32 bits solamente pueden utilizar 3,25 GB de RAM), lo que
dificulta el trabajo con archivos de datos grandes, pues solo se puede
cargar una parte del archivo si este es ms grande que el tamao
mximo de la memoria.

Conclusin
Para concluir esta unidad daremos dado el hecho de que se ha logrado
aprender lo bsico de un funcionamiento del CPU los trminos pueden llegar a
ser un poco complicados y difciles de manejar aun ya aprendiendo ya que
cada vez los CPU evolucionan, dentro de lo que se pudo llegar a comprender
las Memoria de control organizacin del microprocesador y memoria de

programa que son muy importantes antes de dar el paso a las


estructuras de registros que llegan a jugar un rol importante dentro del
CPU ya que ah nos enteramos de que en el CPU se tienen lugar a la
mayor cantidad de trabajo real de una computadora. As mismo se dar
a conocer sus subpartes que son la ALU(unidad aritmtica y lgica) y la
UC(unidad de control y la unidad de registros, se aprendi los tipos de
operaciones que realizan cada una de ellas y el porqu de que las
tengan que realizar, para as poder llevarlas a un ciclo de instruccin y
cmo funcionan cada una de ellas el ciclo de instruccin llegue a ser
fcilmente comprendido y tambin conocer los tipos de ciclos y como
estn clasificados y cuando se debern de aplicar las segmentaciones de
instrucciones y tambin conocer las caractersticas y funciones de las
instrucciones para saber con qu ests trabajando y comprender su
modo de direccionamiento y el formato que tendrn, y para su estudio
del CPU se pudo observar que tiene distintas perspectivas o vistas de la
persona, puede ser la comercial, hablar de los vendedores, cifras y sacar
investigaciones de los principales hoy en da como lo son Intel y AMD o
tomarlo desde el punto de vista de que es lo que hace el CPU sus
tecnologas, CISC o RISC, si es lenguaje maquina en su totalidad o se
puede usar en el un lenguaje ensamblador y saber cules son las
mejores opciones al momento de adquirir un CPU.

Você também pode gostar