Sunteți pe pagina 1din 103

UNIVERSIDAD NACIONAL ABIERTA

VICERRECTORADO ACADMICO
AREA: INGENIERA / CARRERA: INGENIERA DE SISTEMAS

MATERIAL INSTRUCCIONAL DE APOYO


NOMBRE:

MICROPROCESADORES
Cdigo: 316
U.C.:
4

CARRERA:

Ingeniera de Sistemas
Cdigo: 236

SEMESTRE:

VII

AUTOR:

Ing. Olga Esther Rodrguez Durn (Especialista de


Contenido)
Ing. Judit Carballo (Coordinadora Ingeniera de
Sistemas)
Lic. Carmen Velsquez de Rojas (Evaluadora)
Lic. Antonio Alfonzo MsC ( Diseador Instruccional )

COMIT TCNICO:

Dra. Egle Arellano de Rojas ( Diseadora )


Caracas, Octubre 2005

INTRODUCCIN
El estudio a distancia e incluso el presencial en algunos momentos es una forma de
aprendizaje que se basa especficamente en el trabajo personal de los estudiantes
con mayor o menor independencia respecto de la gua directa de los profesores. El
estudiante, al estar provisto de material autoinstruccional, puede de esta forma
acceder a un mayor grado de aprendizaje, puesto que logra profundizar o aprender
segn sus ritmos y conocimientos previos. Aqu radica el potencial que tiene la
elaboracin del presente Material Instruccional de Apoyo (M.I.A.), el cual junto con
el libro Los Microprocesadores Intel, de Barry B. Brey y el Software Simulador del
Microprocesador 80286 se complementan para conformar el paquete instruccional
del curso Microprocesadores, aunado a ello el estudiante cuenta con la asesora
en los centros locales para aclarar dudas, tanto de manera presencial como a travs
del correo electrnico.
El Material Instruccional de Apoyo, se ha elaborado tomando en cuenta el nivel de
conocimientos que ha obtenido el estudiante en los cursos anteriores,
particularmente en el curso Arquitectura de Computadoras el cual define las
conductas de entrada necesarias para el estudio de los microprocesadores y la
implementacin de programas, para resolver un problema especfico. Tambin se
ha considerado la complejidad de cada tpico y el uso del software simulador, ste
software apoya el estudio de aquellas unidades en las cuales se realiza la
descripcin y programacin de un microprocesador comercial.
El Material Instruccional de Apoyo se ha organizado atendiendo a la Estructura del
Curso. El Mdulo I: El Microprocesador, Arquitectura e Interfaces, consta de cuatro
unidades. El Mdulo II: Familia de Microprocesadores, el Coprocesador Aritmtico
y la Tecnologa MMX, incluye dos unidades, por su parte en el Mdulo III:
Programacin del Microprocesador, se compone del estudio de dos unidades. Para
cada mdulo se presenta: una breve introduccin, el objetivo del mdulo y las
unidades que lo componen. Por su parte cada unidad incluye: una breve
presentacin, el objetivo de la unidad, una sinopsis del contenido y una serie de
actividades que el estudiante debe realizar para complementar su estudio, dentro de
estas actividades se hace nfasis en la presentacin de aspectos tericos,
ejemplos, ejercicios resueltos, ejercicios de autoevaluacin, consultas a material
bibliogrfico y consultas a direcciones electrnicas en la Web. Cabe destacar que
algunas de estas direcciones pueden no estar activadas al momento de la consulta,
por lo que se recomienda al estudiante acceder a otras direcciones relativas al tema
a travs de un buscador (Browser) en la Web.
El estudio del curso Microprocesadores, exige el uso simultneo del Plan de Curso
y el paquete instruccional. Estos dos componentes se interrelacionan para
proporcionarle una visin general del curso y las herramientas necesarias para el
logro del objetivo terminal.

3
Iconos empleados en el material instruccional
A lo largo de la lectura de este material encontrar diversos conos, cuyo
significado se explica a continuacin:

Ampliacin de conocimientos: Est dirigido al estudiante que


desea profundizar ms en sus conocimientos en determinado
tema.
Atencin: Se presenta cuando se quiere hacer una aclaratoria,
una advertencia o una reflexin sobre algn aspecto del
contenido.

Consulta en la Web: Indica referencias a pginas Web


Consulta en otros libros: Se refiere a un llamado a consulta en
libros que no figuran como textos de carcter obligatorio para el
curso.
Direccin de Correo electrnico: Indica direcciones de correo
electrnico
Ejercicios propuestos: son ejercicios sugeridos a manera de
prctica sobre algn tema de la unidad.
Ejercicios de autoevaluacin: Ejercicios que debe realizar el
estudiante y posteriormente verificar contra los resultados aqu
presentados.
Ejemplo: Es la exposicin de un caso alusivo al tema en cuestin
y su resolucin.
Recordatorio: Indica algn aspecto a enfatizar, relacionado con
los conocimientos adquiridos previamente por el estudiante.

MDULO I
EL MICROPROCESADOR, ARQUITECTURA E INTERFACES.
En este mdulo se estudia la configuracin interna del microprocesador visible al
programador, la manera como se direcciona la memoria y como funciona cada
instruccin en la familia de los microprocesadores Intel. El establecimiento de las
interfaces apropiadas para la conexin de los sistemas de memoria y de los
dispositivos de entrada-salida (E/S) tambin son objetos de estudio en este mdulo.
Finalmente se profundiza en la implementacin de interfaces sencillas que se
conectan a los sistemas de bus ubicados en la computadora.
Objetivo del Mdulo I: Resolver con sentido lgico y creativo, problemas
inherentes a la arquitectura del microprocesador y al establecimiento de interfaces.

El mdulo I est estructurado en cuatro unidades:


Unidad 1:
Unidad 2:
Unidad 3:
Unidad 4:

Arquitectura del Microprocesador.


Interfaz con la memoria.
Interfaz de E/S Bsica, Interrupciones y E/S Controlada por DMA.
Interfaz del Bus.

UNIDAD 1
Arquitectura del Microprocesador.
El estudio del modelo de programacin de los microprocesadores, puede realizarse
travs de la descripcin de la arquitectura interna visible para el programa. Esta
arquitectura comprende los registros que son utilizados por el programador en el
desarrollo de aplicaciones, mediante instrucciones que hacen uso de ellos. En la
Unidad I, se presentan los modelos de programacin de los microprocesadores
8086 al Pentium II, pertenecientes stos a la familia Intel, tambin su modo de
funcionamiento en modo real y protegido.
Las caractersticas de diseo de los microprocesadores, establecen sus
capacidades y limitaciones, por ejemplo es conveniente para el programador, que
el microprocesador tenga diversos modos de direccionamiento, ya que eso le
permitir desarrollar software ms eficiente. La Unidad I presenta los modos de
direccionamiento de datos, de la memoria y de la pila, para la familia de
microprocesadores Intel. Finalmente se incluye en esta unidad el estudio de las
instrucciones con que cuentan los miembros de esta familia, este estudio
contempla entre otros aspectos la sintaxis del lenguaje ensamblador y algunas de
sus directivas, as como tambin la funcin de cada instruccin, lo que permite
sentar bases para la programacin de los microprocesadores en unidades
posteriores.
Objetivo de la Unidad 1: Aplicar los conceptos de arquitectura de los
microprocesadores en la descripcin de su estructura y/o funcionamiento, dada no
una situacin.
Contenido de la Unidad 1: El contenido de la unidad contempla el estudio de los
siguientes temas:
El microprocesador y su arquitectura.
Direccionamiento de memoria.
Paginacin de memoria.
Modos de direccionamiento. Direccionamiento de la pila de memoria.
Instrucciones.

6
Actividades recomendadas para el estudio del contenido de la unidad 1.
Atencin: Considerar que en el Plan de Curso de Microprocesadores, hay
un error en la seccin V. Diseo de la Instruccin, en las secciones 2.1, 3.2,
4.2, 5.2 y 6.2, correspondientes a las unidades: 2, 3, 4, 5 y 6 respectivamente.
El error se encuentra en la indicacin del Texto a utilizar a utilizar, donde dice:
Texto Organizacin y Arquitectura de Computadoras . Debe decir : Texto:
Los Microprocesadores Intel. .

1.- Examine la tabla 1.1, en ella


contentivos de la unidad 1:

TTULO

puede identificar las

MATERIAL DE
REFERENCIA

lecturas de los temas

CONTENIDO
Arquitectura interna
microprocesador.

CAPITULO
del

Direccionamiento
de
memoria
en
modo
real.
texto
Los
El microprocesador y El
Microprocesador
su arquitectura.
al
es Intel,
B. B. Introduccin
direccionamiento
de
Brey.
memoria
en
modo
protegido.

Paginacin de memoria.
Modos
de
direccionamiento de datos.
Modos
de
texto
Los direccionamiento de la
Modos
de El
direccionamiento.
Microprocesador memoria del programa.
es Intel,
B. B.
Modos
de
Brey.
direccionamiento de la
memoria de la pila.

Instrucciones.

Instrucciones
para
El
texto
Los movimiento de datos.
Microprocesador
es Intel,
B. B. Instrucciones aritmticas y
lgicas.
Brey.
Instrucciones de control de
programa.

Tabla 1.1

4
5
6

Atencin: Muchos de los ejemplos que presenta el texto Los


microprocesadores Intel de B.B. Brey, usan el Microsoft MACRO Assembler
(MAMS) como herramienta de desarrollo, pero la mayora de ellos pueden ser
ensamblados con otros ensambladores, por ejemplo ASM (Intel Assembler) y
TASM (Borland Turbo Assemler). En el curso Microprocesadores se utilizar el
Software Simulador incluido en el paquete instruccional. No obstante se
recomienda al estudiante investigar sobre el uso del MAMS, con el objeto de
ampliar sus conocimientos.
2.- Una vez ledo el contendido indicado en la tabla 1.1, usted estar en capacidad
de responder lo siguiente:
2.1 Qu es el modelo interno de programacin de un microprocesador?
2.2 Por qu se puede afirmar que el modelo de programacin de los
microprocesadores Intel, es visible para el programa?
2.3 Qu microprocesadores Intel contienen registros de 8 y 16 bits?
2.4 Cul es la funcin de los registros de propsito especfico para los
microprocesadores Intel?
2.5 Cul es la funcin y propsito de los registros de segmento: CS, DS, ES y
SS?
2.6 Cules son las principales ventajas de los siguientes direccionamientos de
datos: inmediato, directo, indirecto, registro, indirecto con registro?
2.7 Cules son los tres modos de direccionamiento de memoria de programa?
2.8 Cules registros controlan la memoria de la pila?
2.9 Cules son los cdigos de operacin que transfieren datos entre la pila y
las banderas?
2.10 Cules son los registros que emplean las estructuras de transferencia de
cadenas de datos para direccionar memoria?
2.11 Qu es una directiva de lenguaje ensamblador?
2.12 Para qu son empleadas las directivas PROC y ENDP?
2.13 Un microprocesador 80386 opera en el modo protegido y utiliza un registro
de 32 bits, Es necesario que el cdigo de operacin est precedido del
prefijo de tamao de registro? Razone su respuesta.
2.14 Cul es la funcin de la directiva .MODEL?
3.- Estudie el ejemplo 1.1, en el cual se presentan los modelos de programacin de
dos microprocesadores de 8 bits.
Ejemplo 1.1: Modelo de programacin de los microprocesadores de 8 bits:
8080 y Z80.

El microprocesador Z80 de Zilog es una versin apreciablemente mejorada tanto


en circuitera como en caractersticas de programacin del modelo INTEL 8080,
el Z80 resulta ser un microprocesador ms rpido y sencillo en el desarrollo de

8
sistemas ya que solo usa una fuente de alimentacin de +5 Volts, contiene
ntegramente todo el conjunto de instrucciones del 8080, lo cual le permite
ejecutar todos los programas escritos para el CPU 8080, contiene el Z80 una
expansin adicional de 80 instrucciones de ah se deriva su nombre, su
repertorio suma un total de 156 instrucciones. Esta significativa mejora puede
apreciarse si se comparan los modelos de programacin de cada uno de ellos.
Se presentan a continuacin los modelos de programacin de los
microprocesadores 8080 de Intel y el Z80 de Zilog, as como tambin la
descripcin y funcionamiento de cada uno de los registros que los conforman.
MODELO DE PROGRAMACIN DEL MICROPROCESADOR 8080
En
la figura 1.1 se presenta el modelo de programacin de este
microprocesador , el cual dispone de los siguientes registros:
Un registro acumulador de 8 bits (tambin llamado registro A).
Seis registros de propsito general de 8 bits (B, C, D, E H y L.), que con
algunas instrucciones pueden usarse como registros pares de 16 bits (B-C,
D-E y H-L).
Dos registros de 16 bits de propsito especfico: un puntero de Stack (SP,
siglas en ingls de Stack Pointer)) y un contador de programa (PC, siglas en
ingls de Counter Program).
Cinco flags (banderas) de 1 bit cada una que posee la unidad aritmtico
lgica y cuyo contenido es modificado despus de la ejecucin de numerosas
instrucciones lgicas y aritmticas. Estas flags son: S, C, A, P y C.
Registro acumulador
A
Registros de propsito general
B
D
H

C
E
L

Registros de propsito especfico


SP (Stack Pointer)
PC (Program Counter)
Flags (banderas)
Figura 1.1 Modelo de programacin del microprocesador Intel 8080

Atencin: El registro Flags contiene 8 bits, pero solo se utilizan los cincos bits
menos significativos, que corresponden a las cinco banderas: S, C, A, P y C.

MODELO DE PROGRAMACIN DEL MICROPROCESADOR Z80


El modelo de programacin de este microprocesador (ver figura 1.2), est
compuesto por un banco principal, otro alternativo y por ltimo un banco
compuesto por registros especiales. La existencia del banco alternativo mejora
la velocidad ante la presencia de las interrupciones ya que permite cambiar
desde el banco principal al alternativo. Los registros son:
Hay 2 grupos de registros de propsito general. Cada grupo contiene 6
registros de 8 bits, que pueden ser usados individualmente como registros de
8 bits o en parejas como registros de 16 bits. Un grupo se llama BC, DE y HL
y el otro BC, DE y HL. El programador puede cambiar a cualquiera de los
dos grupos de registros con una simple instruccin de intercambio.
Registros de Acumuladores y Banderas: El Z80 tiene 2 registros
acumuladores independientes de 8 bits (comnmente llamados A y A) y 2
registros de banderas asociados a los 2 acumuladores (F y F). Los
acumuladores almacenan los resultados de operaciones aritmticas o lgicas
de 8 bits, y los registros de banderas indican condiciones para operaciones
de 8 y 16 bits. Estas banderas son S, Z, A, P, N y C. El programador puede
usar el par acumulador-bandera que desee y puede cambiar al otro par con
una simple instruccin de intercambio.
Registros de propsito especfico:
- Dispone del registro Program Counter (PC) de 16 bits, que contiene la
direccin de la instruccin que se debe buscar en la memoria.
- El Stack Pointer (SP) de 16 bits, el cual contiene la direccin del tope
actual de la pila.
- Dos Registros ndice (IX, IY), son dos registros independientes que
contienen los 16 bits de direcciones que se usan en modos de
direccionamiento indexado. En este modo, un registro ndice se usa
como base para apuntar a una regin en memoria en la cual el dato
ser almacenado o recuperado.
- El Registro de Interrupciones (I): El Z80 puede operar en un modo
donde cualquier posicin de memoria puede lograrse en respuesta de
una interrupcin. Este registro se usa para almacenar los 8 bits ms
significativos de la direccin, mientras el perifrico que interrumpe
provee los 8 bits menos significativos. Esto da la posibilidad de que las
rutinas de interrupcin sean localizadas dinmicamente en cualquier
parte de la memoria con un mnimo tiempo de acceso a la rutina.
- El Registro de Refresco de Memoria (R), de 8 bits que almacena el
bloque de memoria a cuyo refresco se va a proceder.

10
Registros del banco principal
A
B
D
H

Registros del banco alternativo

F
C
E
L

A
B
C
H

F
C
E
L

Registros ndice
IX
IY
Registros de pila y contador del programa
SP
PC
Registro de interrupciones y de refresco de memoria
I
R
Figura 1.2 Modelo de programacin de microprocesador Zilog Z80.
Atencin: El texto utilizado para el estudio del Curso Microprocesadores se
basa en los modelos fabricados por la compaa Intel, sin embargo se utiliza
en este ejemplo, el microprocesador Z80 desarrollado por la compaa Zilog,
con el objeto de que el alumno ample sus conocimientos.

4.- Lea el siguiente contendido terico, el cual le aportar conocimientos necesarios


para describir cmo acceder a la memoria de un computador, usando la tcnica
de direccionamiento de memoria en modo real.
Una de las funciones bsicas que debe implementar un SO (Sistema Operativo)
es la Administracin de la Memoria, para tener un control sobre los lugares
donde estn almacenados los procesos y datos que actualmente se estn
utilizando. El direccionamiento de la memoria puede considerarse desde dos
puntos de vista: fsico y lgico. El primero se refiere a los medios electrnicos
utilizados en el computador para acceder a las diversas posiciones de memoria,
el segundo, a la forma en que se expresan y guardan las direcciones.
El sistema de numeracin utilizado para representar las direcciones de memoria
no suele ser el decimal, sino el hexadecimal. La razn es que los nmeros

11
hexadecimales guardan cierta concordancia con las potencias de 2. Por
ejemplo, un bus de direcciones de 8 bits puede acceder a 256 posiciones
(28 = 256), expresado en hexadecimal es el rango 00-FF H. En caso de
direcciones de 16 bits, se puede acceder 65.536 posiciones (es el rango 0000FFFF H). El bus de direcciones del PC XT, tiene 20 bits, las posibilidades son
1.048.576 (es el rango 00000-FFFFF H).
Como veremos a continuacin, puede utilizarse una doble notacin: direcciones
absolutas, indicadas por un hexadecimal de cinco dgitos, en el rango 00000FFFFF H, o en direcciones segmentadas, que utiliza dos grupos de cuatro
dgitos hexadecimales.
El direccionamiento segmentado, consiste en la asignacin de bloques de
memoria de tamao variable, llamados segmentos. El tamao de cada segmento
ser el requerido segn la peticin, por ejemplo el tamao del proceso a cargar.
El tamao mximo para un segmento estar determinado por la capacidad de
direccionamiento del hardware de la computadora, esto es, de cuantos bits se
dispone para almacenar una direccin. El acceso a cada elemento individual
(byte) en la memoria se hace mediante una direccin de memoria que se integra
por dos elementos: una direccin de segmento y una de desplazamiento.
La combinacin (suma) de la direccin de segmento y la de desplazamiento
generan la direccin de memoria absoluta a acceder, tal como se muestra en la
figura 1.3, mostrada a continuacin:
Tabla de segmentos
Po

400

P1

250

P2

1200

250
P1

Direccin lgica
Po

12

Direccin absoluta
+

400
400+12

Po

1200
P2

Figura 1.3 Esquema de direccionamiento de memoria en modo real

12

Atencin: Una direccin lgica indica una posicin relativa al comienzo de


un programa, las instrucciones de programas contienen solo direcciones
lgicas. Una direccin fsica es, por supuesto, la posicin actual en la
memoria principal. Cuando el procesador ejecuta un proceso,
automticamente convierte las direcciones lgicas en fsicas.

