Вы находитесь на странице: 1из 19

INSTITUTO UNIVERSITARIO POLITCNICO

SANTIAGO MARIO
EXTENSIN MATURN

ALUMNO:
JESUS BOLIVAR 12051857

MATURIN, 2015.

CAPACIDAD DE LA UNIDAD DE PROCESAMIENTO


La medicin del rendimiento de un microprocesador es una tarea compleja, dado
que existen diferentes tipos de "cargas" que pueden ser procesadas con diferente efectividad
por procesadores de la misma gama. Una mtrica del rendimiento es la frecuencia de reloj
que permite comparar procesadores con ncleos de la misma familia, siendo este un
indicador muy limitado dada la gran variedad de diseos con los cuales se comercializan
los procesadores de una misma marca y referencia. Un sistema informtico de alto
rendimiento puede estar equipado con varios microprocesadores trabajando en paralelo, y
un microprocesador puede, a su vez, estar constituido por varios ncleos fsicos o lgicos.
Un ncleo fsico se refiere a una porcin interna del microprocesador casi-independiente
que realiza todas las actividades de una CPU solitaria, un ncleo lgico es la simulacin de
un ncleo fsico a fin de repartir de manera ms eficiente el procesamiento. Existe una
tendencia de integrar el mayor nmero de elementos dentro del propio procesador,
aumentando as la eficiencia energtica y la miniaturizacin. Entre los elementos integrados
estn las unidades de punto flotante, controladores de la memoria RAM, controladores de
buses y procesadores dedicados de vdeo.
El rendimiento del procesador puede ser medido de distintas maneras, hasta hace
pocos aos se crea que la frecuencia de reloj era una medida precisa, pero ese mito,
conocido como mito de los megahertzios se ha visto desvirtuado por el hecho de que los
procesadores no han requerido frecuencias ms altas para aumentar su potencia de
cmputo.
Durante los ltimos aos esa frecuencia se ha mantenido en el rango de los 1,5 GHz
a 4 GHz, dando como resultado procesadores con capacidades de proceso mayores
comparados con los primeros que alcanzaron esos valores. Adems la tendencia es a
incorporar ms ncleos dentro de un mismo encapsulado para aumentar el rendimiento por
medio de una computacin paralela, de manera que la velocidad de reloj es un indicador

menos fiable an. De todas maneras, una forma fiable de medir la potencia de un
procesador es mediante la obtencin de las Instrucciones por ciclo.
Medir el rendimiento con la frecuencia es vlido nicamente entre procesadores con
arquitecturas muy similares o iguales, de manera que su funcionamiento interno sea el
mismo: en ese caso la frecuencia es un ndice de comparacin vlido. Dentro de una familia
de procesadores es comn encontrar distintas opciones en cuanto a frecuencias de reloj,
debido a que no todos los chip de silicio tienen los mismos lmites de funcionamiento: son
probados a distintas frecuencias, hasta que muestran signos de inestabilidad, entonces se
clasifican de acuerdo al resultado de las pruebas.
Esto se podra reducir en que los procesadores son fabricados por lotes con
diferentes estructuras internas atendiendo a gamas y extras como podra ser una memoria
cach de diferente tamao, aunque no siempre es as y las gamas altas difieren muchsimo
ms de las bajas que simplemente de su memoria cach. Despus de obtener los lotes segn
su gama, se someten a procesos en un banco de pruebas, y segn su soporte a las
temperaturas o que vaya mostrando signos de inestabilidad, se le adjudica una frecuencia,
con la que vendr programado de serie, pero con prcticas de overclock se le puede
incrementar.
La capacidad de un procesador depende fuertemente de los componentes restantes
del sistema, sobre todo del chipset, de la memoria RAM y del software. Pero obviando esas
caractersticas puede tenerse una medida aproximada del rendimiento de un procesador por
medio de indicadores como la cantidad de operaciones de coma flotante por unidad de
tiempo FLOPS, o la cantidad de instrucciones por unidad de tiempo MIPS. Una medida
exacta del rendimiento de un procesador o de un sistema, es muy complicada debido a los
mltiples factores involucrados en la computacin de un problema, por lo general las
pruebas no son concluyentes entre sistemas de la misma generacin.

