ORGANIZACIÓN DE LOS SISTEMAS DE COMPUTADORA Una computadora digital consiste en un sistema de procesadores interconectados, memorias y dispositivos de E/S. 1. PROCESADORES. La CPU se compone de varias partes. La unidad de control se encarga de buscar instrucciones de la memoria principal y determinar su tipo. La unidad de aritmética y lógica realiza operaciones como suma y AND booleano necesarias para ejecutar las instrucciones. La CPU también contiene una memoria pequeña y de alta velocidad que sirve para almacenar resultados, temporales y cierta información de control. Esta memoria se compone de varios registros, cada uno de los cuales tiene cierto tamaño y función. Por lo regular, todos los registros tienen el mismo tamaño. Cada registro puede contener un número, hasta algún máximo determinado por el tamaño del registro. Los registros pueden leerse y escribirse a alta velocidad porque están dentro de la CPU. El registro más importante es el contador de programa (PC, Program Counter), que apunta a la siguiente instrucción que debe buscarse para ejecutarse. El nombre “contador de programa” es un tanto engañoso porque no tiene nada de ver con contar, pero es un término universal. Otro registro importante es el registro de instrucciones (IR, Instruccion Register) que contiene la instrucción que se está ejecutando. Casi todas las computadoras tienen varios registros más, algunos de propósito general y otros para fines específicos. 1.1. Organización de la CPU En la figura se muestra con más detalle la organización interna de una parte de una CPU Von Neumann típica. Esta parte se llama camino de datos y consiste en los registros de entrada de la ALU, rotulados A y B en la figura. Estos registros contienen las entradas de la ALU mientras ésta está calculando. La ALU suma, resta y realiza otras operaciones simples con sus entradas, y produce un resultado en el registro de salida. El contenido de este registro de salida se envía a un registro, que posteriormente se escribe (guarda) en la memoria, si se desea. No todos los diseños tienen los registros A, B y de salida. En el ejemplo se ilustra la suma. Casi todas las instrucciones pueden dividirse en una de dos categorías: registromemoria o registro-registro. Las instrucciones registro-memoria permiten buscar palabras de la memoria a los registros (Las “palabras” son las unidades de datos que se transfieren entre la memoria y los registros. Una palabra podría ser un entero.). Otras instrucciones registro-memoria permiten almacenar el contenido de un registro en la memoria. La otra clase de instrucción es la de registro-registro. Una instrucción registro-registro típica busca dos operandos de los registros, los coloca en los registros de entrada a la ALU, realiza alguna operación con ellos (suma o AND booleano) y coloca el resultado en uno de los registros. El proceso de hacer pasar dos operandos por la ALU y almacenar el resultado se llama ciclo del camino de datos y es el corazón de casi todas las CPU. Cuanto más rápido es el ciclo del camino de datos, más rápidamente opera la máquina. 1.2. Ejecución de instrucciones 1 La CPU ejecuta cada instrucción en una serie de pasos pequeños. A grandes rasgos, los pasos son los siguientes: 1) Buscar la siguiente instrucción de la memoria y colocarla en el registro de instrucciones. 2) Modificar el contador de programa de modo que apunte a la siguiente instrucción. 3) Determinar el tipo de la instrucción que se trajo. 4) Si la instrucción utiliza una palabra de la memoria, determinar dónde está. 5) Buscar la palabra, si es necesario, y colocarla en un registro de la CPU. 6) Ejecutar la instrucción. 7) Volver al paso 1 para comenzar a ejecutar la siguiente instrucción. 1.3. Principios de diseño de las computadoras modernas Todas las instrucciones se ejecutan directamente en hardware El hardware ejecuta directamente todas las instrucciones comunes: éstas no se interpretan con microinstrucciones. La eliminación de interpretación hace que la mayor parte sean rápidas. Maximizar el ritmo con que se emiten instrucciones Un truco utilizado por las computadoras modernas es tratar de emitir el mayor número posible de instrucciones por segundo. Este principio sugiere que el paralelismo puede desempeñar un papel importante en el mejoramiento del desempeño, ya que sólo es posible emitir un gran número de instrucciones lentas en un periodo corto si varias instrucciones pueden ejecutarse simultáneamente. Aunque las instrucciones siempre se encuentran en el orden que dicta el programa, no siempre se emiten en ese orden (porque algún recurso necesario podría estar ocupado) y no tiene que terminar en el orden del programa. Las instrucciones deben ser fáciles de decodificar Todo lo que pueda agilizar el proceso de decodificación es útil, e incluye hacer que las instrucciones tengan una longitud fija, con un número pequeño de campos. Cuanto menor sea el número de formatos de instrucciones distintos, mejor. Sólo las operaciones de carga y almacenamiento deben hacer referencia a la memoria. Incluir abundantes registros. Como el acceso a memoria es relativamente lento, es necesario contar con muchos registros (al menos 32.) 1.4. Paralelismo en el nivel de instrucciones Se recurre al paralelismo (hacer dos o más cosas al mismo tiempo) para sacar el mayor provecho posible a una velocidad de reloj dada. En el paralelismo a nivel de instrucciones, se aprovecha el paralelismo dentro de las instrucciones individuales para lograr que la máquina ejecute más instrucciones por segundo. Filas de procesamiento La obtención de instrucciones de la memoria genera un importante cuello de botella que afecta la rapidez de ejecución de las instrucciones. Para aliviar este problema, las computadoras han contado con la capacidad de buscar instrucciones de la memoria por adelantado, a fin de tenerlas disponibles en el momento en que se necesitan. Esas instrucciones se almacenaban en una serie de registros llamados buffer de prebúsqueda. El concepto de fila de procesamiento (pipeline) divide la ejecución de instrucciones en muchas partes, cada una de las cuales se maneja con un componente de hardware dedicado, y todos estos componentes pueden operar en paralelo. La figura siguiente ilustra una fila de procesamiento con cinco unidades (etapas). La etapa 1 busca la instrucción de la memoria y la coloca en un buffer hasta que se necesita. La etapa 2 decodifica la instrucción, determinando de qué tipo es y qué operandos necesita. La etapa 3 localiza y busca los operandos, sea de registros o de la memoria. La etapa 4 se encarga de ejecutar propiamente la instrucción, casi siempre haciendo pasar operandos por el camino de datos. Por último, la etapa 5 escribe el resultado en el registro apropiado. S1 S2 S3 Unidad de Búsqueda de Instrucciones Unidad de decodificación de Instrucciones Unidad de Búsqueda de operandos S4 S5 Unidad de escritura de resultados Unidad de ejecución de Instrucciones Fila de procesamiento de cinco etapas. S1: S2: S3: S4: S5: 1 2 3 4 5 Tiempo 6 7 8 9 Estado de cada etapa en función del tiempo El uso de filas de procesamiento permite balancear la latencia (el tiempo que tarda en ejecutarse una instrucción) y el ancho de banda del procesador (cuántas MIPS puede ejecutar la CPU). Arquitecturas superescalares Aquí una sola unidad de búsqueda de instrucciones trae pares de instrucciones y coloca cada una en su propia fila de procesamiento, que cuenta con su propia ALU para poder operar en paralelo. 2 S1 Unidad de Búsqueda de Instrucciones S2 S3 Unidad de decodificación de Instrucciones Unidad de Búsqueda de operandos Unidad de ejecución de Instrucciones S4 Unidad de escritura de resultados S5 Unidad de decodificación de Instrucciones Unidad de Búsqueda de operandos Unidad de ejecución de Instrucciones Unidad de escritura de resultados Memorias locales C P U C P U C P U C P U Filas de procesamiento dual de cinco etapas con unidad de búsqueda de instrucciones común 1.5. Paralelismo en el nivel de procesador Computadoras de matriz Un arreglo de procesadores consiste en un gran número de procesadores idénticos que ejecutan la misma secuencia de instrucciones con diferentes conjuntos de datos. Originalmente se pensaba construir una máquina constituida por cuatro cuadrantes, cada uno de los cuales tenía una cuadrícula 8x8 de elementos procesador/memoria. Una sola unidad de control por cuadrante transmitía instrucciones que eran ejecutadas simultáneamente por todos los procesadores, cada uno de los cuales utilizaba sus propios datos de su propia memoria (que se cargaba durante la fase de inicialización). Unidad de control transmite instrucciones Procesador Cuadrícula 8x8 de Procesador/memoria Memoria Los arreglos de procesadores solo funcionan bien con problemas que requieren realizar el mismo cálculo con muchos conjuntos de datos simultáneamente. Multiprocesadores Es un sistema de varias CPU que comparten una memoria común. C P U C P U C P U C P U Memoria compartida Bus Memoria compartida Bus Multiprocesador con un solo bus Multicomputadoras Son sistemas con un gran número de computadoras interconectadas, cada una de las cuales tiene su ´propia memori, sin que haya una memoria común. Las CPU de una mlticomputadora se comunican enviándose mutuamente mensajes, parecidos al correo electrónico pero mucho más rápido 2. MEMORIA PRIMARIA La memoria es la parte de la computadora en la que se almacenan programas y datos. 2.1. Bits La unidad básica de memoria es el dígito binario, llamado bit. Un bit puede contener un 0 o un 1. 2.2. Direcciones de memoria Las memorias consisten en varias celdas (o localidades), cada una de las cuales puede alacenar un elemento de información. Cada celda tiene un número, su dirección, con el cual los programas pueden referirse a ella. Si una memoria tiene n celdas, tendrán las direcciones 0 a n-1. Todas las celdas de una memoria contienen el mismo número de bits. Si una celda consta de k bits, podrá contener cualquiera de 2k combinaciones de bits distintas. Las computadoras que emplean el sistema de numeración binario expresan las direcciones de memoria como números binarios. Si una dirección tiene m bits, el número máximo de celdas direccionables es 2m. La celda es la unidad direccionable más pequeña. Recientemente casi todas las computadoras usan una celda de 8 bits, que recibe el nombre de byte. Los bytes se agrupan en palabras. Casi todas las instrucciones operan con palabras enteras. 2.3. Ordenamiento de bytes Los bytes de una palabra pueden numerarse de izquierda a derecha o de derecha a izquierda. En el sistema en el que la numeración comienza por el extremo “grande”(es Multiprocesador con un solo bus 3 decir, de orden alto), se llama computadora big endian (de izquierda a derecha), en contraste con la “Little endian”. 2.4. Códigos para corrección de errores Las memorias de las computadoras pueden cometer errores ocasionales a causa de picos de voltaje en la línea de alimentación un otras causas. Para protegerse contra tales errores, algunas memorias emplean códigos para detección o corrección de eroores. Cuando se usan esos códigos, se añaden bits extra de una forma especial a cada palabra de la memoria. Cuando se lee una palabra dfe la memoria se leen los bits adicionales para ver si ha ocurrido algún error. 2.5. Memoria caché La memoria caché nace ante el hecho de que las CPU siempre han sido más rápidas que las memorias. Lo que esta diferencia implica en la práctica es que, después de que la CPU emite una solicitud a la memoria, pasan muchos ciclos antes de que reciba la palabra que necesita. Hay dos formas de resolver este problema. La más sencilla es iniciar las instrucciones de lectura de memoria (READ) cuando se llega a ellas, pero continuar la ejecución y detener la CPU si una instrucción trata de usar la palabra de memoria antes de que llegue. La otra solución es tener máquinas que no se detengan, y que exijan a los compiladores no generar código que use palabras antes de que hayan llegado, que también implica detener la CPU pero en software. la solución es que se conocen técnicas para combinar una cantidad pequeña de memora rápida con una cantidad grande de memoria lenta para obtener la rapidez de la memoria rápida y la capacidad de la memoria grande. La memoria pequeña y rápida se llama caché (del francés cacher, que significa guardar o esconder). La idea fundamental en que se basa la memoria caché es sencilla: las palabras de memoria de mayor uso se mantienen en el caché. Cuando la CPU necesita una palabra, primero la busca en el caché. Sólo si la palabra no está ahí recurre a la memoria principal. La observación de que las referencias a la memoria que se hacen en cualquier periodo corto tienden a usar una fracción pequeña de la memoria total se denomina principio de localidad y constituye la base de todos los sistemas de caché. La idea general es que cuando se hace referencia a un apalabra, ella y algunas de sus vecinas se traen de la memoria grande lenta al caché, para que la siguiente vez que se use el acceso a ella sea rápido. Los aspectos para el diseño de cachés son: primero, el tamaño de caché. Mientras más grande es el caché, mejor funciona, pero también cuesta más. Segundo, el tamaño de la línea de caché. Tercero, la organización del caché. Cuarto, es si las instrucciones y los datos se guardan en el mismo caché o en cachés distintos. Un diseño de caché unificado (instrucciones sy datos en el mismo caché) es más sencillo y automáticamente equilibra las obtenciones de instrucciones frente a las obtenciones de datos. Cachés divididos, con instrucciones un caché y datos en otro. La unidad de búsqueda de instrucciones necesita acceder a instrucciones al mismo tiempo que la unidad de búsqueda de operandos requiere acceder a datos. Un caché dividido permite accesos en paralelo; un caché unificado no. Quinto, el número de cachés. 2.6. Empaquetamientos y tipos de memoria Las primeras PC a menudo tenían zócalos vacíos en los que podían insertarse chips de memoria adicionales. 4 Memoria ROM (read only memory) Es un medio de almacenamiento que permite solo la lectura de la información y no su escritura, independientemente de la presencia de energía es decir, conserva su contenido incluso cuando el ordenador se apaga. Es capaz de almacenar datos hasta por 10 años sin necesidad de una pila eléctrica. Se trata de un circuito integrado que se encuentra instalado en la tarjeta principal Motherboard, dónde se almacena información básica referente al equipo, lo que se denomina BIOS que integra un programa llamado POST encargado de reconocer inicialmente los dispositivos instalados como el teclado, el monitor, disqueteras, la memoria RAM, etc., y otro programa llamado Setup para que el usuario modifique ciertas configuraciones de la máquina. Para almacenar los datos que el usuario modifica, cuenta con una memoria llamada CMOS alimentada constantemente desde una batería integrada en la tarjeta principal. Tiene una cantidad pequeña de memoria (algunos miles de bytes). Como la memoria RAM es más fácil de leerse que las ROM, antes de utilizarse suele pasarse el contenido de la memoria ROM a la memoria RAM. Memoria RAM (random-access memory) la memoria principal o RAM (Memoria de Acceso Aleatorio) es donde el computador guarda los datos que está utilizando en el momento presente y donde se cargan todas las instrucciones que ejecutan el procesador y otras unidades de cómputo.. El almacenamiento es considerado temporal porque los datos y programas permanecen en ella mientras que la computadora este encendida o no sea reiniciada. Se denominan «de acceso aleatorio» porque se puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder a la información. Durante el encendido del computador, la rutina POST verifica que los módulos de memoria RAM estén conectados de manera correcta. En el caso que no existan o no se detecten los módulos, la mayoría de tarjetas madres emiten una serie de pitidos que indican la ausencia de memoria principal. Terminado ese proceso, la memoria BIOS puede realizar un test básico sobre la memoria RAM indicando fallos mayores en la misma. SIMMs y DIMMs Se trata de la forma en que se juntan los chips de memoria, del tipo que sean, para conectarse a la placa base del ordenador. Son unas plaquitas alargadas con conectores en un extremo; al conjunto se le llama módulo. El número de conectores depende del bus de datos del microprocesador. SIMMs: (Single In-line Memory Module) módulo de memoria individual en línea. Una configuración de SIMM típica podría tener ocho chips con 32 Mb (4MB) cada uno en el SIMM. Así, todo el modulo, contendrá 32MB. Muchas computadoras tienen espacio para cuatro módulos, lo que da una capacidad total de 128MB si son empleados SIMM de 64 MB o más grandes si es necesario. Los primeros SIMM tenían 30 conectores y alimentaban 8 bits a la vez. Los demás conectores eran para direccionamiento y control. SIMM posteriores tenía 72 conectores y alimentaban 32 bits a la vez. DIMMs: (dual inline memory); módulo de memoria dual en línea. Actualmente los DIMM son la forma estándar de empaquetar la memoria. Cada DIMM tiene 84 conectores chapeados con oro en cada lado, para un total de 168 conectores. Un DIMM puede almacenar 64 bits a la vez. Las capacidades típicas de los DIMM son de 64 MB o más. 3. MEMORIA SECUNDARIA Por más grande que sea la memoria principal, siempre es demasiado pequeña. La gente siempre quiere almacenar más información de la que cabe en la memoria. 3.1. Jerarquías de memoria La solución tradicional para almacenar una gran cantidad de datos es una jerarquía de memoria, como se ilustra en la figura. En la cúspide están los registros de la CPU, a los que puede tenerse acceso a la velocidad máxima de la CPU. Luego viene la memoria caché, que actualmente es del orden de 32KB a unos cuantos MB. Sigue la memoria principal, con tamaños que actualmente van de 16MB para sistemas más económicos hasta decenas de GB en el extremo superior. Después vienen los discos magnéticos, por último tenemos la cinta magnética y los discos ópticos para el almacenamiento de archivos. 5 contiene una bobina de inducción flota sobre la superficie y muy cerca de ella, descasando en un colchón de aire. Cuando una corriente positiva o negativa pasa por la cabeza, magnetiza la superficie justo debajo de ella, alineando las partículas magnéticas hacia la izquierda o hacia la derecha, dependiendo de la polaridad dela corriente de la unidad. Cuando la cabeza pasa sobre un área magnetizada, se induce una corriente positiva o negativa en la cabeza, lo que permite leer los bits almacenados previamente. Así, el plato gira bajo la cabeza, puede escribirse una serie de bits y luego leerse. La geometría de pista de disco se muestra en la siguiente figura. Al bajar por la jerarquía, tres parámetros claves crecen. Primero, el tiempo de acceso se alarga. Los registros de la CPU pueden accederse en unos cuantos nanosegundos. Las memorias caché requieren un múltiplo pequeño del tiempo de acceso de los registros. Los accesos a la memoria principal suelen ser de unas cuantas decenas de nanosegundos. Luego viene una brecha grande, pues los tiempos de acceso a disco son de por lo menos 10ms, y el acceso de la cinta o disco óptico puede medirse en segundos si es preciso traer los medios insertarlos en una unidad. Seguro, la capacidad de almacenamiento aumenta al abajar por la jerarquía. Los registros de la CPU pueden contener tal vez 128B; los cachés unos cuantos MB; las memorias principales decenas o miles de MG; los discos magnéticos de unos cuantos MB a decenas de GB. Las cintas y los discos ópticos generalmente se guardan fuera de línea, así que su capacidad está limitada sólo por el presupuesto del propietario. Tercero, el número de bits que se obtiene por dólar invertido aumenta al bajar por la jerarquía. Aunque los precios actuales cambian rápidamente, la memoria principal se mide en dólares/MB; el almacenamiento en disco magnético en centavos de dólar/MB, y la cinta magnética en dólares/GB o menos. 3.2. Discos magnéticos Un disco magnético consiste en uno o más platos de aluminio con un recubrimiento magnetizable. Originalmente estos platos llegaron a tener 50cm de diámetro, pero en la actualidad suelen ser de 3 a 12cm, y algunos discos para computadoras portátiles tienen diámetros de menos de 3cm y se siguen encogiendo. Una cabeza de disco que 3.3. Discos flexibles Es un medio de almacenamiento pequeño y removible, sirve para distribuir información. Tiene las mismas características que los discos magnéticos, excepto que a diferencia de los discos duros, en los que las cabezas flotan sobre la superficie en un colchón de aire en rápido movimiento, las cabezas de las unidades de disco sí tocan los disquetes. Está formado por una pieza circular de material magnético, fina y flexible (de ahí su denominación) encerrada en una cubierta de plástico, cuadrada o rectangular, que se puede utilizar en una computadora o laptop. Los disquetes se leen y se escriben mediante un dispositivo llamado disquetera (o FDD, del inglés Floppy Disk Drive). Los disquetes de 3½" son menores que el CD, tanto en tamaño como en capacidad. La disquetera es el dispositivo o unidad lectora/grabadora de disquetes, y ayuda a introducirlo para guardar la información. Este tipo de dispositivo de almacenamiento es vulnerable a la suciedad y los campos magnéticos externos, por lo que, en muchos casos, deja de funcionar con el tiempo. 3.4. Discos IDE IDE significa "Integrated Device Electronic", su traducción es componente electrónico integrado. 6 Figura 2. Interior de un disco duro. Se puede apreciar el eje de giro con un plato y una cabeza de lectura/escritura. Marca Seagate® U4, modelo ST34311A, capacidad de 4.3 GB. El disco duro IDE, es un dispositivo electromecánico que se encarga de almacenar y leer grandes volúmenes de información a altas velocidades por medio de pequeños electroimanes (también llamadas cabezas de lectura y escritura), sobre un disco cerámico recubierto de limadura magnética. Los discos cerámicos vienen montados sobre un eje que gira a altas velocidades. El interior del dispositivo está totalmente libre de aire y de polvo, para evitar choques entre partículas y por ende, pérdida de datos, el disco permanece girando todo el tiempo que se encuentra encendido. Fue desarrollado y presentado por la empresa IBM® en el año de 1956. Esta especificación permite transferencia de datos de modo paralelo, con un cable de datos de 40 conectores, genera una transferencia de datos (Rate) de 66, 100 y hasta 133MB/s. Este tipo de discos duros no se pueden conectar y desconectar con el equipo funcionando, por lo que es necesario apagar el equipo antes de instalar ó desinstalar. Funcionamiento 1) La computadora envía las señales eléctricas hacia la bobina electromagnética. 2) La bobina se polariza y transmite el magnetismo hacia el disco en movimiento. 3) El disco tiene partículas magnéticas que se reacomodan a su paso por la bobina. 4) La información queda almacenada como partículas magnéticas ordenadas. El disco duro IDE puede tener 2 medidas, estas se refieren al diámetro que tiene el disco cerámico físicamente. 3.5 pulgadas (3.5"), para discos duros internos para computadora de escritorio (Desktop). 2.5" para discos duros internos para computadoras portátiles Laptop ó Notebook. Características: FSB: Frontal Side Bus, transporte frontal interno; significa la velocidad de transferencia de datos del disco duro, en función de los demás dispositivos. Se mide en MB/s y es denominado también “Rate”. Este dato en discos IDE puede estar entre 66MB/s, 100MB/s y 133MB/s. RPM: Revolutions per Minute, vueltas por minuto; este valor determina la velocidad a que los discos internos giran cada minuto. Su unidad de medida es: revoluciones por minuto (RPM). Este dato en discos duros puede ser 4800 RPM, 5200RPM y hasta 7200 RPM. Capacidad del disco duro IDE La capacidad del total de Bytes que es capaz de almacenar un disco duro. Su unidad de medida básica es el Byte, pero actualmente se utiliza el GigaByte (GB). Para discos duros IDE este dato puede estar entre 10 MB hasta 750 GB. Conector de datos del disco duro IDE El conector que utiliza el disco duro IDE para transmitir y recibir los datos es de 40 pines y es de forma rectangular. En el caso de la alimentación eléctrica, el disco IDE tiene un conector de 4 contactos tipo MOLEX. Ventilación del disco duro IDE / Cooler para disco duro IDE Actualmente, las altas velocidades a las que giran los platos del disco duro, provocan una excesiva generación de calor en el interior de los mismos, aunado al calor interno del gabinete generado por el CPU y las tarjetas aceleradoras de video, lo que provoca el sobrecalentamiento de los discos duros y por ende una menor vida útil del mismo. Actualmente se han diseñado dispositivos basados en ventiladores, encargados de mantener la cubierta del disco duro a una temperatura adecuada y así disipar el calor. Estos ventiladores se alimentan del mismo conector de alimentación que se utiliza para unidades IDE, en la carcasa se fija el disco duro y se coloca en la bahía correspondiente del gabinete, luego se conecta y comienza a disipar el calor, en teoría el nivel de ruido es bajo ya que no tiene contacto con el exterior. 7 Estructura lógica de un disco duro Forma en que se acomoda la información por medio de las cabezas de lectura/escritura. La estructura lógica de un disco duro consiste en las siguientes partes principales: 1) Caras: Cada uno de los lados de cada plato. 2) Pistas ó Cilindros: Son anillos internos de limadura magnética, donde se va acomodando la información. 3) Sectores: Es un área que contiene 520B por sector, y de los cuáles 8 se usan para 2 tipos de información: a) Información Inicial: Número de pista, datos, número de sector. b) Información final: Clave del sector, "checksum" (coincidencia de Bytes para determinar integridad). El sistema reconoce el sector 0 ó sector de inicio, no tiene limadura magnética en una pequeña parte de su superficie. 4) "Clusters" ó racimos: Conjunto de sectores con los que trabaja el sistema operativo para hacer más eficaz la lectura y escritura de datos. Figura 10. Estructura lógica de un disco duro. El esquema está representado por un plato con sus componentes lógicos principales. 5) Sector de arranque maestro: Se encarga de comenzar a cargar en la memoria RAM el sistema operativo; consta de los siguientes elementos: a) IPL: significa "Initial Program Loading"; ó su traducción al español es programa inicial de carga: es un pequeño programa que permite a la computadora reconocer al disco duro como arrancable. b) Archivos para el arranque: Son archivos pertenecientes al sistema operativo que se pretende cargar. c) Tabla de particiones: Guarda la información del número de unidades y partes en que está dividido el disco duro. d) Características del disco: Guarda información sobre el disco duro, tales como la capacidad, número de sectores, número de cabezas, número de pistas etc. 6) FAT y copia de la FAT: Significa "File Allocation Table", tabla para asignación de archivos. Registra el estado general de todos los clusters (defectuosos, libres, ocupados, etc), así como también guarda la dirección específica dónde se almacenaron las partes de un archivo dentro del disco duro. 7) Directorio raíz ó "Root directory": Almacena la información de la cantidad máxima de archivos que puede guardar un disco duro así como la información esencial de cada uno de ellos (Nombre, extensión, atributos, hora, fecha, etc). 8) Zona de datos: Es la parte dónde se almacenarán los archivos del usuario, programas del sistema operativo, música, videos, etc. 3.5. Discos SCSI El disco duro SCSI durante mucho tiempo no tuvo competencia importante en el mercado, pero actualmente compite directamente contra los discos duros SATA II, aunque por su alta velocidad de giro, aún no logra ser reemplazado. Significado de SCSI SCSI proviene de las siglas de ("Small Computer System Interface"), su traducción es pequeña interfase de sistema para computadora. Es un estándar para dispositivos de alta velocidad que incluyen discos duros entre sus especificaciones. Estos discos duros no son muy populares a nivel doméstico como los discos duros IDE ó los discos duros SATA; por lo que son utilizados principalmente por grandes empresas y sus precios son muy altos en comparación con los anteriores mencionados. Puede depender de una tarjeta controladora SCSI para trabajar y ser instalados, también puede necesitar cable para datos de 40, 50, 68 ú 80 conectores, dependiendo el modelo. Algunos modelos tienen la característica denominada "Hot Swappable", lo que significa poder conectarlo y desconectarlo sin necesidad de apagar la computadora. 8 El disco duro SCSI tiene una medida estándar que es de 3.5 pulgadas (3.5") para computadora de escritorio (Desktop). Características del disco duro SCSI Los discos duros cuentan con características que son comunes y que a continuación se detallan: RPM SCSI: Este dato puede ser 10,000 RPM hasta 15,000 RPM. Pulgadas SCSI: se refiere al formato de tamaño de la unidad, esta puede ser de 3.5" ó de 2.5". Capacidades de almacenamiento SCSI: Para discos duros SCSI este dato puede estar entre 10 (MB) hasta 300 GB. Número de pines: Es la cantidad de conectores de datos que tiene integrado y que serán conectados a la tarjeta controladora SCSI. Puede tener 40, 50, 68 ú 80 pines. Conector de datos del disco duro SCSI El conector que utiliza el disco duro SCSI para transmitir y recibir los datos puede ser de 40, 50, 68 ú 80 pines Alimentación eléctrica del disco duro SCSI En el caso de la alimentación eléctrica, el disco duro SCSI tiene un conector de 4 contactos MOLEX, que también es común para discos duros IDE y unidades ópticas. Ventilación del disco duro SCSI / Cooler para disco duro SCSI Utiliza la misma tecnología de los discos IDE. La tarjeta controladora SCSI Estas tarjetas de las cuáles depende, no es más que una tarjeta de expansión, que permite interconectar el disco duro con la tarjeta principal ("Motherboard"), ello porque al no ser tan populares, no vienen soportados en las tarjetas principales comerciales. Estas tarjetas también pueden tener conectores para disqueteras, puertos de comunicación, unidades de CD-R, etc. Estructura lógica de un disco duro Usa la misma tecnología que los discos IDE. Usos específicos del disco duro SCSI 1) Se utilizan principalmente para el almacenamiento de los sistemas operativos de red (Microsoft Server 2009, plataforma Linux Apache) y para servidores de grandes empresas. 2) También un uso muy frecuente es el de guardar la información de usuarios en grandes empresas. SATA Esta es una nueva especificación que maneja la transferencia de datos de modo serial mejorado con un cable de datos de 7 conectores y genera una transferencia de datos (Rate) de hasta 150MB/s. Este tipo de discos tienen una característica denominada "Hot Swappable", lo que significa poder conectarlo y desconectarlo sin necesidad de apagar la computadora. El disco duro SATA puede tener 2 medidas, estas se refieren al diámetro que tiene el disco cerámico físicamente, por lo tanto el tamaño de la cubierta también variará. 3.5 pulgadas (3.5"), para discos duros internos para computadora de escritorio. 2.5" para discos duros internos para computadoras portátiles (Laptop) ó Notebook. Características del disco duro SATA Los discos duros SATA cuentan con las características que a continuación se detallan: FSB: Este dato en discos duros SATA es de 150 MB/s. Cache: Acelerador, es una memoria SRAM integrada en el cuerpo del disco duro SATA, que almacena los datos que se han accesado frecuentemente; así cuando el microprocesador solicite un dato, la memoria lo ofrece y evita volver a buscarlo en el disco duro. Se mide en MB y lo más común es que integren 8 MB. RPM: Este dato en discos duros SATA puede estar entre 5200 RPM hasta 7200 RPM. Capacidad de almacenamiento del disco duro SATA Para discos duros SATA este dato puede estar entre 80 GB hasta 400 GB. Conector de datos del disco duro SATA El conector que utiliza el disco duro SATA para transmitir y recibir los datos es de con 7 pines y es de forma de letra L. Alimentación eléctrica del disco duro SATA En el caso de la alimentación eléctrica, tiene un conector de 15 contactos: 3.6. RAID La tecnología RAID (Rebundant Array of Inexpensive/Independent Disk), en español, arreglo redundante de discos independientes o económicos, busca subsanar algunos de los problemas comunes presente en los sistemas de almacenamiento tradicionales, y lograr importantes mejoras a un bajo costo. Las principales finalidades de un sistema RAID SON: • Mejorar la tolerancia a fallos y errores • Aumentar la integridad de los datos • Mejorar el rendimiento • Ofrecer una alternativa económica frente a los sistemas SCSI En palabras sencillas, un arreglo se puede tomar como un conjunto de elementos, en este caso un conjunto de discos organizados en forma ordenada. Existen 2 alternativas para la implementación de redundancia de almacenamiento de información mediante la tecnología RAID: RAID basado en software, y RAID basado en hardware. 9 Los Arreglos RAID, basados en hardware, dotan a los equipos de computación de una mayor capacidad de almacenamiento, a la vez que proveen acceso ininterrumpido a los datos. 1. CÓMO FUNCIONA LA TECNOLOGÍA RAID: RAID (Redundant Array of Inexpensive Disks / Arreglo Redundante de Discos Económicos) combina múltiples discos duros en un arreglo, y almacena la información procurando evitar que se pierdan datos si uno o más discos llegan a fallar. Existen distintos niveles de redundancia en los arreglos RAID (generalmente se reconocen desde RAID-0 hasta RAID-5 aunque existen proveedores que han especificado unilateralmente otros niveles), los que definen distintas especificaciones de almacenamiento. Las soluciones RAID basadas en hardware son más seguras y más rápidas que las soluciones basadas en software. 2. NIVELES DE RAID: La mayor parte de los administradores de red han optado por RAID en los niveles 0, 1, 3 y 5, siendo bastante frecuente encontrar, en el mercado, equipos que pueden ser configurados para varios de esos niveles. Esquema de un RAID0 Distribuye los datos a través de varios discos. Este tipo de configuración no proporciona redundancia (no es precisamente RAID), pero maneja varios discos como si fueran uno solo, lo que proporciona una mayor velocidad de lectura y escritura. Lamentablemente, si un disco falla en un arreglo Nivel 0, el sistema se cae. El nivel 0 requiere al menos 2 discos, siendo muy útil cuando se desea añadir capacidad de disco sin aumentar nombres de identificación de volumen. Es importante aclarar que el RAID es una técnica de software que busca los objetivos antes descritos, esta puede venir implementada en controladoras RAID presentes hoy en día en la mayoría de las placas madres. Además el RAID no es exclusivo para las unidades SATA, comenzó con los discos tradicionales IDE e incluso con las controladoras actuales se pueden mezclar en RAID discos IDE y SATA al mismo tiempo. RAID0 o Disk Striping (particionamiento de disco) En un RAID0 se puede obtener un alto rendimiento gracias a la utilización de varios discos en paralelo (mínimo dos unidades), la gracia de este tipo de RAID es que se utilizan los distintos discos simultáneamente ya sea para leer o escribir, de lo cual se puede señalar que teóricamente el rendimiento debería ser el doble, triple, etc, etc, según la cantidad de disco que utilicemos. Por ejemplo, supongamos que deseamos escribir un archivo de 50 megas en el disco duro. En un sistema normal esos 50 MB son copiados secuencialmente al disco duro y demoran un tiempo X dependiendo del disco y del sistema en si. En un RAID0 compuesto de dos discos, se copian simultáneamente "fragmentos" del archivo en los dos discos, 25MB en cada uno, por lo tanto esto demoraría un tiempo X/2 en las mejores situaciones. La capacidad de un RAID0 seria = tamaño_disco_más_pequeño X n, n= número de discos que conforman el RAID0. Uno de los temas más polémicos es que si los discos DEBEN ser de iguales características o no. La respuesta rotunda es no, si los discos son de diferentes tamaños se aplicara la fórmula de arriba para sacar el tamaño del RAID y si tienen características distintas cada uno funcionara independientemente, por ejemplo (siguiendo el anterior), si uno es más rápido y termina antes de escribir sus 25Mb deberá "esperar" que el otro termine. Ventajas • Fácil de implementar • Poca perdida de espacio (depende de la configuración) • Alto rendimiento Desventajas • No es un RAID 100%, ya que no provee sistema de recuperación de errores o tolerancia de fallos, un error en un disco y muere el arreglo completo RAID1 o disk Mirroring (disco espejo) El RAID1 es bastante similar al 0 en su funcionamiento, salvo que en vez de copiar/leer los archivos desde los distintos discos (trozos de archivo) , este copia o lee el archivo ENTERO en los distintos discos. Es decir si deseamos grabar el mismo archivo de 50Mb del ejemplo anterior, este se copia en todos los discos que conforman el RAID1 simultáneamente, por lo cual el rendimiento es bastante similar al de 1 solo disco. 10 La capacidad del arreglo resultante será igual a la del disco más pequeño dentro del RAID1. Este sistema funciona con dos discos, actuando uno de ellos como espejo. Este tipo de RAID es recomendado para entornos donde la infamación es muy delicada. Ventajas • 100% tolerante a fallos, si falla un disco queda disponible el otro sin pausas en el sistema. • Alta disponibilidad del sistema, igual que el anterior si falla un disco quedara disponible el otro. Desventajas • Sistema caro • Capacidad de almacenamiento reducida, "se pierde" un disco completo. • Puede ser un poco lento en ciertos entonos de trabajo RAID 0+1 Combinación de los arrays anteriores que proporciona velocidad y tolerancia a fallos simultáneamente. El nivel de RAID 0+1 fracciona los datos para mejorar el rendimiento, pero también utiliza un conjunto de discos duplicados para conseguir redundancia de datos. Al ser una variedad de RAID híbrida, RAID 0+1 combina las ventajas de rendimiento de RAID 0 con la redundancia que aporta RAID 1. Sin embargo, la principal desventaja es que requiere un mínimo de cuatro unidades y sólo dos de ellas se utilizan para el almacenamiento de datos. Las unidades se deben añadir en pares cuando se aumenta la capacidad, lo que multiplica por dos los costes de almacenamiento. El RAID 0+1 tiene un rendimiento similar al RAID 0 y puede tolerar el fallo de varias unidades de disco. Una configuración RAID 0+1 utiliza un número par de discos (4, 6, 8) creando dos bloques. Cada bloque es una copia exacta del otro, de ahí RAID 1, y dentro de cada bloque la escritura de datos se realiza en modo de bloques alternos, el sistema RAID 0. RAID 0+1 es una excelente solución para cualquier uso que requiera gran rendimiento y tolerancia a fallos, pero no una gran capacidad. Se utiliza normalmente en entornos como servidores de aplicaciones, que permiten a los usuarios acceder a una aplicación en el servidor y almacenar datos en sus discos duros locales, o como los servidores web, que permiten a los usuarios entrar en el sistema para localizar y consultar información. Este nivel de RAID es el más rápido, el más seguro, pero por contra el más costoso de implementar. Esquema RAID0+1 Nota: los sistemas RAID2 al 7 son muy poco utilizados y enfocados a estaciones de trabajo y no disponibles en la mayoría de las controladoras actuales para equipos de escritorio, a continuación de definen brevemente para que los conozcamos. RAID2 El esquema de redundancia en el RAID de nivel 2 es un código de Hamming, donde la unidad de separación es un bit simple. Dividir al nivel de bit tiene la implicación de que en un conjunto de discos con N discos de datos, la unidad más pequeña de datos de transferencia para una lectura es un conjunto de N bloques. El RAID de nivel 2 es implementado en contadas ocasiones. RAID3 Introduce el chequeo de paridad, o la corrección de errores. Distribuye los datos a través de múltiples discos al nivel de bytes, y añade redundancia mediante la utilización de un disco de paridad dedicado, que detecta errores en los datos almacenados producidos por una falla de cualquier disco, y los reconstruye mediante algoritmos especiales. Si la falla se produce en el disco de paridad, se pierde la redundancia, pero se mantiene intacta la información original. Debido a que RAID Nivel 3 escribe los datos en grandes bloques de información, es una 11 alternativa apropiada para aplicaciones tales como video que envían y reciben grandes archivos. Este control de información codificada o paridad proviene de los datos almacenados en los discos y permite la reconstrucción de información en caso de fallas. Se requieren como mínimo 3 discos y se utiliza la capacidad de un disco para la información de control. Los datos se dividen fragmentos que se transfieren a los discos que funcionan en paralelo, lo que permiten enviar más datos de una sola vez, y aumentar en forma sustancial la velocidad general de transferencia de datos. Esta última característica convierte a este nivel en idóneo para que estas aplicaciones que requieran la transferencia de grandes ficheros contiguos hacia y desde el ordenador central. RAID4 Sistemas de discos independientes con disco de control de errores. En el nivel 4 de RAID los bloques de datos pueden ser distribuidos a través de un grupo de discos para reducir el tiempo de transferencia y explotar toda la capacidad de transferencia de datos de la matriz de disco. El nivel 4 de RAID es preferible al nivel 2 de RAID para pequeños bloques de datos, porque en este nivel, los datos son distribuidos por sectores y no por bits. Otra ventaja del nivel 4 de RAID frente a los niveles 2 y 3 es que al mismo tiempo puede estar activa más de una operación de lectura escritura sobre el conjunto de discos. Cada disco graba un bloque de datos distinto, y un disco adicional graba un código de corrección de errores. Si falla un disco, su información se puede recomponer; solo perdemos la capacidad de un disco, pero éste está muy saturado. El nivel 4 de RAID tiene división a nivel de bloques y el acceso al arreglo de discos es paralelo, pero no simultaneo. Posee un bit delicado a paridad y corrección de errores. La operación de escritura se realiza en forma secuencial y la lectura en paralelo, RAID5 Es la alternativa más popular. El Nivel 5 crea datos de paridad, distribuyéndolos a través de todos los discos (excepto en aquel disco en que se almacena la información original), obviando la necesidad de un disco de paridad dedicado. El Nivel 5 es el más completo de todos los niveles de redundancia por distribución, porque si un disco falla, la información de paridad en los otros permite la reconstrucción de toda su información. Aún más, el Nivel 5 escribe datos en los discos al nivel de bloques (en lugar de trabajar al nivel de bytes), volviéndolo más apropiado para múltiples transacciones pequeñas como e-mail, procesadores de palabras, hojas electrónicas, y aplicaciones de bases de datos. Los niveles 3 y 5 requieren al menos de 3 discos para su implementación. Igual que el anterior, pero el disco que graba el código de corrección se va alternando. Rápido, seguro, y sólo pierde la capacidad de un disco...pero se necesitan al menos 3 discos. RAID6 Este tipo es similar al RAID-5, pero incluye un segundo esquema de paridad distribuido por los distintos discos y por tanto ofrece tolerancia extremadamente alta a los fallos y las caídas de disco. Hay pocos ejemplos comerciales en la actualidad. RAID7 Este tipo incluye un sistema operativo incrustado de tiempo real como controlador, haciendo las operaciones de caché a través de un bus de alta velocidad y otras características de un ordenador sencillo. Tiene un tiempo de acceso cercano a cero. 3.7. CD-ROM 3.8. CD grabables 3.9. CD reescribibles 3.10. DVD 4. ENTRADA/SALIDA 4.1. Buses El bus (o canal) es un sistema digital que transfiere datos entre los componentes de una computadora o entre computadoras. Está formado por cables o pistas en un circuito impreso, dispositivos como resistores y condensadores además de circuitos integrados. En los primeros computadores electrónicos, todos los buses eran de tipo paralelo, de manera que la comunicación entre las partes del computador se hacía por medio de cintas o muchas pistas en el circuito impreso, en los cuales cada conductor tiene una función fija y la conexión es sencilla requiriendo únicamente puertos de entrada y de salida para cada dispositivo. Funcionamiento La función del bus es la de permitir la conexión lógica entre distintos subsistemas de un sistema digital, enviando datos entre dispositivos de distintos órdenes: desde dentro de los mismos circuitos integrados, hasta equipos digitales completos que forman parte de supercomputadoras. La mayoría de los buses están basados en conductores metálicos por los cuales se trasmiten señales eléctricas que son enviadas y recibidas con la ayuda de integrados que poseen una interfaz del bus dado y se encargan de manejar las señales y 12 entregarlas como datos útiles. Las señales digitales que se trasmiten son de datos, de direcciones o señales de control. Los buses definen su capacidad de acuerdo a la frecuencia máxima de envío y al ancho de los datos. Por lo general estos valores son inversamente proporcionales: si se tiene una alta frecuencia, el ancho de datos debe ser pequeño. Esto se debe a que la interferencia entre las señales (crosstalk) y la dificultad de sincronizarlas, crecen con la frecuencia, de manera que un bus con pocas señales es menos susceptible a esos problemas y puede funcionar a alta velocidad. Todos los buses de computador tienen funciones especiales como las interrupciones y las DMA que permiten que un dispositivo periférico acceda a una CPU o a la memoria usando el mínimo de recursos. Características de un bus Un bus se caracteriza por la cantidad de información que se transmite en forma simultánea. Este volumen se expresa en bits y corresponde al número de líneas físicas mediante las cuales se envía la información en forma simultánea. Un cable plano de 32 hilos permite la transmisión de 32 bits en paralelo. El término "ancho" se utiliza para designar el número de bits que un bus puede transmitir simultáneamente. Por otra parte, la velocidad del bus se define a través de su frecuencia (que se expresa en Hercios o Hertz), es decir el número de paquetes de datos que pueden ser enviados o recibidos por segundo. Cada vez que se envían o reciben estos datos podemos hablar de ciclo. De esta manera, es posible hallar la velocidad de transferencia máxima del bus (la cantidad de datos que puede transportar por unidad de tiempo) al multiplicar su ancho por la frecuencia. Por lo tanto, un bus con un ancho de 16 bits y una frecuencia de 133 MHz, tiene una velocidad de transferencia de: 16 * 133.106 = 2128*106 bit/s, o 2128*106/8 = 266*106 bytes/s o 266*106 /1000 = 266*103 KB/s o 259.7*103 /1000 = 266 MB/s Subconjunto de un bus En realidad, cada bus se halla generalmente constituido por entre 50 y 100 líneas físicas distintas que se dividen a su vez en tres subconjuntos: El bus de direcciones, (también conocido como bus de memoria) transporta las direcciones de memoria al que el procesador desea acceder, para leer o escribir datos. Se trata de un bus unidireccional. El bus de datos transfiere tanto las instrucciones que provienen del procesador como las que se dirigen hacia él. Se trata de un bus bidireccional. El bus de control (en ocasiones denominado bus de comando) transporta las órdenes y las señales de sincronización que provienen de la unidad de control y viajan hacia los distintos componentes de hardware. Se trata de un bus bidireccional en la medida en que también transmite señales de respuesta del hardware. Los buses principales Por lo general, dentro de un equipo, se distinguen dos buses principales: El bus interno o sistema (que también se conoce como bus frontal o FSB). El bus interno permite al procesador comunicarse con la memoria central del sistema (la memoria RAM). El bus de expansión (llamado algunas veces bus de entrada/salida) permite a diversos componentes de la placa madre (USB, puerto serial o paralelo, tarjetas insertadas en conectores PCI, discos duros, unidades de CD-ROM y CD-RW, etc.) comunicarse entre sí. Sin embargo, permite principalmente agregar nuevos dispositivos por medio de las ranuras de expansión que están a su vez conectadas al bus de entrada/salida. Tipos de bus Existen dos grandes tipos clasificados por el método de envío de la información: bus paralelo o bus serie. Hay diferencias en el desempeño y hasta hace unos años se consideraba que el uso apropiado dependía de la longitud física de la conexión: para cortas distancias el bus paralelo, para largas el serial. Bus paralelo Es un bus en el cual los datos son enviados por bytes al mismo tiempo, con la ayuda de varias líneas que tienen funciones fijas. La cantidad de datos enviada es bastante grande con una frecuencia moderada y es igual al ancho de los datos por la frecuencia de funcionamiento. En los computadores ha sido usado de manera intensiva, desde el bus del procesador, los buses de discos duros, tarjetas de expansión y de vídeo, hasta las impresoras. Las líneas de dirección son las encargadas de indicar la posición de memoria o el dispositivo con el que se desea establecer comunicación. Las líneas de control son las encargadas de enviar señales de arbitraje entre los dispositivos. Entre las más importantes están las líneas de interrupción, DMA y los indicadores de estado. Las líneas de datos transmiten los bits de forma aleatoria de manera que por lo general un bus tiene un ancho que es potencia de 2. Bus serie En este los datos son enviados, bit a bit y se reconstruyen por medio de registros o rutinas de software. Está formado por pocos conductores y su ancho de banda depende de la frecuencia. Es usado desde hace menos de 10 años en buses para discos duros, unidades de estado sólido, tarjetas de expansión y para el bus del procesador. 4.2. Terminales 4.3. Ratones 4.4. Impresoras 13 4.5. Módems 4.6. Códigos de caracteres 14