unidad 1 a.c

102
INSTITUTO TECNOLÓGICO DE TAPACHULA CARRERA INGENIERÍA EN SISTEMAS COMPUTACIONALES ASIGNATURA ARQUITECTURA DE COMPUTADORAS DOCENTE ING. ROSEL MUÑOZ LÓPEZ TRABAJO ARQUITECTURAS DE CÓMPUTO ESTUDIANTES DE LA PARRA AGUIRRE RICARDO ENRIQUE LABRAS CASTILLO PHIL RUÍZ CRUZ JESÚS UNIDAD 1

Upload: ricardo-de-la-parra

Post on 10-Feb-2016

630 views

Category:

Documents


39 download

DESCRIPTION

Arquitectura de computadoras. Unidad 1 Arquitectura de cómputo.

TRANSCRIPT

Page 1: UNIDAD 1 A.C

INSTITUTO TECNOLÓGICO DE TAPACHULA

CARRERAINGENIERÍA EN SISTEMAS COMPUTACIONALES

ASIGNATURAARQUITECTURA DE COMPUTADORAS

DOCENTEING. ROSEL MUÑOZ LÓPEZ

TRABAJOARQUITECTURAS DE CÓMPUTO

ESTUDIANTESDE LA PARRA AGUIRRE RICARDO ENRIQUE

LABRAS CASTILLO PHILRUÍZ CRUZ JESÚS

UNIDAD

1

TAPACHULA, CHIS. 05 DE OCTUBRE DE 2015

Page 2: UNIDAD 1 A.C

CONTENIDO

UNIDAD 1

1 Arquitecturas de cómputo

1.1 Modelos de arquitecturas de cómputo.1.1.1 Clásicas.1.1.2 Segmentadas. 1.1.2.1 Pipe-line1.1.3 De multiprocesamiento.

1.1.3.1 Clasificación

1.2 Análisis de los componentes.1.2.1 CPU. 1.2.1.1 Arquitecturas.

1.2.1.1.1 Arquitectura Cisc. 1.2.1.1.2 Arquitectura Risc. 1.2.1.2 Tipos. 1.2.1.3 Características. 1.2.1.4 Funcionamiento (ALU, unidad de control, registros y buses internos.

1.2.2 Memoria. 1.2.2.1 Conceptos básicos del manejo de la memoria. 1.2.2.2 Memoria principal semiconductora. 1.2.2.2.1 Tipos de memorias semiconductoras de acceso aleatorio. 1.2.2.2.2 Organización. 1.2.2.2.3 Lógica del chip 1.2.2.3 Memoria caché. 1.2.2.3.1 Elementos de diseño de la cache.

1.2.3 Manejo de la entrada/salida.1.2.3.1 Módulos de entrada/salida.1.2.3.2 Entrada/salida programada.1.2.3.3 Entrada/salida mediante interrupciones.1.2.3.4 Acceso directo a memoria.1.2.3.5 Canales y procesadores de entrada/salida.

1.2.4 Buses.1.2.4.1 Tipos de buses.1.2.4.2 Estructura de los buses.1.2.4.3 Jerarquías de buses.

1.2.5 Interrupciones.

2 | 76

Page 3: UNIDAD 1 A.C

INDICE

Introducción Página

1.1 Modelos de arquitecturas de cómputo. 51.1.1 Clásicas. 71.1.2 Segmentadas. 91.1.2.1 Pipe-line 111.1.3 De multiprocesamiento. 111.1.3.1 Clasificación 13

1.2 Análisis de los componentes. 16

1.2.1 CPU. 161.2.1.1 Arquitecturas. 181.2.1.1.1 Arquitectura Cisc. 191.2.1.1.2 Arquitectura Risc. 211.2.1.2 Tipos. 231.2.1.3 Características. 281.2.1.4 Funcionamiento (ALU, unidad de control, registros y buses internos). 29

1.2.2 Memoria. 38 1.2.2.1 Conceptos básicos del manejo de la memoria. 381.2.2.2 Memoria principal semiconductora. 401.2.2.2.1 Tipos de memorias semiconductoras de acceso aleatorio. 401.2.2.2.2 Organización. 431.2.2.2.3 Lógica del chip 431.2.2.3 Memoria caché. 441.2.2.3.1 Elementos de diseño de la cache. 46

1.2.3 Manejo de la entrada/salida. 471.2.3.1 Módulos de entrada/salida. 481.2.3.2 Entrada/salida programada. 491.2.3.3 Entrada/salida mediante interrupciones. 531.2.3.4 Acceso directo a memoria. 551.2.3.5 Canales y procesadores de entrada/salida. 57

1.2.4 Buses. 581.2.4.1 Tipos de buses. 601.2.4.2 Estructura de los buses. 671.2.4.3 Jerarquías de buses. 70

1.2.5 Interrupciones. 72

Conclusión

Bibliografía

3 | 76

Page 4: UNIDAD 1 A.C

INTRODUCCION

La computadora está diseñada para cumplir con las tareas cotidianas que realizamos en ella, pero ¿conocemos cómo es su funcionamiento interno para que realice nuestras tareas? En el presente reporte de investigación se aprenderá a ver más allá de la simple vista humana a un computador. Se conocerá el trabajo de cada uno de los componentes que hacen posible la interacción máquina-usuario cumpliendo sus respectivas acciones y trabajos que éstos solicitan. Se observará detalladamente cada una de las operaciones que interceden con sus respectivos procedimientos y necesidades que surgen al momento del trabajo. Teniendo como punto de partida desde el aparentemente “sencillo” uso del teclado y ratón, y que al parecer todo es muy simple, hasta cada uno de los circuitos que son necesarios para llevar a cabo un simple clic, hasta algo tan complejo como la misión tan importante que representa la CPU para el sistema computacional.

4 | 76

Page 5: UNIDAD 1 A.C

UNIDAD 1.- ARQUITECTURA DE CÓMPUTO

1.1 Modelos de arquitecturas de cómputo.

Se han diseñado y construido cientos de tipos distintos de computadoras durante la evolución de la computadora digital moderna. Casi todos se han perdido en el olvido, pero unos cuantos han tenido un impacto importante sobre las ideas modernas. La arquitectura de computadoras se refiere a los atributos de un sistema que son visibles a un programador, o para decirlo de otra manera, aquellos atributos que tienen un impacto directo en la ejecución lógica de un programa. Entre los ejemplos de atributos arquitectónicos se encuentran el conjunto de instrucciones, el número de bits usados para representar varios tipos de datos (ej. Números, caracteres), mecanismos de E/S y técnicas para direccionamiento de memoria.

La arquitectura de computadoras es el diseño conceptual y la estructura operacional fundamental de un sistema de computadora, es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de una computadora, también suele definirse como la forma de seleccionar e interconectar componentes de hardware para crear computadoras según los requerimientos de funcionalidad, rendimiento y costo.

La siguiente tabla muestra algunos acontecimientos más importantes de la evolución de las computadoras.1

Año Nombre Hecho por Comentario1834 Máquina analítica Babbage Primer intento por construir una

computadora digital1936 Z1 Zuse Primera máquina calculadora de

relevadores funcional1943 COLOSSUS Gobierno inglés Primera computadora electrónica

1944 Mark l AikenPrimera computadora estadounidense de propósito general

1946 ENIAC l Eckert/Mauchley

Inicia la historia moderna de la computación

1949 EDSAC Wikes Primera computadora de programa almacenado

1951 Whielwind l M.I.T Primera computada de tiempo lineal

1952 IAS Von Newman Casi todas las máquinas actuales emplean este diseño

1960 PDP-1 DEC Primera minicomputadora1961 1401 IBM Máquina pequeña para negocios

1 Organización de computadoras un enfoque estructurado. Tanenbaum, AS. P. 14. 5 | 76

Page 6: UNIDAD 1 A.C

1962 7094 IBM Dominó la computación científica 1963 B5000 Burroughs Primera máquina diseñada para

un lenguaje de alto nivel1964 360 IBM Primera línea de productos

diseñada como familia1964 6600 CDC Primera supercomputadora

científica1965 PDP-8 DEC Primera minicomputadora con

mercado masivo1970 PDP-11 DEC Dominó las minicomputadoras1974 8080 Intel Primera computadora de

propósito general de 8 bits en un chip

1974 CRAY-1 Cray Primera supercomputadora vectorial

1978 VAX DEC Primera superminicomputadora de 32 bits

1981 IBM PC IBM Inició la era de la computadora personal moderna

1983 HP150 Hewlett Packard Primera computadora táctil1985 MIPS MIPS Primera máquina RISC comercial1987 SPARC Sun Primera estación de trabajo RISC

basada en SPARC1990 RSC6000 IBM Primera máquina superescalar1998 iMac Apple Primera fuera del legado de las

PC con un puerto USB sin disco floppy

2003 Power Mac G5 AppleEn su momento fue la computadora personal más rápida del mercado

2007Dell XPS 13 Developer Edition con Ubuntu

DellPrimera laptop con sistema operativo Ubuntu Linux preinstalado

2008 Macbook Air Apple La laptop más delgada2011 Chromebook Google Primera laptop con Chrome OS

2015 HP Sprout Hewlett Packard

Cuenta con un proyector que hace que la superficie se convierta en una segunda pantalla y un sistema de cámaras 3D que permiten capturar cualquier objeto del mundo real que pongas en esta superficie para ingresarlo  en el ordenador.

6 | 76

Page 7: UNIDAD 1 A.C

1.1.1 Clásicas

Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos de vacío. Aún son usadas en procesadores empotrados de gama baja y son la base de la mayoría de las arquitecturas modernas.

Arquitectura Mauchley-Eckert (John von Newman)

En 1943, Mauchley y su estudiante de posgrado, J. Presper Eckert, procedieron a construir una computadora electrónica a la que llamaron ENIAC (Electronic Numerical Integrador And Computer). ENIAC consiste en 18,000 bulbos y 1500 relevadores, pesaba 30 toneladas y consumía 140 KW de potencia. En términos de arquitectura, la máquina tenía 20 registros, cada uno capaz de almacenar un número decimal de 10 dígitos. ENIAC se programaba ajustando 6000 interruptores de multiposición y conectando numerosas bases con una verdadera maraña de cables interconectores.

Von Newman se dio cuenta de que el programa podía representarse en forma digital en la memoria de la computadora, junto con los datos. Él percibió también que la torpe aritmética decimal en serie utilizada por ENIAC, en la que cada dígito estaba representado por 10 bulbos podía ser sustituida por una aritmética binaria.

El diseño básico, que él describió por primera vez, ahora se conoce como máquina de von Newman. Se usó en EDSAC, la primera computadora de programa almacenado, y sigue siendo la base de casi todas las computadoras digitales aun ahora. La siguiente figura muestra la máquina de von Newman.

7 | 76

Page 8: UNIDAD 1 A.C

La máquina de von Newman2 tiene cinco partes básicas: la memoria, la unidad aritmética lógica (ALU), la unidad de control y el equipo de entrada y salida. La memoria constaba de 4096 palabras, cada una de las cuales contenía 40 bits que podían ser 0 o 1. Cada palabra contenía dos instrucciones de 20 bits o bien un entero con signo de 40 bits. Ocho bits de cada instrucción estaban dedicados a indicar el tipo de instrucción, y 12 bits se dedicaban a especificar una de las 4096 palabras de memoria.

Dentro de la unidad de aritmética lógica había un registro interno especial de 40 bits llamado acumulador. Una instrucción típica sumaba una palabra de la memoria al acumulador o almacenaba el contenido del acumulador en la memoria.

Esta arquitectura consiste en una unidad central de proceso que se comunica a través de un solo bus con un banco de memoria en donde se almacenan tanto los códigos de instrucción del programa" como los datos que serán procesados por este. La principal desventaja de esta arquitectura" es que el bus de datos y direcciones único se convierte en un cuello de botella por el cual debe pasar toda la información que se lee de o se escribe a la memoria" obligando a que todos los accesos a esta sean secuenciales.

Arquitectura Harvard

El término Arquitectura Harvard originalmente se refería a las arquitecturas de computadoras que utilizaban dispositivos de almacenamiento físicamente separados para las instrucciones y para los datos (en oposición a la Arquitectura von Neumann). El término proviene de la computadora Harvard Mark I, que almacenaba las instrucciones en cintas perforadas y los datos en interruptores.

Esta arquitectura surgió en la universidad del mismo nombre poco después de que la arquitectura, von Newman apareciera en la universidad de Princeton. Al igual que en la arquitectura, von Newman el programa se almacena como un código numérico en la memoria pero no en el mismo espacio de memoria ni en el mismo formato que los datos. Por ejemplo se pueden almacenar las instrucciones en doce bits en la memoria de programa mientras los datos de almacenan en 4 bits en una memoria aparte. En la siguiente figura se muestra la arquitectura Harvard.

2 Tanenbaum, AS. Organización de computadoras un enfoque estructurado, p. 18 8 | 76

Page 9: UNIDAD 1 A.C

Ambos buses son totalmente independientes lo que permite que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la de instrucciones. Como los buses son independientes éstos pueden tener distintos contenidos en la misma dirección y también distinta longitud. También la longitud de los datos y las instrucciones puede ser distinta, lo que optimiza el uso de la memoria en general.

El hecho de tener un bus separado para el programa y otro para los datos permite que se lea el código de operación de una instrucción, al mismo tiempo se lee de la memoria de datos los operados de la instrucción previa. Así se evita el problema del cuello de botella de von Newman y se obtiene un mejor desempeño.

En la actualidad la mayoría de los procesadores modernos se conectan al exterior de manera similar a la arquitectura von Newman, con un banco de memoria masivo único, pero internamente incluyen varios niveles de memoria caché con bancos separados en caché de programa y caché de datos, buscando un mejor desempeño sin perder la versatilidad.

1.1.2 Segmentadas

Estas arquitecturas surgen por la necesidad de aumentar la velocidad de procesamiento. En ellas, lo que se buscaba era mejorar el desempeño realizando paralelamente varias etapas del ciclo de instrucción al mismo tiempo. Esto se logra, debido a que el procesador se divide en varias unidades funcionales e independientes las cuales se dividen entre ellas el procesamiento de las instrucciones. Y entonces, ir transformando un flujo de datos en un proceso comprendido por varias fases secuenciales, siendo la entrada de cada una de las salidas de la anterior.

Supongamos que un procesador simple tiene un ciclo de instrucción sencillo consistente solamente en una etapa de búsqueda del código de instrucción y en otra etapa de ejecución de la instrucción. En un procesador sin segmentación del cauce, las dos etapas se realizarían de manera secuencial para cada una de las instrucciones, como lo muestra la siguiente figura.

En un procesador con segmentación del cause, cada una de estas etapas se asigna a una unidad funcional diferente, la búsqueda a la unidad de búsqueda y la

9 | 76

Page 10: UNIDAD 1 A.C

ejecución a la unidad de ejecución. Estas unidades pueden trabajar en forma paralela en instrucciones diferentes. Estas unidades se comunican por medio de una cola de instrucciones en la que la unidad de búsqueda coloca los códigos de instrucción que leyó para que la unidad de ejecución los tome de la cola y los ejecute. Esta cola se parece a un tubo donde las instrucciones entran por un extremo y salen por el otro. De esta analogía proviene el nombre en inglés: Pipelining o entubamiento.

En un procesador con segmentación, la unidad de búsqueda comenzaría buscando el código de la primera instrucción en el primer ciclo de reloj. Durante el segundo ciclo de reloj, la unidad de búsqueda obtendría el código de la instrucción 2, mientras que la unidad de ejecución ejecuta la instrucción 1 y así sucesivamente. La siguiente figura muestra este proceso.

Con la implementación de este modelo se logró realizar más procesos al mismo tiempo, sin embargo, esto no fue sinónimo de rapidez.

Esto debido a que no todos los procesos se toman el mismo tiempo para ejecutarse, lo que ocasiona una gran competencia respecto al uso de los recursos del CPU.

Sin embargo, esta arquitectura es muy común en el desarrollo de programas para el intérprete de comandos, ya que se pueden concatenar comandos fácilmente con tuberías (pipe).

Pipe-line

Consiste en la segmentación del procesador, a lo que llamamos "pipe-line", descomponiéndolo en etapas para poder procesar una instrucción diferente en cada una de ellas y trabajar con varias a la vez. La arquitectura en pipeline (basada en filtros) consiste en ir transformando un flujo de datos en un proceso comprendido por varias fases secuenciales, siendo la entrada de cada una la salida.

Es importante tener en cuenta que la arquitectura pipe-line se aplica en dos lugares de la maquina: en la CPU y en la ALU.

10 | 76

Page 11: UNIDAD 1 A.C

Las pipe-lines, tienen diversas aplicaciones en informática, tales como:

Pipe-lines gráficos: por lo general encontrados en tarjetas gráficas, consiste en múltiples unidades aritméticas o CPUs completas, que implementan variados escenarios de operaciones típicas de renderizado. Ejemplo: cálculos de luz y colores, renderizado, proyección de perspectiva, etc...

Pipe-lines de software o tuberías: consiste en múltiples procesos ordenados de tal forma que el flujo de salida de un proceso alimenta la entrada del siguiente proceso. Ejemplo: los pipelines de Unix.

1.1.3 De Multiprocesamiento3

El uso de varios procesadores está motivado por consideraciones relativas a las prestaciones y a la fiabilidad. Podemos clasificar dichos sistemas como sigue:

Multiprocesadores Débilmente Acoplados: Consisten en un conjunto de sistemas relativamente autónomos, en los que cada CPU dispone de su propia memoria principal y sus canales de E/S. En este contexto se utiliza el término multicomputador.

Procesadores de Uso Específico: Tales como un procesador de E/S. En este caso, hay un maestro, una CPU de uso general, y los procesadores de uso específico están controlados por la CPU maestra a la que proporcionan ciertos servicios.

Multiprocesadores Fuertemente Acoplados: Constituidos por un conjunto de procesadores que comparten una memoria principal común y están bajo el control de un mismo sistema operativo.

Procesadores Paralelos: Multiprocesadores fuertemente acoplados que pueden cooperar en la ejecución en paralelo de una tarea o un trabajo.

Características clave de un multiprocesador:

1. Posee dos o más procesadores de uso general similares y de capacidades comparables.

2. Todos los procesadores comparten el acceso a una memoria global (común). También pueden utilizarse algunas memorias locales (privadas).

3. Todos los procesadores comparten el acceso a los dispositivos de E/S, bien a través de los mismos canales bien a través de canales distintos que proporcionan caminos de acceso los mismos dispositivos.

4. El sistema está controlado por un sistema operativo integrado que permite la interacción entre los procesadores y sus programas en los niveles de trabajo, tarea, fichero, y datos elementales.

Organización

3 Strallings, W. Organización y Arquitectura de Computadoras, p 575. 11 | 76

Page 12: UNIDAD 1 A.C

La siguiente figura describe en términos generales la organización de un sistema multiprocesador. Hay dos o más CPUs. Cada CPU es autónoma, incluyendo una unidad de control, una ALU, registros, y, posiblemente, caché. Cada CPU tiene acceso a una memoria principal compartida y a dos dispositivos de E/S a través de algún mecanismo de interconexión. Los procesadores pueden comunicarse entre sí a través de la memoria (mensaje e información de control almacenadas en áreas comunes para datos). También es posible que las CPUs intercambien señales directamente, como indican las líneas discontinuas. La memoria a menudo se organiza de forma que sean posibles los accesos simultáneos a bloques de memoria separados.

1.1.3.1 Clasificación.

Cuando la técnica de Segmentación no es suficiente y se desea incrementar el desempeño más allá, se requiere utilizar más de un procesador para la ejecución del programa de aplicación.

Las CPU de multiprocesamiento se clasifican de la siguiente manera:

● SISO – (Single Instruction, Single Operand) computadoras independientes

● SIMO – (Single Instruction, Multiple Operand) procesadores vectoriales

● MISO – (Multiple Instruction, Single Operand) No implementado

● MIMO – (Multiple Instruction, Multiple Operand) sistemas SMP, Clusters

12 | 76

Page 13: UNIDAD 1 A.C

SISO – (Single Instruction, Single Operand) computadoras independientes

Es el modelo tradicional de computación secuencial donde una unidad de procesamiento recibe una sola secuencia de instrucciones que operan en una secuencia de datos. Véase la siguiente figura.

SIMO – (Single Instruction, Multiple Operand) procesadores vectoriales

A diferencia de SISD, en este caso se tienen múltiples procesadores que sincronizadamente ejecutan la misma secuencia de instrucciones, pero en diferentes datos. El tipo de memoria que estos sistemas utilizan es distribuida. Véase la siguiente figura.

MIMO – (Multiple Instruction, Multiple Operand) sistemas SMP, Clusters

Este tipo de computadora es paralela al igual que las SIMo, la diferencia es que MIMO es asíncrono. Se tienen N procesadores, N secuencias de instrucciones y N secuencias de datos. Cada procesador es capaz de ejecutar su propio programa con diferentes datos. Esto significa que los procesadores operan asíncronamente, o en términos simples, pueden estar haciendo diferentes cosas en diferentes datos al mismo tiempo. Véase la siguiente figura.

13 | 76

Page 14: UNIDAD 1 A.C

Sistemas de Memoria Compartida

Las computadoras MIMD con memoria compartida son sistemas conocidos como de multiprocesamiento simétrico (SMP) donde múltiples procesadores comparten un mismo sistema operativo y memoria. Otro término con que se le conoce es máquinas firmemente juntas o de multiprocesadores. Véase la siguiente figura.

Sistemas de Memoria Distribuida

Estos sistemas tienen su propia memoria local. Los procesadores pueden compartir información solamente enviando mensajes, es decir, si un procesador requiere los datos contenidos en la memoria de otro procesador, deberá enviar un mensaje solicitándolos.

Las computadoras MIMO de memoria distribuida son conocidas como sistemas de procesamiento en paralelo masivo (MPP) donde múltiples procesadores trabajan en diferentes partes de un programa, usando su propio sistema operativo y memoria. Véase la siguiente figura.

14 | 76

Page 15: UNIDAD 1 A.C

Sistemas de memoria Compartida distribuida

Es una partición de procesadores que tienen acceso a una memoria compartida común pero sin un canal compartido. Esto es, físicamente cada procesador posee su memoria local y se interconecta con otros procesadores por medio de un dispositivo de alta velocidad, y todos ven las memorias de cada uno como un espacio de direcciones globales. Véase la siguiente figura.

1.2 Análisis de los componentes.

Un computador es un sistema complejo; los computadores de hoy en día contienen millones de componentes electrónicos básicos, ¿Cómo podríamos describirlos claramente? La clave está en reconocer la naturaleza jerárquica de la mayoría de los sistemas complejos, incluyendo el computador. Un sistema jerárquico es un conjunto de sistemas interrelacionados, cada uno de los cuales se organiza en una estructura jerárquica, uno tras otro, hasta que alcanza el nivel más bajo de subsistema elemental.

La naturaleza jerárquica de los sistemas complejos, es esencial tanto para su diseño como para su descripción. En cada nivel el sistema consta de un conjunto de componentes y sus interrelaciones.

1.2.1 CPU

La CPU (Unidad Central de Procesamiento, Central Processing Unit) es un circuito microscópico que interpreta y ejecuta instrucciones. Las CPU de las actuales computadoras son microprocesadores construidos sobre un cristal de silicio semiconductor donde se crean todos los elementos que forman un circuito electrónico (transistores, etc.) y las conexiones necesarias para formarlo.

El microcircuito se encapsula en una pastilla de plástico con una serie de conexiones hacia el exterior, en forma de patillas metálicas, que forman su nexo

15 | 76

Page 16: UNIDAD 1 A.C

de unión al resto del sistema informático. Estas pastillas de plástico, con una multitud de patillas de conexión metálicas, reciben el nombre de chips.

La CPU se ocupa del control y el proceso de datos en las computadoras. Generalmente, la CPU es un microprocesador fabricado en un chip, un único trozo de silicio que contiene millones de componentes electrónicos. Es el “cerebro” de la computadora. Los componentes están conectados por un bus, que es una colección de alambres paralelos para transmitir direcciones, datos y señales de control. Los buses pueden ser externos a la CPU, cuando la conectan a la memoria y a los dispositivos de E/S, pero también internos.

16 | 76

Page 17: UNIDAD 1 A.C

Un microprocesador combinado con los módulos de memoria y de interconexión se llama microcomputador. La palabra micro se usa para indicar el pequeño tamaño físico de los componentes integrantes. La segunda parte de la palabra en microprocesador y microcomputador es lo que realmente los diferencia.

Procesador se usa para indicar aquella sección del sistema, la cual ejecuta las funciones básicas para realizar instrucciones y procesar datos de la manera especificada por el programa. Esta parte se llama usualmente el CPU. El término microcomputador se usa para indicar un sistema de computador de pequeño tamaño consistente de tres unidades básicas: CPU, memoria e interconexión de entrada-salida. El microprocesador se encapsula comúnmente en un CI y se llama pastilla de microprocesador. Un microcomputador se refiere, en la mayoría de los casos, a una interconexión con componentes LSI. Por otra parte, algunas pastillas microprocesadores incluyen dentro de la cápsula no solamente el CPU sino una parte de la memoria. Tal componente LSI se llama algunas veces microcomputador de una cápsula. En la siguiente figura se muestra los bloques del sistema de microcomputador.

1.2.1.1 Arquitecturas

El cambio más importante de los últimos años en diseño de las computadoras de los últimos años se dio durante los años 1980, con la aparición de la corriente de

17 | 76

Page 18: UNIDAD 1 A.C

diseño conocida como computadoras de conjunto reducido de instrucciones (RISC, por sus siglas en ingles).

La tendencia tradicional, representada por las Arquitecturas CISC (Complex Instruction Set Computing) se caracteriza por tener un número amplio de instrucciones y modos de direccionamiento. Se implementan instrucciones especiales que realizan funciones complejas, de manera que un programador puede encontrar con seguridad, una instrucción especial que realiza en hardware la función que el necesita. El número de registros del CPU es limitado, ya que las compuertas lógicas del circuito integrado se emplean para implementar las secuencias de control de estas instrucciones especiales. Los compiladores de lenguajes de alto nivel no hacían uso de las instrucciones especiales implementadas en los procesadores CISC, por lo que resultaba un desperdicio de recursos emplear las compuertas del circuito de esta forma.

Así surgió la escuela de diseño RISC (Reduced Instruction Set Computing) donde solo se cuenta con unas pocas instrucciones y modos de direccionamiento, pero se busca implementarlos de forma muy eficiente y que todas las instrucciones trabajen con todos los modos de direccionamiento. Además, se observó que una de las tareas que tomaban más tiempo en ejecutarse en lenguajes de alto nivel, era el pasar los parámetros a las subrutinas a través de la pila. Como la forma más rápida de hacer este paso es por medio de registros del CPU, se buscó dotarlo con un amplio número de registros, a través de los cuales se pueden pasar dichos parámetros.

1.2.1.1.1 Arquitecturas CISC

La microprogramación es una característica importante y esencial de casi todas las arquitecturas CISC, podríamos mencionar por ejemplo:

Intel 8086, 8088, 80286, 80386, 80486.

Motorola 68000, 68010, 68020, 68030, 6840.

La microprogramación significa que cada instrucción de máquina es interpretada por una microprograma localizada en una memoria en el circuito integrado del procesador. En la década de los sesentas la microprogramación, por sus características, era la técnica más apropiada para las tecnologías de memorias existentes en esa época y permitía desarrollar también procesadores con compatibilidad ascendente. En consecuencia, los procesadores se dotaron de poderosos conjuntos de instrucciones.

Las instrucciones compuestas son decodificadas internamente y ejecutadas con una serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren de varios ciclos reloj (al menos uno por microinstrucción).

18 | 76

Page 19: UNIDAD 1 A.C

Características CISC frente a RISC4

Tras el entusiasmo inicial por la máquina RISC, ha habido una creciente convicción de que los diseños RISC pueden sacar provecho de la inclusión de algunas características CISC y de que los diseños CISC pueden sacar provecho de la inclusión de algunas características RISC. Los resultados son que los diseños RISC son más recientes.

Una comparación interesante se muestra en la figura siguiente. La tabla lista varios procesadores y los compara según varias características. Para el objetivo de esta comparación, se considera típico de un RISC lo siguiente:

1. Un único tamaño de instrucción.2. Ese tamaño es típicamente 4 bytes.3. Un pequeño número de modos de direccionamiento de datos, típicamente

mayor que 5.4. No se usa direccionamiento indirecto que requiera efectuar un acceso a

memoria para conseguir la dirección de memoria de otro operando.5. No hay operaciones que combinen carga/almacenamiento con cálculos

aritméticos.6. No se direcciona más de un operando de memoria por instrucción.7. Las operaciones de carga/almacenamiento no soportan un alineamiento de

datos arbitrarios.8. Un número máximo de usos de la unidad de la gestión de memoria

(“memory managament unit”, MMU) de una dirección de dato en cada instrucción.

9. El número de bits de un campo designador de registro entero es de cinco o más. Esto quiere decir que, en un momento dado, se pueden referenciar explícitamente por lo menos 32 registros enteros.

10.El número de bits de un campo designador de registro de punto flotante es de cuatro o más. Esto quiere decir que por lo menos 16 registros de punto flotante se pueden referenciar en un momento dado.

4 Strallings, W. Organización y Arquitectura de Computadoras, pag 451 19 | 76

Page 20: UNIDAD 1 A.C

1.2.1.1.1 Arquitecturas RISC

Buscando aumentar la velocidad del procesamiento se descubrió en base a experimentos que, con una determinada arquitectura de base, la ejecución de programas compilados directamente con microinstrucciones y residentes en memoria externa al circuito integrado resultaban ser más eficientes, gracias a que el tiempo de acceso de las memorias se fue decrementando conforme se mejoraba su tecnología de encapsulado.

Debido a que se tiene un conjunto de instrucciones simplificado, éstas pueden implantar por hardware directamente en la CPU, lo cual elimina el microcódigo y la necesidad de decodificar instrucciones complejas.

En investigaciones hechas a mediados de la década de los setentas, con respecto a la frecuencia de utilización de una instrucción en un CISC y al tiempo para su ejecución se observó lo siguiente:

Alrededor del 20% de las instrucciones ocupa el 80% del tiempo total de ejecución de un programa.

Existen secuencias de instrucciones simples que obtienen el mismo resultado que secuencias complejas predeterminadas, pero requieren tiempos de ejecución más cortos.

Segmentación con instrucciones regulares5

La mayoría de las instrucciones son del tipo registro a registro, y un ciclo de instrucción tiene las dos siguientes fases:

I: Capacitación de instrucción. E: Ejecución. Realiza una operación de la ALU con registros como entrada

y salida.

Las operaciones de carga y almacenamiento requieren tres fases:

I: Capacitación de instrucción. E: Ejecución. Calcula una dirección de memoria. D: Memoria. Operación registro a memoria o memoria a registro.

5 Strallings, W. Organización y Arquitectura de Computadoras, p. 453 20 | 76

Page 21: UNIDAD 1 A.C

La figura anterior representa la temporización de una secuencia de instrucciones que no usan segmentación. Sin duda, se trata de un proceso dispendioso. La siguiente figura muestra un esquema de segmentación de dos vías, en el cual las fases I y E de dos instrucciones diferentes se pueden ejecutar simultáneamente. Este esquema ofrece el doble de velocidad de ejecución que un esquema serie.

La segmentación puede mejorarse permitiendo dos accesos a memoria fase. Esto produce la secuencia que se muestra en la siguiente figura. Ahora, hasta tres instrucciones pueden solaparse, y la mejora es como mucho un factor de tres. Las instrucciones de bifurcación hacen que la aceleración sea un poco menor de la máxima posible. Si una instrucción necesita un operando modificado por la instrucción precedente, se necesita un retardo. Esto puede ser llevado a cabo por un NOOP.

21 | 76

Page 22: UNIDAD 1 A.C

En la siguiente figura se muestra una tabla comparativa de estas arquitecturas.

1.2.1.2 Tipos

Intel6

En septiembre de 1969 una compañía japonesa, Busicom, se acercó a Intel para pedirle que fabricara 12 chips. El ingeniero de Intel asignado a este proyecto, Ted Hoff, examinó el plan y se percató de que podía poner una CPU de 4 bits de propósito general en un solo chip. Fue así como en 1970 nació la primera CPU en un solo chip, la 4004 de 2300 transistores.

Cuando Intel decidió que valdría la pena hacer el intento de usar la 4004 en otros proyectos, comenzó a trabajar en una nueva versión de ocho bits del chip, el 8008, introducido en 1972. Este diseño dio como resultado el 8080, una CPU pequeña, de propósito general, introducido en 1974.

En 1978 llegó el 8086, una verdadera CPU de 16 bits en un solo chip. Al 8086 siguió el 8088, que tenía la misma arquitectura que el 8086 y ejecutaba los mismos programas pero tenía un bus de 8 bits en lugar de uno de 16 bits.

Ni el 8088 ni el 8086 podían direccionar más de un megabyte de memoria. Para principios de los ochentas esto se convirtió en un problema cada vez más grave, por lo que Intel diseñó el 80286, una versión del 8086 compatible hacia arriba.

6 Tanenbaum, AS. Organización de computadoras un enfoque estructurado, pag. 29

22 | 76

Page 23: UNIDAD 1 A.C

El siguiente paso lógico era una verdadera CPU de 32 bits en un chip, el 80386, que salió al mercado en 1985. Cuatro años más tarde salió el 80486. Éste era básicamente en una versión más rápida del 80386 que además tenía una unidad de punto flotante y 8KB de memoria caché en el chip.

En 1993 Intel introdujo el Pentium, tenía dos filas de procesamiento, lo que le ayudaba a ser dos veces más rápido que el 80486. Apareció la siguiente generación con el nombre de Pentium Pro, en lugar de tener dos o más filas de procesamiento, éste tenía una organización interna muy distinta y podía ejecutar hasta cinco instrucciones a la vez. Incorpora una memoria caché de dos niveles. El mismo chip procesador tenía 8KB de memoria para retener las instrucciones de uso común, y 8 KB de memoria para retener datos de uso común.

El siguiente procesador Intel fue el Pentium II, que era básicamente un Pentium Pro con la adición de extensiones multimedia especiales (llamadas MMX).

Los primeros integrantes de la familia Intel se muestran en la siguiente figura7.

7 Tanenbaum, AS. Organización de computadoras un enfoque estructurado, pag. 31 23 | 76

Page 24: UNIDAD 1 A.C

En la siguiente tabla se muestran los procesadores creados por AMD e Intel.

24 | 76

Page 25: UNIDAD 1 A.C

25 | 76

Page 26: UNIDAD 1 A.C

1.2.1.3 Características

La velocidad de la CPU se mide en MIPS (millones de instrucciones por segundo).

El tamaño de la palabra es el número de bits que la CPU puede procesar a la vez.

Un procesador de 32 bits puede manipular 32 bits simultáneamente.La CPU es un componente computacional completo, que se fabrica en un solo chip.

Cada operación dentro de la CPU toma lugar en un pulso de reloj. La velocidad del reloj se mide en megahertz (MHz) o millones de tics por segundo.Intel es una de los fabricantes más grandes de CPU.

Un ciclo de reloj, es el tiempo más corto durante el cual una CPU puede procesar una operación: calcular, comparar etc. La cantidad de ciclo que el reloj interno de una CPU puede realizar en un segundo es frecuentemente medida en Hertz. Un megahertz (MHz) es un millón de ciclos por segundo.

Las CPU están disponibles en las siguientes velocidades: 166mhz, 233mhz, 450mhz, 733mhz, 850mhz y 1000mhz (1024mhz = 1GHz). 

Actualmente están disponibles procesadores con velocidades de: 2.26GHz, 2.8GHz, 3.0GHz, 3.2GHz.

La CPU ha de cumplir dos características bien definidas:

I. Ser capaz de reconocer y ejecutar una serie de instrucciones elementales (programa) en base a las cuales se puede realizar cualquier proceso de datos deseado, por complejo que sea.

II. Tener separados dos estados diferentes. En una primera fase ha de poder recibir y memorizar las instrucciones que configuran el proceso pedido (introducción del programa) y en segunda fase debe ejecutar en secuencia las instrucciones recibidas (ejecución del programa). Al realizar esta ejecución se leerán los datos que se necesiten a través de un dispositivo de entrada de datos en el momento en que sean requeridos, realizando las operaciones que forman el proceso hasta la

26 | 76

Page 27: UNIDAD 1 A.C

obtención de los resultados, los cuales serán enviados al usuario a través de un dispositivo de salida.

Además las características se pueden clasificar en lógicas y físicas.

Lógicas:

1-. Longitud de la palabra procesada, esto es, número de bits procesados en el mismo ciclo de reloj.

2.- Capacidad de acceso a la memoria o la cantidad de memoria que puede manejar.

Físicas:

1.-Retraso de propagación de la señal eléctrica: representa el tiempo que tarda la señal en tomar uno u otro valor dentro del circuito.

2.- Disipación de potencia: Este valor indica el calor que genera el procesador al permanecer operativo.

1.2.1.4 Funcionamiento

La CPU8 (Unidad Central de Procesamiento) es el lugar en donde se manipulan los datos, se conoce como el cerebro de la computadora, la CPU contiene un pequeño chip llamado microprocesador. Cada CPU está formada por al menos de dos partes básicas: la unidad de control y la unidad lógica-aritmética.

Unidad de control

La unidad de control es el centro lógico de la computadora ya que los recursos de una computadora son administrados en la unidad de control, es esta unidad es la que se encarga de dirigir el flujo de datos.

Las instrucciones de la CPU se encuentran incorporadas en la unidad de control, estas instrucciones o conjunto de instrucciones enumeran todas las operaciones que una CPU puede realizar. Cada instrucción es expresada en microcódigo.

Antes de que un programa sea ejecutado, cada comando debe desglosarse en instrucciones que correspondan a las que están en las instrucciones de la CPU. Al momento de ejecutar el programa, la CPU lleva a cabo las instrucciones en orden convirtiéndolas en micro código. A pesar de la complejidad que resulta del proceso, la computadora puede realizar este proceso a una velocidad increíble.

Cuando una CPU es desarrollada, el conjunto de instrucciones tiene los mismos comandos que su predecesora, aparte de incluirle algunos nuevos. Esto permite que el software escrito para una CPU trabaje con computadoras con procesadores 8 Miles, J. Murdocca VPH. Principios de arquitecturas de computadoras p. 104

27 | 76

Page 28: UNIDAD 1 A.C

más recientes, esta estrategia es llamada Compatibilidad ascendente. Esta característica permite ahorrar a los consumidores comprar un sistema nuevo cada vez que una parte del sistema es actualizada.

Se le conoce compatibilidad decreciente o inversa, cuando un dispositivo del hardware o pieza del software puede interactuar con el mismo equipo y software que su predecesor.

Unidad lógica-aritmética (ALU)9

Los datos almacenados en una computadora son de tipo numérico, es por ello que gran parte del procesamiento involucra la comparación de números o la realización de operaciones matemáticas. Dentro de la unidad lógica aritmética de la computadora se realizan sólo dos tipos de operaciones: operaciones aritméticas y operaciones lógicas.

En el cuadro siguiente se muestra las operaciones realizadas por la unidad lógica aritmética.

Operaciones aritméticas (operaciones matemáticas)

Operaciones lógicas (comparaciones de números)

+ Suma = , ≠ Igual a, no igual a - Resta > , > Mayor que, no mayor que × Multiplicación < , < Menor que, no menor que ÷ División > , > Mayor que o igual a, no mayor

que ni igual a ^ Elevar a una potencia < , < Menor que o igual a, no menor

que ni igual a

La unidad lógica aritmética incluye un grupo de registros, ubicaciones de alta velocidad, las cuales se usan para conservar los datos que se procesan en ese momento.

Para comprender la organización de la CPU, consideremos sus objetivos, las cosas que debe hacer:

- Captar instrucciones: la CPU debe leer instrucciones de la memoria.- Interpretar instrucciones: la instrucción debe decodificarse para determinar

qué acción es necesaria.- Captar datos: la ejecución de una instrucción puede exigir leer datos de la

memoria o de un módulo de E/S.- Procesar datos: la ejecución de una instrucción puede exigir llevar a cabo

alguna operación aritmética o lógica con los datos.- Escribir datos: los resultados de una ejecución pueden exigir escribir datos

en la memoria o en un módulo de E/S.

9 Peter Norton, Introducción a la computación, p. 46. 28 | 76

Page 29: UNIDAD 1 A.C

Para poder hacer esto, la CPU necesita almacenar algunos datos temporalmente. Debe recordar la posición de última instrucción de forma que sepa dónde ir a buscar la siguiente. Necesita almacenar instrucciones y datos temporalmente mientras una instrucción está siendo ejecutada. En otras palabras, la CPU necesita una pequeña memoria interna.

En la figura anterior se observa una visión simplificada de la CPU, que indica su conexión con el resto del sistema a través del bus de sistema. Una interfaz similar sería necesaria para cualquiera de las estructuras de interconexión. Recordando que los principales componentes de la CPU son unidad aritmética lógica y unidad de control. La ALU lleva acabo la verdadera computación o procesamiento de datos. La unidad de control controla las transferencias de datos hacia dentro y hacia afuera de la CPU y el funcionamiento de la ALU. Además la figura muestra una memoria interna mínima, que consta de un conjunto de lugares de almacenamiento, llamados registros.

En la siguiente figura se presenta una visión un poco más detallada de la CPU. Se indican los caminos de transferencia de datos y de control lógico, que incluye un elemento con el rotulo bus interno de la CPU. Este elemento es necesario para transferir datos entre los diversos registros y la ALU, ya que está en realidad solo opera con los datos de la memoria interna de la CPU. La figura muestra también

29 | 76

Page 30: UNIDAD 1 A.C

los elementos básicos típicos de la ALU. Observe la similitud entre la estructura interna del computador en su totalidad y la estructura interna de la CPU. En ambos casos hay una pequeña colección de elementos principales (computador: CPU, E/S, memoria; CPU: unidad de control, ALU, registros) conectados por caminos de datos.

REGISTROS

Dentro de la CPU hay un conjunto de registros que funciona como nivel de la jerarquía de memoria por encima de la memoria principal y de la cache. Los registros de la CPU son de dos tipos:

- Registros visibles al usuario: Permiten al programador de lenguaje maquina o ensamblador minimizar las referencias a memoria principal optimizando el uso de registros.

30 | 76

Page 31: UNIDAD 1 A.C

- Registros de control y de estado: son utilizados por la unidad de control para controlar el funcionamiento de la CPU y por programas privilegiados del sistema operativo para controlar la ejecución de programas.

Registros visibles al usuario

Un registro visible al usuario es aquel que puede ser referenciado por medio de lenguaje máquina que ejecuta la CP. Prácticamente todos los diseños contemporáneos de CPUs están provistos de varios registros visibles al usuario, en oposición a disponer de un único acumulador. Podemos clasificarlo de las siguientes categorías:

- Uso general- Datos - Direcciones - Códigos de acción

Los registros de uso general pueden ser asignados por el programador a diversas funciones. A vece, su uso dentro del repertorio de instrucciones es ortogonal a la operación. Es decir, cualquier registro de uso general puede contener el operando para cualquier código de operación. Esto proporciona una utilización de registros de auténtico uso general. Con frecuencia, sin embargo, existen restricciones. Por ejemplo, puede haber registros específicos para operaciones en punto flotante.

En algunos casos los registros de uso general pueden ser utilizados para funciones de direccionamiento. En otros casos hay una separación clara o parcial entre registros de datos y registros de direcciones. Los registros de datos pueden ser usados únicamente para contener datos y no se pueden emplear en el cálculo de una dirección de operando. Los registros de dirección pueden ser en si registros de uso más o menos general, o pueden estar dedicados a un modo de direccionamiento particular.

Registros de control y de estado

Hay diversos registros de la CPU que se pueden emplear para controlar su funcionamiento. La mayor parte de las maquinas, no son visibles al usuario. Algunos de ellos pueden ser visibles a instrucciones maquina ejecutadas en un modo de control o de sistema operativo.

Naturalmente, maquinas diferentes tendrán diferentes organizaciones de registros y usaran distinta terminología. Se enumera aquí una lista razonablemente completa de tipos de registros, con una breve descripción.

Son esenciales cuatro registros para la ejecución de una instrucción:

- Contador de programa: contiene la dirección de la instrucción a captar.

31 | 76

Page 32: UNIDAD 1 A.C

- Registro de instrucción: contiene la instrucción captada más recientemente.- Registro de dirección de memoria: contiene la dirección de una posición de

memoria.- Registro intermedio de memoria: contiene la palabra de datos a escribir en

memoria o la palabra leída más recientemente.

Antes de escribir un programa o de investigar una instrucción, es necesario conocer la configuración interna del microprocesador. A continuación se analiza la arquitectura interna de los microprocesadores del 8086 al Pentium 4, la cual está visible para los programas.

32 | 76

Page 33: UNIDAD 1 A.C

Aclaraciones: 1.- Los registros sombreados sólo existen en los microprocesadores del 80386 hasta el Pentium 4. 2.- Los registros FS y GS no tienen nombres especiales.

De propósito general

Algunos registros son de propósito general (o registros multipropósito), mientras que otros tienen propósitos especiales. A continuación se describen los registros multipropósito.

60 Registro Características33 EAX (Acumulador) Se define como un registro de 32 bits

(EAX), como un registro de 16 bits (AX) o como uno de dos registros de 8 bits (AH y AL). Si se direcciona un registro de 8 o de 16 bits, sólo cambia esa porción del registro de 32 bits sin afectar a los bits restantes. El acumulador se emplea para instrucciones como multiplicación, división y algunas de las instrucciones de ajuste. En procesadores 80386 y superiores, el registro EAX puede almacenar también la dirección de desplazamiento de una posición e en el sistema de memoria.

EBX (índice base) Éste puede direccionarse como EBX, BX, BH o BL. Algunas veces guarda

33 | 76

Page 34: UNIDAD 1 A.C

la dirección de desplazamiento de una posición en el sistema de memoria, en todas las versiones del microprocesador. También permite direccionar datos de la memoria.

ECX (Conteo) Almacena la cuenta de varias instrucciones. Además puede guardar la dirección de desplazamiento de datos en la memoria. Las instrucciones utilizadas en un conteo son las instrucciones de cadena repetida (REP/REPE/REPNE); y las instrucciones desplazamiento (shift), rotación (rótate) y LOOP/LOOPD.

EDX (Datos) Guarda una parte del resultado de una multiplicación, o parte del dividendo antes de una división. En el 80386 y superiores, este registro también puede direccionar datos de la memoria.

EBP (apuntador de la base) Apunta a una posición de memoria en todas las versiones del microprocesador para las transferencias de datos de memoria. Este registro se direcciona como BP o EBP.

61 EDI (índice de destino Por lo general, direcciona datos de destino de cadenas para las instrucciones de cadenas. También funciona como un registro de propósito general de 32 bits (EDI) o de 16 bits (DI).

ESI (índice de origen) Se utiliza como ESI o SI. Direcciona datos de cadena de origen para las instrucciones de cadenas. Se direcciona como SI al utilizarlo como registro de 16 bits; se direcciona como ESI al utilizarlo como registro de 32 bits.

De segmento de memoria

34 | 76

Page 35: UNIDAD 1 A.C

Estos registros adicionales generan direcciones de memoria cuando se combinan con otros registros en el microprocesador. A continuación se en lista estos registros de segmentos.

Registro Características CS (código) Es una sección de la memoria que

almacena el código (procedimientos y programas) utilizado por el microprocesador. Así mismo define la dirección inicial de la sección de memoria que guarda el código. En la operación en modo real, define el inicio de una sección de 64 Kbytes de memoria. El segmento de código está limitado a 64 Kbytes en los microprocesadores del 8088 y al 80286, y a 4 Gbytes en los microprocesadores 80386 y superiores cuando éstos operan en modo protegido.

DS (Datos) Es una sección de memoria que contiene la mayor parte de los datos utilizados por un programa. Se accede a los datos en el segmento de datos mediante una dirección de desplazamiento o el contenido de otros registros que guardan la dirección de desplazamiento. La longitud está limitada a 64 Kbytes en los microprocesadores del 8086 al 80286, y a 4 Gbytes en los microprocesadores 80386 y superiores.

ES (extra) Es un segmento de datos adicional utilizado por algunas de las instrucciones de cadena para guardar datos de destino.

SS (pila) Define el área de memoria utilizada para la pila. El punto de entrada de la pila se determina mediante los registros segmento de pila y apuntador de pila. El registro BP también direcciona datos dentro del segmento de pila.

FS y GS Son registros de segmento suplementario, disponibles en los

35 | 76

Page 36: UNIDAD 1 A.C

microprocesadores del 80386 al Pentium 4 para que los programas puedan acceder a dos segmentos de memoria adicionales. Windows utiliza estos segmentos para operaciones internas, no existe una definición disponible de su uso.

De instrucciones10

EIP (apuntador de instrucciones). EIP direcciona la siguiente instrucción en una sección de memoria definida como segmento de código. Este registro es IP (16 bits) cuando el microprocesador opera en modo real y EIP (32 bits) cuando el 80386 y superiores operan en modo protegido. Los procesadores 8086, 8088 y 80286 no contienen un registro EIP, por lo que sólo el 80286 y superiores operan en modo protegido. El apuntador de instrucciones, que apunta a la siguiente instrucción en un programa, se utiliza por el microprocesador para encontrar la siguiente instrucción secuencial en un programa ubicado dentro del segmento de código. El apuntador de instrucciones puede modificarse mediante un salto (jump) o una instrucción de llamada (call).

1.2.2 Memoria

La memoria de una computadora consiste en un conjunto de registros numerados (direccionados) en forma consecutiva, cada uno de los cuales normalmente almacena un byte de información. Un byte es un conjunto de ocho bits. Cada registro tiene una dirección, a la que se suele designar como locación de memoria. La denominación nibble se refiere a un conjunto de cuatro bits. Normalmente, hay acuerdo acerca de los significados de los términos “bit”, “byte” y ”nibble”, pero no así sobre el concepto de palabra, el que depende de la arquitectura particular de cada procesador.

1.2.2.1 Conceptos básicos del manejo de la memoria11

Un concepto relacionado en la unidad de transferencia. Para memorias internas, la unidad de transferencia es igual al número de líneas de entrada/salida de datos del módulo de memoria. A menudo es igual a la longitud de palabra, pero puede no serlo. Para aclararlo consideremos tres conceptos relacionados con la memoria interna:

- Palabra: es la unidad “natural” de organización de la memoria. El tamaño de la palabra suele coincidir con el número de bits utilizados para representar números y con la longitud de las instrucciones.

10 Ibídem., p. 52. 11 Organización y Arquitectura de Computadoras. 4ta Edición p.99

36 | 76

Page 37: UNIDAD 1 A.C

- Unidades direccionables: en muchos sistemas la unidad direccionable es la palabra.

- Unidad de transferencia: para la memoria principal es el número de bits que se leen o escriben en memoria a la vez. No tiene que coincidir con una palabra o con una unidad direccionable.

Una de las diferencias más acusadas entre tipos de memorias es el método de acceso. Se pueden distinguir cuatro tipos:

- Acceso secuencial: la memoria se organiza en unidades de datos llamadas registros. El acceso debe realizarse con una secuencia lineal específica. Se hace uso de la información de direccionamiento almacenada para separar los registros y ayudar en el proceso de recuperación de datos. Se utiliza un mecanismo de lectura/escritura compartida que debe ir trasladándose desde su posición actual ala deseada, pasando y obviando cada registro intermedio. Así pues, el tiempo necesario para acceder a un registro dado es muy variable.

- Acceso directo: como en el caso de acceso secuencial, el directo tiene asociado un mecanismo de lectura/escritura. Sin embargo, los bloques individuales o registros tienen una dirección única basada en su dirección física. El acceso se lleva a cabo mediante un acceso directo a una vecindad dada, seguido de una búsqueda secuencial, bien contando, o esperando hasta alcanzar la posición final.

- Acceso aleatorio (random): cada posición direccionable de memoria tiene un único mecanismo de acceso cableado físicamente. El tiempo de acceder a una posición dada es constante e independiente de la secuencia de accesos previos. Por tanto, cualquier posición puede seleccionarse “aleatoriamente” y ser direccionada y accedida directamente.

- Asociativa: es una memoria del tipo de acceso aleatorio que permite hacer una comparación de ciertas posiciones de bits dentro de una palabra buscando que coincidan con unos valores dados, y hacer esto para todas las palabras simultáneamente. Una palabra es por tanto recuperada basándose un una porción de su contenido en lugar de su dirección.

- Tiempo de acceso: para memorias de acceso aleatorio es el tiempo que tarda en realizarse una operación de escritura o de lectura, es decir, el tiempo que transcurre desde el instante en el que se presenta una dirección a la memoria hasta que el dato, o ha sido memorizado, o está disponible para su uso.

- Tiempo de ciclo de memoria: este concepto se aplica primordialmente a las memorias de acceso aleatorio y consiste en el tiempo de acceso y algún tiempo más que se requiere antes de que pueda iniciarse un segundo acceso a memoria. Este tiempo adicional puede que sea necesario para que finalicen las transiciones en las líneas de señal o para regenerar los datos en el caso de lecturas destructivas.

37 | 76

Page 38: UNIDAD 1 A.C

- Velocidad de transferencia: es la velocidad a la que se pueden transferir datos a, o desde, una unidad de memoria. Para memorias de acceso aleatorio coinciden con el inverso del tiempo de ciclo. Para memorias de acceso aleatorio coinciden con el inverso del tiempo de ciclo. Para otras memorias se utiliza la siguiente relación:

TN= TA + N/R

Donde:

TN=Tiempo medio de escritura o de lectura de N bits

TA=Tiempo de acceso medio

N= Numero de bits

R=Velocidad de transferencia, en bits por segundo (bps)

1.2.2.2 Memoria principal semiconductora.12

En computadores antiguos, la forma más común de almacenamiento de acceso aleatorio para a memora principal consistía en una matriz de pequeños anillos ferromagnéticos denominados núcleos. Es por esto que la memoria principal recibía a menudo el nombre de núcleo, un término que perdura en la actualidad. El advenimiento de la microelectrónica y sus ventajas, acabo con las memorias de núcleos. Hoy en día es casi universal el uso de memorias semiconductoras para la memoria principal.

1.2.2.2.1 Tipos de memorias semiconductoras de acceso aleatorio

Todos los tipos de memorias que se exploran en esta sección son de acceso aleatorio. Es decir, las palabras individuales de la memoria son accedidas directamente mediante lógica de direccionamiento cableada interna.

La siguiente tabla lista los principales tipos de memoria semiconductoras. La más común es la denominada Memoria de Acceso Aleatorio (RAM, “Random Access Menor”). Una característica distintiva de las RAMs es que es posible tanto leer datos como escribir rápidamente nuevos datos en ellas. Tanto lectura como la escritura se ejecutan mediante señales eléctricas.

12 Organización y Arquitectura de Computadoras. 4ta Edición p.107-108 38 | 76

Page 39: UNIDAD 1 A.C

La otra característica distintiva de una RAM es que es volátil. Debe estar continuamente alimentada, si se interrumpe la alimentación se pierden los datos. Así pues, las RAMs pueden utilizarse solo como almacenamiento temporal.

Las tecnologías de las RAMs se dividen en dos variantes: estáticas y dinámicas. Una RAM dinámica está hecha con celdas que almacenan los datos como cargas en condensadores. La presencia o ausencia de cargas en un condensador se interpreta como el 1 o el 0 binarios. Ya que los condensadores tienen una tendencia natural a descargarse, las RAMs dinámicas requieren refrescos periódicos para mantener memorizados los datos. En una RAM estática los valores binarios se almacenan utilizando configuraciones de puertas formando biestables (“flip-flop”).

Tanto las RAMs estáticas como las dinámicas son volátiles. Una celda de memoria RAM dinámica es más simple que una estática y por tanto más pequeña. Por tanto, las RAM dinámicas son más densas (celdas más pequeñas = más celdas por unidad de superficie) y más baratas que las correspondientes RAMs estáticas. Por otra parte, una RAM dinámica requiere de circuitería para el refresco. En memorias grandes, el coste fijo de la circuitería se ve más que compensado por el menor conste de las celdas RAM dinámicas. Así pues, las RAM dinámicas tienden a ser las preferidas para memorias grandes. Un último detalle es que las RAMs estáticas son generalmente algo más rápidas que las dinámicas.

En claro contraste con las RAMs están las memorias se solo lecturas (ROM, “Read-Only Menor”). Como su nombre sugiere, una ROM contiene un patrón permanente de datos que no puede alterarse. Aunque es posibles leer de una ROM, no se puede escribir nuevos datos en ella. Otras aplicaciones son:

- Subrutinas de biblioteca para funciones de uso frecuente - Programas del sistema

39 | 76

Page 40: UNIDAD 1 A.C

- Tablas de funciones

Cuando se requiere un tamaño modesto, la ventaja de una ROM es que el programa o los datos estarán permanentemente en memoria principal y nunca será necesario cargarlos desde un dispositivo de memoria secundaria.

Una ROM se construye como cualquier otro chip de circuito integrado, con los datos cableados en el chip durante el proceso de fabricación. Esto presenta dos problemas:

- La etapa de inserción de datos implica unos costes fijos relativamente grandes, tanto si se va a fabricar una o miles de copias de una misma ROM.

- No se permite un fallo. Si uno de los bits es erróneo, debe desecharse la tirada completa de ROMs.

Cuando se necesitan solo una pocas ROMs con un contenido particular, una alternativa más barata es la ROM programable (PROM). Al igual que las ROMs, las PROMs son no volátiles y pueden grabarse solo una vez. Para la PROM, el proceso de escritura se lleva a cabo eléctricamente y pueden realizarlo el suministrador o el cliente con posterioridad a la fabricación del chip original. Se requiere un equipo especial para el proceso de escritura o “programación”. Las PROMs proporcionan flexibilidad y comodidad.

Otra variante de memoria de solo lectura es la memoria de “sobre todo lectura”, que es útil para aplicaciones en la que las operaciones de lectura son bastante más frecuentes que las de escritura, pero para las que se requiere un almacenamiento no volátil. Hay tres formas comunes de memorias de sobre todo lectura: EPROM, EEPROM, Y memorias “FLASH”.

La memoria de solo lectura programable y borrable ópticamente (EPROM, “Erasable Programmable Read-Only Menor”) se lee y escribe eléctricamente como la PROM. Sin embargo, antes de la operación de escritura, todas las celdas de almacenamiento deben primeramente borrarse a la vez, mediante exposición del chip encapsulado a radiación ultravioleta. Este proceso de borrado puede realizarse repetidas veces; cada borrado completo puede durar hasta 20 minutos. Así pues, las EPROM pueden modificarse múltiples veces y, al igual que las ROM y las PROM, retiene su contenido, en teoría indefinidamente. Para una capacidad similar, una EPROM es más cara que una PROM, pero tiene como ventaja adicional la posibilidad de actualizar múltiples veces su contenido.

La forma más nueva de memoria semiconductora es la memoria flash (denominada así por la velocidad con la que puede reprogramarse). Al igual que las EEPROM, las flash utilizan una tecnología de borrado eléctrico. Una memoria flash puede borrarse entera en uno o unos cuantos segundos, mucho más rápido que las EPROM. Además, es posibles borrar solo bloques concretos de memoria

40 | 76

Page 41: UNIDAD 1 A.C

en lugar de todo el chip. Sin embargo, las memorias flash no permiten borrar a nivel byte. Al igual que las EPROM, las flash utilizan solo un transistor por bit, consiguiéndose las altas densidades (comparadas con las EEPROMs) de las EPROMs.

1.2.2.2.2 Organización13

El elemento básico de una memoria semiconductora es la celda de memoria. Aunque se utilizan diversas tecnologías electrónicas, todas las celdas de memoria comparten ciertas propiedades:

- Presentan dos estados estables (o semi-estables), que pueden emplearse para representar el 1 y el 0 binarios.

- Pueden escribirse en ellas (al menos una vez) para fijar su contenido.- Pueden leerse para detectar su estado.

La siguiente figura describe el funcionamiento de una celda de memoria. Lo más común es que la celda tenga tres terminales para transportar señales eléctricas. El terminal de selección, como su nombre indica, selecciona la celda para la operación de escritura o de lectura. El terminal de control indica el tipo de operación. Para la escritura, el tercer terminal se utiliza como salida del estado de la celda.

1.2.2.2.3 Lógica del chip

Como otros circuitos integrados, las memorias semiconductoras vienen en chips encapsulados. Cada chip contiene un matriz de celdas de memoria. Con la tecnología actual, los chips de 4-Mbits son comunes, y se empiezan a utilizar los de 16-Mbits.

En toda la jerarquía de memoria se vio que existen compromisos de velocidad, capacidad y coste. Estos compromisos existen también cuando consideramos la

13 Organización y Arquitectura de Computadoras. 4ta Edición p.110 41 | 76

Page 42: UNIDAD 1 A.C

organización de las celdas de memoria y del resto de funciones lógicas de un chip de memoria. Para las memorias semiconductoras, unos de los aspectos fundamentales de diseño es el número de bits de datos que pueden ser leídos/escritos a la vez. En un extremo esta la estructura en la que la disposición física de las celdas de la matriz es la misma que la disposición física de las celdas de la matriz es la misma que la disposición lógica (tal y como la percibe el procesador) de las palabras de memoria. La matriz está organizada en W palabras de B bits cada una. Por ejemplo, un chip de 16-Mbits podría estar estructurado en 1-Mpalabras de 16 bits. En el otro extremo esta la estructura denominada un bit-por-chip, en la que los datos se escriben/leen por bits. A continuación describimos la estructura de un chip de memoria DRAM; la estructura de una ROM integrada es similar, aunque más sencilla.

1.2.2.3 Memoria Cache 14

El propósito de la memoria chache es aproximar la velocidad de la memoria a las de aquellas más rápidas disponibles, posibilitando al mismo tiempo un tamaño grande de memoria al precio de memorias semiconductoras menos costosas. El concepto se ilustra en la siguiente figura. Hay una memoria principal relativamente grande y más lenta, junto con una memoria cache más pequeña y rápida. La cache contiene una copia de partes de la memoria principal. Cuando la CPU intenta leer una palabra de memoria, se hace una comprobación para determinar si la palabra está en la cache. Si es así, se entrega dicha palabra a la CPU. Si no, un bloque de memoria principal, consistente en un cierto número de palabras, se transfiere a la cache, y después la palabra es entregada a la CPU. Debido al fenómeno de localidad de las referencias, cuando un bloque de datos es capturado por la cache para satisfacer una referencia a memoria simple, probable que se haga referencias futuras a otras palabras del mismo bloque.

14 Organización y Arquitectura de Computadoras. 4ta Edición p.99 42 | 76

Page 43: UNIDAD 1 A.C

La figura que se observa abajo describe la estructura de un sistema de memoria cache/principal. La memoria principal consta de hasta 2n palabras direccionables, teniendo cada palabra una única dirección de n bits. Esta memoria la consideramos dividida en un numero de bloques de longitud fija, de K palabras por bloque. Es decir, hay M=2n/K bloques. La cache consta de C líneas de K palabras cada una, y el número de líneas de la cache. Ya que hay más bloques que líneas, una línea dada no puede dedicarse univoca y permanentemente a un bloque. Por consiguiente, cada línea incluye una etiqueta que identifica que bloque particular está siendo almacenado. La etiqueta es usualmente una oportunidad de la dirección de memoria principal.

43 | 76

Page 44: UNIDAD 1 A.C

1.2.2.3.1 Elementos de diseño de la Cache

Aunque hay muy diversas implementaciones de cache, existen unos cuantos criterios básicos de diseño que sirven para clasificar y diferenciar entre arquitecturas de cache.

Tamaño de cache

Cuanto más grande es, mayor es el número de puertas implicadas en direccionar las cache. El resultado es que caches grandes tienden a ser ligeramente más lentas que las pequeñas. El tamaño de cache esta también limitado por las superficies disponibles de chip y de tarjeta.

Función de correspondencia

Ya que hay menos líneas de cache que bloques de memoria principal, se necesita un algoritmo que haga corresponder bloques de memoria principal a líneas de cache. Además, se requiere algún medio de determinar que bloque de memoria principal ocupa actualmente una línea dada de cache.

44 | 76

Page 45: UNIDAD 1 A.C

Correspondencia Directa

La técnica más simple consiste en hacer corresponder cada bloque de memoria principal a solo una línea posible de cache.

Correspondencia Asociativa

La correspondencia asociativa supera la desventaja de la directa permitiendo que cada bloque de memoria principal pueda cargarse en cualquier línea de la cache. En este caso, la lógica de control de la cache interpreta una dirección de memoria simplemente como una etiqueta y un campo de palabra.

Correspondencia Asociativa por Conjuntos

Es una solución de compromiso que recoge lo positivo de las correspondencias directas y asociativas, sin presentar sus desventajas.

Algoritmos de sustitución

Cuando se introduce un nuevo bloque en la cache, debe sustituirse uno de los bloques existentes. Para el caso de correspondencia directa, solo hay una posible línea para cada bloque particular y no hay elección posible. Para las técnicas asociativas se requieren algoritmos de sustitución. Para conseguir alta velocidad, tales algoritmos deben implementarse en hardware y cuatro de los más comunes son:

- utilizado menos recientemente (LRU, “Least-Recently Used”)- primero en entrar – primero en salir (FIFO, “First-In-First-Out”)- utlizado menos frecuentemente (LFU, “Least-Frequently Used”)- escoger una línea al azar (Aleatoria)

Política de escritura

Antes de que pueda ser reemplazado un bloque que esta en la cache, es necesario considerar si ha sido o no alterado en cache pero no en memoria principal. Si no lo ha sido, puede escribirse sobre el bloque antiguo de cache. Si ha sido modificado, esto significa que se ha realizado al menos una operación de escritura sobre una palabra de la línea correspondiente de la cache, y la memoria principal debe actualizarse de acuerdo con ello.

1.2.3 Manejo de la Entrada/Salida

Un computador no sirve de nada sin algún medio para realizar las entradas y las salidas. Las operaciones de E/S se realizan a través de una amplia gama de dispositivos que proporcionan una forma de intercambiar datos entre el exterior y el computador. Un dispositivo externo se conecta al computador mediante un enlace a un módulo de E/S (se aprecia en la siguiente figura). El enlace se utiliza

45 | 76

Page 46: UNIDAD 1 A.C

para intercambiar señales de control, estado, y datos entre el módulo de E/S y el dispositivo externo. Un dispositivo externo conectado a un módulo de E/S frecuentemente se denomina dispositivo periférico o, simplemente periférico.

En sentido amplio, los dispositivos externos se pueden clasificar en tres categorías:

- De interacción con humanos: permiten la comunicación con el usuario del computador.

- De interacción con máquinas: permiten la comunicación con elementos del equipo.

- De comunicación: permiten la comunicación con dispositivos remotos.

La lógica de control asociada el dispositivo controla su operación en respuesta a las indicaciones del módulo de E/S. El transductor convierte las señales eléctricas asociadas al dato a otra forma de energía en el caso de una salida y viceversa en el caso de una entrada. Usualmente, existe un buffer asociado al transductor para almacenar temporalmente el dato que se está transfiriendo entre módulos de E/S y el exterior; es común un tamaño de buffer de 8 a 16 bit.

1.2.3.1 Módulos de Entrada/Salida

Un módulo de E/S es el elemento del computador responsable del control de uno o más dispositivos externos, y del intercambio de datos entre esos dispositivos y la

46 | 76

Page 47: UNIDAD 1 A.C

memoria principal y/o los registros de la CPU. Así, el módulo de E/S debe tener una interfaz interna al computador y una interfaz externa al computador (con el dispositivo).

Las principales funciones o requisitos de un módulo de E/S se encuentran dentro de las siguientes categorías:

- Control y temporización- Comunicación con la CPU- Comunicación con los dispositivos - Almacenamiento temporal de datos- Detección de errores

El control de la transferencia de datos desde un dispositivo externo a la CPU podría implicar la siguiente secuencia de pasos:

1. La CPU interroga al módulo de E/S para comprobar el estado del dispositivo conectado al mismo.

2. El módulo de E/S devuelve el estado del dispositivo.3. Si el dispositivo está operativo y preparado para transmitir, la CPU solicita

la transferencia del dato mediante una orden al módulo E/S.4. El módulo de E/S obtiene un dato del dispositivo externo.5. Los datos se transfiere desde el módulo de E/S a la CPU.

Por otra parte, el módulo de E/S debe ser capaz de comunicarse con el dispositivo, Esta comunicación implica intercambiar órdenes, información del estado, y datos. Una tarea esencial para un módulo de E/S es el almacenamiento temporal de datos (data buffering). Un módulo de E/S a menudo es responsable de la detección de errores y de informar de estos errores a la CPU.

1.2.3.2 Entrada/Salida Programada

Son posibles tres técnicas para las operaciones de E/S. Con la E/S programada, los datos se intercambian entre la CPU y el módulo de E/S. La CPU ejecuta un programa que controla directamente la operación de E/S, incluyendo la comprobación del estado del dispositivo, el envió de una orden de lectura o escritura, y la transferencia del dato. Cuando la CPU envía una orden al módulo de E/S, debe esperar hasta que la operación de E/S concluya. Si la CPU es más rápida que el módulo de E/S, este es un tiempo que la CPU desperdicia. Con la E/S mediante interrupciones, la CPU proporciona la orden de E/S, continua ejecutando otras instrucciones, y en interrumpida por el módulo de E/S cuando este ha terminado su trabajo. Tanto con E/S programada como con interrupciones, la CPU es la responsable de extraer los datos de la memoria principal en una salida y de almacenar los datos en la memoria principal en una entrada. La alternativa se conoce como acceso directo a memoria (DMA). En este caso, el

47 | 76

Page 48: UNIDAD 1 A.C

módulo de E/S y la memoria principal intercambian datos directamente, sin la intervención de la CPU.

Considérese la lectura de un bloque desde el disco. En la técnica de entrada-salida programada, la CPU interroga a cada dispositivo para ver si requiere servicio. Si se considera una analogía con un restaurante, el caso sería el del camarero que se acerca al comensal para ver si está listo para hacer un pedido.

Las operaciones que se realizan cuando se administra la entrada-salida por medio de un programa se ilustran en el diagrama de flujo que se observa en la siguiente figura. La CPU verifica primero el estado del disco por medio de la lectura de un registro especial al que puede acceder en el espacio de memoria o por medio de la lectura de un registro especial al que puede acceder en el espacio de memoria o por medio de la lectura de un registro especial de entrada-salida, si esta fuera la solución adoptada por la arquitectura del procesador para la implementación del manejo de entrada-salida. Si el disco no estuviese listo para ser leído o escrito, el proceso queda en un lazo cerrado verificando el estado en forma continua hasta tanto el disco esté listo, en un proceso de espera por dispositivo ocupado. Cuando el disco finalmente se encuentre disponible, se producirá la transferencia de datos entre el disco y la CPU.15

15 Miles, J. Murdocca. Principios de arquitecturas de computadoras. P. 309 48 | 76

Page 49: UNIDAD 1 A.C

Luego de completada la transferencia, la CPU verifica la existencia de algún otro pedido de comunicación con el disco. Si lo hubiera, el proceso se repite; en caso contrario la CPU continua otras tareas.

En la administración de E/S por programada, la CPU pierde el tiempo al interrogar a los dispositivos. Otro problema tiene que ver con que los dispositivos de alta prioridad no se verifican hasta tanto la CPU no completa la tarea de entrada-salida en curso, la que puede ser de baja. No obstante, dado que la implementación de un sistema de administración programada de los procesos de E/S se pueden concretar en forma sencilla, presenta ventajas en algunas aplicaciones.

Resumen 16

Cuando la CPU está ejecutando un programa y encuentra una instrucción relacionada con una E/S, ejecuta dicha instrucción mandando una orden al módulo de E/S apropiado. Con E/S programada, el módulo de E/S realizara la acción solicitada y después activa los bits apropiados en el registro de estado de E/S. El módulo de E/S no realiza ninguna otra acción para avisar a la CPU. En concreto, no interrumpe a la CPU. De esta forma, la CPU es la responsable de comprobar 16 Organización y Arquitectura de Computadoras. 4ta Edición p.188

49 | 76

Page 50: UNIDAD 1 A.C

periódicamente el estado del módulo de E/S hasta que encuentra que la operación ha terminado.

Órdenes de E/S

Una orden de control se utiliza para activar el periférico e indicarles que hacer. Estas órdenes son específicas del tipo particular de dispositivo periférico.

Una orden de test se utiliza para comprobar diversas condiciones de estado asociadas con el módulo de E/S y sus periféricos. La CPU podrá comprobar si el periférico en cuestión está conectado y disponible para su uso.

Una orden de lectura hace que el módulo de E/S capte un dato de un periférico y lo situé en un buffer interno. Después, la CPU puede obtener el dato solicitando que el módulo de E/S lo ponga en el bus de datos.

Una orden de escritura hace que el módulo de E/S tome unos datos (byte o palabra) del bus de datos y posteriormente lo transmita al periférico.

Instrucciones de E/S

En la E/S programada, hay una estrecha correspondencia entre las instrucciones de E/S que la CPU capta de memoria y las órdenes de E/S que la CPU envía a un módulo de E/S al ejecutar las instrucciones. Es decir, las instrucciones se pueden hacer corresponder fácilmente con las órdenes de E/S, y a menudo hay una simple relación de uno a uno. La forma de la instrucción depende de la manera de direccionar los dispositivos externos.

Normalmente, habrá muchos dispositivos de E/S conectados al sistema a través de los módulos de E/S. Cada dispositivo tiene asociado un identificador único o dirección. Cuando la CPU envía una orden de E/S, la orden contiene la dirección del dispositivo deseado. Así cada módulo de E/S debe interpretar las líneas de dirección para determinar si la orden es para él.

Cuando la CPU, la memoria principal, y las E/S comparten un bus común, son posibles dos modos de direccionamiento: asignado en memoria (“memory_mapped”) y aislado. Con las E/S asignadas en memoria, existe un único espacio de direcciones para las posiciones de memoria y los dispositivos de E/S. la CPU considera a los registros de estado y de datos de los módulos de E/S como composiciones de memoria y utiliza las mismas instrucciones máquina para acceder tanto a memoria como a los dispositivos de E/S. así, por ejemplo, con 10 líneas de dirección, se puede acceder a un total de 1024 posiciones de memoria y direcciones de E/S, en cualquier combinación.

Con las E/S asignadas en memoria, se necesita una sola línea de lectura y una sola línea en el bus. Alternativamente, el bus puede disponer de líneas de lectura y escritura en memoria junto con líneas para órdenes de entrada y salida. En este caso, las líneas de órdenes especifican si la dirección se refiere a una posición de

50 | 76

Page 51: UNIDAD 1 A.C

memoria o a un dispositivo de E/S. el rango completo de direcciones está disponible para ambos. De nuevo con 10 líneas de dirección, el sistema puede soportar ahora 1024 posiciones de memoria y 1024 direcciones de E/S. puesto que el espacio de direcciones de E/S está aislado del de memoria, este se conoce con el nombre de E/S aislada.

En la siguiente figura, se contrastan estas dos técnicas de E/S programada. Es esta figura se muestra como podría ver el programador la interfaz con un dispositivo de entrada sencillo tal como un teclado cuando se utiliza E/S asignada en memoria. Se asume direcciones de 10 bits, con una memoria de 512 palabras (posiciones 0-511) y hasta 512 direcciones de E/S (posiciones 512-1023), se dedican dos direcciones a la entrada de teclado desde un terminal concreto.

La dirección 516 se refiere al registro de datos y la dirección 517 al registro de estado que además funciona como registro de control para recibir las ordenes de la CPU. El programa que se muestra lee un byte de datos desde el teclado y lo escribe en el registro acumulador de la CPU. Obsérvese como la CPU ejecuta un bucle hasta que el byte de datos está disponible.

Con E/S aislada (que se observa en la parte del b) de la figura anterior), los puertos de E/S solo son accesibles mediante una orden especifica de E/S, que activa las líneas de órdenes de E/S del bus.

51 | 76

Page 52: UNIDAD 1 A.C

La mayor parte de CPUs disponen de un conjunto relativamente grande de instrucciones distintas para acceder a memoria. Si se utiliza E/S aislada, solo existen unas pocas instrucciones de E/S. por eso, una ventaja de la E/S asignada en memoria es que se puede utilizar este amplio repertorio de instrucciones, permitiendo una programación más eficiente. Una desventaja es que se utiliza parte del valioso espacio de direcciones de memoria. Tanto la E/S asignada como la aislada se usan comúnmente.

1.2.3.3 Entrada/salida mediante interrupciones

El problema con la entrada/salida programadas es que la CPU tiene que esperar un tiempo considerable a que el módulo de E/S en cuestión esté preparado para recibir o transferir datos. La CPU, 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 consiste en que la CPU 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á a la CPU para solicitar su servicio cuando esté preparando para intercambiar datos ella. La CPU ejecuta entonces la transferencia de datos, como antes, y después continúa el procesamiento previo. Como se ve en la siguiente imagen:

Desde el punto de vista de la CPU, las acciones para una entrada son las que siguen. La CPU envía una orden READ de lectura. Entonces pasa a realizar otro trabajo(es decir, la CPU puede estar ejecutando programas distintos al mismo tiempo). Al final de cada ciclo de instrucciones, la CPU comprueba las interrupciones. Cuando se pide la interrupción desde el módulo de E/S, la CPU guarda el contexto(es decir, el contador de programa y los registros de la CPU) del

52 | 76

Page 53: UNIDAD 1 A.C

programa en curso y procesa la interrupción. En este caso, la CPU 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 (o de otro programa) y continúa su ejecución. La E/S con interrupciones es más eficiente que la E/S programada por que elimina las esperas innecesarias. No obstante, las E/S con interrupciones consumen gran cantidad de tiempo de la CPU puesto que cada palabra de datos que va desde la memoria al módulo de E/S o viceversa debe pasar a través de la CPU.

En la siguiente figura se muestra procesamiento simplificado de una interrupción.

Cuestiones de diseño

En la implementación de las E/S mediante de las interrupciones aparecen dos cuestiones. Primero, puesto que casi invariable habrá múltiples módulos de E/S, y segundo, si se han producido varias interrupciones.

1.2.3.4 Acceso directo a memoria

Cuando hay que transferir grandes volúmenes de datos, se requiere una técnica más eficiente: el acceso a memoria (DMA).

El DMA (Direct Memory Access) es un procesador/controlador especializado en transferencias “muy grandes” desde periféricos a memoria y viceversa. Es

53 | 76

Page 54: UNIDAD 1 A.C

programable. La CPU no realiza ninguna tarea (salvo programar el DMA) ya que la inicialización y transferencia son gobernadas por el periférico.

Para programar el DMA hay que enviarle al menos los siguientes datos:

Dirección/puerto periférico E/S. Posición/dirección en memoria principal. Tamaño (número de bytes a transferir). Tipo transferencia: lectura o escritura. Al finalizar el DMA avisa mediante

una interrupción. Esta interrupción al igual que el resto de interrupciones son normalmente

atendidas al final de cada instrucción. La rutina de servicio asociada comprobará el estado del DMA para ver si se

han producido errores al ejecutar la transferencia que se le ha encomendado.

A diferencia del mecanismo por interrupción convencional, una orden DMA puede transferir muchísimos datos de una sola vez. Por lo tanto, el número de interrupciones por byte transferido es mucho menor que con las interrupciones convencionales: se gana en rapidez. El procesador no se encarga de la transferencia de datos.

El mecanismo de DMA puede configurarse de diversas formas: Todos los módulos comparten el mismo bus del sistema. El módulo de DMA, actuando como un CPU suplementaria, utiliza E/S programada para intercambiar datos entre la memoria y un módulo de E/S a través del módulo de DMA. Esta configuración, si bien es la más económica, es claramente ineficiente. Igual que con E/S programada controlada por la CPU, la transferencia de cada palabra consume dos ciclos de bus.

El número de ciclos de bus necesarios puede reducirse sustancialmente si se integran las funciones de DMA y de E/S. Esto indica que existe un camino entre el módulo de DMA y uno o más de E/S que no incluye al bus del sistema. La lógica de DMA puede ser parte de un módulo de E/S, o puede ser un módulo separado que controla a uno o más módulos de E/S. este concepto se puede llevar algo más lejos conectando los módulos de E/S a un módulo de DMA mediante un bus de E/S. Esto reduce a uno el número de interfaces de E/S en el módulo de DMA y permite una configuración fácilmente ampliable. En todos estos casos, el bus del sistema, que el módulo de DMA comparte con la CPU y la memoria, es usado por el módulo de DMA solo para intercambiar datos con la memoria. El intercambio de datos entre los módulos de DMA y E/S se produce fuera del bus del sistema.

Inconvenientes de la E/S programada y con interrupciones.

La E/S con interrupciones, aunque más eficiente que la sencilla E/S programada, también requiere la intervención activa de la CPU para transferir datos entre la

54 | 76

Page 55: UNIDAD 1 A.C

memoria y el módulo de E/S, y cualquier transferencia de datos debe seguir un camino a través de la CPU. Por tanto, ambas formas de E/S presentan dos inconvenientes inherentes:

1. La velocidad de transferencia de E/S está limitada por la velocidad a la cual la CPU puede comprobar y dar servicio a un dispositivo.

2. La CPU debe dedicarse a la gestión de las transferencias de E/S; se debe ejecutar cierto número de instrucciones por cada transferencia de E/S.

Existe un cierto compromiso entre estos dos inconvenientes. Considérese unas transferencias de un bloque de datos. Utilizando E/S programada, la CPU se dedica a la tarea de la E/S y puede transferir datos a alta velocidad al precio de no hacer nada más. La E/S con interrupciones libera en parte a la CPU, a expensas de reducir la velocidad de E/S. No obstante, ambos métodos tiene un impacto negativo tanto en la actividad de la CPU como en La velocidad de transferencia de E/S.

1.2.3.5 Canales y procesadores de entrada/salida

Los controladores de E/S se han mejorado haciendo que se comporten como un procesador. La CPU hace que el controlador de E/S ejecute un programa de E/S en memoria. El controlador de E/S coge y ejecuta sus instrucciones sin intervención de la CPU. A este tipo de controlador de E/S se le denomina canal de E/S. Una posterior mejora de los canales de E/S ha sido incorporarles una memoria local con lo que ahora se pueden ver como computadores. Con esta arquitectura, se puede controlar un conjunto grande de dispositivos de E/S con la mínima intervención de la CPU. A este tipo de controlador se le denomina procesador de E/S.

Características de los canales de entrada/salida

Los canales representan una extensión al concepto de DMA. Tienen la habilidad de ejecutar instrucciones de E/S. Completo control de la transferencia de datos por lo tanto la CPU no ejecuta

instrucciones de E/S. Instrucciones almacenadas en memoria principal que serán ejecutadas por

un procesador de propósito especial en el canal. La CPU inicia una transferencia de E/S instruyendo al canal para ejecutar el

programa que está en memoria. Este programa especifica dispositivos, áreas de memoria a usar,

prioridades y acciones ante errores. El canal siguiendo las instrucciones controla la transferencia de datos.

Tipos de canales de E/S

Selector:

55 | 76

Page 56: UNIDAD 1 A.C

Controla varios dispositivos de alta velocidad y uno por vez, por lo tanto el canal se dedica para la trasferencia de datos de esos tipos dispositivo.

El canal selecciona un dispositivo y efectúa la transferencia. Los dispositivos son manejados por un controlador o módulo de E/S.

Por lo tanto el canal de E/S ocupa el lugar de la CPU en el control de esos controladores. (A continuación observe la siguiente figura).

Multiplexor:

Puede manejar E/S con varios dispositivos a la vez. Multiplexor de bytes: Acepta y transmite caracteres.

Multiplexor de bloques: Intercala bloques de datos desde distintos dispositivos. (observe la siguiente figura)

1.2.4 Buses 56 | 76

Page 57: UNIDAD 1 A.C

¿Qué es un bus?

Es un camino de comunicación entre dos o más dispositivos. Normalmente, medio de transmisión. Suele agruparse: Varios caminos de comunicación o líneas con función

común. Un dato de 8 bits puede transmitirse mediante ocho líneas del bus.

Existe una serie de sistemas de interconexión. Las estructuras sencillas y múltiples son las más comunes como los siguientes ejemplos:

Bus de datos

Transmite datos: Recuerde que a este nivel no existe diferencia alguna entre “datos” e “instrucciones”.

El ancho del bus es un factor clave a la hora de determinar las prestaciones: 8, 16, 32, 64 bits.

Bus de dirección

Identifica la fuente o destino de un dato, cuando el procesador desea leer una palabra de una determinada parte en la memoria. El ancho del bus de direcciones determina la máxima capacidad de memoria posible en el sistema. MSX88 tiene un bus de dirección de 16 bits, lo que define un espacio para direcciones de 64K lugares.

Bus de control

Transmite información de señales de control y temporización por ejemplo:

Señal de escritura/lectura en memoria. Petición de interrupción. Señales de reloj.

La interconexión mediante un bus es la siguiente:

¿Cómo son los buses?

57 | 76

Page 58: UNIDAD 1 A.C

Es un conjunto de conductores eléctricos paralelos, poseen conectores para colocar “tarjetas”. Como se puede observar en la siguiente imagen:

Los sistemas operativos gráfico-orientados como son Windows y OS/2 han creado un “cuello de botella” entre el procesador y sus periféricos para visualización en PCs con arquitecturas I/O estándar. Acercando las funciones periféricas con mayores requerimientos de ancho de banda al bus del microprocesador del sistema puede eliminarse este atascamiento. Cuando un diseño tipo “Local Bus” es utilizado, pueden obtenerse ganancias sustanciales en performance con interfaces gráficas para el usuario (GUIs, graphical User Interfaces) y otras funciones de gran ancho de banda (full motion video, SCSI, LANs, etc.) Las ventajas ofrecidas por un diseño de bus local han motivado varias versiones, implementadas en distintas formas. Los beneficios de establecer un estándar abierto para buses I/O han sido claramente demostrados en la industria de la PC. Es importante que un nuevo estándar para buses locales se establezca para simplificar diseños, reducir costos e Incrementar la selección de componentes “Local Bus” y placas de expansión.

1.2.4.1 Tipos de buses

Dedicados: usa líneas separadas para direcciones y datos en la siguiente forma:

El bus de direcciones usa 16 líneas. El bus de datos usa 16 líneas. El bus de control usa una línea de lectura o escritura.

Multiplexados: uso de las mismas líneas:

16 líneas de direcciones o de datos. 1 línea de control de lectura o escritura. 1 línea de control para definir direcciones o datos.

58 | 76

Page 59: UNIDAD 1 A.C

A continuación se analizara cada uno de los buses del sistema, las ranuras de expansión, los conectores a la placa base, los puertos de conexión con los distintos dispositivos externos y los cables de conexión. En la siguiente imagen puede verse la placa base con cada uno de los elementos de los que vamos a

tratar.

Buses de propósito general

De expansión internos ISA (Industry Standard Architecture)

Este bus ofrece unas prestaciones muy bajas, y totalmente fuera de línea con los requerimientos de los PC de hoy. Se divide en dos ramas, una es interna al PC, y a ella se conectan los dispositivos más lentos del equipo: puertos serie, teclado, puerto paralelo, unidad de disco flexible. La otra rama es externa y se accede a ella a través de las ranuras de expansión ISA (Véase la siguiente figura).

Además de un rendimiento pobre, otra de las desventajas del bus ISA es la falta de inteligencia en el control del bus. Otra desventaja adicional radica en la configuración de los dispositivos, que debe realizarse manualmente, aunque algunos más recientes son compatibles con PaP (no todos).

59 | 76

Page 60: UNIDAD 1 A.C

PCI (Peripheal Component Interconnect)

El bus PCI «interconexión de componentes periféricos» se introdujo con los primeros microprocesadores Pentium de Intel y se ha convertido en el estándar para las tarjetas de expansión en las placas base. Soporta dispositivos de entrada/salida de alta velocidad, como las tarjetas de vídeo, de red, de sonido, MODEM, etc. Es capaz de transferir datos a 132 MB/s, frente a los 5 MB/s del bus ISA. La longitud de la ranura es más corta. Suele haber de 4 a 5 ranuras PCI en una placa base y son de color blanco. Véase la siguiente figura:

De expansión externos (también llamados Puertos)

Durante muchos años, los PC usaban sólo los buses de expansión internos. Obviamente, incluso los PC más antiguos tenían conexiones para dispositivos como teclados, pero esos conectores externos se diseñaban para admitir un tipo único de dispositivo. No podías enchufar un ratón en un puerto de teclado, por ejemplo, ni podías enchufar dos teclados en dicho puerto. Incluso los puertos para dispositivos serie y paralelos (que podían admitir una variedad de dispositivos) sólo admitían un dispositivo al mismo tiempo.

Para conectar los dispositivos periféricos al ordenador, se utilizan conectores. El conector se halla en el extremo del cable adjunto al dispositivo periférico. Se inserta dentro de un puerto para hacer la conexión entre el ordenador y el dispositivo periférico; el puerto hace que el dispositivo periférico esté disponible para el usuario. Veremos a continuación cuáles son los puertos y conectores que permiten unir dispositivos externos en los equipos actuales.

SERIE

Su nombre proviene de la forma en que se envían los datos, transmitiendo un bit tras otro en una serie y de forma asíncrona. Esto los limita en cuanto a su potencia de transmisión, relegándolos a tareas con pocas necesidades de transferencia de información. Son fáciles de reconocer, tienen un conector macho en forma de D mayúscula con 9 espigas, (también los hay con 25 pins). El sistema operativo

60 | 76

Page 61: UNIDAD 1 A.C

identifica los puertos serie como puertos COM, seguido de un número correspondiente al puerto de que se trata, por ejemplo COM1. Actualmente apenas se utiliza debido a su baja velocidad. Sin embargo, todavía se pueden

encontrar ratones y módems (así como material científico) que suelen enviar datos al puerto COM (Véase la siguiente figura).

DIN o AT

Era la conexión primaria para el teclado, es más grande que su repuesto actual, el PS/2. Tiene 5 pines. Actualmente está en desuso, pero existen adaptadores para poder conectar un teclado con este conector a un puerto PS/2 (Véase la siguiente figura).

Puerto PS/2 (Sistema personal 2) para teclado

El conector mini-DIN tiene 6 pines, es de color lila y sirve para un teclado PS/2 (Véase la siguiente figura).

Puerto PS/2 para ratón

Este conector verde de 6 espigas está diseñado para el ratón PS/2 -a menos que utilices un modelo USB o inalámbrico. Ten en cuenta que el puerto del ratón solamente difiere del teclado por el color. Un error muy común al preparar las conexiones del PC es confundir el conector del ratón con el del teclado, en cuyo caso ninguno de los dos funcionará. Por suerte, es un problema de fácil solución (Véase la siguiente figura).

Puerto Paralelo

61 | 76

Page 62: UNIDAD 1 A.C

Los puertos paralelos, al igual que los puertos serie, reciben su nombre debido a la forma en que envían y reciben la información. En este caso, la información se envía mediante ocho bits en lugar de utilizar un bit. Esto hace que el puerto paralelo sea más rápido que el puerto serie, ya que se envían más datos simultáneamente. El puerto paralelo está asociado con la conexión de la impresora, aunque en los últimos años ha empezado a utilizarse para dispositivos de almacenamiento externo, como, por ejemplo, unidades Zip, CD-ROM externos, plotters o escáneres. A estos puertos se les conoce con el nombre de LPT.

Aunque el ordenador trae un puerto LPT (LPT1), es posible añadir un segundo y un tercer puerto mediante una tarjeta de expansión conectada a la placa base del ordenador. El sistema nombra a estos puertos como LPT2 y LPT3. Sin embargo, no es necesario, ya que la mayoría de los dispositivos que se conectan al puerto paralelo tienen un conector de paso que permite que se conecte una impresora o cualquier otro dispositivo.

Los puertos paralelos de un ordenador son conectores hembra DB-25 a los que se conecta el correspondiente conector macho, como se ve en la siguiente figura.

USB

El Bus Serie Universal o USB (Universal Serial Bus) es un tipo de interfaz que soporta dispositivos periféricos de baja velocidad, como teclados o ratones, y dispositivos de una velocidad mayor, como las cámaras digitales, impresoras, adaptadores de red, sintonizadores de TV, discos removibles, etc. Se espera que en un futuro termine reemplazando a los puertos serie y paralelo de los ordenadores personales.

El USB es un puerto serie y, al igual que el puerto serie normal, transmite los datos de bit en bit; sin embargo, los transmite más rápidamente.

El puerto USB, en su versión inicial, USB 1.1, alcanzaba velocidades de transferencia de datos de 12 Mb/s (megabits por segundo). La versión más reciente, USB 2.0, apodado USB de alta velocidad, soporta velocidades de transferencia de datos de 480 Mb/s (= 60 MB/s, megabytes por segundo). Esta versión es compatible con los dispositivos USB 1.1.

Las características que ofrece un puerto USB son las siguientes:

62 | 76

Page 63: UNIDAD 1 A.C

• Proporciona al ordenador capacidades Plug and Play para los dispositivos externos.

• Se puede conectar dispositivos USB al ordenador sin necesidad de reiniciarlo (conexión en caliente); el sistema operativo, por ejemplo Windows XP, los reconoce automáticamente e instala los controladores; o bien el sistema operativo solicita al usuario los controladores correspondientes (es el caso de Windows 98), que se suelen encontrar en el disquete o CDROM que acompaña al dispositivo.

• Amplia variedad de dispositivos disponibles: teclados, ratones, unidades Zip, Jaz, discos duros externos, escáneres, impresoras de inyección de tinta, módems, cámaras digitales, Webcams.

Los estándares USB fueron desarrollados por un grupo de siete empresas importantes: Compaq, Digital Equipment Corp., IBM PC Co., Intel, Microsoft, NEC y Northern Telecom.

Conexiones USB

Los puertos y conectores USB son de dos tipos:

• Puerto Tipo A. Suele estar situado en la parte posterior del ordenador, aunque actualmente muchos ordenadores traen también conectores Tipo A en la parte frontal; son de tipo hembra. Y tienen una típica forma rectangular. A este puerto se conecta un conector macho también de Tipo A, como se ve en la siguiente figura.

• Puerto Tipo B. Se encuentra en los dispositivos USB. Los puertos Tipo B son más cuadrados y de tipo hembra. A estos puertos se conecta un conector macho de Tipo B (véase Figura en la siguiente figura).

Buses dedicados

63 | 76

Page 64: UNIDAD 1 A.C

Son buses de propósito específico destinados al diálogo con un tipo concreto de dispositivos.

Puertos FireWire

El estándar IEEE 1394, más conocido como FireWire, define las especificaciones de un bus serie de alta velocidad para dispositivos que realmente funcionan a alta velocidad, como, por ejemplo, las cámaras de vídeo o fotográficas digitales. FireWire es una marca registrada de Apple Computer; otros fabricantes, como Sony, utilizan el nombre i.Link. El nombre genérico del estándar es Bus serie de alto rendimiento.

La interfaz IEEE 1394 comparte características con la interfaz USB. Ambas son buses de alta velocidad, Plug and Ptay e intercambiables en caliente. El número máximo de dispositivos que soporta es 63. Las versiones más recientes de IEEE 1394 que se están desarrollando ofrecerán velocidades de 800 Mb/s a 1,6 Gb/s (gigabits por segundo). En la Figura siguiente, se muestra uno de los conectares utilizados por IEEE 1394; son los mismos que los utilizados en el Nintendo Gameboy.

El IEEE 1394 no necesita el ordenador para poder funcionar. Así, una cámara de video digital se puede conectar con un equipo de vídeo VCR a través de este puerto. Actualmente muchos ordenadores no tienen integrado este conector, pero existen tarjetas de expansión que sí lo proporcionan.

AGP

El bus AGP («puerto acelerador de gráficos») se utiliza sólo para un tipo de tarjeta de expansión: la tarjeta de vídeo. Sólo admite una. Se desarrolló principalmente para mejorar las aplicaciones de gráficos en 3D.

La principal ventaja es que el chipset al que se conecta el bus AGP ofrece a la tarjeta AGP un acceso rápido a la memoria principal.

La velocidad del bus AGP es superior a la del bus PCI. Hay cuatro velocidades diferentes:

• AGP IX: transfiere datos a 266 MB/s. • AGP 2X: transfiere datos a 532 MB/s. • AGP 4X: transfiere datos a 1 GB/s. • AGP 8X: transfiere datos a 2 GB/s.

64 | 76

Page 65: UNIDAD 1 A.C

La ranura AGP es de color café y algo más corta que la ranura PCI. No debemos desconectar nunca una tarjeta AGP de la placa base con el ordenador encendido, ya que esto puede dañarla.

Actualmente existen dos estándares de AGP, denominados AGP 2.0 y AGP 3.0 (no tengo ni idea de lo que ha pasado con la versión 1).

La razón por la que tienes que saber todo esto es que las ranuras en las placas base y en los conectores de la tarjeta de vídeo AGP varían según la versión y el modelo y no son todas compatibles. Algunas tarjetas AGP 3.0 se pueden enchufar físicamente en ranuras AGP 2.0, por ejemplo, pero no funcionarán. La figura muestra dos ranuras AGP diferentes, la de arriba es la AGP 3.0 y la de abajo la AGP 2.0 (Véase la siguiente figura).

1.2.4.2 Estructura de los buses

Un bus es un medio compartido de comunicación constituido por un conjunto de líneas (conductores) que conecta las diferentes unidades de un computador. La principal función de un bus será, pues, servir de soporte para la realización de transferencias de información entre dichas unidades. La unidad que inicia y controla la transferencia se conoce como master del bus para dicha transferencia, y la unidad sobre la que se realiza la transferencia se conoce como slave. Los papeles de master y slave son dinámicos, de manera que una misma unidad puede realizar ambas funciones en transferencias diferentes. Por ejemplo, una unidad de DMA hace de slave en la inicialización que realiza el master, la CPU, para una operación de E/S. Sin embargo, cuando comienza la operación, la unidad de DMA juega el papel de master frente a la memoria, que en esta ocasión hace de slave.

Para garantizar el acceso ordenado al bus, existe un sistema de arbitraje, centralizado o distribuido, que establece las prioridades cuando dos o más unidades pretenden acceder al mismo tiempo al bus, es decir, garantiza que en cada momento sólo exista un master.

Para establecer el tiempo de duración de las transferencias y que sea conocido tanto por el master como por el slave, un bus debe disponer de los medios necesarios para la sincronización master-slave (Véase la siguiente figura).

65 | 76

Page 66: UNIDAD 1 A.C

Líneas Las líneas de un bus podemos clasificarlas en grupos, atendiendo al papel que cumplen en las transferencias.

Líneas de información básica. Las utiliza el master para definir los dos elementos principales de una transferencia, el slave y los datos. Se dividen, pues, en dos grupos: direcciones y datos.

Líneas de Direcciones Determinan la unidad que hace de slave en la transferencia Líneas de Datos Transportan los datos de la transferencia. Existen buses con líneas independientes para cada uno de los anteriores tipos de información. En cambio en otros se utilizan las mismas líneas multiplexadas en el tiempo.

Líneas de control Transmiten las órdenes que determinan la operación de transferencia a realizar por las líneas de datos y direcciones, y marcan el ordenamiento temporal de las señales que circulan por el bus. Las primeras son las líneas de control propiamente dichas, de las que las más importantes son:

Escritura en memoria Lectura de memoria Operación de salida Operación de entrada

Las segundas son las líneas de sincronismo, entre las que cabe citar las siguientes:

Reconocimiento de transferencia Reloj Reset.

Líneas de arbitraje

Establecen la prioridad entre diferentes peticiones de acceso al bus. Por ejemplo: Petición del bus

66 | 76

Page 67: UNIDAD 1 A.C

Cesión del bus Ocupación del bus

Direccionalidad de buses

Las líneas de un bus podemos también clasificarlas en función de su direccionalidad:

Líneas unidireccionales

Emisor simple (Véase la siguiente figura).

Emisor múltiple (Véase la siguiente figura).

Líneas bidireccionales

Desde el punto de vista físico un bus es un conjunto de conductores eléctricos paralelos dispuestos sobre una tarjeta de circuito impreso. Los dispositivos del sistema se conectan a través de conectores (slots) dispuestas a intervalos regulares a lo largo del bus (Véase la siguiente figura).

67 | 76

Page 68: UNIDAD 1 A.C

1.2.4.3 Jerarquías de buses

Bus del sistema (backplane) Los ordenadores antiguos utilizaban una topología de bus único, denominado bus del sistema o backplane, para conectar procesador, memoria y los módulos de E/S, tal como la que se muestra en la siguiente figura:

Sin embargo, cuando el número de dispositivos conectados a un bus aumenta disminuye su rendimiento. Esto es debido a dos motivos fundamentales. El primero el aumento del retardo de propagación de las señales debido al aumento de longitud de los conductores que dan soporte al bus. Esto afecta especialmente a la propagación encadenada de la señal de concesión del bus. El segundo el incremento de demanda de acceso que se produce al aumentar el número de dispositivos conectados. Este exceso de dispositivos puede crear un cuello de botella que haga que el rendimiento del sistema se degrade por la espera inútil que se origina cuando tienen que realizar transferencias.

Por otra parte, las diferencias en la velocidad de operación de los dispositivos conectados al bus, también repercuten negativamente en su rendimiento. En efecto, los dispositivos lentos pueden ocasionar retrasos importantes a los rápidos.

68 | 76

Page 69: UNIDAD 1 A.C

Buses locales

El bus local es de longitud pequeña, de alta velocidad, y adaptado a la arquitectura particular del sistema para maximizar el ancho de banda entre el procesador y la caché, por eso suele ser un bus propietario. Este bus aísla el tráfico procesador- caché del resto de transferencias del sistema (Véase la siguiente figura).

Buses de E/S o de expansión

El bus de E/S o de expansión reduce el tráfico en el bus del sistema, de manera que el procesador puede acceder a memoria en un fallo de caché mientras realiza una operación de entrada/salida.

Los buses de expansión son buses estándar o abiertos (ISA, EISA, PCI, etc.) es decir, independientes del computador y con unas características bien definidas en el correspondiente documento de normalización. La existencia de estos buses permite diseñar una amplia gama de controladores de periféricos compatibles. Para conectar los buses del sistema y de expansión se requiere un Adaptador de Bus, dispositivo que permite adaptar las distintas propiedades de ambos buses: velocidad, carácter síncrono o asíncrono, multiplexación.

69 | 76

Page 70: UNIDAD 1 A.C

El proceso de jerarquización se puede complicar más con otras topologías que den cabida a dispositivos de distinta velocidad. De esta forma se equilibra mejor el

tráfico de información en sistemas que operan con muchos dispositivos conectados. En la figura siguiente se muestra una topología jerárquica en la que se contempla un bus de alta velocidad del que cuelgan dos buses, uno de expansión para dispositivos rápidos y otro de E/S para dispositivos lentos.

1.2.5. Interrupciones

Una interrupción es un suceso, más o menos esperado pero que no se conoce el momento exacto en que se va a producir. La interrupción se produce bien como consecuencia de un evento externo a la CPU (por los dispositivos de E/S), o bien por la propia CPU como consecuencia de la ejecución o intento de ejecución de una instrucción. Por cualquiera de estos motivos, una interrupción debe entenderse como un suceso que se produce “por sorpresa”, pero que hay que tratarlo inmediatamente.

Cuando se produce una interrupción, lo normal es: 1°) abandonar el flujo secuencial de ejecución actual. 2°) dar control a una Rutina de Tratamiento de la Interrupción (RTI) producida. 3°) ejecutar la RTI y, por último,4°) reanudar el flujo normal de ejecución en el punto donde se interrumpió. (Véase la siguiente figura).

