Professional Documents
Culture Documents
FACULTAD DE INGENIERÍA
Elaborado por:
Aguilar Briceño, Roberto Alfonzo. C.I: 23.765.606
Ibarra Vivas, Ricardo Amado C.I: 18.202.527
Hernández Gutiérrez, Leonardo José C.I: 24.735.983
Vílchez Montilla, Francisco Javier C.I: 23.737.713
Profesor:
Ing. Claudio Bustos
__________________________________ _________________________________
Hernández Gutiérrez, Leonardo José. Vílchez Montilla, Francisco Javier
C.I: 24.735.983 C.I: 23.737.713
Urb. Delicias, Urb. La Trinidad,
Municipio Cabimas, Municipio Maracaibo,
Estado Zulia. Estado Zulia.
Tlf:0412-0642667 Tlf:0412-5235211
Correo: leonardo2war@gmail.com Correo: franvil31@gmail.com
___________________
Ing. Claudio Bustos
Profesor
0
3
INDICE DE CONTENIDO
Pagina
INTRODUCCIÓN 5
3. Memorias Semiconductoras. 46
3.1. Jerarquías de memoria. 47
3.2. Clasificación/Empaques de las Memorias Semiconductoras. 51
3.2.1. Memoria RAM (Memoria de Acceso Aleatorio). 51
3.2.1.1. Tipos de memoria RAM. 52
3.2.2. Memorias ROM (Memoria solo de Lectura). 54
3.2.2.1. Tipos de memoria ROM. 55
3.3. Interfaz de las Memorias Semiconductoras. 58
3.4. Decodificación. 61
3.4.1. Decodificación de direcciones. 61
3.4.2. Decodificación total. 62
3.4.3. Decodificación Parcial. 63
3.5. Sistemas de Memoria. 64
3.5.1. La Organización de los Módulos. 65
3.5.2. Agrupación por Longitud de Celda. 67
3.5.3. Agrupación por Direcciones. 68
CONCLUSION. 71
REFERENCIAS. 73
5
INTRODUCCIÓN
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, El
microprocesador es uno de los logros más sobresalientes del siglo XX, y hoy día existen
casi 20,000 millones de microchips de alguna clase en uso.
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, se ha visto pasar varias generaciones de máquinas que han ayudado en
el trabajo diario a la humanidad.
De igual manera las memorias de tipo semiconductor, hoy en día constituyen el sector
más expansivo dentro de la tecnología de los semiconductores. En este trabajo se
expondrán las características más importantes de las memorias, su jerarquía, donde en
ésta se establece un orden en función de la capacidad de memoria y su velocidad, su
decodificación, y una clasificación general, que dará a su vez paso a una segunda
clasificación de las de tipo semiconductor en forma integrada.
6
Uno de los primeros dispositivos mecánicos para contar fue el ábaco, cuya historia se
remonta a las antiguas civilizaciones griega y romana. Este dispositivo es muy sencillo,
consta de cuentas ensartadas en varillas que a su vez están montadas en un marco
rectangular. Al desplazar las cuentas sobre varillas, sus posiciones representan valores
almacenados, y es mediante dichas posiciones que este representa y almacena datos.
A este dispositivo no se le puede llamar computadora por carecer del elemento
fundamental llamado programa.
Otro de los inventos mecánicos 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 leemos los números en el cuentakilómetros de un
automóvil.
Figura 1.
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 abandonó la máquina de diferencias y se
dedicó al proyecto de la máquina analítica que se pudiera programar con tarjetas
perforadas para efectuar cualquier cálculo con una precisión de 20 dígitos.
La tecnología de la época no bastaba para hacer realidad sus ideas. El mundo no
estaba listo, y no lo estaría por cien años más.
7
Figura 3. ENIAC
La EDVAC (Electronic Discrete Variable Automatic Computer) fue diseñada por este
nuevo equipo. Tenía aproximadamente cuatro mil bulbos y usaba un tipo
de memoria basado en tubos llenos de mercurio por donde
circulaban señales eléctricas sujetas a retardos.
La idea fundamental de von Neumann fue: permitir que en la memoria coexistan datos
con instrucciones, para que entonces la computadora pueda ser programada en
8
Todo este desarrollo de las computadoras suele divisarse por generaciones y el criterio
que se determinó para determinar el cambio de generación no está muy bien definido,
pero resulta aparente que deben cumplirse al menos los siguientes requisitos:
Algunas de estas computadoras se programaban con cintas perforadas y otras más por
medio de cableado en un tablero. Los programas eran hechos a la medida por un
equipo de expertos: analistas, diseñadores, programadores y operadores que se
manejaban como una orquesta para resolver los problemas y cálculos solicitados por la
administración.
Las computadoras de esta generación fueron: la Philco 212 (esta compañía se retiró del
mercado en 1964) y la UNIVAC M460, la Control Data Corporation modelo 1604,
10
seguida por la serie 3000, la IBM mejoró la 709 y sacó al mercado la 7090, la National
Cash Register empezó a producir máquinas para proceso de datos de tipo comercial,
introdujo el modelo NCR 315. La Radio Corporation of America introdujo el modelo 501,
que manejaba el lenguaje COBOL, para procesos administrativos y comerciales.
Después salió al mercado la RCA 601.
La IBM produce la serie 360 con los modelos 20, 22, 30, 40, 50, 65, 67, 75, 85, 90, 195
que utilizaban técnicas especiales del procesador, unidades de cinta de nueve canales,
paquetes de discos magnéticos y otras características que ahora son estándares (no
todos los modelos usaban estas técnicas, sino que estaba dividido por aplicaciones).
En 1964 CDC introdujo la serie 6000 con la computadora 6600 que se consideró
durante algunos años como la más rápida. En la década de 1970, la IBM produce la
serie 370 (modelos 115, 125, 135, 145, 158, 168). UNIVAC compite son los modelos
1108 y 1110, máquinas en gran escala; mientras que CDC produce su serie 7000 con el
modelo 7600. Estas computadoras se caracterizan por ser muy potentes y veloces.
11
A finales de esta década la IBM de su serie 370 produce los modelos 3031, 3033, 4341.
Burroughs con su serie 6000 produce los modelos 6500 y 6700 de avanzado diseño,
que se reemplazaron por su serie 7000. Honey - Well participa con su computadora
DPS con varios modelos.
Con el surgimiento de las computadoras personales, el software y los sistemas que con
ellas de manejan han tenido un considerable avance, porque han hecho más interactiva
la comunicación con el usuario. Surgen otras aplicaciones como los procesadores de
palabra, las hojas electrónicas de cálculo, paquetes gráficos, etc. También las industrias
del Software de las computadoras personales crece con gran rapidez, Gary Kildall y
William Gates se dedicaron durante años a la creación de sistemas operativos y
métodos para lograr una utilización sencilla de las microcomputadoras (son los
creadores de CP/M y de los productos de Microsoft).
12
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
15
monitor que presenta los caracteres y gráficos en una pantalla similar a la del televisor.
Los dispositivos de Salida más Comunes Son:
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.
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
17
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
18
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.
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)
Unidad central de proceso o UCP (conocida por sus siglas en inglés, CPU), circuito
microscópico que interpreta y ejecuta instrucciones.
Su funcionamiento es el siguiente:
Todos estos elementos están conectados entre sí por medio de un conjunto de circuitos
o conexiones nombrado bus. Todo su funcionamiento se basa en interpretar las señales
eléctricas como números y de esta forma poder operar sobre ellas, para lo cual hace
servir métodos como el álgebra de Boole. La forma en que estos circuitos se conectan y
trabajan puede ser de dos formas, con la arquitectura Von Neumann y la arquitectura
Harvard.
Los ordenadores con la arquitectura Von Neumann Constan de las siguientes partes:
Este modelo, que utilizan los micro controladores PIC, tiene la unidad central de proceso (CPU)
conectada a dos memorias (una con las instrucciones y la otra con los datos ) por medio de dos
buses diferentes
22
1.3.1. Arquitectura.
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.
Figura14.Microprocesador 4004.
24
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.
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.
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 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. El 386
añadió una arquitectura de 32 bits, con capacidad para multitarea y una unidad de
traslación de páginas, lo que hizo mucho más sencillo implementar sistemas operativos
que usaran memoria virtual.
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.
27
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
28
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 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 1998 aparece el primer procesador Xeon, con nombre Pentium II Xeon, que utilizaba
tanto el chipset 440GX como el 450NX. Los procesadores Pentium II Xeon se diseñan
para cumplir con los requisitos de desempeño en computadoras de medio-rango,
servidores más potentes y estaciones de trabajo (workstations).
29
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.
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.
Intel lanzó ésta gama de procesadores de doble núcleo y CPUs 2x2 MCM (módulo
Multi-Chip) de cuatro núcleos con el conjunto de instrucciones x86-64, basado en el la
nueva arquitectura Core de Intel. La microarquitectura Core regresó a velocidades de
CPU bajas y mejoró el uso del procesador de ambos ciclos de velocidad y energía
comparados con anteriores NetBurst de los CPU Pentium 4/D2.
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
31
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.
Intel lanzó sus procesadores que se conocen con el nombre en clave Sandy Bridge.
Estos procesadores Intel Core que no tienen sustanciales cambios en arquitectura
respecto a nehalem, pero si los necesarios para hacerlos más eficientes y rápidos que
los modelos anteriores. Es la segunda generación de los Intel Core con nuevas
instrucciones de 256 bits, duplicando el rendimiento, mejorando el desempeño en 3D y
todo lo que se relacione con operación en multimedia. Llegaron la primera semana de
Enero del 2011. Incluye nuevo conjunto de instrucciones denominado AVX y una GPU
integrada de hasta 12 unidades de ejecución
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.
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.
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.
siguientes, los tres primeros pueden considerarse impropios, mientras que los demás
son direccionamientos propios.
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.
Este modo combina las posibilidades de los modos directo e indirecto con registro.
Requiere que las instrucciónes tengan dos campos de dirección donde al menos uno de
ellos es explícito. El valor contenido en uno de los campos de dirección se utiliza
directamente. El otro campo de dirección o referencia implícita definida por el código de
operación se refiere a un registro cuyo contenido se suma al primer campo de dirección
para generar la dirección efectiva del operando.
Usos: este modo de direccionamiento puede ser utilizado con dos propósitos
principales:
El desplazamiento más el valor del SP nos dará la dirección del objeto al que queramos
hacer referencia. En ocasiones, si no existe C. de desplazamiento solo se trabajara con
la cima de la pila.
Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario, es mucho
más complejo que otros tipos estudiados más arriba.
Originalmente, este proceso se hacía a mano, usando para ello hojas donde se
escribían tablas de programa similares al ejemplo de la calculadora que vimos
anteriormente. Pero, al ser tan directa la traducción, pronto aparecieron los programas
Ensambladores, que son traductores que convierten el código fuente (en Lenguaje
Ensamblador) a código objeto (es decir, a Lenguaje de Máquina).
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
39
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.
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.
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.
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 36)). 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.
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):
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:
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.
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.
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.
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).
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.
46
Los procesadores Intel 8086 y 8088 son la base del IBM-PC, el cual fue un computador
personal del año 1981, formando parte de la quinta generación de computadores. El
8088 se utilizó un bus externo de 8bits para poder emplear circuitos de soporte al
microprocesador más económicos, en contraposición al bus de 16bits.
Estos, disponen de 92 tipos de instrucciones, que pueden ejecutar con hasta 7 modos
de direccionamiento en puertos de entrada y salida de hasta 64K (65536 puertos), por
lo que las maquinas construidas entorno a estos microprocesadores no suelen emplear
la entrada/salida por mapa de memoria.
3. MEMORIAS SEMICONDUCTORAS.
Las memorias semiconductoras 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.
Existen memorias de semiconductor de ambos tipos: volátiles y no volátiles.
Del mismo modo, la World Wide Web permite que los programas para acceder a
archivos remotos almacenados en servidores web en todo el mundo.
Los niveles se describen de la siguiente forma:
Nivel 1: Registros.
Es una memoria de tamaño reducido, de alta velocidad, que se coloca entre la memoria
principal (RAM) y el CPU y se presenta de forma temporal y automática para el usuario,
que proporciona acceso rápido a los datos de uso más frecuente.
La memoria caché es rápida, unas 5 ó 6 veces más que la DRAM (RAM dinámica). En
el caso de los microprocesadores, estos integran de 1 a 3 tipos de memoria caché
denominadas L1, L2, L3, que significan nivel 1, 2 y 3, respectivamente.
El nivel más bajo está formado por dispositivos en los que el medio donde se
almacenan los datos puede ser cambiado (CD, cintas, DVD, entre otros) lo que hace
51
que su tamaño sea “ilimitado” aunque su velocidad de acceso será la más lenta, sobre
todo si el medio no está insertado en la unidad.
Tipo de Modo de
Propósito Borrado Volatilidad
Memoria Escritura
Random
Access Memoria de Eléctrico a
Eléctricamente Volátil
Memory Lectura/Escritura nivel Byte
(RAM)
Read Only
Memory Máscaras
Memoria de sólo
(ROM) No Posible
Lectura
Programmable
ROM (PROM)
Erasable
Luz UV a nivel
PROM
chip
(EPROM) No Volátil
Eléctrico a
Memoria Flash Eléctricamente
Memoria sobre nivel bloque
Electrically todo de Lectura
Erasable Eléctrico a
PROM nivel byte
(EEPORM)
Tabla 1. Clasificación de memoria
Son memorias que permiten accesos de lectura y escritura de datos e instrucciones por
parte del procesador o cualquier otro dispositivo con capacidad para ello. Son memorias
volátiles. La memoria principal de un ordenador es RAM, ya que la ROM; al no permitir
la escritura, tiene un uso limitado. El sistema operativo, los programas y datos del
usuario se almacenan en memoria RAM para poder ser usados por el procesador. Se
utiliza como memoria de trabajo de computadoras para el sistema operativo, los
programas y la mayor parte del software.
tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden
para acceder (acceso secuencial) a la información de la manera más rápida posible.
Asíncronas:
a) FPM: Para acelerar el acceso a la DRAM, existe una técnica, conocida como pagi
nación, que permite acceder a la información ubicada en una misma columna,
modificando únicamente la dirección en la fila, y evitando de esta manera, la repetición
del número de columna entre lecturas por fila. Este proceso se conoce como DRAM
FPM (Memoria en Modo Paginado). El FPM alcanza tiempos de acceso de unos 70 u
80 nanosegundos, en el caso de frecuencias de funcionamiento de entre 25 y 33 MHz.
b) EDO: La DRAM EDO (Salida de Información Mejorada, a veces denominada "híper‐
página") se introdujo en 1995. La técnica utilizada en este tipo de memoria implica
direccionar la columna siguiente mientras paralelamente se está leyendo la información
de una columna anterior. De esta manera, se crea un acceso superpuesto que permite
ahorrar tiempo en cada ciclo. El tiempo de acceso de la memoria EDO es de 50 a 60
nanosegundos, en el caso de una frecuencia de funcionamiento de entre 33 y 66 MHz.
c) BEDO (Burst EDO): Es un tipo más rápido de EDO que mejora la velocidad usando
un contador de dirección para las siguientes direcciones y un estado 'pipeline' que
solapa las operaciones. Poco extendida, compite en prestaciones con la SDRAM.
Síncronas:
53
SRAM sincrónica:
Al igual que en los sistemas sincrónicos, este tipo de memoria tiene una entrada de
reloj, la cual le permite operar en sincronía con otros dispositivos. Esta característica no
aporta mejores beneficios, sin embargo, simplifica enormemente el diseño de sistemas
de alta prestaciones, ya que una única señal controla todos los dispositivos
involucrados. La ventaja de estas memorias viene proporcionada por lo que se podría
llamar su funcionamiento automático, guiado por la señal de reloj, por lo que no es
necesario ocuparse de generar las señales de control.
54
De esta forma se evita el tiempo de propagación de las señales por el bus y el tiempo
de decodificación de la dirección. El número de palabras leídas o escritas en una
ráfaga, viene limitado por el tamaño del contador interno de la memoria.
SRAM pipeline:
Con los dos tipos de memorias anteriores se consigue el acceso a posiciones
consecutivas de forma rápida. Para mantener esta velocidad cuando se cambia de
secuencia, las memorias pipeline incluyen un buffer para almacenar la dirección y los
datos actuales proporcionados por la memoria. De esta forma, se puede enviar la nueva
dirección antes de terminar la lectura, consiguiendo así que la CPU no espere la
finalización del acceso a una posición de memoria para generar la nueva dirección.
Los programas tienen correcciones y mejoras constantes, por lo que es poco práctico (y
poco rentable) tener que producir nuevas ROMs cada vez que hay un cambio. Por ello
se fueron desarrollando con el tiempo nuevos circuitos que dieran respuesta a esta
situación: por un lado fueran memorias permanentes (no perdieran su contenido al
quedar sin energía eléctrica) y por otro pudiera ser modificado su contenido de alguna
forma.
M-ROM:
La memoria ROM de máscara se caracteriza porque la información contenida en su
interior se almacena durante su fabricación y no se puede alterar. El proceso de
fabricación es muy caro, pero se hacen económicas con la producción de grandes
cantidades. La programación se realiza mediante el diseño de un negativo fotográfico
llamado máscara donde se especifican las conexiones internas de la memoria y son
ideales para almacenar microprogramas, sistemas operativos, tablas de conversión y
caracteres.
Es así que surgieron las EEPROM (Electrical EPROM), es decir, una EPROM cuyo
proceso de borrado se hace eléctricamente y puede efectuarse sin retirar el circuito
integrado del sistema. Posee otra diferencia importante con la EPROM: una EEPROM
normalmente tiene la capacidad de borrar cada bit en forma individual (también hay
implementaciones que borran una palabra completa en cada operación de borrado).
Una vez estudiados los componentes que conforman la memoria principal del
microprocesador, es necesario que se ensamblen estos componentes en forma correcta
a objeto de producir un sistema de memoria adecuado para un microprocesador. Debe
considerarse la cantidad de memoria requerida y el método óptimo de conectar a toda
la memoria del microprocesador. Por esto se incluye en este inciso, la solución de
problemas de conexión de la memoria al microprocesador mediante una interfaz
adecuada, específicamente para la familia de los microprocesadores Intel.
Figura 34. Ejemplo de una Memoria RAM para aplicar diferentes interfaces.
activarse al recibir una señal OE o WE, y para ello activará la señal CS (Chip
Selecto CE, Chip Enable) de la pastilla o pastillas que deban responder a la
operación. Es decir, que esta señal le indica a la pastilla si debe responder o no a
la operación de lectura/escritura que se arranca.
Tensión de alimentación (Vcc): Por esta patilla se recibe la tensión de
alimentación de la pastilla.
Tierra (GND): Este pin se une a la toma de tierra (Ground) del ordenador.
Se debe tener en cuenta que al decir que una señal está activa no quiere decir que esa
señal tiene 5 voltios, por ejemplo, pues depende de si la señal tiene lógica positiva o
lógica negada. Esto quiere decir que una señal concreta puede estar activa al tener 5V
o al estar a 0V o -5V, dependiendo de la lógica utilizada.
(A) (B)
Figura 35. Cronograma de: (A) lectura y (B) escritura
En primer lugar, se debe poner la dirección del dato a leer en las señales de
direcciones; luego se activará la señal de selección de pastilla CS (o CE) y, para
terminar, OE, la señal que indica que se trata de una lectura. Obviamente, la
señal de escritura WE, se mantiene desactivada durante toda la operación.
Pasado un cierto tiempo, la pastilla de memoria pone el contenido de la dirección
de memoria indicada en las señales que componen el bus de datos. El tiempo
máximo que transcurre desde que se activa la señal CS hasta que entrega el
dato, se denomina “Tiempo de acceso”, y su duración depende de la tecnología
60
Para un Ciclo de Escritura: Igualmente síncrona, todas las señales las activan
el dispositivo que va a escribir en la memoria, incluidas, las señales de datos.
Tanto al ciclo de lectura como al ciclo de escritura, se los conoce de forma genérica
como, Ciclo de Memoria (o Bus). Debe quedar claro que, aunque tengan un nombre
genérico común, un ciclo de lectura no tiene por qué durar lo mismo que uno de
escritura; es decir, que los ciclos de memoria pueden tener distintas duraciones.
En la siguiente imagen se puede observar la interfaz que ofrecen el CPU y las pastillas
de memoria, para lograr luego describir la interconexión entre ambos.
Luego se debe conectar los 32 hilos de direcciones de la CPU con los 32 de la memoria
y los de datos del CPU con los de datos de la memoria.
También hay que conectar la salida AS del CPU con la entrada CS de la memoria, de
tal forma que cuando el CPU dé por estables los valores del bus de direcciones, se
seleccione la pastilla de memoria. Por último, nos queda conectar la salida R/W del
CPU a las entradas OE y WE de la memoria, para indicar cuando se desea leer o
escribir en ella.
Hay que dejar claro, que el procesador tiene 64 hilos de datos, y la memoria por su
parte ofrece 232 unidades de direccionamiento de 8 bits cada una, luego debe tener 8
hilos de datos. Pasa estos casos se debe conocer el mapa de memora, que representa
la distribución del espacio de direccionamiento de una máquina entre los distintos tipos
de memoria instalados.
3.4. Decodificación.
Dado que normalmente la señal CS se activa por lógica inversa (a cero), la selección de
la ROM puede conseguirse entonces mediante una puerta OR de cinco entradas, de tal
manera que solamente cuando las cinco estén a 0, el resultado será un 0.
La decodificación de las direcciones de los puertos es igual de sencilla, pues al tener las
direcciones del tipo 11111111111111xx, su activación se consigue con una puerta
NAND a la que entran las 14 señales de direcciones de mayor peso.
Todo esto ha sido una decodificación total de direcciones, ya que para la selección de
cada pastilla intervienen todas las señales de direcciones que identifican directa y
unívocamente tal pastilla.
Sin embargo, se podría utilizar una artimaña para tratar de simplificar el número de
señales implicadas en la decodificación. Se trata de observar las diferencias entre los
distintos grupos de direcciones, y utilizar lógica para decodificar direcciones basándose
solamente es esas diferencias.
En cuanto a la memoria RAM, tenemos que sus direcciones son las únicas cuyas
señales de direcciones A15 y A14 son, respectivamente, 1 y 0. Por último, las
direcciones de los puertos de E/S son las únicas cuya señal A14 es siempre 1.
Como se puede observar, se tiene que para distinguir los tres grupos de direcciones y
poder seleccionar la pastilla adecuada, basta con utilizar solamente las dos señales de
dirección más altas, lo cual se consigue, como se puede ver en la imagen de
decodificación parcial de direcciones, con solo una puerta NAND y dos inversores.
Por esto, hay que pensar que quizás sería mejor detectar las referencias a direcciones
de memoria no existentes.
La memoria principal suele estar formada por varios tipos de memoria; normalmente se
encuentran, al menos, memorias de tipo RAM y ROM. Para todas ellas hay una serie de
características o términos comunes que se deben aclarar, como se muestran en la
siguiente imagen:
Hay ocasiones que se presenta, que las pastillas de memoria se adaptan muy bien a las
necesidades normales de un ordenador, sin embargo, no suelen ofrecerse
comercialmente.
Se observa en la imagen anterior del ejemplo de agrupación por longitud de celda, que
cada módulo de memoria cubre el espacio de direccionamiento requerido (16
Kdirecciones), pero solamente con la mitad de la longitud de una celda en cada
dirección. Así pues, lo que se tiene que hacer es agrupar convenientemente dos
módulos de 16 k x 4 bits para conseguir una visión de 16 k x 8 bits.
Por una parte, se debe unir directamente los pines de direcciones de las dos pastillas,
puesto que ambas tienen 16 k direcciones. Por consiguiente, se tiene que formar
palabras de 8 bits a partir de dos bloques de 4.
Para ello simplemente se toman los 4 bits de datos de la pastilla 1 y los consideramos
como los 4 bits de mayor peso de la palabra, y los 4 bits de datos de la pastilla 2 serán
los 4 bits de menor peso de la palabra. Así, cuando la CPU realice una lectura de la
dirección 2F00, ambas pastillas se seleccionarán (CS activo); la primera pastilla
aportará los 4 bits de su dirección 2F00 a los 4 bits de mayor peso, y la segunda pastilla
aportará los 4 bits de su dirección 2F00 a los 4 bits de menor peso de la palabra. De
esta manera, el CPU habrá leído una palabra de 8 bits de la dirección 2F00 de su
espacio de direcciones.
68
Para este caso se supone, que para implementar el mismo bloque de memoria de 16 k
x 8 bits, se dispone ahora de módulos de 4 k x 8 bits.
En este caso, cada pastilla entrega los 8 bits de cada palabra, pero no se tienen que
seleccionar todas simultáneamente, sino que solamente tendrá que seleccionarse la
que tenga la dirección referenciada por el CPU.
En estas situaciones en las que cada uno de los espacios de direccionamiento está
repartido entre múltiples pastillas de memoria, se requiere un mecanismo que sepa
averiguar el módulo que contiene la dirección referenciada por el CPU y activar
únicamente la señal CS (Chip Select) de ese módulo. A este mecanismo se le conoce
como decodificación de direcciones.
En este ejemplo se tiene un sistema con una memoria de 64 Kbytes formada a base de
módulos de 16 k x 1 bit, esto quiere decir que cada chip de 14 pines de direcciones y
una de datos.
Se tendrá 4 bancos (filas) de 16 Kdirecciones cada uno, y cada banco a su vez, debe
estar formado por 8 pastillas, ya que cada una de ellas entrega un bit. Así pues, se
necesitará 4x8 pastillas, es decir, 32 en total.
70
En cuanto a los hilos de datos, puede verse que cada columna de pastillas entrega un
bit de datos del mismo peso, pero como en un momento dado solamente estará
activada una pastilla por columna, el resto de las pastillas de la columna se quedarán
en alta impedancia y no aportarán nada al bus de datos.
Con esta conexión resulta que para cualquier dirección que genere el CPU se
seleccionarán todas las pastillas de memoria, mientras que se quiere que para una
dirección en el rango 0-3FFF se seleccionen solamente las 8 pastillas que forman los
bytes de las 16 Kdirecciones primeras; si la dirección está en el rango 4000-7FFF, se
debe seleccionar las 8 pastillas del segundo banco de memorias, para las direcciones
de 8000-BFFF, las 8 pastillas del tercer banco; y por último, si la dirección está en el
rango C000-FFFF, se deben seleccionar solamente las 8 pastillas de último banco.
Pues bien, si nos fijamos en los 16 hilos de direcciones que salen del CPU, las señales
que indican el banco de direcciones de 16 k que se está referenciando, son las dos
señales de mayor peso, la A14 y la A15, con las siguientes combinaciones:
Lo único queda por hacer es ingresar estas dos señales en un decodificador de 2 bits
que se encargue de activar una de sus 4 salidas, de tal manera que cada una de ellas
se conectará al pin CS (Chip Select) de todas las pastillas que conforman el banco
correspondiente de 16 k. Como se puede observar en la figura 42, para activar una
pastilla no basta con conectar la salida del codificador a la pastilla CS, sino que para
activar una pastilla debe estar activa la señal correspondiente del decodificador más la
señal AS (Address Strobe) de la CPU.
71
CONCLUSION
Prosiguiendo con la historia para el año 1971, la compañía Intel comienza con el
desarrollo de los Microprocesadores teniendo como primera creación el
microprocesador 4004, con un CPU de 4 bits. Esta creación de este microprocesador
ha sido de gran importancia ya que este es el encargado de ejecutar los programas,
sean de usuario o de sistema, ejecutando instrucciones a un bajo nivel y realizando
operaciones elementales. Fue la base de los avances tecnológicos que hemos logrado
hoy en día.
Con respecto a la arquitectura de los microprocesadores Intel, los más utilizados fueron
el 8088 y el 8086 los cuales fueron un gran avance gracias a su potencia y velocidad de
procesamiento de datos. Son muy parecidos en cuanto a su estructura, pero lo que los
diferencio fue el tamaño en el bus de datos externos, donde uno maneja 8 bits y el otro
16 bits. Se detalla la arquitectura e interfaces de entrada y salida, y que estos permiten
operar sobre un mapa de E/S independiente del de memoria, esto quiere decir que
habrá instrucciones particulares que permiten traer información del mundo exterior o
llevarla hasta el mismo. Esas instrucciones se conocen como IN/OUT, y son las únicas
que llevan en línea en el último ciclo de máquina.
Acerca de las decodificaciones de las memorias, los procesos que se presentan son la
de Direcciones, la Tota; y la Parcial. La primera aplica en los casos en que los espacios
de direccionamiento ocupados por múltiples pastillas de memorias, la segunda que para
seleccionar la dirección binaria del tipo de memoria, se hace por medio de compuertas
lógicas, y finalmente la tercera que también utiliza compuertas lógicas pero para
simplificar el número de señales implicadas en la decodificación.
.
73
REFERENCIAS