Canales
La red de canales serie, dinámicamente conmutados, permite varias comunicaciones al mismo tiempo frente a la aproximación de medio compartido de un bus tradicional. Además, los canales se pueden agrupar para aumentar el ancho de banda. Rendimiento aproximado: 1 canal da casi el doble de ancho de banda que PCI, configurando 4 canales se equipara a PCI-X y con 8 canales al AGP más rápido. De momento, sus características y velocidad no le permiten sustituir al bus de memoria o soportar comunicación entre procesadores.
Bus PCI
Estructura
Variedad de configuraciones con uno o más procesadores.
- 49 líneas de señal obligatorias (# indica señal activa a nivel bajo):
- Sistema: reloj y reinicio (CLK y RST#);
- Direcciones y datos: 32 líneas multiplexadas para datos y direcciones (little endian) –> AD[31:0] además de 4 líneas de control multiplexadas –> C/BE[3:0]# (Comando/BitEnable) y de una línea de control de paridad (PAR);
- Control de interfaz: temporización y coordinación de las transferencias (6 líneas): indicación de comienzo y duración de transferencia por maestro (FRAME#), maestro preparado (IRDY#), esclavo preparado (TRDY#), esclavo desea que maestro pare transacción actual (STOP#), respuesta del dispositivo esclavo seleccionado cuando reconoce su dirección (DEVSEL#), selección de un dispositivo durante la fase de inicialización del bus (IDSEL);
- Arbitraje: solicitud de bus (REQ#) y concesión de bus (GNT#);
- Señales de error: error de paridad (PARR#) y error del sistema (SERR#).
- Además hay 51 señales opcionales de interrupción, soporte caché, ampliación del bus a 64 bits, test…
Espacio de Direcciones y Operaciones
La especificación PCI establece 3 espacios de direcciones diferentes: configuración, E/S aislada, E/S mapeada en memoria.
- Operaciones:
- 0001 Ciclo especial;
- 0010 Lectura E/S;
- 0011 Escritura E/S;
- 0110 Lectura de Memoria;
- 0111 Escritura en Memoria;
- 1010 Lectura de configuración;
- 1011 Escritura de configuración;
- 1110 Lectura de línea de memoria;
- 1111 Escritura e invalidación de memoria.
Transferencia de Datos
Cada transferencia de datos en el bus PCI es una transacción única. Transacción PCI: 1 fase de direccionamiento + 1 o más fases de datos.
- Todos los eventos se sincronizan en transiciones de bajadas de reloj (mitad de ciclo de reloj). Los dispositivos del bus interpretan las líneas del bus en los flancos de subida (comienzo del ciclo del bus).
- Fase Direccionamiento:
- Maestro de bus identifica dispositivo destino (esclavo) y tipo de transacción.
- Maestro de bus activa la señal FRAME#.
- Cada dispositivo conectado al bus PCI decodifica la dirección para determinar si pertenece a su espacio de direcciones. El dispositivo al que pertenece la dirección activa DEVSEL#.
- Fase de Datos:
- Las señales C/BE# determinan el número de bytes habilitados para la transmisión en el bus de datos.
- Las señales IRDY# y TRDY# controlan la transferencia. Los datos son transmitidos solo cuando ambas señales están activadas.
- Duración y Finalización de la Transacción:
- El maestro de bus mantiene la señal FRAME# activada desde el comienzo de la transacción hasta que está preparado para finalizar la fase de datos.
- La finalización de la transacción se indica mediante la desactivación de FRAME# junto con la activación de IRDY#.
- Cuando el último dato ha sido transferido se libera el bus mediante la desactivación de IRDY#.
- Nota: en PCI hay un ciclo de espera al menos en lectura entre fase de direccionamiento y la o las de datos.
Arbitraje del Bus
Esquema de arbitraje paralelo centralizado síncrono. El arbitraje se solapa con la comunicación del maestro de bus actual, de forma que no se pierden ciclos: arbitraje de bus solapado u oculto, de este modo ganamos ciclos, aunque se pierde alguno por el hecho de no poder hacer varias transferencias a la vez. La especificación PCI no indica un algoritmo particular de arbitraje.
Periféricos
Introducción
Taxonomía de dispositivos de E/S: por comportamiento (entrada, salida, almacenamiento), por interlocutor (persona, máquina), por tasa de transferencia (pico en la transferencia de datos generable entre dispositivo y procesador-memoria).
- Ejemplo dispositivo de E/S: redes –> medio más habitual para la comunicación entre ordenadores. Características clave: distancia, velocidad, topología y compartición de canal. En redes de largo alcance (ARPANET –> Internet) la clave es la estandarización de la pila de protocolos TCP/IP.
Memoria Secundaria
Tradicionalmente dispositivos de almacenamiento magnético. Todavía hoy los discos magnéticos son la base de la memoria secundaria de un ordenador.
- Inicialmente: tarjetas perforadas. Actualmente: dispositivos magnéticos (discos y cintas), ópticos (CD, DVD, HD DVD y Blue Ray Disc), magneto-ópticos (MiniDisc) y memorias flash.
- Principal diferencia con memoria principal: no volátiles.
- Otras diferencias: más lentos, al ser en muchos casos dispositivos mecánicos (memoria flash excepción) y menor coste por megabyte –> gran capacidad a bajo coste.
- Un disco magnético es un plato circular construido con metal o plástico cubierto por un material magnetizable.
- Los datos se graban en él y se recuperan mediante una bobina (cabeza o cabezal) que permanece quieta mientras el plato rota (con velocidad angular constante) bajo ella.
- Clásicamente hay 2 tipos de discos magnéticos:
- Disquetes: plato flexible.
- Discos duros: plato metálico rígido –> posibilidad de mayor tamaño al ser rígido, de mayor densidad de almacenamiento al poder ser controlado de forma más precisa, de girar a mayor velocidad (mayor tasa de transferencia de datos) y de incorporar más platos.
Discos Magnéticos
Un sistema de disco consta de 3 partes: el disco (conjunto de discos o platos), el mecanismo de disco (mecanismo electromecánico que hace girar el disco y mueve las cabezas) y el controlador de disco (circuitería electrónica que controla el funcionamiento del sistema).
- Los discos constan de una serie de platos (entre 1 y 5 habitualmente de entre 1» y 3,5») con 2 superficies grabables cada uno, que giran a una velocidad entre 5400 y 15000 rpm. Cada superficie magnética se divide en círculos concéntricos o pistas (entre 10K y 50K pistas por superficie). Las pistas se dividen en sectores (100-500 por pista) donde se almacena la información. Un sector es la mínima cantidad de información manejable (leer o escribir) del disco.
- Cada pista es del mismo ancho que la cabeza y pistas adyacentes están separadas por bandas vacías para evitar interferencias.
- Cada sector contiene además de los datos, información de control útil para el controlador de disco (contiene pues identificador del sector, información de estado, campos de sincronización, datos, ECC y huecos).
- Tradicionalmente todas las pistas tenían el mismo número de sectores y almacenaban el mismo número de bits, con el objetivo de simplificar la electrónica –> menor densidad de grabación en las pistas exteriores. La sucesiva introducción de complejidad en los controladores de disco permitió tanto el uso de sectores variable como de técnicas de grabación de densidad de bit constante. Normalmente las cabezas de las diferentes superficies están conectadas entre sí, con lo que se mueven de forma conjunta, situándose sobre la misma pista en cada superficie magnética: cilindro.
- Algunas características de los sistemas de discos: transportabilidad del disco (fijo, extraíble), platos (único, múltiples), superficies (única, doble), desplazamiento de cabezas (fija una por pista, móvil una por superficie), mecanismo de la cabeza (contacto [disquete], separación fija, separación aerodinámica).
- Sectores contiguos se agrupan en cluster. Un cluster es la menor unidad de disco que puede ser asignada a un fichero. Las ventajas de usar un tamaño de cluster grande es que se optimizan recursos. Los inconvenientes es el aumento de espacio desperdiciado.
- En la actualidad los discos duros suelen incorporar memorias caché para aumentar su rendimiento.
- Proceso de acceso a los datos:
- Acceso al bloque –> tiempo de acceso (2 pasos)
- Búsqueda o posicionado. Seleccionar la pista correcta a la que acceder: colocación de la cabeza sobre la pista en sistemas con cabeza móvil, selección electrónica de una cabeza en sistemas con cabezas fijas –> tiempo de búsqueda (se proporcionan valores mínimos, máximos y medios).
- Espera. Esperar a que la rotación en la pista coloque el sector deseado bajo la cabeza –> latencia o retardo rotacional. Latencia Media: la mitad de la revolución del disco –> LatAvg = 0,5 rotación / velocidad de rotación del disco (rpm) –> ejemplo: 0,5 rotación / (7200rpm/60) = 4,2 ms.
- Transferencia: transferencia de un bloque en bits (típicamente un sector) –> tiempo de transferencia: es función del tamaño de sector, la velocidad de rotación y la densidad de grabación de la pista –> TiempoTransferencia = Tt = b/rN –> con b = número bytes a transferir, N número de bytes en la pista y r velocidad de rotación (rps).
- Control del disco y de la transferencia –> tiempo del controlador.
- Tiempos de espera adicionales impuestos por el sistema.
- Acceso al bloque –> tiempo de acceso (2 pasos)
RAID
Conjuntos de discos que operan independientemente y en paralelo. Mejora en:
- Rendimiento: con varios discos, las peticiones separadas de E/S se pueden gestionar en paralelo si los datos requeridos residen físicamente en discos diferentes. Una única petición de E/S también puede ser ejecutada en paralelo si el bloque de datos al que se accede está distribuido a lo largo de varios discos (stripping). En principio, con un conjunto de discos la fiabilidad disminuye, N discos tendrían 1/N veces la fiabilidad de uno solo.
- Fiabilidad: puede incrementarse añadiendo información redundante –> tolerancia a fallos. Con redundancia, la fiabilidad de un conjunto de discos puede ser mucho mayor que la de un único disco grande equivalente (MTTR << MTTF).
Variedad de alternativas para organizar los datos en múltiples discos. Se desarrolla una serie de esquemas estándares, con distintos grados de sobrecarga introducida y rendimiento: RAID.
- RAID es un conjunto de esquemas o niveles independientes con las siguientes características comunes:
- Conjunto de unidades físicas de disco vistas por SO como una única unidad lógica.
- Datos distribuidos a través de las unidades físicas del conjunto.
- Redundancia de datos aumenta fiabilidad del conjunto –> consideraciones de diseño (para reducir MTTR): disco de reserva (hot spares) y cambio de discos en caliente (hot swapping).
- RAID 0: no incluye redundancia de datos. Configuración básica para mejorar prestaciones y capacidad a bajo coste pero empeorando fiabilidad. Un único archivo grande se almacena en unidades de disco separadas partiéndolo en trozos más pequeños (tiras de datos) que se reparten cíclicamente entre los discos (stripping). Una operación de E/S que implica a tiras lógicas contiguas se puede gestionar en paralelo: se reduce tiempo de transferencia. Al conjunto de tiras lógicamente consecutivas que se proyecta sobre la misma tira en cada disco se llama franja. Al sistema de ficheros la colección de discos se le presenta como un único disco grande.
- RAID 1: todas las configuraciones de RAID salvo la 0 incluyen información redundante para permitir la recuperación de datos en caso de fallo de disco. En el caso de RAID 1 la redundancia se logra mediante la simple duplicación de todos los datos. Se realiza una distribución cíclica de los datos, como en el caso de RAID 0, pero con un disco espejo para cada disco del conjunto. Gran fiabilidad. Ventajas: una petición de lectura puede ser servida por cualquiera de los discos que contiene los datos perdidos; respecto a RAID 0: posibilidad de recuperar errores; respecto a RAID 2-5: no hay fallo de penalización de escritura; la recuperación tras un fallo es sencilla. Inconveniente: el coste, se requiere el doble del espacio del disco lógico que se quiere soportar.
- Los niveles RAID 2, 3, 4 y 5 incrementan la fiabilidad mediante la incorporación de esquemas de detección de errores, sin necesidad de duplicar totalmente los discos. Toda la información redundante se mantiene en un único disco en los niveles 2, 3 y 4, mientras que se encuentra distribuida entre todos los discos en RAID 5. Los niveles 2 y 3 de RAID usan una técnica de acceso paralelo: todos los discos miembros del RAID participan en la ejecución de cada petición de E/S. Los datos se descomponen en tiras muy pequeñas (a nivel incluso de byte o palabra).
- En RAID 2 el código de corrección de errores (ECC) se calcula a partir de los bits de cada disco, y los bits del código se almacenan en varios discos de paridad. El ECC normalmente usado es el código de Hamming que permite corregir errores en un bit y detectar errores en 2 bits.
- RAID 2: consigue altas velocidades de transferencia, aunque en la práctica no se implementa nunca, al resultar excesivamente costoso.
- RAID 3: también consiste en un acceso paralelo, con datos distribuidos en pequeñas tiras. Se diferencia de RAID 2 en el uso de un único disco redundante, independientemente del tamaño del conjunto de discos. En lugar de un código de corrección de errores, se calcula un bit de paridad para el conjunto de bits individuales que están en la misma posición en todos los discos de datos. También consigue altas velocidades de transferencia para una transacción, aunque como RAID 2 solo puede ejecutar una operación de E/S a la vez. Implementación bastante costosa. Utiliza XOR para cálculos de paridad, fallos de disco y penalizaciones de escritura.
- RAID 4: los niveles 4 y 5 de RAID usan una técnica de acceso independiente. Cada disco del conjunto opera de forma independiente –> peticiones de E/S.