70 | 76

Page 71: UNIDAD 1 A.C

Teniendo en cuenta que las TRI forman parte del sistema operativo instalado, esta opción forzaría mucho su construcción, pues en cada caso ocupara un tamaño distinto y en distinta dirección.

En su lugar, lo que suele hacer es saltar a las rutinas de tratamiento mediante indirección.

Normalmente, en la parte la parte baja de la memoria se dispone de una Tabla de Vectores de Interrupción, denominada así porque cada elemento o entrada de la tabla contiene un Vector de manera que el primer elemento de esta tabla contiene la dirección de la rutina de tratamiento de la interrupción 0; la segunda entrada, la dirección de la RTI 1, y así sucesivamente. (En Motorola, esta tabla a la que también se le conoce como Vector de Interrupciones, está en la dirección 0; en el Pentium, la dirección es configurable; en el PowerPC se puede optar entre 1F4 y FFF001F4 como direcciones de comienzo).

El sistema operativo debe encargarse, en su proceso de inicialización, de establecer las direcciones de sus rutinas de tratamiento de interrupciones en los vectores de interrupción correspondientes.

Tipos de interrupciones

Teniendo en cuenta que una interrupción la puede producir un dispositivo externo a la CPU o la ejecución de una interrupción en la propia CPU, nos encontramos con los siguientes tipos de interrupciones que se muestran en la imagen.

