REPÚBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD DEL ZULIA FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA ELÉCTRICA DEPARTAMENTO DE ELECTRÓNICA Y COMUNICACIONES PROF. CLAUDIO BUSTOS
MICROPROCESADORES MICROPROCESADORES INTEL Y MEMORIAS SEMICONDUCTORAS
Realizado por: Jaliesis Piña. CI 21.383.173 Orlando Nava. CI XX.XXX.XXX Maikel Gutiérrez. CI XX.XXX.XXX
Maracaibo, Octubre del 2016.
INDICE Introducción 1. Estudio de Arquitectura de Microprocesador Intel 32 bits (IA-32) 1.1 Historia del desarrollo de la computación. 1.2 Arquitecturas del computador y CPU. 1.3 Arquitectura y Evolución de los microprocesadores Intel. 1.4 Datos manejados por la Arquitectura IA-32. 1.5 Modos de Direccionamiento Direccionam iento de Memoria. 1.6 Lenguaje Ensamblador Introducci Introducción. ón. 2. Microprocesadores 8086 y 8088 de Intel 2.1 Arquitectura específica. 2.2 Datos manejados. 2.3 Interfaces de Entrada y Salida. 2.4 Ejemplos de Aplicación Introducción. 3. Memorias Semiconductoras 3.1Jerarquías de Memoria. 3.2 Clasificación / Empaques. 3.3 Interfaces. 3.4 Decodificación. 3.5 Sistemas de Memoria. Conclusión Bibliografía
INTRODUCCIÓN
El microprocesador es uno de los logros más sobresalientes del siglo XX. Su presencia ha comenzado a cambiar la forma de percibir el mundo e incluso a la humanidad. Cada vez se hace más difícil pasar por alto el microprocesador como otro simple producto en una larga línea de innovaciones tecnológicas. Ninguna otra invención en la historia se ha diseminado tan aprisa por todo el mundo o ha tocado tan profundamente tantos aspectos de la existencia humana. Hoy día existen casi 20,000 millones de microchips de alguna clase en uso. Es natural que el ser humano mire constantemente hacia el futuro, buscando información de hacia dónde se quiere ir. Por ello, no se puede menos que obtener un asombro de las provisiones que los científicos barajan para dentro de unos pocos años. Han pasado casi 45 años desde que Intel diseñara el primer microprocesador, siendo la compañía pionera en el campo de la fabricación de estos productos, y que actualmente cuenta con más del 90% del mercado. Un tiempo en el que todo ha cambiado enormemente, y en el que desde aquel i4004 hasta los actuales Intel® Core™ i3, i5 e i7 de séptima generación, se ha visto pasar varias generaciones de máquinas que ha entretenido y ha ayudado en el trabajo diario a la humanidad. A continuación continuación se observará observará una breve breve descripción sobre sobre la evolución evolución de la computación, así como también la arquitectura y el desarrollo que han tenido los microprocesadores Intel hasta la actualidad, con un mayor enfoque en los microprocesadores Intel 8086 y 8088 los cuales son unos de los más importantes, así mismo se dará a conocer el lenguaje ensamblador, ensamblador, ya que es el utilizado por los microprocesadores y es considerado como el más rápido por no necesitar ninguna conversión. De igual manera las memorias de tipo semiconductor, el cual hoy en día constituyen el sector más expansivo dentro de la tecnología de los semiconductores.
1. ESTUDIOS DE ARQUITECTURAS ARQUITECTURAS DE MICROPROCESAD MICROPROCESADOR OR INTEL INTEL 32 BITS (IA-32) En la creatividad de las antiguas civilizaciones griega y romana nació el Abaco como un instrumento mecánico para contar, como un dispositivo con cuentas ensartadas en varillas que a su vez están montadas en un marco rectangular. Mismos que representaban valores almacenados, posteriormente, fue la Pascalina inventada por Blaise Pascal (1623-1662) de Francia y la de Gottfried Wilhelm Von Leibniz (1646-1716) de Alemania. Con estas máquinas, los datos se representaban mediante las posiciones de los engranajes, y los datos se introducían manualmente estableciendo dichas posiciones finales de las ruedas, de manera similar a como se lee los números en el kilometraje de un automóvil. (a)
(b)
Figura 1. (a) Abaco, (b) Pascalina.
1.1.
Historia Del Desarrollo De La Computación
1.1.1. Primera Generación. La primera computadora fue la maquina analítica creada por Charles Babbage, profesor matemático de la Universidad de Cambridge en el siglo XIX. La idea que tuvo Charles sobre un computador nacido debido a que la elaboración de las tablas matemáticas era un proceso tedioso y propenso a errores. En 1823 el gobierno Británico lo apoyo para crear una máquina de diferencias, un dispositivo mecánico para efectuar sumas repetidas. Mientras tanto Charles Jacquard (francés), fabricante de tejidos, había creado un telar que podía reproducir automáticamente patrones de tejidos leyendo la información codificada en patrones de agujeros perforados en tarjetas de papel rígido. Al enterarse de este método Babbage abandono la máquina de diferencias y se dedicó al proyecto de la maquina analítica que se pudiera programar con tarjetas perforadas para efectuar cualquier calculo con una precisión de 20 dígitos. La tecnología de la época no bastaba para hacer realidad sus ideas.
En 1947 se construyó en la Universidad de Pennsylvania que fue la primera computadora electrónica, el equipo de diseño lo encabezaron los ingenieros John Mauchly y John Eckert. Esta máquina ocupaba todo un sótano pero tenía la capacidad de realizar cinco mil operaciones aritméticas en un segundo, proyecto, auspiciado por el departamento de Defensa de los Estados Unidos cuando se integró a ese equipo el ingeniero y matemático Húngaro John Von Neumann (1903- 1957), que es considerado el padre de las computadoras. El desarrollo de las computadoras suele registrarse por generaciones según dos criterios que deben cumplirse:
La forma en que están Construidas.
La forma en que el ser Humano se comunica con ellas.
Esta generación abarco la década de los cincuentas cuyas maquinas tenían las siguientes características: estaban construidas por medio de tubos de vacío y eran programadas en lenguaje de máquina, son grandes y costosas. En 1951 aparece en la UNIVAC (NI Vers Al Computer), fue la primera computadora comercial, que disponía de mil palabras de memoria central y podían leer cintas magnéticas, se utilizó para procesar el censo de 1950 en los Estados Unidos. Utilizaban tarjetas perforadas. 1.1.2. Segunda Generación. Se redujo su tamaño y creció su capacidad de procesamiento. También en esta época se empezó a definir la forma de comunicarse con las computadoras, que recibía el nombre de programación de sistemas. Su característica: Fueron construidas con circuitos de transistores y se programaron en nuevos lenguajes de alto nivel. Son de menor costo. Aparecen muchas compañías para su distribución. Sin embargo, el usuario final de la información no tenía contacto directo con las computadoras. 1.1.3. Tercera Generación En el año de 1960, surge la tercera generación de las computadoras. Se inaugura con la IBM 360 en abril de 1964. Las características de esta generación fueron su fabricación electrónica, que está basada en circuitos integrados y su manejo es por medio de los lenguajes de control de los sistemas operativos. A mediados de la década de 1970, aparecen en el mercado las computadoras computadoras de tamaño mediano, o minicomputadoras que no son tan costosas pero disponen de gran capacidad de procesamiento.
1.1.4. Cuarta Generación. Aquí aparecen los microprocesadores que es un gran adelanto de la microelectrónica, son circuitos integrados de alta densidad y con una velocidad impresionante. Su uso se extiende al mercado industrial. Aquí nacen las computadoras personales que han adquirido proporciones enormes y que han influido en la sociedad en general sobre la llamada (Revolución Informática). Entre 1984 y 1987 se vendieron alrededor de 60 millones de computadoras personales, por lo que no queda duda que su impacto y penetración han sido enormes y su presencia era ya ineludible en prácticamente todas las esferas de control gubernamental, militar y de la gran industria. 1.1.5. Quinta Generación. En vista de la acelerada marcha de la microelectrónica, la sociedad industrial se ha dado a la tarea de poner también a esa altura el desarrollo del software y los sistemas con que se manejan las computadoras. Surge la competencia internacional por el dominio del mercado de la computación. Japón lanzo en 1983 el llamado “Programa de la Quinta Generación de Computadoras”, con los objetivos explícitos de producir maquinas con innovaciones. Estados Unidos también persigue objetivos Semejantes, que pueden resumirse de la siguiente manera: Procesamiento en paralelo mediante arquitecturas y diseños especiales y circuitos de gran velocidad y manejo de lenguaje natural y sistemas de inteligencia artificial.
1.2.
Arquitecturas Del Computador Y CPU
1.2.1. Arquitectura del Computador La arquitectura de computadoras es el diseño conceptual y la estructura operacional fundamental de un sistema que conforma una computadora. Es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de una computadora, con especial interés en la forma en que la unidad central de proceso (CPU) trabaja internamente y accede a las direcciones de memoria. La arquitectura de una computadora explica la situación de sus componentes y permite determinar las posibilidades de un sistema informático, con una determinada configuración, pueda realizar las operaciones para las que se va a utilizar. La arquitectura básica de cualquier
ordenador completo está formado por solo 5 componentes básicos: procesador, memoria RAM, disco duro, dispositivos de entrada/salida y software.
Figura 2. Arquitectura del Computador.
Dispositivos de Entrada. Estos dispositivos permiten al usuario del computador introducir datos, comandos y
programas en el CPU. El dispositivo de entrada más común es un teclado similar al de las máquinas de escribir. La información introducida con el mismo, es transformada por el ordenador en modelos reconocibles. Los datos se leen de los dispositivos de entrada y se almacenan en la memoria central o interna. Los Dispositivos de Entrada, convierten la información en señales eléctricas que se almacenan en la memoria central. Los más comunes son:
Teclado: El teclado es un dispositivo eficaz para introducir datos no gráficos como rótulos de imágenes asociados con un despliegue de gráficas. Los teclados también pueden ofrecerse con características que facilitan la entrada de coordenadas de la pantalla, selecciones de menús o funciones de gráficas.
Ratón ó Mouse: Es un dispositivo electrónico que nos permite dar instrucciones a nuestra computadora a través de un cursor que aparece en la pantalla y haciendo clic
para que se lleve a cabo una acción determinada; a medida que el Mouse rueda sobre el escritorio, el cursor (Puntero) en la pantalla hace lo mismo. Tal procedimiento permitirá controlar, apuntar, sostener y manipular varios objetos gráficos (Y de texto) en un programa. A este periférico se le llamó así por su parecido con un roedor. Existen modelos en los que la transmisión se hace por infrarrojos eliminando por tanto la necesidad de cableado. Al igual que el teclado, el Mouse es el elemento periférico que más se utiliza en una PC.
Micrófono: Los micrófonos son los transductores encargados de transformar energía acústica en energía eléctrica, permitiendo, por lo tanto el registro, almacenamiento, transmisión y procesamiento electrónico de las señales de audio. Son dispositivos duales de los altoparlantes, constituyendo ambos transductores los elementos más significativos en cuanto a las características sonoras que sobre imponen a las señales de audio.
Scanner: Es una unidad de ingreso de información. Permite la introducción de imágenes gráficas al computador mediante un sistema de matrices de puntos, como resultado de un barrido óptico del documento. La información se almacena en archivos en forma de mapas de bits (bit maps), o en otros formatos más eficientes como Jpeg o Gif.
Cámara Digital: se conecta al ordenador y le transmite las imágenes que capta, pudiendo ser modificada y retocada, o volverla a tomar en caso de que este mal.
Cámara de Video: Graba videos como si de una cámara 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 simultáneamente 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 cámara de pequeñas dimensiones. Sólo es la cámara, no tiene LCD. Tiene que estar conectada al PC para poder funcionar, y esta transmite las imágenes al ordenador. Su uso es generalmente para videoconferencias por Internet, pero mediante el software adecuado, se pueden grabar videos como una cámara normal y tomar fotos estáticas; entre otras.
Dispositivos de Salida. Estos dispositivos permiten al usuario ver los resultados de los cálculos o de las
manipulaciones de datos de la computadora. El dispositivo de salida más común es la unidad de visualización (VDU, acrónimo de Video Display Unit), que consiste en un monitor que presenta los caracteres y gráficos en una pantalla similar a la del televisor. Los dispositivos de Salida más Comunes Son:
Pantalla o Monitor: Es en donde se ve la información suministrada por el ordenador. En el caso más habitual se trata de un aparato basado en un tubo de rayos catódicos (CRT) como el de los televisores, mientras que en los portátiles es una pantalla plana de cristal líquido (LCD).
Impresora: es el periférico que el ordenador utiliza para presentar información impresa en papel. Las primeras impresoras nacieron muchos años antes que el PC e incluso antes que los monitores, siendo el método más usual para presentar los resultados de los cálculos 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 PC ’s, las habrá después de éstos, aunque se basen en tecnologías que aún no han sido siquiera inventadas.
Altavoces: Dispositivos por los cuales se emiten sonidos procedentes de la tarjeta de sonido. Actualmente existen bastantes ejemplares que cubren la oferta más común que existe en el mercado. Se trata de modelos que van desde lo más sencillo (una pareja de altavoces estéreo), hasta el más complicado sistema de Dolby Digital, con nada menos que seis altavoces, pasando por productos intermedios de 4 o 5 altavoces.
Auriculares: Son dispositivos colocados en el oído para poder escuchar los sonidos que la tarjeta de sonido envía. Presentan la ventaja de que no pueden ser escuchados por otra persona, solo la que los utiliza.
Plotters (Trazador de Gráficos):Existen plotters para diferentes tamaños máximos de hojas (A0, A1, A2, A3 y A4); para diferentes calidades de hojas de salida (bond, calco, acetato); para distintos espesores de línea de dibujo (diferentes espesores de rapidógrafos), y para distintos colores de dibujo (distintos colores de tinta en los rapidógrafos).
Fax: Dispositivo mediante el cual se imprime una copia de otro impreso, transmitida o bien, vía teléfono, o bien desde el propio fax. Se utiliza para ello un rollo de papel que cuando acaba la impresión se corta.
Dispositivos de Proceso.
Tarjeta Madre: La placa base o tarjeta madre principal ( motherboard o mainboard en inglés), es una tarjeta de circuito impreso a la que se conectan los componentes que constituyen la computadora. Es una parte fundamental para cualquier computadora personal de escritorio o portátil. Tiene instalados una serie de circuitos integrados, entre los que se encuentra el circuito integrado auxiliar ( chipset ), que sirve como centro de conexión entre el microprocesador (CPU), la memoria de acceso aleatorio (RAM), las ranuras de expansión y otros dispositivos.
Figura 3. Tarjeta Madre.
Va instalada dentro de una carcasa o gabinete que por lo general está hecha de chapa y tiene un panel para conectar dispositivos externos y muchos conectores internos y zócalos para instalar componentes internos. La placa madre, además incluye un firmware llamado BIOS, que le permite realizar las funcionalidades básicas, como pruebas de los dispositivos, vídeo y manejo del teclado, reconocimiento de dispositivos y carga del sistema operativo.
Memoria RAM: Los módulos de RAM sirven como almacén temporal de los datos que necesita el microprocesador para trabajar. Esto significa que si pedimos que se lea un dato desde un disco duro, éste vacía la información requerida hacia la memoria RAM, y de ahí el micro la va tornando según lo vaya necesitando el programa de aplicación específico. Igualmente, cuando se desea grabar algo en el disco duro, el micro pone los datos en la RAM y de ahí se transportan hacia el disco duro. SDRAM: Se le llama memoria "síncrona", ya que trabaja a la misma velocidad que la tarjeta madre. Ya ha quedado atrasada en cuanto a velocidad de procesamiento de datos, ya que su velocidad máxima es de tan solo 133MHz. RDRAM; Memoria tipo Rambus, diseñada por la compañía del mismo nombre. Durante algún tiempo fue el tipo de memoria preferida por Intel, pero en la actualidad incluso dicha empresa la ha abandonado a favor de los módulos tipo DDR-DRAM. Su principal característica es que es mucho más veloz que la memoria SDRAM. DDR-DRAM: Módulos de RAM más empleados en la actualidad. Estos circuitos alcanzan velocidades de transferencia que van desde los 266MHz hasta los 800MHz, lo que garantiza un intercambio muy veloz de datos entre el micro y la memoria, y esto se traduce en un mejor desempeño general de la computadora. Además, es considerablemente más económica que la memoria RDRAM equivalente. lo que permite colocar grandes cantidades de RAM en un sistema sin que implique un desembolso excesivo.
Tipos de memoria RAM
DRAM: Dinamic-RAM, o RAM DINAMICA, ya que es "la original", y por tanto la más lenta. Usada hasta la época del 386, su velocidad típica es de 80 ó 70 nanosegundos (ns), tiempo éste que tarda en vaciarse para poder dar entrada a la siguiente serie de datos. Por ello, es más rápida la de 70 ns que la de 80 ns. Físicamente, aparece en forma de DIMM’s o de SIMM’s, siendo estos últimos de 30 contactos.
Fast Page (FPM): A veces llamada DRAM (o sólo "RAM"), puesto que evoluciona directamente de ella, y se usa desde hace tanto que pocas veces se las diferencia. Algo más rápida, tanto por su estructura (el modo de Página Rápida) como por ser de 70 ó 60 ns. Usada hasta con los primeros Pentium, físicamente aparece como SIMMs de 30 ó 72 contactos (los de 72 en los Pentium y algunos 486).
EDO:o EDO-RAM: Extended Data Output-RAM. Evoluciona de la Fast Page; permite empezar a introducir nuevos datos mientras los anteriores están saliendo (haciendo su Output), lo que la hace algo más rápida (un 5%, más o menos). Muy común en los Pentium MMX y AMD K6, con velocidad de 70, 60 ó 50 ns. Se instala sobre todo en SIMM’s de 72 contactos, aunque existe en forma de DIMM’s de
168.
SDRAM: Sincronic-RAM. Funciona de manera sincronizada con la velocidad de la placa (de 50 a 66 MHz), para lo que debe ser rapidísima, de unos 25 a 10 ns. Sólo se presenta en forma de DIMM’s de 168 contactos; es usada en los Pentium II de menos de 350
MHz y en los Celeron.
PC100: o SDRAM de 100 MHz. Memoria SDRAM capaz de funcionar a esos 100 MHz, que utilizan los AMD K6-2, Pentium II a 350 MHz y computadores más modernos; teóricamente se trata de unas especificaciones mínimas que se deben cumplir para funcionar correctamente a dicha velocidad, aunque no todas las memorias vendidas como "de 100 MHz" las cumplen.
PC133: o
SDRAM
de
133
MHz.
La
más
moderna
(y
recomendable).
SIMM’s y DIMM’s.
Se trata de la forma en que se juntan los chips de memoria, del tipo que sean, para conectarse a la placa base del ordenador. Son unas plaquitas alargadas con conectores en un extremo; al conjunto se le llama módulo. El número de conectores depende del bus de datos del microprocesador, que más que un autobús es la carretera por la que van los datos; el número de carriles de dicha carretera representaría el número de bits de información que puede manejar cada vez.
SIMM’s: 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 módulos iguales. Miden unos 8,5 cm (30 c.) ó 10,5 cm (72 c.) y sus zócalos suelen ser de color blanco.
Los SIMM’s de 72 contactos, más modernos, manejan 32 bits, por lo que se usan de 1
en 1 en los 486; en los Pentium se haría de 2 en 2 módulos (iguales), porque el bus de datos de los Pentium es el doble de grande (64 bits).
DIMM’s: más alargados (unos 13 cm), con 168 contactos y en zócalos generalmente
negros; llevan dos muescas para facilitar su correcta colocación. Pueden manejar 64 bits de una vez, por lo que pueden usarse de 1 en 1 en los Pentium, K6 y superiores. Existen para voltaje estándar (5 voltios) o reducido (3.3 V). Y se podrían añadir los módulos SIP, que eran parecidos a los SIMM pero con frágiles patitas soldadas y que no se usan desde hace bastantes años, o cuando toda o parte de la memoria viene soldada en la placa (caso de algunos ordenadores de marca). Otros tipos de RAM
BEDO (Burst-EDO): una evolución de la EDO, que envía ciertos datos en "ráfagas". Poco extendida, compite en prestaciones con la SDRAM.
Memorias con paridad: consisten en añadir a cualquiera de los tipos anteriores un chip que realiza una operación con los datos cuando entran en el chip y otra cuando salen. Si el resultado ha variado, se ha producido un error y los datos no son fiables. Dicho así, parece una ventaja; sin embargo, el ordenador sólo avisa de que el error se ha producido, no lo corrige. Es más, estos errores son tan improbables que la mayor parte de los chips no los sufren jamás aunque estén funcionando durante años; por ello, hace años que todas las memorias se fabrican sin paridad.
ECC: memoria con corrección de errores. Puede ser de cualquier tipo, aunque sobre todo EDO-ECC o SDRAM-ECC. Detecta errores de datos y los corrige; para aplicaciones realmente críticas. Usada en servidores y mainframes.
Memoria ROM: La memoria de sólo lectura, conocida también como ROM (acrónimo en inglés de read-only memory ), es un medio de almacenamiento utilizado en ordenadores y dispositivos electrónicos, que permite sólo la lectura de la información y no su escritura, independientemente de la presencia o no de una fuente de energía.
Los datos almacenados en la ROM no se pueden modificar, o al menos no de manera rápida o fácil. Se utiliza principalmente en su sentido más estricto, se refiere solo a máscara ROM -en inglés, MROM- (el más antiguo tipo de estado sólido ROM), que se fabrica con los datos almacenados de forma permanente y, por lo tanto, su contenido no puede ser modificado de ninguna forma. Sin embargo, las ROM más modernas, como EPROM y Flash EEPROM, efectivamente se pueden borrar y volver a programar varias veces, aun siendo descritos como "memoria de sólo lectura" (ROM). La razón de que se las continúe llamando así es que el proceso de reprogramación en general es poco frecuente, relativamente lento y, a menudo, no se permite la escritura en lugares aleatorios de la memoria. A pesar de la simplicidad de la ROM, los dispositivos reprogramables son más flexibles y económicos, por lo cual las antiguas máscaras ROM no se suelen encontrar en hardware producido a partir de 2007.
Procesador: Es el cerebro del sistema, encargado de procesar todos los datos e informaciones. A pesar de que es un dispositivo muy sofisticado no puede llegar a hacer nada por sí solo. Para hacer funcionar a este necesitamos algunos componentes más como lo son memorias, unidades de disco, dispositivos de entrada/salida y los programas.
Figura 4. Procesador.
El procesador o núcleo central está formado por millones de transistores y componentes electrónicos de un tamaño microscópico. El procesamiento de las tareas o eventos que este realiza va en función de los nanosegundos, haciendo que los miles de transistores que contiene este trabajen en el orden de los MHz. La información binaria se
introduce mediante dispositivos periféricos que sirven de interfaz entre el mundo exterior con el usuario. Estos periféricos lo que van a hacer será traducir la información que el usuario introduce en señales eléctricas, que serán interpretadas como unos y ceros, los cuales son interpretados de una manera más rápida por la computadora, ya que el lenguaje maquina utiliza el código binario para ser interpretado por el computador.
Dispositivos de Almacenamiento.
Disco Duro: Las unidades de discos rígidos o duros ( hard disk drive, HDD) tienen una gran capacidad de almacenamiento de información, pero al estar alojados normalmente dentro de la computadora (discos internos), no son extraíbles fácilmente. Para intercambiar información con otros equipos (si no están conectados en red) se tienen que utilizar unidades de disco, como los disquetes, los discos ópticos (CD, DVD), los discos magneto-ópticos, memorias USB o las memorias flash, entre otros.
El disco duro almacena casi toda la información que manejamos al trabajar con una computadora. En él se aloja, por ejemplo, el sistema operativo que permite arrancar la máquina, los programas, archivos de texto, imagen, vídeo, etc. Dicha unidad puede ser interna (fija) o externa (portátil), dependiendo del lugar que ocupe en el gabinete o caja de computadora.
Un disco duro está formado por varios discos apilados sobre los que se mueve una pequeña cabeza magnética que graba y lee la información. Este componente, al contrario que el micro o los módulos de memoria, no se pincha directamente en la placa, sino que se conecta a ella mediante un cable. También va conectado a la fuente de alimentación, pues, como cualquier otro componente, necesita energía para funcionar. Además, una sola placa puede tener varios discos duros conectados.
Las características principales de un disco duro son: Capacidad: Se mide en gigabytes (GB). Es el espacio disponible para almacenar secuencias de 1 byte. La capacidad aumenta constantemente desde cientos de MB, decenas de GB, cientos de GB y hasta TB.
Velocidad de giro: Se mide en revoluciones por minuto (RPM). Cuanto más rápido gire el disco, más rápido podrá acceder a la información la cabeza lectora. Los discos actuales giran desde las 4.200 a 15.000 RPM, dependiendo del tipo de ordenador al que estén destinadas. Capacidad de transmisión de datos: De poco servirá un disco duro de gran capacidad si transmite los datos lentamente. Los discos actuales pueden alcanzar transferencias de datos de 3 Gb por segundo.
También existen discos duros externos que permiten almacenar grandes cantidades de información. Son muy útiles para intercambiar información entre dos equipos. Normalmente se conectan al PC mediante un conector USB. Cuando el disco duro está leyendo, se enciende en la carcasa un LED (de color rojo, verde u otro). Esto es útil para saber, por ejemplo, si la máquina ha acabado de realizar una tarea o si todavía está procesando datos.
DVD: Las unidades de DVD-ROM son aparentemente iguales que las de CD-ROM, pueden leer tanto discos DVD-ROM como CD-ROM. Se diferencian de las unidades lectoras de CD-ROM en que el soporte empleado tiene hasta 17 GB de capacidad, y en la velocidad de lectura de los datos. La velocidad se expresa con otro número de la «x»: 12x, 16x... Pero ahora la x hace referencia a 1,32 MB/s. Así: 16x = 21,12 MB/s. Las conexiones de una unidad de DVD-ROM son similares a las de la unidad de CD-ROM: placa base, fuente de alimentación y tarjeta de sonido. La diferencia más destacable es que las unidades lectoras de discos DVD-ROM también pueden disponer de una salida de audio digital. Gracias a esta conexión es posible leer películas en formato DVD y escuchar seis canales de audio separados si disponemos de una buena tarjeta de sonido y un juego de altavoces apropiado (subwoofer más cinco satélites).
Blu-ray: El disco Blu-ray, conocido como Blu-ray o simplemente BD (en inglés: Bluray Disc ), es un formato de disco óptico de nueva generación, desarrollado por
la Blu-ray Disc Association (BDA), empleado para vídeo de alta definición (HD) y con mayor capacidad de almacenamiento de datos de alta densidad que la del DVD.
Unidad de memoria flash: La memoria flash es un tipo de memoria que se comercializa para el uso de aparatos portátiles, como cámaras digitales o agendas electrónicas. El aparato correspondiente o bien un lector de tarjetas, se conecta a la computadora a través del puerto USB o Firewire.
Unidad de tarjetas de memoria: El lector de tarjetas de memoria es un periférico que lee o escribe en soportes de memoria flash. Actualmente, los instalados en computadores (incluidos en una placa o mediante puerto USB), marcos digitales, lectores de DVD y otros dispositivos, suelen leer varios tipos de tarjetas.
Una tarjeta de memoria es un pequeño soporte de almacenamiento que utiliza memoria USB para guardar la información que puede requerir o no baterías (pilas), en los últimos modelos la batería no es requerida, la batería era utilizada por los primeros modelos. Estas memorias son resistentes a los rasguños externos y al polvo que han afectado a las formas previas de almacenamiento portátil, como los CD y los disquetes.
1.2.2. Arquitectura del CPU
El microprocesador es un circuito integrado que contiene todos los elementos necesarios para conformar una "unidad central de procesamiento" UCP, también es conocido como CPU (por sus siglas en inglés: Central Process Unit). En la actualidad este componente electrónico está compuesto por millones de transistores, integrados en una misma placa de silicio. Su importancia está en la ejecución de instrucciones almacenadas como números binarios organizados secuencialmente en la memoria principal. Las compañías más importantes en la fabricación de Microprocesadores son las siguientes:
IBM (USA) hoy por hoy hace los procesadores más rápidos pero también con más alto consumo de energía.
Freescale, antes Motorola (USA), los creadores de los primeros procesadores para las macs, ahora se dedican a hacer procesadores para diferentes compañías, y siguen innovando con sus RISC procesadores.
AMD ha logrado alcanzar a Intel, tanto en el poder como en el consumo de energía.
Intel, ha logrado disminuir el consumo de energia de los procesadores, lo que permite tener microprocesadores más rápidos y menos calientes.
Figura 5. Compañías fabricadoras de microprocesadores.
Recomendaciones y cuidados al sustituir un microprocesador
Lo primero que se debe tener presente antes de sustituir un microprocesador, es que no todos son intercambiables. Hoy en día, hay que tener mucho cuidado en el momento de elegir un circuito más moderno. Por lo que debemos considerar una serie de características críticas entre los elementos lógicos y físicos.
Figura 6. Tipos de Socket’s de conexión y sus características.
1.3.
Arquitectura y evolución de los microprocesadores Intel.
1.3.1. Arquitectura del Microprocesador INTEL. El microprocesador tiene una arquitectura parecida a la computadora digital. En otras palabras, el microprocesador es como la computadora digital porque ambos realizan cálculos bajo un programa de control. Consiguientemente, la historia de la computadora digital ayuda a entender el microprocesador. El hizo posible la fabricación de potentes calculadoras y de muchos otros productos. El microprocesador utiliza el mismo tipo de lógica que es usado en la unidad procesadora central (CPU) de una computadora digital. El microprocesador es algunas veces llamado unidad microprocesador (MPU). En otras palabras, el microprocesador es una unidad procesadora de datos. Entonces, en un microprocesador se pueden diferenciar varias partes:
Encapsulado: Es lo que rodea a la oblea de silicio en sí, para darle consistencia, impedir su deterioro (por ejemplo, por oxidación por el aire) y permitir el enlace con los conectores externos que lo acoplaran a su zócalo a su placa base.
Memoria cache: Es una memoria ultrarrápida que emplea el micro para tener a alcance directo ciertos datos que «predeciblemente» serán utilizados en las siguientes operaciones, sin tener que acudir a la memoria RAM, reduciendo así el tiempo de espera para adquisición de datos. Todos los micros compatibles con PC poseen la llamada cache interna de primer nivel o L1; es decir, la que está dentro del micro, encapsulada junto a él. Los micros más modernos (Pentium III Coppermine, Athlon Thunderbird, etc.) incluyen también en su interior otro nivel de caché, más grande, aunque algo menos rápida, es la caché de segundo nivel o L2 e incluso los hay con memoria caché de nivel 3, o L3.
Coprocesador matemático: Unidad de coma flotante. Es la parte del micro especializada en esa clase de cálculos matemáticos, antiguamente estaba en el exterior del procesador en otro chip. Esta parte está considerada como una parte lógica junto con los registros, la unidad de control, memoria y bus de datos.
Registros: Son básicamente un tipo de memoria pequeña con fines especiales que el micro tiene disponible para algunos usos particulares. Hay varios grupos de registros en cada procesador. Un grupo de registros está diseñado para control del programador y hay otros que no son diseñados para ser controlados por el procesador pero que la CPU los utiliza en algunas operaciones, en total son treinta y dos registros.
Memoria: Es el lugar donde el procesador encuentra las instrucciones de los programas y sus datos. Tanto los datos como las instrucciones están almacenados en memoria, y el procesador las accede desde allí. La memoria es una parte interna de la computadora y su función esencial es proporcionar un espacio de almacenamiento para el trabajo en curso.
Puertos: Es la manera en que el procesador se comunica con el mundo externo. Un puerto es análogo a una línea de teléfono. Cualquier parte de la circuitería de la computadora con la cual el procesador necesita comunicarse, tiene asignado un número de puerto que el procesador utiliza como si fuera un número de teléfono para llamar circuitos o a partes especiales.
1.3.2. Evolución del Microprocesador INTEL.
El 15 de Noviembre de 1971 Intel lanza su microprocesador 4004, el primer microprocesador. El Intel 4004 (i4004), un CPU de 4bits, fue el primer microprocesador en
un sólo chip, así como el primero disponible comercialmente. Con el Intel 4004 se conseguía situar en placas de 0,25 centímetros cuadrados un circuito integrado que contenía 2300 transistores.
Figura 7. Microprocesador 4004.
El 4004 fue diseñado originalmente por Intel para la compañía japonesa Busicom, para ser usado en su línea de calculadoras. Este primer procesador tenía características únicas para su tiempo, como la velocidad del reloj, que sobrepasaba los 100 KHz (kilo hertzio).
El 1 de Abril de 1972, Intel anunció una versión mejorada de su procesador anterior. Era el 8008, y su principal ventaja frente a otros modelos, fue poder acceder a más memoria y procesar 8 bits. La velocidad de su reloj alcanzaba los 740KHz. Fue el primer microprocesador de 8 bits, implantado con tecnología PMOS, contaba con 48 instrucciones, podía ejecutar 300.000 operaciones por segundo y direccionaba 16 Kbyte de memoria.
Figura 8. Microprocesador 8008.
En Abril de 1974 Intel lanzó el 8080 con una velocidad de reloj que alcanzaba los 2 Mhz. Al año siguiente, aparece en el mercado el primer ordenador personal, de nombre Altair, basado en la micro arquitectura del Intel 8080.. El procesador de este computador suponía multiplicar por 10 el rendimiento del anterior, gracias a sus 2 Mhz de velocidad. Este microprocesador también direccionaba 8 bits, tenía 78 instrucciones, su velocidad de operaciones era 10 veces mayor que la del 8008 y podía direccionar hasta 64 Kbytes de memoria.
En 1977 sale al mercado el Intel 8085, procesador de 8 bits, binariamente compatible con el anterior i8080, pero exigía menos soporte de hardware, así permitía sistemas de microordenadores más simples.
En junio de 1978 y 1979 hacen su aparición los microprocesadores 8086 y 8088 que pasaron a formar el IBM PC, equipo que salió al mercado en 1981. Los i8086 e i8088 se basaron en el diseño del Intel 8080 y el Intel 8085, y de hecho son compatibles a nivel de ensamblador con el i8080. Ambos tienen cuatro registros generales de 16 bits, que también pueden ser accedidos como ocho registros de 8 bits, con cuatro registros.
El 1 de Febrero de 1982, Intel daba un nuevo vuelco a la industria con la aparición de los primeros 80286 (el famoso ordenador”286”) con una velocidad entre 6 y 25 Mhz y un
diseño mucho más cercano a los actuales microprocesadores. El 286 tiene el honor de ser el primer microprocesador usado para crear ordenadores clones en masa. Gracias al sistema de “licencias cruzadas”, aparece en el mercado el primer fabricante de clónicos “IBM compatible”.
Figura 9. Microprocesador 80286.
El 16 de octubre de 1985 Intel lanza el i80386, con arquitectura de x86. Fue empleado como la unidad central de proceso de muchos computadores personales desde mediados de los años 80 hasta principios de los 90. También conocido como 386, con una velocidad de reloj entre 16 y 40 Mhz. Este producto se destacó principalmente por ser un microprocesador con arquitectura de 32 bits.
En 1988, Intel desarrolla un sistema sencillo de actualizar los antiguos 286 gracias a la aparición del 80386SX, que sacrificaba el bus de datos para dejarlo en uno de 16 bits, pero a menor costo. Estos procesadores irrumpieron con la explosión del entorno gráfico Windows, desarrollado por Microsoft unos años antes, pero que aún no había tenido la suficiente aceptación por parte de los usuarios.
Figura 10. Microprocesador 80386SX.
El 10 de abril de 1989 aparece el Intel 80486DX, de nuevo con tecnología de 32 bits y como novedad principal con la incorporación del caché de nivel 1 (L1) en el propio chip. Estas características aceleran enormemente la transferencia de datos de este caché al procesador.
En 1989 Intel lanza el i486, que alcanzó velocidades entre 16 y 100 MHz. Eran microprocesadores muy similares a los Intel 80386, con la principal diferencia que el i486 tiene un conjunto de instrucciones optimizado, una unidad de coma flotante y un caché unificado integrados en el propio circuito integrado del microprocesador y una unidad de interfaz de bus mejorada. Estas mejoras hacen que los i486 sean el doble de rápidos que un i386 y un i387 a la misma frecuencia de reloj.
El 22 de marzo del 1993 ve la luz por primera vez el “Pentium”, también conocido por
nombre clave P54C. Estos procesadores partían de una velocidad inicial de 60 MHz, llegando a los 200 MHz, algo que nadie había sido capaz de augurar unos años antes. Con una arquitectura real de 32 bits, se usaba de nuevo la tecnología de .8 micras, con lo que se lograba realizar más unidades en menos espacio. Poseía un bus de datos. El Pentium poseía una arquitectura capaz de ejecutar dos operaciones a la vez, gracias a sus dos pipeline de datos de 32 bits cada uno, uno equivalente al i486DX (u) y el otro equivalente al 486SX (u). Poseía un bus de datos de 64 bits, permitiendo un acceso de memoria de 64 bits. Procesadores Pentium:
El 27 de Marzo de 1995, el procesador Pentium Pro supuso para los servidores de red y las estaciones de trabajo un aire nuevo, tal y como ocurriera con el Pentium en el ámbito doméstico. El Pentium Pro es la sexta generación de arquitectura x86. Este producto buscaba reemplazar al Intel Pentium en toda gama de aplicaciones pero luego se centró como chip en el mundo de los servidores.
Figura 11. Procesador Pentium Pro.
El 7 de marzo de 1997 Intel lanza al mercado el Intel Pentium 2, con arquitectura x86, basado en una versión modificada del núcleo P6, usado por primera vez en el Intel Pentium Pro.
En comparación con su antecesor, este último mejora el rendimiento en la ejecución de código de 16 bits, añade el conjunto de instrucciones MMX y elimina la memoria caché de segundo nivel del núcleo del procesador, colocándola en una tarjeta de circuito impreso junto a éste. Poseía 32 KB de memoria caché de primer nivel, repartida en 16 KB para datos y otros 16 KB para instrucciones.
En 1998 aparece el primer procesador Xeon, con nombre Pentium II Xeon, que utilizaba tanto el chipset 440GX como el 450NX. En 2001, el Pentium III Xeon se reemplazó por el procesador Intel Xeon.
El 26 de febrero de 1999 llega el Pentium III, microprocesador de arquitectura i686. Las primeras versiones eran muy similares al Pentium II, siendo la diferencia más importante la introducción de las instrucciones SSE. Al igual que con el Pentium II, existía una versión Celeron de bajo presupuesto y una versión XEON para quienes necesitaban mayor poder de cómputo.
El 20 de noviembre de 2000 sale al mercado el Pentium 4, microprocesador de séptima generación, basado en la arquitectura X86 y con un diseño completamente nuevo. El 8 de agosto de 2008 Intel lanza el último Pentium 4, siendo sustituido por los Intel Core Duo.
Figura 11. Procesador Pentium 4.
En marzo de 2003 llega el Intel Pentium M, microprocesador con arquitectura x86 (i686), que representa un cambio radical para Intel, ya que no es una versión de bajo consumo del Pentium 4 sino una versión fuertemente modificada del diseño del Pentium III (que a su vez es una modificación del Pentium Pro). Está optimizado para un consumo de potencia eficiente, una característica vital para ampliar la duración de la batería de los computadores portátiles. Funciona con un consumo
medio muy bajo y desprende mucho menos calor que los procesa- dores de computadores de escritorio.
En la Primavera de 2005 Intel Developer Forum se introducen los procesadores Pentium D, que eran básicamente 2 procesadores Pentium 4 metidos en un solo encapsulado (2 núcleos Prescott para el Core Smithfield y 2 núcleos Cedar Mill para el core Presler).
Figura 12. Procesador Pentium D.
El 26 de junio de 2006, Intel anuncia la nueva generación: Xeon Dual Core con tecnología de doble núcleo. Este nuevo procesador brindaba un 80% más de rendimiento por vatio y en un 60% más rápido que la competencia. Además, la nueva generación ofrecía más del doble de rendimiento que la generación anterior de servidores basados en el procesador Intel Xeon, que era capaz de ejecutar aplicaciones de 32 y 64 bits.
El 2 de marzo de 2008 Intel anuncia la llegada de Intel Atom, nombre de una línea anteriormente denominada Silverthorne / Diamondville. Diseñados para un proceso de fabricación de 45 nm CMOS y destinados a usarse en dispositivos móviles de internet, ultra portátiles, teléfonos inteligentes y otros de baja potencia y aplicaciones.
En el 2010, Intel anunció los modelos Core i3, i5 e i7 de cuatro núcleos, familia de procesadores que cubren los requerimientos de proceso de todos los niveles de usuario, dependiendo de su perfil y estilo de vida.
En enero de 2011 Intel lanzó la segunda generación de la familia Core, tecnología que posee cambios en la memoria caché, mejorías en el modo Turbo Boost y perfeccionamientos en la propia arquitectura. Esta nueva familia tiene motor gráfico integrado para aumentar el desempeño de procesamiento y gráficos de un dispositivo. Así provee el perfecto balance entre diseño, performance y durabilidad.
1.4.
Datos manejados por la Arquitectura IA-32
Los microprocesadores Intel de la familia IA-32 manejan diversos tipos de datos. Los datos en los microprocesadores Intel se pueden almacenar en forma de enteros, BCD y decimales. Sin importar el tipo, existen unos formatos básicos utilizados por la familia IA-32 para el almacenamiento de estos datos y son: los Bytes (8 b), las palabras (16 b), las palabras dobles (32 b), las palabras cuádruples (64 b) y las palabras cuádruples dobles (128 b). Los datos manejados por estos microprocesadores serán almacenados en alguno de estos formatos dependiendo de lo grande o pequeño del dato que se desea representar o del tamaño con el que se desea operar. Organización de los datos en la memoria Los datos son almacenados en la memoria semiconductora en formatos. Estos formatos se pueden almacenar en la memoria a partir de cualquier dirección con excepción de la palabra doble cuádruple; las instrucciones que usan este formato de datos requieren que los datos estén alineados en la memoria. La alineación consiste en el almacenamiento de los datos en direcciones que sean divisibles entre el número de bytes que ocupa el dato. La organización de los datos en la memoria de los microprocesadores Intel se realiza colocando en las direcciones más bajas de memoria los datos menos significativos y en las direcciones más altas las partes más significativas de los datos.
Datos enteros: Los datos enteros se pueden almacenar en binario simple cuando se desea representar los enteros sin signo y en complemento a dos cuando se desea representar enteros con signo.
Datos decimales: En los microprocesadores modernos se utiliza la norma IEEE-754 para representar los números decimales. Hoy en día existen tres formatos distintos de esta norma para representar números decimales, el formato punto flotante de precisión simple, el de precisión doble y el de precisión doble extendida.
Datos BCD: En los microprocesadores Intel se pueden manejar los números BCD de forma directa. Tanto la unidad aritmético-lógica como la unidad punto flotante soportan operaciones en BCD. El almacenamiento de estos números puede ser en tres formas diferentes, formato desempacado, empacado y empacado en 80 bits.
1.5.
Modos de Direccionamiento de Memoria
Los modos de direccionamiento
podrían clasificarse en propios e impropios: en los
direccionamientos propios el operando está localizado en una dirección concreta de memoria, mientras que en los impropios en otros lugares tales como los registros del procesador, etc. Entre los modos de direccionamiento descritos en los párrafos siguientes, los tres primeros pueden considerarse impropios, mientras que los demás son direccionamientos propios.
Direccionamiento implícito En este modo, llamado también inherente, el operando se especifica en la misma dentición de la instrucción. El modo implícito se usa para hacer referencia a operandos de dos tipos:
Registros: En el caso de que el código de operación se refiera en particular a un registro.
Operando en la pila: En el caso de que la operación se realice siempre sobre el dato situado en la cima de pila. El primer caso es típico de las organizaciones de un solo acumulador. Generalmente en un ordenador de este tipo todas las instrucciones que actúan sobre el acumulador utilizan direccionamiento implícito. En el segundo caso están la mayoría de las instrucciones de los ordenadores con organización de pila. Estas operaciones llevan implícitos los operandos que son los elementos de la cima de pila.
Direccionamiento Inmediato En este modo es el operando el que figura en la instrucción no su dirección. En otras palabras el campo de operando contiene él mismo, sin transformación alguna, la información sobre la que hay que operar. Este modo es útil para inicializar registros o palabras de memoria con un valor constante.
Direccionamiento directo por registro Se mencionó anteriormente que el campo de dirección de una instrucción puede especificar una palabra de memoria o un registro del procesador. Cuando se da este último caso se dice que el operando está especificado con direccionamiento directo por reg o, en tal caso, el operando reside en uno de los registros del procesador que es selecciona por un campo de registro de k bits en la instrucción. Este campo de k bits
puede especificar o de 2k registros. Este modo es típico de los ordenadores con organización de registros de uso general Las ventajas de este modo son: El acceso a los registros es muy rápido, por tanto el direccionamiento por registro debe usarse en las variables que se usen con más frecuencia para evitar accesos a memoria que son más lentos, un ejemplo muy pico del uso de este direccionamiento son los índices de los bucles. El número de bits necesarios para especificar un registro es mucho más pequeño que el necesario para especificar una dirección de memoria, esto es debido a que el número de registros del procesador es muy pequeño comparado con el número de direcciones de memoria. Sin embargo, hay que tener en cuenta que en los ordenadores modernos el número de registros ha aumentado considerablemente.
Direccionamiento directo (o absoluto) Este es el modo de direccionamiento más sencillo. El campo de dirección no necesita transformación alguna para dar la dirección efectiva, es decir la función que transforma el campo de operando en la dirección efectiva es la identidad. Esto significa que el campo de operando es ya la dirección efectiva. Este direccionamiento sólo se usa en ordenadores pequeños en que el programa siempre se sitúa en la misma zona de memoria ya que dificulta la relocalización de los programas, es decir que el código de los programas no dependa de su situación en memoria. En ordenadores más grandes, este modo está reservado para acceder a direcciones del sistema, que normalmente se refieren a operaciones de entrada y salida, ya que estas direcciones no dependen del programa.
Direccionamiento indirecto En este modo el campo de operando de la instrucción indica la localización de la dirección efectiva del operando. El modo de direccionamiento indirecto puede adquirir diferentes formas según cuál sea el lugar donde se encuentre la dirección del operando. En general, todos los modos de direccionamiento tienen su versión indirecta que añade un eslabón más a la cadena del direccionamiento.
Este direccionamiento es útil cuando se trabaja con apuntadores ya que los apuntadores son variables que contienen las direcciones de los operandos, no los operandos mismos.
Direccionamiento por Base y Desplazamiento En este modo de direccionamiento se utiliza un elemento base y uno desplazamiento. Usos: este modo de direccionamiento puede ser utilizado con dos propósitos principales. Como un índice para manejar elementos de un arreglo, siempre que los elementos de dicho arreglo posean un tamaño diferente de 1, 2, 4 u 8 bytes. El elemento de “desplazamiento fijo” permite direccionar el inicio del arreglo mientras que el elemento “base” contiene el valor requerido para acceder al elemento deseado dentro del arreglo. Para obtener un campo de un registro, en cuyo caso la “base” contiene la dirección de inicio del registro y el elemento de “desplazamiento fijo” contiene la distancia estática
hasta el campo requerido en el registro.
Direccionamiento (Índice * Escala) y Desplazamiento En este modo existen solamente los elementos índice, factor de escala y el desplazamiento. Uso: este modo es muy eficiente para direccionar arreglos estáticos de datos en memoria cuyo tamaño sea de 2, 4 y 8 bytes. El elemento de “desplazamiento fijo” ubica el inicio del arreglo y el elemento índice
contiene el número (índice) del dato al que se desea acceder (el microprocesador aplica de forma automática el factor de escala para calcular la distancia real del inicio del arreglo hasta el elemento deseado utilizando el factor de escala especificado).
Modo Base + Índice + Desplazamiento: Es un modo complejo de direccionamiento que usa los elementos base, índice y desplazamiento. Uso: permite direccionar arreglos bidimensionales. El elemento de “desplazamiento fijo” indica el inicio del arreglo, y la base y el índice permiten calcular la dirección
del elemento deseado. Modo Base + (Índice * Escala)+ Desplazamiento: Es el modo de
direccionamiento más complejo. Uso: permite direccionar de forma eficiente a los elementos de una arreglo bidimensional de datos en donde los elementos tengan tamaño de 2, 4 u 8 bytes.
2. MICROPROCESADORES 8086 Y 8088 DE INTEL.
En Junio de 1978 Intel lanzó al mercado el primer microprocesador de 16 bits: el 8086. En Junio de 1979 apareció el 8088, el cual era internamente igual que el 8086 pero con bus de datos externo de 8 bits (para poder emplear circuitos de soporte al microprocesador más económicos). El primer fabricante que desarrolló software y hardware para estos chips fue la propia Intel. Los microprocesadores 8086/8088 fueron diseñados para trabajar con lenguajes de alto nivel, disponiendo de un soporte hardware con el que los programas escritos en dichos lenguajes ocupan un pequeño espacio de código y pueden ejecutarse a gran velocidad. Esta concepción, orientada al uso de compiladores, se materializa en un conjunto de facilidades y recursos, y en unas instrucciones entre las que cabe destacar las que permiten efectuar operaciones aritméticas de multiplicar y dividir, con y sin signo; las que manejan cadenas de caracteres, etc. Además, el diseño de Intel 8086 tenía como objetivo seguir la línea y mantener compatibilidad con los chips 8008, 8080 y 8085, de este modo los programadores no debían editar o rehacer código. En su momento, el 8086 junto con el 8088 fueron los microprocesadores más empleados dentro de su categoría, especialmente desde que IBM los adoptó para la construcción de su computadora personal. Muchos fabricantes de microordenadores utilizaron esta familia microcomputadora para fabricar equipos de tipo profesional. Hoy en día, la utilización del 8086 es más reducida, quedando principalmente orientado a la enseñanza, como base de los microprocesadores de la última generación. El desarrollo más notable para la familia 8086/8088 fue la elección de la CPU 8088 por parte de IBM (International Business Machines) cuando en 1981 entró en el campo de las computadoras personales. Esta computadora se desarrolló bajo un proyecto con el nombre "Acorn" (Proyecto "Bellota") pero se vendió bajo un nombre menos imaginativo, pero más correcto: "Computadora Personal IBM", con un precio inicial entre 1260 dólares y 3830 dólares según la configuración (con 48KB de memoria RAM y una unidad de discos flexibles con capacidad de 160KB costaba 2235 dólares). Esta computadora entró en competencia directa con las ofrecidas por Apple (basado en el 6502) y por Radio Shack (basado en el Z-80).
2.1 Arquitectura interna Fue uno de los primeros procesadores de 16 bits del mercado (introducido en junio de 1978), tenía registros de 16 bits y podía procesar una nueva clase de software usando instrucciones de 16 bits. El bus de direcciones era de 20 bits, permitiendo direccionar 1 Mb de memoria, lo cual suponía un contraste con la mayoría de los chips de la época, que tenían registros de 8 bits y un bus de direcciones de 16 bits, pudiendo direccionar como máximo 64 Kb de memoria RAM. Por desgracia, la mayoría de equipos del momento usaban procesadores de 8 bits que trabajaban con sistemas operativos y software de 8 bits. Por esto, las placas base y los diseños de circuitos estaban también orientados a los 8 bits. Crear una placa base y un sistema de memoria de 16 bits era costoso, elevando demasiado el precio del equipo en el que estuviera instalado el 8086. El coste era alto porque el 8086 necesitaba un bus de datos de 16 bits en lugar de uno de 8 bits, que era más barato. La mayoría de los sistemas disponibles por aquel entonces eran de 8 bits, y las bajas ventas del 8086 indicaban que la gente no estaba dispuesta a pagar el dinero necesario requerido para tener un diseño adecuado a los 16 bits. Por todo esto, Intel decidió introducir una variación del 8086 a la que llamó 8088. Básicamente, el 8088 eliminaba 8 de los 16 bits del bus de datos, haciendo el 8088 un chip de 8 bits con la velocidad de entrada y salida correspondiente. Sin embargo, seguía manteniendo los registros internos de 16 bits y los 20 bits del bus de direcciones, así que podía ejecutar software de 16 bits y era capaz de direccionar 1 Mbyte de memoria. Debido a estas razones, IBM eligió el 8088 para el IBM PC original, decisión que años más tarde fue criticada. Sin embargo, fue una sabia decisión. IMB decía que su nuevo PC tenía un microprocesador de 16 bits, ya que el 8088 era capaz de ejecutar software de 16 bits tan potente como el que podía ejecutar el 8086, sólo que un poco más lento. De hecho, los programadores pensaban en el 8088 como un chip de 16 bits, ya que era prácticamente imposible que un programador pudiera diferenciar un 8088 de un 8086. Todo esto permitió a IBM concebir un PC capaz de ejecutar software de 16 bits de nueva generación, con un diseño de hardware de 8 bits mucho más barato. Aunque el 8088 fue introducido en junio de 1979, el primer PC de IBM que lo utilizó apareció en agosto de 1981, dos años después. Hoy en día no pasa esto, pues casi al momento de salir un nuevo procesador, ya puede incorporarse a un
ordenador personal. El 8088 en el PC de IBM funcionaba a 4.77 Mhz y las instrucciones tardaban un promedio de 12 ciclos en ejecutarse.
2.1. Arquitectura específica. Los microprocesadores 8086 y 8088 se desarrollaron a partir de los microprocesadores anteriores, el 8080 que era un microprocesador de 8 bits, esto significa que el 8080 realizaba todas sus operaciones con bloques de 8 bits. La familia de microprocesadores 8086 y 8088 dispone de diversos coprocesadores como el 8089 de E/S, el 8087 coprocesador matemático de coma flotante para hacer que el sistema sea más potente. Tanto el 8086 como el 8088 disponen de un juego de 92 instrucciones y 7 modos de direccionamiento. El microprocesador 8086, que es el que se va a considerar en este trabajo, es un microprocesador de 16 bits que controla los ordenadores personales estándar de IBM. El 8086 difiere del 8088 solamente en un detalle: utiliza un bus de datos de 16 bits en vez del bus de 8 bits del 8088. A excepción de esa diferencia, se les considera prácticamente idénticos. Por ello, cada vez que se haga referencia a uno de ellos, se pondrá 8086/8088 para indicar que esa referencia es válida para ambos microprocesadores. En cuanto a estos tipos de microprocesadores contiene una estructura interna Para ayudar al funcionamiento de las instrucciones, para poder manejar variables en memoria y para su propio funcionamiento, el microprocesador dispone de una serie de “variables” internas de nombres
fijos que son los registros internos. En total hay 14 de estos registros, como se puede observar en la figura 13, cada uno de los cuales está pensado principalmente para alguna función concreta. Este microprocesador tiene una configuración tal que puede trabajar en dos modos diferentes:
Modo mínimo: trabajo de manera independiente
Modo máximo: trabaja con otros integrados, 8288 controlador de bus, 8087
coprocesador matemático y otros.
Figura 13. Registros internos de la CPU. 2.1.1. Registros de almacenamiento temporal
AX (registro Acumulador): Es el registro principal, es utilizado en las instrucciones de
multiplicación y división y en algunas instrucciones aritméticas especializadas, así como en ciertas operaciones de carácter específico como entrada, salida y traducción. Obsérvese que el 8086 es suficientemente potente para realizar las operaciones lógicas, la suma y la resta sobre cualquier registro de datos, no necesariamente el acumulador.
BX (registro Base): Se usa como registro base para referenciar direcciones de memoria
con direccionamiento indirecto, manteniendo la dirección de la base o comienzo de tablas o matrices. De esta manera, no es preciso indicar una posición de memoria fija, sino la número BX (así, haciendo avanzar de unidad en unidad a BX, por ejemplo, se puede ir accediendo a un gran bloque de memoria en un bucle).
CX (registro Contador): Se utiliza comúnmente como contador en bucles y operaciones
repetitivas de manejo de cadenas. En las instrucciones de desplazamiento y rotación se utiliza como contador de 8 bits.
DX (registro Dato): Se usa como registro auxiliar en operaciones aritméticas y como
contenedor de datos a la hora de usar instrucciones de comunicación de puertos. Estos cuatro registros, como todos los restantes, son de 16 bits, pero para permitir la realización de operaciones de tipo byte (8 bits) cada uno de estos cuatro registros está dividido en dos subregistros de 8 bits a los que se puede acceder de forma independiente (como se observa en la figura 14). Así, por ejemplo, los 8 bits inferiores de AX se llaman AL (L de low, bajo) y los 8 superiores AH (H de high, alto). En consecuencia, BX, CX y DX se dividen en BH/BL, CH/CL y DH/DL respectivamente. De esta forma se tiene que todas las instrucciones ensamblador
pueden operar con datos de 8 y 16 bits según lo que se precise. En los demás registros esta subdivisión no es posible.
Figura 14. Esquema básico de una CPU
2.1.2. Registros de segmento. Son cuatro registros de 16 bits usados para indicar direcciones de memoria (los conceptos de segmento y desplazamiento se explicarán en el apartado siguiente):
CS (Code Segment): Este registro es usado por el procesador, junto con el registro IP,
para conocer dónde está la instrucción actual que está siendo ejecutada.
DS (Data Segment): Se usa para indicar dónde están todos los datos del programa en
ejecución.
SS (Stack Segment): En este registro se indica al procesador dónde está la zona de
memoria que se usa como segmento de pila.
ES (Extra Segment): Es el registro que referencia al segmento extra, y se usa como
apuntador de memoria auxiliar en operaciones complejas donde se necesitan dos punteros de datos simultáneos.
2.1.3. Registros de la pila.
La pila es un área de memoria importante. Tiene, en vez de uno, dos registros que se usan como desplazamiento (offset) para apuntar su contenido. Se usan como complemento al registro SS y son:
SP (Stack Pointer): Es el registro que se reserva el procesador para uso propio en
instrucciones de manipulación de la pila.
BP (Base Pointer): Es un puntero de base, que apunta a una zona dentro de la pila
dedicada al almacenamiento de datos (variables locales y parámetros de las funciones en los programas compilados).
2.1.4. Registros índices. Se utilizan como desplazamientos complementarios para DS y ES a la hora de indicar la posición donde se encuentran los datos a los que se desea acceder. Son:
SI (Source index): Utilizado como registro de índice en ciertos modos de
direccionamiento indirecto, también se emplea para guardar un valor de desplazamiento en operaciones de cadenas.
DI (Destination index). Se usa en determinados modos de direccionamiento indirecto y
para almacenar un desplazamiento en operaciones con cadenas.
2.1.5. Registros de instrucción. Sólo hay uno, el registro IP (Instruction Pointer), es usado por la CPU para conocer la posición relativa a la base CS donde se encuentra la instrucción que se está ejecutando actualmente. Este registro no puede ser modificado directamente por parte del programador. Este puntero cambia su contenido automáticamente cada vez que se ejecuta una instrucción o cuando se salta a otro punto del programa mediante una instrucción de salto. 2.1.6. Registro de Banderas. Es un registro de 16 bits de los cuales 9 son utilizados para indicar diversas situaciones durante la ejecución de un programa. Los bits 0, 2, 4, 6, 7 y 11 son indicadores de condición, que reflejan los resultados de operaciones del programa; los bits del 8 al 10 son indicadores de control y el resto no se utilizan. Estos indicadores pueden ser comprobados por las
instrucciones de salto condicional, lo que permite variar el flujo secuencial del programa según el resultado de las operaciones.
Figura 15. Estructura de registro de bandera.
CF (Carry Flag): Indicador de acarreo. Su valor más habitual es lo que nos llevamos en
una suma o resta.
OF (Overflow Flag): Indicador de desbordamiento. Indica que el resultado de una
operación no cabe en el tamaño del operando destino.
ZF (Zero Flag): Indicador de resultado 0 o comparación igual.
SF (Sign Flag): Indica si se ha producido un resultado negativo o comparación menor.
PF (Parity Flag): Indicador de paridad. Se activa tras algunas operaciones aritmético-
lógicas para indicar que el número de bits a uno resultante es par.
AF (Auxiliary Flag): Para ajuste en operaciones BCD.
DF (Direction Flag): Indica a la CPU hacia donde se desplazan los punteros relativos en
operaciones repetitivas de cadenas de datos.
IF (Interrupt Flag): Si está a 1, indica que está permitida la generación de interrupciones
hardware que generan algunos periféricos, como la que realiza el teclado cada vez que una tecla es pulsada.
TF (Trap Flag): Es la bandera de atrape, usada en procesos de depuración de código. 2.2 Datos manejados El microprocesador 8088 contiene un múltiple conjunto de aplicaciones u operaciones
aritméticas y lógicas. Estas operaciones se ejecutan para bytes o palabras signadas o no signadas (enteros) y valores ASCII. Este procesador no dispone de ningún modo de hacer operaciones en punto flotante, si se le desea conceder esta habilidad, habría que añadirle un coprocesador matemático. El coprocesador matemático más común era el Intel 8087. Como ya se ha comentado anteriormente, todos los programas y datos se cargan en localidades de memoria específicas determinadas por sus direcciones. Esa información es almacenada como una secuencia de bytes de manera que cada uno de ellos tiene un número asociado correspondiente al lugar que ocupan. A ese número se lo denomina dirección de memoria.
Dado que el 8086/8088 tiene una longitud de palabra de direcciones de 20-bits es posible direccionar hasta 1.048.576 (=
10
2
) localidades distintas de memoria, es decir, podemos
almacenar hasta 1Mbyte de información. Sin embargo, la CPU sólo procesa palabras de 16 bits en sus registros de direcciones, como ya se ha visto en los apartados anteriores, y las direcciones de memoria son de 20 bits, por lo que una dirección no cabe en un registro. Por lo tanto, en principio, teóricamente sólo se podría acceder hasta el byte número 65.535 (216 , el número mayor posible de 16 bits) contando a partir del inicio, que es el byte 0.Para solucionar este inconveniente, se ideó el dividir la dirección de un byte en dos partes, denominadas segmento(o Base) y desplazamiento (u offset), ambos de 16 bits. Adoptada dicha medida, la dirección real de un byte en la memoria es: Dirección real = Valor base x 16 + valor desplazamiento De esta forma, se pueden direccionar el millón de bytes y se tiene acceso a toda la memoria del PC (a cada uno de los 1024 Kbytes). La notación más empleada para indicar la dirección de un par segmento – desplazamiento consiste en separar esos dos valores con dos puntos, utilizando notación hexadecimal (por ejemplo: 123h: 12h4, representa la dirección con segmento 123h y desplazamiento 12h). Esta forma de direccionar la memoria presentó un pequeño problema que ha entorpecido la elaboración de grandes programas, y no es otro que éste: como ya se ha visto se accede a memoria dando un valor de segmento y otro de desplazamiento; pues bien, si se mantiene el valor del segmento fijo (lo que ocurre en los programas) y se varía únicamente el valor del desplazamiento sólo es posible acceder a 65535 bytes (64 Kbytes), que es el valor máximo alcanzable con los 16 bits del registro de desplazamiento. Con esto, la información máxima que se puede almacenar en la memoria, modificando únicamente el desplazamiento, es de 64 Kb. A esta cantidad de almacenamiento se le denomina segmento de memoria . De este modo, un segmento es un área continua de memoria que puede tener 64K-bytes, que debe comenzar en una localidad de memoria cuya dirección sea límite de 16 bytes (cantidad denominada párrafo) y que puede solaparse con otros segmentos. Así, por ejemplo, la dirección AB00:0012, (es decir, 43776:8 con valores decimales), tiene la misma dirección real que AB01:0002 (es decir, 43777:2 con valores decimales), pues ambas equivalen a la dirección real 700.434 (valor que se obtiene al aplicar la fórmula anterior).
2.3 Interfaces de Entrada y Salida Los microprocesadores de la familia Intel se caracterizan por tener espacios separados para memoria y para entradas y salidas. Los dispositivos de E/S tienen 64 K de espacio para su selección. La línea IO/*M actúa como una línea adicional de direccionamiento y permite separar el mapa de memoria del de las interfaces de entrada / salida. Para el 8086/8088 existen dos instrucciones que hace que IO/*M valgan 1. Son IN y OUT que se corresponden biunívocamente con inport y outport del C. Las instrucciones IN y OUT transfieren datos entre dispositivos E/S y el acumulador del microprocesador (AL,AX o EAX).la dirección de E/S se almacena en el registro DX como dirección de 16 bits o en el byte(p8) que sigue inmediatamente al código de operación como dirección de E/S de 8 bits. Intel llama a la forma de 8 bits (p8) una dirección fija porque se almacena con las instrucciones INS y OUTS se emplean una dirección de E/S variable contenida en el registro DX. Siempre que se transfieren datos con una instrucción IN u OUT, la dirección de E/S, llamada a menudo número de puerto aparece en el canal de dirección. La interface externa de E/S la decodifica en la misma forma en que decodifica una dirección en la memoria. El número (p8) del puerto fijo de 8 bits aparece en las conexiones A7 hasta A0 del canal de dirección, junto con los bits A15 hasta A8 =0000 0000. Las direcciones por arriba de A15 son indefinidas para una instrucción de E/S. El número de variable de puerto de 16 bits (DX) aparece en las terminales de dirección A15 a A0. Esto significa que las primeras 256 direcciones de puerto E/S(00H hasta FFH) se accesan por las instrucciones de E/S fijas y variables, pero las direcciones de E/S de la 0100H hasta FFFH solo accesan con la dirección variable de E/S. En muchos sistemas para tareas específicas, solo se decodifican los 8 bits que están más a la derecha, con lo cual se reduce la cantidad de circuitos necesarios para la decodificación. En una computadora personal (PC), se decodifican los 16 bits del canal de direcciones y se emplean las localidades 00XXH hasta 03XXH para casi todos los dispositivos de E/S de la computadora. 2.4 Ejemplos de Aplicación
El procesador de texto IBM Displaywriter. Tres meses después del lanzamiento comercial del IBM 5120 COMPUTER SYSTEM, en
Junio de 1.980, IBM anuncia el DISPLAYWRITER. El nuevo sistema de IBM es un procesador de textos de sobremesa, de fácil uso y bajo coste, enfocado al ámbito empresarial, que va a
permitir a los usuarios elaborar documentos de gran calidad fácil y rápidamente, y con características que en ese momento constituyeron una novedad, como el justificado a izquierda, centro y derecha, el subrayado, la comprobación ortográfica y el guardado del documento para posterior examen o revisión. El DISPLAYWRITER podía contar, según modelos, con 160K, 192K o 224KB de memoria. Con una unidad de disquetes de aproximadamente 284.000 caracteres de capacidad y con la posibilidad de actualizar a una unidad de disco doble. Opcionalmente, también se le podía dotar de un sistema de comunicación para compartir información a través de la línea telefónica. El sistema básico, que consistía en una pantalla CTR monocromática con un teclado de máquina de escribir, una unidad lógica (cpu) montada en una carcasa similar a la del futuro IBM PC, un dispositivo de disquetes con capacidad de lectura y escritura en discos de 8″ capaces de
almacenar más de 100 páginas de texto y una impresora , tenía un precio de 7.895 dólares, precio que podía llegar a los 26.185 del sistema compuesto por tres pantallas, una impresora de alta velocidad con controlador de papel.
Figura 16. Procesador de texto IBM Displaywriter.
El AT&T 6300 PC (construido por Olivetti). La Olivetti M24 es un equipo que fue vendido por Olivetti en 1983 el uso de la CPU
Intel 8086. El sistema se vende en los Estados Unidos bajo su nombre original por Docutel / Olivetti de Dallas. AT & T y Xerox compró los derechos para rebadge el sistema como el y la serie AT & T 6300 Xerox 6060, respectivamente. (AT & T es dueño del 25 % de Olivetti en todo
este tiempo.) El AT & T 6300, lanzado en junio de 1984, fue el primer intento de AT & T para competir en el mercado de PC compatible
Figura 17. AT&T 6300 PC (construido por Olivetti).
3. MEMORIAS SEMICONDUCTORAS Las memorias semiconductoras (o de semiconductor) son aquellas memorias que utilizan circuitos integrados basados en semiconductores para almacenar información. Un chip de memoria de semiconductor puede contener millones de minúsculos transistores o condensadores. Desde 1972 el tipo de memoria universalmente empleada como memoria principal es la memoria de semiconductores. Las memorias de semiconductores almacenan la información en forma electrónica, mediante circuitos simples, que pueden ser construidos automáticamente y en forma masiva con la cada vez más sofisticada tecnología de integración de gran escala. Lamentablemente, éstas memorias son volátiles.
3.1.
Jerarqias De Memoria
La jerarquía de memoria es la organización piramidal de la memoria en niveles que tienen las computadoras. El objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad Los puntos básicos relacionados con la memoria pueden resumirse en:
Capacidad
Velocidad
Coste por bit La cuestión de la capacidad es simple, cuanto más memoria haya disponible, más podrá
utilizarse. La velocidad óptima para la memoria es la velocidad a la que el microprocesador puede trabajar, de modo que no haya tiempos de espera entre cálculo y cálculo, utilizados para traer operandos o guardar resultados. En suma, el coste de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible. Los tres factores compiten entre sí, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son válidas:
A menor tiempo de acceso mayor coste.
A mayor capacidad menor coste por bit.
A mayor capacidad menor velocidad.
Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria más rápida.
3.1.1. Niveles Jerárquicos Los niveles que componen la jerarquía de memoria habitualmente son:
Nivel 0: Registros del microprocesador o CPU
Nivel 1: Memoria caché
Nivel 2: Memoria primaria (RAM)
Nivel 3: Disco duro (con el mecanismo de memoria virtual)
Nivel 4: Cintas magnéticas (consideradas las más lentas, con mayor capacidad, de acceso secuencial)
Nivel 5: Redes (actualmente se considera un nivel más de la jerarquía de memorias)
3.2.
Clasificación
De lectura y escritura o RAM o
Estáticas (SRAM)
o
Dinámicas o con refresco (DRAM)
De sólo lectura ROM
3.2.1. RAM ESTÁTICAS (SRAM). MEMORIAS BIESTABLES El componente elemental de las memorias biestables (capaz de almacenar un bit) es el FlipFlop (FF), un dispositivo electrónico que es a su vez un elemento ampliamente utilizado en las computadoras en su conjunto, especialmente en los registros. Si bien existen varios tipos de FF, consideraremos solo uno de ellos, que utilizaremos en nuestras futuras descripciones: el Flip-Flop R-S. El diagrama básico de un FF de este tipo es el que muestra la siguiente figura:
Este circuito tiene, como observamos, dos entradas y dos salidas, aunque como veremos, estas últimas son sólo distintas expresiones de una misma cosa. En efecto, la salida, en realidad, es solo a; la otra salida b es su negación (o complemento lógico);
o
sea:
cuando
b
vale
1,
a
vale
0,
y
viceversa.
Aunque parezca a priori absurdo contar con estas salidas redundantes, su importancia en el diseño es fundamental.
La tabla de funcionamiento de este tipo de Flip-Flop se muestra en la figura.
Los valores de a y b en (1) indican que mientras no exista un pulso en algunas de las entradas, el FF mantendrá su estado. Los asteriscos en (2) indican que esta es una situación prohibida, cuyo resultado es impredecible. La entrada S se denomina así por la palabra inglesa Set. Un 1 lógico en esta entrada (identificado por un pulso normalmente positivo) hace que la salida a tome el valor 1, consecuentemente b = 0. Utilizando un divulgado anglicanismo, diremos que hemos reseteado el bit; en la práctica hemos grabado un 1 en dicho bit, el cual no se borrará al desaparecer la entrada de Set (pero sí en caso de quitarse alimentación al circuito).
La entrada R se denomina así por la palabra inglesa Reset. Un 1 lógico en esta entrada hace que la salida b tome el valor 1 (y a = 0). Diremos entonces que hemos grabado un cero. En el momento de producirse una entrada (S o R) en el FF, su salida adopta su estado en forma prácticamente instantánea. Las memorias biestables son las más rápidas que consideramos.
3.2.2. RAM Dinámicas. (DRAM) El componente elemental (capaz de almacenar un bit de información) es un condensador (capacitor)
que
denominaremos
celda
capacitiva
o
celda.
El contenido de información de cada celda queda determinado por la carga del capacitor: una tensión de 0 a 6 volts representa un cero, mientras que 6 a 12 volts indicará un uno lógico.
En la figura anterior muestra las curvas características de carga (grabación de un 1) y de descarga (grabación de un 0) en una celda.
Una de las características fundamentales de los capacitores es que pierden su carga con el tiempo. Si no se tomara en cuenta este fenómeno, la información almacenada iría "borrándose", haciéndola por lo tanto absolutamente no confiable. El proceso destinado a mantener en un nivel adecuado el nivel de carga de celda se denomina refresco.
Cada vez que se efectúa un acceso a una celda (para lectura o grabación) se realiza el refresco de esa posición. Pero no es suficiente, dado que ciertas posiciones de memoria pueden no ser accedidas por largo tiempo y, por lo tanto se necesita un proceso adicional de refresco. Mediante este proceso, cada celda es refrescada a breves intervalos de tiempo.
Una celda de memoria RAM dinámica es más simple que una estática y por lo tanto más pequeña. Por lo tanto, la RAM dinámica es más densa (más celdas por unidad de superficie) y más barata que la correspondiente SRAM. Por otra parte una DRAM requiere de una circuitería para el refresco. En memorias grandes, el coste fijo de la circuitería de refresco se ve más que compensado por el menor costo de las celdas DRAM. Así, las DRAM son preferidas para memorias grandes.
3.2.3. ROM: Memorias de Solo Lectura. Las memorias ROM almacenan habitualmente información pre-grabada por el fabricante y que no puede ser modificada por el usuario. (Ejemplos típicos son los intérpretes basic, los juegos de los family game, las rutinas del iocs, etc.) Este tipo de memorias tiene dos ventajas fundamentales: a) su gran velocidad de acceso b) su no volatilidad (no se "borra" al apagar la computadora)
Es muy simple imaginarse la estructura de una memoria ROM. Supongamos tener que generar la siguiente secuencia de valores: Que aunque es un simple contador de 0 a 9 (FIG. 1), puede ser considerada (con un poco de imaginación), una serie de instrucciones de un programa. Supongamos además que disponemos de una malla de conductores eléctricos como la de la FIG. 2: donde los puntos de cada intersección indican que los conductores horizontales y verticales están físicamente conectados.
Si por algún procedimiento eliminamos adecuadamente "algunas" de estas conexiones físicas, podemos obtener la malla siguiente.
3.2.4. PROM:(Programable Read Only Memory): Se puede advertir que, si alimentamos un "1" (por ej. 5 volts) en las "salidas" S0 S1 S2 S3 obtendremos la secuencia de "1" de nuestro contador (programa). Este es el principio de generación de una memoria ROM; basándonos en una matriz (malla original de conductores), como lo nuestra la figura anterior, el programador "quema" o elimina los enlaces no necesarios, con el fin de obtener a la salida una secuencia predeterminada con el simple método de alimentar sucesivamente cada una de las entradas. Existen equipos simples para la programación de memorias ROM, normalmente asociados a un microprocesador que facilita la operación.
Son ROM’s programables, es decir suministradas vírgenes (todas las posiciones en 0 o en 1). Son grabadas por el usuario mediante un equipo especial, convirtiéndose en ROMs, ya que sólo pueden grabarse una sola vez. Son unitariamente más caras que las ROMs pero dan una flexibilidad que estas no tienen.
3.2.5. EPROM: (Erasable Programable Read Only Memory) Son ROM’s programables y borrables. Son más caras que las PROM, pero pueden borrarse y volver a grabarse. El borrado se hace sacando los chips de sus zócalos en las plaquetas de memoria y exponiéndolos a luz ultravioleta de alta intensidad durante 15 o 20 minutos. Son muy útiles cuando el software que se carga en ella está en etapa de desarrollo. Desde el punto de vista de las computadoras son ROMs ya que esta solo puede leer y no escribir en ellas.
3.2.6. EEPROM: (Electricaly Erasable Programable Read Only Memory). Similar a la EPROM pero pueden ser borradas mediante elevadas corrientes y reprogramadas en milisegundos
3.3.
Decodificación
La decodificación de memoria es una aplicación típica de los dispositivos lógicos programables. En los microcomputadores, la comunicación entre la CPU y otros dispositivos como memorias y puertos se efectúa a través del bus del sistema. El bus de direcciones de un microcomputador se encuentra estrechamente relacionado con los decodificadores, ya que gracias a ellos es posible seleccionar los dispositivos internos del microcomputador y las posiciones de memoria para efectuar operaciones de lectura y escritura Los programas operan virtualmente con un tamaño físico de memoria principal mucho mayor que el realmente disponible. En estas máquinas hay que diferenciar, pues, entre el espacio de direcciones virtuales generado por la CPU y el espacio de direcciones físicas o reales existentes en memoria principal y determinado por el número de líneas del bus de direcciones. Sistemas de memoria compartida distribuida (DSM) – Mediante hardware:
• Multiprocesadores NUMA (acceso a memoria no uniforme) – Mediante software → Objetivo de la presentación (DSM Software) • Incluir software en SD para ofrecer DSM
Los sistemas de memoria compartida distribuida (DSM) representan la creación hibrida de dos tipos de computación paralelos: la memoria distribuida en sistemas multiprocesador y los sistemas distribuidos. Ellos proveen la abstracción de memoria compartida en sistemas con memorias distribuidas físicamente y consecuentemente combinan las mejores características de ambos enfoques. Debido a esto, el concepto de memoria compartida distribuida es reconocido como uno de los enfoques más atractivos para la creación de sistemas escalables, de alto rendimiento de sistemas multiprocesador VENTAJAS / DESVENTAJAS DE LA MEMORIA DISTRIBUIDA 3.3.1. Ventajas: Ilusión de una memoria física compartida, sin cuellos de botella. Estabilidad (podemos extender el sistema sin mucho problema). Menor costo.
3.3.2. Desventajas: Topología de red muy importante. Administración de la red. El acceso directo a memoria (DMA, del inglés direct memory access) permite a cierto tipo de componentes de una computadora acceder a la memoria del sistema para leer o escribir independientemente de la unidad central de procesamiento (CPU). Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido.
3.3.3. Secuencia De Eventos Una operación de E/S por DMA se establece ejecutando una corta rutina de inicialización. Consiste en varias instrucciones de salida para asignar valores iniciales a: