UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital...

123
316 UNIVERSIDAD NACIONAL ABIERTA Microprocesadores Manual Instruccional de Apoyo Sólo para uso instruccional Sin valor comercial Ingeniería de Sistemas

Transcript of UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital...

Page 1: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

316

UNIVERSIDAD NACIONAL ABIERTA

Microprocesadores

Manual Instruccional de Apoyo Sólo para uso instruccional

Sin valor comercial

Ingeniería de Sistemas

Page 2: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

4

CAV QA76.5 Microprocesadores / [elaborado por] Olga E. Rodríguez Durán. -- Caracas M52 UNA, 2009 131 P. : il ; 29cm. ISBN 978-980-236-682-8 Carrera de Ingeniería En portada: Material Instruccional de apoyo

1. Microprocesadores. 2. Computadoras electrónicas digitales-- Programación. 3. Microcomputadoras. 4. Educación a distancia--Módulo de estudio. I. Universidad Nacional Abierta. II. Rodríguez Durán, Olga E.

TTooddooss llooss ddeerreecchhooss rreesseerrvvaaddooss.. PPrroohhiibbiiddaa llaa rreepprroodduucccciióónn ttoottaall oo ppaarrcciiaall ppoorr ccuuaallqquuiieerr mmeeddiioo ggrrááffiiccoo,, aauuddiioovviissuuaall oo ccoommppuuttaarriizzaaddoo,, ssiinn pprreevviiaa aauuttoorriizzaacciióónn eessccrriittaa.. Universidad Nacional Abierta Apartado Postal Nº 2096 Caracas 1.010 A, Carmelitas, Venezuela Copyright © UNA 2009 ISBN 978-980-236-682-8 PPrriimmeerraa rreeiimmpprreessiióónn,, 22000099

RReeggiissttrroo ddee PPuubblliiccaacciioonneess ddee llaa UUnniivveerrssiiddaadd NNaacciioonnaall aabbiieerrttaa Nº UNA-MIA-2009-5862

Page 3: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

5

MATERIAL INSTRUCCIONAL DE APOYO

MICROPROCESADORES

316

CARRERA Ingeniería de Sistemas

Código: 236 Ubicación curricular

VII Semestre

AUTOR Ing. Olga E. Rodríguez Durán

ASESORES TÉCNICOS

Ing. Judit Carvallo (Coordinadora Ingeniería de Sistemas)

Lic. Carmen Velásquez de Rojas (Evaluadora)

DISEÑO INSTRUCCIONAL

MsC. Antonio Alfonzo

Prof. Reina Hernández

Caracas, Mayo 2009

UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA: INGENIERÍA / CARRERA: INGENIERÍA DE SISTEMAS

Page 4: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

Cómo citar este documento:

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 5: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

7

TABLA DE CONTENDO

I. Introducción 9

II. Objetivo del curso 11

III. Estructura del curso 11

IV. Contenido 13

Módulo I El microprocesador, arquitectura e interfaces 14

Unidad 1: Arquitectura del microprocesador 15

Unidad 2: Interfaz con la Memoria 43

Unidad 3: Interfaz de E/S Básica, interrupciones y E/S 55

controlada por DMA

Unidad 4: Interfaz del bus 74

Módulo II Familia de microprocesadores, el coprocesador

aritmético 68 y la tecnología MMX 81

Unidad 5: Familia de microprocesadores 83

Unidad 6: El coprocesador aritmético y la tecnología MMX 99

Módulo III Programación del microprocesador 109

Unidad 7: Programación en Lenguaje Ensamblador 111

Unidad 8: Implementación de programas en el microprocesador 123

V. Bibliografía 133

Page 6: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

9

I. INTRODUCCIÓN El estudio a distancia, e incluso el presencial, en algunos momentos es una forma de aprendizaje que se basa específicamente en el trabajo personal de los estudiantes con mayor o menor independencia respecto de la guía 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 según sus ritmos y conocimientos previos. Aquí radica el potencial que tiene la elaboración del presente Material Instruccional de Apoyo (MIA), el cual conforma, junto con el plan de curso y el libro Los Microprocesadores Intel, de Barry B. Brey y el Software Simulador, el paquete instruccional del curso Microprocesadores. Aunado a ello, el estudiante cuenta con la asesoría en los centros locales para aclarar dudas, tanto de manera presencial como a través del correo electrónico. 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 implementación de programas, para resolver un problema específico. También se ha considerado la complejidad de cada tópico y el uso del software simulador; este software apoya el estudio de aquellas unidades en las cuales se realiza la descripción y programación de un microprocesador comercial. El Material Instruccional de Apoyo se ha organizado atendiendo a la estructura del curso. El Módulo I: El Microprocesador, Arquitectura e Interfaces, consta de cuatro unidades. El Módulo II: Familia de Microprocesadores, el Coprocesador Aritmético y la Tecnología MMX, incluye dos unidades. Por su parte, el Módulo III, Programación del Microprocesador, se compone del estudio de dos unidades. Para cada módulo se presenta una breve introducción, el objetivo del módulo y las unidades que lo componen. Por su parte, cada unidad incluye una breve presentación, 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 presentación de aspectos teóricos, ejemplos, ejercicios resueltos, ejercicios de autoevaluación, consultas a material bibliográfico y consultas a direcciones electrónicas 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 través de un buscador (Browser) en la Web. El estudio del curso Microprocesadores exige el uso simultáneo del Plan de Curso y el paquete instruccional. Estos dos componentes se interrelacionan para proporcionarle una visión general del curso y las herramientas necesarias para el logro del objetivo terminal.

A lo largo de la lectura de este material encontrará diversos iconos, cuyo significado se explica a continuación.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 7: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

10

AMPLIACIÓN DE CONOCIMIENTOS: está dirigido al estudiante que desea profundizar más en sus conocimientos en determinado tema.

ATENCIÓN: se presenta cuando se quiere hacer una aclaratoria, una advertencia o una reflexión sobre algún aspecto del contenido.

CASO DE ESTUDIO: es la exposición de una situación muy similar a la realidad a la cual se le dará solución.

CONSULTA EN LA WEB: indica referencias a páginas Web.

CONSULTA EN OTROS LIBROS: se refiere a un llamado a consulta en libros que no figuran como textos de carácter obligatorio para el curso.

EJERCICIOS Y ACTIVIDADES PROPUESTAS: son ejercicios o actividades sugeridas a manera de práctica sobre algún tema de la unidad.

EJERCICIOS DE AUTOEVALUACIÓN: ejercicios que debe realizar el estudiante y posteriormente verificar contra los resultados aquí presentados.

EJEMPLO: es la exposición de un caso alusivo al tema en cuestión y su resolución.

RECORDATORIO: indica algún aspecto sobre el cual debe hacerse énfasis, relacionado con los conocimientos adquiridos previamente por el estudiante.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 8: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

11

II. OBJETIVO DEL CURSO

Implementar soluciones utilizando los microprocesadores para resolver problemas específicos, con sentido lógico y creativo.

III. ESTRUCTURA DEL CURSO El curso Microprocesadores consta de 8 unidades, que incluyen los temas que conforman el contenido del curso, según se aprecia en la siguiente figura:

UNIDAD 1: Arquitectura del microprocesador

UNIDAD 6 : ElCoprocesadorAritmético y laTecnología MMX

UNIDAD 4: Interfazdel Bus

UNIDAD 2: Interfazcon la Memoria

UNIDAD 5: FamiliadeMicroprocesadores

UNIDAD 3: Interfazde E/S Básica,Interrupciones yE/S Controlada porDMA

UNIDAD 7:ProgramacióndelMicroprocesador

UNIDAD 8:Implementación deProgramas en elMicroprocesador

MICROPROCESADORES

02/05/2008 - v27

El microprocesador y suarquitectura

Direccionamiento dememoria

Paginación de memoria

Modos dedireccionamiento.,Direccionamiento de lapila de memoria

Instrucciones

Formato de datos yarquitectura delcoprocesador aritmético

Conjunto de instruccionesy programación delcoprocesador aritmético.

La tecnología MMX: Tiposde datos y conjunto deinstrucciones

El bus ISA, Arquitecturade los buses ISAextendido (EISA) y

(VESA) Local

El bus de interconexiónde los componentesperiféricos (PCI).

El bus serial universalUSB

Puerto grafico acelerado(AGP)

Dispositivos de memoria

Decodificación de ladirección

Interfaz de memoria paralos microprocesadores de8, 16, 32 y 64 bits

RAM dinámica

Los microprocesadores80186, 80188 y 80286

Los microprocesadores80386 y 80486

Los microprocesadoresPentium y Pentium Pro.

El microprocesadorPentium II

Interfaz básica de E/S

Interrupciones

Acceso directo a lamemoria

E/S controlada por DMA

Lenguaje ensamblador,Lenguaje de máquina

Mnemónicos, Conjunto deinstrucciones de unmicroprocesadorespecífico

Programación modular

Codificación dealgoritmos en un lenguajeensamblador específico

Software Simulador de unmicroprocesador

Ejemplos de softwaresimulador demicroprocesadoresespecíficos

Uso del software simulador

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 9: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

13

IV. CONTENIDO

MÓDULO I

EL MICROPROCESADOR, ARQUITECTURA E INTERFACES

En este módulo se estudia la configuración interna del microprocesador visible al

programador, la manera como se direcciona la memoria y como funciona cada

instrucción en la familia de los microprocesadores Intel. El establecimiento de las

interfaces apropiadas para la conexión de los sistemas de memoria y de los

dispositivos de entrada-salida (E/S) también son objetos de estudio en este

módulo. Finalmente se profundiza en la implementación de interfaces sencillas

que se conectan a los sistemas de bus ubicados en la computadora.

Objetivo del Módulo I: Resolver con sentido lógico y creativo, problemas

inherentes a la arquitectura del microprocesador y al establecimiento de interfaces.

El módulo I está estructurado en cuatro unidades:

Unidad 1: Arquitectura del microprocesador.

Unidad 2: Interfaz con la memoria.

Unidad 3: Interfaz de E/S básica, interrupciones y E/S controlada por DMA.

Unidad 4: Interfaz del Bus.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 10: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

15

UNIDAD 1

Arquitectura del microprocesador El estudio del modelo de programación de los microprocesadores, puede realizarse través de la descripción 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 programación de los microprocesadores 8086 al Pentium II, pertenecientes éstos a la familia Intel, así como su modo de funcionamiento en modo real y protegido. Las características de diseño 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 más 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 también la función de cada instrucción, lo que permite sentar bases para la programación de los microprocesadores en unidades posteriores. Objetivo de la Unidad 1: Aplicar los conceptos de arquitectura de los microprocesadores en la descripción de su estructura y/o funcionamiento, dada o no una situación.

Contenido de la Unidad 1: el contenido de la unidad contempla el estudio de los siguientes temas:

1.1 El microprocesador y su arquitectura. .2 Modos de direccionamiento. .3 Instrucciones.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 11: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

17

Actividades recomendadas para el estudio del contenido de la unidad 1 Proceda a realizar las lecturas indicadas en la tabla 1, las cuales lo guiarán en el estudio de los temas contentivos de la Unidad 1 y le permitirán una mejor comprensión para el logro del objetivo 1. Es importante que cumpla esta actividad antes de proceder a realizar las actividades que se le indican posteriormente.

TEMA MATERIAL DE REFERENCIA

CONTENIDO CAPITULO

1.1 El microprocesador y su arquitectura

El texto Los Microprocesadores Intel, B. B. Brey.

Arquitectura interna del microprocesador.

2

Direccionamiento de memoria en modo real.

Introducción al direccionamiento de memoria en modo protegido.

Paginación de memoria.

1.2 Modos de direccionamiento

El texto Los Microprocesadores Intel, B. B. Brey.

Modos de direccionamiento de datos.

3

Modos de direccionamiento de la memoria del programa. Modos de direccionamiento de la memoria de la pila.

1.3 Instrucciones

El texto Los Microprocesadores Intel, B. B. Brey.

Instrucciones para movimiento de datos.

4

Instrucciones aritméticas y lógicas.

5

Instrucciones de control de programa.

6

Tabla 1. Temas de la Unidad 1

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 12: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

18

ATENCIÓN: 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 mayoría 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.

1.1 El microprocesador y su arquitectura El microprocesador es la parte de la computadora diseñada para llevar a cabo o ejecutar los programas, viene a ser el cerebro de la computadora. Es un chip, un tipo de componente electrónico en cuyo interior existen millones de elementos llamados transistores. El programador de un microprocesador debe conocer el conjunto de recursos de la Unidad Central de Proceso (siglas en inglés, CPU) que son manejables desde las instrucciones de un programa (modelo de programación) para poder hacer un mejor uso de éste. El modelo de programación visible para el programador está constituido por el conjunto de registros de que dispone el microprocesador: registros de propósito general, registros de propósito específico y registro de segmentos. Una vez estudiado el contendido del tema 1.1 indicado en la tabla 1, usted estará en capacidad de responder las siguientes preguntas:

¿Qué es el modelo interno de programación de un microprocesador? ¿Por qué se puede afirmar que el modelo de programación de los

microprocesadores Intel, es visible para el programa? ¿Cuáles microprocesadores Intel contienen registros de 8 y 16 bits? ¿Cuál es la función de los registros de propósito específico para los

microprocesadores Intel? ¿Cuál es la función y propósito de los registros de segmento: CS, DS, ES

y SS? Arquitectura interna del microprocesador Se sugiere la lectura de la sección 2-1 incluida en el capítulo 2 del texto del curso, a fin de favorecer los conocimientos básicos que se requieren para la comprensión del tema.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 13: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

19

EJEMPLO 1.1.1: Modelo de programación del microprocesador 8080 Intel

En la figura 1 mostrada a continuación se presenta el modelo de programación de este microprocesador:

Registro acumulador

A

Registros de propósito general

B C D E H L

Registros de propósito específico

SP (Stack Pointer)

PC (Program Counter)

Flags (banderas)

Figura 1. Modelo de programación del microprocesador Intel 8080

El cual dispone de los siguientes registros:

Un registro acumulador de 8 bits (también llamado registro A). Seis registros de propósito 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 propósito específico: un puntero de Stack (SP, siglas en inglés de Stack Pointer) y un contador de programa (PC, siglas en inglés de Counter Program).

Cinco flags (banderas) de 1 bit cada una que poseen la unidad (aritmético- lógica) y cuyo contenido es modificado luego de la ejecución de numerosas instrucciones lógicas y aritméticas. Estas flags son: S, C, A, P y C.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 14: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

20

ATENCIÓN: El registro Flags contiene 8 bits, pero sólo se utilizan los cincos bits menos significativos, que corresponden a las cinco banderas: S, C, A, P y C.

EJEMPLO 1.1.2: Modelo de programación del microprocesador Zilog Z80

El modelo de programación de este microprocesador es presentado en la figura 2.

Registros del banco principal Registros del banco alternativo

A F A´ F´ B C B´ C´ D E C´ E´ H L H´ 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 2. Modelo de programación de microprocesador Zilog Z80.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 15: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

21

Como puede ser apreciado en la figura anterior, el modelo de programación del microprocesador Z80 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 propósito 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 instrucción de intercambio.

Registros de acumuladores y banderas: el Z80 tiene 2 registros acumuladores independientes de 8 bits (comúnmente llamados A y A´) y 2 registros de banderas asociados a los 2 acumuladores (F y F´). Los acumuladores almacenan los resultados de operaciones aritméticas o lógicas 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 instrucción de intercambio.

Registros de propósito específico: - Dispone del registro Program Counter (PC) de 16 bits, que contiene la

dirección de la instrucción que se debe buscar en la memoria. - El Stack Pointer (SP) de 16 bits, el cual contiene la dirección 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 región 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 posición de memoria puede lograrse en respuesta de una interrupción. Este registro se usa para almacenar los 8 bits más significativos de la dirección, mientras el periférico que interrumpe provee los 8 bits menos significativos. Esto da la posibilidad de que las rutinas de interrupción sean localizadas dinámicamente en cualquier parte de la memoria con un mínimo 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.

ATENCIÓN: el texto utilizado para el estudio del curso Microprocesadores se basa en los modelos fabricados por la compañía Intel; sin embargo, se utiliza en este ejemplo el microprocesador Z80 desarrollado por la compañía Zilog, con el objeto de que el alumno amplíe sus conocimientos.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 16: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

22

EJERCICIO 1.1.1. Compare los dos modelos de programación mostrados en los ejemplos 1.1.1 y 1.1.2 y reflexione sobre cuál de ellos le presenta más ventajas al programador a la hora de elaborar un programa y por qué. Discuta su respuesta con el asesor del centro local.

EJERCICIO 1.1.2. Investigue las razones por las que se puede asegurar que el microprocesador 8080 Intel es una versión mejorada tanto en circutería como en características de programación del modelo Intel 8080.

EJEMPLO 1.1.3: uso de los registros de segmento para direccionar el almacenamiento de un programa de aplicación en el sistema DOS de memoria.

El bus del PC XT contiene 20 líneas; estas líneas 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 dirección de 20 bits (esta dirección es denominada también como dirección absoluta). Para generar estas direcciones, el 8088 dispone de cuatro registros de segmento: CS, SS, DS y ES.

Visualice en la figura 3 como se utilizan los registros de segmento para señalar las direcciones de inicio de los diversos módulos de un programa cargado en memoria, dentro del espacio de memoria direccionable con 20 bits (00000-FFFFF H).

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 17: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

23

FFFFF H

Registros de puntero

Segmento de código

Fin de la pila

Segmento de pila

Registros de segmento

Segmento de datos

Segmento extra de datos

00000 H

