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 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 alt o nivel, disponiendo de un soporte hardware con el que los pr ogramas escrit os en dichos lenguajes ocupan un pequeño espacio de código y pueden ejecutarse a gran vel ocidad. Esta conc epci ó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, c on y sin signo; las que mane jan cadenas de caracteres, etc. En su momento, el 8086 junt o con el x88 fuer on l os micr opr ocesadores más empleados dentr o de su categoría, especialmente desde que IBM l os 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 ofesi onal. Hoy en día, la utilización del 8086 es más reducida, quedand o principalmente orientado a la enseñanza, como base de los micr opr ocesadores de la últim a generac ió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 instrucci ones especiales para el tratamient o de cadenas de caracteres. Los registr os del x86 tienen una misión específica, p or lo que se podría decir que cada uno de ellos tiene su pr opia personalidad, aunque vari os comparten tareas comunes. El x86 dispone de un conjunto de registr os, denominados ³ cola de instrucci one s ´, e n el cual se van almacenand o de f orma anticipada los códigos de las instrucci ones, consiguiendo que este aumente su vel ocidad de trabajo.

Digit Ales

Embed Size (px)

Citation preview

Page 1: Digit Ales

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.

Page 2: Digit Ales

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

Page 3: Digit Ales

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)

Page 4: Digit Ales

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.

Page 5: Digit Ales

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) 

Page 6: Digit Ales

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) 

Page 7: Digit Ales

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

Page 8: Digit Ales

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:

Page 9: Digit Ales

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

Page 10: Digit Ales

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

Page 11: Digit Ales

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

Page 12: Digit Ales

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

Page 13: Digit Ales

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

Page 14: Digit Ales

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.

Page 15: Digit Ales

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

Page 16: Digit Ales

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:

Page 17: Digit Ales

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.

Page 18: Digit Ales

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.

Page 19: Digit Ales

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)

Page 20: Digit Ales

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

Page 21: Digit Ales

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

Page 22: Digit Ales

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

Page 23: Digit Ales

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

Page 24: Digit Ales

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)

Page 25: Digit Ales

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

Page 26: Digit Ales

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 .

Page 27: Digit Ales

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

Page 28: Digit Ales

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.

Page 29: Digit Ales

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) 

Page 30: Digit Ales

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:

Page 31: Digit Ales

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.

Page 32: Digit Ales

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.

Page 33: Digit Ales

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)

Page 34: Digit Ales

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,

Page 35: Digit Ales

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

Page 36: Digit Ales

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.  

Page 37: Digit Ales

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 ́  :

Page 38: Digit Ales

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:

Page 39: Digit Ales

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/