Tema 2 - Arquitectura E-s

  • Uploaded by: Bitbreak
  • 0
  • 0
  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Tema 2 - Arquitectura E-s as PDF for free.

More details

  • Words: 3,264
  • Pages: 9
TEMA 2 - ARQUITECTURA DE DISPOSITIVOS DE COMUNICACIONES EN EL PC 1

INTRODUCCIÓN

En una visión simplificada de la estructura de un ordenador, diferenciamos tres bloques funcionales (CPU, Memoria y Periferia) interconectados por tres buses (direcciones, datos y control).

MEMORIA

Según esta disposición simplificada, la información viajaría entre los tres bloques por el bus de datos, de manera que la CPU determinaría en qué posición de la memoria o en qué dirección de la

CPU

PERIFERIA

BUS DE CONTROL BUS DE DIRECCIONES BUS DE DATOS periferia se escribiría/leería gracias al bus de direcciones. Todo ello estaría manipulado en el tiempo a través del bus de control. Para aclarar este proceso vamos a poner un ejemplo genérico de transacción de datos: Deseamos enviar el carácter ‘ñ’, existente en la memoria, a una impresora. Para llevar a cabo este proceso, el sistema debe ejecutar una instrucción. Al menos se cumplirán estos pasos: -

la CPU coloca en el bus de direcciones la posición donde se encuentra la instrucción la CPU activa la línea de lectura de memoria (bus de control) Por el bus de datos llega a la CPU la información de la instrucción y el valor del carácter ‘ñ’ que queremos enviar. La CPU pone ahora en el bus de direcciones la posición de E/S donde se halle la impresora. Activa la línea de control de escritura sobre el dispositivo de E/S (un registro de la impresora) Envía por el bus de datos el valor del carácter ‘ñ’ y la impresora lo gestiona según su protocolo.

Todo este proceso es mucho más complejo en la realidad pero conceptualmente se realiza así y de forma sincronizada por el reloj del sistema.

Arquitectura de E/S de comunicaciones de red 1

2

Puertos Entrada/Salida

Cualquier dispositivo (distinto de la memoria RAM) que intercambie datos con el sistema lo hace a través de un "puerto", por esto se denominan también puertos de E/S ("I/O ports"). Desde el punto de vista del software, un puerto es una interfaz con ciertas características; se trata por tanto de una abstracción (no nos referimos al enchufe con el que se conecta físicamente un dispositivo al sistema), aunque desde el punto de vista del hardware, esta abstracción se corresponde con un dispositivo físico capaz de intercambiar información (E/S) con el bus. Como los dispositivos E/S tienen algún tipo de conexión con el bus externo, deben tener una dirección (o conjunto de ellas) que los identifique. Los podemos comparar con un teléfono, un dispositivo con el que se puede enviar/recibir información mediante una dirección. Hablar de un puerto E/S es casi siempre sinónimo de una dirección, y es costumbre informática referirse a estas direcciones en hexadecimal. De modo que, por ejemplo, un puerto puede ser 0x21 en un fichero fuente o 21h en un texto informático.

2.1

Direcciones de puertos

El modo de direccionamiento del PC ha adoptado dos modelos, según la naturaleza del dispositivo a conectar: Direccionamiento dedicado para dispositivos de media/baja velocidad. Por ejemplo, puertos serie y paralelo (impresora), teclado, etc. y direccionamiento mapeado en memoria para dispositivos rápidos (típicamente los adaptadores gráficos).

2.1.1 Direccionamiento dedicado Respecto a los dispositivos de direccionamiento dedicado, desde la introducción del IBM-PC, es costumbre que determinados dispositivos muy comunes se conecten mediante puertos de direcciones determinadas. EGA (Enhanced Graphic Adapter)

2B0-2BF

Dirección

EGA

2C0-2CF

000-00F

EGA

2D0-2DF

Controlador de interrupciones PIC#1 8259A

020-021

GPIB Adaptador 0 (AT)

2E0-2E7

Temporizador programable PIT 8253 y 8254

040-043

Puerto serie 8250 (COM4)

2E8-2EF

Controlador periféricos PPI 8255 (XT)

060-063

Puerto serie 8250 (COM2)

2F8-2FF

Controlador 8742 (AT)

060-064

Tarjetas específicas (prototipos)