Figura 3. Programa de aplicación cargado en un sistema de memoria DOS

Se observa en la figura 3 cómo el registro de segmento de código (CS) referencia el segmento que contiene las instrucciones. El registro de pila SS referencia el segmento que contiene una pila visible para el usuario. Los demás registros de segmento (DS, SS) permiten referenciar hasta dos segmentos de datos distintos.

ATENCIÓN: los aspectos concretos de almacenamiento dependen de la plataforma, no existe un modelo único.

Direccionamiento de memoria en modo real Lea la sección 2-2 incluida en el capítulo 2 del libro de texto del curso y revise los ejemplos que allí se incluyen. Posteriormente revise el ejercicio 1.1.3. Ante cualquier duda consulte al asesor del centro local.

IP

SP

BP

CS

SS

DS

ES

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 18: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

24

EJERCICIO 1.1.3. En la figura 4 se muestra un caso de acceso al sistema de memoria cuando el microprocesador opera en modo real. Se pide que usted describa con sus propias palabras: ¿cómo se accede a la memoria usando la técnica de direccionamiento de memoria en modo real?

Tabla de segmentos 250

Dirección lógica Dirección absoluta 400

1200

Figura 4. Esquema de direccionamiento de memoria en modo real

ATENCIÓN: una dirección lógica indica una posición relativa al comienzo de un programa, las instrucciones de programas contienen solo direcciones lógicas. Una dirección física (absoluta) es, por supuesto, la posición actual en la memoria principal. Cuando el procesador ejecuta un proceso, automáticamente convierte las direcciones lógicas en físicas.

Direccionamiento de memoria en modo protegido

Lea la sección 2-3 incluida en el capítulo 2 del libro de texto del curso y revise los ejemplos que allí se incluyen.

EJEMPLO 1.1.4: Manejo de memoria en modo protegido.

En la ejecución de un programa en un sistema basado en microprocesador 80386, se requiere en un instante dado almacenar datos en la memoria, bajo estas

+

Po

P1

P2

400

250

1200

12 400+12

P1

Po

P2

Po

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 19: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

25

condiciones el contenido del registro de segmento de datos DS es el mostrado en la figura 5:

0000000000001 0 00

Solicita nivel de privilegio 00 Elige descriptor en la tabla de descriptores globales Selecciona descriptor número 1

Figura 5. Contenido del registro de segmento DS

Y el formato del descriptor número 1 contenido en la tabla de descriptores globales es el siguiente:

Ocho bytes del descriptor

7 0000 0000 0000 0000 6

5 1111 0010 0001 0000 4

3 0000 0000 0000 0000 2

1 0000 0000 1111 1111 0

Figura 6. Formato del descriptor número 1 El inicio y fin del segmento de datos será el siguiente: Base = 00100000 H Límite = 000FF H Final = Base + Límite = 00100000 H + 000FF H Final = 001000FF H.

EJERCICIO 1.1.4. Con base en el ejemplo 1.1.4, en el cual se aplica el manejo de memoria en modo protegido, se pide que usted realice lo siguiente y lo discuta con su asesor del centro local:

Responda: ¿cuáles localidades de memoria utilizará el

microprocesador para almacenar el segmento de datos? Describa de qué manera el microprocesador controla el acceso

del segmento de memoria.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 20: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

26

Paginación de memoria Se recomienda la lectura de la sección 2-4 incluida en el capítulo 2 del texto del curso, con el fin de favorecer los conocimientos básicos que se requieren para la comprensión del tema.

EJEMPLO 1.1.5: Combinación de los mecanismos de segmentación y paginación disponibles en el Intel Pentium II.

El Pentium II incluye hardware, tanto para segmentación como para paginación. Cuando ambos mecanismos están activados, se puede ver la memoria segmentada paginada. La segmentación define particiones lógicas de memoria en el control de acceso. Por su parte, con la paginación se gestiona la asignación de memoria dentro de las particiones. Cuando se utiliza segmentación las direcciones utilizadas en los programas son direcciones virtuales (llamadas también direcciones lógicas); estas direcciones constan de una referencia al segmento de 16 bits y un desplazamiento de 32 bits. El mecanismo de traducción de dirección para la segmentación implica hacer corresponder una dirección lógica con la dirección lineal. El siguiente paso es la traducción de una dirección lineal a una dirección física de 32 bits.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 21: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

27

La figura 7 ilustra la combinación de los mecanismos de segmentación y paginación disponibles en el Intel Pentium II. Dirección Segmentación Paginación lógica

Figura 7. Gestión de memoria en el Pentium II

ATENCIÓN: Las particiones son bloques de memoria que pueden tener tamaño fijo o tamaño variable.

S e g m e n t o

De s p l a za m i e n t o

+ Dir. Página Desplazamiento

+

Tabla de segmentos

Directorio de páginas

Tabla de páginas

Memoria principal

Dirección física

Dirección lineal

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 22: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

28

1.2 MODOS DE DIRECCIONAMIENTO El uso masivo del direccionamiento a registros indica que los registros del procesador se emplearán intensamente. Con el objeto de que usted se familiarice con los registros disponibles en las arquitecturas de microprocesadores Intel de 8, 16 y 32 bits utilizados para este tipo de direccionamiento, se presenta la tabla 2. Esta información será de importancia para el estudio de los temas siguientes, especialmente aquéllos relacionados con la programación del procesador.

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 también por las instrucciones PUSH y POP.

Tabla 2. Registros disponibles en microprocesadores de 8, 16 y 32 bits

Una vez estudiado el contendido indicado en la tabla 1, usted estará en capacidad de responder las siguientes preguntas:

¿Cuáles son las principales ventajas de los siguientes direccionamientos de datos: inmediato, directo, indirecto, registro, indirecto con registro?

¿Cuáles son los tres modos de direccionamiento de memoria de programa?

¿Cuáles registros controlan la memoria de la pila?

Modos de direccionamiento de datos

Lea la sección 3-1 incluida en el capítulo 3 del texto. Posteriormente examine los ejemplos allí incluidos.

*

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 23: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

29

EJEMPLO 1.2.1: Modos de direccionamiento del Pentium II

En el mecanismo de traducción de direcciones del Pentium II presentado en la figura 8, se obtiene una dirección lineal que pasa por un mecanismo de traducción de páginas para producir una dirección física. En el ejemplo que se presenta a continuación se ignora el paso de paginación, 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 ejecución eficiente de lenguajes de alto nivel. En la figura 8 se muestra el hardware involucrado y, en la Tabla 3, los modos de direccionamiento disponibles en este microprocesador.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 24: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

30

Registro de segmento

SS GS FS ES DS CS Registros descriptores Dirección efectiva Dirección lineal

Figura 8. Cálculos en el modo de direccionamiento del Pentium II

Derechos de SS acceso

Límite

Dirección base

Derechos de GS acceso

Límite

Dirección base

Derechos de FS acceso

Límite

Dirección base

Derechos de ES acceso

Límite

Dirección base

Derechos de DS acceso

Límite

Dirección base

Derechos de CS acceso

Límite

Dirección base

+

X

Registro base

Registro índice

Escala: 1,2 u 8

Desplazamiento (en la instrucción, 0, 8 ó 32 bits)

+

Selector Selector

Selector Selector

Selector Selector

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 25: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

31

MODO ALGORITMO DESCRIPCIÓN

Inmediato Operando = A

El operando se incluye en la instrucción. 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.

Registro LA = R

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 emplearán intensamente, y debido al número limitado de registros en comparación con el número de posiciones de la memoria principal, se recomienda usarlo eficientemente.

Con desplazamiento

LA = (SR) + A

El desplazamiento del operando está incluido, formando parte de la instrucción. Debido a que implica instrucciones largas, se puede encontrar en pocas máquinas. En el Pentium II, el valor del desplazamiento puede ser de 32 bits, haciendo que la instrucción tenga 6 bytes.

Base LA = (SR) + (B)

Especifica que uno de los registros de 8, 16 o 32 bits contiene la dirección efectiva

Base con desplazamiento

LA = (SR) + (B) + A

La instrucción 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 la utilización 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.

Índice escalado con desplazamiento

LA = (SR) + (I) x S + A

La instrucción incluye un desplazamiento a ser sumado 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.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 26: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

32

MODO ALGORITMO DESCRIPCIÓN

Base con índice y desplazamiento

LA = (SR) + (B)+ (I) + A

Suma los contenidos de los registros base e índice, y un desplazamiento para formar la dirección efectiva. Podría emplearse para manejar una matriz bidimensional; en este caso el desplazamiento apunta al inicio de la matriz, y cada registro gestiona una dimensión de la misma.

Base con índice escalado y desplazamiento

LA = (SR) + (I) x S + (B) + A

Suma el contenido del registro índice, multiplicado por un factor de escala, con el contenido del registro base y el desplazamiento. Permite la indexación eficiente de una matriz bidimensional cuando los elementos de la misma tienen longitudes de 2, 4 u 8 bytes.

Relativo LA = (PC) + A

Suma un desplazamiento al valor del contador del programa que apunta a la siguiente instrucción, se emplea en instrucciones de transferencia del control (control de flujo).

LA = dirección lineal (X) = contenido de X SR = Registro de segmento PC = Contador de programa A = Contenido de un campo de R = Registro dirección de la instrucción B = Registro base I = Registro índice S = Factor de escala

Tabla 3 Modos de direccionamiento del Pentium II.

EJERCICIO 1.2.1 Elabore una tabla similar a la Tabla 3 en la cual se incluyan los modos de direccionamiento disponibles en el microprocesador Intel 8080, posteriormente establezca una comparación entre ambas tablas y reflexione sobre la ventaja que representa para el programador el disponer de una diversidad de modos de direccionamiento. Discuta esta actividad con sus pares y presente sus resultados al asesor del centro local.

Modos de direccionamiento de la memoria del programa Lea la sección 3-2 incluida en el capítulo 3 del texto. Posteriormente examine los ejemplos allí incluidos.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 27: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

33

Modos de direccionamiento de la memoria de la pila Se sugiere la lectura de la sección 3-3 incluida en el capítulo 3 del texto del curso, con el fin de favorecer los conocimientos básicos que se requieren para la comprensión del tema.

EJEMPLO 1.2.2: uso de la pila cuando se invoca una función en lenguaje En el lenguaje C normalmente se utiliza la pila para pasar parámetros entre funciones. Antes de realizar la llamada a una función se insertan en la pila todos los parámetros luego se invoca a la función y ésta lee los parámetros de la pila.

Cuando se realiza la invocación de una función utilizando las instrucciones CALL y RET, la estructura típica de la pila es la que se muestra en la figura 9. En la figura puede apreciarse el uso de la pila para el paso de parámetros entre funciones, en el lenguaje C de alto nivel.

Segmento de pila

Final de la pila (valor inicial de ESP)

Variables locales pasadas al procedimiento llamado

Parámetros pasados al procedimiento llamado

Tope de la pila

Figura 9. Uso de la pila cuando se invoca una función en lenguaje C

Dirección de la instrucción de retorno

Registro EBP

Registro ESP

EBP apunta a la dirección de la instrucción de retorno

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 28: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

34

El orden en el que se insertan los parámetros en la pila es importante. Los últimos parámetros en insertarse en la pila son los primeros parámetros en la declaración de la función C.

EJERCICIO 1.2.3 La memoria de pila juega un papel importante en todos los microprocesadores, ya que contiene datos y almacena direcciones de retorno para procedimientos. Las instrucciones PUSH y POP permiten almacenar y recuperar datos de la memoria de la pila. Por ejemplo, la instrucción PUSH BX permite almacenar el contenido del registro BX en la pila. Aplique el direccionamiento de memoria en modo real, en la ejecución de la instrucción PUSH BX, y explique cómo se realiza el almacenamiento del contenido del registro BX en la pila. Asuma para ello los siguientes valores: SS = 0300H; SP = 07FEH y BX = 1234H. Consulte al asesor del centro local sobre los resultados obtenidos.

1.3 INSTRUCCIONES Estas Instrucciones pueden ser representadas mediante secuencias de ceros y unos. Tales secuencias no son cómodas de manejar, por ello se emplean nombres simbólicos o nmónicos para representarlas, tales como MOV, ADD, INC, etc. El conjunto completo de dichos nombre simbólicos y reglas para su uso constituyen un lenguaje de programación, referido generalmente como lenguaje ensamblador. Los programas escritos en lenguaje ensamblador pueden ser traducidos automáticamente a una secuencia de instrucciones de máquina, mediante un programa llamado ensamblador. Las instrucciones de máquina tienen una longitud variable desde instrucciones de un byte a instrucciones de 12 bytes. El formato para representar estas instrucciones varía de una arquitectura a otra dependiendo del microprocesador a utilizar y del modo en que el mismo opere. Una vez estudiado el contendido indicado en la tabla 1, usted estará en capacidad de responder las siguientes preguntas:

¿Qué es una directiva de lenguaje ensamblador? ¿Para qué son empleadas las directivas PROC y ENDP? Un microprocesador 80386 opera en el modo protegido y utiliza un

registro de 32 bits, ¿Es necesario que el código de operación esté precedido del prefijo de tamaño de registro? Razone su respuesta.

¿Cuál es la función de la directiva .MODEL?

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 29: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

35

Instrucciones para movimiento de datos Lea la el capítulo 4 incluido en el texto y revise los ejemplos allí expuestos.

EJEMPLO 1.3.1: Instrucción 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.

El microprocesador opera en el modo de instrucciones de 16 bits La instrucción consta de tres bytes: 66 H, 8B H y EC H y el formato de la instrucción en binario será el siguiente: Byte 1 (66 H) Byte 2 (8B H)

0 1 1 0 0 1 1 0

1 0 0 0 1 0 1 1

W D Prefijo de tamaño de registro Código de operación

Byte 3 (E8 H)

1 1 1 0 1 0 0 0

MOD REG R/M El byte 1: selecciona operandos de registro de 32 bits. El byte 2: contiene el código de operación conformado por los seis bits más significativos (100010), que corresponden a la operación MOV. El bit de dirección 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 serán 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)

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 30: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

36

La instrucción escrita en lenguaje ensamblador es MOV EBP, EAX. Esta instrucción mueve la palabra doble desde el registro EAX al registro EBP.

ATENCIÓN: el ejemplo 1.3.1 está incluido en el texto Los microprocesadores Intel, pero es explicado con más detalle en el presente material.

EJEMPLO 1.3.2: uso de las directivas ORG, DB, DW y de la instrucción MOV para la transferencia de datos.

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

EJERCICIO 1.3.1 Analice el programa mostrado en el ejemplo 1.3.2 y realice lo siguiente:

Describa la función que realizan las directivas ORG, DB y DW Mencione el tipo de direccionamiento de datos utilizado Describa la forma como opera cada una de las instrucciones

MOV Compare su respuesta con la de otro estudiante y consulte al asesor del centro local.

Instrucciones aritméticas y lógicas Lea el capítulo 5 incluido en el texto, y posteriormente examine los ejemplos allí presentados.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 31: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

37

EJEMPLO 1.3.3: uso de las instrucciones aritméticas ADD (suma) y ADC (suma con acarreo).

ORG 1000 H dato1_l DW 0FFFF H dato1_h DW 0015 H dato2_l DW 0011 H dato2_h DW 0002 H

ORG 2000 H MOV AX, dato1_l ADD AX, dato2_l MOV BX, dato1_h ADC BX, dato2_h END

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.

EJEMPLO 1.3.4: uso de instrucciones del lenguaje ensamblador para codificar la estructura de control IF THEN ELSE del lenguaje Pascal.

No existe una instrucción 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 combinación de instrucciones CMP y saltos condicionales e incondicionales.

Por ejemplo, para simular el siguiente código de Pascal:

IF AL = 4 THEN BEGIN

BL = 1; CL = CL + 1;

END;

Se debe comenzar calculando la condición del IF, en este caso, comparar AL con 4. Eso se logra la instrucción CMP AL, 4. Esta instrucción 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 condición es verdadera, se debería ejecutar las instrucciones que están dentro del THEN. Si no, se evita ejecutarlas.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 32: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

38

Una solución que permite esto es la siguiente: CMP AL, 4 ;(1) JZ Then ;(2) JMP Fin_IF ;(3)

Then: MOV BL, 1 ;(4) INC CL ;(5)

Fin_IF: HLT ;(6)

Analizando el código se puede establecer lo siguiente para cada uno de los comentarios: Si la comparación en (1) establece el flag Z en 1, se produce el salto en (2)

haciendo que la ejecución continúe en la etiqueta Then. Ahí, se ejecutan las instrucciones (4) y (5) que hacen lo que se encuentra en el THEN del IF y continúa la ejecución en la instrucción 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

ejecución continúa en la próxima instrucción, el JMP en (3), que saltea las instrucciones y continúa la ejecución en la instrucción apuntada por la etiqueta Fin_IF , que señala el final del IF.

En el final del IF, se ejecuta un HLT (6) para terminar la ejecución del

programa. Instrucciones de control de programa Lea el capítulo 6 incluido en el texto y posteriormente revise los ejemplos allí presentados.

EJERCICIOS PROPUESTOS A continuación se le presentan una serie de ejercicios para que los resuelva. Se le sugiere comentar la solución de los mismos con sus pares y/o el asesor del centro local. 1.- Aplique los conceptos de modelo de programación estudiados y describa el

modelo interno de programación de los microprocesadores de 16 y 32 bits de la familia Intel, utilizando el mismo esquema presentado en los ejemplos 1.1.1 y 1.1.2.

2.- Realice el ejemplo 1.1.4 utilizando el sistema de codificación hexadecimal para especificar el contendido del descriptor.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 33: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

39

