organización del computador

27
INSTITUTO UNIVERSITARIO POLITÉCNICO “SANTIAGO MARIÑO” EXTENSIÓN MATURÍN ALUMNO: JESUS BOLIVAR 12051857

Upload: jesus

Post on 08-Nov-2015

217 views

Category:

Documents


1 download

DESCRIPTION

conceptos básico de organización del computador

TRANSCRIPT

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; ahora es una variable MOV 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] ; AX = [SS*16+BP] MOV ES:[DI],AX ; [ES*16+DI] = AX

Relativo de base:

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] MOV AX,desp[DI] ADD [SI+DESP],BX 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 ES

IP S No No No

SP No S No No

BP con prefijo por defecto con prefijo con prefijo

BX con prefijo con prefijo por defecto con prefijo

SI con prefijo con prefijo por defecto con prefijo

DI con prefijo con prefijo por defecto con prefijo(1)

(1) Tambin por defecto en el manejo de cadenas.

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).