COATZACOALCOS NOMBRE: GARCIA ALOR DANIEL GRADO Y GRUPO: 8 E MATERIA: ARQUITECTURA DE COMPUTADORAS CARRERA: ING. EN SISTEMAS COMPUTACIONALES 2
Indice Tabla de contenido Unidad I. Arquitectura de computadoras ..................................................................................... 1 1.1 Modelos de arquitecturas de cmputo ............................................................................... 1 1.1.1 Arquitecturas de cmputo clsicas .............................................................................. 3 1.1.2 Modelo segmentado ....................................................................................................... 4 1.1.3 Arquitecturas de cmputo de multiprocesamiento ........................................... 5 1.2 Anlisis de los componentes .............................................................................................. 6 1.2.1 Cpu ................................................................................................................................... 6 1.2.1.1Arquitecturas cpu.......................................................................................................... 8 1.2.1.2 Tipos cpu ................................................................................................................... 10 1.2.1.3 Caracteristicas cpu .................................................................................................... 12 Las caractersticas que un CPU tiene son: ............................................................................ 12 1.2.1.4 Funcionamiento ........................................................................................................ 17 1.2.2 Memoria ........................................................................................................................ 19 1.2.2.1Arquitecturas ............................................................................................................... 20 1.2.2.2 Tipos memorias ........................................................................................................ 24 1.2.2.3Caracteristicas memorias .......................................................................................... 35 1.2.2.4 Funcionamiento memorias ..................................................................................... 37 1.2.3 Dispositivos de I/O ...................................................................................................... 48 1.2.3.1 Arquitectura del sistema de I/O (E/S) ..................................................................... 50 Interfaz Del Sistema Operativo Para E/S ........................................................................... 50 Sistema de archivos ............................................................................................................... 51 Gestor de redes ...................................................................................................................... 51 Gestor de bloques .................................................................................................................. 51 Gestor de cach ..................................................................................................................... 51 Manejadores de dispositivo .................................................................................................. 51 1.2.3.2 Tipos de I/O.............................................................................................................. 52 3
1.2.3.3 Caractersticas de los dispositivos de entrada y salida .................................... 60 1.2.3.4 Funcionamiento de los dispositivos de I/O ....................................................... 61 Unidad 2. Comunicacin interna en la computadora. ............................................................... 62 2.1 Buses ..................................................................................................................................... 62 2.1.1 Bus local. ....................................................................................................................... 70 2.1.2 Bus de datos. ................................................................................................................ 71 2.1.3 Bus de direcciones. ...................................................................................................... 73 2.1.4 Bus de control (bus de sistema). ................................................................................ 74 2.1.5 Buses normalizados ..................................................................................................... 75 2.2 Direccionamiento ................................................................................................................. 84 2.2.1 Modo real ...................................................................................................................... 84 2.2.2 Modelo protegido .......................................................................................................... 86 2.2.3 Modo real virtual ........................................................................................................... 91 2.3 Temporizacin ...................................................................................................................... 93 2.3.1 Reloj de sistema. .......................................................................................................... 96 2.3.2 Reset del distema ......................................................................................................... 97 2.3.3 Estados de espera. ...................................................................................................... 99 2.4 Interrupciones de hardware................................................................................................ 99 2.4.1 Enmascarable ............................................................................................................... 99 2.4.2 No-enmascarable. .................................................................................................... 100 2.5 Acceso directo a memoria ................................................................................................ 101 2.5.1 Sistema de video ........................................................................................................ 102 Funciones VIO .......................................................................................................................... 103 Salida Por TTY Virtual ............................................................................................................. 103 Salida de cadenas de caracteres ........................................................................................... 103 VioWrtCellStr VioWrtCharStr VioWrtCharStrAtt VioWrtNAttr VioWrtNCell VioWrtNChar VioReadCellStr VioReadCharStr................................................................. 106 Funciones de scroll .................................................................................................................. 106 VioScrollDn VioScrollLf VioScrollRt VioScrollUp .............................................................. 106 4
Definicin y movimiento del cursor ........................................................................................ 106 VioGetCurPos VioSetCurPos VioGetCurType VioSetCurType ..................................... 107 Acceso al LVB ........................................................................................................................... 107 VioGetBuf VioShowBuf ........................................................................................................... 107 Acceso directo al buffer real de video ................................................................................... 107 VioGetPhysBuf VioScrLock VioScrUnLock ........................................................................ 109 VioSavRedrawWait .................................................................................................................. 110 2.5.2 Sistema de discos ...................................................................................................... 110 2.5.3 Otras aplicaciones ...................................................................................................... 111 UNIDAD III. Seleccin de componentes para ensamble de equipos de cmputo. ... 113 3.1 Chipset................................................................................................................................. 113 3.1.1 Cpu ............................................................................................................................... 115 3.1.2 Controlador del bus ................................................................................................. 118 3.1.3 Puertos de entrada/salida ......................................................................................... 121 3.1.4 Controlador de interrupciones .................................................................................. 123 3.1.5 Controladores de DMA .............................................................................................. 124 3.1.6 Circuitos de temporizacin y control........................................................................ 127 3.1.7 Controladores de video .............................................................................................. 128 3.2 Aplicaciones ........................................................................................................................ 131 3.2.1 Entrada/salida ............................................................................................................. 131 3.2.2 Almacenamiento ......................................................................................................... 137 3.2.3 Fuentes de alimentacin ........................................................................................... 139 3.3 Ambientes de servicios. .................................................................................................... 139 3.3.1 Negocios ...................................................................................................................... 142 3.3.2 Industria ....................................................................................................................... 144 3.3.3 Comercio electrnico ................................................................................................. 146 Unidad IV. Microcontroladores ................................................................................................... 150 4.1 Arquitectura. ....................................................................................................................... 150 4.1.1Terminales .................................................................................................................... 151 5
4.1.2 Cpu. .............................................................................................................................. 162 Las caractersticas que un CPU tiene son: .......................................................................... 162 4.1.3 Espacio de memoria .................................................................................................. 170 4.1.4Entrada/ salida. ............................................................................................................ 174 4.1.5 Caractersticas especiales. ....................................................................................... 174 4.2 Programacin. .................................................................................................................... 178 4.2.1 Modelo de programacin ....................................................................................... 180 4.2.2 Conjunto de instrucciones ......................................................................................... 181 4.2.3 Modos de direccionamiento ...................................................................................... 205 Efecto secundario muy til ...................................................................................................... 208 Absoluto ................................................................................................................................. 208 Relativo al PC ....................................................................................................................... 209 Registro indirectos ................................................................................................................ 210 Secuencial modos de direccionamiento ............................................................................... 210 Ejecucin secuencial. .......................................................................................................... 210 Ejecucin condicional. ......................................................................................................... 211 Saltar ...................................................................................................................................... 212 Simple modos de direccionamiento de datos ...................................................................... 212 Registro .................................................................................................................................. 212 Base ms desplazamiento y las variaciones ................................................................... 213 4.2.4 Lenguaje ensamblador .............................................................................................. 214 Lenguaje .................................................................................................................................... 215 Cdigo mquina ........................................................................................................................ 217 Ejemplos de lenguaje ensamblador ...................................................................................... 218 Ejemplo 1 ............................................................................................................................... 218 Ejemplo 2 ............................................................................................................................... 219 Ejemplo 3 ............................................................................................................................... 221 Ejemplo 4 ............................................................................................................................... 221 4.3 Aplicaciones ..................................................................................................................... 222 6
4.3.1 Como sistema independiente ............................................................................... 222 4.3.2 Como subsistema de una computadora ................................................................. 227
1
1
Unidad I. Arquitectura de computadoras 1.1 Modelos de arquitecturas de cmputo
La arquitectura de computadoras es el diseo conceptual y la estructura operacional fundamental de un sistema de computadora. Es decir, es un modelo y una descripcin funcional de los requerimientos y las implementaciones de diseo para varias partes de una computadora, con especial inters en la forma en que la unidad central de proceso (CPU) trabaja internamente y accede a las direcciones de memoria. Tambin suele definirse como la forma de seleccionar e interconectar componentes de hardware para crear computadoras segn los requerimientos de funcionalidad, rendimiento y costo. La segmentacin de instrucciones es similar al uso de una cadena de montaje en una fbrica de manufacturacin. En las cadenas de montaje, el producto pasa a travs de varias etapas de produccin antes de tener el producto terminado. Cada etapa o segmento de la cadena est especializada en un rea especfica de la lnea de produccin y lleva a cabo siempre la misma actividad. Esta tecnologa es aplicada en el diseo de procesadores eficientes.
Fig. 1.1 Una visin tpica de una arquitectura de computadora como una serie de capas de abstraccin: hardware, firmware, ensamblador, kernel, sistema operativo y aplicaciones. 2
A estos procesadores se les conoce como pipeline processors. Estos estn compuestos por una lista de segmentos lineales y secuenciales en donde cada segmento lleva a cabo una tarea o un grupo de tareas computacionales. Los datos que provienen del exterior se introducen en el sistema para ser procesados. La computadora realiza operaciones con los datos que tiene almacenados en memoria, produce nuevos datos o informacin para uso externo. Las arquitecturas y los conjuntos de instrucciones se pueden clasificar considerando los siguientes aspectos: Almacenamiento de operandos en la CPU: dnde se ubican los operandos aparte de la memoria. Nmero de operandos explcitos por instruccin: cuntos operandos se expresan en forma explcita en una instruccin tpica. Normalmente son 0, 1, 2 y 3. Posicin del operando: Puede cualquier operando estar en memoria?, o deben estar algunos o todos en los registros internos de la CPU. Cmo se especifica la direccin de memoria (modos de direccionamiento disponibles). Operaciones: Qu operaciones estn disponibles en el conjunto de instrucciones. Tipo y tamao de operandos y cmo se especifican.
3
1.1.1 Arquitecturas de cmputo clsicas
El modelo clsico de arquitectura de computadoras fue diseado por Jhon Von Newman que consta de los siguientes elementos: Dispositivos de entrada, de proceso, de almacenamiento y de salida Se le atribuye a Von Neuman en el ao de 1945. Su caracterstica principal es que todos los datos se almacenan primero en la memoria para poder ser ejecutados. Consta de 5 partes: ALU. MEMORIA. UNIDAD DE CONTROL (CU). DISPOSITIVOS DE E/S. BUS.
Fig. 1.2 partes de un CPU COMPONENTES: La Memoria: Constaba de 4096 palabras, cada una con 40 bits (0 o 1). * Cada palabra poda contener dos instrucciones de 20 bits o un nmero entero de 39 bits y su signo. 4
* Las instrucciones tenan 8 bits dedicados a sealar el tipo de la misma y 12 bits para especificar alguna de las 4096 palabras de la memoria. Unidad de Control: Determina cual es la siguiente instruccin a ejecutar y se la pasa al ALU. ALU (Aritmetic Logic Unit): La Unidad Aritmtica Lgica, es el TALLER donde se ejecutan las instrucciones. Acumulador: 40 bits DIAGRAMA DE VON NEUMAN. Una computadora con modelo Von Neuman realiza las siguientes funciones: 1.- Enciende el ordenador y obtiene la siguiente instruccin desde la memoria en la direccin indicada por el contador del programa y la guarda en el registro de instruccin. 2.- Aumenta el contador del programa en la longitud de la instruccin para apuntar a la siguiente. 3.- Decodifica la instruccin mediante la unidad de control. 4.- Se ejecuta la instruccin. Esta puede cambiar el valor del controlador, permitiendo as, operaciones repetitivas. El contador puede cambiar tambin cuando se cumpla una cierta condicin aritmtica, asiendo que el ordenador pueda tomar decisiones que pueden alcanzar cualquier grado de complejidad.
1.1.2 Modelo segmentado
Consiste en segmentar el procesador, descomponiendo en etapas para poder procesar una instruccin diferente en cada una de ellas y trabajar con varios a la vez. *Equivale a la composicin de funciones matemticas. *Se aplica en dos lugares de la maquina: CPU y ALU. *Es conocida como pipe- line. 5
Consta de 5 etapas: Bsqueda: se encarga de buscar la instruccin de la memoria y la coloca en el buffer, hasta que se necesita. Decodificacin: Est decodifica la instruccin determinando de que tipo es y que operacin necesita. Ejecucin: Est ejecuta la instruccin. Direccionamiento: Localiza y busca las operaciones, ya sea de registro o de memoria. Almacenamiento de resultados: escribe el resultado en el registro apropiado. 1.1.3 Arquitecturas de cmputo de multiprocesamiento Se trata de un tipo de arquitectura de computadora en que 2 o ms procesadores comparten una memoria central. Permiten que cualquier procesador trabaje en cualquier tarea sin importar su localizacin en la memoria. Puede mover fcilmente tareas entre los procesadores para garantizar un trabajo eficiente. Se compone de procesadores independientes que se comunican con la memoria a travs de un bus compartido, el cual es de uso comn y debe ser arbitrario: Para que solamente un multiprocesador lo use en cada instante de tiempo, si las computadoras con un solo multiprocesador tienden a gastar u considerable tiempo, con varios procesadores es peor, lo que es el caso de este modelo de arquitectura. Se dice que es simtrico por que todos los microprocesadores compiten en igualdad de condiciones por el acceso.
6
1.2 Anlisis de los componentes
Para empezar a realizar un anlisis de los componentes de una computadora debemos introducirnos al objeto a analizar para saber entender ms su funcionamiento. Ahora nos introduciremos dentro de la computadora y desmontndolo analizaremos las piezas que tiene. 1.2.1 Cpu Unidad Central de Proceso (CPU)
Es un circuito microscpico que interpreta y ejecuta instrucciones. Se ocupa del control y proceso de datos e las computadoras. Generalmente, la CPU es un microprocesador fabricado en un chip, un nico trozo de silicio que contiene millones de componentes electrnicos. Unidad de Control y Unidad aritmtico-lgica. Estos dos bloques forman la Unidad Central de Proceso (CPU o UCP).
Unidad de Memoria
Los dispositivos electrnicos o electromagnticos en donde se almacena la informacin recibida del exterior antes de ser procesada, y la ya procesada, constituyen la MEMORIA. En la memoria residen el programa que ser procesado, los datos para el proceso y los resultados del proceso.
ALU La informacin se procesa matemticamente y se compara lgicamente dentro de la Unidad Aritmtico-Lgica, conocida como ALU.
7
Unidad de Control Se encarga de que las operaciones se realicen en las secuencias que correspondan (por ejemplo no calcular antes de recibir los datos, no comunicar informacin al exterior mientras no se terminen los clculos, etc.). Estructura del CPU El CPU debe: *Extraer instrucciones *Interpretar instrucciones * Extraer datos * Procesar datos * Escribir datos Registros El CPU debe tener un espacio de trabajo (almacenamiento temporal) Llamados registros La cantidad y funcin vara dependiendo del diseo del procesador Una de las decisiones ms importantes de diseo El nivel ms alto en la jerarqua de memoria
8
1.2.1.1Arquitecturas cpu
Existen dos tipos ms comunes:
CISC (Complex Instruction Set Computer): computadoras con un conjunto de instrucciones complejas. * Facilitan las instrucciones entre los operandos * Ejecutan un microprograma dentro de la CPU de una manera muy rpida a 8 MHZ y sus sistema de trabajo se basa bsicamente en la microprogramacin. * A este grupo pertenecen las INTEL y AMD.
RISC (Reduced Instruction Set Computer): Computadoras con un conjunto de instrucciones reducidas. * Se basa en instrucciones simples y poco complejas. * Facilita la segmentacin y el paralelismo en la ejecucin de instrucciones. * Utiliza un sistema de direcciones no destructivas en la memoria RAM. Organizacin Y Arquitectura Interna De La CPU Diagrama de bloques Los bloques funcionales bsicos son: la unidad de procesamiento central (CPU), la memoria principal, y el procesador de Entrada - Salida. Unidad de proceso central: esta es la responsable de la interpretacin y ejecucin de instrucciones contenidas en la memoria principal, las comunicaciones entre la CPU y la memoria principal se realizan a travs de 2 canales funcionalmente distintos: el de direcciones y el de datos. 9
Para introducir en la memoria, una instruccin especifica, la CPU enva a dicha memoria la direccin de la instruccin por el canal de direcciones y recibe por el mismo medio la instruccin que est en esa direccin. Parte de la instruccin es utilizada por la CPU para identificar la operacin. Esta parte se llama cdigo de operacin de la instruccin. La informacin restante se utiliza para determinar la o las localidades de los datos con los cuales se va a efectuar la operacin. La accin de leer una instruccin en la CPU y prepararla para su ejecucin se denomina ciclo de bsqueda. Para completar una instruccin la CPU decodifica el cdigo de operacin, genera las seales de control que se necesitan para introducir los operandos requeridos y controla la ejecucin de la instruccin. Registro e instrucciones de la CPU: -Registros -Instrucciones -Aritmtica y Lgica -Movimientos de datos -Operaciones de datos en bloque -Instrucciones de control de programa -Instrucciones de Entrada-Salida
La CPU contiene un conjunto de localidades de almacenamiento temporal de datos de alta velocidad llamada registro. Algunos de los registros estn dedicados 10
al control, y solo la unidad de control tiene acceso a ellos. Los registros restantes son los registros de uso general y el programador es el usuario que tiene acceso a ellos. Dentro del conjunto bsico de registros de control se deben incluir a los siguientes: Contador de programa (PC). Registro de direcciones de la memoria (MAR). Registro de datos (RD). Registro de instrucciones (ER). Palabra de estado de programa (PSW). La funcin del PC consiste en seguir la pista de la instruccin por buscar (capturar) en el siguiente ciclo de mquina, por lo tanto contiene la direccin de la siguiente instruccin por ejecutar. El PC es modificado dentro del ciclo de bsqueda de la instruccin actual mediante la suma de una constante. El nmero que se agrega al PC es la longitud de una instruccin en palabras. Por lo tanto, si una instruccin tiene una palabra de longitud se agrega 1 al PC, si una instruccin tiene dos palabras de largo se agrega 2, y as sucesivamente.
1.2.1.2 Tipos cpu
La caracterstica distintiva de cualquier sistema de computacin es su tamao, no su tamao fsico, sino su capacidad de cmputo. El tamao o capacidad de cmputo es la cantidad de procesamiento que un sistema de computacin puede realizar por unidad de tiempo.
11
Macro computador: Mquina de enormes dimensiones, que usan las grandes organizaciones y que tienden a ser invisibles para le pblico en general, ya que estn escondidas en salas con clima controlado. Son capaces de comunicarse simultneamente con varios usuarios por la tcnica de tiempo compartido; ste tambin permite que los usuarios con diversas necesidades computacionales compartan costosos equipos de computacin.
Minicomputador: Tambin es una mquina multiusuario (es decir que usa la tcnica de tiempo compartido). Es ms pequeo y econmico que un macro computador, pero mayor y ms potente que una computadora personal.
Estacin de trabajo: Computador de escritorio que tiene el poder de un minicomputador, pero a una fraccin del costo. Es de uso muy comn entre personas cuyas tareas requieren gran cantidad de clculos (cientficos, analistas burstiles, ingenieros). Aunque muchas estaciones de trabajo son capaces de dar servicio a varios usuarios al mismo tiempo, en la prctica a menudo son usadas por una sola persona a la vez.
Microcomputadora o Computador personal: PC (Personal computer). Computador habitualmente monousuario (aunque puede configurarse para usuarios mltiples) de propsito general. En una micro se monta el microprocesador, los circuitos electrnicos para manejar los dispositivos perifricos y los chips de memoria en un solo tablero de circuitos, el tablero de sistema o tablero madre (mother board). El microprocesador y los otros chips se montan en una portadora antes de fijarlos al tablero madre. Las portadoras tienen conectores de agujas de tamao estndar que permiten que se conecten los chips en el tablero de sistema. La mother board es lo que distingue a una computadora de otra. La PC puede ser de escritorio o porttil. Dentro de los computadores porttiles encontramos:
12
Laptop: alimentado por bateras, con pantalla plana y que pueden cargarse como un portafolios. Notebook: Ms livianas que las anteriores y que pueden transportarse dentro de un portafolios. Palmtop: o computador manual, o PC de bolsillo. Tan pequeas que caben en un bolsillo. Atiende las necesidades de usuarios para los cuales la movilidad es ms valiosa que un teclado o una pantalla de tamao usual.
1.2.1.3 Caracteristicas cpu
Las caractersticas que un CPU tiene son:
Memoria Unidad aritmtica lgica Unidad o procesador de control Memoria Principal (interna o central). Se almacenan datos y programas, hay dos operaciones que se hacen en la memoria (lee y escribe) entonces se dice que es donde almacena, se lee y se escribe. Es un conjunto de clulas numeradas y dos registros especiales con los que realiza las transacciones. El registro de direccin que indica el nmero de la clula afectada y el de intercambio que contiene la informacin leda o la que hay que escribir en la clula de cuestin. 13
La memoria central o simplemente memoria (interna o principal) se utiliza para almacenar informacin. En general, la informacin almacenada en memoria puede ser de dos tipos: las instrucciones de un programa y los datos con los que se operan las instrucciones. Ejemplo: Para que un programa se pueda ejecutar (correr, rodar, funcionar,), debe ser situado en la memoria, en una operacin denominada carga (load) del programa. La memoria central de una computadora es una zona de almacenamiento organizada en centenares o millares de unidades de almacenamiento individual celdas. La unidad elemental de memoria se llama byte (octeto). Un byte tiene la capacidad de almacenar un carcter de informacin, y est formado por un conjunto de unidades ms pequeas de almacenamiento denominadas bits, que son dgitos binarios (0 1). Generalmente se acepta que un byte contiene ocho bits. Por consiguiente, si se desea almacenar la frase la computadora utilizara exactamente 23 bytes consecutivos de memoria. Obsrvese que adems de las letras, existen cuatro espacios en blanco y un punto (un espacio es un carcter que emplea tambin un byte). De modo similar, el nmero del pasaporte P57487891 ocupara 9 bytes. Estos datos se llaman alfanumricos y pueden constar de alfabeto, Dgitos o incluso caracteres especiales (smbolos: $, #,*, etc.). Mientras que cada carcter de un dato alfanumrico se almacena en un byte, la informacin numrica se almacena de un modo diferente. Los datos numricos ocupan 2,4 e incluso 8 bytes consecutivos, dependiendo del tipo de dato numrico. Existen dos conceptos importantes asociados a cada byte o posicin de memoria: su direccin y contenido. Cada celda o byte tiene asociada una nica direccin que indica su posicin relativa en memoria mediante la cual se puede acceder a la 14
posicin para almacenar o recuperar informacin. La informacin almacenada en una posicin de memoria es su contenido. El contenido de estas direcciones o posiciones de memoria se llaman palabras, de modo que existen palabras de 8,16, 32, y 64 bits. Por consiguiente, si trabaja con una maquina de 32 bits, es decir, 32 dgitos, bien ceros o unos. Siempre que una nueva informacin se almacena en una posicin, se destruye (desaparece) cualquier informacin que en ella hubiera y no se puede recuperar. La direccin es permanente y nica, el contenido puede cambiar mientras se ejecuta un programa. La memoria central de una computadora puede tener desde unos centenares de millares de bytes hasta millones de bytes. Como el byte es una unidad elemental de almacenamiento, se utilizan mltiplos para definir el tamao de la memoria central: Kilo-byte (KB o Kb) igual a 1.024 bytes (210) prcticamente se toman 1.000 y Mega byte (MB o Mb) igual a 1.024 x 1.024 bytes (220) prcticamente se considera un 1.000.000. Las computadoras personales tipo PC tienen memorias centrales desde 512 640 k aunque es frecuentemente ver PCs con memorias de 1,2, 4, 12, etc., Mb. Pasos que se hacen en la lectura: 1.- Almacenar la direccin de la clula en la que se encuentra la informacin a leer datos se almacena en el registro de direccin. 2.-Cambiar el registro de intercambio la informacin contenida en la clula apuntada por el registro de direccin. 15
3.-Transferir el contenido de registro de intercambio al registro de la CPU que corresponda. Pasos para la escritura: 1.- Transferir el registro de intercambio la informacin a escribir. 2.- Almacenar la segunda direccin de la clula receptora de la informacin en el registro de direccin. 3.- Cargar el contenido de registro de intercambio en la clula apuntada por el registro de direccin. UAL (UNIDAD ARITMETICA LOGICA). La unidad aritmtica lgica opera los datos que recibe siguiendo las indicaciones por la unidad de control. Esta unidad puede realizar operaciones aritmticas lgicas, por ejemplo: el de realizar la suma, la forma en que realiza la operacin. 1.- Se debe tener el cdigo de operacin que indique la operacin a efectuar en este caso el cdigo de suma. 2.- Direccin de la clula en la que se encuentra almacenado el primer sumando. 3.- Direccin del segundo sumando. 4.- Direccin de la clula en la que se almacena el resultado. Instrucciones para efectuar la suma. a) Cargar el primer operando en el acumulador. b) Sumar el segundo operando con el contenido del acumulador. 16
c) Cargar el contenido del acumulador en la direccin del resultado. Unidad De Control (La unidad que va decidir controlar). La unidad de control es el autentico cerebro que controla y coordina el funcionamiento de la computadora. A raz de la interpretacin de las instrucciones que integran el programa esta unidad genera el conjunto de rdenes elementales necesarias para que se realice la tarea necesitada. Pasos para la unidad de control. 1. Se extrae de la memoria principal la instruccin a ejecutar esa informacin es almacenada en el contador de instrucciones, la informacin que se almacena es la prxima instruccin a ejecutar en el registro de instruccin propiamente dicha. 2.- Una vez conocido el cdigo de la operacin la unidad de control ya sabe que circuitos de la UAL deben de intervenir pueden establecerse las conexiones elctricas necesarias a travs del secuenciador. 3.- Extrae de la memoria principal los datos necesarios para ejecutar la instruccin en proceso 4.- Ordena la AUL que efecta las operaciones el resultado de este es depositado en el acumulador de la AUL. 5.- Si la instruccin a proporcionado nuevos datos estos son almacenados en la memoria principal. 6.- Incrementa en una unidad el contenido del contador de instrucciones a ejecutar. Unidades Perifricas 17
Unidades de comunicacin Memorias auxiliares. Las unidades de comunicacin: Permiten el dialogo con el exterior que son las de entrada y salida ejemplo: teclado, monitor impresora, mouse. Las memorias auxiliares: Sirven para almacenar grandes volmenes de datos de forma permanente por ejemplo: Unidades de discos y cintas magnticas. La comunicacin entre los perifricos y la computadora se realizan atreves de los canales. 1.2.1.4 Funcionamiento La Unidad central de proceso o CPU, se puede definir como: Un circuito microscpico que interpreta y ejecuta instrucciones. La CPU se ocupa del control y el proceso de datos en los ordenadores. Habitualmente, la CPU es un microprocesador fabricado en un chip, un nico trozo de silicio que contiene millones de componentes electrnicos. El microprocesador de la CPU est formado por una unidad aritmtico lgica que realiza clculos y comparaciones, y toma decisiones lgicas (determina si una afirmacin es cierta o falsa mediante las reglas del lgebra de Boole); por una serie de registros donde se almacena informacin temporalmente, y por una unidad de control que interpreta y ejecuta las instrucciones. Para aceptar rdenes del usuario, acceder a los datos y presentar los resultados, la CPU se comunica a travs de un conjunto de circuitos o conexiones llamado bus. El bus conecta la CPU a los dispositivos de almacenamiento (por ejemplo, un disco duro), los dispositivos de entrada (por ejemplo, un teclado o un ratn) y los dispositivos de salida (por ejemplo, un monitor o una impresora). 18
Procesamiento de la CPU Una CPU procesa informacin almacenada en los bytes de la memoria. Esta informacin puede ser datos o instrucciones. Un dato es una representacin binaria de una letra, un nmero, o un color; mientras que una instruccin le dice a la CPU que hacer con ese dato, es decir si sumarlo, si restarlo, moverlo, etc. Como dijimos anteriormente, la CPU realiza tres operaciones bsicas con los datos: puede leerlos, procesarlos, y escribirlos en la memoria. Es decir que, la CPU necesita solo cuatro elementos para realizar dichas operaciones con los datos: Las instrucciones, un puntero a las instrucciones (Instruccin Pointer), algunos registros, y la unidad aritmtica lgica. El Instruccin Pointer le indica a la CPU en qu lugar de la memoria necesita ser ubicada la instruccin. Los Registros son lugares de almacenamiento temporario ubicados en la CPU. Un registro contiene datos que esperan ser procesados por cualquier instruccin, o datos que ya han sido procesados, como por ejemplo, la suma o resta de algn nmero, etc. La unidad aritmtica lgica es una especie de calculadora que ejecuta funciones matemticas y lgicas dedicadas a las instrucciones. Por otro lado, la CPU contiene algunas partes adicionales que ayudan a dichos componentes principales a realizar el trabajo: Un buscador de instrucciones (fetch), que recoge las instrucciones de la RAM o un rea de memoria localizada en la CPU. 19
Un decodificador de instrucciones, que toma la instruccin desde el buscador y la traslada hasta que la CPU la entienda. Luego determina cuales son los pasos necesarios para cumplir con dicha instruccin. La unidad de control, maneja y coordina todas las operaciones del chip. Este le permite saber a la unidad aritmtica lgica cuando debe calcular, al buscador cuando debe grabar una cifra, y al decodificador cuando trasladar la cifra dentro de una instruccin. 1.2.2 Memoria
La memoria es un conjunto de registros direccionales en donde residen instrucciones y datos.
Fig. 1.3 partes de una memoria RAM El medio de almacenamiento ms comn es el disco magntico. El dispositivo que contiene al disco se llama unidad de disco (drive). La mayora de las computadoras personales tienen un disco duro no removible. Adems usualmente hay una o dos unidades de disco flexible, las cuales le permiten usar discos flexibles removibles. El disco duro normalmente puede guardar muchos ms datos que un disco flexible y por eso se usa disco duro como el archivero principal de la computadora. Los discos flexibles se usan para cargar programas nuevos, o datos al disco duro, intercambiar datos con otros usuarios o hacer una copia de respaldo de los datos que estn en el disco duro. 20
Una computadora puede leer y escribir informacin en un disco duro mucho ms rpido que en el disco flexible. La diferencia de velocidad se debe a que un disco duro est construido con materiales ms pesados, gira mucho ms rpido que un disco flexible y est sellado dentro de una cmara de aire, las partculas de polvo no pueden entrar en contacto con las cabezas. La memorizacin consiste en la capacidad de registrar sea una cadena de caracteres o de instrucciones (programa) y tanto volver a incorporarlo en determinado proceso como ejecutarlo bajo ciertas circunstancias. El computador dispone de varios dispositivos de memorizacin: La memoria ROM La memoria RAM Las memorias externas El acumulador 1.2.2.1Arquitecturas La arquitectura (estructura) interna de un CD-ROM es muy compleja y no necesitamos conocer todos sus detalles. Sin embargo es constructivo observar un diagrama simplificado de la estructura interna. Existen cuatro partes bsicas: decodificador de renglones, arreglo de registros y buffer de salida.
Arreglo de registros.
El arreglo de registros almacena los datos que han sido programados en la ROM. Cada registro contiene un nmero de celdas de memoria que es igual al tamao de la palabra. En este caso, cada registro almacena una palabra de 8 bits. Los registros se disponen en un arreglo de matriz< cuadrada que es comn a muchos circuitos de semiconductor. Podemos especificar la posicin de cada registro como una ubicada en un rengln y una columna especficos. 21
Las 8 salidas de datos de cada registro se conectan a un canal de datos interno que corre atreves de todo el circuito. Cada registro tiene dos entradas de habilitacin (e); ambas tienen que ser altas a fin de que los datos del registro sean colocados en el canal. Decodificadores de direcciones. El cdigo de direccin aplicado a3, a2, a1, a0, determina que registro ser habilitado para colocar su palabra de datos en 8 bits en el canal. Los bits de direccin a1, a0, se alimentan de un decodificador uno de 4 que activa una lnea de seleccin de rengln, y los bits de direccin a3, a2, se alimentan de un segundo decodificador uno de cuatro que activa una lnea de seleccin de columna. Solamente un registro estar en el rengln y la columna seleccionados por las entradas de difraccin, y estar habilitado. Buffer de salida. El registro habilitado por las entradas de seleccin coloca el dato que tiene sobre el canal de datos. Estos datos entraran en los buffers de salida mismos que se encargan de trasmitirlos hacia las salidas externas siempre y cuando cs este en bajo. Si cs esta en alto, los buffers de salida se encuentran en el estado de alta impedancia, con lo que d7 hasta d0 estarn flotando.
Arquitectura de la memoria (RAM) Como sucede con la ROM, es til pensar que la RAM consta de varios registros, cada uno de los cuales almacenan una sola palabra de datos y tiene una direccin nica. Las RAM comnmente vienen con capacidades de palabras de 1k, 4k, 8k, 16k, 64k, 128k, 256k, y 1024k, y tamaos de palabras de 1, 4, u 8 bits.
22
Operacin de lectura. El cdigo de direccin selecciona un registro del circuito de memoria para leer o escribir. A fin de leer el contenido de registro seleccionado, la entrada lectura/escritura (r/-w)* debe ser un 1. Adems, la entrada (cs) seleccin de ci debe ser activada (un 0 de este caso). La combinacin de r/-w es igual a 1 y cs es igual a 0 habilita los buffers de salida de manera que el contenido de registro seleccionado aparecer en las cuatro salidas de datos. r/-w igual a 1 tambin deshabilita los buffers de entrada de manera que las entradas de datos no afecten la memoria durante la operacin de lectura. Operacin de escritura. Para escribir una nueva palabra de cuatro bits en el registro seleccionado se requiere que r/-w igual a 0 y cs igual 0. Esta combinacin habilita los buffers de entrada de manera que la palabra de cuatro bits aplicada a las entradas de datos se cargara en el registro seccionado. r/-w igual a 0 tambin deshabilita los buffers de salida que son de tres estados, de manera que las salidas de datos se encuentran en el estado de alta-z, durante una operacin de escritura. La operacin de escritura, desde luego, destruye la palabra que antes estaba almacenada en la direccin.
Seleccin de ci. Muchos circuitos de memoria tienen una o ms entradas cs que se usan para habilitar o deshabilitar el circuito en su totalidad. En el modo deshabilitado todas las salidas y entradas de datos se deshabilitas (alta-z) de manera que no puede tener lugar no la operacin de lectura ni de escritura. En este modo en contenido de la memoria no se afecta. La razn para tener entradas cs ser ms clara cuando se combinen ci de memoria para tener mayores memorias. Observe que 23
muchos fabricantes llaman a estas entradas ce (habilitacin de circuito). Cuando las entradas cs o ce se encuentran en un estado activo, se dice que el ci de memoria a sido seleccionado; de otro modo se dice que no est seleccionado. Muchos ci de memoria estn diseados para consumir una potencia mucho menor cuando estn seleccionados. en sistemas de memoria grandes, para una operacin dada de memoria, sern seleccionados una o ms ci de memoria mientras que los dems no. Terminales comunes de entrada/ salida. A fin de conservar terminales en un encapsulado de ci, los fabricantes a menudo combinan las funciones de entradas y salida de datos utilizando terminales comunes de entrada/salida. La entrada r/-w controla la funcin de estas terminales e/s. durante una operacin de lectura, las terminales de entrada y salida actan como salida de datos que reproducen el contenido de la localidad de direccin seleccionada. Durante una operacin de escritura, las terminales de s/e actan como entrada de datos. A las cuales se aplican los datos al ser escritos. Arquitectura de la memoria (ROM) ROM programable y borrable. Una eprom puede ser programada por el usuario y tambin puede borrarse y reprogramarse tantas veces como desee. Una vez programada, la eprom es una memoria no voltil que contendr sus datos almacenados indefinidamente. El proceso para programar una eprom implica la aplicacin de niveles de voltaje especiales (comnmente en un orden de 10 a 25 volts) a las entradas adecuadas del circuito en una cantidad de tiempo especificada (por lo general 50 minutos) por la localidad de direccin. El proceso de programacin generalmente es efectuado por un circuito especial de programacin que est separando del circuito en el cual la eprom eventualmente trabajara. El proceso de programacin completo puede llevar barios minutos para un microcircuito eprom. 24
En una eprom las celdas de almacenamiento son transistores mosfet que tienen una compuerta de cilicio sin ninguna conexin elctrica (es decir, una compuerta flotante). En un estado normal, cada transistor est apagado y cada celda guarda un 1 lgico un transistor puede encenderse mediante la aplicacin de un curso de programacin de alto voltaje, el cual inyecta electrones de alta energa en la regin formada por la compuerta flotante. Estos electrones permanecen en esta regin una vez que ha finalizado el pulso ya que no existe ninguna trayectoria de descarga. Una vez que sea programado una celda de la eprom se puede borrar su contenida exponiendo la eprom a la luz ultravioleta (uv), la cual se aplica a travs de la ventana que se encuentra sobre el encapsulado del circuito. La luz (uv) produce una foto corriente que va desde la compuerta flotante hacia el sustrato de cilicio; con esto se apaga el transistor y se lleva de nuevo la celda hacia el estado uno lgico. Este proceso de borrado requiere entre 15 a 20 minutos de exposicin a los rayos (uv). Desafortunadamente, no existe ninguna forma de borrar solo algunas celdas; la luz (uv) borra todas las celdas al mismo tiempo por lo que una eprom barrada almacena solamente unos lgicos. Una vez borrada puede volverse a programar. 1.2.2.2 Tipos memorias
Memoria ram RAM: Siglas de Random Access Memory, un tipo de memoria a la que se puede acceder de forma aleatoria; esto es, se puede acceder a cualquier byte de la memoria sin pasar por los bytes precedentes. RAM es el tipo ms comn de memoria en las computadoras y en otros dispositivos, tales como las impresoras. Hay dos tipos bsicos de RAM: DRAM (Dynamic RAM), RAM dinmica 25
SRAM (Static RAM), RAM esttica Los dos tipos difieren en la tecnologa que usan para almacenar los datos. La RAM dinmica necesita ser refrescada cientos de veces por segundo, mientras que la RAM esttica no necesita ser refrescada tan frecuentemente, lo que la hace ms rpida, pero tambin ms cara que la RAM dinmica. Ambos tipos son voltiles, lo que significa que pueden perder su contenido cuando se desconecta la alimentacin.
En el lenguaje comn, el trmino RAM es sinnimo de memoria principal, la memoria disponible para programas. En contraste, ROM (Read Only Memory) se refiere a la memoria especial generalmente usada para almacenar programas que realizan tareas de arranque de la mquina y de diagnsticos. La mayora de los computadores personales tienen una pequea cantidad de ROM (algunos Kbytes). De hecho, ambos tipos de memoria (ROM y RAM) permiten acceso aleatorio. Sin embargo, para ser precisos, hay que referirse a la memoria RAM como memoria de lectura y escritura, y a la memoria ROM como memoria de solo lectura. Se habla de RAM como memoria voltil, mientras que ROM es memoria no-voltil. La mayora de los computadores personales contienen una pequea cantidad de ROM que almacena programas crticos tales como aquellos que permiten arrancar la mquina (BIOS CMOS). Adems, las ROM son usadas de forma generalizada en calculadoras y dispositivos perifricos tales como impresoras laser, cuyas fonts estn almacenadas en ROMs. Tipos de memoria ram V RAM: Siglas de Vdeo RAM, una memoria de propsito especial usada por los adaptadores de vdeo. A diferencia de la convencional memoria RAM, la VRAM puede ser accedida por dos diferentes dispositivos de forma simultnea. Esto 26
permite que un monitor pueda acceder a la VRAM para las actualizaciones de la pantalla al mismo tiempo que un procesador grfico suministra nuevos datos. VRAM permite mejores rendimientos grficos aunque es ms cara que la una RAM normal.
Fig. 1.4 ejemplo de una memoria VRAM SIMM: Siglas de Single In line Memory Module, un tipo de encapsulado consistente en una pequea placa de circuito impreso que almacena chips de memoria, y que se inserta en un zcalo SIMM en la placa madre o en la placa de memoria. Los SIMM son ms fciles de instalar que los antiguos chips de memoria individuales, y a diferencia de ellos son medidos en bytes en lugar de bits. El primer formato que se hizo popular en los computadores personales tena 3.5 de largo y usaba un conector de 32 pins. Un formato ms largo de 4.25, que usa 72 contactos y puede almacenar hasta 64 megabytes de RAM es actualmente el ms frecuente. Un PC usa tanto memoria de nueve bits (ocho bits y un bit de paridad, en 9 chips de memoria RAM dinmica) como memoria de ocho bits sin paridad. En el primer caso los ocho primeros son para datos y el noveno es para el chequeo de paridad.
27
Fig. 1.5 memoria SIMM de 72 contactos DIMM: Siglas de Dual In line Memory Module, un tipo de encapsulado, consistente en una pequea placa de circuito impreso que almacena chips de memoria, que se inserta en un zcalo DIMM en la placa madre y usa generalmente un conector de 168 contactos.
Fig.1.6 memoria DIMM de 128mb DIP: Siglas de Dual In line Package, un tipo de encapsulado consistente en almacenar un chip de memoria en una caja rectangular con dos filas de pines de conexin en cada lado.
Fig. 1.7 memoria DIP RAM Disk: Se refiere a la RAM que ha sido configurada para simular un disco duro. Se puede acceder a los ficheros de un RAM disk de la misma forma en la 28
que se acceden a los de un disco duro. Sin embargo, los RAM disk son aproximadamente miles de veces ms rpidos que los discos duros, y son particularmente tiles para aplicaciones que precisan de frecuentes accesos a disco. Dado que estn constituidos por RAM normal. Los RAM disk pierden su contenido una vez que la computadora es apagada. Para usar los RAM Disk se precisa copiar los ficheros desde un disco duro real al inicio de la sesin y copiarlos de nuevo al disco duro antes de apagar la mquina. Observe que en el caso de fallo de alimentacin elctrica, se perdern los datos que hubiera en el RAM disk. El sistema operativo DOS permite convertir la memoria extendida en un RAM Disk por medio del comando VDISK, siglas de Virtual DISK, otro nombre de los RAM Disks.
Fig. 1.8 memoria RAMDISK modelo gigabyteiram SRAM: Siglas de Static Random Access Memory, es un tipo de memoria que es ms rpida y fiable que la ms comn DRAM (Dynamic RAM). El trmino esttica viene derivado del hecho que necesita ser refrescada menos veces que la RAM dinmica. Los chips de RAM esttica tienen tiempos de acceso del orden de 10 a 30 nanosegundos, mientras que las RAM dinmicas estn por encima de 30, y las memorias bipolares y ECL se encuentran por debajo de 10 nanosegundos. 29
Un bit de RAM esttica se construye con un --- como circuito flip-flop que permite que la corriente fluya de un lado a otro basndose en cul de los dos transistores es activado. Las RAM estticas no precisan de circuitera de refresco como sucede con las RAM dinmicas, pero precisan ms espacio y usan ms energa. La SRAM, debido a su alta velocidad, es usada como memoria cach.
Fig. 1.9 memorias estticas SRAM, SR6116LP-100, 6264LP-70 DRAM: Siglas de Dynamic RAM, un tipo de memoria de gran capacidad pero que precisa ser constantemente refrescada (re-energizada) o perdera su contenido. Generalmente usa un transistor y un condensador para representar un bit Los condensadores debe de ser energizados cientos de veces por segundo para mantener las cargas. A diferencia de los chips firmware (ROMs, PROMs, etc.) las dos principales variaciones de RAM (dinmica y esttica) pierden su contenido cuando se desconectan de la alimentacin. Contrasta con la RAM esttica. Algunas veces en los anuncios de memorias, la RAM dinmica se indica errneamente como un tipo de encapsulado; por ejemplo se venden DRAMs, SIMM y SIPs, cuando debera decirse DIPs, SIMM y SIPs los tres tipos de encapsulado tpicos para almacenar chips de RAM dinmica. Tambin algunas veces el trmino RAM (Random Access Memory) es utilizado para referirse a la DRAM y distinguirla de la RAM esttica (SRAM) que es ms rpida y ms estable que la RAM dinmica, pero que requiere ms energa y es ms cara 30
Fig.1. 10 ejemplo de una memoria DRAM SDRAM: Siglas de Synchronous DRAM, DRAM sncrona, un tipo de memoria RAM dinmica que es casi un 20% ms rpida que la RAM EDO. SDRAM entrelaza dos o ms matrices de memoria interna de tal forma que mientras que se est accediendo a una matriz, la siguiente se est preparando para el acceso. SDRAM-II es tecnologa SDRAM ms rpida esperada para 1998. Tambin conocido como DDR DRAM o DDR SDRAM (Doubl Data Rate DRAM o SDRAM), permite leer y escribir datos a dos veces la velocidad bus.
Fig. 1.11 Mdulo de Memoria 512MB DIMM SDRAM ECC para OptiPlex GX240 FPM: Siglas de Fast Page Mode, memoria en modo paginado, el diseo ms comn de chips de RAM dinmica. El acceso a los bits de memoria se realiza por medio de coordenadas, fila y columna. Antes del modo paginado, era ledo pulsando la fila y la columna de las lneas seleccionadas. Con el modo pagina, la fila se selecciona solo una vez para todas las columnas (bits) dentro de la fila, dando como resultado un rpido acceso. La memoria en modo paginado tambin es llamada memoria de modo Fast Page o memoria FPM, FPM RAM, FPM DRAM. 31
El trmino fast fu aadido cuando los ms nuevos chips empezaron a correr a 100 nanosegundos e incluso ms.
Fig. 1.12 modulos memoria fpm-ram de 72 contactos EDO: Siglas de Extended Data Output, un tipo de chip de RAM dinmica que mejora el rendimiento del modo de memoria Fast Page alrededor de un 10%. Al ser un subconjunto de Fast Page, puede ser substituida por chips de modo Fast Page. Sin embargo, si el controlador de memoria no est diseado para los ms rpidos chips EDO, el rendimiento ser el mismo que en el modo Fast Page. EDO elimina los estados de espera manteniendo activo el buffer de salida hasta que comienza el prximo ciclo. BEDO (Burst EDO) es un tipo ms rpido de EDO que mejora la velocidad usando un contador de direccin para las siguientes direcciones y un estado pipeline que solapa las operaciones. RAM Esttica o SDRAM, que no necesita ser restaurada, por lo que se vuelve ms rpida pero tambin ms costosa que la DRAM. La SDRAM surgi junto con los microprocesadores Pentium II, pero son utilizadas tambin para Pentium III, AMD K6, K62, K63, Athlon, Duron y dems variantes. Pueden funcionar a 66, 100 o a 133 MHz (PC 66?, PC 100? o PC 133? respectivamente) En trminos prcticos, es buena para la mayora de los usos de empresa o domsticos, y es ms fcil de utilizar. 32
Fig. 1.13 memoria EDO siemens 16Mb HM5117805BJ6. Memoria rom ROM es el acrnimo de Read-Only Memory (memoria de slo lectura). Es una memoria de semiconductor no destructible, es decir, que no se puede escribir sobre ella, y que conserva intacta la informacin almacenada, incluso en el caso de interrupcin de corriente (memoria no voltil). La ROM suele almacenar la configuracin del sistema o el programa de arranque del ordenador. La memoria de slo lectura o ROM es utilizada como medio de almacenamiento de datos en los ordenadores. Debido a que no se puede escribir fcilmente, su uso principal reside en la distribucin de programas que estn estrechamente ligados al soporte fsico del ordenador, y que seguramente no necesitarn actualizacin. Por ejemplo, una tarjeta grfica puede realizar algunas funciones bsicas a travs de los programas contenidos en la ROM. Hay una tendencia a poner cada vez menos programas en la esttica ROM, y ms en los discos, haciendo los cambios mucho ms fciles. Los ordenadores domsticos a comienzos de los 80 venan con todo su sistema operativo en ROM. No haba otra alternativa razonable ya que las unidades de disco eran generalmente opcionales. La actualizacin a una nueva versin significa usar un soldador o un grupo de interruptores DIP y reemplazar el viejo chip de ROM por uno nuevo. En el ao 2000 los sistemas operativos en general ya no van en ROM. Todava los ordenadores pueden dejar algunos de sus programas en memoria ROM, pero incluso en este caso, es ms frecuente que vaya en memoria flash. 33
Los telfonos mviles y los asistentes personales digitales (PDA) suelen tener programas en memoria ROM (o, por lo menos en memoria flash). Algunas de las consolas de videojuegos que utilizan programas basados en la memoria ROM son la Super Nintendo, la Nintendo 64, la Mega Drive o la Game Boy. Estas memorias ROM, pegadas a cajas de plstico aptas para ser utilizadas e introducidas repetidas veces, son conocidas como cartuchos. Por extensin la palabra ROM puede referirse tambin a un archivo de datos que contenga una imagen del programa que se distribuye normalmente en memoria ROM, como una copia de un cartucho de videojuego. Una razn de que todava se utilice la memoria ROM para almacenar datos es la velocidad ya que los discos son ms lentos. An ms importante, no se puede leer un programa que es necesario para ejecutar un disco desde el propio disco. Por lo tanto, la BIOS, o el sistema de arranque oportuno del ordenador normalmente se encuentran en una memoria ROM. La memoria RAM normalmente es ms rpida de leer que la mayora de las memorias ROM, por lo tanto el contenido ROM se suele trasvasar normalmente a la memoria RAM cuando se utiliza. Sobre todo lectura Adems de los chips clsicos de memoria ROM puros, hay ROM llamada de sobre todo lectura (del ingls, Read-Mostly Memory). Esta pueden ser escrita durante su realizacin, pero adems se puede cambiar su contenido despus. Algunos ejemplos: Memoria PROM Memoria EPROM Memoria EEPROM Memoria flash 34
Fig.1.14 El Chip de Memoria ROM se encuentra inserto en el motherboard y es el que contiene, entre otras cosas, la informacin para que arranque el PC. PROM: es el acrnimo de Programable Read-Only Memory (ROM programable). Es una memoria digital donde el valor de cada bit depende del estado de un fusible (o antifusible), que puede ser quemado una sola vez. Estas memorias son utilizadas para grabar datos permanentes en cantidades menores a las ROMs, o cuando los datos deben cambiar en muchos o todos los casos.
Fig. 1.15 una vez que ha sido programada no puede reprogramarse EPROM: son las siglas de Erasable Programable Read-Only Memory (ROM borrable programable). Es un tipo de chip de memoria ROM inventado por el ingeniero Dov Frohman que retiene los datos cuando la fuente de energa se apaga. En otras palabras, es no voltil.
Fig.1.16 ejemplo de una memoria eprom 35
EEPROM: son las siglas de electrically-erasable programable read-only Memory (ROM programable y borrable elctricamente), en espaol o castellano se suele referir al hablar como E.
PROM: en ingls E-Squared-PROM. Es un tipo de memoria ROM que puede ser programado, borrado y reprogramado elctricamente, a diferencia de la EPROM que ha de borrarse mediante rayos ultravioletas. Aunque una EEPROM puede ser leda un nmero ilimitado de veces, slo puede ser borrada y reprogramada entre 100.000 y 1.000.000 de veces. La Memoria flash es una forma evolucionada de la memoria EEPROM que permite que mltiples posiciones de memoria sean escritas o borradas en una misma operacin de programacin mediante impulsos elctricos, frente a las anteriores que slo permite escribir o borrar una nica celda cada vez. Por ello, flash permite funcionar a velocidades muy superiores cuando los sistemas emplean lectura y escritura en diferentes puntos de esta memoria al mismo tiempo.
1.2.2.3Caracteristicas memorias Algunas de las caractersticas fundamentales de las memorias (de cualquier tipo) son las que a continuacin detallar detenidamente en los siguientes conceptos. Volatilidad Se dice que la informacin almacenada en una memoria es voltil siempre y cuando corra el riesgo de verse alterada en caso de que se produzca algn fallo de suministro de energa elctrica (memorias biestables). No son voltiles aquellas en las cuales la informacin, independientemente de que exista algn fallo en el fluido elctrico, permanece inalterada. 36
Dicho de otra manera, cualquier de stas dos memorias (RAM y ROM) es voltil por su incapacidad de permanecer inalterada de cara a cualquier fallo elctrico que presente la misma. Por sta simple razn especfica, las memorias RAM y ROM son voltiles. Tiempo de acceso Es el tiempo que transcurre desde el instante en que se lanza la operacin de lectura en la memoria y el instante en que se dispone de la primera informacin buscada. En la memoria principal, este tiempo es, en principio, independiente de la direccin en la que se encuentre la informacin a la cual queremos acceder. Se puede ir un poco ms al grano diciendo que el tiempo de acceso es el tiempo requerido o necesitado para realizar cualquier operacin, sea lectura o escritura. Es simplemente eso, el tiempo que se solicita a la memoria para poder ejecutar cualquier operacin especfica. Capacidad La capacidad de una memoria (RAM y ROM) es el nmero de posiciones de un sistema, o dicho de otra manera, nmero de informaciones que puede contener una memoria. La capacidad total de memoria ser un dato esencial para calibrar la potencia de un computador. La capacidad de la memoria se mide en mltiplos de byte (8 bits): kilobytes (1.024 bytes) y megabytes (1.024 kilobytes). Si bien es cierto, aqu s se aplica la frase de a mayor capacidad, mayor velocidad. A la hora de escoger una memoria, intenta escoger un valor que sea ptimo (sea de 512 megabytes, 1 gigabyte o as) para que tengas mejor rendimiento en tu computadora. 37
1.2.2.4 Funcionamiento memorias Funcionamiento de las memorias ram. La memoria principal o RAM (acrnimo de Random Access Memory, Memoria de Acceso Aleatorio) es donde el ordenador guarda los datos que est utilizando en el momento presente. Se llama de acceso aleatorio porque el procesador accede a la informacin que est en la memoria en cualquier punto sin tener que acceder la informacin anterior y posterior. Es la memoria que se actualiza constantemente mientras el ordenador est en uso y que pierde sus datos cuando el ordenador se apaga. Proceso de carga en la memoria ram: Cuando las aplicaciones se ejecutan, primeramente deben ser cargadas en memoria RAM. El procesador entonces efecta accesos a dicha memoria para cargar instrucciones y enviar o recoger datos. Reducir el tiempo necesario para acceder a la memoria, ayuda a mejorar las prestaciones del sistema. La diferencia entre la RAM y otros tipos de memoria de almacenamiento, como los disquetes o discos duros, es que la RAM es mucho ms rpida, y se borra al apagar el ordenador. Es una memoria dinmica, lo que indica la necesidad de recordar los datos ala memoria cada pequeo periodo de tiempo, para impedir que esta pierda la informacin. Eso se llama Refresco. Cuando se pierde la alimentacin, la memoria pierde todos los datos. Random Access, acceso aleatorio, indica que cada posicin de memoria puede ser leda o escrita en cualquier orden. Lo contrario seria el acceso secuencial, en el cual los datos tienen que ser ledos o escritos en un orden predeterminado. Las memorias poseen la ventaja de contar con una mayor velocidad, mayor capacidad de almacenamiento y un menor consumo. En contra partida presentan 38
el CPU, Memoria y Disco Duro. Los datos de instrucciones cuando se carga un programa, se carga en memoria. El inconveniente es que precisan una electrnica especial para su utilizacin, la funcin de esta electrnica es generar el refresco de la memoria. La necesidad de los refrescos de las memorias dinmicas se debe al funcionamiento de las mismas, ya que este se basa en generar durante un tiempo la informacin que contiene. Transcurrido este lapso, la seal que contena la clula biestable se va perdiendo. Para que no ocurra esta perdida, es necesario que antes que transcurra el tiempo mximo que la memoria puede mantener la seal se realice una lectura del valor que tiene y se recargue la misma. Es preciso considerar que a cada bit de la memoria le corresponde un pequeo condensador al que le aplicamos una pequea carga elctrica y que mantienen durante un tiempo en funcin de la constante de descarga. Generalmente el refresco de memoria se realiza cclicamente y cuando esta trabajando el DMA. El refresco de la memoria en modo normal esta a cargo del controlador del canal que tambin cumple la funcin de optimizar el tiempo requerido para la operacin del refresco. Posiblemente, en ms de una ocasin en el ordenador aparecen errores de en la memoria debido a que las memorias que se estn utilizando son de una velocidad inadecuada que se descargan antes de poder ser refrescadas. Las posiciones de memoria estn organizadas en filas y en columnas. Cuando se quiere acceder a la RAM se debe empezar especificando la fila, despus la columna y por ltimo se debe indicar si deseamos escribir o leer en esa posicin. En ese momento la RAM coloca los datos de esa posicin en la salida, si el acceso es de lectura o coge los datos y los almacena en la posicin seleccionada, si el acceso es de escritura. La cantidad de memoria RAM de nuestro sistema afecta notablemente a las prestaciones, fundamentalmente cuando se emplean sistemas operativos actuales. En general, y sobretodo cuando se ejecutan mltiples aplicaciones, puede que la demanda de memoria sea superior a la realmente existente, con lo 39
que el sistema operativo fuerza al procesador a simular dicha memoria con el disco duro (memoria virtual). Una buena inversin para aumentar las prestaciones ser por tanto poner la mayor cantidad de RAM posible, con lo que minimizaremos los accesos al disco duro. Los sistemas avanzados emplean RAM entrelazada, que reduce los tiempos de acceso mediante la segmentacin de la memoria del sistema en dos bancos coordinados. Durante una solicitud particular, un banco suministra la informacin al procesador, mientras que el otro prepara datos para el siguiente ciclo; en el siguiente acceso, se intercambian los papeles. Los mdulos habituales que se encuentran en el mercado, tienen unos tiempos de acceso de 60 y 70 ns (aquellos de tiempos superiores deben ser desechados por lentos). Es conveniente que todos los bancos de memoria estn constituidos por mdulos con el mismo tiempo de acceso y a ser posible de 60 ns. Hay que tener en cuenta que el bus de datos del procesador debe coincidir con el de la memoria, y en el caso de que no sea as, esta se organizar en bancos, habiendo de tener cada banco la cantidad necesaria de mdulos hasta llegar al ancho buscado. Por tanto, el ordenador slo trabaja con bancos completos, y stos slo pueden componerse de mdulos del mismo tipo y capacidad. Como existen restricciones a la hora de colocar los mdulos, hay que tener en cuenta que no siempre podemos alcanzar todas las configuraciones de memoria. Tenemos que rellenar siempre el banco primero y despus el banco nmero dos, pero siempre rellenando los dos zcalos de cada banco (en el caso de que tengamos dos) con el mismo tipo de memoria. Combinando diferentes tamaos en cada banco podremos poner la cantidad de memoria que deseemos. Tipos de memorias ram: DRAM: Acrnimo de Dynamic Random Access Memory, o simplemente RAM ya que es la original, y por tanto la ms lenta. Usada hasta la poca del 386, su 40
velocidad de refresco tpica es de 80 70 nanosegundos (ns), tiempo ste que tarda en vaciarse para poder dar entrada a la siguiente serie de datos. Por ello, la ms rpida es la de 70 ns. Fsicamente, aparece en forma de DIMMs o de SIMMs, siendo estos ltimos de 30 contactos. FPM (Fast Page Mode): A veces llamada DRAM, puesto que evoluciona directamente de ella, y se usa desde hace tanto que pocas veces se las diferencia. Algo ms rpida, tanto por su estructura (el modo de Pgina Rpida) como por ser de 70 60 ns. Es lo que se da en llamar la RAM normal o estndar. Usada hasta con los primeros Pentium, fsicamente aparece como SIMMs de 30 72 contactos (los de 72 en los Pentium y algunos 486). Para acceder a este tipo de memoria se debe especificar la fila (pgina) y seguidamente la columna. Para los sucesivos accesos de la misma fila slo es necesario especificar la columna, quedando la columna seleccionada desde el primer acceso. Esto hace que el tiempo de acceso en la misma fila (pgina) sea mucho ms rpido. Era el tipo de memoria normal en los ordenadores 386, 486 y los primeros Pentium y lleg a alcanzar velocidades de hasta 60 ns. Se presentaba en mdulos SIMM de 30 contactos (16 bits) para los 386 y 486 y en mdulos de 72 contactos (32 bits) para las ltimas placas 486 y las placas para Pentium. EDO o EDO-RAM: Extended Data Output-RAM. Evoluciona de la FPM. Permite empezar a introducir nuevos datos mientras los anteriores estn saliendo (haciendo su Output), lo que la hace algo ms rpida (un 5%, ms o menos). Mientras que la memoria tipo FPM slo poda acceder a un solo byte (una instruccin o valor) de informacin de cada vez, la memoria EDO permite mover un bloque completo de memoria a la cach interna del procesador para un acceso ms rpido por parte de ste. La estndar se encontraba con refrescos de 70, 60 50 ns. Se instala sobre todo en SIMMs de 72 contactos, aunque existe en forma de DIMMs de 168. 41
La ventaja de la memoria EDO es que mantiene los datos en la salida hasta el siguiente acceso a memoria. Esto permite al procesador ocuparse de otras tareas sin tener que atender a la lenta memoria. Esto es, el procesador selecciona la posicin de memoria, realiza otras tareas y cuando vuelva a consultar la DRAM los datos en la salida seguirn siendo vlidos. Se presenta en mdulos SIMM de 72 contactos (32 bits) y mdulos DIMM de 168 contactos (64 bits). SDRAM: Sincronic-RAM. Es un tipo sncrono de memoria, que, lgicamente, se sincroniza con el procesador, es decir, el procesador puede obtener informacin en cada ciclo de reloj, sin estados de espera, como en el caso de los tipos anteriores. Slo se presenta en forma de DIMMs de 168 contactos; es la opcin para ordenadores nuevos. SDRAM funciona de manera totalmente diferente a FPM o EDO. DRAM, FPM y EDO transmiten los datos mediante seales de control, en la memoria SDRAM el acceso a los datos esta sincronizado con una seal de reloj externa. La memoria EDO est pensada para funcionar a una velocidad mxima de BUS de 66 Mhz, llegando a alcanzar 75MHz y 83 MHz. Sin embargo, la memoria SDRAM puede aceptar velocidades de BUS de hasta 100 MHz, lo que dice mucho a favor de su estabilidad y ha llegado a alcanzar velocidades de 10 ns. Se presenta en mdulos DIMM de 168 contactos (64 bits). El ser una memoria de 64 bits, implica que no es necesario instalar los mdulos por parejas de mdulos de igual tamao, velocidad y marca PC-100 DRAM: Este tipo de memoria, en principio con tecnologa SDRAM, aunque tambin la habr EDO. La especificacin para esta memoria se basa sobre todo en el uso no slo de chips de memoria de alta calidad, sino tambin en circuitos impresos de alta calidad de 6 o 8 capas, en vez de las habituales 4; en cuanto al circuito impreso este debe cumplir unas tolerancias mnimas de interferencia elctrica; por ltimo, los ciclos de memoria tambin deben cumplir unas especificaciones muy exigentes. De cara a evitar posibles confusiones, los 42
mdulos compatibles con este estndar deben estar identificados as: PC 100?- abc-def. BEDO (Burst Extended Data Output): Fue diseada originalmente para soportar mayores velocidades de BUS. Al igual que la memoria SDRAM, esta memoria es capaz de transferir datos al procesador en cada ciclo de reloj, pero no de forma continuada, como la anterior, sino a rfagas (bursts), reduciendo, aunque no suprimiendo totalmente, los tiempos de espera del procesador para escribir o leer datos de memoria. RDRAM (Direct Rambus DRAM): Es un tipo de memoria de 64 bits que puede producir rfagas de 2ns y puede alcanzar tasas de transferencia de 533MHz, con picos de 1,6 GB/s. Pronto podr verse en el mercado y es posible que tu prximo equipo tenga instalado este tipo de memoria. Es el componente ideal para las tarjetas grficas AGP, evitando los cuellos de botella en la transferencia entre la tarjeta grfica y la memoria de sistema durante el acceso directo a memoria (DIME) para el almacenamiento de texturas grficas. Hoy en da la podemos encontrar en las consolas NINTENDO 64. DDR SDRAM (Double Data Rate SDRAM o SDRAM-II): Funciona a velocidades de 83, 100 y 125MHz, pudiendo doblar estas velocidades en la transferencia de datos a memoria. En un futuro, esta velocidad puede incluso llegar a triplicarse o cuadriplicarse, con lo que se adaptara a los nuevos procesadores. Este tipo de memoria tiene la ventaja de ser una extensin de la memoria SDRAM, con lo que facilita su implementacin por la mayora de los fabricantes. SLDRAM: Funcionar a velocidades de 400MHz, alcanzando en modo doble 800MHz, con transferencias de 800MB/s, llegando a alcanzar 1,6GHz, 3,2GHz en modo doble, y hasta 4GB/s de transferencia. Se cree que puede ser la memoria a utilizar en los grandes servidores por la alta transferencia de datos. 43
ESDRAM: Este tipo de memoria funciona a 133MHz y alcanza transferencias de hasta 1,6 GB/s, pudiendo llegar a alcanzar en modo doble, con una velocidad de 150MHz hasta 3,2 GB/s. La memoria FPM (Fast Page Mode) y la memoria EDO tambin se utilizan en tarjetas grficas, pero existen adems otros tipos de memoria DRAM, pero que SLO de utilizan en TARJETAS GRFICAS, y son los siguientes: MDRAM (Multibank DRAM) Es increblemente rpida, con transferencias de hasta 1 GIGA/s, pero su coste tambin es muy elevado. - SGRAM (Synchronous Graphic RAM) Ofrece las sorprendentes capacidades de la memoria SDRAM para las tarjetas grficas. Es el tipo de memoria ms popular en las nuevas tarjetas grficas aceleradoras 3D. - VRAM Es como la memoria RAM normal, pero puede ser accedida al mismo tiempo por el monitor y por el procesador de la tarjeta grfica, para suavizar la presentacin grfica en pantalla, es decir, se puede leer y escribir en ella al mismo tiempo. - WRAM (Window RAM) Permite leer y escribir informacin de la memoria al mismo tiempo, como en la VRAM, pero est optimizada para la presentacin de un gran nmero de colores y para altas resoluciones de pantalla. Es un poco ms econmica que la anterior. La arquitectura PC establece que los datos que constituyen una imagen a mostrar en el monitor no se mapeen en la RAM que podamos tener en la placa madre, sino en la memoria RAM que se encuentra en la propia tarjeta de vdeo. Por tanto, para concluir contar que con la introduccin de procesadores ms rpidos, las tecnologas FPM y EDO empezaron a ser un cuello de botella. La memoria ms eficiente es la que trabaja a la misma velocidad que el procesador. Las velocidades de la DRAM FPM y EDO eran de 80, 70 y 60 ns, lo cual era suficientemente rpido para velocidades inferiores a 66MHz. Para procesadores lentos, por ejemplo el 486, la memoria FPM era suficiente. 44
Con procesadores ms rpidos, como los Pentium de primera generacin, se utilizaban memorias EDO. Con los ltimos procesadores Pentium de segunda y tercera generacin, la memoria SDRAM es la mejor solucin. La memoria ms exigente es la PC 100 (SDRAM a 100 MHz), necesaria para montar un AMD K62 o un Pentium a 350 MHz o ms. Va a 100 MHz en vez de los 66 MHZ usuales. Tecnologas de memorias ram: SIMMs y DIMMs Se trata de la forma en que se organizan los chips de memoria, del tipo que sean, para que sean conectados a la placa base del ordenador. Son unas placas alargadas con conectores en un extremo; al conjunto se le llama mdulo. El nmero de conectores depende del bus de datos del microprocesador. 1. SIMM de 72 contactos, los ms usados en la actualidad. Se fabrican mdulos de 4, 8, 16,32 y 64 Mb. 2. SIMM EDO de 72 contactos, muy usados en la actualidad. Existen mdulos de 4, 8, 16,32 y 64 Mb. 3. SIMM de 30 contactos, tecnologa en desuso, existen adaptadores para aprovecharlas y usar 4 de estos mdulos como uno de 72 contactos. Existen de 256 Kb, 512 Kb (raros), 1, 2 (raros), 4, 8 y 16 Mb. 4. SIPP, totalmente obsoletos desde los 386 (estos ya usaban SIMM mayoritariamente). SIMMs: Single In-line Memory Module, con 30 72 contactos. Los de 30 contactos pueden manejar 8 bits cada vez, por lo que en un 386 486, que tiene un bus de datos de 32 bits, necesitamos usarlos de 4 en 4 mdulos iguales. Su capacidad es de 256 Kb, 1 Mb 4 Mb. Miden unos 8,5 cm (30 c.) 45
10,5 cm (72 c.) y sus zcalos suelen ser de color blanco. Los SIMMs de 72 contactos, manejan 32 bits, por lo que se usan de 1 en 1 en los 486; en los Pentium se hara de 2 en 2 mdulos (iguales), porque el bus de datos de los Pentium es el doble degrande (64 bits). La capacidad habitual es de 1 Mb, 4 Mb, 8 Mb, 16, 32 Mb. 5. DIMMs, ms alargados (unos 13 cm), con 168 contactos y en zcalos generalmente negros. Pueden manejar 64 bits de una vez, por lo que pueden usarse de 1 en 1 en los Pentium, Pentium II y Pentium III. Existen para voltaje estndar (5 voltios) o reducido (3.3 V). Y podramos aadir los mdulos SIP, que eran parecidos a los SIMM pero con frgiles patitas soldadas y que no se usan desde hace bastantes aos, o cuando toda o parte de la memoria viene soldada en la placa (caso de algunos ordenadores de marca).
Funcionamiento de la memoria flash, como tipo de EEPROM. Contiene un arreglo de celdas con un transistor evolucionado con dos puertas en cada interseccin. Tradicionalmente slo almacenan un bit de informacin. Las nuevas memorias flash, llamadas tambin dispositivos de celdas multi-nivel, pueden almacenar ms de un bit por celda variando el nmero de electrones que almacenan. Estas memorias estn basadas en el transistor FAMOS (Floating Gate Avalanche- Injection Metal Oxide Semiconductor) que es, esencialmente, un transistor NMOS con un conductor (basado en un xido metlico) adicional entre la puerta de control (CG Control Gate) y los terminales fuente/drenador contenidos en otra puerta (FG Floating Gate) o bien que rodea a FG y es quien contiene los electrones que almacenan la informacin.
46
Memoria flash de tipo NOR
En las memorias flash de tipo NOR, cuando los electrones se encuentran en FG, modifican (prcticamente anulan) el campo elctrico que generara CG en caso de estar activo. De esta forma, dependiendo de si la celda est a 1 a 0, el campo elctrico de la celda existe o no. Entonces, cuando se lee la celda poniendo un determinado voltaje en CG, la corriente elctrica fluye o no en funcin del voltaje almacenado en la celda. La presencia/ausencia de corriente se detecta e interpreta como un 1 un 0, reproduciendo as el dato almacenado. En los dispositivos de celda multi-nivel, se detecta la intensidad de la corriente para controlar el nmero de electrones almacenados en FG e interpretarlos adecuadamente. Para programar una celda de tipo NOR (asignar un valor determinado) se permite el paso de la corriente desde el terminal fuente al terminal sumidero, entonces se coloca en CG un voltaje alto para absorber los electrones y retenerlos en el campo elctrico que genera. Este proceso se llama hot-electron injection. Para borrar (poner a 1, el estado natural del transistor) el contenido de una celda, expulsar estos electrones, se emplea la tcnica de Fowler-Nordheim tunnelling, un proceso de tunelado mecnico cuntico. Esto es, aplicar un voltaje inverso bastante alto al empleado para atraer a los electrones, convirtiendo al transistor en una pistola de electrones que permite, abriendo el terminal sumidero, que los electrones abandonen el mismo. Este proceso es el que provoca el deterioro de las celdas, al aplicar sobre un conductor tan delgado un voltaje tan alto. Es necesario destacar que las memorias flash estn subdividas en bloques (en ocasiones llamados sectores) y por lo tanto, para el borrado, se limpian bloques enteros para agilizar el proceso, ya que es la parte ms lenta del proceso. Por esta razn, las memorias flash son mucho ms rpidas que las EEPROM convencionales, ya que borran byte a byte. No obstante, para reescribir un dato es necesario limpiar el bloque primero para despus reescribir su contenido. 47
Memorias flash de tipo NAND Las memorias flash basadas en puertas lgicas NAND funcionan de forma ligeramente diferente: usan un tnel de inyeccin para la escritura y para el borrado un tnel de soltado. Las memorias basadas en NAND tienen, adems de la evidente base en otro tipo de puertas, un coste bastante inferior, unas diez veces de ms resistencia a las operaciones pero slo permiten acceso secuencial (ms orientado a dispositivos de almacenamiento masivo), frente a las memorias flash basadas en NOR que permiten lectura de acceso aleatorio. Sin embargo, han sido las NAND las que han permitido la expansin de este tipo de memoria, ya que el mecanismo de borrado es ms sencillo (aunque tambin se borre por bloques) lo que ha proporcionado una base ms rentable para la creacin de dispositivos de tipo tarjeta de memoria. Las populares memorias USB o tambin llamadas Pendrives, utilizan memorias flash de tipo NAND.
Funcionamiento de la memoria cache Unas 5 o 6 veces ms que la RAM. Esto la encarece bastante, y se es uno de los motivos por los cuales su capacidad es mucho menor que el de la RAM: un mximo cercano a 512 kilobytes (512 Kb), es decir, medio mega, frente a 16 32 megas de RAM. Adems, este precio elevado la hace candidata a falsificaciones y engaos. Pero la cach no slo es rpida; adems, se usa con una finalidad especfica. Cuando una computadora trabaja, el microprocesador opera en ocasiones con un nmero reducido de datos, pero que tiene que traer y llevar a la memoria en cada operacin. Si situamos en medio del camino de los datos una memoria intermedia que almacene los datos ms usados, los que casi seguro necesitar el microprocesador en la prxima operacin que realice, por lo tanto ahorrar mucho tiempo del trnsito y acceso a la lenta memoria RAM; esta es la segunda utilidad de la cach.
48
1.2.3 Dispositivos de I/O
En computacin, entrada/salida, tambin abreviado E/S o I/O (del original en ingls input/output), es la coleccin de interfaces que usan las distintas unidades funcionales (subsistemas) de un sistema de procesamiento de informacin para comunicarse unas con otras, o las seales (informacin) enviadas a travs de esas interfaces. Las entradas son las seales recibidas por la unidad, mientras que las salidas son las seales enviadas por sta. El trmino puede ser usado para describir una accin; "realizar una entrada/salida" se refiere a ejecutar una operacin 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 tpicos para la comunicacin entre computadoras realizan las dos operaciones, tanto entrada como salida, y entre otros se encuentran los mdems y tarjetas de red. Es importante notar que la designacin 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 fsico que el usuario produce como salida y lo convierten a una seal elctrica que la computadora pueda entender. La salida de estos dispositivos son una entrada para la computadora. De manera anloga, los monitores e impresoras toman como entrada las seales que la computadora produce como salida. Luego, convierten esas seales en representaciones inteligibles que puedan ser interpretadas por el usuario. La interpretacin ser, por ejemplo, por medio de la vista, que funciona como entrada. En arquitectura de computadoras, a la combinacin de una unidad central de procesamiento (CPU) y memoria principal (aqulla que la CPU puede escribir o leer directamente mediante instrucciones individuales) se la considera el corazn de la computadora y cualquier movimiento de informacin desde o hacia ese conjunto se lo considera entrada/salida. La CPU y su circuitera complementaria 49
proveen mtodos de entrada/salida que se usan en programacin de bajo nivel para la implementacin de controladores de dispositivos. Los sistemas operativos y lenguajes de programacin de ms alto nivel brindan conceptos y primitivas de entrada/salida distintos y ms abstractos. Por ejemplo, un sistema operativo brinda aplicativos que manejan el concepto de archivos. El lenguaje de programacin C define funciones que les permiten a sus programas realizar E/S a travs de streams, es decir, les permiten leer datos desde y escribir datos hacia sus programas. Una alternativa para las funciones primitivas especiales es la mnada de E/S, que permite que los programas describan su E/S y que las acciones se lleven a cabo fuera del programa. Esto resulta interesante, pues las funciones de E/S introduciran un efecto colateral para cualquier lenguaje de programacin, pero ahora una programacin puramente funcional resultara prctica.
Dispositivos de entrada y salida Entrada: Teclado Ratn Joystick Lpiz ptico Micrfono Webcam Escner Escner de cdigo de barras Pantalla tctil Salida: Monitor Altavoz Auriculares Bocinas 50
Impresora Plotter Entrada/salida: Unidades de almacenamiento CD DVD Mdem Fax USB 1.2.3.1 Arquitectura del sistema de I/O (E/S) La arquitectura de E/S, es compleja y est estructurada en capas, cada una de las cuales tiene una funcionalidad bien definida.
Fig. 1.16 esquema de entrada/salida Interfaz Del Sistema Operativo Para E/S Proporciona servicios de E/S sncrona y asncrona a las aplicaciones y una interfaz homognea para poderse comunicar con los manejadores de dispositivo ocultando los detalles de bajo nivel. 51
Sistema de archivos Proporcionan una interfaz homognea, a travs del sistema de archivos virtuales, para acceder a todos los sistemas de archivos que proporciona el sistema operativo (FFS, SV, NTFS, FAT, etc). Gestor de redes Proporciona una interfaz homognea para acceder a todos los sistemas de red que proporciona el sistema operativo (TCP/IP, Novell, etc.). Adems permite acceder a los manejadores de cada tipo de red particular de forma transparente. Gestor de bloques Los sistemas de archivos y otros dispositivos lgicos con acceso a nivel de bloques se suelen se suelen limitar a traducir las operaciones del formato del usuario de bloques que entiende el dispositivo y se las pasan a este gestor de bloques. Gestor de cach Optimiza la E/S mediante la gestin de almacenamiento intermedio en memoria para dispositivos de E/S de tipo bloque. Manejadores de dispositivo Proporcionan operaciones de alto nivel sobre los dispositivos y las traducen en su mbito interno a operaciones de control de cada dispositivo particular. Cada uno de estos componentes se considera un objeto del sistema, por lo que habitualmente todos los sistemas operativos permiten modificar el sistema operativo de forma esttica o dinmica para remplazar, aadir o quitar manejadores de dispositivos. Sin embargo, por razones de seguridad no se 52
permite a las aplicaciones de usuario acceder directamente a los dispositivos, sino a travs de la interfaz de llamadas al sistema. 1.2.3.2 Tipos de I/O
Fig. 1.17 diferentes dispositivos de entrada y salida
Los tipos de dispositivos de entrada ms comunes son: a) Teclado: El teclado es un dispositivo eficaz para introducir datos no grficos como rtulos de imgenes asociados con un despliegue de grficas. Los teclados tambin pueden ofrecerse con caractersticas que facilitan la entrada de coordenadas de la pantalla, selecciones de mens o funciones de grficas. Teclado 101: El teclado pesa 1.1 Lb y mide 11.6 Pulgadas de ancho, 4.3 pulgadas de profundidad y 1.2 de altura. Entre los accesorios disponibles se encuentran: cableado para Sun, PC(PS/2) y computadoras Macintosh. Las dimensiones de este teclado son su caracterstica principal. Es pequeo. Sin embargo se siente como un teclado normal. Teclado Ergonmico: Al igual que los teclados normales a travs de ste se pueden introducir datos a la computadora pero su caracterstica principal es el diseo del teclado ya que ste evita lesiones y da mayor comodidad al usuario, ya que las teclas se encuentran separadas de acuerdo al alcance de nuestras manos, lo que permite mayor confort al usuario. 53
Teclado para Internet: El nuevo Internet Keyboard incorpora 10 nuevos botones de acceso directo, integrados en un teclado estndar de ergonmico diseo que incluye un apoya manos. Los nuevos botones permiten desde abrir nuestro explorador Internet hasta ojear el correo electrnico. El software incluido, posibilita la personalizacin de los botones para que sea el teclado el que trabaje como nosotros queramos que lo haga. Teclado Alfanumrico: Es un conjunto de 62 teclas entre las que se encuentran las letras, nmeros, smbolos ortogrficos, Enter, alt, etc; se utiliza principalmente para introducir texto. Teclado de Funcin: Es un conjunto de 13 teclas entre las que se encuentran el ESC, tan utilizado en sistemas informticos, ms 12 teclas de funcin. Estas teclas suelen ser configurables pero por ejemplo existe un convenio para asignar la ayuda a F1. Teclado Numrico: Se suele encontrar a la derecha del teclado alfanumrico y consta de los nmeros as como de un Enter y los operadores numricos de suma, resta, etc. Teclado Especial: Son las flechas de direccin y un conjunto de 9 teclas agrupadas en 2 grupos; uno de 6 (Inicio y fin entre otras) y otro de 3 con la tecla de impresin de pantalla entre ellas. Teclado de Membrana: Fueron los primeros que salieron y como su propio nombre indica presentan una membrana entre la tecla y el circuito que hace que la pulsacin sea un poco ms dura. Teclado Mecnico: Estos nuevos teclados presentan otro sistema que hace que la pulsacin sea menos traumtica y ms suave para el usuario. b) Ratn Mouse: Es un dispositivo electrnico que nos permite dar instrucciones a nuestra computadora a travs de un cursor que aparece en la pantalla y haciendo clic para que se lleve a cabo una accin determinada; a medida que el Mouse rueda sobre el escritorio, el cursor (Puntero) en la pantalla hace lo mismo. 54
Tal procedimiento permitir controlar, apuntar, sostener y manipular varios objetos grficos (Y de texto) en un programa. A este perifrico se le llam as por su parecido con un roedor. Existen modelos en los que la transmisin se hace por infrarrojos eliminando por tanto la necesidad de cableado. Al igual que el teclado, el Mouse es el elemento perifrico que ms se utiliza en una PC (Aunque en dado caso, se puede prescindir de l). Los "ratones" han sido los elementos que ms variaciones han sufrido en su diseo. Tipos de Mouse: Existen diferentes tecnologas con las que funciona el Mouse: Mecnica: era poco precisa y estaba basada en contactos fsicos elctricos a modo de escobillas que en poco tiempo comenzaban a fallar. ptica: es la ms utilizada en los "ratones" que se fabrican ahora. Opto mecnica: son muy precisos, pero demasiado caros y fallan a menudo. Existen "ratones", como los trackballs, que son dispositivos en los cuales se mueve una bola con la mano, en lugar de estar abajo y arrastrarla por una superficie. Mouse ptico Mouse Trackball: Es una superficie del tamao de una tarjeta de visita por la que se desliza el dedo para manejar el cursor, son estticos e ideales para cuando no se dispone de mucho espacio. Hay otro tipo de "ratones" especficos para algunas aplicaciones, como por ejemplo las presentaciones en PC. Estos "ratones" suelen ser inalmbricos y su manejo es como el del tipo TrackBall o mediante botones de direccin. Y por ltimo, podemos ver modelos con ruedas de arrastre que permiten visualizar ms rpidamente las pginas de Internet. 55
c) Micrfono: Los micrfonos son los transductores encargados de transformar energa acstica en energa elctrica, permitiendo, por lo tanto el registro, almacenamiento, transmisin y procesamiento electrnico de las seales de audio. Son dispositivos duales de los altoparlantes, constituyendo ambos transductores los elementos mas significativos en cuanto a las caractersticas sonoras que sobre imponen a las seales de audio. Existen los llamados micrfonos de diadema que son aquellos, que, como su nombre lo indica, se adhieren a la cabeza como una diadema cualquiera, lo que permite al usuario mayor comodidad ya no necesita sostenerlo con las manos, lo que le permite realizar otras actividades. d) Scanner: Es una unidad de ingreso de informacin. Permite la introduccin de imgenes grficas al computador mediante un sistema de matrices de puntos, como resultado de un barrido ptico del documento. La informacin se almacena en archivos en forma de mapas de bits (bit maps), o en otros formatos ms eficientes como Jpeg o Gif. Existen scanners que codifican la informacin grfica en blanco y negro, y a colores. As mismo existen scanners de plataforma plana fija (Cama Plana) con apariencia muy similar a una fotocopiadora, y scanners de barrido manual. Los scanners de cama plana pueden verificar una pgina entera a la vez, mientras que los porttiles solo pueden revisar franjas de alrededor de 4 pulgadas. Reconocen imgenes, textos y cdigos de barras, convirtindolos en cdigo digital. Los exploradores grficos convierten una imagen impresa en una de video (Grficos por Trama) sin reconocer el contenido real del texto o las figuras. Cmara Digital: se conecta al ordenador y le transmite las imgenes que capta, pudiendo ser modificada y retocada, o volverla a tomar en caso de que este mal. Puede haber varios tipos: Cmara de Fotos Digital: Toma fotos con calidad digital, casi todas incorporan una pantalla LCD (Liquid Cristal Display) donde se puede visualizar la imagen 56
obtenida. Tiene una pequea memoria donde almacena fotos para despus transmitirlas a un ordenador. Cmara de Video: Graba videos como si de una cmara normal, pero las ventajas que ofrece en estar en formato digital, que es mucho mejor la imagen, tiene una pantalla LCD por la que ves simultneamente la imagen mientras grabas. Se conecta al PC y este recoge el video que has grabado, para poder retocarlo posteriormente con el software adecuado. Webcam: Es una cmara de pequeas dimensiones. Slo es la cmara, no tiene LCD. Tiene que estar conectada al PC para poder funcionar, y esta transmite las imgenes al ordenador. Su uso es generalmente para videoconferencias por Internet, pero mediante el software adecuado, se pueden grabar videos como una cmara normal y tomar fotos estticas. f. Lector de Cdigo de Barras: Dispositivo que mediante un haz de lser lee dibujos formados por barras y espacios paralelos, que codifica informacin mediante anchuras relativas de estos elementos. Los cdigos de barras representan datos en una forma legible por el ordenador, y son uno de los medios ms eficientes para la captacin automtica de datos. g. Lpices pticos: Es una unidad de ingreso de informacin que funciona acoplada a una pantalla fotosensible. Es un dispositivo exteriormente semejante a un lpiz, con un mecanismo de resorte en la punta o en un botn lateral, mediante el cual se puede seleccionar informacin visualizada en la pantalla. Cuando se dispone de informacin desplegada, con el lpiz ptico se puede escoger una opcin entre las diferentes alternativas, presionndolo sobre la ventana respectiva o presionando el botn lateral, permitiendo de ese modo que se proyecte un rayo lser desde el lpiz hacia la pantalla fotosensible. No requiere una pantalla ni un recubrimiento especiales como puede ser el caso de una pantalla tctil, pero tiene la desventaja de que sostener el lpiz contra la pantalla durante periodos largos de tiempo llega a cansar al usuario. 57
h) Palancas de Mando (Joystick): Dispositivo sealador muy conocido, utilizado mayoritariamente para juegos de ordenador o computadora, pero que tambin se emplea para otras tareas. Un joystick o palanca de juegos tiene normalmente una base de plstico redonda o rectangular, a la que est acoplada una palanca vertical. Es normalmente un dispositivo sealador relativo, que mueve un objeto en la pantalla cuando la palanca se mueve con respecto al centro y que detiene el movimiento cuando se suelta. En aplicaciones industriales de control, el joystick puede ser tambin un dispositivo sealador absoluto, en el que con cada posicin de la palanca se marca una localizacin especfica en la pantalla. i) Tarjetas Perforadas: ficha de papel manila de 80 columnas, de unos 7,5 cm. (3 pulgadas) de ancho por 18 cm. (7 pulgadas) de largo, en la que podan introducirse 80 columnas de datos en forma de orificios practicados por una mquina perforadora. Estos orificios correspondan a nmeros, letras y otros caracteres que poda leer un ordenador equipada con lector de tarjetas perforadas. 2.- Los Dispositivos de Salida: Estos dispositivos permiten al usuario ver los resultados de los clculos o de las manipulaciones de datos de la computadora. El dispositivo de salida ms comn es la unidad de visualizacin (VDU, acrnimo de Video Display Unit), que consiste en un monitor que presenta los caracteres y grficos en una pantalla similar a la del televisor. 1. Los tipos de Dispositivos de Salida ms Comunes Son: a) Pantalla o Monitor: Es en donde se ve la informacin suministrada por el ordenador. En el caso ms habitual se trata de un aparato basado en un tubo de rayos catdicos (CRT) como el de los televisores, mientras que en los porttiles es una pantalla plana de cristal lquido (LCD). Puntos a Tratar en un Monitor: 58
Resolucin: Se trata del nmero de puntos que puede representar el monitor por pantalla, en horizontal x vertical. Un monitor cuya resolucin mxima sea 1024x 768 puntos puede representar hasta 768 lneas horizontales de 1024 puntos cada una. Refresco de Pantalla: Se puede comparar al nmero de fotogramas por segundo de una pelcula de cine, por lo que deber ser lo mayor posible. Se mide en HZ (hertzios) y debe estar por encima de los 60 Hz, preferiblemente 70 u 80. A partir de esta cifra, la imagen en la pantalla es sumamente estable, sin parpadeos apreciables, con lo que la vista sufre mucho menos. Tamao de punto (Dot Pitch): Es un parmetro que mide la nitidez de la imagen, midiendo la distancia entre dos puntos del mismo color; resulta fundamental a grandes resoluciones. En ocasiones es diferente en vertical que en horizontal, o se trata de un valor medio, dependiendo de la disposicin particular de los puntos de color en la pantalla, as como del tipo de rejilla empleada para dirigir los haces de electrones. b) Impresora: es el perifrico que el ordenador utiliza para presentar informacin impresa en papel. Las primeras impresoras nacieron muchos aos antes que el PC e incluso antes que los monitores, siendo el mtodo ms usual para presentar los resultados de los clculos en aquellos primitivos ordenadores. En nada se parecen las impresoras a sus antepasadas de aquellos tiempos, no hay duda de que igual que hubo impresoras antes que PCs, las habr despus de stos, aunque se basen en tecnologas que an no han sido siquiera inventadas. Hay Varios Tipos: Matriciales: Ofrecen mayor rapidez pero una calidad muy baja. Inyeccin: La tecnologa de inyeccin a tinta es la que ha alcanzado un mayor xito en las impresoras de uso domstico o para pequeas empresas, gracias a su relativa velocidad, calidad y sobre todo precio reducidos, que suele ser la dcima parte de una impresora de las mismas caractersticas. Claro est que hay razones de peso que justifican stas caractersticas, pero para imprimir 59
algunas cartas, facturas y pequeos trabajos, el rendimiento es similar y el costo muy inferior. Hablamos de impresoras de color porque la tendencia del mercado es que la informtica en conjunto sea en color. Esta tendencia empez hace una dcada con la implantacin de tarjetas grficas y monitores en color. Todava podemos encontrar algunos modelos en blanco y negro pero ya no son recomendables. Lser: Ofrecen rapidez y una mayor calidad que cualquiera, pero tienen un alto costo y solo se suelen utilizar en la mediana y grande empresa. Por medio de un haz de lser imprimen sobre el material que le pongamos las imgenes que le haya enviado la CPU. c) Altavoces: Dispositivos por los cuales se emiten sonidos procedentes de la tarjeta de sonido. Actualmente existen bastantes ejemplares que cubren la oferta ms comn que existe en el mercado. Se trata de modelos que van desde lo ms sencillo (una pareja de altavoces estreo), hasta el ms complicado sistema de Dolby Digital, con nada menos que seis altavoces, pasando por productos intermedios de 4 o 5 altavoces. d) Auriculares: Son dispositivos colocados en el odo para poder escuchar los sonidos que la tarjeta de sonido enva. Presentan la ventaja de que no pueden ser escuchados por otra persona, solo la que los utiliza. e) Bocinas: Cada vez las usa ms la computadora para el manejo de sonidos, para la cual se utiliza como salida algn tipo de bocinas. Algunas bocinas son de mesas, similares a la de cualquier aparato de sonidos y otras son porttiles (audfonos). Existen modelos muy variados, de acuerdo a su diseo y la capacidad en watts que poseen. f) Multimedia: Combinacin de Hardware y Software que puede reproducir salidas que emplean diversos medios como texto, grficos, animacin, video, msica, voz y efectos de sonido. g) Plotters (Trazador de Grficos): Es una unidad de salida de informacin que permite obtener documentos en forma de dibujo. 60
Existen plotters para diferentes tamaos mximos de hojas (A0, A1, A2, A3 y A4); para diferentes calidades de hojas de salida (bond, calco, acetato); para distintos espesores de lnea de dibujo (diferentes espesores de rapidgrafos), y para distintos colores de dibujo (distintos colores de tinta en los rapidgrafos). h) Fax: Dispositivo mediante el cual se imprime una copia de otro impreso, transmitida o bien, va telfono, o bien desde el propio fax. Se utiliza para ello un rollo de papel que cuando acaba la impresin se corta. I) Data Show (Can): Es una unidad de salida de informacin. Es bsicamente una pantalla plana de cristal lquido, transparente e independiente. Acoplado a un retro proyector permite la proyeccin amplificada de la informacin existente en la pantalla del operador.
1.2.3.3 Caractersticas de los dispositivos de entrada y salida
Una de las funciones bsicas de la computadora es comunicarse con los dispositivos exteriores, es decir, la computadora debe ser capaz de enviar y recibir datos desde estos dispositivos. Sin esta funcin, la computadora no sera operativa porque sus clculos no seran visibles desde el exterior.
Existe una gran variedad de dispositivos que pueden comunicarse con una computadora, desde los dispositivos clsicos (terminales, impresoras, discos, cintas, etc.) hasta convertidores A/D y D/A para aplicaciones de medida y control de procesos. De todos los posibles perifricos, algunos son de lectura, otros de escritura y otros de lectura y escritura (es importante resaltar que este hecho siempre se mira desde el punto de vista del proceso). Por otra parte, existen perifricos de almacenamiento tambin llamados memorias auxiliares o masivas. 61
La mayora de los perifricos estn compuestos por una parte mecnica y otra parte electrnica. Estas partes suelen separarse claramente para dar una mayor modularidad. A la componente electrnica del perifrico se le suele denominar controlador del dispositivo o, tambin, adaptador del dispositivo. Si el dispositivo no tiene parte mecnica (como, por ejemplo, la pantalla de un terminal), el controlador estar formado por la parte digital del circuito. Frecuentemente los controladores de los dispositivos estn alojados en una placa de circuito impreso diferenciada del resto del perifrico. En este caso es bastante habitual que un mismo controlador pueda dar servicio a dispositivos de caractersticas similares.
El principal problema planteado por los perifricos es su gran variedad que tambin afecta a las velocidades de transmisin. Por tanto, el mayor inconveniente que encontramos en los perifricos es la diferencia entre sus velocidades de transmisin y la diferencia entre stas y la velocidad de operacin de la computadora.
1.2.3.4 Funcionamiento de los dispositivos de I/O
El funcionamiento de estos dispositivos depende de su propsito, pero tambin puede variar y ser, alternativamente, de entrada, o bien, de salida. Por ejemplo, para un teclado el movimiento de la mano del usuario es una entrada de datos, mientras que la seal elctrica que envan al ordenador es una salida. Lo mismo ocurre con casi cualquiera de estos aparatos. Hoy en da es prcticamente imposible el uso de un ordenador sin el empleo de uno o ms dispositivos de esta ndole. Muchos de ellos permiten no slo convertir informacin y agilizar el uso de las funcionalidades de una computadora, sino tambin conectarla con otros ordenadores, brindarle acceso a Internet, operar con dispositivos analgicos y hasta combinar sus funciones entre s. 62
La planificacin de E/S o de entrada y salida hace referencia a la organizacin que realiza un sistema operativo respecto del orden en que las diversas peticiones de lectura y escritura sern ejecutadas. Es decir, la prioridad que otorgar a las distintas unidades de input y output. Unidad 2. Comunicacin interna en la computadora. 2.1 Buses
Se denomina bus, en informtica, al conjunto de conexiones fsicas (cables, placa de circuito impreso, etc.) que pueden compartirse con mltiples componentes de hardware para que se comuniquen entre s. El propsito de los buses es reducir el nmero de rutas necesarias para la comunicacin entre los distintos componentes, al realizar las comunicaciones a travs de un solo canal de datos. sta es la razn por la que, a veces, se utiliza la metfora "autopista de datos". En el caso en que slo dos componentes de hardware se comuniquen a travs de la lnea, podemos hablar de puerto hardware( puerto serial o puerto paralelo). Caractersticas de un bus Un bus se caracteriza por la cantidad de informacin que se transmite en forma simultnea. Este volumen se expresa en bits y corresponde al nmero de lneas fsicas mediante las cuales se enva la informacin en forma simultnea. Un cable plano de 32 hilos permite la transmisin de 32 bits en paralelo. El trmino "ancho" se utiliza para designar el nmero de bits que un bus puede transmitir simultneamente. En su forma ms simple, el ancho de banda es la capacidad de transferencia de datos, en otras palabras, la cantidad de datos que se pueden mover de un punto a otro en cierta cantidad de tiempo. El tener una comunicacin de datos de punto a punto implica dos cosas: 63
Un conjunto de conductores elctricos utilizados para hacer posible la comunicacin a bajo nivel Un protocolo para facilitar la comunicacin de datos confiable y eficiente. Por otra parte, la velocidad del bus se define a travs de su frecuencia (que se expresa en Hercios o Hertz), es decir el nmero de paquetes de datos que pueden ser enviados o recibidos por segundo. Cada vez que se envan o reciben estos datos podemos hablar de ciclo. De esta manera, es posible hallar la velocidad de transferencia mxima del bus (la cantidad de datos que puede transportar por unidad de tiempo) al multiplicar su ancho por la frecuencia. Velocidad de transferencia o tasa de transferencia: El trmino tasa de bits (en ingls bit rate) define el nmero de bits que se transmiten por unidad de tiempo a travs de un sistema de transmisin digital o entre dos dispositivos digitales. As pues, es la velocidad de transferencia de datos. La tasa de transferencia se refiere al ancho de banda real medido en un momento concreto del da empleando rutas concretas de internet mientras se transmite un conjunto especfico de datos, desafortunadamente, por muchas razones la tasa es con frecuencia menor al ancho de banda mximo del medio que se est empleando. Los siguientes son algunos de los factores que determinan la tasa de transferencia: Dispositivos de Internet-Working. Tipos de datos que se van a transferir. Topologa de la red. 64
Nmero de usuarios en la red. La computadora del usuario. El servidor. Condiciones de la energa. Congestin. El ancho de banda terico de la red es una consideracin importante en el diseo de la red, porque la tasa de transferencia de la red nunca es mayor que dicho ancho de banda, debido a las limitaciones puestas por el medio y a las tecnologas de red elegidas. La unidad con que el Sistema Internacional de Unidades expresa el bit rate es el bit por segundo (bit/s, b/s, bps). La b debe escribirse siempre en minscula, para impedir la confusin con byte por segundo (B/s). Para convertir de bytes/s a bits/s, basta simplemente multiplicar por 8 y viceversa. Que la unidad utilizada sea el bit/s, no implica que no puedan utilizarse mltiplos del mismo:kbit/s o kbps (kb/s, kilobit/s o mil bits por segundo) Mbit/s o Mbps(Mb/s, Megabit/s o un milln de bits por segundo) Gbit/s o Gbps (Gb/s, Gigabit, mil millones de bits)byte/s (B/s u 8 bits por segundo)kilobyte/s (kB/s, mil bytes u ocho mil bits por segundo)megabyte/s (MB/s, un milln de bytes u 8 millones de bit por segundo)gigabyte/s (GB/s, mil millones de bytes u 8 mil millones de bits) Ejemplos Velocidades tpicas de los accesos de conexin a Internet (abril de 2006): Mdem RTB: 56 kbps = 7 kB/s (7 kilobytes por segundo) ADSL: 1024 kbps (nominal 1 Mbps) = 128 kB/s (128 kilobytes por segundo) 65
Cable: 2400 kbps = 300 kB/s (300 kilobytes por segundo) VSAT: 600 kbps = 75 kB/s (75 kilobytes por segundo) Telefona mvil 3G: 384 kbps = 48 kB/s (48 kilobytes por segundo) Tasas de bits de compresin a MP3: 4 kbit/s Mnimo para reconocer el habla. 8 kbit/s Calidad telefnica convencional 32 kbit/s Radio AM 96 kbit/s Radio FM 128 kbit/s Sonido calidad semi CD, muy comn en MP3 192 kbit/s Sonido calidad CD en formato MP3 320 kbit/s Mxima calidad para formato MP3 Las velocidades de conexin a Internet son brutas. En la prctica, la velocidad neta disponible para el usuario, suele ser entre un 10-15 % menor, debido al ancho de banda consumido por las cabeceras y las colas de los protocolos. Otro error frecuente es utilizar el baudio como sinnimo de bit por segundo. La velocidad en baudios o baud rate no debe confundirse con la tasa de bits. La velocidad en baudios de una seal representa el nmero de cambios de estado, o eventos de sealizacin, que la seal tiene en un segundo. Cada evento de sealizacin transmitido puede transportar uno o ms bits. Slo cuando cada evento de sealizacin transporta un solo bit coinciden la velocidad de transmisin de datos en baudios y en bits por segundo. Tipos La velocidad de transferencia de datos puede ser constante o variable: 66
1. Tasa de bits constante (CBR): Aplica una cuantificacin uniforme, por lo que no tiene en cuenta si en la seal hay zonas con mayor o menor densidad de informacin, sino que cuantifica toda la seal por igual. 2. Tasa de bits variable (VBR): Aplica una cuantificacin no uniforme que s que hace diferencia entre las zonas con mayor o menor densidad de informacin, por lo que la cuantificacin resulta ms eficaz. En este caso, sera ms conveniente utilizar una tasa de bits variable, que permitira despreciar (emplear una tasa de bits menor) el fondo azul y centralizar la atencin (utilizar una tasa de bits mayor) en el motivo: el paracaidista. Otras caractersticas distintivas: Caractersticas elctricas estandarizadas (tales como el nmero de conductores, niveles de voltage, velocidades de seales, etc.) Caractersticas mecnicas estandarizadas (tales como el tipo de conector, tamao de la tarjeta, formato fsico, etc.) Protocolo estndar La palabra "estandarizado" es importante porque los buses son la principal forma en la que diferentes componentes de software se juntan. En muchos casos, los buses permiten la interconexin del hardware hecho por diferentes fabricantes; sin estandarizacin, esto no sera posible. Sin embargo, an en situaciones donde un bus es propiedad de un fabricante, la estandarizacin es importante porque permite a ese fabricante implementar ms fcilmente diferentes componentes usando una interfaz comn el bus mismo. Ejemplos de buses No importa dnde revise usted en el computador, habr buses. He aqu algunos de los ms comunes: 67
Buses de almacenamiento masivo (ATA y SCSI) Redes (Ethernet y Token Ring) Los buses de memoria (PC133 y Rambus) Buses de expansin (PCI, ISA, USB) Datapaths Los datapaths pueden ser ms difciles de identificar pero, como los buses, estn en todas partes. Tambin a igual que los buses, los datapaths permiten la comunicacin punto a punto. Sin embargo, a diferencia de los buses, los datapaths: Utilizan un protocolo ms simple (si es que lo utilizan). Tienen poca (o ninguna) estandarizacin mecnica. La razn de estas diferencias es que los datapaths son normalmente internos a algunos componentes de sistemas y no son usados para facilitar la interconexin ad-hoc de componentes diferentes. Como tal, los datapaths son muy optimizados para una situacin particular, donde la velocidad y el bajo costo se prefieren sobre una flexibilidad ms lenta y ms costosa de propsito general. Ejemplos de Datapaths He aqu algunos datapaths tpicos: Datapath de CPU a cach en chip Datapath de procesador grfico a memoria de vdeo Problemas potenciales relacionados al ancho de banda Hay dos formas en la que pueden ocurrir problemas relacionados al ancho de banda (tanto para buses como para datapaths): 68
1. El bus o datapath puede representar un recurso compartido. En esta situacin, los altos niveles de competencia por el bus reducen el ancho de banda efectivo disponible para todos los dispositivos en el bus. Un bus SCSI con discos duros altamente activos seran un buen ejemplo de esto. Las unidades de disco altamente activas saturan el bus SCSI, dejando poco ancho de banda disponible para cualquier otro dispositivo en el mismo bus. El resultado final es que toda la E/S a cualquiera de estos dispositivos en el bus es lenta, an si cada dispositivo en el bus no est demasiado activo. 2. El bus o datapath puede ser un recurso dedicado con un nmero fijo de dispositivos conectados a l. En este caso, las caractersticas elctricas del bus (y hasta cierto punto la naturaleza del protocolo utilizado) limitan el ancho de banda disponible. Usualmente, este es ms el caso con datapaths que con buses. Esta es una de las razones por las que los adaptadores grficos tienden a funcionar ms lentamente cuando se operan a altas resoluciones y/o profundidades de color por cada refrescado de pantalla, hay ms datos que transmitir a travs del datapath que conecta la memoria de vdeo al procesador grfico. Soluciones potenciales relacionadas al ancho de banda Afortunadamente, los problemas relacionados al ancho de banda se pueden resolver. De hecho, se pueden tomar varios enfoques: Distribuir la carga Reducir la carga Incrementar la capacidad Las secciones siguientes exploran cada uno de estos enfoques en ms detalles. Distribuir la carga 69
El primer enfoque es distribuir ms uniformemente la actividad del bus. En otras palabras, si un bus est sobrecargado y otro est ocioso, quizs la situacin sera mejorada moviendo algo de la carga hasta el bus ocioso. Como administrador del sistema, este es el primer enfoque que debera considerar, pues a menudo existen buses adicionales ya instalados en su sistema. Por ejemplo, la mayora de los PCs incluyen al menos dos canales ATA (lo cual es simplemente otro nombre para un bus). Si tiene dos unidades de disco ATA y dos canales ATA, por qu deberan estar ambas unidades en el mismo canal? An si su configuracin no incluye buses adicionales, distribuir la carga puede ser todava el mejor enfoque. Los gastos de hardware en hacer esto sern mucho menos costosos que reemplazando un bus existente por hardware con mayor capacidad. Reducir la carga A primera vista, el reducir y distribuir la carga parecen ser los diferentes lados de la misma moneda. Despus de todo, cuando uno distribuye la carga, tambin se est reduciendo la misma (al menos en un bus sobrecargado). Mientras que este punto de vista es correcto, no es lo mismo que reducir la carga globalmente. La clave aqu es determinar si hay algn aspecto de la carga del sistema que est causando que este bus particular est sobrecargado. Por ejemplo, est la red sobrecargada debido a actividades que no son necesarias? Quizs un pequeo archivo temporal es el recipiente de grandes lecturas/escrituras de E/S. Si ese archivo temporal reside en un servidor de la red, se podra eliminar una gran parte del trfico de la red trabajando con el archivo localmente. Incrementar la capacidad La solucin obvia a un ancho de banda insuficiente, es el de incrementarlo de alguna manera. Sin embargo, esto es usualmente una proposicin costosa. 70
Considere, por ejemplo, un controlador SCSI y su bus sobrecargado. Para incrementar el ancho de banda, se necesita reemplazar el controlador SCSI (y probablemente todos los dispositivos conectados a l) con hardware ms rpido. Si el controlador SCSI es una tarjeta separada, esto sera un proceso bien directo, pero si el controlador es parte de la tarjeta madre del sistema, se vuelve mucho ms difcil justificar econmicamente este cambio. 2.1.1 Bus local. PCI Local Bus LAN Audio Motion Video Graficos SCSI Interface Bus exp. Func. I/O base ISA/EISA - MC Bridge / control de memo Microproc. Cache DRAM
Fig. 2.1 comportamientos de un bus local
La propia palabra Bus ya est anunciando el transporte de algo, y en este caso, se refiere a datos para procesarse por un equipo informtico. El Bus de Datos soporta tanto la informacin como las instrucciones declaradas sobre la misma, de tal forma de gestionar operaciones. De este modo, se da lugar a 3 tipos de Buses: Datos, Direcciones y Control. Mientras el Bus de Datos se encarga de mover la informacin por los componentes de hardware del sistema de computacin, tanto de Entrada (teclado, mouse, etc) como de salida (monitor, impresora, etc.), el Bus de Direcciones ubica los datos en el Sub-sistema de Memoria teniendo relacin 71
directa con los procesos de CPU, y finalmente el Bus de Control tiene la tarea de marcar el estado de una instruccin dada a la PC.
Es comn dibujar y describir el Bus de Datos como una autopista de informacin y rdenes, porque no es otra cosa que eso. Se rige por la cantidad de bits capaz de soportar en el camino, y en este marco, el CPU cumple la funcin primaria. Es por ello, que hoy tenemos procesadores de 64 bits en lugar de 32 16, porque la evolucin de la PC y la exigencia informativa de los usuarios lo demandaron.
2.1.2 Bus de datos. El Bus de Datos trabaja en conjuncin con el Bus de Direcciones para transportar los datos a travs del computador. El tamao del Bus de Datos puede ser de 16, 32 o 64 bits. Teniendo en cuenta las mencionadas limitaciones del bus AT y la infalibilidad de los buses EISA y MCA para asentarse en el mercado, en estos aos se han ideado otros conceptos de bus. Se inici con el llamado Vesa Local Bus (VL-Bus), que fue concebido y propagado independientemente por el comit VESA, que se propuso el definir estndares.
Los procesadores 80x86 utilizan el bus de datos para intercambiar informacin entre los diferentes componentes del sistema. El tamao de stos buses es variable dependiendo del tipo de procesador, por esta razn es comn pensar en el tamao del bus como una medida del "tamao" del procesador, puede haber buses de datos de 8 (8088, 80188), 16 (8086, 80186, 80286), 32 (80386, 80486) 64 lneas (Pentium, Pentium Pro). En cada lnea del bus de datos se transmite un bit de informacin pero un sistema no est limitado a manejar informacin de acuerdo al tamao del bus de datos, es decir, un bus de 32 bits no est limitado a trabajar con tipos de datos mximos de 32 bits. El tamao del bus de datos por 72
otro lado si limita el nmero de bits que el sistema puede manejar por cada ciclo de memoria de tal manera que un sistema de 16 bits necesita dos ciclos de memoria para manejar un tipo de dato de 32 bits, naturalmente pero no necesariamente, un sistema de 32 bits es el doble de rpido que un sistema de 16 bits, la limitacin es porque existen otros factores que influyen en el rendimiento de un sistema. Este bus mueve los datos entre los dispositivos del hardware: de Entrada como el Teclado, el Escner, el Ratn, etc.; de salida como la Impresora, el Monitor o la tarjeta de Sonido; y de Almacenamiento como el Disco Duro, el Diskette o la Memoria-Flash. Transmite informacin entre la CPU y los perifricos.
Estas transferencias que se dan a travs del Bus de Datos son gobernadas por varios dispositivos y mtodos, de los cuales el Controlador PCI, "Peripheral Component Interconnect", Interconexin de componentes Perifricos, es uno de los principales. Su trabajo equivale, simplificando mucho el asunto, a una central de semforos para el trfico en las calles de una ciudad. Fig. 2.2 Bus de datos. 73
Fig. 2.3 Los datos que son puestos en la pila o tomados de la pila usualmente son tomados del bus de datos o puestos por la pila en el bus de datos. 2.1.3 Bus de direcciones.
El bus de direcciones es el encargado de diferenciar las ubicaciones fsicas de cada elemento de un sistema de cmputo, sea memoria elemento de E/S, cuando un programa necesita tener acceso a un elemento determinado del sistema coloca su direccin en el bus de direcciones, los circuitos electrnicos asociados sea con la memoria con un dispositivo de E/S son los encargados de reconocer sta direccin y consecuentemente colocar los datos correspondientes en el bus de datos. Con una sola lnea de direccin es posible tener acceso a dos elementos diferentes, con n lneas de direccin se puede acceder a 2 n direcciones diferentes, por lo tanto el nmero de bits de un bus de direcciones determina la cantidad mxima de direcciones de memoria que un sistema puede acceder. Un procesador Pentium tiene un bus de direcciones de 32 bits por lo que su capacidad fsica real de direccionamiento de memoria de de 4 Gigabytes, utilizando la tcnica de segmentacin stos procesadores pueden acceder a un mayor nmero de direcciones de memoria. El Bus de Direcciones, por otra parte, est vinculado al bloque de Control de la CPU para tomar y colocar datos en el Sub-sistema de Memoria durante la ejecucin de los procesos de cmputo, 74
Una tarjeta-madre tipo ATX tiene tantas pistas elctricas destinadas a buses, como anchos sean los Canales de Buses del Microprocesador de la CPU: 64 para el Bus de datos y 32 para el Bus de Direcciones. El "ancho de canal" explica la cantidad de bits que pueden ser transferidos simultneamente. As, el Bus de datos transfiere 8 bytes a la vez. Para el Bus de Direcciones, el "ancho de canal" explica as mismo la cantidad de ubicaciones o Direcciones diferentes que el microprocesador puede alcanzar. Esa cantidad de ubicaciones resulta de elevar el 2 a la 32 potencia. "2" porque son dos las seales binarias, los bits 1 y 0; y "32 potencia" porque las 32 pistas del Bus de Direcciones son, en un instante dado, un conjunto de 32 bits. As, el Canal de Direcciones del Microprocesador para una PC-ATX puede "direccionar" ms de 4 mil millones de combinaciones diferentes para el conjunto de 32 bits de su Bus.
Fig. 2.4 comportamiento del bus de direcciones
2.1.4 Bus de control (bus de sistema).
El bus de control (en ocasiones denominado bus de comando) transporta las rdenes y las seales de sincronizacin que provienen de la unidad de control y viajan hacia los distintos componentes de hardware. Se trata de un bus bidireccional en la medida en que tambin transmite seales de respuesta del 75
hardware. El bus de control es una coleccin de lneas que transportan un conjunto de seales cuyo propsito es la sincrona de todas las operaciones efectuadas por el CPU con los diferentes subsistemas de un equipo de cmputo, destacan las lneas para escritura (write) y lectura (read) de datos, el reloj del sistema, lneas de interrupcin, lneas de estado, etc. El uso de stas lneas se comprender mejor conforme se avance en ste curso. Los procesadores de la familia 80x86 proveen dos espacios diferentes de direccionamiento, uno para la memoria y otro para la E/S, mientras que el direccionamiento de memoria vara segn el procesador, las lneas de E/S son siempre de 16 bits, lo que permite direccionar 65,536 localidades diferentes. Algunas lneas de control son las encargadas de decidir qu direcciones son para memoria y cules son para E/S.
El Bus de Control transporta seales de estado de las operaciones efectuadas por el CPU con las dems unidades. Organiza y redirige la informacin hacia el bus pertinente para la informacin que se tiene que transmitir. Es el bus encargado de hacer el direccionamiento, quin realiza toda la funcin de direccionar es el controlador, diferente para cada tipo de dispositivo.
2.1.5 Buses normalizados
SCSI: esta es la norma original, a partir de la cual se desarrollaron todas las dems. El ancho de bus es de 8 bits. No permite una longitud de bus mayor de 6 metros y una velocidad de transferencia terica de hasta 5MB/s, aunque en la prctica no se alcanzan velociades superiores a los 2MB/s a causa de los perifricos conectados. SCSI-II: esta versin no es ms que una revisin de la SCSI, por lo que solo le aporta nuevos comandos de control. La velocidad de transferencia sigue en la misma lnea que le SCSI. 76
Fast SCSI-II: esta si que es una versin nueva, que ofrece velocidades de hasta 10MB/s, en modo sncrono, siempre de forma terica. Wide SCSI: nueva versin de la norma SCSI que ofrece un ancho de bus de 16 bits, lo que dobla (tericamente) la velocidad de transferencia, puesto que en una mismo ciclo se transmiten el doble de bytes. Existen adaptadores Wide SCSI - SCSI, por lo que este tipo de perifricos pueden ser usados en un Amiga. Differencial SCSI: esta versin SCSI utiliza un sistema de cableado diferencial en sus lneas, lo que permite extender la longitud del bus hasta 25 metros. Existen adaptadores Differencial SCSI - SCSI, por lo que este tipo de perifricos pueden ser usados en un Amiga. Fast Wide SCSI: nueva revisin de la norma Wide SCSI, que ofrece un ancho de bus bien de 16 o de 32 bits, aunque esta ltima variante es muy rara. Tipos de buses normalizdos mas comunes: El Chipset marca las caractersticas del bus de la CPU Tipos de buses de expansin ISA Usado en los primeros PC. Es de ocho bits por que usa ocho lneas para comunicarse con tarjeta de placas. Tambin hay de 16 bits. Caractersticas: Baja capacidad y amplia difusin. 8 bits 16 bits NCA Es un ISD extendido de 32 bits. Es compatible con el ISA. No se usa para orden de alto nivel avanzado y ms avanzado. 77
EISD Es un ISD extendido de 32 y compatibles con ISD. No se usaba para ordenes de alto nivel. Bases locales Obtienen alto rendimiento entre la placa y las ranuras de expansin. Trabaja a 33 Mhz. Tipos VL-BUS Instalado en los 468 de gama alta. No haba acceso directo a RDM, y tena que intervenir o la CPU o un canal DMD y esto tardaba mucho. PCI Evita el problema anterior creado por Intel.
Caractersticas: - Bus de 32 bit de datos y direcciones. - Velocidad de 33 Mhz. - Capacidad de transferir datos de 132 Mb/seg. - Soporta el bus masterin (Bus master RMD) - Permite realizar casos concurrentes de escritura. - Reparte de forma inteligente la capacidad. Otorga ms capacidad al dispositivo que ms lo necesite. - Permite realizar casos concurrentes de escritura. - Soporta mximo 3 4 slots por cada bus PCI - Puede coexistir con buses de otro tipo. 78
- Preparado para multitud de plataformas. No slo para PC. - Incorpora facilidades ( Plug & Play) - El coste de este tipo de buses es muy bajo. AG`P Especfico para controladores de vdeo. Bus de alto rendimiento de 32 bits y velocidad de 66 Mhz, su capacidad es muy superior. Buses normalizados de perifricos SCSI Estndar universal para la conversin de todo tipo de perifricos. Utilizado para dispositivos de almacenamiento. Caractersticas - Sencillez - Los dispositivos conectados son especficos para el Scasi, es decir, son de tipo SCASI, esto conlleva a que todos los dispositivos llevan conector de E y de S para el SCASI. - Contienen altas prestaciones. - Alto coste de adquisicin SCSI 1 Ocho bits permite conectar hasta 8 dispositivos. Realmente son slo siente dispositivos, ya que uno lo ocupa la controladora. La transferencia es de 3,3. Mb/seg. Hasta 5 Mb/seg. SCSI 2 Se mejora la velocidad. Hay cuatro tipos de SCSI . Normal 8 bitss 5 Mb/seg Fast 8 bits 10 Mb/seg 79
Wide 16 bits 10 Mb/seg Fast-Wide 16 bits 20 Mb/seg Ultra SCSI: Sali en 1996, aumenta las prestaciones del SCSI. Compatible con Fast-SCSI 2 y con Fast/Wide-SCSI 2. Para buses de 8 bits. Alcanza los 20 Mb/seg, y para buswes de 16 bits llega hasta 40 Mb/seg. SCSI 3: Es otro conjunto de estndares, muy especializado. Por ejemplo, uno de esos conjuntos est orientado a serie en fibra ptica, y alcanza una gran velocidad en este campo. SCSI 3 ya no es compatible con los otros, a favor de la velocidad. USB: (universal serial Bus). La informacin se transmite en serie. Su objetivo es superar los inconvenientes de la conexin entre perifricos y ordenador. IEEE 1394 Tiene los mismos objetvos (wire-fire)
Fig. 2.5 ejemplos de los tipos de buses con el micro motorola mc68000. 80
Caractersticas: - Bus interno: 16 bits - Unidad Aritmetico Lgica (ALU) puede operar sobre 16 bits directamente - Registros internos de 32 bits (Datos y Direcciones) - La Entrada/Salida esta mapeada en memoria (Intel utiliza buses diferentes para entrada/salida) - Bus de datos: 16 bits - Bus de direcciones: 32 bits (pero solo utiliza las 24 lneas menos significativas). La capacidad operativa del bus depende de: la inteligencia del sistema, la velocidad de ste, y la "anchura" del bus (nmero de conductos de datos que operan en paralelo).
Procesadores Bus de direcciones (bits) Bus de datos (bits) 808680186 20 16 808880188 20 8 80286 24 16 80386 SX 32 16 80386 DX 80486 SX 80486 DX 32 32 81
PENTIUM PENTIUM II/III/IV AMD K5/K6/K7 AMD ATHLON/THUNDERBIRD AMD ATHLON XP/MP 32 64 INTEL ITANIUM AMD ATHLON64 32/64 64/128 Fig. 2.6 Tabla de los diferentes procesadores que ha habido hasta ahora y su capacidad de bus. Conjunto de chips El conjunto de chips es el componente que enva datos entre los distintos buses del equipo para que todos los componentes que forman el equipo puedan a su vez comunicarse entre s. Originalmente, el conjunto de chips estaba compuesto por un gran nmero de chips electrnicos (de all su nombre). Por lo general, presenta dos componentes: El Puente Norte (que tambin se conoce como controlador de memoria, se encarga de controlar las transferencias entre el procesador y la memoria RAM. Se encuentra ubicado fsicamente cerca del procesador. Tambin se lo conoce como GMCH que significa Concentrador de controladores grficos y de memoria.
El Puente Sur (tambin denominado controlador de entrada/salida o controlador de expansin) administra las comunicaciones entre los distintos dispositivos perifricos de entrada-salida. Tambin se lo conoce como ICH (Concentrador controlador de E/S).
Por lo general, se utiliza el trmino puente para designar un componente de 82
Es interesante tener en cuenta que para que dos buses se comuniquen entre si, deben poseer el mismo ancho. Esto explica por qu los mdulos de memoria RAM a veces deben instalarse en pares (por ejemplo, los primeros chips Pentium que tenan buses de procesador de 64 bits, necesitaban dos mdulos de memoria con un ancho de 32 bits cada uno).
Norma Ancho del bus (bits) Velocidad del bus (MHz) Ancho de banda (MB/seg.) ISA 8 bits 8 8,3 7,9 ISA 16 bits 16 8,3 15,9 Arquitectura estndar industrial extendida (EISA, Extended Industry Standard Architecture) 32 8,3 31,8 Bus local VESA (VESA Local Bus) 32 33 127,2 PCI 32 bits 32 33 127,2 PCI 64 bits 2,1 64 66 508,6 AGP 32 66 254,3 AGP (Modo x2) 32 66x2 528 83
AGP (Modo x4) 32 66x4 1056 AGP (Modo x8) 32 66x8 2112 ATA33 16 33 33 ATA100 16 50 100 ATA133 16 66 133 ATA serial (S-ATA, Serial ATA) 1 180 ATA serial II (S-ATA2, Serial ATA II) 2 380 USB 1 1,5 USB 2,0 1 60 FireWire 1 100 FireWire 2 1 200 SCSI-1 8 4,77 5 SCSI-2 Fast 8 10 10 SCSI-2 Wide 16 10 20 SCSI-2 - Fast Wide 32 bits 32 10 40 SCSI-3 Ultra 8 20 20 84
Fig. 2.7 Especificaciones relativas a los buses ms comunes.
2.2 Direccionamiento
El direccionamiento de la memoria puede considerarse desde dos puntos de vista: Fsico y lgico. El primero se refiere a los medios electrnicos 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 epgrafe nos referiremos exclusivamente a la forma en que son tratadas las direcciones de memoria del PC.
2.2.1 Modo real El modo real (tambin llamado modo de direccin real en los manuales de Intel) es un modo de operacin 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 85
perifrico, y no tiene conceptos de proteccin 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 tenan solo un modo operacional, que era equivalente al modo real en chips posteriores. La arquitectura 286 introdujo el modo protegido, permitiendo, entre otras cosas, la proteccin de la memoria a nivel de hardware. Sin embargo, usar estas nuevas caractersticas requiri instrucciones de software adicionales no necesarias previamente. Puesto que una especificacin de diseo primaria de los microprocesadores x86 es que sean completamente compatibles hacia atrs 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 tena apagadas las nuevas caractersticas de proteccin de memoria, de modo que pudieran correr sistemas operativos escritos para microprocesadores ms viejos. Al da de hoy, incluso los ms 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 grfica de usuario corriendo sobre el DOS, no eran realmente un sistema operativo por s mismas, corran en modo real, hasta Windows 3.0, que poda correr tanto en modo real como en modo protegido. Windows 3.0 poda correr de hecho en dos sabores de modo protegido - el modo estndar, que corra usando modo protegido, y el modo mejorado 386, que adems usaba direccionamiento de 32 bits y por lo tanto no corra en un 286 (que a pesar de tener modo protegido, segua 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, 86
Windows 95 y posteriores, OS/2, etc.) cambian el CPU a modo protegido o a modo largo en el arranque.
2.2.2 Modelo protegido El direccionamiento de memoria en modo protegido (a partir del 80286 y posteriores) permite acceder a datos y programas localizados por encima y dentro del primer megabyte de memoria. Para direccionar esta seccin extendida el sistema de memoria se requiere un cambio en el esquema de direccionamiento de segmento ms desplazamiento usado en el modo real. Cuando los datos y programa se direccionan la memoria extendida, se sigue utilizando la direccin de desplazamiento para acceder a la informacin en el segmento de memoria. Una diferencia consiste en la direccin del segmento ya que no existe en modo protegido. En lugar de una direccin de segmento, el registro de segmento contiene un SELECTOR que elige un descriptor de una tabla. El descriptor especifica la ubicacin del segmento en memoria, su longitud y sus derechos de acceso. Dado que el registro de segmento y la direccin de desplazamiento an acceden a la memoria, las instrucciones del modo protegido son idnticas a las de modo real. De hecho, la mayora de los programas escritos para funcionar en modo real funcionarn sin cambios en el modo protegido. La diferencia entre los dos modos es la forma en que el microprocesador interpreta el registro de segmento para acceder al segmento de memoria. Otra diferencia, en los 80386 y posteriores, es que en modo protegido la direccin de desplazamiento puede ser un nmero de 32 bits en vez de utilizar uno de 16 bits como en modo real. Es por esto que puede direccionar hasta 4 Gb de longitud. El SELECTOR, ubicado en el registro del segmento, elige uno de 8192 descriptores en una de las dos tablas de descriptores. El DESCRIPTOR 87
especifica la ubicacin, la longitud y los derechos de acceso del segmento de memoria, aunque no directamente como en el modo real. Por ejemplo, en el modo real, si CS=0008H, el segmento de cdigo inicia en la localidad 00080H. En modo protegido, este nmero de segmento puede direccionar cualquier localidad de memoria en todo el sistema para el segmento de cdigo. Existen dos tablas de descriptores utilizadas con los registros de segmentos: una contiene descriptores globales y otra, descriptores locales. Los descriptores globales contienen las definiciones de los segmentos que se aplican a todos los programas, mientras que los descriptores locales son generalmente exclusivos de una aplicacin. Podramos llamar descriptor de sistema a un descriptor global, y descriptor de aplicacin a uno local. Cada tabla de descriptores contendr 8192 entradas, por lo tanto una aplicacin podra disponer en cualquier momento de 16.384 descriptores. Puesto que un descriptor describe un segmento de memoria, esto permite que puedan ser descriptos hasta 16.384 segmentos de una aplicacin.
7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 5 Derechos de Acceso Base (B23-B16) 4 3 Base (B15-B0) 2 1 Limite (L15-L0) 0 Fig. 2.8 Descriptor del 80286 al Pentium II
7
BASE (B13-B24) G D O A V LIMITE (L19-
88
L16) 6
5 Derechos de Acceso Base (B23-B16) 4 3 Base (B15-B0) 2 1 Limite (L15-L0) 0 Fig. 2.9 Descriptor del 80386 al Pentium II Llamaremos direccion de base a la parte del descriptor que indica el inicio de un segmento de memoria. Para el microprocesador 80286, la direccin base es de 24 bits, as que los segmentos inician en cualquier localidad dentro de sus 16 MB de memoria. Los 80386 y posteriores emplean una direccin de base de 32 bits, que permite que los segmentos incien en cualquier localidad de sus 4 Gb de memoria. Es por lo dicho anteriormente que podemos ver que el descriptor del 80286 es compatible con el 80386 al Pentium II, ya que sus 16 bits ms significativos son los 0000H. El lmite de segmento contiene la ltima direccin de desplazamiento del segmento. A partir del 386 hasta el Pentium se incluy el bit G o llamado BIT DE GRANULARIDAD. Si este G=0, el lmite especifica un lmite de segmento entre 00000H y FFFFF. Si G=1, el valor del lmite se multiplica por 4 KB (agregando XXXXH). El lmite para G=1 va entonces desde 00000XXXH hasta FFFFFXXXH. Esto permite una longitud de segmento de 4 KB a 4 GB en intervalos de 4 KB. En el descriptor del 80386 y posteriores, el bit AV es usado por algunos sistemas operativos para indicar que el segmento esta disponible (AV=1) o que no lo esta (AV=0). El bit D indica la forma en que las intrucciones de los microprocesadores 80386 al Pentium II acceden a los registros y a los datos de memoria tanto en modo protegido como en el real. Si D=0, las instrucciones son de 16 bits, 89
compatibles con los microprocesadores 8086 al 80286. Esto significa que las instrucciones utilizan registros y direcciones de desplazamiento de 16 bits en forma predeterminada. Si D=1, las instrucciones son de 32 bits. Por omisin, el modo de instrucciones de 32 bits da por hecho que todas las direcciones de desplazamiento y los registros son de 32 bits. 7 6 5 4 3 2 1 0 P DPL S E ED/C R/W A
A=0 El segmento no ha sido accedido A=1 El segmento ha sido accedido E=0 El descriptor describe a un segmento de datos ED=0 El segmento se expande hacia arriba (segmento de datos) ED=1 El segmento se expande hacia abajo (segmento de pila)
W=0 Los datos no pueden se escritos W=1 Los datos pueden se escritos E=1 El descriptor describe a un segmento de cdigo C=0 Ignora el nivel de privilegio del descriptor C=1 Honra el nivel de privilegio
R=0 El segmento de cdigo no puede leerse R=1 El segmento de cdigo puede leerse
S=0 Descriptor de sistema S=1 Descriptor de segmento de cdigo o datos
DLP = Establece el nivel de privilegio del descriptor 90
P=0 Descriptor sin definir P=1 El segmento contiene una base y lmite vlidos. En modo protegido, el byte de derechos de acceso controla el acceso al segmento de memoria. Este byte define el funcionamiento del segmento en el sistema. El byte de derechos de acceso permite un control completo sobre el segmento. Si el segmento es de datos, especifica el sentido de crecimiento; si el segmento crece ms all de su lmite, el programa del microprocesador es interrumpido, indicando un error de proteccin general. Se puede especificar si un segmento de datos puede ser escrito o si est protegido contra escritura. E segmento de cdigo es controlado en forma similar y su lectura puede ser inhibida para proteger el software. Los descriptores son seleccionados mediante el registro de segmento de la tabla de descriptores. El registro de segmento contiene un campo de seleccin de 13 bits, un bit selector de tabla y un campo de nivel de privilegio de acceso, El selector de 13 bits selecciona uno de los 8192 descriptores de la tabla. El bit TI elige entre la tabla de descriptores globales (TI=0) o los descriptores locales (TI=1). El RPL (nivel de privilegio de acceso) define el nivel de privilegio de un segmento de memoria. El nivel de privilegio ms alto es 00 y el ms bajo 11. Si el nivel de privilegio solicitado coincide o tiene mayor prioridad que el nivel de privilegio establecido por el byte de derechos de acceso, se permite el acceso. Por ejemplo si el nivel de privilegio asociado es 10 y el byte de derechos de acceso establece un nivel de privilegio de 11 para el segmento, el acceso es autorizado ya que el nivel de privilegio 10 tiene mayor prioridad que 11 (los niveles de privilegio se utilizan en ambientes multiusuario y el sistema indica que normalmente cuando se presenta una violacin privilegio). 91
2.2.3 Modo real virtual Introducido en 1985, el 80386 DX supera un nuevo escaln en el avance tecnolgico en microprocesadores. Se incorpora una nueva ampliacin y surge el nmero mgico, el 32. Los buses de datos y de direcciones se amplan hasta 32 lneas de datos, ocurriendo lo mismo con el tamao de los registros. Esta ampliacin supone un incremento en la memoria RAM fsica instalada. Puede direccionar 4 Gb de memoria fsica (DX significa Double word eXternal) y 64 Tb de memoria virtual, una cifra que en la actualidad est an muy por encima de las posibilidades econmicas de los usuarios (a ver quin instala 4.000 Megabytes de RAM, unos 20 millones de pesetas). Arranca en modo real, al igual que el 80286, e incorpora un nuevo modo de operacin: el modo real virtual del 8086, que permite tener varias sesiones 8086 trabajando simultneamente simulando una especie de pseudomultitarea. En los microprocesadores anteriores la gestin de memoria se realizaba en segmentos de 16 Kb. Con el 80286 este tamao de los segmentos de la memoria se hacan muy pequeos y el programador tena que trabajar ms para adaptarse a una gran cantidad de segmentos. El 80386 permite la definicin de segmentos de memoria de tamao variable. Aparte, Intel corrigi la deficiencia del downshifting, pudindose realizar por software. Otra de las innovaciones en la inclusin de una memoria cache interna en el chip destinada a almacenar instrucciones provenientes de memoria sin necesidad de que la unidad de ejecucin intervenga. Intel comete un nuevo error en el diseo del micro que genera inexactitudes en el clculo de 32 bits, que se presentan en los micros lanzados al mercado hasta mayo del 1987. Los modelos corregidos van etiquetados con una doble sigma mayscula o con el identificativo DX. Este error afectaba a las operaciones de multiplicacin de 32 bits. Ocurra bajo las siguientes circunstancias: 92
Se usa la memoria virtual y se produce una demanda de pgina. El coprocesador matemtico 80387 est instalado y en uso. Debe ocurrir una operacin de acceso directo a memoria (DMA). El 80386 debe estar en estado de espera (Wait State). Se detecta un segundo bug denominado POPAD bug. Su efecto es el vaciado del registro acumulador EAX cuando se ejecuta una instruccin de acceso a memoria inmediatamente despus de la ejecucin de la instruccin POPAD. Aparecen variaciones que afectan al consumo de energa pensadas para porttiles, se trataba de los 80386SL (Slow Low power) y 80386SLC (Slow Low power Cache), que es propiedad de IBM aunque lo fabrique Intel. Las frecuencias de funcionamiento eran de 12, 20, 25 y 33 MHz. El 80386SX (SX significa Simple word eXternal) tiene las mismas caractersticas que el 80386DX, salvo que el bus de direcciones externo se reduce a 16 bits. Introducido en 1988 daba la potencia de un 80386 a precio de un 80286. Durante mucho tiempo se rumore que el P9 podra ser compatible con los zcalos 80286, pero al final no fue as. La razn es que el 80286 multiplexa todos sus buses para conseguir con menos lneas el mismo resultado (menor coste) El 80386SX slo multiplexa el bus de direcciones. Las frecuencias de funcionamiento eran de 16, 20, 25 y 33 MHz. 80486DX 80486SX El 80486DX sali al mercado en 1989. La estructura interna hablando en trminos numricos es igual a la de un 80386. El tamao de los registros y de los buses son de 32 bits. Mantiene los tres modos de operacin: real, protegido y real virtual. Las diferencias reales con los 80386DX son que tiene un flag ms, un estado de 93
excepcin ms, 2 bits ms en la tabla de entrada de pginas, 6 instrucciones y los registros de control tienen una longitud de 9 bits. Se realizan tambin cambios en la arquitectura interna. Se crea un mayor nmero de lneas hardware lo que implica un incremento en la velocidad. Se imponen reglas de diseo ms estrictas, lo que supone un reduccin del tamao del chip. Al reducirse el tamao se reduce tambin el consumo y consiguientemente la temperatura que alcanza el chip, con lo cual lo podemos hacer funcionar a un mayor nmero de ciclos de reloj, lo que supondr la aparicin de los Overdrives. Se incluye un coprocesador matemtico interno que dobla las prestaciones de un 80387 trabajando a la misma velocidad. Se logra un diseo mejor y la comunicacin entre el chip principal y el coprocesador matemtico es interna, lo que mejora la velocidad en las transferencias y unas sincronizaciones ms estrechas. La memoria cache (8 Kb) del microprocesador est dividida en 4 caches de 2 Kb cada una. Esto agiliza la ejecucin de algunas aplicaciones. Si se asigna una memoria cache secundaria (L2) el rendimiento del micro puede aumentar hasta un 30 por ciento ms. El 80486SX es igual que un 80486DX, slo que el coprocesador matemtico est inhabilitado. El coprocesador matemtico 80487SX es en realidad un 80486DX puro que desactiva por completo el 80486SX, sin que podamos retirarlo de la placa. Las velocidades a las que funcionan son de 25, 33, 40 y 50 MHz. Hay versin SL para porttiles.
2.3 Temporizacin Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores). 94
Para la medida de tiempos se carga un registro con el valor adecuado y a continuacin dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algn mltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso. Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos. Temporizacin sncrona
Fig. 2.9 ejemplo de lectura sncrona.
95
Fig. 2.10 ejemplo de lectura asincrona
Fig. 2.11 ejemplo de escritura El elemento fundamental del temporizador es un contador binario, encargado de contar los pulsos suministrados por algn circuito ascilador, con una base de tiempo estable y conocida. El simple hecho de contar pulsos de una duracin fija nos permite medir el tiempo con precisiones asombrosas, determnadas fundamentalmente por la estabilidad del generador de pulsos y por los circuitos electrnicos del contador binario. Sin embargo, un contador til debe tener ms elementos que permitan sacar provecho a se circuito bsico, es por ello que los microcontroladores utilizan un conjunto de circuitos auxiliares para poder manejar, con cierto nivel de libertad, las caractersticas bsicas del contador binario y convertir el conjunto en un temporizador/contador programable. Los temporizadores se utilizan debido a que hacer una lista completa es prcticamente imposible, pero algunos ejemplos de su aplicacin nos ayudarn a adentrarnos en los entresijos de su diseo y sacarle provecho a sus potencialidades. Estos ejemplo de su aplicacin son: - Medicin de tiempo. - Divisin de frecuencia. - Medicin de periodo y frecuencia. 96
- Contero de eventos. - Base de tiempo para otros perifricos. - USART. - PWM. - CathDog. Estructura bsica de un temporizador/contador.
1) Contador binario: Es el elemento bsico del temporizadors/ contador y su misin es contar los pulsos del reloj. Hay dos propiedades esenciales a tener en cuenta, respecto a este componente: la cantidad de pulsos que puede contar y la posibilidad de controlar el sentido del conteo, sea ascendente o descendente.
2) Circuitos de configuracin y control: Constituyen la interfaz entre el contador binario y los circuitos externos. Es uno de los elementos que da valor aadido al simple contador binario.
3) Circuitos especializados de salida: Se utilizan para notificar, a otro elemento del sistema, sobre el estado del temporizador o acerca de la ocurrencia de un determinado evento. 2.3.1 Reloj de sistema.
Un reloj del sistema reside en la tarjeta madre. Este enva una seal a todos los componentes de la computadora en ritmo, como un metrnomo. Generalmente, este ritmo se genera como una onda cuadrada, como la siguiente: Sin embargo, en realidad la seal de reloj real, cuando se ve con un osciloscopio, se ve ms como el ejemplo que se da a continuacin. 97
Cada onda en esta seal 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 accin en la computadora se marca con un tiempo mediante estos ciclos del reloj y para realizarse, cada accin toma cierto nmero 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 llegarn en seis ciclos de reloj. Es posible que el CPU y otros dispositivos funcionen ms rpido o ms lento que el reloj del sistema. Los componentes de distintas velocidades requieren un factor de multiplicacin o un factor de divisin para sincronizarlos. Por ejemplo, cuando un reloj del sistema de 100MHZ interacta 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 distema
Los resets y las operaciones de interrupcin cargan el contador de programa con un vector que apunta a la nueva localidad desde la cual las instrucciones sern buscadas (fetch). Un reset detiene inmediatamente la ejecucin de la actual instruccin y fuerza al contador de programa a una direccin de inicio conocida. Los registros internos y bits de control son inicializados para que la MCU pueda reanudar la ejecucin 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 comparacin son iniciados en $FFFF. Todas las entradas de los registros de captura son indeterminados despus del reset. El registro mascarable de 98
comparacin de salida (OC1M) es limpiado de modo que el comparador OC1 no afecta ninguna terminal de E/S. Fuentes posibles del reset:
Reset de alimentacion (POR): Es una transicin positiva que genera un reset de alimentacin y es usada solo en condiciones de encendido, no puede emplearse para reducciones en el voltaje de fuentes de alimentacin. Por ejemplo: cuando se mantiene presionada la tecla de encendido por ms de 30 segundos.
Reset externo (RESET): Sube un nivel lgico 1 en menos de 2 ciclos de reloj, despus que un dispositivo interno lo desactiva cuando la condicin de reset es detectada, la terminal reset, es dirigida a 0 por un dispositivo interno en 4 ciclos de reloj, entonces se desactiva. Si la terminal despus de 2 ciclos de reloj tiene un valor 0 la CPU asume que ocurri un reset externo, si la terminal es alta esto indica que el reset fue iniciado internamente por el sistema o el monitor de reloj. Por ejemplo: cuando se presiona directamente el botn de reset que algunos ordenadores tienen.
Reset de no adecuada operacin 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 ningn flanco de reloj, el monitor de reloj puede generar opcionalmente un reset del sistema, la funcin dl 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 energa. 99
2.3.3 Estados de espera. Cuando se conectan tarjetas al bus de la PC, un problema comn es igualar la velocidad de los ciclos del bus con la de las tarjetas. Es comn que una tarjeta sea ms lenta que el bus. As, el bus de la PC est diseado para resolver este problema. La seal 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. Como se mencion anteriormente, los ciclos del bus del 8088 normalmente son de cuatro pulsos y se describen por T1 hasta T4. En algunos ciclos el hardware de la PC, automticamente inserta un pulso ocioso extra llamado TW. La seal READY se usa para insertar estados nuevos o adicionales de espera. Debido a que los diferentes ciclos del bus requieren distintos tiempos, la seal READY se debe controlar de manera diferente.
2.4 Interrupciones de hardware
Ocurren cuando un dispositivo necesita atencin del procesador y genera una seal elctrica en la lnea IRQ que tiene asignada. Esta seal es recogida y procesada por el controlador de excepciones PIC antes de ser enviada al procesador, lo que puede realizarse de dos formas, segn el tipo de interrupcin sea enmascarable o no enmascarable. 2.4.1 Enmascarable
Enmascarable (IRQ): un nivel bajo en esta lnea da lugar a una secuencia de interrupciones en la que se efecta los siguientes pasos: 1. Se termina de ejecutar la instruccin que estaba ejecutando en el momento de la peticin de interrupcin. 100
2. La CPU analiza el contenido del bit de registro si el valor es 1 se ignora la interrupcin y continua ejecutndose el programa principal, si por lo contrario su valor es 0 la interrupcin es aceptada. 3. Guarda del contenido del contador del programa y el registro en la pila e impide otra interrupcin pasando a un nivel alto 1.
2.4.2 No-enmascarable. NMI una situacin de baja en esta lnea da lugar a una secuencia de interrupcin en la que se efectan las siguientes operaciones: 1. Se determina de ejecutar la instruccin que estaba ejecutando en el momento de la interrupcin 2. La CPU no analiza el contenido del bit de registro y sin importar el valor que tenga atiende la interrupcin. 3. Guarda el contenido del contador del programa y el registro en la pila e impide otra interrupcin poniendo al bit a 1.
RES la re inicializacin del sistema se emplea principalmente para reiniciar el sistema o para detectar la falta de alimentacin. Cuando ocurre esto se efectan los siguientes pasos: Durante que esta a nivel bajo se detiene la lectura o escritura de la CPU. Se inicializa el sistema despus de 6 ciclos de reloj. Se guarda el contador del programa y el registro en la pila y se impide otra interrupcin enmascarable pasando a 1. En caso de que dos interrupciones se activen al mismo tiempo el procesador asigna al sistema prioridades en las cuales la ms alta es RES, intermedia NMI y la ms baja IRQ. 101
2.5 Acceso directo a memoria
Puesto que la mayora de datos que maneja el ordenador estn antes o despus en la memoria RAM, los intercambios entre esta y el resto de elementos son muy frecuentes. En general este intercambio es conducido por el procesador, pero en determinados casos, la memoria pueda realizar intercambios directamente con los perifricos sin intervencin del procesador. Por ejemplo, el disco o una tarjeta de sonido, lo que conduce a un incremento del rendimiento del sistema. El mecanismo de acceso directo a memoria est controlado por un chip especfico, el DMAC (DMA Controller), que permite realizar estos intercambios sin apenas intervencin del procesador. En los XT estaba integrado en un chip 8237A que proporcionaba 4 canales de 8 bits (puede mover solo 1 Byte cada vez); sus direcciones de puerto son 00000Fh. Posteriormente en los AT se instalaron dos de estos integrados y las correspondientes lneas auxiliares en el bus de control. En contra de lo que podra parecer, el resultado no fue disponer de 8 canales.
Cada canal tiene asignada una prioridad para el caso de recibirse simultneamente varias peticiones (los nmeros ms bajos tienen prioridad ms alta). Pueden ser utilizados por cualquier dispositivo que los necesite (suponiendo naturalmente que est diseado para soportar este modo de operacin). Cada sistema los asigna de forma arbitraria, pero hay algunos cuya asignacin es estndar. El mecanismo de acceso directo a memoria DMA es bastante complejo en sus detalles, y por supuesto, el movimiento de grandes volmenes de datos entre memoria y un dispositivo requiere cierta intervencin del procesador. El movimiento se hace a rfagas, y cada transferencia se inicia con una interrupcin que obliga al procesador a suspender su tarea para permitir un nuevo intercambio. A continuacin intentaremos mostrar una visin general del proceso. Empezaremos sealando que el DMA permite mover datos entre un 102
puerto y memoria, o entre memoria y un puerto, pero no entre dos puertos o entre dos posiciones de memoria. Como veremos a continuacin, cada transferencia DMA requiere cierta preparacin previa; conocer el volumen de datos a transferir (la ms simple es de 1 byte) y la direccin de inicio del buffer de memoria involucrado (del que se leern los datos o donde se escribirn). Para esto dispone de dos registros para cada lnea; el contador y el registro de direcciones. Segn se refieran a operaciones de lectura (memoria dispositivo) o escritura (dispositivo memoria) reciben distintos nombres porque su significado difiere: Escritura: Direccin de inicio (Write starting address). Contador (Write starting word count) Lectura: Direccin actual de lectura (Read current address). Contador (Read remaining word count)
2.5.1 Sistema de video El subsistema de vdeo (VIO) es el encargado de gestionar la comunicacin entre los programas y la pantalla. Es, sin duda, el subsistema ms complejo de los tres, y el que ofrece, por tanto, mayores posibilidades. Dado que puede haber varios programas ejecutandose a la vez en el sistema, pero solo uno puede acceder a la vez a la pantalla (normalmente el programa que se encuentra en primer plano o foreground), es necesario virtualizar sta por medio de un buffer de pantalla propio de cada programa: el LVB (Logic Video Buffer, buffer de vdeo virtual). Cuando una aplicacin quiere escribir en pantalla y se encuentra en segundo plano (background), su salida se escribe en dicho LVB. En el momento en que el usuario conmuta dicho programa a primer plano, el LVB se copia tal cual en la memoria de pantalla, y el resto de las escrituras van a sta directamente. Si se vuelve a conmutar dicho programa a segundo plano, OS/2 copia lo que hubiese en pantalla en ese momento al LVB. De este modo, el programa nunca sabe ni le preocupa cuando est en primer o en segundo plano. 103
Funciones VIO Salida Por TTY Virtual En un extremo se encuentra el primer servicio que ofrece el subsistema VIO, que es el de salida TTY. Este servicio es casi idntico a la salida de caracteres por medio del sistema de archivos. De hecho, ste, cuando comprueba que lo que el programa enva va dirigido a la pantalla, usa este servicio para realizar la funcin. Cual es la diferencia entre uno y otro, entonces? Las diferencias son dos: la primera es que el uso del subsistema VIO es una opcin ms rpida que el sistema de ficheros; la segunda es que si usamos el subsistema, no podremos redireccionar la salida a un fichero, o a otro dispositivo de salida. Siempre ir a la pantalla. El servicio TTY admite los caracteres de control estandar del ASCII, y tambin puede soportar ANSI, si ste es activado mediante la llamada correspondiente. VioWrtTTY VioGetAnsi VioSetAnsi VioGetMode VioSetMode VioGetState VioSetState Salida de cadenas de caracteres Los siguientes servicios se encargan del tratamiento de la pantalla a ms bajo nivel. Con ellos podemos imprimir largas cadenas de caracteres con atributos y leer los caracteres que hay en determinadas posiciones de la pantalla. Tambin podemos repetir un caracter o una pareja caracter-atributo un nmero determinado de veces. 104
Los atributos son bytes que definen el color de tinta y de fondo para cada caracter, as como otras caractersticas como el parpadeo. Estn compuestos por un byte, el cual se divide en dos nibbles (grupos de 4 bits). El nibble de menor peso determina el color de la tinta del caracter, y el de mayor peso el color de fondo y, segn se encuentre activo o no, el parpadeo del caracter. La distribucin es como sigue: Parpadeo activado Bit Significado 7 Parpadeo del caracter 6 Rojo del fondo 5 Verde del fondo 4 Azul del fondo 3 Intensidad de la tinta 2 Rojo de la tinta 1 Verde de la tinta 0 Azul de la tinta
Intensidad activada Bit Significado 7 Intensidad del fondo 6 Rojo del fondo 5 Verde del fondo 4 Azul del fondo 3 Intensidad de la tinta 2 Rojo de la tinta 1 Verde de la tinta 0 Azul de la tinta
Fig. 2.12 Los bits de color activan directamente cada una de las componentes del monitor, de modo que stas se suman directamente, dando lugar a los siguientes colores: 105
0 Negro 1 Azul 2 Verde 3 Celeste 4 Rojo 5 Magenta 6 Amarillo 7 Blanco Fig. 2.13 El bit de intensidad se limita a hacer estos colores ms o menos brillantes. Estos servicios orientados a caracter siguen siendo independientes del hardware utilizado de modo que no es necesario saber como se trabaja a nivel fsico con ellos. Por otra parte, el propio OS/2 optimiza las transferencias para cada uno de ellos, de modo que se consigue la mayor velocidad posible, y se eliminan ciertos problemas inherentes a algunos sistemas grficos (por ejemplo, en las tarjetas CGA sincroniza automticamente la escritura con el retrazado vertical, de modo que se evita la aparicin de nieve en la pantalla). Tanto cuando hacemos una lectura como una escritura, si excedemos el fin de una lnea se seguir leyendo en la siguiente, y si llegamos al final de la pantalla no se seguir leyendo ni imprimiendo. 106
VioWrtCellStr VioWrtCharStr VioWrtCharStrAtt VioWrtNAttr VioWrtNCell VioWrtNChar VioReadCellStr VioReadCharStr Funciones de scroll El subsistema VIO ofrece, adems, la posibilidad de realizar scroll de ventanas en modo texto. Con este conjunto de funciones, podemos desplazar parte o toda la pantalla en cualquiera de las cuatro direcciones posibles. La razn de incluirlas es que resulta mucho ms rpido que hacer una rutina que lea cada posicin del buffer de video y la rescriba en el lugar adecuado, aparte de que se trata de una funcin muy comn en casi cualquier programa. VioScrollDn VioScrollLf VioScrollRt VioScrollUp Definicin y movimiento del cursor El cursor (el cuadradito parpadeante) es totalmente definible por el usuario en las sesiones de texto y grficos de OS/2. Podemos definir tanto su tamao como su posicin dentro del carcter. Al contrario que en MS-DOS, cuando escribimos en la pantalla de OS/2 la posicin del cursor no se cambia. Esto se hace as para ganar tiempo. Normalmente el cursor solo se usa cuando hay que introducir datos por teclado, y el resto de las 107
veces se suele hacer desaparecer de la pantalla. Esta es la razn de que halla un conjunto de funciones para situar el cursor. De esta manera se gana en velocidad. VioGetCurPos VioSetCurPos VioGetCurType VioSetCurType Acceso al LVB Cuando se necesite alta velocidad, se puede pedir acceso directo al buffer virtual de video asociado con la aplicacin. Al hacerlo, OS/2 devuelve un puntero a la zona de memoria en donde est situado, con lo que podremos escribir en l como si se tratase de la pantalla fsica. Una vez que hemos terminado, debemos enviar una orden de retrazado, que har que OS/2 copie el LVB a la pantalla fsica (siempre que la aplicacin se encuentre en primer plano). Esto significa que los cambios que hagamos en el LVB no son visibles hasta que nosotros queramos. Usar esta opcin implica que perdemos el aislamiento entre el hardware y nosotros: dado que el LVB no es ms que una copia del buffer real de pantalla, es necesario que nuestro programa conozca la geometra y la forma de almacenamiento de los datos en sta. VioGetBuf VioShowBuf Acceso directo al buffer real de video En el extremo opuesto se encuentran las funciones de acceso directo al video. Con ellas, OS/2 da acceso directo a la memoria de pantalla. Sin embargo, esto que en el DOS de siempre es la opcin ms normal y comn, puede resultar catastrfico en un Sistema Operativo multitarea como OS/2; no se hundira el 108
suelo bajo nuestros pies, pero la pantalla podra ser alterada en un momento poco oportuno... si OS/2 no tomase las debidas precauciones. Para que un programa pueda acceder directamente a la memoria real de video, es absolutamente necesario que se encuentre en primer plano. Esto es as porque si escribiese algo en pantalla cuando estuviese en background, machacara la imagen de la aplicacin que se encontrase en ese momento en primer plano. Lo primero que hay que hacer es pedir la direccin fsica de la memoria de vdeo. OS/2 devuelve un selector (o varios) a dicha zona de memoria. Estos selectores deben ser convertidos a punteros antes de poder trabajar con ellos. Pueden ser varios pues cada selector no puede apuntar a un bloque de memoria mayor de 64Ks, el cual es tambin, casualmente, el tamao de cada bloque de memoria de las tarjetas de vdeo actuales. Esto ayuda a simplificar el acceso, pues en modos como 640x480x16colores no necesitaremos cambiar de bancos; OS/2 nos devuelve un selector que apunta a cada uno de ellos, con lo que solo tenemos que acceder normalmente como si fuese memoria lineal, y el Sistema Operativo conmutar de uno a otro automticamente. El hecho de obtener un selector no significa que dispongamos de acceso todava a la pantalla. De hecho, si intentsemos escribir o leer algo en ese momento y la aplicacin no se encontrase en primer plano, OS/2 la cerrara inmediatamente, dando un Fallo de Proteccin General (el cual ya sabemos que no es tan fatal como el de Windows, pues en OS/2 solo afecta a la aplicacin que lo ha provocado, dejando intacto al Sistema Operativo y al resto de los programas). Cada vez que queramos acceder a la memoria fsica de video, debemos bloquear el acceso al buffer. Si el programa estaba en primer plano, OS/2 devolver un valor afirmativo al retornar de la llamada, y bloquear el selector de programas. Esto significa que el usuario no podr conmutar la sesin actual a segundo plano hasta que sta termine el acceso. Sin embargo, el resto de las aplicaciones siguen funcionando en segundo plano, sin verse afectadas por este hecho. Por supuesto, 109
esto puede ser peligroso, y OS/2 toma 0algunas precauciones: si el sistema est bloqueado y el usuario hace una conmutacin de tarea, si el programa no desbloquea el conmutador antes de un cierto tiempo definido por el sistema, queda congelado y se realiza la conmutacin. Por eso es recomendable desbloquear cada x tiempo el selector de programas y volverlo a bloquear. Si por el contrario el programa se encontraba en segundo plano, hay dos opciones: OS/2 puede retornar un cdigo de error al programa, con lo que este sabr que no tiene acceso al buffer y puede seguir trabajando en otra cosa, o bien OS/2 congelar al programa hasta que el usuario lo pase a primer plano, momento en que lo despertar indicandole que tiene acceso al buffer real. Una vez que OS/2 ha devuelto un resultado afirmativo, el programa tiene acceso total a la memoria de video. Cuando haya terminado, tiene que proceder a desbloquear la pantalla, de modo que OS/2 pueda desbloquear el selector de programas y devolver el sistema a la normalidad. VioGetPhysBuf VioScrLock VioScrUnLock Existe una dificultad adicional a la hora de trabajar con acceso directo a la pantalla. Se trata de que OS/2, al conmutar de una tarea a otra, solo guarda el contenido de la pantalla si sta se encontraba en modo texto (esto se cumple para OS/2 1.x. En Warp 4, sin embargo, SI conserva el contenido de la pantalla, pero no se si se cumple tambin para OS/2 2.x o 3.x). Si estabamos trabajando en modo grfico, el contenido se perder. Para evitarlo, OS/2 facilita la posibilidad de crear un thread (este concepto ser explicado ms adelante, cuando veamos la multitarea a fondo) que ser activado cuando el programa vaya a cambiar de primer a segundo plano, y viceversa. Esto es as para permitir que un programa pueda almacenar el contenido de la pantalla en modo grfico cuando no tiene bloqueado el acceso a la memoria de video. Es el thread SavRedrawWait. 110
Para implementarlo, es necesario crear un nuevo thread en el que se ejecute la llamada VioSavRedrawWait. Esta llamada bloquear el thread hasta que el usuario pulse CTRL+ESC, momento en que OS/2, antes de conmutar de tarea, despertar a dicho thread indicndole que debe almacenar el contenido de la pantalla. Cuando el thread termine, debe volver a ejecutar la llamada, con lo que OS/2 sabr que ha finalizado. El thread se quedar dormido de nuevo, y solo ser despertado cuando el usuario vuelva a conmutar a primer plano el programa. Entonces OS/2 le indicar que debe repintar la pantalla. VioSavRedrawWait La inclusin de este sistema de acceso puede parecer innecesaria, a la vista de la potencia del acceso al LVB; la razn de haberla implementado fue que, cuando sali OS/2, no llevaba todava el Presentation Manager, el gestor de ventanas, sino que era un Sistema Operativo en modo texto, por lo que se incluy este sistema para poder acceder en modo grfico a la pantalla, dado que VIO no ofrece ninguna facilidad como el trazado de puntos o lneas. Actualmente, al disponer de un completo (y complejo) gestor de ventanas, este mtodo puede parecer inutil, sin embargo, para juegos puede ser muy til, pues permite acceder a pantalla completa en modos como 320x200 en 256 colores, lo que permite una alta velocidad de refresco, as como una gran facilidad de manejo. Hay que sealar que el acceso directo a la memoria de vdeo solo se puede hacer estando en una sesin de pantalla completa; no funcionar en una sesin de ventana 2.5.2 Sistema de discos
Existen bsicamente dos tipos de discos IDE y SCSI. Las controladoras IDE son las que normalmente encontramos integradas en la placa madre y son las de uso ms normal en los ambientes domsticos. Las controladoras SCSI, son controladoras profesionales, orientadas normalmente al mbito profesional, y los discos y tecnologas SCSI son las punteras. Los discos salen en tecnologa 111
SCSI y uno o dos aos ms tarde, se implementan en tecnologa IDE. Es decir, los SCSI llevan un par de aos de diferencia en avance tecnolgico siempre con respecto a los IDE. Discos IDE Discos IDE. Son los orientados normalmente al consumo domestico. Existen dos tcnicas de acceso a estos discos. Son los modos PIO y los modos DMA. Tcnicas de acceso I/O Modos PIO: En los discos antiguos, el acceso a disco se haca mediante tcnicas PIO (Program Input/Output). En cualquier caso conviene indicar las fuentes ms importantes de informacin asociada a vulnerabilidades de seguridad. No hay que olvidar que la mayor parte de esta informacin es de dominio pblico y que los desarrollos posteriores que puedan hacerse (bien a medida internamente o contratados) van a estar basados en las mismas fuentes: 2.5.3 Otras aplicaciones
Modo de transferencia DMA 1. Transferencia single. En ella se transfieren los datos uno a uno. La CPU recupera el control entre cada transferencia. 2. Transferencia bloque. El controlador de DMA mantiene el control de los buses hasta que se finaliza la transferencia del bloque completo. 3. Transferencia demanda. Es la transferencia bajo control del perifrico. Se transfieren datos mientras la lnea DREQ se mantenga activa. Cuando se desactiva la seal DREQ se detiene la transferencia. Los buses pertenecen al control mientras DREQ es activa. 112
Fig. 2.14 Modo cascada. Permite indefinidamente el control 8237 Lneas HOLD y HLDA conectadas a DREQ y DACK.
113
UNIDAD III. Seleccin de componentes para ensamble de equipos de cmputo. 3.1 Chipset
El chipset constituye un conjunto de chips integrados que se encargan de funciones que el microprocesador delega a ellos. Chipset: es el conjunto (set) de chips que se encargan de controlar determinadas funciones del ordenador, como la forma en que interacciona el microprocesador con la memoria o la cach, o el control de los puertos y slots ISA, PCI, AGP, USB. Chipsets del 386SX: De los motherboards basados en el microprocesador 386sx que se encontraron en nuestro mercado slo han demostrado ser confiables los que poseen chipsets Headland HT18, OPTI y VLSI. Los tres han funcionado correctamente con cualquier tipo de software, incluso en operaciones que requieren de administracin multitarea. Los chipset OPTI y VLSI logran mejor velocidad en sus operaciones en conjunto con el procesador. Motherboards 386DX:Este microprocesador fue desarrollado por la compaa americana Intel. Al igual de lo que ocurri con el 286 y el 386sx, los modelos del 386 fueron tomados por otras empresas como base para desarrollar microprocesadores absolutamente compatibles en cuanto a su funcionamiento, pero de menor costo. Inclusive algunos de stos brindan mayores prestaciones. El microprocesador 386dx, al momento de su lanzamiento, era provisto por tres fabricantes, a saber: Intel (25 y 33 Mhz), AMD (25, 33 y 40 Mhz) y Chips & Technologies (33 Mhz). El 386dx de la empresa Chips & Technologies tiene una caracterstica de diseo especial por lo que lograba mayor performance que sus competidores. Este factor es sumamente significativo a tal punto que una mquina con este microprocesador de 33 Mhz es ms rpida que otra basada en un AMD de 40 Mhz. 114
La memoria cach: Con la aparicin de los microprocesadores 386 comienza a implementarse cachs de memoria; si bien existen algunas variantes todas tienen un funcionamiento similar. Para explicar su funcionamiento haremos la siguiente analoga: supongamos que se debe realizar una torta, para ello se recurre al supermercado y se compra la harina. Luego se va a una cocina y se coloca la harina necesaria segn la receta. Esta indica que debe agregarse leche; nuevamente se va al supermercado y se compra leche .De vuelta en la casa se agrega la leche, pero el prximo tem es azcar por lo que se debe recurrir nuevamente al supermercado y as sucesivamente con cada ingrediente. Definitivamente jams se hara esto en la vida real, sino que se comprara todo lo necesario y se lo guardara en la alacena, recurriendo a sta por cada ingrediente sin mayor prdida de tiempo. Llevando la analoga a la computadora, supongamos que la memoria principal es el mercado, el programa a ejecutar es la receta, el microprocesador la persona que realiza la torta y la memoria cach la alacena. El programa indica al microprocesador que debe ir a la memoria principal y buscar una instruccin, luego un dato despus una nueva instruccin y luego ms datos. Y as sucesivamente perdiendo tiempo en direccionar la memoria principal por cada elemento alojado en sta. En cambio con una implementacin de memoria cach, el microprocesador lee una direccin de memoria y mientras ste procesa la informacin, circuitos especiales hacen que la memoria cach lea las restantes posiciones de memoria consecutivas. Cuando el microprocesador necesita leer las prximas direcciones de memoria, el contenido de stas se encuentra en la cach, que si bien es una cantidad de memoria pequea, es varias veces ms rpida que la memoria principal, logrando as un incremento sustancial en la velocidad del procesamiento. CHIPSETS DEL 386DX: En cuanto a los chipsets utilizados con el 386dx, los chips OPTI, ETEQ, SIS, VMC y MORSE han sido probados con todo tipo de software y marcas de micros obteniendo ptimos resultados y sin presentar problemas. 115
Motherboards 486: Bsicamente la arquitectura del microprocesador 486 integra en un solo chip el microprocesador propiamente dicho, el coprocesador matemtico y la memoria cach. 3.1.1 Cpu UCP o procesador, interpreta y lleva a cabo las instrucciones de los programas, efecta manipulaciones aritmticas y lgicas con los datos y se comunica con las dems partes del sistema. Una UCP es una coleccin compleja de circuitos electrnicos. Cuando se incorporan todos estos circuitos en un chip de silicio, a este chip se le denomina microprocesador. La UCP y otros chips y componentes electrnicos se ubican en un tablero de circuitos o tarjeta madre. La expresin "unidad central de proceso" es, en trminos generales, una descripcin de una cierta clase de mquinas de lgica que pueden ejecutar complejos programas de computadora. Esta amplia definicin puede fcilmente ser aplicada a muchos de los primeros ordenadores que existieron mucho antes que el trmino "CPU" estuviera en amplio uso. Sin embargo, el trmino en s mismo y su acrnimo han estado en uso en la industria de la informtica por lo menos desde el principio de los aos 1960 . La forma, el diseo y la implementacin de las CPU ha cambiado drsticamente desde los primeros ejemplos, pero su operacin fundamental ha permanecido bastante similar. Las primeras CPU fueron diseadas a la medida como parte de una computadora ms grande, generalmente una computadora nica en su especie. Sin embargo, este costoso mtodo de disear los CPU a la medida, para una aplicacin 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 propsitos. Esta tendencia de estandarizacin comenz generalmente en la era de los transistores discretos, computadoras centrales, y microcomputadoras, y fue acelerada rpidamente con la popularizacin del circuito integrado (IC), ste ha permitido que sean diseados y fabricados CPU ms complejos en espacios 116
pequeos (en la orden de milmetros). Tanto la miniaturizacin como la estandarizacin de los CPU han aumentado la presencia de estos dispositivos digitales en la vida moderna mucho ms all de las aplicaciones limitadas de mquinas de computacin dedicadas. Los microprocesadores modernos aparecen en todo, desde automviles, televisores, neveras, calculadoras, aviones, hasta telfonos mviles o celulares, juguetes, entre otros. Los factores relevantes de los chips de UCP son: Compatibilidad: No todo el soft es compatible con todas las UCP. En algunos casos se pueden resolver los problemas de compatibilidad usando software especial. Velocidad: La velocidad de una computadora est determinada por la velocidad de su reloj interno, el dispositivo cronomtrico que produce pulsos elctricos para sincronizar las operaciones de la computadora. Las computadoras se describen en funcin de su velocidad de reloj, que se mide en mega hertz. La velocidad tambin est determinada por la arquitectura del procesador, es decir el diseo que establece de qu manera estn colocados en el chip los componentes individuales de la CPU. Desde la perspectiva del usuario, el punto crucial es que "ms rpido" casi siempre significa "mejor". El procesador. El chip ms importante de cualquier placa madre es el procesador. Sin el la computadora no podra funcionar. A menudo este componente se determina CPU, que describe a la perfeccin su papel dentro del sistema. El procesador es realmente el elemento central del proceso de procesamiento de datos. Los procesadores se describen en trminos de su tamao de palabra, su velocidad y la capacidad de su RAM asociada. Tamao de la palabra: Es el nmero de bits que se maneja como una unidad en un sistema de computacin en particular. 117
Velocidad del procesador: Se mide en diferentes unidades segn el tipo de computador. MHz (Megahertz): para microcomputadoras. Un oscilador de cristal controla la ejecucin de instrucciones dentro del procesador. La velocidad del procesador de una micro se mide por su frecuencia de oscilacin o por el nmero de ciclos de reloj por segundo. El tiempo transcurrido para un ciclo de reloj es 1/frecuencia. MIPS (Millones de instrucciones por segundo): Para estaciones de trabajo, minis y macrocomputadoras. Por ejemplo una computadora de 100 MIPS puede ejecutar 100 millones de instrucciones por segundo. FLOPS (floating point operations per second, operaciones de punto flotante por segundo): Para las supercomputadoras. Las operaciones de punto flotante incluyen cifras muy pequeas o muy altas. Hay supercomputadoras para las cuales se puede hablar de GFLOPS (Gigaflops, es decir 1.000 millones de FLOPS). Capacidad de la ram: Se mide en trminos del nmero de bytes que puede almacenar. Habitualmente se mide en KB y MB, aunque ya hay computadoras en las que se debe hablar de GB.
Fig. 3.1 funcionamiento memoria ram
118
3.1.2 Controlador del bus El Bus es la va a travs de la que se van a transmitir y recibir todas las comunicaciones, tanto internas como externas, del sistema informtico. El bus es solamente un Dispositivo de Transferencia de Informacin entre los componentes conectados a l, no almacena informacin alguna en ningn momento. Los datos, en forma de seal elctrica, slo 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 tpica el bus se subdivide en tres buses o grupos de lneas. Bus de Direcciones. Bus de Datos. Bus de Control. Bus de direcciones: Es un canal de comunicaciones constituido por lneas que apuntan a la direccin de memoria que ocupa o va a ocupar la informacin a tratar. Una vez direccionada la posicin, la informacin, almacenada en la memoria hasta ese momento, pasar a la CPU a travs del bus de datos. Para determinar la cantidad de memoria directamente accesible por la CPU, hay que tener en cuenta el nmero de lneas que integran el bus de direcciones, ya que cuanto mayor sea el nmero de lneas, mayor ser la cantidad de direcciones y, por tanto, de memoria a manejar por el sistema informtico. Bus de datos: El bus de datos es el medio por el que se transmite la instruccin 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 informtico, como externamente, entre el sistema informtico y los diferentes subsistemas perifricos que se encuentran en el exterior, una de las caractersticas principales de una computadora es el nmero de bits que puede transferir el bus de datos (16, 32, 64, etc.). cuanto mayor sea este nmero, mayor ser la cantidad de informacin que se puede manejar al mismo tiempo. 119
Bus de control: Es un nmero variable de lneas a travs de las que se controlan las unidades complementaras. El nmero de lneas de control depender directamente de la cantidad que pueda soportar el tipo de CPU utilizada y de su capacidad de direccionamiento de informacin. Funcionamiento En el bus se encuentran dos pistas separadas, el bus de datos y el bus de direcciones. La CPU escribe la direccin de la posicin deseada de la memoria en el bus de direcciones accediendo a la memoria, teniendo cada una de las lneas carcter binario. Es decir solo pueden representar 0 o 1 y de esta manera forman conjuntamente el nmero de la posicin dentro de la memoria (es decir: la direccin). Cuantas ms lneas haya disponibles, mayor es la direccin mxima y mayor es la memoria a la cual puede dirigirse de esta forma. En el bus de direcciones original haba ya 20 direcciones, ya que con 20 bits se puede dirigir a una memoria de 1 MB y esto era exactamente lo que corresponda a la CPU. Esto que en le teora parece tan fcil es bastante mas complicado en la prctica, ya que aparte de los bus de datos y de direcciones existen tambin casi dos docenas ms de lneas de seal en la comunicacin entre la CPU y la memoria, a las cuales tambin se acude. Todas las tarjetas del bus escuchan, y se tendr que encontrar en primer lugar una tarjeta que mediante el envo de una seal adecuada indique a la CPU que es responsable de la direccin que se ha introducido. Las dems tarjetas se despreocupan del resto de la comunicacin y quedan a la espera del prximo ciclo de transporte de datos que quizs les incumba a ellas.
PROCESADOR Bus de direcciones Bus de datos 8086 20 16 120
8088 20 8 80186 20 16 80188 20 8 80286 24 16 80386 SX 32 16 80386 DX 32 32 80486 DX 32 32 80486 SX 32 32 PENTIUM 32 64 PENTIUM PRO 32 64 Este mismo concepto es tambin la razn por la cual al utilizar tarjetas de ampliacin en un PC surgen problemas una y otra vez, si hay dos tarjetas que reclaman para ellas el mismo campo de direccin o campos de direccin que se solapan entre ellos. Los datos en si no se mandan al bus de direcciones sino al bus de datos. El bus XT tena solo 8 bits con lo cual slo poda transportar 1 byte a la vez. Si la CPU quera depositar el contenido de un registro de 16 bits o por valor de 16 bits, tena que desdoblarlos en dos bytes y efectuar la transferencia de datos uno detrs de otro. 121
De todas maneras para los fabricantes de tarjetas de ampliacin, cuyos productos deben atenderse a este protocolo, es de una importancia bsica la regulacin del tiempo de las seales del bus, para poder trabajar de forma inmejorable con el PC. Pero precisamente este protocolo no ha sido nunca publicado por lBM con lo que se obliga a los fabricantes a medir las seales con la ayuda de tarjetas ya existentes e imitarlas. Por lo tanto no es de extraar que se pusieran en juego tolerancias que dejaron algunas tarjetas totalmente eliminadas. 3.1.3 Puertos de entrada/salida
Un puerto es el lugar donde el CPU se comunica con otros dispositivos, existen de varios tipos, hay puertos de entrada, de salida y ambos. Adems estos pueden ser seriales o paralelos. Puertos de entrada: Estos puertos recogen datos de algn dispositivo externo, externo se refiere a estar fuera del CPU, no del gabinete. Existen muchos dispositivos perifricos que se conectan a un puerto de entrada, por ejemplo tenemos al teclado y al Mouse, tambin estn los lpices pticos, los lectores de cdigo de barras, etc. Puertos de salida: Son todos aquellos por donde el CPU enva datos a otros dispositivos, por ejemplo estn la salida de video y de sonido. Puertos de entrada/salida: Estos son una clase de puertos por donde el CPU puede enviar y recibir informacin. Son muy importantes, ya que entre estos se encuentran las memorias del CPU como son la RAM, ROM, los floppys y discos duros. Estos puertos pueden ser usados para controlar dispositivos, tales como las impresoras y los quemadores externos, por ejemplo. Nosotros vamos a hablar acerca de los puertos que se encuentran fuera del gabinete, hablaremos de los puertos de teclado, Mouse, impresoras, etc. La computadora por s mismas no sera capaz de realizar operaciones tiles para nosotros si no podemos comunicarnos con ella, necesita dispositivos perifricos 122
por donde pueda darnos mensajes y nosotros podemos enviarle rdenes. Ahora bien, existen infinidad de dispositivos que sirven de extensin a la computadora, muchos son para fines muy especficos y no se pueden abarcar, entre los dispositivos que son de uso comn se encuentra la impresora, el teclado, el Mouse y el monitor. Puerto serial: El puerto serial es aquel que enva y recibe los datos BIT por BIT, entre los puertos seriales se puede mencionar el puerto de teclado, o el puerto del MODEM. Puerto paralelo: Este tipo de puerto transmite la informacin byte por byte, o sea que transmite ocho bits al mismo tiempo, de forma paralela. Un puerto paralelo por excelencia pues es el puerto para impresora. Se puede observar que un puerto de entrada puede ser paralelo o serial, lo mismo que un puerto de entrada o de entada/salida. A cada puerto la bios le asigna una direccin de memoria para que pueda trabajar, dependiendo de que clase de puerto sea se le asigna un determinado espacio exclusivo para l. Por medio de estas localidades de memoria el sistema puede enviarles o recibir informacin, es una especie de memoria de intercambio para la transmisin de datos de un lugar a otro. A esto se le llama espacio de localidades de memoria y se realiza dentro del primer kilo bite de la memoria principal. Existen otras asignaciones de memoria en otras capas superiores de memoria principal. Existen otras asignaciones de memoria en otras capas superiores de memoria pero estas son hechas por el sistema operativo y por los dems programas, pero estas asignaciones son para fines especficos de los dems programas. Los puertos no solo se limitan a recibir la informacin, o enviarla, segn sea el caso. El puerto provee la corriente elctrica necesaria para el funcionamiento del dispositivo y revisa el estado de este. 123
3.1.4 Controlador de interrupciones
Procesamiento de la interrupcin Cuando un dispositivo de E/S termina una operacin de E/S, se produce la siguiente secuencia de eventos: 1.- El dispositivo enva una seal de interrupcin al procesador 2.- El procesador termina la ejecucin de la instruccin en curso antes de responder a la interrupcin. 3.- El procesador comprueba si hay alguna interrupcin. Si hay alguna, enva una seal de reconocimiento al dispositivo que la origin 4.- El procesador debe prepararse para transferir el control a la rutina de interrupcin. Debe guardar la informacin necesaria para continuar con el proceso en curso en el punto en que se interrumpi. Guarda en la pila del sistema el contenido de los registros, etc. 5.- El procesador carga en el PC la direccin de inicio del programa de gestin o servicio de interrupcin solicitada. 6.- Una vez modificado el PC, el procesador contina con el ciclo de instruccin siguiente. Es decir, se transfiere el control a la rutina servidora de la interrupcin. 7.- Cuando finaliza el servicio de la interrupcin, se restauran los valores de los registros. El controlador de interrupciones es un chip responsable de coordinar las interrupciones a la CPU. Acta como un policia que administra las solicitudes de servicio (interrupciones) dirigidas a la CPU. Si algn dispositivo requiere acceso a la CPU primero tiene que recurrir a este chip, el cual decide quien de los solicitantes tiene la mas alta prioridad y le permite hablar con el jefe (la CPU). 124
Esta a su vez, atiende al solicitante y si no puede se lo indica. Un dispositivo requiere el servicio. La CPU lo reconoce a travs del policia. Este le dice al jefe que alguien quiere una cita, filtra la cita conforme a prioridades y la otorga. La CPU obtiene el permiso del solicitante (la direccin en memoria donde se encuentra su pase). La CPU ya con el pase del solicitante en la mano, se dirige a dicha direccin y empieza a ejecutar las instrucciones que all se encuentran. Al terminar, la CPU regresa a su lugar de origen para continuar con lo que estaba haciendo (dejando todo en su lugar tal como estaba antes de haber sido interrumpida).
3.1.5 Controladores de DMA
DMA (DIRECT MEMORY ACCESS). La E/S con interrupciones, aunque ms eficiente que la E/S programada, tambin requiere la intervencin del CPU para transferir datos entre la memoria y el mdulo de E/S. Consideren el siguiente ejemplo. Cuando se va a leer una lnea desde un terminal, el primer carcter escrito es enviado al computador. Cuando el carcter es recibido por el controlador, ste interrumpe al CPU. El CPU le da servicio a la interrupcin y luego continua con el proceso que estaba ejecutando. Esto es posible cuando el dispositivo es muy lento comparado con el CPU. Entre un carcter y otro el CPU lleva a cabo gran cantidad de procesamiento. Pero qu sucede cuando estamos trabajando con dispositivos de E/S ms veloces? Tendramos interrupciones muy seguidas y se estara desperdiciando mucho tiempo. 125
Para evitar esto, se utiliza DMA para dispositivos de E/S de alta velocidad. E1 controlador del dispositivo transfiere un bloque de datos desde o para sus buffers de almacenamiento a memoria directamente sin intervencin del CPU. Solo se produce una interrupcin por bloque en lugar de tener una interrupcin por cada byte (o palabra). Por ejemplo, un programa solicita una transferencia de datos. El Sistema de Operacin busca un buffer disponible. El controlador de DMA tiene sus registros actualizados con las direcciones del fuente y del destino y la longitud de la transferencia. Por lo general esta actualizacin es realizada por el manejador de dispositivo (rutina). Se indica al controlador de DMA a travs de bits de control en un registro de control pare que inicie la operacin de E/S. Mientras tanto el CPU puede llevar a cabo otras operaciones. El controlador de DMA interrumpe el CPU cuando la transferencia ha sido terminada. El CPU interviene solo al comienzo y al final de la transferencia. Transferencias va dma. Algunos dispositivos de entrada/salida envan datos a la memoria ms rpido de lo que el microprocesador puede manejar. El controlador de DMA (Direct Memory Access) es un circuito integrado dedicado que puede enviar y recibir datos ms rpido que el microprocesador. Luego, dispositivos como discos pticos y magnticos utilizan este integrado para acceder a la memoria del sistema. El controlador de DMA (Direct Memory Access) toma prestado los buses de datos, de direcciones y de control del sistema y enva un nmero programado de bytes desde un dispositivo de entrada/salida hasta la memoria. El "8237 DMA controller" es el nombre del circuito integrado que utilizan los PCs para esta funcin. Cuando un dispositivo tiene un bloque de datos preparado para enviar a la memoria, enva una peticin al DMA poniendo una seal DRQn a "1". Si el canal de DMA se halla disponible, el DMA enviar una seal HRQ (hold request) al microprocesador. El microprocesador responder dejando los buses libres y 126
enviando una seal HLDA (hold acknowledge) al DMA. Luego el DMA obtiene el control de los buses poniendo la seal AEN a nivel alto y enva la direccin de memoria a ser escrita. Despus el DMA enva la seal de DACKn (DMA acknowledge) al dispositivo. Finalmente el controlador de DMA se ocupa de manejar las seales de MEMW y IOR del bus de control. Cuando la transferencia de datos se ha completado vuelve a poner la seal HRQ a nivel bajo y el procesador recupera el control de los buses de nuevo. Si un dispositivo necesita datos de la memoria, el proceso es similar. La nica diferencia consiste en que el controlador de DMA usa las seales MEMR y IOW en el bus control.
Fig. 3.2 En la figura pueden verse: un perifrico con su correspondiente controlador de E/S, un controlador de DMA y las seales de pedido y concesin del bus que permiten alternar el bus master entre la CPU y el controlador de DMA. El perifrico solicita una transferencia al controlador de DMA, el cual a su vez solicita el bus a la CPU. Si la CPU no est utilizando el bus ni est en estado LOCK, lo concede al controlador de DMA, el cual a su vez informa al perifrico para que prepare los datos a transferir. En una transferencia de entrada, los datos se mueven desde el perifrico (1/0) a la memoria por el bus de datos sin parar por el controlador de DMA y sin intervencin de la CPU. Las lneas de control para leer la 1/0 (IOR*) y para escribir la memoria (MEMW*) son manejadas por el controlador de DMA. 127
De la misma forma, en una transferencia de salida los datos se mueven desde la memoria a la 1/0 y el controlador de DMA maneja las lneas de control para leer la memoria (MEMR*) y para escribir en el perifrico (IOW*). 3.1.6 Circuitos de temporizacin y control.
El temporizador es un circuito que se encuentra en la tarjeta matriz (Mother Borrad) 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 da y la fecha si se deja la PC conectada y encendida (en el caso de computadoras anteriores a la AT, pues esta tiene un reloj de batera integrado; a este respaldo de batera se le conoce como CMOS (complementary MOS). El chip mantiene tres contadores independientes (definidos como 0, 1, 2), cada uno de los cuales es alimentado por una seal que equivale a 1.19318 MHZ. El contador obtiene una capacidad mxima de conteo que asciende a 65 536. Su salida tiene una frecuencia de 18.2 HZ.(1.19/65536) aproximadamente. Por lo tanto, cualquier accin que interrumpa a la PC ocurrir 18.2 veces por segundo (cada 55 ms o cada 0.055 segundos en forma redondeada). Dicha accin genera una interrupcin llamada interrupcin del contador, la cual interrumpe brevemente la CPU e incrementa la cuenta del da. Cuando el contador del canal cero llega a 0 (los tres contadores del temporizador timer siempre cuentan en forma regresiva), significa que la hora es exactamente las 24:00 (hora militar) y entonces es inicializado a cero de nuevo. El contador 1 es usado por la PC para realizar el proceso de refrescamiento de memoria (DMA memory Refresh) y no debe ser alterado bajo ninguna circunstancia. 128
El contador 2 generalmente se encuentra programado para trabajar con la bocina. Los primeros dos contadores (0 y 1) envan una interrupcin a la CPU mientras que el 2 no lo hace.
3.1.7 Controladores de video
Los controladores son circuitos de entrada que tienen todas las impresoras. Son los que procesan la informacin en primer lugar para saber exactamente qu les est llegando y como manipular los datos. Bsicamente, un controlador de una impresora recoge los datos que proceden del PC y los convierte en datos de imagen que debern 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 perifrico. Los datos de imagen indican si un punto es blanco o negro, en c aso de una impresora de color de que color ser ese punto. Veamos un ejemplo de la formacin de una letra A: 1.- El controlador recibe un dato del ordenador. Ese dato es el nmero 41h, segn una tabla el controlador interpreta que 41h quiere decir A. Fig. 3.3 129
1. tras interpretar el dato como una A el controlador busca en sus fuentes la forma de esa letra.
Fig. 3.4 3.- una vez se ha creado toda la imagen de una pgina esta se le pasa al video interface. Los datos de una pgina pasados a imagen se llaman datos rasterizados o rpeados. Los datos rasterzados se transmiten a la video interface de lnea a lnea. 130
Fig. 3.5
131
3.2 Aplicaciones 3.2.1 Entrada/salida
Entrada: Los dispositivos de entrada, como hemos visto, tienen una funcin determinada: suministrar datos a la CPU. Veamos los ms importantes: El teclado: Es quizs el perifrico al cual se presenta menor atencin. Y no hay razn para este desaire ya que es un dispositivo esencial y frente al que se pasan muchas horas. Siendo esto as, elegir un teclado de calidad repercutir tambin en el rendimiento de nuestro trabajo, sobre todo si ste est basado en el procesador de textos. Las caractersticas principales que describen un teclado son las siguientes: Sistema de conexin: Esta puede ser mediante AT (o DIM de 5 pines): un conector redondo del tamao de un pulgar; PS-2 (o Mni-Dim): parecido al anterior pero ms pequeo de dimetro; o USB, es un nuevo sistema de conectividad que permite instalar y desinstalar perifricos en caliente (sin apagar el ordenador). Hay otros, pero estos son los principales. Debemos elegir el sistema adecuado para poder conectar el teclado a nuestra placa. Existen en venta, no obstante, adaptadores entre Dim a Mini-Dim y viceversa. MECANCO O MEMBRANA?: El teclado mecnico basa el mecanismo de pulsacin de las teclas en unos muelles o resortes. Los de membrana utilizan para este fin un sistema parecido al de los mandos a distancia de la TV. Es decir, una membrana de plstico realiza el contacto y vuelve a la tecla a su posicin inicial. Esta caracterstica hace al teclado mecnico ms robusto y resistente, pero tambin de tacto ms duro. DSEO: Los teclados ergonmicos, con hot-Reys (teclas de acceso rpido configurables), con mini-joysticR, etc; son elecciones disponibles en el mercado las cuales solo hay que valorar si su precio es acorde con nuestras necesidades. Sistema de conexin: Vale lo dicho para los teclados. Tambin es frecuente la conexin al puerto serie. 132
Tecnologa utilizada: Aqu podemos diferenciar: ratones mecnicos, son los ms comunes, la gua del puntero se realiza mediante una bola que se desliza sobre unos ejes; pticos, utilizan tecnologa ptica, lo que los hace ms precisos; opto mecnicos, un hbrido. Existen otras tecnologas, pero mucho menos utilizadas. Diseo: Tambin encontramos los que apuestan por la ergonoma, los colores y formas originales, etc. Dentro de este perifrico podemos diferenciar los TracR- ball: dispositivos de puntero ideales para lo que no disponen de mucho espacio de escritorio. En ellos, en vez de desplazar el ratn sobre una alfombrilla, el movimiento se realiza girando una bola o rodillo sobre un eje fijo. Nmero de botones: Dos o tres. Con dos normalmente es suficiente. El tercero (central) normalmente es configurable y se utiliza en contadas aplicaciones. Tambin los hay con botones laterales, ruedas, etc. Si esto es til o un engorro es algo que deber valorar el usuario. Joystick sistema de conexin: Van conectados al puerto juegos de la placa, al de la tarjeta de sonido, al puerto o puertos de una tarjeta de juegos, o eventualmente, al puerto serie o paralelo. Aunque la opcin del puerto de la tarjeta de sonido es con mucho la ms utilizada por ahorro de recursos. Tecnologa: Aqu dependiendo del tipo de JoystckR que estemos hablando (palanca, joypad, volante, etc) la tecnologa utilizada es variopinta. A pesar de ello es til optar por mandos robustos y que ofrezcan buen soporte de software. Los basados en tecnologa digital son ideales para los que se requieran precisin en sus batallas particulares. Muchos joysticR permiten de forma sencilla y simplemente mediante el uso de un cable especial (en forma de Y), la utilizacin de dos dispositivos simultneos. Gran cosa para compartir la accin con amigos/as. Escner: Un escner es un perifrico el cual nos permite digitalizar imgenes o texto con el fin de pasar esta informacin a un fichero, normalmente con el fin de modificarlo o almacenarlo en soportes de alta capacidad. 133
A tener en cuenta: Sistema de conexin: Lo ms extendido es conectarlos al puerto de impresora y sta a su vez, al escner. Con lo que con el uso de un solo puerto tendremos dos dispositivos. Tambin existen otras opciones, como la conexin a puerto SCSI o USB. Sistema de escaneo: Los escner de sobremesa permiten tratar imgenes provenientes de libros o revistas. Los de rodillo o las impresoras convertidas a escner (mediante la utilizacin de un cabezal especial) tienen el inconveniente de limitar nuestro trabajo a documentos que puedan pasar por su torno. Los escner de mano son muy verstiles pero tambin poco tiles para trabajos que requieran gran resolucin. Resolucin: Hay en el mercado gran oferta en capacidad de resolucin. Esto afecta a la calidad con la que podremos obtener el documento resultante. sta se mide en dpi (dot per inchs = puntos por pulgada, tambin PPP). Es frecuente encontrar informacin sobre la resolucin real y la resolucin por interpolacin (mediante software), las cuales no son comparables y deben tenerse en cuenta a la hora de elegir varias ofertas. No obstante hay que tener en cuenta que para cualquier usuario normal o semi-profesional, un escner de gama media-baja es ms que suficiente, ya que stos ofrecen resoluciones superiores a las que nuestra memoria RAM puede soportar (Y tambin nuestro disco duro). Capacidad de escaneo: Los escner de sobremesa y rodillo normales aceptan tamaos de hasta DIN A4 o folio. Otros tamaos mayores requeriran escner especiales. CD-ROM: La unidad de CD-ROM, as como los DVD, son la nica respuesta al aumento de tamao que en los ltimos tiempos han experimentado los programas. Prcticamente toda la informacin electrnica se distribuye ya en CD-ROM y la cada de precios de las unidades grabadoras de este soporte lo han hecho an 134
ms popular. Siendo estos as, el lector de Cd-Roms es un dispositivo imprescindible en cualquier PC. Sistema de conexin: Lo habitual es a puerto IDE (como los discos duros), pero tambin podemos encontrarlos a puerto SCSI e incluso externos a puerto paralelo. Ver s disponemos de un puerto libre adecuado y, en el caso de los internos, de hueco en la caja para alojarlo, es lo primero que debemos averiguar. Tiempo medio de acceso (TMA): Es el tiempo, medido en milisegundos, que tarda como media la cabeza lectora en situarse en un punto concreto del disco. A menor tiempo, lgicamente, ms efectividad y velocidad en la lectura de datos. Velocidad: Medida en kilobytes por segundo (Kb/s), nos indica la velocidad mxima de transferencia de datos. La transferencia de un Cd-Rom X1 es 150 Kb/s. tomando eso como referencia podremos averiguar fcilmente qu nos indica las unidades llamadas x2, x4,, x40. Efectivamente hay que multiplicar el nmero entero por 150 y tendremos la velocidad de transferencia mxima de nuestra unidad. Cuanto ms rpida, menos tardar en leer una cierta cantidad de datos. Eso s, en unidades muy rpidas debemos asegurarnos que el nivel de ruido durante el funcionamiento es aceptable. Memoria buffer: Indica si la unidad dispone de una cantidad de memoria donde almacena datos que despus sern reclamados por el microprocesador, acelerando as su lectura. Mejor si tiene, y cuanta ms, mejor. Compatibilidad de formatos: Pese a lo que pueda parecer a simple vista, no todos los Cd-Roms estn grabados en el mismo formato. Un compacto musical, un programa o un DVD pueden tener aspectos parecidos pero no contienen lo mismo ni todos los lectores son capaces de reconocerlos y leerlos. Cualquier unidad moderna podr leer la mayora de los formatos; no as si disponemos de una con ms de 2 o 3 aos de antigedad. Salida monitor tecnologa: Tubo de rayos catdicos, lo normal; o cristal lquido, lo normal en porttiles y monitores ultramodernos de pantalla plana. Tambin 135
debemos prestar atencin a otras caractersticas relacionadas como s el tubo es Trinitron (mas caro pero mayor pureza de color). En la eleccin debe primar el estudio de nuestras necesidades y tambin de nuestra economa. Resolucin mxima: Indica a la mxima resolucin (en PPP, puntos por pulgada) que puede trabajar el monitor, lo cual como vemos no depende slo de la tarjeta grfica. Cuanta ms mejor. Tamao: Medido en pulgadas (= 25,4 mm) se refiere a la diagonal, es decir, la distancia entre una esquina y su opuesta. El tamao es importante sobre todo cuando se trabaja con varias aplicaciones a la vez o cuando utilizamos programas que a su vez abren otras muchas ventanas (programas de diseo). Tambin si por cualquier otra necesidad necesitamos una pantalla que sirva tambin para presentaciones o reproduccin de vdeo. Un monitor de 15 pulgadas es una buena opcin para el usuario medio, a partir de ese tamao los precios se disparan. Tamao del punto: Llamado tambin dot pich. Se refiere al dimetro, medido en mm, de los orificios por los cuales pasan los rayos catdicos. A menor tamao, ms definicin tendrn las imgenes vistas en pantalla. Lo normal es 0,25-0,28. Baja radiacin: Como su nombre indica define que existe una baja emisin, por parte del tubo, de radiaciones electrostticas y electromagnticas. Sin sta caracterstica la nica solucin ser utilizar un buen filtro de pantalla o un parche para cada ojo. Multisync (Multifrecuencia): S nuestro ordenador es Multisync podr adaptarse automticamente (o manualmente) a diferentes modos de video o resoluciones. Con ello, junto con el control digital de la imagen, podremos utilizar siempre todo el tamao de pantalla. Otros aspectos como los monitores multimedia (con micrfono y altavoces incorporados), pantallas planas, el diseo, etc. Debern tenerse en cuenta dependiendo de las necesidades. 136
Impresora: Un elemento casi obligatorio si se posee un ordenador es una impresora. Quin no tiene que imprimir alguna vez un currculo, una carta o una foto molona? Claro que tambin hay quien imprime una carta al mes y quien imprime 1000 al da. Hay quien busca resolucin fotogrfica y quien nunca imprime en color. Para eso est la variedad, las necesidades propias de cada uno. Tecnologa: Hoy da lo ms extendido son las impresoras de inyeccin o lser. Pero tambin nos podemos encontrar con ms de las que creemos de las de tipo aguja. Las impresoras de aguja imprimen como una mquina de escribir. Es decir, por contacto de unas piezas metlicas (agujas) con una cinta impregnada de tinta y el papel. Sus inconvenientes es que son ruidosas, de baja resolucin y no muy limpias. Ventajas? Puedes encontrar alguna de segunda mano casi gratis. Y s total, slo la quieres para imprimir el borrador de tus apuntes de derecho las de inyeccin, como su nombre indica, funcionan por inyeccin directa de la tinta al papel (eso s, a una nfima distancia), poseen resoluciones casi fotogrficas y son mucho ms silenciosas que las anteriores. Los inconvenientes son sobre todo el alto precio de los cartuchos de tinta, en ocasiones de escndalo. Las impresoras lser, pese a ser la opcin ms cara en principio, es la ms recomendada para los usuarios que necesiten imprimir gran cantidad de documentos ya que el precio por una impresin de buena calidad es bastante bajo. Resolucin: Indicada en PPP (puntos por pulgada) o matriz de puntos (punto ancho x puntos largo). A mayor resolucin, ms calidad podriamos llegar a obtener en nuestras impresiones. Admisin de papel: Debemos fijarnos tanto en el tamao del papel con el que es capaz de trabajar; como si admite modo vertical o apaisado; s se posee alimentador de hojas automtico y de qu capacidad; y s admite sobres, etiquetas y papeles especiales. Color?: No todas las impresoras pueden imprimir a color. Algunas necesitan la compra adicional de un cartucho de color que no viene incluido en el precio. 137
Tamao y diseo: No todas son iguales, pero su formato exterior no es lo nico que las diferencia. Una impresora muy pequea puede ser una magnifica solucin a la falta de espacio o como compaera de un equipo porttil. Sin embargo, suelen tener un gran gasto en consumibles debido a que como los cartuchos de tinta tambin son pequeos se gastan rpidamente y por su peculiar formato reducido normalmente valen ms que los otros. Consumibles: Quizs el aspecto que el usuario domstico ms debera mirar con lupa. Los precios de los consumibles: cartuchos, toners, etc, pueden resultar un gran handicap a la hora de decidirnos. Ciertas marcas venden impresoras baratas pero con un gasto en consumibles superior a sus competidores (bien sea porque consumen ms o porque el precio es mayor). Si no queremos llevarnos un susto de cuidado debemos elegir impresoras con consumibles baratos y fciles de encontrar en los comercios. No teniendo esta preocupacin nos puede salir cuenta comprar una impresora nueva cada vez que se nos gaste la tinta. Velocidad de impresin: Nmero de pginas por minuto, contando siempre con que la prueba se realiza con un DIN A4 completamente escrito por una cara. Normalmente veremos la velocidad en B/N y color. Cuando ms rpido mejor, pero no deberamos desembolsar una gran cantidad de dinero slo por esto. 3.2.2 Almacenamiento
Unidades de disquete. Por malo y anticuado que sea un ordenador, siempre dispone de al menos uno de estos aparatos. Su capacidad es totalmente insuficiente para las necesidades actuales, pero cuentan con la ventaja que les dan los muchos aos que llevan como estndar absoluto para almacenamiento porttil.
138
Discos duros. Son otro de los elementos habituales en los ordenadores, al menos desde los tiempos del 286. Un disco duro est compuesto de numerosos discos de material sensible a los campos magnticos, apilados unos sobre otros; en realidad se parece mucho a una pila de disquetes sin sus fundas y con el mecanismos de giro y el brazo lector incluido en la carcasa. Los discos duros han evolucionado mucho desde los modelos primitivos de 10 20 MB. Actualmente los tamaos son del orden de varios gigabytes, el tiempo medio de acceso es muy bajo (menos de 20 ms) y su velocidad de transferencia es tan alta que deben girar a ms de 5.000 rpm (revoluciones por minuto), lo que desgraciadamente hace que se calienten como demonios, por lo que no es ninguna tontera instalarles un ventilador para su refrigeracin. Una diferencia fundamental entre unos y otros discos duros es su interfaz de conexin. Antiguamente se usaban diversos tipos, como MFM, RLL o ESDI, aunque en la actualidad slo se emplean dos: IDE y SCSI. Dispositivos de almacenamiento pticos (CD y DVD): Los discos pticos estn formados por una lmina circular de plstico con una fina capa de material metlico reflectante, recubiertas a su vez por un barniz transparente para su proteccin del polvo. Un haz lser va leyendo microscpicos agujeros pits o espacios planos lanas, de forma que si el lser es reflejado o no, se interpretar de forma digital como un 1 o un 0. un sistema ptico con lentes encamina el haz luminoso, y lo enfoca como un punto en la capa del disco que almacena los datos. Podemos establecer una divisin en funcin de la longitud de onda del lser; de este modo tenemos el CD, el DVD y actualmente se estn lanzando dispositivos con tecnologa de Lser Azul. Esto es, disminuyendo la longitud de onda del lser, aumentamos la capacidad de escritura/lectura para el mismo espacio fsico en el disco. Su capacidad de almacenamiento llega hoy a 139
unos 800 MB de informacin. Habitualmente se utiliza para almacenar datos o msica 3.2.3 Fuentes de alimentacin
Fuentes de almacenamiento configurables: La serie MVP es la familia ms verstil de fuentes de alimentacin de potencia media que utiliza componentes magnticos de SMD y convertidos DC-DC internos, combinados con mdulos PFC, que pueden ser configurables desde 1 hasta 10 tensiones de salida con valores entre 2 y 60 V. tiene todas las homologaciones de seguridad necesarias y es un producto marcado CE.
Fuentes de alimentacin de baja potencia: Las series LP y Net de fuentes de alimentacin conmutadas de baja potencia, ofrecen una ptima combinacin de prestaciones, precio y fiabilidad, as como la ltima tecnologa. Estos dispositivos ofrecen potencias entre 25 y 350 W y estn disponibles en una amplia variedad de configuraciones, tanto en salida nica como multisalida. Fuentes de alimentacin de gran potencia: ASTEC es lder mundial en fuentes de alimentacin para telefona, redes, fibra ptica y otras aplicaciones industriales donde se necesitan alimentadores, cargadores de batera enchufables en caliente y paralelables, para conseguir configuraciones N+1. La serie VS es una fuente de alimentacin modular, con diseo flexible, que ofrece de 1 a 12 salidas con potencias entre 1000 a 2500 W por unidad. 3.3 Ambientes de servicios.
El negocio de proveer servicios de datos es mucho ms complejo que la forma en la que se dan los tradicionales servicios, los primeros requieren de nuevos conocimientos y modelos de negocio, que con frecuencia se termina involucrando o necesitando la colaboracin de terceras empresas. Por lo que se hace necesario que los operadores tradicionales transformen su negocio para ofrecer los servicios 140
de datos con los niveles de servicio que el mercado exige, las principales exigencias reas de negocio que debe ser consideradas se detallan en los siguientes prrafos. 1.-Desarrollo de nuevos mercados y productos: Para un operador tpico, la cadena de valor se han expandido muy particularmente en el rea de desarrollo de productos, los operadores deben integrar y establecer relaciones con muchos nuevos actores para generar contenido, portales o agregados al negocio como los ISP, as como construir las plataformas para el desarrollo de productos, mejorar la segmentacin y los clientes meta. El nfasis estar puesto en: Desarrollo de contenido: Los operadores de las redes debern buscar esquemas de compartir los ingresos y ofrecerle algn retorno financiero a los dueos del contenido. La incorporacin de contenido: Muchos nuevos jugadores, as como las mayores operadores de las redes, estn luchando por convertirse en los dominadores de esta parte del negocio. Portales (multi-acceso). Disponibilidad de aplicaciones: Los operadores deben ofrecer aplicaciones para uso de los clientes que les genere nuevos ingresos por servicios. Mercadeo y desarrollo de nuevos productos: La segmentacin se vuelve vital, como proveedores de servicios, se debe segmentar y enfocarse en grupos de clientes en particular y velar por sus necesidades especificas. 2. Adquisicin y administracin de clientes: La Administracin y la retencin de los clientes est aumentado en importancia cada vez ms, se busca mantener clientes leales; los CRM y los diferentes dispositivos que se utilizan como medios de acceso se han diversificado, pasando a ser elementos crticos en los negocios como herramientas para atraer y retenerlos. Esta porcin de la provisin de servicio en la cadena de valor ha llegado a ser muy competitiva, principalmente en 141
los negocios de ventas al por mayor, que incorporan a nuevos proveedores de servicios que los ayudaran a enfocarse en grupos de clientes muy especficos. Los proveedores de servicios tendrn que aprender a diferenciar la experiencia del cliente a travs de su ciclo de vida completa, la ayuda de los dispositivos como los CRMS se estn volviendo extremadamente importantes conforme su funcionalidad se expande ms all de la simple voz y la mensajera, entrando a manejar conceptos de mayor conocimiento del cliente por medio de funciones de inteligencias de negocios que le permitan conocer con lujo de detalle el comportamiento de compra del consumidor. Para lograr esa fidelidad y conocimiento se debe estar enfocado en: Nuevos clientes: Hay muchos nuevos competidores, apalancando marcas, mejorando la distribucin, produciendo contenido, incorporando nuevas funcionalidades a los CRMS, habilitando nuevas aplicaciones, etc. Por otro lado los operadores de la red tambin se estn enfocando sobre marcas como diferenciadores. Retencin de clientes: Retener los clientes de alta gama debe ser uno de los focos principales para los proveedores de servicios que dependen de la red y que ya estn establecidos. Administracin de los clientes y canales: Diferenciarse a travs de la experiencia del cliente, reducir costos, mejorar el rendimiento, enfocarse en canales directos. Dispositivos: poner mucha atencin al creciente uso de dispositivos mviles como las PDA, de acceso inalmbrico diseado para ofrecer servicios de computacin y comunicacin especficos, va a ayudar considerablemente a posicionar la interfaz de acceso de los usuarios a los servicios. 3. Proveer y desarrollar servicios para la red: Los operadores de las redes deben buscar un uso eficiente de los activos, mejorar la calidad, el rendimiento, su utilizacin y el retorno financiero, las oportunidades de ventas al por mayor 142
seguirn en incremento. Hay una oportunidad creciente en los servicios de valor agregado de las redes, los operadores deben de crear una capa de servicios dentro de su negocio para soportar las aplicaciones inalmbricas, tales como seguridad, ubicacin, servicios al por mayor, etc., tales como: 1. Servicios principales de la red. Servicios de valor agregado de la red: Una de las reas nuevas claves para los operadores de la red, como seguridad, hospedaje de servicios, administracin de dispositivos, respaldo de datos, etc. Operacin de la red. Administracin del negocio: Los expertos consideran que los operadores, cada vez ms estarn volcando sus ojos hacia todos aquellos elementos que no son parte del negocio principal, buscando mejorar los costos, la eficiencia, la calidad y el rendimiento, las reas candidatas a tercerizar son: 1. Administracin: El ambiente cada vez ms complejo, hace que las empresas se enfocan cada vez ms en sus principales destrezas y fortalezas del negocio y complementar con la administracin de proveedores el resto de las actividades. 2. HR, SCM, ERP, etc.: Son potenciales actividades que no son fundamentales del negocio y son candidatos a ser sujetos a incrementar las relaciones con terceros que provean estos servicios. 3.3.1 Negocios
La globalizacin est cambiando el mundo y lo ha convertido en un ambiente sumamente competitivo, en el que no existen distancias ni fronteras y donde la informacin est al alcance de las manos. Esta situacin ha provocado una enorme presin sobre las organizaciones, que deben flexibilizarse y encontrar nuevos mecanismos para afrontar las presiones, para innovar y en general para sobrevivir. En este nuevo mundo, el outsourcing ha surgido como una herramienta 143
que facilita la gestin empresarial y se ha convertido en un tema de actualidad. Sin embargo, ms que una moda, outsourcing es una forma eficaz para apoyar a las organizaciones y asegurar su supervivencia y tiene su principal razn de ser en tres imperativos que deben considerar las organizaciones hoy en da: Enfocarse en un negocio. Asegurarse el acceso a la experiencia tcnica que es crtica para el negocio. Focalizarse en operaciones optimizadas, reduciendo y controlando los costos. En el caso de Tecnologa de Informacin, el impacto del outsourcing es enorme: Outsourcing es la principal fuente de crecimiento en el rea de Servicios de Tecnologa de Informacin (TI), y se ha convertido en un elemento central de las prcticas de negocios de las compaas actuales, sin importar el tamao. Empujados por la competencia de mercados, las empresas deben hacer un uso ms intensivo de TI y esto genera una mayor gama de oportunidades para el outsourcing. Pero esta tendencia requiere tambin que los CIO y dems lideres de las organizaciones aprendan a manejar esta herramienta como un mecanismo que permita alinear las funciones de TI con la estrategia de la organizacin. Los CIO deben reconocer los lmites de sus organizaciones para proveer los servicios estratgicos que requiere la organizacin e iniciar el desarrollo de las prcticas del outsourcing y sobre todo, manejar este mecanismo en forma efectiva. Una consecuencia del outsourcing es que ha creado un nuevo modelo de relacin cliente-proveedor, una relacin que busca la cooperacin intensa entre ambos, convirtiendo una relacin meramente comercial en un alianza estratgica para compartir el conocimiento. Qu es Outsourcing? Outsourcing es una herramienta de gestin que combina la correcta determinacin de la estrategia con las medidas adecuadas para llevarla a cabo de una manera operativamente eficaz. 144
Esto significa que no se trata solo de eficacia operativa orientada hacia la estrategia organizacional. Una organizacin puede tratar de ser ms eficiente y eficaz y puede estar totalmente orientada al logro de sus objetivos. Esto implica normalmente un gran nmero de funciones que debe realizar, de las cuales, no todas estn relacionadas directamente al logro de los objetivos estratgicos. Algunas tareas solo son de apoyo a soporte. Las organizaciones deben reconocer que es posible realizar todas estas tareas de forma eficiente y deben identificar cuales de sus funciones son crticas para el logro de los objetivos estratgicos y cuales son de apoyo. Una vez reconocidas y clasificadas las diversas funciones de esta forma, las organizaciones deben enfocarse en las tareas crticas, las funciones que establecen la diferencia, es decir, deben concentrarse en el NEGOCIO y deben considerar dar a terceros las funciones de soporte. Esto es Outsourcing. 3.3.2 Industria
La industrializacin de los Servicios de Tecnologa de Informacin va a redefinir el mercado en trminos de cmo las organizaciones evalan, compran y seleccionan los servicios, y de cmo los vendedores desarrollan, establecen precios e implementan los servicios. El aumento de la estandarizacin y la consecuente disminucin en la customizacin es un proceso inevitable y es el resultado del tiempo y la experiencia en cualquier industria. La industria est en un proceso de transicin y el impacto de este viraje ya se siente. Dentro del ambiente de TI (Tecnologa de Informacin), existe una estrategia doble, que incluye prcticas customizadas o estandarizadas. Los proveedores de outsourcing estn respondiendo a este llamado de la estandarizacin, para aprovechar las economas de escala, pero en forma simultnea deben soportar una gran base instalada de ambientes desarrollados a la medida. Aunque los servicios de TI estn 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 estandarizacin, se requiere un 145
enfoque hacia soluciones genricas y esto debe ser responsabilidad de los proveedores, que deben desarrollar, operar y administrar el resultado de estos genricos de TI. Las mtricas deben cambiar entonces, de la medida de capacidades tcnicas 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 econmicamente 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 mejorar los rendimientos los expertos recomiendan como una forma de lograr mayores ahorros en los costos, tomar las siguientes medidas: 1. Bajar los costos de operacin automatizando e integrando los procesos del negocio. 2. La utilizacin intensiva de los activos, por medio de la consolidacin de las operaciones, dotando a la empresa de una infraestructura escalable que le permita alcanzar los nuevos requerimientos rpidamente. 3. Hacer inversiones de capital eficientemente, como Gastos de Capital justo a Tiempo, anlisis de costo/valor, una cadena de abastecimiento extendida y compras que les permita bajar los precios a mayores niveles. 4. Explotar las sinergias a travs de las operaciones, esto es, Centros de Servicios compartido. 5. Administrar el riesgo y la incertidumbre, incorporando servicios administrados o mercerizados a travs de la cadena de valor o dentro de segmentos especficos. 146
Por el otro lado para crear nuevo valor a la empresa y generar ingresos adicionales recomiendan a las empresas: 1. Apoyar los procesos e iniciativas de desarrollo de nuevos productos, que permita mejorar el tiempo de lanzamiento al mercado de nuevas fuentes de generacin de ingresos. 2. Administrar e incorporar alianzas en toda la cadena de valor. 3. Apoyar y soportar integraciones B2B (Negocio a Negocio) por medio de la adopcin de plataformas, sistemas y redes totalmente abiertas. 4. Proveer mecanismos para mantener un amplio conocimiento del mercado y de la empresa. 3.3.3 Comercio electrnico
El comercio electrnico consiste en la compra, venta, marketing y suministro de informacin complementaria para productos o servicios a travs de redes informticas. La industria de la tecnologa de la informacin podra verlo como una aplicacin informtica dirigida a realizar transacciones comerciales. Una definicin alternativa la vera como la conduccin de comunicaciones de negocios comerciales y su direccin a travs de mtodos electrnicos como intercambio electrnico de datos y sistemas automticos de recoleccin de datos. El comercio electrnico tambin incluye la transferencia de informacin entre empresas. Desarrollo histrico El significado del trmino comercio electrnico ha cambiado a lo largo del tiempo. Originalmente, comercio electrnico significaba la facilitacin de transacciones comerciales electrnicamente, normalmente utilizando tecnologa como la 147
Electronic Data Interchange (EDI, presentada finales de los aos 70) para enviar electrnicamente documentos como pedidos de compra o facturas. Ms tarde paso a incluir actividades ms precisamente denominadas Comercio en la red. La compra de bienes y servicios a travs de la World Wide Web va servidores seguros (vase HTTPS, un protocolo de servidor especial que encripta la realizacin confidencial de pedidos para la proteccin de los consumidores y los datos de la organizacin) con tarjetas de compra electrnica y con servicios de pago electrnico como autorizaciones para tarjeta de crdito. Factores claves del xito en el comercio electrnico Varios factores han tenido un importante papel en el xito de las empresas de comercio electrnico. Entre ellos se encuentran: 1. Proporcionar valor al cliente. Los vendedores pueden conseguirlo ofreciendo un producto o una lnea de producto que atraiga clientes potenciales a un precio competitivo al igual que suceden en un entorno no electrnico. 2. Proporcionar servicio y ejecucin. Ofrecimiento de una experiencia de compra amigable, interactiva tal como se podra alcanzar en una situacin cara a cara. 3. Proporcionar una pgina Web atractiva. El uso de colores, grficos, animacin, fotografas, tipografas y espacio en blanco puede aumentar el xito en este sentido. 4. Proporcionar un incentivo para los consumidores para comprar y devolver. Las promociones de ventas pueden incluir cupones, ofertas especiales y descuentos. Las Webs unidas por links y los programas de publicidad pueden ayudar en este aspecto. 5. Proporcionar atencin personal. Webs personalizadas, sugerencias de compra y ofertas especiales personalizadas pueden allanar el camino de sustituir el contacto personal que se puede encontrar en un punto de venta tradicional. 148
6. Proporcionar un sentido de comunidad. Las reas de chats, foros, registros como cliente, esquemas de fidelizacin y programas de afinidad puede ayudar. 7. Proporcionar confianza y seguridad. Servidores paralelos, redundancia de hardware, tecnologa de seguridad en averas, encriptamiento de la informacin y cortafuegos pueden ampliar estos requisitos. 8. Proporcionar una visin de 360 grados de la relacin con el consumidor, definida como la seguridad de que todos los empleados, proveedores y socios tienen una visin global e idntica del consumidor. Sin embargo, los consumidores pueden no apreciar la experiencia de gran hermano. 9. Poseer la experiencia total del consumidor. Esto se consigue tratando con el consumidor como parte de una gran experiencia, lo que hace ver como sinnimo de la marca. 10. Optimizado los procesos de negocio, posiblemente a travs de tecnologas de reingeniera de la informacin. 11. Dejando que los consumidores se ayuden as mismos. Proporcionando sistemas de autoayuda sin asistencia puede ayudar en este sentido. 12. Ayudar a los consumidores a hacer el trabajo de consumir. Los vendedores pueden proporcionar esta ayuda ampliando la informacin comparativa y las bsquedas de producto. La provisin de informacin de componentes y comentarios de seguridad e higiene puede ayudar a los minoristas a definir el trabajo del comprador. 13. Construir un modelo de negocios slido. Si este factor clave hubiera aparecido en los libros de texto en 2000 muchas compaas punto com no habran quebrado. 14. Crear una cadena de valor aadido en la que uno se orienta a un nmero limitado de competencias claves. (Las tiendas electrnicas pueden presentarse bien como especialistas o como generalistas si se programan correctamente). 149
15. Operar en o cerca del lmite de la tecnologa y permanecer all mientras la tecnologa sigue cambiando (pero recordando que los principios fundamentales del comercio se mantienen indiferentes a la tecnologa). 16. Construir una organizacin con suficiente agilidad y sistemas de alerta para responder rpidamente a los cambios en el entorno econmico, social y fsico. Problemas del comercio electrnico Incluso si el proveedor de productos en comercio electrnico sigue rigurosamente estos diecisis factores clave para disear una estrategia ejemplar de comercio electrnico, los problemas pueden aparecer igualmente. Las causas de dichos problemas suelen ser: 1. No comprensin de los clientes, el por qu compran y cmo compran. Incluso un producto con una proposicin slida de valor puede fallar si los fabricantes y distribuidores no entienden los hbitos, expectativas y motivaciones de los consumidores. El comercio electrnico podra llegar a mitigar este problema potencial con una investigacin de marketing preactiva y bien orientada tal como hacen los detallistas tradicionales. 2. No considerar el entorno competitivo. Uno puede tener la capacidad de construir un buen modelo de negocios de librera electrnica pero no tener el deseo de competir con Amazon.com. 3. No capacidad de predecir la reaccin del entorno. Qu harn los competidores? Presentarn nuevas marcas o pginas Web competidoras? Complementarn sus ofertas de servicio? Tratarn de sabotear el portal de la competencia? se desatar una guerra de precios? Qu har el estado? Una buena investigacin de la competencia, fabricantes y mercados puede mitigar las consecuencias de esto, tal y como sucede en el comercio no electrnico. 4. Sobrestimar nuestros recursos puede el personal, hardware, software, y nuestros procesos llevar a cabo la estrategia propuesta? Han fallado los 150
detallistas en desarrollar las capacidaes de los empleados y directivos? Estos puntos pueden motivar la planificacin de recursos y la formacin de los empleados. Unidad IV. Microcontroladores 4.1 Arquitectura.
Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clsica de von Neumann, en el momento presente se impone la arquitectura Harvard. La arquitectura de von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a travs de un sistema de buses nico (direcciones, datos y control). La arquitectura Harvard dispone de dos memorias independientes una, que contiene slo instrucciones y otra, slo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultneamente en ambas memorias.
Fig. 4.1 arquitectura Harvard 151
La arquitectura Harvard dispone de dos memorias independientes para datos y para instrucciones, permitiendo accesos simultneos. Los microcontroladores PIC responden a la arquitectura Harvard. 4.1.1Terminales Arquitectura externa del microprocesador 8088
Fig. 4.2 Bus de direccin, datos y control.
En el 8088 el bus de direccin, datos y control se divide en tres partes:
a. Los 8 bits menos significativos de direccin/datos (AD0 AD7) Multiplexados entre direcciones y datos. b. Los 8 bits centrales (A8 A15) No multiplexados.
c. Los 4 bits ms significativos (A16 A19) Multiplexados entre direcciones y seales de control.
Se puede trabajar con los buses multiplexados o demultiplexados. AD7 AD0, bus de direccin y datos: Estn multiplexadas entre buses de direcciones (T1) y de datos (T2, T3, Tw, T4) y contienen los 8 bits menos significativos: Permanecen en 152
estado de alta impedancia durante el reconocimiento de interrupcin y de solicitud de bus.
A15 A8, bus de direccin: Tiene la mitad superior de las direcciones (T1, T2, T3, Tw, T4), no estn multiplexadas y permanecen en alta impedancia durante el reconocimiento de interrupcin y de solicitud de bus.
A19 A16 / S6 S3, bus de direccin y de estatus: Estn multiplexadas entre los 4 bits ms significativos de direcciones (T1) y status (T2, T3, Tw, T4) en el caso I/O durante T1 permanecen en cero.
S6 siempre est en 0.
S5 indica la condicin de la bandera de interrupcin IF.
S3 y S4 indican a cul segmento se est accediendo.
RD, lectura: Cuando est en 0 (T2, T3, Tw) indica que el bus de datos puede recibir datos. Se garantiza que durante T2 estar en alto hasta que el bus del 8088 quede en alta impedancia.
Permanece en alta impedancia durante el reconocimiento de solicitud de bus. READY, listo. Es entrada y cuando la activamos genera pulsos de reloj (Tw) para prolongar el ciclo de bus INTR, peticin de interrupcin: Entrada que se muestra en el ltimo ciclo de reloj de cada interrupcin para determinar si el 8088 debe entrar en una operacin de reconocimiento de interrupcin. Puede ser enmascarada. Se sincroniza y es activa en alto.
TEST, prueba: Es una entrada que la usa la instruccin WAIT. Si TEST=0, WAIT funciona como una NOP. Si TEST=1, WAIT espera a que TEST pase a 0. Se usa para sincronizar con dispositivos externos. 153
NMI, interrupcin no enmascarable: Es una entrada activa por flanco positivo que causa una interrupcin del tipo 2. La interrupcin se cumple al final de la instruccin actual y est internamente sincronizada.
RESET, restauracin: Para restauracin debe permanecer en alto por lo menos 4 ciclos de reloj y se activa en el flanco negativo.
CLK, reloj: Entrada de reloj que debe tener un ciclo de trabajo de 33%.
VCC, alimentacin: 5V 10%, referencia para la lgica digital.
GND, tierra: 0V, referencia para la lgica digital.
MN/MX, modo mnimo, modo mximo. El 86/88 va a poder trabajar en uno de dos modos posibles definidos como: Modo Mximo y Modo Mnimo. El modo a seleccionar depender de la aplicacin concreta que se vaya a implementar.
Modo Mnimo: Aplicaciones simples para pequeos sistemas; se comporta similar a un Microprocesador de 8 bit pero de 16 internamente.
Modo Mximo: Aplicaciones ms complejas, genera casi todas las seales compatibles para la implementacin de la norma Multibus. Permite soportar varios procesadores en el Bus. El CPU no puede generar directamente las seales de control del sistema y se auxilia del controlador de Buses 8288.
Existe un terminal denominado MN/MX que selecciona el modo de trabajo.
Si MN/MX = 1 => Modo Mximo.
154
Si MN/MX = 0 => Modo Mnimo.
IO/M, lnea de estados de memoria o E/S: Indica si la direccin es de memoria o de I/O. Permanece en alta impedancia durante un reconocimiento de solicitud de bus.
WR, escritura. Es una salida que indica que el 8088 va a escribir a memoria o a E/S. Se activa (bajo) durante T2, T3 y Tw de un ciclo de escritura e indica que el bus contiene datos vlidos. Permanece en alta impedancia durante un reconocimiento de solicitud de bus.
INTA, reconocimiento de interrupcin.
Salida que se activa (bajo) durante T2, T3 y Tw de cada ciclo de reconocimiento de interrupcin. Es una respuesta a la entrada INTR y se usa como pulso de lectura en un ciclo de reconocimiento de interrupcin.
ALE, habilitacin del cerrojo de direccin: Salida que indica (estando en alto durante la parte baja del reloj de T1) que en el bus hay una direccin vlida. ALE nunca queda en estado de alta impedancia.
DT/R, transmite/recibe datos: Indica que el bus de datos transmite datos (DT/R=1) o los recibe (DT/R=0) Esta seal es necesaria para habilitar los circuitos de acoplamiento del bus de datos externo. Permanece en alta impedancia durante un reconocimiento de solicitud de bus.
DEN, habilitacin de datos.
Salida que se emplea para habilitar los circuitos de acoplamiento del bus de datos externo.
155
Se activa en bajo durante cada acceso a memoria y ciclos de inte-rrupcin.
Para lectura o ciclos INTA, se activa desde la mitad de T2 hasta la mitad de T4.
Para ciclos de escritura, se activa desde el comienzo de T2 hasta el medio de T4.
Permanece en alta impedancia durante un reconocimiento de solicitud de bus.
HOLD, solicitud de acceso directo a memoria.
Si HOLD=1, el 8088 deja de ejecutar el programa actual y lleva su bus de direcciones, datos y control a alta impedancia.
Si HOLD=0, el 8088 ejecuta los programas normalmente.
Requiere sincronizacin externa.
HLDA, respuesta a la peticin de acceso directo a memoria: Salida que indica (HLDA=1) que el 8088 ha concedido los buses (es la respuesta del 8088 a la entrada HOLD)
SSO, lnea de estatus: Esta seal de salida se combina con IO/M y DT/R para decodificar la funcin del ciclo de bus actual.
El ciclo de bus consiste de al menos 4 ciclos de reloj, los cuales se denominan T1, T2, T3 y T4, como se muestra en la siguiente Figura. 156
Fig. 4.3 ciclo del bus
Las direcciones son emitidas durante T1 y la transferencia de datos ocurre entre T3 y T4.
En T1: Se envan las direcciones y se proporcionan las seales de control ALE, DT/ R y IO/M.
En T2: Se proporcionan las seales DEN, RD (lectura) o WR (escritura) En el caso de escritura aparecen los datos que se van a escribir en el bus de datos. Al final de T2 se muestra la seal READY.
En T3: Se da tiempo a la memoria para acceder a los datos. En el caso de que sea un ciclo de lectura el bus de datos se muestra al final de T3.
En T4: Se desactivan todas las seales de control para prepararse para el siguiente ciclo de bus. En este momento, el flanco positivo de WR transfiere datos a la memoria, los cuales se activan y escriben cuando la seal WR retorna a 1.
157
Ciclo de escritura
Empieza con la aparicin de la seal ALE y la emisin de las direcciones. La seal IO/M se suministra para indicar si esa memoria o a I/O.
En T2: Despus de la emisin de las direcciones, el 8088 emite el dato a escribir en la locacin direccionada. Este dato permanece vlido al menos hasta la mitad de T4.
Durante T2, T3 y Tw, el 8088 enva la seal de control de escritura (WR) que se pone en estado activo en el comienzo de T2. Los datos se escriben en la memoria en el flanco positivo de WR.
La seal de RD en la lectura est un poco ms retrasada que la de WR en la escritura para dar tiempo a que el bus quede en alta impedancia.
Ciclo de lectura
Comienza en T1 con la aparicin de la seal ALE, cuyo flanco negativo se usa para acerrojar las direcciones, que son vlidas en el bus de direcciones/datos (AD0 AD7). Las lneas de direcciones A8 A15 no necesitan ser acerrojadas ya que permanecen vlidas en todo el ciclo de bus.
De T1 a T4, la seal IO/M indica si es una operacin a memoria o a un dispositivo de E/S.
En T2 las direcciones se sacan del bus de direcciones/datos y el bus se pone en alta impedancia (AD0 AD7). La seal de control de lectura (RD) aparece en T2 y causa que el dispositivo direccionado habilite su bus de datos. Un tiempo despus, debe estar disponible el dato vlido sobre el bus.
158
Cuando el 8088 retorna la seal RD a un nivel alto, el dispositivo direccionado pondr en alta impedancia su salida de datos.
Circuito Para Generar El Pulso De Reloj.
Adems del circuito para la sealizacin del P que propone el fabricante (8284A), que se utiliza para RELOJ y RESET, podemos utilizar otros circuitos, uno de ellos, se propone a continuacin:
Tomamos de la hoja de especificaciones del microprocesador la frecuencia de operacin y el porcentaje del ciclo de trabajo. Para bajas velocidades, podemos tomar 50% como ciclo de trabajo; como la oscilacin la determina la red RC, proponemos el valor de C y calculamos R, ajustando el valor obtenido al valor comercial prximo.
Por lo general, usamos inversores para este ejemplo de clculo: tomamos una frecuencia igual a 2MHz, como inversor un schmitt trigger MC74HC14AC y como capacitor uno cermico de 0.001F. El circuito a utilizar se muestra a continuacin:
Fig. 4.4 circuito
159
Para el clculo de la resistencia R, se consideran los datos anteriores y los correspondientes al Schmitt trigger, los cuales se obtuvieron de las tablas de referencia y son: VT+ = 2.7V VCC = 4.5V VT- = 1.8V
La frmula de la frecuencia est dada por:
Sustituyendo valores:
Despejando a R y sustituyendo los valores de f y C:
Circuito Para Generar La Seal De RESET.
El P requiere que el tiempo de duracin mnimo en esta terminal sea 50 s. Por lo tanto, podemos utilizar el circuito integrado 8284A de la familia Intel que genera el pulso de reloj y el de RESET o bien, hacerlo utilizando un inversor y una red RC que garantice el tiempo de duracin de 50 s.
Debemos disear un circuito RC para garantizar al menos 50 s de duracin con un disparador Schmitt trigger (inversor) considerando los parmetros VT+ y VT- de dicho inversor.
En el diseo ocuparemos las frmulas del efecto transitorio, considerando los datos del Schmitt trigger como: VT- = 1.8V = VC y VCC = 5V. 160
Para la red RC con disparador Schmitt, se tiene el siguiente desarrollo:
Proponemos C = 0.1 F y despejando a R:
El circuito para restauracin es:
Fig. 4.5 Circuito Para Demltiplexar El Bus De Direccin Del Bus De Datos Y De Control. 161
Demultiplexaje de canales.
El canal de direccin y de datos del 8086/8088 est multiplexado para reducir el nmero de terminales requeridas en el circuito integrado. Desgraciadamente, esto aumenta el trabajo del diseador con la tarea de mltiplexar la informacin contenida en estas terminales.
Por qu no dejar multiplexados los canales? La memoria y la E/S requieren que la direccin siga siendo vlida y establece un ciclo de lectura o escritura. Si los canales estn multiplexados hay cambios de direccin en la memoria y en la E/S lo que hace leer o escribir datos en las localidades errneas.
Todos los sistemas de computadora tienen tres canales: 1) Un canal de direcciones que proporciona la direccin de memoria al nmero de puerto para la E/S; 2) un canal de datos que transfiere los datos entre el microprocesador y la memoria y la E/S en el sistema y 3) un canal de control que aplica seales de control en la memoria y E/S lo que hace leer o escribir datos en localidades errneas.
Si hay ms de 10 cargas lgicas conectadas en cualquier terminal de un canal, hay que acoplar la totalidad del sistema 8086 o del 8088. Las terminales demultiplexadas ya estn acopladas con los registros transparentes 74LS573, que se han diseado para manejar los canales de alta capacitancia que se encuentran en los sistemas de microcomputadoras. Se han aumentado las corrientes de salida de los registros a fin de que se puedan manejar ms unidades de carga TTL; un 0 lgico de salida proporciona hasta 32mA de disipacin de corriente y una salida en 1 lgico proporciona hasta 5.2mA de corriente.
Una vez que hemos demultiplexado el bus de direccin del de datos y control, podemos conectar bloques de RAM y/o PROM y puertos de E/S paralelo o tarjetas 162
conteniendo varios puertos de E/S paralelos. Tambin podemos conectar puertos seriales, tal como se describi en el tema de memorias y E/S.
4.1.2 Cpu.
Las caractersticas que un CPU tiene son:
Memoria Unidad aritmtica lgica Unidad o procesador de control Memoria Principal (Interna O Central). Se almacenan datos y programas, hay dos operaciones que se hacen en la memoria (lee y escribe) entonces se dice que es donde almacena, se lee y se escribe. Es un conjunto de clulas numeradas y dos registros especiales con los que realiza las transacciones. El registro de direccin que indica el nmero de la clula afectada y el de intercambio que contiene la informacin leda o la que hay que escribir en la clula de cuestin. La memoria central o simplemente memoria (interna o principal) se utiliza para almacenar informacin. En general, la informacin almacenada en memoria puede ser de dos tipos: las instrucciones de un programa y los datos con los que se operan las instrucciones. Por ejemplo: Para que un programa se pueda ejecutar (correr, rodar, funcionar,), debe ser situado en la memoria, en una operacin denominada carga (load) del programa. 163
La memoria central de una computadora es una zona de almacenamiento organizada en centenares o millares de unidades de almacenamiento individual celdas. La unidad elemental de memoria se llama byte(octeto). Un byte tiene la capacidad de almacenar un carcter de informacin, y est formado por un conjunto de unidades ms pequeas de almacenamiento denominadas bits, que son dgitos binarios (0 1). Generalmente se acepta que un byte contiene ocho bits. Por consiguiente, si se desea almacenar la frase la computadora utilizara exactamente 23 bytes consecutivos de memoria. Obsrvese que adems de las letras, existen cuatro espacios en blanco y un punto (un espacio es un carcter que emplea tambin un byte). De modo similar, el nmero del pasaporte P57487891 ocupara 9 bytes. Estos datos se llaman alfanumricos y pueden constar de alfabeto, Dgitos o incluso caracteres especiales (smbolos: $, #,*, etc.). Mientras que cada carcter de un dato alfanumrico se almacena en un byte, la informacin numrica se almacena de un modo diferente. Los datos numricos ocupan 2,4 e incluso 8 bytes consecutivos, dependiendo del tipo de dato numrico. Existen dos conceptos importantes asociados a cada byte o posicin de memoria: su direccin y contenido. Cada celda o byte tiene asociada una nica direccin que indica su posicin relativa en memoria mediante la cual se puede acceder a la posicin para almacenar o recuperar informacin. La informacin almacenada en una posicin de memoria es su contenido. El contenido de estas direcciones o posiciones de memoria se llaman palabras, de modo que existen palabras de 8, 16, 32, y 64 bits. Por consiguiente, si trabaja con una mquina de 32 bits, es decir, 32 dgitos, bien ceros o unos. Siempre que una nueva informacin se almacena en una posicin, se destruye (desaparece) cualquier informacin que en ella hubiera y no se puede recuperar. 164
La direccin es permanente y nica, el contenido puede cambiar mientras se ejecuta un programa. La memoria central de una computadora puede tener desde unos centenares de millares de bytes hasta millones de bytes. Como el byte es una unidad elemental de almacenamiento, se utilizan mltiplos para definir el tamao de la memoria central: Kilo-byte (KB o Kb) igual a 1.024 bytes (210) prcticamente se toman 1.000 y Mega byte (MB o Mb) igual a 1.024 x 1.024 bytes (220) prcticamente se considera un 1.000.000. Las computadoras personales tipo PC tienen memorias centrales desde 512 640 k aunque es frecuentemente ver PCs con memorias de 1, 2, 4, 12, etc., Mb. Pasos que se hacen en la lectura: 1. Almacenar la direccin de la clula en la que se encuentra la informacin a leer datos se almacena en el registro de direccin.
2. Cambiar el registro de intercambio la informacin contenida en la clula apuntada por el registro de direccin.
3. Transferir el contenido de registro de intercambio al registro de la CPU que corresponda. Pasos para la escritura: 1. Transferir el registro de intercambio la informacin a escribir.
2. Almacenar la segunda direccin de la clula receptora de la informacin en el registro de direccin.
165
3. Cargar el contenido de registro de intercambio en la clula apuntada por el registro de direccin. UAL (Unidad Aritmtica Lgica). La unidad aritmtica lgica opera los datos que recibe siguiendo las indicaciones por la unidad de control. Esta unidad puede realizar operaciones aritmticas lgicas, por ejemplo: el de realizar la suma, la forma en que realiza la operacin. 1. Se debe tener el cdigo de operacin que indique la operacin a efectuar en este caso el cdigo de suma.
2. Direccin de la clula en la que se encuentra almacenado el primer sumando.
3. Direccin del segundo sumando.
4. Direccin de la clula en la que se almacena el resultado. Instrucciones para efectuar la suma. a) Cargar el primer operando en el acumulador.
b) Sumar el segundo operando con el contenido del acumulador.
c) Cargar el contenido del acumulador en la direccin del resultado. Unidad De Control (La Unidad Que Va Decidir Controlar). La unidad de control es el autntico cerebro que controla y coordina el funcionamiento de la computadora. A raz de la interpretacin de las instrucciones 166
que integran el programa esta unidad genera el conjunto de rdenes elementales necesarias para que se realice la tarea necesitada. Pasos para la unidad de control. 1. Se extrae de la memoria principal la instruccin a ejecutar esa informacin es almacenada en el contador de instrucciones, la informacin que se almacena es la prxima instruccin a ejecutar en el registro de instruccin propiamente dicha.
2. Una vez conocido el cdigo de la operacin la unidad de control ya sabe que circuitos de la UAL deben de intervenir pueden establecerse las conexiones elctricas necesarias a travs del secuenciador.
3. Extrae de la memoria principal los datos necesarios para ejecutar la instruccin en proceso
4. Ordena la AUL que efecta las operaciones el resultado de este es depositado en el acumulado de la AUL.
5. Si la instruccin ha proporcionado nuevos datos estos son almacenados en la memoria principal.
6. Incrementa en una unidad el contenido del contador de instrucciones a ejecutar. Unidades Perifricas Unidades de comunicacin Memorias auxiliares. 167
Las unidades de comunicacin: Permiten el dialogo con el exterior que son las de entrada y salida ejemplo: teclado, monitor impresora, mouse. Las memorias auxiliares: Sirven para almacenar grandes volmenes de datos de forma permanente por ejemplo: Unidades de discos y cintas magnticas. La comunicacin entre los perifricos y la computadora se realizan atreves de los canales. Procesamiento de la CPU Una CPU procesa informacin almacenada en los bytes de la memoria. Esta informacin puede ser datos o instrucciones. Un dato es una representacin binaria de una letra, un nmero, o un color; mientras que una instruccin le dice a la CPU que hacer con ese dato, es decir si sumarlo, si restarlo, moverlo, etc. La CPU realiza tres operaciones bsicas con los datos: puede leerlos, procesarlos, y escribirlos en la memoria. Es decir que, la CPU necesita solo cuatro elementos para realizar dichas operaciones con los datos: Las instrucciones, un puntero a las instrucciones (Instruccin Pointer), algunos registros, y la unidad aritmtica lgica. El Instruccin Pointer le indica a la CPU en qu lugar de la memoria necesita ser ubicada la instruccin. Los Registros son lugares de almacenamiento temporario ubicados en la CPU. Un registro contiene datos que esperan ser procesados por cualquier instruccin, o datos que ya han sido procesados, como por ejemplo, la suma o resta de algn nmero, etc. La unidad aritmtica lgica es una especie de calculadora que ejecuta funciones matemticas y lgicas dedicadas a las instrucciones. 168
Por otro lado, la CPU contiene algunas partes adicionales que ayudan a dichos componentes principales a realizar el trabajo: Un buscador de instrucciones (fetch), que recoge las instrucciones de la RAM o un rea de memoria localizada en la CPU. Un decodificador de instrucciones, que toma la instruccin desde el buscador y la traslada hasta que la CPU la entienda. Luego determina cuales son los pasos necesarios para cumplir con dicha instruccin. La unidad de control, maneja y coordina todas las operaciones del chip. Este le permite saber a la unidad aritmtica lgica cuando debe calcular, al buscador cuando debe grabar una cifra, y al decodificador cuando trasladar la cifra dentro de una instruccin. Memoria El propsito del almacenamiento es guardar datos que la computadora no est usando. El almacenamiento tiene tres ventajas sobre la memoria: 1. Hay ms espacio en almacenamiento que en memoria. 2. El almacenamiento retiene su contenido cuando se apaga el computador. 3. El almacenamiento es ms barato que la memoria. El medio de almacenamiento ms comn es el disco magntico. El dispositivo que contiene al disco se llama unidad de disco (drive). La mayora de las computadoras personales tienen un disco duro no removible. Adems usualmente hay una o dos unidades de disco flexible, las cuales le permiten usar discos flexibles removibles. El disco duro normalmente puede guardar muchos ms datos que un disco flexible y por eso se usa disco duro como el archivero principal de la computadora. Los discos flexibles se usan para cargar programas nuevos, o datos al disco duro, intercambiar datos con otros usuarios o hacer una copia de respaldo de los datos que estn en el disco duro. 169
Una computadora puede leer y escribir informacin en un disco duro mucho ms rpido que en el disco flexible. La diferencia de velocidad se debe a que un disco duro est construido con materiales ms pesados, gira mucho ms rpido que un disco flexible y est sellado dentro de una cmara de aire, las partculas de polvo no pueden entrar en contacto con las cabezas. La memorizacin consiste en la capacidad de registrar sea una cadena de caracteres o de instrucciones (programa) y tanto volver a incorporarlo en determinado proceso como ejecutarlo bajo ciertas circunstancias. El computador dispone de varios dispositivos de memorizacin: o La memoria ROM o La memoria RAM o Las memorias externas. Un aspecto importante de la memorizacin es la capacidad de hacer ese registro en medios permanentes, bsicamente los llamados "archivos" grabados en disco. o El acumulador Arquitectura De La Memoria (ROM)
La arquitectura (estructura) interna de un CI-ROM es muy compleja y no necesitamos conocer todos sus detalles. Sin embargo es constructivo observar un diagrama simplificado de la estructura interna. Existen cuatro partes bsicas: decodificador de renglones, arreglo de registros y buffer de salida. Arreglo de registros.
El arreglo de registros almacena los datos que han sido programados en la ROM. Cada registro contiene un numero de celdas de memoria que es igual al tamao de la palabra. En este caso, cada registro almacena una palabra de 8 bits. Los registros se disponen en un arreglo de matriz< cuadrada que es comn a muchos 170
circuitos de semiconductor. Podemos especificar la posicin de cada registro como una ubicada en un regln y una columna especficos.
Las 8 salidas de datos de cada registro se conectan a un canal de datos interno que corre atreves de todo el circuito. Cada registro tiene dos entradas de habilitacin (E); ambas tienen que ser altas a fin de que los datos del registro sean colocados en el canal. Decodificadores de direcciones. El cdigo de direccin aplicado A3, A2, A1, A0, determina que registro ser habilitado para colocar su palabra de datos en 8 bits en el canal. Los bits de direccin A1, A0, se alimentan de un decodificador uno de 4 que activa una lnea de seleccin de rengln, y los bits de direccin A3, A2, se alimentan de un segundo decodificador uno de cuatro que activa una lnea de seleccin de columna. Solamente un registro estar en el rengln y la columna seleccionados por las entradas de difraccin, y estar habilitado. Buffer de salida. El registro habilitado por las entradas de seleccin coloca el dato que tiene sobre el canal de datos. Estos datos entraran en los buffers de salida mismos que se encargan de trasmitirlos hacia las salidas externas siempre y cuando CS este en bajo. Si CS esta en alto, los buffers de salida se encuentran en el estado de alta impedancia, con lo que D7 hasta D0 estarn flotando. 4.1.3 Espacio de memoria
En los micro controladores la memoria de instrucciones y datos est integrada en el propio chip. Una parte debe ser no voltil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicacin. Otra parte de memoria ser tipo RAM, voltil, y se destina a guardar las variables y los datos. 171
Hay dos peculiaridades que diferencian a los micro controladores de los computadores personales: No existen sistemas de almacenamiento masivo como disco duro o disquetes. Como el micro controlador slo se destina a una tarea en la memoria ROM, slo hay que almacenar un nico programa de trabajo. La RAM en estos dispositivos es de poca capacidad pues slo debe contener las variables y los cambios de informacin que se produzcan en el transcurso del programa. Por otra parte, como slo existe un programa activo, no se requiere guardar una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. Los usuarios de computadores personales estn habituados a manejar Megabytes de memoria, pero, los diseadores con micro controladores trabajan con capacidades de ROM comprendidas entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes. Segn el tipo de memoria ROM que dispongan los micro controladores, la aplicacin y utilizacin de los mismos es diferente. Se describen las cinco versiones de memoria no voltil que se pueden encontrar en los micros controladores del mercado. 1. ROM con mscara Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin del chip. El elevado coste del diseo de la mscara slo hace aconsejable el empleo de los micro controladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. 2. OTP El microcontrolador contiene una memoria no voltil de slo lectura "programable una sola vez" por el usuario. OTP (One Time Programmable). Es el usuario quien 172
puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la construccin de prototipos y series muy pequeas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptacin mediante fusibles para proteger el cdigo contenido. 3 EPROM Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabacin se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cpsulas son de material cermico y son ms caros que los microcontroladores con memoria OTP que estn hechos con material plstico. 4 EEPROM Se trata de memorias de slo lectura, programables y borrables elctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programacin como el borrado, se realizan elctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cmoda y rpida la operacin de grabado y la de borrado. No disponen de ventana de cristal en la superficie. Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan "grabadores en circuito" que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. 173
El nmero de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramacin continua. Son muy idneos para la enseanza y la Ingeniera de diseo. Se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los circuitos programables para guardar y modificar cmodamente una serie de parmetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta. 5 FLASH Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es ms pequea. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy tiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados "en circuito", es decir, sin tener que sacar el circuito integrado de la tarjeta. As, un dispositivo con este tipo de memoria incorporado al control del motor de un automvil permite que pueda modificarse el programa durante la rutina de mantenimiento peridico, compensando los desgastes y otros factores tales como la compresin, la instalacin de nuevas piezas, etc. La reprogramacin del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto.
174
4.1.4Entrada/ salida.
La principal utilidad0 de las patitas que posee la cpsula que contiene un microcontrolador es soportar las lneas de E/S que comunican al computador interno con los perifricos exteriores. Segn los controladores de perifricos que posea cada modelo de microcontrolador, las lneas de E/S se destinan a proporcionar el soporte a las seales de entrada, salida y control.
Fig. 4.6 ejemplo de un microcontrolador 4.1.5 Caractersticas especiales.
Cada fabricante oferta numerosas versiones de una arquitectura bsica de microcontrolador. En algunas ampla las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mnimo para aplicaciones muy simples, etc. La labor del diseador es encontrar el modelo mnimo que satisfaga todos los requerimientos de su aplicacin. De esta forma, minimizar el coste, el hardware y el software.
Los principales recursos especficos que incorporan los microcontroladores son: Temporizadores o "Timers". 175
Perro guardin o "Watchdog". Proteccin ante fallo de alimentacin o "Brownout". Estado de reposo o de bajo consumo. Conversor A/D. Conversor D/A. Comparador analgico. Modulador de anchura de impulsos o PWM. Puertas de E/S digitales. Puertas de comunicacin. Definiciones.- Temporizadores o "Timers" Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores). Para la medida de tiempos se carga un registro con el valor adecuado y a continuacin dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algn mltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso. Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos. Perro guardin o "watchdog" Cuando el computador personal se bloquea por un fallo del software u otra causa, se pulsa el botn del reset y se reinicializa el sistema. Pero un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del da. El Perro guardin consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un reset automticamente en el sistema. 176
Se debe disear el programa de trabajo que controla la tarea de forma que refresque o inicialice al Perro guardin antes de que provoque el reset. Si falla el programa o se bloquea, no se refrescar al Perro guardin y, al completar su temporizacin, "ladrar y ladrar" hasta provocar el reset. Proteccin ante fallo de alimentacin o "brownout" Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentacin (VDD) es inferior a un voltaje mnimo ("brownout"). Mientras el voltaje de alimentacin sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor. Estado de reposo o de bajo consumo Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar, sin hacer nada, a que se produzca algn acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energa, (factor clave en los aparatos porttiles), los microcontroladores disponen de una instruccin especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mnimos. En dicho estado se detiene el reloj principal y se "congelan" sus circuitos asociados, quedando sumido en un profundo "sueo" el microcontrolador. Al activarse una interrupcin ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo. Conversor A/D (CAD) Los microcontroladores que incorporan un Conversor A/D (Analgico/Digital) pueden procesar seales analgicas, tan abundantes en las aplicaciones. Suelen disponer de un multiplexor que permite aplicar a la entrada del CAD diversas seales analgicas desde las patitas del circuito integrado. Conversor D/A (CDA) 177
Transforma los datos digitales obtenidos del procesamiento del computador en su correspondiente seal analgica que saca al exterior por una de las patitas de la cpsula. Existen muchos efectores que trabajan con seales analgicas. Comparador analgico Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que acta como comparador entre una seal fija de referencia y otra variable que se aplica por una de las patitas de la cpsula. La salida del comparador proporciona un nivel lgico 1 0 segn una seal sea mayor o menor que la otra. Tambin hay modelos de microcontroladores con un mdulo de tensin de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores. Modulador de anchura de impulsos o PWM Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a travs de las patitas del encapsulado. Puertos de e/s digitales Todos los microcontroladores destinan algunas de sus patitas a soportar lneas de E/S digitales. Por lo general, estas lneas se agrupan de ocho en ocho formando Puertos. Las lneas digitales de los Puertos pueden configurarse como Entrada o como Salida cargando un 1 un 0 en el bit correspondiente de un registro destinado a su configuracin. Puertos de comunicacin Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y 178
protocolos. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan: UART, adaptador de comunicacin serie asncrona. USART, adaptador de comunicacin serie sncrona y asncrona Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores. USB (Universal Serial Bus), que es un moderno bus serie para los PC.
4.2 Programacin. La electrnica ha evolucionado mucho. Casi todo lo que hasta hace unos aos se haca mediante un grupo (a veces muy numeroso) de circuitos integrados conectados entre s, hoy se puede realizar utilizando un microcontrolador y unos pocos componentes adicionales. De todos los fabricantes de micro controladores que existen, los ms elegidos por los hobbystas suelen ser los modelos de Microchip, en gran parte debido a la excelente documentacin gratuita que proporciona la empresa para cada modelo.
El lenguaje nativo de estos microcontroladores es el ASM, y en el caso de la familia 16F solo posee 35 instrucciones. Pero el ASM es un lenguaje que est mucho ms cerca del hardware que del programador, y gracias a la miniaturizacin que permite incorporar cada vez ms memoria dentro de un microcontrolador sin aumentar prcticamente su costo, han surgido compiladores de lenguajes de alto nivel. Entre ellos se encuentran varios dialectos BASIC y C. El BASIC resulta bastante ms simple de aprender.
Antes de comenzar a ver los temas programacin en si mismos, debemos aclarar algunos conceptos bsicos sobre los microcontroladores para poder entender lo que hace cada instruccin BASIC. Eso ser muy til para los que vayan a comenzar a programar a partir de este artculo. 179
Lo ms interesante de trabajar con microcontroladores es que se necesitan conocimientos tanto de electrnica (hardware) como de programacin (software) as que a lo largo de estos tutoriales iremos viendo temas de ambas disciplinas, ya que ntimamente vinculadas. Un microcontrolador es como un ordenador en pequeo: dispone de una memoria donde se guardan los programas, una memoria para almacenar datos, dispone de puertos de entrada y salida, etc. A menudo se incluyen puertos seriales (RS-232), conversores analgico/digital, generadores de pulsos PWM para el control de motores, bus I2C, y muchas cosas ms. Por supuesto, no tienen ni teclado ni monitor, aunque podemos ver el estado de teclas individuales o utilizar pantallas LCD o LED para mostrar informacin. En general, por cada cuatro ciclos de reloj del microcontrolador se ejecuta una instruccin ASM (una instruccin BASIC consta generalmente de ms de una instruccin ASM). Esto significa que un PIC funcionando a 20MHz puede ejecutar 5 millones de instrucciones por segundo. Los pines del PIC se dedican casi en su totalidad a los puertos que mencionbamos anteriormente. El resto (2 o ms) son los encargados de proporcionar la alimentacin al chip, y a veces, un sistema de RESET. Desde BASIC es posible saber si un pin esta en estado alto (conectado a 5V o a un 1 lgico) o en estado bajo (puesto a 0V o a un 0 lgico). Tambin se puede poner un pin de un puerto a 1 o 0. De esta manera, y mediante un rele, por ejemplo, se puede encender o apagar una luz, motor, maquina, etc.
Uno de los microcontroladores ms famosos de todos los tiempos ha sido, sin duda, el 16F84A, que ya es considerado obsoleto. Un buen reemplazo es el 16F628A, y es el que utilizaremos en la mayora de los ejemplos y proyectos que veamos. La disposicin de sus pines es la siguiente: 180
Fig. 4.7 Funcin de los pines del 16F628A
Como podemos ver, los pines 1, 2, 3, 4, 15, 16, 17 y 18 tienen el nombre de RAx. Esos pines conforman el puerto A, PORTA de ahora en ms. Los pines 6 al 13 forman parte del puerto B (PORTB). El pin 5 es el que se conectara al negativo de la fuente de alimentacin. El 14 ir conectado a 5V. Como habrn notado, muchos de los pines tienen ms de una descripcin. Esto se debe a que pueden utilizarse de varias maneras diferentes, seleccionables por programa. Por ejemplo, el pin 4 sirve como parte del PORTA, como RESET (MCLR = Master Clear) y como tensin de programacin (Vpp)
4.2.1 Modelo de programacin La opcin de programar en C se debe al hecho de que los microcontroladores, se disean con un repertorio de instrucciones optimizado para su programacin en C, y la facilidad en el desarrollo de programas ms complejos. Durante mucho tiempo, la programacin en C cargaba con el lastre de la optimizacin y necesidad de memoria, pero los compiladores han ido evolucionando hacia una mayor optimizacin que junto con el aumento de memoria de los pic permite de sobra en la mayora de los casos la programacin en C. 181
4.2.2 Conjunto de instrucciones Se pueden clasificar en los siguientes grupos: Instrucciones de Transferencia de Datos. Estas instrucciones mueven datos de una parte a otra del sistema; desde y hacia la memoria principal, de y a los registros de datos, puertos de E/S y registros de segmentacin. Las instrucciones de transferencia de datos son las siguientes: MOV transfiere XCHG intercambia IN entrada OUT salida XLAT traduce usando una tabla LEA carga la direccin efectiva LDS carga el segmento de datos LES carga el segmento extra LAHF carga los indicadores en AH SAHF guarda AH en los indicadores PUSH FUENTE (sp) fuente POP DESTINO destino (sp) Control de Bucles (instrucciones simples) Estas posibilitan el grupo de control ms elemental de nuestros programas. Un bucle es un bloque de cdigo que se ejecuta varias veces. Hay 4 tipos de bucles bsicos: Bucles sin fin Bucles por conteo 182
Bucles hasta Bucles mientras Las instrucciones de control de bucles son las siguientes: INC incrementar DEC decrementar LOOP realizar un bucle LOOPZ,LOOPE realizar un bucle si es cero LOOPNZ,LOOPNE realizar un bucle si no es cero JCXZ salta si CX es cero Instrucciones de Prueba, Comparacin y Saltos. Este grupo es una continuacin del anterior, incluye las siguientes instrucciones: TEST verifica CMP compara JMP salta JE, JZ salta si es igual a cero JNE, JNZ salta si no igual a cero JS salta si signo negativo JNS salta si signo no negativo JP, JPE salta si paridad par JNP, JOP salta si paridad impar JO salta si hay capacidad excedida JNO salta si no hay capacidad excedida JB, JNAE salta si por abajo (no encima o igual) JNB, JAE salta si no est por abajo (encima o igual) JBE, JNA salta si por abajo o igual (no encima) JNBE, JA salta si no por abajo o igual (encima) JL, JNGE salta si menor que (no mayor o igual) 183
JNL, JGE salta si no menor que (mayor o igual) JLE, JNG salta si menor que o igual (no mayor) JNLE, JG salta si no menor que o igual (mayor) Instrucciones de Llamado y Retorno de Subrutinas. Para que los programas resulten eficientes y legibles tanto en lenguaje ensamblador como en lenguaje de alto nivel, resultan indispensables las subrutinas: CALL llamada a subrutina RET retorno al programa o subrutina que llam Instrucciones Aritmticas. Estas instrucciones son las que realiza directamente el 8086/8088 a. Grupo de adicin: ADD suma ADC suma con acarreo AAA ajuste ASCII para la suma DAA ajuste decimal para la suma b. Grupo de sustraccin: SUB resta SBB resta con acarreo negativo AAS ajuste ASCII para la resta DAS ajuste decimal para la resta c. Grupo de multiplicacin: MUL multiplicacin 184
IMUL multiplicacin entera AAM ajuste ASCII para la multiplicacin d. Grupo de divisin: DIV divisin IDIV divisin entera AAD ajuste ASCII para la divisin e. Conversiones: CBW pasar octeto a palabra CWD pasar palabra a doble palabra NEG negacin f. Tratamiento de cadenas: Permiten el movimiento, comparacin o bsqueda rpida en bloques de datos: MOVC transferir carcter de una cadena MOVW transferir palabra de una cadena CMPC comparar carcter de una cadena CMPW comparar palabra de una cadena SCAC buscar carcter de una cadena SCAW buscar palabra de una cadena LODC cargar carcter de una cadena LODW cargar palabra de una cadena STOC guardar carcter de una cadena STOW guardar palabra de una cadena REP repetir CLD poner a 0 el indicador de direccin STD poner a 1 el indicador de direccin 185
Instrucciones Lgicas. Son operaciones bit a bit que trabajan sobre octetos o palabras completas: NOT negacin AND producto lgico OR suma lgica XOR suma lgica exclusiva Instrucciones de Desplazamiento, Rotacin y Adeudos. Bsicamente permiten multiplicar y dividir por potencias de 2 SHL, SAL desplazar a la izquierda (desplazamiento aritmtico) SHR desplazar a la derecha SAR desplazamiento aritmtico a la derecha ROL rotacin a la izquierda ROR rotacin a la derecha RCL rotacin con acarreo a la izquierda RCR rotacin con acarreo a la derecha CLC borrar acarreo STC poner acarreo a 1 Instrucciones de Pila. Una de las funciones de la pila del sistema es la de salvaguardar (conservar) datos (la otra es la de salvaguardar las direcciones de retorno de las llamadas a subrutinas): PUSH introducir POP extraer PUSHF introducir indicadores POPF extraer indicadores 186
Instrucciones de Control del microprocesador. Hay varias instrucciones para el control de la CPU, ya sea a ella sola, o en conjuncin con otros procesadores: NOP no operacin HLT parada WAIT espera LOCK bloquea ESC escape Instrucciones de Interrupcin. STI poner a 1 el indicador de interrupcin CLI borrar el indicador de interrupcin INT interrupcin INTO interrupcin por capacidad excedida (desbordamiento) IRET retorno de interrupcin
Las instrucciones de transferencia condicional del control del programa se pueden clasificar en 3 grupos: 1. Instrucciones usadas para comparar dos enteros sin signo: a. JA o JNBE. Salta si est arriba o salta si no est abajo o si no es igual (jump if above o jump if not below or equal) El salto se efecta si la bandera ce CF = 0 o si la bandera de ZF = 0 b. JAE o JNB. Salta si est arriba o es igual o salta si no est abajo (jump if above or equal o jump if not below) El salto se efecta si CF = 0. 187
c. JB o JNAE. Salta si est abajo o salta si no est arriba o si no es igual (jump if below or equal o jump if not above or equal) El salto se efecta si CF=1. d. JBE o JNA. Salta si est abajo o si es igual o salta si no est arriba (jump if below or equa o jump if not above) El salto se efecta si CF = 1. e. JE o JZ. Salta si es igual o salta si es cero (jump equal o jump if zero) El salto se efecta si ZF = 1 (tambin se aplica a comparaciones de enteros con signo) f. JNE o JNZ. Salta si no es igual o salta si no es cero (jump if not equal o jump if not zero) El salto se efecta si ZF = 0 (tambin se aplica a comparaciones de enteros con signo) 2. Instrucciones usadas para comparar dos enteros con signo: a. JG o JNLE. Salta si es ms grande o salta si no es menor o igual (jump if greater o jump if not less or equal) El salto se efecta si ZF = 0 o OF = SF. b. JGE o JNL. Salta si es ms grande o igual o salta si no es menor que (jump if greater or equal o jump if not less) El salto se efecta si SF = OF. c. JL o JNGE. Salta si es menor que o salta si no es mayor o igual (jump if less o jump if not greater or equal) El salto se efecta si SF = OF. d. JLE o JNG. Salta si es menor o igual o salta si no es ms grande (jump if less or equal o jump if not greater) El salto se efecta si ZF = 1 o SF = OF. 3. Instrucciones usadas segn el estado de banderas: a. JC Salta si hay acarreo (jump if carry) El salto se efecta si CF = 1. b. JNC Salta si no hay acarreo (jump if not carry) El salto se efecta si CF = 0. 188
c. JNO Salta si no hay desbordamiento (jump if not overflow) El salto se efecta si OF = 0. d. JNP o JPO Salta si no hay paridad o salta si la paridad en non. El salto se efecta si PF= 0. e. JNS Salta si el signo est apagado (jump if not sign) El salto se efecta si SF = 0. f. JO Salta si hay desbordamiento (jump if overflow) El salto se efecta si OF = 1. g. JP o JPE Salta si hay paridad o salta si la paridad es par (jump if parity o jump if parity even) El salto se efecta si PF = 1. h. JS Salta si el signo est prendido (jump if sign set) El salto se efecta si SF = 1. Las comparaciones con signo van de acuerdo con la interpretacin que usted le quiera dar a los bytes o palabras de su programa. Por ejemplo, suponga que tiene un byte cuyo valor es 11111111 en binario y que desea compararlo con otro cuyo valor es 00000000. Es 11111111 mayor que 00000000? S y NO, eso depende de la interpretacin que usted le quiera dar. Si trabaja con nmeros enteros sin signo S LO SER, pues 255 es mayor que 0. Por el contrario, si tiene signo entonces SER MENOR puesto que -1 es siempre menor que 0. Lo anterior lleva a seleccionar las instrucciones de comparacin y de salto de acuerdo con la interpretacin que se les d a los bytes o palabras; reflexione sobre este punto. Los saltos condicionales se encuentran limitados al rango de -128 a +127 bytes como mxima distancia, ya sea adelante o hacia atrs. Si desea efectuar un salto a mayores distancias es necesario crear una condicin mixta entre saltos condicionales y no condicionales. 189
Iteraciones. Con los saltos condicionales y no condicionales se pueden crear estructuras de iteracin bastante complejas, aunque existen instrucciones especficas para ello tal como loop. Esta instruccin es muy til cuando se va a efectuar cierto bloque de instrucciones un nmero finito de veces. He aqu un ejemplo:
CUENTA: DW, 100 MOV CX, CUENTA ITERA: LOOP ITERA El bloque de instrucciones que se encuentra entre la etiqueta ITERA y la instruccin loop ser ejecutado hasta que el registro CX sea igual a 0. Cada vez que se ejecuta la instruccin loop, el registro CX es decrementado en 1 hasta llegar a 0. Esta instruccin tiene la limitante de que debe encontrarse en el rango de +128 a - 127 (mximo nmero de bytes entre ITERA y loop) Iteraciones condicionales Existen otras dos variantes de la instruccin loop. Las instrucciones loope y loopz decrementan CX e iteran si CX = 0 y ZF = 1, mientras que loopne y looppnz iteran si CX" 0 y ZF" 0. Un punto importante es que al decrementarse CX las banderas NO RESULTAN AFECTADAS. Por lo tanto, le corresponde a usted afectarlas dentro del bloque de iteracin. 190
Formato de las instrucciones Cada instruccin en lenguaje ensamblador del 8088 est compuesta de 4 campos: etiqueta operacin operando comentario. El campo comentario se utiliza para propsitos de documentacin y es opcional. Campo etiqueta: Una etiqueta debe comenzar con un carcter alfabtico y puede contener hasta 31 caracteres, incluyendo: Letras de la A a la Z Nmeros del 0 al 9 Los smbolos especiales: - $ . @ % No se puede utilizar un nombre que coincida con una palabra reservada o directiva del ensamblador. Si el nombre incluye un punto, entonces el punto debe ser el primer carcter. Campo operacin: Contiene el nemotcnico de la instruccin, que es de 2 a 6 caracteres. Campo operando: Contiene la posicin o posiciones donde estn los datos que van a ser manipulados por la instruccin. Campo comentario: Se utiliza para documentar el cdigo fuente del ensamblador. Debe separarse del ltimo campo por al menos un espacio e iniciar con ;. Cuando inicia un comentario en una lnea sta deber tener en la primera columna el carcter; Modos De Direccionamiento Y Generacin Del Cdigo Objeto Generacin de la direccin de la instruccin. 191
Todos los registros internos del 8086/8088 son de 16 bits. El bus de direccin es de 20 bits, por lo que se usa ms de un registro interno para generar la direccin de 20 bits. Los 2 registros usados para la direccin de la instruccin son el IP y el CS. Se combinan en una forma especial para generar la direccin de 20 bits. direccin de 20 bits = 1610 * CS + IP Por ejemplo: Si los registros CS e IP contienen los valores: CS = 1000H IP = 0414 H La direccin de 20 bits es: 1610 * 1000H + 0414H = 10000H + 0414H = 10414H Esta es la direccin en memoria desde la cual la nueva instruccin debe buscarse. Al registro IP se le refiere como offset, el registro CS * 1610 apunta a la direccin de inicio o segmento en memoria desde el cual se calcula el offset.
La Figura 4.8 muestra grficamente cmo se calcula la direccin de 20 bits.
Cada direccin generada por el 8086/8088 usa uno de los 4 registros de segmento. Este registro de segmento es recorrido 4 bits hacia la izquierda antes de ser sumado al offset. 192
La instruccin del CPU especfica cules registros internos se usan para generar el offset. Vamos a ver los diferentes modos de direccionamiento tomando como ejemplo la instruccin MOV. Instruccin MOV Transfiere un byte desde el operando fuente al operando destino. Tiene el siguiente formato: MOV destino, fuente Direccionamiento Inmediato El operando fuente aparece en la instruccin. Un ejemplo, es el que mueve un valor constante a un registro interno. MOV AX, 568 Direccionamiento a Registro Indica que el operando a ser usado est contenido en uno de los registros internos de propsito general del CPU. En el caso de los registros AX, BX, CX o DX los registros pueden ser de 8 a 16 bits Ejemplos: MOV AX, BX ; AX . BX MOV AL, BL ; AL . BL Cuando usamos direccionamiento a registro, el CPU realiza las operaciones internamente, es decir, no se genera direccin de 20 bits para especificar el operando fuente.
193
Direccionamiento Directo Especifica en la instruccin la localidad de memoria que contiene al operando. En este tipo de direccionamiento, se forma una direccin de 20 bits. Ejemplo: MOV CX, COUNT El valor de COUNT es una constante. Es usada como el valor offset en el clculo de la direccin de 20 bits El 8086/8088 siempre usa un registro de segmento cuando calcula una direccin fsica. Cul registro se debe usar para esta instruccin? Respuesta: DS
Fig. 4.9 En la Figura, se muestra el clculo de la direccin desde la cual se tomar el dato que se carga en CX. Este es el segmento por omisin que se usa. Sin embargo, cualquiera de los 4 segmentos puede usarse. Esto se efecta especificando el registro apropiado en la instruccin. Por ejemplo, suponga que deseamos usar el registro ES en lugar del DS: MOV CX, ES: COUNT 194
Direccionamiento de Registro Indirecto Con el modo de direccionamiento de registro ndice, la direccin offset de 16 bits est contenida en un registro base o registro ndice. Esto es, la direccin reside en el registro BX, BP, SI o DI. Ejemplo: MOV AX, [SI] El valor de 16 bits contenido en el registro SI debe ser el offset usado para calcular la direccin de 20 bits. Otra vez, debe usarse un registro de segmento para generar la direccin final. El valor de 16 bits en SI se combina con el segmento apropiado para generar la direccin. Direccionamiento de Registro Indirecto con Desplazamiento Este tipo de direccionamiento incluye a los dos modos de direccionamiento anteriores. La direccin offset de 16 bits se calcula sumando el valor de 16 bits especificado en un registro interno y una constante. Por ejemplo, si usamos el registro interno DI y el valor constante (desplazamiento), donde COUNT ha sido previamente definido, el nemotcnico para esta construccin es: MOV AX, COUNT [DI] Si: COUNT = 0378H DI = 04FAH 0872H 195
Entonces, la direccin offset de 16 bits es 0872H Direccionamiento de Registro Indirecto con un Registro Base y un Registro ndice Este modo de direccionamiento usa la suma de dos registros internos para obtener la direccin offset de 16 bits a usarse en el clculo de la direccin de 20 bits. Ejemplos: MOV [BP] [DI], AX ; el offset es BP + DI MOV AX, [BX] [SI] ; el offset es BX + SI Direccionamiento de Registro ndice Indirecto con un Registro Base, un Registro ndice y un Registro Constante Este es el modo de direccionamiento ms complejo. Es idntico al modo de direccionamiento anterior, excepto que se suma una constante. Ejemplo: Suponga que tenemos los siguientes valores en los registros: DI = 0367H BX = 7890H COUNT = 0012H 7C09H Este modo de direccionamiento indica que el offset especificado por la suma de DI + BX + COUNT sea usado para mover el dato en memoria en el registro AX. 196
MOV AX, COUNT [BX] [DI] La direccin offset de 16 bits es 7C09H. La direccin completa en 20 bits se calcula de la expresin: 1610*DS + 7C09H Si el DS contiene 3000H, la direccin completa de 20 bits es: 3000H + 7C09H = 37C09H Cdigo Objeto del 8086/8088 Como programador, debes escribir los nemotcnicos. El cdigo objeto es generado por la computadora (son los bytes que ejecuta el CPU) Con el conjunto de instrucciones del 8086/8088, cada tipo de modo de direccionamiento puede requerir un nmero diferente de bytes. En los ejemplos siguientes proporcionaremos el nmero de bytes requeridos por cada modo de direccionamiento. Bit W y campo REG La instruccin MOV AX, 568H Indica mover inmediatamente al registro interno AX el valor 568H. El registro interno puede ser de 1 byte o de una palabra. Esta instruccin requiere 2 o 3 bytes, como se indica en la (Figura 4.10 ). 197
Fig. 4.10 El primer byte contiene los bits ms significativos (MSB) como 1011. El prximo bit es W. W indica: 1 para word 0 para byte. Esto es, si el registro destino es de 16 bits o de 8 bits. Los siguientes 3 bits del primer byte, campo REG, determinan cul registro est involucrado. La tabla, muestra el cdigo de seleccin del registro. REG REGISTRO DE 16 BITS REGISTRO DE 8 BITS 000 AX AL 001 CX CL 010 DX DL 011 BX BL 100 SP AH 101 BP CH 110 SI DH 111 DI BH
Campo DATA. Si el registro de destino es de 1 byte, el dato debe estar en el segundo byte de la instruccin. Si el destino es de una palabra, el segundo byte de la instruccin son los 8 bits menos significativos (lsb) del dato, el tercer byte de la 198
instruccin son los 8 bits ms significativos (MSB) del dato. La (figura 4.11), muestra los nemotcnicos 2 o 3 bytes
Fig. 4.11 Bit D, MOD y R/M En este ejemplo, moveremos datos desde memoria o moveremos un registro hacia o desde otro registro. Usaremos una instruccin como: MOV AX, BX Esta instruccin es de 2 bytes porque no nos referimos a memoria. Los bytes aparecern como lo muestra la (Figura. 4.12)
Fig. 4.12 El primer byte contiene los 2 bits menos significativos como DW. El bit W es para word=1 o para byte=0. La D es para indicar si el dato ser almacenado en el operando especificado por los campos MOD y R/M (D = 0) o si va a ser almacenado en el registro especificado por el campo REG (D = 1) La Figura F muestra las asignaciones para MOD y R/M. Note en la descripcin de MOD=11, el
199
campo R/M es codificado con un formato de registro. Este formato se muestra en la (Figura 4.13) .
Fig. 4.13 Para esta instruccin deseamos almacenar el dato en el registro AX. Por lo tanto el bit D=0. Esto significa que el dato debe ser almacenado en la localidad especificada por los campos MOD y R/M. Por lo tanto, MOD = 11. El campo R/M = 000, indicando que el registro AX es el destino para los datos. El campo REG para el segundo byte de datos es 011. Indicando que el registro BX es el registro fuente a ser utilizado. El segundo byte de la instruccin es 11 011 000 = D8. Por lo que el cdigo objeto para la instruccin es: MOV AX, BX es 89 D8 Cdigo Objeto para el uso de Registro Base y Registro ndice 200
Examinemos un ltimo ejemplo para generar cdigo objeto para el 8086/8088. En ste vamos a calcular el cdigo objeto para la instruccin: MOV CX, COUNT [BX] [SI] Esta instruccin es de 4 bytes, como se muestra en la (Figura. 4.14).
Fig. 4.14 El primer byte de la Figura, debe tener el bit D=1. Esto es debido a que el destino para el dato debe ser especificado por el campo REG en el segundo byte. El bit W=1. Porque es una transferencia de palabra. El primer byte es: 10001011 = 8B En el segundo byte, ya que estamos usando una constante que requiere 16 bits, el campo MOD = 10. Refiriendo a la Figura F, sta indica que el desplazamiento debe ser formateado en 2 bytes y deben seguir a este segundo byte. El prximo campo para el segundo byte es el campo de registro (REG) Ya que debemos usar el registro CX, este valor debe ser 001 (esto se obtiene de la Figura 4.20) Finalmente, el campo R/M. Ya que el campo MOD<> 11, este campo debe especificar cul registro base y cul registro de ndice estn siendo usados para generar la direccin offset de 16 bits. En nuestro caso, usamos el campo [BX+SI+DESPLAZAMIENTO] Esto corresponde a R/M = 000 201
El segundo byte es 1000 1000 = 88 El tercer y cuarto byte corresponde al desplazamiento En este caso, el valor de COUNT = 0345H. Los ltimos 2 bytes son 4503H Esto da el siguiente cdigo objeto total para la instruccin: MOV CX, COUNT [BX] [SI] 8BH 88H 45H 03H Sumario del Cdigo Objeto Una pregunta que surge al programador Debo conformar los campos D, W, REG, MOD y R/M, en cada instruccin? NO, la computadora lo hace (el lenguaje ensamblador lo genera) Esta seccin se present para permitirle al programador un mejor entendimiento del trabajo interno del microprocesador 8086/8088 Interrupciones de los Servicios Bsicos de Entrada y Salida (BIOS, por sus siglas en ingls) FUNCIN INT 21 (AH)=1 ENTRADA DESDE EL TECLADO Esta funcin espera a que se digite un carcter en el teclado. Muestra el carcter en la pantalla (eco) y retorna el cdigo ASCII en el registro AL. (AL) = carcter ledo desde el teclado Ejemplo: 202
MOV AH, 1 INT 21h; AL = dato ASCII ledo desde el teclado (AH)=2 SALIDA EN EL EXHIBIDOR (display) Despliega un carcter en la pantalla. Algunos caracteres tienen un significado especial: 7 CAMPANA: Suena durante un segundo 8 BACKSPACE: Mueve el cursor hacia la izquierda un carcter 9 TABULADOR: Mueve el tabulador a su prxima posicin (cada 8 caracteres) 0Ah LF: Mueve el cursor a la siguiente lnea 0Dh CR: Mueve el cursor al inicio de la lnea corriente (DL): Carcter a desplegar en la pantalla Ejemplo: Desplegar un carcter MOV DL, 40; carcter a desplegar MOV AH, 2 INT 21h; aparece en la posicin corriente del cursor; el carcter contenido en DL
Fig. 4.15 Ejemplo: Hacer que suene la campana 2 segundos 203
MOV DL, 7; DL = campana MOV AH, 02 INT 21h; 1 segundo INT 21h; 1 segundo (AH)=8 ENTRADA DESDE EL TECLADO SIN ECO Lee un carcter desde el teclado, pero no se despliega en la pantalla (AL) = carcter ledo desde el teclado MOV AH, 08 INT 21h; AL = carcter (AH)=9 DESPLIEGA UNA CADENA DE CARACTERES Despliega en la pantalla la cadena apuntada por el par de registros DS:DX. Debemos marcar el fin de la cadena con el carcter $ DS: DX apuntan a la cadena que se va a desplegar (AH)=0A h LEE UNA CADENA Lee una cadena de caracteres desde el teclado Dnde queda la informacin? (AH)=25h ACTIVA EL VECTOR DE INTERRUPCIN Activa un vector de interrupcin, para que apunte a una nueva rutina (AL) = nmero de interrupcin 204
ES: BX direccin del manipulador de interrupciones (AH)=35h CONSIGUE VECTOR DE INTERRUPCIN Consigue la direccin de la rutina de servicio para el nmero de interrupcin dado en AL (AL) = nmero de interrupcin ES: BX direccin del manipulador de interrupcin (AH)=4Ch SALIDA AL DOS Retorna al DOS. Trabaja para ambos archivos *.com y *.Exe. Recuerde que INT 20h trabaja solamente para archivos *.com (AL) = cdigo de retorno, normalmente activo a 0, pero se puede activar a cualquier otro nmero y usar los comandos del DOS, IF y ERRORLEVEL, para detectar errores. Ejemplo: El siguiente programa podemos ver cmo utilizar las lneas de E/S del microcontrolador, en este caso al activar el pulsador se encender la luz correspondiente, en lugar de eso podemos llamar a una funcin y realizar una tarea deseada: #include <16f876a> #fusesXT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT #use delay(clock=4000000) #use standard_io(b) //mirar sin usar tris 205
void main() { set_tris_a(011011); //porta como entrada set_tris_b(0x00); do{ output_b(0x00); if (input(pin_a0)){ output_high(pin_b0); } if (input(pin_a1)){ output_high(pin_b1); } if (input(pin_a3)){
4.2.3 Modos de direccionamiento Los modos de direccionamiento son un aspecto de la arquitectura del conjunto de instrucciones en la mayora de la unidad central de procesamiento (CPU) disea. Los modos de direccionamiento diferentes que se definen en una arquitectura de conjunto de instrucciones dadas definir la forma en lenguaje de mquina las instrucciones en el que identifican a la arquitectura del operando (u operandos) de cada instruccin. Un modo de direccionamiento especifica la forma de calcular la direccin de memoria efectiva de un operando mediante el uso de la informacin contenida en 206
registros y / o las constantes contenidas en una instruccin de mquina o en otra parte. En la programacin de computadoras, modos de direccionamiento son primordialmente de inters para compilador de escritores y de los que escriben el cdigo directamente en lenguaje ensamblador . No hay forma generalmente aceptada de nombrar a los distintos modos de direccionamiento. En particular, diferentes autores y fabricantes de equipos pueden dar nombres diferentes para el mismo modo de direccionamiento, o los mismos nombres a los diferentes modos de direccionamiento. Por otra parte, un modo de direccionamiento que, de una arquitectura dada, se trata como un solo modo abordar puede representar servicios que, en otra arquitectura, est cubierto por dos o ms modos de direccionamiento. Por ejemplo, algunas instrucciones de equipo complejo (CISC) arquitecturas, como la Digital Equipment Corporation (DEC) VAX , el tratamiento de los registros y los literales / constantes inmediata como otro modo de direccionamiento. Otros, como el IBM System/390 y la mayora de instrucciones de la computadora conjunto reducido (RISC) disea, codificar esta informacin dentro de la instruccin. As, las mquinas de esta ltima tiene tres cdigos de instruccin distinta para copiar un registro a otro, la copia literal de una constante en un registro, y copiar el contenido de una posicin de memoria en un registro, mientras que el VAX tiene solamente una sola "MOV" instruccin. El trmino "modo de direccin" se est sujeto a diferentes interpretaciones: o bien "direccin de memoria el modo de clculo" o "modo de acceso operando". Bajo las instrucciones de la primera interpretacin que no se lee de la memoria o escribir en la memoria (como "aadir literal a registrar") se considerar que no tienen un modo de "hacer frente". La segunda interpretacin permite mquinas tales como VAX que utilizan operando bits de modo de permitir un operando literal. 207
Slo la primera interpretacin se aplica a las instrucciones tales como "direccin efectiva de carga". Los modos de direccionamiento se enumeran a continuacin se dividen en cdigo de abordar y tratar los datos. La mayora de arquitecturas de computadora mantener esta distincin, pero hay, o lo hayan sido en algunas arquitecturas que permiten (casi) todos los modos de direccionamiento para ser utilizado en cualquier contexto. Las instrucciones que se muestran a continuacin son puramente representativas a fin de ilustrar los modos de direccionamiento, y no necesariamente reflejan los mnemnicos utilizados en cualquier ordenador en particular. Diferentes arquitecturas de equipo varan mucho en cuanto al nmero de modos de direccionamiento que ofrecen en el hardware. Hay algunos beneficios para la eliminacin de complejos modos de direccionamiento y el uso de slo uno o unos pocos simples modos de direccionamiento, a pesar de que requiere una instruccin de extras, y tal vez un registro adicional. Se ha demostrado mucho ms fcil disear pipeline CPU si los modos disponibles son slo la atencin de los simples. Mayora de las mquinas RISC slo tienen alrededor de cinco modos de abordar simple, mientras que las mquinas CISC como el supermini VAX diciembre con ms de una docena de modos de direccionamiento, algunos de los cuales son muy complejos. El IBM System/360 mainframe slo contaba con tres modos de direccin, unos pocos se han aadido ms para el System/390 . Cuando hay slo un pocos modos de direccionamiento, el modo particular atendiendo requerido es generalmente codificada en el cdigo de instruccin (por ejemplo, IBM System/390, la mayora de RISC). Pero cuando hay un montn de modos de direccionamiento, un campo especfico es a menudo de lado en la instruccin para especificar el modo de direccionamiento. El VAX diciembre 208
permiti varios operandos de memoria para casi todas las instrucciones, y as reservados los primeros bits de cada especificador de operando para indicar el modo de direccionamiento para que operando en particular. Incluso en un equipo con muchos modos de direccionamiento, las mediciones de los programas actuales indican que los modos de direccionamiento simple que figuran a continuacin representan alrededor del 90% o ms de todos los modos de direccionamiento utilizado. Como la mayora de estas mediciones se basan en el cdigo generado a partir de lenguajes de alto nivel por los compiladores, esto refleja en cierta medida las limitaciones de los compiladores utilizados. Efecto secundario muy til Algunos procesadores, como Intel x86 y IBM/390, tienen carga efectiva una instruccin de direccionamiento. Se realiza un clculo de la direccin del operando eficaz, pero en vez de actuar en esa localidad de memoria, se carga la direccin que se haya accedido a un registro. Esto puede ser til cuando se pasa la direccin de un elemento de la matriz a una subrutina. Tambin puede ser una manera un poco disimulada de hacer ms clculos de lo normal en una instruccin, por ejemplo, utilizando como una instruccin con el modo de direccionamiento "+ base + ndice de desplazamiento" (detalladas ms abajo) permite aadir dos registros y una constante en conjunto en una instruccin. Simple modos de direccionamiento para el cdigo Absoluto +----+------------------------------+ | Ir | | Direccin +----+------------------------------+
(Direccin efectiva PC = direccin) 209
La direccin efectiva de una direccin de la instruccin absoluta es el parmetro de direccin s mismo sin modificaciones. Relativo al PC +----+------------------------------+ | | Ir offset | saltar relativa +----+------------------------------+
(Direccin efectiva PC = direccin de la instruccin siguiente + offset, desplazamiento puede ser negativo) La direccin efectiva de una PC de instrucciones direccin relativa-es el parmetro offset aadido a la direccin de la siguiente instruccin. Este desplazamiento es generalmente firmados para permitir al cdigo de referencia antes y despus de la instruccin. Esto es particularmente til en relacin con saltos, porque salta tpicas son cercanas a las instrucciones (en un lenguaje de alto nivel o la mayora, si bien las declaraciones son razonablemente corto). Las mediciones de los programas actuales sugieren que unos 8 o 10 bits desplazamiento es lo suficientemente grande como para un 90% de saltos condicionales. Otra ventaja del programa de direccionamiento relativo es que el cdigo puede ser independiente de la posicin , es decir, se pueden cargar en cualquier lugar de la memoria sin la necesidad de ajustar todas las direcciones. Algunas versiones de este modo de direccionamiento puede ser condicional se refiere a dos registros ("saltar si REG1 == reg2"), un registro ("ir a menos REG1 == 0") o de los registros no, de manera implcita, referente a algunos poco previamente establecidos en el registro de estado . Vase tambin la ejecucin condicional de abajo. 210
Registro indirectos +-------+-----+ | | JumpVia reg | +-------+-----+
(Contenido direccin efectiva = PC de registro 'reg) La direccin efectiva de una instruccin de registro indirecto es la direccin en el registro especificado. Por ejemplo, (A7) para acceder al contenido del registro de direccin A7. El efecto es transferir el control a la instruccin cuya direccin est en el registro especificado. Muchas mquinas RISC tienen una instruccin de llamada a subrutina que coloca a la direccin de retorno en un registro de direccin-el registro indirecto modo de direccionamiento se utiliza para devolver a esa llamada subrutina. Secuencial modos de direccionamiento Ejecucin secuencial. +------+ | Nop | ejecutar la siguiente instruccin +------+
(Direccin efectiva PC = direccin de la instruccin siguiente) La CPU, despus de ejecutar una instruccin secuencial, de inmediato se ejecuta la siguiente instruccin. 211
Ejecucin secuencial no se considerada como un modo de direccin en algunos equipos. La mayora de las instrucciones en la mayora de las arquitecturas de CPU son instrucciones secuenciales. Porque la mayora de las instrucciones son las instrucciones secuenciales, los diseadores de la CPU a menudo aaden caractersticas que deliberadamente sacrificar el rendimiento por el otro las instrucciones de la rama instrucciones, a fin de que estas instrucciones secuenciales correr ms rpido. Ramas de carga condicional de la PC con una de 2 resultados posibles, dependiendo de la condicin-la mayora de los CPU arquitecturas se utiliza algn otro modo de direccionamiento para el "tomado" rama, y la ejecucin secuencial para el "no tomar" sucursal. Muchas de las funciones en los CPU modernos - prefetch de instrucciones y ms compleja pipelineing , fuera de la orden de ejecucin , etc - se mantenga la ilusin de que cada instruccin finaliza antes que se inicia el prximo, dando el mismo resultado final, a pesar de que no es exactamente lo que sucede internamente. Cada " bloque bsico "de tales instrucciones secuenciales exposiciones tanto temporales como espaciales localidad de referencia . CPUs que no utilizan la ejecucin secuencial son extremadamente raras-que incluyen algunos memoria de tambor los ordenadores y el 32P RTX , que no tiene contador de programa. Ejecucin condicional. Algunas arquitecturas de computadora (por ejemplo, ARM ) tienen instrucciones condicionales que en algunos casos puede obviar la necesidad de saltos condicionales y evitar el lavado de la tubera de instruccin . Una instruccin como una "comparar" se utiliza para establecer un cdigo de condicin , y las 212
instrucciones posteriores incluyen una prueba de que el cdigo de estado para ver si se cumplen o se ignoran. Saltar +------+-----+-----+ | SkipEQ | REG1 | reg2 | saltar la siguiente instruccin si REG1 = reg2 +------+-----+-----+
(Direccin efectiva PC = direccin de la instruccin siguiente + 1) Pasar frente se puede considerar un tipo especial de direccionamiento relativo al PC con un modo de fijar "un" offset. Al igual que PC-direccionamiento relativo, algunos CPUs tienen versiones de este modo de direccionamiento que slo se refieren a un registro ("saltar si REG1 == 0") o si no se registra, de manera implcita, referente a algunos-bit previamente en el registro de estado . CPU, otras tienen una versin que selecciona un poco especfica en un byte especfico para la prueba ("saltar si el bit 7 de la reg12 es 0"). A diferencia de otras ramas condicionales, un contenedor "no necesita instrucciones para limpiar la tubera de instruccin . Simple modos de direccionamiento de datos Registro +------+-----+-----+-----+ | | Mul REG1 | reg2 | reg3 | REG1: * = reg2 reg3; +------+-----+-----+-----+ Este modo de "hacer frente" no tiene una direccin efectiva y no se considera como un modo de direccin en algunos equipos. 213
En este ejemplo, todos los operandos estn en registros, y el resultado se coloca en un registro. Base ms desplazamiento y las variaciones Esto se refiere a veces como "base ms desplazamiento" +------+-----+-----+----------------+ de carga | | reg base | | offset reg |: = base de RAM [+ desplazamiento] +------+-----+-----+----------------+
(Direccin efectiva = offset + contenido del registro base especificada) El desplazamiento es por lo general un valor de 16-bit firmado (aunque el 80386 se ampli a 32 bits). Si el desplazamiento es cero, esto se convierte en un ejemplo de registro de direccionamiento indirecto, la direccin efectiva es slo el valor en el registro de base. En muchas mquinas RISC, el registro 0 se fija en el valor cero. Si el registro 0 se usa como base el registro, esto se convierte en un ejemplo de la necesidad absoluta. Sin embargo, slo una pequea porcin de la memoria se puede acceder (64 kilobytes , si el desplazamiento es de 16 bits). El desplazamiento de 16 bits puede parecer muy pequea en relacin con el tamao de memorias de las computadoras actuales (por lo que el 80386 se ampli a 32 bits). Podra ser peor: los mainframes IBM System/360 slo tienen un signo de 12-bit de compensacin. Sin embargo, el principio de localidad de referencia se aplica: ms de un corto perodo de tiempo, la mayora de los elementos de datos de un programa quiere acceder se encuentran bastante cerca el uno al otro. 214
Este modo de direccionamiento est estrechamente relacionado con el ndice modo absoluto direccionamiento. 4.2.4 Lenguaje ensamblador
El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informticos, y constituye la representacin ms directa del cdigo mquina especfico para cada arquitectura de computadoras legible por un programador. Cada arquitectura de microprocesadores tiene su propio lenguaje de mquina, y en consecuencia su propio lenguaje ensamblador ya que este se encuentra muy ligado la estructura del hardware para el cual se programa. Los microprocesadores difieren en el tipo y nmero de operaciones que soportan; tambin pueden tener diferente cantidad de registros, y distinta representacin de los tipos de datos en memoria. Aunque la mayora de los microprocesadores son capaces de cumplir esencialmente las mismas funciones, la forma en que lo hacen difiere y los respectivos lenguajes ensambladores reflejan tal diferencia. Caractersticas El cdigo escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido directamente por un ser humano ya que su estructura se acerca ms bien al lenguaje mquina, es decir, lenguaje de bajo nivel. El lenguaje ensamblador es difcilmente portable, es decir, un cdigo escrito para un microprocesador, suele necesitar ser modificado, muchas veces en su totalidad para poder ser usado en otra mquina distinta, aun con el mismo microprocesador. Los programas hechos en lenguaje ensamblador son generalmente ms rpidos y consumen menos recursos del sistema (memoria RAM y ROM). Al programar cuidadosamente en lenguaje 215
ensamblador se pueden crear programas que se ejecutan ms rpidamente y ocupan menos espacio que con lenguajes de alto nivel. Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de cdigo difciles de programar en un lenguaje de alto nivel. Tambin se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se interrumpa durante su ejecucin. Lenguaje Un programa escrito en lenguaje ensamblador consiste en una serie de instrucciones que corresponden al flujo de rdenes ejecutables que pueden ser cargadas en la memoria de un sistema basado en microprocesador. Por ejemplo, un procesador x86 puede ejecutar la siguiente instruccin binaria como se expresa en cdigo de mquina: Binario: 10110000 01100001 (Hexadecimal: 0xb061) La representacin equivalente en lenguaje ensamblador es ms fcil de recordar: MOV al, 061h Esta instruccin significa: Asigna el valor hexadecimal 61 (97 decimal) al registro "al". El mnemnico "mov" es un cdigo de operacin u "opcode", elegido por los diseadores de la coleccin de instrucciones para abreviar "move" (mover, pero en el sentido de copiar valores de un sitio a otro). El opcode es seguido por una lista de argumentos o parmetros, completando una instruccin de ensamblador tpica. 216
La transformacin del lenguaje ensamblador en cdigo mquina la realiza un programa Ensamblador, y la traduccin inversa la puede efectuar un desensamblador. A diferencia de los lenguajes de alto nivel, aqu hay usualmente una correspondencia 1 a 1 entre las instrucciones simples del ensamblador y el lenguaje de mquina. Sin embargo, en algunos casos, un ensamblador puede proveer "pseudo instrucciones" que se expanden en un cdigo de mquina ms extenso a fin de proveer la funcionalidad necesaria. Por ejemplo, para un cdigo mquina condicional como "si X mayor o igual que" , un ensamblador puede utilizar una pseudoinstruccin al grupo "haga si menor que" , y "si = 0" sobre el resultado de la condicin anterior. Los Ensambladores ms completos tambin proveen un rico lenguaje de macros que se utiliza para generar cdigo ms complejo y secuencias de datos. El uso del ensamblador no resuelve definitivamente el problema de cmo programar un sistema basado en microprocesador de modo sencillo ya que para hacer un uso eficiente del mismo, hay que conocer a fondo el microprocesador, los registros de trabajo de que dispone, la estructura de la memoria, y muchas cosas ms referentes a su estructura bsica de funcionamiento. Cada arquitectura de microprocesadores tiene su propio lenguaje de mquina, y en consecuencia su propio lenguaje ensamblador ya que este se encuentra muy ligado a la estructura del hardware para el cual se programa. Los microprocesadores difieren en el tipo y nmero de operaciones que soportan; tambin pueden tener diferente cantidad de registros, y distinta representacin de los tipos de datos en memoria. Aunque la mayora de los microprocesadores son capaces de cumplir esencialmente las mismas funciones, la forma en que lo hacen difiere y los respectivos lenguajes ensamblador reflejan tal diferencia. Pueden existir mltiples conjuntos de mnemnicos o sintaxis de lenguaje ensamblador para un mismo conjunto de instrucciones, instanciados tpicamente 217
en diferentes programas en ensamblador. En estos casos, la alternativa ms popular es la provista por los fabricantes, y usada en los manuales del programa. Cdigo mquina El cdigo mquina, o lenguaje de mquina, est formado por instrucciones sencillas, que -dependiendo de la estructura del procesador- pueden especificar: Registros especficos para operaciones aritmticas, direccionamiento o control de funciones. Posiciones de memoria especficas (offset). Modos de direccionamiento usados para interpretar operandos. Las operaciones ms complejas se realizan combinando estas instrucciones sencillas, que pueden ser ejecutadas secuencialmente o mediante instrucciones de control de flujo. Las operaciones disponibles en la mayora de los conjuntos de instrucciones incluyen: Mover o llenar un registro con un valor constante o mover datos de una posicin de memoria a un registro o viceversa o escribir y leer datos de dispositivos Computar o sumar, restar, multiplicar o dividir los valores de dos registros, colocando el resultado en uno de ellos o en otro registro o realizar operaciones binarias, incluyendo operaciones lgicas (AND/OR/XOR/NOT) o comparar valores entre registros (mayor, menor, igual) Afectar el flujo del programa o saltar a otra posicin en el programa y ejecutar instrucciones all 218
o saltar si se cumplen ciertas condiciones (IF) o saltar a otra posicin, pero guardar el punto de salida para retornar (CALL, llamada a subrutinas) Algunas computadoras incluyen instrucciones complejas dentro de sus capacidades. Una sola instruccin compleja hace lo mismo que en otras computadoras puede requerir una larga serie de instrucciones, por ejemplo: Salvar varios registros en la pila de una sola vez Mover grandes bloques de memoria Operaciones aritmticas complejas o de punto flotante (seno, coseno, raz cuadrada) Mientras que una computadora reconoce la instruccin de mquina IA-32 10110000 01100001 Para los programadores de microprocesadores x86 es mucho ms fcil reconocer dicha instruccin empleando lenguaje ensamblador: movb 0x61,%al Este cdigo mueve el valor hexadecimal 61 (97 en decimal) al registro 'al'. Ejemplos de lenguaje ensamblador Ejemplo 1 El siguiente es un ejemplo del programa clsico Hola mundo escrito para la arquitectura de procesador x86 (bajo el sistema operativo DOS). .model small .stack .data 219
Cadena1 DB 'Hola Mundo.$' .code
programa: mov ax, @data mov ds, ax mov dx, offset Cadena1 mov ah, 9 int 21h int 20h end programa Ejemplo 2 Una seleccin de instrucciones para una computadora virtual 3 ) con las correspondientes direcciones de memoria en las que se ubicarn las instrucciones. Estas direcciones NO son estticas. Cada instruccin se acompaa del cdigo en lenguaje ensamblador generado (cdigo objeto) que coincide con la arquitectura de computador virtual, o conjunto de instrucciones ISA. Dir. Etiqueta Instruccin Cdigo mquina 4
Ejemplo 3 Cdigo en lenguaje ensamblador para C Intel 80C51:
ORG 8030H
T05SEG: SETB TR0 JNB uSEG,T05SEG ;esta subrutina es utilizada CLR TR0 ;para realizar una cuenta de CPL uSEG ;0,5 segundos mediante la MOV R1,DPL ;interrupcin del timer 0. MOV R2,DPH CJNE R2,#07H,T05SEG CJNE R1,#78H,T05SEG MOV DPTR,#0000H RET Ejemplo 4 Cdigo en lenguaje ensamblador para C 16F84 de Microchip: ORG 0 Inicio bsf STATUS,RP0 clrf PORTB movlw 0xFF movwf PORTA bcf STATUS,RP0 Principal movf PORTA,W 222
4.3 Aplicaciones Cada vez existen ms productos que incorporan un microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamao y coste, mejorar su fiabilidad y disminuir el consumo. Algunos fabricantes de microcontroladores superan el milln de unidades de un modelo determinado producidas en una semana. Este dato puede dar una idea de la masiva utilizacin de estos componentes. Los microcontroladores estn siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, horno microondas, frigorficos, televisores, computadoras, impresoras, mdems, el sistema de arranque de nuestro coche, etc. Y otras aplicaciones con las que seguramente no estaremos tan familiarizados como instrumentacin electrnica, control de sistemas en una nave espacial, etc. Una aplicacin tpica podra emplear varios microcontroladores para controlar pequeas partes del sistema. Estos pequeos controladores podran comunicarse entre ellos y con un procesador central, probablemente ms potente, para compartir la informacin y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC. 4.3.1 Como sistema independiente Un microcontrolador es, como ya se ha comentado previamente, un sistema completo, con unas prestaciones limitadas que no pueden modificarse y que 223
puede llevar a cabo las tareas para las que ha sido programado de forma autnoma. Ejemplo de Programas que realiza el microprocesador 8085 1) ;************************************************** ;* Nombre : Simulador de autmata programable * ;* Programador: Esteban Galeano * ;* Fecha: 13 octubre 1995 * ;* Ult. modif: 31 agosto 2000 * ;* Fichero: AUTOMATA.ASM * ;************************************************** ;*************************************************************** ;* Se simular el funcionamiento de un autmata programable, * ;* en cuyo interior hay un circuito MARCHA/PARO. Para ello, * ;* seguir el siguiente funcionamiento: * ;* * ;* Marcha Paro Salida * ;* * ;* 0 0 Salida * ;* 0 1 0 * ;* 1 0 1 * ;* 1 1 0 * ;* * 224
;* HACER * ;* programar(8255); * ;* MIENTRAS PuertoA[7]=1 HACER * ;* valor:=PuertoA[1..0]; * ;* SI * ;* valor=00b -> * ;* valor=01b -> PuertoB[0]:=0 * ;* valor=10b -> PuertoB[0]:=1 * ;* valor=11b -> PuertoB[0]:=0 (prio PARO) * ;* FSI * ;* FMIENTRAS * ;* MIENTRAS (cierto) * ;*************************************************************** ;**************************** ;* Definicin de ENTORNO * ;**************************** .RADIX H ;Sistema de numeracin ser hexadecimal ;**************************** ;* Definicin de CONSTANTES * ;**************************** cero: .EQU 0 DirPila: .EQU 1200 ;Direccin desde donde comenzar la PILA ByteControl: .EQU 90 ;8255 -> A in - B out - C out 225
2) ;*********************************************** ;* Nombre : Espera visualizable FFFF-0000 * ;* Programador: Esteban Galeano * ;* Fecha: 11 octubre 1995 * ;* Ult. modif: 31 agosto 2000 * ;* Fichero: CONTADOR.ASM * ;*********************************************** ;*************************************************************** ;* Se le dar un valor numrico a los registros HL y cada 1ms * ;* se decrementar su valor hasta llegar a cero, momento en el * ;* cual, se terminar el programa y regresar al S.O. * ;* * ;* HL:=seleccin * ;* HACER * ;* retardo(1ms); * ;* visualiza(HL); * ;* HL:=HL-1; * ;* MIENTRAS (HL<>0) * ;* visualiza(HL); * ;* restaurar; * ;*************************************************************** ;**************************** 226
;* Definicin de ENTORNO * ;**************************** .RADIX H ;Sistema de numeracin ser hexadecimal ;**************************** ;* Definicin de CONSTANTES * ;**************************** cero: .EQU 0 DirPila: .EQU 1200 ;Direccin desde donde comenzar la PILA seleccin: .EQU 2000 ;Numero de veces a decrementar ;*************************** ;* Inclusin de SUBRUTINAS * ;*************************** .DATA ;Direccin inicial de las subrutinas .INCLUDE a:rutinas.asm ;Incluye la definicin de direcciones de rutinas del S.O. ;*************************** ;* Programa PRINCIPAL * ;*************************** .CODE .ORG 1000 ;Direccin inicial del programa LXI SP,DirPila ;SP:=DirPila LXI H,seleccion ;HL:=seleccion sigue: PUSH H ;Salvar los registros H y L CALL delay ;Retardo de 1ms 227
CALL updad ;Visualiza HL en el campo de direcciones del Display POP H ;Recuperar los registros H y L DCX H ;HL:=HL-1 MOV A,H ;Si (H<>0) salta CPI cero JNZ sigue MOV A,L ;Si (L<>0) salta CPI cero JNZ sigue ;******************************* ;* Visualizar el Ultimo valor * ;******************************* PUSH H ;Salvar los registros H y L CALL updad ;Visualiza HL en el campo de direcciones del Display POP H ;Recuperar los registros H y L RST 1 .END 4.3.2 Como subsistema de una computadora La memoria principal o primaria (MP), tambin llamada memoria central, es una unidad dividida en celdas que se identifican mediante una direccin. Est formada por bloques de circuitos integrados o chips capaces de almacenar, retener o "memorizar" informacin digital, es decir, valores binarios; a dichos bloques tiene acceso el microprocesador de la computadora. 228
La MP se comunica con el microprocesador de la CPU mediante el bus de direcciones. El ancho de este bus determina la capacidad que posea el microprocesador para el direccionamiento de direcciones en memoria. En algunas oportunidades suele llamarse "memoria interna" a la MP, porque a diferencia de los dispositivos de memoria secundaria, la MP no puede extraerse tan fcilmente por usuarios no tcnicos. La MP es el ncleo del sub-sistema de memoria de un computador, y posee una menor capacidad de almacenamiento que la memoria secundaria, pero una velocidad millones de veces superior. En las computadoras son utilizados dos tipos de MP: ROM o memoria de slo lectura (Read Only Memory). Viene grabada de fbrica con una serie de programas. El software de la ROM se divide en dos partes: Rutina de arranque o POST (Power On Self Test, auto diagnstico de encendido): Realiza el chequeo de los componentes de la computadora; por ejemplo, circuitos controladores de video, de acceso a memoria, el teclado, unidades de disco,etc. Se encarga de determinar cul es el hardware que est presente y de la puesta a punto de la computadora. Mediante un programa de configuracin, el SETUP, lee una memoria llamada CMOS RAM (RAM de Semiconductor de xido metlico). sta puede mantener su contenido durante varios aos, aunque la computadora est apagada, con muy poca energa elctrica suministrada por una batera, guarda la fecha, hora, la memoria disponible, capacidad de disco rgido, si tiene disquetera o no. Se encarga en el siguiente paso de realizar el arranque (booteo): lee un registro de arranque 'BR' (Boot Record) del disco duro o de otra unidad (como CD, USB, etc.), donde hay un programa que carga el sistema operativo a la RAM. A continuacin cede el control a dicho sistema operativo y el computador queda listo para trabajar. 229
Rutina BIOS o Sistema Bsico de Entrada-Salida (Basic Input-Output System): permanece activa mientras se est usando el computador. Permite la activacin de los perifricos de entrada/salida: teclado, monitor, ratn, etc. RAM o memoria de acceso aleatorio (Random Access Memory). Es la memoria del usuario que contiene de forma temporal el programa, los datos y los resultados que estn siendo usados por el usuario del computador. En general es voltil, pierde su contenido cuando se apaga el computador, es decir que mantiene los datos y resultados en tanto el bloque reciba alimentacin elctrica, a excepcin de la CMOS RAM. Tanto la RAM como la ROM son circuitos integrados, llamados comnmente chips. El chip o circuito integrado es una pequea pastilla de material semiconductor (silicio) que contiene mltiples circuitos integrados, tales como transistores, entre otros dispositivos electrnicos, con los que se realizan numerosas funciones en computadoras y dispositivos electrnicos; que permiten, interrumpen o aumentan el paso de la corriente. Estos chips estn sobre una tarjeta o placa. El contenido de las memorias no es otra cosa que dgitos binarios o bits (binary digits), que se corresponden con dos estados lgicos: el 0 (cero) sin carga elctrica y el 1 (uno) con carga elctrica. A cada uno de estos estados se le llama bit, que es la unidad mnima de almacenamiento de datos. El microprocesador direcciona las posiciones de la RAM para poder acceder a los datos almacenados en ellas y para colocar los resultados de las operaciones. Al "bloque de MP", suele llamarse memoria RAM, por ser ste el tipo de chips de memoria que conforman el bloque, pero se le asocian tambin el chip CMOS, que almacena al programa BIOS del sistema y los dispositivos perifricos de la memoria secundaria (discos y otros perifricos), para conformar el sub-sistema de memoria del computador. 230
Los bloques RAM, los ROM y las memorias de almacenamiento secundario conforman el subsistema de memoria de una computadora.