3.- Determine la dirección de memoria a la cual accede cada una de las siguientes instrucciones con el modo de operación real (asuma para ello que DS = 0200 H, BX = 0300 H y DI = 400 H): a) MOV EAX,[BX] b) MOV [DI],AL

4.- Realice el ejemplo 1.3.1, pero considerando que el modo de instrucciones es de 32 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 cómo se convierte la instrucción AAM de binario a BCD.

EJERCICIOS DE AUTOEVALUACIÓN 1.- Responda con sus propias palabras los siguientes cuestionamientos:

a) ¿Cuál es la función de un registro de segmento en el direccionamiento de memoria en modo protegido?

b) ¿Cuál es la función del TLB (buffer de referencia de traducción), ubicado dentro del microprocesador 80486?

2.- ¿Cuáles son las localidades de inicio y final que direcciona un descriptor del

microprocesador 80286 con una dirección de base de A00000 H y un límite de 1000 H?

3.- Represente en forma gráfica 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 gráfica la dirección de memoria a la cual accede la instrucción

MOV AL,[1234 H] con el modo de operación 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 lógicas, 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.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 34: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

40

CONSULTA EN OTROS LIBROS [Flyn85] Flynn, M, ;Jonson, J.; and Wakefield, S. On Instruction Sets and Their Formats IEEE Transactions on Computer, September 1987. Contiene aspectos de diseño de repertorios de instrucciones, particularmente aquellos relativos a los formatos. [Lameda 1984]: presenta el estudio de microprocesadores de 8 bits. [Sayers 1995]: trata arquitecturas prácticas de microprocesadores de 8, 16 y 32

bits. [Stallings 2000]: incluye material sobre: la organización de los registros visibles al usuario (modelo de programación), los modos de direccionamiento y el repertorio de instrucciones.

[Tanenbaum 2000]: presenta los formatos de las instrucciones, los modos de direccionamiento y los tipos de instrucciones. También presenta el nivel del lenguaje ensamblador.

ATENCIÓN: además se encuentra información 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: contiene información sobre los elementos básicos del lenguaje ensamblador.

http://weblidi.info.unlp.edu.ar/catedras/organiza/download/apunte4.pdf: contiene información sobre las instrucciones y directivas del lenguaje ensamblador.

http://www.tau.org.ar/base/lara.pue.udlap.mx/sistoper/capitulo4.html: incluye información interesante sobre la segmentación y la paginación de memoria.

http://futura.disca.upv.es/~eso/es/t2-arquitectura/gen-t2-arquitectura.html: presenta una introducción a la arquitectura IA-32 de los microprocesadores Intel.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 35: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

41

RESPUESTA A LOS EJERCICIOS DE AUTOEVALUACIÓN

1.- A continuación 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, también contiene el nivel de privilegio solicitado.

b) El TLB almacena las 32 últimas traducciones de la dirección lineal a la física de la unidad de paginación.

2.- El inicio y fin del segmento será el siguiente:

Base = Inicio = A00000 H Final = Base + limite = A00000 + 1000 h Final = A01000 H

3.- Utilizando el formato presentado el ejemplo 1.3:

Ocho bytes del descriptor

7 0000 0011 1001 0000 6

5 1001 0010 0000 0000 4

3 0000 0000 0000 0000 2

1 0010 1111 1111 1111 0

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 36: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

42

4.- A continuación se genera la dirección para la instrucción MOV AL,[1234 H]: EAX 3134 H EBX ECX CS DS x 10 H DS 1234 H 5.- La secuencia será la siguiente:

MOV SI, DI OR SI, 1F H

AH AL 8A H

8A H

0200 H +

8A H

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 37: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

43

UNIDAD 2

Interfaz con la memoria

