Upload
ejasmany
View
80
Download
0
Embed Size (px)
Citation preview
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 1/39
Sistemas Digitales II
Ingeniería Electrónica 3
INTRODUCCION
Los pr ocesadores de 16 bits fuer on una nueva generación de micr opr ocesadores
desarr ollados para reemplazar o completar a las micr ocomputadoras de 8 bits de los
años setenta, que fuer on las que comenzar on la revolución de las micr ocomputadoras.
El x86 fue diseñado para trabajar con lenguajes de alto nivel, disponiendo de un soporte
hardware con el que los pr ogramas escritos en dichos lenguajes ocupan un pequeño
espacio de código y pueden ejecutarse a gran velocidad. Esta concepción, orientada al
uso de compiladores, se materializa en un conjunto de facilidades y recursos, y en unas
instrucciones entre las que cabe destacar las que permiten efectuar operaciones
aritméticas de multiplicar y dividir, con y sin signo; las que manejan cadenas de
caracteres, etc.
En su momento, el 8086 junto con el x88 fuer on los micr opr ocesadores más empleados
dentr o de su categoría, especialmente desde que IBM los adoptó para la construcción de
su computadora personal. Muchos fabricantes de micr oo rdenadores utilizar on esta
familia micr ocomputadora para fabricar equipos de tipo pr ofesional. Hoy en día, la
utilización del 8086 es más reducida, quedando principalmente orientado a la
enseñanza, como base de los micr opr ocesadores de la última generación .
Antes de pasar a hacer una descripción más detallada de la arquitectura interna del
micr opr ocesador, vamos a destacar brevemente las principales características del x86:
� El x86 dispone de instrucciones especiales para el tratamiento de cadenas de
caracteres.
� Los registr os del x86 tienen una misión específica, por lo que se podría decir que
cada uno de ellos tiene su pr opia personalidad, aunque varios comparten tareas
comunes.
� El x86 dispone de un conjunto de registr os, denominados ³cola de instrucciones ´, en
el cual se van almacenando de f orma anticipada los códigos de las instrucciones,
consiguiendo que este aumente su velocidad de trabajo.
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 2/39
Sistemas Digitales II
Ingeniería Electrónica 4
LENGUAJE ENSAMBLADOR PARA PROCESADORES X86
1. MICROPROCESADORES.
El micr opr ocesador es uno de los logr os más sobresalientes del siglo XX. Per o cada año,el micr opr ocesador se acerca más al centr o de nuestras vidas, f orjándose un sitio en el
núcleo de una máquina tras otra. Su presencia ha comenzado a cambiar la f orma en que
percibimos el mundo e incluso a nosotr os mismos. Cada vez se hace más difícil pasar
por alto el micr opr ocesador como otr o simple pr oducto en una larga línea de
innovaciones tecnológicas. (Brey, 1994)
1.1. PROCESADOR.
La unidad de pr ocesamiento central (CPU) es donde se manipulan los datos. En una
micr ocomputadora, el CPU completo está contenido en un chip muy pequeño llamado
micr opr ocesador. Todas las CPU tienen por lo menos dos partes básicas, la unidad de
contr ol y la unidad aritméticológica. Todos los recursos de la computadora son
administrados desde la unidad de contr ol, cuya función es coordinar todas las
actividades de la computadora. La unidad de contr ol contiene las instrucciones de la
CPU para llevar a cabo comandos. El conjunto de instrucciones, que está incluido
dentr o de los circuitos de la unidad de contr ol, es una lista de todas las operaciones
que realiza la CPU. Cada instrucción en el conjunto de instrucciones es acompañada
por un micr ocódigo, que son instrucciones muy básicas que le dicen a la CPU cómo
ejecutar las instrucciones. Cuando la computadora corre un pr ograma, busca los
comandos del pr ograma dentr o del conjunto de instrucciones de la CPU y las ejecuta
en orden. La unidad aritmético-lógica (ALU) es cuando la unidad de contr ol encuentra
una instrucción que involucra aritmética o lógica, le pasa el contr ol al segundo
componente de la CPU. La ALU incluye un grupo de registr os, es decir, memoria
construida directamente en la CPU que se usa para guardar datos que están siendo
pr ocesados por la instrucción actual. (Hayes, 1996)
La CPU de una computadora contiene la inteligencia de la máquina; es donde se
realizan los cálculos y las decisiones. El complejo pr ocedimiento que transf orma datos
nuevos de entrada en inf ormación útil de salida se llama pr ocesamiento. Para llevar a
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 3/39
Sistemas Digitales II
Ingeniería Electrónica 5
cabo esta transf ormación, la computadora usa dos componentes: el pr ocesador y la
memoria. El pr ocesador es el cerebr o de la computadora, la parte que interpreta y
ejecuta las instrucciones. El pr ocesador casi siempre se compone de varios circuitos
integrados o chips, estos están insertados en tarjetas de circuitos, módulos rígidos
rectangulares con circuitos que los unen a otr os chips y a otras tarjetas de circuitos.
El micr opr ocesador moderno contiene unos 20 millones de transistores y cada chip
terminado es el pr oducto de pr ocesos más complicados que los que se utilizar on en el
Pr oyecto Manhattan para construir la bomba atómica. Y no obstante, pese a un
pr oceso de manufactura extraordinariamente refinado, los micr ochips se pr oducen en
volumen a razón de más de 1,000 millones de unidades por año. Para poner esta
complejidad en perspectiva, imagínese que dentr o de cada micr opr ocesador diminuto
existe una estructura tan compleja como una ciudad de tamaño mediano, incluidastodas sus líneas de energía eléctrica, líneas telefónicas, líneas de drenaje, edificios,
calles y casas. Ahora imagine que en esa misma ciudad, millones de personas se
desplazan a la velocidad de la luz y con la sincr onización perfecta en una danza de
coreografía muy complicada. (Brey, 1994)
Y eso es tan sólo un chip. De todas las estadísticas asombr osas que se utilizan para
describir el mundo del micr opr ocesador, ninguna es más extraordinaria que ésta: el
númer o total de transistores que integran todos los micr ochips que se pr oducirán en el
mundo este año es equivalente al númer o de gotas de lluvia que caerán en Calif ornia
durante ese mismo periodo. (Hayes, 1996)
1.2. HISTORIA DEL LOS PROCESADORES.
Los micr opr ocesadores modernos están integrados por millones de transistores y
otr os componentes empaquetados en una cápsula cuyo tamaño varía según las
necesidades de las aplicaciones a las que van dirigidas, y que van desde el tamaño
de un grano de lenteja hasta el de casi una galleta. Las partes lógicas que componen
un micr opr ocesador son, entre otras: unidad aritmético -lógica, registr os de
almacenamiento, unidad de contr ol, Unidad de ejecución, memoria caché y buses de
datos contr ol y dirección. (Ledesma, 2001)
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 4/39
Sistemas Digitales II
Ingeniería Electrónica 6
Existen una serie de fabricantes de micr opr ocesadores, como IBM, Intel, Zilog,
Motor ola, Cyrix y AMD. A lo largo de la historia y desde su desarr ollo inicial, los
micr opr ocesadores han mejorado enormemente su capacidad, desde los viejos Intel
8080, Zilog Z80 o Motor ola 6809, hasta los recientes Intel Core 2 Duo, Intel Core 2
Quad, Intel Xeon, Intel Itanium II, Transmeta Efficeon o Cell.
Ahora los nuevos micr opr ocesadores pueden tratar instrucciones de hasta 256 bits,
habiendo pasado por los de 128, 64, 32, 16, 8 y 4 bits. Desde la aparición de l os
primer os computadores en los años cuarenta del siglo XX. (Stallings, 1998)
1.2.1 Antecedentes.
Entre estas evoluciones podemos destacar estos hitos:
y ENIAC (Electr onic Numeric Integrator And Calculator) Fue un computador con
pr ocesador multiciclo de pr ogramación cableada, esto es, la memoria contenía
sólo los datos y no los pr ogramas. ENIAC fue el primer computador, que
funcionaba según una técnica a la que posteriormente se dio el nombre de
monociclo.
y EDVAC (Electr onic Discrete Variable Automatic Computer) fue la primera
máquina de Von Neumann, esto es, la primera máquina que contiene datos y
pr ogramas en la misma memoria. Fue el primer pr ocesador mult iciclo.
y El IBM 7030 (apodado Stretch) fue el primer computador con pr ocesador
segmentado. La segmentación siempre ha sido fundamental en Arquitectura de
Computadores desde entonces.
y El IBM 360/91 supuso grandes avances en la arquitectura segmentada,
intr oduciendo la detección dinámica de riesgos de memoria, la anticipación
generalizada y las estaciones de reserva.
y El CDC 6600 fue otr o importante computador de micr opr ocesador segmentado,
al que se considera el primer supercomputador.
y �El último gran hito de la Arquitectura de Computadores fue la segmentación
superescalar, pr opuesta por John Cocke, que consiste en ejecutar muchas
instrucciones a la vez en el mismo micr opr ocesador. Los primer os pr ocesadores
superescalares fuer on los IBM Power -1.
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 5/39
Sistemas Digitales II
Ingeniería Electrónica 7
1.2.2. Avances
Hay que destacar que los grandes avances en la construcción de
micr opr ocesadores se deben más a la Arquitectura de Computadores que a la
miniaturización electrónica. El micr opr ocesador se compone de muchoscomponentes. En los primer os pr ocesadores gran parte de estos estaban ociosos el
90% del tiempo. (Brey, 1994)
Sin embargo hoy en día los componentes están repetidos una o más veces en el
mismo micr opr ocesador, y los cauces están hechos de f orma que siempre están
todos los componentes trabajando. Por eso los micr opr ocesadores son tan rápidos
y tan pr oductivos. Esta pr oductividad tan desmesurada, junto con el gran númer o
de transistores por micr opr ocesador (debido en parte al uso de memorias caché) eslo que hace que se necesiten los inmensos sistemas de refrigeración que se usan
hoy en día. Inmensos en comparación con el micr opr ocesador, que habitualmente
consiste en una cajita de 2 centímetr os de largo y de ancho por 1 milímetr o de
altura, cuando los refrigeradores suelen tener volúmenes de al meno s 5
centímetr os cúbicos. (Brey, 1994)
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 6/39
Sistemas Digitales II
Ingeniería Electrónica 8
2. ARQUITECTURA DEL PROCESADOR X86
2.1. CONCEPTOS GENERALES.
El x86 es la denominación genérica dada a ciertos micr opr ocesadores de la familiaIntel, sus compatibles y la arquitectura básica a la que estos pr ocesadores
pertenecen, por la terminación de sus nombres numéricos: 8086, 80286, 80386,
80486, etc. Son comúnmente conocidos por versiones abreviadas de sus nombres,
como 286 ó i286, 386 ó i386, 486 ó i486, e incluso 086, por i8086 o i8088 (su
respectiva versión de 8 bits). A partir del i486, sus sucesores serán conocidos por los
nombres no numéricos referentes a la marca, logotipo o nombre clave con los que
fuer on lanzados al mercado, y se les comercializó (a menudo seguido de su
frecuencia, en mega hertzios, de ciclos de relo j), como los Pentium (y Pentium MMX),o los K5, para el 80586 (ó i586), en sus respectivas versiones de Intel y AMD; los
Pentium Pr o, Pentium II, Pentium III y K6, así como los 6x86, de Cyrix, para el 80686
(ó i686); ó los Pentium 4, Pentium D y K7 (Athlon, Athlon XP, Dur on y Sempr on), para
los 80686 de séptima generación. (Brey, 1994)
Con la octava generación de pr ocesadores compatibles x86, los x86 -64, que utilizan
arquitectura y bus de 64 bits, con posibilidad de múltiples núcleos, intr oducida por
AMD y clonada por Intel, se intr oducen por primera vez nuevas variantes y f ormas, en
lo que a la denominación y clasificación del pr ocesador se refiere, tales como el
nombre comercial ó tecnología del modelo, la compañía fabricante, su númer o de
serie, la cantidad de bits a la que puede trabajar o la cantidad de núcleos por los que
está compuesto, por ejemplo: Intel Core 2 Duo E2180, o lo que es lo mismo, i686 ó
Intel Pentium de doble núcleo E2180, de 64 bits y de 1,6 a 2,0 Ghz; ó AMD Athlon 64
X2, es decir, un AMD 64 bits, Athlon X de doble núcleo a 2 Ghz; todos ellos
englobados bajo el denominador común x86-64, y compatibles con subarquitecturas
anteriores de 32, 16 y 8 bits, de la familia de pr ocesadores x86 de Intel, y compati bles.
La comercial popularidad de esta arquitectura hizo que muchos fabricantes, además
de Intel, empezaran a fabricar en masa micr opr ocesadores basados en esta
arquitectura. Estas compañías son entre otras AMD, Cyrix, NEC Corporation y
Transmeta. (Tokheim, 2006)
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 7/39
Sistemas Digitales II
Ingeniería Electrónica 9
La arquitectura es notablemente no limpia, por mantener compatibilidad con la línea
de pr ocesadores de 16 bits de Intel, que a su vez también eran compatibles con una
familia de pr ocesadores de 8 bits. Existen dos sucesores de 64 bits para esta
arquitectura. (Hayes, 1996)
Técnicamente, la arquitectura es denominada IA32 (Intel Architecture 32 bits). Está
basada en un modelo de arquitectura CISC (del inglés Complex Instruction Set
Computing).
2.1.1. Diseño de microcomputadoras básica.
La figura 1-1 muestra el diseño básico de una micr ocomputadora hipotético. Launidad central de pr ocesamiento (CPU), es el lugar donde los cálculos y las
operaciones lógicas, contiene un númer o limitado de lugares de almacenamiento
llamado registr os, un relo j de alta frecuencia, una unidad de contr ol, y una unidad
aritmética lógica. (Stallings, 1998)
y El relo j se sincr oniza las operaciones internas de la CPU con otr os componentes
del sistema.
y La unidad de contr ol (CU) coordina la secuencia de pasos necesarios para la
ejecución de instrucciones de la máquina.
y La unidad aritmética lógica (ALU) realiza las operaciones aritméticas, como
sumas y restas y operaciones lógicas como AND, OR y NOT.
La CPU está conectado al resto del equipo a través de pines conectado al zócalo
de la CPU en la placa base del ordenador. Mayoría de los pines se conectan al bus
de datos, el bus de contr ol, y el bus de direcciones. (Hayes, 1996)
La unidad de almacenamiento de memoria es que las instrucciones y los datos se
llevan a cabo al mismo tiempo un pr ograma de ordenador está funcionando. La
unidad de almacenamiento recibe las solicitudes de datos de la CPU, la
transferencia de datos de la memoria de acceso aleatorio (RAM) a la CPU, y las
transferencias de datos de la CPU en la memoria. El tratamiento de los datos se
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 8/39
Sistemas Digitales II
Ingeniería Electrónica 10
lleva a cabo dentr o de la CPU, por lo que los pr ogramas que residen en la memoria
deben ser copiados en la CPU antes de que puedan ejecutar. Instrucciones de los
pr ogramas individuales se pueden copiar en la CPU a la vez, o grupos de
instrucciones pueden ser copiados juntos. (Ledesma, 2001)
Un bus es un grupo de alambres paralelos que la transferencia de datos de una
parte de la computadora a otra. Un sistema de ordenador por lo general contiene
cuatr o tipos de bus: datos de I/O, contr ol y dirección. (Ledesma, 2001)
Figura 1-1: Diagrama de bloques de un microordenador.
El bus de datos transfiere las instrucciones y datos entre la CPU y la memoria. La
I/O de las transferencias de bus de datos entre la CPU y los dispositivos del
sistema de entrada/salida. El bus de contr ol utiliza señales binarias para sincr onizar
las acciones de todos los dispositivos conectados al bus del sistema. El bus de
direcciones tiene las direcciones de instrucciones y datos cuando la instrucción se
está ejecutando la transferencia de datos entre la CPU y la memoria. (Hayes, 1986)
Relo j cada operación que implique la CPU y el bus del sistema se sincr oniza con un
relo j interno de pulso a un ritmo constante. La unidad básica de tiempo para ver lasinstrucciones de la máquina es un ciclo de la máquina (o ciclo de relo j). La duración
de un ciclo de relo j es el tiempo requerido para completar un pulso de relo j. En la
siguiente figura, un ciclo de relo j se muestra como el tiempo entre un flanco de
bajada y la siguiente:
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 9/39
Sistemas Digitales II
Ingeniería Electrónica 11
La duración de un ciclo de relo j se calcula como la inversa de la velocidad del relo j,que a su vez se mide en oscilaciones por segundo. Un relo j que oscila mil millones
de veces por segundo (1GHz), por ejemplo, pr oduce un ciclo de relo j, con una
duración de una mil millonésima de segundo (1 nanosegundo). (Tokheim, 2006)
Una instrucción de máquina requiere al menos un ciclo de relo j para ejecutar, y
algunos requieren de más de 50 relo jes (la instrucción de multiplicación en el
pr ocesador 8088, por ejemplo). Instrucciones que requieren acceso a la memoria a
menudo tienen ciclos de relo j de vacío llamado estados de espera debido a las
diferencias en la velocidad de la CPU, el bus del sistema, y los circuitos de
memoria. (Tokheim, 2006)
2.1.2. Instrucción del ciclo de ejecución.
La ejecución de una instrucción de máquina se puede dividir en una secuencia de
operaciones concretas, llamado el ciclo de ejecución de la instrucción. Antes de
ejecutar un pr ograma se carga en memoria. El punter o de la instrucción contiene la
dirección de la siguiente instrucción. La cola de instrucción tiene un grupo de
instrucciones a punto de ser ejecutado. La ejecución de una instrucción de máquina
requiere tres pasos básicos: Obtener, decodificar y ejecutar. Dos pasos más son
necesarios cuando la instrucción utiliza un operando de memoria: buscar operando
y operando de salida tienda. Cada uno de los pasos que se describen a
continuación:
y Fetch: La unidad de contr ol obtiene la siguiente instrucción de la cola de
instrucciones e incrementa el punter o de instrucción (IP). La IP también se
conoce como el contador de pr ograma.
y Decodificar: La unidad de contr ol decodifica la función de la instrucción para
determinar lo que la instrucción va a hacer. Los operandos de la instrucción de
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 10/39
Sistemas Digitales II
Ingeniería Electrónica 12
entrada se pasa a la ALU, y las señales se envían a la ALU que indica la
operación a realizar.
y Recuperar los operandos: Si la instrucción utiliza un operando de entrada
situada en la memoria, la unidad de contr ol utiliza una operación de lectura para
recuperar el operando y copiarlo en registr os internos. Registr os internos no sonvisibles para los pr ogramas de usuario.
y Ejecutar: La ALU ejecuta la instrucción con los registr os de llamada y registr os
internos como operandos y envía el resultado a los registr os de nombre y/o
memoria. El estado de ALU actualizaciones banderas pr oporcionar inf ormación
sobre el estado del pr ocesador.
y El operando de salida de la tienda: Si el operando de salida está en la memoria,
la unidad de contr ol utiliza una operación de escritura para almacenar los datos.
La secuencia de pasos se puede expresar de f orma ordenada en pseudocódigo:
loop
fetch next instruction
advance the instruction pointer (IP)
decode the instruction
if memory operand needed, read value from memory
execute the instruction
if result is memory operand, write result to memory
continue loop
Un diagrama de bloques que muestra el flujo de datos dentr o de una CPU típica se
muestra en la figura 1-2. El diagrama ayuda a mostrar las relaciones entre los
componentes que interactúan durante el ciclo de ejecución de la instrucción. Para
leer las instrucciones del pr ograma de la memoria, la dirección se coloca en el bus
de direcciones. A continuación, el contr olador de memoria coloca el código de
pedido en el bus de datos, por lo que el código esté disponible dentr o de la
memoria caché de código. El valor del punter o de instrucción determina que la
instrucción se ejecutará a continuación. La instrucción es analizada por el
decodificador de instrucciones, haciendo que las señales digitales adecuadas para
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 11/39
Sistemas Digitales II
Ingeniería Electrónica 13
ser enviada a la unidad de contr ol, que coordina la ALU y la unidad de coma
flotante. (Hayes, 1986)
Aunque el bus de contr ol no se muestra en esta figura, que lleva las señales que
utilizan el relo j del sistema para coordinar la transferencia de datos entre loscomponentes del CPU. (Tokheim, 2006)
Figura 1-2: Diagrama de bloques simplificado de la CPU.
2.1.3. Lectura de la memoria.
El rendimiento del pr ograma es a menudo depende de la velocidad de acceso a la
memoria. Velocidad de relo j de la CPU pueden ser varios gigahertz, mientras que el
acceso a la memoria se pr oduce en un bus de sistema funciona a una velocidad
mucho más lenta. El pr ocesador debe esperar uno o más ciclos de relo j hasta
operandos han sido extraídas de la memoria antes de la instrucción actual puede
completar su ejecución. Los ciclos de relo j perdido se llaman estados de espera.
Varios pasos son necesarios cuando la lectura de las instrucciones o los datos de la
memoria, contr olados por el relo j interno del pr ocesador. La figura 1-3 muestra el
relo j del pr ocesador (CLK) subiendo y bajando a intervalos de tiempo regulares. En
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 12/39
Sistemas Digitales II
Ingeniería Electrónica 14
la figura, un ciclo de relo j comienza a medida que cambia la señal de relo j de alta a
baja. Los cambios se llaman borde de salida, e indican el tiempo que tarda la
transición entre estados. (Tokheim, 2006)
Figura 1-3: Ciclo de lectura de memoria.
La siguiente es una descripción simplificada de lo que sucede durante cada ciclo de
relo j durante una lectura de memoria:
y Ciclo 1: Los bits de la dirección del operando en memoria se colocan en el bus
de direcciones (ADDR). En el diagrama las líneas de dirección en cruz, muestra
que algunos bits son iguales a 1 y los demás son iguales a 0.
y Ciclo 2: La línea de lectura (RD) se encuentra bajo (0) para notificar a la
memoria que un valor se va a leer.
y Ciclo 3: La CPU espera un ciclo para dar tiempo a la memoria para responder.
Durante este ciclo, el contr olador de memoria los lugares del operando en el bus
de datos (DATA).
y Ciclo 4: La línea de lectura pasa a 1, lo que indica que la CPU para leer los
datos en el bus de dat
os.
Las memoria caché, debido a la memoria convencional es mucho más lenta que la
CPU, uso de computadoras de alta velocidad de la memoria caché para mantener
las instrucciones más utilizadas recientemente y los datos. La primera vez que un
pr ograma lee un bloque de datos, se deja una copia en el caché. Si el pr ograma
tiene que leer los mismos datos una segunda vez, busca los datos en la caché. Un
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 13/39
Sistemas Digitales II
Ingeniería Electrónica 15
acierto de caché indica que los datos están en caché, un err or de caché indica que
los datos no están en caché y debe leerse desde la memoria convencional. En
general, la memoria caché tiene un efecto notable en la mejora del acceso a los
datos, especialmente cuando la memoria caché es grande. (Stallings, 1998)
2.1.4. E jecución de programas.
- Cargar y ejecutar procesos.
Los pasos siguientes se describen, en secuencia, lo que sucede cuando un usuario
de la computadora tiene un pr ograma en un símbolo del sistema:
y El sistema operativo (OS) busca el nombre del archivo del pr ograma en eldirectorio actual del disco. Si no puede encontrar el nombre no, busca en una
lista predeterminada de los directorios (llamados caminos) para el nombre del
archivo. Si el sistema operativo no puede encontrar el nombre del pr ograma,
que emite un mensaje de err or.
y Si el archivo de pr ograma se encuentra, el sistema operativo recupera la
inf ormación básica sobre el archivo del pr ograma desde el directorio del disco,
incluyendo el tamaño del archivo y su ubicación física en la unidad de disco.
y El sistema operativo determina la siguiente ubicación disponible en la memoria y
carga el archivo de pr ograma en la memoria. Se asigna un bloque de memoria
para el pr ograma y entra en la inf ormación sobre el tamaño del pr ograma y la
ubicación en una tabla (a veces llamada tabla d e descriptores). Además, el
sistema operativo puede ajustar los valores de los punter os dentr o del pr ograma
por lo que contienen las direcciones de los datos del pr ograma.
y El sistema operativo se inicia la ejecución de las instrucciones del pr ograma de
la primera máquina. Tan pr onto como el pr ograma comienza a funcionar, se
llama un pr oceso. El sistema operativo asigna el pr oceso de un númer o de
identificación (ID del pr oceso), que se utiliza para realizar un seguimiento al
correr.
y El pr oceso se ejecuta por sí mismo. Es el trabajo del sistema operativo para
realizar el seguimiento de la ejecución del pr oceso y de responder a las
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 14/39
Sistemas Digitales II
Ingeniería Electrónica 16
solicitudes de recursos del sistema. Ejemplos de recursos son la memoria, el
disco los archivos y dispositivos de entrada-salida.
y Cuando el pr oceso termina, se elimina de la memoria.
2.2. DETALLES DE LA ARQUITECTURA X86
En esta sección, nos centramos en las características básicas de arquitectura de la
familia de pr ocesadores x86, que incluye los pr ocesadores AMD de Intel IA-32 y 32
bits. (Tokheim, 2006)
2.2.1. Modos de operación.
Los pr ocesadores x86 tienen tres modos principales de funcionamiento: modo pr otegido, el modo de dirección real, y el modo de gestión del sistema. A modo de
sub-, llamado virtuales-8086, es un caso especial de modo pr otegido. Aquí hay una
breve descripción de cada uno:
El modo pr otegido de modo pr otegido es el estado natal del pr ocesador, en el que
todas las instrucciones y las funciones están disponibles. Pr ogramas que se
ofrecen áreas separadas de memoria el nombre segmentos, y el pr ocesador evita
que los pr ogramas de referencia de memoria fuera de sus segmentos asignados.
Virtual 8086 mientras que en modo pr otegido, el pr ocesador puede ejecutar
directamente la dirección real de software, tales como el modo de MS-DOS los
pr ogramas en un entorno segur o multitarea. En otras palabras, si un pr ograma se
bloquea de MS-DOS o los intentos de escribir datos en el área de memoria del
sistema, no afectará a los pr ogramas que se ejecutan al mismo tiempo. Windows
XP puede ejecutar múltiples virtual diferente -8086 sesiones al mismo tiempo.
Dirección real de modo real el modo de abordar implementa el entorno de
pr ogramación del pr ocesador Intel 8086 con algunas características adicionales,
tales como la capacidad de cambiar a otr os modos. Este modo está disponible en
Windows 98, y se puede utilizar para ejecutar un pr ograma de MS -DOS que
requiere el acceso directo a la memoria del sistema y dispositivos de hardware.
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 15/39
Sistemas Digitales II
Ingeniería Electrónica 17
Pr ogramas que se ejecutan en modo real, la dirección puede hacer que el sistema
operativo se bloquee (deje de responder a los comandos). (Hayes, 1996)
Sistema de gestión de modo de sistema modo de gestión (SMM) ofrece un sistema
operativo con un mecanismo para la implementación de funciones tales como administración de energía y la seguridad del sistema. Estas funciones se
implementan normalmente por los fabricantes de ordenadores que personalizar el
pr ocesador para una configuración específica del sistema. (Tokheim, 2006)
2.2.2. Entorno de ejecución básica.
De 32 bits en modo pr otegido, una tarea o un pr ograma puede abordar un espacio
de direcciones lineales de hasta 4GBytes. Comenzando con el pr ocesador P6, unatécnica llamada extendido de direccionamiento físico permite que un total de
64GBytes de memoria física que deben abordarse. La dirección real de los
pr ogramas de modo, por el contrario, sólo se puede abordar una serie de 1MB. Si el
pr ocesador está en modo pr otegido y ejecutar múltiples pr ogramas en virtual -8086,
cada pr ograma tiene su pr opio 1MByte área de memoria. (Ledesma, 2001)
- Ejecución del programa básico Registros
Los registr os son de alta velocidad ubicaciones de almacenamiento directamente
dentr o de la CPU, diseñados para ser accesibles a una velocidad mucho mayor que
la memoria convencional. Cuando un circuito de pr ocesamiento se ha optimizado
para la velocidad, por ejemplo, contadores de bucle se llevan a cabo en los
registr os en vez de variables. La Figura 1 -5 muestra los registr os básicos del
pr ograma de ejecución. Hay ocho registr os de pr opósito general, seis registr os de
segmento, un estado del pr ocesador registr o de banderas (EFL AGS), y un punter o
de instrucción (EIP).
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 16/39
Sistemas Digitales II
Ingeniería Electrónica 18
Figura 1-5: Ejecución del Programa Básico registros.
Registr os de pr opósito general, los registr os de pr opósito general se utilizan
principalmente para la aritmética y el movimiento de datos. Como se muestra en la
Figura 1-6, los 16 bits inferiores del registr o EAX se puede hacer referencia por el
nombre de AX. (Hayes, 1996)
Figura 1-6: Registros de propósito general.
Las porciones de algunos registr os pueden ser abordados como valores de 8-bits.
Por ejemplo, el registr o AX, tiene un AH superior de 8-bits llamado medio y una
media de 8-bits llamado al menor. La misma relación existe superposición de EAX,
EBX, ECX, EDX y registr os:
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 17/39
Sistemas Digitales II
Ingeniería Electrónica 19
El resto de registr os de pr opósito general sólo se puede acceder utilizando los
nombres de 32-bit o 16-bit, como se muestra en la siguiente tabla:
Especializados Usos Algunos registr os de pr opósito general tienen usos
especializados:
y EAX se utiliza automáticamente por la multiplicación y la división de las
instrucciones. A menudo se llama el pr olongado registr o acumulador.y La CPU utiliza automáticamente ECX como contador de bucle.
y ESP direcciones de datos en la pila (una estructura de memoria del sistema).
Rara vez se utiliza para la aritmética ordinaria o de transferencia de datos. A
menudo se llama el punter o de pila extendida registr o.
y ESI y EDI son utilizados por las instrucciones de alta velocidad de transferencia
de la memoria. A veces se llama el índice fuente extendida y registr os
extendidos destino índice.
y EBP es usado por lenguajes de alto nivel para hacer referencia a parámetr os de
la función y las variables locales en la pila. No se debe utilizar para la aritmética
ordinaria o de transferencia de datos, excepto en un nivel avanzado de la
pr ogramación. A menudo se llama el punter o de marco ampliado de registr o.
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 18/39
Sistemas Digitales II
Ingeniería Electrónica 20
En los registr os de segmento real dirección de modo de 16bits, los registr os de
segmento indican las direcciones de base de las áreas de memoria pre asignada
nombre segmentos. En modo pr otegido, los registr os de segmento tienen punter os
a las tablas de descriptor de segmento. Algunos segmentos tienen instrucciones del
pr ograma (código), otr os sostienen variables (datos), y otr o segmento llamado elsegmento de pila contiene las variables locales de funciones y parámetr os de la
función. (Ledesma, 2001)
El punter o de instrucción EIP, o punter o de instrucción, el registr o contiene la
dirección de la siguiente instrucción a ejecutar. Ciertas instrucciones máquina
manipular EIP, haciendo que el pr ograma para pasar a una nueva ubicación.
El Registr o EFL AGS (o simplemente Banderas) registrar consta de bits binariosindividuales que contr olan el funcionamiento de la CPU o reflejar el resultado de
una operación de la CPU. Algunas instrucciones de la prueba y manipular
indicadores individuales del pr ocesador. (Ledesma, 2001)
Indicadores de contr ol de indicadores de contr ol de contr ol de operaciones de la
CPU. Por ejemplo, puede hacer que la CPU de descanso después de cada
instrucción se ejecuta, la interrupción de desbordamiento aritmético cuando se
detecta, entrar en el modo virtual 8086, y entrar en modo pr otegido. Los pr ogramas
se pueden establecer los bits individuales en el EFL AGS registr o para contr olar el
funcionamiento de la CPU. (Brey, 1994)
- Ejemplos de ello son la Dirección y las banderas de interrupción.
Banderas estado de los indicadores de estado reflejan los resultados de las
operaciones lógicas y aritméticas realizadas por la CPU. Ellos son el
desbordamiento, signo, Llevar a cer o, auxiliar, paridad, y llevar las banderas.
Sus siglas se presentan inmediatamente después de sus nombres:
y La bandera de acarreo (CF) se establece cuando el resultado de una operación
aritmética sin signo es demasiado grande para caber en el destino.
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 19/39
Sistemas Digitales II
Ingeniería Electrónica 21
y La bandera de desbordamiento (OF) se establece cuando el resultado de una
operación aritmética con signo es demasiado grande o demasiado pequeño
como para caber en el destino.
y La bandera de signo (SF) se establece cuando el resultado de una operación
aritmética o lógica genera un resultado negativo.y La bandera de cer o (ZF) se establece cuando el resultado de una operación
aritmética o lógica genera un resultado de cer o.
y La bandera de acarreo auxiliar (AC) se establece cuando una operación
aritmética causa un acarreo del bit 3 al bit 4 en un operando de 8 bits.
y La bandera de paridad (PF) se establece si el byte menos significativo en el
resultado contiene un númer o par de bits 1. De lo contrario, PF es clara. En
general, se utiliza para la compr obación de err ores cuando hay una posibilidad
de que los datos pueden ser alterados o dañados. (Stallings, 1998)
- MMX Registros
Tecnología MMX se añadió en el pr ocesador Pentium de Intel para mejorar el
rendimiento de multimedia y aplicaciones avanzadas de comunicaciones. Las ocho
de 64 bits MMX registr os apoyo instrucciones especiales llamadas SIMD (Single-
instrucción, múltiples datos). Como su nombre indica, las instrucciones MMX
funcionar en paralelo en los valores de los datos contenidos en los registr os MMX.
A pesar de que parecen ser registr os separados, los nombres de MMX registrarse
en los alias de hecho a los mismos registr os utilizados por la unidad de coma
flotante. (Tokheim, 2006)
- XMM Registros
La arquitectura x86 también contiene ocho de 128-bit registr os llamados registr os
XMM. Son utilizadas por extensiones streaming SIMD para el conjunto de
instrucciones. (Tokheim, 2006)
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 20/39
Sistemas Digitales II
Ingeniería Electrónica 22
2.2.3. Unidad de coma flotante.
La unidad de coma flotante (FPU) de alta velocidad realiza aritmética de punto
flotante. Hubo un tiempo en un chip copr ocesador separado se requiere para ello. A
partir de la Intel486, la FPU se ha integrado en el chip del pr ocesador principal. Hayocho en punto flotante registr os de datos en la FPU, llamado ST (0), ST (1), ST (2),
ST (3), ST (4), ST (5), ST (6), y ST (7). Los registr os restantes de contr ol y el
punter o se muestran en la figura 1-7. (Ledesma, 2001)
2.2.4. Descripción de los microprocesadores Intel
Vamos a hacer un pequeño viaje al pasado, a partir de cuando el IBM-PC fue
lanzado por primera vez, cuando el equipo tenía 64Kbytes de RAM y sin disco dur o.
Figura 1-7: Registros de coma flotante de la unidad.
Cuando se habla de la evolución del pr ocesador, las referencias al tamaño del bus
de datos son importantes porque afectan el rendimiento del sistema. Cuando un
pr ocesador utiliza un bus de 8 bits de datos para transferir un númer o enter o de 32
bits en la memoria, por ejemplo, el enter o debe ser dividida en cuatr o partes, y
cuatr o operaciones de transferencia de datos son necesarios para completar la
operación. Teniendo en cuenta que hay un retraso significativo (llamado latencia)
que participan en cada operación de transferencia de datos, uno de 8-bit bus de
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 21/39
Sistemas Digitales II
Ingeniería Electrónica 23
datos transfiere datos a un cuarto de la velocidad de un bus de 32 bits de datos. El
Intel 8086 pr ocesadores (1978) marcó el inicio de la familia moderna arquitectura
Intel. Las innovaciones principales del 8086 respecto a los pr ocesadores anteriores
eran que tenía registr os de 16 bits y un bus de 16 bits de dat os y se utiliza un
modelo de memoria segmentada que permita pr ogramas para atender hasta 1 MBde memoria RAM. Un mayor acceso a la memoria hizo posible la escritura de
aplicaciones de negocio complejas. El IBM-PC (1980) contiene un pr ocesador Intel
8088, que era idéntica a la del 8086, excepto que había un bus de 8 bits de datos
que lo hizo un poco menos car o de pr oducir. Hoy, el Intel 8088 se utiliza en
micr ocontr oladores de bajo costo. (Ledesma, 2001)
Intel 80286 el pr ocesador Intel 80286, usado por primera vez en el ordenador IBM-
PC/AT, establece un nuevo estándar de velocidad y potencia. Fue el primer pr ocesador de Intel para ejecutar en modo pr otegido. Los 80.286 direcciones de
hasta 16Mbytes de RAM con un bus de direcciones de 24 bits. (Hayes, 1996)
IA-32 familia de pr ocesadores (x86). El pr ocesador Intel 80386 (1985) presentó
registr os de 32 bits de datos y un bus de direcciones de 32 bits y la ruta de datos
externos. En este caso, podemos distinguir entre una ruta de datos interna, que es
un autobús que se mueve datos dentr o del pr ocesador, y una ruta de datos externa,
que es el autobús que se mueve datos desde y hacia la memoria y los dispositivos
de I/O. Como tal, fue el primer miembr o de la familia IA-32. IA-32 pr ocesadores
pueden dirección de memoria virtual más grande que la memoria física del equipo.
Cada pr ograma se le asigna una de 4Gbytes (gigabytes) de espacio de direcciones
lineales. (Brey, 1994)
Intel i486 Continuando con la familia IA-32, el pr ocesador Intel i486 (1989) aparece
una micr o arquitectura conjunto de instrucciones mediante técnicas de
segmentación que permiten múltiples instrucciones a pr ocesar al mismo tiempo.
Pentium El pr ocesador Intel Pentium (1993) añade muchas mejoras de rendimiento,
incluyendo un diseño superescalar con dos tuberías de ejecución en paralelo. Dos
instrucciones puede ser decodificada y ejecutada de f orma simultánea. El Pentium
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 22/39
Sistemas Digitales II
Ingeniería Electrónica 24
usa un bus de direcciones de 32 bits y una trayectoria de 64 bits de datos internas
(dentr o del pr opio pr ocesador), e intr odujo la tecnología MMX a la familia IA-32.
- Procesadores Intel
Dentr o de la familia de los pr ocesadores que Intel ha fabricado a lo largo de su
historia están los pr ocesadores x86, entre los cuales podemos mencionar los 286,
386, 486, 586, 686. (Tokheim, 2006)
La velocidad de los pr ocesadores se mide en megahertz (MHz =Millones de ciclos
por segundo).
Este parámetr o indica el númer o de ciclos de instrucciones que el pr ocesador
realiza por segundo, per o sólo sirve para compararlo con pr ocesadores del mismo
tipo. (Tokheim, 2006)
Parámetr os significativos de un pr ocesador son su ancho de bus, medido en bits y
la frecuencia de relo j a la que trabajan, medida en hertzios, tamaño de memoria
caché medido en Kb (kilobytes). (Tokheim, 2006)
- X86 (Intel Core Duo)
Per o la verdadera revolución en los pr ocesadores Intel se pr oduce en julio de
2.006, con la salida al mercado de los Intel Core 2 Duo. (Tokheim, 2006)
Esta gama ha sido desarr ollada no solo por la presión ejercida por AMD, sino
también para poder cumplir con las especificaciones exigidas por Apple para los
Mac PC. Durante los años 2.005 y 2.006, AMD había superado nuevamente a Intel
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 23/39
Sistemas Digitales II
Ingeniería Electrónica 25
en el rendimiento de sus pr ocesadores, tanto en los pr ocesadores de un solo
núcleo como en los de doble núcleo. La respuesta de Intel llegó en el verano de
2.006, con la presentación de los Core 2 Duo. Se trata de unos pr ocesadores
basados en la arquitectura de los Pentium M, que tienen una arquitectura mucho
más eficiente que la de los Pentium 4. Como principales características, cuentancon un motor de ejecución ancho, cuatr o FPUs y tres unidades SSE de 128bits, así
como arquitectura de 64bits EM64T, tecnología de virtualización, Intel Enhanced
SpeedStep Technology, Active Management Technology (iAMT2), MMX, SSE,
SSE2, SSE3, SSSE3, y XD bit. Todos ellos con un consumo reducido (de 65
wattios). (Tokheim, 2006)
2.3. ADMINISTRACIÓN DE LA MEMORIA X86
Los pr ocesadores x86 gestionan la memoria de acuerdo a los modos de operación
básicos discutidos en la Sección 2.2.1. El modo pr otegido es el más r obusto y
poder oso, per o sí restringe los pr ogramas de aplicación de acceso directo a hardware
del sistema.
En tiempo real, dirección modo, sólo 1MByte de memoria se pueden abordar, a partir
de 00000 a hexadecimal FFFFF. El pr ocesador sólo puede ejecutar un pr ograma a la
vez, per o por un momento que puede interrumpir el pr ograma para pr ocesar las
solicitudes (denominado interrumpe) de los periféricos. Los pr ogramas de aplicación
pueden acceder a cualquier ubicación de memoria, incluidas las direcciones que están
vinculadas directamente al hardware del sistema. El sistema operativo MS -DOS se
ejecuta en modo real, dirección, y Windows 95 y 98 se puede arrancar en este modo.
En modo pr otegido, el pr ocesador puede ejecutar varios pr ogramas al mismo tiempo.
Se asigna a cada pr oceso (pr ograma en ejecución) un total de 4Gbyte de la memoria.
Cada pr ograma se le puede asignar su pr opia área de memoria reservada, y los
pr ogramas se les impiden acceder de f orma accidental de cada uno de código y datos.
MS-Windows y Linux se ejecutan en modo pr otegido. (Tokheim, 2006)
En el modo virtual 8086, el equipo funciona en modo pr otegido y crea un virtual 8086
de la máquina con su pr opio espacio de direcciones de 1Mbyte, que simula un
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 24/39
Sistemas Digitales II
Ingeniería Electrónica 26
ordenador de 80x86 se ejecuta en modo real de direcciones. Windows NT y 2000, por
ejemplo, crear una máquina virtual 8086 cuando se abre una ventana de comandos.
Puede ejecutar varios como, al mismo tiempo, y cada uno está pr otegido de las
acciones de los demás. Algunos pr ogramas de MS-DOS que hacen referencia directa
al hardware no funciona en este modo bajo Windows NT, 2000 y XP.
En las secciones 2.3.1 y 2.3.2 se explicará los detalles de ambos de modo real de
dirección y modo pr otegido. (Ledesma, 2001)
2.3.1. Modo real de dirección.
En el modo de dirección real, un pr ocesador x86 puede acceder a 1.048.576 bytes
de memoria (1 MB) con 20 bits de direcciones en el rango de 0 a FFFFFhexadecimal. Los ingenier os de Intel tuvo que resolver un pr oblema básico: Los
registr os de 16 bits en el pr ocesador Intel 8086 no pudo contener las direcciones de
20 bits. Ellos vinier on con un esquema conocido como memoria segmentada. Toda
la memoria se divide en 64 kilobytes (64KByte) unidades denominadas segmentos,
que se muestra en la figura 1-8. Una analogía es un gran edificio, en el que
representan los segmentos de pisos del edificio. Una persona puede viajar en el
ascensor hasta un piso particular, baje, y comenzar a seguir los númer os de
habitación para encontrar una habitación. El desplazamiento de una habitación se
puede considerar como la distancia desde el ascensor a la habitación.
Una vez más en la figura 1-8, cada segmento comienza en una dirección que tiene
un cer o en su último dígito hexadecimal. Debido a que el último dígito es siempre
cer o, se omite la hora de representar los valores del segmento. Un valor del
segmento de la C000, por ejemplo, se refiere al segmento en la dirección C0000.
La misma cifra que muestra una expansión del segmento en 80.000. Para llegar a
un byte en este segmento, agregar un desplazamiento de 16 bits (0 a FFFF) a la
ubicación de la base del segmento. La dirección 8000:0250, por ejemplo,
representa un desplazamiento de 250 dentr o del segmento inicial en la dirección
80000. La dirección lineal es 80250h. (Ledesma, 2001)
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 25/39
Sistemas Digitales II
Ingeniería Electrónica 27
Figura 1-8: M apa de memoria segmentada, modo real de dirección.
Cálculo lineal dirección 20 bit se refiere a una dirección de una única ubicación en
la memoria y los pr ocesadores x86 permiten a cada lugar de bytes en una dirección
independiente. El término para esto es byte direccional de memoria. En el modo de
dirección real, la lineal (o absoluta) de direcciones es de 20 bits, que van d esde 0 a
FFFFF hexadecimal. Los pr ogramas no pueden utilizar directamente las direcciones
lineales, lo que las direcciones se expresan mediante dos enter os de 16 bits. A la
dirección del segmento de compensación incluye lo siguiente:
y Un segmento de 16-bit de valor, situado en uno de los registr os de segmento
(CS, DS, ES, SS)y Un valor de desplazamiento de 16 bits
La CPU se convierte automáticamente una dirección de segmento de
compensación a una dirección lineal de 20 bits. Supongamos que una variable de la
dirección hexadecimal segmento de compensación es 08F1: 0 100. La CPU se
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 26/39
Sistemas Digitales II
Ingeniería Electrónica 28
multiplica el valor del segmento de 16 (10 hexadecimal) y añade el pr oducto a la
variable de desplazamiento:
08F 1h10 h = 08F 10 h (adjusted segment value)
Adjusted Segment value: 0 8 F 1 0 Add the offset: 0 1 0 0
Linear address: 0 9 0 1 0
Un pr ograma típico tiene tres segmentos: el código, datos y pila. Tres registr os de
segmento, CS, DS y SS, contienen puntos de los segmentos de base:
y CS contiene la dirección de código de 16 bits del segmento
y DS contiene la dirección de 16 bits de datos del segmento
y SS contiene la dirección de la pila de 16 bits del segmento
y ES, FS, y GS puede apuntar a los segmentos de datos alternativos, es decir,
segmentos que complementan el segmento de datos por defecto .
2.3.2. Modo protegido
El modo pr otegido es el más poder oso "nativo" modo del pr ocesador. Cuando se
ejecuta en modo pr otegido, el espacio de direccione s de un pr ograma lineal es de
4GBytes, el uso de direcciones de 0 a FFFFFFFF hexadecimal. En el contexto de la
Assembler de Micr osoft, el modelo de segmentación plano es apr opiado para la
pr ogramación en modo pr otegido. El modelo plano es fácil de usar, ya que requiere
un solo enter o de 32 bits para mantener la dirección de una instrucción o variable.
La CPU realiza cálculo de la dirección y la traducción en el f ondo, todos los cuales
son transparentes para los pr ogramadores de aplicaciones. Registr os de segmento
(CS, DS, SS, ES, FS, GS) apuntan a las tablas de descriptor de segmento, que el
sistema operativo utiliza para realizar un seguimiento de las ubicaciones de los
segmentos de cada pr ograma. Un típico modo pr otegido pr ograma consta de tres
segmentos: el código, datos y pila, con el CS, DS, y registr os de segmento SS:
y Referencias de CS el descriptor de la tabla para el segmento de có digo.
y Referencias de DS el descriptor de la tabla para el segmento de datos .
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 27/39
Sistemas Digitales II
Ingeniería Electrónica 29
y SS referencia a la tabla de descriptores para el segmento de pila .
- Modelo de segmentación de planos
En el modelo de segmentación de planos, todos los segmentos se asignan a la
totalidad de 32 bits espacio de direcciones físicas de la computadora. Por lo menos
dos segmentos se requieren, una para el código y otra para datos. Cada segmento
está definido por un descriptor de segmento, un enter o de 64 bits almacenado en
una tabla conocida como la tabla de descriptores globales (GDT). La figura 1-9
muestra un descriptor de segmento cuya base los puntos del campo de dirección
de la primera ubicación disponible en la memoria (00000000). En esta figura, el
límite de segmento es 0040. (Tokheim, 2006)
El campo de acceso contiene los bits que determinan la f orma en que el segmento
se puede utilizar. Todos los sistemas operativos modernos basados en arquitectura
x86 utilizan el modelo de segmentación de planos. (Ledesma, 2001)
Figura 1-9: M odelo de segmentación de planos
- Modelo del multi-segmento
En el modelo de multi-segmento, cada tarea o un pr ograma se le da su pr opia tabla
de descriptores de segmento, llamada tabla de descriptor local (LDT). Cada
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 28/39
Sistemas Digitales II
Ingeniería Electrónica 30
descriptor de puntos de un segmento, que puede ser distinto de todos los
segmentos utilizados por otr os pr ocesos. Cada segmento tiene su pr opio espacio
de direcciones. En figura 1-10, cada entrada en los puntos de LDT a un segmento
diferente de la memoria. Cada descriptor de segmento especifica el tamaño exacto
de su segmento. Por ejemplo, el comienzo del segmento en 3000 tiene un tamaño de 2000 hexadecimal, que se calcula como (00.021.000 hexadecimal). El comienzo
del segmento en 8000 tiene un tamaño A000 hexadecimal.
Figura 1-10: M odelo del multi-segmento.
- Paginación
Una característica que permite a los segmentos que se divide en bloques de 4096
bytes de memoria llamadas páginas. Paginación permite el total de la memoria
utilizada por todos los pr ogramas que se ejecutan al mismo tiempo, ser mucho más
grande que la memoria física del ordenador. La colección completa de las páginas
asignadas por el sistema operativo se llama memoria virtual. Los sistemas
operativos han nombrado los administradores de pr ogramas de utilidad de la
memoria virtual. (Tokheim, 2006)
La localización es una importante solución a un pr oblema molesto que enfrentan los
diseñadores de software y hardware. Un pr ograma debe ser cargado en la memoria
principal antes de que pueda correr, per o la memoria es cara. Los usuarios quieren
poder cargar muchos pr ogramas en la memoria y cambiar entre ellos a voluntad.
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 29/39
Sistemas Digitales II
Ingeniería Electrónica 31
De almacenamiento en disco, por otra parte, es barata y abundante. Paginación
pr oporciona la ilusión de que la memoria es casi ilimitada de tamaño. El acceso al
disco es mucho más lento que el acceso a la memoria principal, así que cuanto
más se basa en un pr ograma de paginación, más lento que se ejecuta. (Stallings,1998)
Cuando una tarea está en ejecución, las partes de que se pueden almacenar en el
disco si no están actualmente en uso. Partes de la tarea se paginan (préstamo) en
el disco. Otras páginas activamente la ejecución de permanecer en la memoria.
Cuando el pr ocesador comienza a ejecutar el código que se ha paginado de
memoria que emite un fallo de página, haciendo que la página o páginas que
contienen el código necesario o los datos que se cargan en la memoria. Para ver cómo funciona esto, encontrar un ordenador con una memoria un tanto limitada y
ejecutar muchas aplicaciones de gran tamaño al mismo tiempo. Usted debe notar
un retraso al cambiar de un pr ograma a otr o, porque el sistema operativo debe
transferir porciones paginado de cada pr ograma en la memoria del disco. Un
ordenador funciona más rápido cuando más de memoria instalada debido a
archivos de gran tamaño y la aplicación de los pr ogramas se pueden mantener en
su totalidad en la memoria, reduciendo la cantidad de paginación. (Tokheim, 2006)
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 30/39
Sistemas Digitales II
Ingeniería Electrónica 32
3. PROGRAMACIÓN EN LENGUAJE ASSEMBLER.
3.1. INSTRUCCIONES.
El set de instrucciones de un micr opr ocesador es el set de entradas binarias quepr oducen acciones definidas durante un ciclo de instrucción. Un set de instrucciones
es para el micr opr ocesador lo mismo que una tabla de verdad es para una compuerta
lógica, un registr o de desplazamiento o un circuito sumador. (Tokheim, 2006)
Por supuesto, las acciones que realiza un micr opr ocesador con cada instrucción, son
más complejas que las que realizan los dispositivos y compuertas antes mencionados.
3.1.1. Instrucciones Binarias.
Una instrucción es un patrón de dígitos binarios el cual debe estar a disposición del
micr opr ocesador en el tiempo y f orma que éste lo requiera. (Tokheim, 2006)
Por ejemplo, cuando un micr ocontr olador PIC16C5X recibe el patrón binario de 12
bits µ000010000000¶ en el momento adecuado, significa:
³CLEAR (borrar o poner a cer o) EL REGISTRO W´
3.1.2. Programa.
Un pr ograma es una serie de instrucciones que causan que la computadora realice
una tarea en particular. (Tokheim, 2006)
- Programa en assembler.
Tenemos que traducirlo a hexadecimal o a binario. Se puede hacer instrucción a
instrucción ³a mano´ o, como en nuestr o caso, a través de un pr ograma en una PC
llamado Cr ossassembler. Éste sería un ejemplo de pr ogramación en assembler:
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 31/39
Sistemas Digitales II
Ingeniería Electrónica 33
org 0
startmovlw 0 Eh
movwf REG1
movlw 100
addwf REG1,1end
- Desventajas del Assembly.
El lenguaje assembler no resuelve todos los pr oblemas de pr ogramación. Uno de
ellos es la tremenda diferencia entre el set de instrucciones del micr opr ocesador y
las tareas que el micr opr ocesador debe realizar. Las instrucciones del
micr opr ocesador tienden a hacer cosas como: sumar contenidos de dos registr os,desplazar el contenido de un acumulador un bit, o colocar un nuevo valor en el
contador de pr ograma (PC). (Tokheim, 2006)
Por otr o lado, el usuario generalmente quiere que el computador haga cosas como:
chequear si un valor analógico leído se excedió de un cierto umbral, buscar y
reaccionar ante un comando particular de una consola o teletipo, o activar un relé
en el momento apr opiado. El pr ogramador de lenguaje assembler debe traducir
estas tareas a secuencias de simples instrucciones de micr opr ocesador. Esta
traducción suele ser dificultosa, consume tiempo de trabajo.
Otr o inconveniente es la no portabilidad. Cada micr opr ocesador posee su pr opio set
de instrucciones en el cual está reflejada su arquitectura interna.
Un pr ograma en assembler escrito para 6809, no correrá en un 6502, Z80, 8080, o
cualquier micr opr ocesador de 16 o 32 bits. Ni siquiera dentr o de la mis ma familia de
micr ocontr oladores de Micr ochip Technology (PICs) existen las mismas
instrucciones. Cada modelo tiene un set de instrucciones pr opio que difiere en
algunas instrucciones con los demás.
Para solucionar este inconveniente se utiliza un lengua je de pr ogramación de alto o
medio nivel, como puede ser el lenguaje C.
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 32/39
Sistemas Digitales II
Ingeniería Electrónica 34
3.2. CONVENCIONES EN LA ESCRITURA DEL CÓDIGO FUENTE.
Para hacer la tarea del pr ogramador más grata, se usan algunas convenciones. Cada
uno puede adoptar las que más le agraden y ayuden para ser más pr oductivo. Engeneral, las convenciones son cualquier acción que facilita la revisión y comprensión
de un pr ograma, especialmente el que uno mismo ha escrito cuando tiene que
revisarlo algunos meses después.
Comentamos algunas convenciones que usaremos:
y Los ficher os de código fuente llevarán la extensión * .AS M
y Los ficher os de listado llevarán la extensión * .LST y Los ficher os de código objeto llevarán la extensión * .OBJ
y Los ficher os de err ores llevarán la extensión * .ERR
y Los ficher os ejecutables en f ormato Intel Hex llevarán la extensión * .HEX
y Los nemónicos escritos en mayúscula hacen que el código escrito sea más visible.
y Comentarios explicando cada línea de código.
y Un párraf o de comentarios explica las rutinas o conjunto de instruccion es ya que
los campos de comentarios suelen ser pequeños.
y El espacio entre caracteres se escribe ³_´ . RB0 _ES _1 es más fácil de leer que
RB0 ES1.
Recuerde que las convenciones son cualquier cosa que le haga más fácil la lectura y
comprensión de su código, como por ejemplo:
y Una cabecera estandarizada.
y
Colocar las rutinas en el mismo sitio, todas contiguas.y Dibujar diagramas de flujo o escribir seudocódigo.
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 33/39
Sistemas Digitales II
Ingeniería Electrónica 35
3.3. CARACTERÍSTICAS DEL ASSEMBLER.
3.3.1. Campos del lenguaje assembler.
Las instrucciones están divididas en un númer o de campos, como se muestradebajo.
El campo del código de operación es el único que nunca puede estar vacío; éste
siempre contiene una instrucción o una directiva del assembler.
El campo del operando o dirección puede contener una dirección o un dato, o
puede estar en blanco. (Tokheim, 2006)
El campo del comentario o de etiquetas es opcional. El pr ogramador asignará una
etiqueta a una línea de instrucción o agregará un comentario según su
conveniencia: normalmente, para hacer más fácil el uso y la lectura; por ejemplo si
va a retomar el trabajo dentr o de tres semanas.
- Delimitadores.
Los campos van separados sólo con espacios y/o tabulaciones. No agregar nunca
otr os caracteres (comas, puntos, etc.).
No utilice espacios extra, particularmente después de comas que separan
operandos. (Ej: movlw 5,w ) No use caracteres delimitadores (espacios ytabulaciones) en nombres o etiquetas. (Tokheim, 2006)
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 34/39
Sistemas Digitales II
Ingeniería Electrónica 36
- Etiquetas.
La etiqueta es el primer campo en una línea en lenguaje assembler y puede no
existir. Si una etiqueta está presente, el assembler la define como el equivalente a
la dirección del 1° byte correspondiente a esa instrucción. (Tokheim, 2006)
Esta etiqueta puede volver a usarse en otr o lugar per o como operando de una
instrucción.
El assembler reemplazará ésta etiqueta por el valor de cuando fue creada. Se usan
frecuentemente en las instrucciones de salto.
y N o puede existir más de una etiqueta en el 1° campo de instrucción.
y N o pueden usarse como nombres de etiquetas a palabras ya reservadas por el
assembler.
(ORG, EQU, etc.) O nombres de instrucciones (movlw, call, nop, etc.)
Ejemplo:
La instrucción goto START causa que la dirección de la instrucción con la etiqueta
START (movlw) se cargue en el PC. Por lo tanto ésta instrucción será luego
ejecutada. (Tokheim, 2006)
- Directivas.
Algunas instrucciones del lenguaje assembler no se traducen directamente a
instrucciones del lenguaje máquina. Estas instrucciones son directivas para el
assembler ; estas asignan al pr ograma ciertas áreas de memoria, definen símbolos,
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 35/39
Sistemas Digitales II
Ingeniería Electrónica 37
designan áreas de RAM para almacenamiento de datos temporales, colocan tablas
o datos constantes en memoria y permiten referencias a otr os pr ogramas.
Las directivas se utilizan como comandos escritos en el código fuente para realizar
un contr ol directo o ahorrar tiempo a la hora de ensamblar. El resultado deincorporar directivas se puede ver en el ficher o *.LST, después de ensamblar el
pr ograma. (Stallings, 1998)
Para usar éstas directivas o pseudooperandos, el pr ogramador las coloca en el
campo del código de operación, y, si lo requiere la directiva, una dirección o dato en
el campo de dirección. (Tokheim, 2006)
Las directivas más comunes son:
- Operandos y direcciones.
Los ensambladores permiten elegir con libertad el tipo de elemento a colocar en el
campo de operando o dirección. (Tokheim, 2006)
y Númer os decimales:
L
a mayo
ría de lo
s ensamblado
res asumen to
do
s lo
s númer o
s co
mo
decimales a no
ser que se marquen de otra manera. (Brey, 1994)
Por ejemplo: movlw 100
Significa: ³mover el númer o literal 100 (en decimal) al registr o de trabajo W´.
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 36/39
Sistemas Digitales II
Ingeniería Electrónica 38
y Otr os sistemas de numeración:
Los ensambladores también aceptan númer os Hexadecimales, octales o binarios.
Esta es la f orma de representarlos:
- Ensamblado condicional.
Algunos ensambladores les permiten incluir o excluir partes de pr ograma,
dependiendo de condiciones que existan en el tiempo de compilación.
La f orma típica es:
Si la condición es verdadera en el tiempo de compilación, las instrucciones que
están entre I F y E N DI F se incluirán en el pr ograma.
Los usos típicos son:
y Para incluir o excluir variables extras.
y Para incluir código de diagnóstico en condiciones de testeo (DEBUG).
y Para permitir datos de distintos tamaños.
- Inclusión de Código.
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 37/39
Sistemas Digitales II
Ingeniería Electrónica 39
Algunos ensambladores permiten incluir código fuente (partes de pr ogramas) desde
otr os archivos.
Por ejemplo:
I N CLUDE DISPLAY.AS M
Le dice al compilador que incluya el código que se encuentra en el archivo
DISPLAY.AS M como si fuese parte del pr opio pr ograma.
Esto se utiliza para reutilizar códigos realizados con anterioridad. En el ejemplo del
siguiente punto lo vemos más clar o. (Tokheim, 2006)
- Macros.
A veces ocurren secuencias de instrucciones particulares en los pr ogramas que son
repetitivas. Estas secuencias de instrucciones se pueden eliminar utilizando
macros.
Las macr os permiten asignarle un nombre a una secuencia de instrucciones. Luego
se utiliza el nombre de la macr o en el pr ograma como si se usase la secuencia de
instrucciones anterior. (Tokheim, 2006)
Las macr os no son lo mismo que las subrutinas. El código de las subrutinas
aparece una sola vez en un pr ograma y la ejecución del pr ograma salta a la
subrutina. En cambio, el ensamblador reemplaza cada ocurrencia del nombre de la
macr o con la secuencia especificada de instrucciones. Por consiguiente la
ejecución del pr ograma no salta a la macr o como una subrutina.
Veamos un ejemplo utilizando los conceptos vistos hasta ahora:
y Archivo ³ M ULX10 .AS M ́ :
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 38/39
Sistemas Digitales II
Ingeniería Electrónica 40
y Archivo ³ EJE M PLO1.AS M ́ :
Si ensamblamos el ³EJE M PLO1.AS M ́ notaremos que el listado final queda de la
siguiente f orma:
5/8/2018 Digit Ales - slidepdf.com
http://slidepdf.com/reader/full/digit-ales 39/39
Sistemas Digitales II
Ingeniería Electrónica 41
CONCLUSIONES
El diseño de micr opr ocesadores se estudia en las universidades de ingeniería con miras
a mejorar los diseños existentes. Hoy en día se prefiere enseñar micr opr ocesadores y
arquitectura de computadoras desde el punto de vista económico o cuantitativo, desde elpunto de rendimiento-costo. A mi parecer, no deja de ser importante aprender las bases
principales del diseño de micr opr ocesadores ya que ello llevará a una mejor
comprensión de los lenguajes de pr ogramación, segmentación, computadoras de
pr ocesadores paralelos, micr ocontr oladores, etc. Además, poder diseñar un
micr opr ocesador sencillo como el que se desarr olla en este documento, nos conduce a
conocer y comprender uno de los secretos de la electrónica más hermosos y
enigmáticos. ¿Cómo se pr ocesa la inf ormación? ¿Cómo es posible que una
computadora me pueda desplegar imágenes, videos, texto, etc.? Todas estas preguntasson el enigma de las computadoras y los estudiantes de una ingeniería relacionada con
la computación deben de adentrarse, al menos de manera superficial, con las
respuestas.
BIBLIOGRAFÍA.
y Brey. (1994). Los micr opr ocesadores Intel. Arquitectura, pr ogramación e interfaces.
Prentice Hall. Colombia.
y Hayes, J. (1996). Diseño de sistemas digitales y micr opr ocesadores. Ed. McGraw-
Hill. México.
y Hayes, j. (1998). Arquitectura de Micr opr ocesadores. Tercera edición. Editorial
McGraw Hill. España.
y Ledesma, C. (2001). Intr oducción a la Realidad Virtual Ingeniería Neur osensorial.
Departamento de Ingeniería Electrónica. España.
y Stallings, W. (1998). Organización y arquitectura de computadoras. Editorial Prentice
Hall. México ± DF.
y Tokheim, R. (2006). Fundamentos de los micr opr ocesadores. Editorial McGraw Hill.
México - DF
y http://www.intel.co.nz/espanol/
y http://members.tripod.com/~alpertr on/