300-30F

Altavoz del sistema

061-061

Tarjetas específicas (prototipos)

310-31F

CMOS RAM & NMI Mask Reg (AT)

070-071

Controlador disco duro (XT)

320-32F

Registros de página DMA

081-08F

Tarjeta de red

360-363

Controlador de interrupciones PIC#2 (AT)

0A0-0A1

Tarjeta de red

368-36B

NMI Mask register (XT)

0A2-0AF

Puerto paralelo (LPT1)

378-37F

Controlador DMAC#2 secundario (AT)

0C0-0DF

SDLC Puerto 2

380-38F

Clear / Reset del coprocesador matemático

0F0-0F1

SDLC Puerto 1

3A0-3AF

Coprocesador matemático 80287

0F8-0FF

MDA (Monochrome Display Adapter)

3B0-3BB

Controlador de disco duro (AT)

1F0-1FF

Puerto paralelo (LPT3)

3BC-3BF

Puerto de juegos

200-20F

EGA

3C0-3CF

Unidad de expansión (XT)

210-21F

CGA

3D0-3DF

Ratón (conectado al bus)

238-23B

Puerto serie 8250 (COM3)

3E8-3EF

Ratón de bus alternativo

23C-23F

Controlador de disquete

3F0-3F7

Puerto paralelo (LPT2)

278-27F

Puerto serie 8250 (COM1)

3F8-3FF

Algunas direcciones (hex) de puertos en el PC XT/AT Dispositivo Controlador DMAC#1 primario 8237A

Arquitectura de E/S de comunicaciones de red 2

En la tabla adjunta se muestran algunas de estas direcciones típicas para dispositivos de E/S. Las referencias a los chips se refieren a los utilizados en los primeros PCs. Actualmente han sido sustituidos por uno o dos integrados (Chipset) que realizan todas las funciones. Puede observarse que para un mismo periférico se tienen varias direcciones (un "rango"). La razón es que estos dispositivos tienen varios registros y/o son programables, para lo que disponen de registros especiales (cada registro de un Byte tiene una dirección, y estas son correlativas). Por ejemplo, el controlador de puerto serie de los primeros PCs era un circuito integrado 8250 de National Semiconductor; que dispone de 8 registros, aunque los datos se reciben y transmiten por uno de ellos, el resto sirve para programar y controlar el funcionamiento del chip. Respecto a las asignaciones "Estándar" de algunos puertos, es pertinente hacer algunas observaciones: En realidad IBM definió de forma distinta las direcciones de puerto de las interfaces de impresora en los PC monocromo y en los de color. Las asignaciones fueron las siguientes: Puerto Monocromo

Color

LPT1

3BC-3BFh 378-37Fh

LPT2

378-37Fh

278-27Fh

LPT3

278-27Fh

---

En lo referente a los puertos serie, durante la secuencia inicial de identificación del hardware, la BIOS realiza una búsqueda de dispositivos de E/S por direcciones en un orden determinado, y les asigna un nombre lógico según el orden de aparición. En el caso de los puertos serie el orden suele ser el siguiente: Puerto Dirección COM1 3F8-3FFh COM2 2F8-2FFh COM3 3E8-3EFh COM4 2E8-2EFh

Podemos conocer las direcciones de E/S asignadas a los distintos dispositivos periféricos en un determinado sistema. En el caso de tener un sistema operativo Windows bastará con acceder a las propiedades del dispositivo hardware que nos interese conocer. Obtendremos una pantalla similar a la de la figura

Los usuarios de Linux pueden consultarse en el fichero /proc/ioports mediante el comando cat /proc/ioports

Arquitectura de E/S de comunicaciones de red 3