En computadores antiguos, la forma más común de almacenamiento de acceso aleatorio para la memoria principal consistía en una matriz de pequeños anillos ferromagnéticos denominados núcleos. Pero con el advenimiento de la microelectrónica y sus ventajas nació el uso de las memorias semiconductoras para la memoria principal. En esta unidad se exploran aspectos claves de esta tecnología. Se inicia con el estudio de la organización y funcionamiento de los dispositivos semiconductores de memoria, específicamente los cuatro tipos más comunes: ROM (memoria de sólo lectura), EEPROM (memoria de sólo lectura, borrable y programable eléctricamente), SRAM (memoria estática de acceso aleatorio) y DRAM (memoria dinámica 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 método óptimo de conectar a toda la memoria del microprocesador. Por esto se incluye, en la unidad 2, la solución de problemas de conexión de la memoria al microprocesador mediante la interfaz adecuada, específicamente para la familia de los microprocesadores Intel.

Objetivo de la Unidad 2: Resolver problemas de conexión 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 del siguiente tema:

2.1 Interfaz con la memoria

Recomendaciones para el estudio del contenido de la unidad 2

Desarrolle las lecturas del tema indicados en la tabla 4, en la cual se muestran los temas contentivos de la unidad 2. Estas lecturas son importantes para el desarrollo de las actividades que se le indican posteriormente.

TEMA MATERIAL DE REFERENCIA

CAPÍTULO CONTENIDO SECCIÓN

2.1 Interfaz con la memoria

El texto Los Microprocesadores Intel, B. B. Brey.

10

Dispositivos de memoria. 10.1

Decodificación de la dirección.

10.2

Interfaz de la memoria de los microprocesadores de 8, 16, 32 y 64 bits.

10.3 -10.6

RAM dinámica 10.7

Tabla 4. Temas de la Unidad 2

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 38: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

44

2.1 INTERFAZ CON LA MEMORIA

La memoria principal está conformada por circuitos semiconductores capaces de almacenar información digital. El elemento básico de una memoria semiconductora es la celda de memoria. Una memoria principal se compone de un conjunto de celdas básicas dotadas de una determinada organización. Cada celda soporta un bit de información. El funcionamiento de una celda de memoria está determinado básicamente por tres terminales para transportar señales eléctricas:

El terminal de selección permite elegir la celda para realizar una operación de escritura o de lectura.

El terminal de control indica si se trata de una operación de lectura o una operación de escritura.

Terminal para la entrada (ver figura 11.a) o la salida de datos (ver figura 11.b).

Figura 11. Funcionamiento de una celda de memoria

Las memorias semiconductoras vienen en chips encapsulados, los cuales contienen una matriz de 2n filas y m columnas. Cada fila de celdas constituye una palabra de memoria de longitud m; todas las líneas de una fila están conectadas a las n líneas de dirección. Las celdas de cada columna están conectadas a un circuito de Detección/Escritura y este circuito se conecta a la entrada salida de datos del chip. Además se dispone de las líneas de control: R/W (Lectura/Escritura) que indica la operación deseada y CS (selección de chip), ver figura 12.

CELDA

Control

Selección Salida de datos

CELDA

Control

Selección Entrada de datos

(a) Escritura (b) Lectura

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 39: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

45

Figura 12. Organización de un chip de memoria

La figura 13 muestra un ejemplo de una memoria EPROM encapsulada en un chip de 8 MB organizados en 1M x 8 bits.

Figura 13. Terminales y señales típicas de un chip encapsulado

El chip encapsulado tiene 32 terminales, siendo éste uno de los tamaños estándar de encapsulado. Los terminales son los siguientes:

Líneas para direccionar 1M palabras. Se necesita un total de veinte terminales (Ao – A19) ya que 220 = 1M.

Ocho líneas de datos (D0 – D7). El terminal de alimentación del chip (Vcc) Un terminal de tierra (Vss). Un terminal de habilitación de chip (CS) Una tensión de programación, que se aplica durante la programación de la

memoria (Vpp).

Selección

Matriz de celdas 2n x m celdas

Dirección

n

2n

Circuito de Detección/escritura

R/W

CS

m m

CS

EPROM 1 m X 8

.

.

.

A0

A1

A19

Vcc

Vss Vpp

.

.

.

D0

D1

D7

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 40: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

46

ATENCIÓN: Para efectos del desarrollo de ejercicios y o problemas en el curso Microprocesadores no se considerarán el uso de los terminales Vcc, Vss y Vpp.

La figura 14 presenta una arquitectura típica de un arreglo de memoria. En el arreglo, m bits de dirección se dividen en t bits de dirección de fila y s bits de dirección de columna, para simplificar los decodificadores a utilizar.

La memoria de la figura 14 tiene n bits de capacidad, o sea que puede almacenar n bits de datos. Para acceder a cualquiera de las n celdas de memoria es necesario suministrar una dirección única para identificar la localización requerida dentro del arreglo de memoria. El acceso o decodificación de la dirección requerida se facilita dividiéndola en direcciones de fila y columna para aplicarlas al arreglo de memoria. Los m bits de dirección se dividen en t bits de dirección de fila y s de dirección de columna, lo que simplifica mucho los decodificadores requeridos en el chip de memoria.

En vez de utilizar un decodificador de línea m a línea 2m, basta con dos decodificadores de línea más pequeños y simples, t a línea 2t y línea s a línea 2s. Además, si m es un número par, es decir, s y t son iguales, se puede simplificar todavía más el chip de memoria ya que solo se requiere un tipo de decodificador aunque se necesiten dos.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 41: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

47

Dirección de columna 1 . . . . . . . s 2s

Dirección de fila 1 . Arreglo de . memoria . 2t

. . t Celda de la memoria ______ Lectura/escritura Salida Entrada

Figura 14. Arquitectura típica de un arreglo de memoria de 2n celdas

La diferencia existente entre el número de líneas de conexiones del bus de direcciones de un microprocesador y las líneas de conexiones disponibles en los dispositivos de memoria, hace que se requieran utilizar dispositivos decodificadores para corregir esta incompatibilidad. El empleo de los decodificadores permite, entonces, que la memoria funcione en una sección o partición única del mapa de memoria. El uso de la decodificación permite además conectar más de un dispositivo de memoria al microprocesador, ya que con frecuencia se requiere un tamaño de memoria de más capacidad, por ejemplo puede ser que se quisiera una memoria con más palabras o una que contenga un tamaño de palabra mayor. Una vez estudiado el contendido indicado en la tabla 4, usted estará en capacidad de responder las siguientes preguntas:

Decodificador

Decodi- ficador

Controladores de escritura y amplificadores de detección, más multiplexor de entrada/salida

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 42: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

48

¿Cuáles son los terminales de conexión comunes a todos los dispositivos de memoria?

¿Para qué son utilizadas las líneas de dirección en un dispositivo de memoria?

¿Para qué son utilizadas las conexiones de datos en un dispositivo de memoria?

¿Cuántas localidades de memoria se pueden direccionar con 10 terminales de dirección?

¿Por qué es necesario decodificar las líneas de dirección del microprocesador para direccionar la memoria?

¿Qué tipos de conexión son comunes para todos los dispositivos de memoria?

¿Cuántas palabras se encuentran en un dispositivo de memoria que tenga 8 conexiones de dirección?

Dispositivos de memoria Lea la sección 10-1 incluida en el capítulo 10 del libro de texto del curso posteriormente desarrolle el ejercicio 2.1.1.

EJERCICIO 2.1.1 Elabore una lista de los chips de memoria semiconductora existentes en el mercado, incluya en la lista la descripción de cada uno de los terminales disponibles. Discuta esta lista con su asesor del centro local.

Decodificación de la dirección Lea la sección 10-2 incluida en el capítulo 10 del libro de texto del curso y revise los ejemplos que allí se incluyen.

EJEMPLO 2.1.1: Construcción de un banco de memoria de 1 Kbyte usando cuatro dispositivos RAM de 256 x 8 bits y un decodificador de 2 a 4 líneas.

Para apuntar a las direcciones de memoria se utilizan las líneas A0 hasta A7 del bus de direcciones. Por su parte, la selección del dispositivo RAM a ser utilizado se realizará mediante la decodificación de los 2 bits más significativos de los 10 bits de dirección (líneas A8 y A9), utilizando para ello un decodificador de 2 a 4, tal como se muestra en la figura 15:

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 43: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

49

Figura 15. Sistema de memoria de 1 Kbyte x 8 bits

EJERCICIO 2.1.2 Investigue cómo está configurado el sistema de memoria SRAM del microprocesador Intel 80486 y qué tipo de decodificadores se utilizan en su conexión. Presente la información investigada al asesor de su centro local.

Interfaz de la memoria de los microprocesadores de 8, 16, 32 y 64 bits y RAM dinámica Lea la sección 10-3, 10-6 y 10-7 incluida en el capítulo 10 del libro de texto del curso y revise los ejemplos que allí se incluyen.

EJERCICIOS PROPUESTOS A continuación se le presentan una serie de ejercicios para que los resuelva. Se le sugiere comentar la solución de los mismos con sus pares y/o el asesor del centro local.

256 x 8

RAM

256 x 8

RAM

256 x 8

RAM

256 x 8

RAM

Decodificador de 2 a 4

A0

A7

A8

A9

Habilitación Habilitación Habilitación

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 44: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

50

1.- Describa cómo se realiza la selección de la dirección requerida en el arreglo de memoria presentado en la figura 14, para el caso en que la memoria sea del tipo RAM.

2.- ¿Cuántos 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 líneas de dirección? Represente gráficamente la conexión adecuada de la memoria al microprocesador.

EJERCICIOS DE AUTOEVALUACIÓN 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 posición 000000 H, y una cantidad de memoria ROM (EPROM) de 4K empezando en la posición 30F000 H. Para ello se dispone de circuitos EPROM de 2K x 8 y circuitos RAM de 256 x 8. Presente también la tabla de decodificación necesaria.

2.- Se pide diseñar 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 líneas de dirección, y las señal de control R/W (cuando se desea leer un dato de memoria se activa la señal R mediante un 1 lógico; por el contrario, si se desea escribir en la memoria RAM la señal W deberá tomar el valor de 0 lógico). A continuación se presenta el microprocesador y los dispositivos de memoria a ser utilizados:

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 45: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

51

A15 A14 . Líneas de dirección . A0 Canal de control Canal de datos ___ CSR ___ CSE

Con base en el planteamiento dado anteriormente, presenta la conexión adecuada de los dispositivos de memoria al microprocesador para lograr la configuración deseada.

CONSULTA EN OTROS LIBROS [Lameda 1984]: presenta variados ejemplos sobre el diseño de los sistemas de memoria. [Stallings 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. [Sayers 1995]: incluye información sobre arreglos de memoria para un microprocesador.

Microprocesador _ D0 a D7 R/W

A0 A1 A11 __ CS EPROM 4 k X 8 _ D0 a D7 R/W

A0 A1 A11 __ CS RAM 4 k X 8 __ D0 a D7 OE

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 46: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

52

CONSULTA EN LA WEB http://ortihuela.galeon.com/ram.htm: incluye información sobre los diversos tipos de memoria RAM. http://es.wikipedia.org/wiki/Memoria_RAM: presenta información relevante sobre los tipos de memoria RAM y sus aplicaciones.

RESPUESTA A LOS EJERCICIOS DE AUTOEVALUACIÓN 1.- Como las direcciones contienen tres bytes, se requieren 24 líneas de dirección

(desde A0 hasta A24). La cantidad de dispositivos RAM a utilizar es de 4 (ya que 4 x 256 bytes = 1024 bytes = 1k) y dos dispositivos EPROM. El sistema de memoria así configurado será el siguiente:

000000 H 000200 H 0003FF H 30F000 H 30FFFF H FFFFFF H

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 47: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

53

Y la tabla de decodificación será la siguiente:

A23 A22 A21 A20 A19 A16 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 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

RAM1 RAM2 RAM3 RAM4

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

EPROM1 EPROM2

2.- Para direccionar la memoria sólo se requieren utilizar 12 líneas de dirección

(212 = 4 K) y para evitar que los dispositivos RAM y ROM coloquen información en el canal de datos, cuando las señales CSE y CSR toman el valor de cero lógico, es necesario distinguir entre las dos memorias mediante estas señales. Por medio de las líneas de dirección no usadas A12 a A15 se puede determinar el estado de las líneas de selección de los chips. Debe obtenerse una relación entre las líneas de dirección restantes de modo que ambas líneas de selección de chip jamás estén bajas al mismo tiempo. Esto se logra mediante la decodificación de direcciones. La decodificación se puede obtener de acuerdo a lo siguiente:

___ ___ A15 A14 A13 A12 CSE CSR

0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 . . . . . . . . . . . . . . . . . . 1 1 1 1 1 1

Usando este esquema, cada localización de memoria física se identifica en forma singular. A continuación se muestra la conexión adecuada:

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 48: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

54

____ ___ CSR CSE

Microprocesador _ D0 a D7 R/W

A0 A1 A11 __ CS RAM 4 k X 8 _ D0 a D7 R/W

A0 A1 A11 __ CS EPROM 4 k X 8 __ D0 a D7 OE

A15

A12

A11

A1 A0

LINEAS DE DIRECCIÓN

CANAL DE DATOS

CANAL DE CONTROL

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 49: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

55

UNIDAD 3 Interfaz de E/S básica, 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 habría, por ejemplo, entrada desde el teclado, ni salida hacia la pantalla, ni salida impresa y ni siquiera almacenamiento y recuperación 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 el estudio de los componentes de E/S y sus interfaces, específicamente con el microprocesador. Posteriormente se introducen dos técnicas avanzadas de E/S, las interrupciones y acceso directo a memoria, además de los componentes y las configuraciones que las hacen posibles.

Objetivo de la Unidad 3: Resolver problemas de atención a los dispositivos de E/S, haciendo uso de interfaces básicas programables y/o por interrupción y/o controladas por DMA.

Contenido de la Unidad 3: El contenido de la unidad contempla el estudio de los siguientes temas:

3.1 La interfaz de entrada-salida básica 3.2 Interrupciones. 3.3 Acceso directo a memoria y E/S controlada por DMA.

Actividades recomendadas para el estudio del contenido de la unidad 3 Lea los temas mostrados en la tabla 5, correspondientes a la unidad 3. Realice esta actividad antes de proceder a desarrollar las actividades que se le indican posteriormente.

TEMA MATERIAL DE REFERENCIA

CONTENIDO CAPITULO

3.1 La interfaz de entrada/salida básica

El texto Los Microprocesadores Intel, B. B. Brey.

Introducción a la interfaz de E/S

11 La interfaz periférica programable 82C55 La interfaz programable de teclado/pantalla tipo 8279

3.2 Interrupciones

El texto Los

Procesamiento básico de interrupciones. 12

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 50: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

56

Microprocesadores Intel, B. B. Brey.

Interrupciones por hardware.

Expansión de la estructura de interrupciones

Controlador de interrupción programable 8259A.

3.3 Acceso directo a memoria y E/S controlada por DMA

El texto Los Microprocesadores Intel, B. B. Brey.

Operación básica del DMA y el controlador del DMA 8237.

13 Operación del bus compartido.

Tabla 5. Temas de la unidad 3

AMPLIACIÓN DE CONOCIMIENTOS: el contenido Interfaz

programable de comunicaciones 16550, incluido en el capítulo 11 sección 11-6, del texto Los Microprocesadores Intel, no es objeto de evaluación del curso Microprocesadores. Sin embargo, se recomienda su lectura, ya que ésta es utilizada para conectarse prácticamente a cualquier tipo de interfaz serial.

ATENCIÓN: para el establecimiento de una interfaz se requieren ciertos conocimientos de electrónica; el texto del curso examina algunos hechos relacionados con ella, los cuales se recomienda leer a objeto de obtener una mejor comprensión del contenido.

3.1 LA INTERFAZ DE ENTRADA/SALIDA BÁSICA La mayoría de los microprocesadores tienen pocos valores funcionales por si mismos. Muchos no contienen una memoria sustancial, y pocos tienen puertos de entrada y salida que los conecten directamente a dispositivos periféricos. Los microprocesadores operan como parte de un sistema, la interconexión, o enlace, de las partes en este sistema se denomina interfaz. Una configuración sencilla para conectar dispositivos de E/S a un computador es una estructura de bus único, tal como se muestra en la figura 16. El bus permite que todos los dispositivos conectados a él puedan intercambiar información. Por lo general, el bus está conformado por tres conjuntos de líneas de transporte (de dirección, de datos y de control). El microprocesador solicita una operación de lectura o de escritura y los datos son transferidos a través de las líneas de datos.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 51: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

57

Figura 16. Estructura de bus único

En la figura 17 se ilustra el hardware requerido para conectar un dispositivo de E/S al bus. El decodificador de direcciones permite al dispositivo reconocer su dirección cuando una dirección aparece en el bus de direcciones. El registro de datos almacena los datos a ser transferidos hacia o desde el microprocesador. El registro de estado contiene la información relevante al funcionamiento del dispositivo de E/S. Ambos el registro de estado y el de datos están conectados al bus de datos. El decodificador de direcciones, el registro de datos y el de estado, y los circuitos de control requeridos para coordinar la transferencia de E/S constituyen los circuitos de interfaz del dispositivo.

Figura 17. Conexión de un dispositivo de E/S al bus

Por lo general los dispositivos periféricos no pueden conectarse de manera directa al microprocesador, la conexión suele hacerse mediante un chip de interfaz. Para construir la interfaz de entrada se utiliza un conjunto de dispositivos buffers de tres estados y para la interfaz de salida registros de dato.

Microprocesador

Memoria principal

Dispositivo de E/S

Dispositivo de E/S

Bus

Líneas de dirección

Líneas de datos

Líneas de control

Interfaz de E/S

Dispositivo de E/S

Decodificador de direcciones

Circuitos de

control

Registros de datos y de

estado

Bus

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 52: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

58

Una vez estudiado el contendido del tema 3.1 indicado en la tabla 5, usted estará en capacidad de responder las siguientes preguntas:

¿Qué dispositivos se utilizan para construir la interfaz básica de entrada, que permite conectar un dispositivo de E/S al bus del computador?

¿Qué instrucciones utiliza la E/S aislada para la transferencia de datos entre un dispositivo de E/S y el microprocesador?

¿Cuál es la ventaja que tiene la E/S ubicada en memoria, con respecto a las instrucciones que utiliza para la transferencia de datos?

¿En qué se diferencia un decodificador de puerto de E/S del decodificador de memoria?

¿Por qué se puede decir que el dispositivo 82C55 puede utilizarse para controlar diversos periféricos?

Introducción a la interfaz de E/S Lea la sección 11-1 incluida en el capítulo 11 del libro de texto del curso y revise los ejemplos que allí se incluyen. Posteriormente estudie los ejemplos 3.1.1 y 3.1.2. Ante cualquier duda consulte al asesor del centro local.

EJEMPLO 3.1.1: Protocolo handshaking para comunicación en paralelo. Una típica sesión de transmisión de datos se produce de la siguiente manera: Parte transmisora: La parte transmisora chequea la línea busy para ver si la parte receptora

está ocupada. Si la línea busy está activa, la parte transmisora espera en un bucle hasta que la línea busy esté inactiva.

La parte transmisora coloca la información en las líneas de datos. La parte transmisora activa la línea de strobe. La parte transmisora espera en un bucle hasta que la línea acknowledge

está activa. La parte transmisora inactiva la línea de strobe. La parte transmisora espera en un bucle hasta que la línea acknowledge

esté inactiva. La parte transmisora repite los pasos anteriores por cada byte a ser

transmitido. Parte receptora: La parte receptora inactiva la línea busy (asumiendo que está lista para

recibir información). La parte receptora espera en un bucle hasta que la línea strobe esté activa. La parte receptora lee la información de las líneas de datos (y si es

necesario, procesa los datos). La parte receptora activa la línea acknowledge.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 53: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

59

o La parte receptora espera en un bucle hasta que esté inactiva la línea de strobe.

La parte receptora inactiva la línea acknowledge. La parte receptora repite los pasos anteriores por cada byte que debe

recibir.

Se puede observar en la secuencia de pasos antes mostrada, como la parte transmisora no intentará colocar varios bytes en las líneas de datos, en tanto que la parte receptora no debe leer más datos que los que le envíe la parte transmisora, un byte a la vez.

EJEMPLO 3.1.2: aplicación del buffer triestado para la selección de dos puertos de entrada.

En la figura 18 se muestra la conexión que permite seleccionar entre dos puertos de entrada para acceder al bus de datos (DB0….DB7) del microprocesador.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 54: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

60

Microprocesador

DB0

DB1

DB2

DB3

DB4

DB5

DB6

DB7

74X541

DB2

DB3

DB0

DB1

DB5

Bus de datos

READ

INSEL1

INSEL2

INSEL3 . . . .

D0 D1 D2 D3 D4 D5 D6 D7

A1 A2 A3 A4 A5 A6 A7 A8

G1 G2

Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8

DB0

DB1

DB4

DB5

DB6

DB7

74X541

A1 A2 A3 A4 A5 A6 A7 A8

G1 G2

Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8

DB2

DB3

DB4

DB6

Puerto 1

Puerto 2

Figura 18. Uso de los buffers triestado como interfaz de

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 55: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

61

Cuando el microprocesador ejecuta una instrucción IN se puede leer un dato de cualquiera de los dos puertos; la selección del puerto se realiza mediante la activación de una de las líneas INSEL, lo que ocasiona que las conexiones de entrada de datos (A) sean conectadas a la conexión de salida de datos (Y).

La Interfaz Periférica Programable (IPP) Intel 82C55 Lea la sección 11-3 incluida en el capítulo 11 del texto. Posteriormente examine los ejemplos 3.1.3 y 3.1.4.

EJEMPLO 3.1.3: uso de la interfaz IPP 82C55 con el microprocesador 8086.

El diagrama de la figura 19 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 información al registro de control. Las dos líneas 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 línea de selección de chip (CHIP SELECT) se activa junto con la línea de lectura (READ) o escritura (WRITE). La línea RESET se utiliza para iniciar el módulo.

El procesador escribe en el registro de control para seleccionar el modo de operación y para definir las señales, en su caso. En el modo 0 de operación, los tres grupos de 8 líneas externas 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 líneas del grupo C sirven de líneas de control para A y B. Las líneas de control tienen dos funciones principales: la sincronización mediante conformidad de señales (handshaking) y la petición de interrupciones.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 56: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

62

Bus de datos A del 8086

Fuente de alimentación CA

A0 CB

A1

Read Write B Reset

Chip select

Figura 19. Diagrama de bloques de la IPP 82C55A de Intel.

EJEMPLO 3.1.4: uso de la interfaz 82C55 para controlar la conexión de un teclado y una pantalla al microprocesador.

En la figura 20 se ilustra el uso de la interfaz programable de periféricos Intel 82C55A. El teclado proporciona 8 bits de entrada, dos de estos bits, SHIFT y CONTROL, tienen un significado especial para el programa de gestión 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 líneas para la sincronización del teclado mediante

Buffer de Bus interno datos de 8 bits 8 8 8 + 5 V (Vdd) 4 Tierra (GND) 4 8 Registro de control Buffer de datos

Lógica

de control

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 57: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

63

conformidad (handshaking). La pantalla también está conectada a un puerto de datos de 8 bits. De nuevo, dos de los bits tienen un significado específico que es transparente para el 82C55A. Junto a las dos líneas para la sincronización mediante conformidad, hay dos líneas más para funciones de control adicionales. El emisor utiliza una línea de control como línea de datos listos (DATA READY) para indicar que hay un dato en las líneas de datos de E/S. El receptor utiliza otra línea como reconocimiento (ACKNOWLEDGE), para indicar que el dato se ha leído y que las líneas de datos se pueden liberar. Se puede designar otra línea como línea de petición de interrupción (INTERRUPT REQUEST) en el bus del sistema.

Petición de interrupción Petición de Interrupción

Figura 20. Interfaz teclado/pantalla en el 82C55A

La interfaz programable de teclado/pantalla tipo 8279 Lea la sección 11-4 incluida en el capítulo 11 del texto y revise los ejemplos allí presentados.

C3 A0 A0 A1 A2 A3 A4 A5 A6 C4 C5

82C55A B0 B1 B2 B3 B4 B5 B6 B7 C1 C2 C6 C0 C7

S0 S1 S2 S3 S4 S5 Back space Borrar Dato preparado Reconocmiento Blanking Borrar línea

R0 R1 R2 R3 R4 R5 Shift (desplazamiento) Control Dato preparado Reconocimiento

Teclado

Pantalla

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 58: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

64

3.2 Interrupciones

El problema de E/S programada es que el procesador tiene que esperar un tiempo considerable a que el módulo de E/S en cuestión esté preparado para recibir o transmitir los datos. El procesador, mientras espera, debe comprobar repetidamente el estado del módulo de E/S. Como consecuencia, se degrada el nivel de prestaciones de todo el sistema. Una alternativa es que el procesador, tras enviar una orden de E/S a un módulo, continúe realizando algún trabajo útil. Después el módulo 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, como antes, y después continúa con el procesamiento previo. Por ejemplo para procesar una entrada, el módulo de E/S recibe una orden READ del procesador. Entonces, el módulo de E/S procede a leer el dato desde el periférico asociado. Una vez que el dato está en el registro de datos del módulo, el módulo envía una interrupción al procesador a través de una línea de control. Después, el módulo espera hasta que el procesador solicite su dato. Cuando ha recibido la solicitud, el módulo sitúa su dato en el bus de datos y pasa a estar preparado para otra operación de E/S.

Por otra parte, desde el punto de vista del procesador, las acciones para una entrada comienzan con una orden READ de lectura. Entonces el procesador pasa a realizar otro trabajo, al final de cada ciclo de instrucción, el procesador comprueba las interrupciones, cuando se pide la interrupción desde el modulo de E/S, el procesador guarda el contexto del programa en curso y procesa la interrupción. En este caso, el procesador lee la palabra de datos del módulo de E/S y la almacena en memoria. Después recupera el contexto del programa que estaba ejecutando y continúa su ejecución.

Una vez estudiado el contendido del tema 3.2 indicado en la tabla 5, usted estará en capacidad de responder las siguientes preguntas:

¿Qué es una interrupción? ¿Cuáles son las instrucciones de que dispone el procesador para realizar

las interrupciones? ¿Cómo son referidas las interrupciones en el modo real y en el modo

protegido? Liste los terminales de interrupción del microprocesador. ¿Cuántas entradas de interrupción agrega el controlador de interrupción

programable 8259A? Procesamiento básico de interrupciones

Lea la sección 12-1 incluida en el capítulo 12 del texto y posteriormente revise el ejemplo 3.2.1.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 59: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

65

EJEMPLO 3.2.1: secuencia de pasos para leer un bloque de datos en una E/S mediante interrupciones.

En la figura 21 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 módulo, continúa realizando algún trabajo útil. Después, el módulo 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 después continúa con el procesamiento previo.

CPU I/O Hacer otra cosa Interrupción E/S CPU Condición de error Preparado E/S CPU CPU Memoria No Si

Instrucción siguiente

Figura 21. Entrada de un bloque de datos mediante interrupciones.

Mandar orden de lectura al módulo de

E/S

Leer el estado del módulo de E/S

Comprobar el estado

Leer una palabra del módulo de E/S

Escribir una palabra en memoria

Comprobar el estado

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 60: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

66

Interrupciones por hardware y expansión de la estructura de interrupciones

Lea las secciones 12-2 y 12-3 incluidas en el capítulo 12 del texto y revise los ejemplos allí presentados.

Controlador de Interrupción Programable 8259A

EJEMPLO 3.2.2: uso del PIC 82C59A para gestionar la interrupción de 64 módulos de E/S.

En la figura 22 se ilustra el uso del PIC 82C59A para conectar 64 módulos de E/S. Debido a que un 82C59A sólo puede manejar hasta 8 módulos, es necesario disponer de un sistema en cascada para controlar los 64 módulos de E/S.

La única responsabilidad del 82C59A es la gestión de interrupciones. Acepta la solicitud de interrupción de los dispositivos conectados a él, determina qué interrupción tiene la prioridad más alta, y se lo indica entonces al procesador activando la señal INTR. El procesador reconoce la solicitud mediante la línea INTA. Esto hace que el 82C59 sitúe el vector apropiado en el bus de datos. Entonces el procesador puede iniciar el procesamiento de la interrupción y comunicarse directamente con el módulo de E/S para leer o escribir datos.

3.3 ACCESO DIRECTO A MEMORIA Y E/S CONTROLADA POR DMA

La E/S con interrupciones, aunque más eficiente que la sencilla E/S programada, también requiere la intervención activa del procesador para transferir datos entre la memoria y el módulo de E/S, y cualquier transferencia de datos debe seguir un camino a través del procesador. Por tanto, ambas formas de E/S presentan dos inconvenientes: la velocidad de transferencia de E/S está limitada por la velocidad a la cual el procesador puede comprobar y dar servicio a un dispositivo y el procesador debe dedicarse a la gestión de transferencias de E/S. Cuando se utiliza E/S programada para transferir un bloque de datos, el procesador se dedica a la tarea de la E/S y puede transferir datos a alta velocidad al precio de no hacer nada más. Con la E/S mediante interrupciones se libera en parte al procesador, a expensas de reducir la velocidad de E/S. Por ello, cuando se desea transferir grandes volúmenes de datos, se hace uso de una técnica más eficiente: el Acceso Directo a Memoria (DMA).

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 61: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

67

Controlador de interrupciones 82C59A esclavo Controlador de Concentrador de Procesador Interrupciones interrupciones 80386 82C59A esclavo 82C59A maestro Controlador de interrupciones 82C59A esclavo

Dispositivo externo 01

IR0 IR1 INT IR2 IR3 IR4 IR5 IR6 IR7

IR0 IR1 INT IR2 IR3 IR4 IR5 IR6 IR7

IR0 IR1 INT IR2 IR3 IR4 IR5 IR6 IR7

Dispositivo externo 00

Dispositivo externo 07

Dispositivo externo 08

Dispositivo externo 09

Dispositivo externo 15

Dispositivo externo 56

Dispositivo externo 57

Dispositivo externo 63

IR0 IR1 IR2 INT IR3 IR4 IR5 IR6 IR7

INTR

Figura 22. Uso del controlador de interrupciones 82C59A.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 62: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

68

Operación básica del DMA y el controlador del DMA 8237

El DMA requiere un módulo adicional en el bus del sistema. El módulo 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 través del bus del sistema. Para hacerlo, el módulo DMA debe utilizar el bus sólo cuando el procesador no lo necesita, o debe forzar al procesador a que suspenda temporalmente su funcionamiento. Ésta última técnica es la más común y se denomina robo de ciclo (cycle stealing), puesto que, en efecto, el módulo DMA roba un ciclo de bus.

Líneas de datos Líneas de direcciones DMA REQ DMA ACK INTR Read

Write

Figura 23. Diagrama típico de un módulo de DMA.

Cuando el procesador desea leer o escribir un bloque de datos, envía a una orden al módulo de DMA, incluyendo la siguiente información:

Si se solicita una lectura o una escritura, utilizando la línea de control de lectura o escritura entre el procesador y el módulo DMA.

La dirección del dispositivo de E/S en cuestión, indicada a través de la línea de datos.

La posición inicial de memoria a partir de donde se lee o se escribe, indicada a través de las líneas de datos y almacenada por un módulo de DMA en su registro de direcciones.

Contador de datos

Registro de datos

Registro de dirección

Lógica de control

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 63: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

69

El número de palabras a leer o escribir, también indicando a través de las líneas de datos y almacenado en el registro de cuenta datos.

Después el procesador continúa con otro trabajo. Ha delegado la operación de E/S al módulo de DMA, que se encargará de ella El módulo de DMA, transfiere el bloque completo de datos palabra a palabra, directamente desde, o hacia, la memoria, sin que tenga que pasar a través del procesador. Cuando la transferencia se ha terminado, el módulo de DMA envía una señal de interrupción al procesador. Así pues, el procesador sólo interviene al comienzo y al final de la transferencia (ver figura 24). CPU DMA Hacer otra cosa DMA CPU

Figura 24. Acceso directo a memoria Una vez estudiado el contendido del tema 3.3 indicado en la tabla 5, usted estará en capacidad de responder las siguientes preguntas:

¿Qué tipos de transferencias permite realizar el uso de la técnica DMA? ¿Por medio de qué señales de bus selecciona el controlador DMA la

localidad de memoria utilizada para una transferencia de DMA? ¿Qué es una transferencia DMA de memoria a memoria?

Operación básica del DMA y el controlador del DMA 8237 Lea las secciones 13-1 y 13-2 incluidas en el capítulo 13 del texto y revise los ejemplos allí presentados.

EJEMPLO 3.3.1: transferencia de un bloque de 32 bytes desde memoria a un terminal de computadora, usando la técnica de E/S de DMA

La E/S controlada por interrupciones es un gran adelanto en comparación con la E/S programada. El problema es que se requiere una interrupción por cada

Mandar orden de lectura de bloque al módulo DMA

Leer el estado del

módulo DMA

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 64: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

70

1

Cuenta

Dispositivo

100

carácter transmitido. El procesamiento de interrupciones es costoso. Razón por la cual es necesario una forma de reducir la mayor parte de las interrupciones. La solución es regresar a la E/S programada, pero encargársela a otro dispositivo que no sea el CPU. La figura 25 muestra cómo se logra esto. Se ha añadido un nuevo chip al sistema, un controlador de acceso directo a la memoria (DMA), con acceso directo al bus.

Figura 25. 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 dirección de memoria que se leerá o en la que se escribirá. El segundo contiene el número de bytes (o palabras) que se transferirán. El tercero específica el número de 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 escribirán en el dispositivo de E/S o se leerán de él. Para escribir un bloque de 32 bytes de la dirección 100 en una terminal (por ejemplo, el dispositivo 4), la CPU escribe los números 100, 32 y 4 en los primeros tres registros del DMA, y luego el código de escribir (por ejemplo, 1) en el cuarto, como se muestra en la figura 25. 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 leería 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 dirección y decrementa en 1 su registro de cuenta.

32

Sentido

Controlador

RS232C

100

4

CPU DMA Memoria

Dirección

Bus

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 65: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

71

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 línea de interrupción 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. Operación del bus compartido Lea la sección 13-3 incluida en el capítulo 13 del texto y revise los ejemplos allí presentados.

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

diseñador desea que se comparta la mayor cantidad de memoria posible. El bus del sistema permite un máximo de cuatro líneas de interrupción y

una de DMA. Haga las suposiciones adicionales que necesite y: a) Establezca las especificaciones del bus en términos del número de líneas. b) Explique cómo es la interfaz de los dispositivos indicados arriba para