ORGANIZACIN DE LA INSTRUCCIN DE MAQUINA


Ciclo de ejecucin de una instruccin:
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.
Ciclo de instruccin: es el procesamiento requerido para la instruccin. En este Ciclo, se
encuentran los dos pasos citados anteriormente, denominados Ciclo de lectura (feth) y
Ciclo de ejecucin.
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 instruction 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:


1.- Procesador-memoria: los datos se transfieren del procesador a la memoria o viceversa.
2.- 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.
3.- Tratamiento de datos: el procesador puede realizar alguna operacin aritmtica o lgica
sobre los datos.
4.- 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, pueden intercambiar
datos directamente con el procesador y 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.
Interrupciones:
La interrupcin es bsicamente un suceso que altera la secuencia de ejecucin de las
instrucciones. Existen varios tipos de interrupciones de los cuales los ms comunes son los
siguientes:
1) De programa o de verificacin de programa: son ocasionadas por condiciones que se
producen como resultado de la ejecucin de una instruccin. Ejemplo: la divisin por cero,
el intento de ejecutar una instruccin privilegiada.
2) De reloj: son producidas por un reloj interno del procesador. Para que de esa forma se
realicen funciones con una cierta regularidad.
3) De Entrada / Salida: son generadas por un controlador de E/S para indicar la finalizacin
de una operacin; o e cambio de estado de un dispositivo o canal; o tambin alguna
condicin de error.
4) Por fallo del Hardware o de verificacin de mquina: son causadas por el mal
funcionamiento del equipo, cortes de energa, etc. Con el uso de las interrupciones el
procesador se puede utilizar de una manera ms eficaz.
Las interrupciones y el ciclo de instruccin:
Utilizando interrupciones el procesador puede ejecutar instrucciones mientras una
operacin de E/S est en proceso. Siguiendo esta idea se concluye que la operacin de E/S
y un programa usuario son ejecutados concurrentemente.
Desde la postura del programa de usuario, una interrupcin no es ms que la
alteracin de la secuencia normal de ejecucin. Cuando el tratamiento de la interrupcin

termina, la ejecucin continua. Para tratar a las interrupciones, se agrega un ciclo de


interrupcin al ciclo de instruccin.
En el ciclo de interrupcin, el procesador verifica si ha ocurrido alguna interrupcin,
indicado por la presencia de una seal de interrupcin. Si no hay interrupciones pendientes,
el procesador contina con el ciclo de lectura y trae la prxima instruccin del programa en
curso. Si hay una interrupcin pendiente, el procesador suspende la ejecucin del programa
en curso y ejecuta una rutina de tratamiento de la interrupcin.
Ciclo de instruccin:
Un ciclo de instruccin (tambin 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.
Traer la instruccin 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.

Decodificar la instruccin: El decodificador de instruccin interpreta y pone en prctica la


instruccin.
Registros que son crticos al ciclo ejecutar 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.
Traer archivos desde la memoria principal: Lea la direccin eficaz de la memoria principal
si la instruccin tiene una direccin indirecta. Traer requiere datos de la memoria principal
para ser procesada y colocado en registros.
Ejecutar la instruccin:
Del registro de instruccin, los datos que forman la instruccin son descifrados por
la unidad de control. Esto entonces pasa la informacin descifrada como una secuencia de
seales de control a las unidades de funcin relevantes de la CPU para realizar las acciones
requeridas por la instruccin como la lectura de valores de registros, pasndolos a la unidad
Aritmtica lgica (ALU) para aadirlos juntos y escribiendo el resultado de vuelta al
registro. Una seal de condicin es enviada de regreso a la unidad de control por ALU si
est implicado.
Almacenar Resultados:
El resultado generado por la operacin es almacenado en la memoria principal, o
enviado a un dispositivo de salida. Basado en la regeneracin de condicin del ALU, la PC
es incrementada para dirigir la siguiente instruccin o para actualizar a diferentes
direcciones de donde ser trada la siguiente instruccin. El ciclo entonces es repetido.
Ciclo de ejecucin:
El primer paso del ciclo de ejecucin es proceso de memoria. La informacin es

transferida entre el CPU y el modulo I/O. Despus es el Proceso de datos usa operaciones
matemticas as como operaciones lgicas en la referencia a datos. Alteraciones centrales
son el siguiente paso, son una secuencia de operaciones, por ejemplo un salto la operacin.
El ltimo paso es una operacin combinada de todos los otros pasos.
CLASIFICACIN DE LOS CDIGOS DE OPERACIN
En informtica, un opcode (operation code) o cdigo de operacin, es la porcin
de una instruccin de lenguaje de mquina que especifica la operacin a ser realizada. Su
especificacin y formato sern determinados por la arquitectura del conjunto de
instrucciones (ISA) del componente de hardware de computador - normalmente un CPU,
pero posiblemente una unidad ms especializada. Una instruccin completa de lenguaje de
mquina contiene un opcode y, opcionalmente, la especificacin de uno o ms operando
sobre los que la operacin debe actuar. Algunas operaciones tienen operando implcitos, o
de hecho ninguno. Algunas ISAs tiene instrucciones con campos definidos para los opcodes
y operando, mientras que otras (ej. la arquitectura Intel x86) tienen una estructura ms
complicada y de propsito especfico. Los operando sobre los cuales los opcodes aplican
pueden, dependiendo de la arquitectura del CPU, consistir de. registros, valores en
memoria, valores almacenados en la pila, puertos de I/O, bus, etc. Las operaciones que un
opcode puede especificar pueden incluir aritmtica, copia de datos, operaciones lgicas, y
control del programa.
Los opcodes tambin pueden ser encontrados en los bytecodes interpretados por un
interpretador de cdigo de byte (o la mquina virtual, en un sentido de ese trmino). En
stos, una arquitectura de conjunto de instrucciones es creada para ser interpretada por
software en vez de un dispositivo de hardware. A menudo, los interpretadores de cdigo de
byte trabajan con tipos de datos y operaciones de ms alto nivel, que el de un conjunto de
instrucciones por hardware, pero son construidas a lo largo de lneas similares. Ejemplos
incluyen la mquina virtual de Java (JVM) del lenguaje de programacin Java, el cdigo de
byte usado en GNU Emacs para el cdigo compilado de LISP, y muchos otros.

El lenguaje de mquina es tedioso y difcil para que los seres humanos lo programen
directamente, as que si la abstraccin dada por un lenguaje de programacin de alto nivel
no es deseada, un lenguaje ensamblador es usado. Aqu, son usadas las instrucciones
mnemnicas que corresponden a las especificaciones del opcode y el operando de las
instrucciones de lenguaje de mquina generadas. Esto da un mayor nivel de legibilidad y
comprensibilidad, que trabajando directamente con operaciones de lenguaje de mquina,
mientras que todava da el control exacto del lenguaje de mquina generado. Un programa
llamado ensamblador transforma el lenguaje ensamblador en cdigo de mquina.
MODOS DE DIRECCIONAMIENTO.
Son los distintos modos de acceder a los datos en memoria por parte del procesador.
Antes de ver los modos de direccionamiento, echaremos un vistazo a la sintaxis general de
las instrucciones, ya que pondremos alguna en los ejemplos:
INSTRUCCIN

DESTINO, FUENTE

Donde destino indica dnde se deja el resultado de la operacin en la que pueden


participar (segn casos) FUENTE e incluso el propio DESTINO. Hay instrucciones, sin
embargo, que slo tienen un operando, como la siguiente, e incluso ninguno:
INSTRUCCIN

DESTINO

Como ejemplos, aunque no hemos visto an las instrucciones utilizaremos un par de


ellas:

Copia o movimiento de datos (MOV) y

Suma (ADD).

Organizacin de direcciones: segmentacin:

Los microprocesadores 8086 y compatibles poseen registros de un tamao mximo


de 16 bits que direccionaran hasta 64K; en cambio, la direccin se compone de 20 bits con
capacidad para 1Mb, hay por tanto que recurrir a algn artificio para direccionar toda la
memoria.
Dicho artificio consiste en la segmentacin: se trata de dividir la memoria en grupos
de 64K. Cada grupo se asocia con un registro de segmento; el desplazamiento (offset)
dentro de ese segmento lo proporciona otro registro de 16 bits.
La direccin absoluta se calcula multiplicando por 16 el valor del registro de
segmento y sumando el offset, obtenindose una direccin efectiva de 20 bits. Esto
equivale a concebir el mecanismo de generacin de la direccin absoluta, como si se tratase
de que los registros de segmento tuvieran 4 bits a 0 (imaginarios) a la derecha antes de
sumarles el desplazamiento:
direccin = segmento * 16 + offset
En la prctica, una direccin se indica con la notacin (SEGMENTO: OFFSET);
adems, una misma direccin puede expresarse de ms de una manera: por ejemplo,
3D00h:0300h es equivalente a 3D30:0000h.
Es importante resaltar que no se puede acceder a ms de 64 Kb en un segmento de
datos. Por ello, en los procesadores 386 y superiores no se deben emplear registros de 32 bit
para generar direcciones (bajo DOS), aunque para los clculos pueden ser interesantes (no
obstante, s sera posible configurar estos procesadores para poder direccionar ms memoria
bajo DOS con los registros de 32 bits, aunque no resulta por lo general prctico).

MODOS DE DIRECCIONAMIENTO

Una instruccin de 8088/8086 no solo contienen informacin sobre la operacin


particular a realizar, sino que tambin incluye las especificaciones para el tipo de operando
a manipular, as como tambin la posicin de estos operandos. El microprocesador
determina el modo de direccionamiento que es aludido por la sintaxis de la instruccin. Son
siete los modos mas importantes de direccionamiento.

Direccionamiento inmediato

Direccionamiento de registros

Direccionamiento directo

Direccionamiento indirecto de registros

Direccionamiento relativo a base

Direccionamiento indexado directo

Direccionamiento indexado a base

Direccionamiento inmediato:

El operando es una constante situada detrs del cdigo de la instruccin. Sin


embargo, como registro destino no se puede indicar uno de segmento (habr que utilizar
uno de datos como paso intermedio).
ADD AX,0fffh
El nmero hexadecimal 0fffh es la constante numrica que en el direccionamiento
inmediato se le sumar al registro AX.

Al trabajar con ensambladores, se pueden definir smbolos constantes (ojo, no


variables) y es ms intuitivo:
Dato EQU 0fffh;

smbolo constante

MOV AX, Dato

Si se referencia a la direccin de memoria de una variable de la siguiente forma,


tambin se trata de un caso de direccionamiento inmediato:
Dato

DW 0fffh;
MOV

ahora es una variable

AX,OFFSET dato ; AX = "direccin de memoria" de

dato

Porque hay que tener en cuenta que cuando traduzcamos a nmeros el smbolo
podra quedar:
17F3:0A11 DW FFF
MOV AX,0A11

Direccionamiento de registros:

Los operandos, necesariamente de igual tamao, estn contenidos en los registros


indicados en la instruccin:
MOV DX,AX
MOV AH,AL

Este puede ser un valor de 8 o 16 bits, el microprocesador interpreta la longitud


del operando por el nombre del registro.

Direccionamiento directo:

El operando est situado en la direccin indicada en la instruccin, relativa al


segmento que se trate:

MOV AX,[57D1h]
MOV AX,ES:[429Ch]

Esta sintaxis (quitando la 'h' de hexadecimal) sera la que admite el programa


DEBUG (realmente habra que poner, en el segundo caso, ES: en una lnea y el MOV en
otra). Al trabajar con ensambladores, las variables en memoria se pueden referenciar con
etiquetas simblicas:
MOV AX,dato
MOV AX,ES:dato

dato

DW 1234h

; variable del programa

En el primer ejemplo se transfiere a AX el valor contenido en la direccin apuntada


por la etiqueta dato sobre el segmento de datos (DS) que se asume por defecto; en el
segundo ejemplo se indica de forma explcita el segmento tratndose del segmento ES. La
direccin efectiva se calcula de la forma ya vista con anterioridad: Registro de 8segmento *
16 + desplazamiento_de_dato (este desplazamiento depende de la posicin al ensamblar el
programa).
Direccionamiento indirecto de registros:
El operando se encuentra en una direccin sealada por un registro de segmento*16
ms un registro base (BX/BP) o ndice (SI/DI). (Nota: BP acta por defecto con SS).
MOV AX,[BP]
MOV ES:[DI],AX

Relativo de base:

; AX = [SS*16+BP]
; [ES*16+DI] = AX

La direccin de un operando se obtiene de la suma del numero y el contenido de un


registro base (el BX o el BP), relativo al segmento seleccionado. El modo relativo a base es
mas usado frecuentemente para acceder a estructuras de datos complejas.

Indirecto indexado directo:

El operando se encuentra en una direccin determinada por la suma de un registro


de segmento*16, un registro de ndice, SI o DI y un desplazamiento de 8 16 bits.
Ejemplos:
MOV AX,[DI+DESP]
ADD [SI+DESP],BX

MOV AX,desp[DI]
ADD desp[SI],BX

Indirecto con base e ndice o indexado a base:

El operando se encuentra en una direccin especificada por la suma de un registro


de segmento*16, uno de base, uno de ndice y opcionalmente un desplazamiento de 8 16
bits:
MOV AX,ES:[BX+DI+DESP]

MOV AX,ES:desp[BX][DI]

MOV CS:[BX+SI+DESP],CX

MOV CS:desp[BX][SI],CX

Combinaciones de registros de segmento y desplazamiento.

Como se ve en los modos de direccionamiento, hay casos en los que se indica


explcitamente el registro de segmento a usar para acceder a los datos. Existen unos
segmentos asociados por defecto a los registros de desplazamiento (IP, SP, BP, BX, DI, SI);
slo es necesario declarar el segmento cuando no coincide con el asignado por defecto. En
ese caso, el ensamblador genera un byte adicional (a modo de prefijo) para indicar cul es
el segmento referenciado. La siguiente tabla relaciona las posibles combinaciones de los
registros de segmento y los de desplazamiento:

CS
SS
DS
IP S
No
No
SP No
S
No
BP con prefijo
por defecto
con prefijo
BX con prefijo
con prefijo
por defecto
SI con prefijo
con prefijo
por defecto
DI con prefijo
con prefijo
por defecto
(1) Tambin por defecto en el manejo de cadenas.

ES
No
No
con prefijo
con prefijo
con prefijo
con prefijo(1)

UNIDAD DE CONTROL
La funcin principal de la unidad de control de la UCP es dirigir la secuencia de
pasos de modo que la computadora lleve a cabo un ciclo completo de ejecucin de una
instruccin, y hacer esto con todas las instrucciones de que conste el programa. Los pasos
para ejecutar una instruccin cualquiera son los siguientes:
1.- Ir a la memoria y extraer el cdigo de la siguiente instruccin (que estar en la siguiente
celda de memoria por leer). Este paso se llama ciclo de fetch en la literatura computacional
(to fetch significa traer, ir por).

2.- Decodificar la instruccin recin leda (determinar de que instruccin se trata).


3.- Ejecutar la instruccin.
4.- Prepararse para leer la siguiente casilla de memoria (que contendr la siguiente
instruccin), y volver al paso 1 para continuar.
La unidad de control ejecutara varias veces este ciclo de cuatro instrucciones
alambradas a una enorme velocidad.
Se llama as a estas instrucciones porque no residen en memoria, ni fueron escritas
por ningn programador, sino que la maquina las ejecuta directamente por medios
electrnicos, y lo har mientras este funcionando (mientras este encendida) en una
computadora es a razn de cientos de miles (o incluso millones) de veces por segundo.
Se ha definido ya el modelo de von Neumann. Ahora se pondr a funcionar sobre
nuestro pequeo programa de ejemplo (que ya esta cargado en la memoria).

Вам также может понравиться