5.- Estudie el ejemplo 1.2, en el cual se muestra un programa de aplicacin que


contiene un segmento de cdigo, datos y pila cargado en un sistema DOS de
memoria.
Ejemplo 1.2: Almacenamiento de un programa de aplicacin en el sistema
DOS de memoria.

El bus del PC XT contiene 20 lneas, estas lneas contienen las direcciones que
identifican la parte del computador que comunica. Las direcciones son de dos tipos;
unas se refieren a direcciones de memoria; otras a direcciones de puertos de E/S.
Con los datos anteriores, resulta evidente que el PC XT puede manejar 1.048.576
direcciones (220). Sin embargo, el microprocesador 8088 presente en el XT dispone
de registros de 16 bits que solo pueden albergar 65.536 posiciones (216), muy
alejado del valor anterior. Para resolver el problema, se utilizan las direcciones
segmentadas, compuestas por dos palabras de 16 bits que se componen para
formar una direccin de 20 bits (esta direccin es denominada tambin como
direccin absoluta). Para generar estas direcciones el 8088 dispone de cuatro
registros de segmento: CS, SS, DS y ES.
Los aspectos concretos de almacenamiento de un programa dependen de la
plataforma; no existe un modelo nico. En la figura 1.4 se muestra como se utilizan
los registros de segmento para sealar las direcciones de inicio de los diversos
mdulos de un programa cargado en memoria, dentro del espacio de memoria
direccionable con 20 bits (00000-FFFFF H).

13
FFFFF H
Registros de puntero
Segmento de cdigo
IP
SP

Fin de la pila

BP

Segmento de pila

Registros de segmento
CS
Segmento de datos
SS
DS

Segmento extra de datos

ES
00000 H
Figura 1.4 Programa de aplicacin cargado en un sistema de memoria DOS
6.- Estudie el ejemplo 1.3, en el cual se aplica el manejo de memoria en modo
protegido, para describir cmo el microprocesador 80386 asigna las localidades
de memoria a un segmento de datos.
Ejemplo 1.3: Manejo de memoria en modo protegido.
En la ejecucin de un programa en un sistema basado en microprocesador
80386, se requiere en un instante dado almacenar datos en la memoria, bajo
estas condiciones el contenido del registro de segmento de datos DS es el
mostrado en la figura 1-5:
0000000000001

00
Solicita nivel de privilegio 00
Elige descriptor en la tabla de descriptores
globales
Selecciona descriptor nmero 1

Figura 1.5 Contenido del registro de segmento DS

14
Y el formato del descriptor nmero 1 contenido en la tabla de descriptores
globales es el siguiente:
Ocho bytes del
descriptor
7

0000 0000

0000 0000

1111 0010

0001 0000

0000 0000 0000 0000

0000 0000 1111 1111

Figura 1.6 Formato del descriptor nmero 1


El inicio y fin del segmento de datos ser el siguiente:
Base =
Lmite =
Final =
Final =

00100000 H
000FF H
Base + Lmite = 00100000 H + 000FF H
001000FF H.

Se puede concluir entonces, que el microprocesador utilizar las localidades de


memoria comprendidas en el rango: 00100000 H 001000FF H para almacenar
el segmento de datos.
7.- Estudie el ejemplo 1.4, en el cual se presenta uno de los cuatro mecanismos de
manejo de la memoria disponible en el microprocesador Intel Pentium II.
Ejemplo 1.4: Gestin de memoria segmentada paginada en el Pentium II.

El Pentium II incluye hardware, tanto para segmentacin como para paginacin.


Cuando ambos mecanismos estn activados, se puede ver la memoria
segmentada paginada.
La segmentacin define particiones lgicas de memoria en el control de acceso.
Por su parte con la paginacin, se gestiona la asignacin de memoria dentro de
las particiones.
Cuando se utiliza segmentacin las direcciones utilizadas en los programas son
direcciones virtuales (llamadas tambin direcciones lgicas), estas direcciones
constan de una referencia al segmento de 16 bits y un desplazamiento de 32
bits. El mecanismo de traduccin de direccin para la segmentacin implica
hacer corresponder una direccin lgica con la direccin lineal. El siguiente paso
es la traduccin de una direccin lineal a una direccin fsica de 32 bits. La figura

15
1.7 se ilustra la combinacin de los mecanismos de segmentacin y paginacin
disponibles en el Pentium II.

Direccin
lgica

Segmentacin

D
e
s
p
l
a
z
a
m
i
e
n
t
o

Paginacin

Dir.

Direccin lineal
Desplazamiento
Pgina
+

S
e
g
m
e
n
t
o

Directorio de
pginas

Tabla de
pginas

Direccin
fsica

Memoria
principal

Tabla de
segmentos

Figura 1.7 Mecanismos de traduccin de una direccin de memoria en el Pentium II


Atencin: Las particiones son bloques de memoria que pueden tener
tamao fijo o tamao variable.
8.- Estudie el contenido de la Tabla 1.2, en la cual se presentan los registros de 8,
16 y 32 bits utilizados por la familia de microprocesadores Intel, para el
direccionamiento de registro.

16

REGISTROS DE 8
BITS

REGISTROS DE 16
BITS

REGISTROS DE 32
BITS

AH
AL
BH
BL
CH
CL
DH
DL

AX
BX
CX
DX
SP
BP
DI
SI
CS
ES
DS
SS
FS
GS

EAX
EBX
ECX
EDX
ESP
EBP
EDI
ESI

* Nota: Son utilizados por algunas instrucciones MOV, as como tambin por las
instrucciones PUSH y POP.
Tabla 1.2
9.- Estudie el ejemplo 1.5, en el cual se describen los modos de direccionamiento
disponibles en el Pentium II.
Ejemplo 1.5: Modos de direccionamiento del Pentium II.

En el mecanismo de traduccin de direcciones del Pentium II presentado en la


figura 1.8, se obtiene una direccin lineal que pasa por un mecanismo de
traduccin de pginas para producir una direccin fsica. En el ejemplo que se
presenta a continuacin se ignora el paso de paginacin, ya que ste es
transparente para el repertorio de instrucciones y para el programador.
El Pentium II est equipado con diversos modos de direccionamiento, ideados
para permitir la ejecucin eficiente de lenguajes de alto nivel. En la figura 1.8 se
muestra el hardware involucrado y en la Tabla 1.3 los modos de
direccionamiento disponibles.

17
Registro de segmento

SS
Selector
GS
Selector
FS
Selector
ES
Selector
DS
Selector
CS
Selector

Registro base

Registro ndice

Escala: 1,2 u 8

Registros descriptores
Derechos de SS
acceso
Derechos de GS
acceso
Lmite de FS
Derechos
acceso
Lmite de ES
Derechos
Direccin
base
acceso
Lmite
Derechos
de DS
Direccin
base
acceso
Lmite de CS
Derechos
Direccin
base
acceso
Lmite
Direccin base
Lmite
Direccin base
Direccin base

Desplazamiento (en
la instruccin, 0, 8
32 bits)
Direccin
efectiva
Direccin lineal
+

Figura 1.8 Clculos en el modo de direccionamiento del Pentium II

18
MODO

ALGORITMO

Inmediato

Operando = A

Registro

LA = R

Con
LA = (SR) + A
desplazamiento

Base

LA = (SR) + (B)

Base con
LA = (SR) + (B) + A
desplazamiento

ndice escalado
con
LA = (SR) + (I) x S + A
desplazamiento

DESCRIPCIN
El operando se incluye en la
instruccin. El operando puede ser un
byte, una palabra o una palabra doble
de datos. Este modo puede utilizarse
para definir y utilizar constantes, o para
fijar valores iniciales de variables.
El operando est situado en un registro.
Si se hace un uso masivo de este
direccionamiento en un repertorio de
instrucciones, los registros de la CPU
se emplearn intensamente, y debido al
nmero limitado de registros en
comparacin con el nmero de
posiciones de la memoria principal, se
recomienda usarlo eficientemente.
El desplazamiento del operando est
incluido, formando parte de la
instruccin. Debido a que implica
instrucciones largas,
se puede
encontrar en pocas mquinas, en el
Pentium II, el valor del desplazamiento
puede ser de 32 bits, haciendo que la
instruccin tenga 6 bytes.
Especifica que uno de los registros de
8, 16 o 32 bits contiene la direccin
efectiva
La
instruccin
incluye
un
desplazamiento que hay que sumar a
un registro base, que puede ser
cualquiera de los registros de uso
general. Un ejemplo de uso de este
modo es: utilizacin por un compilador
para apuntar al comienzo de una zona
de variables, en este caso el registro
base apunta al comienzo de un marco
de pila, que contiene las variables
locales
para
el
procedimiento
correspondiente.
La
instruccin
incluye
un
desplazamiento a sumar a un registro,
llamado en este caso registro ndice. El
registro ndice puede ser cualquiera de
los registros de uso general excepto el
ESP. Este modo es muy conveniente
para indexar matrices.

19
MODO

ALGORITMO

DESCRIPCIN
Suma los contenidos de los registros
base e ndice, y un desplazamiento
para formar la direccin efectiva. Como
Base con
ejemplo,
este
modo
de
ndice y
LA = (SR) + (B)+ (I) + A direccionamiento podra emplearse
desplazamiento
para manejar una matriz bidimensional;
en este caso el desplazamiento apunta
al inicio de la matriz, y cada registro
gestiona una dimensin de la misma.
Suma el contenido del registro ndice,
multiplicado por un factor de escala,
Base con
con el contenido del registro base y el
ndice escalado LA = (SR) + (I) x S + desplazamiento. Es til Este modo
y
(B) + A
permite la indexacin eficiente de una
desplazamiento
matriz
bidimensional
cuando
los
elementos de la misma tienen
longitudes de 2, 4 u 8 bytes.
Se suma un desplazamiento al valor del
contador del programa que apunta a la
Relativo
LA = (PC) + A
siguiente instruccin. Puede emplearse
en instrucciones de transferencia del
control (control de flujo).
LA = direccin lineal
SR = Registro de segmento
A = Contenido de un campo de
direccin de la instruccin
I = Registro ndice

(X)
PC
R
B
S

= contenido de X
= Contador de programa
= Registro
= Registro Base
= Factor de escala

Tabla 1.3 Modos de direccionamiento del Pentium II.


10.- Estudie el ejemplo 1.6, en el cual se ilustra el uso de la pila para el paso de
parmetros entre funciones, en el lenguaje C de alto nivel.
Ejemplo 1.6: Uso de la pila cuando se invoca una funcin en lenguaje C.

En el lenguaje C normalmente se utiliza la pila para pasar parmetros entre


funciones. Antes de realizar la llamada a una funcin se insertan en la pila todos
los parmetros luego se invoca a la funcin y sta lee los parmetros de la pila.
Cuando se realiza la invocacin de una funcin utilizando las instrucciones CALL
y RET, la estructura tpica de la pila es la que se muestra en la figura 1.9:

20
Segmento de pila
Final de la pila
(valor inicial de ESP)

Variables locales
pasadas al
procedimiento llamado

Parmetros pasados
al procedimiento
llamado

EBP apunta a la
direccin de la
instruccin de retorno
Direccin de la instruccin de
retorno

Registro EBP
Registro ESP

Tope de la pila
Figura 1.9 Uso de la pila cuando se invoca un funcin en lenguaje C
El orden en el que se insertan los parmetros en la pila es importante. Los ltimos
parmetros en insertarse en la pila son los primeros parmetros en la declaracin
de la funcin C.
11.-Estudie el ejemplo mostrado a continuacin en el cual se convierte una
instruccin escrita en lenguaje de mquina a lenguaje ensamblador, para los
casos en que un microprocesador 80386 o posteriores, opera en el modo de
instrucciones de 16 bits y de 32 bits.
Ejemplo 1.7: Instruccin 668BEC H convertida a su forma de lenguaje
ensamblador, cuando es ejecutada en un microprocesador
80386 o posteriores, operando en el modo de instrucciones
de 16 bits.

21
El microprocesador opera en el modo de instrucciones de 16 bits.
La instruccin consta de tres bytes: 66 H, 8B H
instruccin en binario ser el siguiente:
Byte 1 (66 H)
0

y EC H y el formato de la

Byte 2 (8B H)
1

1
W
D

Prefijo de tamao de registro

Cdigo de operacin

Byte 3 (E8 H)
1

MOD

REG

R/M

El byte 1: Selecciona operandos de registro de 32 bits.


El byte 2: Contiene el cdigo de operacin conformado por los seis bits ms
significativos (100010), que corresponden a la operacin MOV. El bit de direccin D
indica que la palabra doble (W = 1) ser movida al registro destino.
El byte 3: Puesto que el campo MOD contiene 11, el campo R/M indica que es un
registro. Las asignaciones de REG y R/M sern las siguientes:
-

REG = 101, que corresponde al registro de 32 bits EBP (operando destino)


R/M = 000, que corresponde al registro de 32 bits EAX (operando fuente)

La instruccin escrita en lenguaje ensamblador es MOV EBP, EAX. Esta instruccin


mueve la palabra doble desde el registro EAX al registro EBP.
Atencin: El ejemplo 1.7 est incluido en el texto Los microprocesadores
Intel, pero es explicado con ms detalle en el presente material.

22
12.-Estudie el ejemplo 1.8, en el cual se presenta un pequeo programa escrito en
lenguaje ensamblador que muestra el uso de la instruccin para transferencia de
datos MOV y el empleo de algunas directivas.
Ejemplo 1.8:

Aplicacin de la instruccin MOV de transferencia de datos y


las directivas ORG, DB y DW.

ORG 1000 H
var_byte
DB
20 H
var_word
DW
?
ORG 2000 H
MOV AX, 1000 H
MOV BX, AX
MOV BL, var_byte
MOV var_word, BX
END
AX BX Instante
En el programa anterior, se observa el uso el uso ms comn de la directiva
ORG. La idea es separar las variables del programa. En el programa, las
variables sern almacenadas a partir de la direccin 1000 H mientras que las
instrucciones del programa estarn a partir de la direccin 2000 H.
La primera instruccin MOV asigna el valor inmediato 1000 H al registro AX.
Esta instruccin emplea el modo de direccionamiento conocido como
inmediato. Como ambos son valores de 16 bits, no hay inconveniente en esa
asignacin.
El siguiente MOV asigna el contenido del registro AX al registro BX. De nuevo,
como ambos son de 16 bits, es una asignacin vlida. El modo de
direccionamiento que usa es el denominado registro.
El tercer MOV asigna el contenido de la variable var_byte (que es 20 H) al
registro BL. Como BL es la parte baja de BX, pasa de 1000 H a 1020 H. Como
BL y var_byte son ambos de 8 bits, es una asignacin permitida. Adems, se
emplea el modo de direccionamiento directo.
El ltimo MOV asigna el valor contenido en el registro BX a la direccin de
memoria a la que var_word hace referencia. Ahora, var_word contiene el
valor 1020 H.
13.-Estudie el ejemplo 1.9, en el cual se presenta un pequeo programa escrito en
lenguaje ensamblador que muestra el uso de las instrucciones aritmticas ADD y
ADC.
Ejemplo 1.9: Aplicacin de las instrucciones aritmticas ADD (suma) y ADC
(suma con acarreo).

23

ORG 1000 H
dato1_l
dato1_h
dato2_l
dato2_h
ORG 2000 H
MOV
ADD
MOV
ADC
END

DW
DW
DW
DW

0FFFF H
0015 H
0011 H
0002 H

AX, dato1_l
AX, dato2_l
BX, dato1_h
BX, dato2_h

Note que la segunda suma es realizada usando un ADC y no un ADD. De esta


manera, si en el ADD se produce un acarreo, ste es sumado junto a dato1_h y
dato2_h durante el ADC, produciendo el resultado correcto.
14.-Estudie el ejemplo 1.10, en el cual se emula una instruccin de un lenguaje de
alto nivel en lenguaje ensamblador, utilizando instrucciones aritmticas, de salto
(condicional e incondicional) y de transferencia de datos.
Ejemplo 1.10: Aplicacin de instrucciones del lenguaje ensamblador para
codificar la estructura de control IF THEN ELSE del lenguaje
Pascal.

No existe una instruccin en el lenguaje ensamblador que sea capaz de hacer lo


que hace la estructura IF-THEN-ELSE de Pascal. Sin embargo, es posible
emularla mediante la combinacin de instrucciones CMP y saltos condicionales
e incondicionales.
Por ejemplo, para simular el siguiente cdigo de Pascal:
IF AL = 4 THEN
BEGIN
BL = 1;
CL = CL + 1;
END;
Se debe comenzar calculando la condicin del IF, en este caso, comparar AL
con 4. Eso se logra con una instruccin CMP:
CMP AL, 4
Esta instruccin alterar los flags y en particular, interesa ver al flag Z, ya que si
dicho flag est en 1, implica que al restar AL con 4, el resultado dio 0, por lo que
AL tiene que valer 4. Entonces, si esa condicin es verdadera, se debera
ejecutar las instrucciones que estn dentro del THEN. Si no, se evita ejecutarlas.

24
Una solucin que permite esto es la siguiente:

Then:
Fin_IF:

CMP AL, 4
JZ
Then
JMP Fin_IF
MOV BL, 1
INC CL
HLT

;(1)
;(2)
;(3)
;(4)
;(5)
;(6)

Analizando el cdigo se puede establecer lo siguiente para cada uno de los


comentarios:
Si la comparacin en (1) establece el flag Z en 1, el salto en (2) se produce,
haciendo que la ejecucin contine en la etiqueta Then. Ah, se ejecutan las
instrucciones (4) y (5) que hacen lo que se encuentra en el THEN del IF y
contina la ejecucin en la instruccin apuntada por la etiqueta Fin_IF
Si el flag Z qued en 0 en (1), el salto en (2) no se produce, por lo que la
ejecucin contina en la prxima instruccin, el JMP en (3), que saltea las
instrucciones y contina la ejecucin en la instruccin apuntada por la
etiqueta Fin_IF , que seala el final del IF.
En el final del IF, se ejecuta un HLT (6) para terminar la ejecucin del
programa.
15.- Resuelva las preguntas y los problemas presentados en el texto indicado en la
bibliografa obligatoria.
Ejercicios propuestos

1.- Aplique los conceptos de modelo de programacin estudiados y describa el


modelo interno de programacin de los microprocesadores de 16 y 32 bits de la
familia Intel, utilizando el mismo esquema presentado en el ejemplo 1.1.
2.- Se propone al estudiante realizar el ejemplo 1.3, utilizando el sistema de
codificacin hexadecimal para especificar el contendido del descriptor.
3.- Determine la direccin de memoria a la cual accede cada una de las siguientes
instrucciones con el modo de operacin real (asuma para ello que DS = 0200 H,
BX = 0300 H y DI = 400 H):
a) MOV EAX,[BX]
b) MOV [DI],AL
4.- Se propone al estudiante realizar el ejemplo 1.7, pero considerando que el modo
de instrucciones es de 16 bits.
5.- Desarrolle una secuencia de instrucciones que intercambie el contenido de AX
con BX, el de ECX con EDX y el de SI con DI.
6.- Explique cmo se convierte la instruccin AAM de binario a BCD.

25

Consulta en otros libros

[Sayers 1995] trata arquitecturas prcticas de microprocesadores de 8, 16 y 32 bits.