conectarse al bus. 2.- Una impresora de caracteres simples podría usar razonablemente bien una

entrada/salida programada, pues su velocidad es lenta comparada con la unidad central de procesamiento. Sin embargo, la mayoría de las impresoras modernas utiliza el acceso directo a la memoria. ¿Por qué?

3.- ¿Por qué el acceso directo a la memoria (DMA) sería inútil si la computadora

careciera de la capacidad de interrupción?

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 66: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

72

EJERCICIOS DE AUTOEVALUACIÓN 1.- Un dispositivo periférico junto con su controlador de E/S se conectará a un

computador mediante el uso de un controlador DMA. Todos los módulos que conforman el sistema comparten el mismo bus “master”. El periférico 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 controlador de DMA, el cual a su vez informa al periférico para que prepare los datos a transferir.

En una transferencia de entrada, los datos se mueven desde el periférico (I/O) a la memoria por el bus de datos sin pasar por el controlador de DMA y sin intervención de la CPU. Las líneas 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 líneas de control para leer la memoria (MEMR) y para escribir en el periférico (IOW). Con base en lo anteriormente expuesto, solucione la manera en que debe ser configurado el sistema para el control de la E/S mediante el uso de la técnica DMA y que cumpla con las especificaciones dadas.

2.- La conexión a periféricos en un sistema de microcomputador puede hacerse mediante el uso de chips especializados de entradas y salidas. Estos chips tienen como característica común su programabilidad por software y su conexión directa a los buses del sistema sin lógica auxiliar.

Parta de la información dada anteriormente y resuelva el problema de la conexión de la PPI (interfaz periférica programable) tipo 82C55, en un sistema de microprocesador directamente ligados a los buses.

CONSULTA EN OTROS LIBROS

[Stallings, 2000]: dedica un capítulo a los distintos aspectos de la organización de

E/S, también describe la interfaz entre los módulos de E/S y los dispositivos externos.

[Tokheim, 1996]: hace una presentación de las interfaces con el microprocesador.

[Tanenbaum, 2000]: cubre algunos aspectos de los temas de esta unidad.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 67: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

73

[Lameda, 1984]: presenta un estudio de los métodos para introducir y extraer datos del computador, también 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 también los otros textos recomendados en la bibliografía.

CONSULTA EN LA WEB http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm: contiene información

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 información asociada a la E/S del sistema.

RESPUESTA A LOS EJERCICIOS DE AUTOEVALUACIÓN 1.- En la siguiente figura se presenta una solución que permite el control de la E/S,

mediante el uso de un controlador DMA.

Se observa que el sistema configurado consta de un periférico con su controlador de E/S, un controlador de DMA y las señales de pedido y concesión del bus que permiten alternar el "bus master" entre la CPU y el controlador de DMA

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 68: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

74

Bus de control

Bus de datos (8 bits)

Bus de direcciones (16 bits)s)

2.- La disposición de la PPI 82C55 en este tipo de sistema se muestra a continuación:

8 CS A0 A1

8

I/OR

Puerto A D0 D7 82C55 Puerto C A1 A0 __ CS Puerto B __ __ RD WR RESET

8

8

I/OW RESET

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 69: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

75

UNIDAD 4

INTERFAZ DEL BUS El PC (Personal Computer) es un sistema de propósito general, que puede ser ajustado a las necesidades del usuario agregando placas con la electrónica necesaria, acompañadas de software que permita controlarlas. Un posible ejemplo es el procesamiento de imágenes de video: basta colocar una tarjeta adquisidora de video y configurar su software controlador para hacer que una aplicación de procesamiento de imágenes, ejecutándose en el PC, pueda procesar las imágenes adquiridas con la placa. Se puede colocar en un sistema PC el tipo de interfaz (tarjeta) que uno desee, para controlar los más variados dispositivos periféricos gracias a las Ranuras de Expansión o Slots (Conector). Existen varios tipos de ranuras de expansión, de distintas formas y características. Consisten simplemente en zócalos que sirven para conectar los bordes de las tarjetas interfaces. El conjunto de esos zócalos, de un cierto tipo se llama Bus de Sistema. Cada zócalo 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 comunicación a distintos niveles dentro de la jerarquía del sistema. El bus que conecta los componentes principales del computador (procesador, memoria y E/S) se denomina bus del sistema. Las estructuras de interconexión más comunes dentro de un computador están basadas en el uso de uno o más buses. En la unidad 4 se presenta el estudio de la arquitectura de los buses, y la interconexión de los periféricos.

Objetivo de la Unidad 4: Resolver problemas de implementación 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 del siguiente tema: 4.1 Interfaz del bus

Actividades recomendadas para el estudio del contenido de la unidad 4

Desarrolle las lecturas del tema indicado en la tabla 6, en la cual se muestran los contenidos de la unidad 4. Esta lectura es importante para el desarrollo de las actividades que se le indican posteriormente.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 70: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

76

TEMA MATERIAL DE REFERENCIA

CONTENIDO SECCIÓN

4.1 Interfaz del bus

El texto Los Microprocesadores Intel, B. B. Brey.

El bus ISA 15-1

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

15-2

El bus de Interconexión de componentes periféricos (PCI)

15-3

El bus serial Universal (USB) 15-4

Puerto gráfico acelerado (AGP) 15-5

Tabla 6

4.1 Interfaz del bus

Los computadores poseen diferentes tipos de buses que proporcionan comunicación entre sus componentes a distintos niveles dentro de la jerarquía del sistema. El bus del procesador es el bus definido por las señales propias del chip del procesador. Los dispositivos que requieran una alta velocidad de conexión con el procesador, como la memoria principal, pueden conectarse directamente a este bus. Por razones eléctricas solo unos pocos dispositivos pueden conectarse de esta manera. La placa madre de un computador generalmente proporciona otro bus al que se pueden interconectar otros dispositivos. Los dos buses son interconectados por un circuito, denominado puente, que traslada desde un bus a otro las señales y protocolos de comunicación. Los dispositivos conectados al bus de expansión se muestran al procesador como si estuvieran conectados directamente al propio bus del procesador. La única diferencia es que el circuito puente introduce un pequeño retardo en la transferencia de datos entre el procesador y estos dispositivos.

Una vez estudiado el contendido del tema 4.1 indicado en la tabla 6, usted estará en capacidad de responder las siguientes preguntas:

¿Qué tipos de transferencias debe permitir la estructura de interconexión (bus) de un computador?

¿Qué ventajas tiene una arquitectura de varios buses frente a otra de bus único?

¿Se utiliza frecuentemente la interfaz del bus ISA para expansión de memoria?

Enumere y defina brevemente los grupos de líneas de señal para el bus PCI

El Bus ISA Lea la sección 15-1 incluida en el capítulo 15 del libro y revise los ejemplos que allí se exponen.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 71: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

77

EJEMPLO 4.1.1: Interfaz de bus ISA que contiene un 82C55 accedido por medio de direcciones de puertos.

La figura 26 muestra una interfaz ISA decodificada en las direcciones 800H a 803H:

D0 PA0 D1 PA1 D2 PA2 D3 PA3 D4 PA4 D5 PA5 D6 PA6 D7 PA7 __ RD PB0 __ WR PB1 A0 PB2 A1 PB3 RESET PB4 __ CS PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 82C55

16L8

34

31

32

33

30

29

28

27

5

36

9

8

35

6

4

3

2

1

37

40

39

38

18

19

20

21

22

23

24

25

14

15

16

17

13

12

11

10

I1 O1 I2 O2 I3 O3 I4 O4 I5 O5 I6 O6 I7 O7 I8 O8 I9 I10

19

18

17

16

15

14

13

12

1

2

3

4

5

6

7

8

9

11

SD0

SD1

SD2

SD3

SD4

SD5

SD6

SD7

___ IOR

SA0

SA1

RESET

___ IOW

SA2

SA3

SA4

SA5

SA6

SA7

SA8

SA9

SA10

SA11

SA12

SA13

SA14

SA15

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

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 72: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

78

Arquitectura de los buses ISA Extendido (EISA) y VESA local Lea la sección 15-2 incluida en el capítulo 15 del libro y revise los ejemplos que allí se incluyen. El bus de Interconexión de Componentes Periféricos (PCI) Lea la sección 15-3 incluida en el capítulo 15 del libro y revise los ejemplos que allí se incluyen.

EJEMPLO 4.1.2: uso de un bus PCI en un sistema uniprocesador.

En la figura 26 se muestra una configuración usual del bus PCI en un sistema uniprocesador. En esta configuración 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 actúa 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.

Figura 27. Bus PCI en un sistema uniprocesador

Bus PCI

Procesador

Adaptador/controlador de memoria

Cache

DRAM Audio

Monitor

Imágenes en

movimiento

Gráficos

Graficador

Adaptador del bus de expansión

Bus de expansión

Dispositivos de E/S básicos

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 73: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

79

El Bus Serial Universal (USB)

Lea la sección 15-4 incluida en el capítulo 15 del libro y revise los ejemplos que allí se incluyen.

Puerto Gráfico Acelerado (AGP)

Lea la sección 15-5 incluida en el capítulo 15 del libro y revise los ejemplos que allí se incluyen.

EJERCICIOS PROPUESTOS

1.- Explique, mediante el uso de un diagrama de tiempos, cómo se realiza la operación 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.

EJERCICIOS DE AUTOEVALUACIÓN Como ejercicios de autoevaluación se recomienda realizar los problemas número 6 y 8, incluidos en el capítulo 15 del texto Los Microprocesadores Intel, de Barry B Brey, y luego comparar con tus respuestas con los resultados mostrados en el texto.

CONSULTA EN OTROS LIBROS [Stallings 2000]: incluye en su contenido la interconexión con buses,

específicamente la descripción 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 interconexión con buses, toma como ejemplos los buses PCI y USB.

http://www.die.upm.es/cursos/BUSES1.pdf: incluye información interesante sobre la evolución de los buses.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 74: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

80

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 diseño de una interfaz PCI para una aplicación.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 75: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

81

MÓDULO II

FAMILIA DE MICROPROCESADORES, EL COPROCESADOR ARITMÉTICO Y

LA TECNOLOGÍA MMX

En este módulo se incluyen dos unidades que permiten complementar el estudio

de los microprocesadores. En la unidad 5 se presenta la evolución de una familia

comercial de microprocesadores, en la búsqueda de mejores prestaciones. Como

consecuencia de esta evolución, se han incorporado nuevos elementos y

tecnologías que amplían su panorama de uso, tales como el coprocesador

aritmético y la tecnología MMX, los cuales son tema de estudio de la unidad 6.

Objetivo del Módulo II: Analizar, con sentido lógico y creativo, la evolución de

una familia de microprocesadores y programas que resuelvan problemas

aritméticos.

El módulo II está estructurado en dos unidades:

Unidad 5: Familia de microprocesadores.

Unidad 6: El coprocesador aritmético y la tecnología MMX

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 76: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

83

UNIDAD 5

FAMILIA DE MICROPROCESADORES La historia de los microprocesadores (procesadores) ha pasado por diferentes situaciones, siguiendo la lógica evolución de este mundo. Desde aquel primer procesador 4004 del año 1971 hasta el Itanium producido en el 2001. Según la opinión de expertos, para el año 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 disminución del tamaño 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 años se debe a la organización del microprocesador, incluyendo el uso de técnicas para obtener mejores prestaciones de servicio. La unidad 5 presenta la evolución de la familia de microprocesadores Intel, profundizando en las mejoras de hardware y software que han desarrollado los diseñadores sobre los miembros de esta familia en la búsqueda de un mejor desempeño. Mediante el conocimiento obtenido, se podrá describir importantes conceptos de diseño que han conducido al desarrollo de computadores más potentes.

Objetivo de la Unidad 5: Analizar la evolución de la arquitectura y/o funcionamiento de microprocesadores comerciales, para la descripción de mejoras en sus prestaciones de servicio.

Contenido de la Unidad 5: el contenido de la unidad contempla el estudio de los siguientes temas:

5.1 Los microprocesadores 80186, 80188 y 80286. 5.2 Los microprocesadores 80386 y 80486. 5.3 Los microprocesadores Pentium y Pentium Pro. 5.4 El microprocesador Pentium II

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 77: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

84

Actividades recomendadas para el estudio del contenido de la unidad 5 Proceda a realizar las lecturas indicadas en la tabla 7, las cuales lo guiarán en el estudio de los temas contentivos de la Unidad 5 y que le permitirán una mejor comprensión para el logro del objetivo 5.

TEMA MATERIAL DE REFERENCIA

CONTENIDO CAPÍTULO

5.1 Los microprocesadores 80186, 80188 y 80286.

El texto Los Microprocesadores Intel, B. B. Brey.

Arquitectura de los 80186 / 80188. Programación de las mejoras de los 80186 / 80188.

16

Introducción al 80286.

5.2 Los microprocesadores 80386 y 80486.

El texto Los Microprocesadores Intel, B. B. Brey.

Introducción al microprocesador 80386. Registros especiales del 80386

17

Administración de la memoria del 80386.

Acceso al modo protegido

Modo 8086 virtual.

Mecanismo de paginación de memoria.

Introducción al procesador 80486.

5.3 Los microprocesadores Pentium y Pentium Pro.

El texto Los Microprocesadores Intel, B. B. Brey.

Introducción al procesador Pentium. Registros especiales del Pentium.

18

Administración de la memoria del Pentium. Nuevas instrucciones del Pentium. Introducción al microprocesador Pentium Pro. Características especiales del Pentium Pro.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 78: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

85

Tabla 7

TÍTULO MATERIAL DE REFERENCIA

CONTENIDO CAPITULO

5.4 El microprocesador Pentium II.

El texto Los Microprocesadores Intel, B. B. Brey.

Introducción al microprocesador Pentium II. 19

Cambios al software del Pentium II.

Tabla 7 (Continuación)

5.1. Los microprocesadores 80186, 80188 Y 80286 Los microprocesadores 80186 y 80188 son modelos altamente integrados, ya que el chip contiene otros componentes aparte de los encontrados en los modelos 8086 u 8088. Los modelos 8086 y 8088 no podían direccionar más de un megabyte de memoria, por lo que Intel diseñó el microprocesador 80286. Por esto se afirma que las tres versiones 80186, 80188 y 80286 son versiones mejoradas de los microprocesadores 8086 y 8088. Una vez estudiado el contendido del tema 5.1 indicado en la tabla 7, usted estará en capacidad de responder las siguientes preguntas:

¿Cuántos períodos del reloj encontramos en un ciclo de bus de los 80186/80188?

¿Qué mejoras de hardware se agregaron a los 80186/80188 en comparación con los 8086/8088?

¿En qué se diferencia el conjunto de instrucciones disponibles en el microprocesador 80286, con respecto a los modelos 80186/80188?

Arquitectura de los 80186 / 80188. Programación de las mejoras de los 80186 / 80188 Lea las secciones 16-1 y 16-2 incluida en el capítulo 16 del libro y revise los ejemplos que allí se incluyen. Introducción al 80286 Lea la sección 16-4 incluida en el capítulo 16 del libro de texto del curso y revise la información que allí se presenta.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 79: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

86

5.2 Los microprocesadores 80386 Y 80486 El microprocesador 80386 es una versión mejorada del microprocesador 80286 y representa un salto en la arquitectura de 16 bits a la de 32 bits. El modelo 80486 se presenta como una mejora realizada a su antecesor, el 80386, incluyendo dentro de sus mejoras una memoria caché para acelerar la ejecución de las instrucciones y la captura de datos. Una vez estudiado el contendido del tema 5.2 indicado en la tabla 6, usted estará en capacidad de responder las siguientes preguntas:

¿Cuántos bytes de memoria virtual direcciona la unidad de administración de memoria del microprocesador 80386?

¿Qué elementos se incluyeron en el microprocesador 80486 para verificar la memoria caché?

Introducción al microprocesador 80386. Registros especiales del 80386 Lea las secciones 17-1 y 17-2 incluidas en el capítulo 17 del libro de texto del curso y revise la información que allí se presenta. Administración de la memoria del 80386. Modo 8086 virtual. Mecanismo de paginación de memoria Lea las secciones 17-3, 17-5 y 17-6 incluidas en el capítulo 17 del libro de texto del curso y revise la información que allí se presenta. Introducción al procesador 80486 Lea la sección 17-7 incluida en el capítulo 17 del libro de texto del curso y revise la información que allí se presenta.

EJEMPLO 5.2.1: evolución en el uso de la estructura de memoria caché. La evolución de la estructura cache se observa claramente en la evolución de los microprocesadores Intel. El 80386 no tiene cache on-chip. El 80486 incluye una sola cache on-chip de 8 KBytes, utilizando un tamaño de línea de 16 bytes y una organización 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 módulo (k/n) donde k es el número de bloques de memoria cache) de cuatro vías. En la figura 28 se presenta el diagrama de bloques del 80486, en el cual se aprecia la ubicación de la cache.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 80: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

87