2.1.2 Direcciones mapeadas en memoria Las direcciones mapeadas en memoria se eligieron para algunos dispositivos como los adaptadores gráficos, que requerían mover grandes cantidades de datos muy rápidamente. Con objeto de no causar conflictos con la RAM general, algunas de estas direcciones fueron mapeadas desde el principio por los diseñadores de IBM, fuera de la denominada memoria convencional. Es decir, fuera del espacio de los 640 KB que podían utilizarse en los primeros PC's para Sistema y programas de aplicación. Por ejemplo, el adaptador de video utiliza un área de memoria de 128 KB mapeada entre las direcciones A0000-BFFFFh. Sin embargo, los decodificadores de direcciones de periféricos de los primitivos PC's solo podían utilizar direcciones de 10 bits para tales accesos, por lo que las direcciones de puertos estaban constreñidas a 210 (1 KB 0000-0400h). En realidad el espacio era aún más pequeño, puesto que los primeros 256 Bytes estaban copados por algunos dispositivos de la placa-base, resultando que los dispositivos E/S debían ser mapeados en 768 Bytes. Generalmente se utilizaron fragmentos de 256 Bytes en la forma xxF0-xxFFh, organizados de forma bastante desordenada. La introducción del AT amplió estas direcciones a 16. Sin embargo, incluso los 64 KB resultantes eran un espacio pequeño y de organización caótica, dado que los nuevos dispositivos se construían de forma que fueran compatibles con las antiguas placas ISA que solo reconocían direcciones de 10 bits. Incluso las placas para buses posteriores que fueron desarrollados pensando en 64 KB porque debían ser compatibles hacia atrás con las antiguas placas ISA (que coexistían en las nuevas). El resultado de todo esto es que, incluso los sistemas actuales con muchos MB. de RAM, deben seguir lidiando con los puertos a través de pequeñas ventanas de memoria con localizaciones absurdas. Comunicar con los puertos Nos detendremos brevemente en analizar los aspectos involucrados en las operaciones E/S con los puertos desde una doble vertiente: Lógica y física; esta última relativa a los mecanismos involucrados en el intercambio.

2.1.3 Aspectos lógicos El software utilizado depende de la modalidad de direccionamiento (dedicado o mapeado) que se elija. En el segundo caso, se dispone un amplio repertorio de recursos para mover datos entre los registros y la memoria (la mayoría de las instrucciones del procesador operan de esta forma), así como de los mecanismos auxiliares de transferencia, como el acceso directo a memoria DMA. El panorama es distinto cuando se trata de puertos de direccionamiento dedicado. En este caso, para realizar las operaciones E/S en los procesadores 8088 y descendientes, solo se dispone de dos instrucciones específicas: IN y OUT. La primera lee un byte del registro de salida del puerto y lo sitúa en un registro del procesador; la segunda escribe el contenido de un registro del procesador en un registro del puerto. Por supuesto, cualquier programa que quiera utilizar puertos deberá emplear directa o indirectamente estas dos instrucciones ensamblador, aunque en muchos casos no es imprescindible enredarse en demasiados detalles. Los usuarios de DOS pueden utilizar servicios del Sistema; concretamente la interrupción 21h que realiza operaciones de E/S con puertos (utilizando IN y OUT por supuesto). Por ejemplo, las instrucciones: MOV DL,7 MOV AH,2 INT 21

provocan un pitido en el sistema bajo DOS. La explicación es la siguiente: La última instrucción invoca una interrupción software número 33 (21h) que, como hemos indicado, corresponde a los servicios del DOS. Cuando esto ocurre, se comprueba el contenido del registro AH, que en este

Arquitectura de E/S de comunicaciones de red 4

caso es 2 (valor previamente establecido en la segunda instrucción), lo que indica que debe escribirse un carácter en pantalla (un dispositivo de salida); en este caso, el carácter que se envía al puerto es el contenido del registro DL, que previamente se ha establecido en el valor 7 con la primera instrucción. El 7 es el valor BELL ASCII; cuando se intenta mostrar este carácter, se produce un pitido en el altavoz del sistema. Los demás Sistemas disponen de utilidades análogas. Por ejemplo, los sistemas Windows disponen de una DLL específica para este tipo de servicios.

2.1.4 Aspectos físicos El procedimiento que se sigue el procesador para las E/S hacia puertos, es siempre el mismo: poner el dato en el bus de datos y la dirección en el de direcciones. Como indicamos a continuación, el sistema sabe que se trata de una dirección de memoria (real o de puerto mapeado) o de un puerto de dirección dedicada, y cual es la acción esperada (lectura o escritura) porque se dispone de 4 líneas específicas en el bus de control: IOR: Orden de lectura para dispositivo E/S conectado al bus, que debe colocar un dato en el bus de datos. IOW: Orden de escritura para dispositivo E/S, que debe leer el dato situado en el bus. MEMR: Esta señal indica a los dispositivos colocar un dato en el bus de datos.

de

memoria

que

deben

MEMW: Señal que indica a los dispositivos almacenar el dato colocado en el bus de datos.

de

memoria

que

deben

Una cuestión adicional es que cuando la comunicación debe establecerse desde el lado del puerto (es el puerto el que desea establecer comunicación con el sistema), primero debe anunciarlo al procesador, para lo que se utiliza un sistema de interrupciones. La consecuencia es que la mayoría de los puertos disponen de líneas IRQ asignadas para este menester.

3

TÉCNICAS DE ENTRADA Y SALIDA (E/S)

Los periféricos agrupan a una enorme cantidad de dispositivos de muy distintas naturaleza aunque todos ellos se caracterizan por dar un enlace con el mundo exterior al ordenador. Sin ellos la máquina sería un elemento cerrado inservible pues no podríamos introducir ni sacar ninguna información. Si la CPU tuviera que conectarse directamente con todos los periféricos, el sistema tendría un rendimiento muy bajo, por eso se utilizan las interfaces, de manera que la CPU les envía la información y son éstas las que se encargan de conectarse con los periféricos. Esto tiene el inconveniente de que la CPU debe estar en constante conexión con las interfaces de entrada/salida con la consiguiente pérdida de ciclos de CPU. La solución a este problema ha sido crear dispositivos, cada vez más sofisticados, que se encargan de conectarse con las interfaces. Junto con la CPU y la memoria, el tercer elemento clave en un sistema computador son los módulos de entrada/salida. Los módulos de entrada/salida se conectan directamente al bus de sistema y su misión es controlar uno o más periféricos, es decir son los encargados de llevar el peso de la transferencia. Para poder llevar a cabo su misión deben contener la lógica necesaria para permitir la comunicación entre el periférico y el bus. Las funciones asignadas al módulo de entrada/salida son: -

Control y temporización de la transmisión de información

-

Comunicación con la CPU

Arquitectura de E/S de comunicaciones de red 5

-

Comunicación con los dispositivos periféricos

-

Almacenamiento temporal de datos (función de buffer)

-

Detección y corrección de errores.

Llamamos técnicas de entrada/salida a las que utiliza el módulo de E/S para comunicarse con el procesador. Existen tres técnicas: Programada, Interrupciones, Acceso Directo a Memoria.

3.1

E/S PROGRAMADA (POLLING, SONDEO, ESCRUTINEO)

Al proceso de comprobar periódicamente los bits de estado de los periféricos para ver si es el momento de realizar la siguiente operación de entrada/salida se le llama escrutinio, sondeo, encuesta (polling). Es la forma más simple de que un dispositivo de entrada/salida se comunique con el procesador. El periférico pone la información en el registro de estado del módulo de entrada/salida y el procesador debe venir y recoger la información, por lo tanto el procesador tiene el control y hace todo el trabajo. La principal característica de esta técnica es que la CPU permanece en un ciclo hasta que el periférico modifica el registro de estado del módulo para informar que está disponible para una nueva operación. El computador adapta su velocidad de trabajo a la del periférico (qué esta marcada por los circuitos electromecánicos), y además en muchas ocasiones pierde ciclos de trabajo efectivo debido a la espera. Esta forma de trabajo tiene algunos inconvenientes, como son: -

Pérdida de tiempo, puesto que durante la espera la CPU no hace trabajo útil. Con periféricos lentos el bucle de espera puede repetirse miles de veces.

-

Esta técnica es difícil de aplicar cuando se quiere para atender a varios periféricos

-

Existen tareas que no pueden esperar a que acabe el ciclo de espera.

-

Una solución parcial es la limitación del tiempo de espera del bucle.

Solo se usa para periféricos lentos. Por ejemplo, la frecuencia del ratón es de 0,02Kbytesps, muy baja comparada con la de discos 2000Kbps o del disco óptico de 500kbps. Existe otra modalidad de entrada salida programada llamada sin espera de respuesta. En esta modalidad se supone que cuando el procesador lee el dato, este ya se encuentra preparado. Elimina el bucle de espera pero es muy propensa a errores.

Arquitectura de E/S de comunicaciones de red 6

3.2

LAS INTERRUPCIONES

