Download ACTIVIDAD II ARQUITECTURA DE COMPUTADORES YENNY
Document related concepts
no text concepts found
Transcript
ACTIVIDAD II ARQUITECTURA DE COMPUTADORES YENNY ISLENA CESPEDES BERNAL CODIGO: 40.443.529 MARIA ANGELICA SANCHEZ CARDOZO CODIGO: 30.081.565 JOSE ANTONIO ROCHA CODOGO: 86.080.624 Trabajo presentado al Ing. HAIMER GUTIERREZ UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD FACULTAD DE CIENCIAS BASICAS E INGENIERIAS INGENIERIAS DE SISTEMAS, QUINTO SEMESTRE ACACIAS 2007 ACTIVIDAD II ARQUITECTURA DE COMPUTADORES Trabajo presentado al Ing. HAIMER GUTIERREZ UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD FACULTAD DE CIENCIAS BASICAS E INGENIERIAS INGENIERIAS DE SISTEMAS, QUINTO SEMESTRE ACACIAS 2007 INTRODUCCION La tecnología se aplica a la vida social, económica y cultural, no solo nos posibilita producir más en menos tiempo, tener más información o imaginar nuevas soluciones a nuevos problemas, modifica espacios y tiempos. Los computadores se han convertido en un elemento importante de la tecnología, por eso a continuación encontrara en este trabajo, varios conceptos de un computador, su funcionamiento interno, las tecnologías que se utilizan para que este aparato sea cada día sea mas potente, e indispensable en cualquier actividad cotidiana del hombre. OBJETIVOS Conocer la estructura y funcionamiento de un sistema de computación Aprender los conceptos de instrucción y las fases de una instrucción. Distinguir los componentes estructurales y funcionales de un sistema de computación Estudiar las arquitecturas CISC y RISC. Identificar los componentes estructurales y funcionales de un sistema de computación 1. DEFINA QUE ES UN COMPUTADOR Y CUALES SON LAS PRINCIPALES FUNCIONES QUE DEBE REALIZAR Un computador es, en pocas palabras, una máquina computador electromecánica que produce resultados a partir de datos ingresados, sobre los cuales se realizan ciertas operaciones preestablecidas. En su forma más simple, el computador es una caja negra con entradas y salidas, donde las entradas son los datos ingresados y las salidas los resultados, y al interior de esta caja negra se realiza el procesamiento de los datos (programación). Dispositivo electrónico compuesto básicamente de procesador, memoria y dispositivos de entrada/salida. Poseen parte física (hardware) y parte lógica (software), que se combinan entre sí para ser capaces de interpretar y ejecutar instrucciones para las que fueron programadas. Una computadora suele tener un gran software llamado sistema operativo que sirve como plataforma para la ejecución de otras aplicaciones o herramientas. La computadora es un dispositivo electrónico capaz de recibir un conjunto de instrucciones, o programa, y, a continuación, ejecutarlo realizando cálculos sobre los datos numéricos, o bien compilando y correlacionando otros tipos de información. Unidades funcionales básicas Los elementos principales de un computador son: la unidad de procesamiento central (CPU) o procesador, la memoria, el subsistema de entrada/salida y algunos medios de interconexión de todos estos componentes. La CPU esta formada por una unidad de control y un camino de datos, que por su parte consta de registros internos e interconexiones. Figura 1.1: El computador: unidades funcionales básicas La unidad central de procesamiento (CPU, Central Processing Unit): controla el funcionamiento del computador y lleva a cabo sus funciones de procesamiento de datos. Frecuentemente se llama simplemente procesador. Sus principales componentes estructurales son: Unidad de control: controla el funcionamiento de la CPU y, por tanto, del computador. Camino de datos: o Unidad aritmética - lógica (ALU, Arithmetic Logic Unit): Lleva a cabo las funciones de procesamiento de datos del computador. o Registros: proporcionan almacenamiento interno a la CPU. o Interconexiones CPU: son mecanismos que proporcionan comunicación entre la unidad de control, la ALU y los registros. La memoria: almacena datos e instrucciones. E/S: transfiere datos entre el computador y el entorno externo. Sistema de interconexión: es un mecanismo que proporciona la comunicación entre la CPU, la memoria principal y la E/S. Funciones que debe realizar Al iniciar el arranque, en la mayoría de computadores, cualquiera sea su tamaño o potencia, el control pasa mediante circuito cableado a unas memorias de tipo ROM, grabadas con información permanente (datos de configuración, fecha y hora, dispositivos, etc.) Después de la lectura de esta información, el circuito de control mandará a cargar en la memoria principal desde algún soporte externo (disco duro o disquete) los programas del sistema operativo que controlarán las operaciones a seguir, y en pocos segundos aparecerá en pantalla el identificador o interfaz, dando muestra al usuario que ya se está en condiciones de utilización. Si el usuario carga un programa con sus instrucciones y datos desde cualquier soporte de información, bastará una pequeña orden para que dicho programa comience a procesarse, una instrucción tras otra, a gran velocidad, transfiriendo la información desde y hacia donde esté previsto en el programa con pausas si el programa es inactivo, en las que se pide al usuario entradas de información. Finalizada esta operación de entrada, el ordenador continuará su proceso secuencial hasta culminar la ejecución del programa, presentando sus resultados en pantalla, impresora o cualquier periférico. Cada una de las instrucciones tiene un código diferente expresado en formato binario. Esta combinación distinta de unos y ceros la interpreta el <<cerebro>> del computador, y como está diseñado para que sepa diferenciar lo que tiene que hacer al procesar cada una de ellas, las ejecuta y continúa con la siguiente instrucción, sin necesidad de que intervenga el computador. El proceso de una instrucción se descompone en operaciones muy simples de transferencia de información u operaciones aritméticas y lógicas elementales, que realizadas a gran velocidad le proporcionan una gran potencia que es utilizada en múltiples aplicaciones. Realmente, esa información digitalizada en binario, a la que se refiere con unos y ceros, el computador la diferencia porque se trata de niveles diferentes de voltaje. Cuando se emplean circuitos integrados, los niveles lógicos bajo y alto, que se representan por ceros y unos, corresponden a valores muy próximos a cero y cinco voltios en la mayoría de los casos. Cuando las entradas de las puertas lógicas de los circuitos digitales se les aplica el nivel alto o bajo de voltaje, el comportamiento muy diferente. Por ejemplo, si se le aplica nivel alto conducen o cierran el circuito; en cambio si se aplica nivel bajo no conducen o dejan abierto el circuito. Para que esto ocurra, los transistores que constituyen los circuitos integrados trabajan en conmutación, pasando del corte a la saturación. 2. QUE ES LA UNIDAD DE CONTROL Y CUALES SON SUS PRINCIPALES FUNCIONES La UC se encarga de administrar todos los recursos de la computadora y dirigir todas las sus actividades controlando cada elemento y cada acción, y estableciendo la comunicación entre la ALU, la memoria principal y el resto de componentes. La UC dirige la información a las distintas unidades en el momento adecuado mientras el procesador ejecuta cada una de las instrucciones de un programa. De forma más específica, las funciones de la UC son: • Controlar la secuencia en que se ejecutan las instrucciones • Controlar el acceso del procesador (CPU) a la Memoria Principal • Interpretar las instrucciones • Regular las temporizaciones de todas las operaciones que ejecuta la CPU • Enviar señales de control y recibir señales de estado del resto de las unidades La UC detecta las señales eléctricas de estado (mediante el Bus de Control) procedente de los distintos módulos del ordenador, que le indican el estado, situación o condición de funcionamiento de cada módulo. Capta de la memoria las instrucciones del programa y, de acuerdo con el código de operación de la instrucción en curso y con las señales de estado, genera las señales de control necesarias para que las distintas unidades se pongan a funcionar para permitir la ejecución de la instrucción. La Unidad de control dispone de los siguientes elementos para realizar sus funciones: • Contador de Programa (CP): Contiene en cada momento la dirección de memoria donde se encuentra la instrucción siguiente a ejecutar. Al iniciar la ejecución de un programa toma la dirección de su primera instrucción. Incrementa su valor en uno automáticamente cada vez que acaba una instrucción, salvo que ésta sea de salto o de ruptura. • Registro de Instrucción (RI): Dedicado a memorizar temporalmente la instrucción que la UC está interpretando o ejecutando en ese momento. El programa que se está ejecutando reside en MP y la UC va buscando y captando las instrucciones secuencialmente, para interpretarlas y generar las órdenes de ejecución. La captación de una instrucción implica leerla de la memoria y almacenarla en el registro de instrucción. La instrucción que se está ejecutando lleva consigo un código de operación (CO) y unos operandos o la dirección de los mismos. • Decodificador (D): Es el que interpreta realmente la instrucción. Se encarga de extraer el CO de la instrucción en curso, lo analiza y emite las señales necesarias al resto de elementos para su ejecución a través del secuenciador. Figura 6. Esquema de la Unidad de Control. • Reloj (R): Proporciona una sucesión de impulsos eléctricos o ciclos a intervalos constantes, que marcan los instantes en que han de comenzar los pasos de que consta cada instrucción. De esta forma, se sincronizan todas las operaciones elementales de la computadora. La frecuencia de este reloj, medida en Megahercios - MHz - es un parámetro que determina en gran medida la velocidad de funcionamiento de la computadora. • Secuenciador (S): En este dispositivo se generan órdenes muy elementales (microórdenes) que sincronizadas por el reloj hacen que se vaya ejecutando poco a poco la instrucción que está cargada en el registro de instrucción. 3. QUE SON LAS INSTRUCCIONES MÁQUINA Es el sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de un computador el microcontrolador de un autómata (un PIC). Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. Un programa de computadora consiste en una cadena de estas instrucciones de lenguaje de máquina (más los datos). Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos. El lenguaje de máquina es específico de cada máquina o arquitectura de la máquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre ellas. Los circuitos microprogramables son sistemas digitales, lo que significa que trabajan con dos únicos niveles de tensión. Dichos niveles, por abstracción, se simbolizan con el cero, 0, y el uno, 1, por eso el lenguaje de máquina sólo utiliza dichos signos. Esto permite el empleo de las teorías del álgebra booleana y del sistema binario en el diseño de este tipo de circuitos y en su programación. 4. CUALES SON LAS CONDICIONES QUE UN JUEGO DE INSTRUCCIONES DE UN COMPUTADOR DEBE CUMPLIR Juego de instrucciones (instruction set) es repertorio de órdenes o mandatos de que dispone un el lenguaje de un ordenador particular o que componen un sistema de programación. Conocido también por el código de instrucciones, código de máquina y código de ordenes. La decisión de qué instrucciones es capaz de ejecutar un procesador es una de las más importantes y en buena medida es determinante en el rendimiento a la hora de ejecutar programas. Además, el juego de instrucciones y la arquitectura del procesador están interrelacionados. Por ejemplo, generalmente todas las instrucciones del lenguaje máquina de un procesador pueden utilizar los registros de propósito general, por lo que su número tiene un efecto directo en la codificación de instrucciones. La decisión de qué instrucciones incluir en un procesador está también influenciada por la complejidad que requiere su diseño. Si una instrucción realiza una operación muy compleja, el diseño de los componentes digitales necesarios para su ejecución puede resultar demasiado complejo. Los computadores son capaces de interpretar únicamente un conjunto de instrucciones simples. Este conjunto de instrucciones es el lenguaje ‘nativo’ o máquina (distinto en cada familia de computadores). Capacidades básicas de un ordenador. A partir de estas instrucciones se elaboran los programas. Propiedades Instrucciones: Realizar una única y sencilla función. La decodificación por parte de la UC debe ser sencilla. Nº fijo de operandos con una representación determinada. Instrucciones auto contenidas e independientes. o o o o o Operación a realizar Dirección de operandos Destino de resultados Ubicación de la siguiente instrucción Tipos de representación de operandos Características del juego de instrucciones Modos de direccionamiento Tipos de instrucciones Formato de las instrucciones. 5. EXPLICAR LOS PRINCIPALES GRUPOS DE INSTRUCCIONES MÁQUINA SEGÚN LA FUNCIÓN QUE REALIZAN Básicamente puede decirse que el bloque de instrucciones debe ser completo y eficaz de modo que podamos realizar todos los cálculos necesarios de forma más rápida y precisa posible. Una de las principales características de todo microprocesador es disponer de un buen conjunto de instrucciones que le den la mayor versatilidad posible. Se establecen los siguientes grupos, tipos o conjuntos de instrucciones: 1- ARITMETICAS: Son las instrucciones que realizan operaciones de tipo aritmético como sumas, restas, incrementos, decrementos, etc. Todas las operaciones de este tipo afectan al registro de estado, es decir a los flags. 2- MOVIMIENTO DE DATOS: Este tipo de instrucciones de movimiento o transferencia de datos, permiten realizar una copia del contenido de un registro o dirección de memoria (origen), en otro registro o dirección de memoria (destino), sin alterar el contenido del origen. 3- INTRUCCIONES LOGICAS: Realizan operaciones lógicas entre los operandos. Afectan a los flags según sea el caso y las operaciones se realizan bit a bit entre los datos. 4- INSTRUCCIONES DE COMPARACION: Son operaciones de restar o operaciones XOR entre dos operandos. Afectan a los flags pero no se almacena el resultado. 5- INSTRUCCIONES DE SALTO: Son instrucciones de modificación de secuencia que alteran la ejecución normal del programa, cargando el contador de programa con la nueva dirección en la que deseamos continúe ejecutándose el programa. Los saltos o bifurcaciones pueden ser: - CONDICIONALES: Cuando son controlados por el estado de un indicador o flag, y basándose en dicho estado se decide si se salta o no. - INCONDICIONALES: Cuando modifican el contador de programa sin condición previa. Dentro de cada uno de estos tipos, podemos encontrar además la particularidad de que al efectuar los saltos se realicen con posibilidad de retorno o no. 6- INSTRUCCIONES DE ENTRADA/SALIDA: Son en realidad instrucciones de transferencia, pero no entre registros o posiciones de memoria, sino con elementos periféricos que permiten la comunicación del microprocesador con el exterior. 7- INSTRUCCIONES DE CONTROL: Sirven para actuar internamente sobre el microprocesador, provocando detenciones en la ejecución del programa, etc. 8- INSTRUCCIONES DE BIT: Trabajan o tratan bits independientes. 9- INSRUCCIONES DE DESPLAZAMIENTO: Desplazan o rotan hacia la izquierda o hacia la derecha los bits de un registro (acumulador). 6. ENUMERAR LOS MODOS DE DIRECCIONAMIENTO O MODOS DE ACCESO A LA MEMORIA EN EL MICROPROCESADOR. Los modos de direccionamiento son aquellos procedimientos empleados por el microprocesador para poder acceder a determinados operandos, instrucciones, posiciones de memoria, registros de entrada/salida, etc. Por tanto el objeto del direccionamiento es un valor o dato que se encuentra en un lugar de la memoria, en algún registro o en la propia instrucción. Los diferentes modos de direccionamiento que pueda emplear un microprocesador le proporcionan un determinado nivel de potencialidad, permitiéndole manejar datos y realizar operaciones con mayor facilidad. En general podemos diferenciar los siguientes tipos o modos de direccionamiento: 1- DIRECCIONAMIENTO INMEDIATO: En este caso el objeto (un operando) se encuentra incluido en la instrucción, es decir, a continuación del código de la instrucción se añade el operando propiamente dicho. Las instrucciones que emplean este direccionamiento pueden ser de dos o tres bytes y son instrucciones de ejecución rápida y sencilla. 2- DIRECCIONAMIENTO IMPLICITO: Las instrucciones que emplean este modo de direccionamiento tienen un solo byte y es la propia instrucción la que indica que registro o dirección de memoria se va a utilizar en la operación. 3- DIRECCIONAMIENTO ABSOLUTO: En este caso las instrucciones incluyen la dirección de memoria donde se encuentra el dato con el que se va a operar. En este tipo de direccionamiento pueden darse tres supuestos: a) La instrucción apunta a un registro que contiene la información deseada (direccionamiento también llamado de registro). b) La instrucción contiene la dirección completa en la que se encuentra el dato, empleando para ello tres bytes. c) Cuando la instrucción se refiere solo a una parte de la memoria (página). En este caso el byte más alto lo suministra el contador de programa y el byte más bajo se expresa a continuación del código de instrucción, por tanto solo se emplean dos bytes (Este direccionamiento también se llama de página base). 4- DIRECCIONAMIENTO DIRECTO RELATIVO: La instrucción en este caso contiene un valor determinado al que podemos llamar V. La dirección total se calcula sumando a V el valor que esté almacenado en un registro al que haga referencia la instrucción. El valor de V puede ser tanto positivo como negativo. 5- DIRECCIONAMIENTO INDIRECTO: La instrucción contiene una dirección a la que llamaremos D1. El contenido de D1 no es el objeto directo de nuestra instrucción, sino que contiene otra dirección que llamaremos D2. Esta nueva dirección D2 es la que contiene el dato que sí es objeto de la instrucción. 7. CUALES SON LAS FASES QUE COMPONE UNA INSTRUCCIÓN Por cada instrucción del programa que está siendo ejecutado por el sistema, la UC recorre una serie de etapas que se dividen en dos fases: 1. Fase de búsqueda e interpretación: El objetivo de esta fase es obtener el código de la siguiente instrucción a ejecutar y que se encuentra almacenada en la memoria principal. Los pasos a grandes rasgos son: a. Recobrar la instrucción de la memoria del ordenador. La instrucción a recobrar se encuentra en la dirección señalada por el registro PC. El código de la instrucción leída pasa al IR donde será codificada. b. Interpretar el código de la instrucción. La instrucción que después de obtenida se guarda en el IR, pasa a través del decodificador el cual genera las señales de control asociadas al código de la instrucción. c. Se incrementa el PC en uno y así se apunta a la siguiente instrucción a ejecutar, siempre que no se trate de una instrucción de salto o bifurcación. 2. Fase de ejecución: Durante el ciclo de ejecución la instrucción interpretada es ejecutada enviando a cada componente las señales de control generadas. Los pasos son: a. Se obtienen los datos implicados en la instrucción si es necesario. b. Se ejecuta la instrucción. 8. REALIZAR UN CUADRO COMPARATIVO DE LAS DIFERENCIAS ENTRE UNA SUBRUTINA Y LAS EXCEPCIONES EN LAS INSTRUCCIONES MAQUINA CUADRO COMPARATIVO LAS EXCEPCIONES EN LAS SUBRUTINA INSTRUCCIONES MAQUINA Son el mecanismo estándar para informar de errores. Las aplicaciones y bibliotecas no deberían utilizar códigos de devolución para comunicar los errores. El uso de excepciones contribuye al diseño de un marco de trabajo coherente y permite la transmisión de información sobre errores desde miembros, como los constructores, que no pueden tener un tipo de valor devuelto. Las excepciones también permiten a los programas controlar el error o cerrarse, según corresponda. El comportamiento predeterminado es finalizar una aplicación si no controla la Una subrutina o subprograma, como idea general, se presenta como un algoritmo separado del algoritmo principal, el cual permite resolver una tarea específica. Un ejemplo sería: Programa principal instrucción 1 instrucción 2 ... instrucción N ... Subrutina NombreX ....... fin subrutinaX excepción iniciada. Para obtener una discusión detallada de las excepciones. 9. REALIZAR UN CUADRO SINÓPTICO DE LA EVOLUCIÓN PROCESADORES INTEL HASTA NUESTROS DÍAS DE LOS El mayor fabricante de procesadores para ordenadores personales (PC y compatibles) es Intel. Sus procesadores se toman como referencia, aunque existen otros fabricantes que han desarrollado sus propios procesadores basados en los diseñados por Intel. De forma general, cada nuevo procesador es compatible con el anterior (es decir, los programas desarrollados para un procesador antiguo "suelen" funcionar en el procesador nuevo. Aunque en un principio se introdujo la figura del "coprocesador matemático" separado para acelerar los cálculos, hoy día todos los procesadores tienen incorporado ese coprocesador. La tabla 1 muestra la evolución de los distintos procesadores Intel, su fecha de aparición, y algunas de sus principales características, que se detallan a continuación: 8086 (1978): Utiliza un bus de datos de 16 bits, por lo tanto puede trabajar directamente con datos de 16 bits consumiendo un único ciclo de reloj. Con esto se duplica la velocidad. Intel consiguió elaborar un procesador con 10 Mhz. 8088 (1979): Posee 16 bits, aunque el bus de datos es de 8 bits por lo que únicamente podrán trabajar con datos de 16 bits consumiendo dos ciclos de reloj. Puede direccionar hasta 1MB y la velocidad de reloj es de 4,77 Mhz. 80286 (1982): Compatible con los dos anteriores y con el mismo repertorio de instrucciones. La diferencia radica en el tipo de trabajo que desarrolla el procesador. Permite dos modos distintos: Modo Real, trabajando exactamente igual que el 8088 y 8086, y direccionando un máximo de 1 MB, y Modo Protegido reservando memoria para determinados programa de forma que pueda ejecutar varios programas a la vez (multitarea). La velocidad está comprendida entre 8 y 16MHz y se le puede añadir un coprocesador matemático para mayor rapidez en las operaciones matemáticas. 80386 (1983): Posee 32 bits, lo que implica un aumento en la velocidad de proceso ya que el procesador puede leer 32 bits en cada ciclo. Dispone de un mayor número de registros en el procesador, métodos de gestión de memoria más modernos que el 80286 y sigue siendo compatible con el 8086. La velocidad de proceso oscila entre 16MHz hasta 33MHz aunque algunos fabricantes han conseguido un procesador a 40MHz. Existen distintos tipos de procesadores 80386 en el mercado. 80386DX (del que hemos hablado), 80386SX (aunque el procesador es de 32b, el bus de datos es de 16b, por lo que la velocidad de proceso es menor, de 16 a 20MHz, es más barato), 80386SL: igual que el 80386 pero preparado para un menor consumo, se utiliza principalmente para portátiles. 80486 (1989): Se puede considerar una mejora del 80386. Integra dentro del procesador una caché de 8KBytes, un controlador y un coprocesador matemático, por lo que es más eficaz que procesadores inferiores a velocidad superior. Un 80386 a 33MHz es más lento que un 80486 a 25MHz, ya que el 80386 para mandar información a la caché o al coprocesador (si lo tiene) necesita pasar por el bus de datos, mientras que el 80486 al tenerlo todo integrado en el mismo procesador, el paso de datos entre sus elementos es tan rápido (aunque el ciclo sea de 25MHz) que su velocidad de cálculo es mayor que los 33MHz de 80386. Los tipos de procesadores de esta familia son 80486DX, 80486SX, 80486SL, 80486DX2 (incorpora la tecnología de doble reloj, es idéntico al 80486DX con la diferencia de que dobla la velocidad del reloj para realizar operaciones internas. Un 80486DX a 25MHz, trabaja tanto interna como externamente a 25MHz. Un 80486DX2 a 50MHz, trabaja externamente a 25MHz pero internamente a 50MHz). Pentium (1993): Posee un bus de datos de 64b, una caché interna de 16KByte y está diseñado bajo la técnica de bajo consumo. Se están desarrollando con velocidad a partir de 60 MHz, y ya existen procesadores de este tipo que funcionan a 200 MHz. Es capaz de ejecutar más de una instrucción por ciclo de reloj. Puede competir en cuanto a velocidad y prestaciones con verdaderas estaciones de trabajo. Pentium Pro (1995): Posee un bus de datos de 64b, una caché interna separada para datos e instrucciones de 8KB, y una caché secundaria integrada de 256KByte. Se han empezado a desarrollar con velocidades a partir de los 133 Mhz. Explota su rendimiento con sistemas operativos de 32 bits. Pentium II (1997): Los cambios fundamentales respecto a este último fueron mejorar el rendimiento en la ejecución de código de 16 bits, añadir el conjunto de instrucciones MMX y eliminar la memoria caché L2 del núcleo del procesador, colocándola en una tarjeta de circuito impreso junto a éste. Posee 32 KB de memoria caché L1 y 512 KB de memoria caché L2. Pentium III (1999): Existen 3 versiones, la última, de 2002 llega a 1.4 GHz. Pentium 4 (2000): Fue el primer microprocesador con un diseño completamente nuevo desde el Pentium Pro. Se comercializa, al igual que los demás procesadores de Intel, en una versión para equipos de bajo presupuesto (Celeron) y una orientada a servidores de gama alta (Xeon). Pentium M (2003): Fue originalmente diseñado para su uso en ordenadores portátiles. Se trata de una versión fuertemente modificada del diseño del Pentium III, optimizada para un consumo de potencia eficiente. Funciona a una frecuencia de reloj más baja que los procesadores Pentium 4 normales pero con un rendimiento similar. El procesador forma parte de la plataforma Intel Centrino. El último miembro de esta familia, previsto para la segunda mitad del 2006, poseerá dos núcleos y una memoria caché de 2 MB compartida por ambos núcleos. Pentium D (2005): Un chip Pentium D consiste básicamente en dos procesadores Pentium 4 en una única pieza de silicio. Los últimos procesadores Pentium D poseen 2MB de caché L2 por núcleo. Se cree que estos procesadores se utilizarán en los nuevos equipos de Apple Computer reemplazando al PowerPC. 10. REALIZAR UN CUADRO COMPARATIVO ENTRE LA ARQUITECTURA HARVARD Y LA ARQUITECTURA VON NEUMAN CUADRO COMPARATIVO ARQUITECTURA DE VON NEUMANN ARQUITECTURA HARVARD Se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través de un sistema de buses único (direcciones, datos y control). Dispone de dos memorias independientes una, que contiene sólo instrucciones y otra, sólo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias. La longitud de las instrucciones por la unidad de longitud de los tanto el microprocesador debe accesos a memoria para buscar complejas, está limitada datos, por lo El tamaño de las instrucciones no está hacer varios relacionado con el de los datos, y por lo tanto instrucciones puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa, logrando así mayor La velocidad de operación (o ancho de banda velocidad y menor longitud de programa, de operación) está limitada por el efecto de cuello de botella que significa un bus único El tiempo de acceso a las instrucciones puede para datos e instrucciones que impide superponerse con el de los datos, logrando una superponer ambos tiempos de acceso. mayor velocidad de operación. Permite el diseño de programas con código automodificable, práctica bastante usada en las antiguas computadoras que solo tenían acumulador y pocos modos de direccionamiento, pero innecesaria, en las computadoras modernas. Deben poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser necesario incluir en los programas, ya que estas tablas se encontrarán físicamente en la memoria de programa (por ejemplo en la EPROM de un microprocesador). 11. INVESTIGAR LAS CARACTERÍSTICAS DE LOS COMPUTADORES TIPO CISC Y LOS COMPUTADORES TIPO RISC (REPERTORIO DE INSTRUCCIONES) La arquitectura CISC ( Complex Instruction Set Computer ). ... Fue la primera tecnología de CPUs con la que la maquina PC se dio a conocer mundialmente. Adoptada por Intel, se coloco en las primitivas PCs (procesador 8088) que fueron lanzadas bajo la marca IBM el 12 de Agosto de 1981. Su sistema de trabajo se basa en la Microprogramación. Dicha técnica consiste en hacer que cada instrucción sea interpretada por un microprograma localizado en una sección de memoria en el circuito integrado del Microprocesador. A su vez, las instrucciones compuestas se decodifican para ser ejecutadas por microinstrucciones almacenadas en una Rom interna. Las operaciones se realizan al ritmo de los ciclos de un reloj. ... Considerando la extraordinaria cantidad de instrucciones que la CPU puede manejar, la construcción de una CPU con arquitectura CISC es realmente compleja. A este grupo pertenecen los microprocesadores de INTEL (celeron, Pentium II, Pentium III, Pentium IV) y AMD (Duron, Athlon). ... El origen de la arquitectura CISC se remonta a los inicios de la programación ubicada en los años 60 y 70. Para contrarrestar la crisis del software de ese entonces, empresas electrónicas fabricantes de hardware pensaron que una buena solución era crear una CPU con un amplio y detallado manejo de instrucciones, a fin de que los programas fueran más sencillos. Los programadores en consecuencia crearon multitud de programas para esa arquitectura. La posterior masificación de los PCs, permitió que el mercado fuera luego copado de software creado para procesadores CISC. ... Entre las bondades de CISC destacan las siguientes: 1. Reduce la dificultad de crear compiladores. 2. Permite reducir el costo total del sistema. 3. Reduce los costos de creación de Software. 4. Mejora la compactación de código. 5. Facilita la depuración de errores (debugging). ... La arquitectura RISC (RISC = Reduced Instruction Set Computer). ... Ha sido la consecuencia evolutiva de las CPU. Como su nombre lo indica, se trata de microprocesadores con un conjunto de instrucciones muy reducidas en contraposición a CISC. ¿Que ventaja se deriva de esta tecnología? Veamos: 1. La CPU trabaja mas rápido al utilizar menos ciclos de reloj para cumplir sus funciones (ejecutar instrucciones). 2. Utiliza un sistema de direcciones no destructivas en Ram. Eso significa que a diferencia de CISC, RISC conserva después de realizar sus operaciones en memoria los dos operandos y su resultado (total tres direcciones), lo que facilita a los compiladores conservar llenos los 'pipelines' (conductos) de la CPU para utilizarlos concurrentemente y reducir la ejecución de nuevas operaciones. 3. Cada instrucción puede ser ejecutada en un solo ciclo de la CPU (máxima velocidad y eficiencia). Considerada como una innovación tecnológica creada a partir del análisis de la primitiva arquitectura Cisc, RISC ha dado origen a la aparición de Microprocesadores poderosos cuya principal aplicación a la fecha (Octubre 2003), ha sido el trabajo en las grandes máquinas (servidores), aunque también han llegado a posicionarse en ciertas maquinas desktop (Apple), computadoras de mano, maquinas de juegos, y otros artefactos electrónicos domésticos. Ejemplos de tecnología RISC son los sistemas MIPS (Millions Instruction Per Second), 1992, SPARC = Scalable Processor ARChitecture de la empresa Sun (utiliza Solaris, sistema operativo de ambiente Unix), POWER PC, 1993, diseñado por Apple, Motorola e IBM, son utilizados en PCs de Apple, Macinstosh y mainframes de IBM (RS/6000 y AS/400) con sistemas operativos AIX y Windows NT. El PowerPC se conoce también como G3, G4, G5 (alcanza un billón de operaciones de punto flotante por segundo). Las arquitecturas enfrentadas: RISC vs CISC. Partiendo de lo expuesto, habría que evaluar las ventajas de ambas arquitecturas para tomar decisiones sobre la escogencia de una u otra a la hora de diseñar un sistema. Risc es más rápida, pero más costosa. Hablando en términos de costo hay que pensar que Risc utiliza mas la circuitería (comandos hardware o circuitos electrónicos) para ejecutar operaciones directas (el microprocesador esta mas libre de carga), en tanto que CISC utiliza micro código ejecutado por el microprocesador lo que la hace mas económica y mas lenta también (debido a la carga que soporta el microprocesador). Hay más software de uso general para la plataforma CISC. Pero la exigencia de la informática demanda periódicamente mayor velocidad y administración de espacio en Ram y discos duros, área en la que ambas arquitecturas deben seguir innovando. Dado que CISC es mas popular a nivel de PCs, las innovaciones en esta categoría son mas numerosas (nuevas interfaces, puertos, nuevos buses y velocidades de transmisión). Técnicamente hablando, el rendimiento en RISC basado en la menor cantidad de carga de instrucciones en el microprocesador compensa a la mayor cantidad de código en software que es necesario utilizar, por lo que su arquitectura se considera más potente que CISC. 12. INVESTIGAR LAS TABLAS DE VERDAD Y EL SÍMBOLO DE LAS COMPUERTAS LÓGICAS: OR, AND, NOT, NAND, NOR. Tablas de verdad Una tabla de verdad es una tabla que nos muestra la manera en que reacciona la salida de una compuerta o circuito lógico, en función de sus entradas. En la tabla se describen todas las posibles variables de entrada y las consiguientes variables de salida. O pe r a ci one s Lógic a s Las operaciones lógicas básicas son 3 OR (suma), AND (multiplicación) y NOT (negación), Tomando como base la operación que ejecutan, se le da a cada compuerta su nombre y símbolo en un diagrama, veamos con más detalle cada una de ellas: Operación OR (+) Tomemos una compuerta con dos entradas (Variables A y B), y una salida (Variable Z), al realizar la operación OR sobre las entradas A, B, el valor de la salida, Z sería: Z = A + B (o de manera gráfica) Z = A OR B La siguiente tabla representa la tabla de verdad para una compuerta tipo OR, y su símbolo gráfico. La tabla de verdad nos lleva a la conclusión de que si cualquiera de las entradas de una compuerta OR es ALTA, la salida también será ALTA; cualquier otra combinación nos dará una salida BAJA. Por lo que podríamos resumir la operación OR como: Si A o B son 1, Z será 1. Z = A + B se "traduciría" como Z es igual a A mas B. La operación OR es básicamente una suma, pero como sólo podemos tener 0 o 1, la suma de 1 + 1 será siempre igual a 1. Si nuestra compuerta tuviera más entradas, la operación sería la misma, por ejemplo: Z = A + B + C + D se "traduciría" como Z es igual a A mas B mas C mas D. Z = 1 + 1 +1 + 1 = 1 Operación AND Tomemos una compuerta con dos entradas (Variables A y B), y una salida (Variable Z), al realizar la operación AND sobre las entradas A, B, el valor de la salida, Z sería: Z = A * B (o de manera gráfica) Z = A AND B La siguiente tabla representa la tabla de verdad para una compuerta tipo AND, y su símbolo gráfico. La tabla de verdad nos lleva a la conclusión de que si todas las entradas de una compuerta AND son ALTAS, la salida también será ALTA, cualquier otra combinación nos dará una salida BAJA. Por lo que podríamos resumir la operación AND como: Si A y B son 1, Z será 1 Z = A * B se "traduciría" como Z es igual a A por B La operación AND es básicamente una multiplicación, pero como sólo podemos tener 0 o 1, la suma de 1 * 1 siempre será igual a 1. Si nuestra compuerta tuviera más entradas, la operación sería la misma, por ejemplo: Z = A * B * C * D se "traduciría" como: Z es igual a A por B por C por D. Z = 1 *1 * 1* 1 = 1 Operación NOT Tomemos una compuerta NOT, este tipo de compuertas sólo tienen una entrada, nuestra salida siempre será el opuesto a la entrada, al realizar la operación NOT en la entrada, el valor de X sería: Z = A Negada (o de manera gráfica) Z = A_ La siguiente tabla representa la tabla de verdad para una compuerta tipo AND, y su símbolo gráfico. La tabla de verdad nos lleva a la conclusión de que la salida de una compuerta NOT (Inversora) siempre será el nivel contrario a la entrada. Com bi na c i one s entre c ompue rta s Una vez comprendido los resultados que obtenemos con las operaciones de las compuertas lógicas básicas, podemos analizar las combinaciones básicas entre las compuertas. Cada una de las uniones de las tres compuertas básicas, nos dan como resultado dos compuertas más, OR con NOT, y AND con NOT (De hecho serían tres, faltando la unión NOT y NOT, pero esta unión directa no es útil si se tiene sólo una salida, ya que el resultado de la misma sería igual a la entrada). Otro tipo de compuertas combinadas (no tan básicas ya que incluyen más de dos compuertas) que pueden utilizarse son la compuertas OR y NOR EXCLUSIVAS, veamos cómo están conformadas. Compuerta NOR La siguiente imagen nos muestra el proceso de unión de las compuertas OR y NOT para darnos como resultado la compuerta NOR. La tabla de verdad nos revela la diferencia entre una compuerta OR y una NOR. La salida de una compuerta NOR es la inversión (negación) de la salida OR, en cualquier combinación de las entradas. Por lo tanto, las expresiones serían: NOTA: La línea que se encuentra encima de la operación A + B significa negación o inversión. Compuerta NAND La siguiente imagen nos muestra el proceso de unión de las compuertas AND y NOT para darnos como resultado la compuerta NAND. La tabla de verdad nos revela la diferencia entre una compuerta AND y una NAND. La salida de una compuerta NAND es la inversión (negación) de la salida AND, en cualquier combinación de las entradas. Por lo tanto, las expresiones serían: NOTA: La línea que se encuentra encima de la operación A + B significa negación o inversión. Compuertas OR y NOR Exclusivas Este circuito combinado especial es utilizado en su gran mayoría para la generación, muestreo y verificación de paridad para los circuitos digitales que trabajan con datos. La siguiente imagen nos muestra el proceso de unión de las compuertas AND, OR y NOT para darnos como resultado la compuerta OR Exclusiva. La siguiente tabla representa la tabla de verdad para una compuerta tipo OR Exclusiva (EX - OR). La tabla de verdad nos lleva a la conclusión de que si las dos entradas de una compuerta OR Exclusiva son de igual valor, la salida siempre será BAJA, y si son de diferente valor, la salida siempre será ALTA. Por lo que podríamos resumir la operación EX - OR como: Si A y B son 1, Z será 0 Si A y B son 0, Z será 0 Si A es 1 y B es 0, Z será 1 Si A es 0 y B es 1, Z será 1 La siguiente imagen nos muestra el proceso de unión de las compuertas AND, OR y NOT para darnos como resultado la compuerta NOR Exclusiva. La siguiente tabla representa la tabla de verdad para una compuerta tipo NOR Exclusiva (EX - NOR). La tabla de verdad nos lleva a la conclusión de que si las dos entradas de una compuerta OR Exclusiva son de igual valor, la salida siempre será ALTA, y si son de diferente valor, la salida siempre será BAJA. Por lo que podríamos resumir la operación EX - NOR como: Si A y B son 1, Z será Si A y B son 0, Z será 1 Si A es 1 y B es 0, Z será 0 Si A es 0 y B es 1, Z será 0 NOTA: Las compuertas Exclusivas OR y NOR sólo tienen dos entradas S í m bol os grá fic os a l te rna ti vos pa ra l as c ompue rta s l ógi c a s Hasta ahora, hemos visto tres compuertas básicas y dos uniones básicas de compuertas lógicas con sus símbolos "Normales", pero también existen otros símbolos alternativos para representar las mismas compuertas. La siguiente imagen nos muestra ambos símbolos para las cinco compuertas. Si observamos los símbolos con detenimiento, observaremos que al cambiar un símbolo común al símbolo alternativo hay dos grandes características comunes estas son: 1. Se invierten las entradas y salidas de cada símbolo común (es decir, si la salida tiene un pequeño círculo, se quita, si no lo tiene, se le pone) 2. Se intercambian los símbolos de las compuertas (es decir, los símbolos OR se cambian por AND, y los símbolos AND, se cambian por OR), La excepción a la regla es el inversor, el cuál no cambia de símbolo. También hay ciertos puntos que debemos tener en cuenta al usar los diferentes símbolos, como: 1. Los símbolos son equivalentes entre compuertas sin importar el número de entradas que tengan. 2. Se pueden diferenciar rápidamente los símbolos clásicos de los alternos, por la sencilla razón de que ningún símbolo clásico tiene círculo en las entradas, y todos los símbolos alternos tienen círculos en las entradas. 3. En el caso de las compuertas NAND y NOR, al ser compuertas de inversión, sus símbolos alternos no tendrán círculo en las salidas. Al contrario, las compuertas AND y OR, al ser compuertas no inversoras, sus símbolos alternos tendrán círculos en sus salidas. 13. INVESTIGAR LOS POSTULADOS LÓGICOS O LAS LEYES DE ÁLGEBRA DE BOOLE Se formulan los siguientes postulados (axiomas), que por definición no requieren de demostración. P.1. Existe un conjunto M de elementos sujetos a una relación de equivalencia, denotada por el signo = que satisfacen el principio de sustitución. P.2.a. Para toda (A, B) 0 M, A + B es una operación binaria denotada por el signo +, tal que (A+ B) 0 M. P.2.b. Para toda (A, B) 0 M, A C B es una operación binaria denotada por el signo C, tal que(A C B) 0 M. P.3.a. Existe un elemento 0 en M, tal que A + 0 = A para toda A 0 M. P.3.b. Existe un elemento 1 en M, tal que A C 1 = A para toda A 0 M. P.4.a. Para toda (A, B) 0 M; A + B = B + A P.4.b. Para toda (A, B) 0 M; A C B = B C A P.5.a. Para toda (A, B, C) 0 M; A + (B C C) = (A + B) C (A + C) P.5.b. Para toda (A, B, C) 0 M; A C (B + C) = (A C B) + (A C C) P.6.a. Para todo elemento A 0 M, existe un elemento, P.6.b. Para todo elemento A 0 M, existe un elemento, tal que: tal que: P.7. Existen por lo menos (A, B) 0 M, tal que: Se habrá observado cierta similitud entre estos postulados y los del álgebra ordinaria. Nótese sin embargo, que la primera ley distributiva P.5.a. no es válida en el álgebra ordinaria y que tampoco existe ningún elemento en dicha álgebra. También se notará que los postulados de Huntington se presentaron por pares. Una observación más detenida, muestra que existe una dualidad entre + y C, lo mismo que entre 1 y 0. Si el símbolo + se substituye por C y C por +, así como todos los 1 se sustituyen por 0 y todos los 0 por 1 en cualquiera de los postulados de cada par, el resultado es el otro postulado. A causa de esta dualidad fundamental, cada teorema que se presenta tendrá su dual que se obtendrá efectuando la sustitución mencionada; por tanto, la demostración de un teorema implica la validez de su teorema dual. Los teoremas se resumen en la siguiente tabla: 14. INVESTIGAR EL MÉTODO DE SIMPLIFICACIÓN DE FUNCIONES Por simplificación de una función lógica se entiende la obtención de su mínima expresión. A la hora de implementar físicamente una función lógica se suele simplificar para reducir así la complejidad del circuito. A continuación se indican los modos más usuales de simplificar una función lógica. Algebraico Para la simplificación por este método no sólo bastará con conocer todas las propiedades y teoremas del álgebra de Boole, además se debe desarrollar una cierta habilidad lógico-matemática que se adquiere fundamentalmente con la experiencia. Como ejemplo se simplificará la siguiente función: F = A’C’ + ABC + BC’ + A’B’C + A’BC Observando cada uno de los sumando podemos ver que hay factores comunes en los sumandos 2º con 5º y 4 con 5º que conllevan simplificación: F = A’C’ + BC’ + BC(A + A’) + A’C(B + B’) Note que el término 5º se ha tomado dos veces, de acuerdo con la propiedad que dice que A + A´ = 1. Aplicando las propiedades del álgebra de Boole, queda F = A’C’ + BC’ + BC + A’C Repitiendo nuevamente el proceso, F = A’( C’ + C) + B( C’ + C) = A’ + B No siempre las funciones son tan fáciles de simplificar como la anterior. El método algebraico, por lo general, no resulta cómodo para los no expertos, a los cuales, una vez simplificada una ecuación le pueden quedar serias dudas de haber conseguido la máxima simplificación. Gráfico de Karnaugh Este método consiste en formar diagramas de 2n cuadros, siendo n el número de variables. Cada cuadro representa una de las diferentes combinaciones posibles y se disponen de tal forma que se puede pasar de un cuadro a otro en las direcciones horizontal o vertical, cambiando únicamente una variable, ya sea en forma negada o directa. Este método se emplea fundamentalmente para simplificar funciones de hasta cuatro variables. Para un número superior utilizan otros métodos como el numérico. A continuación pueden observarse los diagramas, también llamados mapas de Karnaugh, para dos, tres y cuatro variables. Mapas de Karnaugh para dos, tres y cuatro variables Es una práctica común numerar cada celda con el número decimal correspondiente al término canónico que albergue, para facilitar el trabajo a la hora de plasmar una función canónica. Para simplificar una función lógica por el método de Karnaugh se seguirán los siguientes pasos: 1º) Se dibuja el diagrama correspondiente al número de variables de la función a simplificar. 2º) Se coloca un 1 en los cuadros correspondientes a los términos canónicos que forman parte de la función. 3º) Se agrupan mediante lazos los unos de casillas adyacentes siguiendo estrictamente las siguientes reglas: a) Dos casillas son adyacentes cuando se diferencian únicamente en el estado de una sola variable. b) Cada lazo debe contener el mayor número de unos posible, siempre que dicho número sea potencia de dos (1, 2, 4, etc.) c) Los lazos pueden quedar superpuestos y no importa que haya cuadrículas que pertenezcan a dos o más lazos diferentes. d) Se debe tratar de conseguir el menor número de lazos con el mayor número de unos posible. 4º) La función simplificada tendrá tantos términos como lazos posea el diagrama. Cada término se obtiene eliminando la o las variables que cambien de estado en el mismo lazo. A modo de ejemplo se realizan dos simplificaciones de una misma función a partir de sus dos formas canónicas: F = Σ3(0,2,3,4,7) = Π3(1,2,6) De acuerdo con los pasos vistos anteriormente, el diagrama de cada función quedará del siguiente modo: Simplificación de una función de tres variables ATENCIÓN: ERROR EN EL MAPA. EN EL PRODUCTO DE SUMAS, SE DEBEN MIRAR LOS CEROS, NO LOS UNOS. La función simplificada tendrá tres sumandos en un caso y dos productos en el otro. Si nos fijamos en el mapa correspondiente a la suma de productos, observamos que en el lazo 1 cambia la variable A (en la celda 0 es negada y en la 4 directa), en el lazo 2 es la C y en el lazo 3 vuelve a ser A. por lo tanto, la ecuación simplificada es: F = B’C’ + A’B + BC Razonando de modo similar en el mapa de productos de sumas, nos quedará: F = (B + C’)(A’ + B’ + C) Numérico de Quine-McClouskey El algoritmo de Quine-McClouskey permite la simplificación de funciones lógicas de cualquier número de variables y es el que se utiliza para diseñar aplicaciones informáticas en las que se necesite obtener funciones simplificadas. A continuación se indican los pasos a seguir en este método a partir de un ejemplo. 1º) Se expresa la función a simplificar en su forma canónica de suma de productos. Sea la siguiente función a simplificar: F = Σ4 (0,1,2,3,5,9,11,12,13,15) 2º) Se forma una tabla con el valor decimal de la combinación, el estado de las variables y el índice (número de unos que contiene el estado de las variables). Comb. Estado Índice 0 0000 0 1 0001 1 2 0010 1 3 0011 2 5 0101 2 9 1001 2 11 1011 3 12 1100 2 13 1101 3 15 1111 4 3º) Se agrupan las combinaciones cuyos estados difieren en una sola variable, sustituyéndola por un guión bajo (_). Las combinaciones utilizadas se marcan con un aspa (X). Hay que fijarse en las combinaciones cuya diferencia entre sus respectivos índices es la unidad. Agrupación de las combinaciones 4º) Se repite el proceso anterior las veces que sean necesarias y se van eliminando estados idénticos. Nueva agrupación de las combinaciones 5º) Se forma una tabla con las combinaciones finales y las no agrupadas. Se toman como filas las combinaciones finales y las no agrupadas y como columnas los valores decimales de dichas combinaciones. Cada celda que contenga el valor decimal de una combinación se marca con un aspa. A continuación nos fijamos en aquellas columnas con una sola aspa; sus combinaciones serán esenciales. Finalmente se toman aquellas combinaciones de los valores decimales no seleccionados, teniendo precaución de no tomar aquellas combinaciones cuyos valores decimales hayan sido ya tomados en otras combinaciones. La función simplificada final viene dada por las combinaciones esenciales y estas últimas. CONCLUSIÓN El computador recibe y envía la información a través de los periféricos por medio de los canales. La CPU es la encargada de procesar la información que le llega al computador. El intercambio de información se tiene que hacer con los periféricos y la CPU. Es un sistema complejo que puede llegar a estar constituido por millones de componentes electrónicos elementales. Esto que en le teoría parece tan fácil es bastante mas complicado en la práctica, ya que aparte de los bus de datos y de direcciones existen también casi dos docenas más de líneas de señal en la comunicación entre la CPU y la memoria, a las cuales también se acude. El microprocesador lo que hace es procesar ordenes sencillas, para procesar ordenes mayores deberemos construir un programa. Con un micro de 16 bits solo se puede direccionar hasta 64 k de memoria, pero ya sabemos que se debe acceder a más de ellas, esto lo logramos con el esquema de direccionamiento de 20 bits utilizado por el microprocesador Una vez seleccionada y analizada la instrucción deberá accionar los circuitos correspondientes de otras unidades, para que se cumplimente la instrucción, a través del secuenciador o reloj. El chip más importante de cualquier placa madre es el procesador BIBLIOGRAFÍA www.microsoft.com/isapi/ www.monografias.com/trabajos15/computadoras/htm http://canalhanoi.iespana.es/hardware/microprocesadores.htm www.neoteo.com/tabid/54/ID/690/title/puertas_logicas/Default.aspx?.. http://campus.virtual.uma.es/fundifo/matdoc/teoria/doc/tema2.pdf es.wikipedia.org/wiki/computador