[Stallings 2000] Incluye material sobre: la organizacin de los registros visibles al
usuario (modelo de programacin), los modos de direccionamiento y el
repertorio de instrucciones.
[Lameda 1984] presenta el estudio de microprocesadores de 8 bits.
[Flyn85] Flynn, M,;Jonson, J.; and Wakefield, S. On Instruction Sets and Their
Formats IEEE Transactions on Computer, September 1987. Contiene aspectos
de diseo de repertorios de instrucciones, particularmente aquellos relativos a
los formatos.
[Tanenbaum 2000] en el cual se presentan los foatos de las intrucciones, los modos
de direccionamiento y los tipos de instrucciones. Tambien presenta el nivel del
lenguaje ensamblador.
Adems se encuentra informacin sobre la arquitectura del microprocesador en
cualquiera de los textos recomendados

 Consulta en la Web
http://www.itlp.edu.mx/publica/tutoriales/ensamblador/indice5.htm
:
informacin sobre los elementos bsicos del lenguaje ensamblador.

Contiene

http://weblidi.info.unlp.edu.ar/catedras/organiza/download/apunte4.pdf : Contiene
informacin sobre las instrucciones y directivas del lenguaje ensamblador.
Incluye
http://www.tau.org.ar/base/lara.pue.udlap.mx/sistoper/capitulo4.html:
informacin interesante sobre la segmentacin y la paginacin de memoria.
http://futura.disca.upv.es/~eso/es/t2-arquitectura/gen-t2-arquitectura.html: Presenta
una introduccin a la arquitectura IA-32 de los microprocesadores Intel.

26

Ejercicios de Autoevaluacin

1.- Responda con sus propias palabras los siguientes cuestionamientos:


a) Cul es la funcin de un registro de segmento en el direccionamiento de
memoria en modo protegido?
b) Cul es la funcin del TLB (buffer de referencia de traduccin), ubicado
dentro del microprocesador 80486?
2.- Cules son las localidades de inicio y final que direcciona un descriptor del
microprocesador 80286 con una direccin de base de A00000 H y un lmite de
1000 H?
3.- Represente en forma grfica un descriptor que describa un segmento de
memoria bajo las siguientes condiciones:

Inicie en la localidad 03000000 H y termine en la localidad 05FFFFFF H.


El segmento de memoria es un segmento de datos que crece hacia arriba en
el sistema de memoria y puede ser escrito.
El descriptor es para un microprocesador 80386.

4.- Genere en forma grfica la direccin de memoria a la cual accede la instruccin


MOV AL,[1234 H] con el modo de operacin real (suponga para ello que
DS = 0200 H y que en la localidad de memoria 3134 H se encuentra almacenado
el valor 8A H).
5.- Desarrolle una secuencia corta que incluya instrucciones de transferencia de
datos y lgicas, la cual permita establecer en 1 los cinco bits del extremo
derecho de DI, sin cambiar los bits restantes de ste. La secuencia guardar el
resultado en SI, con el objeto de no cambiar el contenido original de DI.

Respuesta a los Ejercicios de Autoevaluacin

1.- A continuacin las respuestas:


a) El registro de segmento contiene un selector que elige a un descriptor de la
tabla de descriptores ya sea local, o global, tambin contiene el nivel de
privilegio solicitado.
b) El TLB almacena las 32 ltimas traducciones de la direccin lineal a la fsica
de la unidad de paginacin.

27
2.- El inicio y fin del segmento ser el siguiente:
Base = Inicio = A00000 H
Final = Base + lmite = A00000 + 1000 h
Final = A01000 H
3.- Utilizando el formato presentado el ejemplo 1.3:
Ocho bytes del
descriptor
7

0000 0011

1001 0000

1001 0010

0000 0000

0000 0000 0000 0000

0010 1111 1111 1111

4.- A continuacin se genera la direccin para la instruccin MOV AL,[1234 H]:

AH

EAX

AL

8A H

8A H

EBX
ECX

CS
DS

0200 H

DS x 10 H

1234 H

8A H

3134 H

28
5.- La secuencia ser la siguiente:
MOV
OR

SI, DI
SI, 1F H

29
UNIDAD 2
Interfaz con la Memoria.
En computadores antiguos, la forma ms comn de almacenamiento de acceso
aleatorio para la memoria principal consista en una matriz de pequeos anillos
ferromagnticos denominados ncleos. Pero con el advenimiento de la
microelectrnica y sus ventajas, naci el uso de las memorias semiconductoras
para la memoria principal. En esta unidad se exploran aspectos claves de esta
tecnologa, se inicia con el estudio de la organizacin y funcionamiento de los
dispositivos semiconductores de memoria, especficamente los cuatro tipos ms
comunes: ROM (memoria de slo lectura), EEPROM (memoria de slo lectura,
borrable y programable elctricamente), SRAM (memoria esttica de acceso
aleatorio) y DRAM (memoria dinmica de acceso aleatorio).
Una vez estudiados los componentes que conforman la memoria principal del
microprocesador, es necesario que se ensamblen estos componentes en forma
correcta a objeto de producir un sistema de memoria adecuado para un
microprocesador. Debe considerarse la cantidad de memoria requerida y el mtodo
ptimo de conectar a toda la memoria del microprocesador. Por esto se incluye en
la unidad 2, la solucin de problemas de conexin de la memoria al
microprocesador mediante la interfaz adecuada, especficamente para la familia de
los microprocesadores Intel.
Objetivo de la Unidad 2: Resolver problemas de conexin de la memoria al
microprocesador, mediante el uso de la interfaz apropiada.
Contenido de la Unidad 2: El contenido de la unidad 2 incluye el estudio de los
siguientes temas:
2.1 Dispositivos de memoria
2.2 Decodificacin de la direccin
2.3 Interfaz de memoria para los microprocesadores de 8, 16,
32 y 64 bits
2.4 RAM dinmica

30
Recomendaciones para el estudio del contenido de la unidad 2.
1.- Examine la tabla 2.1, en ella puede identificar las lecturas de los temas
contentivos de la unidad 2.

TTULO

MATERIAL
DE
REFERENCIA

El texto Los
Interfaz con la Microprocesa
memoria.
dores
Intel,
B. B. Brey.

CAPITULO

10

CONTENIDO

SECCIN

Dispositivos
de
10.1
memoria.
Decodificacin de la
10.2
direccin.
Interfaz
de
la
memoria de los
microprocesadores
10.3 -10.6
de 8, 16, 32 y 64
bits.
RAM dinmica.
Impresoras.

10.7

Tabla 2.1
2.- Una vez ledo el contendido indicado en la tabla 2.1, usted estar en capacidad
de responder lo siguiente:
2.1Cules son los terminales de conexin comunes a todos los dispositivos de
memoria?
2.2Por qu es necesario decodificar las lneas de direccin del
microprocesador?
2.3 Qu es una interfaz de memoria?
2.4Qu tipos de conexin son comunes para todos los dispositivos de
memoria?
2.5 Cuntas palabras se encuentran en un dispositivo de memoria que tenga 8
conexiones de direccin?
3.- Estudie la figura 2.1, la cual ilustra una jerarqua de memoria tpica, como la que
se podra encontrar en una computadora de tamao moderado. Tome en cuenta
que no es la nica configuracin que se podra usar; pero sirve para ilustrar lo
que podra esperarse encontrar cuando se estudia una computadora real.

31
Memoria principal
que consiste en
RAM y ROM.
Almacena el
programa y datos
Actuales.

Unidades de disco
usadas para
Almacenar datos
programas para uso
a futuro.

Lectura/escritura

Unidad de cinta usada para


almacenar datos y
programas que ya no se
requieren o para proteccin
Contra fallas de memoria
Principal o disco.

Lectura/escritura

Figura 2.1 Jerarqua tpica de memoria.


Atencin Las unidades de almacenamiento de disco y de cinta no son objeto
de estudio del curso Microprocesadores.

4.- Examine la figura 2.2 presentada en el ejemplo 2.1, esta arquitectura ilustra una
arquitectura tpica de un arreglo de memoria. En el arreglo, m bits de direccin
se dividen en t bits de direccin de fila y s bits de direccin de columna, para
simplificar los decodificadores a utilizar.
Ejemplo 2.1: Arquitectura tpica de un arreglo de memoria.

La memoria de la figura 2.2 tiene n bits de capacidad, o sea que puede


almacenar n bits de datos. Para acceder a cualquiera de estas n celdas de
memoria es necesario suministrar una direccin nica para identificar la
localizacin requerida dentro del arreglo de memoria.
El acceso o decodificacin de la direccin requerida se facilita dividindola en
direcciones de fila y columna para aplicarlas al arreglo de memoria. Los m bits
de direccin se dividen en t bits de direccin de fila y s de direccin de columna,
lo que simplifica mucho los decodificadores requeridos en el chip de memoria.
En vez de utilizar un decodificador de lnea m a lnea 2m, basta con dos
decodificadores de lnea ms pequeos y simples, t a lnea 2t y lnea s a lnea 2s.
Adems si m es un nmero par, es decir s y t son iguales, se puede simplificar
todava ms el chip de memoria ya que solo se requiere un tipo de decodificador
aunque se necesiten dos

32
Direccin de columna

1. . . . . . . s

Decodificador

2s
Direccin de
fila

1
.
.
.
.
.
t

Decodificador

Arreglo de
memoria

2t

Celda de la
memoria

______
Lectura/escritura

Controladores
de
escritura
y
amplificadores de deteccin, ms
multiplexor de entrada/salida

Salida

Entrada

Figura 2.2 Arquitectura tpica de un arreglo de memria de 2n celdas.

5.- Estudie el ejemplo 2.2, el cual explica en trminos generales la forma en que se
lleva a cabo la correccin de errores en las memoria semiconductoras.

33

Ejemplo 2.2: Cdigo corrector de errores.

Un error en un sistema digital producir que un 1 se reemplace con un 0 o que


un 0 se reemplace con un 1. Es esencial que los errores se detecten de manera
que se haga algo para rectificarlos [Sayers,1995].
Las memorias semiconductoras estn sujetas a errores. Es por esto que la
mayora de los sistemas de memoria modernos incluyen lgica para detectar y
corregir errores. La figura 2.3, ilustra en trminos generales como se lleva a
cabo este proceso.
Salida de error

Salida de datos

M
Corrector

Entrada de datos
M

k
f

k
Memoria

Compa
racin

Figura 2.3 Cdigo corrector de errores.


Cuando se van a escribir datos en memria, se realiza un clculo com los datos
representado por la funcin f, para producir un cdigo. Se almacenan tanto los
datos como el cdigo en la memoria. De esta manera se va a almacenar una
palabra de datos de M bits, y el cdigo tiene una longitud de k bits, el tamao
real de la palabra almacenada es de M + k bits.
Cuando se va a leer una palabra previamente almacenada, se utiliza el cdigo
para detectar errores, se genera un nuevo cdigo de k bits a partir de los M bits
de datos, que se comparara con los bits de cdigo captados de memoria. De
esta comparacin se obtiene uno de los tres resultados posibles:

No se detectan errores. Los bits de datos se envan al exterior.


Se detecta un error y es posible corregirlo. Se dan a un corrector los bits
de datos ms los bits de correccin de error, lo que produce el conjunto
reducido de M bits a ser enviados fuera.

34

Se detecta un error, pero no es posible corregirlo. Se enva una seal de


error.

Ejercicios propuestos
1.- Describa cmo se realiza la seleccin de la direccin requerida en el arreglo de
memoria presentado en la figura 2.2, para el caso en que la memoria sea del
tipo RAM.
2.- Cuntos dispositivos de memoria de 4 K x 1 se requieren para proporcionar un
complemento total de memoria para un procesador de 8 bits con 16 lneas de
direccin? Represente grficamente la conexin adecuada de la memoria al
microprocesador.

Consulta en otros libros

[Sayers 1995] Incluye


microprocesador.

informacin

sobre

arreglos

de

memoria

para

un

[Satallings 2000]
Proporciona un tratamiento amplio sobre las memorias
semiconductoras, incluyendo la interfaz RAMLink, la cual se centra en la
interfaz procesador/memoria, en lugar de en la arquitectura interna de los chips
DRAM.
[Lameda 1984] presenta variados ejemlos sobre el diseo de los sistemas de
memoria.

 Consulta en la Web
http://ortihuela.galeon.com/ram.htm: Incluye informacin sobre los diversos tipos de
memoria RAM.
http://es.wikipedia.org/wiki/Memoria_RAM: Presenta informacin relevante sobre los
tipos de memoria RAM y sus aplicaciones.

Ejercicios de Autoevaluacin

1.- Configure la memoria de un sistema con una longitud de palabra de 16 bits. La


cantidad de memoria RAM requerida es de 1 K empezando en la posicin
000000 H. Y una cantidad de memoria ROM (EPROM) de 4K empezando en la

35
posicin 30F000 H. Para ello se dispone de circuitos EPROM de 2K x 8 y
circuitos RAM de 256 x 8. Presente tambin la tabla de decodificacin necesaria.
2.- Se pide disear un sistema de microprocesador que pueda direccionar 64 K
localizaciones de memoria. La memoria deber estar conformada por 4 K x 8 de
EPROM y 4 K x 8 de RAM. El microprocesador a utilizar dispone de 16 lneas de
direccin, y las seal de control R/W (cuando se desea leer un dato de memoria
se activa la seal R mediante un 1 lgico, por el contrario si se desea escribir en
la memoria RAM la seal W deber tomar el valor de 0 lgico). A continuacin
se presenta el microprocesador y los dispositivos de memoria a utilizar:

Microprocesador

D0 a D7

A15
A14
.
.
A0

Lneas de direccin

_
R/W

Canal de control
Canal de datos

A0 A1
A0 A1

A11
__
CS

RAM
4kX8

___
CSR

A11
__
CS

EPROM
4kX8

___
CSE

_
D0 a D7

__
OE

D0 a D7

R/W

En base al planteamiento dado anteriormente presenta la conexin adecuada de


los dispositivos de memoria al microprocesador para lograr la configuracin
deseada.

Respuesta a los Ejercicios de Autoevaluacin


1.- Como las direcciones contienen tres bytes, se requieren 24 lneas de direccin
(desde A0 hasta A24). La cantidad de dispositivos RAM a utilizar es de 4 (ya que

36
4 x 256 bytes = 1024 bytes = 1k) y dos dispositivos EPROM. El sistema de
memoria as configurado ser el siguiente:
000000 H
RAM1

RAM2

RAM3

RAM4

000200 H
0003FF H
VACIO
NO USADO
30F000 H

EPROM1

EPROM2

30FFFF H
VACIO NO USADO
FFFFFF H
Y la tabla de decodificacin ser la siguiente:
A2

A2

A2

A2

A1

A1

A1

A1

A1

A1

A1

A1

A1

A1

A
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
1
1

X
X
X
X

X
X
X
X

X
X
X
X

X
X
X
X

X
X
X
X

X
X
X
X

X
X
X
X

X
X
X
X

0
1
0
1

0
0

0
0

1
1

1
1

0
0

0
0

0
0

0
0

1
1

1
1

1
1

1
1

X
X

X
X

X
X

X
X

X
X

X
X

X
X

X
X

X
X

X
X

X
X

0
1

RAM1
RAM2
RAM3
RAM4
EPRO
M1
EPRO
M2

2.- Para direccionar la memoria slo se requieren utilizar 12 lneas de direccin


(212 = 4 K) y para evitar que los dispositivos RAM y ROM coloquen informacin
en el canal de datos, cuando las seales CSE y CSR toman el valor de cero
lgico, es necesario distinguir entre las dos memorias mediante estas seales.
Por medio de las lneas de direccin no usadas A12 a A15 se puede determinar el
estado de las lneas de seleccin de los chips. Debe obtenerse una relacin
entre las lneas de direccin restantes de modo que ambas lneas de seleccin
de chip jams estn bajas al mismo tiempo. Esto se logra mediante la
decodificacin de direcciones. La decodificacin se puede obtener de acuerdo a
lo siguiente:

37

A15

A14

A13

___
A12

___
CSE

CSR

0
0
0
.
.
.
1

0
0
0
.
.
.
1

0
0
1
.
.
.
1

0
1
0
.
.
.
1

0
1
1
.
.
.
1

1
0
1
.
.
.
1

Usando este esquema, cada localizacin de memoria fsica se identifica en


forma singular, a continuacin se muestra la conexin adecuada:
Lneas de direccin
A15
A12
A11
A1
A0

Microprocesador

D0 a D7

A0 A1

_
R/W

A11
__
CS

A0 A1
___
CSR

RAM
4kX8

__
EPROM
4kX8

_
D0 a D7

R/W

Canal de
control

Canal de datos

A11
__
CS

__
D0 a D7

OE

CSE

38

UNIDAD 3
Interfaz de E/S Bsica, Interrupciones y E/S Controlada por DMA
Por muy poderosa que sea una unidad central de procesamiento (CPU), la utilidad
de una computadora depende esencialmente de sus capacidades de entrada y
salida. Es decir sin ellas, no habra por ejemplo entrada desde el teclado, ni salida
desde la pantalla, ni salida impresa y ni siquiera almacenamiento y recuperacin en
disco. Para ello se requiere utilizar rutinas y medios especializados que permitan
procesar la entrada y la salida.
Motivado a esto, se presenta en esta unidad
y sus interfaces, especficamente con el
introducen dos tcnicas avanzadas de E/S,
memoria, adems de los componentes y
posibles.

el estudio de los componentes de E/S


microprocesador. Posteriormente se
las interrupciones y acceso directo a
las configuraciones que las hacen

Objetivo de la Unidad 3: Resolver problemas de atencin a los dispositivos de E/S,


haciendo uso de interfases bsicas programables y/o por interrupcin y/o
controladas por DMA.
Contenido de la Unidad 3: El contenido de la unidad contempla el estudio de los
siguientes temas:
Interfaz bsica de E/S.
Interrupciones.
Acceso directo a la memoria.
E/S controlada por DMA.

39
Actividades recomendadas para el estudio del contenido de la unidad 3.
1.- Examine la tabla 3.1, en ella
contentivos de la unidad 3:
TTULO

puede identificar las

MATERIAL DE
REFERENCIA

lecturas de los temas

CAPITUL
O

CONTENIDO
Introduccin a la interfaz de
E/S.
Decodificacin de direccin
de un puerto de E/S.

texto
Los
La interfaz de El
entrada/salida
Microprocesadores
bsica.
Intel, B. B. Brey.
La
interfaz
programable.

11
perifrica

La interfaz programable de
teclado/pantalla tipo 8279.
Procesamiento
interrupciones.

bsico

de

Interrupciones por hardware.


Expansin de la estructura de
interrupciones..
Interrupciones.

El
texto
Los
Microprocesadores
Intel, B. B. Brey.
Controlador de interrupcin
programable 8259A .

12

Ejemplos de interrupcin.
Acceso directo a
Operacin bsica del DMA y
texto
Los
memoria y E/S El
el controlador del DMA 8237.
controlada
por Microprocesadores
Intel, B. B. Brey.
DMA.
Operacin
del
bus
compartido.

Tabla 3.1

13

40

a)

Ampliacin de conocimientos: El contenido Interfaz programable de


comunicaciones 16550, incluido en el captulo 11 seccin 11-6, del texto Los
Microprocesadores Intel, no
es objeto de evaluacin del curso
Microprocesadores, sin embargo, se recomienda su lectura, ya que sta es
utilizada para conectarse prcticamente a cualquier tipo de interfaz serial.

Atencin: Para el establecimiento de una interfaz se requieren ciertos


conocimientos de electrnica, el texto del curso examina algunos hechos
relacionados con ella, los cuales se recomienda leer, a objeto de obtener una
mejor comprensin del contenido.

2.- Lea los siguientes aspectos tericos, a travs de los cuales reforzar los
conocimientos adquiridos.
Buffer de tres estados (o buffer triestado).
Un dispositivo lgico semiconductor que puede tener tres estados: (1) un estado
lgico 0, (2) un estado lgico 1 y (3) un estado en el que la salida est,
efectivamente, desconectada del resto del circuito y no tiene influencia sobre l.
[Lameda,1984].
Tecnologa TTL
Acrnimo en Ingls de Transistor-Transistor Logic o "Lgica Transistor a
Transistor". Tecnologa de construccin de circuitos electrnicos digitales, en los
que los elementos de entrada de la red lgica son transistores, as como los
elementos de salida del dispositivo.
Las caractersticas de la tecnologa utilizada, en la familia TTL, condiciona los
parmetros que se describen en sus hojas de caractersticas segn el fabricante:
Su tensin de alimentacin caracterstica se halla comprendida entre los 4.75 V
y los 5.25 V como se ve un rango muy estrecho debido a esto, los niveles
lgicos vienen definidos por el rango de tensin comprendida entre 0.2 V y 0.8 V
para el estado L (bajo) y los 2.4 V y Vcc para el estado H (alto).
La velocidad de transmisin entre los estados lgicos es su mejor baza,
ciertamente esta caracterstica le hacer aumentar su consumo siendo su mayor
enemigo. Motivo por el cual han aparecido diferentes versiones de TTL como
FAST, LS, S, etc y ltimamente los TTL: HC, HCT y HCTLS. En algunos casos
puede
alcanzar
poco
ms
de
los
250
Mhz.
[http://es.wikipedia.org/wiki/Tecnolog%C3%ADa_TTL].
Nota: Vcc es el nivel de 5 V (voltios).

41
LED (siglas en ingls de Diodo Emisor de Luz).
Semiconductor especial que emite luz, cuando lo recorre una corriente elctrica.
[Sayers 1995].
Interfaces con el microprocesador.
La mayora de los microprocesadores tiene poco valor funcional por si mismos.
Muchos no contienen una memoria sustancial, y pocos tienen puertos de
entrada y salida que los conecten directamente a dispositivos perifricos. Los
microprocesadores operan como parte de un sistema. La interconexin, o
enlace, de las partes en este sistema se denomina interfaz. [Tokheim, 1995].
E/S asignada a memoria y E/S aislada.
Cuando el procesador, la memoria principal y la E/S comparten un bus comn,
son posibles dos modos de direccionamiento: asignado en memoria (memorymapped) y aislado. Con las E/S asignadas a memoria, existe un nico espacio
de direcciones para las posiciones de memoria y los dispositivos de E/S. La CPU
considera los registros de estado y de datos de los mdulos de E/S como
posiciones de memoria, y utiliza las mismas instrucciones mquina para acceder
tanto a la memoria como a los dispositivos de E/S. As por ejemplo, con 10
lneas de direccin se puede acceder a un total de 1024 posiciones de memoria
y direcciones de E/S, en cualquier combinacin.
Con la E/S asignadas en memoria, se necesita una sola lnea de lectura y una
sola lnea de escritura en el bus. Alternativamente, el bus puede disponer de
lneas de lectura y escritura en memoria junto con lneas para rdenes de
entrada y salida. En este caso, las lneas de rdenes especifican si la direccin
se refiere a una posicin de memoria o a un dispositivo de E/S. El rango
completo de direcciones est disponible para ambos. De nuevo, con 10 lneas
de direccin, el sistema puede soportar ahora 1024 posiciones de memoria y
1024 direcciones de E/S. Puesto que el espacio de direcciones de E/S est
aislado del de memoria, ste se conoce con el nombre de E/S aislada. [Stallings,
2000].
Protocolo con respuesta (Handshaking)
Un tpico sistema de comunicacin en paralelo puede ser de una direccin
(unidireccional) o de dos direcciones (bidireccional). El ms simple mecanismo
utilizado en un puerto paralelo de una PC es de tipo unidireccional y es el que
analizaremos en primer lugar. Distinguimos dos elementos: la parte transmisora
y la parte receptora. La parte transmisora coloca la informacin en las lneas de
datos e informa a la parte receptora que la informacin (los datos) estn
disponibles; entonces la parte receptora lee la informacin en las lneas de datos
e informa a la parte transmisora que ha tomado la informacin (los datos).
Observe que ambas partes sincronizan su respectivo acceso a las lneas de

42
datos, la parte receptora no leer las lneas de datos hasta que la parte
transmisora se lo indique en tanto que la parte transmisora no colocar nueva
informacin en las lneas de datos hasta que la parte receptora remueva la
informacin y le indique a la parte transmisora que ya ha tomado los datos, a
sta coordinacin de operaciones se le llama acuerdo entendimiento. Bien, en
stos mbitos tecnolgicos es recomendable utilizar ciertas palabras en ingls
que nos permiten irnicamente un mejor entendimiento de los conceptos
tratados. Repito: a la coordinacin de operaciones entre la parte transmisora y la
parte receptora se le llama handshaking, que en espaol es el acto con el cual
dos partes manifiestan estar de acuerdo, es decir, se dan un apretn de manos.
El handshaking
Para implementar el handshaking se requieren dos lneas adicionales. La lnea
de estroboscopio (en ingls strobe) es la que utiliza la parte transmisora para
indicarle a la parte receptora la disponibilidad de informacin. La lnea de
admisin (acknowledge) es la que utiliza la parte receptora para indicarle a la
parte transmisora que ha tomado la informacin (los datos) y que est lista para
recibir ms datos. El puerto paralelo provee de una tercera lnea de handshaking
llamada en ingls busy (ocupado), sta la puede utilizar la parte receptora para
indicarle a la parte transmisora que est ocupada y por lo tanto la parte
transmisora no debe intentar colocar nueva informacin en las lneas de datos.
Una tpica sesin de transmisin de datos se parece a lo siguiente:
Parte transmisora:
La parte transmisora chequea la lnea busy para ver si la parte receptora est
ocupada. Si la lnea busy est activa, la parte transmisora espera en un bucle
hasta que la lnea busy est inactiva.
La parte transmisora coloca la informacin en las lneas de datos.
La parte transmisora activa la lnea de strobe.
La parte transmisora espera en un bucle hasta que la lnea acknowledge est
activa.
La parte transmisora inactiva la lnea de strobe.
La parte transmisora espera en un bucle hasta que la lnea acknowledge est
inactiva.
La parte transmisora repite los pasos anteriores por cada byte a ser
transmitido.
Parte receptora:
La parte receptora inactiva la lnea busy (asumiendo que est lista para
recibir informacin).
La parte receptora espera en un bucle hasta que la lnea strobe est activa.
La parte receptora lee la informacin de las lneas de datos (y si es
necesario, procesa los datos).
La parte receptora activa la lnea acknowledge.
o La parte receptora espera en un bucle hasta que est inactiva la lnea
de strobe.
La parte receptora inactiva la lnea acknowledge.
La parte receptora repite los pasos anteriores por cada byte que debe recibir.

43
Se debe ser muy cuidadoso al seguir stos pasos, tanto la parte transmisora
como la receptora coordinan sus acciones de tal manera que la parte
transmisora no intentar colocar varios bytes en las lneas de datos, en tanto
que la parte receptora no debe leer ms datos que los que le enve la parte
transmisora,
un
byte
a
la
vez.
[http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm].
CHIP
Pequea placa o pastilla de material semiconductor usado para producir un
circuito integrado. [Lameda, 1984].
Tipos de interfaces
La interfaz entre el perifrico y el mdulo de E/S debe ajustarse a la naturaleza y
la forma de funcionar del perifrico. Una de las principales caractersticas de la
interfaz es si es serie o paralela. En una interfaz paralela, hay varias lneas que
conectan el mdulo de E/S y el perifrico, y se transfieren varios bits
simultneamente a travs del bus de datos. En una interfaz serie, hay slo una
lnea para transmitir los datos, y los bits deben transmitirse uno a uno . Las
interfaces paralelas se utilizan usualmente para los dispositivos de alta
velocidad, como una cinta o disco. Las interfaces serie son ms propias de
impresoras y terminales. [Stallings, 2000].
Tcnica de E/S mediante interrupciones.
Es aquella en la que el programa genera una orden de E/S y despus contina
ejecutndose hasta que el hardware de E/S interrumpe para indicar que la
operacin de E/S ha concluido. [Stallings, 2000].
Lneas de interrupcin del microprocesador Intel 80386.
El microprocesador 80386 de Intel posee una lnea de peticin de interrupcin
(INTR, Interrup request) y una sola lnea de reconocimiento de interrupcin
(INTA, Interrup Acknowledge). [Stallings, 2000].
Funcionamiento del DMA.
El DMA requiere un mdulo adicional en el bus del sistema. El mdulo DMA (ver
figura 3.1) es capaz de imitar al procesador y, de hecho, es capaz de recibir el
control del sistema cedido por el procesador. Necesita dicho control para
transferir datos a, y desde, memoria a travs del bus del sistema. Para hacerlo,
el mdulo DMA debe utilizar el bus slo cuando el procesador no lo necesita, o
debe forzar al procesador a que suspenda temporalmente su funcionamiento.
sta ltima tcnica es la ms comn y se denomina robo de ciclo
(cycle
stealing), puesto que, en efecto, el mdulo DMA roba un ciclo de bus.

44

Contador de
datos
Lneas de
datos

Lneas de
direcciones
DMA REQ

Registro de
datos
Registro de
direccin

DMA ACK
INTR

Lgica de
control

Read
Write

Figura 3.1. Diagrama tpico de un mdulo de DMA.


Cuando el procesador desea leer o escribir un bloque de datos, enva a una
orden al mdulo de DMA, incluyendo la siguiente informacin:
Si se solicita una lectura o una escritura, utilizando la lnea de control de
lectura o escritura entre el procesador y el mdulo DMA.
La direccin del dispositivo de E/S en cuestin, indicada a travs de la lnea
de datos.
La posicin inicial de memoria a partir de donde se lee o se escribe,
indicada a travs de las lneas de datos y almacenada por un mdulo de
DMA en su registro de direcciones.
El nmero de palabras a leer o escribir, tambin indicando a travs de las lneas de
datos y almacenado en el registro de cuenta datos. Despus el procesador contina
con otro trabajo. Ha delegado la operacin de E/S al mdulo de DMA, que se
encargar de ella El mdulo de DMA, transfiere el bloque completo de datos palabra
a palabra, directamente desde, o hacia, la memoria, sin que tenga que pasar a
travs del procesador. Cuando la transferencia se ha terminado, el mdulo de DMA
enva una seal de interrupcin al procesador. As pues, el procesador slo
interviene al comienzo y al final de la transferencia (ver figura 3.2). [Stallings, 2000].

45
CPU
Mandar orden de
lectura de bloque
al mdulo DMA

Leer el estado del


mdulo DMA

DMA
Hacer otra cosa

DMA

CPU

Figura 3.2. Acceso directo a memoria


3.- Estudie el ejemplo 3.1, en cual presenta la descripcin y funcionamiento de la
interfaz programable de perifricos (IPP) Intel 82C55A.
Ejemplo 3.1: Descripcin y funcionamiento de la
programable 82C55A Intel.

interfaz de perifrico

Este tipo de interfaz se utiliza para la E/S programada y para la E/S mediante
interrupciones. El 82C55A es un mdulo de E/S de propsito general integrado en
un solo chip y diseado para ser usado con el procesador Intel 8086.
[Stallings,2000]. La figura 3.3 muestra el diagrama general de bloques de la IPP
82C55A de Intel.

46

Buffer de
datos

Bus de
datos
del 8086

Bus interno
de 8 bits

8
A

+ 5 V (Vdd)

Fuente
de
alimentacin

Tierra (GND)

CA
4

A0
A1
Read
Write
Reset
Chip
select

CB
Lgica
de
control
8
Registro
de
control

Buffer de
datos
Figura 3.3 Diagrama de bloques de la IPP 82C55A de Intel.

Las 24 lneas de E/S son programables por el 8086 mediante un registro de control.
El 8086 puede fijar el valor del registro de control para especificar los diversos
modos de operacin y configuraciones. Las 24 lneas se dividen en tres grupos de 8
bits (A, B, C). Cada grupo puede funcionar como un puerto de E/S de 8 bits.
Adems, el grupo C se subdivide en grupos de 4 bits (CA y CB), que pueden usarse
conjuntamente con los puertos de E/S de A y B.
El diagrama de la figura 3.3 es la interfaz interna con el bus del 8086. sta incluye
un bus de datos bidireccional de 8 bits (D0 a D7), usado para transferir datos a y
desde, los puertos de E/S, y para transferir la informacin al registro de control. Las
dos lneas de direcciones (A0 y A1) especifican uno de los dos puertos de E/S o el
registro de control. Una transferencia se producir cuando la lnea de seleccin de

47
chip (CHIP SELECT) se activa junto con la lnea de lectura (READ) o escritura
(WRITE). La lnea RESET se utiliza para iniciar el mdulo.
El procesador escribe en el registro de control para seleccionar el modo de
operacin y para definir las seales, en su caso. En el modo 0 de operacin, los tres
grupos de 8 lneas externan funcionan como tres puertos de E/S de 8 bits. Cada
puerto puede ser designado como de entrada o de salida. En caso contrario, los
grupos A y B funcionan como puertos de E/S, y las lneas del grupo C sirven de
lneas de control para A y B. Las lneas de control tiene dos funciones principales: la
sincronizacin mediante conformidad de seales (handshaking) y la peticin de
interrupciones. La conformidad de un mecanismo sencillo de temporizacin. El
emisor utiliza una lnea de control como lnea de datos listos (DATA READY) para
indicar que hay un dato en las lneas de datos de E/S. El receptor utiliza otra lnea
como reconocimiento (ACKNOLEDGE), para indicar que el dato se ha ledo y que
las lneas de datos se pueden liberar. Se puede seginar otra lnea como lnea de
peticin de interrupcin (INTERRUPT REQUEST) en el bus del sistema.
4.- En el ejemplo 3.2, se presenta una aplicacin de la interfaz 82C55A, para
controlar un terminal con teclado y pantalla.
Ejemplo 3.2: Uso de la interfaz 82C55A para controlar la conexin de un
teclado y una pantalla al microprocesador.

En la figura 3.4, se ilustra el uso de la interfaz programable de perifricos Intel


82C55A. El teclado proporciona 8 bits de entrada, dos de estos bits, SHIFT y
CONTROL, tienen un significado especial para el programa de gestin de teclado
que ejecuta el procesador. Sin embargo este significado es transparente para el
82C55A, que simplemente acepta los 8 bits de datos y los pone en el bus de datos
del sistema. Existen dos lneas para la sincronizacin del teclado mediante
conformidad (handshaking).
La pantalla tambin est conectada a un puerto de datos de 8 bits. De nuevo, dos
de los bits tiene un significado especfico que es transparente para el 82C55A.
Junto a las dos lneas para la sincronizacin mediante conformidad, hay dos lneas
ms para funciones de control adicionales.

48
Peticin de
interrupcin
C3

A0
A0
A1
A2
A3
A4
A5
A6

C4
C5

R0
R1
R2
R3
R4
R5
Shift (deslazamiento)
Control

Dato preparado
Reconocimiento

82C55A

C0

B0
B1
B2
B3
B4
B5
B6
B7

S0
S1
S2
S3
S4
S5
Backspace
Borrar

C1
C2
C6
C7

Dato preparado
Reconocmiento
Blanking
Borrar lnea

Peticin de
Interrupcin
Figura 3.4 Interfaz teclado/pantalla en el 82C55A
5.- En el ejemplo 3.3 se muestra el uso de la E/S mediante interrupciones, para leer
un bloque de datos desde un dispositivo perifrico y almacenarlo en la memoria.
Ejemplo 3.3: E/S con interrupciones para leer un bloque de datos.

En la figura 3.5 se muestra el conjunto de acciones que deben desarrollarse para


procesar una E/S haciendo uso de las interrupciones. El procesador tras enviar una
orden de E/S a un mdulo, contina realizando algn trabajo til. Despus, el
mdulo de E/S interrumpir al procesador para solicitar su servicio cuando est
preparado para intercambiar datos con l. El procesador ejecuta entonces la
transferencia de datos, y despus contina con el procesamiento previo.

49

Mandar orden de
lectura al mdulo de
E/S

CPU

I/O
Hacer otra cosa

Leer el estado del


mdulo de E/S

Interrupcin
E/S

Comprobar
el estado

CPU

Condicin de error

Preparado
Leer una palabra del
mdulo de E/S

Escribir una palabra


en memoria

No

E/S

CPU

CPU

Memoria

Comprobar
el estado

Si
Instruccin siguiente
Figura 3.5. Entrada de un bloque de datos mediante interrupciones.
6.- En el ejemplo 3.4, se presenta una aplicacin del PIC (controlador de
interrupciones programable) 82C59A para conectar varios mdulos de E/S con
el microprocesador Intel 80386.

50

Ejemplo 3.4: Uso del PIC 82C59A para gestionar la interrupcin de 64


mdulos de E/S.

En la figura 3.6 se ilustra el uso del PIC 82C59A para conectar 64 mdulos de E/S.
Debido a que un 82C59A slo puede manejar hasta 8 mdulos, es necesario
disponer de un sistema en cascada para controlar los 64 mdulos de E/S.
La nica responsabilidad del 82C59A es la gestin de interrupciones. Acepta la
solicitud de interrupcin de los dispositivos conectados a l, determina qu
interrupcin tiene la prioridad ms alta, y se lo indica entonces al procesador
activando la seal INTR. El procesador reconoce la solicitud mediante la lnea INTA.
Esto hace que el 82C59 site el vector apropiado en el bus de datos. Entonces, el
procesador puede iniciar el procesamiento de la interrupcin y comunicarse
directamente con el mdulo de E/S para leer o escribir datos.
Si se precisa controlar ms de 8 mdulos, se puede disponer en cascada para
manejar para conectar

51
Controlador de
interrupciones
82C59A esclavo
Dispositivo externo 00
Dispositivo externo 01

Dispositivo externo 07

IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7

INT

Controlador de
interrupciones
82C59A esclavo
Dispositivo externo 08
Dispositivo externo 09

IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7

INT

Concentrador de
interrupciones
82C59A maestro
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7

INT

Procesador
80386

INTR

Dispositivo externo 15

Controlador de
interrupciones
82C59A esclavo
Dispositivo externo 56
Dispositivo externo 57

Dispositivo externo 63

IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7

INT

Figura 3.6. Uso del controlador de interrupciones 82C59A.


Entrada de un bloque de datos mediante interrupciones.

52
7.- En el ejemplo 3.5, se presenta una aplicacin del funcionamiento de un mdulo
DMA, para escribir un bloque de 32 bytes de la direccin de memoria 100 en una
terminal (un terminal de computadora consta de dos partes: un teclado y un
monitor).
Ejemplo 3.5: Transferencia de un bloque de 32 bytes desde memoria a un
terminal de computadora, usando la tcnica de E/S de DMA.

La E/S controlada por interrupciones es un gran adelanto en comparacin con la


E/S programada [TANENBAUM, 2000]. El problema es que se requiere una
interrupcin por cada carcter transmitido. El procesamiento de interrupciones es
costoso. Razn por la cual es necesario una forma de reducir la mayor parte de las
interrupciones.
La solucin es regresar a la E/S programada, pero encargrsela a otro dispositivo
que no sea el CPU. La figura 3.7 muestra como se logra esto. Se ha aadido un
nuevo chip al sistema, un controlador de acceso directo a la memoria (DMA), con
acceso directo al bus.

Direccin
CPU

DMA

Memoria

100
Cuenta

Controlador
RS232C

32
4

100

1
Dispositivo

Sentido

Bus
Figura 3.7. Sistema controlador DMA
El chip DMA contiene al menos cuatro registros, todos los cuales pueden ser
cargados por software que se ejecuta en la CPU. El primero contiene la direccin de
memoria que se leer o en la que se escribir. El segundo contiene el nmero de
bytes (o palabras) que se transferirn. El tercero especfica el nmero de

53
dispositivo o espacio de direcciones de E/S que se usar, con lo que se especifica
qu dispositivo de E/S se desea. El cuarto indica si los datos se escribirn en el
dispositivo de E/S o se leern de l.
Para escribir un bloque de 32 bytes de la direccin 100 en una terminal (por
ejemplo, el dispositivo 4), la CPU escribe los nmeros 100, 32 y 4 en los primeros
tres registros del DMA, y luego el cdigo de escribir ( por ejemplo, 1) en el cuarto,
como se muestra en la figura 3.7. Una vez inicializado con estos valores, el
controlador DMA emite una solicitud de bus para leer el byte 100 de la memoria,
del mismo modo como la CPU leera de la memoria. Una vez que obtiene el byte, el
controlador de DMA emite una solicitud de E/S al dispositivo 4, para escribir el byte
en l. Una vez completadas ambas operaciones, el controlador de DMA incrementa
en 1 su registro de direccin y decrementa en 1 su registro de cuenta. Si el registro
de cuenta sigue siendo mayor que 0, se lee otro byte de la memoria y se escribe en
el dispositivo.
Cuando la cuenta por fin llega a 0, el controlador de DMA deja de transferir data y
habilita la lnea de interrupcin en el chip del CPU. Con DMA, la CPU solo tiene que
inicializar unos cuantos registros. Una vez hecho eso, queda libre para hacer otras
cosas hasta que se completa la transferencia,
Ejercicios propuestos

1.- Asuma que un procesador de 16 bits y dos de 8 bits deben conectarse a un bus
del sistema. Considere los siguientes detalles:
Todos los microprocesadores tiene el hardware necesario para cualquier tipo
de transferencia: E/S programada, E/S mediante interrupciones y DMA.
Todos los microprocesadores tienen un bus de direcciones de 16 bits.
Hay dos tarjetas de memoria, de 64 Kbytes cada una, conectada al bus. El
diseador desea que se comparta la mayor cantidad de memoria posible.
El bus del sistema permite un mximo de cuatro lneas de interrupcin y una
de DMA.
Haga las suposiciones adicionales que necesite, y:
a) Establezca las especificaciones del bus en trminos del nmero de lneas.
b) Explique cmo es la interfaz de los dispositivos indicados arriba para
conectarse al bus.
2.- Una impresora de caracteres simples podra usar razonablemente bien una
entrada/salida programada, pues su velocidad es lenta. Comparada con la
unidad central de procesamiento. Sin embargo, la mayora de las impresoras
modernas utiliza el acceso directo a la memoria. Por qu?.
3.- Por qu el acceso directo a la memoria (DMA) sera intil si la computadora
careciera de la capacidad de interrupcin?

54

Consulta en otros libros

[Stallings, 2000] Dedica un captulo a los distintos aspectos de la organizacin de


E/S, tambin describe la interfaz entre los mdulos de E/S y los dispositivos
externos.
[Tokheim, 1995] Hace una presentacin de las interfaces con el microprocesador.
[Tanenbaum, 2000] Cubre algunos aspectos de los temas de esta unidad.
[Lameda, 1984] Presenta un estudio de los mtodos para introducir y extraer datos
del computador, tambin incluye el estudio de las interfaces con dispositivos para
entrada/salida.
[Sayers 1995] Contiene aspectos orientados al estudio de problemas externos de
interfaz de un microprocesador con el mundo real.
Se sugiere consultar tambin los otros textos recomendados en la bibliografa.

 Consulta en la Web
http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm: Contiene informacin
sobre el puerto paralelo del PC.
http://www.iuma.ulpgc.es/users/armas/asignaturas/fundamentos/tutorial/entradas_y_
salidas/index.htm: Es un tutorial con informacin asociada a la E/S del
sistema.

Ejercicios de Autoevaluacin

1.- Un dispositivo perifrico junto con su controlador de E/S se conectar a un


computador mediante el uso de un controlador DMA. Todos los mdulos que
conforman el sistema comparten el mismo bus master. El perifrico solicita una
transferencia al controlador de DMA, el cual a su vez solicita el bus a la CPU. Si
la CPU no est utilizando el bus ni est en estado LOCK, lo concede al

55
controlador de DMA, el cual a su vez informa al perifrico para que prepare los
datos a transferir.
En una transferencia de entrada, los datos se mueven desde el perifrico (I/O) a
la memoria por el bus de datos sin pasar por el controlador de DMA y sin
intervencin de la CPU. Las lneas de control para leer la I/O (IOR) y para
escribir la memoria (MEMW) son manejadas por el controlador de DMA. De la
misma forma, en una transferencia de salida los datos se mueven desde la
memoria a la I/O y el controlador de DMA maneja las lneas de control para leer
la memoria (MEMR) y para escribir en el perifrico (IOW).
Con base a lo anteriormente expuesto, solucione la manera en que debe
configurarse el sistema para el control de la E/S mediante el uso de la tcnica
DMA y que cumpla con las especificaciones dadas.
2.- La conexin a perifricos en un sistema de microcomputador puede hacerse
mediante el uso de chips especializados de entradas y salidas. Estos chips
tienen como caracterstica comn su programabilidad por software y su conexin
directa a los buses del sistema sin lgica auxiliar.
Parta de la informacin dada anteriormente y resuelva el problema de la
conexin de la PPI (interfaz perifrica programable) tipo 82C55, en un sistema
de microprocesador directamente ligados a los buses.

Respuesta a los Ejercicios de Autoevaluacin

1.- En la siguiente figura se presenta una solucin que permite el control de la E/S,
mediante el uso de un controlador DMA.

56
Se observa que el sistema configurado, consta de un perifrico con su controlador
de E/S, un controlador de DMA y las seales de pedido y concesin del bus que
permiten alternar el "bus master" entre la CPU y el controlador de DMA
2.- La disposicin de la PPI 82C55 en este tipo de sistema, se muestra a
continuacin:
Bus de datos (8 bits)
Bus de direcciones
(16 bits)s)

8
CS

A0

A1

Puerto A

D0
D7
82C55
Puerto C

A1
A0
__
CS
Puerto B
__
RD
I/OR

__
WR

RESET

I/OW

RESET

Bus de control

57

UNIDAD 4
Interfaz del bus
El PC (Personal Computer), es un sistema de propsito general, que puede ser
ajustado a las necesidades del usuario agregando placas con la electrnica
necesaria, acompaadas de software que permita controlarlas. Un posible
ejemplo es el procesamiento de imgenes de video: basta colocar una tarjeta
adquisidora de video y configurar su software controlador para hacer que una
aplicacin de procesamiento de imgenes, ejecutndose en el PC, pueda
procesar las imgenes adquiridas con la placa.
Se pueden colocar en un sistema PC, el tipo de interfaz (tarjeta) que uno
desee, para controlar los ms variados dispositivos perifricos gracias a las
Ranuras de Expansin o Slots (Conector). Existen varios tipos de Ranuras de
Expansin, de distintas formas y caractersticas. Consisten simplemente en
zcalos que sirven para conectar los bordes de las tarjetas interfaces. El
conjunto de esos zcalos, de un cierto tipo se llama Bus de Sistema. Cada
zcalo se denomina SLOT y da lo mismo, para conectar una tarjeta, un slot que
otro ya que se encuentran conectados en paralelo.
Los computadores poseen distintos tipos de buses que proporcionan
comunicacin a distintos niveles dentro de la jerarqua del sistema. El bus que
conecta los componentes principales del computador (procesador, memoria y
E/S) se denomina bus del sistema. Las estructuras de interconexin ms
comunes dentro de un computador estn basadas en el uso de uno o ms
buses.
En la unidad 4, se presenta el estudio de la Arquitectura de los buses, y la
interconexin de los perifricos.
Objetivo de la Unidad 4: Resolver problemas de implementacin de interfaces
sencillas que se conecten a los buses ISA extendido y/o VESA Local y/o PCI
y/o USB y/o AGP.

Contenido de la Unidad 4: El contenido de la unidad contempla el estudio de


los siguientes temas:
El bus ISA, Arquitectura de los buses ISA extendido (EISA) y
(VESA) Local.
El bus de interconexin de los componentes perifricos (PCI).
El bus serial universal USB.
Puerto grafico acelerado (AGP).

58
Actividades recomendadas para el estudio del contenido de la unidad 4.
1.- Examine la tabla 4.1, en ella puede identificar las lecturas de los temas
contentivos de la unidad 4:

TTULO

MATERIAL DE
REFERENCIA

CAPITULO

CONTENIDO
El bus ISA
Arquitectura de los buses
ISA extendido (EISA) y
VESA Local.

Interfaz del bus.

El
texto
Los El bus de Interconexin de
Microprocesadores componentes
perifricos
Intel, B. B. Brey.
(PCI)
El bus
(USB)
Puerto
(AGP)

serial

Universal

grfico

acelerado

15

Tabla 4.1
1.- Lea los siguientes aspectos tericos a travs de los cuales reforzar los
conocimientos adquiridos:
SLOT
Ranura de la motherboard que permite expandir la capacidad de una
computadora insertndole placas.
http://www.sitiosargentina.com.ar/Help/diccionario%20tecnico.htm#s

MOTHERBOARD
Placa que contiene los circuitos impresos bsicos de la computadora, la CPU,
la memoria RAM y slots en los que se puede insertar otras placas (de red, de
audio, etc.).
http://www.sitiosargentina.com.ar/Help/diccionario%20tecnico.htm#s

La interfaz PCI
PCI ("Peripheral Component Interconnect") es bsicamente una especificacin
para la interconexin de componentes en ordenadores. Ha dado lugar a un

59
bus PCI, denominado tambin Mezzanine, en espaol entresuelo [1], porque
funciona como una especie de nivel aadido al bus ISA/EISA tradicional de la
placa-base. Es un bus de 32 bits que funciona a 5 V, 33 MHz, con una
velocidad de transferencia inicial de 133 Mb/s (Megabits por segundo).
Aunque seguiremos llamndolo "bus PCI", en realidad no es un bus local; por
contra, ocupa un lugar intermedio (de ah el nombre mezzanine) entre el bus
del procesador / memoria / cache y el bus estndar ISA. El bus PCI se
encuentra separado del bus local mediante un controlador que hace de
pasarela. Cuando la UCP escribe datos en los perifricos PCI (por ejemplo un
disco duro), el controlador/pasarela PCI los almacena en su buffer. Esto
permite que la UCP atienda la prxima operacin en vez de tener que esperar
a que se complete la transaccin. A continuacin el buffer enva los datos al
perifrico de la forma ms eficiente posible.
http://www.zator.com/Hardware/H6_4.htm
Comparacin de los tipos de bus
ISA
EISA VESA PCI
8/16
32 32/64 32/64
5.33/8.33 8.33 33/50 33
5.33/8.33 33 132/264 132/264
5.33/8.33 33 132
132

Bus de datos
Velocidad del bus de datos (MHz)
Velocidad de transferencia (MB/s)
Velocidades de transferencia
implementadas (MB/s)
0-8
0-8 0-2
0-4
Nmero de Slots
No
Si
Si
Si
Soporte de Bus Master
No
No No
Si
Paridad para direcciones y datos
No
No No
Si
Sync, Channel Checks
No
Si
Si
Si
Identificacin de dispositivo & Auto
configuracin
N/A
N/A Si
Trabaja con ISA/EISA
http://www.zator.com/Hardware/H6_4.htm
AGP
El AGP (Accelerated Graphics Port, Puerto de Grficos Acelerados) es una
especificacin de bus que permite que se desplieguen rpidamente grficos en
3-D en computadoras personales comunes. El AGP es una interfaz especial
diseada para transmitir imgenes en 3-D (por ejemplo, de pginas Web o CDROMs) mucho ms veloz y gilmente de lo que es posible hoy en una
ordenador que no sea una costosa estacin de trabajo grfica. La interfaz usa
el almacenamiento principal del ordenador (RAM) para refrescar la imagen del
monitor y soportar el mapeo de texturas, el z-buffering y la mezcla alfa que se
requieren para el despliegue de imgenes en 3-D. El uso que hace el AGP de
la memoria principal es dinmico, lo cual significa que cuando no se est
utilizando para grficos acelerados, la memoria principal se devuelve para uso
del sistema operativo u otras aplicaciones.
http://www.gamarod.com.ar/recursos/glosario/

60
3.- El ejemplo 4.1 muestra la forma usual de utilizar el bus PCI en un sistema
uniprocesador.
Ejemplo 4.1: Uso de un bus PCI en un sistema uniprocesador

En la figura 4.1 se muestra una configuracin usual del bus PCI. En esta
configuracin un dispositivo que integra el controlador DRAM y el adaptador
al bus PCI proporciona el acoplamiento al procesador y la posibilidad de
generar datos a velocidades elevadas. El adaptador acta como un registro
de acople (buffer) de datos, puesto que la velocidad del bus PCI puede
diferir de la capacidad de E/S del procesador.
Procesador
Monitor

Cache
Adaptador/con trolador
de
memoria

DRAM

Audio

Imgenes
en
movimiento

Bus PCI

Grficos
Adaptador
del bus de
expansin

Dispositivos
de E/S
bsicos
CS

Graficador

Bus de expansin

Figura 4.1 Bus PCI en un sistema uniprocesador


5.- El ejemplo 4.2 presenta el uso de una interfaz de bus ISA que se decodifica
en las direcciones 800H y 803H.
Ejemplo 4.2: Interfaz de bus ISA que contiene un 82C55 accedido por
medio de direcciones de puertos.

2.- La figura 5.2 muestra una interfaz ISA decodificada en las direcciones 800H
a 803H:

61

34

SD0

29

SD5

28

SD6

27

SD7
___
IOR
___
IOW

SA6

SA7

SA8

SA9

I1

O1

I2

O2

PA4

D5

PA5

D6

PA6

D7

PA7

40
39
38
37
18

PB2

35

A1

PB3

22

RESET
__
CS

PB4

23

PB5

24

PB6

25

PB0

19
20
21

PB7

18

I4

SA11 11

D4

19

I3

SA10 9

PA3

A0

RESET

SA5

D3

PB1

SA1

PA2

__
RD
__
WR

36

SA0

SA4

D2

30

SD4

PA1

31

SD3

SA3

D1
32

SD2

PA0

33

SD1

SA2

4
D0

17

PC0

16

PC1

15

PC2

14

PC3

13

PC4

12

PC5

15

O3

16

O4

I5

O5

I6

O6

I7

O7

I8

O8

17
13
12
11
PC6
10

I9
I10

14

PC7

82C55

16L8
SA12
SA13
SA14
SA15

Figura 4.2 Interfaz de bus ISA decodificada en las direcciones 800H a 803H

62

Ejercicios propuestos

1.- Explique mediante el uso de un diagrama de tiempos, cmo se realiza la


operacin de escritura en un bus PCI.
2.- Desarrolle una interfaz del bus ISA, similar a la del ejemplo 4.2, pero que
sea decodificada en las direcciones 0820H a 0823H.

Consulta en otros libros

[Stallings 2000]
incluye en su contenido la interconexin con buses,
especficamente la descripcin del bus PCI.
[Hamacher, 2003]. Contiene el estudio de los buses PCI y USB.

 Consulta en la Web
http://www.des.udc.es/~emilioj/ECm2/ecm2_p2_t2-doc.pdf: Presenta de una
manera sencilla la interconexin con buses, toma como ejemplos los buses
PCI y USB.
http://www.die.upm.es/cursos/BUSES1.pdf: Incluye informacin interesante
sobre la evolucin de los buses.
http://www.redeweb.com/microbit/articulos/7107125.pdf: Expone aspectos
relacionados con las aplicaciones del bus PCI.
http://www.terra.es/personal/zyryab/buspci.htm: Es un documento que incluye
el diseo de una interfaz PCI para una aplicacin.

Ejercicios de Autoevaluacin

Como ejercicios de autoevaluacin, se recomienda revisar los problemas


resueltos nmero 6 y 8, incluidos en el captulo 15 del
texto Los
Microprocesadores Intel, de Barry B Brey.

63

MDULO II
FAMILIA DE MICROPROCESADORES, EL COPROCESADOR
ARITMTICO Y LA TECNOLOGA MMX
En este mdulo se incluyen dos unidades que permiten complementar el
estudio de los microprocesadores. En la unidad 5 se presenta la evolucin de
una familia comercial de microprocesadores, en la bsqueda de mejores
prestaciones. Como consecuencia de esta evolucin, se han incorporado
nuevos elementos y tecnologas que amplan su panorama de uso, tales como
el coprocesador aritmtico y la tecnologa MMX, los cuales son tema de
estudio de la unidad 6.
Objetivo del Mdulo II: Analizar con sentido lgico y creativo, la evolucin de
una familia de microprocesadores y programas que resuelvan problemas
aritmticos.
El mdulo II est estructurado en dos unidades:
Unidad 5:
Unidad 6:

Familia de microprocesadores.
El Coprocesador Aritmtico y la Tecnologa MMX

64

UNIDAD 5
Familia de Microprocesadores
La historia de los microprocesadores (procesadores) ha pasado por diferentes
situaciones, siguiendo la lgica evolucin de este mundo. Desde aquel primer
procesador 4004 del ao 1971 hasta el Itanium producido en el 2001. Segn la
opinin de expertos, para el ao 2011 se utilizar procesadores cuyo reloj ir a
una velocidad de 10 GHz (10.000 MHz), contendr mil millones de transistores
y ser capaz de procesar cerca de 100 mil millones de instrucciones por
segundo.
El factor responsable del gran aumento de la velocidad del microprocesador es
la disminucin del tamao de los componentes del microprocesador; esto
reduce la distancia entre componentes, y, por tanto, aumenta la velocidad. Sin
embargo, la verdadera ganancia en velocidad en los ltimos aos se debe a la
organizacin del microprocesador, incluyendo el uso de tcnicas para obtener
mejores prestaciones de servicio.
La unidad 5, presenta la evolucin de la Familia de Microprocesadores Intel,
profundizando en las mejoras de hardware y software que han desarrollado los
diseadores sobre los miembros de esta familia en la bsqueda de un mejor
desempeo. Mediante el conocimiento obtenido, se podr describir importantes
conceptos de diseo que han conducido al desarrollo de computadores ms
potentes.

Objetivo de la Unidad 5: Analizar la evolucin de la arquitectura y/o


funcionamiento de microprocesadores comerciales, para la descripcin de
mejoras en sus prestaciones de servicio.
Contenido de la Unidad 5: El contenido de la unidad contempla el estudio de
los siguientes temas:
Los microprocesadores 80186, 80188 y 80286.
Los microprocesadores 80386 y 80486.
Los microprocesadores Pentium y Pentium Pro.
El microprocesador Pentium II

65
Actividades recomendadas para el estudio del contenido de la unidad 5.
1.- Examine la tabla 5.1, en ella puede identificar las lecturas de los temas
contentivos de la unidad 5:

TTULO

Los
microprocesadores
80186, 80188 y 80286.

MATERIAL DE
REFERENCIA

CONTENIDO

Arquitectura
de
los
80186
/
80188.
Programacin
de
las
mejoras de los 80186 /
El
texto
Los 80188.
Microprocesadores
Ejemplo de interfaz con el
Intel, B. B. Brey.
80C188EB.

CAPITULO

16

Introduccin al 80286.
Introduccin
al
microprocesador 80386.
Registros especiales del
80386
Administracin
de
la
memoria del 80386.
Los
microprocesadores
80386 y 80486.

Acceso al modo protegido


El
texto
Los
Microprocesadores Modo 8086 virtual.
Intel, B. B. Brey.
Modo 8086 virtual.

17

Mecanismo de paginacin
de memoria.
Introduccin al procesador
80486.
Introduccin al procesador
Pentium.
Registros
especiales del Pentium.
Administracin
de
la
Los
memoria
del
Pentium.
El
texto
Los
microprocesadores
Pentium y Pentium Microprocesadores Nuevas instrucciones del
Pentium.
Intel, B. B. Brey.
Pro.
Introduccin
al
microprocesador Pentium
Pro.
Caractersticas
especiales del Pentium
Pro.

Tabla 5.1

18

66

TTULO

MATERIAL DE
REFERENCIA

CONTENIDO

Introduccin
al
texto
Los microprocesador
El microprocesador El
Pentium II.
Microprocesadores Pentium II.
Intel, B. B. Brey.
Cambios al software del
Pentium II.

CAPITULO

19

Tabla 5.1 Continuacin

2.- Una vez ledo el contendido indicado en la tabla 5.1, usted estar en
capacidad de responder lo siguiente:
2.1 Cul fue el primer microprocesador Intel de 32 bits?
2.2 Cuntos perodos del reloj encontramos en un ciclo de bus de los
80186/80188?
2.3 Cuntos bytes de memoria virtual direcciona la
administracin de memoria del microprocesador 80386?

unidad

de

2.4 Describa brevemente cmo funciona el sistema de memoria cache.


2.5 A cunta memoria puede acceder el microprocesador Pentium?
2.6 Cuntas caches encontramos en el Pentium y cules son sus
tamaos?
2.7 Cul es la diferencia entre la cache de nivel 2 en el Pentium Pro y la
del Pentium II?

67
3.- Estudie la tabla 5.2 mostrada a continuacin, la cual resume las
especificaciones tcnicas de los microprocesadores Intel:

Fecha de
Velocidad Ancho Nmero de
Memoria
Memoria
presentacin de reloj de bus transistores direccionable virtual

Breve
descripcin

4004

15/11/71

108 KHz.

4 bits

2.300 (10
micras)

640 byte

Primer chip con


manipulacin
aritmtica

8008

1/4/72

108 KHz.

8 bits

3.500

16 KBytes

Manipulacin
Datos/texto

8080

1/4/74

2 MHz.

8 bits

6.000

64 KBytes

10 veces las (6
micras)
prestaciones del
8008

1 MegaByte

10 veces las
prestaciones del
8080

5 MHz.
29.000
8086

8/6/78

8 MHz.

16 bits
(3 micras)

10 MHz.
Idntico al 8086
excepto en su
bus externo de
8 bits

5 MHz.
8088

1/6/79

8 bits

29.000

8 MHz.
8 MHz.
134.000
80286

1/2/82

10 MHz.

16 Bits

De 3 a 6 veces
las prestaciones
del 8086

16 Megabytes

1
Gigabyte

4 Gigabytes

Primer chip x86


capaz de
64
manejar juegos
Terabytes
de datos de 32
bits

(1.5 micras)
12 MHz.
16 MHz.
Microprocesador

275.000

20 MHz.
17/10/85

Intel 386 DX

32 Bits
25 MHz.

(1 micra)

33 MHz.
Microprocesador

275.000

16 MHz.
16/6/88

Intel 386 SX

16 Bits
20 MHz.

Bus capaz de
direccionar 16
bits procesando
Terabytes 32bits a bajo
coste
64

4 gigabytes
(1 micra)

25 MHz.
Microprocesador
10/4/89

33 MHz.

Intel 486 DX

(1 micra, 0.8
32 Bits micras en 50 4 Gigabytes
MHz.)

64
Cache de nivel
1 en el chip
Terabytes

50 MHz.

16 MHz.
Microprocesador
22/4/91
Intel 486 SX

1.185.000

20 MHz.
32 Bits
25 MHz.
33 MHz.

4 Gigabytes
(0.8 micras)

Idntico en
diseo al Intel
486DX, pero sin
Terabytes coprocesador
matemtico
64

68
Fecha de
Velocidad Ancho Nmero de
Memoria
Memoria
presentacin de reloj de bus transistores direccionable virtual

Breve
descripcin

60 MHz.
66 MHz.
75 MHz.
90 MHz.
Procesador

3,1 millones

100 MHz.
22/3/93

Pentium

32 Bits
120 MHz.

Arquitectura
escalable.
Hasta 5 veces
las prestaciones
Terabytes del 486 DX a 33
MHz.
64

4 Gigabytes
(0.8 micras)

133 MHz.
150 MHz.
166 MHz.
200 MHz.
150 MHz.
5,5 millones

Procesador
27/3/95

180 MHz.

4 Gigabytes

64 Bits

PentiumPro

(0.32 micras)
200 MHz.
233 MHz.
7,5 millones

Procesador
7/5/97

266 MHz.

PentiumII

(0.32 micras)
300 MHz.

S.E.C., MMX,
Doble Bus
Indep.,
Terabytes Ejecucin
Dinmica
64

4 Gigabytes

64 Bits

Arquitectura de
ejecucin
dinmica con
procesador de
Terabytes altas
prestaciones
64

Tabla 5.2. Especificaciones tcnicas de los microprocesadores Intel


Fuente: http://www.duiops.net/hardware/micros/microshis.htm

4.- En el siguiente ejemplo se muestra el nmero de caches que se utilizan en


los microprocesadores:
Ejemplo 5.1: Nmero de caches en los microprocesadores.

Cuando se introdujeron originalmente las caches, un sistema tena


normalmente solo una cache. Ms recientemente, se ha convertido en una
norma el uso de mltiples caches.
El uso de de las memorias caches en los sistemas microprocesadores mejora
la velocidad de proceso y sus prestaciones. Habitualmente se dimensionan
caches de uno o dos niveles, aunque tambin hay sistemas con tres niveles.
Los modernos microprocesadores tienen:

Caches on-chip (cache de nivel 1, L1): Proporcionan las mejores


prestaciones.

69

Cache off-chip mdulo externo (constituye el nivel 2, L2): Tiene tiempos


de acceso memores que la memoria principal. Las caches L2. Suelen
ser de 512 KBytes o menos. Caches de mayores tamaos no son
rentables.

5.- En el ejemplo 5.2, se muestra el nmero de caches presentes en los


microprocesadores de la familia Intel.
Ejemplo 5.2: Nmero de caches en los microprocesadores de la familia
Intel.

80386: Sin cache on-chip


80486: 8 KBytes de cache unificada. Lineas (bloques) de 16 bytes y
organizacin asociativa en cuatro vas.
Pentium (todas las versiones): Dos caches L1 on-chip. Cache partida
de 16 KBytes, 8KBytes para datos y 8 KBytes para instrucciones.
Pentium III: Se aade una cache L3 en la tarjeta (off-chip).
Pentium 4:
- Caches L1 de 8 KBytes, lneas (bloques) de 64 bytes, asociativa
de 4 vas.
- Caches L2: Unificada. Alimenta a las dos cache L1.
- 256 KBytes, lneas de 128 bytes, asociativa de 8 vas.
- Cache L3 on-chip.
Atencin: Los microprocesadores Pentium III y Pentium 4, no son objeto
de estudio del curso Microprocesadores.

.
6.- El ejemplo 5.3, presenta la evolucin de la estructura de la cache, en la
evolucin de los microprocesadores de Intel.
Ejemplo 5.3: Evolucin de la estructura cache en los microprocesadores
Intel.

La evolucin de la estructura cache se observa claramente en la evolucin de


los microprocesadores Intel. El 80386 no tiene cache on-chip. El 80486 incluye
una sola cache on-chip de 8 KBytes, utilizando un tamao de lnea de 16 bytes
y una organizacin asociativa por conjunto (la memoria cache se divide en
conjuntos de n bloques, as al bloque i-simo de memoria principal le
corresponde el conjunto i mdulo (k/n) donde k es el nmero de bloques de
memoria cache) de cuatro vas. En la figura 5.1, se presenta el diagrama de
bloques del 80486, en el cual se aprecia la ubicacin de la cache.

70

Figura 5.1. Diagrama de bloques del 80486.


Fuente: http://www.duiops.net/hardware/micros/microshis.htm

El Pentium II incluye dos caches on-chip, una para datos otra para
instrucciones. Cada cache es de 8 KBytes, utilizando un tamao de lnea de 32
bytes y una organizacin asociativa por conjunto de dos vas. Incluye adems
una cache L2 que alimenta a las dos cache L1. La cache L2 es asociativa por
conjunto de cuatro vas, y con tamaos que oscilan entre 256 Kbytes y 1
Mbyte.
La figura 5.2 proporciona una visin simplificada de la estructura del Pentium
II, resaltando la ubicacin de las tres caches.

71
Bus del sistema
Cach L2
(256K-1M)

Unidad de interfaz del bus

Cach de
instrucciones
L1 (8-16K)
Captar

Unidad de
Captacin y
decodificacin
de
instrucciones

Cache de datos L1
(8-16K)

Cargar

Unidad de
envo y
ejecucin

Memorizar

Unidad de
retirada

Depsito de instrucciones (buffer de reorden-ROB)

Figura 5.2. Diagrama de bloques del Pentium II


7.- En el ejemplo 5.4 pone en evidencia la evolucin de la arquitectura
superescalar en los microprocesadores Intel, y describe la arquitectura
superescalar del Pentium II.
Ejemplo 5.4: Arquitectura superescalar del microprocesador Pentium II.

El microprocesador 80486 no dispona de elementos superescalares, el


Pentium original tena unas caractersticas superescalares modestas, que
consistan en la utilizacin de dos unidades de ejecucin de enteros
independientes. El Pentium Pro introdujo un diseo completamente
superescalar. Por su parte, el Pentium II tiene bsicamente la misma
organizacin superescalar que el Pentium Pro.
En la figura 5.2 mostrada anteriormente, se presenta el diagrama de bloques
del Pentium II. Los elementos esenciales de la organizacin superescalar son:
la unidad de captacin y decodificacin de instrucciones, la unidad de envo y
ejecucin, y la unidad de retiro. Se describe a continuacin la operacin de
cada una de ellas:

72
Operacin de la unidad de captacin y decodificacin.
La figura 5.3 es un esquema simplificado de la unidad de captacin y
decodificacin del Pentium II. La operacin de captacin consta de tres etapas
encauzadas:
Desde la cache de
instrucciones
Camino de 32 bytes

IFU1

Buffer de instrucciones
(contiene una lnea)

Siguiente IP

16 bytes

Decodificador de
longitud de
instrucciones

IFU2

Prediccin dinmica
de saltos

16 bytes

Etapa de alineacin
para los
decodificadores

IFU3

16 bytes

ID1

Decodificador 0
(complejas)

Decodificador 1
(sencillas)

Decodificador 2
(sencillas)

Secuenciador de
instrucciones de
microcdigo

6 x 118 bits
ID2

Cola de instrucciones
decodificadas
3 x 118 bits

3 x 118 bits
RAT

Prediccin esttica
de saltos

Asignador de registros

Al ROB

Figura 5.3. Unidad de captacin/decodificacin del Pentium II


Etapa IFU1
Capta instrucciones desde la cache de instrucciones, una lnea (32 bytes) cada
vez. La unidad <<Siguiente IP>> proporciona la direccin de la siguiente
instruccin a captar, y se capta en el buffer IFU1 la lnea de cache que contiene
la instruccin. Esta operacin no se calcula sencillamente incrementando el
puntero, porque podra haber un salto o una interrupcin pendiente que
moviese el puntero a una posicin diferente. Despus el contenido del buffer
IFU1 pasa IFU2 (16 bytes cada vez).
Etapa IFU2

73
Esta unidad lleva a cabo dos operaciones en paralelo. IFU2 examina los bytes
para determinar los lmites de las instrucciones; esta es una operacin
necesaria, debido a que las instrucciones del Pentium son de longitud variable.
Si alguna de las instrucciones es de salto, la unidad pasa la direccin de
memoria correspondiente a la unidad de prediccin dinmica de saltos. IFU2
pasa despus el bloque de 16 bytes a IFU3, que es responsable de alinear las
instrucciones para presentarlas al decodificador apropiado.
Etapa IFU3
Para comprender el funcionamiento de esta etapa, es necesario describir la
primera etapa de la unidad de decodificacin de instrucciones, ID1. Esta etapa
es capaz de manejar tres instrucciones en paralelo. ID1 traduce cada
instruccin en de una a cuatro microoperaciones cada una de 118 bits. ID1
contiene tres decodificadores. El primero de ellos puede manejar instrucciones
que se traduzcan hasta en cuatro microoperaciones. El segundo y el tercer
decodificador maneja instrucciones sencillas que correspondan a una nica
microoperacin (instrucciones registro a registro e instrucciones de carga). Si
ms de una instruccin es compleja, las instrucciones deben introducirse en
ID1 en etapas, de tal modo que el segundo y tercer decodificador no se les d
una instruccin compleja. Las instrucciones que requieren ms de cuatro
microoperaciones, se transfieren al secuenciador de instrucciones de
microcdigo (MIS, microcode instruction sequencer), el cual funciona como
unidad microprogramada.
La salida de ID1 o MIS se introduce en la segunda etapa de decodificacin,
ID2, es un bloque de hasta seis microoperaciones a la vez. En este punto, hay
una segunda ocasin para predecir saltos. Las microoperaciones encoladas en
ID2 pasan a travs de una fase de renombramiento de registro (RAT, register
allocator). El RAT transforma las referencias a lo 16 registros de la arquitectura.
Despus el RAT introduce las microoperaciones revisadas al buffer de
reordenacin (ROB, reorder buffer). Las microoperaciones entran al ROB en
orden; despus son enviadas desde el ROB a la unidad de envo/ejecucin sin
orden.
Operacin unidad de envo/ejecucin
La figura 5.4 es un esquema simplificado de la unidad de envo/ejecucin del
Pentium II. La central de reservas (RS, reservation station) es responsable de
recuperar las microoperaciones del ROB., envindolas a su ejecucin y
guardando los resultados de nuevo en el ROB. La RS busca en el ROB
microoperaciones cuyo estado indique que la microoperacin dispone de todos
sus operandos. Si est disponible la unidad de ejecucin que necesita una
microoperacin, la RS capta esa microoperacin y la enva a la unidad de
ejecucin conveniente. Se pueden enviar hasta cinco microoperaciones en un
ciclo.
Hay cinco puertos que unen la RS a las cinco unidades de ejecucin. El puerto
0 se usa para instrucciones con enteros y coma flotante, con la excepcin de
las operaciones sencillas con enteros y la gestin de las predicciones de saltos

74
errneas que se asignan al puerto 1. Las unidades de ejecucin MMX se
asignan tambin a estos puertos. Los puertos restantes se utilizan para cargas
y almacenamientos en memoria.
Cuando se completa una ejecucin, se actualiza la entrada adecuada del ROB,
y la unidad de ejecucin queda disponible para otra microoperacin.

Puerto 4

A/desde
ROB

C
e Puerto 3
n
t
r
a Puerto 2
l

Unidad de ejecucin
de almacenamientos
Unidad de ejecucin
de almacenamientos

A/desde la
cache de
datos

Unidad de ejecucin
de cargas

d
e

Desplazador MMX
ALU MMX

R
e
s
e
r
v
a
s

Puerto 1

IEU (sencillas) Y JEU

ALU MMX
Multiplicador MMX
IEU (complejas)
Puerto 0

FPU (complejas)
FPU (sencillas)

Figura 5.4. Unidad de envo/ejecucin del Pentium II


Unidad de Retiro
La unidad de retiro (RU, retire unit) va procesando el buffer de reordenacin
para entregar los resultados de la ejecucin de instrucciones. En primer lugar la
RU debe tener presentes los fallos en las predicciones de salto, y las
microoperaciones que se hayan ejecutado pero para las cuales los saltos
precedentes no se hayan validado. Una vez que se determina que una
microoperacin se ha ejecutado y no es vulnerable a eliminacin debido a un
fallo de prediccin se marca como lista para ser retirada. Cuando se ha retirado
la instruccin del Pentium previa, y todas las microoperaciones de la siguiente
instruccin se han marcado como listas para ser retiradas, la RU actualiza los
registros de la arquitectura afectados por esta instruccin, y quita del ROB la
microoperacin.

75

Ejemplo 5.5: Mejoras incorporadas al sistema de memoria del 80486.

Dada la disponibilidad de sistemas de memoria muy grandes, y debido a que


los costos de los circuitos son mnimos, muchos fabricantes de tarjetas de
memoria han agregado la verificacin de paridad a sus tarjetas de memoria
RAM. Esto se pone de manifiesto al comparar el sistema de memoria del
microprocesador 80386 y del 80486. Ambos sistemas contienen 4 GB, pero el
sistema de memoria del 80486 incluye un generador / detector de paridad
interno, para determinar si un dato es ledo correctamente de una localidad de
memoria.
Ejercicios propuestos

1.- Explique cmo el modo pipeline alarga el tiempo de acceso para muchos
accesos de memoria en un sistema basado en el microprocesador 80386.
2.- El avance de la tecnologa ha trado consigo la aparicin de una cantidad
importante de nuevos bienes y servicios de carcter tecnolgico, como los
mviles, ordenadores, los servicios de Internet, etc. El desarrollo de la
investigacin e innovacin permite la constante actualizacin y renovacin
del sector tecnolgico, tal es el caso de la potencia de los
microprocesadores la cual se duplica cada 18 meses.
Con base a la informacin anterior analice la evolucin de la velocidad de
los microprocesadores Intel y describa las mejoras del desempeo
obtenidas en la construccin de computadoras personales.

Consulta en otros libros

[Sayers 1995] trata arquitecturas prcticas de microprocesadores de 8, 16 y 32


bits.
[Tokheim, 1995] incluye informacin sobre microprocesadores de la compaa
Intel y Motorola.
[Stallings 2000] Destaca las mejoras del diseo de microprocesadores tomando
como ejemplos el microprocesador Pentium II y el PowerPC.
Adems se encuentra informacin sobre la arquitectura del microprocesador en
cualquiera de los textos recomendados

76

 Consulta en la Web
http://www.duiops.net/hardware/micros/microshis.htm: Presenta la historia de
los microprocesadores Intel.
http://www.ac.uma.es/educacion/cursos/telecomunicacion/FundCompST/mas_
material/prestaciones/evolucion_80x86_n05.pdf: Muestra un cuadro en
donde se resume la evolucin de la familia de microprocesadores Intel.
http://petra.euitio.uniovi.es/~i1766818/TUTOR/TUTOR06.htm#1: Describe de
una manera muy sencilla los microprocesadores Intel a partir del modelo
80486.

Ejercicios de Autoevaluacin

1.- Si se compara la arquitectura del microprocesador 80386 con la del 80486


no se encontrar diferencias. Sin embargo el tiempo de ejecucin de las
instrucciones vara significativamente de un microprocesador a otro.
Con base a la informacin analice cmo ha evolucionado el tiempo de
ejecucin de las instrucciones en estos microprocesadores para la mejora
del desempeo.
2.- La unidad de coma flotante del microprocesador Pentium se ha rediseado
totalmente respecto a la que usa el 80486. Este desarrollo ha ocasionado
la ejecucin ms rpida de operaciones aritmticas y de carga de datos.
Tome como base lo antes expuesto y realice lo siguiente:
- Estudie la construccin de la unidad de coma flotante en el Pentium II y
describa las mejoras incluidas en su construccin para un mejor
desempeo.

Respuesta a los Ejercicios de Autoevaluacin

1.- En el 80486 casi la mitad de las instrucciones son ejecutadas en un perodo


de reloj, en vez de los dos perodos que necesita el 80386 para ejecutar
instrucciones similares.
2.- La unidad de coma flotante del Pentium II, hace uso de nuevos algoritmos
que aceleran la ejecucin de las operaciones e incluye nuevos elementos
de hardware dedicados, como son: un multiplicador, un sumador y un
divisor.

77

UNIDAD 6
El Coprocesador Aritmtico y la Tecnologa MMX.
Los procesadores del tipo 8086 solo podan realizar operaciones aritmticas
con nmeros enteros. Para los fraccionarios deban utilizar complicados
artificios, por lo que desde el principio se crearon procesadores especficos y
costosos para operaciones aritmticas con nmeros fraccionarios. Puesto que
la CPU no hace otra cosa que clculos, el estudiante podra estar
preguntndose por qu necesita ayuda para realizarlos. Lo que ocurre es que
la CPU solo puede llevar a cabo operaciones aritmticas bsicas con nmeros
enteros, para procesar operaciones con valores fraccionarios, requiere
bastante tiempo lo que disminuye su velocidad considerablemente, debido
especialmente a que la CPU tiene que ejecutar tambin otras tareas
simultneamente. En aquellos campos de aplicacin donde se requieren
muchas posiciones decimales y los errores de redondeo deben de mantenerse
tan insignificantes como sea posible, resulta imprescindible la utilizacin de un
coprocesador aritmtico.
A partir de la introduccin del 80486, Intel incorpor el coprocesador aritmtico
junto con el procesador principal, por lo que su existencia dej de ser opcional,
convirtindose en estndar. Con cada generacin de CPU utilizada en
sistemas de computadoras personales Intel, tambin introduca su
correspondiente coprocesador.
La unidad 5 del presente material incluye el estudio del funcionamiento de la
familia de coprocesadores aritmticos etiquetada como 80X87. Tambin se
incluye en esta unidad el estudio de la tecnologa MMX, introducida por Intel
en su lnea de procesadores Pentium.
Aunque no se pueda considerar la tecnologa MMX como un procesador en si
mismo, es uno de los mayores pasos que ha dado Intel. Este realce incluye 57
nuevas instrucciones muy optimizadas para tareas multimedia, estas
instrucciones usan una tcnica conocida como SIMD (single-instruction,
multiple-data), es decir una secuencia de instrucciones y mltiples secuencias
de datos que posibilita efectuar la misma operacin, tal como una suma o una
multiplicacin con varios elementos de datos a la vez
Objetivo de la Unidad 6: Analizar programas que resuelvan problemas
aritmticos, para la descripcin de la operacin del coprocesador aritmtico o
de la tecnologa MMX.
Contenido de la Unidad 5: El contenido de la unidad contempla el estudio de
los siguientes temas:
Formato de datos y arquitectura del coprocesador aritmtico.
Conjunto de instrucciones y
programacin del coprocesador
aritmtico.
La tecnologa MMX: Tipos de datos y conjunto de instrucciones.

78

Actividades recomendadas para el estudio del contenido de la unidad 6.


1.- Examine la tabla 6.1, en ella puede identificar las lecturas de los temas
contentivos de la unidad 6:

TTULO

MATERIAL DE
REFERENCIA

CONTENIDO

CAPITULO

Formato de datos para el


coprocesador aritmtico.
Arquitectura de 80X87.
El
texto
Los
El
Coprocesador
Microprocesadores Conjunto de instrucciones.
Aritmtico
y
la
Intel, B. B. Brey.
Tecnologa MMX.
Programacin
con
el
coprocesador aritmtico.
.

14

Introduccin
a
la
tecnologa MMX. Tipo de
datos e instrucciones.

Tabla 6.1
2.- Una vez ledo el contendido indicado en la tabla 5.1, usted estar en
capacidad de responder lo siguiente:
2.2 Qu tipos de datos maneja el coprocesador?
2.8 Qu tipos de nmeros flotantes soporta el coprocesador?
2.9 Cules son las directivas que emplea el coprocesador para almacenar
datos?
2.10 Para qu tipo de aplicaciones estn diseadas especficamente las
instrucciones MMX?
3.- Estudie los siguientes contenidos tericos a travs de los cuales
complementar los conocimientos adquiridos con las lecturas indicadas en
la tabla 6.1:
El Coprocesador Aritmtico
Es un microprocesador de instalacin opcional, tambin denominado Unidad de
Punto Flotante, que auxilia al microprocesador en el uso eficiente de programas
de graficacin, clculos matemticos complejos y diseo,
lo cual al

79
especializarse en
dichas funciones acelera la velocidad con que una
computadora puede responder a necesidades tan sofisticadas.
Los coprocesadores estn todava mas crticamente ajustados a la velocidad
del reloj que los procesadores normales. Por lo tanto, debe asegurarse que
cualquier coprocesador que se seleccione para un sistema est diseado para
manejar la frecuencia de reloj de su computadora.
Fuente: El autor.
Instruccin Simple, Mltiples Datos (SIMD)
Las aplicaciones de multimedia y comunicaciones de hoy en da con frecuencia
usan ciclos repetitivos que, aunque ocupan el 10 por ciento o menos del cdigo
total de la aplicacin, pueden ser responsables hasta por el 90 por ciento del
tiempo de ejecucin. El proceso denomina SIMD (Single Instruction Multiple
Data) hace posible que una instruccin realice la misma funcin sobre mltiples
datos, en otras palabras, las instrucciones ejecutan las operaciones
simultneamente en varios datos en paralelo. Un ejemplo de su funcionamiento
en la realidad es con el vdeo: En los procesadores conocidos hasta la llegada
del MMX llegaban 8 pixeles de datos grficos de una en una y se procesaban
separadamente. En los procesadores MMX, los 8 pixeles llegan al procesador
en un paquete de 64 bits y se procesan a todos en una sola instruccin.
Otro ejemplo lo tenemos aqu, en una muestra de sonido de 16 bits, podemos
manipular hasta 4 muestras al mismo tiempo. Sobre una aplicacin estndar, el
rendimiento mejora entre un 10 y un 20 por ciento, pero cuando el programa ha
sido diseado especficamente para utilizar todo el potencial del MMX, el
rendimiento puede llegar al 40 o 60 por ciento.
http://neutron.ing.ucv.ve/revista-e/No3/Ferreira.html
Pixel
Pxel es la abreviatura de la expresin inglesa Picture Element (Elemento de
Imagen), y es la unidad ms pequea que encontraremos en las imgenes
compuestas por mapa de bits. El pxel es la unidad mnima en que se divide
la retcula de la pantalla del monitor y cada uno de ellos tiene diferente color.
Su tono de color se consigue combinando los tres colores bsicos (rojo, verde y
azul) en distintas proporciones. Un pxel tiene tres caractersticas distinguibles:
Forma cuadrada
Posicin relativa al resto de pxeles de un mapa de bits.
Profundidad de color (capacidad para almacenar color), que se
expresa en bits.
http://www2.canalaudiovisual.com/ezine/books/jirimag/1Imag21.htm
Instrucciones MMX del Pentium
Este conjunto de instrucciones est orientado a programacin multimedia. Los
datos de vdeo y audio suelen representarse mediante vectores o matrices

80
grandes, compuestos por datos de longitud reducida (8 o 16 bits), mientras que
las instrucciones convencionales operan normalmente con datos de 32 o 64
bits. Estos son algunos ejemplos: En grficos y en vdeo, cada escena
consiste en una matriz de puntos de imagen, y hay 8 bits para cada punto de
imagen u 8 bits para cada componente de color (rojo, verde, azul) del punto de
imagen. Las muestras de audio suelen estar cuantizadas con 16 bits. Para
algunos algoritmos de grficos de 3D es comn emplear 32 bits para los tipos
de datos bsicos. Para posibilitar le procesamiento paralelo con estos tamaos
de datos, en MMX se definen tres nuevos tipos de datos. Tienen una longitud
de 64 bits, y constan de varios campos de datos ms pequeos, cada uno de
los cuales contiene un entero de coma fija. Estos tipos de datos son los
siguientes:

Byte empaquetado: Ocho bytes en una cantidad de 64 bits.


Palabra empaquetada: Cuatro palabras de 16 bits empaquetadas en 64
bits.
Palabra doble empaquetada: Dos palabras dobles de 32 bits
empaquetadas en 64 bits.
[Stallings, 2000]

4.- En el siguiente ejemplo se muestra el uso de la instruccin PADDB de la


tecnologa MMX disponible en el Pentium II:
Ejemplo 6.1: Suma con saturacin mediante el uso de la instruccin
PADDB.

La instruccin PADDB toma como operando un byte empaquetado, y realiza en


paralelo sumas con cada posicin de byte para producir un byte empaquetado
de salida.
Una caracterstica inusual que presenta el conjunto de instrucciones MMX es la
introduccin de la aritmtica de saturacin. Con la aritmtica sin signo
ordinaria, cuando una operacin produce un desbordamiento (es decir, se
produce una acarreo en la posicin del bit mas significativa) el bit se trunca.
Considere, por ejemplo las dos palabras en hexadecimal, F000H y 3000H. Su
suma se expresara como:

F000H =
+3000H =

1111 0000 0000 0000


0011 0000 0000 0000
1 0010 0000 0000 0000 = 2000H

Acarreo

81
Si los dos nmeros representaban intensidad de imagen, el resultado de la
suma hace que la combinacin de zonas sombreadas oscuras aparezca como
ms clara. Esto no es lo que se pretende normalmente. Mediante la aritmtica
con saturacin, cuando la suma produce un desbordamiento, o la resta
produce un desbordamiento negativo, el resultado se fija respectivamente al
mayor o al menor valor representable. Para el ejemplo dado, la aritmtica con
saturacin dara como resultado:

F000H =
+3000H =

1111 0000 0000 0000


0011 0000 0000 0000
1 0010 0000 0000 0000 = 2000H

Acarreo
1111 1111 1111 1111 = FFFFH
Suma con saturacin
5.- En el ejemplo 6.2 tomado de [Stallings, 2000], se muestra el uso de las
instrucciones MMX en una funcin tpica de video.
Ejemplo 6.2: Composicin de una imagen en una funcin tpica de
vdeo mediante el uso de la tecnologa MMX.

Una funcin tpica de vdeo es el efecto de desvanecimiento o extincin


progresiva (fade-out) y reaparicin (fade-in), mediante el cual una imagen A se
deshace y convierte gradualmente en otra B. Las dos imgenes se combinan
mediante una media ponderada:
Pixel_resultado = Pixel_A x fade + Pixel_B x (1 fade)
Este clculo se efecta para cada posicin de punto de imagen en A y B. Si se
produce una secuencia de video mientras fade est cambiando
progresivamente desde 1 a 0 (con una escala ajustada a un entero de 8 bits), el
resultado es una transformacin paulatina de la imagen A en la imagen B.
La figura 6.1 muestra para un conjunto de puntos de imagen, la secuencia de
pasos necesaria. Las componentes de pixel de 8 bits son transformadas en
elementos de 16 bits para adaptarlas al tamao de las multiplicaciones MMX de
16 bits.

82

Alpha

Alpha

Azul

Azul

Verde

Verde

Rojo

Rojo

Imagen A

Imagen B

Ar3

1. Desempaquetar
bytes
de
componentes de
pixel rojo de las
imgenes A y B

Ar3

Ar2

Ar2

Ar1

Ar1

Ar0

Br3

Ar0

Br3

Br2

Br2

Br1

Br1

Sustraccin

2. Restar la imagen
B de la imagen
A

r3

r2

r1

r0

fade

fade

fade

fade

3.Multiplicar

el
resultado por el
valor de fade

fade x r3

4.Sumar los pixels

fade x r2

Br3

Br2

fade x r1

Br1

Br0

fade x r0

de la imagen B

5.Volver

a
empaquetar en
bytes los nuevos
pxels
compuestos

nuevor3

nuevor2

nuevor1

r3

r2

nuevor0

r1

r0

Figura 6.1 Composicin de imagen en una representacin de planos de colores

Br0

Br0

83
A continuacin se presenta el cdigo MMX que ejecuta las operaciones antes
indicadas:
PXOR
MOVQ

MM7, MM7
MM3, fad_val

MOVD

MM0, imagenA

MOVD

MM1, imagenB

PUNPCKBLW
PUNPCKBLW
PSUBW
PMULHW

MM0, MM7
MM1, MM7
MM0, MM1
MM0, MM3

PADDDW
PACKUSWB

MM0, MM1
MM0, MM7

; poner a cero MM7


; cargar el valor de fade replicado 4
veces
; cargar las componentes de rojo de 4
pixels de la imagen A
; cargar las componentes de rojo de 4
pixels de la imagen B
; desempaquetar a 16 bits 4 pixels
; desempaquetar a 16 bits 4 pixels
; restar la imagen B de la imagen A
; multiplicar los valores de la resta por
el valor de fade
; sumar el resultado a la imagen B
; empaquetar en bytes los resultados
de 16 bits

Ejercicios propuestos

1.- La siguiente lnea corresponde a una seccin de un programa escrito para


ser ejecutado por el coprocesador aritmtico:
FST DATA
Analice la seccin del programa dado y describa cmo la ejecuta el
coprocesador. Asuma que DATA est definida como una localidad de
memoria de 64 bits.
2.- Describa cmo ocurre la saturacin con signo, si las cantidades a sumar
son de un byte.

Consulta en otros libros

[Stallings 2000] Destaca las mejoras del diseo de microprocesadores tomando


como ejemplos el microprocesador Pentium II y el PowerPC.

84

Ejercicios de Autoevaluacin

1.- El siguiente conjunto de instrucciones, ha sido extrado de un programa


desarrollado para ser ejecutado por el coprocesador aritmtico:
.MODEL SMALL
.
.
.
RAD .DD 2.34
.
.
FLD
RAD
.
.
.
Analice la seccin del programa dado y describa que funcin realiza la
instruccin FLD RAD.
2.- A continuacin se presenta la seccin de un programa que emplea
instrucciones MMX, tales como:
PADDB

MM1, MM2

Para la instruccin dada, responda lo siguiente:

Qu tipo de operacin permite realizar?


Describa qu funcin realiza esta instruccin.

Respuesta a los Ejercicios de Autoevaluacin

1.- En la seccin del programa dado, la instruccin FLD RD, carga el valor
almacenado en RAD en ST.
2.- Solucin:

La instruccin permite realizar la operacin aritmtica de la suma.


Esta instruccin suma el contenido completo de 64 bits del registro MM2
al contenido del registro MM1, byte por byte. El resultado es ubicado en
MM1.

85

MDULO III
PROGRAMACIN DEL MICROPROCESADOR
El mdulo III est conformado por las unidades 7 y 8. El estudio de estas
unidades, permite desarrollar en el estudiante las competencias necesarias en
la solucin de problemas, haciendo uso de los microprocesadores.
El desarrollo de la solucin implicar, la codificacin de algoritmos en el
lenguaje ensamblador del microprocesador Intel 80286 y la implementacin del
programa codificado en un microprocesador de este tipo. El programa as
codificado, se ejecutar en un software simulador, el cual proporciona un
modelo real de un microprocesador Intel 80286.
Objetivo del Mdulo III:
Implementar con sentido lgico y creativo,
programas especficos, haciendo uso de los microprocesadores.
El mdulo III est estructurado en dos unidades:
Unidad 7:
Unidad 8:

Programacin en Lenguaje Ensamblador


Implementacin de Programas en el Microprocesador

86

UNIDAD 7
Programacin en Lenguaje Ensamblador
Los programas que convierten un programa de usuario escrito en algn
lenguaje, a otro lenguaje, se llaman traductores. El leguaje en el que est
escrito el programa original se llama lenguaje fuente, y el lenguaje a que se
convierte se llama lenguaje objeto o lenguaje de mquina. El lenguaje fuente
es en lo esencial una representacin simblica (lenguaje mnemotcnico) de un
lenguaje de mquina numrico, el traductor se llama lenguaje ensamblador.
Las computadoras siguen utilizando el lenguaje de mquina para procesar los
datos, pero los programas ensambladores traducen antes los smbolos de
cdigo de operacin especificados a sus equivalentes en lenguaje de mquina.
Este proceso es al que se le denomina ensamblado de cdigo. Para facilitar la
elaboracin de programas a este nivel, se desarrollaron los Ensambladores y
el Lenguaje Ensamblador.
En la unidad 5 se presenta el uso del lenguaje ensamblador, especficamente
el correspondiente al microprocesador 80286. El estudio de esta unidad
afianzar en el estudiante los conocimientos obtenidos en el curso,
especialmente en lo que respecta a la programacin
Objetivo de la Unidad 7: Codificar algoritmos, utilizando un lenguaje
ensamblador y las tcnicas apropiadas, para la resolucin de un problema
especfico.
Contenido de la Unidad 7: El contenido de la unidad contempla el estudio de
los siguientes temas:
Lenguaje ensamblador, Lenguaje de mquina
Mnemnicos, Conjunto de instrucciones de un
microprocesador especfico
Programacin modular
Codificacin de algoritmos en un lenguaje ensamblador
especfico

87
Actividades recomendadas para el estudio del contenido de la unidad 7.
1.- Lea el captulo 7 del texto Los Microprocesadores Intel, B. B. Brey.
2.- Lea los siguientes contenidos tericos:
Lenguaje de Mquina
Es el sistema de cdigos directamente interpretable por un circuito
microprogramable, como el microprocesador de un ordenador o el
microcontrolador de un autmata (un PIC). Este lenguaje est compuesto por
un conjunto de instrucciones que determinan acciones a ser tomadas por la
mquina. Un programa de computadora consiste en una cadena de estas
instrucciones de lenguaje de mquina (ms los datos). Estas instrucciones son
normalmente ejecutadas en secuencia, con eventuales cambios de flujo
causados por el propio programa o eventos externos. El lenguaje de mquina
es especfico de cada mquina o arquitectura de la mquina, aunque el
conjunto de instrucciones disponibles pueda ser similar entre ellas.
http://es.wikipedia.org/wiki/Lenguaje_m%C3%A1quina

Mnemnico
En Informtica un Mnemnico es una palabra que sustituye a un cdigo de
operacin (Lenguaje de mquina), con lo cual resulta ms fcil la
programacin, es de aqu de donde resulta el concepto de lenguaje
ensamblador.
Un ejemplo comn de mnemnico es la instruccin MOV, que le indica al
microprocesador que debe de mover datos de un lugar a otro. El
microprocesador no entiende palabras, sino que nmeros binarios, por lo que
es necesario la traduccin del mnemnico a cdigo objeto.
http://es.wikipedia.org/wiki/Mnem%C3%B3nico

Lenguaje Ensamblador.
Una CPU puede interpretar y ejecutar instrucciones de mquina. Estas
instrucciones son, simplemente, nmeros binarios almacenados en el
computador. Sin un programador quisiera programar directamente en lenguaje
de mquina, necesitara introducir los programas como datos binarios.
Considere la sencilla sentencia BASIC:
N=I+J+K
Suponga que queremos programar esta sentencia en un lenguaje de mquina y
dar a I, J y K los valores iniciales 2,3, y 4, respectivamente. La forma de hacer
esto se muestra en la figura 7.1a. El programa empieza en la posicin 101

88
(hexadecimal). Se reserva memoria parea las cuatro variables a partir de la
posicin 201. El programa consta de cuatro instrucciones:
1.
2.
3.
4.

Cargar el contenido de la posicin 201 en el acumulador (AC).


Sumar a AC el contenido de la posicin 202.
Suma a AC el contenido de la posicin 203.
Memorizar el contenido de AC en la posicin 204.

Esto es claramente un proceso tedioso y muy susceptible de errores. Una


ligera mejora consiste en redactar el programa en hexadecimal, e lugar de en
binario, ver figura 7.1b.
Para que la mejora sea ms significativa, podemos hacer uso de nombres
simblicos o mnemotcnicos de las instrucciones. El resultado es el programa
simblico mostrado en la figura 7.1c. Cada lnea sigue representando una
posicin de memoria, y consta de tres campos separados por espacios. El
primer campo contiene la direccin de una posicin. El segundo campo
contiene el smbolo de tres letras que representa su cdigo de operacin. Si se
trata de una instruccin que hace referencia a memoria, un tercer campo
contiene la direccin. Para memorizar un dato concreto en una posicin dada,
nos inventamos una pseudoinstruccin con el smbolo DAT. Esta es
meramente un indicador de que el tercer campo de la lnea contiene un nmero
en hexadecimal a memorizar en la posicin que especifica el primer campo.
El uso de programas simblicos hace la vida mucho ms fcil, pero es aun
engorroso. En particular hay, hay que dar una direccin absoluta para cada
palabra. Un procedimiento mejor, es emplear direcciones simblicas. Esto se
ilustra en la figura 7.1d. Cada lnea sigue teniendo tres campos. El primero
sigue siendo para la direccin, pero se utiliza un smbolo en lugar de una
direccin numrica absoluta. Algunas lneas carecen de direccin, indicando
que la direccin de dicha lnea es uno ms que la direccin precedente. Para
las instrucciones que hacen referencia a memoria, el tercer campo contiene
tambin una direccin simblica.
Con este ltimo refinamiento, hemos inventado un lenguaje ensamblador. Los
programas escritos en lenguaje ensamblador (programas en ensamblador) se
traducen a lenguaje de mquina mediante un ensamblador.
El desarrollo de los lenguajes ensambladores fue un logro importante en la
evolucin de la tecnologa de computadores. Fue el primer paso hacia los
lenguajes de alto nivel de hoy en da.

89

Direccin
101
102
103
104

0010
0001
0001
0011

Contenido
0010
0000
0010
0000
0010
0000
0010
0000

0001
0010
0011
0100

101
102
103
104

LDA
ADD
ADD
STA

201
202
203
204

201
202
203
204

0000
0000
0000
0000

0000
0000
0000
0000

0010
0011
0100
0000

201
202
203
204

DAT
DAT
DAT
DAT

2
3
4
0

0000
0000
0000
0000

(a) Programa en binario

(c) Programa simblico

Direccin
101
102
103
104

Contenido
2201
1202
1203
3204

Etiqueta
FORMUL

Operacin
LDA
ADD
ADD
STA

Operando
I
J
K
N

201
202
203
204

0002
0003
0004
0000

I
J
K
N

DATA
DATA
DATA
DATA

2
3
4
0

(a) Programa en hexadecimal

(c) Programa en ensamblador

Figura 7.1. Clculo de la frmula N = I + J + K.


Stallings, 2000.pp. 346.

Conjunto de instrucciones
Un conjunto de instrucciones repertorio de instrucciones ISA (del ingls
instruction set architecture -arquitectura del conjunto de instrucciones-) es una
especificacin que detalla las instrucciones que una CPU de un ordenador
puede entender y ejecutar, o el conjunto de todos los comandos
implementados por un diseo particular de una CPU. El trmino describe los
aspectos del procesador generalmente visibles a un programador, incluyendo
los tipos de datos nativos, las instrucciones, los registros, la arquitectura de
memoria y las interrupciones, entre otros aspectos.
La arquitectura del conjunto de instrucciones (ISA) se emplea a veces para
distinguir este conjunto de caractersticas de la microarquitectura, que son los
elementos y tcnicas que se emplean para implementar el conjunto de
instrucciones. Entre estos elementos se encuentras las microinstrucciones y los
sistemas de cach.
Procesadores con diferentes diseos internos pueden compartir un conjunto de
instrucciones; por ejemplo el Intel Pentium y AMD Athlon implementan

90
versiones casi idnticas del conjunto de instrucciones x86, pero tiene diseos
internos completamente opuestos.
http://es.wikipedia.org/wiki/Conjunto_de_instrucciones

Diseo del repertorio de instrucciones


Uno de los aspectos ms interesantes y ms analizado del diseo de un
computador, es el diseo del repertorio de instrucciones del lenguaje de
mquina. El diseo de un repertorio de instrucciones es muy complejo, ya que
afecta a muchos aspectos del computador. El repertorio de instrucciones define
muchas de las funciones realizadas por la CPU y tiene, por tanto, un efecto
significativo sobre la implementacin de la misma. El repertorio de
instrucciones es el medio que tiene el programador para controlar la CPU.
Algunos de los aspectos ms bsicos relativos al diseo son los siguientes:

Repertorio de operaciones: Cuntas y qu operaciones considerar, y


cun complejas deben ser.
Tipos de datos: Los distintos tipos de datos con los que se efectan las
operaciones.
Formato de instrucciones: Longitud de la instruccin (bits), nmero de
direcciones, tamao de los distintos campos, etc.
Registros: Nmero de registros de la CPU que pueden ser referenciados
por instrucciones, y su uso.
Direccionamiento: El modo o modos de direccionamiento mediante los
cuales puede especificarse la direccin del operando.
Stallings, 2000. pp. 318.

El microprocesador Intel 80286


El Intel 80286 (llamado oficialmente iAPX 286, tambin conocido como i286 o
286) es un microprocesador de 16 bits de la familia x86, que fue lanzado al
mercado por Intel el 1 de febrero de 1982. Las versiones iniciales del i286
funcionaban a 6 y 8 MHz, pero acab alcanzando una velocidad de hasta 20
MHz. El i286 fue el microprocesador ms empleado en los IBM PC y
compatibles entre mediados y finales de los aos 80.
El i286 funciona el doble de rpido por ciclo de reloj que su predecesor (el Intel
8086) y puede direccionar hasta 16 Mbytes de memoria RAM, en
contraposicin a 1 Mbyte del i8086. En mquinas DOS, esta memoria adicional
solo poda ser accedida a travs de emulacin de memoria extendida. De todos
modos, pocos ordenadores basados en el i286 tuvieron ms de 1 Mbyte de
memoria.
El i286 fue diseado para ejecutar aplicaciones multitarea, incluyendo
comunicaciones (como centralitas automatizadas), control de procesos en
tiempo real y sistemas multiusuario. Para ello se le aadi un modo protegido,

91
en el cual existan cuatro anillos de ejecucin y divisin de memoria mediante
tablas de segmentos. En este modo trabajaban las versiones de 16 bits del
sistema operativo OS/2.
A pesar de su gran popularidad, hoy en da quedan pocos ordenadores con el
i286 funcionando. El sucesor del i286 fue el Intel 80386, de 32 bits.
http://es.wikipedia.org/wiki/Intel_80286
3.- En el ejemplo 7.1, se muestra un programa fuente que permite desplegar un
mensaje en pantalla mediante llamadas al DOS.
Ejemplo 7.1: Programa fuente que imprime un mensaje en la pantalla.

Aqu se tratar todo lo concerniente con el lenguaje ensamblador y el conjunto


de directivas del Microsoft Macro Assembler v4.0. Si bien esto puede resultar
bastante extenso y complejo, aqu slo se describirn las instrucciones y
directivas bsicas.
Para comenzar se presenta un pequeo ejemplo que ilustra el formato del
programa fuente. Este ejemplo est completamente desarrollado en lenguaje
ensamblador que usa servicios o funciones de MS-DOS (system calls) para
imprimir el mensaje Hola mundo en pantalla.
; HOLA.ASM
; Programa clasico de ejemplo. Despliega una leyenda en pantalla.
STACK SEGMENT STACK
; Segmento de pila
DW 64 DUP (?)
; Define espacio en la pila
STACK ENDS
DATA
SEGMENT
; Segmento de datos
SALUDO
DB "Hola mundo",13,10,"$" ; Cadena
DATA
ENDS
CODE
SEGMENT
; Segmento de Cdigo
ASSUME CS:CODE, DS:DATA, SS:STACK

INICIO:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET SALUDO
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE
ENDS
END INICIO

; Punto de entrada al programa


; Pone direccin en AX
; Pone la direccion en los registros
; Obtiene direccion del mensaje
; Funcin: Visualizar cadena
; Servicio: Funciones alto nivel DOS
; Funcin: Terminar

; Marca fin y define INICIO

92
La descripcin del programa es como sigue:

Las declaraciones SEGMENT y ENDS definen los segmentos a usar.

La variable SALUDO en el segmento DATA, define la cadena a ser


desplegada. El signo de dlares al final de la cadena (denominado
centinela) es requerido por la funcin de visualizacin de la cadena de
MS-DOS. La cadena incluye los cdigos para carriage-return y line-feed.

La etiqueta INICIO en el segmento de cdigo marca el inicio de las


instrucciones del programa.

La declaracin DW en el segmento de pila define el espacio para ser


usado por el stack del programa.

La declaracin ASSUME indica que registros de segmento se asociarn


con las etiquetas declaradas en las definiciones de segmentos.

Las primeras dos instrucciones cargan la direccin del segmento de


datos en el registro DS. Estas instrucciones no son necesarias para los
segmentos de cdigo y stack puesto que la direccin del segmento de
cdigo siempre es cargada en el registro CS y la direccin de la
declaracin del stack segment es automticamente cargada en el
registro SS.

Las ltimas dos instrucciones del segmento CODE usa la funcin 4CH
de MS-DOS para regresar el control al sistema operativo. Existen
muchas otras formas de hacer esto, pero sta es la ms recomendada.

La directiva END indica el final del cdigo fuente y especifica a START


como punto de arranque.

5.- El ejemplo 7.2 muestra la importancia del uso de las directivas PUBLIC y
EXTRN en la programacin modular.
Ejemplo 7.2: Uso de directivas PUBLIC y EXTRN.

A continuacin se presentan dos mdulos de programa: MAIN y TASK, el


primer mdulo corresponde al mdulo principal, mientras que el segundo al
mdulo que contiene una rutina. Ambos mdulos son archivos que se editan
por separado, se ensamblan por separado, pero se ligan juntos.

93
MODULO PRINCIPAL: MAIN.ASM
NAME
MAIN
PUBLIC EXIT
EXTRN PRINT:NEAR
STACK SEGMENT WORD STACK 'STACK'
DW
64 DUP(?)
STACK ENDS
DATA
DATA
CODE

SEGMENT WORD PUBLIC 'DATA'


ENDS
SEGMENT BYTE PUBLIC 'CODE'
ASSUME CS:CODE, DS:DATA

START:
MOV AX, DATA
MOV DS, AX
JMP PRINT

; carga localizacin del segmento


; en el registro DS
; va a PRINT en el otro modulo

EXIT:
MOV AH, 4CH
INT 21H
CODE ENDS
END START

SUBMODULO: TASK.ASM
NAME TASK
PUBLIC PRINT
EXTRN EXIT:NEAR
DATA
SEGMENT WORD PUBLIC 'DATA'
ENTRADA DB
"Entrando a un submodulo....",13,10,"$"
SALIDA DB
".......saliendo del submodulo.",01,07,13,10,"$"
DATA
ENDS
CODE

SEGMENT BYTE PUBLIC 'CODE'


ASSUME CS:CODE, DS:DATA

PRINT:
MOVE AH,06H
; Funcin para borrar pantalla
MOV
AL,0
; todas las lneas
MOV
CX,0
; de 0,0
MOV
DH,24D
MOV
DL,79D
MOV
BH,0
; atributo en lneas vacas
INT
10H
; Ser vicio de e/s vdeo
MOV
DX, OFFSET ENTRADA
MOV
AH,09H
INT
21H
MOV
DX, OFFSET SALIDA
INT
21H

94

CODE

JMP
ENDS
END

EXIT

; Regresa al otro modulo

Ejercicios propuestos

1.- Codifique una rutina en el lenguaje ensamblador del 80286 que permita el
ingreso de caracteres, verificando si se ha oprimido una tecla pero sin
esperar que ocurra. Si esto ha ocurrido entonces devuelve su codificacin
ASCII en un registro; en caso contrario devuelve cero.
2.- Considere una cadena como una secuencia de caracteres terminada por un
byte cero, y se requiere calcular su longitud.
Con base a lo antes planteado, codifique en el lenguaje ensamblador 80286
un algoritmo que permita calcular la longitud de la cadena de caracteres.

Consulta en otros libros

[Stallings 2000] Incluye el repertorio de instrucciones de dos familias de


computadores: el Pentium II de Intel y el Power PC.
[Englander 2002] Incluye la descripcin del conjunto de instrucciones de la
familia x86.

 Consulta en la Web
http://proton.ucting.udg.mx/dpto/maestros/mateos/novedades/ensamblador/68H
C11.html:Contiene informacin interesante relacionada con el lenguaje
ensamblador.
http://www.alpertron.com.ar/80286.HTM: Describe el microprocesador 80286 y
las instrucciones adicionales que controlan el sistema de memoria
virtual.

Ejercicios de Autoevaluacin

1.- Desarrolle un procedimiento llamado SUMS, que permita sumar el valor del
contenido de los registros BX, CX y DX con el contenido de AX. Utilice la
definicin de procedimiento cercano (NEAR).

95
2.-Codifique un programa que despliegue OK en la pantalla del monitor,
utilizando para ello el procedimiento DISP mostrado a continuacin:
DISP

DISP

PROC
MOV
INT
RET
ENDP

NEAR
AH, 2
21H

Respuesta a los Ejercicios de Autoevaluacin

1.- El procedimiento es el siguiente:


SUMS

SUMS

PROC
NEAR
ADD AX, BX
ADD AX, CX
ADD AC, DX
RET
ENDP

2.- A continuacin se muestra el programa:


.MODEL
.CODE
STARTUP

TINY

MOV
MOV
CALL
MOV
CALL
.EXIT
END

BX, OFFSET DISP


DL, O
BX0
DL, K
BX

96

UNIDAD 8
Implementacin de Programas en el Microprocesador
Una vez que el estudiante se ha familiarizado con el repertorio de instrucciones
de una arquitectura especfica, y ha desarrollado una solucin a un problema
especfico mediante un programa, se pretende en la unidad 8, implementar el
programa codificado en un software simulador que le permitir familiarizarse
con esta arquitectura haciendo uso de las instrucciones.
Objetivo de la Unidad 8: Implementar un programa en un microprocesador,
resolviendo un problema dado.
Contenido de la Unidad 8: El contenido de la unidad contempla el estudio de
los siguientes temas:
Uso del software simulador.
Ejecucin de programas en el software simulador.

97
Actividades recomendadas para el estudio del contenido de la unidad 7.
1.- A continuacin se presenta informacin relacionada con dos software de
simulacin de la arquitectura del microprocesador Intel 8085. Se
recomienda su lectura por parte del estudiante, ya que esto le permitir
visualizar el modelo de programacin y la manera como opera este
microprocesador.
Cabe destacar que en la red Internet se encuentran disponibles estas
aplicaciones, algunos podrn descargarse en forma gratuita para su uso,
otros en cambio se ofertan para la venta.

Simulador del microprocesador 8085 versin 3 para Windows


Este
simulador
se
oferta
en
http://www.insoluz.com/Micro/Micro.html.

Internet

en

la

direccin:

La figura 8.1 presenta la arquitectura de este simulador, y a continuacin se


resume sus caractersticas:

Ofrece la transparencia completa de los registros, de los indicadores y


de la pila.
Ofrece la codificacin fcil a travs de una pista del clave de cdigo con
la validacin completa de la entrada de informacin.
Ofertas fciles y el poner a punto extenso incluyendo puntos de
interrupcin y perfilar.
Tuerca hexagonal De las Ayudas / Ficheros De Obj.
Tambin ofrece un editor de textos del ensamblador con destacar del
sintaxis.
El software es acuerdo y est disponible en lenguajes mltiples.
Fichero diseado y detallado del receptor de papel de la ayuda.

La figura 8.2 muestra una pantalla de aplicacin en la cual puede apreciarse un


programa en ejecucin. Por su parte en la figura 8.3, se muestra el proceso de
carga de un programa fuente, haciendo uso del editor de textos del
ensamblador.

http://www.insoluz.com/Sp/Micro/Micro.html

98

Figura 8.1. Simulador del microprocesador 8085 Proceso de entrada

99

Figura 8.2. Simulador del microprocesador 8085 - Ejecucin

100

Figura 8.1. Simulador del microprocesador 8085 Editor de textos del ensamblador

101
Simulador del microprocesador 8085 versin 1.0.0
Desarrollado por Pedro J. Casanova Pelez, se encuentra disponible en forma
gratuita
en
la
siguiente
direccin
electrnica:
http://voltio.ujaen.es/casanova/simu8085/sim8085.htm .
Este simulador presenta las siguientes caractersticas:

Funciona bajo Windows


Completo soporte de 64 KBytes de memoria y 256 puertos de E/S
Entrada de datos en Hexadecimal
Todos los registros visibles y modificables
Ejecucin paso a paso y seguida
Carga / almacenamiento en formato hexadecimal Intel de 8 bits
Ensamblador incluido

En la figura 8.4 puede apreciarse el modelo de programacin de este


simulador.

102

Simulador del microprocesador 8085

Descargar
Volver a pgina anterior

103

Ejercicios propuestos

Implemente las rutinas codificadas en los Ejercicios Propuestos en la unidad 7,


en el software simulador disponible en la siguiente direccin electrnica:
http://voltio.ujaen.es/casanova/simu8085/sim8085.htm .

 Consulta en la Web
Encontrar
http://www.softwareforeducation.com/sms32v50/simulator.htm:
informacin con un software simulador de microprocesador para
principiantes.

S-ar putea să vă placă și