Las interrupciones externas las producen los dispositivos de E/S o sensores que son periférico de la CPU. Estas interrupciones son asíncronas, pues nunca se sabe con exactitud cuándo van a producirse.

Las interrupciones internas se pueden producir por dos motivos:

En la ejecución de una instrucción se detecta alguna anomalía, como por ejemplo, que el código de operación es desconocido, que se intenta dividir

71 | 76

Page 72: UNIDAD 1 A.C

por cero, o que se ha realizado una operación aritmética que ha producido overflow. Cada uno de estos motivos genera una interrupción distinta, y el momento exacto en que se produce depende de cada instrucción; en el caso de un código de operación inexistente, la interrupción se produce mientras se decodifica la instrucción, en el caso de un intento de división por cero, la interrupción se produce al comprobar que el divisor es cero; y en el caso del overflow, la interrupción se produce al finalizar la operación.

Interrupciones simuladas o interrupciones software. Son interrupciones generadas por las instrucciones del lenguaje maquina incluida en el código de un programa, cuyo cometido es única y simplemente simular una interrupción.

Cuando se ejecuta una de estas instrucciones de interrupciones software, el tratamiento que se genera es exactamente igual al que habría si esa misma interrupción la hubiera generado cualquier dispositivo externo. Por ejemplo, la instrucción |INT 7| de Intel hace que se ejecuté la rutina de tratamiento de la interrupción 7; una vez ejecutada dicha rutina, se continuara con la instrucción que le sigue en secuencia a |INT 7|.