Block Diagram of Intel`s 80486

32-bit Internaland ExternalPathways

Prefetch Buffer

Registers

Single Fiver-StageInteger Pipeline

BusInterface

Unit

Cache8 kb

ALU FPU

Figura 28. Diagrama de bloques del 80486. Fuente: http://www.duiops.net/hardware/micros/microshis.htm

EJEMPLO 5.2.2: mejoras incorporadas al sistema de memoria del microprocesador 80486.

Dada la disponibilidad de sistemas de memoria muy grandes, y debido a que los costos de los circuitos son mínimos, muchos fabricantes de tarjetas de memoria han agregado la verificación 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 leído correctamente de una localidad de memoria.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 81: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

88

5.3 Los microprocesadores Pentium y Pentium Pro

La diferencia principal entre el microprocesador Pentium y sus antecesores (80386/80486) se basa en que se le incluyó una memoria caché dual (de datos y de instrucciones) y una unidad de enteros dual. Posteriormente los diseñadores de la compañía Intel lanzaron el microprocesador Pentium Pro quien al igual que su antecesor incluye una caché de nivel dos para datos e instrucciones, adicional a la caché de nivel 1.

Una vez estudiado el contendido del tema 5.3 indicado en la tabla 7, usted estará en capacidad de responder las siguientes preguntas:

¿A cuánta memoria puede acceder el microprocesador Pentium? ¿Cuántas caches encontramos en el Pentium y cuáles son sus tamaños?

Introducción al procesador Pentium. Registros especiales del Pentium Lea las secciones 18-1 y 18-2 incluidas en el capitulo 18 del libro de texto del curso y revise la información que allí se presenta. Administración de la memoria del Pentium. Nuevas instrucciones del Pentium Lea las secciones 18-3 y 18-4 incluidas en el capitulo 18 del libro de texto del curso y revise la información que allí se presenta. Introducción al microprocesador Pentium Pro. Características especiales del Pentium Pro Lea las secciones 18-5 y 18-6 incluidas en el capítulo 18 del libro de texto del curso y revise la información que allí se presenta. 5.4 El microprocesador Pentium II El microprocesador Pentium II es una versión mejorada del Pentium Pro el cual no está disponible en la forma de circuito integrado, ya que se presenta como una pequeña tarjeta de circuito impreso. Una vez estudiado el contendido del tema 5.4 indicado en la tabla 7, usted estará en capacidad de responder las siguientes preguntas:

¿Cuál es la diferencia entre la caché de nivel 2 en el Pentium Pro y la del Pentium II?

¿Explique cómo la arquitectura del Pentium II aumenta la velocidad del sistema?

¿Cuál es la diferencia principal en las funciones de escritura y lectura y el resto de sus antecesores?

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 82: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

89

Introducción al microprocesador Pentium II

Lea la sección 19-1 incluidas en el capitulo 19 del libro de texto del curso y revise la información que allí se presenta.

EJEMPLO 5.4.1: mejoras incorporadas al sistema de memoria del microprocesador Pentium II.

El Pentium II incluye dos caches on-chip, una para datos otra para instrucciones. Cada cache es de 8 KBytes, utilizando un tamaño de línea de 32 bytes y una organización asociativa por conjunto de dos vías. Incluye además una cache L2 que alimenta a las dos cache L1. La cache L2 es asociativa por conjunto de cuatro vías, y con tamaños que oscilan entre 256 Kbytes y 1 Mbyte.

La figura 29 proporciona una visión simplificada de la estructura del Pentium II, resaltando la ubicación de las tres caches.

Unidad de interfaz del bus

Unidad de Captación y

decodificación de

instrucciones

Caché de instrucciones L1 (8-16K)

Cache de datos L1 (8-16K)

Caché L2 (256K-1M)

Unidad de

envío y ejecución

Unidad de

retirada

Depósito de instrucciones (buffer de reorden-ROB)

Bus del sistema

Captar Cargar Memorizar

Figura 29. Diagrama de bloques del Pentium II

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 83: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

90

EJEMPLO 5.4.2: uso de arquitectura superescalar en el microprocesador Pentium II.

El microprocesador 80486 no disponía de elementos superescalares; el Pentium original tenía unas características superescalares modestas, que consistían en la utilización de dos unidades de ejecución de enteros independientes. El Pentium Pro introdujo un diseño completamente superescalar. Por su parte, el Pentium II tiene básicamente la misma organización superescalar que el Pentium Pro.

Los elementos esenciales de la organización superescalar son: la unidad de captación y decodificación de instrucciones, la unidad de envío y ejecución, y la unidad de retiro. Se describe a continuación la operación de cada una de ellas:

Operación de la unidad de captación y decodificación

La figura 30 es un esquema simplificado de la unidad de captación y decodificación del Pentium II. La operación de captación consta de tres etapas encauzadas:

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 84: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

91

Figura 30. Unidad de captación/decodificación del Pentium II

Etapa IFU1 Capta instrucciones desde la caché de instrucciones, una línea (32 bytes) cada vez. La unidad <<Siguiente IP>> proporciona la dirección de la siguiente instrucción a captar, y se capta en el buffer IFU1 la línea de caché que contiene la instrucción. Esta operación no se calcula sencillamente incrementando el puntero, porque podría haber un salto o una interrupción pendiente que moviese el puntero a una posición diferente. Después el contenido del buffer IFU1 pasa IFU2 (16 bytes cada vez).

Decodificador de longitud de

instrucciones

Buffer de instrucciones (contiene una línea)

Etapa de alineación para los

decodificadores

Cola de instrucciones decodificadas

Predicción estática de saltos

Secuenciador de instrucciones de

microcódigo

Predicción dinámica de saltos

Siguiente IP

Decodificador 0

(Complejas) Decodificador 1

(Sencillas) Decodificador 2

(Sencillas)

Asignador de registros

IFU1

IFU2

IFU3

ID1

ID2

RAT

3 x 118 bits

Desde la cache de instrucciones

Camino de 32 bytes

16 bytes

16 bytes

16 bytes

6 x 118 bits

3 x 118 bits

Al ROB

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 85: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

92

Etapa IFU2 Esta unidad lleva a cabo dos operaciones en paralelo. IFU2 examina los bytes para determinar los límites de las instrucciones; ésta es una operación necesaria, debido a que las instrucciones del Pentium son de longitud variable. Si alguna de las instrucciones es de salto, la unidad pasa la dirección de memoria correspondiente a la unidad de predicción dinámica de saltos. IFU2 pasa después 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 decodificación de instrucciones, ID1. Esta etapa es capaz de manejar tres instrucciones en paralelo. ID1 traduce cada instrucción 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 microoperación (instrucciones registro a registro e instrucciones de carga). Si más de una instrucción es compleja, las instrucciones deben introducirse en ID1 en etapas, de tal modo que el segundo y tercer decodificador no se les dé una instrucción compleja. Las instrucciones que requieren más de cuatro microoperaciones se transfieren al secuenciador de instrucciones de microcódigo (MIS, microcode instruction sequencer), el cual funciona como unidad microprogramada. La salida de ID1 o MIS se introduce en la segunda etapa de decodificación, ID2, es un bloque de hasta seis microoperaciones a la vez. En este punto, hay una segunda ocasión para predecir saltos. Las microoperaciones encoladas en ID2 pasan a través de una fase de renombramiento de registro (RAT, register allocator). El RAT transforma las referencias a lo 16 registros de la arquitectura. Después el RAT introduce las microoperaciones revisadas al buffer de reordenación (ROB, reorder buffer). Las microoperaciones entran al ROB en orden; después son enviadas desde el ROB a la unidad de envío/ejecución sin orden. Operación unidad de envío/ejecución La figura 31 es un esquema simplificado de la unidad de envío/ejecución del Pentium II. La central de reservas (RS, reservation station) es responsable de recuperar las microoperaciones del ROB., enviándolas a su ejecución y guardando los resultados de nuevo en el ROB. La RS busca en el ROB microoperaciones cuyo estado indique que la microoperación dispone de todos sus operandos. Si está disponible la unidad de ejecución que necesita una microoperación, la RS capta esa microoperación y la envía a la unidad de ejecución conveniente. Se pueden enviar hasta cinco microoperaciones en un ciclo.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 86: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

93

Hay cinco puertos que unen la RS a las cinco unidades de ejecución. El puerto 0 se usa para instrucciones con enteros y coma flotante, con la excepción de las operaciones sencillas con enteros y la gestión de las predicciones de saltos erróneas que se asignan al puerto 1. Las unidades de ejecución MMX se asignan también a estos puertos. Los puertos restantes se utilizan para cargas y almacenamientos en memoria.

Cuando se completa una ejecución, se actualiza la entrada adecuada del ROB, y la unidad de ejecución queda disponible para otra microoperación.

Figura 31. Unidad de envío/ejecución del Pentium II

Unidad de Retiro La unidad de retiro (RU, retire unit) va procesando el buffer de reordenación para entregar los resultados de la ejecución 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 microoperación se ha ejecutado y no es vulnerable a eliminación debido a un fallo de predicción se marca como lista para ser retirada. Cuando se ha retirado la instrucción previa del Pentium y todas las microoperaciones de la siguiente instrucción se han marcado como listas para ser retiradas, la RU actualiza los

Puerto 4 C e Puerto 3 n t r a Puerto 2 l d e R Puerto 1 e s e r v a s Puerto 0

Unidad de ejecución de almacenamientos

Unidad de ejecución de almacenamientos

Unidad de ejecución de cargas A/desde

ROB

Desplazador MMX

ALU MMX

IEU (sencillas) Y JEU

ALU MMX

Multiplicador MMX

IEU (complejas)

FPU (complejas)

FPU (sencillas)

A/desde la cache de

datos

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 87: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

94

registros de la arquitectura afectados por esta instrucción, y quita del ROB la microoperación. Cambios al software del Pentium II Lea la sección 19-2 incluida en el capítulo 19 del libro de texto del curso y revise la información y los ejemplos que allí se presentan.

EJERCICIOS PROPUESTOS

1.- Examine la tabla 8 presentada a continuación y establezca diferencias en la arquitectura de los microprocesadores Intel estudiados en la Unidad 5. Discuta estas diferencias con el asesor de su centro local.

Fecha de presentación

Velocidad de reloj

Ancho de bus

Número de transistores

Memoria direccionable

Memoria virtual

Breve descripción

4004 15/11/71 108 KHz. 4 bits 2.300 (10 micras) 640 byte

Primer chip con manipulación aritmética

8008 1/4/72 108 KHz. 8 bits 3.500 16 KBytes Manipulación Datos/texto

8080 1/4/74 2 MHz. 8 bits 6.000 64 KBytes 10 veces las (6 micras) prestaciones del 8008

8086 8/6/78

5 MHz.

8 MHz.

10 MHz.

16 bits 29.000

(3 micras) 1 MegaByte

10 veces las prestaciones del 8080

8088 1/6/79 5 MHz.

8 MHz. 8 bits 29.000

Idéntico al 8086 excepto en su bus externo de 8 bits

80286 1/2/82

8 MHz.

10 MHz.

12 MHz.

16 Bits 134.000

(1.5 micras) 16 Megabytes 1

Gigabyte De 3 a 6 veces las prestaciones del 8086

Microprocesador

Intel 386 DX® 17/10/85

16 MHz.

20 MHz.

25 MHz.

33 MHz.

32 Bits 275.000

(1 micra) 4 Gigabytes 64

Terabytes

Primer chip x86 capaz de manejar juegos de datos de 32 bits

Microprocesador

Intel 386 SX® 16/6/88

16 MHz.

20 MHz. 16 Bits

275.000

(1 micra) 4 gigabytes

64

Terabytes

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

Microprocesador

Intel 486 DX® 10/4/89 25 MHz. 32 Bits

(1 micra, 0.8 micras en 50 MHz.)

4 Gigabytes 64

Terabytes

Cache de nivel 1 en el chip

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 88: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

95

33 MHz.

50 MHz.

Microprocesador

Intel 486 SX® 22/4/91

16 MHz.

20 MHz.

25 MHz.

33 MHz.

32 Bits 1.185.000

(0.8 micras) 4 Gigabytes

64

Terabytes

Idéntico en diseño al Intel 486DX, pero sin coprocesador matemático

Fecha de presentación

Velocidad de reloj

Ancho de bus

Número de transistores

Memoria direccionable

Memoria virtual

Breve descripción

Procesador

Pentium® 22/3/93

60 MHz.

66 MHz.

75 MHz.

90 MHz.

100 MHz.

120 MHz.

133 MHz.

150 MHz.

166 MHz.

200 MHz.

32 Bits 3,1 millones

(0.8 micras) 4 Gigabytes

64

Terabytes

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

Procesador

PentiumPro® 27/3/95

150 MHz.

180 MHz.

200 MHz.

64 Bits 5,5 millones

(0.32 micras) 4 Gigabytes

64

Terabytes

Arquitectura de ejecución dinámica con procesador de altas prestaciones

Procesador

PentiumII® 7/5/97

233 MHz.

266 MHz.

300 MHz.

64 Bits 7,5 millones

(0.32 micras) 4 Gigabytes

64

Terabytes

S.E.C., MMX, Doble Bus Indep., Ejecución Dinámica

Tabla 8. Especificaciones técnicas de los microprocesadores Intel

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

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 89: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

96

2.- Elabore una clasificación de los tipos de memoria caché disponibles en los microprocesadores de la familia Intel.

3.- Explique cómo el modo pipeline alarga el tiempo de acceso para muchos accesos de memoria en un sistema basado en el microprocesador 80386.

4.- El avance de la tecnología ha traído consigo la aparición de una cantidad

importante de nuevos bienes y servicios de carácter tecnológico, como los móviles, ordenadores, los servicios de Internet, etc. El desarrollo de la investigación e innovación permite la constante actualización y renovación del sector tecnológico, tal es el caso de la potencia de los microprocesadores, la cual se duplica cada 18 meses.

Con base en la información anterior analice la evolución de la velocidad de los microprocesadores Intel y describa las mejoras del desempeño obtenidas en la construcción de computadoras personales.

EJERCICIOS DE AUTOEVALUACIÓN

1.- Si compara la arquitectura del microprocesador 80386 con la del 80486 no encontrará diferencias. Sin embargo, el tiempo de ejecución de las instrucciones varía significativamente de un microprocesador a otro.

Con base en la información analice cómo ha evolucionado el tiempo de ejecución de las instrucciones en estos microprocesadores para la mejora del desempeño.

2.- La unidad de coma flotante del microprocesador Pentium se ha rediseñado

totalmente respecto a la que usa el 80486. Este desarrollo ha ocasionado la ejecución más rápida de operaciones aritméticas y de carga de datos.

Tome como base lo antes expuesto y realice lo siguiente: - Estudie la construcción de la unidad de coma flotante en el Pentium II y

describa las mejoras incluidas en su construcción para un mejor desempeño.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 90: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

97

CONSULTA EN OTROS LIBROS [Sayers 1995]: trata arquitecturas prácticas de microprocesadores de 8, 16 y 32 bits. [Tokheim, 1996]: incluye información sobre microprocesadores de la compañía

Intel y Motorola. [Stallings 2000]: destaca las mejoras del diseño de microprocesadores tomando

como ejemplos el microprocesador Pentium II y el PowerPC.

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_mat

erial/prestaciones/evolucion_80x86_n05.pdf: muestra un cuadro en donde se resume la evolución 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.

RESPUESTA A LOS EJERCICIOS DE AUTOEVALUACIÓN 1.- En el 80486 casi la mitad de las instrucciones son ejecutadas en un período de

reloj, en vez de los dos períodos 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 ejecución de las operaciones e incluye nuevos elementos de hardware dedicados, como son: un multiplicador, un sumador y un divisor.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 91: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

99

UNIDAD 6

EL COPROCESADOR ARITMÉTICO Y LA TECNOLOGÍA MMX Los procesadores del tipo 8086 solo podían realizar operaciones aritméticas con números enteros. Para los fraccionarios debían utilizar complicados artificios, por lo que desde el principio se crearon procesadores específicos y costosos para operaciones aritméticas con números fraccionarios. Puesto que la CPU no hace otra cosa que cálculos, el estudiante podría estar preguntándose por qué necesita ayuda para realizarlos. Lo que ocurre es que la CPU solo puede llevar a cabo operaciones aritméticas básicas con números 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 también otras tareas simultáneamente. En aquellos campos de aplicación donde se requieren muchas posiciones decimales y los errores de redondeo deben mantenerse tan insignificantes como sea posible, resulta imprescindible la utilización de un coprocesador aritmético. A partir de la introducción del 80486, Intel incorporó el coprocesador aritmético junto con el procesador principal, por lo que su existencia dejó de ser opcional, convirtiéndose en estándar. Con cada generación de CPU utilizada en sistemas de computadoras personales Intel también introducía su correspondiente coprocesador. La unidad 6 del presente material incluye el estudio del funcionamiento de la familia de coprocesadores aritméticos etiquetada como 80X87. También se incluye en esta unidad el estudio de la tecnología MMX, introducida por Intel en su línea de procesadores Pentium. Aunque no se pueda considerar la tecnología 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. Tales instrucciones usan una técnica conocida como SIMD (single-instruction, múltiple-data), es decir una secuencia de instrucciones y múltiples secuencias de datos que posibilita efectuar la misma operación, tal como una suma o una multiplicación con varios elementos de datos a la vez. Objetivo de la Unidad 6: Analizar programas que resuelvan problemas aritméticos, para la descripción de la operación del coprocesador aritmético o de la tecnología MMX.

Contenido de la Unidad 6: el contenido de la unidad contempla el estudio de los siguientes temas:

6.1 El coprocesador aritmético 6.2 La tecnología MMX: tipos de datos y conjunto de instrucciones.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 92: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

100

Actividades recomendadas para el estudio del contenido de la unidad 6

Proceda a realizar las lecturas indicadas en la tabla 9, las cuales lo guiarán en el estudio de los temas contentivos de la Unidad 6 y que le permitirán una mejor comprensión para el logro del objetivo 6. Es importante que cumpla esta actividad antes de proceder a realizar las actividades que se le indican posteriormente.

TEMA MATERIAL DE REFERENCIA

CONTENIDO CAPÍTULO

6.1 El Coprocesador Aritmético.

El texto Los Microprocesadores Intel, B. B. Brey. .

Formato de datos para el coprocesador aritmético. 14

Conjunto de instrucciones.

Programación con el coprocesador aritmético.

6.2 La tecnología MMX: Tipos de datos y conjunto de instrucciones.

Introducción a la tecnología MMX. Tipo de datos e instrucciones.

Tabla 9. Temas de la Unidad 6

6.1 El coprocesador aritmético Es un microprocesador de instalación opcional, también denominado Unidad de Punto Flotante, que auxilia al microprocesador en el uso eficiente de programas de graficación, cálculos matemáticos complejos y diseño, lo cual al especializarse en dichas funciones acelera la velocidad con que una computadora puede responder a necesidades tan sofisticadas. Los coprocesadores están todavía mas críticamente 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é diseñado para manejar la frecuencia de reloj de su computadora. Una vez estudiado el contendido del tema 6.1 indicado en la tabla 9, usted estará en capacidad de responder las siguientes preguntas:

¿Qué tipos de datos maneja el coprocesador? ¿Qué tipos de números flotantes soporta el coprocesador? ¿Cuáles son las directivas que emplea el coprocesador para almacenar

datos?

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 93: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

101

Formato de datos para el coprocesador aritmético

Lea la sección 14-1 incluida en el capítulo 14 del libro de texto del curso y revise los ejemplos que allí se incluyen.

Conjunto de instrucciones

Lea la sección 14-3 incluida en el capítulo 14 del libro de texto del curso y revise los ejemplos que allí se incluyen. Programación con el coprocesador aritmético Lea la sección 14-4 incluida en el capítulo 14 del libro de texto del curso y revise los ejemplos que allí se incluyen. Posteriormente revise el ejemplo 6.1.1, cualquier duda consulte al asesor del centro local.

EJEMPLO 6.1.1: operación de la pila del coprocesador aritmético 80387 al sumarse dos números reales.

El siguiente programa efectúa la suma de dos números reales, el resultado es posteriormente almacenado en la variable TOTAL: .MODEL SMALL .386 .387

.DATA REAL1 DD 30.0 REAL2 DD 1.3 TOTAL DD ?

.CODE

.STARTUP FLD REAL1

FLD REAL2 FADD ST(0),ST(1) FSTP TOTAL .EXIT END La pila del coprocesador está conformada por 8 registros: ST(0), ST(1), ST(2),…., ST(7) y se accede a ellos por el número de entrada que ocupa en la pila. En el caso del programa a analizar solo se utilizan los registros ST(0) y ST(1). En la figura 32, presentada en la siguiente página, se muestra la operación de la pila del coprocesador después de la ejecución de cada instrucción del programa:

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 94: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

102

Figura 32. Operación de la pila del coprocesador 80387

6.2 La tecnología MMX: tipos de datos y conjunto de instrucciones

La tecnología MMX está diseñada para acelerar las aplicaciones de multimedia y de comunicaciones mediante la inclusión de nuevas instrucciones y tipos de datos que permiten a las aplicaciones alcanzar un mejor rendimiento. Estas instrucciones usan una técnica conocida como SIMD (Simple Instrucción, Múltiples Datos) para dar un mejor rendimiento a la Multimedia y la computación de las comunicaciones.

Una vez estudiado el contenido del tema 6.2 indicado en la tabla 9, usted estará en capacidad de responder las siguientes preguntas:

¿Para qué tipo de aplicaciones están diseñadas específicamente las instrucciones MMX?

¿Qué registros del coprocesador aritmético utiliza la tecnología MMX?

REAL1 ST(0)

ST(1)

ST(2)

ST(3)

FLD REAL1

ST REAL2 ST(0)

REAL1

ST(1)

ST(2)

ST(3)

FLD REAL2

ST

REAL1 + REAL2 ST(0)

ST(1)

ST(2)

ST(3)

FADD ST(0), ST(1)

ST ST(0)

ST(1)

ST(2)

ST(3)

FSTP TOTAL

ST

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 95: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

103

Introducción a la tecnología MMX. Tipo de datos e instrucciones

Lea la sección 14-5 incluida en el capitulo 14 del libro de texto del curso y revise los ejemplos que allí se incluyen.

EJEMPLO 6.2.1: uso de la instrucción PADDB de la tecnología MMX disponible en el Pentium II.

La instrucción PADDB toma como operando un byte empaquetado, y realiza en paralelo sumas con cada posición de byte para producir un byte empaquetado de salida.

Una característica inusual que presenta el conjunto de instrucciones MMX es la introducción de la aritmética de saturación. Con la aritmética sin signo ordinaria, cuando una operación produce un desbordamiento (es decir, se produce una acarreo en la posición del bit mas significativa) el bit se trunca. Considere, por ejemplo las dos palabras en hexadecimal, F000H y 3000H. Su suma se expresaría como:

F000H = 1111 0000 0000 0000 +3000H = 0011 0000 0000 0000 1 0010 0000 0000 0000 = 2000H Si los dos números representaban intensidad de imagen, el resultado de la suma hace que la combinación de zonas sombreadas oscuras aparezca como más clara. Esto no es lo que se pretende normalmente. Mediante la aritmética con saturación, 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 aritmética con saturación daría como resultado:

F000H = 1111 0000 0000 0000 +3000H = 0011 0000 0000 0000 1 0010 0000 0000 0000 = 2000H

1111 1111 1111 1111 = FFFFH

Acarreo

Acarreo

Suma con saturación

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 96: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

104

EJEMPLO 6.2.2: composición de una imagen típica de vídeo mediante el uso de instrucciones MMX.

Una función típica de vídeo es el efecto de desvanecimiento o extinción progresiva (fade-out) y reaparición (fade-in), mediante el cual una imagen A se deshace y convierte gradualmente en otra B. Las dos imágenes se combinan mediante una media ponderada:

Pixel_resultado = Pixel_A x fade + Pixel_B x (1 – fade)

Este cálculo se efectúa para cada posición 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 transformación paulatina de la imagen A en la imagen B.

La figura 33 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 tamaño de las multiplicaciones MMX de 16 bits.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 97: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

105

Imagen A

Rojo

Azul

Alpha

Verde

Ar2 Ar3 Ar1 Ar0

Ar2 Ar3 Ar1 Ar0

Imagen B

Rojo

Azul

Alpha

Verde

Br2 Br3 Br1 Br0

Br2 Br3 Br1 Br0

1. Desempaquetar bytes de componentes de pixel rojo de las imágenes A y B

r2 r3 r1 r0

Sustracción

2. Restar la imagen B de la imagen A

X X X X

fade fade fade fade

3.Multiplicar el resultado por el valor de fade

fade x r3 fade x r0 fade x r1 fade x r2

+ + + + 4.Sumar los pixels de la imagen B

Br2 Br3 Br1 Br0

nuevor3 nuevor0 nuevor1 nuevor2

r2 r3 r1 r0

5.Volver a empaquetar en bytes los nuevos píxels compuestos

Figura 33. Composición de imagen en una representación de planos de colores

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 98: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

106

A continuación se presenta el código MMX que ejecuta las operaciones antes indicadas: PXOR MM7, MM7 ; poner a cero MM7 MOVQ MM3, fad_val ; cargar el valor de fade replicado 4

veces MOVD MM0, imagenA ; cargar las componentes de rojo de 4

píxeles de la imagen A MOVD MM1, imagenB ; cargar las componentes de rojo de 4

píxeles de la imagen B PUNPCKBLW MM0, MM7 ; desempaquetar a 16 bits 4 pixels PUNPCKBLW MM1, MM7 ; desempaquetar a 16 bits 4 pixels PSUBW MM0, MM1 ; restar la imagen B de la imagen A PMULHW MM0, MM3 ; multiplicar los valores de la resta por

el valor de fade PADDDW MM0, MM1 ; sumar el resultado a la imagen B PACKUSWB MM0, MM7 ; empaquetar en bytes los resultados

de 16 bits

EJERCICIOS PROPUESTOS

1.- La siguiente línea corresponde a una sección de un programa escrito para ser

ejecutado por el coprocesador aritmético:

FST DATA

Analice la sección del programa dado y describa cómo la ejecuta el coprocesador. Asuma que DATA está definida como una localidad de memoria de 64 bits.

2.- Describa cómo ocurre la saturación con signo, si las cantidades a ser sumadas

son de un byte.

EJERCICIOS DE AUTOEVALUACIÓN 1.- El siguiente conjunto de instrucciones ha sido extraído de un programa

desarrollado para ser ejecutado por el coprocesador aritmético:

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 99: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

107

MODEL SMALL . . . RAD .DD 2.34 . .

FLD RAD . . .

Analice la sección del programa dado y describa que función realiza la instrucción FLD RAD.

2.- A continuación se presenta la sección de un programa que emplea

instrucciones MMX, tales como:

PADDB MM1, MM2

Para la instrucción dada, responda lo siguiente:

¿Qué tipo de operación permite realizar? Describa qué función realiza esta instrucción.

CONSULTA EN OTROS LIBROS [Stallings 2000]: destaca las mejoras del diseño los microprocesadores tomando

como ejemplos el microprocesador Pentium II y el Power PC.

RESPUESTA A LOS EJERCICIOS DE AUTOEVALUACIÓN

1.- En la sección del programa dado la instrucción FLD RD carga el valor almacenado en RAD en ST.

2.- Solución:

La instrucción permite realizar la operación aritmética de la suma. Esta instrucción suma el contenido completo de 64 bits del registro MM2 al

contenido del registro MM1, byte por byte. El resultado es ubicado en MM1.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 100: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

109

MÓDULO III

PROGRAMACIÓN DEL MICROPROCESADOR

El módulo III está conformado por las unidades 7 y 8. El estudio de estas unidades

permite desarrollar en el estudiante las competencias necesarias en la solución de

problemas, haciendo uso de los microprocesadores.

El desarrollo de la solución implicará la codificación de algoritmos en un lenguaje

ensamblador de un microprocesador Intel y la implementación del programa

codificado en un software simulador, el cual proporciona un modelo real del

microprocesador.

Objetivo del Módulo III: Implementar, con sentido lógico y creativo, programas

específicos, haciendo uso de los microprocesadores.

El módulo III está estructurado en dos unidades:

Unidad 7: Programación en lenguaje ensamblador

Unidad 8: Implementación de programas en el microprocesador

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 101: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

111

UNIDAD 7

Programación en Lenguaje Ensamblador Los programas que convierten un programa de usuario escrito en algún lenguaje a otro lenguaje se llaman traductores. El lenguaje 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 máquina. El lenguaje fuente es en lo esencial una representación simbólica (lenguaje mnemotécnico) de un lenguaje de máquina numérico, el traductor se llama lenguaje ensamblador. Las computadoras siguen utilizando el lenguaje de máquina para procesar los datos, pero los programas ensambladores traducen antes los símbolos de código de operación especificados a sus equivalentes en lenguaje de máquina. A este proceso es al que se le denomina ensamblado de código. Para facilitar la elaboración de programas a este nivel se desarrollaron los ensambladores y el lenguaje ensamblador. En la unidad 7 se presenta el uso del lenguaje ensamblador, específicamente para los microprocesadores de la familia INTEL. El estudio de esta unidad afianzará en el estudiante los conocimientos obtenidos en el curso, especialmente en lo que respecta a la programación. Para facilitar el desarrollo de este objetivo en el trabajo práctico, se incluyen en esta unidad algunos ejemplos que le servirán de guía.

Objetivo de la Unidad 7: Codificar algoritmos, utilizando un lenguaje ensamblador y las técnicas apropiadas, para la resolución de un problema específico.

Contenido de la Unidad 7: el contenido de la unidad contempla el estudio de los siguientes temas:

7.1 Programación modular 7.2 Programas ejemplo

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 102: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

112

Actividades recomendadas para el estudio del contenido de la unidad 7

Proceda a realizar las lecturas indicadas en la tabla 10, las cuales lo guiarán en el estudio de los temas contentivos de la Unidad 7 y le permitirán una mejor comprensión para el logro del objetivo 7.

TEMA MATERIAL DE REFERENCIA

CAPÍTULO

7.1 Programación modular

El texto Los microprocesadores Intel, B. B. Brey.

7

7.2 Programas ejemplo

Tabla 10

ATENCIÓN: muchos de los ejemplos que se presentan en el capítulo 7 del texto Los Microprocesadores Intel, de B.B. Brey, usan el Microsoft MACRO Assembler (MAMS) como herramienta de desarrollo, pero la mayoría 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.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 103: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

113

7.1 Programación Modular La mayoría de las aplicaciones desarrolladas en lenguaje ensamblador se

desarrollan en módulos que posteriormente pueden ser enlazados mediante un

programa enlazador que se encuentra disponible en el sistema.

Una vez estudiado el contendido del tema 7.1 indicado en la tabla 10, usted estará

en capacidad de responder las siguientes preguntas:

¿Cuál es la función del programa enlazador?

¿Qué tipo de extensión tiene el programa generado por el programa

enlazador?

7.2 Programas Ejemplo

Revise los programas de ejemplos presentados en la sección 7.2 del capítulo 7 del libro de texto del curso.

EJEMPLO 7.2.1: uso del Lenguaje Ensamblador para ejecutar una operación aritmética.

Una CPU puede interpretar y ejecutar instrucciones de máquina. Estas instrucciones son, simplemente, números binarios almacenados en el computador. Si un programador quisiera programar directamente en lenguaje de máquina, necesitaría 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 máquina 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 posición 101 (hexadecimal). Se reserva memoria para las cuatro variables a partir de la posición 201. El programa consta de cuatro instrucciones:

1. Cargar el contenido de la posición 201 en el acumulador (AC). 2. Sumar a AC el contenido de la posición 202.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 104: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

114

3. Suma a AC el contenido de la posición 203. 4. Memorizar el contenido de AC en la posición 204.

Esto es claramente un proceso tedioso y muy susceptible de errores. Una ligera mejora consiste en redactar el programa en hexadecimal, en lugar de hacerlo en binario ver figura 7.1b). Para que la mejora sea más significativa, podemos hacer uso de nombres simbólicos o mnemotécnicos de las instrucciones. El resultado es el programa simbólico mostrado en la figura 7.1c. Cada línea sigue representando una posición de memoria, y consta de tres campos separados por espacios. El primer campo contiene la dirección de una posición. El segundo campo contiene el símbolo de tres letras que representa su código de operación. Si se trata de una instrucción que hace referencia a memoria, un tercer campo contiene la dirección. Para memorizar un dato concreto en una posición dada, nos inventamos una pseudoinstrucción con el símbolo DAT. Ésta es meramente un indicador de que el tercer campo de la línea contiene un número en hexadecimal a memorizar en la posición que especifica el primer campo. El uso de programas simbólicos hace la vida mucho más fácil, pero es aún engorroso. En particular, hay que dar una dirección absoluta para cada palabra. Un procedimiento mejor es emplear direcciones simbólicas. Esto se ilustra en la figura 7.1d. Cada línea sigue teniendo tres campos. El primero sigue siendo para la dirección, pero se utiliza un símbolo en lugar de una dirección numérica absoluta. Algunas líneas carecen de dirección, indicando que la dirección de dicha línea es uno más que la dirección precedente. Para las instrucciones que hacen referencia a memoria, el tercer campo contiene también una dirección simbólica. Con este último refinamiento hemos inventado un lenguaje ensamblador. Los programas escritos en lenguaje ensamblador (programas en ensamblador) se traducen a lenguaje de máquina mediante un ensamblador. El desarrollo de los lenguajes ensambladores fue un logro importante en la evolución de la tecnología de computadores. Fue el primer paso hacia los lenguajes de alto nivel de hoy en día.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 105: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

115

Dirección Contenido 101 0010 0010 0000 0001 101 LDA 201 102 0001 0010 0000 0010 102 ADD 202 103 0001 0010 0000 0011 103 ADD 203 104 0011 0010 0000 0100 104 STA 204 201 0000 0000 0000 0010 201 DAT 2 202 0000 0000 0000 0011 202 DAT 3 203 0000 0000 0000 0100 203 DAT 4 204 0000 0000 0000 0000 204 DAT 0

a) Programa en binario (c) Programa simbólico Dirección Contenido Etiqueta Operación Operando 101 2201 FORMUL LDA I 102 1202 ADD J 103 1203 ADD K 104 3204 STA N 201 0002 I DATA 2 202 0003 J DATA 3 203 0004 K DATA 4 204 0000 N DATA 0

(a) Programa en hexadecimal (c) Programa en ensamblador

Figura 7.1. Cálculo de la fórmula N = I + J + K.

EJEMPLO 7.2.2: programa en Lenguaje Ensamblador que imprime un mensaje en 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í sólo se describirán las instrucciones y directivas básicas. Para comenzar se presenta un pequeño 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.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 106: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

116

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 Código ASSUME CS:CODE, DS:DATA, SS:STACK INICIO: ; Punto de entrada al programa MOV AX,DATA ; Pone dirección en AX MOV DS,AX ; Pone la dirección en los registros MOV DX,OFFSET SALUDO ; Obtiene dirección del mensaje MOV AH,09H ; Función: Visualizar cadena INT 21H ; Servicio: Funciones alto nivel DOS MOV AH,4CH ; Función: Terminar INT 21H CODE ENDS END INICIO ; Marca fin y define INICIO La descripción del programa es como sigue:

Las declaraciones SEGMENT y ENDS definen los segmentos a ser utilizadas.

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

desplegada. El signo de dólares al final de la cadena (denominado centinela) es requerido por la función de visualización de la cadena de MS-DOS. La cadena incluye los códigos para carriage-return y line-feed.

La etiqueta INICIO en el segmento de código marca el inicio de las

instrucciones del programa.

La declaración DW en el segmento de pila define el espacio para ser usado por el stack del programa.

La declaración ASSUME indica que registros de segmento se asociarán

con las etiquetas declaradas en las definiciones de segmentos.

Las primeras dos instrucciones cargan la dirección del segmento de datos en el registro DS. Estas instrucciones no son necesarias para los segmentos de código y stack puesto que la dirección del segmento de código siempre es cargada en el registro CS y la dirección de la declaración del stack segment es automáticamente cargada en el registro SS.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 107: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

117

Las últimas dos instrucciones del segmento CODE usa la función 4CH de MS-DOS para regresar el control al sistema operativo. Existen muchas otras formas de hacer esto, pero ésta es la más recomendada.

La directiva END indica el final del código fuente y especifica a START

como punto de arranque.

EJEMPLO 7.2.3: uso de directivas PUBLIC y EXTRN EN LA PROGRAMACIÓN MODULAR

A continuación se presentan dos módulos de programa: MAIN y TASK. El primer módulo corresponde al módulo principal, mientras que el segundo al módulo que contiene una rutina. Ambos módulos son archivos que se editan por separado, se ensamblan por separado, pero se ligan juntos. MÓDULO PRINCIPAL: MAIN.ASM NAME MAIN PUBLIC EXIT EXTRN PRINT:NEAR STACK SEGMENT WORD STACK 'STACK' DW 64 DUP(?) STACK ENDS DATA SEGMENT WORD PUBLIC 'DATA' DATA ENDS CODE SEGMENT BYTE PUBLIC 'CODE' ASSUME CS:CODE, DS:DATA START: MOV AX, DATA ; carga localización del segmento MOV DS, AX ; en el registro DS JMP PRINT ; va a PRINT en el otro modulo EXIT: MOV AH, 4CH INT 21H CODE ENDS END START SUBMÓDULO: TASK.ASM NAME TASK PUBLIC PRINT EXTRN EXIT:NEAR DATA SEGMENT WORD PUBLIC 'DATA'

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 108: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

118

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 ; Función para borrar pantalla MOV AL,0 ; todas las líneas MOV CX,0 ; de 0,0 MOV DH,24D MOV DL,79D MOV BH,0 ; atributo en líneas vacías INT 10H ; Ser vicio de e/s vídeo MOV DX, OFFSET ENTRADA MOV AH,09H INT 21H MOV DX, OFFSET SALIDA INT 21H JMP EXIT ; Regresa al otro modulo CODE ENDS END

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 codificación ASCII en un registro; en caso contrario, devuelve cero.

2.- Considere una cadena como una secuencia de caracteres terminada por un

byte cero. Se requiere calcular su longitud. Con base en lo antes planteado, codifique en el lenguaje ensamblador 80286 un algoritmo que permita calcular la longitud de la cadena de caracteres.

EJERCICIOS DE AUTOEVALUACIÓN

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 definición de procedimiento cercano (NEAR).

2.-Codifique un programa que despliegue OK en la pantalla del monitor, utilizando

para ello el procedimiento DISP mostrado a continuación:

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 109: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

119

DISP PROC NEAR MOV AH, 2 INT 21H RET DISP ENDP 3.- Dada la siguiente sentencia lógica: X ← P OR Q

la cual permite asignar un valor lógico a la variable X dependiendo de los valores lógicos que tomen las variables P y Q; los valores de las variables P y Q estarán determinados por las siguientes condiciones lógicas:

P = 1 si Y > Z caso contrario P = 0 Q = 1 si U = W caso contrario Q = 0

Tome como base el planteamiento anterior y codifique un programa en el Lenguaje Ensamblador del microprocesador 8080 que realice lo siguiente:

- Asigne la dirección de carga inicial del programa en la localidad de memoria: 0000 H

- Compare los valores de las variables Y y Z - Obtenga el valor lógico de la variable P - Compare los valores de las variables U y W - Obtenga el valor lógico de la variable Q - Obtenga el valor lógico de la variable X - Envíe dicho valor al puerto de salida con dirección 01 H. - Finalice la ejecución

Considere que, previo a la ejecución del programa, se han cargado los valores de las variables Y, Z, U y W en:

- Registro B: Almacena el valor de la variable Z - Registro C: Almacena el valor de la variable W - Registro D: Almacena el valor lógico de la variable P - Registro E: Almacena el valor lógico de la variable Q - Localidad de memoria 0100 H: Almacena variable Y - Localidad de memoria 0101 H: Almacena la variable U

4.- Una aplicación de control de proceso será desarrollada mediante la

programación de un microcomputador basado en el microprocesador 8080. El programa estará constituido por un conjunto de subrutinas, que permiten realizar esta tarea. Una de estas subrutinas denominada LECTURAS, se encargará de tomar 10 mediciones del proceso (leerá valores de un byte de

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 110: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

120

longitud) y almacenar cada una de ellas en localidades consecutivas de memoria.

Tome como base el planteamiento anterior y codifique un programa en el lenguaje ensamblador que permita realizar las funciones de la subrutina LECTURAS. Las siguientes especificaciones deben ser incluidas en la codificación:

- La dirección de carga inicial en memoria de la subrutina debe ser 0300 H.

- Las lecturas serán tomadas del puerto de entrada 01 H. - Cada lectura será almacenada consecutivamente en un bloque de

memoria, con dirección inicial 0400 H.

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 descripción del conjunto de instrucciones de la familia

x86.

CONSULTA EN LA WEB http://proton.ucting.udg.mx/dpto/maestros/mateos/novedades/ensamblador/68HC1

1.html:Contiene información 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.

RESPUESTA A LOS EJERCICIOS DE AUTOEVALUACIÓN 1.- El procedimiento es el siguiente: SUMS PROC NEAR ADD AX, BX ADD AX, CX ADD AC, DX

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 111: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

121

RET SUMS ENDP 2.- A continuación se muestra el programa: MODEL TINY .CODE STARTUP MOV BX, OFFSET DISP MOV DL, ‘O’ CALL BX0 MOV DL, ‘K’ CALL BX .EXIT END 3.- Un programa codificado en lenguaje ensamblador que resuelve el problema

planteado se muestra a continuación:

ORG 0000 H XRA A LXI H, 0100 H

MOV A, M INX H MOV D, 00 H CMP B JC N1 MOV D, 01 H N1: MOV A, M MOV E, 00 H CMP C JNZ N2 MOV E, 01 H N2: MOV A, D ORA E OUT 02 H HLT END 4.- A continuación un modelo de subrutina que resuelve el problema planteado:

ORG 0300 H DCR B LXI H, 0400 H JNZ GUARDA MVI B, 0A H RET XRA A END GUARDA: IN 01 H

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 112: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

122

MOV M, A INX H

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 113: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

123

UNIDAD 8

Implementación de programas en el microprocesador Una vez que el estudiante se ha familiarizado con el repertorio de instrucciones de la familia de microprocesadores Intel y ha desarrollado una solución a un problema determinado mediante un programa, se pretende, en la unidad 8, implementar el programa codificado, en un software simulador. El hecho de que el alumno disponga de un simulador para un modelo de microprocesador real le permite evidenciar su estructura y funcionamiento; además puede utilizarlo en casa, o en cualquier lugar que disponga de un equipo de computación que cumpla con las especificaciones técnicas requeridas. Para el estudio de la unidad 8, el estudiante utilizará otro componente del paquete instruccional, El Módulo Práctico. En este módulo encontrará toda la información relacionada con el software simulador a ser utilizado para el desarrollo del trabajo práctico de la asignatura. Adicionalmente, en el módulo son incluidos ejemplos prácticos implementados en simuladores y una serie de ejercicios propuestos para que el estudiante los desarrolle.

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:

8.1 Software simulador de un microprocesador 8.2 Ejemplos de software simulador de microprocesadores

específicos 8.3 Uso del software simulador.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 114: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

124

Actividades recomendadas para el estudio del contenido de la unidad 8 1.- Lea los siguientes basamentos teóricos, relacionados con software simulador

de los microprocesadores:

Para facilitar la docencia existe un buen número de herramientas que simulan el comportamiento de diversos microprocesadores, reales o ficticios. Los simuladores de microprocesador, de los cuales existe una amplia oferta, son preferidos a los propios micros reales, ya que permiten la detección de errores, facilitan la manipulación de datos sin modificar elementos físicos y ofrecen en general mayores posibilidades. De este modo se permite a los alumnos incorporar programas propios escritos en lenguaje ensamblador y comprobar los resultados que produciría su ejecución sin los peligros de usar una máquina real.

Esta aproximación permite que los alumnos asimilen en relativamente poco tiempo algunos conceptos básicos de las arquitecturas de computadores, pero tiene la desventaja de que los alumnos no acaban de comprender los procesos reales que ocurren en el interior de un microprocesador, puesto que éste es visto como una “caja negra” de la cual no se sabe nada de su contenido. En otras palabras, con la mayoría de las herramientas tradicionales, los alumnos pueden entender qué ocurre, pero no cómo se llega a los resultados de la ejecución. En particular, no suele mostrarse el camino de datos de las instrucciones. Por otro lado, muchas de estas aplicaciones se diseñaron hace bastante tiempo, y por ello su interfaz suele ser poco claro, limitándose en la mayoría de las ocasiones a mostrar los cambios producidos en los distintos registros internos accesibles por el programador. Pocas permiten mostrar los cambios en el estado de los elementos internos de un micro de forma visual, a pesar de que una representación gráfica animada permite ilustrar conceptos tales como la segmentación (pipelining) de forma sencilla. Además, la mayoría de las aplicaciones existentes deben ser ejecutadas en un sistema operativo determinado, lo que limita su difusión.

http://www.euitt.upm.es/taee06/papers/SP/p93.pdf (Consultada el 19.08.2007)

2.- A continuación se presenta información relacionada con tres softwares de

simulación de la arquitectura del microprocesador Intel 8085. Se recomienda su lectura por parte del estudiante, ya que esto le permitirá visualizar el modelo de programación y la manera como opera este microprocesador.

Cabe destacar que en la red Internet se encuentran disponibles estas aplicaciones; algunas podrán descargarse en forma gratuita para su uso, otras, en cambio, se ofertan para la venta.

ATENCIÓN: puede suceder que, al momento de la consulta, algunas de estas aplicaciones no estén disponibles en la web.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 115: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

125

Simulador del microprocesador 8085 versión 3 para Windows Este simulador se oferta en Internet en la dirección: http://www.insoluz.com/Micro/Micro.html.

La figura 8.1 presenta la arquitectura de este simulador, y a continuación se resumen sus características:

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

Ofrece la codificación fácil a través de una pista del clave de código con la validación completa de la entrada de información.

Ofertas fáciles y el poner a punto extenso incluyendo puntos de interrupción y perfilar.

Tuerca hexagonal de las ayudas / Ficheros de Obj. También ofrece un editor de textos del ensamblador con destacar del

sintaxis. El software es acuerdo y está disponible en lenguajes múltiples. Fichero diseñado y detallado del receptor de papel de la ayuda.

La figura 8.2 muestra una pantalla de aplicación en la cual puede apreciarse un programa en ejecución. 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

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 116: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

126

Figura 8.1. Simulador del microprocesador 8085 versión 3 para Windows – Proceso de entrada

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 117: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

127

Figura 8.2. Simulador del microprocesador 8085 - Ejecución

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 118: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

128

Figura 8.3. Simulador del microprocesador 8085 – Editor de textos del ensamblador

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 119: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

129

Simulador del microprocesador 8085 versión 1.0.0 Desarrollado por Pedro J. Casanova Peláez, se encuentra disponible en forma gratuita en la siguiente dirección electrónica: http://voltio.ujaen.es/casanova/simu8085/sim8085.htm . Este simulador presenta las siguientes características:

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 Ejecución paso a paso y seguida Carga / almacenamiento en formato hexadecimal Intel de 8 bits Ensamblador incluido

En la figura 8.4 pueden ser apreciados el modelo de programación de este simulador.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 120: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

130

Descargar

Volver a página anterior

Figura 8.4. Simulador del microprocesador del microprocesador 8085 versión 1.0.0

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 121: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

131

Simulador del microprocesador 8085 Versión 1.0 Este simulador desarrollado por: Ángel Manuel Gómez García, Pedro Mesas García y José Ignacio Ruiz Núñez, del Departamento de arquitectura y Tecnología de Computadores E.T.S. Ingeniería Informática, Universidad de Granada, 2001, se encuentra disponible en forma gratuita en la dirección: http://www.angelfire.com/or3/micropymicroc/#2 En la figura 8.5 puede apreciarse todos los detalles de cada uno de los componentes que forman la pantalla principal del simulador de 8085.

Figura 8.5. Simulador del microprocesador 8085 Versión 1.0

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 122: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

132

3.- Consulte el Módulo Práctico y realice todas las actividades que allí se le

indican.

CONSULTA EN LA WEB http://www.softwareforeducation.com/sms32v50/simulator.htm: encontrará información de un software simulador de microprocesador para principiantes. http://www.cc.uah.es/hilera/docs/1994/c_taee/c_taee.htm: presenta información relacionada con el desarrollo de un software simulador Microprocesador MC68000.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

Page 123: UNIVERSIDAD NACIONAL ABIERTA - Biblioteca Digital UNAbiblo.una.edu.ve/docu.7/bases/marc/texto/m35338.pdf ·  · 2016-06-085 MATERIAL INSTRUCCIONAL DE APOYO MICROPROCESADORES 316

133

V. BIBLIOGRAFÍA

Brey, B. B. (2001). Los microprocesadores Intel. Arquitectura, programación e interfaz de los procesadores 8086/8088/, 80186/80188, 80286, 80386, 80486 Pentium Pro y Pentium II. 5ta Edición. México: Prentice Hall. Brey, B. B. (1995). Los microprocesadores Intel 8086/8088, 80186, 80286, 80386, y 80486: Arquitectura, programación e interfaces. 3a. edición. México: Prentice Hall. Lameda , C y Grech, Pablo. (1984). Microprocesadores. Caracas. UNA. Sayers, I. L., Adams E. A., Chester E. G. y Robson A. P. (1995). Principios de microprocesadores. México: Cecsa. Stallings, W. (2000). Organización y arquitectura de computadores. España: Prentice Hall. Tokheim, R. L. (1996). Fundamentos de los microprocesadores. España: División Irwin. Mc-Graw Hill.

Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA