Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras UNIDAD I ARQUITECTURA BASICA DEL COMPUTADOR 1. INTRODUCCION Con la aparición de las computadoras el hombre ha dejado de ocuparse de aquellas tareas mecánicas y repetitivas, pudiendo así dedicar su tiempo e intelecto a tareas más creativas que involucran un alto grado de razonamiento e iniciativa en la toma de decisiones. El computador es un conjunto de circuitos electrónicos comprimidos, capaz de aceptar datos a través de un medio de entrada, de procesarlos automáticamente bajo el control de un programa previamente guardado y proporcionar la información resultante a través de un medio de salida. Actualmente el hombre es dependiente directo o indirecto del uso de la computadora, como en oficinas bancarias, grandes y medianos comercios, centros de enseñanza, oficinas de ventas y reservaciones para viajes, clínicas médicas u hospitales, fabricas y almacenes industriales, organismos de gobierno y oficinas administrativas, laboratorios, y centros de investigación. 2. CONCEPTOS Y DEFINICIONES El computador es el Microprocesador ,es el cerebro y razón de la computadora, esta compuesto por cinco elementos diferenciados: una CPU (unidad central de Procesamiento), dispositivos de entrada, dispositivos de almacenamiento, dispositivos de salida y una red de comunicaciones, denominada bus, que enlaza todos los elementos del sistema y conecta a éste con el mundo exterior. CPU (Unidad Central de Proceso), es una colección compleja de circuitos electrónicos, estos interpretan y llevan a cabo las instrucciones de los programas, efectúa operaciones aritméticas y lógicas con los datos y se comunica con las demás partes del sistema. MHz (Megahertz): para microcomputadoras. Un oscilador de cristal controla la ejecución de instrucciones dentro del procesador. La velocidad del procesador de una micro se mide por su frecuencia de oscilación o por el número de ciclos de reloj por segundo. El tiempo transcurrido para un ciclo de reloj es 1/frecuencia. MIPS (Millones de instrucciones por segundo): Para estaciones de trabajo, minis y macrocomputadoras. Por ejemplo una computadora de 100 MIPS puede ejecutar 100 millones de instrucciones por segundo. FLOPS (operaciones de punto flotante por segundo): Para las supercomputadoras. Las operaciones de punto flotante incluyen cifras muy pequeñas o muy altas. Hay supercomputadoras para las cuales se puede hablar de GFLOPS (Gigaflops, es decir 1.000 millones de FLOPS). 3. GENERACIONES DE COMPUTADORAS 3.1 PRIMERA GENERACIÓN (1951 a 1958) 3 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras Las computadoras de la primera Generación emplearon bulbos para procesar información, los operadores ingresaban los datos y programas en código especial por medio de tarjetas perforadas, el almacenamiento interno se lograba con un tambor que giraba rápidamente, sobre el cual un dispositivo de lectura/escritura colocaba marcas magnéticas. Su tamaño eran grandes y generaban más calor que los modelos contemporáneos. Eckert y Mauchly contribuyeron al desarrollo de computadoras de la 1era Generación formando una compañía privada y construyendo la UNIVAC I, que el Comité del censo utilizó para evaluar el censo de 1950. IBM comenzó entonces a construir computadoras electrónicas y su primera fue la IBM 701 en 1953, que posteriormente se convirtió en un producto comercialmente viable. Sin embargo en 1954 fue introducido el modelo IBM 650, el cual es la razón por la que IBM disfruta hoy de una gran parte del mercado de las computadoras. A la mitad de los años 50 IBM y Remington Rand se consolidaban como líderes en la fabricación de computadoras. 3.2 SEGUNDA GENERACIÓN (1959-1964) El invento del transistor hizo posible una nueva Generación de Computadoras, más rápidas, más pequeñas y con menores necesidades de ventilación, sin embargo seguía siendo costoso para una empresa, utilizaban redes de núcleos magnéticos en lugar de tambores giratorios para el almacenamiento primario, estos núcleos contenían pequeños anillos de material magnético, enlazados entre sí, en los cuales podían almacenarse datos e instrucciones. Los lenguajes de programación también mejoraron, como COBOL que ya estaba disponible comercialmente, los programas escritos para una computadora podían transferirse a otra con un mínimo esfuerzo. Grace Murria Hooper (1906-1992), en 1952 habia inventado el primer compilador ,fue una de las principales figuras de CODASYL (Comité on Data SYstems Languages), se encargo de desarrollar el proyecto COBOL El escribir un programa ya no requería entender plenamente el hardware, las computadoras de la 2da Generación eran sustancialmente más pequeñas y rápidas que las de bulbos y se usaban para nuevas aplicaciones, como en los sistemas para reservación en líneas aéreas, control de tráfico aéreo y simulaciones para uso general. La marina de E.U. utilizó las computadoras de la Segunda Generación para crear el primer simulador de vuelo ya que en esta generación se construyen las supercomputadoras Remington Rand UNIVAC LARC, e IBM Stretch (1961). 3.3 TERCERA GENERACIÓN (1964-1971) Circuitos Integrados, Compatibilidad con Equipo Mayor, Multiprogramación, Minicomputadora. Las computadoras de la tercera generación emergieron con el desarrollo de los circuitos integrados (pastillas de silicio) en las cuales se colocan miles de componentes electrónicos, en una miniatura 4 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras integrada, las computadoras nuevamente se hicieron más pequeñas, más rápidas, desprendían menos calor y eran energéticamente más eficientes. El descubrimiento en 1958 del primer Circuito Integrado (Chip) por el ingeniero Jack S. Kilby (nacido en 1928) y el Dr. Robert Noyce dieron origen a la tercera generación de computadoras. Antes de los circuitos integrados, las computadoras estaban diseñadas para aplicaciones matemáticas o de negocios , pero no para las dos cosas, los circuitos integrados permitieron a los fabricantes de computadoras incrementar la flexibilidad de los programas, y estandarizar sus modelos. La IBM 360 fue una de las primeras computadoras comerciales que usó circuitos integrados, podía realizar análisis numéricos como administración ó procesamiento de archivos. El 7 de abril de 1964 IBM presenta la impresionante IBM 360, con su tecnología SLT (Solid Logic Technology), esta máquina causó tal impacto que se fabricaron más de 30000, al grado que IBM llegó a conocerse como sinónimo de computación. También en ese año, Control Data Corporation presenta la supercomputadora CDC 6600, que se consideró como la más poderosa de las computadoras de la época, ya que tenía la capacidad de ejecutar unos 3 000 000 de instrucciones por segundo (mips). Se empiezan a utilizar los medios magnéticos de almacenamiento, como cintas magnéticas de 9 canales, enormes discos rígidos. Algunos sistemas todavía usan las tarjetas perforadas para la entrada de datos, pero las lectoras de tarjetas ya alcanzan velocidades respetables. Las computadoras trabajaban a tal velocidad que proporcionaban la capacidad de correr más de un programa de manera simultánea (multiprogramación). 3.4 CUARTA GENERACIÓN (1971 a 1981) Microprocesador , Chips de memoria, Microminiaturización Dos mejoras en la tecnología de las computadoras marcan el inicio de la cuarta generación: el reemplazo de las memorias con núcleos magnéticos, por las de chips de silicio y la colocación de muchos más componentes en un Chip: producto de la microminiaturización de los circuitos electrónicos. El tamaño reducido del microprocesador y de chips hizo posible la creación de las computadoras personales (PC) En 1971, intel Corporation, que era una pequeña compañía fabricante de semiconductores ubicada en Silicon Valley, presenta el primer microprocesador o Chip de 4 bits, que en un espacio de aproximadamente 4 x 5 mm contenía 2 250 transistores, fue denominado 4004. Silicon Valley (Valle del Silicio) era una región agrícola al sur de la bahía de San Francisco, que por su gran producción de silicio, a partir de 1960 se convierte en una zona totalmente industrializada donde se asienta una gran cantidad de empresas fabricantes de semiconductores y microprocesadores. Actualmente es conocida en todo el mundo como la región más importante para las industrias relativas a la computación: creación de programas y fabricación de componentes. 5 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras Esta generación de computadoras se caracterizó por grandes avances tecnológicos realizados en un tiempo muy corto. En 1977 aparecen las primeras microcomputadoras, entre las cuales, las más famosas fueron las fabricadas por Apple Computer, Radio Shack y Commodore Busíness Machines. IBM se integra al mercado de las microcomputadoras con su Personal Computer , de donde les ha quedado como sinónimo el nombre de PC, y lo más importante; se incluye un sistema operativo estandarizado, el MS- DOS (MicroSoft Disk Operating System). Las principales tecnologías que dominan este mercado son: IBM y sus compatibles llamadas clones, fabricadas por infinidad de compañías con base en los procesadores 8088, 8086, 80286, 80386, 80486, 80586 o Pentium, Pentium II, Pentium III y Celeron de Intel y en segundo término Apple Computer, con sus Macintosh y las Power Macintosh, que tienen gran capacidad de generación de gráficos y sonidos gracias a sus poderosos procesadores Motorola serie 68000 y PowerPC, respectivamente. Este último microprocesador ha sido fabricado utilizando la tecnología RISC (Reduced Instruc tion Set Computing), por Apple Computer Inc., Motorola Inc. e IBM Corporation, conjuntamente. 3.5 QUINTA GENERACIÓN Y LA INTELIGENCIA ARTIFICIAL (1982-1989) Cada vez se hace más difícil la identificación de las generaciones de computadoras, porque los grandes avances y nuevos descubrimientos ya no nos sorprenden como sucedió a mediados del siglo XX. Hay quienes consideran que la cuarta y quinta generación han terminado, y las ubican entre los años 1971-1984 la cuarta, y entre 1984-1990 la quinta. Ellos consideran que la sexta generación está en desarrollo desde 1990 hasta la fecha. Hay que mencionar dos grandes avances tecnológicos, que sirvan como parámetro para el inicio de la 5° generación: la creación en 1982 de la primera supercomputadora con capacidad de proceso paralelo, diseñada por Seymouy Cray, quien ya experimentaba desde 1968 con supercomputadoras, y que funda en 1976 la Cray Research Inc.; y el anuncio por parte del gobierno japonés del proyecto "quinta generación", que según se estableció en el acuerdo con seis de las más grandes empresas japonesas de computación, debería terminar en 1992. El proceso paralelo es aquél que se lleva a cabo en computadoras que tienen la capacidad de trabajar simultáneamente con varios microprocesadores. Aunque en teoría el trabajo con varios microprocesadores debería ser mucho más rápido, es necesario llevar a cabo una programación especial que permita asignar diferentes tareas de un mismo proceso a los diversos microprocesadores que intervienen. También se debe adecuar la memoria para que pueda atender los requerimientos de los procesadores al mismo tiempo. Para solucionar este problema se tuvieron que diseñar módulos de memoria compartida capaces de asignar áreas de caché para cada procesador. Según este proyecto, al que se sumaron los países tecnológicamente más avanzados para no quedar atrás de Japón, la característica principal sería la aplicación de la inteligencia artificial (Al, Artificial Intelligence). Las computadoras de esta generación contienen una gran cantidad de 6 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras microprocesadores trabajando en paralelo y pueden reconocer voz e imágenes. También tienen la capacidad de comunicarse con un lenguaje natural e irán adquiriendo la habilidad para tomar decisiones con base en procesos de aprendizaje fundamentados en sistemas expertos e inteligencia artificial. El almacenamiento de información se realiza en dispositivos magneto ópticos con capacidades de decenas de Gigabytes; se establece el DVD (Digital Video Disk o Digital Versatile Disk) como estándar para el almacenamiento de video y sonido, la capacidad de almacenamiento de datos crece de manera exponencial posibilitando guardar más información en una de estas unidades,lLos componentes de los microprocesadores actuales utilizan tecnologías de alta y ultra integración, denominadas VLSI (Very Large Sca/e Integration) y ULSI (Ultra Lar- ge Scale Integration). 3.6 SEXTA GENERACIÓN 1990 HASTA LA FECHA Supuestamente la 6° generación está en marcha desde principios de los años noventa, las computadoras de esta generación cuentan con arquitecturas combinadas Paralelo / Vectorial, con cientos de microprocesadores vectoriales trabajando al mismo tiempo; se han creado computadoras capaces de realizar más de un millón de millones de operaciones aritméticas de punto flotante por segundo (teraflops); las redes de área mundial (Wide Area Network, WAN) seguirán creciendo desorbitadamente utilizando medios de comunicación a través de fibras ópticas y satélites con anchos de banda impresionantes. La tecnología de esta generación está en proceso como ser la inteligencia / artificial distribuida; teoría del caos, sistemas difusos, holografía, transistores ópticos, etcétera. 4. EL CONCEPTO DE VON NEUMANN Los primeros computadores se programaban recableándolos esto equivalía a reconstruir todo el computador cuando se requería de un nuevo programa, la programación del computador se llevaba a cabo, literalmente, reconstruyéndolo. La "programación" requería de un verdadero experto y conocedor de electrónica, principios de lógica digital y del problema mismo. Esto vino a cambiar con el concepto del programa almacenado, un concepto teórico muy importante que fue establecido por el matemático John von Neumann el 30 de junio de 1945 en un borrador sobre el diseño de la EDVAC. A diferencia de los primeros computadores, Von Neumann proponía que tanto el programa como sus datos fueran almacenados en la memoria del computador. Esto no solo simplificaba la labor de programación al no tener que llevar a cabo el recableado del computador sino que además libraba y generalizaba el diseño del hardware para hacerlo independiente de cualquier problema y enfocado al control y ejecución del programa. Este concepto fue importante y decisivo que dio lugar al concepto de la arquitectura de von Neumann y del diseño de Charles Babbage (padre de la informática) , aún presente en nuestros días. 4.1 ARQUITECTURA DE VON NEUMANN 7 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras La arquitectura de von Neumann se compone de tres elementos: a. La Unidad Central de Procesamiento (CPU), es considerada como el cerebro y corazón del computador. Internamente consiste de una Unidad Aritmético-Lógica (ALU), un conjunto de registros y una Unidad de Control (CU). La ALU es donde se realizan todas las operaciones que involucran un procesamiento matemático (particularmente aritmético) o lógico (operaciones booleanas). Los registros permiten el almacenamiento de datos para estas operaciones y sus resultados. En la CPU es donde se ejecutan todo el resto de las operaciones (decisión, control, movimiento de datos). Una CPU con todos estos elementos implementada en un solo chip recibe el nombre de microprocesador. b. La memoria, es donde datos y programa son almacenados. La memoria es visto como un arreglo unidimensional finito en la que cada localidad es identificada por un valor asociado a su posición y que es llamado dirección. Para el computador las memorias se clasifican en dos grandes grupos. La memoria RAM (Memoria de Acceso Aleatorio), esta destinada a almacenar datos y programas (incluyendo al sistema operativo), es temporal o volátil, ya que pierde su contenido cuando el computador es apagado o reiniciado. La memoria ROM es de tipo permanente y solo de lectura, aun cuando el computador sea desconectado ,este mantendrá su contenido (no es volátil) c. Las interfaces de entrada y salida (I/O). destinadas a liberar de trabajo a la CPU en la comunicación con dispositivos de entrada (teclados, ratones), salida (impresoras) y entrada-salidas (discos, cintas). Estos tres elementos están interconectados a través de un conjunto de líneas que llevan instrucciones (control bus), datos (data bus) y que permiten dar los valores de direcciones de memoria y dispositivos (memory bus). Fig 1. Esquema de la arquitectura de Von Neumann. 5. UNIDAD CENTRAL DE PROCESO 8 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras La CPU (Unidad Central de Proceso), es el corazón del computador, permite el procesamiento de información numérica, es decir, información ingresada en formato binario, así como la ejecución de instrucciones almacenadas en la memoria. 4.1 FUNCIONAMIENTO DE LA CPU La CPU es un circuito electrónico que funciona a la velocidad de un reloj interno, gracias a un cristal de cuarzo que, sometido a una corriente eléctrica, envía pulsos, denominado "picos", la velocidad de reloj (también denominada ciclo), corresponde al número de pulsos por segundo, expresados en Hertz (Hz). De este modo, un computador de 200 MHz posee un reloj que envía 200.000.000 pulsos por segundo. Con cada pico de reloj, el procesador ejecuta una acción que corresponde a su vez a una instrucción o bien a una parte de ella. 6. INSTRUCCIONES Una instrucción es una operación elemental que el procesador puede cumplir, se almacenan en la memoria principal, esperando ser tratadas por el procesador y poseen dos campos: · el código de operación, que representa la acción que el procesador debe ejecutar · el código operando, que define los parámetros de la acción, este depende a su vez de la operación. Puede tratarse tanto de información como de una dirección de memoria. El número de bits en una instrucción varía de acuerdo al tipo de información (entre 1 y 4 bytes de 8 bits). Las instrucciones pueden agruparse en distintas categorías, estas son las siguientes: · Acceso a Memoria: acceso a la memoria o transferencia de información entre registros. · Operaciones Aritméticas: operaciones tales como suma, resta, división o multiplicación. · Operaciones Lógicas: operaciones tales como Y, O, NO, NO EXCLUSIVO, etc. · Control: controles de secuencia, conexiones condicionales, etc. 7. REGISTROS Cuando el procesador ejecuta instrucciones, la información almacena en forma temporal en pequeñas ubicaciones de memoria local de 8, 16, 32 o 64 bits, denominadas “registros“. Dependiendo del tipo de procesador, el número total de registros puede variar de 10 a varios cientos. Los registros más importantes son: · el registro acumulador (ACC), almacena los resultados de las operaciones aritméticas y lógicas; · el registro de estado (PSW Palabra de Estado del Procesador), contiene los indicadores de estado del sistema (lleva dígitos, desbordamientos, etc.); 9 Universidad Salesiana de Bolivia Ingeniería de Sistemas · Hard. y Arq. de Computadoras el registro de instrucción (RI), contiene la instrucción que está siendo procesada actualmente; · el contador ordinal (OC o PC por Program Counter, Contador de Programa), contiene la dirección de la siguiente instrucción a procesar; · el registro del búffer, que almacena información en forma temporal desde la memoria. 8. EL BUS La familia de ordenadores PC interconexiona toda la circuiteria de control interna mediante un diseño de circuito, conocido con el nombre de bus. La información codificada viaja a través de la computadora por un bus. El bus es el conjunto de cables (líneas) de hardware utilizados para la transmisión de datos entre los componentes de un sistema informático, es una ruta compartida que conecta diferentes partes del sistema como el procesador, la controladora de unidad de disco, la memoria y los puertos de entrada, salida, permitiéndoles transmitir información. El bus es supervisado por el microprocesador, se especializa en el transporte de diferentes tipos de información. Por ejemplo, un grupo de cables (en realidad trazos sobre una placa de circuito impreso) transporta los datos, otro las direcciones (ubicaciones) en las que puede encontrarse información específica, y otro las señales de control para asegurar que las diferentes partes del sistema utilizan su ruta compartida sin conflictos. Los buses se caracterizan por el número de bits que pueden transmitir en un determinado momento. Por ejemplo un equipo con un bus de 8 bits transmite 8 bits de datos y un bus de 16 bits transmite 16 bits de datos simultáneamente. Cada chip de control y cada byte de memoria del PC están conectados directa o indirectamente al bus, cuando un nuevo componente se inserta en uno de los conectores de expansión, queda unido directamente al bus, convirtiéndose en un objeto más de la unidad completa. Cuando el dato está listo para ser transferido, se transmite primero su dirección de destino por el bus de direcciones y luego el dato sigue por el bus de datos. 10 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras El bus está dividido en cuatro partes: líneas de potencia, bus de control, bus de direcciones y bus de datos. 8.1 TIPOS DE BUSES Existen tres tipos de buses : Bus de Datos, Bus de Direcciones y Bus de Control. Bus de Datos: mueve los datos entre los dispositivos del hardware de Entrada ( teclado, Escáner, raton , etc,) , de salida (Impresora, el monitor o la tarjeta de sonido) y de Almacenamiento (disco duro, el Diskette o la Memoria-flash) Estas transferencias que se dan a través del Bus de Datos son gobernadas por varios dispositivos y métodos, de los cuales el Controlador PCI (Interconexión de componentes Periféricos), es uno de los principales. Su trabajo equivale, simplificando mucho el asunto, a una central de semáforos para el tráfico en las calles de una ciudad. El Bus de Direcciones: Está vinculado al bloque de Control de la CPU para tomar y colocar datos en el Sub-sistema de Memoria durante la ejecución de los procesos de cómputo, Bus de Control: Este bus transporta señales de estado de las operaciones efectuadas por el CPU con las demás unidades. 8.2 Bus Memoria Transfiere información entre la memoria principal y el CPU. Este bus es implementado en un chip dedicado, el cual es responsable de la comunicación. La información que viaja sobre el memory bus se hace a una velocidad mas baja que en el processor bus. Este bus tiene el mismo ancho que el procesor bus, significa que en un sistema con CPU de 32 bits el memory bus es de 32 bits, esto definirá el tamaño de lo que se conoce como banco de memoria. Los slots para la memoria son conectados en el memory bus de la misma forma que son conectados los slots de E/S Bus. 8.3 Bus E/S Son los buses que se encargan de la entrada y salida de los datos en todo el sistema. Las diferencias entre los tipos de buses que pertenecen a esta categoría consiste en la cantidad de datos que pueden transferir a la vez y la velocidad a la que pueden hacerlo. Para el Bus de Direcciones, el "ancho de canal" explica así mismo la cantidad de ubicaciones o Direcciones diferentes que el microprocesador puede alcanzar. Esa cantidad de ubicaciones resulta de elevar el 2 a la 32 potencia. "2" porque son dos las señales binarias, los bits 1 y 0; y "32 potencia" porque las 32 pistas del Bus de Direcciones son, en un instante dado, un conjunto de 32 bits. Así, el Canal de Direcciones del Microprocesador para una PC-ATX puede "direccionar" más de 4 mil millones de combinaciones diferentes para el conjunto de 32 bits de su Bus. 11 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras 9. INTERRUPCIONES Son señales que se le envían a la CPU para que termine la ejecución de la instrucción en curso y atienda una petición determinada. 9.1 TIPOS DE INTERRUPCIONES Existe 4 tipos de interrupciones: · Interrupciones Hardware Son generadas por los circuitos del computador en respuesta a algún evento como pulsar una tecla de teclado. Este tipo de interrupciones la maneja el controlador de interrupciones, que establece la prioridad antes de enviar la señal a la CPU. (provocadas por los periféricos del computador). · Interrupciones Internas Son generadas por la propia CPU cuando se produce una situación anormal ( generadas por el propio microprocesador cuando ocurren ciertas condiciones especiales) como por ejemplo una división por cero. Los tipos de interrupciones internas son 5, estas son: 0 – Error en división 1 – Paso a paso (modo depuración de programas) 2 – No enmascarable (no se puede desactivar el programa) 3 – Sirve para indicar puntos donde debe pararse el programa 4 – Desbordamiento (overflow). Se dispara por la instrucción INTO ( interrupcion si overflow) · Interrupciones software Son generadas por el propio programa para invocar a ciertas rutinas almacenadas en memoria (ROM o RAM). · Interrupción no enmascarable Se usa para pedir la atención inmediata de la CPU en situaciones de emergencia, como caida de voltaje o error de paridad de memoria . Cada interrupción lleva asociado un numero que identifica el tipo de servicio que debe realizar. A partir del numero de la interrupción calcula la dirección de la rutina que realiza el servicio requerido, la ejecuta y retorna a la instrucción siguiente a la ultima que ejecutó antes de que se produjera la interrupción. En total existen 256 interrupciones ( códigos de 0 a 255). Mediante este código se apunta a una tabla de vectores de interrupción, cada vector contiene la dirección de la rutina de tratamiento de la interrupción. Algunas de las interrupciones se reservan para el BIOS (Basic Input Output System) y otras para el sistema operativo. 12 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras 10. DEFINICION Y ARQUITECTURA DE LA PLACA MADRE La placa base (placa madre o tarjeta madre o motherboard o mainboard) es una tarjeta de circuito impreso a la que se conectan las demás partes de la computadora, . Tiene instalados una serie de integrados, entre los que se encuentra el Chipset que sirve como centro de conexión entre el procesador, la memoria RAM, los buses de expansión y otros dispositivos. Va instalada dentro del case y tiene un panel para conectar dispositivos externos y muchos conectores internos y zócalos para instalar componentes, además incluye un software llamado BIOS, que le permite realizar las funcionalidades básicas como: pruebas de los dispositivos, vídeo y manejo del teclado, reconocimiento de dispositivos y carga del sistema operativo. 10.1 COMPONENTES DE LA PLACA BASE Una placa base tiene los siguientes componentes: · Uno o varios conectores de alimentación: · El zócalo de CPU (a menudo llamado socket): es un receptáculo que recibe el microprocesador y le conecta con el resto de la microcomputadora. · Los conectores de RAM (ranura de memoria, en inglés memory slot) en número de 2, 3 o 4 en las placas base comunes e incluso 6. · El chipset, circuito electrónico, que gestiona las transferencias de datos entre los diferentes componentes de la computadora (microprocesador, memoria, disco duro, etc.). · Un reloj: regula la velocidad de ejecución de las instrucciones del microprocesador y de los periféricos internos. · La CMOS: una pequeña memoria que preserva cierta información importante (como la configuración del equipo, fecha y hora), mientras que el equipo no está alimentado por electricidad. · La pila de la CMOS: proporciona la electricidad necesaria para operar el circuito. · La BIOS: un programa registrado en una Memoria no volátil, es específico de la tarjeta y se encarga de la interfaz de bajo nivel entre el microprocesador y algunos periféricos. Recupera, y después ejecuta, las instrucciones del MBR (Master Boot Record), registrados en un disco duro, cuando arranca el equipo. · El bus (también llamado bus interno o en inglés (Front Side Bus (FSB)): Conecta el microprocesador al chipset. · El bus de memoria conecta el chipset a la memoria temporal. · Los conectores de entrada/salida que cumplen normalmente con la norma PC 99: Estos conectores incluyen: Los puertos seriales, paralelos, USB. RJ45,VGA, IDE, Sata · Los conectores (slots) de expansión: que acogen tarjetas de expansión para agregar características o aumentar el rendimiento de un ordenador, por ejemplo, un tarjeta gráfica para mejorar el rendimiento de la pantalla 3D en el monitor. Estos puertos pueden ser 13 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras puertos ISA (interfaz antigua), PCI (en inglés Peripheral Component Interconnect) y los más recientes PCI Express. 11. TIPOS DE TARJETA MADRE 11.1 TARJETA MADRE XT Es el formato de la placa base de la PC de IBM modelo 5160, lanzada en 1983 con las misma. En este factor de forma se definió un tamaño exactamente igual al de una hoja de papel tamaño carta y un único conector externo para el teclado. 11.2 TARJETA MADRE AT Las AT son las placas compatibles desde la 80286 hasta las primeras Pentium, tienen 12 contactos para la fuente de energia(P80 6 contactos, P9 = 6 contactos) 11.3 TARJETA MADRE ATX Creado por Intel en 1995 introdujo las conexiones exteriores en la forma de un panel I/O y definió un conector de 20 pines para la energía, posteriormente se agrego 4 contactos auxiliares para la energía 11.4 TARJETA MADRE ATX2 Destinadas a PCs de pequeño formato. Hacen uso de un conector de energía de 24 pines y de un conector adicional de 2x2. 12. RANURAS DE EXPANSION Son las ranuras donde se conectan diversas tarjetas en el sistema. Clases: ISA PCI, AGP, PCI EXPRESS 12.1 ISA ( INDUSTRIA STANDART ) Las ranuras ISA son de Color negro, cuentan con una Velocidad de procesamiento de 8 MHz, su tamaño aproximado es de 14 cm de longitud, su canal de datos es de 16 bits, surge en 1980, actualmente ya no se usan. 12.2 PCI ( COMPONENTE PERIFERICIO INTERCONECTADO) Las ranuras PCI son de color beish o blanco, su velocidad de procesamiento es de 33 MHz, el canal de datos es de 32 bits, son plug and play, esto quiere decir que cuando se conectan, son detectados automáticamente, no se les hace ninguna configuración para que funcione. (propiedad de los componentes hardware). 12.3 AGP ( ACCELERATE GRAPHICS PART) 14 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras Son de Color café oscuro, su tamaño aproximado es de 8 cm de longitud, fue desarrollado por INTEL en 1966 como puerto grafico, utilizadas exclusivamente para tarjetas de expansión de video, solo existe una ranura AGP, en la placa madre, ya que el PC solo tiene una tarjeta de video. 12.4 PCI EXPRESS Vienen de todos los colores, su velocidad de procesamiento es de 66mhtz, el canal de datos es de 64 bits. Fue Creado por INTEL en 2004, en ella se puede conectar tarjetas graficas. 13. LA BIOS BIOS (Basic Input/Output System) significa sistema básico de entrada/salida, es un programa integrado a la placa base mediante un chip, que se usa para realizar las funciones básicas de configuración del computador. Los datos se guardan en una memoria ROM, alimentada por una pila (acumulador). Básicamente encontramos dos fábricas de BIOS, la Award y la AMI, aunque también existen de otros como Phoenix. 13.1 CONFIGURACIONES BÁSICAS Mediante el BIOS se puede realizar básicamente las siguientes configuraciones · Configuración de la fecha y la hora · Configuración de Discos duros · Configuración de lectores y quemadores · Configuración de disquetera · Configuración del Sistema de Arranque También nos da la posibilidad de comprobar y afirmar, o modificar, la configuración de los puertos IDE, comprobar la memoria del sistema; el tipo de tarjeta gráfica, administración de energía y claves de acceso al BIOS. UNIDAD II MEMORIAS Y MICROPROCESADORES 1. INTRODUCCIÓN La Memoria Ram (Memoria de acceso directo), es un circuito electrónico con celdas microscópicas, en la cual cada celda almacena un carácter ( 0 o 1 ) cuyas operaciones básicas consisten en leer y almacenar información mediante el uso del bus de datos y direcciones, estas operaciones ocurren en un orden lógico. El hito técnico actual, marca a la ultima tecnología en microprocesadores y memorias RAM que han mejorado y llegado a alcanzar el sueño de los seres humanos. 15 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras 2. CONCEPTOS Y CARACTERISTICAS 2.1 MEMORIAS El diseño del chip de memorias es un conjunto de celdas microscópicas ,para acceder a la escritura y lectura de los datos , los circuitos de prebúsqueda del CPU activan unos circuitos denominados MCC( Memory Control Circuit,Circuito de control de memoria) que forman parte del chipset de la placa madre. 2.2 MEMORIA ROM Las memorias de solo lectura son conocidas como ROM (Read Only Memory), se caracterizan por ser de lectura y contener celdas de lectura no volatiles 2.3 MEMORIAS RAM Se denomina RAM por que es posible acceder a cualquier ubicación aleatoriamente y rápidamente, están constituidas por un conjunto de chips o módulos de chips normalmente conectados a la tarjeta madre. 2.4 MEMORIA CACHE Esta Memoria se encuentra en el microprocesador, es una memoria rapida que sirve al procesador a obtener rapidamente los datos que seran procesados sin tener que acudir a la memoria RAM, reduciéndose de esta form el tiempo de espera. La memoria cahe tiene 2 niveles L1 y L2 donde: L1 memoria de 1° nivel o cache interno, ayuda con las operaciones aritmético –logicas L2 memoria de 2° nivel o cache externo,ayuda a la organización de archivos. 3. TIPOS DE MEMORIAS RAM Existen 3 tipos principales de memoria física en las computadoras actuales, estas son: ROM, RAM estatica y RAM dinamica. 3.2 SRAM (Ram Estatica) Mantiene su data tanto tiempo como se provea de energia a los chips de memoria, no se puede actualizar. 3.3 DRAM (RAM DINAMICA), ya que es "la original", y por tanto la más lenta. Usada hasta la época del 386, su velocidad típica es de 80 ó 70 nanosegundos (ns), tiempo éste que tarda en vaciarse para poder dar entrada a la siguiente serie de datos. Por ello, es más rápida la de 70 ns que la de 80 ns. 16 Universidad Salesiana de Bolivia Ingeniería de Sistemas · Hard. y Arq. de Computadoras Fast Page (FPM): a veces llamada DRAM (o sólo "RAM"), puesto que evoluciona directamente de ella, y se usa desde hace tanto que pocas veces se las diferencia. Algo más rápida, tanto por su estructura (el modo de Página Rápida) como por ser de 70 ó 60 ns. Usada hasta con los primeros Pentium, 4. TECNOLOGÍAS Y CARACTERÍSTICAS DE MEMORIAS Los bancos de memoria se encuentran en la placa madre, es la forma en que se unen los chips de memoria, para conectarse, son unas placas alargadas con conectores en sus extremos, al conjunto de placa se denomina modulo, la tecnología ha ido cambiando con los años, y se presentan en forma de módulos de memoria que pueden conectarse a la placa madre. Las tecnologías son: MINISIMM, SIMM,DIMM,RIMM,DDR,DDR2,DDR3 MINISIMM à 286 , 386 SIMM à 486 , Pentium 1 (Las SIMM llega máximo hasta 16 Mb) DIMM à Pentium 1,2,3 y 4 RIMM à Pentium 4 DDR1 à Pentium D y 4 DDR2 à Dual Core, Core 2 duo(algunas Pentium D) DDR3 à Quad Core, Core i7 4.1 TIPOS DE MEMORIA MEMORIA TECNOLOGÍA VELOCIDAD O RENDIMIENTO CAPACIDAD PARIDAD FRECUENCIA SIMM FDD 50 ns 230 Mbps 4 Mb EDO 50 ns 400 Mbps 8 Mb Si 16 Mb DIMM EDO 50 ns 400 Mbps 16 Mb PC – 66 66 Mhz 533 Mbps 32 Mb PC –100 100 Mhz 800 Mbps 64 Mb PC –133 133 Mhz 1066 Mbps 128 Mb No 256 Mb 512 Mb RIMM PC –600 600 Mhz 1066 Mbps 64 Mb PC –700 700 Mhz 1420 Mbps 128 Mb PC –800 800 Mhz 1600 Mbps PC –1200 1200 Mhz 2400 Mbps Si 17 Universidad Salesiana de Bolivia Ingeniería de Sistemas DDR DDR2 Hard. y Arq. de Computadoras PC –1600 200 Mhz 1.6 Gbps 128 Mb PC –2100 266 Mhz 2.1 Gbps 256 Mb PC –2700 333 Mhz 2.7 Gbps 512 Mb PC –3200 400 Mhz 3.2 Gbps 1 Gb PC2 – 3200 400 Mhz 3.2 Gbps 128 Mb PC2 – 4300 533 Mhz 4.3 Gbps 256 Mb PC2 - 5300 667 Mhz 5.3 Gbps 512 Mb 800 Mhz 5. No No 1,.... 3.2 Gb MODOS DE DIRECCIONAMIENTO El campo de operación de una instrucción determina la operación que se va a ejecutar, esta operación debe realizarse sobre algunos datos almacenados en registros de computadora o en palabras de memoria. La manera en que eligen los operandos durante la ejecución del programa depende del modo de direccionamiento de la instrucción, el modo de direccionamiento especifica una regla para interpretar o modificar el campo de dirección de la instrucción antes de que se haga la referencia real al operando. 5.1 MODO INMEDIATO Una instrucción de modo inmediato tiene un campo operando, en lugar de una campo de dirección. Un campo de operando contiene el operando real que se va a usar junto con la operación especificada en la instrucción. Las instrucciones de modo inmediato son útiles para inicializar registros en un valor constante. 5.2 MODO DE REGISTRO En este modo, los operandos están en registros que residen dentro de la CPU, se selecciona el registro particular de un campo de registro en la instrucción. Un campo k bits puede especificar cualquiera de 2 a la k registros. 5.3 MODO INDIRECTO POR REGISTRO La ventaja de una instrucción de modo de registro indirecto es que el campo de dirección de la instrucción utiliza menos bits para seleccionar un registro de los que necesitaría para especificar una dirección de memoria en forma directa. 5.4 MODO DE DIRECCIONAMIENTO DIRECTO La dirección efectiva es igual a la parte de dirección de la instrucción, el operando reside en memoria y su dirección la proporciona en forma directa el campo de dirección de la instrucción. 18 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras 5.5 MODO DE DIRECCIONAMIENTO INDIRECTO En este modo, el campo de dirección de la instrucción proporciona la dirección en que se almacena la dirección efectiva en la memoria. El control recupera la instrucción de la memoria y utiliza su parte de dirección para accesar la memoria una vez mas con el fin de leer la dirección efectiva. 5.6 MODO DE DIRECCIONAMIENTO INDEXADO El contenido de un registro índice se suma a la parte de dirección de la instrucción para obtener la dirección efectiva. El registro índice es un registro especial que contiene un valor índice, un campo de dirección de la instrucción define la dirección inicial del arreglo de datos en la memoria. Cada operando del arreglo se almacena en la memoria en relación con la dirección inicial. 5.7 MODO DE DIRECCIONAMIENTO DE REGISTRO BASE En este modo, el contenido de un registro base se suma a la parte de dirección de la instrucción para obtener la dirección efectiva, esto es similar al modo de direccionamiento indexado, excepto en que el registro se denomina ahora registro base, en lugar de registro índice 6. MICROPROCESADORES El microprocesador es un circuito integrado que actúa como unidad central de proceso del computador, proporcionando el control de las operaciones de cálculo. Los microprocesadores también se utilizan en otros sistemas informáticos avanzados, como impresoras, automóviles o aviones. Los microprocesadores actuales incorporan hasta 10 millones de transistores (que actúan como amplificadores electrónicos, osciladores o, más a menudo, como conmutadores), además de otros componentes como resistencias, diodos, condensadores y conexiones, todo ello en una superficie comparable a la de un sello postal. Un microprocesador consta de : La unidad aritmético-lógica (ALU, siglas en inglés) efectúa cálculos con números y toma decisiones lógicas; los registros son zonas de memoria especiales para almacenar información temporalmente; la unidad de control descodifica los programas; los buses transportan información digital a través del chip y de la computadora, secciones de memoria especializada denominadas memoria cache, que sirven para acelerar el acceso a los dispositivos externos de almacenamiento de datos. El microprocesador es un circuito electrónico que funciona a la velocidad de un reloj interno, gracias a un cristal de cuarzo que, sometido a una corriente eléctrica, envía pulsos, denominado "picos", la velocidad de reloj (también denominada ciclo), corresponde al número de pulsos por segundo, expresados en Hertz (Hz). De este 19 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras modo, un computador de 200 MHz posee un reloj que envía 200.000.000 pulsos por segundo. 7. ARQUITECTURA Y SUS REGISTROS INTERNOS Existen 2 tipos de arquitecturas que son: La arquitectura CISC y la RISC 7.1 La arquitectura CISC (Complex Instruction Set Computer, Ordenador de Conjunto de Instrucciones Complejas) se refiere a la conexión permanente del procesador con las instrucciones complejas, difíciles de crear a partir de las instrucciones de base. Esta arquitectura es especialmente popular en procesadores de tipo 80x86 y tiene un costo elevado a causa de las funciones avanzadas impresas en la silicona. Las instrucciones son de longitud diversa, y a veces requieren más de un ciclo de reloj, dado que los procesadores basados en la arquitectura CISC sólo pueden procesar una instrucción a la vez, el tiempo de procesamiento es una función del tamaño de la instrucción. 7.2 ARQUITECTURA RISC Los procesadores con tecnología RISC (Reduced Instruction Set Computer, Ordenador de Conjunto de Instrucciones Reducidas) no poseen funciones avanzadas conectadas en forma permanente, razón por la cual los programas deben traducirse en instrucciones sencillas, y esto hace necesario la utilización de un procesador más potente. Este tipo de arquitectura tiene un costo de producción reducido comparado con los procesadores CISC, además las instrucciones sencillas se ejecutan en un sólo ciclo de reloj, lo cual acelera la ejecución del programa. Los procesadores con arquitectura RISC pueden manejar múltiples instrucciones en forma simultánea, procesándolas en paralelo. 8. TIPOS DE PROCESAMIENTO 8.1 PROCESAMIENTO PARALELO El procesamiento paralelo consiste en la ejecución simultánea de instrucciones desde el mismo programa pero en diferentes procesadores. Implica la división del programa en múltiples procesos manejados en paralelo a fin de reducir el tiempo de ejecución. No obstante, este tipo de tecnología necesita sincronización y comunicación entre los diversos procesos, de manera similar a lo que puede llegar a ocurrir cuando se dividen las tareas en una empresa: se distribuye el trabajo en procesos discontinuos más pequeños que son manejados por diversos departamentos. El funcionamiento de una empresa puede verse afectado en gran medida si la comunicación entre los distintos servicios internos no funciona de manera correcta. 20 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras 8.2 CANALIZACIÓN Se denomina canalización a la tecnología destinada a mejorar la velocidad de ejecución de instrucciones mediante la colocación de las diversas etapas en paralelo. A fin de comprender el mecanismo de canalización, es necesario primero comprender las etapas de ejecución de una instrucción, que son las siguientes: · RECUPERACIÓN: (recupera la instrucción de la caché) · DECODIFICACIÓN: decodifica la instrucción y busca operandos (valores de registro o inmediatos); · EJECUCIÓN: ejecuta la instrucción (por ejemplo, si se trata de una instrucción ADD, se realiza una suma, si es una instrucción SUB, se realiza una resta, etc.); · MEMORIA: accede a la memoria, y escribe o recupera información desde allí; · POST ESCRITURA (retirar): registra el valor calculado en un registro. El objetivo de la canalización es ejecutar cada paso en paralelo con los pasos anteriores y los siguientes, lo que implica leer la instrucción (RECUPERACIÓN) mientras se lee el paso anterior (DECODIFICACIÓN), al momento en que el paso anterior está siendo ejecutado (EJECUCIÓN) al mismo tiempo que el paso anterior se está escribiendo en la memoria (MEMORIA), y que el primer paso de la serie se registra en un registro (POST ESCRITURA). 8.3 HYPERTHREADING La tecnología HyperThreading consiste en ubicar dos procesadores lógicos junto con un procesador físico. El sistema reconoce así dos procesadores físicos y se comporta como un sistema multitareas, enviando de esta manera, dos subprocesos simultáneos denominados SMT (Simultaneous Multi Threading, Multiprocesamiento Simultáneo). Este "engaño", permite emplear mejor los recursos del procesador, garantizando el envío masivo de información.. 9. TECNOLOGÍA DE MICROPROCESADORES 9.1 SLOT El microprocesador es de tamaño grande, como una terjeta adicional, se encuentra en las AT y en las Primeras pentium 9.2 PGA El microprocesador posee socket de plastico que permiten la conexión eléctrica entre el circuito integrado que conforma el microprocesador y los circuitos de la placa base 9.3 LGA El microprocesador posee un arreglo de elementos metálicos (pines, esferas, contactos) que permiten la conexión eléctrica entre el circuito integrado que conforma el microprocesador y los 21 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras circuitos de la placa base. Dependiendo de la complejidad y de la potencia, un procesador puede tener desde 8 hasta más de 1000 elementos metálicos en la superficie de su empaque 10. EVOLUCION DE MICROPROCESADORES A través del tiempo, los fabricantes de microprocesadores han desarrollado un determinado número de mejoras tecnológicas que optimizan el rendimiento del procesador 10.1 MICROPROCESADOR 4004 Es un microprocesador de 4 bits de bus de datos, direcciona 32768 bits de ROM y 5120 bits de RAM. Además se pueden direccionar 16 ports de entrada (de 4 bits) y 16 ports de salida (de 4 bits). Contiene alrededor de 2300 transistores MOS de canal P de 10 micrones. El ciclo de instrucción es de 10,8 microsegundos. Este microprocesador estaba encapsulado en el formato DIP (Dual Inline Package) de 16 patas (ocho de cada lado). La distancia entre las patas es de 0,1 pulgadas (2,54 milímetros), mientras que la distancia entre patas enfrentadas es de 0,3 pulgadas (7,68 milímetros). 10.2 MICROPROCESADOR 8008 Este microprocesador de ocho bits poseía alrededor de 3500 transistores, direccionaba 16 KBytes y la frecuencia máxima de reloj (clock) era de 108 KHz. El 8008 no tiene registro de puntero de stack (SP). Tiene una pila interna de 8 posiciones para almacenar las direcciones de retorno en el caso de llamadas a subrutina. Hay cuatro indicadores (o flags): Carry, Sign, Parity y Zero (C, S, P, Z). 10.3 MICROPROCESADOR 8080 El 8080 tenía alrededor de 6000 transistores MOS de canal N (NMOS) de 6 micrones, se conectaba al exterior mediante 40 patas (en formato DIP) y necesitaba tres tensiones para su funcionamiento (típico de los circuitos integrados de esa época): +12V, +5V y -5V. La frecuencia máxima era de 2 MHz. La competencia de Intel vino de Motorola. Seis meses después del lanzamiento del 8080, apareció el 6800. Este producto era mejor en varios aspectos que el primero. El mayor competidor del 8080 fue el microprocesador Z-80, que fue lanzado en 1976 por la empresa Zilog (fundada por Faggin). 10.4 EL MICROPROCESADOR 8085 Fue creado por la empresa Intel en 1977. La alimentación es única: requiere sólo +5V. Tiene incorporado el generador de pulsos de reloj con lo que sólo hace falta un cristal de cuarzo y un par de capacitores externos (para el 8080 se necesitaba el circuito integrado auxiliar que lleva el código 8224). El microprocesador 8085 posee un complejo y completo sistema de interrupciones. 22 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras 10.5 LOS MICROPROCESADORES 8086 Y 8088 El 8086 es un microprocesador de 16 bits, tanto en lo que se refiere a su estructura como en sus conexiones externas, mientras que el 8088 es un procesador de 8 bits que internamente es casi idéntico al 8086. La única diferencia entre ambos es el tamaño del bus de datos externo. Intel trata esta igualdad interna y desigualdad externa dividiendo cada procesador 8086 y 8088 en dos subprocesadores: Unidad de ejecución y una unidad interfaz del bus 10.6 MICROPROCESADORES 80186 Y 80188 El chip contiene otros componentes aparte de los encontrados en microprocesadores comunes como el 8088 u 8086, contienen, aparte de la unidad de ejecución, contadores o "timers", y a veces incluyen memoria RAM y/o ROM y otros dispositivos que varían según los modelos. Cuando contienen memoria ROM, a estos chips se los llama microcomputadoras en un sólo chip (no siendo éste el caso de los microprocesadores 80186/80188). Los microprocesadores 80188/80186 contenían, en su primera versión, lo siguiente: 23 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras 10.7 MICROPROCESADOR 80286 y 80386 El 80286 tiene cuatro nuevos registros, y el 80386 consiste en una unidad central de proceso (CPU), una unidad de manejo de memoria (MMU)y una unidad de interfaz con el bus (BIU). La CPU está compuesta por la unidad de ejecución y la unidad de instrucciones. La unidad de ejecución contiene los ocho registros de 32 bits de propósito general que se utilizan para el cálculo de direcciones y operaciones con datos y 64 bits que se utiliza para acelerar las operaciones de desplazamiento, rotación, multiplicación y división. 10.8 EL MICROPROCESADOR PENTIUM Este microprocesador se presentó el 22 de marzo de 1993 con velocidades iniciales de 60 y 66 MHz (112 millones de instrucciones por segundo en el último caso), 3.100.000 transistores (fabricado con el proceso BICMOS (BipolarCMOS) de 0,8 micrones), caché interno de 8 KB para datos y 8 KB para instrucciones, verificación interna de paridad para asegurar la ejecución correcta de las instrucciones, una unidad de punto flotante mejorada, bus de datos de 64 bit para una comunicación más rápida con la memoria externa y, lo más importante, permite la ejecución de dos instrucciones simultáneamente. El chip se empaqueta en formato PGA (Pin Grid Array) de 273 pines. 10.9 MICROPROCESADOR PENTIUM II El Pentium II consigue aumentar la potencia del Pentium pro con las ventajas multimedia del Pentium mmx. Diseñado para 233, 266, 300 MHz dispone de una memoria cache interna de 512 KB. Otra novedad incluida es el tipo de zócalo que Intel lanza como nuevo estándar para su microprocesador: El SEC (Single Edge Connect). En el caso del Pentium II, la memoria cache de segundo nivel va en el circuito impreso que sirve de soporte para el microprocesador. El nuevo diseño externo del Pentium tienes dos funciones primordiales: - Aislamiento que permite apantallar el microprocesador de los demás componentes y viceversa: impedir que el resto de los componentes interfieran sobre el correcto funcionamiento del microprocesador. - Soporte del disipador ventilador que, dadas las condiciones de refrigeración necesarias en el microprocesador, debe ser voluminoso. 10.10 MICROPROCESADOR PENTIUM CELERON El Pentium Celeron se puede entender como el Pentium II ``Sx'', se trata de un microprocesador inferior al Pentium II pero con un mejor precio, esto consiguió que perdurase mas tiempo que el 24 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras propio Pentium II, siendo la punta de lanza de la compañía INTEL hasta la aparición del Pentium III. Este micro apareció bajo dos encapsulados diferentes: el SEPP y el PPGA. El primero fue el mas común, recordando al típico formato del Pentium II, aunque también estaba optimizado para trabajar con aplicaciones de 32bits, la critica a este microprocesador venia por la ausencia de memoria cache L2. esto afectaba a toda la gama comprendida entre los 266 y 300MHz; el resto incluían una L2 de 128KB sincronía con la velocidad del microprocesador. Implementados con 7,5 millones de transistores hasta los modelos de 300MHz y con 9,1 millones el resto, estos micros heredan las instrucciones MMX y siguen manteniendo una comunicación con el bus de 66MHz. 10.11 Microprocesador PENTIUM III Debe tenerse en cuenta que admitio frecuencias de trabajo vertiginosas en su tiempo de 450, 500 y 550MHz funcionando con un Chipset 440BX. Incluye, ademas, 512 KB de memoria cache de segundo nivel. Incluye 8 nuevos registros de 128 bits, ademas de los 8 registros FP ya existentes de 64 bits, donde cada registro soporta 4 valores de coma flotante de simple preciosion IEEE. Las importantes mejoras en graficos 3D con mas polígonos y efectos complementan la animación asi como el tratamiento de imágenes. Este tratamiento dispone de algoritmos optimizados que permiten manejar imágenes mas grandes y complejas en menos tiempo. En cuanto al video, lo mas destacable es la posibilidad de edición y codificación de ficheros en formato comprimido MPEG 2 en tiempo real junto al resto de características heredadas del tratamiento de imágenes. Esto consigue una reproducción de video mas ``real'' sin cortes entre imágenes. 10.12 MICROPROCESADOR PENTIUM IV El PENTIUM 4 precisa de una placa base diseñada de forma especifica. El formato en el que se suministra es para socket 423, aunque existen varios rumores por parte de INTEL, sobre un cambio de formato inminente hacia los 478 pines. Ademas el sistema de refrigeración precisa de una caja y fuente de alimentación especiales denominadas ATX 2.03. El micro de 1,4GHz y bajo la premisa expuesta de un funcionamiento a 100 MHz, es necesario configurar la placa base con un factor multiplicador de x14. Se alcanzan los 3,2 GB/s frente a 1 GB/s obtenido por el PENTIUM II con un bus de 133 MHz o los 0,5 GB/s del Celeron con un bus de 66MHz. 10.13 MICROPROCESADOR Core i7 Es un microprocesador con cuatro núcleos de la arquitectura, tecnología LGA de 1366 contactos 11. COPROCESADOR MATEMÁTICO 8087 25 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras El procesador de datos numérico 8087 aumenta el juego de instrucciones del 8086/8088 mejorando su capacidad de tratamiento de números. Se utiliza como procesador paralelo junto al 8086/8088 añadiendo 8 registros de coma flotante de 80 bits así como instrucciones adicionales. Utiliza su propia cola de instrucciones para controlar el flujo de instrucciones del 8086/8088, ejecutando sólo aquellas instrucciones que le corresponden, e ignorando las destinadas a la CPU 8086/8088. Existen dos tipos de números que aparecen normalmente durante el cálculo: los números enteros y los números reales. Los enteros son fáciles de tratar para la computadora. Los chips microprocesadores de propósito general trabajan con números enteros utilizando la representación binaria de números en complemento a dos. Los números reales, sin embargo es la representación en coma flotante es en el fondo una variación de la notación científica que puede verse en el visualizador de cualquier calculadora. Con este sistema, la representación de un número consta de tres partes: el signo, el exponente y la mantisa. Antes de continuar, veremos por qué es necesaria esta representación. UNIDAD III PROGRAMACIÓN A BAJO NIVEL 1. INTRODUCCION Un programa escrito en lenguaje ensamblador consiste en una serie de instrucciones que corresponden al flujo de órdenes ejecutables que pueden ser cargadas en la memoria de una computadora. El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador. La transformación del lenguaje ensamblador en código máquina la realiza un programa ensamblador, y la traducción inversa la puede efectuar un desensamblador, en algunos casos, un ensamblador puede proveer "pseudo instrucciones" que se expanden en un código de máquina más extenso a fin de proveer la funcionalidad necesaria. Fue usado ampliamente en el pasado para el desarrollo de software, pero actualmente sólo se utiliza en contadas ocasiones, especialmente cuando se requiere la manipulación directa del hardware o se pretenden rendimientos inusuales de los equipos. Entre sus características mas importantes están los siguientes: · Trabaja a nivel de instrucciones, es decir, su programación es al más fino detalle. · Está orientado a la máquina. · Programar en lenguaje ensamblador es difícil de aprender, entender, leer, escribir, depurar y mantener, por eso surgió la necesidad de los lenguajes compilados. 26 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras · El lenguaje ensamblador no es portable. · Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas de 5 a 10 veces más rápidos que con lenguajes de alto nivel. · Los programas en lenguaje ensamblador ocupan casi la mitad de espacio que su contraparte en lenguaje de alto nivel. · Con el lenguaje ensamblador se pueden crear segmentos de código imposibles de formar en un lenguaje de alto nivel. · El lenguaje ensamblador trabaja más directamente con el hardware (con registros del microprocesador, memoria, dispositivos,..,etc.). · El sistema numérico por excelencia no es el decimal 2. EL DEBUG “Bug" significa fallo, defecto en un programa; "debug" significa depurar (escrutar y eliminar fallos). de esta han derivado otras. Por ejemplo: "Debugger" (depurador). DEBUG.EXE es un ejecutable que, hasta 2001, acompañó a todas las versiones de MS-DOS, a partir de la 2.0, y de Windows, es un programa antiguo pero de enorme potencial, se trata de una utilidad interactiva de exploración de bajo nivel, pero que también puede utilizarse para ciertas funciones. El DEBUG debe utilizarse con cierto cuidado, debe ser invocarlo desde MS-DOS o desde una ventana DOS de Windows, aunque en este último caso algunas de sus funcionalidades más interesantes estarán vetadas. 2.1 TERMINOLOGIA Una vez que el programa está en ejecución, el indicador ("prompt") es un guión “-“ indicando que el "Shell" espera recibir órdenes. Para salir basta pulsar una Q. Como muchos programas de su género, sus comandos empiezan por una letra o combinación de ellas (pueden usarse indistintamente mayúsculas o minúsculas) y ciertos parámetros opcionales (no es imprescindible separar la letra de opción de los parámetros opcionales que siguen). La opción más sencilla es la interrogación ?, cuyo resultado es una lista resumida de las opciones disponibles: ensamblar A [dirección] comparar C dirección de intervalo volcar D [intervalo] escribir llenar F lista de intervalos ir hex H valor1 valor2 entrada cargar L [dirección] [unidad] [primer_sector] [número] mover M dirección de intervalo nombre N [nombre_ruta] [lista_argumentos] salida O byte de puerto proceder P [=dirección] [número] salir Q E dirección [lista de valores] G [=dirección] [direcciones] I puerto 27 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras registrar R [registrar] buscar S lista de intervalos seguimiento T [=dirección] [valor] desensamblar U [intervalo] escribir W [dirección] [unidad] [primer_sector] [número] asignar memoria expandida XA [#páginas] desasignar memoria expandida XD [identificador] asignar páginas de memoria expandida XM [Lpágina] [Ppágina] [identificador] mostrar estado de la memoria expandida XS La mayoría de los comandos de debug ejecutan una acción y vuelven al indicador del shell, pero si es un comando largo, como puede ser mostrar un trozo grande de código, puede detenerse pulsando CTRL-Pausa o interrumpirse con CTRL-C para volver al shell. 3. ESTRUCTURA DE UN PROGRAMA EN ASSEMBLER La estructura de un programa en lenguaje ensamblador es diferente a los lenguajes de alto nivel, no existe una convención establecida (no como sucede con otros lenguajes, como C/C++). Como regla de oro, es necesario la declaración de dos segmentos, la de código (CODE) y la de pila (STACK). En total, hay 4 segmentos principales: Segmento de datos, Segmento de código, Segmento de pila y Segmento Extra. En TASM las declaraciones de los segmentos se hace de la forma: .[SEGMENTO]. Para declarar la estructura de un programa básico , sería de la forma: 1. ; Define el modelo de memoria 2. .MODEL 3. .STACK ; Se necesita una PILA. 4. .CODE ; Área de código 5. Empieza: ; Etiqueta de comienzo de programa SMALL 6. mov Ax,4c00h 7. int 21h 8. END Empieza ; Modelo de memoria ; Regresa a MS-DOS por medio de la ; funcion 4c. ; Fin del programa En TASM también es necesario especificar el modelo de memoria. Además, hay que especificar la función (4c00h) de salir del programa mediante la interrupción 21h de MSDOS, si no, el programa nunca termina y nunca vamos a regresar al prompt. 3.1 DECLARACIÓN DE SEGMENTOS 28 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras En lo que respecta a la estructura del programa tenemos las directivas SEGMENT y ENDS que marcan el inicio y final de un segmento del programa. Un segmento de programa es una colección de instrucciones y/o datos cuyas direcciones son todas relativas para el mismo registro de segmento. Su sintaxis es: nombre SEGMENT [alineación] [combinación] [´clase´] nombre ENDS El nombre del segmento debe ser único, las opciones alineación, combinación y clase proporcionan información al LINK sobre cómo ajustar los segmentos. Para alineación tenemos los siguientes valores: · byte (usa cualquier byte de dirección) · word (usa cualquier palabra de dirección, 2 bytes/word) · para (usa direcciones de párrafos, 16 bytes/párrafo, deafult) · page (usa direcciones de página, 256 bytes/page) La combinación define cómo se combinarán los segmentos con el mismo nombre, puede asumir valores de: · public (concatena todos los segmentos en uno solo) · stack (igual al anterior, pero con direcciones relativas al registro SS · common (crea segmentos sobrepuestos colocando el inicio de todos en una misma dirección) · memory, indica al LINK tratar los segmentos igual que MASM con public, at address (direccionamiento relativo a address). Fin de código fuente.- Otra directiva importante es la que indica el final de un módulo. Al alcanzarla el ensamblador ignorará cualquier otra declaración que siga a ésta. Su sintaxis es: END [expresión] la opción expresión permite definir la dirección en la cual el programa iniciará. Asignación de segmentos.- La directiva ASSUME permite indicar cuales serán los valores por defecto que asumirán los registros de segmento. Existen dos formas de hacer esto: ASSUME registrosegmento:nombre,,, ASSUME NOTHING NOTHING cancela valores previos. Etiquetas.- Las etiquetas son declaradas nombre: donde nombre constituye una cadena de caracteres. Declaración de datos.- Estos se declaran según el tipo, mediante la regla 29 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras [nombre] directiva valor,,, donde directiva puede ser DB (bytes), DW (palabras), DD (palabra doble), DQ (palabra cuádruple), DT (diez bytes). También pueden usarse las directivas LABEL (crea etiquetas de instrucciones o datos), EQU (crea símbolos de igualdad) , y el símbolo = ( asigna absolutos) para declarar símbolos. Estos tienen la siguiente sintaxis: nombre = expresión nombre EQU expresión nombre LABEL tipo donde tipo puede ser BYTE, WORD, DWORD, QWORD, TBYTE, NEAR, FAR. Declaración de estructuras.- Para la declaración de estructuras de datos se emplea la directiva STRUC. Su sintaxis es: nombre STRUC campos nombre ENDS 3.3 SEGMENTOS Y REGISTROS ASOCIADOS Para nuestros programas, disponemos de varios registros, 4 de lo más importantes son: AX - Acumulador. BX - Base. CX - Contador. DX - Registro. Cada uno de estos es de 16 bits. Se puede usar sólo la mitad de esos 16 bits, seleccionando la parte correspondiente del registro. Cada uno de estos registros están formados por su parte baje y su parte alta de 8 bits. Nota: Para el manejo de aplicaciones de 32 bits, los registros pasan a ser: EAX, EBX, ECX, EDX,..,etc. 30 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras Existe otro registro importante, es el registro de banderas. El registro de banderas (flags) te proporcionará información al hacer uso de varias operaciones (suma (ADD), por ejemplo). 4. CLASIFICACION DE LAS INSTRUCCIONES 4.1 INSTRUCCIONES DE TRANSFERENCIA DE DATOS PUSH src: Pone el valor en el tope del stack. Operación: SP <- SP - 2, [SP+1:SP] <- src donde src = {reg16|mem16|CS|DS|ES|SS}. POP dest: Retira el valor del tope del stack poniéndolo en el lugar indicado. Operación: dest <- [SP+1:SP], SP <- SP + 2 donde dest = {reg16|mem16|DS|ES|SS}. XCHG reg,{reg|mem}: Intercambia ambos valores. MOV dest,src: Copia el contenido del operando fuente (src) en el destino (dest). Operación: dest <- src 4.2 INSTRUCCIONES ARITMÉTICAS (AFECTA FLAGS AF, CF, OF, PF,SF, ZF) ADD dest,src Operación: dest <- dest + src. ADC dest,src Operación: dest <- dest + src + CF. SUB dest,src Operación: dest <- dest - src. SBB dest,src Operación: dest <- dest - src - CF. CMP dest,src Operación: dest - src (sólo afecta flags). INC dest Operación: dest <- dest + 1 (no afecta CF). DEC dest Operación: dest <- dest - 1 (no afecta CF). NEG dest Operación: dest <- - dest; donde dest = {reg|mem} y src = {reg|mem|inmed} no pudiendo ambos operandos estar en memoria. DAA: Corrige el resultado de una suma de dos valores BCD empaquetados en el registro AL (debe estar inmediatamente después de una instrucción ADD o ADC). OF es indefinido después de la operación. DAS: Igual que DAA pero para resta (debe estar inmediatamente después de una instrucción SUB o SBB). 31 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras AAM: Convierte AL en binario a AH:AL en BCD desempaquetado. Operación: AH <- AL / 0Ah, AL <- AL mod 0Ah. Afecta PF, SF, ZF, mientras que AF, CF y OF quedan indefinidos. MUL {reg8|mem8}: Realiza una multiplicación con operandos no signados de 8 por 8 bits. MUL {reg16|mem16}: Realiza una multiplicación con operandos no signados de 16 por 16 bits. IMUL {reg8|mem8}: Realiza una multiplicación con operandos con signo de 8 por 8 bits. Operación: AX <- AL * {reg8|mem8} realizando la multiplicación con signo. CF = OF = 0 si el resultado entra en un byte, en caso contrario valdrán 1. AF, PF, SF, ZF quedan indefinidos. IMUL {reg16|mem16}: Realiza una multiplicación con operandos con signo de 16 por 16 bits. Operación: DX:AX <- AX * {reg16|mem16} realizando la multiplicación con signo. CF =OF = 0 si el resultado entra en dos bytes, en caso contrario valdrán 1. AF, PF, SF, ZF quedan indefinidos. CBW: Extiende el signo de AL en AX. No se afectan los flags. CWD: Extiende el signo de AX en DX:AX. No se afectan flags. 4.3 INSTRUCCIONES LÓGICAS (AFECTAN AF, CF, OF, PF, SF, ZF) AND dest,src: Operación: dest <- dest and src. TEST dest,src: Operación: dest and src. Sólo afecta flags. OR dest,src: Operación: dest <- dest or src. XOR dest,src: Operación: dest <- dest xor src. 4.4 INSTRUCCIONES DE MANIPULACIÓN DE CADENAS MOVSB: Copia un byte de la cadena fuente al destino. Operación: 1.ES:[DI] <- DS:[SI] (un byte) 2.DI <- DI±1 3.SI <- SI±1 MOVSW: Copia dos bytes de la cadena fuente al destino. Operación: 1.ES:[DI] <- DS:[SI] (dos bytes) 2.DI <- DI±2 3.SI <- SI±2 CMPSB: Compara un byte de la cadena fuente con el destino. Operación: 1.DS:[SI] - ES:[DI] (Un byte, afecta sólo los flags) 2.DI <- DI±1 3.SI <- SI±1 32 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras CMPSW: Compara dos bytes de la cadena fuente con el destino. Operación: 1.DS:[SI] - ES:[DI] (Dos bytes, afecta sólo los flags) 2.DI <- DI±2 3.SI <- SI±2 4.5 INSTRUCCIONES DE TRANSFERENCIA DE SALTOS CONDICIONALES Saltos condicionales aritméticos (usar después de CMP): Aritmética signada (con números positivos, negativos y cero) JL etiqueta/JNGE etiqueta: Saltar a etiqueta si es menor. JLE etiqueta/JNG etiqueta: Saltar a etiqueta si es menor o igual. JE etiqueta: Saltar a etiqueta si es igual. JNE etiqueta: Saltar a etiqueta si es distinto. JGE etiqueta/JNL etiqueta: Saltar a etiqueta si es mayor o igual. JG etiqueta/JNLE etiqueta: Saltar a etiqueta si es mayor. 4.6 ARITMÉTICA SIN SIGNO (CON NÚMEROS POSITIVOS Y CERO) JB etiqueta/JNAE etiqueta: Saltar a etiqueta si es menor. JBE etiqueta/JNA etiqueta: Saltar a etiqueta si es menor o igual. JE etiqueta: Saltar a etiqueta si es igual. JNE etiqueta: Saltar a etiqueta si es distinto. JAE etiqueta/JNB etiqueta: Saltar a etiqueta si es mayor o igual. JA etiqueta/JNBE etiqueta: Saltar a etiqueta si es mayor. 4.7 OPERADORES Operadores aritméticos: +, -, *, /, MOD (resto de la división). Operadores lógicos: AND, OR, XOR, NOT, SHR, SHL. Para los dos últimos operadores, el operando derecho indica la cantidad de bits a desplazar hacia la derecha (para SHR) o izquierda (para SHL) el operando izquierdo. Operadores relacionales: Valen cero si son falsos y 65535 si son verdaderos. EQ: Igual a. NE: Distinto de. LT: Menor que. GT: Mayor que. LE: Menor o igual a. GE: Mayor o igual a. EJEMPLO Este ejemplo está completamente desarrollado en lenguaje ensamblador que usa funciones de MS-DOS (system calls) para imprimir el mensaje Hola a todos!! en pantalla. 33 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras ; HOLA.ASM ; Programa clasico de ejemplo. Despliega una leyenda en pantalla. STACK SEGMENT STACK ; Segmento de pila DW 64 DUP (?) ; Define espacio en la pila STACK ENDS DATA SEGMENT ; Segmento de datos SALUDO DB "Hola a todos!!",13,10,"$" ; Cadena DATA ENDS CODE SEGMENT ; Segmento de Codigo ASSUME CS:CODE, DS:DATA, SS:STACK INICIO: MOV AX,DATA MOV DS,AX MOV DX,OFFSET SALUDO MOV AH,09H INT 21H MOV AH,4CH INT 21H CODE ENDS END INICIO ; Punto de entrada al programa ; Pone direccion en AX ; Pone la direccion en los registros ; Obtiene direccion del mensaje ; Funcion: Visualizar cadena ; Servicio: Funciones alto nivel DOS ; Funcion: Terminar ; Marca fin y define INICIO La descripción del programa es como sigue: 1. Las declaraciones SEGMENT y ENDS definen los segmentos a usar. 2. La variable SALUDO en el segmento DATA, define la cadena a ser desplegada. El signo de dólares al final de la cadena (denominado centinela) es requerido por la función de visualización de la cadena de MS-DOS. La cadena incluye los códigos para carriage-return y line-feed. 3. La etiqueta INICIO en el segmento de código marca el inicio de las instrucciones del programa. 4. La declaración DW en el segmento de pila define el espacio para ser usado por el stack del programa. 5. La declaración ASSUME indica que registros de segmento se asociarán con las etiquetas declaradas en las definiciones de segmentos. 6. Las primeras dos instrucciones cargan la dirección del segmento de datos en el registro DS. Estas instrucciones no son necesarias para los segmentos de código y stack puesto que la dirección del segmento de código siempre es cargado en el registro CS y la dirección de la declaración del stack segment es automáticamente cargada en el registro SS. 7. Las últimas dos instrucciones del segmento CODE usa la función 4CH de MS-DOS para regresar el control al sistema operativo. Existen muchas otras formas de hacer esto, pero ésta es la más recomendada. 8. La directiva END indica el final del código fuente y especifica a INICIO como punto de arranque. 34 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras 5. PROGRAMACIÓN ESTRUCTURADA La manera más fácil de modularizar un programa es dividirlo en dos o más partes, para esto, es necesario que datos, símbolos, y demás valores de un módulo sean reconocidos por el otro u otros módulos. El lenguaje ensamblador no suele implementar directamente estas instrucciones, sino que se tienen que realizar con instrucciones de comparación y de salto condicional o incondicional, sin embargo, esto no quiere decir que la programación estructurada no se usa en lenguaje ensamblador. No hay que olvidar que todas las estructuras de código de un lenguaje de alto nivel se traducen a código maquina y, por tanto, tienen su equivalente en lenguaje ensamblador. EJEMPLO Muestra el uso de las directivas. El primer listado corresponde al módulo principal, mientras que el segundo al módulo que contiene una rutina. Ambos módulos son archivos que se editan por separado, se ensamblan por separado, pero se ligan juntos. MODULO PRINCIPAL: MAIN.ASM NAME main PUBLIC exit EXTRN print:near stack stack SEGMENT word stack 'STACK' DW 64 DUP(?) ENDS data data SEGMENT word public 'DATA' ENDS code SEGMENT byte public 'CODE' ASSUME cs:code, ds:data start: mov ax,data mov ds,ax jmp print ; carga localizacion del segmento ; en el registro DS ; va a PRINT en el otro modulo exit: code mov ah,4ch int 21h ENDS END start SUBMODULO: TASK.ASM NAME task PUBLIC print EXTRN exit:near data entrada salida data SEGMENT word public 'DATA' DB "Entrando a un submodulo....",13,10,"$" DB ".......saliendo del submodulo.",01,07,13,10,"$" ENDS 35 Universidad Salesiana de Bolivia Ingeniería de Sistemas code Hard. y Arq. de Computadoras SEGMENT byte public 'CODE' ASSUME cs:code, ds:data print: code mov mov mov mov mov mov int mov mov int mov int jmp ENDS END ah,06h ; Funcion para borrar pantalla al,0 ; todas las lineas cx,0 ; de 0,0 dh,24d dl,79d bh,0 ; atributo en lineas vacias 10h ; Servicio de e/s video dx, OFFSET entrada ah,09h 21h dx, OFFSET salida 21h exit ; Regresa al otro modulo 6. TÉCNICAS DE PROGRAMACIÓN Hay que tener en cuenta que algunas técnicas de optimización mas avanzadas suelen ser heurísticas y muy complejas. 6.1 ENSAMBLADO CONDICIONAL Verifican una condición determinada y si se cumple, ensambla una porción de código. Opcionalmente puede ensamblarse otra porción de código si la condición no se cumple. Son los siguientes: IF, IF1, IF2, IFB, IFDEF, IFDIF, IFE, IFIDN, IFNB, IFNDEF, ENDIF, ELSE. {IF|IFE} condición sentencias ;Se ejecutan si es cierta (IF) o falsa (IFE). [ELSE sentencias] ;Se ejecutan si es falsa (IF) o cierta (IFE). ENDIF La directiva ELSE y sus sentencias son opcionales. ENDIF termina el bloque y es obligatorio. Se pueden anidar directivas condicionales. IF1 permite el ensamblado de las sentencias sólo en el primer paso, mientras que IF2 lo permite en el segundo paso. IFDEF nombre permite el ensamblado de las sentencias si el nombre está definido, mientras que IFNDEF nombre lo permite si no está definido. 36 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras IFB <argumento permite el ensamblado si el argumento en una macro es blanco (no se pasó el argumento). IFNB <argumento permite el ensamblado si el argumento en una macro no es blanco (se pasó el argumento). IFIDN <argumento1, <argumento2 permite el ensamblado si los dos parámetros pasados a la macro son idénticos. IFDIF <argumento1,<argumento2 permite el ensamblado si los dos parámetros pasados a la macro son diferentes. Resumiendo, si tenemos un bloque IF-THEN con el siguiente pseudocodigo: IF <condicion> THE% <bloque IF> ENDIF la mecánica general para pasar de un bloque IF . THEN a instrucciones en ensamblador es: <instrucciones de comparación que testan la condición> Jcc END_IF ; salto condicional. cc es el código de condición para la condición falsa2. <instrucciones del bloque if> END_IF: <instrucciones que siguen al bloque> Una característica habitual en los depuradores es la posibilidad de inspeccionar y/o modificar los datos que maneja un programa. 7. EJERCICIOS DE APLICACIÓN PRACTICA ejemplo 1) Suma de dos valores de una sola cifra 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. .MODEL SMALL ; Modelo de memoria .DATA ; Segmento de datos Mensaje DB 'Programa para sumar: $' ; Cadena a desplegar .STACK ; Se necesita una pila .CODE ; Área de código Main: ; Etiqueta de comienzo del programa mov Ax, @Data ; Inicializa DS con la dirección de mov Ds, Ax ; @data mov Dx, Offset Mensaje ; Direccion de mensaje en DX mov Ah, 9h ; para poder desplegarlo traves de int 21h ; la Int 21h de MSDOS mov Ah,01h ; Llamamos a una funcion del MSDOS int 21h ; para leer un caracter del teclado sub Al,30h ; Ajuste de caracter a numero mov Bl,Al ; Pasamos el contenido de AL a BL ; Llamamos a una funcion del MSDOS int 21h ; para leer un caracter del teclado sub Al,30h ; Ajuste de caracter a numero mov Cl,Al ; Pasamos el contenido de AL a CL add Bl,Cl ; Realizamos operacion 37 Universidad Salesiana de Bolivia Ingeniería de Sistemas 21. 22. 23. 24. 25. 26. 27. add Bl, 30h mov DX,BX mov ah,02h int 21h mov Ax, 4c00h int 21h END Main Hard. y Arq. de Computadoras ; Convertimos resultado a ASCII ; Copiamos BX a DX para presentar en pantalla ; Int 02h mostrar caracter ; Muestra en pantalla el valor de DL ; Regresa al MSDOS por medio de la ; funcion 4c ; Fin del programa Ejemplo 2 ) El siguiente es un ejemplo del programa clásico Hola mundo escrito para la arquitectura de procesador x86 (bajo el sistema operativo DOS). .model small .stack .data Cadena1 DB 'Hola Mundo.$' .code programa: mov ax, @data mov ds, ax mov dx, offset Cadena1 mov ah, 9 int 21h end programa Ejemplo. En lenguaje C 1: int Entero1, Entero2, Entero3, EnMedio, Maximo, Minimo; // Enteros con signo. 2: void main(void) 3: { 4: int Temporal; 5: Entero2= -4; 6: Entero3= 200; 7: for (Entero1= -1000; Entero1<= 1000; Entero1 ++) 8: if (Entero1 > Entero2) // Entero1 siempre sera menor o igual que Entero2 9: { 10: Temporal=Entero1; 11: Entero1= Entero2; 12: Entero2= Temporal; 13: } 14: } Ejemplo . El siguiente código muestra como se trata en ensamblador cada uno de estos elementos: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. __asm { mov EAX, Entero1 ;TESTEO DE CONDICION cmp EAX, Entero2 jle fin_if ;SE SALTA CUANDO LA CONDICION ES FALSA mov Temporal, EAX mov EAX, Entero2 mov Entero1, EAX INSTRUCCIONES DEL BLOQUE IF mov EAX, Temporal mov Entero2, EAX fin_if: } 38 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras La instrucción jle realiza el salto si EAX ≤ Entero2, considerando que ambos números son enteros con signo, de forma que salta todo el bloque IF si la condición es falsa. Para comprobar que el código ensamblador es equivalente al C solo hay que insertar un breakpoint en la línea 19: El programa debe pararse y el valor de Entero1 y Entero2 debe ser 3 y 4, respectivamente. UNIDAD IV TEORIA DE INTERFACES 1. INTRODUCCIÓN En las computadoras existen dos métodos básicos para la transmisión de datos , uno de ellos es la transmisión de datos en serie, donde un dispositivo envía datos a otro a razón de un bit a la vez a través de un cable. Por otro lado la transmisión de datos en paralelo es cuando un dispositivo envía datos a otro a una tasa de n número de bits a través de n número de cables a un tiempo. Es fácil pensar que un sistema en paralelo es n veces más rápido que un sistema en serie, sin embargo esto no se cumple, porque el impedimento principal es el tipo de cable que se utiliza para interconectar los equipos. Si bién un sistema de comunicación en paralelo puede utilizar cualquier número de cables para transmitir datos, la mayoría de los sistemas paralelos utilizan ocho líneas de datos para transmitir un byte a la vez, como por ejemplo el estándar permite transferencia de datos en esquemas que van desde los ocho bits y hasta los treinta y dos bits en paralelo. Los puertos de comunicación de la PC son importantes, permiten utilizar una computadora personal para controlar todo tipo de circuitos electrónicos utilizados, principalmente, en actividades de automatización de procesos, adquisición de datos, tareas repetitivas y otras actividades que demandan precisión. Los puertos de entrada y salida son elementos de la computadora , que permiten que el sistema se comunique con los elementos exteriores, quiere decir, permiten el intercambio de datos, de aquí el nombre de interfaz de entrada y salida . 2. CONCEPTOS 2.1 INTERFAZ Una interfaz de Hardware es el puerto por el cual se envían o reciben señales desde un sistema hacia otros. Por ejemplo, interfaz USB, SCSI, IDE, interfaz puerto paralelo o serial, etc. Interfaz de software hace referencia al conjunto de métodos para lograr interactividad entre el usuario y una computadora. Una interfaz puede ser del tipo GUI, o línea de comandos, por ejemplo, el monitor, el teclado y el mouse, son interfaces entre el usuario y el ordenador. 2.1 PUERTO 39 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras Circuito electrónico que gobierna la conexión entre dos dispositivos de hardware y los ayuda a intercambiar información de manera confiable. 2.2 PUERTO SERIAL Elemento hardware que permite el flujo de información en una sóla línea de comunicación. El puerto serie es un medio sencillo de conectar entre sí dos aparatos electrónicos. Dispositivo electrónico físico que se conecta a una computadora, los periféricos permiten que la computadora interactúe con el exterior. Un puerto serial es una interfaz de comunicaciones de datos digitales, frecuentemente utilizado por computadoras y periféricos, en donde la información es transmitida bit a bit enviando un solo bit a la vez, en contraste con el puerto paralelo que envía varios bits simultaneamente. La comparación entre la transmisión en serie y en paralelo se puede explicar con analogía con la carreteras. Una carretera tradicional de un sólo carril por sentido sería como la transmisión en serie y una autovía con varios carriles por sentido sería la transmisión en paralelo, siendo los coches los bits. La interfaz serial es la que transmite y recibe información bit a bit, el término serial se refiere a los datos enviados mediante un solo hilo: los bits se envían uno detrás del otro . 2.3 PUERTO PARALELO Un puerto paralelo es una interfaz entre una computadora y un periférico cuya principal característica es que los bits de datos viajan juntos enviando un byte completo o más a la vez. Es decir, se implementa un cable o una vía física para cada bit de datos formando un bus, el cable paralelo es el conector físico entre el puerto paralelo y el periférico. En un puerto paralelo habrá una serie de bits de control en vías aparte que irán en ambos sentidos por caminos distintos. En contraposición al puerto paralelo está el Puerto serial, que envía los datos bit a bit por el mismo hilo. Un típico sistema de comunicación en paralelo puede ser de una dirección (unidireccional) o de dos direcciones (bidireccional). 2.4 INTERFAZ PARALELA El el mas simple mecanismo utilizado en un puerto paralelo de una PC, donde se distingue dos elementos: la parte transmisora y la parte receptora. La parte transmisora coloca la información en las líneas de datos e informa a la parte receptora que la información (los datos) están disponibles; entonces la parte receptora lee la información en las líneas de datos e informa a la parte transmisora que ha tomado la información (los datos), ambas partes sincronizan su respectivo acceso a las líneas de datos, la parte receptora no leerá las líneas de datos hasta que la parte transmisora se lo indique en tanto que la parte transmisora no colocará nueva información en las líneas de datos hasta que la parte receptora remueva la información y le indique a la parte transmisora que ya ha tomado los datos, a ésta coordinación de operaciones se le llama acuerdo ó 40 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras entendimiento. La coordinación de operaciones entre la parte transmisora y la parte receptora se le llama handshaking, que en español es el acto con el cual dos partes manifiestan estar de acuerdo. 2.5 EL HANDSHAKING Para implementar el handshaking se requieren dos líneas adicionales. La línea de estroboscopio (en inglés strobe) es la que utiliza la parte transmisora para indicarle a la parte receptora la disponibilidad de información. La línea de admisión (acknowledge) es la que utiliza la parte receptora para indicarle a la parte transmisora que ha tomado la información (los datos) y que está lista para recibir más datos. El puerto paralelo provee de una tercera línea de handshaking llamada en inglés busy (ocupado), ésta la puede utilizar la parte receptora para indicarle a la parte transmisora que está ocupada y por lo tanto la parte transmisora no debe intentar colocar nueva información en las líneas de datos. 2.6 USB (Universal Serial Bus) Puerto de gran velocidad para comunicar computadoras y periféricos Soporta transferencias de 12 MBps. Un sólo puerto USB permite ser usado para conectar más de 127 dispositivos periféricos como ratones, módems, teclados, impresoras, etc. Comenzó a ser utilizado en 1996, pero la popularidad llegó en las iMac en 1998.Prácticamente reemplazó a los puertos serial y paralelo. 3. PERIFERICOS DE ENTRADA Y SALIDA Los periféricos (según su flujo principal de datos) pueden ser de entrada, de salida, de almacenamiento de comunicación y suelen poder conectarse a los distintos puertos de la computadora. Los periféricos pueden conectarse o desconectarse y el computador seguirá funcionando, aunque con menos capacidades. Periféricos de entrada: • Mouse, Teclado, Webcam, Escáner, Micrófono, Joystick, Gamepad, Lápiz óptico Periféricos de salida: • Monitor, Impresora, Pantalla, Altavoz (parlante), Tarjeta gráfica, tarjeta de sonido Periféricos de entrada/salida: • Pantalla táctil, casco Virtual Periféricos de comunicación (entrada/salida): - Módem, Tarjeta de red, Hub Periféricos de almacenamiento (entrada/salida): • Grabadora de CD o DVD, Zip, Pendrive UNIDAD V 41 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras INTERFACES PARALELAS 1. INTRODUCCIÓN Los puertos paralelos realizan interfaz paralela porque envían un conjunto de datos en forma simultánea. En un principio eran Unidireccionales (sólo se podía enviar información de la PC al dispositivo), actualmente son Bidireccionales y permiten por ejemplo que la impresora pueda avisar a la computadora que se esta quedando sin tinta. Las interfaces paralelas de la mayoría de las computadoras son casi idénticas, como ejemplo la mayoría de los puertos paralelos de la parte posterior de las computadoras IBM-compatibles poseen un conector DB-25. El conector es normalmente hembra (tiene orificios en lugar de pines) para distinguirlo de los conectores seriales que son habitualmente machos y que puede tener también la computadora. Como este puerto tiene un conjunto de entradas y salidas digitales, se puede emplear para hacer prácticas experimentales de lectura de datos y control de dispositivos. 2.- INTERFACES PARALELAS Un puerto paralelo permite la interfaz entre una computadora y un periférico cuya principal característica es que los bits de datos viajan juntos enviando un byte completo o más a la vez. Es decir, se implementa un cable o una vía física para cada bit de datos formando un bus, el cable paralelo es el conector físico entre el puerto paralelo y el periférico. En un puerto paralelo habrá una serie de bits de control en vías aparte que irán en ambos sentidos por caminos distintos. En contraposición al puerto paralelo está el Puerto serial, que envía los datos bit a bit por el mismo hilo. La transmisión de datos paralela consiste en enviar datos en forma simultánea por varios canales (hilos). Los puertos paralelos en los PC pueden utilizarse para enviar 8 bits (un octeto) simultáneamente por 8 hilos. Los primeros puertos paralelos bidireccionales permitían una velocidad de 2,4 Mb/s. Sin embargo, los puertos paralelos mejorados han logrado alcanzar velocidades mayores: · El EPP (puerto paralelo mejorado) alcanza velocidades de 8 a 16 Mbps 42 Universidad Salesiana de Bolivia Ingeniería de Sistemas · Hard. y Arq. de Computadoras El ECP (puerto de capacidad mejorada), desarrollado por Hewlett Packard y Microsoft. Posee las mismas características del EPP con el agregado de un dispositivo Plug and Play que permite que el equipo reconozca los periféricos conectados. Los puertos paralelos, al igual que los seriales, se encuentran integrados a la placa madre. Los conectores DB25 permiten la conexión con un elemento exterior (por ejemplo, una impresora). 3. PUERTOS PARALELOS DE LA PC Puesto que la computadora es mucho mas rápida que cualquier periférico con el que se comunique, puede fácilmente transmitir mas datos que los que el periférico puede manejar. Para ello, los periféricos utilizan señales especiales para decirle a la computadora que detenga momentáneamente el envió de datos cuando tienen suficientes para trabajar. Esto le permite al periférico alcanzar a la computadora, que puede realizar otras tareas mientras tanto. Una vez que el periférico queda libre, le pide a la computadora que transmita mas datos, y el proceso continua. El puerto paralelo más conocido es el puerto de impresora (que cumplen más o menos la norma IEEE 1284, que se destaca por su sencillez y que transmite 8 bits. Existe un programa que se ha utilizado principalmente para conectar impresoras, pero también ha sido usado para programadores EPROM, escáneres, interfaces de red Ethernet a 10 MB, unidades ZIP y SuperDisk y para comunicación entre dos PCs (MS-DOS trajo en las versiones 5.0 ROM a 6.22 un programa para soportar esas transferencias). El puerto paralelo de las computadoras, está compuesto por un bus de comunicación bidireccional de 8 bits de datos, además de un conjunto de líneas de protocolo. Las líneas de comunicación cuentan con un retenedor que mantiene el último valor que les fue escrito hasta que se escribe un nuevo dato, las características eléctricas son: · Tensión de nivel alto: 3.3 o 5 V. · Tensión de nivel bajo: 0 V. · Intensidad de salida máxima: 2.6 mA. · Intensidad de entrada máxima: 24 mA. El sistema operativo gestiona las interfaces de puerto paralelo con los nombres LPT1, LPT2 y así sucesivamente, las direcciones base de los dos primeros puertos es: · LPT1 = 0x378. · LPT2 = 0x278 La estructura consta de tres registros: de control, de estado y de datos. 43 Universidad Salesiana de Bolivia Ingeniería de Sistemas · Hard. y Arq. de Computadoras El registro de control es un bidireccional de 4 bits, con un bit de configuración que no tiene conexión al exterior, su dirección en el LPT1 es 0x37A. · El registro de estado, se trata de un registro de entrada de información de 5 bits, su dirección en el LPT1 es 0x379. · El registro de datos, se compone de 8 bits, es bidireccional. Su dirección en el LPT1 es 0x378. 3.1 PUERTO PARALELO IDE Existe un puerto paralelo llamado PATA (Paralell ATA), usado para la conexión de discos duros, unidades lectoras/grabadoras (CD-ROM, DVD), unidades magneto-ópticas, unidades ZIP y SuperDisk, entre la placa madre del computador y el dispositivo. 3.2 PUERTO PARALELO SCSI Otro puerto muy utilizado en los computadores Apple Macintosh y en servidores, son las diferentes implementaciones del SCSI. Al igual que IDE ha sido usado para la conexión de discos duros, unidades ópticas lectoras/grabadoras (CD-ROM, DVD), unidades magneto-ópticas y SuperDisk, pero también de otros dispositivos como escáneres. 3.2 PUERTO DB – 25 Este puerto se encuentra integrado a la placa madre, tiene 25 orificios y permite la conexión con una impresora. 4. DIALOGO DE ESTADO A lo largo de algunas Iíneas, a veces los periféricos paralelos (especialmente las impresoras) utilizan cables dedicados para indicar su estado, puesto que el estado de un periférico puede afectar el flujo de datos, esto se puede considerar también una forma de dialogo. Por ejemplo, si una impresora o un graficador necesita informar a la computadora que se queda sin papel, puede hacerlo manteniendo alta la línea de papel vació hasta que se aprovisione nuevamente. Esto impide que la computadora envié datos al periférico cuando el dispositivo es incapaz de hacer algo con ellos. La computadora puede hacer también requerimientos especiales o proporcionar datos de configuración enviando señales desde las restantes salidas de dialogo. Por ejemplo, al mantener baja la línea de avance automático, la computadora solicita al periférico que acompañe cada retorno de carro con un avance de línea , es decir, la computadora informa al periférico que probablemente no enviara caracteres de avance de línea , de modo que el periférico deberá agregarlos. 44 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras 5. GRAFICO DE TERMINALES 6. APLICACIÓN DE INTERFACES PARALELAS El lenguaje C permite tanto la lectura como la escritura de los puertos paralelos, para leer el puerto existen las instrucciones inport e inportb, mientras que para escribir están las instrucciones outport y outportb. La sintaxis de estas instrucciones es la siguiente: unsigned inport (unsigned portid); unsigned char inportb (unsigned portid); void outport (unsigned portid, unsigned value); void outportb (unsigned portid, unsigned char value); Ejemplo: Palabra = inport(puerto); outport (puerto,Palabra); Byte = inportb (puerto); outportb (puerto,Byte); Las instrucciones que terminan en b ese refieren a la lectura o escritura de un byte, mientras que las que no terminan en esta letra se refieren a una palabra(dos byte). La variable puerto debe contener la dirección de memoria del puerto paralelo, este valor puede ser 378h, 3BCh ó 278h. Por ultimo no hay que olvidar colocar la siguiente directiva del preprocesador que le indica al C que se usarán las funciones inport, outport, inportb u outportb, declaradas en el archivo dos.h. #include <dos.h> El siguiente programa consulta la dirección del primer puerto paralelo disponible: #include <conio.h> #include <dos.h> void main(void) { int puerto; clrscr(); puerto=peekb(0x40,0x8); } printf("Dirección: %Xh",puerto); 45 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras getch(); } La interfaz paralela es mucho más sencillo que la serial. Ejemplo 2. Como escribir a los puertos E/S paralelos usando ensamblador y lenguaje C. Se usa la dirección 378h como la dirección más usual donde se encuentra el LPT1. · Ensamblador · mov dx, 0378h ; direcciona el puerto con DX mov al, n ; pone el dato a enviar en AL out dx, al ; envía el dato Código fuente para Borland C++ 3.1 #include <stdio.h> #include <dos.h> #include <conio.h> void main (void) { clrscr(); // limpia la pantalla outportb(0x378, 0xff); // saca el dato al puerto paralelo getch(); // espera hasta que se presione una tecla } UNIDAD VI INTERFACES SERIALES 1. INTRODUCCIÓN El puerto serial realiza la interfaz serial con un dispositivo de la computadora,la información se transmite por un solo conducto y por lo tanto bit a bit de forma serial. Por esta razón los puertos seriales tradicionales son lentos y son usados para conectar el mouse o el teclado. En cambio el puerto paralelo puede enviar múltiples bits en forma paralela. El puerto serial se constituye como una de las más básicas conexiones externas a un computador, y aunque hoy en día la más utilizada es su forma USB, el puerto serial ha estado junto a nuestros computadores por más de veinte años. Su principal función es enviar y recibir datos, bit por bit, y a modo de ejemplo, se puede mencionar entre ellos el puerto de los antiguos modelos del teclados y 46 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras modems. Los puertos seriales se conocen también con el nombre de puertos de comunicación o COM, y tienen la característica de ser bidireccionales. Dentro de sus principales ventajas se encuentra la necesidad de sólo un cable para poder transmitir los 8 bits, sin embargo, se demora 8 veces más en realizar esta transmisión que si contáramos con 8 cables, como sucede con un puerto paralelo. La aparición de los puertos USB crece con fuerza y amenaza también la existencia de los puertos paralelos, por su mayor comodidad y eficacia. Ethernet, FireWire, y USB trabajan con interfaz serial, normalmente identifica el hardware más o menos conforme al estandar RS-232, diseñado para interactuar con un módem o con un dispositivo de comunicación similar. Los dispositivos de redes (como routers y switches) a menudo tienen puertos de seriales para la configuración, estos se usan porque son sencillos, baratos y permiten la interoperabilidad entre dispositivos. La desventaja es que configurar conexiones de serie puede requerir el conocimiento de un experto y el uso de mandatos complejos si están mal implementados. 2. INTERFACES SERIALES Un puerto serial es una interfaz de comunicaciones de datos digitales, frecuentemente utilizado por computadoras y periféricos, en donde la información es transmitida bit a bit enviando un solo bit a la vez, en contraste con el puerto paralelo que envía varios bits simultaneamente. Originalmente, los puertos seriales sólo podían enviar datos, no recibir, por lo que se desarrollaron puertos bidireccionales (que son los que se encuentran en los equipos actuales). Por lo tanto, los puertos seriales bidireccionales necesitan dos hilos para que la comunicación pueda efectuarse. La comunicación serial se lleva a cabo asincrónicamente es decir que no es necesaria una señal (o reloj) de sincronización: los datos pueden enviarse en intervalos aleatorios. A su vez, el periférico debe poder distinguir los caracteres (un carácter tiene 8 bits de longitud) entre la sucesión de bits que se está enviando. Ésta es la razón por la cual en este tipo de transmisión, cada carácter se encuentra precedido por un bit de ARRANQUE y seguido por un bit de PARADA. Estos bits de control, necesarios para la transmisión serial, desperdician un 20% del ancho de banda (cada 10 bits enviados, 8 se utilizan para cifrar el carácter y 2 para la recepción). Los puertos seriales, por lo general, están integrados a la placa madre, motivo por el cual los conectores que se hallan detrás de la carcasa y se encuentran conectados a la placa madre 47 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras mediante un cable, pueden utilizarse para conectar un elemento exterior. Una PC posee normalmente entre uno y cuatro puertos seriales. La mayoría de los puertos seriales obedecen el estándar RS-232C o el RS-422 , COM1, y COM2 Actualmente los puertos seriales modernos poseen grandes velocidades como el puerto USB, el firewire o el SATA. 3. TIPOS DE INTERFACES SERIALES Existen tres tipos de interfaces seriales que son los siguientes: · Simplex En este caso el transmisor y el receptor están perfectamente definidos y la comunicación es unidireccional, este tipo de comunicaciones se emplea usualmente en redes de radiodifusión, donde los receptores no necesitan enviar ningún tipo de dato al transmisor. · Duplex, half duplex o semi-duplex En este caso ambos extremos del sistema de comunicación cumplen funciones de transmisor y receptor y los datos se desplazan en ambos sentidos pero no simultáneamente, se utiliza habitualmente en la interacción entre terminales y un computador central. · Full Duplex El sistema es similar al duplex, pero los datos se desplazan en ambos sentidos simultáneamente. Para ello ambos transmisores poseen diferentes frecuencias de transmisión o dos caminos de comunicación separados, mientras que la comunicación semi-duplex necesita normalmente uno solo. Para el intercambio de datos entre computadores este tipo de comunicaciones son más eficientes que las transmisiones semi-duplex. En muchos periféricos la interfaz USB ha reemplazado al puerto de serial, la mayor parte de las computadoras están conectadas a dispositivos a través de USB, y a menudo ni siquiera tienen un puerto de serie. Sin embargo, los puertos de serie todavía pueden encontrarse en sistemas de automatización industrial. Los dispositivos de redes (como routers y switches) a menudo tienen puertos de serie para la configuración. Los puertos de serie se usan a menudo en estas áreas porque son sencillos, baratos y permiten la interoperabilidad entre dispositivos. 3.1 MECANISMOS DE DETECCIÓN DE ERRORES En interfaces seriales , los mecanismos para detectar errores garantizan transmisiones libres de errores, si el receptor detecta algún error, puede actuar de diversas maneras según los protocolos que esté utilizando. La solución más sencilla es enviar un mensaje al emisor pidiéndole que le reenvíe de nuevo la información que llegó defectuosa. 48 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras 3.1.1 PARIDAD Las transmisiones se dividen en palabras de cierto número de bits (por ejemplo, 8 bits) y se envían secuencialmente. A cada una de estas palabras se le añade un único bit de redundancia (bit de paridad) de tal forma que la suma de todos los bits de la palabra sea siempre un número par (paridad par) o impar (paridad impar). •El emisor envía las palabras añadiendo los correspondientes bits de paridad. El receptor comprobará a su llegada que la suma de los bits de la palabra incluyendo la redundancia es un número par (si la codificación convenida entre emisor-receptor es de paridad par) o un número impar (paridad impar). Si el receptor encuentra alguna palabra que no se ajuste a la codificación establecida, le solicitará al emisor que le reenvíe de nuevo la información 3.1.2 CRC Los códigos de paridad tienen el inconveniente de que se requiere demasiada redundancia para detectar errores simples. Con CRC el emisor realiza ciertas operaciones matemáticas antes de enviar los datos. El receptor realiza, a la llegada de la transmisión, una división entre un polinomio convenido (polinomio generador). Si el resto es cero, la transmisión ha sido correcta. Si el resto es distinto significará que se han producido errores y solicitará la retransmisión al emisor. 11.3 CONTROL DE FLUJO El control de flujo se basa en devolver una confirmación de recibo (ACK) cada vez que el receptor reciba algún dato correcto o una señal de error (NACK) si el dato ha llegado dañado. Cuando el emisor recibe un ACK pasa a enviar el siguiente dato. Si, en cambio, recibe un NACK reenviará el mismo dato. 4. PUERTOS SERIALES DE LA PC El puerto serial de una computadora es un adaptador asíncrono utilizado para poder intercomunicar varios ordenadores entre sí, recibe y envía información fuera del ordenador mediante un determinado software de comunicación o un driver del puerto serie. El software envía la información al puerto carácter a carácter, conviertiéndolo en una señal que puede ser enviada por un cable serie o un módem, cuando se ha recibido un carácter, el puerto serie envía una señal 49 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras por medio de una interrupción indicando que el carácter está listo. Cuando el ordenador ve la señal, los servicios del puerto serie leen el carácter. 5. GRAFICO DE TERMINALES SERIALES Según se conforme el marco de datos es como se referencia al marco mismo. Por ejemplo: Palabras de 8 bits, con paridad Non y 1 bit de paro es conocido como 8N1, y la trama es como se muestra en la siguiente figura de Marco de datos de comunicación serial asíncrona Otro factor importante de toda señal serial asíncrona es la velocidad de comunicación, la velocidad a la que los datos son transmitidos comienzan en los 50 bits por segundo (bps) y casi de manera estándar se van duplicando 50, 100, 150, 300, 600, 1200, 2400, 4800, 9600, 19200.... hasta 384,000. En un principio el control de software de los puertos seriales resultaba en una gran sobrecarga para el procesador, hasta los 19200 bps, ya que los transportes de datos estaban limitados a 8 y 16 bits. Con la llegada de los transportes de datos MCA, EISA, VLBus y PCI, llegó la ventaja de la posesión de transporte de datos y el acceso directo a memoria elevando la velocidad de transmisión eliminando la sobrecarga del procesador. Al eliminar la utilización del BIOS y controlando el puerto directamente se comenzaron a obtener velocidades de 115200 bps y superiores, especialmente con la llegada de puertos inteligentes que por sí mismos pueden controlar la comunicación. Todo el esquema de comunicación serial cambió con la introducción del Bus Serie Universal, mejor conocido por las siglas de su nombre en inglés USB por Universal Serial Bus en 1996, que en sí ya deja de ser un puerto convirtiéndose en un bus con todos los beneficios. 6. APLICACIÓN DE INTERFACES SERIALES En lenguaje C, existe una instrucción especial para manejar las comunicaciones seriales. Esta instrucción posee la siguiente sintaxis: int bioscom (int cmd, char abyte, int port); En realidad, esta instrucción acude a la interrupción 14H para permitir la comunicación serial sobre un puerto. Para este caso, cada uno de los parámetros tiene el siguiente significado: cmd Especifica la operación a realizar 50 Universidad Salesiana de Bolivia Ingeniería de Sistemas abyte port Hard. y Arq. de Computadoras es un caracter que se enviará por el puerto serial es la identificación del puerto serial (desde 0 para COM1 hasta 3 para COM4) El parámetro cmd puede tener los siguientes valores y significados: 0 Inicializa el puerto port con los valores dados por abyte 1 Envía el caracter abyte por el puerto port 2 Lee el caracter recibido por el puerto port 3 Retorna el estado del puerto port Para configurar el puerto con algunos parámetros, bastará con realizar una operación OR con los deseados, por ejemplo, para 1200 baudios, sin bit de paridad, sin bit de parada y 8 bits, bastará con seleccionar la palabra dada por: abyte = 0x80 | 0x00 | 0x00 | 0x03 o lo que es equivalente, abyte = 0x83 Para la lectura de un carácter que se haya recibido o del estado del puerto, se deben utilizar variables en las cuales se almacenarán los valores de retorno; en ambos caso se obtienen valores de 16 bits. Para la lectura de un dato recibido, los 8 bits menos significativos corresponden al dato y los 8 más significativos al estado del puerto; si alguno de estos últimos está en "1 ", un error ocurrió; si todos están en "0", el dato fue recibido sin error. Cuando el comando es 2 ó 3 (leer el carácter o el estado del puerto), el argumento abyte no se tiene en cuenta. Para configurar el puerto COM1 con los parámetros del ejemplo dado anteriormente, bastará con la instrucción: bioscom (0,0x83,0); /*(inicializar, parámetros, COM1)*/ La utilización de los comandos y las instrucciones para la configuración de los puertos aquí expuestos sólo tendrán sentido en la medida en que utilicemos el puerto serial para establecer una comunicación bien con otros computadores o bien con dispositivos electrónicos como microcontroladores. Ahora mostramos las rutinas de puerto serie mínimas en ASSEMBLER MCR equ 4 ;offset del puerto de Registro de Control de Modem LSR equ 5 ; offset del puerto de Registro de Estado de Línea init: xor dx, dx ;inicializa COM1 mov ax, 0E3h ;Establece 9600 baudios, 1 bit de paro, sin paridad int 14h ;caracter de 8 bits. Usa rutina del BIOS mov dx, 03F8h+MCR ;apunta al reg. de control de modem de COM1 51 Universidad Salesiana de Bolivia Ingeniería de Sistemas mov al, 3 out dx, al Hard. y Arq. de Computadoras ;forza DTR' y RTS' a bajo ret serin: mov dx, 03F8h+LSR ;apunta a LSR serin2: in al, dx ;lee LSR test al, 1 ;¿hay un caracter? jz serin2 ;no, regresa a ver sub dx, LSR ;regresa a puerto de dato serial in al, dx ;lee el caracter ret serout: push ax ;caracter de salida AL para puerto dx mov serou2: in dx, 03F8h+LSR ;apunta a LSR al, dx ;lee estado de línea test al, 20h ;checa THRE jz serou2 ;espera sub dx, LSR ;reg. contenedor vacio; apunta a puerto de datos pop ax ;recobra caracter a enviar out dx, al ;lo envía ret UNIDAD VII MANTENIMIENTO DE SISTEMAS COMPUTACIONALES 1. INTRODUCCIÓN Actualmente es muy sencillo encontrar partes de computadoras en los comercios, pero todavía las personas carecen de información de cómo debería estar configurada una computadora tanto en hardware como en software, evitando los problemas más comunes que los usuarios enfrentan; bajo rendimiento, velocidades menores, equipos que presentan problemas con el software que se le instala, precios altos para baja calidad de equipos, etc. Además se debe ser práctico ya que no podemos invertir recursos de manera equivocada, debemos invertir la menor cantidad de recursos para obtener los mayores beneficios, probablemente tenemos el equipo correcto pero esta mal configurado, o tal vez el sistema operativo no esté haciendo rendir al máximo el hardware, o tener un hardware muy limitado para el software que utilizas. 2. CONCEPTOS Y DEFINICIONES DE MANTENIMIENTO DE SISTEMAS COMPUTACIONALES El mantenimiento de una computadora se lo realiza a dos niveles, a nivel hardware y a nivel software. 52 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras 2.1 MANTENIMIENTO DE HARDWARE El mantenimiento del hardware es para evitar que las partes del computador se deterioren, se debe realizar cada cierto tiempo, debe limpiarse el equipo una vez al mes; esta limpieza se la realiza de la siguiente manera: se desarma todo el equipo y cada parte se la limpia utilizando un pincel (semi grueso) de cerdas plásticas para evitar la estática si se tiene una secadora se debe limpiar y soplar con fuerza el Cooler que es lo que más suciedad retiene y como es uno de los componentes más importantes es en el que debemos tener mayor cuidado de limpiar. Por ningún motivo debemos permitir que caiga ningún tipo de líquido sobre ninguna parte interior de la computadora, hacer este tipo de limpieza prolonga la vida de cada componente. 2.2 MANTENIMIENTO DE SOFTWARE Se debe realizar mantenimiento de software para tener siempre disponible nuestro equipo y sus funcionalidades, si la máquina se infecta con algún virus se debe proceder a la desinfección con el antivirus que se tiene, algunos virus pueden llegar a dañar archivos del sistema operativo en este caso es mejor formatear de nuevo el disco y reinstalar todo para que tengamos la seguridad que hemos eliminado cualquier tipo de infección. Entre los recomendados tenemos: Panda ,McAffe ,Norton, Nod32, Avira, USB, etc, estos poseen versiones empresariales para redes y versiones domésticas para uso particular, protegen de virus a diversos niveles, los niveles se definen por la conexión que tiene el equipo, el nivel inicial es el de protección contra archivos infectados introducidos por medios magnéticos (diskettes, discos duros, CD's), a nivel e-mail, protege de archivos adjuntos con contenido malicioso, y por último a nivel de red (incluye Internet) de gusanos, spams, virus, etc. que circulan por la red. Se recomienda guardar backups de datos por lo menos una vez al mes, es la mejor manera de hacer los backups pero si se cuenta con otro disco duro es mucho más aconsejable. 3. TIPOS DE MANTENIMIENTO DE HARDWARE En hardware se puede realizar el mantenimiento preventivo y correctivo 3.1 PREVENTIVO Este tipo de mantenimiento se realiza periódicamente, quiere decir se realiza limpieza y revisión del hardware antes que el computador presente problemas. 3.2 CORRECTIVO Este tipo de mantenimiento se realiza cuando el computador ya tiene problemas, entonces se realiza para solucionar los problemas encontrados. 4. DISPOSITIVOS DE ALMACENAMIENTO Los dispositivos de almacenamiento son: discos duros, CD’s, discos extraíbles, etc. ,permiten almacenar información de la memoria RAM. 4.1 DISCO DURO 53 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras Es el dispositivo de almacenamiento más importante de una computadora, aquí es donde guardamos toda la información, documentos, juegos, música, videos, programas y por sobre todo y lo más importante el sistema operativo con el que trabajamos. Los hay de varias marcas y capacidades como ser: 40, 80, 160,320, 500 Gb, hasta 1 Tb , este es un dispositivo independiente de la configuración de los componentes antes mencionados, se pueden tener uno o más de uno dependiendo del uso del equipo. 4.2 CD - ROM Este es otro dispositivo independiente para la lectura de CD’s hoy en día existen los llamados “quemadores” que son los RW – CD que permiten leer y escribir en un CD es un dispositivo secundario ya que no es importante para el funcionamiento de una computadora. 4.3 FLOPPY DISK Lo conocemos como “disquetera” es el dispositivo para la lectura y escritura en disketts, son de gran utilidad en el momento de la configuración de un equipo, antes eran el único medio de transporte de datos, hoy en día son menos usados cada vez. 4.4 DVD-ROM Es un disco compacto con capacidad de almacenar 4.7 GB de datos en una cara del disco, un aumento de más de 7 veces con respecto a los CD-R y CD-RW. Y esto es en una sola cara. Los futuros medios de DVD-ROM serán capaces de almacenar datos en ambas caras del disco, y usar medios de doble capa para permitir a las unidades leer hasta cuatro niveles de datos almacenados en las dos caras del disco dando como resultado una capacidad de almacenamiento de 17 GB. 4.5 DVD-RAM Este medio tiene una capacidad de 2.6 GB en una cara del disco y 5.2 GB en un disco de doble cara, Los DVD-RAM son capaces de leer cualquier disco CD-R o CD-RW pero no es capaz de escribir sobre estos. Los DVD-RAM son regrabables pero los discos no pueden ser leídos por unidades DVD-ROM.[3] 4.6 PC - CARDS Las PC Cards pueden ser almacenamiento o tarjetas de I/O., estas son compactas, fiables y ligeras haciéndolos ideal para notebooks, palmtop, handheld y los PDAs,. Debido a su pequeño tamaño, son usadas para el almacenamiento de datos, aplicaciones, tarjetas de memoria, cámaras electrónicas y teléfonos celulares. Las PC Cards tienen el tamaño de una tarjeta del crédito, pero su espesor varía. La norma de PCMCIA define tres PC Cards diferentes: Tipo I 3.3 milímetros (mm) de espesor, Tipo II son 5.0 mm espesor, y Tipo III son 10.5 mm espesor. Entre los producto más nuevos que usan PC Cards tenemos el PC Card Drive esta puede leer y escribir sobre discos de 40 MB de capacidad, esta unidad esta diseñada para trabajar con computadores portátiles con mínimo consumo de baterías, el tamaño de los discos es de 2x2 pulgadas. 4.7 FLASH CARDS 54 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras Son tarjetas de memoria no volátil es decir conservan los datos aun cuando no estén alimentadas por una fuente eléctrica, y los datos pueden ser leídos, modificados o borrados en estas tarjetas. Con el rápido crecimiento de los dispositivos digitales como: asistentes personales digitales, cámaras digitales, teléfonos celulares y dispositivos digitales de música, las flash cards han sido adoptadas como medio de almacenamiento de estos dispositivos haciendo que estas bajen su precio y aumenten su capacidad de almacenamiento muy rápidamente. 4.7 PEN DRIVE O MEMORY FLASH Es un pequeño dispositivo extraible de almacenamiento que utiliza la memoria flash para guardar la información sin necesidad de pilas, son resistentes a los rasguños y al polvo que han afectado a las formas previas de almacenamiento portable, como los CD y los disquetes. Los sistemas operativos más modernos pueden leer y escribir en ello sin necesidad de controladores especiales. En los equipos antiguos (como por ejemplo los equipados con Windows 98) se necesita instalar un controlador de dispositivo. 5. TARJETAS MADRE Su nombre lo dice todo es el esqueleto, corazón y pulmones de la computadora, aquí se instalan todos los dispositivos que van a formar parte de una computadora, tarjetas de video, sonido, de red, fax modem, memorias RAM, microprocesador los dispositivos de almacenamiento como los discos duros, CD – ROM, discos extraíbles, etc., la tarjeta madre incluye los puertos paralelos, seriales, y USB. En la placa madre residen todos los componentes, y una vez conectados el ROM – BIOS, que es la parte central de la tarjeta madre detecta todos los dispositivos para configurarlos de manera que el procesador sepa con cuánta capacidad de memoria RAM cuenta y qué dispositivos están conectados. Las tarjetas madre tienen además componentes básicos, los más importantes son los llamados chipsets, son unos circuitos que están adheridos a la tarjeta madre, estos son inalterables porque determinan el tamaño máximo de memoria que se puede soportar, el tamaño del bus, etc. Los puertos tanto seriales, paralelos y USB, son parte integrante de la tarjeta madre, en ellos se conectan dispositivos tales como el mouse, la impresora, scanner y otros tipos de dispositivos externos ya sean de conexión serial, paralela o USB. Hoy en día se han adicionado los puertos PS/2 para la conexión principalmente del mouse. 6. TARJETAS DE VIDEO Hoy en día es una de las partes más importantes debido al potenciamiento que se hizo sobre las aplicaciones gráficas (juegos, películas, etc.). Pueden ser tarjetas que trabajan sobre un plano 2D o de dos dimensiones y las más cotizadas y actuales las de 3D o las tridimensionales. Algunas tarjetas de video traen su propio procesador para acelerar los gráficos y obtener mayor resolución en el monitor hablamos de 16 millones de colores. 55 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras 7. TARJETAS DE RED Sirve para la conexión dentro de una red de computadoras o para conectarse al Internet mediante el sistema denominado ADSL. Existen de varias marcas y tipos la velocidad estándar es de 10/100 Base T, que es la más rápida en el mercado de computadoras domésticas. 8. TARJETAS DE SONIDO Es un complemento muy interesante y de entretenimiento debido a la increíble cantidad de información multimedia que hoy en día se tiene. Pueden ser monocanal o multicanal. Las multicanal tienen mayor potencia en la salida, por lo general se conectan a los puertos PCI 9. TARJETAS COMPLEMENTARIAS 9.1 TARJETAS FAX MODEM Es el medio más comercializado para conectarse a redes e Internet mediante la línea telefónica, las hay de varias marcas y diferentes velocidades la más actual es la de 56 Kbps. que es la velocidad de conexión. Existen modems internos que son tarjetas y también existen modems externos que se conecta mediante el puerto paralelo a la computadora. 10. MANTENIMIENTO DE SOFTWARE Existen dos formas de realizar el mantenimiento de software : Preventivo y Correctivo. 10.1 PREVENTIVO Se realiza la verificación periódica del correcto funcionamiento del Sistema operativo y del resto de los programas instalados para que no existan problemas posteriores. 10.2 CORRECTIVO Se realiza cuando el computador ya presenta problemas de software, entonces se debe solucionar los problemas encontrados sin perder la información almacenada. 11. CONFIGURACIÓN DEL BIOS Hoy en día los sistemas operativos vienen en CD’s pueden ir de 1 a varios CD’s de instalación, en ocasiones son “booteables” (de auto ejecución al iniciar el equipo), para el caso de algunas distribuciones de Windows sería necesario haber instalado antes el DOS mediante un diskette. Lo primero que se debe realizar es entrar al BIOS en el momento del arranque del equipo, oprimiendo la tecla “Supr” o “Del” en algunos teclados, esta funcionalidad del BIOS permite configurar la secuencia de lectura de dispositivos periféricos, lo que se recomienda es que se coloque el CD – ROM como primer dispositivo de arranque, luego el floppy y finalmente el disco 56 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras duro, esta sugerencia es debido a la facilidad que existe de levantar con un CD booteable o de leer el sistema operativo desde un diskette. 12. PARTICIÓN Y FORMATEO DEL DISCO DURO Antes de proseguir con la instalación es necesario formatear y particionar el disco duro esto para darle mayor rendimiento, por lo general los discos son de 40, 80, 160, 320, 500 Gb. Desde el prompt de comandos A:> escriba fdisk esto lo llevará a una opción donde deberá crear una partición primaria como lo sugiere el menú introduzca 50% para que particione al disco en 2 partes iguales, luego de esto el fdisk automáticamente creará un archivo de disco que contendrá el nombre de la partición que por lo general es C:. Una vez realizado lo anterior en el menu del fdisk seleccionamos la creación de una partición secundaria para completar la capacidad el disco. Al haber realizado estas dos particiones tendremos de manera lógica dos unidades C y D sobre la misma unidad física. Terminada esta operación se les da un nombre a cada unidad y se reinicia el equipo. 12. INSTALACION DEL SISTEMA OPERATIVO WINDOWS Instalaremos el Windows XP, esta versión de Windows puede ser instalada de dos maneras. · Como Update de alguna versión anterior del windows como el Windows 98 o el Millenium. · Como sistema operativo de base. Para esta clase utilizaremos la versión que se instala como sistema operativo base ya que lo haremos sobre un equipo recién ensamblado. Se introduce en el CD – ROM el CD de instalación y luego procedemos a reiniciar el equipo para que cuando haga el proceso de reiniciación lea desde el CD - ROM el archivo instlador del sistema operativo. Lo que sigue a continuación es simplemente esperar que Windows se instale automáticamente tecleando u oprimiendo de cuando en cuando el botón siguiente que aparece en la pantalla tal como se lo vio en el video. Tal como se vio en el video la instalación no es tan compleja como parece, una vez instalado el sistema operativo Windows se procede a la instalación de los demas programas que utilizaremos en este caso el más común que es el OFFICE. Se introduce el CD del instalador y se deja que él mismo haga su trabajo haciendo click cuando el instalador así lo requiera. 13. INSTALACIÓN DEL SISTEMA OPERATIVO UBUNTU (PLATAFORMA LINUX) Para la instalación del sistema operativo UBUNTU se debe realizar los siguientes pasos: A. Ingresar al directorio donde se encuentra los instaladores del sistema operativo B. Hacer un clic en el archivo Instalar 57 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras C. Seleccionar Idioma (en este caso el idioma español) D. Hacer un clic en el boton Adelante E. Ahora tenemos que indicar la hora adecuada acorde al lugar dónde estamos.(en nuestro caso elegir la ciudad de La Paz (en el mapa), ya que es la única visible para Bolivia y la hora se cambiara automáticamente a nuestro uso horario 4 GMT). F. Luego hacemos clic en el boton Adelante G. Ahora debemos configurar el teclado. En principio esto ya está bien seleccionado para Latino América pero lo verificamos y después hacemos clic en Adelante. H. Ahora se prepara las particiones, seleccionamos el espacio libre (“free”) I. Nuevamente hacemos clic en “New Partition” J. Ahora en la nueva ventana hacemos: K. Tipo de la nueva partición: Primaria L. Nuevo tamaño de partición en Megabytes: 1000 M. Ubicación de la nueva partición: Principio N. Utilizar como: swap O. Con esto creamos la partición de swap o intercambio que es la memoria virtual de disco que usa GNU/Linux cuando la memoria RAM esta llena, su tamaño es de 1 GB P. Luego Clic en el Botón Adelante Q. Este es el ultimo paso de instalación y a continuación muestra Fin de la Instalación Aproximadamente el proceso de instalación termina en 20 minutos (dependiendo del equipo) UNIDAD VIII NUEVAS TECNOLOGIAS 1. INTRODUCCION La tecnología en hardware y software cada día avanza a pasos agigantados, como por ejemplo los discos duros de tamaño totalmente reducidos, incluso se habla de dimensiones en milímetros. Pero también sabemos que la reducción de tamaño con aumento de capacidad genera aumento en los precios, pero las empresas y usuarios están dispuestos a cancelar porque quieren estar al día con lo nuevo en hardware y software. Por ejemplo en empresas con varias computadores, es común usar software de clonación de discos, para hacer copias de seguridad de datos, sistema, etc. Obviamente la el tamaño de archivos suele ser considerablemente grande, y si a esto le sumamos mp3, videos, instaladores, la cantidad crece aún más. El problema de pasar información de un disco duro a otro, si la cantidad de datos no es demasiado grande, la solución puede ser sencilla mediante un pendrive; sin embargo, cuando 58 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras hablamos de gran cantidad de datos el problema se agrava, entonces se necesita de un programa que permita la clonación de discos duros. 2. CARACTERÍSTICAS DE LAS NUEVAS TECNOLOGÍAS EN HARDWARE Y SOFTWARE 2.1 HARDWARE Una empresa afirma que en pocos días lanzará la primera computadora cuántica de la historia. DWave, la empresa de la Columbia Británica, afirma que esta máquina es capaz de realizar 64.000 cálculos al mismo tiempo en "universos paralelos". Este ordenador es capaz de acelerar de forma crítica las búsquedas y la optimización de cálculos. Si realmente lo han logrado, esta máquina podría hacer que los sistemas de seguridad actuales quedasen obsoletos, ya que la computación cuántica es capaz de romper la protección de los esquemas de cifrado actuales gracias a sus prestaciones a la hora de procesar un número ilimitado de hilos de ejecución simultáneamente. La máquina que D-Wave quiere vender dispone solo de 16 qbits, pero serán capaces de procesar más entradas que el número de átomos que existen en el universo. Los científicos se preguntan si esta empresa dispone en realidad de un ordenador cuántico, ya que nadie esperaba un lanzamiento de este tipo hasta dentro de 20 años. Toshiba acaba de presentar dos nuevos discos de tamaño totalmente reducido, y de capacidades, sospechosamente iguales a las que ofrece iPod Classic, de 80 y 160GB. Ambos tiene 1.8 pulgadas, se desconoce el precio, pero dependiendo de este detalle podríamos decir si esta o no siendo usado en los iPod Classic. 2.2 SOFTWARE En software se puede mencionar el Programa “StuckSweep”, escrito en java y se utiliza para reparar pixels muertos mediante cambios rapidos de color. 3. MICROPROCESADORES AMD La empresa AMD lanza los procesadores AMD Opteron de Doble Núcleo para servidores y estaciones de trabajo y también revela el próximo lanzamiento del procesador AMD Athlon 64 X2 de Doble Núcleo para consumidores empresariales y particulares. Los más importantes fabricantes de partes originales, incluidos Sun, HP, IBM y Supermicro anuncian su respaldo al ofrecer un amplio portafolio de sistemas para el procesador AMD Opteron de Doble Núcleo. Los procesadores AMD Opteron de Doble Núcleo consumen solo una cuarta parte de la energía, en comparación con otros chips de doble núcleo. · En los últimos años, AMD ha sido el primero en salir con ideas como la computación de 64 bits y vínculos de entrada-salida más rápidos, poniendo a Intel en la incómoda posición de un seguidor. 59 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras 4. ARQUITECTURA DE LA CORE i7 -940, LGA de 1366 contactos Intel Core i7 es una familia de procesadores de cuatro núcleos de la arquitectura Intel x86-64. Los Core i7 son los primeros procesadores que usan la microarquitectura Nehalem de Intel y es el sucesor de la familia Intel Core 2. El pseudónimo Core i7 no tiene un significado concreto, pero continúa con el uso de la etiqueta Core. Estos procesadores actualmente son manufacturados en las plantas de fabricación que posee Intel en Arizona, Nuevo México y Oregón, aunque la de Oregón se prepara para la fabricación de la siguiente generación de procesadores de 32 nm, sus características son las siguientes: · FSB es reemplazado por la interfaz QuickPath (sólo en Intel Core i7, ya que el FSB es reemplazado por HyperTransport en otros procesadores). Las placas base deben utilizar un chipset que soporte QuickPath. De momento solo esta disponible para placas base de Asrock, Asus, DFI , EVGA , GigaByte , Intel , MSI y XFX. · Conexión con memoria: la memoria está directamente conectada al procesador. · Memoria de tres canales: cada canal puede soportar una o dos memorias DIMM DDR3. Las placa base compatibles con Core i7 tienen cuatro (3+1) o seis ranuras DIMM en lugar de dos o cuatro, y las DIMMs deben ser instaladas en grupos de tres, no dos. · Soporte para DDR3 únicamente. · Turbo Boost: La misma permite a los distintos núcleos acelerarse "inteligentemente" por sí mismos cada 133 MHz por encima de su velocidad oficial, mientras que los requerimientos térmicos y eléctricos de la CPU no sobrepasen los predeterminados. · Dispositivo Single-die: Los cuatro núcleos, el controlador de memoria, y la cache se encuentran dentro del mismo encapsulado. · HyperThreading reimplementado. Cada uno de los cuatro núcleos puede procesar dos tareas simultáneamente, por tanto el procesador aparece como ocho CPUs desde el sistema operativo. Esta característica estaba presente en la antigua microarquitectura Netburst introducida en los Pentium 4 HT. · 8 MB de memoria cache L3 incorporada (on-die), compartida por todos los núcleos. · Solo una interfaz QuickPath: No concebida para placas base multiprocesador. · Tecnología de proceso de 45 nm o 32 nm. · 731 millones de transistores. · Sofisticada administración de energía, puede colocar un núcleo no utilizado en modo sin energía. · Capacidad de overclocking muy elevada (se puede acelerar sin problemas hasta los 4-4,1 GHz). · El Core i7 tiene un alto consumo, prácticamente dobla los anteriores, pues es capaz de gastar 160W él solo, con el consiguiente problema térmico. Por tanto, requiere una caja de 60 Universidad Salesiana de Bolivia Ingeniería de Sistemas Hard. y Arq. de Computadoras calidad y una fuente de alimentación potente. Por este motivo se debe tener en cuenta que el equipo entero, más monitor, puede estar consumiendo del orden de 500 ó 600 wats. 6. ARQUITECTURA DE LA CORE i5 Los modelos Core i5 tienen dos núcleos nativos con Hyperthreading (4 núcleos virtuales), caché L2 de 256 KB y L3 de 4 MB compartidos. 7. CLONACION DE DISCOS DUROS Para realizar la clonacion de discos duros ha sido diseñado el programa DriveWire, que básicamente sirve para conectar discos duros SATA o IDE al computador mediante conexión USB y gestionar los datos gracias a un software que viene incluido; soporta discos IDE de 2.5 (de 44 pines para portátiles) y 3.5 pulgadas (de 40 pines para PC de sobremesa); 61