Las interrupciones software se suelen utilizar para comunicar las aplicaciones de usuario con el sistema operativo (traps) y para comprobar el tratamiento de las interrupciones que generan los dispositivos periféricos (o las internas de la CPU).

Las interrupciones internas son síncronas pues la producción de una de estas interrupciones está asociada a una instrucción del propio programa, y no depende en absoluto de circunstancias externas al programa; por esto, si siempre se utilizan los mismos datos, al ejecutar el programa varias veces siempre se producen las misma interrupciones (si las hay) en los mismos momentos (relativos al comienzo de ejecución del programa).

Algunos fabricantes de procesadores, como Motorola, denominan “excepciones” a todos los tipos de interrupciones, y a las producidas internamente a la CPU las llama traps. PowerPC también llama “excepciones” a las interrupciones en general. Intel denomina “interrupciones” a las originadas externamente a la CPU, y “excepciones” a las producidas como consecuencia de la ejecución de alguna instrucción.

¿Cuántas patas hay para comunicarle interrupciones a la CPU?

El procesador podría disponer de una pata distinta para cada tipo de interrupción, pero dado que, por ejemplo, Intel, y Motorola tienen hasta 256 interrupciones, no parece conveniente dedicarle sola mente a esto 256 patas en el procesador. En su lugar, lo que ay es una pata (INTR) que avisa de que se ha producido una interrupciones especiales, como RESET, Bus Error, o la NMI (non Maskable interrupt), que disponen directamente de una pata en la CPU para cada una de

72 | 76

Page 73: UNIDAD 1 A.C

ellas. Ya veremos más adelante el proceso para averiguar el nivel de la interrupción producida cuando se activa la pata INTR (Véase la siguiente figura).

El Motorola 68000 dispone de tres patas para señalar las interrupciones generales, pero las utiliza para indicar la prioridad de las interrupciones, no para señalar interrupciones distintas.

En Intel también hay distintas prioridades se realiza en un dispositivo externo a la CPU, denominado PIC (Programmable interrupt Controller). (Véase la siguiente figura)

Hay dos tipos de interrupciones: enmascarables y no enmascarables.

Las interrupciones no enmascarables con las que siempre se atienden. Se deben a motivos cuya atención no puede dilatarse en el tiempo. Por ejemplo, un reset, un error de bus de direcciones, o una interrupción no enmascarable (NMI), que puede deberse a motivos como una detección de fallo de tensión alimentación o la detección de un error en memoria RAM. Estas interrupciones suelen contar con patas específicas en la CPU (RESET, BERR, NMI), aunque Motorola utiliza la interrupción de nivel 7 como NMI.

73 | 76

Page 74: UNIDAD 1 A.C

Las interrupciones enmascarables se pueden atender o no, dependiendo de lo que este indicado en el registro de estado. Intel cuenta con dos instrucciones, ENABLE y DISABLE, para permitir o inhibir la aceptación de interrupciones, que activan o desactivan el flag de aceptación de interrupciones del registro de estado.

En el Motorola, para inhibir la aceptación de interrupciones debe establecer el nivel de privilegio 7 en su registro de estado (ORI #$0700, SR), con lo cual solamente aceptaría las interrupciones clasificadas como no enmascarables (las de nivel 7). Para permitir todas las interrupciones se debe ejecutar la instrucción ADNI #$F0FF, SR la cual pone a cero los bits de prioridad (I0, I1, I2) en el registro de estado. (Véase la siguiente figura).

74 | 76

Page 75: UNIDAD 1 A.C

CONCLUSIÓN

A lo largo de este reporte, se comprendió el correcto funcionamiento de una computadora. Después de ver la evolución que ésta ha sufrido se puede decir, que la compactación de las máquinas e introducción de una CPU, memorias, circuitos integrados y dispositivos de E/S en ella, ha dado un plus a su funcionamiento. Esto la hace cada vez, conforme avanza el tiempo, más rápida y portátil. Cumpliendo progresivamente con innovaciones que mejoran su desempeño en las áreas más sobresalientes como la memoria RAM, discos duros, tarjetas gráficas, conectividad y dispositivos de E/S. Los programadores y técnicos que se ocupan de desarrollar como de dar mantenimiento deben mantenerse en constante actualización sin descuidar la base de todo lo que en la actualidad existe tal y como se ha aprendido. La importancia de una computadora no solo está en la marca del fabricante o precio en el mercado, en realidad, su importancia radica en los componentes que ésta contiene en su interior, conforme avanza el tiempo, los usuarios demandan de componentes de alto nivel para sus máquinas, llámese memoria RAM o disco duro, lo cual ha obligado a los desarrolladores estar innovando en estos sectores, y comprender que sin la organización interna correcta de una computadora, éstas no serían capaces de realizar todas sus actividades demandantes.

75 | 76

Page 76: UNIDAD 1 A.C

BIBLIOGRAFIA

https://www.uclm.es/profesorado/licesio/Docencia/ETC/13_CBas-EstructuraComputador_itis.pdf

http://rvazquez.org/Misitio/Arquitectura_de_Computadoras_files/buses1.pdf http://www.geocities.ws/er_manu_dky/er_manu_dkytipodebuse.pdf Arquitectura de Computadoras - Morris Mano. Organización y Arquitectura de Computadoras. 4ta Edición ed. Madrid,

España.: Editorial Prentice hall; 1997. Tanenbaum, Andrew S. Organización de computadoras un enfoque

estructurado. Cuarta edición. Estado de México, México 2000.

Stallings, William. Organización de arquitectura de computadoras. Cuarta edición. Editorial Prentice Hall. Madrid España. 1997

Miles, J. Murdocca. Principios de arquitecturas de computadoras. Buenos aires, republica argentina. Prentice hall. 2002

Mano, Morris M. arquitectura de computadoras Prentice hall

76 | 76