Una interrupción es una bifurcación externa al programa en ejecución provocada por una señal que viene del exterior de la CPU. Esta señal llega a través de una línea llamada de petición de interrupción. Las interrupciones también pueden ser internas a la CPU en este caso se llaman excepciones. -

La CPU indica al módulo de E/S el periférico al que quiere acceder y la operación que quiere realizar

-

A continuación se desentiende de la operación y se pone a trabajar en algún otro proceso

-

Cuando el módulo de entrada/salida acaba la operación, interrumpe a la CPU para indicarle que ya está lista para intercambiar información con ella.

-

La CPU realiza la transferencia de información tras lo cual continua con el trabajo interrumpido

Una de las características más importantes de esta técnica es que debe realizarse una interrupción a la CPU por cada byte que se intercambia. Esto como veremos más adelante será una de las causas que provocan la aparición de otras técnicas de Entrada/Salida. Además una interrupción es asíncrona, es decir se produce independientemente de la señal de reloj que sincroniza el sistema. Su principal ventaja es que eliminan el ciclo de espera del procesador entre cada entrada de byte. Se llama rutina de servicio de interrupción a la rutina que se ejecuta en respuesta a una solicitud de interrupción. Su forma de actuar es similar a la de una subrutina, debido a que rompe la secuencia de ejecución del programa, aunque es diferente porque el programador no sabe de antemano cuando se llevará a cabo.

Arquitectura de E/S de comunicaciones de red 7

3.3

EL ACCESO DIRECTO A MEMORIA (DMA)

Las técnicas de escrutinio y de interrupciones sólo son útiles para transferencias de pequeño ancho de banda. En estos casos, el peso de la transacción la sigue llevando la CPU. Pero cuando hay que realizar grandes intercambios de información entre un dispositivo de alta velocidad y la CPU, su utilización puede degradar enormemente el rendimiento del sistema. Este es el caso de los discos duros en los que el ancho de banda es grande (grandes bloque de información que pueden contener cientos o miles de bytes). Este es el motivo por el que los diseñadores de computadores inventaron un mecanismo para descargar al procesador de trabajo y lograr que el controlador del dispositivo transfiriese datos directamente a/desde la memoria, sin involucrar al procesador. A este mecanismo se le denomina Acceso Directo a Memoria (DMA). En esta nueva técnica todavía se utilizan las interrupciones para comunicarle al procesador que ha acabado la transferencia o para comunicarle un error. El ADM se implementa con un controlador especializado que transfiere datos entre un dispositivo de entrada/salida y la memoria independientemente del procesador. 1. Cuando la CPU desea leer o escribir un bloque de datos, envía un comando al controlador de DMA comunicándole la siguiente información: - Tipo de operación (si es entrada o salida) - Dirección del módulo de Entrada/Salida - Primera posición de la memoria a la que se desea acceder - Nº de palabras a leer o escribir 2. A continuación la CPU reanuda su trabajo, y es el controlador de DMA el encargado de manejar la E/S. 3. Cuando la transferencia ha terminado el controlador de DMA envía una señal de interrupción a la CPU. Como se puede ver la CPU solo interviene al principio y al final de la operación PERIFÉRICOS DE COMUNICACIONES DE RED Hasta ahora hemos analizado los dispositivos E/S de forma genérica. En las siguientes imágenes observamos el aspecto que nos ofrecen algunos dispositivos comerciales orientados a las comunicaciones de red. Diferenciamos los dispositivos internos que precisan una instalación física en el interior del PC (normalmente en la ranura PCI) y otros denominados externos, cuyo enlace con el ordenador se llevará a cabo a través de conexiones USB, RS-232, etc. Conviene recordar que todos ellos actúan según se ha explicado en las páginas anteriores. Todos ellos cuentan con registros de control, registros de datos, etc que permiten su configuración, conocimiento de su estado y su transmisión/recepción de datos.

Arquitectura de E/S de comunicaciones de red 8

Arquitectura de E/S de comunicaciones de red 9

Related Documents

Tema 2 - Arquitectura E-s
October 2019 21
Arquitectura
June 2020 28
Arquitectura
August 2019 73
Arquitectura
April 2020 39

More Documents from ""

Tema 9 Servicio Irc
October 2019 18
October 2019 18
October 2019 21
Mini Chat
October 2019 38
Tema 2 - Arquitectura E-s
October 2019 21