Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1 INTRODUCCION
Existe una gran variedad de sistemas que pueden recibir correctamente el nombre de
computador, desde microprocesadores de un solo chip, y de bajo coste, a computadores que
cuestan decenas de millones de euros. Esta variedad es patente no slo en costes, sino tambin
en tamao, prestaciones y aplicaciones. La rapidez de los cambios, que ha caracterizado
siempre a la tecnologa de computadores, contina sin pausa. Estos cambios cubren todo los
aspectos de la tecnologa de computadores, desde la tecnologa subyacente de circuitos
integrados, usados para construir componentes de computadores, hasta el creciente uso de
conceptos de organizacin paralela para combinan esos componentes.
En una clase de sistemas, los llamados microcomputador es, la relacin entre arquitectura y
organizacin es muy estrecha. Los cambios en la tecnologa no slo influyen en la
organizacin, lo que tambin dan lugar a la introduccin de arquitecturas ms ricas y potentes.
Generalmente, hay menos requisitos de compatibilidad, generacin generacin, para estas
pequeas mquinas. As, hay ms interaccin entre las decisiones de diseo arquitectnicas y
de organizacin. Un ejemplo interesante de stos a los computadores de repertorio reducido de
instrucciones (RISC, Reduced Instrution Set Computer).
La naturaleza jerrquica de los sistemas complejos es esencial, tanto para su diseo como para
su descripcin. El diseador necesita tratar solamente con un nivel particular del sistema a la
vez. En cada nivel, el sistema consta de un conjunto de componentes y sus interrelaciones. El
8
En trminos de descripcin tenemos dos opciones: empezar por lo ms bajo y construir una
descripcin completa, o comenzar con una visin desde arriba y descomponer el sistema en
sus partes. La experiencia a partir de muchos campos nos ha enseado que la descripcin de
arriba a abajo es la ms clara y efectiva. Comenzaremos con los componentes principales del
sistema, describiendo su estructura y funcionamiento, y seguimos, sucesivamente, hace capas
ms bajas de la jerarqua.
Funcionamiento
Procesamiento de datos
Almacenamiento de datos
Transferencia de datos
Control
El computador, por supuesto, tiene que ser capaz de procesar datos. Los datos pueden adoptar
una gran variedad de formas, y el rango de los requisitos de procesador es amplio. Sin
9
embargo, veremos que hay slo unos pocos mtodos o tipos fundamentales de procesado de
datos.
El computador tiene que ser capaz de transferir datos entre el mismo y el mundo exterior. El
entorno de operacin del computador se compone de dispositivos que sirven bien como fuente
o como destino de datos. Cuando se reciben o se llevan datos a un dispositivo que est
directamente conectado con el computador, el proceso se conoce como entrada-salida (E/S), y
este dispositivo de recibe el nombre de perifrico. El proceso de transferir datos a largas
distancias, desde o haca un dispositivo remoto, recibe el nombre de comunicacin de datos.
Finalmente, se debe haber un control de estas tres funciones. Este control es ejercido por el/los
ente(s) que proporciona(n) al computador instrucciones. Dentro del computador, una unidad
de control gestiona los recursos del computador y dirige las prestaciones de sus partes
funcionales en respuesta a estas instrucciones
A este nivel general de discusin, el nmero de operaciones posibles que pueden ser
realizadas es pequeo. El computador puede funcionar como un dispositivo de transferencia
de datos, simplemente transfiriendo datos de un perifrico o lnea de comunicaciones a otro.
Tambin puede funcionar como un dispositivo de almacenamiento de datos, contactos
transferidos desde un entorno externo al almacn de datos del computador (leer) y viceversa
(escribir).
10
Estructura
El computador es una entidad que y entre acta de alguna manera con sus entorno externo. En
general, todas sus conexiones con el entorno externo puede ser clasificadas como dispositivos
perifricos o de comunicacin. Diremos algo sobre ambos tipos de conexiones.
COMPUTADOR
E/S M.P.
Interco-
nexin
interna
CPU
CPU
Puede que haya uno o ms de cada uno de estos componentes. Tradicionalmente, ha habido
slo una CPU. En los ltimos aos, ha habido un uso creciente de varios procesadores en un
solo sistema.
CPU
Registros ALU
Bus interno
UC
ENIAC
El ENIAC (Electronic Numerical Integrator And Computer), diseado y construido bajo la
supervisin de
John Mauchly y John tres Presper Eckert en la Universidad de Pennsyvania, fue el primer
computador electrnico de propsito general del mundo.
El proyecto fue una respuesta al necesidades militares en tiempo de guerra de los Estados
Unidos. El laboratorio de investigacin de balstica del ejrcito, una agencia responsable del
desarrollo de tablas de tiro y de trayectoria de nuevas armas, tena dificultades para elaborarlas
con exactitud y dentro de un plazo de tiempo razonable. Sin estas tablas de tiro, las nuevas
armas y piezas de artillera eran intiles para los artilleros.
13
El ENIAC era una mquina de final, y no binario. Es decir, los hombres estaban representados
en forma decimal y aritmtica se realizaba tambin el sistema decimal. Su memoria consista
en 20 acumuladores, cada uno capaz de contener un nmero decimal de diez dgitos. Cada
dgito estaba representado por un anillo de diez tubos de vaco. En un momento dado, slo
uno de los tubos de vaco estaba en estado ON, representando uno de los diez dgitos. Uno de
los mayores inconvenientes del ENIAC era que tena que ser programado en los manualmente
mediante computadores y conectando y las conectando cables.
El ENIAC se termin en 1946, demasiado tarde para ser utilizado durante la guerra. En lugar
de eso, su primera misin fue realizar una serie de clculos complejos, que se usaron para
ayudar a determinar la viabilidad de la bomba H. En uso del ENIAC para una funcin distinta
de aquella para la que fue construido ,mostr su naturaleza de propsito general. As,1946
marc el comienzo de la nueva era de los computadores electrnicos, culminando aos de
esfuerzos. El ENIAC sigui funcionando bajo la direccin del BRL hasta 1955, cuando fue
desmontado.
14
Esta idea, conocida como concepto de programa-almacenado, se atribuye a los diseadores del
ENIAC, sobre todo al matemtico John von Neumann, que era asesor del proyecto ENIAC. La
idea fue tambin desarrollada, aproximadamente el mismo tiempo, por Turing. la primera
publicacin de la idea fue en una propuesta de von Neumann para un nuevo computador en
1945 ,el EDVAC (Electronic Discrete Variable Computer).
En 1946, von Neumann y sus colegas empezaron, en el instituto para estudios avanzados de
Princeton, el diseo de un nuevo computador de programa-almacenado, que llamaron IAS. No
completado hasta 1952, es el prototipo de todo una serie computadores de propsito general.
ALU
Memoria Equipos de
Principal E/S
Unidad de
Control
15
Una unidad aritmtico-lgica (ALU), capaz de hacer operaciones con datos binarios.
Una unidad de control, que interpreta las instrucciones de memoria y provoca su ejecucin.
CPU: es la parte del ordenador encargada de ejecutar las operaciones. Operaciones que
incluye fundamentalmente movimiento de datos, operaciones aritmticas y lgicas, y de
control del flujo de la ejecucin. En la mayor parte de los ordenadores actuales, la CPU se
construye en un nico circuito integrado, denominado tambin microprocesador.
Memoria: permite el almacenamiento de los datos y las instrucciones con las que trabaja el
procesador. El trmino de memoria se suele utilizar para hacer referencia la memoria principal
de la ordenador, frente a lo que sera una memoria secundaria, que es como se suele
denominar a los sistemas de almacenamiento masivo como como los discos, cintas, CD-ROM,
DVD, etc.. En un ordenador, prcticamente siempre aparecen espacios asociados a memoria
ROM (Read Only Memory), cuya informacin no puede modificar la CPU, y es informacin
que se conserva entr el apagado y el encendido del ordenador, y memorias RAM (Random
Accsee Memory), cuyo contenido lo puede consultar y actualizar la CPU, pero su informacin
se pierde cuando no se las alimenta elctricamente.
Salvo raras excepciones, todos los computadores de hoy en da tienen la misma estructura
general y funcionamiento que la indicada en las mquinas de von Neumann. Por tanto, merece
la pena describir brevemente la manera de operar del computador IAS.
01 39
a) Palabra nmero
Bit de signo
0 8 19 20 28 39
b) Palabra Instruccin
Registro temporal de memoria (MBR , Memory Buffer Register): contiene una palabra
que debe ser almacenada en la memoria, o es usada para recibir una palabra procedente de la
memoria.
Registro de instruccin (IR, Instruction Register): contiene los 8 bits del cdigo de
operacin de la instruccin que se va a ejecutar.
CPU
Unidad aritmtico-lgica
AC MQ
Equipo
de
Circuitos aritmtico-lgicos E/S
MBR
Instrucciones
y datos
IBR PC
Memoria
IR MAR principal
Circuitos Seales de
de control Direcciones
control
Unidad de control de programa
El IAS, opera ejecutando repetidamente un ciclo instruccin. Cada ciclo constar de dos
subciclos. Durante el ciclo de captacin, el codop de la siguiente instruccin es cargado en el
IR, y la parte que contiene la direccin se almacena en el MAR.
Esta instruccin puede ser captada desde el IBR, o puede de ser obtenida de la memoria
cargando una palabra en el MBR, y luego en IBR, IR y MAR.
19
Una vez que el codop est en el IR, se lleva a cabo el ciclo de ejecucin. Los circuitos de
control interpretan el codop y ejecutan las instrucciones, enviando las seales de control
adecuadas para provocar que los datos se transfieran o que la ALU realice una operacin. El
computador IAS tiene un total de 21 instrucciones, algunas de las cuales se indican en la
Tabla1. El tipo de instrucciones del IAS se muestra en esta tabla, sin embargo aprovechamos
aqu para nombrar las instrucciones tpicas que incluye cualquier CPU, que se pueden dividir
en los siguientes grupos:
Transferencia de datos: se emplea para mover informacin entre los diferentes espacios
(registros, memoria, registros de controladores de entrada/salida). Aunque algunas CPU
restringen los movimientos (8086 y los procesadores RISC no permiten movimientos de
memoria a memoria), otros permiten cualquier combinacin (ortogonalidad). Tambin se
incluyen operaciones especficas de entrada/salida o de acceso a los espacios de pila.
Manejo de bits: estas son instrucciones que permite modificar o consultar bits de un operando
de forma individual.
Control del programa: estas son instrucciones que permite modificar el flujo de ejecucin de
un programa. Entr ellas se incluyen los saltos condicionales o incondicionales, las llamadas y
retornos de subrutina, las comprobaciones de errores y los desvos al sistema operativo.
20
Tabla1
Tipo de Codop Representacin Descripcin
Instruccin simblica
Transferencia de datos 00001010 LOAD MQ Transferir el contenido del registro
MQ al acumulador AC
00001001 LOAD MQ,M(X) Transferir el contenido de la
posicin de memoria X a MQ
Salto incondicional 00001101 JUMP M(X,0:19) Captar la siguiente instruccin de la
mitad izquierda de M(X)
00001110 JUMP M(X,20:39) Captar la siguiente instruccin de la
mitad derecha de M(X)
Salto condicional 00001111 JUMP + M(X,0:19) Si el nmero en el acumulador no
es negativo, captar la siguiente
instruccin de la mitad izquierda de
M(X)
00001000 JUMP + M(X,20:39) . de la mitad derecha de M(X)
Las instrucciones ejecuta la CPU se almacenan en la memoria del ordenador, de donde las
extrae el procesador y las ejecuta de forma secuencial, a menos que se produzca algn salto.
En una memoria slo se pueden almacenarse secuencias de bytes cuyos contenidos son ceros
o unos, esas combinaciones y secuencias deben estar organizadas de forma que tengan algn
sentido para la CPU y sean reconocidas por esta. El conjunto de las posibles combinacin de
que reconoce la CPU es lo que se denomina lenguaje mquina, y suelen ser diferentes para
cada familia de CPU.
Las instrucciones que ejecuta la CPU son, en general, operaciones aritmticas (sumas, restas,
multiplicaciones, etc.), lgicas (AND, OR, NOT, etc), movimiento de datos de unos espacios
a otros y control de flujo (saltos condicionales, incondicionales, comparaciones...). Esas
instrucciones suelen trabajar con unos operndos que la CPU pueda tomar de sus registros
(espacios para almacenar datos dentro de la propia CPU) o de la memoria. La forma en que se
especifica de donde se deben tomar los datos es lo que se llama el modo de direccionamiento.
Como se ha dicho, el lenguaje mquinas es aquel que la CPU es capaz de reconocer y ejecutar.
Una secuencia de instrucciones de este lenguaje mquina, almacenado en la memoria del
ordenador, podr representar un programa en lenguaje mquina. Un programa es una
secuencia de ceros y unos que, en funcin de las instrucciones que incluya y el orden en que
stas aparezcan, a la que la CPU vaya obteniendo unos resultados, que pueden parecerse o no
a los que el programador pretenda conseguir.
Poner 6 En dir 5
15 0
Binario Decimal Restar 1 De dir 5
0000 0 0100 0001 0101 xxxx
0001 1
Si ltima op. 0 Salta 4
0010 2
0011 xxxx xxxx 0100
0011 3 Programa
0100 4 Salta a Dir 1
Parar
En este programa aparece una secuencia de instrucciones (no hay nada almacenado entre estas
instrucciones) El procesador ir ejecutando una tras otra. Son instrucciones en general
sencillas (comparndolas con las de los lenguajes de alto nivel como Fortran, C, VisualBasic,
etc...).
23
Otra caracterstica comn a todos los lenguajes mquina es que cada instruccin contiene todo
lo que la CPU necesita para poder ejecutarla, estando muy claro el lmite entre ellas. La CPU
siempre puede ejecutar cualquier instruccin en un momento dado. Cualquier secuencia de
instrucciones podr ser ejecutada por el procesado (salvo caso muy excepcionales), aunque los
resultados pueden ser impredecibles. Esta caracterstica hace que la ejecucin de las CPU sea
bastante sistemtica y lleve asociado un ciclo de ejecucin parecido en todas ellas:
4. Volver a uno.
Para poder escribir los programas, nos apoyamos en herramientas como los compiladores,
intrpretes o en sembradores, cuya funcin es producir los programas escritos en lenguaje de
alto nivel, o ensamblador, a lenguajes mquina, siendo estas traducciones las que realmente
ejecuta el procesador.
Para poder ejercer un programa en un caso general, adems de editarlo, se deben seguir estos
pasos:
24
1. Compilar cada una de las unidades que lo compongan (pudiendo estar cada unidad escrita
en diferentes lenguajes de alto nivel o ensamblador). Los compiladores o ensambladores
generaran ficheros objetos, en los que se incluyen instrucciones en lenguaje mquina que
ejecutan operaciones equivalentes a las sentencias de los ficheros fuente, adems de otra
informacin que se empleara en la siguientes fases.
3. Cargar el programa ejecutable (el lenguaje mquina) en memoria y hacer que la CPU no
ejecute la carga de el programa La suele realizar el sistema operativo de la mquina, llevando
las instrucciones mquina contiene el fichero ejecutable a memoria. Una vez cargado, le
ceder control, ejecutando una instruccin de salt a la direccin donde se ha cargado el
programa. Hasta ese momento, la CPU estaba ejecutando instrucciones de los programas que
componen el sistema operativo. A partir de ahora ejecutar las del programa.
Como se ve, para poder ejecutar un programa se deben ejecutar otros programas (compilador,
enlanzador, sistema operativo), que, a su vez, habrn sido escritos en lenguaje este alto nivel y
compilados y enlazados, a menudo con tcnicas de programacin cruzada (en una mquina
diferente y con otros compiladores y enlanzadores) o similares.
Adems de poder emplear nemotcnicos para representar las operaciones, los espacios de
datos se presentarn de forma simblica (de forma parecida a como se declaran variables en
25
un lenguaje de alto nivel), con lo que se evita tener que trabajar directamente con direcciones
de memoria. Esos espacios se representan mediante etiquetas, que tambin se emplean para
representar direcciones donde se tienen almacenadas instrucciones.
1.4.1 Operandos
La mayor parte de las instrucciones de un ordenador manipulan datos, esos datos residen en
los operandos, que aparecen descritos en las instrucciones que procesa la CPU. En general los
operandos con los que trabajan las instrucciones son de 3 clases, en funcin de su ubicacin:
espacios de memoria, registros de la CPU y registros de controladores de entrada/salida.
Desde un punto de vista ms particular, se pueden clasificar por el tipo de informacin que
almacenan: Direcciones, nmeros, caracteres y datos lgicos.
normalmente, cada palabra o cualquier otra unidad direccionable (byte, media palabra, etc.) es
tratada como una unidad de datos individual. Sin embargo, a veces es til considerar una
unidad de n bits, elemento elementos o datos de 1 bit, donde cada elemento tiene un valor 1
0. Cuando los datos son vistos de esta manera, se consideran datos lgicos.
26
El byte, la palabra, la palabra doble y la cudruple, son referidas como tipos generales de
datos. Adems, el Pentium II admite una variedad impresionante de tipos de datos especficos,
que son reconocidos y procesados mediante instrucciones concretas. La Tabla II resume estos
tipos.
El tipo coma flotante se refiere realmente a un conjunto de tipos utilizados por la unidad de
coma flotante, y que son procesados mediante instrucciones de coma flotante. Los enteros
estn en representacin de complemento a dos y puede ser de 16,32 64 bits. Los enteros
decimales empaquetados se almacenan en representacin signo-magnitud con 18 dgitos en el
rango de 0 a 9. Las tres representaciones en coma flotante se ajustan al estndar IEEE 754.
el alineamiento. Una caracterstica interesante del PowerPC es que puede utilizar bien estilo
"litte-endian" o el "big-endian"; es decir, el byte menos significativo puede estar almacenado,
bien en la direccin ms baja, o bien en la ms alta.
El byte, la media palabra, la palabra y la palabra doble, son tipos de datos generales. El
procesador interpreta el contenido de un elemento de datos dado dependiendo de la
instruccin. El procesador de coma flotante cifra reconoce los siguientes tipos de datos:
Byte sin signo: puede utilizarse para operaciones lgicas o para aritmticas con enteros. Se
carga de memoria en un registro general, completando con ceros hacia la izquierda hasta la
longitud total del registro.
Media palabra con signo: como antes, pero para cantidades de 16.
Media palabra con signo: utilizados para operaciones aritmticas; cargardo en memoria
completando el signo hacia la izquierda hasta la longitud total del registro (es decir, se repite
el bit de signo en todas las posiciones vacantes).
Palabra sin signo: utilizado para operaciones lgicas y como puntero de direcciones.
Adems, el por PowerPC admite tipos de datos en coma flotante de pretensin simple y doble
definidos en el estndar IEEE .
28
Tabla II
Tipo de datos Descripcin
General Posiciones de byte, de palabra( 16 bits), de palabra
doble y cudruple, con contenido binario arbitrario
Entero Un valor binario con signo contenido en un byte, una
palabra o una palabra doble, representado en
complemanto a dos
Ordinal Un entero con signo contenido en un byte, una
palabra o una palabra doble
Decimal codificado en binario (BCD) Representacin de un dgito BCD en el rango de 0 a
desempaquetado 9, con un dgito en cada byte
BCD empaquetado Representacin empaquetada de dos dgitos BCD en
un byte; valor en el rango de 0 a 99
Puntero de proximidad Una direccin efectiva de 32 bits que representa el
(Puntero cercano) desplazamiento dentro de un segmento. Utilizado
para todos los punteros en una memoria no
segmentado y para referencias dentro de un
segmento en una memoria segmentado.
Campo de bits Una secuencia contigua de bits en la que cada
posicin de bit se considera como unidad
independiente. Una cadena de bits puede comenzar
en cualquier posicin de cualquier byte y puede
contener hasta 232-1 bits
Cadena de bytes Una secuencia contigua de bytes, de palabras, o de
palabras dobles, que contiene de 0 hasta 232-1 bytes
Coma flotante Enteros de una palabra con 16 bits de precisin,
enteros cortos con precisin de 32 bits, enteros
largos con precisin de 64 bits, BCD empaquetado
de dieciocho dgitos de precisin, precisin simples
de 24 bits de precisin doble precisin de 3 bits y
precisin ampliada con precisin de 64 bits
1.4.2 Direccionamiento
Especifica el operando fuente y el operando destino. Los registros deben ser del mismo tamao.
ej. MOV DX, CX
MOV CL, DL.
B Direccionamiento inmediato
Un dato de 8 o 16 bits se especifica como parte de la instruccin. p.ej. MOV CL, 03H. Aqu el
operando fuente est en modo inmediato y el destino en modo registro.
A Direccionamiento directo
C Direccionamiento base
EA se obtiene sumando un desplazamiento (8 bits con signo o 16 bits sin signo) a los contenidos
de BX o BP. Los segmentos usados son DS y SS. Cuando la memoria es accesada, la direccin
fsica de 20 bits es calculada de BX y DS, por otra parte, cuando la pila es Accesada, la direccin
es calculada de BP y SS.
Ej. MOV AL, START (BX). el operando fuente est en modo base, y la EA se obtiene sumando
los valores de START y BX.
D Direccionamiento indexado.
EA se calcula sumando un registro base (BX o BP), un registro ndice (DI o SI), y un
desplazamiento (8 o 16 bits).
Ej. MOV ALPHA (SI)(BX),CL.
Este direccionamiento proporciona una forma conveniente para direccionar un arreglo localizado
en la pila.
31
Este modo usa registros ndice. La cadena de instrucciones automticamente asume que SI
apunta al primer byte o palabra del operando destino. Los contenidos de SI y DI son
incrementados automticamente (poniendo a 0 DF mediante la instruccin CLD) o
decrementados (poniendo a 1 DF mediante la instruccin STD) para apuntar al siguiente byte o
palabra. El segmento del operando fuente es DS y puede ser encimado.
El segmento del operando destino debe ser ES y no puede ser encimado. Ej. MOVS BYTE.