ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Arquitectura De Salida


Enviado por   •  1 de Abril de 2014  •  1.306 Palabras (6 Páginas)  •  207 Visitas

Página 1 de 6

1.1. Arquitectura de Entrada/Salida

Uno de los pilares básicos de un ordenador es el trasiego de información entre sus distintos dispositivos, como la CPU, la memoria RAM y los periféricos de E/S. Los circuitos que interconectan estos dispositivos y por los que fluyen los datos se llaman buses. Existen distintos tipos de buses, tales como el PCI, EISA, ISA, USB o AGP, que interconectan los distintos periféricos del ordenador. En todo ordenador existen, además, otros buses, como son el frontside bus FSB y el backside bus BSB, que forman el nivel más bajo de la jerarquía de buses, y el system bus, que interconecta los distintos periféricos y está en el segundo nivel de la jerarquía. El BSB puede estar incluido dentro del chip de CPU y es usado para interconectar la CPU con la memoria cache. El FSB es usado para conectar el procesador con el controlador de memoria RAM. El system bus, que suele ser el PCI, tiene un propósito general de interconexión de distintos dispositivos.

Los distintos buses son controlados a través de dos chips llamados puente norte (northbridge) y puente sur (southbridge). Se solía usar como bus de interconexión un bus PCI, pero esto a la larga produjo un cuello de botella, por lo que los fabricantes optaron por implementar su propia interfaz de comunicaciones para sus chipsets. El puente norte maneja las comunicaciones entre la CPU, la RAM, los buses AGP y PCI-Express, mientras que el puente sur maneja las comunicaciones con periféricos más lentos. A este chip por tanto se conectan los periféricos de E/S. Cada dispositivo se conecta a uno y sólo a un bus, el cuál comprende de una serie de puertos de E/S, una interfaz y un controlador

1.1.1. Puertos de entrada salida

Cada dispositivo conectado a través del bus de E/S cuenta con una serie de direcciones para poder comunicarse. Estas direcciones son llamadas puertos de E/S y en el espacio de direcciones de una arquitectura PC contamos con 65.536 puertos de 8 bits, que pueden ser accedidos individualmente, en parejas (puertos consecutivos y en direcciones pares) como palabras de 16 bits o de 4 en 4 (consecutivos y en direcciones múltiplos de 4) como palabras de 32 bits. La CPU cuenta con dos maneras de comunicarse con los dispositivos a través de los puertos: Una es tratando directamente con los puertos a través de instrucciones de ensamblador in, ins, out y outs. La otra es mapeando los puertos en memoria y usando instrucciones que puedan acceder a memoria directamente. Esta segunda manera es más rápida y es la que se suele usar.

Con el objetivo de facilitar la programación para dispositivos, los puertos de cada dispositivo están estructurados. Las órdenes y los datos son enviados a través del control register y del output register, respectivamente. Asímismo, el estado del dispositivo y los datos de entrada son leídos del status register y del input register, existen 4 instrucciones in, ins, out y outs para acceder a los puertos.

1.1.2. Recursos

Aunque acceder a un puerto de E/S es bastante sencillo, saber qué puertos tiene asignado un determinado dispositivo puede no ser tan fácil. Con frecuencia, un driver debe escribir a ciegas en algunos puertos para sondear el dispositivo, lo cual puede incurrir en un fallo del sistema si el puerto ya está siendo usado por otro dispositivo. Para evitar este tipo de situaciones, el kernel mantiene una lista de los puertos de E/S asignados, en términos de recursos. Un recurso representa, en general, una parte de alguna entidad que puede ser asignada exclusivamente a un dispositivo. En este caso, es un rango de direcciones de puertos, aunque también pueden ser un rango de direcciones de memoria o números de interrupción. Todos los recursos de un mismo tipo son almacenados en una estructura arbórea. En el caso de los puertos de E/S, la raíz se llama ioport_resource. En estos árboles, cada nodo representa un subrango del rango asociado al padre, teniendo la raíz todo el espacio de direcciones asociado. Este árbol es accesible a través de /proc/ioports.

1.1.2.1. Funciones del manejo de recursos:

Los manejadores deben usar las siguientes funciones pasando como parámetros la raíz del árbol de recursos y la dirección del nuevo recurso.

request_resource(): Asigna un recurso a un dispositivo de E/S. Se puede usar para comprobar el estado

allocate_resource(): Encuentra un rango de direcciones en el árbol disponible de un determinado tamaño y alineamiento.

release_resource():

...

Descargar como (para miembros actualizados)  txt (8.3 Kb)  
Leer 5 páginas más »
Disponible sólo en Clubensayos.com