martes, 6 de marzo de 2012

Buses


Buses

Un sistema Pentium grande tiene en la actualidad ocho buses (caché, local, memoria, PCI, SCSI, USB, IDE e ISA), cada uno con una velocidad de transferencia y función diferente. Los dos principales buses son el bus ISA (Industry Standard Architecture; Arquitectura Estándar de la Industria) original del PC de IBM y su sucesor, el bus PCI (Peripheral Component Interface; Interfaz de Componentes Periféricos). 
El bus ISA, que fue originalmente el bus del PC/AT de IBM, opera a 8,33 MHz y puede transferir dos bytes a la vez, para dar una velocidad máxima de 16,67 MB/s. Puede operar a 66 MHz y transferir 8 bytes a la vez, para dar una tasa de datos de 528 MB/s. La mayoría de los dispositivos de E/S de alta velocidad utilizan ahora el bus PCI. Incluso algunos ordenadores que no son de Intel utilizan el bus PCI, debido al gran número de tarjetas de E/S disponibles para ese bus.
En esta configuración, la CPU se comunica por el bus local con el chip puente (bridge) PCI, y el chip puente PCI se comunica con la memoria a través de un bus de memoria dedicado, que a menudo opera a 100 MHz. Los sistemas Pentium tienen una caché de nivel 1 en el chip, y una caché de nivel 2 mucho más grande fuera del chip, conectada a la CPU por el bus de caché.
Además, este sistema contiene tres buses especializados: IDE, USB y SCSI. El bus IDE permite conectar dispositivos periféricos tales como discos y unidades de CD-ROM al sistema. El bus IDE es una expansión de la interfaz controladora de disco en el PC/AT y es ahora estándar en casi todos los sistemas basados en el Pentium para el disco duro y a menudo para el
CD-ROM.
El USB (Universal Serial Bus; Bus Serie Universal) se inventó para conectar al ordenador todos los dispositivos de E/S lentos, tales como el teclado y el ratón. Este bus utiliza un conector pequeño con cuatro contactos, dos de los cuales suministran energía eléctrica a los dispositivos USB. El USB es un bus centralizado en el que un dispositivo raíz consulta a los dispositivos de E/S cada milisegundo para ver si tienen algún tráfico. El bus puede manejar una carga agregada de 1,5 MB/s. Todos los dispositivos USB comparten un único driver de dispositivo USB, lo que hace innecesario instalar un nuevo driver para cada dispositivo USB nuevo.
El bus SCSI (Small Computer System Interface; pequeña interfaz para sistemas de ordenador) es un bus de alto rendimiento diseñado para discos rápidos, escáneres y otros dispositivos que necesitan un considerable ancho de banda. Puede operar hasta a 160 MB/s.
Otro bus más es el IEEE 1394, también conocido como FireWire, aunque estrictamente hablando FireWire es el nombre que Apple utiliza para su implementación del 1394. Al igual que el USB, el bus IEEE 1394 transmite bits en serie pero está diseñado para transferir paquetes a velocidades de hasta 50 MB/s, lo que lo hace muy útil para conectar al ordenador cámaras de vídeo digitales y dispositivos multimedia similares. A diferencia del USB, el IEEE 1394 no tiene un controlador central. SCSI e IEEE 1394 actualmente se enfrentan a la competencia de una versión más rápida del USB que está siendo desarrollada (USB 2.0).
El plug and play hace posible que el sistema pueda recoger automáticamente información sobre los dispositivos de E/S, asignando de forma centralizada los niveles de interrupción y las direcciones de E/S, para luego comunicar a cada tarjeta los valores concretos que le corresponden. Muy brevemente, esto funciona como sigue en el Pentium. Todo Pentium tiene una placa madre (motherboard) con un programa llamado el sistema BIOS (Basic Input Output System; Sistema Básico de Entrada/Salida). El BIOS contiene software de E/S de bajo nivel, incluyendo procedimientos para leer del teclado, escribir en la pantalla y realizar E/S de disco, entre otras cosas. Hoy en día, el BIOS reside en RAM de tipo flash, que no es volátil pero que puede ser actualizada por el sistema operativo cuando se detecten errores en el BIOS.
Cuando arranca el ordenador, comienza a ejecutarse el BIOS. Lo primero que hace es determinar cuanta RAM está instalada, y comprobar si el teclado y otros dispositivos básicos están instalados y responden correctamente. A continuación comienza a explorar los buses ISA y PCI para detectar todos los dispositivos conectados a ellos. Algunos de esos dispositivos suelen ser heredados (legacy, es decir, diseñados antes de inventarse el plug and play) y tienen niveles de interrupción y direcciones de E/S fijos (posiblemente establecidos por interruptores o puentes en la tarjeta de E/S, pero no por el sistema operativo). Estos dispositivos se registran, así como los de tipo plug and play. Si los dispositivos presentes no son los mismos que había la última vez que se arrancó el sistema, se configuran los nuevos dispositivos encontrados.
Luego el BIOS determina el dispositivo de arranque probando con una lista de dispositivos almacenados en la memoria CMOS. El usuario puede alterar esa lista entrando en el programa de configuración (setup) del BIOS inmediatamente después del arranque.
Normalmente, se intenta arrancar desde un disquete metido en la disquetera. Si eso falla, se prueba con el CD-ROM. Si no hay un disquete ni un CD-ROM, el sistema se arranca desde el disco duro. Se lee el primer sector del dispositivo de arranque, se almacena en la memoria y se ejecuta. Este sector contiene un programa que normalmente examina la tabla de particiones al final del sector de arranque para determinar cuál es la partición que está activa. Luego se lee un programa cargador de arranque secundario de esa partición. El cargador lee el sistema operativo de la partición activa y lo pone en marcha.
 Después, el sistema operativo consulta el BIOS para obtener la información de configuración. Luego comprueba para cada dispositivo si dispone del driver correspondiente. Si falta algún driver, pide al usuario que inserte un disquete o un CD-ROM con el driver del dispositivo (proporcionado por el fabricante del dispositivo). Una vez que el sistema operativo tiene todos los drivers de dispositivo, los carga en el núcleo. A continuación inicializa sus tablas internas, crea todos los procesos de fondo (background) necesarios y arranca un programa de inicio de sesión (login) o GUI en cada terminal. Al menos, esa es la forma en que se supone que funciona. 

No hay comentarios:

Publicar un comentario