unidad i - Universidad Salesiana de Bolivia

Anuncio
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
Descargar