ANTOLOGIA DE ARQUITECTURA DE COMPUTADORAS
INGENIERIA EN SISTEMAS COMPUTACIONALES
Elaborado por: Abraham Nieva Martínez Cesar Vicente Morales Morales
ARQUITECTURA DE COMPUTADORAS ING. JUAN FRANCISCO MEJIA PEREZ
H. Vera Veracru cruzz Ver. Ver.
Mayo de 2012
UNIDAD 1 MODELO DE ARQUITECTURAS DE CÓMPUTO 1.1 MODELOS DE ARQUITECTURAS DE CÓMPUTO 1.1.1 Clásicas 1.1.2 Segmentadas 1.1.3 De multiprocesamiento 1.2 A 1.2 ANÁLISIS DE LOS COMPONENTES 1.2.1 CPU 1.2.1.1 Arquitecturas 1.2.1.2 Tipos 1.2.1.3 Características 1.2.1.4 Funcionamiento
1.2.2 Memoria 1.2.2.1 Arquitecturas 1.2.2.2 Tipos 1.2.2.3 Características 1.2.2.4 Funcionamiento
1.2.3 Dispositivos de I/O 1.2.3.1 Arquitecturas 1.2.3.2 Tipos 1.2.3.3 Características 1.2.3.4 Funcionamiento
UNIDAD 2 COMUNICACIÓN INTERNA EN LA COMPUTADORA 2.1 BUSES 2.1.1 Bus local 2.1.2 Bus de datos 2.1.3 Bus de direcciones 2.1.4 Bus de control 2.1.5 Buses normalizados 2.2 DIRECCIONAMIENTO 2.2.1 Modo real 2.2.2 Modo protegido 2.2.3 Modo real virtual 2.3 TEMPORIZACIÓN 2.3.1 Reloj de Sistema 2.3.2 Reset del Sistema 2.3.3 Estados de espera 2.4 INTERRUPCIONES DE HARDWARE 2.5 A 2.5 ACCESO DIRECTO A MEMORIA UNIDAD 3 SELECCIÓN DE COMPONENTES Y ENSAMBLE DE EQUIPOS DE CÓMPUTO 3.1 CHIPSET 3.1.1 CPU 3.1.2 Controlador del bus 3.1.3 Puertos de E/S 3.1.4 Controlador de interrupciones 3.1.5 Controlador de DMA
4
4 4 6 8
9 10
11 16 20 22 26
26 27 28 29 30
30 31 32 33 36
36 37 37 37 38 38
39 39 41 42
43 43 44 45
45 49 53
53 58 61 61 62 62
2
3.1.6 Circuitos de temporización y control 3.1.7 Controladores de video 3.2 A 3.2 APLICACIONES 3.2.1 Entrada / Salida 3.2.2 Almacenamiento 3.2.3 Fuente de alimentación 3.3 A 3.3 AMBIENTES DE SERVICIOS 3.3.1 Negocios 3.3.2 Industria 3.3.3 Comercio electrónico UNIDAD 4 MICROCONTROLADORES 4.1 A 4.1 ARQUITECTURA 4.1.1 Terminales 4.1.2 CPU 4.1.3 Espacio de memoria 4.1.4 Entrada/Salida 4.1.5 Características especiales 4.2 PROGRAMACIÓN 4.2.1 Modelo de Programación 4.2.2 Conjunto de Instrucciones 4.2.3 Modos de Direccionamiento 4.2.4 Lenguaje Ensamblador 4.3 A 4.3 APLICACIONES BIBLIOGRAFIAS
62 63
63 63 71 77
78 78 79 80
83
83 83 84 84 85 86
86 86 88 90 91
93 95
3
Unidad 1 Modelo de arquitecturas de cómputo 1.1 Modelos de arquitecturas de cómputo 1.1.1 Clásicas Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos de vacío. Aun son usadas en procesadores empotrados de gama baja y son la base de la mayoría de las arquitecturas modernas. Arquitectura Mauchly-Eckert (Von Newman) Esta arquitectura fue utilizada en la computadora ENIAC. Consiste en una unidad central de proceso que se comunica a través de un solo bus con un banco de memoria en donde se almacenan tanto los códigos de instrucción del programa, como los datos que serán procesados por este. Esta arquitectura es la más empleada en la actualidad ya, que es muy versátil. Ejemplo de esta versatilidad es el funcionamiento de los compiladores, los cuales son programas que toman como entrada un archivo de texto conteniendo código fuente y generan como datos de salida, el código máquina que corresponde a dicho código fuente (Son programas que crean o modifican otros programas). Estos datos de salida pueden ejecutarse como un programa posteriormente ya que se usa la misma memoria para datos y para el código del programa. 1
La principal desventaja de esta arquitectura, es que el bus de datos y direcciones único se convierte en un cuello de botella por el cual debe pasar toda la información que se lee 1
Organización y Arquitectura de Computadores. William Stallings - 7° edición
4
de o se escribe a la memoria, obligando a que todos los accesos a esta sean 2
secuenciales. Esto limita el grado de paralelismo (acciones que se pueden realizar al 3
mismo tiempo) y por lo tanto, el desempeño de la computadora. Este efecto se conoce como el cuello de botella de Von Newman. En esta arquitectura apareció por primera vez el concepto de programa almacenado. Anteriormente la secuencia de las operaciones era dictada por el alambrado de la unidad de control, e cambiarla implicaba un proceso de recableado laborioso, lento (hasta tres semanas) y propenso a errores. En esta arquitectura se asigna un código numérico a cada instrucción. Dichos códigos se almacenan en la misma unidad de memoria que los datos que van a procesarse, para ser ejecutados en el orden en que se encuentran almacenados en memoria. Esto permite cambiar rápidamente la aplicación de la computadora y dio origen a las computadoras de propósito general. Mas a detalle, el procesador se subdivide en una unidad de control (C.U.), una unidad lógica aritmética (A.L.U.) y una serie de registros. Los registros sirven para almacenar internamente datos y estado del procesador. La unidad aritmética lógica proporciona la capacidad de realizar operaciones aritméticas y lógicas. La unidad de control genera las señales de control para leer el código de las instrucciones, decodificarlas y hacer que la ALU las ejecute. Arquitectura Harvard Esta arquitectura surgió en la universidad del mismo nombre, poco después de que la arquitectura Von Newman apareciera en la universidad de Princeton. Al igual que en la arquitectura Von Newman, el programa se almacena como un código numérico en la memoria, pero no en el mismo espacio de memoria ni en el mismo formato que los datos. Por ejemplo, se pueden almacenar las instrucciones en doce bits en la memoria de programa, mientras los datos de almacenan en 8 bits en una memoria aparte.
2
3
Organización y Arquitectura de Computadores. William Stallings - 7° edición
5
El hecho de tener un bus separado para el programa y otro para los datos permite que se lea el código de operación de una instrucción, al mismo tiempo se lee de la memoria de datos los operados de la instrucción previa. Así se evita el problema del cuello de botella de Von Newman y se obtiene un mejor desempeño. En la actualidad la mayoría de los procesadores modernos se conectan al exterior de manera similar a la arquitectura Von Newman, con un banco de memoria masivo único, pero internamente incluyen varios niveles de memoria cache con bancos separados en cache de programa y cache de datos, buscando un mejor desempeño sin perder la versatilidad. 4 1.1.2 Segmentadas Las arquitecturas segmentadas o con segmentación del cauce buscan mejorar el desempeño realizando paralelamente varias etapas del ciclo de instrucción al mismo tiempo. El procesador se divide en varias unidades funcionales independientes y se dividen entre ellas el procesamiento de las instrucciones. Para comprender mejor esto, supongamos que un procesador simple tiene un ciclo de instrucción sencillo consistente solamente en una etapa de búsqueda del código de instrucción y en otra etapa de ejecución de la instrucción. En un procesador sin segmentación del cauce, las dos etapas se realizarían de manera secuencial para cada una de las instrucciones, como lo muestra la siguiente figura.
4
Organización y Arquitectura de Computadores. William Stallings - 7° edición
6
En un procesador con segmentación del cauce, cada una de estas etapas se asigna a una unidad funcional diferente, la búsqueda a la unidad de búsqueda y la ejecución a la unidad de ejecución. Estas unidades pueden trabajar en forma paralela en instrucciones diferentes. Estas unidades se comunican por medio de una cola de instrucciones en la que la unidad de búsqueda coloca los códigos de instrucción que leyó para que la unidad de ejecución los tome de la cola y los ejecute. Esta cola se parece a un tubo donde las instrucciones entran por un extremo y salen por el otro. De esta analogía proviene el nombre en inglés: Pipelining o entubamiento. 5
Completando el ejemplo anterior, en un procesador con segmentación, la unidad de búsqueda comenzaría buscando el código de la primera instrucción en el primer ciclo de reloj. Durante el segundo ciclo de reloj, la unidad de búsqueda obtendría el código de la instrucción 2, mientras que la unidad de ejecución ejecuta la instrucción 1 y así sucesivamente. La siguiente figura muestra este proceso.
5
Organización y Arquitectura de Computadores. William Stallings - 7° edición
7
En este esquema sigue tomando el mismo número de ciclos de reloj (el mismo tiempo), pero como se trabaja en varias instrucciones al mismo tiempo, el número promedio de instrucciones por segundo se multiplica. La mejora en el rendimiento no es proporcional al número de segmentos en el cauce debido a que cada etapa no toma el mismo tiempo en realizarse, además de que se puede presentar competencia por el uso de algunos recursos como la memoria principal. Otra razón por la que las ventajas de este esquema se pierden es cuando se encuentra un salto en el programa y todas las instrucciones que ya se buscaron y se encuentran en la cola, deben descartarse y comenzar a buscar las instrucciones desde cero a partir de la dirección a la que se saltó. Esto reduce el desempeño del procesador y aún se investigan maneras de predecir los saltos para evitar este problema.6
1.1.3 De multiprocesamiento Cuando se desea incrementar el desempeño más allá de lo que permite la técnica de segmentación del cauce (limite teórico de una instrucción por ciclo de reloj), se requiere utilizar más de un procesador para la ejecución del programa de aplicación. Las CPU de multiprocesamiento se clasifican de la siguiente manera:
SISO – (Single Instruction, Single Operand ) computadoras independientes
SIMO – (Single Instruction, Multiple Operand ) procesadores vectoriales
MISO – (Multiple Instruction, Single Operand ) No implementado
MIMO – (Multiple Instruction, Multiple Operand ) sistemas SMP, Clusters
6
Organización y Arquitectura de Computadores. William Stallings - 7° edición
8
Procesadores vectoriales – Son computadoras pensadas para aplicar un mismo algoritmo numérico a una serie de datos matriciales, en especial en la simulación de sistemas físicos complejos. En los sistemas SMP (Simetric Multiprocesesors), varios procesadores comparten la misma memoria principal y periféricos de I/O, Normalmente conectados por un bus común. Se conocen como simétricos, ya que ningún procesador toma el papel de maestro y los demás de esclavos, sino que todos tienen derechos similares en cuanto al acceso a la memoria y periféricos y ambos son administrados por el sistema operativo. Los Clusters son conjuntos de computadoras independientes conectadas en una red de área local o por un bis de interconexión y que trabajan cooperativamente para resolver un problema. Es clave en su funcionamiento contar con un sistema operativo y programas de aplicación capaces de distribuir el trabajo entre las computadoras de la red. 7 1.2 Análisis de los componentes En su forma más simple, un sistema de computadora cuenta con una unidad que ejecuta instrucciones de programas. Esta unidad se comunica con otros subsistemas dentro de la computadora, y a menudo controla su operación. Debido al papel central de tal unidad se conoce como unidad central de procesamiento, o CPU (Central processing unit). Dentro de muchas computadoras, un subsistema como una unidad de entrada, o un dispositivo de almacenamiento masivo, puede incorporar una unidad de procesamiento propia. Tal unidad de procesamiento, aunque es central para su propio subsistema, resulta claro que no es "central" para el sistema de computadora en su conjunto. Sin embargo, los principios del diseño y operación de una CPU son independientes de su posición en un sistema de computadora. Este trabajo estará dedicado a la organización del hardware que permite a una CPU realizar su función principal: traer instrucciones desde la memoria y ejecutarlas.
7
Organización y Arquitectura de Computadores. William Stallings - 7° edición
9
1.2.1 CPU La unidad central de procesamiento, CPU, o, simplemente, el procesador. Es el componente en una computadora digital que interpreta las instrucciones y procesa los datos contenidos en los programas de computadora. Los CPU proporcionan la característica fundamental de la computadora digital, la programabilidad, y son uno de los componentes necesarios encontrados en las computadoras de cualquier tiempo, junto con el almacenamiento primario y los dispositivos de entrada/salida. Se conoce como microprocesador el CPU que es manufacturado con circuitos integrados. Desde mediados de los años 1970, los microprocesadores de un solo chip han reemplazado casi totalmente todos los tipos de CPU, y hoy en día, el término "CPU" es aplicado usualmente a todos los microprocesadores. 8 La expresión "unidad central de proceso" es, en términos generales, una descripción de una cierta clase de máquinas de lógica que pueden ejecutar complejos programas de computadora. Esta amplia definición puede fácilmente ser aplicada a muchos de los primeros ordenadores que existieron mucho antes que el término "CPU" estuviera en amplio uso. Sin embargo, el término sí mismo y su acrónimo han estado en uso en la industria de la informática por lo menos desde el principio de los años 1960. La forma, el diseño y la implementación de las CPU ha cambiado drásticamente desde los primeros ejemplos, pero su operación fundamental ha permanecido bastante similar. En ordenadores grandes, las CPUs requieren uno o más tableros de circuito impresos. En los ordenadores personales y estaciones de trabajo pequeñas, la CPU está contenida en un solo chip llamado microprocesador. Dos componentes típicos de una CPU son: 1.
La unidad de lógica/aritmética (ALU), que realiza operaciones aritméticas y lógicas.
2.
La unidad de control (CU), que extrae instrucciones de la memoria, las descifra y ejecuta, llamando a la ALU cuando es necesario.
8
Organización y Arquitectura de Computadores. William Stallings - 7° edición
10
1.2.1.1 Arquitecturas La arquitectura de computadores se refiere a los atributos de un sistema que son visibles a un programador, o para decirlo de otra manera, aquellos atributos que tienen un impacto directo en la ejecución lógica de un programa. La organización de computadores se refiere a las unidades funcionales y sus interconexiones, que dan lugar a especificaciones arquitectónicas. Entre los ejemplos de atributos arquitectónicos se encuentran el conjunto de instrucciones, el número de bits usados para representar varios tipos de datos, mecanismos de E/S y técnicas para direccionamiento de memoria. Entre los atributos de organización se incluyen aquellos detalles de hardware transparentes al programador, tales como señales de control, interfaces entre el computador y los periféricos y la tecnología de memoria usada. 9
Para poner un ejemplo, una cuestión de diseño arquitectónico es si el computador tendrá la instrucción de multiplicar la velocidad relativa de las dos aproximaciones, y el coste y el temario físico de una unidad especializada en multiplicar.
Unidad entrada y salida Dado que la CPU trabaja a velocidades mucho mayor que los equipos periféricos (nsg. v/s msg) se requiere una unidad que se encargue de organizar cuál de los periféricos conectados será habilitado para intercambiar información con el procesador. 9
Organización y Arquitectura de Computadores. William Stallings - 7° edición
11
La unidad de entrada/salida puede ser un multiplexor/de multiplexor, a través del selector de puertas se direcciona cuál de los equipos debe conectarse, la señal de control establece la modalidad de comunicación I/O, la información se transfiere al I/O data desde donde se traslada al DB. Existen diversas modalidades de organización para transferir información:
Tiempo: sincrónico o asincrónico
Datos: secuenciales, paralelos
Conexión directa al DB, se elimina el I/O data
Conexión directa a memoria, DMA (Data Memory Access), permite conexión entre procesadores y entre unidades controladoras rápidas, interfaces de discos, etc.
Unidad de control Realiza funciones organizativas a partir de un mecanismo de relojería con el cual se sincroniza y secuencian los tiempos y los momentos en que los distintos elementos, que constituyen la estructura del procesador, deban participar en la ejecución de una instrucción.10 Un ciclo de reloj es la unidad de tiempo para la ejecución de las operaciones dentro del procesador. Las operaciones se realizan dentro del ciclo de reloj o en múltiplos, enteros, de ciclos de reloj. Cada ciclo de reloj está dividido en diferentes tiempos, o fases, los cuales indican el momento en que se efectúan las micro-operaciones, dentro de cada ciclo. Una micro operación corresponde a acciones como: desplazamiento de un registro, transferencia de un registro a un bus, complementar un registro, etc. La unidad de control comanda el registro que contiene la dirección de la instrucción que se está ejecutando o de la próxima instrucción a ejecutar, esto depende del estado de avance en el tiempo de ejecución de la instrucción. El registro de dirección de instrucción y la memoria stack están relacionados ya que esta contiene las direcciones de retorno de las rutinas del programa.
10
Organización y Arquitectura de Computadores. William Stallings - 7° edición
12
El registro de direcciones requiere de un procesamiento aritmético de direcciones de acuerdo al largo, en bytes, de la instrucción en ejecución. La unidad de control dispone del registro de instrucción que almacena la instrucción que se está efectuando, es decir una vez finalizado el fetch. La instrucción está compuesta de dos partes:
El código de operación el llamado opcode, con el cual se alimenta al decodificador de instrucción.
Una dirección que se puede almacenar en algún registro de direcciones.
La unidad de control contiene toda la circuitería necesaria para efectuar las microoperacioens ordenadas de acuerdo a la naturaleza de la instrucción a ejecutar. 11 Unidad aritmética lógica Es donde se realizan las operaciones aritméticas y lógicas, para ello se apoya usando el registro acumulador, los registros generales y también un registro flag. Los registros flag sirven para indicar el estado del procesador después de realizar una operación de cálculo. Los registros son flip flop que registran las características del resultado arrojado por una instrucción. Dependiendo de los fabricantes los flags pueden ser muy diversos pero hay algunos que en general se encuentran en casi todos los procesadores:
Flag de signo: indica si el resultado de la última operación fue positiva o negativa.
Flag de cero: indica si el resultado de la última operación fue cero o distinto de cero.
Flag de overflow: indica si el resultado fue mayor que la capacidad de representación del acumulador
Flag de underflow: cuando el resultado es menor a la mínima capacidad de representación del acumulador.
Operaciones aritméticas y lógicas 11
Organización y Arquitectura de Computadores. William Stallings - 7° edición
13
Las operaciones aritméticas y lógicas se realizan siempre sobre algún registro y tienen como pivote el registro acumulador:
Sobre el acumulador, solamente
Entre el acumulador y algún registro
Entre el acumulador y una dirección de memoria
Entre el acumulador y un dato inmediato.
El resultado de las operaciones es almacenado en el acumulador. Algunas operaciones aritméticas lógicas típicas:
Sumas Restas
Complementación
Desplazamiento a la izquierda (multiplicado por 2)
Desplazamiento a la derecha (dividido por 2)
Incrementar o decrementar en 1 el acumulador
OR, AND, OR-EX, etc., entre un par de registros.
Las operaciones de multiplicación y división no son efectuadas por la ALU y se implementan en software que comandan la ALU o hardware, especial, que realiza estas funciones. 12 Registros de trabajo
Se usan para almacenar datos empleados en la ejecución de las instrucciones, es muy importante su velocidad de respuesta. Unidad de Memoria Corresponde a un conjunto de registros direccionables a través del bus de direcciones. Cada registro de memoria está constituido por un determinado número de unidades básicas, bit, que constituyen la celda de memoria. El tamaño de la celda es constante para un procesador determinado. 12
Organización y Arquitectura de Computadores. William Stallings - 7° edición
14
Los tamaños típicos son 4, 8, 16, 32 y más bits por celda. La memoria tiene dos usos principales:
Almacenar programas
Almacenar datos o resultados.
El almacenamiento de programas está asociado a la naturaleza de los mismos. Si son de uso permanente se almacenan en memoria ROM (read only memory), caso de los programas BIOS (basic input output system). Si son de uso esporádico y afectos a cambios se almacenan RAM (ramdom access memory) caso de los programas de aplicación. Las memorias del tipo ROM corresponden a tecnología de memorias, electrónicas, de estado solida no volátil, esto significa que no requieren de energía para mantener los valores que almacenan. 13 Las memorias RAM necesitan energía para mantener la información almacenada, se reconocen dos grandes familias:
Las SRAM (Static RAM), rápidas, caras, de alto consumo útiles como memorias cache L2.
Las DRAM (Dynamic RAM), lentas, baratas, de bajo consumo se usan como memoria principal.
Operación de la memoria
La forma de trabajo de un ciclo de memoria con el envió de una dirección por el BUS de DIRECCION, AB (address bus), dicha dirección se almacena en un registro de direcciones de memoria, MAR (memory address register) La operación de memoria puede ser de lectura o escritura. Lectura: el contenido de la celda direccionada por el MAR se transfiere a un registro de datos de memoria MDR (memory data register) el que transfiere su contenido al bus de datos DB (data bus), de allí al registro del procesador que corresponda. 13
Organización y Arquitectura de Computadores. William Stallings - 7° edición
15
Escritura: una vez seleccionado el MAR, se transfiere el contenido del DB al MDR, desde donde se lleva a la celda seleccionada, completando el proceso de escritura. Papel del bus de control: a través de este bus, la unidad de control activa el MAR el MDR y los demás registros involucrados en los procesos de lectura-escritura. Sincroniza el momento en que se activan AB y DB, esto corresponde a un conjunto de microoperaciones necesarias para producir una lectura o escritura en memoria. 1.2.1.2 Tipos La arquitectura IBM Sistemas/370. Esta arquitectura apareció por primera vez en 1970 e incluía varios modelos. Un cliente con necesidades modestas podía comprar un modelo más barato y lento, y, si la demanda se incrementa, cambiarse más tarde a un modelo más caro y rápido sin tener que abandonar el software nuevos con tecnología mejorada para reemplazar a modelos más viejos, ofreciendo al consumidor mayor velocidad, precios más bajos o ambos a la vez. Estos modelos más nuevos conservaban la misma arquitectura para proteger así la inversión en software del consumidor. Podemos destacar que la arquitectura del Sistema/370 con unas pocas mejoras ha sobrevivido hasta hoy día como la arquitectura de la línea de grandes productos de computación IMB.
14
Los CPUs modernos pueden clasificarse de acuerdo a varias características, tales como: el tamaño del ALU o del Bus de conexión al exterior (8, 16, 32, 64 bits), si tienen cauce segmentado o no segmentado, si con tipo CISC o RISC, Von Newan o Harvard y si solo tienen instrucciones enteras o implementan también instrucciones de punto flotante.
Supercomputadoras Una supercomputadora es el tipo de computadora más potente y más rápida que existe en un momento dado. Estas máquinas están diseñadas para procesar enormes cantidades de información en poco tiempo y son dedicadas a una tarea específica. Así mismo son las más caras, sus precios alcanzan los 30 millones de dólares y más; y cuentan con un control de temperatura especial, esto para disipar el calor que algunos 14
Organización y Arquitectura de Computadores. William Stallings - 7° edición
16
componentes alcanzan a tener. Unos ejemplos de tareas a las que son expuestas las supercomputadoras son los siguientes: 1. Búsqueda y estudio de la energía y armas nucleares. 2. Búsqueda de yacimientos petrolíferos con grandes bases de datos sísmicos. 3. El estudio y predicción de tornados. 4. El estudio y predicción del clima de cualquier parte del mundo. 5. La elaboración de maquetas y proyectos de la creación de aviones, simuladores de vuelo. Debido a su precio, son muy pocas las supercomputadoras que se construyen en un año.15
Macrocomputadoras o Mainframes Las macrocomputadoras son también conocidas como Mainframes. Los mainframes son grandes, rápidos y caros sistemas que son capaces de controlar cientos de usuarios simultáneamente, así como cientos de dispositivos de entrada y salida. Los mainframes tienen un costo que va desde 350,000 dólares hasta varios millones de dólares. De alguna forma los mainframes son más poderosos que las supercomputadoras porque soportan más programas simultáneamente. Pero las súper computadoras pueden ejecutar un solo programa más rápido que un mainframe. En el pasado, los Mainframes ocupaban cuartos completos o hasta pisos enteros de algún edificio, hoy en día, un Mainframe es parecido a una hilera de archiveros en algún cuarto con piso falso, esto para ocultar los cientos de cables de los periféricos, y su temperatura tiene que estar controlada. 15
Organización y Arquitectura de Computadores. William Stallings - 7° edición
17
Minicomputadoras En 1960 surgió la minicomputadora, una versión más pequeña de la Macrocomputadora. Al ser orientada a tareas específicas, no necesitaba de todos los periféricos que necesita un Mainframe, y esto ayudo a reducir el precio y costos de mantenimiento. Las minicomputadoras, en tamaño y poder de procesamiento, se encuentran entre los mainframes y las estaciones de trabajo. En general, una minicomputadora, es un sistema multiproceso (varios procesos en paralelo) capaz de soportar de 10 hasta 200 usuarios simultáneamente. Actualmente se usan para almacenar grandes bases de datos, automatización industrial y aplicaciones multiusuario. 16
Microcomputadoras o PC’s.
16
Organización y Arquitectura de Computadores. William Stallings - 7° edición
18
Las microcomputadoras o Computadoras Personales (PC‟ s) tuvieron su origen con la creación de los microprocesadores. Un microprocesador es "una computadora en un chip", o sea un circuito integrado independiente. Las PC´s son computadoras para uso personal y relativamente son baratas y actualmente se encuentran en las oficinas, escuelas y hogares. El término PC se deriva de que para el año de 1981 , IBM, sacó a la venta su modelo "IBM PC", la cual se convirtió en un tipo de computadora ideal para uso "personal", de ahí que el término "PC" se estandarizó y los clones que sacaron posteriormente otras empresas fueron llamados "PC y compatibles", usando procesadores del mismo tipo que las IBM , pero a un costo menor y pudiendo ejecutar el mismo tipo de programas. Existen otros tipos de microcomputadoras, como la Macintosh®, que no son compatibles con la IBM, pero que en muchos de los casos se les llaman también "PC´s", por ser de uso personal. En la actualidad existen va riados tipos en el diseño de PC‟s: 1.
Computadoras personales, con el gabinete tipo mini torre, separado del monitor.
2.
Computadoras personales portátiles "Laptop" o "Notebook".
3.
Computadoras personales más comunes, con el gabinete horizontal, separado del monitor.
4.
Computadoras personales que están en una sola unidad compacta el monitor y el CPU.
5.
Las computadoras "laptops" son aquellas computadoras que están diseñadas para poder ser transportadas de un lugar a otro. Se alimentan por medio de baterías recargables, pesan entre 2 y 5 kilos y la mayoría trae integrado una pantalla de LCD (Liquid Crystal Display).
6.
Estaciones de trabajo o Workstations
Las estaciones de trabajo se encuentran entre las minicomputadoras y las macrocomputadoras (por el procesamiento). Las estaciones de trabajo son un tipo de computadoras que se utilizan para aplicaciones que requieran de poder de procesamiento moderado y relativamente capacidades de gráficos de alta calidad.
19
1.2.1.3 Características Las características más importantes a considerar al escoger un CPU para usarlo en una aplicación, son:
Modelo del programador (Conjunto de registros que el programador puede utilizar), forman el modelo mental del CPU que el programador utiliza al programar en ensamblador.
Conjunto de instrucciones que puede ejecutar el CPU
Modos de direccionamiento que pueden usarse para obtener los operandos de las instrucciones.
Ciclo de instrucción (el conjunto de pasos que realiza el CPU para procesar cada instrucción)
Buses de interconexión, usados para que el CPU lea y escriba a la memoria y a los dispositivos de entrada y salida. 17
CPU Es el cerebro del computador. Se encarga de controlar el flujo de la información entre todos los componentes y de procesar las instrucciones de los distintos programas en uso, en un determinado momento. Sus componentes son:
17
Organización y Arquitectura de Computadores. William Stallings - 7° edición
20
Unidad de Control: coordina las acciones que se llevan a cabo en la CPU, como decodificar e interpretar información desde un componente a otro, entre otras tareas.
Unidad Aritmética y Lógica: Realiza las operaciones aritméticas como adición, sustracción, división, multiplicación y las lógicas como mayor que, menor que, mayor o igual, menor o igual.
Memoria Principal RAM: (Random Access Memory)
Es una zona de almacenamiento temporal, entre cuyas características están ser de lectura y escritura, pudiéndose acceder a la información aquí almacenada, con el objeto de modificarla. Se le considera reutilizable. Es volátil, reteniendo la información basándose en energía eléctrica. Al apagarse el computador, todo lo contenido se pierde. ROM: (Read Only Memory)
Es permanente, ya que lo que permanece en la ROM no se pierde aunque el computador se apague.18 Su función principal es guardar información inicial que el computador necesita para colocarse en marcha una vez que se enciende. Solo sirve para leer. Se puede leer la información desde esta memoria y no recibir información. CACHÉ
Tiene la información que el procesador ocupará a continuación. Memorias Auxiliares Son los dispositivos físicos magnéticos en que se almacena información en forma permanente, con el objeto de recuperarla posteriormente.
Cintas magnéticas: Sistema de almacenamiento antiguo. Su apariencia era parecida a las cintas de video o a cintas de film.
18
Organización y Arquitectura de Computadores. William Stallings - 7° edición
21
Disquetes: Son unidades magnéticas de 31/2 (pulgadas) y que en ellos se almacenan hasta 1.44 Mb (Megabyte) de información, pudiéndose decir que es igual a 1.474 Kb (Kilobyte). Son borrables y reutilizables, pudiéndose escribir varias veces sobre la información almacenada anteriormente.
Disco duro: Disco metálico que se encuentra en el interior del computador donde se almacena mucha información (programas, datos numéricos, documentos, etc.). Se puede decir que es la bodega del computador.
CD ROM: Son discos compactos que se graban por medio del láser. Son regrabables ya la mayoría de ellos. Aceptan gran cantidad de información.
Unidades de medida de la información almacenada La unidad que se utiliza para medir la información es el byte. Dependerá de la cantidad de caracteres (bytes) archivados. 19
1.000 bytes = 1 Kilobyte (Kb) =1.024 bytes
1.000.000 de bytes = 1 Megabyte (Mb) = 1.024 Kb
1.000 de bytes = 1 Gigabyte (Gb) = 1.024 Mb
1.000 de bytes = 1 Terabyte (Tb) = 1.024 Gb
1.2.1.4 Funcionamiento Funcionamiento: La operación de cada componente individual como parte de la estructura. 19
Organización y Arquitectura de Computadores. William Stallings - 7° edición
22
Tanto la estructura como el funcionamiento de un computador son en esencia sencillos. En términos generales solo hay cuatro funciones básicas que un computador puede llevar a cabo:
Procesamiento de datos
Almacenamiento de datos
Transferencia de datos
Control
El computador, por supuesto, tiene que ser capaz de procesar datos. Los datos pueden adoptar una gran variedad de formas, y el rango de los requisitos de procesado es amplio. Sin embargo, veremos que hay solo unos pocos métodos o tipos fundamentales de procesado de datos. También es esencial que un computador almacene datos. Incluso si el computador está procesando datos al vuelo (es decir, los datos se introducen, se procesan, y los resultados se obtienen inmediatamente), el computador tiene que guardar temporalmente al menos aquellos datos con los que está trabajando en un momento dado. Así hay al menos una función de almacenamiento de datos a largo plazo. El computador almacena ficheros de datos para que se recuperen y actualicen en un futuro. El computador tienes que ser capaz de transferir datos entre el mismo y el mundo exterior. El entorno de operación del computador se compone de dispositivos que sirven bien como fuente o bien como destino de datos. Cuando se reciben o se llevan datos a un dispositivo que está directamente conectado con el computador, el proceso se conoce como entrada-salida (E/S), y este dispositivo recibe el nombre de periférico. El proceso de transferir datos a largas distancias, desde o hacia un dispositivo remoto, recibe el nombre de comunicación de datos. Finalmente, debe haber control, el número de operaciones posibles que pueden ser realizadas es pequeño. El computador puede funcionar como un dispositivo de transferencia de datos, simplemente transfiriendo datos de un periférico o línea de comunicaciones a otro. También puede funcionar como un dispositivo de almacenamiento de datos, con datos transferidos desde un entorno externo al almacén de datos del computador (leer) y viceversa (escribir). Los dos diagramas siguientes muestran
23
operaciones que implican procesamiento de datos, en datos o bien almacenados o en tránsito entre el almacén y el entrono externo. La función básica de una computadora es ejecutar programas, el cual está compuesto de un conjunto de instrucciones almacenadas en memoria. La CPU es la encargada de ejecutar las instrucciones específicas del programa. Para comprender esta función debe considerarse el detalle del proceso de ejecución del programa. Desde el punto de vista más simple, se considera el procesamiento de una instrucción en dos etapas: la CPU lee (busca, trae; fetch en inglés) la instrucción de memoria y la ejecuta. La ejecución del programa consiste en la repetición del proceso de traer y ejecutar la instrucción. Buscar una instrucción es una operación común a todas las instrucciones, y consiste en la lectura de la instrucción de una localidad de memoria. La ejecución de la instrucción puede suponer varias operaciones y depende de la naturaleza de la instrucción. El procesamiento de una instrucción se denomina ciclo de instrucción. Se representa en la figura 4. Los dos pasos se denotan como ciclo de búsqueda y ciclo de ejecución. La ejecución del programa se detiene sólo si la computadora se desconecta, se produce algún error o se encuentra una instrucción que detiene la computadora. 20
20
Organización y Arquitectura de Computadores. William Stallings - 7° edición
24
Al principio de cada ciclo de instrucción, la CPU busca o trae una instrucción de memoria. En una CPU típica, se utiliza un registro llamado contador de programa (PC program counter) para apuntar a la instrucción que debe traerse a continuación. A no ser que se indique otra cosa, la CPU siempre incrementa el PC después de traer una instrucción para determinar de dónde traer la siguiente instrucción de la secuencia (siguiente dirección de memoria).21 La instrucción traída se almacena en un registro de la CPU conocido como registro de instrucción (IR instruction register). La CPU interpreta la instrucción y realiza la acción requerida. En general, ésta puede ser de cuatro tipos:
CPU - Memoria: Deben transferirse datos desde la CPU a la memoria o viceversa.
CPU - E/S: Deben transferirse datos a o desde el exterior mediante el módulo de E/S.
Procesamiento de datos: La CPU realizará alguna operación aritmética o lógica con los datos.
Control: Una instrucción puede especificar que la secuencia de ejecución se altere por lo que la CPU debe poner el contador de programa al valor adecuado.
Una CPU procesa información almacenada en los bytes de la memoria. Esta información puede ser datos o instrucciones. Un dato es una representación binaria de una letra, un número, o un color; mientras que una instrucción le dice a la CPU que hacer con ese dato, es decir si sumarlo, si restarlo, moverlo, etc. La CPU necesita solo cuatro elementos para realizar dichas operaciones con los datos: Las instrucciones, un puntero a las instrucciones (Instrucción Pointer), algunos registros, y la unidad aritmética lógica.
21
Organización y Arquitectura de Computadores. William Stallings - 7° edición
25
o
El Instrucción Pointer le indica a la CPU en que lugar de la memoria necesita ser ubicada la instrucción.
o
Los Registros son lugares de almacenamiento temporario ubicados en la CPU. Un registro contiene datos que esperan ser procesados por cualquier instrucción, o datos que ya han sido procesados, como por ejemplo, la suma o resta de algún número, etc.
o
La unidad aritmética lógica es una especie de calculadora que ejecuta funciones matemáticas y lógicas dedicadas a las instrucciones.
Por otro lado, la CPU contiene algunas partes adicionales que ayudan a dichos componentes principales a realizar el trabajo: o
Un buscador de instrucciones (fetch), que recoge las instrucciones de la RAM o un área de memoria localizada en la CPU.
o
Un decodificador de instrucciones, que toma la instrucción desde el buscador y la traslada hasta que la CPU la entienda. Luego determina cuales son los pasos necesarios para cumplir con dicha instrucción.
o
La unidad de control, maneja y coordina todas las operaciones del chip. Este le permite saber a la unidad aritmética lógica cuando debe calcular, al buscador cuando debe grabar una cifra, y al decodificador cuando trasladar la cifra dentro de una instrucción.
1.2.2 Memoria 1.2.2.1 Arquitecturas La memoria de un ordenador se puede definir como los circuitos que permiten almacenar y recuperar la información. En un sentido más amplio, puede referirse también a sistemas externos de almacenamiento, como las unidades de disco o de cinta.
Hoy en día se requiere cada vez más memoria para poder utilizar complejos programas y para gestionar complejas redes de computadores.
26
1.2.2.2 Tipos Clasificación de memorias semiconductoras de acceso aleatorio Las memorias se clasifican, por la tecnología empleada y, además según la forma en que se puede modificar su contenido, A este respecto, las memorias se clasifican en dos grandes grupos: a) Memorias RAM: RAM: Son memorias en las que se puede leer leer y escribir, si bien su nombre (Random access memory) no representa correctamente este hecho. Por su tecnología pueden ser de ferritas (ya en desuso) o electrónicas. Dentro de éstas últimas hay memorias estáticas (SRAM, static RAM), cuya célula de memoria está basada en un biestable, y memorias dinámicas (DRAM, dynamic RAM, en las que la célula de memoria es un pequeño condensador cuya carga representa la información almacenada. Las memorias dinámicas necesitan circuitos adicionales de refresco ya que los condensadores tienen muy poca capacidad y, a través de las fugas, la información puede perderse, por otra parte, son de lectura destructiva. b) Memorias ROM (Read 0nly Memory): Son memorias en las que sólo se puede leer. Pueden ser: o
ROM programadas por máscara, cuya información se graba en fábrica y no se puede modificar.
o
PROM, o ROM programable una sola vez.
o
EPROM (erasable PROM) o RPROM (reprogramable ROM), cuyo contenido puede borrarse mediante rayos ultravioletas para regrabarlas.
o
EAROM (electrically alterable ROM) o EEROM (electrically erasable ROM), que son memorias que está en la frontera entre las RAM y las ROM ya que su contenido puede regrabarse por medios eléctricos, estas se diferencian
27
de las RAM en que no son volátiles. En ocasiones a este tipo de memorias también se las denomina NYRAM (no volátil RAM). o
Memoria FLASH, denominada así por la velocidad con la que puede reprogramarse, utilizan tecnología de borrado eléctrico al igual que las EEPROM. Las memorias flash pueden borrar-e enteras en unos cuantos segundos, mucho más rápido que las EPROM.
Básicamente las memorias ROM se basan en una matriz de diodos cuya unión se puede destruir aplicando sobre ella una sobretensión (usualmente comprendida entre -12.5 y -40 v.). De fábrica la memoria sale con 1's en todas sus posiciones, para grabarla se rompen las uniones en que se quieran poner 0's. Esta forma de realizar la grabación se denomina técnica de los fusibles. 1.2.2.3 Características La memoria de un ordenador se puede definir como los circuitos que permiten almacenar y recuperar la información. En un sentido más amplio, puede referirse también a sistemas externos de almacenamiento, como las unidades de disco o de cinta. Hoy en día se requiere cada vez más memoria para poder utilizar complejos programas y para gestionar complejas redes de computadores. Una memoria vista desde el exterior. Para efectuar una lectura se deposita en el bus de direcciones la dirección de la palabra de memoria que se desea leer y entonces se activa la señal de lectura (R); después de cierto tiempo (tiempo de latencia de la memoria), en el bus de -+datos aparecerá el contenido de la dirección buscada. Por otra parte, para realizar una escritura se deposita en el bus de datos la información que se desea escribir y en el bus de direcciones la dirección donde deseamos escribirla, entonces se activa la señal de escritura (W), pasado el tiempo de latencia, la memoria escribirá la información en la dirección deseada. Internamente la memoria tiene un registro de dirección (MAR, memory address register), un registro buffer de memoria o registro de datos (MB, memory buffer, o MDR, memory data register) y, un decodificador como se ve en la figura 3-2. Esta forma de estructurar la memoria se llama organización lineal o de una dimensión.
28
1.2.2.4 Funcionamiento Una memoria RAM estática con organización lineal cada célula de memoria toma como se muestra en la figura. En este esquema las primeras puertas AND sólo son necesarias en el una de las células de cada palabra. Se debe comentar la necesidad de la puerta de tres estados a la salida del biestable: esta puerta se pone para evitar que se unan las salidas de los circuitos de las células de diferentes palabras a través del hilo de bit. Si esa puerta no se pusiera (o hubiera otro tipo de puerta en su lugar, como una puerta AND) la información correspondiente a la palabra activa entraría por los circuitos de salida de las demás células, lo que los dañaría. Organizar la memoria de esta forma, tiene el inconveniente de que la complejidad del decodificador crece exponencialmente con el número de entradas y, en una memoria de mucha capacidad, la complejidad del decodificador la hace inviable. Esto hace necesaria una alternativa que simplifique los decodificadores. Esta alternativa la constituye la organización en dos dimensiones en que los bits del registro de dirección se dividen en dos partes y cada una de ellas va a un decodificador diferente. En este caso, las líneas procedentes de ambos decodificadores (X e Y) se cruzan formando un sistema de coordenadas en que cada punto de cruce corresponde a una palabra de memoria. Dado que en cada decodificador sólo se activa una línea, sólo se activará la palabra correspondiente al punto de cruce de las dos líneas activadas. Fácilmente se puede comprender que los decodificadores se simplifican mucho ya que cada uno tiene la mitad de entradas que en el caso anterior. Hay que decir, sin embargo, que la célula de memoria se complica un poco porque hay que añadir una puerta AND en cada palabra para determinar si coinciden las líneas X e Y. La organización de la memoria en dos dimensiones también es útil para las memorias dinámicas ya que el refresco de estas memorias se realiza por bloques y éstos pueden coincidir con una de las dimensiones (la que corresponda a los bits de dirección de mayor peso). En la práctica, las memorias dinámicas son más lentas que las estáticas y además son de lectura destructiva, pero resultan más baratas, aunque necesiten circuitos de refresco, si la memoria no es de mucha capacidad.
29
1.2.3 Dispositivos de I/O 1.2.3.1 Arquitecturas Es la colección de interfaces que usan las distintas unidades funcionales (subsistemas) de un sistema de procesamiento de información para comunicarse unas con otras, o las señales (información) enviada a través de esas interfaces. Las entradas son las señales recibidas por la unidad, mientras que las salidas son las señales enviadas por ésta. El término puede ser usado para describir una acción; "realizar una entrada/salida" se refiere a ejecutar una operación de entrada o de salida. Los dispositivos de E/S los usa una persona u otro sistema para comunicarse con una computadora. De hecho, a los teclados y ratones se los considera dispositivos de entrada de una computadora, mientras que los monitores e impresoras son vistos como dispositivos de salida de una computadora. Los dispositivos típicos para la comunicación entre computadoras realizan las dos operaciones, tanto entrada como salida, y entre otros se encuentran los módems y tarjetas de red. Es importante notar que la designación de un dispositivo, sea de entrada o de salida, cambia al cambiar la perspectiva desde el que se lo ve. Los teclados y ratones toman como entrada el movimiento físico que el usuario produce como salida y lo convierten a una señal eléctrica que la computadora pueda entender. La salida de estos dispositivos son una entrada para la computadora. De manera análoga, los monitores e impresoras toman como entrada las señales que la computadora produce como salida. Luego, convierten esas señales en representaciones inteligibles que puedan ser interpretadas por el usuario. La interpretación será, por ejemplo, por medio de la vista, que funciona como entrada. En arquitectura de computadoras, a la combinación de una unidad central de procesamiento (CPU) y memoria principal (aquélla que la CPU puede escribir o leer directamente mediante instrucciones individuales) se la considera el corazón de la computadora y cualquier movimiento de información desde o hacia ese conjunto se lo considera entrada/salida. La CPU y su circuitería complementaria proveen métodos de entrada/salida que se usan en programación de bajo nivel para la implementación de controladores de dispositivos.
30
1.2.3.2 Tipos Dispositivos de entrada Estos dispositivos permiten al usuario del ordenador introducir datos, comandos y programas en la CPU. El dispositivo de entrada más común es un teclado similar al de las máquinas de escribir. La información introducida con el mismo, es transformada por el ordenador en modelos reconocibles. Otros dispositivos de entrada son los lápices ópticos, que transmiten información gráfica desde tabletas electrónicas hasta el ordenador; joysticks y el ratón, que convierte el movimiento físico en movimiento dentro de una pantalla de ordenador; los escáneres luminosos, que leen palabras o símbolos de una página impresa y los traducen a configuraciones electrónicas que el ordenador puede manipular y almacenar; y los módulos de reconocimiento de voz, que convierten la palabra hablada en señales digitales comprensibles para el ordenador. También es posible utilizar los dispositivos de almacenamiento para introducir datos en la unidad de proceso. Otros dispositivos de entrada, usados en la industria, son los sensores.
Dispositivos de Entrada/Salida Los dispositivos de almacenamiento externos, que pueden residir físicamente dentro de la unidad de proceso principal del ordenador, están fuera de la placa de circuitos principal. Estos dispositivos almacenan los datos en forma de cargas sobre un medio magnéticamente sensible, por ejemplo una cinta de sonido o, lo que es más común, sobre un disco revestido de una fina capa de partículas metálicas. Los dispositivos de almacenamiento externo más frecuentes son los disquetes y los discos duros, aunque la mayoría de los grandes sistemas informáticos utiliza bancos de unidades de almacenamiento en cinta magnética. Los discos flexibles pueden contener, según sea el 31
sistema, desde varios centenares de miles de bytes hasta bastante más de un millón de bytes de datos. Los discos duros no pueden extraerse de los receptáculos de la unidad de disco, que contienen los dispositivos electrónicos para leer y escribir datos sobre la superficie magnética de los discos y pueden almacenar desde varios millones de bytes hasta algunos centenares de millones. La tecnología de CD-ROM, que emplea las mismas técnicas láser utilizadas para crear los discos compactos (CD) de audio, permiten capacidades de almacenamiento del orden de varios cientos de megabytes (millones de bytes) de datos. También hay que añadir los recientemente aparecidos DVD que permiten almacenar más de 4 Gb de información.
Dispositivos de salida Estos dispositivos permiten al usuario ver los resultados de los cálculos o de las manipulaciones de datos de la computadora. El dispositivo de salida más común es la unidad de visualización, que consiste en un monitor que presenta los caracteres y gráficos en una pantalla similar a la del televisor. Por lo general, los monitores tienen un tubo de rayos catódicos como el de cualquier televisor, aunque los ordena-dores pequeños y portátiles utilizan hoy pantallas de cristal líquido (LCD, acrónimo de Liquid Crystal Displays) o electroluminiscentes. Otros dispositivos de salida más comunes son las impresoras, que permiten obtener una copia impresa de la información que reside en los dispositivos de almacenamiento, las tarjetas de sonido y los módem. Un módem enlaza dos ordenadores transformando las señales digitales en analógicas para que los datos puedan transmitirse a través de las líneas telefónicas convencionales. 1.2.3.3 Características Vamos a señalar las funciones que debe realizar un computador para ejecutar trabajos de entrada/salida:
Direccionamiento o selección del dispositivo que debe llevar a cabo la operación de E/S.
Transferencia de los datos entre el procesador y el dispositivo (en uno u otro sentido).
Sincronización y coordinación de las operaciones.
32
Esta última función es necesaria debido a la deferencia de velocidades entre los dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la CPU (por ejemplo, suelen tener relojes diferentes). Se define una transferencia elemental de información como la transmisión de una sola unidad de información (normalmente un byte) entre el procesador y el periférico o viceversa. Para efectuar una transferencia elemental de información son precisas las siguientes funciones:
Establecimiento de una comunicación física entre el procesador y el periférico para la transmisión de la unidad de información.
Control de los periféricos, en que se incluyen operaciones como prueba y modificación del estado del periférico. Para realizar estas funciones la CPU gestionará las líneas de control necesarias.
Definiremos una operación de E/S como el conjunto de acciones necesarias para la transferencia de un conjunto de datos (es decir, una transferencia completa de datos). Para la realización de una operación de E/S se deben efectuar las siguientes funciones:
Recuento de las unidades de información transferidas (normalmente bytes) para reconocer el fin de operación.
Sincronización de velocidad entre la CPU y el periférico.
Detección de errores (e incluso corrección) mediante la utilización de los códigos necesarios (bits de paridad, códigos de redundancia cíclica, etc.)
Almacenamiento temporal de la información. Es más eficiente utilizar un buffer temporal específico para las operaciones de E/S que utilizan el área de datos del programa.
Conversión de códigos, conversión serie/paralelo, etc.
1.2.3.4 Funcionamiento Las capas que hacen parte de la Arquitectura del Sistema de E/S son las siguientes: Interfaz del Sistema Operativo para E/S Proporciona servicios de E/S síncrona y asíncrona a las aplicaciones y una interfaz homogénea para poderse comunicar con los manejadores de los dispositivos, ocultando detalles de bajo nivel. 33
Sistema de Archivos Proporciona una interfaz homogénea a través del sistema de archivos virtuales, para acceder a todos los Sistemas de Archivos que proporciona el Sistema Operativo (NTFS, FFS, SV, FAT, etc.). Permite acceder a los manejadores de dispositivos de almacenamiento de forma transparente, incluyendo en muchos casos, como el caso de NFS o NTFS, accesos remotos a través de redes. Gestor de Redes Proporciona una interfaz homogénea para acceder a todos los sistemas de red que proporciona el Sistema Operativo (TCP/IP, NOVEL, etc). Además, permite acceder a los manejadores de cada tipo de red particular de forma transparente. Gestor de Bloques Admite únicamente operaciones a nivel de bloques e interacciona con la cache de bloques para optimizar la E/S. Los Sistemas de Archivos y otros dispositivos lógicos con acceso al nivel de bloques traducen las operaciones del formato del usuario al de bloques que entiende el dispositivo y las pasan al gestor de bloques. Gestor de Cache Optimiza las E/S mediante la gestión de almacenamiento intermedio de memoria para dispositivos de tipo bloques. El tamaño de la cache de bloques varía dinámicamente en función de la memoria RAM disponible, y los bloques se escriben a los dispositivos según la política que se tenga definida. Manejadores de Dispositivos Proporcionan operaciones de alto nivel sobre los dispositivos y traduce en su ámbito interno las operaciones de control de cada dispositivo en particular. Los Manejadores se comunican con los dispositivos reales mediante puertos o zonas de memoria especiales.
34
35
Unidad 2 Comunicación interna en la computadora 2.1 Buses Un bus es el camino eléctrico común entre varios dispositivos. Los buses pueden clasificarse por su función. Pueden usarse internamente en la CPU para transportar datos a y de la ALU, o externos a la CPU para conectarla con la memoria o los dispositivos de E/S.22 Elemento responsable de establecer una correcta comunicación entre dos o más dispositivos del ordenador, una característica clave de un bus es que se trata un medio de transmisión compartido, es por lo tanto el dispositivo principal de comunicación. El bus, quizá fuera mejor decir los buses ya que existen varios con diversas funciones, es un circuito que conecta el procesador central con todo el resto de componentes de la computadora. El bus sirve para que le llegue al procesador la información y las solicitudes de trabajo, desde el exterior, y envíe hacia afuera los resultados del trabajo realizado.
22
Andrew S. Tanenbaum. Organización de computadoras. 4° Edición. Capitulo 3 . Pagina 156
36
2.1.1 Bus local Bus entre la CPU, la memoria y dispositivos periféricos que corre a la velocidad de la CPU. En un computador personal, el bus VL y el PCI suministran una transferencia de datos más rápida que el bus ISA tradicional. A partir del 386, cuando las velocidades de la CPU comenzaron a acelerarse enormemente, los computadores personales vienen con dos buses. La CPU tiene acceso a sus chips de memoria a través de una vía de acceso interna de 32 bits (63 bits con el Pentium), conocida como bus local, a la velocidad más alta del reloj de la CPU (25MHz, 33MHz, etc.). Sin embargo, tradicionalmente ha tenido acceso a sus dispositivos periféricos en forma más lenta, en un bus ISA de 16 bits sólo a 8MHz. Incluso en el bus EISA de 32 bits inherentemente más rápido corre en forma lenta para acomodar las tarjetas ISA, que se conectan a éste. Los estándares de bus VL de VESA y de bus local PCI de Intel se crearon para aprovechar las velocidades más altas de la CPU. El PC corre a 33MHz; el bus VL hasta a 40MHz; esperándose más altas velocidades. Las tarjetas base ISA y EISA se construyen ahora con ranuras adicionales para el bus VL o las tarjetas PCI, o ambos.
2.1.2 Bus de datos Un bus de datos es un dispositivo mediante el cual al interior de una computadora se transportan datos e información relevante. El bus de datos propiamente dicho, transporta información entre dispositivos de hardware como teclado, mouse, impresora, monitor y también de almacenamiento como el disco duro o memorias móviles. 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, "Peripheral Component Interconnect", 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. 2.1.3 Bus de direcciones El bus de direcciones es un canal del microprocesador totalmente independiente del bus de datos donde se establece la dirección de memoria del dato en tránsito. El bus de dirección consiste en el conjunto de líneas eléctricas necesarias para establecer una dirección. La capacidad de la memoria que se puede direccionar depende de la cantidad de bits que conforman el bus de direcciones, siendo 2 n (dos elevado a la ene) el tamaño máximo en bytes del banco de memoria que se podrá direccionar con n líneas. Por ejemplo, para direccionar una memoria de 256 bytes, son necesarias al menos 8 líneas, pues 2 8 = 256. Adicionalmente pueden ser necesarias líneas de control para señalar cuando la dirección está disponible en el bus. Esto depende del diseño del propio bus.
37
2.1.4 Bus de control El bus de control gobierna el uso y acceso a las líneas de datos y de direcciones. Como estas líneas están compartidas por todos los componentes, tiene que proveerse de determinados mecanismos que controlen su utilización. Las señales de control transmiten tanto órdenes como información de temporización entre los módulos. Mejor dicho, es el que permite que no haya colisión de información en el sistema. 2.1.5 Buses normalizados Todos los buses poseen unas especificaciones normalizadas, como son:- protocolos de transmisión de datos,- velocidades y temporización de las transferencias,- anchuras de los sub-buses,- y sistema físico de conexión (conectores estandarizados). Un bus debe cumplir las siguientes especificaciones: Nivel mecánico En el nivel mecánico deben definirse aspectos tales como el tipo de soporte, el número de hilos del bus, el tipo de conector, etc. Por ejemplo, en los buses para la conexión de placas impresas, hay que definir, entre otras cosas, la altura de las placas, los conectores y las posiciones de éstos, para garantizar la compatibilidad de las distintas placas. Nivel eléctrico El nivel eléctrico (u óptico, en el caso de emplear como soporte la fibra óptica), debe especificar el circuito equivalente de los dispositivos que se conectan a las líneas del bus, tanto de los emisores como de los receptores. También debe especificar las tensiones y corrientes utilizadas para establecer el valor de las señales. En este nivel, debe quedar definida la forma en la que los distintos dispositivos deben conectarse eléctricamente.
Nivel lógico Este nivel define estáticamente todas las líneas del bus, estableciendo las equivalencias entre los valores eléctricos de las señales y sus valores lógicos. Por ejemplo, se definirá que los hilos 0-7 su nivel alto (5V) equivale a un 1 lógico y los hilos 8-15 su nivel activo es a nivel bajo (0V). Nivel de temporización básica En este nivel se establecen los cronogramas para la realización de la operación más elemental del bus, esto es, de un ciclo. 38
Nivel de transferencia elemental En este nivel se establece el procedimiento empleado para realizar una transferencia de un dato por el bus. En el caso de un bus de ciclo completo, este nivel coincide con el anterior puesto que la temporización básica establece todas las condiciones necesarias para transferir un dato. Sin embargo, en el caso de un bus de ciclo partido, se especifican las ranuras que forman cada tipo de ciclo o transferencia. 2.2 Direccionamiento El direccionamiento de la memoria puede considerarse desde dos puntos de vista: físico y lógico. El primero se refiere a los medios electrónicos utilizados en el ordenador para acceder a las diversas posiciones de memoria. El segundo, a la forma en que se expresan y guardan las direcciones. En este epígrafe nos referiremos exclusivamente a la forma en que son tratadas las direcciones de memoria del PC. Advirtiendo desde ahora, que este asunto, como muchos otros, ha sufrido mutaciones a lo largo del tiempo, y que arrastra modos que solo tienen una justificación de tipo histórico, en razón de las características del hardware de los primeros PCs.
El sistema de numeración utilizado por los informáticos para representar las direcciones de memoria en el texto escrito no suele ser la decimal (como parecería razonable), sino el hexadecimal. La razón es que los números hexadecimales guardan cierta concordancia con las potencias de 2. Por ejemplo, un bus de direcciones de 8 bits puede acceder a 256 posiciones (en hexadecimal es el rango 00-FFh). En caso de direcciones de 16 bits, se puede acceder 65.536 posiciones (es el rango 0000-FFFFh). El bus de direcciones del PC XT, que tiene 20 bits, las posibilidades son 1.048.576 (es el rango 00000-FFFFFh). Como veremos a continuación, puede utilizarse una doble notación: Direcciones absolutas, indicadas por un hexadecimal de cinco dígitos, en el rango 00000-FFFFFh, o en direcciones segmentadas, que utiliza dos grupos de cuatro dígitos hexadecimales. 2.2.1 Modo real El modo de direccionamiento real solo puede direccionarse 1MB de memoria, del 00000 al FFFFFh. El procesador solo puede ejecutar un programa a la vez, pero puede interrumpir en forma momentánea ese programa para procesar las solicitudes (interrupciones) de los periféricos. Los programas de aplicación pueden leer y modificar cualquier área de la RAM y pueden leer pero no modificar cualquier área de la ROM. 23 La solución consistió en expresar las direcciones mediante dos palabras de 16 bits, denominadas desplazamiento y segmento que, por consiguiente, pueden ser representadas mediante un hexadecimal de cuatro cifras en el rango 0000-FFFFh. Estas dos palabras pueden ser traducidas a una dirección de 20 bits mediante la operación 23
Kip R. Irvine. Lenguaje ensamblador para computadoras basadas en Intel. 5° Edición. Capitulo 2. Pagina 3 9
39
denominada suma con desplazamiento. Por ejemplo, suponiendo que el desplazamiento y el segmento fuesen respectivamente ABCDh y E1FAh, la forma de obtener la dirección resultante es como sigue: Una de las palabras, el desplazamiento, se desplaza una posición añadiéndole un cero a la derecha (equivale a multiplicarla por 16, ya que las direcciones se expresan en hexadecimal). En nuestro caso, si el desplazamiento es ABCDh resulta ABC D0h?. Puesto que inicialmente es un hexadecimal de 4 cifras (ABCD en nuestro caso), el desplazamiento la transforma en un hexadecimal de 5 cifras (ABCD0). El valor obtenido se suma con el valor del segmento (E 1 F Ah), así que la dirección resultante, sería 69ECAh. Para distinguirla de la anterior, esta última forma se denomina dirección absoluta. Modelos de memoria DOS Los programas DOS requieren la existencia de una zona contigua de memoria convencional (preferiblemente de 640 KB), aunque en realidad este espacio debe ser compartido con la tabla de vectores de interrupción; área de datos de la ROM BIOS ( H4) y buena parte del propio Sistema Operativo DOS. Por ejemplo, controladores de dispositivos (los famosos “device=…” del fichero CONFIG.SYS). Como consecuencia de
la escasez de espacio, se desarrollaron técnicas para permitir que controladores de dispositivos y TSRs [2] se cargaran en otras zonas de memoria. Generalmente este tipo
de instrucciones de carga se sitúan en los ficheros CONFIG.SYS y AUTOEXEC.BAT, y aprovechan que no todo el espacio de memoria superior es utilizado por el Sistema, de modo que existen zonas ociosas en las que podían situarse los citados controladores. Memoria expandida Muy pronto se comprobó que el Megabyte de memoria inicialmente previsto era claramente insuficiente, por lo que se arbitraron diversos tipos de soluciones. Los ingenieros de software, en cooperación con los de hardware, debieron hacer verdaderos juegos malabares para tratar de suplir la cortedad de miras de los diseñadores del PC. Poco más tarde Quadram, Ahston-Tate y el fabricante de tarjetas de memoria AST publicaron otra más flexible denominada EEMS (“Enhanced EMS”); además, la
especificación LIM fue perfeccionada para proporcionar 32 MB adicionales mediante una combinación hardware/software. El procedimiento consistía en añadir al ordenador una placa adicional de memoria de conmutación de bancos de hasta 32 MB, que era conducida por un “driver” adecuado, el EMM (“Expanded Memory Manager”) cargado por
el CONFIG.SYS. El truco consiste en que en un área en desuso de la memoria superior , se sitúa una zona 64 KB, denominada marco de página, en la que existen 4 secciones de 16 KB (ventanas) que se emplean como punteros a una página más grande en la memoria de conmutación de bancos. Los programas podían utilizar segmentos de datos muy grandes ya que el gestor de memoria EMM se encargaba de traer automáticamente a la “ventana” la zona necesaria en cada momento. 40
2.2.2 Modo protegido En el modo protegido, el procesador puede ejecutar varios programas al mismo tiempo. A cada proceso le asigna un total de 4GB de memoria. A cada programa se le puede asignar su propia área reservada de memoria, y los programas no pueden acceder de manera accidental al código y los datos de los demás programas. 24 La especificación EMS de Lotus/Intel/Microsoft, permitía manejar grandes cantidades de datos, pero no resolvía el problema de grandes cantidades de código, ya que el segmento de código no podía manejarse de esta forma. Esto presentaba problemas no solo para programas grandes, sino para cualquier intento de multiprogramación, cuando varios programas deben coexistir en memoria. Como siempre, la solución vino de la mano de otro avance tecnológico; en este caso, la aparición del procesador Intel 80286, que en 1982 inició la era del PC AT. Este micro permite un acceso a memoria que recuerda vagamente la especificación EMS, pero de forma nativa, ya que los mecanismos están incluidos en el procesador. Como la política de Intel ha sido mantener compatibilidad con los micros anteriores, el 80286 podía trabajar en modo real, imitando el funcionamiento del 8088 , mientras que la nueva forma se denominó modo protegido. El modo protegido utiliza los registros de segmento como punteros a unos nuevos registros de dirección de 24 bits denominados tablas de descripción (“descriptor tables”),
que permiten acceder a un máximo de 224 (16 M Bytes) de memoria física, de forma que los registros de segmento son selectores que marcan el inicio de una dirección de 24 bits. La memoria que se hacía accesible mediante este sistema se denominó memoria extendida, para distinguirla de la antigua EMS . La posterior introducción del 80386, con registros de 32 bits, permitió direccionar hasta 232 (4 G Bytes) de memoria externa. Los nuevos micros incluyeron otras mejoras que permitían al Sistema Operativo un funcionamiento más cómodo y seguro de las aplicaciones cuando operaba en modo protegido. Los mecanismos pertinentes estaban incluidos en el hardware o al menos este proporcionaba recursos al SO para realizarlos cómodamente, aunque desde luego, para sacar provecho de estas mejoras el Sistema debía estar preparado ex profeso. El DOS no podía utilizarlas, sí en cambio los sistemas más avanzados del momento, como OS/2, Unix o Windows. Manejo de memoria virtual Memoria virtual Esta técnica consiste en hacer creer al programa que dispone de más memoria que la físicamente disponible en RAM. Este artificio tiene sentido porque en ese momento (y actualmente), la memoria extendida era mayor que la físicamente disponible en muchos sistemas, además el disco duro era estándar en todos los equipos.
24
Kip R. Irvine. Lenguaje ensamblador para computadoras basadas en Intel. 5° Edición. Capitulo 2. Pagina 39
41
Esta RAM ficticia se conoce como memoria virtual; una simulación conocida de antiguo en el mundo de los mainframes, que fue introducida en la informática personal a partir del 80286. Este procesador ya disponía de un controlador hardware para este menester, de forma que su manejo no significaba una gran sobrecarga para el Sistema. Su funcionamiento se basa en que cuando una aplicación necesita más espacio y la memoria física está agotada, el controlador de memoria virtual proporciona espacio auxiliar utilizando un fichero de intercambio (“Swap file”) situado en memoria externa (disco duro
generalmente H2), donde se almacena la información que no cabe en la RAM. Además de facilitar la apariencia de más RAM que la físicamente disponible, este mecanismo permite que diversas aplicaciones compartan la misma memoria física. Aunque para ello se requieran constantes maniobras de carga y descarga (“swapping”) de
trozos del fichero de intercambio a memoria, por lo que el rendimiento global del sistema se resiente si la desproporción entre el fichero de intercambio y la RAM es muy notable. 2.2.3 Modo real virtual El modo real (también llamado modo de dirección real en los manuales de Intel) es un modo de operación del 80286 y posteriores CPUs compatibles de la arquitectura x86. El modo real está caracterizado por 20 bits de espacio de direcciones segmentado (significando que solamente se puede direccionar 1 MB de memoria), acceso directo del software a las rutinas del BIOS y el hardware periférico, y no tiene conceptos de protección de memoria o multitarea a nivel de hardware. Todos los CPUs x86 de las series del 80286 y posteriores empiezan en modo real al encenderse el computador; los CPUs 80186 y anteriores tenían solo un modo operacional, que era equivalente al modo real en chips posteriores. 25 La arquitectura 286 introdujo el modo protegido, permitiendo, entre otras cosas, la protección de la memoria a nivel de hardware. Sin embargo, usar estas nuevas características requirió instrucciones de software adicionales no necesarias previamente. Puesto que una especificación de diseño primaria de los microprocesadores x86 es que sean completamente compatibles hacia atrás con el software escrito para todos los chips x86 antes de ellos, el chip 286 fue hecho para iniciarse en modo real - es decir, en un modo que tenía apagadas las nuevas características de protección de memoria, de modo que pudieran correr sistemas operativos escritos para microprocesadores más viejos. Al día de hoy, incluso los más recientes CPUs x86 se inician en modo real al encenderse, y pueden correr el software escrito para cualquier chip anterior. Los sistemas operativos DOS (MS-DOS, DR-DOS, etc.) trabajan en modo real. Las primeras versiones de Microsoft Windows, que eran esencialmente un shell de interface gráfica de usuario corriendo sobre el DOS, no eran realmente un sistema operativo por sí mismas, corrían en modo real, hasta Windows 3.0, que podía correr tanto en modo real como en modo protegido. Windows 3.0 podía corr er de hecho en dos “sabores” de
25
Kip R. Irvine. Lenguaje ensamblador para computadoras basadas en Intel. 5° Edición. Capitulo 2. Pagina 3 9
42
modo protegido - el “modo estándar”, que corría usando modo protegido, y el “modo mejorado 386″, que además usaba direccionamiento de 32 bits y por lo tanto no corría en
un 286 (que a pesar de tener modo protegido, seguía siendo un chip de 16 bits; los registros de 32 bits fueron introducidos en la serie 80386). El Windows 3.1 removió el soporte para el modo real, y fue el primer ambiente operativo de uso masivo que requirió por lo menos un procesador 80286 (no contando con el Windows 2.0 que no fue un producto masivo). Casi todos los sistemas operativos modernos x86 (Linux, Windows 95 y posteriores, OS/2, etc.) cambian el CPU a modo protegido o a modo largo en el arranque. 2.3 Temporización Los temporizadores están aplicación análoga mas funcionamiento se basa normalmente asociados a circuitos
presentes en casi todos los circuitos electrónicos y son la común de la electrónica de control. Su principio de en el tiempo de descarga de los condensadores (C), una resistencia de carga (R), en lo que se conoce como RC.
Al aplicar momentáneamente un voltaje DC al circuito RC, el condensador adquirirá una carga por medio de la R asociada. El tiempo que dure en descargarse este voltaje dependerá principalmente de la capacidad en Faradios del C, y la impedancia de salida del circuito. Esto quiere decir que a mayor valor en Faradios del C, mayor tiempo tomará en descargarse; este tiempo varía proporcionalmente también con la impedancia de salida del circuito RC, lo que aplica si el circuito RC tiene que alimentar en su salida elementos electrónicos como LED o transistores etc., etc.
2.3.1 Reloj de Sistema El reloj del sistema es un pulso electrónico usado para sincronizar el procesamiento, entre cada pulso puede haber una sola acción. Los pulsos ó ciclos se miden en Hertz, dependiendo de la capacidad de este, pueden ser MegaHerz (MHz) ó GigaHerz (GHZ). Un Hertz es un ciclo por segundo, y mientras más rápido son los ciclos más instrucciones se ejecutan y por lo tanto el equipo es mas rápido, pero también hay que tomar en cuenta el tamaño del bus. El reloj de una computadora se utiliza para dos funciones principales:
Para sincronizar las diversas operaciones que realizan los diferentes subcomponentes del sistema informático. Para saber la hora. El reloj físicamente es un circuito integrado que emite una cantidad de pulsos por segundo, de manera constante.
Un reloj del sistema reside en la tarjeta madre. Este envía una señal a todos los componentes de la computadora en ritmo, como un metrónomo. Generalmente, este ritmo
43
se genera como una onda cuadrada, como la siguiente: Sin embargo, en realidad la señal de reloj real, cuando se ve con un osciloscopio, se ve más como el ejemplo que se da a continuación. Cada onda en esta señal mide un ciclo de reloj. Si el reloj del sistema funciona a 100MHZ, esto significa que hay 100 millones de ciclos del reloj en un segundo. Cada acción en la computadora se marca con un tiempo mediante estos ciclos del reloj y para realizarse, cada acción toma cierto número de ciclos del reloj. Cuando se procesa una solicitud de la memoria, por ejemplo, el controlador de la memoria puede informar al procesador que los datos requeridos llegarán en seis ciclos de reloj. Es posible que el CPU y otros dispositivos funcionen más rápidos o más lentos que el reloj del sistema. Los componentes de distintas velocidades requieren un factor de multiplicación o un factor de división para sincronizarlos. Por ejemplo, cuando un reloj del sistema de 100MHZ interactúa con un CPU de 400MHZ, cada dispositivo entiende que cada ciclo de reloj del sistema es igual a cuatro ciclos de reloj del CPU; éstos utilizan un factor de cuatro para sincronizar sus acciones. Mucha gente asume que la velocidad del procesador es la velocidad de la computadora. Sin embargo, la mayor parte del tiempo, el bus del sistema y otros componentes funcionan a distintas velocidades 2.3.2 Reset del Sistema Los reset y las operaciones de interrupción cargan el contador de programa con un vector que apunta a la nueva localidad desde la cual las instrucciones serán buscadas (fetch). Un reset detiene inmediatamente la ejecución de la actual instrucción y fuerza al contador de programa a una dirección de inicio conocida. Los registros internos y bits de control son inicializados para que la MCU pueda reanudar la ejecución de instrucciones. Durante el reset, el sistema de temporizador es inicializado en el conteo de $0000. Los bits de pre escala son borrados, y todas las salidas de los registros de salida de comparación son iniciados en $FFFF. Todas las entradas de los registros de captura son indeterminadas después del reset. El registro mascarable de comparación de salida (OC1M) es limpiado de modo que el comparador OC1 no afecta ninguna terminal de E/S. El reset del sistema iniciar el equipo o forma de mandar al equipo a su estado inicial. Fuentes posibles del reset:
RESET DE ALIMENTACION (POR): Es una transición positiva que genera un reset de alimentación y es usada solo en condiciones de encendido, no puede emplearse para reducciones en el voltaje de fuentes de alimentación. Por ejemplo: cuando se mantiene presionada la tecla de encendido por más de30 segundos. RESET EXTERNO (RESET): Sube un nivel lógico 1 en menos de 2 ciclos de reloj, después que un dispositivo interno lo desactiva cuando la condición de reset es detectada, la terminal reset, es dirigida a 0 por un dispositivo interno en4 ciclos de reloj, entonces se desactiva. Si la terminal después de 2 ciclos de reloj tiene un valor 0 la CPU asume que ocurrió un reset externo, si la terminal es alta esto 44
indica que el reset fue iniciado internamente por el sistema o el monitor de reloj. Por ejemplo: cuando se presiona directamente el botón de reset que algunos ordenadores tienen. RESET DE NO ADECUADA OPERACIÓN DE LA COMPUTADORA (COP):La arquitectura MCU incluye un sistema, este tipo de reset (COP) para proteger contra las fallas del software cuando el COP es habilitado el software es responsable de guardar un temporizador. Por ejemplo: cuando se reinicia el equipo por un error de software RESET DE MONITOR DE RELOJ: Esta basado en un conjunto interno de resistor- capacitor que produce una demora de tiempo sin ningún flanco de reloj, el monitor de reloj puede generar opcionalmente un reset del sistema, la función del monitor de reloj puede ser habilitada o deshabilitada por el bit de control. Por ejemplo: cuando el ciclo de reloj disminuye debido a la fuente de energía
2.3.3 Estados de espera Los estados de espera se refieren a extender la longitud de un ciclo para sincronizar el bus del sistema, con algún otro dispositivo más lento, o en algunos casos alreves. La señal READY del bus se puede usar para extender la longitud del ciclo del bus para igualar una tarjeta lenta o parar el bus del sistema hasta que se sincronice con el ciclo de la tarjeta. Cuando se conectan tarjetas de la PC, un problema común es igualar la velocidad de los ciclos del bus con la de las tarjetas. Es común que una tarjeta sea más lenta que el bus. Así, El bus bus de la PC está está diseñado diseñado para resolver resolver este problema. problema. La señal señal ready del del bus se puede usar para extender la longitud del ciclo del bus para igualar una tarjeta lenta o para el bus del sistema hasta que se sincronice con el ciclo de la tarjeta. Los ciclos del bus 8088 normalmente son de cuatro pulsos y se describen por T1hasta T4. En algunos ciclos el hardware dela PC, automáticamente inserta un pulso ocioso extra llamado TW. La señal ready se usa para insertar estados nuevos o adicionales de espera. Debido a que los diferentes ciclos del bus requieren distintos tiempos, la señal ready se debe controlar de manera diferente. El hardware de la PC no inserta estados de espera en los ciclos de lectura o escritura a memoria, sino que esto lo hace la tarjeta usando la señal ready. Si se introduce un estado de espera, entonces el tiempo normal de acceso a la memoria (que es de 460 nseg con un reloj de 5 MHz) se alarga por un periodo de reloj (200 nseg) hasta 660 nseg. 2.4 Interrupciones de hardware Debido a que el procesador no puede procesar múltiples datos al mismo tiempo (procesa un dato a la vez) el sistema de multitareas es en realidad una alternancia de fragmentos de instrucciones de muchas tareas diferentes. Es posible suspender momentáneamente un programa que se estaba ejecutando mediante una interrupción que dure el tiempo que 45
lleva una rutina de servicios de interrupción. Luego, el programa interrumpido puede continuar ejecutándose. Existen 256 direcciones de interrupción diferentes. Una interrupción se realiza cuando un componente del hardware del ordenador requiere la interrupción del hardware. Un ordenador posee muchos periféricos. Generalmente, necesitan utilizar recursos del sistema, aunque sólo sea para comunicarse con éste. Cuando necesitan un recurso, envían una petición de interrupción al sistema para que éste les preste atención. Cada periférico cuenta con un número de interrupción llamado IRQ (Interruption request [Petición de interrupción] ). ). Una manera de poder entender este proceso es imaginar a cada periférico tirando de una "cuerda" conectada a una campana para indicarle al ordenador que requiere de su atención. De hecho, la "cuerda" es una línea física que conecta la ranura a la placa madre. Para una ubicación ISA de 8 bits, por ejemplo, hay 8 líneas IRQ (Interruption Request [Petición de Interrupción]) que conectan la ranura ISA de 8 bits a la placa madre, IRQ 0 a IRQ7. interrupciones" que verifica qué IRQ Estas IRQ son controladas por un " controlador de interrupciones" tiene mayor prioridad. Para las ranuras de 16 bits, se agregan las IRQ que van desde la 8 a la 15, las cuales requieren de un segundo controlador de interrupciones. La conexión entre los dos grupos de interrupciones se realiza por medio de la IRQ 2 que está conectada a la IRQ 9 (denominada " cascada"). cascada"). El término "cascada" se puede pensar como una manera de "insertar" las IRQ del 8 al 15 entre las IRQ del 1 al 3:
46
Dado que la prioridad se otorga a medida que va aumentando el orden en el número de IRQ, y debido a que las IRQ del 8 al 15 se insertan entre las IRQ del 1 al 3, el orden de prioridad es el siguiente: 0 > 1 > 8 > 9 > 10 > 11 > 12 > 13 > 14 > 15 > 3 > 4 > 5 > 6 > 7
Interrupciones Hardware Los IRQ o interrupt request (Pedido de Interrupción), son las notificaciones de las interrupciones enviadas desde los dispositivos hardware a la CPU, en respuesta a la IRQ, la CPU salta a una dirección – una rutina de servicio de interrupción (ISR), comúnmente llamada Interrupt handler (Manejador de interrupciones) - Que se encuentra como una función dentro del software manejador de ese dispositivo formando parte del núcleo. Así, una función manejadora de interrupciones es una función del núcleo que ejecuta el servicio de esa interrupción. Los IRQ se encuentran numerados, y cada dispositivo hardware se encuentra asociado a un número IRQ. En la arquitectura IBM PC y compatibles, por ejemplo, IRQ 0 se encuentra asociado al reloj o temporizador, el cual genera 100 interrupciones por segundo, disquete el 6, los discos IDE la 14 y 15. Se puede compartir un IRQ entre varios dispositivos. La siguiente figura, muestra las interrupciones hardware y su correspondiente puerto en el Controlador Programable de Interrupciones (PIC). No se deben confundir los números IRQ entradas al controlador con los números de la interrupción que son las entradas en la tabla de interrupciones. Los PIC se pueden programar para generar diversos números de interrupción para cada IRQ. Los Controladores también controlan la prioridad de las interrupciones. Por ejemplo, el reloj (en IRQ 0) tiene una prioridad más alta que el teclado (IRQ 1). Si el procesador está atendiendo una interrupción del reloj, el PIC no generará una interrupción para el teclado hasta que ISR del reloj reajusta el PIC. Por otra parte, el reloj puede interrumpir ISR del teclado. El PICs se puede programar para utilizar una variedad de esquemas de la prioridad, pero no se suele hacer esto. Se debe de tener en cuenta que el IRQ 2 del primer PIC, valida o invalida las entradas del Segundo PIC. Algunas interrupciones interrupciones son son fijadas por convenio convenio en la configuración configuración del del PC, así es que los los manejadores de los dispositivos solicitan simplemente la interrupción cuando se inicializan. Por ejemplo esto es lo que lo hace el manejador de disquete, solicita siempre la IRQ 6. Interrupción IRQ Descripción 00H - división por cero o desbordamiento
02H NMI enmascarable)
(interrupción
no-
04H - desbordamiento (EN)
47
08H 0 Temporizador del sistema 09H 1 Teclado 0AH 2 Interrupción del segundo PIC 0BH 3 COM2 0CH 4 COM1 0DH 5 LPT2 0EH 6 disquetes 0FH 7 LPT1 70H 8 Reloj 71H 9 I/o general 72H 10 I/o general Interrupciones Hardware 73H 11 I/o general 74H 12 I/o general 75H 13 Coprocesador 76H 14 Disco duro 77H 15 I/o general
48
Estructuras de datos para soportar el sistema de interrupciones hardware Las estructuras de datos del sistema de interrupciones: irqaction almacena la dirección de la función de manejo de interrupciones. irq_chip contiene las funciones que manejan un controlador de interrupciones particular, es dependiente de la arquitectura. irq_desc vector con una entrada para cada una de las interrupciones que pueden ser atendidos. 2.5 Acceso directo a memoria (DMA) Los periféricos con frecuencia necesitan contar con "memoria prestada" del sistema, la cual utilizarán como búfer. Este búfer será un área de almacenamiento temporal que permite que se escriban rápidamente datos de entrada y salida. Para afrontar esta necesidad, se definió un canal de acceso directo a la memoria denominada DMA (Direct Memory Access por sus siglas en inglés). El canal DMA es un acceso a una ubicación RAM en el ordenador, al que una "Dirección de Inicio RAM" y una "Dirección de Fin" hacen referencia. Este método permite que un periférico utilice canales especiales que le den acceso directo a la memoria, sin involucrar al microprocesador. Esto permite que el microprocesador se libere de la necesidad de hacer este trabajo. Un ordenador tipo PC cuenta con 8 canales DMA. Los primeros cuatro canales DMA poseen 8 bits mientras que los DMA que van del cuarto al séptimo poseen 16 bits. Normalmente, los canales DMA se asignan de la siguiente manera:
DMA0 - libre DMA1 - (tarjeta de sonido)/ libre DMA2 - controlador de disquetes DMA3 - puerto paralelo (puerto de la impresora) DMA4 - controlador del acceso directo a la memoria (redirigido a DMA0) DMA5 - (tarjeta de sonido)/ libre DMA6 - (SCSI)/ libre DMA7 - disponible
Direcciones de base Debido a que a veces los periféricos necesitan intercambiar información con el sistema, se les asignan direcciones de memoria para enviar y recibir datos. Estas direcciones se denominan "direcciones de base" (los siguientes términos también se usan algunas veces:
49
"puertos de entrada/salida", "puertos de E/S", "dirección E/S", "direcciones de puertos de E/S", "puertos de base", o "Direcciones de Entrada/Salida"). Por intermedio de esta dirección de base los periféricos se pueden comunicar con el sistema operativo. Por consiguiente, sólo puede haber una dirección de base por periférico. A continuación, se podrá ver una lista de algunas direcciones de base comunes:
060h - teclado
170h/376h - controlador IDE secundario
1F0h/3F6h - controlador IDE primario
220h - tarjeta de sonido
300h - tarjeta de red
330h - tarjeta del adaptador SCSI
3F2h - controlador de la unidad de disquete
3F8h - COM1
2F8h - COM2
3E8h - COM3
2E8h - COM4
378h - LPT1
278h - LPT2
Sin embargo, toda esta información es generalmente irrelevante para el usuario medio, que no necesita preocuparse por ésta.
Una interrupción es una línea que conecta a un periférico con el procesador. También puede ser una interrupción del hardware, cuando un componente del hardware de la PC así lo requiere. Por ejemplo, esto sucede cuando se presiona una tecla y el teclado quiere que el procesador lo note. Sin embargo, no se pueden solicitar las 256 interrupciones como interrupciones del hardware. Los diferentes periféricos siempre solicitan interrupciones específicas. Por este motivo, cuando instale y configure tarjetas de expansión, deberá asegurarse de que dos periféricos deferentes no usen la misma interrupción. 50
De hecho, si dos periféricos poseen la misma IRQ, el sistema no sabrá a qué hardware deberá darle el control...el sistema se bloqueará o no funcionará normalmente... generando lo que se denomina conflicto con el hardware. Un conflicto con el hardware no sólo se produce cuando dos periféricos sufren la misma interrupción del hardware. También puede generarse un conflicto si dos periféricos tienen la misma dirección de entrada/salida o si se les asignan los mismos canales DMA. El acceso directo a memoria (DMA, del inglés Direct Memory Access) permite a cierto tipo de componentes de ordenador acceder a la memoria del sistema para leer o escribir independientemente de la CPU principal. Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido. DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones. Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la CPU inicie la transferencia, la transferencia se lleva a cabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria desde una memoria externa a una interna más rápida. Tal operación no ocupa el procesador y como resultado puede ser planificado para efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que requieran muchos recursos. Cabe destacar que aunque no se necesite a la CPU para la transacción de datos, sí que se necesita el bus del sistema (tanto bus de datos como bus de direcciones), por lo que existen diferentes estrategias para regular su uso, permitiendo así que no quede totalmente acaparado por el controlador DMA.
51
52
Unidad 3 Selección de componentes y ensamble de equipos de cómputo 3.1 Chipset Es el conjunto de circuitos integrados diseñados con base a la arquitectura de un procesador (en algunos casos diseñados como parte integral de esa arquitectura), permitiendo que ese tipo de procesadores funcionen en una placa base. Sirven de puente de comunicación con el resto de componentes de la placa, como son la memoria, las tarjetas de expansión, los puertos USB, ratón, teclado, etc. No podemos hablar de las placas base modernas sin hablar de los chipsets. El chipsets la placa base; por lo tanto, cualquiera de las dos placas con los chipsets mismo ofrecen básicamente el mismo nivel de rendimiento y características. Dependiendo del modelo, el chipset por lo general contiene la interfaz del bus del procesador (denominado frontal bus o FSB), controladores de memoria, los controladores de bus, controladores de E / S, y mucho más. Todos los circuitos primarios de la placa base están contenidas en el chipset. Si el procesador de su PC es como el motor de su coche, el chipset representa la transmisión y el chasis. Es el marco en el que el motor descansa y es su conexión con el mundo exterior. El chipset es el marco, suspensión, dirección, ruedas y los neumáticos, la transmisión, eje de transmisión, diferencial y frenos. El chasis de su coche es lo que hace el la potencia al suelo, permitiendo que el vehículo arranque, parada, y la esquina. En el PC, representa el conjunto de chips la conexión entre el procesador y todo lo demás. El procesador no se puede hablar con el adaptador tableros, dispositivos de memoria (en algunos modelos), y así sucesivamente, sin pasar por el chipset. Si usted piensa del procesador como el cerebro, el chipset es la columna vertebral y sistema nervioso central. Debido a que el chipset controla la interfaz o conexión entre el procesador y todo a punto otra cosa, el conjunto de chips acaba dictando qué tipo de procesador que tiene, lo rápido que los autobuses ejecutar, y en algunos casos, la velocidad, el tipo y cantidad de memoria que puede utilizar. De hecho, el conjunto de chips podría ser el componente más importante en su sistema, posiblemente incluso más importante que el procesador.
53
Evolución del Chipset Cuando IBM creó la PC madre en primer lugar, utiliza varios chips discretos (por separado) para completar la diseño. Además el procesador y coprocesador matemático opcional, muchos otros componentes se requiere para completar el sistema. Estos otros componentes incluyen elementos tales como el generador de reloj, el controlador del bus, temporizador del sistema, interrupciones y DMA controladores, RAM CMOS, y el controlador del teclado. Además, muchos otros chips lógicos simples se utilizaron para completar el circuito de placa madre, además, por supuesto, cosas como el procesador real, coprocesador matemático (unidad de punto flotante), la memoria, y en otras partes. Tabla se enumeran todos los componentes del chip principal utilizado en el original de la PC / XT y AT placas base. Función del Chip Procesador Coprocesador Matemático Generador del reloj Controlador de bus Sistema de temporizador Interrupción del controlador de bajo orden Interrupción del controlador de alto orden Controlador DMA de orden inferior Controlador DMA de orden superior CMOS RAM/ Reloj en tiempo real Controlador de teclado
PC/XT Versión 8088 8087 8284 8288 8243
AT Versión 80286 80287 82284 82288 8254
8259
8259
-
8259
8237
8237
-
8237
-
MC146818
8255
8042
Las placas base modernas suelen incluir dos integrados, denominados Norte y Sur, y suelen ser los circuitos integrados más grandes después del microprocesador. El chipset determina muchas de las características de una placa base y por lo general la referencia de la misma está relacionada con la del chipset. El Chipset es el que hace posible que la placa base funcione como eje del sistema, dando soporte a varios componentes e interconectándolos de forma que se comuniquen entre ellos haciendo uso de diversos buses. Es uno de los pocos elementos que tiene conexión directa con el procesador, gestiona la mayor parte de la información que entra y sale por el bus principal del procesador, del sistema de vídeo y muchas veces de la memoria RAM.
54
En el caso de los computadores PC, es un esquema de arquitectura abierta que establece modularidad: el Chipset debe tener interfaces estándar para los demás dispositivos. Esto permite escoger entre varios dispositivos estándar, por ejemplo en el caso de los buses de expansión, algunas tarjetas madre pueden tener bus PCI-Express y soportar diversos tipos de tarjetas con de distintos anchos de bus (1x, 8x, 16x). En el caso de equipos portátiles o de marca, el chipset puede ser diseñado a la medida y aunque no soporte gran variedad de tecnologías, presentará alguna interfaz de dispositivo. La mayoría de los chipsets anteriores de Intel (y, hasta hace unos años, prácticamente todos los chipsets no Intel) se rompen en una arquitectura de múltiples niveles que incorpora lo que se conoce como el Norte y los componentes de South Bridge, así como un Súper I / O chip:
El North Bridge, llamado así porque es la conexión entre el procesador de alta velocidad bus AGP y el más lento y los buses PCI. El Puente Norte es lo que el chipset es el nombre de, lo que significa que, por ejemplo, lo que llamamos el chipset 440BX se deriva del hecho de que el Puente real del Norte de chips número para ese conjunto es 82443BX. El South Bridge, llamado así porque es el puente entre el bus PCI (66/33MHz) y aún más lento el bus ISA (8 MHz). El Super I / O chip es un chip separado conectado al bus ISA que no es considerada parte del chipset y, a menudo proviene de un tercero, como National Semiconductor o Standard Microsystems Corp. (SMSC). El Super I / O chip contiene comúnmente utilizados periféricos todos los elementos se combinan en un solo chip. Tenga en cuenta que los chips más recientes de Puente Sur incluyen ahora Super I / O funciones (chips que se conoce como Super-Sur chips de puente), por lo que la mayoría de los últimos madre ya no incluyen una por separado Super I / O chip.
55
Un socket típico de una placa base (AMD Athlon / Duron) con la ubicación de los componentes
El puente del norte se refiere a veces como el PAC (PCI / AGP Controller). Básicamente, es el principal componente de la placa base y es el circuito de la única tarjeta madre, además del procesador que normalmente funciona a la placa base completa (del bus del procesador) de velocidad. Chipsets más modernos utilizan un solo chip del Norte Puente, sin embargo, algunos de los más viejos en realidad consistía en un máximo de tres chips individuales para compensar la completa North Bridge circuito. El Puente del Sur es el componente de menor velocidad en el chipset y siempre ha sido un solo individuo chip. El Puente del Sur es un componente un tanto intercambiable en que diferentes chipsets (Chips Norte de conexión) a menudo están diseñados para utilizar el mismo componente de South Bridge. Este modular diseño de 56
los chips permite un menor coste y mayor flexibilidad para los fabricantes de placas base. Del mismo modo, muchos vendedores de producir varias versiones de pin compatible con chips puente sur con diferentes características que permiten la fabricación más flexible y de menor costo y el diseño. El puente sur conecta a los 33 MHz de bus PCI y que contiene la interfaz o puente para el bus ISA de 8 MHz (si existe). También por lo general contiene dos ATA / IDE interfaces de controlador de disco duro, una o más interfaces USB, y en Diseños posteriores, incluso la CMOS RAM en tiempo real y funciones de reloj. En los diseños más antiguos, el South Bridge contiene todos los componentes que forman el bus ISA, incluyendo la interrupción y los controladores de DMA. La tercera componente de la placa, el Super I / O chip, está conectado a la 8MHz bus ISA o bajo la pin (LPC) de bus y contiene todos los periféricos estándar que se construyen en una placa base. Para ejemplo, la mayoría de los Super I / O chips contienen los puertos serie, puerto paralelo, controlador de la disquetera, y el teclado / ratón de la interfaz. Opcionalmente, se puede contener la memoria RAM CMOS / reloj, los controladores IDE, y juego de interfaz de puerto. Sistemas que integren puertos IEEE 1394 y SCSI utilizan chips separados para estos tipos de puertos. La mayoría de placas base que utilizan los últimos Norte / Sur diseños chipset Puente de incorporar un Super-Puente sur, que incorpora el puente sur y funciones Super I / O en un solo chip.
57
3.1.1 CPU La unidad central de procesamiento, UCP o CPU (por el acrónimo en inglés de central Procesing unit), o simplemente el procesador o microprocesador, es el componente del computador y otros dispositivos programables, que interpreta las instrucciones contenidas en los programas y procesa los datos. Los CPU proporcionan la característica fundamental de la computadora digital (la programabilidad) y son uno de los componentes necesarios encontrados en las computadoras de cualquier tiempo, junto con el almacenamiento primario y los dispositivos de entrada/salida. Se conoce como microprocesador el CPU que es manufacturado con circuitos integrados. Desde mediados de los años 1970, los microprocesadores de un solo chip han reemplazado casi totalmente todos los tipos de CPU, y hoy en día, el término "CPU" es aplicado usualmente a todos los microprocesadores. Los primeros CPU fueron diseñados a la medida como parte de una computadora más grande, generalmente una computadora única en su especie. Sin embargo, este costoso método de diseñar los CPU a la medida, para una aplicación particular, ha desaparecido en gran parte y se ha sustituido por el desarrollo de clases de procesadores baratos y estandarizados adaptados para uno o muchos propósitos. Esta tendencia de estandarización comenzó generalmente en la era de los transistores discretos, computadoras centrales, y microcomputadoras, y fue acelerada rápidamente con la popularización del circuito integrado (IC), éste ha permitido que sean diseñados y fabricados CPU más complejos en espacios pequeños (en la orden de milímetros). Tanto la miniaturización como la estandarización de los CPU han aumentado la presencia de estos dispositivos digitales en la vida moderna mucho más allá de las aplicaciones limitadas de máquinas de computación dedicadas. Los microprocesadores modernos aparecen en todo, desde automóviles, televisores, neveras, calculadoras, aviones, hasta teléfonos móviles o celulares, juguetes, entre otros. Operación del CPU La operación fundamental de la mayoría de los CPU, es ejecutar una secuencia de instrucciones almacenadas llamadas "programa". El programa es representado por una serie de números que se mantienen en una cierta clase de memoria de computador. Hay cuatro pasos que casi todos los CPU de arquitectura de von Neumann usan en su operación: fetch, decode, execute, y writeback, (leer, decodificar, ejecutar, y escribir). Diagrama mostrando como es decodificada una instrucción del MIPS32. (MIPS Technologies 2005) El primer paso, leer (fetch), implica el recuperar una instrucción, (que es representada por un número o una secuencia de números), de la memoria de programa. La localización en la memoria del programa es determinada por un contador de programa (PC), que almacena un número que identifica la posición actual en el programa. 58
En otras palabras, el contador de programa indica al CPU, el lugar de la instrucción en el programa actual. Después de que se lee una instrucción, el Contador de Programa es incrementado por la longitud de la palabra de instrucción en términos de unidades de memoria. Frecuentemente la instrucción a ser leída debe ser recuperada de memoria relativamente lenta, haciendo detener al CPU mientras espera que la instrucción sea retornada. Este problema es tratado en procesadores modernos en gran parte por los cachés y las arquitecturas pipeline (ver abajo). La instrucción que el CPU lee desde la memoria es usada para determinar qué deberá hacer el CPU. En el paso de decodificación, la instrucción es dividida en partes que tienen significado para otras unidades del CPU. La manera en que el valor de la instrucción numérica es interpretado está definida por la arquitectura del conjunto de instrucciones (el ISA) del CPU. A menudo, un grupo de números en la instrucción, llamados opcode, indica qué operación realizar. Las partes restantes del número usualmente proporcionan información requerida para esa instrucción, como por ejemplo, operandos para una operación de adición. Tales operandos se pueden dar como un valor constante (llamado valor inmediato), o como un lugar para localizar un valor, que según lo determinado por algún modo de dirección, puede ser un registro o una dirección de memoria. En diseños más viejos las unidades del CPU responsables de decodificar la instrucción eran dispositivos de hardware fijos. Sin embargo, en CPUs e ISAs más abstractos y complicados, es frecuentemente usado un microprograma para ayudar a traducir instrucciones en varias señales de configuración para el CPU. Este microprograma es a veces reescribible de tal manera que puede ser modificado para cambiar la manera en que el CPU decodifica instrucciones incluso después de que haya sido fabricado. Después de los pasos de lectura y decodificación, es llevado a cabo el paso de la ejecución de la instrucción. Durante este paso, varias unidades del CPU son conectadas de tal manera que ellas pueden realizar la operación deseada. Si, por ejemplo, una operación de adición fue solicitada, una unidad aritmético lógica (ALU) será conectada a un conjunto de entradas y un conjunto de salidas. Las entradas proporcionan los números a ser sumados, y las salidas contendrán la suma final. La ALU contiene la circuitería para realizar operaciones simples de aritmética y lógica en las entradas, como adición y operaciones de bits (bitwise). Si la operación de adición produce un resultado demasiado grande para poder ser manejado por el CPU, también puede ser ajustada una bandera (flag) de desbordamiento aritmético localizada en un registro de banderas (ver abajo la sección sobre rango de números enteros). El paso final, la escritura (writeback), simplemente "escribe" los resultados del paso de ejecución a una cierta forma de memoria. Muy a menudo, los resultados son escritos a algún registro interno del CPU para acceso rápido por subsecuentes instrucciones. En otros casos los resultados pueden ser escritos a una memoria principal más lenta pero más barata y más grande. Algunos tipos de instrucciones manipulan el contador de 59
programa en lugar de directamente producir datos de resultado. Éstas son llamadas generalmente "saltos" (jumps) y facilitan comportamientos como bucles (loops), la ejecución condicional de programas (con el uso de saltos condicionales), y funciones en programas. Muchas instrucciones también cambiarán el estado de dígitos en un registro de "banderas". Estas banderas pueden ser usadas para influenciar cómo se comporta un programa, puesto que a menudo indican el resultado de varias operaciones. Por ejemplo, un tipo de instrucción de "comparación" considera dos valores y fija un número, en el registro de banderas, de acuerdo a cuál es el mayor. Entonces, esta bandera puede ser usada por una posterior instrucción de salto para determinar el flujo de programa. Después de la ejecución de la instrucción y la escritura de los datos resultantes, el proceso entero se repite con el siguiente ciclo de instrucción, normalmente leyendo la siguiente instrucción en secuencia debido al valor incrementado en el contador de programa. Si la instrucción completada era un salto, el contador de programa será modificado para contener la dirección de la instrucción a la cual se saltó, y la ejecución del programa continúa normalmente. En CPUs más complejos que el descrito aquí, múltiples instrucciones pueden ser leídas, decodificadas, y ejecutadas simultáneamente. Esta sección describe lo que es referido generalmente como el "entubado RISC clásico" (Classic RISC pipeline), que de hecho es bastante común entre los CPU simples usados en muchos dispositivos electrónicos, a menudo llamados microcontroladores.
60
3.1.2 Controlador del bus El controlador del bus se encarga de la frecuencia de funcionamiento y las señales de sincronismo, temporización y control. Está ubicado en un chip en la placa base. El Bus es la vía a través de la que se van a transmitir y recibir todas las comunicaciones, tanto internas como externas, del sistema informático. El bus es solamente un Dispositivo de Transferencia de Información entre los componentes conectados a él, no almacena información alguna en ningún momento. Los datos, en forma de señal eléctrica, sólo permanecen en el bus el tiempo que necesitan en recorrer la distancia entre los dos componentes implicados en la transferencia. En una unidad central de sistema típica el bus se subdivide en tres buses o grupos de líneas. -Bus de Direcciones. -Bus de Datos. Bus de Control.
Bus de Direcciones: Es un canal de comunicaciones constituido por líneas que apuntan a la dirección de memoria que ocupa o va a ocupar la información a tratar. Una vez direccionada la posición, la información, almacenada en la memoria hasta ese momento, pasará a la CPU a través del bus de datos. Bus de Datos: Es el medio por el que se transmite la instrucción o dato apuntado por el bus de direcciones. Es usado para realizar el intercambio de instrucciones y datos tanto internamente, entre los diferentes componentes del sistema informático. Bus de Control: Es un número variable de líneas a través de las que se controlan las unidades complementarías. El número de líneas de control dependerá directamente de la cantidad que pueda soportar el tipo de CPU utilizada y de su capacidad de direccionamiento de información.
3.1.3 Puertos de E/S Son los circuitos electrónicos intermediarios entre el ordenador y los periféricos. Sus funciones: Adaptar las señales, Adaptación de los códigos, Descarga de la CPU, Atención y sincronización con los periféricos Tipos de comunicaciones en los ordenadores
Serie: Se utiliza un único conductor para tx los datos, Se envían los datos uno tras otro. La conexión paralela es, en principio mucho más rápida que la serie, pero necesita un gran número de conductores Paralelo: La información se envía en grupos de 8, 16,...bits, Cada bit en un conductor diferente. La conexión serie permite las comunicaciones a varios metros mientras que la paralelo tiene un máximo de 1.5m (para más distancia serían necesarios repetidores).
61
3.1.4 Controlador de interrupciones Es un componente importante del sistema principal. Debido a que el microprocesador debe atender peticiones de muchos componentes externos e internos se cuenta con unos canales llamados IRQ (Interrupt Request) por el que cada dispositivo debe dirigirse al microprocesador. Las interrupciones son señales enviadas a la CPU por el hardware para requerir su atención o responder alguna acción. Los sistemas actuales poseen 16 IRQs numerados del 0 – 15, algunos son asignados por el sistema y no deben cambiarse y otros pueden ser asignados por el usuario de acuerdo a la disponibilidad de recursos y a la configuración de cada componente.
3.1.5 Controlador de DMA El controlador de DMA (direct memory 62ccess) se utiliza para evitar saturar al microprocesador, algunos periféricos pueden transferir datos a la memoria del computador o viceversa, sin pasar a través de la CPU. Esta operación se llama Acceso Directo a Memoria, y se controla mediante un chip conocido como controlador de DMA. El propósito principal del DMA es permitir al controlador del disco que lea, o escriba, datos sin involucrar al microprocesador. Como las operaciones de E/S desde el disco son relativamente lentas, El DMA puede aumentar un poco las prestaciones del ordenador. Los sistemas actuales tienen 8 canales DMA (0 – 7).
3.1.6 Circuitos de temporización y control El temporizador es un circuito que se encuentra en la tarjeta matriz (Mother Board) de la PC y que es capaz de mantener una cuenta de tiempo basada en el reloj de la computadora. Puede usarse para calcular el intervalo entre dos mediciones de tiempo o para generar pausas. Este chip tiene la capacidad de realizar diferentes funciones de conteo. Es útil para medir el tiempo que dura cierto proceso o para mantener actualizadas la hora del día y la fecha si se deja la PC conectada y encendida. El chip mantiene tres contadores independientes (definidos como 0, 1, 2), cada uno de los cuales es alimentado por una señal que equivale a 1.19318 MHZ. El contador obtiene una capacidad máxima de conteo que asciende a 65 536. Su salida tiene una frecuencia de 18.2 HZ.(1.19/65536) aproximadamente. Por lo tanto, cualquier acción que interrumpa a la PC ocurrirá 18.2 veces por segundo (cada 55 ms o cada 0.055 segundos en forma redondeada).
62
3.1.7 Controladores de video Los controladores son circuitos de entrada que tienen todas las impresoras. Son los que procesan la información en primer lugar para saber exactamente qué les está llegando y como manipular los datos. Básicamente, un controlador de una impresora recoge los datos que proceden del PC y los convierte en datos de imagen que deberán pasar a lo que llamamos “video interface” de la impresora. Este otro dispositivo, se encarga de
recuperar los datos que ha dejado el controlador e inyectarlos hasta el sistema de escritura del periférico. 3.2 Aplicaciones Un computador está constituido por un conjunto de unidades o módulos de tres tipos elementales (procesador, memoria, E/S) que se comunican entre si. En efecto, un computador es una red de módulos elementales. Por consiguiente, deben existir líneas para interconectar estos módulos. El conjunto de líneas que conectan los diversos módulos de denomina estructura de interconexión. El diseño de dicha estructura dependerá de los intercambios que deban producirse entre los módulos. Memoria: generalmente, un módulo de memoria está constituido por N palabras de la misma longitud. A cada palabra se le asigna una única dirección numérica (0, 1,…, N -1). Una palabra de datos puede leerse de o escribirse en la memoria. El tipo de operación se indica mediante las señales de control Read (Leer) y Write (Escribir). La posición de memoria para la operación se especifica mediante una dirección. Módulo de E/S: desde un punto de vista interno (al computador), la E/S es funcionalmente similar a la memoria. Hay dos tipos de operaciones, leer y escribir. Además, un módulo de E/S puede controlar más de un dispositivo externo. Nos referimos a cada una de estas interfaces con un dispositivo externo con el nombre de puerto (port), y se le asignara una dir ección a cada uno (0, 1,…, M -1). Por otra parte, existen líneas externas de datos para la entrada y la salida de datos por un dispositivo externo. Por último, un módulo de E/S puede enviar señales de interrupción al procesador. Procesador: el procesador lee instrucciones y datos, escribe datos una vez los ha procesado, y utiliza ciertas señales para controlar el funcionamiento del sistema. También puede recibir señales de interrupción. 26 3.2.1 Entrada / Salida Junto con el procesador y el conjunto de módulos de memoria, el tercer elemento clave de un computador es un conjunto de módulo de E/S. Cada módulo se conecta al bus del 26
William Stallings. Organización y arquitectura de computadores. 7° Edición. Capitulo 3. Pagina 75
63
sistema o a un conmutador central y controla uno o más dispositivos periféricos. Un módulo de E/S no es únicamente un colector mecánico que permite enchufar el dispositivo al bus del sistema; sino que además está dotado de cierta “inteligencia, es
decir, contiene la lógica necesaria para permitir la comunicación entre el periférico y el bus.27 El módulo de E/S tiene dos funciones principales: Realizar la interfaz entre el procesador y la memoria a través del bus del sistema o un conmutador central. Realizar la interfaz entre uno o más dispositivos periféricos mediante enlaces de datos específicos.
Dispositivos externos Las operaciones de E/S se realizan a través de una amplia gama de dispositivos que proporcionan una forma de intercambiar datos entre el exterior y el computador. Un dispositivo externo se conecta al computador mediante un enlace a un módulo de E/S. El enlace se utiliza para intercambiar señales de control, estado, y datos entre el módulo de E/S y el dispositivo externo. Un dispositivo externo conectado a un módulo de E/S frecuentemente se denomina dispositivo periférico o simplemente periférico. 28 En sentido amplio, los dispositivos externos se pueden clasificar en tres categorías: De interacción con humanos: permite la comunicación con el usuario del computador. De interacción con máquinas: permiten la comunicación con elementos del equipo. De comunicación: permiten la comunicación con dispositivos remotos.
27 28
William Stallings. Organización y arquitectura de computadores. 7° Edición. Capitulo 7. Pagina 208 William Stallings. Organización y arquitectura de computadores. 7° Edición. Capitulo 7. Pagina 209
64
Ejemplos de dispositivos de interacción con humanos son las terminales de video (VDT, Video, Display Terminals y las impresoras. Ejemplos de dispositivos de interacción con máquinas son los discos magnéticos y los sistemas de cinta, y los sensores y actuadores, tales como los que se usan en aplicaciones de robótica. Los dispositivos de comunicación permiten que el computador intercambie datos con un dispositivo remoto, que puede ser un dispositivo de interacción con humanos, como por ejemplo un terminal, un dispositivo de interacción con máquinas o incluso otro computador. Teclado La forma as común de interacción computador/usuario se produce a través de la combinación de teclado/monitor. El usuario proporciona la entrada a través de teclado. A continuación esta entrada se transmite al computador y puede verse en el monitor. Además, el monitor muestra los datos que proporciona el computador. 29 Es un periférico de entrada, en parte inspirado en el teclado de las máquinas de escribir, que utiliza una disposición de botones o teclas, para que actúen como palancas mecánicas o interruptores electrónicos que envían información a la computadora. 1. Bloque de funciones: Va desde la tecla F1 a F12, en tres bloques de cuatro: de F1 a F4, de F5 a F8 y de F9 a F12. Funcionan de acuerdo al programa que esté abierto. Por ejemplo, en muchos programas al presionar la tecla F1 se accede a la ayuda asociada a ese programa. 2. Bloque alfanumérico: Está ubicado en la parte inferior del bloque de funciones, contiene los números arábigos del 1 al 0 y el alfabeto organizado como en una máquina de escribir, además de algunas teclas especiales. 3. Bloque especial: Está ubicado a la derecha del bloque alfanumérico, contiene algunas teclas especiales como Imp Pant, Bloq de desplazamiento, pausa, inicio, fin, insertar, suprimir, RePag, AvPag, y las flechas direccionales que permiten mover el punto de inserción en las cuatro direcciones. 4. Bloque numérico: Está ubicado a la derecha del bloque especial, se activa al presionar la tecla Bloq Num, contiene los números arábigos organizados como en una calculadora con el fin de facilitar la digitación de cifras. Además contiene los signos de las cuatro operaciones básicas: suma +, resta -, multiplicación * y división /; también contiene una tecla de Intro o Enter.
29
Behrouz A. Forouzan. Introducción a la ciencia de la computación.1° Edición. Capitulo 5
65
Ratón o mouse Es un dispositivo apuntador utilizado para facilitar el manejo de un entorno gráfico en una computadora. Generalmente está fabricado en plástico y se utiliza con una de las manos. Detecta su movimiento relativo en dos dimensiones por la superficie plana en la que se apoya, reflejándose habitualmente a través de un puntero o flecha en el monitor. 30 Hoy en día es un elemento imprescindible en un equipo informático para la mayoría de las personas, y pese a la aparición de otras tecnologías con una función similar, como la pantalla táctil, la práctica ha demostrado que tendrá todavía muchos años de vida útil. Funcionamiento Su funcionamiento principal depende de la tecnología que utilice para capturar el movimiento al ser desplazado sobre una superficie plana o alfombrilla de ratón especial para ratón, y transmitir esta información para mover una flecha o puntero sobre el monitor de la computadora. Dependiendo de las tecnologías empleadas en el sensor del movimiento o por su mecanismo y del método de comunicación entre éste y la computadora, existen multitud de tipos o familias. El objetivo principal o más habitual es seleccionar distintas opciones que pueden aparecer en la pantalla, con uno o dos clic, pulsaciones, en algún botón o botones. Para su manejo el usuario debe acostumbrarse tanto a desplazar el puntero como a pulsar con uno o dos clics para la mayoría de las tareas. Con el avance de las nuevas computadoras, el ratón se ha convertido en un dispositivo esencial a la hora de jugar, destacando no solo para seleccionar y accionar objetos en pantalla en juegos estratégicos, sino para cambiar la dirección de la cámara o la dirección de un personaje en juegos de primera o tercera persona. Comúnmente en la mayoría de estos juegos, los botones del ratón se utilizan para accionar las armas u objetos seleccionados y la rueda del ratón sirve para recorrer los objetos o armas de nuestro inventario. Tipos o modelos Mecánicos 30
Behrouz A. Forouzan. Introducción a la ciencia de la computación.1° Edición. Capitulo 5
66
Tienen una gran esfera de plástico o goma, de varias capas, en su parte inferior para mover dos ruedas que generan pulsos en respuesta al movimiento de éste sobre la superficie. Una variante es el modelo de Honeywell que utiliza dos ruedas inclinadas 90 grados entre ellas en vez de una esfera. La circuitería interna cuenta los pulsos generados por la rueda y envía la información a la computadora, que mediante software procesa e interpreta. 31 Ópticos Es una variante que carece de la bola de goma que evita el frecuente problema de la acumulación de suciedad en el eje de transmisión, y por sus características ópticas es menos propenso a sufrir un inconveniente similar. Se considera uno de los más modernos y prácticos actualmente. Puede ofrecer un límite de 800 ppp, como cantidad de puntos distintos que puede reconocer en 2,54 centímetros (una pulgada); a menor cifra peor actuará el sensor de movimientos. Su funcionamiento se basa en un sensor óptico que fotografía la superficie sobre la que se encuentra y detectando las variaciones entre sucesivas fotografías, se determina si el ratón ha cambiado su posición. En superficies pulidas o sobre determinados materiales brillantes, el ratón óptico causa movimiento nervioso sobre la pantalla, por eso se hace necesario el uso de una alfombrilla de ratón o superficie que, para este tipo, no debe ser brillante y mejor si carece de grabados multicolores que puedan "confundir" la información luminosa devuelta. Láser Este tipo es más sensible y preciso, haciéndolo aconsejable especialmente para los diseñadores gráficos y los jugadores de videojuegos. También detecta el movimiento deslizándose sobre una superficie horizontal, pero el haz de luz de tecnología óptica se sustituye por un láser con resoluciones a partir de 2000 ppp, lo que se traduce en un aumento significativo de la precisión y sensibilidad. TrackBall El concepto de TrackBall es una idea que parte del hecho: se debe mover el puntero, no el dispositivo, por lo que se adapta para presentar una bola, de tal forma que cuando se coloque la mano encima se pueda mover mediante el dedo pulgar, sin necesidad de desplazar nada más ni toda la mano como antes. De esta manera se reduce el esfuerzo y la necesidad de espacio, además de evitarse un posible dolor de antebrazo por el movimiento de éste. A algunas personas, sin embargo, no les termina de resultar realmente cómodo. Este tipo ha sido muy útil por ejemplo en la informatización de la navegación marítima.
31
Alex Soojung-Kim Pang. Mighty Mouse. 2002
67
Cámara web Es una pequeña cámara digital conectada a una computadora, la cual puede capturar imágenes y transmitirlas a través de Internet, ya sea a una página web o a otra u otras computadoras de forma privada. Las cámaras web necesitan una computadora para transmitir las imágenes. Sin embargo, existen otras cámaras autónomas que tan sólo necesitan un punto de acceso a la red informática, bien sea ethernet o inalámbrico. Para diferenciarlas las cámaras web se las denomina cámaras de red. También son muy utilizadas en mensajería instantánea y chat como en Windows Live Messenger, Yahoo! Messenger, Ekiga, Skype etc. En el caso del MSN Messenger aparece un icono indicando que la otra persona tiene cámara web. Por lo general puede transmitir imágenes en vivo, pero también puede capturar imágenes o pequeños videos (dependiendo del programa de la cámara web) que pueden ser grabados y transmitidos por Internet. Este dispositivo se clasifica como de entrada, ya que por medio de él podemos transmitir imágenes hacia la computadora. 32
Escáner Se utiliza para introducir imágenes de papel, libros, negativos o diapositivas. Estos dispositivos ópticos pueden reconocer caractéres o imágenes, y para referirse a este se emplea en ocasiones la expresión lector óptico (de caracteres). El escáner 3D es una variación de éste para modelos tridimensionales. Clasificado como un dispositivo o periférico de entrada, es un aparato electrónico, que explora o permite "escanear" o
32
Javier Gutiérrez. Periféricos, interfaces y buses. 2009. Pagina 23
68
"digitalizar" imágenes o documentos, y lo traduce en señales eléctricas para su procesamiento y, salida o almacenamiento. 33
Monitor Es un visualizador que muestra al usuario los resultados del procesamiento de una computadora mediante una interfaz. Píxel: unidad mínima representable en un monitor. Los monitores pueden presentar píxeles muertos o atascados. Tamaño de punto o (dot pitch): el tamaño de punto es el espacio entre dos fósforos coloreados de un píxel. Es un parámetro que mide la nitidez de la imagen, midiendo la distancia entre dos puntos del mismo color; resulta fundamental a grandes resoluciones. Los tamaños de punto más pequeños producen imágenes más uniformes. un monitor de 14 pulgadas suele tener un tamaño de punto de 0,28 mm o menos. En ocasiones es diferente en vertical que en horizontal, o se trata de un valor medio, dependiendo de la disposición particular de los puntos de color en la pantalla, así como del tipo de rejilla empleada para dirigir los haces de electrones. En LCD y en CRT de apertura de rejilla, es la distancia en horizontal, mientras que en los CRT de máscara de sombra, se mide casi en diagonal. Lo mínimo exigible en este momento es que sea de 0,28mm. Para CAD o en general para diseño, lo ideal sería de 0,25mm o menor. 0,21 en máscara de sombra es el equivalente a 0.24 en apertura de rejilla. Área útil: el tamaño de la pantalla no coincide con el área real que se utiliza para representar los datos. Ángulo de visión: es el máximo ángulo con el que puede verse el monitor sin que se degrade demasiado la imagen. Se mide en grados. Luminancia: es la medida de luminosidad, medida en Candela. Tiempo de respuesta: también conocido como latencia. Es el tiempo que le cuesta a un píxel pasar de activo (blanco) a inactivo (negro) y después a activo de nuevo. Contraste: es la proporción de brillo entre un píxel negro a un píxel blanco que el monitor es capaz de reproducir. Algo así como cuantos tonos de brillo tiene el monitor.
33
Tanenbaum, Andrew S. (2009). Sistemas operativos modernos. México: Pearson educación.
69
Coeficiente de contraste de imagen: se refiere a lo vivo que resultan los colores por la proporción de brillo empleada. A mayor coeficiente, mayor es la intensidad de los colores (30000:1 mostraría un colorido menos vivo que 50000:1). Consumo: cantidad de energía consumida por el monitor, se mide en Vatio. Ancho de banda: frecuencia máxima que es capaz de soportar el monitor. Hz o frecuencia de refresco vertical: son 2 valores entre los cuales el monitor es capaz de mostrar imágenes estables en la pantalla. Hz o frecuencia de refresco horizontal: similar al anterior pero en sentido horizontal, para dibujar cada una de las líneas de la pantalla. Blindaje: un monitor puede o no estar blindando ante interferencias eléctricas externas y ser más o menos sensible a ellas, por lo que en caso de estar blindando, o semi-blindado por la parte trasera llevara cubriendo prácticamente la totalidad del tubo una plancha metálica en contacto con tierra o masa. Tipo de monitor: en los CRT pueden existir 2 tipos, de apertura de rejilla o de máscara de sombra. Líneas de tensión: son unas líneas horizontales, que tienen los monitores de apertura de rejilla para mantener las líneas que permiten mostrar los colores perfectamente alineadas; en 19 pulgadas lo habitual suelen ser 2, aunque también los hay con 3 líneas, algunos monitores pequeños incluso tienen una sola.
Impresora Es un periférico de ordenador que permite producir una copia permanente de textos o gráficos de documentos almacenados en formato electrónico, imprimiéndolos en medios físicos, normalmente en papel o transparencias, utilizando cartuchos de tinta o tecnología láser.34 Muchas impresoras son usadas como periféricos, y están permanentemente unidas al ordenador por un cable. Otras impresoras, llamadas impresoras de red, tienen una 34
Behrouz A. Forouzan. Introducción a la ciencia de la computación.1° Edición. Capitulo 5
70
interfaz de red interno (típicamente wireless o ethernet), y que puede servir como un dispositivo para imprimir en papel algún documento para cualquier usuario de la red. Las impresoras suelen diseñarse para realizar trabajos repetitivos de poco volumen, que no requieran virtualmente un tiempo de configuración para conseguir una copia de un determinado documento. Sin embargo, las impresoras son generalmente dispositivos lentos (10 páginas por minuto es considerado rápido), y el coste por página es relativamente alto.
3.2.2 Almacenamiento En computadores antiguos, la forma más común de almacenamiento de acceso aleatorio para la memoria principal consistía en una matriz de pequeños anillos ferromagnéticos denominados núcleos. Es por esto que la memoria principal recibía a menudo el nombre de núcleo (core), un término que perdura en la actualidad. La llegada de la microelectrónica, y sus ventajas, acabo con las memorias de núcleos. Hoy en día es casi universal el uso de chips semiconductores para la memoria principal. Memoria RAM Es una memoria semiconductora. Se denomina memoria de acceso aleatorio (RAM, Random-Access Memory). Una característica distintiva de las RAM es que es posible tanto leer datos como escribir rápidamente nuevos datos en ellas. Tanto la lectura como la escritura se ejecutan mediante señales eléctricas. 35 La otra característica distintiva de una RAM es que es volátil. Una RAM debe estar siempre alimentada. Si se interrumpe la alimentación se pierden los datos. Así pues, las RAM pueden utilizarse solo como almacenamiento temporal. Las dos formas tradicionales de RAM utilizadas en los computadores son la DRAM y la SRAM. DRAM: una RAM dinámica (DRAM) está hecha con celdas que almacenan los datos como cargas eléctricas en condensadores. La presencia o ausencia de carga en un condensador se interpretan como el uno o el cero binarios. Ya que los condensadores tienen una tendencia natural a descargarse, las RAM dinámicas requieren refrescos 35
William Stallings. Organización y arquitectura de computadores. 7° Edición. Capitulo 5. Pagina 150
71
periódicos para mantener memorizados los datos. El termino dinámica hace referencia a esta tendencia a que la carga almacenada se pierda, incluso manteniéndola siempre alimentada. SRAM: en contraste con la dinámica, una RAM estática (SRAM) es un dispositivo digital, basado en los mismos elementos que se usan en el procesador. En una RAM estática, los valores binarios se almacena utilizando configuraciones de puertas que forma biestables (flip- flops). Una RAM estática retendrá sus datos en tanto se mantenga alimentada. SDRAM: es una memoria dinámica de acceso aleatorio DRAM que tiene una interfaz síncrona (SDRAM, Synchronous Dynamic Random Access Memory). en las SDRAM el cambio de estado tiene lugar en el momento señalado por una señal de reloj y, por lo tanto, está sincronizada con el bus de sistema del ordenador. El reloj también permite controlar una máquina de estados finitos interna que controla la función de "pipeline" de las instrucciones de entrada. Esto permite que el chip tenga un patrón de operación más complejo que la DRAM asíncrona, que no tiene una interfaz de sincronización. RDRAM: es un tipo de memoria síncrona, conocida como Rambus DRAM. Éste es un tipo de memoria de siguiente generación a la DRAM en la que se ha rediseñado la DRAM desde la base pensando en cómo se debería integrar en un sistema.El modo de funcionar de estas memorias es diferente a las DRAM, cambios producidos en una serie de decisiones de diseño que no buscan solo proporcionar un alto ancho de banda, sino que también solucionan los problemas de granularidad y número de pins. Una de las características más destacable dentro de las RDRAM es que su ancho de palabra es de tan sólo 16 bits comparado con los 64 a los que trabajan las SDRAM, y también trabaja a una velocidad mucho mayor, llegando hasta los 400Mhz. 36
Memoria ROM 36
William Stallings. Organización y arquitectura de computadores. 7° Edición. Capitulo 5. Pagina 153
72
Una memoria de solo-lectura (ROM, Read-Only Memory) contiene un patrón permanente de datos que no puede alterarse. Una ROM es no-volátil; es decir, no se requiere fuente de alimentación para mantener memorizados los valores de los bits. Aunque es posible leer de una ROM, no se pueden escribir nuevos datos en ella. Una aplicación importante de las ROM es la microprogramación. Una ROM se construye como cualquier otro chip de circuito integrado, con los datos cableados en el chip durante el proceso de fabricación. Esto presenta dos problemas: La etapa de inserción de datos implica unos costes fijos relativamente grandes, tanto si se va a fabricar una o miles de copias de una misma ROM. No se permite un fallo. Si uno de los bits es erróneo, debe desecharse la tirada completa de chips de memoria ROM. 37 Tipos de memoria ROM: PROM: es una ROM programable (PROM). Las PROM son no volátiles y pueden grabarse solo una vez. Para la PROM, el proceso de escritura se lleva a cabo eléctricamente y puede realizarlo el suministrador o el cliente con posterioridad a la fabricación del chip original. Se requiere un equipo especial para el proceso de escritura o “programación”. Las PROM proporcionan flexibilidad y comodidad.
EPROM: la memoria de solo-lectura programable y borrable ópticamente (EPROM, Erasable Programmable Read-Only Memory) se lee y escribe eléctricamente como la PROM. Sin embargo, antes de la operación de escritura, todas las celdas de almacenamiento deben primero borrarse a la vez, mediante la exposición del chip encapsulado a radiación ultravioleta. Este proceso de borrado puede realizarse repetidas veces; cada borrado completo puede durar hasta veinte minutos. Así pues, las EPROM pueden modificarse múltiples veces y, al igual que la ROM y las PROM, retienen su contenido, en teoría indefinidamente. Para una capacidad similar, una EPROM es más costosa que una PROM, pero tiene como ventaja adicional la posibilidad de actualizar múltiples veces su contenido. EEPROM: la memoria de solo-lectura programable y borrable eléctricamente (EEPROM, Electrically Erasable Programmable Read-Only Memory). En esta memoria se puede escribir en cualquier momento sin borrar su contenido anterior; solo se actualiza el byte o bytes direccionados. La EEPROM combina la ventaja de ser no volátil, con la flexibilidad de ser actualizable in situ, utilizando las líneas de datos, de direcciones y de control de un bus ordinario. MEMORIA FLASH: denominada así por la velocidad a la que puede reprogramarse. Las flash utilizan una tecnología de borrado eléctrico. Una memoria flash puede borrarse entera en uno o unos cuantos segundos, mucho más rápido que las EPROM. Además, es posible borrar solo bloques concretos de memoria en lugar de todo el chip. Las memorias 37
William Stallings. Organización y arquitectura de computadores. 7° Edición. Capitulo 5. Pagina 154
73
flash deben su nombre a que su micro-chip está organizado de manera que cada una de sus secciones de celdas e borra mediante una única acción, de un golpe o flash. Sin embargo, las memorias flash no permiten borrar a nivel de byte. 38
39
Tipo de memoria Memoria de acceso aleatorio (RAM) Memoria de solo lectura (ROM) ROM programable (PROM) PROM borrable (EPROM) 38 39
Clase
Borrado
Memoria de Eléctricamente lectura/escritura por bytes
Memoria de No posible solo lectura Memoria de Luz ultravioleta, sobre-todochip completo lectura
Mecanismos de escritura
Volatilidad
Eléctricamente
Volátil
Mediante mascaras No volátil40 Eléctricamente
William Stallings. Organización y arquitectura de computadores. 7° Edición. Capitulo 5. Pagina 155 William Stallings. Organización y arquitectura de computadores. 7° Edición. Capitulo 5. Pagina 152 (Tabla)
74
Memoria FLASH PROM borrable eléctricamente (EEPROM)
Eléctricamente, por bloques Eléctricamente, por bytes
A continuación se van a examinar distintos sistemas y dispositivos de memoria externa. Comenzando con el dispositivo más importante, el disco magnético. Los discos magnéticos son la base de las memorias externas en casi todos los computadores. Memoria externa Discos magnéticos Un disco magnético es un plato circular construido con un material no magnético, llamado sustrato, cubierto por un material magnetizable. Tradicionalmente, el sustrato es aluminio. Recientemente, se ha utilizado sustrato de cristal. Los sustratos de cristal tienen una serie de ventajas, entre las cuales se encuentran: 41 Mejora en la uniformidad de a superficie magnética para incrementar la fiabilidad del disco. Reducción significativa de los defectos en toda la superficie lo que ayuda a reducir los errores de lectura/escritura. Capacidad para soportar grabaciones de gran proximidad Mejor rigidez para reducir la dinámica del disco. Mayor capacidad para resistir golpes y daños. Tanto en los discos rígidos como en los flexibles la información se graba en circunferencias concéntricas, no notándose visualmente las zonas grabadas. Cada una de las circunferencias concéntricas grabadas constituye una pista. Así mismo el disco se considera dividido en arcos iguales denominados sectores, de esta forma cada pista está compuesta de sectores. Los sectores de las pistas más exteriores son de mayor longitud que las interiores, ahora bien el número de bits grabados en cada sector es siempre el mismo, con lo que la densidad de grabación será mayor en las pistas interiores que en las exteriores. Los sectores comienzan con una cabecera de identificación, indicando su dirección completa. Un cilindro es un conjunto de pistas, una en cada disco, que son accesibles simultáneamente por el conjunto de cabezas. La lectura y escritura en la superficie del disco se hace mediante una cabeza. Esta suele ser de tipo cerámico, aunque inicialmente eran metálicas. La cabeza, en las unidades de cabezas móviles, está insertada en un extremo de un brazo mecánico móvil, que se 41
William Stallings. Organización y arquitectura de computadores. 7° Edición. Capitulo 6. Pagina 176
75
desplaza hacia el centro o hacia la parte externa del disco bajo el control de los circuitos electrónicos del periférico. Disco flexible: Un disco flexible o también disquette (en inglés floppy disk), es un tipo de dispositivo de almacenamiento de datos formado por una pieza circular de un material magnético que permite la grabación y lectura de datos, fino y flexible (de ahí su denominación) encerrado en una carcasa fina cuadrada o rectangular de plástico. Los discos, usados usualmente son los de 3 ½ o 5 ¼ pulgadas, utilizados en ordenadores o computadoras personales, aunque actualmente los discos de 5 ¼ pulgadas están en desuso. Disco duro: son en la actualidad el principal subsistema de almacenamiento de información en los sistemas informáticos. Es un dispositivo encargado de almacenar información de forma persistente en un ordenador, es considerado el sistema de almacenamiento más importante del computador y en él se guardan los archivos de los programas. 42
Memoria óptica En 1983, se introdujo uno de los productos de consumo de más éxito de todos los tiempos: el disco compacto (CD, Compact Disk) digital de audio. El CD es un disco no borrable que puede almacenar más de sesenta minutos de información de audio en una cara. El gran éxito comercial de CD posibilito el desarrollo de la tecnología de discos de memoria óptica de bajo coste, que revoluciono el almacenamiento de datos en un computador. CD: disco compacto. Es un disco no borrable que almacena información de audio digitalizada. El sistema estándar usa discos de doce cm y puede grabar más de sesenta minutos de tiempo de ejecución ininterrumpido. CD-ROM: disco compacto de memoria de solo-lectura. Es un disco no borrable usado como memoria de datos de un computador. El sistema estándar usa discos de doce cm y puede guardar más de 650 MB. 43
42 43
William Stallings. Organización y arquitectura de computadores. 7° Edición. Capitulo 6. Pagina 178 William Stallings. Organización y arquitectura de computadores. 7° Edición. Capitulo 6. Pagina 196
76
DVD: disco versátil digital. Una tecnología para producir representación de información de video digitalizada y comprimida, así como grandes cantidades de otros datos digitales. Se usan en formato de ocho y doce cm de diámetro, con una capacidad con doble cara de hasta 17 GB. DVD-R: DVD grabable. Es similar al DVD-ROM. El usuario puede escribir en el disco solo una vez. Solo se utilizan discos de una cara. DVD-RW: el usuario puede borrar y reescribir el disco varias veces. Solo se utilizan discos de una cara.44
Dispositivos extraíbles Pen drive o memoria flash: Es un pequeño dispositivo de almacenamiento que utiliza la memoria flash para guardar la información sin necesidad de pilas. Los Pen Drive 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.
3.2.3 Fuente de alimentación Una fuente de alimentación es un dispositivo que convierte la tensión alterna de la red de suministro, en una o varias tensiones, prácticamente continuas, que alimentan los distintos circuitos del aparato electrónico al que se conecta (ordenador, televisor, impresora, router, etc.). Las fuentes de alimentación, para dispositivos electrónicos, pueden clasificarse básicamente como fuentes de alimentación lineales y conmutadas. Las lineales tienen un diseño relativamente simple, que puede llegar a ser más complejo cuanto mayor es la corriente que deben suministrar, sin embargo su regulación de tensión es poco eficiente. Una fuente conmutada, de la misma potencia que una lineal, será más pequeña y normalmente más eficiente pero será más compleja y por tanto más susceptible a averías. 44
William Stallings. Organización y arquitectura de computadores. 7° Edición. Capitulo 6. Pagina 197
77
En cuanto a los tipos de fuentes de alimentación, existen dos tipos básicamente: Fuentes AT Ya en desuso. Estas fuentes se caracterizan por el tipo de conector que va a la placa y por el sistema de encendido que utilizan. El suministro de corriente a la placa lo hacen mediante dos conectores planos de 6 pines cada uno. Esto entre otros representaba el problema de la posible colocación equivocada de estos, lo que podía llegar a producir averías. A esto hay que añadir las salidas timo molex para alimentación de discos duros y lectores de CD. En cuanto al sistema de encendido, este es por interruptor, que corta la entrada de corriente a la fuente. Estas fuentes se utilizaron en las placas AT, que eran las usadas hasta la llegada de los Pentium, aunque anteriormente se utilizaron algunas fuentes ATX, pero con los conectores de la placa del tipo AT. Fuentes ATX Fuentes ATX, que sustituyeron a las fuentes AT a partir de la salida de los procesadores Pentium, y que son las que se utilizan en la actualidad. Estas fuentes no llevan interruptor como sistema de encendido (si acaso llevan uno para seguridad), correspondiendo la función de encendido a un contacto controlado por la placa base, que mediante un corto envía una señal que es la encargada de activar o desactivar la fuente. Las fuentes ATX siempre están suministrando un canal de 5 v a la placa base para mantener constante esta función. También permiten activarse mediante otros medios, como puede ser mediante la tarjeta de red o mediante el módem. En cuanto a los conectores, estos pasaron de ser dos de 6 pines a uno de 20 pines (conocidos como conectores ATX), a los que con la salida de los P-4 se les añadió un conector independiente de 4 pines y 12v. 3.3 Ambientes de servicios45 3.3.1 Negocios La globalización está cambiando el mundo y lo ha convertido en un ambiente sumamente competitivo, en donde la información está al alcance de las manos. Esta situación ha provocado una enorme presión sobre las organizaciones, que deben flexibilizarse y encontrar nuevos mecanismos para afrontar las presiones, para innovar y en general para sobrevivir. Empujados por la competencia de mercados, las empresas deben hacer un uso más intensivo de TI y esto genera una mayor gama de oportunidades para el outsourcing. Pero esta tendencia requiere también que los CIO y demás líderes de las organizaciones 45
Instituto Tecnológico de estudios superiores de Jocotitlan. Arquitectura de computadoras. 2010. Pagina 43
78
aprendan a manejar esta herramienta como un mecanismo que permita alinear las funciones de TI con la estrategia de la organización. Los CIO deben reconocer los límites de sus organizaciones para proveer los servicios estratégicos que requiere la organización e iniciar el desarrollo de las prácticas del outsourcing y sobre todo, manejar este mecanismo en forma efectiva. En este nuevo mundo, el outsourcing ha surgido como una herramienta que facilita la gestión empresarial y se ha convertido en un tema de actualidad. Sin embargo, más que una moda, outsourcing es una forma eficaz para apoyar a las organizaciones y asegurar su supervivencia y tiene su principal razón de ser en tres imperativos que deben considerar las organizaciones hoy en día: Enfocarse en un negocio. Asegurarse el acceso a la experiencia técnica que es crítica para el negocio. Focalizarse en operaciones optimizadas, reduciendo y controlando los costos. En la Tecnología de Información, el impacto del outsourcing es enorme: Outsourcing es la principal fuente de crecimiento en el área de Servicios de Tecnología de Información (TI), y se ha convertido en un elemento central de las prácticas de negocios de las compañías actuales, sin importar el tamaño. 3.3.2 Industria La “industrialización” de los Servicios de Tecnología de Información va a redefinir el
mercado en términos de cómo las organizaciones evalúan, compran y seleccionan los servicios, y de cómo los vendedores desarrollan, establecen precios e implementan los servicios.46 El aumento de la estandarización y la consecuente disminución en la customización es un proceso inevitable y es el resultado del tiempo y la experiencia en cualquier industria. La industria está en un proceso de transición y el impacto de este viraje ya se siente. Dentro del ambiente de TI (Tecnología de Información), existe una estrategia doble, que incluye prácticas customizadas o estandarizadas. Los proveedores de outsourcing están respondiendo a este llamado de la estandarización, para aprovechar las economías de escala, pero en forma simultánea deben soportar una gran base instalada de ambientes desarrollados a la medida. Aunque los servicios de TI están en proceso de madurez, la madurez de la industria se ha incrementado en aspectos evidentes, como la forma en que los servicios son implementados y administrados. Para lograr esta estandarización, se requiere un enfoque hacia soluciones genéricas y esto debe ser responsabilidad de los proveedores, que deben desarrollar, operar y administrar el resultado de estos genéricos de TI. Las métricas deben cambiar entonces, 46
Instituto Tecnológico de estudios superiores de Jocotitlan. Arquitectura de computadoras. 2010. Pagina 44
79
de la medida de capacidades técnicas a la medida en el impacto en los negocios, es decir, en los acuerdos de niveles de servicio. La industria de las telecomunicaciones y sus tendencias: Las empresas proveedoras de servicio de telecomunicaciones en estos tiempos tienen un reto mayor, reducir los costos y paralelamente desarrollar iniciativas para crecer el negocio en un mercado tradicional que se vuelve cada vez menos atractivo económicamente hablando. El mercado de valores refleja una mejora muy considerable en el sector de los servicios de la industria de las telecomunicaciones, y de las empresas que ofrecen los servicios completos. Para lograr mayores ahorros en los costos, tomar las siguientes medidas: Bajar los costos de operación automatizando e integrando los procesos del negocio. La utilización intensiva de los activos, por medio de la consolidación de las operaciones, dotando a la empresa de una infraestructura escalable que le permita alcanzar los nuevos requerimientos rápidamente. Hacer inversiones de capital eficientemente, como Gastos de Capital justo a Tiempo, análisis de costo/valor, una cadena de abastecimiento extendida y compras que les permita bajar los precios a mayores niveles. Explotar las sinergias a través de las operaciones, esto es, Centros de Servicios compartido Administrar el riesgo y la incertidumbre, incorporando servicios administrados o mercerizados a través de la cadena de valor o dentro de segmentos específicos. Por el otro lado para crear nuevo valor a la empresa y generar ingresos adicionales recomiendan a las empresas: Apoyar los procesos e iniciativas de desarrollo de nuevos productos, que permita mejorar el tiempo de lanzamiento al mercado de nuevas fuentes de generación de ingresos. Administrar e incorporar alianzas en toda la cadena de valor. Apoyar y soportar integraciones B2B (Negocio a Negocio) por medio de la adopción de plataformas, sistemas y redes totalmente abiertas. 47 Proveer mecanismos para mantener un amplio conocimiento del mercado y de la empresa. 3.3.3 Comercio electrónico El comercio electrónico consiste en la compra, venta, marketing y suministro de información complementaria para productos o servicios a través de redes informáticas. La
47
Instituto Tecnologico de estudios superiores de Jocotitlan. Arquitectura de computadoras. 2010. Pagina 45
80
industria de la tecnología de la información podría verlo como una aplicación informática dirigida a realizar transacciones comerciales. Una definición alternativa la vería como la conducción de comunicaciones de negocios comerciales y su dirección a través de métodos electrónicos como intercambio electrónico de datos y sistemas automáticos de recolección de datos. El comercio electrónico también incluye la transferencia de información entre empresas. 48
48
Instituto Tecnológico de estudios superiores de Jocotitlan. Arquitectura de computadoras. 2010. Pagina 45
81
82
Unidad 4 Microcontroladores Un microcontrolador es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres unidades funcionales principales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada y salida. Al ser fabricados, la EEPROM del microcontrolador no posee datos. Para que pueda controlar algún proceso es necesario generar o crear y luego grabar en la EEPROM del microcontrolador algún programa, el cual puede ser escrito en lenguaje ensamblador u otro lenguaje para microcontroladores; sin embargo, para que el programa pueda ser grabado en la EEPROM del microcontrolador, debe ser codificado en sistema numérico hexadecimal que es finalmente el sistema que hace trabajar al microcontrolador cuando éste es alimentado con el voltaje adecuado y asociado a dispositivos analógicos y discretos para su funcionamiento.1 4.1 Arquitectura 4.1.1 Terminales
Son diseñados para reducir el costo económico y el consumo de energía de un sistema en particular. Por eso el tamaño de la unidad central de procesamiento, la cantidad de memoria y los periféricos incluidos dependerán de la aplicación. El control de un electrodoméstico sencillo como una batidora utilizará un procesador muy pequeño (4 u 8 bits) porque sustituirá a un autómata finito. En cambio, un reproductor de música y/o vídeo digital (mp3 o mp4) requerirá de un procesador de 32 bits o de 64 bits y de uno o más códec de señal digital (audio y/o vídeo). El control de un sistema de frenos ABS 83
(Antilock Brake System) se basa normalmente en un microcontrolador de 16 bits, al igual que el sistema de control electrónico del motor en un automóvil. Los microcontroladores representan la inmensa mayoría de los chips de computadoras vendidos, sobre un 50% son controladores "simples" y el restante corresponde a DSPs más especializados. Mientras se pueden tener uno o dos microprocesadores de propósito general en casa (Ud. está usando uno para esto), usted tiene distribuidos seguramente entre los electrodomésticos de su hogar una o dos docenas de microcontroladores. Pueden encontrarse en casi cualquier dispositivo electrónico como automóviles, lavadoras, hornos microondas, teléfonos, etc. Un microcontrolador difiere de una unidad central de procesamiento normal, debido a que es más fácil convertirla en una computadora en funcionamiento, con un mínimo de circuitos integrados externos de apoyo. La idea es que el circuito integrado se coloque en el dispositivo, enganchado a la fuente de energía y de información que necesite, y eso es todo. Un microprocesador tradicional no le permitirá hacer esto, ya que espera que todas estas tareas sean manejadas por otros chips. Hay que agregarle los módulos de entrada y salida (puertos) y la memoria para almacenamiento de información. 4.1.2 CPU (Unidad central de proceso)
La función de la CPU es ejecutar las instrucciones de un programa. La CPU (Central Processing Unit) está constituida por el microprocesador. La CPU controla el funcionamiento de todos los elementos del sistema, en función de las instrucciones del programa.
4.1.3 Espacio de memoria La memoria es el dispositivo que se encarga de almacenar los programas y los datos. Según la aplicación se pueden utilizar los siguientes tipos:
Memoria para almacenar el Programa:
Se utilizan memorias que conservan la información incluso cuando no hay ninguna alimentación aplicada al sistema (no volátiles). Son del tipo de sólo lectura como las ROM (Read Only Memory), EPROM (Erasable Programmable ROM), OTP (One Time Programmable) y FLASH.
Memoria para almacenar los Datos:
Para el almacenamiento temporal de datos y el cálculo intermedio de los resultados durante las operaciones se utiliza la RAM (Random Access Memory). Es de lectura/escritura y pierde los datos cuando se queda sin alimentación (volátil).
84
En caso de que se quiera conservar los datos cuando el sistema se queda sin alimentación se puede utilizar la EEPROM (Electrically Erasable Programmable ROM), que es no volátil. La desventaja de esta memoria es su baja velocidad de acceso. Generalmente, los sistemas de control con microprocesador trabajan con unos pocos KiloBytes de memoria, en contraste con las PC, que funcionan con muchos MegaBytes de memoria. 4.1.4 Entrada/Salida Entradas Los dispositivos de entrada proporcionan información del mundo exterior al sistema. En una PC el dispositivo de entrada más común es el teclado. Los sistemas de control con microprocesadores normalmente usan dispositivos de entrada más simples como finales de carrera o pequeños teclados, aunque puede encontrarse dispositivos más complejos (por ejemplo el sensor de oxígeno en un automóvil que mide la eficacia de la combustión tomando muestras en el caño de escape). Las entradas del microprocesador sólo pueden procesar información en binario: „0‟ lógico = 0 V (VSS) „1‟ lógico = Nivel positivo de la fuente (VDD)
La alimentación generalmente es de 5 Vdc. En el mundo real podemos encontrar señales digitales de niveles distintos a los que maneja el micro, para solucionarlo existen dispositivos de entrada que traducen las tensiones de otro nivel a VDD y VSS. Por otro lado, los sensores que miden variables físicas (temperatura, presión, etc) entregan tensiones analógicas, para convertirlas en digitales se utilizan conversores analógico/digital (ADC).
Salidas Los dispositivos de salida son los que comunican la información o acciones del sistema al mundo exterior. En una PC el dispositivo de salida más común es el monitor. Los sistemas de control con microprocesador generalmente usan dispositivos de salida mucho más simples como LEDs, relés o zumbadores. También se pueden manejar displays, motores, etc.
85
El sistema podrá necesitar interfaces que permitan el manejo de cargas de potencia, ya que las tensiones y corrientes que manejan los microprocesadores son muy pequeñas. Si es necesario, el sistema también puede contar con circuitos conversores digital/analógico (DAC). 4.1.5 Características especiales Estas características suelen ser los aspectos que más distinguen la CPU de estos dispositivos con otros microprocesadores Son características pensadas para que el microcontrolador sea más “autónomo”, más
barato, más seguro y ocupe menos que sus hermanos mayores. •
•
•
•
•
•
•
Oscilador: más simple y con menos elementos adicionales necesarios Resets y Watchdog: seguridad en el arranque, reinicio y “autovigilancia”
Sleep: modo de bajo consumo para aplicaciones con baterías Interrupciones: lógica de máscaras y eventos y posición común del PTI Protección de código: para evitar la “copia” de programas grabados ICSP e ICSP LVP: (In-Circuit Serial Programming) programación en serie ya en la tarjeta de la aplicación y a baja tensión (Low Voltage Program) Modo depuración ICD: (In-Circuit Debugger) modo especial que permite depurar el código pero ya con el MCU conectado con el resto del circuito, se comunicaría con un dispositivo de depuración o Debugger
La mayor parte de las características especiales se establecen en unos bits que residen en una palabra de iguales características que la memoria de programa pero está fuera del mapa de memoria de código a la que se puede acceder en ejecución normal. 4.2 Programación 4.2.1 Modelo de Programación La programación requiere un claro entendimiento de la lectura de los registros internos de la familia de microprocesadores Intel. En esta sección se describe la estructura de los registros del microprocesador y se explica la forma en que se direcciona la memoria por medio de los registros de segmentos y de los desplazamientos de dirección. El arreglo de registros internos del microprocesador se aplica a todas las versiones del microprocesador. Tenga en cuenta que las partes sombreadas solo están disponibles en los microprocesadores 80386 y 80486. El arreglo de registros internos consta de tres grupos de registros: registros de uso general, apuntadores y registros de índice y registros de segmentos. Además de esos grupos, hay también un registro de banderas que señala
86
49
las condiciones respecto al funcionamiento de la unidad aritmética y lógica (ALU).
Una computadora digital es una maquina que puede resolver problemas ejecutando las intrucciones que recibe de las personas. Una secuencia de instrucciones que describe como realizar cierta tarea se llama programa. Los crcuitos electronicos de una computadora pueden reconocer y ejecutar directamente un conjunti limitado de instrucciones sencillas, y todos los programas tienen que convertirse en una serie d esas instrucciones para que la computadora pueda ejecutarlos. Dichas intrucciones basicas casi nunca son mas complicadas que :
Sumar dos números. Verificar si un número es cero. Copiar un dato de una parte de la memoria de la computadora a otra.
Juntas las instrucciones primitivas de una computadora constituyen un lenguaje que permite a las personas comunicarse con la computadora. Dicho lenguaje se llama lenguaje de máquina. Las personas que diseñan una computadora nueva deben decidir que instrucciones incluirán en su lenguaje de máquina.
49
microprocesadores de intel 3 edicion-Barry Brey
87
4.2.2 Conjunto de Instrucciones El conjunto de instrucciones de la familia 8086/8088 incluye equivalentes de las instrucciones que se encuentran en el 8085 o en casi cualquier microprocesador de 8 bits, más algunas operaciones nuevas. En esta sección se presenta un breve panorama de cada categoría general de instrucciones y de las instrucciones en sí. Las categorías de instrucciones descritas en esta sección incluyen: transferencia de datos, aritmética, manipulación de bits, cadenas o arreglos, transferencia de programa y control del procesador. 50 Las instrucciones fundamentalmente se dividen en tres tipos. Esta división viene dada por el tipo de datos con los que trabajan:
50
Instrucciones orientadas a los registros o bytes (byte-oriented operations). Instrucciones orientadas a los bits (bit-oriented operations). Operaciones con literales y de control (literal and control operations).
microprocesadores de intel 3 edicion-Barry Brey
88
Transferencia de Datos Transfieren bytes, palabras o dobles palabras de datos entre la memoria y los registros así como entre el acumulador y los puertos de E/S. Las transferencias de dobles palabras solo se pueden hacer en el 80386 y el 80486.
Aritmética La familia 8086-80486 puede sumar, restar, multiplicar y dividir datos como bytes, palabras o dobles palabras. Se debe tener en cuenta que las operaciones con d obles palabras solo se emplean para los microprocesadores 80386 y 80486. El sistema suma y resta con el empleo de datos con signo o sin singo y datos BCD o de ASCII. Multiplica y divide números ASCII con signo o sin signo. 51
Manipulación de Bits Las instrucciones para la manipulación de bits se utilizan para controlar los datos hasta el nivel de bits en la familia de microprocesadores 8086-80486. Estas instrucciones incluyen operaciones lógicas, corrimientos y rotaciones.
Instrucciones Para Cadenas Las instrucciones para cadenas o arreglos se emplean para manipular cadenas de datos en la memoria. Cada cadena consta, ya sea, de bytes o de palabras y tiene hasta 64k bytes de longitud. En las instrucciones para la cadena se emplean los registros SI y DI para direccionar los datos y el registro CX para contar el numero de bytes o de palabras en que se trabajo.
Transferencia de Programa Las instrucciones para transferencia de programa incluyen brinco, llamadas (CALL) y para retorno, ya conocidas en el microprocesador 8085. Además se enumeran algunas instrucciones adicionales para ciclos de programas.
51
microprocesadores de intel 3 edicion-Barry Brey
89
Control del Procesador Las instrucciones para control del procesador habilitan y deshabilitan las interrupciones, modifican los bits de bandera y sincronizan los eventos externos. En el 80286, 80386 y 80486 controlan el funcionamiento del sistema en el modo protegido. 4.2.3 Modos de Direccionamiento Los llamados modos de direccionamiento son las diferentes maneras de especificar en informática un operando dentro de una instrucción en lenguaje ensamblador . Un modo de direccionamiento especifica la forma de calcular la dirección de memoria efectiva de un operando mediante el uso de la información contenida en registros y / o constantes, contenida dentro de una instrucción de la máquina o en otra parte. 52 Tipos de Direccionamiento:
Implícito: En este modo de direccionamiento no es necesario poner ninguna dirección de forma explícita, ya que en el propio código de operación se conoce la dirección del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operar.
Inmediato En la instrucción está incluido directamente el operando. En este modo el operando es especificado en la instrucción misma.
Directo El campo de operando en la instrucción contiene la dirección en memoria donde se encuentra el operando. En este modo la dirección efectiva es igual a la parte de dirección de la instrucción.
Indirecto El campo de operando contiene una dirección de memoria, en la que se encuentra la dirección efectiva del operando.
52
microprocesadores de intel 3 edicion-Barry Brey
90
Por Registro Sirve para especificar operandos que están en registros.
Indirecto por Registro El campo de operando de la instrucción contiene un identificador de registro en el que se encuentra la dirección efectiva del operando. En este modo el campo de la dirección de la instrucción da la dirección en donde la dirección efectiva se almacena en la memoria.
Direccionamiento Paginado Paginado: La memoria se encuentra actualmente dividida en páginas(bloques de igual longitud). Para obtener las direcciones necesitamos: Indicador de página (IP): en un registro específico o de propósito general de la máquina. Dirección de la palabra (DP): en el campo CD de la instrucción. Direccionamiento Segmentado Segmentado: La memoria se divide en porciones cuyos tamaños son variables. Así, para acceder a ellos se tiene una tabla de segmentos que contiene la dirección del comienzo y del final de cada segmento en memoria. Usar este tipo de direccionamiento tiene como ventajas que se puede definir segmentos de tamaño arbitrario. Por otro lado, esta misma ventaja, el fraccionamiento de memoria es uno de sus problemas. 53 4.2.4 Lenguaje Ensamblador El lenguaje ensamblador, o assembler (assembly language en inglés) es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores, y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquinabinarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Esta representación es usualmente definida por el fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de procesamiento 53
microprocesadores de intel 3 edicion-Barry Brey
91
(las instrucciones), los registros del procesador, las posiciones de memoria, y otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico a cierta arquitectura de computador física (o virtual). Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel, que, idealmente son portables. 54
54
microprocesadores de intel 3 edicion-Barry Brey
92
4.3 Aplicaciones Entre las aplicaciones que necesitan velocidades mayores del microprocesador y sistemas de memoria más grandes, se incluyen los sistemas de software que utilizan una GUI (Interfaz Gráfica de Usuario). Las pantallas modernas a menudo contienen 256,000 o más píxeles (elementos de imagen). La menos sofisticada es la de tipo VGA (Matriz de Gráficos de Vídeo) y tiene una resolución de 640 píxeles por cada una de las 480 líneas de barrido. Para presentar una pantalla de información, es necesario cambiar cada elemento gráfico, lo que requiere un microprocesador de alta velocidad. Muchos paquetes de software nuevos utilizan este tipo de interfaz de vídeo. Los paquetes basados en la GUI requieren altas velocidades de microprocesador y adaptadores de vídeo acelerados para una manipulación rápida y eficiente de la información de texto y gráficos. El sistema más notorio que requiere una alta velocidad de cálculo para su interfaz gráfica de despliegue, es el Windows' de Microsoft Corporation. La interfaz gráfica de usuario tiene un tipo de despliegue conocido como WYSIWYG (Lo Que Ve Es Lo Que Obtiene). 55 El microprocesador de 32 bits es necesario por el ancho de su bus de datos, que transfiere números reales (punto flotante de precisión sencilla) que requieren una memoria de 32 bits de ancho. Para procesar eficientemente los números reales de 32 bits, el microprocesador debe transferirlos eficientemente entre sí mismo y la memoria. Si los números pasaran a través de un bus de datos de 8 bits, le tomaría cuatro ciclos de lectura o escritura; sin embargo, cuando pasan a través de un bus de datos de 32 bits, sólo requiere de un ciclo de lectura o escritura. Esto acelera significativamente cualquier programa que trabaje con números reales. La mayoría de los lenguajes de alto nivel, hojas de cálculo electrónicas y sistemas de administración de bases de datos, utilizan números reales para almacenar la información. Los números reales también son usados en paquetes de diseño gráfico que utilizan vectores para trazar imágenes en la pantalla. Éstos incluyen los sistemas CAD (dibujo asistido por computadora), como el AutoCAD, ORCAD y otros. Además de ofrecer velocidades de reloj mayores, el 80386 incluyó una unidad de manejo de memoria que permitía al sistema operativo asignar y administrar los recursos de memoria. 55
microprocesadores de intel 3 edicion-Barry Brey
93
Los microprocesadores anteriores dejaron la administración de memoria completamente a cargo del software. El 80386 incluyó circuitería especializada para la administración y asignación de memoria, lo que mejoró su eficiencia y redujo la carga adicional del software. El conjunto de instrucciones del microprocesador 80386 seguía siendo compatible con los anteriores 8086, 8088 y 80286. Algunas instrucciones adicionales usaban los registros de 32 bits y administraban el sistema de memoria. Observe que las instrucciones y técnicas de administración de memoria utilizadas por el 80286 también eran compatibles con el microprocesador 80386. Estas características permitían al software anterior de 16 bits operar con el microprocesador 80386.56
56
microprocesadores de intel 3 edicion-Barry Brey
94