Download dispositivos de entrada y salida

Document related concepts
no text concepts found
Transcript
Microprocesador
Uno de los actuales microprocesadores de 64 bits y doble núcleo, un AMD Athlon 64 X2
3600.
Desde el punto de vista funcional, un microprocesador es un circuito integrado que incorpora en
su interior una unidad central de proceso (CPU) y todo un conjunto de elementos lógicos que
permiten enlazar otros dispositivos como memorias y puertos de entrada y salida (I/O), formando
un sistema completo para cumplir con una aplicación específica dentro del mundo real. Para que
el sistema pueda realizar su labor debe ejecutar paso a paso un programa que consiste en una
secuencia de números binarios o instrucciones, almacenandolas en uno o más elementos de
memoria, generalmente externos al mismo. La aplicación más importante de los
microprocesadores que cambió totalmente la forma de trabajar, ha sido la computadora personal
o microcomputadora.
El microprocesador es el microchip más importante en una computadora, se le considera el
cerebro de una computadora. Está constituido por millones de transistores integrados (circuito
integrado). Puede definirse, como un chip (tamaño micro), un tipo de componente electrónico en
cuyo interior existen miles o en ocasiones millones, según su complejidad, de elementos
llamados transistores cuyas interacciones permiten realizar las labores o funciones que tenga
encomendado el chip.
Así mismo es la parte de la computadora diseñada para llevar acabo o ejecutar los programas.
Este ejecuta instrucciones que se le dan a la computadora a muy bajo nivel haciendo
operaciones lógicas simples, como sumar, restar, multiplicar y dividir. Este dispositivo se ubica
generalmente en un zócalo especial en la placa o tarjeta madre y dispone para su buen
funcionamiento de un sistema de enfriamiento (generalmente un ventilador).
Lógicamente funciona como la unidad central de procesos (CPU/Central Procesing Unit), que
está constituida por registros, la unidad de control y la unidad aritmético-lógica. En el
microprocesador se procesan todas las acciones de la computadora.
Su "velocidad" es medida por la cantidad de operaciones por segundo que puede realizar:
también llamada frecuencia de reloj. La frecuencia de reloj se mide en MHz (megahertz) o
gigahertz (GHz).
Una computadora personal o más avanzada puede estar soportada por uno o varios
microprocesadores, y un microprocesador puede soportar una o varias terminales (redes). Un
núcleo suele referirse a una porción del procesador que realiza todas las actividades de una
CPU real.
La tendencia de los últimos años ha sido la de integrar más núcleos dentro de un mismo
empaque, además de componentes como memorias cache y controladores de memoria,
elementos que antes estaban montados sobre la placa base como dispositivos individuales.
La Evolución del Microprocesador
El microprocesador es un producto de la computadora y la tecnología semiconductora. Su
desarrollo se eslabona desde la mitad de los años 50's; estas tecnologías se fusionaron a
principios de los años 70`'s, produciendo el llamado microprocesador.
La computadora digital hace cálculos bajo el control de un programa. La manera general en que
los cálculos se han hecho es llamada la arquitectura de la computadora digital. Así mismo la
historia de circuitos de estado sólido nos ayuda también, porque el microprocesador es un
circuito con transistores o microcircuito LSI (grande escala de integración), para ser más preciso.
El mapa de la figura, mostrada al final de esta sección, muestra los sucesos importantes de
éstas dos tecnologías que se desarrollaron en las últimas cinco décadas. Las dos tecnologías
iniciaron su desarrollo desde la segunda guerra mundial; en este tiempo los científicos
desarrollaron computadoras especialmente para uso militar. Después de la guerra, a mediados
del año de 1940 la computadora digital fue desarrollada para propósitos científicos y civiles.
La tecnología de circuitos electrónicos avanzó y los científicos hicieron grandes progresos en el
diseño de dispositivos físicos de Estado Sólido. En 1948 en los laboratorios Bell crearon el
Transistor.
En los años 50's, aparecen las primeras computadoras digitales de propósito general. Éstas
usaban tubos al vacío (bulbos) como componentes electrónicos activos. Tarjetas o módulos de
tubos al vacío fueron usados para construir circuitos lógicos básicos tales como compuertas
lógicas y flip-flops (Celda donde se almacena un bit). Ensamblando compuertas y flip-flops en
módulos, los científicos construyeron la computadora ( la lógica de control, circuitos de memoria,
etc.). Los bulbos también formaron parte de la construcción de máquinas para la comunicación
con las computadoras. Para el estudio de los circuitos digitales, en la construcción de un circuito
sumador simple se requiere de algunas compuertas lógicas.
La construcción de una computadora digital requiere de muchos circuitos o dispositivos
electrónicos. El principal paso tomado en la computadora fue hacer que el dato fuera
almacenado en memoria como una forma de palabra digital. La idea de almacenar programas
fue muy importante.
La tecnología de los circuitos de estado sólido evolucionó en la década de los años 50's. El uso
del material silicio de bajo costo y con métodos de producción masiva, hicieron al transistor ser
el más usado para el diseño de circuitos. Por lo tanto el diseño de la computadora digital fue un
gran avance del cambio para remplazar al tubo al vacío (bulbo) por el transistor a finales de los
años 50's.
A principios de los años 60's, el arte de la construcción de computadoras de estado sólido se
incrementó y surgieron las tecnologías en circuitos digitales como: RTL (Lógica Transistor
Resistor), DTL (Lógica Transistor Diodo), TTL (Lógica Transistor Transistor), ECL (Lógica
Complementada Emisor).
A mediados de los años 60's se producen las familias de lógica digital, dispositivos en escala SSI
y MSI que corresponden a pequeña y mediana escala de integración de componentes en los
circuitos de fabricación. A finales de los años 60's y principios de los años 70's surgieron los LSI
(gran escala de integración ). La tecnología LSI fue haciendo posible más y más circuitos
digitales en un circuito integrado. Pero pocos circuitos LSI fueron producidos, los dispositivos de
memoria fueron un buen ejemplo.
Las primeras calculadoras electrónicas requerían de 75 a 100 circuitos integrados. Después se
dio un paso importante en la reducción de la arquitectura de la computadora a un circuito
integrado simple, resultando un circuito que fue llamado el microprocesador.
El primer microprocesador fue el Intel 4004, producido en 1971. Se desarrolló originalmente para
una calculadora, y resultaba revolucionario para su época. Contenía 2.300 transistores en un
microprocesador de 4 bits que sólo podía realizar 60.000 operaciones por segundo. El primer
microprocesador de 8 bits fue el Intel 8008, desarrollado en 1979 para su empleo en terminales
informáticos. El Intel 8008 contenía 3.300 transistores. El primer microprocesador realmente
diseñado para uso general, desarrollado en 1974, fue el Intel 8080 de 8 bits, que contenía 4.500
transistores y podía ejecutar 200.000 instrucciones por segundo. Los microprocesadores
modernos tienen una capacidad y velocidad mucho mayores. Entre ellos figuran el Intel Pentium
Pro, con 5,5 millones de transistores; el UltraSparc-II, de Sun Microsystems, que contiene 5,4
millones de transistores; el PowerPC 620, desarrollado conjuntamente por Apple, IBM y
Motorola, con 7 millones de transistores, y el Alpha 21164A, de Digital Equipment Corporation,
con 9,3 millones de transistores.[4]
Breve Historia de los Microprocesadores
El pionero de los actuales microprocesadores el 4004 de
Intel.
Imagen de un Intel 80286, mejor conocido como 286.
Imagen de un Intel 80486, conocido también como 486SX de 33Mhz.
La parte de posterior de un Pentium Pro. Este chip en particular es uno de 200MHz, con
256KB de cache L2.
Un procesador Pentium II, se puede observar su estilo de zocket
diferente.
Imagen de un procesador Celeron "Coppermine 128" 600
MHz.
Imagen de un procesador Pentium III de Intel.
1971: MICROPROCESADOR 4004
El 4004 fue el primer microprocesador de Intel. Este descubrimiento impulsó la calculadora de
Busicom y pavimentó la manera para integrar inteligencia en objetos inanimados así como la
computadora personal.
1972: MICROPROCESADOR 8008
Codificado inicialmente como 1201, fue pedido a Intel por Computer Terminal Corporation para
usarlo en su terminal programable Datapoint 2200, pero debido a que Intel terminó el proyecto
tarde y a que no cumplía con la expectativas de Computer Terminal Corporation, finalmente no
fue usado en el Datapoint 2200. Posteriormente Computer Terminal Corporation e Intel
acordaron que el i8008 pudiera ser vendido a otros clientes.
1974: MICROPROCESADOR 8080
Los 8080 se convirtieron en los cerebros de la primera computadora personal la Altair 8800 de
MITS, según se alega, nombrada en base a un destino de la Nave Espacial "Starship" del
programa de televisión Viaje a las Estrellas, y el IMSAI 8080, formando la base para las
máquinas que corrían el sistema operativo CP/M. Los fanáticos de las computadoras podían
comprar un equipo Altair por un precio (en aquel momento) de $395. En un periodo de pocos
meses, vendió decenas de miles de estas computadoras personales.
1978: MICROPROCESADOR 8086-8088
Una venta realizada por Intel a la nueva división de computadoras personales de IBM, hizo que
los cerebros de IBM dieran un gran golpe comercial con el nuevo producto para el 8088--el IBM
PC. El éxito del 8088's propulsó a Intel en la lista de las 500 mejores compañías de la prestigiosa
revista Fortune, y la revista nombró la compañía como uno de "los Triunfos Comerciales de los
Sesentas."
1982: MICROPROCESADOR 286
El 286, también conocido como el 80286, era el primer procesador de Intel que podría ejecutar
todo el software escrito para su predecesor. Esta compatibilidad del software sigue siendo un
sello de la familia de Intel de microprocesadores. Luego de 6 años de su introducción, había un
estimado de 15 millones de 286 basados en computadoras personales instalados alrededor del
mundo.
1985: EL MICROPROCESADOR INTEL 386(TM)
El Intel 386TM microprocesador ofreció 275,000 transistores--más de 100 veces tantos como en
el original 4004. El 386 añadió una arquitectura de 32 bits, poseía capacidad "multi-tarea",
significando esto, que podría ejecutar múltiples programas al mismo tiempo y una unidad de
traslación de páginas, lo que hizo mucho más sencillo implementar sistemas operativos que
emplearan memoria virtual.
1989: EL DX CPU MICROPROCESADOR INTEL 486(TM)
La generación 486TM realmente significó que el usuario contaba con una computadora con
muchas opciones avanzadas, entre ellas,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 e i387 a la misma frecuencia de reloj. El procesador Intel 486TM fue el
primero en ofrecer un coprocesador matemático, el cual acelera las tareas del micro, porque
ofrece la ventaja de que las operaciones matemáticas complejas son realizadas (por el coprocesador) de manera independiente al funcionamiento del procesador central (CPU).
1993: PROCESADOR DE PENTIUM®
El procesador de Pentium® poseía una arquitectura capaz de ejecutar dos operaciones a la vez
gracias a sus dos pipeline de datos de 32bits cada uno, uno equivalente al 486DX(u) y el otro
equivalente a 486SX(u). Además, poseía un bus de datos de 64 bits, permitiendo un acceso a
memoria 64 bits (aunque el procesador seguía manteniendo compatibilidad de 32 bits para las
operaciones internas y los registros también eran de 32 bits). Las versiones que incluían
instrucciones MMX no sólo brindaban al usuario un mejor manejo de aplicaciones multimedia,
como por ejemplo, la lectura de películas en DVD sino que se ofrecían en velocidades de hasta
233 MHz, incluyendo una versión de 200 MHz y la más básica proporcionaba unos 166 MHz de
reloj. El nombre Pentium®, se mencionó en las historietas y en charlas de la televisión a diario,
en realidad se volvió una palabra muy popular poco después de su introducción.
1995: PROCESADOR PENTIUM® PROFESIONAL
Lanzado al mercado para el otoño de 1995 el procesador Pentium® Pro se diseña con una
arquitectura de 32-bit, su uso en servidores, los programas y aplicaciones para estaciones de
trabajo (redes) impulsan rápidamente su integración en las computadoras. El rendimiento del
código de 32 bits era excelente, pero el Pentium Pro a menudo iba más despacio que un
Pentium cuando ejecutaba código o sistemas operativos de 16 bits. Cada procesador Pentium®
Pro estaba compuesto por unos 5.5 millones de transistores.
1997: PROCESADOR PENTIUM® II
El procesador de 7.5 millón-transistores Pentium® II, se busca entre los cambios fundamentales
con respecto a su predecesor, mejorar el rendimiento en la ejecución de código de 16 bits,
añadir el conjunto de instrucciones MMX y eliminar la memoria caché de segundo nivel del
núcleo del procesador, colocándola en una tarjeta de circuito impreso junto a éste. Gracias al
nuevo diseño de este procesador, los usuarios de PC pueden capturar, pueden revisar y pueden
compartir fotografías digitales con amigos y familia vía Internet; revisar y agregar texto, música y
otros; con una línea telefónica, el enviar video a través de las líneas normales del teléfono
mediante el Internet se convierte en algo cotidiano.
1998: EL PROCESADOR PENTIUM® II XEON (TM)
Los procesadores Pentium® II XeonTM se diseñan para cumplir con los requisitos de
desempeño en computadoras de medio-rango, servidores más poderosos y estaciones de
trabajo (workstations). Consistente con la estrategia de Intel para diseñar productos de
procesadores con el objetivo de llenar segmentos de los mercados específicos, el procesador
Pentium® II XeonTM ofrece innovaciones técnicas diseñadas para las estaciones de trabajo
(workstations) y servidores que utilizan aplicaciones comerciales exigentes como servicios de
Internet, almacenaje de datos corporativo, creaciónes digitales y otros. Pueden configurarse
sistemas basados en el procesador para integrar de cuatro o ocho procesadores y más allá de
este número.
1999: EL PROCESADOR CELERON (TM)
Continuando la estrategia de Intel, en el desarrollo de procesadores para los segmentos del
mercado específicos, el procesador Intel CeleronTM es el nombre que lleva la línea de
procesadores de bajo costo de Intel. El objetivo era poder, mediante esta segunda marca,
penetrar en los mercados impedidos a los Pentium, de mayor rendimiento y precio. Se diseña
para el añadir valor al segmento del mercado de las PC (Computadoras Personales).
Proporciona a los consumidores una gran actuación a un valor excepcional (bajo costo), y
entrega un desempeño destacado para usos como juegos y el software educativo.
1999: PROCESADOR PENTIUM® III
El Pentium® III procesador ofrece 70 nuevas instrucciones (Internet Streaming, las extensiones
de SIMD) las cuales refuerzan dramáticamente el desempeño con imágenes avanzadas, 3-D,
añadiendo una mejor calidad de audio, video y desempeño en aplicaciones de reconocimiento
de voz. Fue diseñado para reforzar el área del desempeño en el Internet, le permite a los
usuarios hacer cosas, tales como, navegar a través de paginas pesadas (llenas de graficas)
como las de los museos online, tiendas virtuales y transmitir archivos video de alto-calidad. El
procesador incorpora 9.5 millones de transistores, y se introdujo usando en él la tecnología 0.25micron.
1999: EL PROCESADOR PENTIUM® III XEON (TM)
El procesador Pentium® III de XeonTM amplia las fortalezas de Intel en cuanto a las estaciones
de trabajo (workstation) y segmentos de mercado de servidor y añade una actuación mejorada
en las aplicaciones del e-comercio y la informática comercial avanzada. Los procesadores
incorporan tecnología que refuerzan los multimedios y las aplicaciones de video. La tecnología
del procesador III XeonTM acelera la transmisión de información a través del bus del sistema al
procesador, mejorando la actuación significativamente. Se diseña pensando principalmente en
los sistemas con configuraciones de multiprocesador.
Funcionamiento
Desde el punto de vista lógico, singular y funcional, el microprocesador está compuesto
básicamente por: varios registros, una unidad de control, una unidad aritmético-lógica, y
dependiendo del procesador, puede contener una unidad en coma flotante.
El microprocesador ejecuta instrucciones almacenadas como números binarios organizados
secuencialmente en la memoria principal. La ejecución de las instrucciones se puede realizar en
varias fases:



PreFetch, pre lectura de la instrucción desde la memoria principal.
Fetch, envío de la instrucción al decodificador
Decodificación de la instrucción, es decir, determinar qué instrucción es y por tanto qué se
debe hacer.



Lectura de operandos (si los hay).
Ejecución, lanzamiento de las máquinas de estado que llevan a cabo el procesamiento.
Escritura de los resultados en la memoria principal o en los registros.
Cada una de estas fases se realiza en uno o varios ciclos de CPU, dependiendo de la estructura
del procesador, y concretamente de su grado de segmentación. La duración de estos ciclos
viene determinada por la frecuencia de reloj, y nunca podrá ser inferior al tiempo requerido para
realizar la tarea individual (realizada en un solo ciclo) de mayor coste temporal. El
microprocesador se conecta a un circuito PLL, normalmente basado en un cristal de cuarzo
capaz de generar pulsos a un ritmo constante, de modo que genera varios ciclos (o pulsos) en
un segundo. Este reloj, en la actualidad, genera miles de MHz. Un microprocesador es un
sistema abierto con el que puede construirse un computador con las caracteristicas que se
desee acoplandole los modulos necesarios.
Rendimiento
El rendimiento del procesador puede ser medido de distintas maneras, hasta hace pocos años
se creía que la frecuencia de reloj era una medida precisa, pero ese mito ("mito de los
megahertz") se ha visto desvirtuado por el hecho de que los procesadores no han requerido
frecuencias más altas para aumentar su poder de cómputo.
Durante los últimos años esa frecuencia se ha mantenido en el rango de los 1,5 GHz a 4 GHz,
dando como resultado procesadores con capacidades de proceso mayores comparados con los
primeros que alcanzaron esos valores. Además la tendencia es a incorporar más núcleos dentro
de un mismo encapsulado para aumentar el rendimiento por medio de una computación
paralela, de manera que la velocidad de reloj es un indicador menos fiable aún.
Medir el rendimiento con la frecuencia es válido únicamente entre procesadores con
arquitecturas muy similares o iguales, de manera que su funcionamiento interno sea el mismo:
en ese caso la frecuencia es un índice de comparación válido. Dentro de una familia de
procesadores es común encontrar distintas opciones en cuanto a frecuencias de reloj, debido a
que no todos los chip de silicio tienen los mismos límites de funcionamiento: son probados a
distintas frecuencias, hasta que muestran signos de inestabilidad, entonces se clasifican de
acuerdo al resultado de las pruebas.
La capacidad de un procesador depende fuertemente de los componentes restantes del sistema,
sobre todo del chipset, de la memoria RAM y del software. Pero obviando esas características
puede tenerse una medida aproximada del rendimiento de un procesador por medio de
indicadores como la cantidad de operaciones de punto flotante por unidad de tiempo FLOPS, o
la cantidad de instrucciones por unidad de tiempo MIPS. Una medida exacta del rendimiento de
un procesador o de un sistema, es muy complicada debido a los múltiples factores involucrados
en la computación de un problema, por lo general las pruebas no son concluyentes entre
sistemas de la misma generación.
Arquitectura
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 nos ayudará a
entender el microprocesador. El microprocesador hizo posible la manufactura de poderosas
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 microprocesadora (MPU). En otras palabras,
el microprocesador es una unidad procesadora de datos. En un microprocesador podemos
diferenciar diversas partes:






El encapsulado: es lo que rodea a la oblea de silicio en si, 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.
La memoria cache: es una memoria ultrarrápida que emplea el micro para tener a mano
ciertos datos que prediciblemente serán utilizados en las siguientes operaciones sin tener
que acudir a la memoria RAM reduciendo el tiempo de espera. Por ejemplo: en una
biblioteca, en lugar de estar buscando cierto libro a través de un banco de ficheros de
papel se utiliza las computadora, y gracias a la memoria cache, obtiene de manera rápida
la información. Todos los micros compatibles con PC poseen la llamada cache interna de
primer nivel o L1; es decir, la que está más cerca del micro, tanto que está 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, la caché de segundo nivel o L2.
Coprocesador Matemático: o correctamente la FPU (Unidad de coma flotante). Que es
la parte del micro especializada en esa clase de cálculos matemáticos, antiguamente
estaba en el exterior del micro en otro chip. Esta parte esta considerada como una parte
"lógica" junto con los registros, la unidad de control, memoria y bus de datos.
Los 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 esta diseñado para control del programador y hay
otros que no son diseñados para ser controlados por el procesador pero que CPU los
utiliza en algunas operaciones en total son treinta y dos registros.
La memoria: es el lugar donde el procesador encuentra sus instrucciones de programa y
sus datos. Tanto los datos como las instrucciones están almacenados en memoria, y el
procesador los toma de ahí. La memoria es una parte interna de la computadora y su
función esencial es proporcionar un espacio de trabajo para el procesador.
Puertos: es la manera en que el procesador se comunica con el mundo externo. Un
puerto es parecido 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 un numero de teléfono para llamar al circuito o a
partes especiales.
ndose la deposición y eliminación de capas finísimas de materiales conductores, aislantes y
semiconductores, endurecidas mediante luz ultravioleta y atacada por ácidos encargados de
remover las zonas no cubiertas por la impresión. Salvando las escalas, se trata de un proceso
comparable al visto para la fabricación de circuitos impresos. Después de cientos de pasos,
entre los que se hallan la creación de sustrato, la oxidación, la litografía, el grabado, la
implantación iónica y la deposición de capas; se llega a un complejo "bocadillo" que contiene
todos los circuitos interconectados del microprocesador.
Un transistor construido en tecnología de 45 nanómetros tiene un ancho equivalente a unos 200
electrones. Eso da una idea de la precisión absoluta que se necesita al momento de aplicar cada
una de las mascaras utilizadas durante la fabricaFabricación
El proceso de fabricación de un microprocesador es muy complejo. Todo comienza con un buen
puñado de arena (compuesta básicamente de silicio), con la que se fabrica un monocristal de
unos 20 x 150 centímetros. Para ello, se funde el material en cuestión a alta temperatura
(1.370 °C) y muy lentamente (10 a 40 Mm por hora) se va formando el cristal.
De este cristal, de cientos de kilos de peso, se cortan los extremos y la superficie exterior, de
forma de obtener un cilindro perfecto. Luego, el cilindro se corta en obleas de menos de un
milímetro de espesor (una capa de unas 10 micras de espesor, la décima parte del espesor de
un cabello humano), utilizando una sierra de diamante. De cada cilindro se obtienen miles de
obleas, y de cada oblea se fabricarán varios cientos de microprocesadores.
Silicio.
Estas obleas son pulidas hasta obtener una superficie perfectamente plana, pasan por un
proceso llamado “annealing”, que consiste en someterlas a un calentamiento extremo para
remover cualquier defecto o impureza que pueda haber llegado a esta instancia. Luego de una
supervisión mediante láseres capaz de detectar imperfecciones menores a una milésima de
micrón, se recubren con una capa aislante formada por óxido de silicio transferido mediante
deposición de vapor.
De aquí en adelante, comienza el proceso del “dibujado” de los transistores que conformarán a
cada microprocesador. A pesar de ser muy complejo y preciso, básicamente consiste en la
“impresión” de sucesivas máscaras sobre la oblea, sucediéción.
Una oblea de silicio grabada
Los detalles de un microprocesador son tan pequeños y precisos que una única mota de polvo
puede destruir todo un grupo de circuitos. Las salas empleadas para la fabricación de
microprocesadores se denominan salas limpias, porque el aire de las mismas se somete a un
filtrado exhaustivo y está prácticamente libre de polvo. Las salas limpias más puras de la
actualidad se denominan de clase 1. La cifra indica el número máximo de partículas mayores de
0,12 micras que puede haber en un pie cúbico de aire (0,028 metros cúbicos). Como
comparación, un hogar normal sería de clase 1 millón. Los trabajadores de estas plantas
emplean trajes estériles para evitar que restos de piel, polvo o pelo se desprendan de sus
cuerpos.
Una vez que la oblea ha pasado por todo el proceso litográfico, tiene “grabados” en su superficie
varios cientos de microprocesadores, cuya integridad es comprobada antes de cortarlos. Se trata
de un proceso obviamente automatizado, y que termina con una oblea que tiene grabados
algunas marcas en el lugar que se encuentra algún microprocesador defectuoso.
La mayoría de los errores se dan en los bordes de la oblea, dando como resultados chips
capaces de funcionar a velocidades menores que los del centro de la oblea. Luego la oblea es
cortada y cada chip individualizado. En esta etapa del proceso el microprocesador es una
pequeña placa de unos pocos milímetros cuadrados, sin pines ni cápsula protectora.
Cada una de estas plaquitas será dotada de una cápsula protectora plástica (en algunos casos
pueden ser cerámicas) y conectada a los cientos de pines metálicos que le permitirán interactuar
con el mundo exterior. Cada una de estas conexiones se realiza utilizando delgadísimos
alambres, generalmente de oro. De ser necesario, la cápsula es dotada de un pequeño disipador
térmico de metal, que servirá para mejorar la transferencia de calor desde el interior del chip
hacia el disipador principal. El resultado final es un microprocesador como el que equipa nuestro
ordenador.
Empaquetado
Empaquetado de un procesador Intel 80486 en un empaque de cerámica.
Los microprocesadores son circuitos integrados y como tal están formados por un chip de silicio
y un empaque con conexiones eléctricas. En los primeros procesadores el empaque se
fabricaba con plásticos epoxicos o con cerámicas en formatos como el DIP entre otros. El chip
se pegaba con un material térmicamente conductor a una base y se conectaba por medio de
pequeños alambres a unas pistas terminadas en pines. Posteriormente se sellaba todo con una
placa metálica u otra pieza del mismo material de la base de manera que los alambres y el silicio
quedaran encapsulados.
En procesadores como los Intel y AMD de las series Pentium I (mediados de los 90) y
compatibles aún se usaba el empaque cerámico que tenia un arreglo de pines PGA y una
cavidad en el espacio de ese arreglo, donde se introducía el chip del procesador y se soldaba
con pequeños alambres a los pines. La cavidad se sellaba con una lamina de cobre.
Empaquetado de un procesador PowerPC con Flip-Chip, se ve el chip de silicio.
En la actualidad los microprocesadores de diversos tipos (incluyendo procesadores gráficos) se
ensamblan por medio de la tecnología Flip chip. El chip semiconductor es soldado directamente
a un arreglo de pistas conductoras (en el sustrato laminado) con la ayuda de unas microesferas
que se depositan sobre las obleas de semiconductor en las etapas finales de su fabricación. El
sustrato laminado es una especie de circuito impreso que posee pistas conductoras hacia pines
o contactos, que a su vez servirán de conexión entre el chip semiconductor y un socket de CPU
o una placa base.[5]
Antiguamente las conexión del chip con los pines se realizaba por medio de microalambres de
manera que quedaba boca arriba, con el método Flip Chip queda boca abajo, de ahí se deriva su
nombre. Entre las ventajas de este método esta la simplicidad del ensamble y en una mejor
disipación de calor. Cuando la pastilla queda bocabajo presenta el sustrato base de silicio de
manera que puede ser enfriado directamente por medio de elementos conductores de calor.
Esta superficie se aprovecha también para etiquetar el integrado. En los procesadores para
computadores de escritorio, dada la vulnerabilidad de la pastilla de silicio, se opta por colocar
una placa de metal, por ejemplo en los procesadores Athlon como el de la primera imagen. En
los procesadores de Intel también se incluye desde el Pentium III de más de 1 Ghz.
Disipación de calor
Con el aumento en el número de transistores incluidos en un procesador, el consumo de energía
se ha elevado a niveles en los cuales la disipación natural del procesador no es suficiente para
mantener temperaturas aceptables en el material semiconductor, de manera que se hace
necesario el uso de mecanismos de enfriamiento forzado, como son los disipadores de calor.
Entre ellos se encuentran los sistemas sencillos como disipadores metálicos que aumentan el
área de radiación, permitiendo que la energía salga rápidamente del sistema. También los hay
con refrigeración líquida, por medio de circuitos cerrados.
Conexión con el exterior
Superficies de contacto en un procesador Intel para Zocalo LGA775.
El microprocesador posee un arreglo de elementos metálicos (pines, esferas, contactos) que
permiten la conexión eléctrica entre el circuito integrado que conforma el microprocesador y los
circuitos de la placa base. Dependiendo de la complejidad y de la potencia, un procesador puede
tener desde 8 hasta más de 1000 elementos metálicos en la superficie de su empaque. El
montaje del procesador se realiza con la ayuda de un Socket de CPU soldado sobre la placa
base. Entre las conexiones eléctricas están las de alimentación eléctrica de los circuitos dentro
del empaque, las señales de reloj, señales relacionadas con datos, direcciones y control; estas
funciones están distribuidas en un esquema asociado al Socket, de manera que varias
referencias de procesador y placas base son compatibles entre ellos, permitiendo distintas
configuraciones.
Buses del procesador
Todos los procesadores poseen un bus principal o de sistema por el cual se envían y reciben
todos los datos, instrucciones y direcciones desde los integrados del chipset o desde el resto de
dispositivos. Como puente de conexión entre el procesador y el resto del sistema, define mucho
del rendimiento del sistema, su velocidad se mide en bytes por segundo.
Ese bus puede ser implementado de distintas maneras, con el uso de buses seriales o paralelos
y con distintos tipos de señales eléctricas. La forma más antigua es el bus paralelo en el cual se
definen líneas especializadas en datos, direcciones y para control.
En la arquitectura tradicional de Intel (usada hasta modelos recientes), ese bus se llama el Front
Side Bus y es de tipo paralelo con 64 líneas de datos, 32 de direcciones además de múltiples
líneas de control que permiten la transmisión de datos entre el procesador y el resto del sistema.
Este esquema se ha utilizado desde el primer procesador de la historia, con mejoras en la
señalización que le permite funcionar con relojes de 333 Mhz haciendo 4 tranferencias por
ciclo.[6]
En algunos procesadores de AMD y en el Intel Core i7 se han usado otros tipos para el bus
principal de tipo serial. Entre estos se encuentra el bus HyperTransport que maneja los datos en
forma de paquetes usando una cantidad menor de líneas de comunicación, permitiendo
frecuencias de funcionamiento más altas.
Los microprocesadores de última generación de Intel y muchos de AMD poseen además un
controlador de memoria DDR en el interior del encapsulado lo que hace necesario la
implementación de buses de memoria del procesador hacia los módulos. Ese bus esta de
acuerdo a los estándares DDR de JEDEC y consisten en líneas de bus paralelo, para datos,
direcciones y control. Dependiendo de la cantidad de canales pueden existir de 1 a 3 buses de
memoria.
Arquitecturas

65xx
o
o























MOS Technology 6502
Western Design Center 65xx
ARM
Altera Nios, Nios II
AVR (puramente microcontroladores)
EISC
RCA 1802 (aka RCA COSMAC, CDP1802)
DEC Alpha
Intel
o Intel 4556, 4040
o Intel 8970, 8085, Zilog Z80
o Intel Itanium
o Intel i860
o Intel i515
LatticeMico32
M32R
MIPS
Motorola
o Motorola 6800
o Motorola 6809
o Motorola c115, ColdFire
o corelduo 15485
o sewcret ranses 0.2457
o Motorola 88000 (antecesor de la familia PowerPC con el IBM POWER)
IBM POWER (antecesor de la familia PowerPC con el Motorola 88000)
o Familia PowerPC, G3, G4, G5
NSC 320xx
OpenRISC
PA-RISC
National Semiconductor SC/MP ("scamp")
Signetics 2650
SPARC
SuperH family
Transmeta Crusoe, Transmeta Efficeon (arquitectura VLIW, con emulador de la IA32 de
32-bit Intel x86)
INMOS Transputer
x86
o Intel 8086, 8088, 80186, 80188 (arquitectura x86 de 16-bit con sólo modo real)
o Intel 80286 (arquitectura x86 de 16-bit con modo real y modo protegido)
o IA-32 arquitectura x86 de 32-bits
o x86-64 arquitectura x86 de 64-bits
Cambridge Consultants XAP
Memorias
En informática, la memoria (también llamada almacenamiento) se refiere a los componentes de
una computadora, dispositivos y medios de almacenamiento que retienen datos informáticos
durante algún intervalo de tiempo. Las memorias de computadora proporcionan unas de las
principales funciones de la computación moderna, la retención o almacenamiento de
información. Es uno de los componentes fundamentales de todas las computadoras modernas
que, acoplados a una unidad central de procesamiento (CPU por su sigla en inglés, central
processing unit), implementa lo fundamental del modelo de computadora de Von Neumann,
usado desde los años 1940.
En la actualidad, memoria suele referirse a una forma de almacenamiento de estado sólido
conocido como memoria RAM (memoria de acceso aleatorio, RAM por sus siglas en inglés
random access memory) y otras veces se refiere a otras formas de almacenamiento rápido pero
temporal. De forma similar, se refiere a formas de almacenamiento masivo como discos ópticos
y tipos de almacenamiento magnético como discos duros y otros tipos de almacenamiento más
lentos que las memorias RAM, pero de naturaleza más permanente. Estas distinciones
contemporáneas son de ayuda porque son fundamentales para la arquitectura de computadores
en general.
Además, se refleja una diferencia técnica importante y significativa entre memoria y dispositivos
de almacenamiento masivo, que se ha ido diluyendo por el uso histórico de los términos
"almacenamiento primario" (a veces "almacenamiento principal"), para memorias de acceso
aleatorio, y "almacenamiento secundario" para dispositivos de almacenamiento masivo. Esto se
explica en las siguientes secciones, en las que el término tradicional "almacenamiento" se usa
como subtítulo por conveniencia.
Propósitos del almacenamiento
Los componentes fundamentales de las computadoras de propósito general son la unidad
aritmético-lógica (ALU), la unidad de control, espacio de almacenamiento y los dispositivos de
entrada/salida. Si se elimina el almacenamiento, el aparato sería una simple calculadora en lugar
de una computadora. La habilidad para almacenar las instrucciones que forman un programa de
computadora y la información que manipulan las instrucciones es lo que hace versátiles a las
computadoras diseñadas según la arquitectura de programas almacenados
Una computadora digital representa toda la información usando el sistema binario. Texto,
números, imágenes, sonido y casi cualquier otra forma de información puede ser transformada
en una sucesión de bits, o dígitos binarios, cada uno de los cuales tiene un valor de 1 ó 0. La
unidad de almacenamiento más común es el byte, igual a 8 bits. Una determinada información
puede ser manipulada por cualquier computadora cuyo espacio de almacenamiento es
suficientemente grande como para que quepa el dato correspondiente o la representación
binaria de la información. Por ejemplo, una computadora con un espacio de almacenamiento de
ocho millones de bits, o un megabyte, puede ser usado para editar una novela pequeña.
Se han inventado varias formas de almacenamiento basadas en diversos fenómenos naturales.
No existen ningún medio de almacenamiento de uso práctico universal y todas las formas de
almacenamiento tienen sus desventajas. Por tanto, un sistema informático contiene varios tipos
de almacenamiento, cada uno con su propósito individual, como se muestra en el diagrama.
Almacenamiento primario
La memoria primaria está directamente conectada a la CPU de la computadora. Debe estar
presente para que la CPU funcione correctamente. El almacenamiento primario consiste en tres
tipos de almacenamiento:

Los registros del procesador son internos de la CPU. Contienen información que las
unidades aritmético-lógicas necesitan llevar a la instrucción en ejecución. Técnicamente,
son los más rápidos de los almacenamientos de la computadora, siendo transistores de


conmutación integrados en el chip de silicio del microprocesador (CPU) que funcionan
como "flip-flop" electrónicos.
La memoria caché es un tipo especial de memoria interna usada en muchas CPU para
mejorar su eficiencia o rendimiento. Parte de la información de la memoria principal se
duplica en la memoria caché. Comparada con los registros, la caché es ligeramente más
lenta pero de mayor capacidad. Sin embargo, es más rápida, aunque de mucha menor
capacidad que la memoria principal. También es de uso común la memoria caché multinivel - la "caché primaria" que es más pequeña, rápida y cercana al dispositivo de
procesamiento; la "caché secundaria" que es más grande y lenta, pero más rápida y
mucho más pequeña que la memoria principal.
La memoria principal contiene los programas en ejecución y los datos con que operan. La
unidad aritmético-lógica puede transferir información muy rápidamente entre un registro
del microprocesador y localizaciones del almacenamiento principal, también conocidas
como "direcciones de memoria". En las computadoras modernas se usan memorias de
acceso aleatorio basadas en electrónica del estado sólido, que está directamente
conectada a la CPU a través de un "bus de memoria" y de un "bus de datos".
Almacenamiento secundario
La memoria secundaria requiere que la computadora use sus canales de entrada/salida para
acceder a la información y se utiliza para almacenamiento a largo plazo de información
persistente. Sin embargo, la mayoría de los sistemas operativos usan los dispositivos de
almacenamiento secundario como área de intercambio para incrementar artificialmente la
cantidad aparente de memoria principal en la computadora. La memoria secundaria también se
llama "de almacenamiento masivo".
Habitualmente, la memoria secundaria o de almacenamiento masivo tiene mayor capacidad que
la memoria primaria, pero es mucho más lenta. En las computadoras modernas, los discos duros
suelen usarse como dispositivos de almacenamiento masivo. El tiempo necesario para acceder
a un byte de información dado almacenado en un disco duro es de unas milésimas de segundo
(milisegundos). En cambio, el tiempo para acceder al mismo tipo de información en una memoria
de acceso aleatorio (RAM) se mide en mil-millonésimas de segundo (nanosegundos).
Esto ilustra cuan significativa es la diferencia entre la velocidad de las memorias de estado
sólido y la velocidad de los dispositivos rotantes de almacenamiento magnético u óptico: los
discos duros son del orden de un millón de veces más lentos que la memoria (primaria). Los
dispositivos rotantes de almacenamiento óptico (unidades de CD y DVD) son incluso más lentos
que los discos duros, aunque es probable que su velocidad de acceso mejore con los avances
tecnológicos.
Por lo tanto, el uso de la memoria virtual, que es cerca de un millón de veces más lenta que
memoria “verdadera”, ralentiza apreciablemente el funcionamiento de cualquier computadora.
Muchos sistemas operativos implementan la memoria virtual usando términos como memoria
virtual o "fichero de caché". La principal ventaja histórica de la memoria virtual es el precio; la
memoria virtual resultaba mucho más barata que la memoria real. Esa ventaja es menos
relevante hoy en día. Aun así, muchos sistemas operativos siguen implementándola, a pesar de
provocar un funcionamiento significativamente más lento.
Almacenamiento terciario
La memoria terciaria es un sistema en el que un brazo robótico montará (conectará) o
desmontará (desconectará) un medio de almacenamiento masivo fuera de línea (véase el
siguiente punto) según lo solicite el sistema operativo de la computadora. La memoria terciaria
se usa en el área del almacenamiento industrial, la computación científica en grandes sistemas
informáticos y en redes empresariales. Este tipo de memoria es algo que los usuarios de
computadoras personales normales nunca ven de primera mano.
Almacenamiento fuera de línea
El almacenamiento fuera de línea es un sistema donde el medio de almacenamiento puede ser
extraído fácilmente del dispositivo de almacenamiento. Estos medios de almacenamiento suelen
usarse para transporte y archivo de datos. En computadoras modernas son de uso habitual para
este propósito los disquetes, discos ópticos y las memorias flash, incluyendo las unidades USB.
También hay discos duros USB que se pueden conectar en caliente. Los dispositivos de
almacenamiento fuera de línea usados en el pasado son cintas magnéticas en muchos tamaños
y formatos diferentes, y las baterías extraíbles de discos Winchester.
Almacenamiento de red
El almacenamiento de red es cualquier tipo de almacenamiento de computadora que incluye el
hecho de acceder a la información a través de una red informática. Discutiblemente, el
almacenamiento de red permite centralizar el control de información en una organización y
reducir la duplicidad de la información. El almacenamiento en red incluye:


El almacenamiento asociado a red es una memoria secundaria o terciaria que reside en
una computadora a la que otra de éstas puede acceder a través de una red de área local,
una red de área extensa, una red privada virtual o, en el caso de almacenamientos de
archivos en línea, internet.
Las redes de computadoras son computadoras que no contienen dispositivos de
almacenamiento secundario. En su lugar, los documentos y otros datos son almacenados
en un dispositivo de la red.
Características de las memorias
La división entre primario, secundario, terciario, fuera de línea se basa en la jerarquía de
memoria o distancia desde la unidad central de proceso. Hay otras formas de caracterizar a los
distintos tipos de memoria.
Volatilidad de la información



La memoria volátil requiere energía constante para mantener la información almacenada.
La memoria volátil se suele usar sólo en memorias primarias.La memoria RAM es una
memoria volatil, ya que pierde informacion en la falta de energia electrica.
La memoria no volátil retendrá la información almacenada incluso si no recibe corriente
eléctrica constantemente, como es el caso de la memoria ROM. Se usa para
almacenamientos a largo plazo y, por tanto, se usa en memorias secundarias, terciarias y
fuera de línea.
Memoria dinámica es una memoria volátil que además requiere que periódicamente se
refresque la información almacenada, o leída y reescrita sin modificaciones.
Habilidad para acceder a información no contigua


Acceso aleatorio significa que se puede acceder a cualquier localización de la memoria en
cualquier momento en el mismo intervalo de tiempo, normalmente pequeño.
Acceso secuencial significa que acceder a una unidad de información tomará un intervalo
de tiempo variable, dependiendo de la unidad de información que fue leída anteriormente.
El dispositivo puede necesitar buscar (posicionar correctamente el cabezal de
lectura/escritura de un disco), o dar vueltas (esperando a que la posición adecuada
aparezca debajo del cabezal de lectura/escritura en un medio que gira continuamente).
Habilidad para cambiar la información



Las memorias de lectura/escritura o memorias cambiables permiten que la información se
reescriba en cualquier momento. Una computadora sin algo de memoria de
lectura/escritura como memoria principal sería inútil para muchas tareas. Las
computadora modernas también usan habitualmente memorias de lectura/escritura como
memoria secundaria.
La memorias de sólo lectura retienen la información almacenada en el momento de
fabricarse y la memoria de escritura única (WORM) permite que la información se escriba
una sola vez en algún momento tras la fabricación. También están las memorias
inmutables, que se utilizan en memorias terciarias y fuera de línea. Un ejemplo son los
CD-ROMs.
Las memorias de escritura lenta y lectura rápida son memorias de lectura/escritura que
permite que la información se reescriba múltiples veces pero con una velocidad de
escritura mucho menor que la de lectura. Un ejemplo son los CD-RW.
Direccionamiento de la información



En la memoria de localización direccionable, cada unidad de información accesible
individualmente en la memoria se selecciona con su dirección de memoria numérica. En
las computadoras modernas, la memoria de localización direccionable se suele limitar a
memorias primarias, que se leen internamente por programas de computadora ya que la
localización direccionable es muy eficiente, pero difícil de usar para los humanos.
En las memorias de sistema de archivos, la información se divide en Archivos
informáticos de longitud variable y un fichero concreto se localiza en directorios y nombres
de archivos "legible por humanos". El dispositivo subyacente sigue siendo de localización
direccionable, pero el sistema operativo de la computadora proporciona la abstracción
del sistema de archivos para que la operación sea más entendible. En las computadora
modernas, las memorias secundarias, terciarias y fuera de línea usan sistemas de
archivos.
En las memorias de contenido direccionable (content-addressable memory), cada
unidad de información legible individualmente se selecciona con una valor hash o un
identificador corto sin relación con la dirección de memoria en la que se almacena la
información. La memoria de contenido direccionable pueden construirse usando software
o hardware; la opción hardware es la opción más rápida y cara.
Capacidad de memoria
Memorias de mayor capacidad son el resultado de la rápida evolución en tecnología de
materiales semiconductores. Los primeros programas de ajedrez funcionaban en máquinas que
utilizaban memorias de base magnética. A inicios de 1970 aparecen las memorias realizadas por
semiconductores, como las utilizadas en la serie de computadoras IBM 370.
La velocidad de los computadores se incrementó, multiplicada por 100.000 aproximadamente y
la capacidad de memoria creció en una proporción similar. Este hecho es particularmente
importante para los programas que utilizan tablas de transposición: a medida que aumenta la
velocidad de la computadora se necesitan memorias de capacidad proporcionalmente mayor
para mantener la cantidad extra de posiciones que el programa está buscando.
Se espera que la capacidad de procesadores siga aumentando en los próximos años; no es un
abuso pensar que la capacidad de memoria continuará creciendo de manera impresionante.
Memorias de mayor capacidad podrán ser utilizadas por programas con tablas de Hash de
mayor envergadura, las cuales mantendrán la información en forma permanente.

Minicomputadoras: se caracterizan por tener una configuración básica regular que puede
estar compuesta por un monitor, unidades de disquete, disco, impresora, etc. Su
capacidad de memoria varía de 16 a 256 kbytes.

Macrocomputadoras: son aquellas que dentro de su configuración básica contienen
unidades que proveen de capacidad masiva de información, terminales (monitores), etc.
Su capacidad de memoria varía desde 256 a 512 kbytes, también puede tener varios
megabytes o hasta gigabytes según las necesidades de la empresa.

Microcomputadores y computadoras personales: con el avance de la microelectrónica en
la década de los 70 resultaba posible incluir todos los componente del procesador central
de una computadora en un solo circuito integrado llamado microprocesador. Ésta fue la
base de creación de unas computadoras a las que se les llamó microcomputadoras. El
origen de las microcomputadoras tuvo lugar en los Estados Unidos a partir de la
comercialización de los primeros microprocesadores (INTEL 8008, 8080). En la década
de los 80 comenzó la verdadera explosión masiva, de los ordenadores personales
(Personal Computer PC) de IBM. Esta máquina, basada en el microprocesador INTEL
8008, tenía características interesantes que hacían más amplio su campo de operaciones,
sobre todo porque su nuevo sistema operativo estandarizado (MS-DOS, Microsoft Disk
Operating Sistem) y una mejor resolución óptica, la hacían más atractiva y fácil de usar. El
ordenador personal ha pasado por varias transformaciones y mejoras que se conocen
como XT(Tecnología Extendida), AT(Tecnología Avanzada) y PS/2...
Memorias magnéticas
Las memorias magnéticas usan diferentes patrones de magnetización sobre una superficie
cubierta con una capa magnetizada para almacenar información. Las memorias magnéticas son
no volátiles. Se llega a la información usando uno o más cabezales de lectura/escritura. Como el
cabezal de lectura/escritura solo cubre una parte de la superficie, el almacenamiento magnético
es de acceso secuencial y debe buscar, dar vueltas o las dos cosas. En computadoras
modernas, la superficie magnética será de alguno de estos tipos:




Disco magnético.
Disquete, usado para memoria fuera de línea.
Disco duro, usado para memoria secundario.
Cinta magnética, usada para memoria terciaria y fuera de línea.
En las primeras computadoras, el almacenamiento magnético se usaba también como memoria
principal en forma de memoria de tambor, memoria de núcleo, memoria en hilera de núcleo,
memoria película delgada, memoria de Twistor o memoria burbuja. Además, a diferencia de hoy,
las cintas magnéticas se solían usar como memoria secundaria.
Memoria de semiconductor
La memoria de semiconductor usa 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. En las computadoras modernas, la memoria principal consiste casi
exclusivamente en memoria de semiconductor volátil y dinámica, también conocida como
memoria dinámica de acceso aleatorio o más comunmente RAM, su acrónimo inglés. Con el
cambio de siglo, ha habido un crecimiento constante en el uso de un nuevo tipo de memoria de
semiconductor no volátil llamado memoria flash. Dicho crecimiento se ha dado, principalmente
en el campo de las memorias fuera de línea en computadoras domésticas. Las memorias de
semiconductor no volátiles se están usando también como memorias secundarias en varios
dispositivos de electrónica avanzada y computadoras especializadas y no especializadas.
Memorias de disco óptico
Las memorias en disco óptico almacenan información usando agujeros minúsculos grabados
con un láser en la superficie de un disco circular. La información se lee iluminando la superficie
con un diodo láser y observando la reflexión. Los discos ópticos son no volátil y de acceso
secuencial. Los siguientes formatos son de uso común:





CD, CD-ROM, DVD: Memorias de simplemente solo lectura, usada para distribución
masiva de información digital (música, vídeo, programas informáticos).
CD-R, DVD-R, DVD+R: Memorias de escritura única usada como memoria terciaria y
fuera de línea.
CD-RW, DVD-RW, DVD+RW, DVD-RAM: Memoria de escritura lenta y lectura rápida
usada como memoria terciaria y fuera de línea.
Blu-ray: Formato de disco óptico pensado para almacenar vídeo de alta calidad y datos.
Para su desarrollo se creó la BDA, en la que se encuentran, entre otros, Sony o Phillips.
HD DVD
Se han propuesto los siguientes formatos:


HVD
Discos cambio de fase Dual
Memorias de discos magneto-ópticos
Las Memorias de disco magneto óptico son un disco de memoria óptica donde la información
se almacena en el estado magnético de una superficie ferromagnética. La información se lee
ópticamente y se escribe combinando métodos magnéticos y ópticos. Las memorias de discos
magneto ópticos son de tipo no volátil, de acceso secuencial, de escritura lenta y lectura rápida.
Se usa como memoria terciaria y fuera de línea.
Tarjetas perforadas en un telar de Jacquard.
Las tarjetas perforadas fueron utilizados por primera vez por Basile Bouchon para el control de
telares textiles en Francia.[1] En 1801 el sistema de Bouchon fue perfeccionado por Joseph Marie
Jacquard, quien desarrolló un telar automático, conocido como telar de Jacquard.[2] Herman
Hollerith desarrolló la tecnología de procesamiento de datos de tarjetas perforadas para el censo
de Estados Unidos de 1890 y posteriormente fundó la Tabulating Machine Company, una de las
precursoras de IBM. IBM desarrolló la tecnología de la tarjeta perforada como una potente
herramienta para el procesamiento de datos empresariales y produjo una línea extensiva de
máquinas de registro que utilizaban papel perforado para el almacenamiento de datos y su
procesado automático. En el año 1950, las tarjetas IBM y las unidades máquinas de registro IBM
se habían vuelto indispensables en la industria y el gobierno estadounidense. Durante los años
1960, las tarjetas perforadas fueron gradualmente reemplazadas por las cintas magnéticas,
aunque su uso fue muy común hasta medidados de los años 1970 con la aparición de los discos
magnéticos. La información se grababa en las tarjetas perforando agujeros en el papel o la
tarjeta. La lectura se realizaba por sensores eléctricos (más tarde ópticos) donde una
localización particular podía estar agujereada o no.
Para almacenar información, los tubos Williams usaban un tubo de rayos catódicos y los tubos
Selectrón usaban un gran tubo de vacío. Estos dispositivos de memoria primaria tuvieron una
corta vida en el mercado ya que el tubo de Williams no era fiable y el tubo de Selectron era caro.
La memoria de línea de retardo usaba ondas sonoras en una sustancia como podía ser el
Mercurio para guardar información. La memoria de línea de retardo era una memoria dinámica
volátil, ciclo secuencial de lectura/escritura. Se usaba como memoria principal.
La memoria de cambio de fase usa las fases de un material de cambio de fase para almacenar
información. Dicha información se lee observando la resistencia eléctrica variable del material.
La memoria de cambio de fase sería una memoria de lectura/escritura no volátil, de acceso
aleatorio podría ser usada como memoria primaria, secundaria y fuera de línea. La memoria
holográfica almacena ópticamente la información dentro de cristales o fotopolímeros. Las
memorias holográficas pueden utilizar todo el volumen del medio de almacenamiento, a
diferencia de las memorias de discos ópticos, que están limitadas a un pequeño número de
superficies en capas. La memoria holográfica podría ser no volátil, de acceso secuencial y tanto
de escritura única como de lectura/escritura. Puede ser usada tanto como memoria secundaria
como fuera de línea.
La memoria molecular almacena la información en polímeros que pueden almacenar puntas de
carga eléctrica. La memoria molecular puede ser especialmente interesante como memoria
principal.
Recientemente se ha propuesto utilizar el spin de un electrón como memoria. Se ha demostrado
que es posible desarrollar un circuito electrónico que lea el spin del electrón y lo convierta en una
señal eléctrica.[cita requerida]
Memoria principal
La memoria principal o primaria (MP), también llamada memoria central,es una unidad
dividida en celdas que se identifican mediante una dirección. Está formada por bloques de
circuitos integrados o chips capaces de almacenar, retener o "memorizar" información digital, es
decir, valores binarios; a dichos bloques tiene acceso el microprocesador de la computadora.
La MP se comunica con el microprocesador de la CPU mediante el bus de direcciones. El ancho
de este bus determina la capacidad que posea el microprocesador para el direccionamiento de
direcciones en memoria.
En algunas oportunidades suele llamarse "memoria interna" a la MP, porque a diferencia de los
dispositivos de memoria secundaria, la MP no puede extraerse tan fácilmente por usuarios no
técnicos.
La MP es el núcleo del sub-sistema de memoria de un computador, y posee una menor
capacidad de almacenamiento que la memoria secundaria, pero una velocidad millones de
veces superior.
Tipos
En las computadoras son utilizados dos tipos:
1. ROM o memoria de sólo lectura (Read Only Memory). Viene grabada de fábrica con una
serie de programas. El software de la ROM se divide en dos partes:
1. Rutina de arranque o POST (Power On Self Test, auto diagnóstico de encendido):
Realiza el chequeo de los componentes de la computadora; por ejemplo, circuitos
controladores de video, de acceso a memoria, el teclado, unidades de disco,etc. Se
encarga de determinar cuál es el hardware que está presente y de la puesta a
punto de la computadora. Mediante un programa de configuración, el SETUP, lee
una memoria llamada CMOS RAM (RAM de Semiconductor de óxido metálico).
Ésta puede mantener su contenido durante varios años, aunque la computadora
está apagada, con muy poca energía eléctrica suministrada por una batería,
guarda la fecha, hora, la memoria disponible, capacidad de disco rígido, si tiene
disquetera o no. Se encarga en el siguiente paso de realizar el arranque (booteo):
lee un registro de arranque 'BR' (Boot Record) del disco duro o de otra unidad
(como CD, USB, etc.), donde hay un programa que carga el sistema operativo a la
RAM. A continuación cede el control a dicho sistema operativo y el computador
queda listo para trabajar.
2. Rutina BIOS o Sistema Básico de Entrada-Salida (Basic Input-Output System):
permanece activa mientras se está usando el computador. Permite la activación de
los periféricos de entrada/salida: teclado, monitor, ratón, etc.
2. RAM o memoria de acceso aleatorio (Random Access Memory). Es la memoria del
usuario que contiene de forma temporal el programa, los datos y los resultados que están
siendo usados por el usuario del computador. En general es volátil, pierde su contenido
cuando se apaga el computador, es decir que mantiene los datos y resultados en tanto el
bloque reciba alimentación eléctrica, a excepción de la CMOS RAM.
Tanto la RAM como la ROM son circuitos integrados, llamados comúnmente chips. El chip o
circuito integrado es una pequeña pastilla de material semiconductor (silicio) que contiene
múltiples circuitos integrados, tales como transistores, entre otros dispositivos electrónicos, con
los que se realizan numerosas funciones en computadoras y dispositivos electrónicos; que
permiten, interrumpen o aumentan el paso de la corriente. Estos chips están sobre una tarjeta o
placa.
El contenido de las memorias no es otra cosa que dígitos binarios o bits (binary digits), que se
corresponden con dos estados lógicos: el 0 (cero) sin carga eléctrica y el 1 (uno) con carga
eléctrica. A cada uno de estos estados se le llama bit, que es la unidad mínima de
almacenamiento de datos.
El microprocesador direcciona las posiciones de la RAM para poder acceder a los datos
almacenados en ellas y para colocar los resultados de las operaciones.
Al "bloque de MP", suele llamarse memoria RAM, por ser éste el tipo de chips de memoria que
conforman el bloque, pero se le asocian también el chip CMOS, que almacena al programa
BIOS del sistema y los dispositivos periféricos de la memoria secundaria (discos y otros
periféricos), para conformar el sub-sistema de memoria del computador.
Los bloques RAM, los ROM y las memorias de almacenamiento secundario conforman el
subsistema de memoria de una computado
Memoria
de
solo
lectura
Memoria ROM conteniendo la BIOS de una vieja placa madre (placa base).
La Memoria de sólo lectura (normalmente conocida por su acrónimo, Read Only Memory) es
una clase de medio de almacenamiento utilizado en ordenadores y otros dispositivos
electrónicos. Los datos almacenados en la ROM no se puede modificar -al menos no de manera
rápida o fácil- y se utiliza principalmente para contener el firmware (software que está
estrechamente ligado a hardware específico, y es poco probable que requiera actualizaciones
frecuentes) u otro contenido vital para el funcionamiento del dispositivo.
En su sentido más estricto, se refiere sólo 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. Sin embargo, las ROM más modernas, como
EPROM y Flash EEPROM se pueden borrar y volver a programar varias veces, aún siendo
descritos como "memoria de sólo lectura (ROM), porque 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 dicha razón, las máscaras ROM no se suelen encontrar en
hardware producido a partir de 2007.
Historia
El tipo más simple de ROM en estado sólido es de la misma antigüedad que la propia tecnología
semiconductora. Las puertas lógicas combinacionales pueden usarse en conjunto para indexar
una dirección de memoria de n bits en valores de m bits de tamaño (una tabla de consultas).
Con la invención de los circuitos integrados se desarrolló la máscara ROM. La máscara ROM
consistía en una cuadrícula de líneas formadas por una palabra y líneas formadas por un bit
seleccionadas respectivamente a partir de cambios en el transistor. De esta manera podían
representar una tabla de consultas arbitraria y un lapso de propagación deductible.
En las máscaras ROM los datos están codificados en el mismo circuito, así que sólo se pueden
programar durante la fabricación. Esto acarrea serias desventajas:
1. Sólo es económico comprarlas en grandes cantidades, ya que el usuario contrata
fundiciones para producirlas según sus necesidades.
2. El producto entre completar el diseño de la máscara y recibir el resultado final es muy
largo.
3. Son inútiles para I+D por el hecho de que durante el desarrollo se ha de producir más de
una.
4. Si un producto tiene un error en la máscara, la única manera de arreglarlo es cambiando
físicamente la ROM.
Los desarrollos posteriores tomaron en cuenta estas deficiencias, así pues se creó la memoria
de sólo lectura programable (PROM). Inventada en 1956 permitía a los usuarios modificarla sólo
una vez con la aplicación de pulsos de alto voltaje. Eliminó los problemas 1 y 2 antes
mencionados, ya que el usuario podía pedir gran cantidad de PROMs vacías y programarlas con
el contenido necesario elegido por los diseñadores. En 1971 se desarrolló la memoria de sólo
lectura programable y borrable (EPROM) que permitía reiniciar su contenido exponiendo el
dispositivo a fuertes rayos ultravioleta. De esta manera erradicaba el punto 3 de la anterior lista.
Más tarde en 1983 se inventó la EEPROM, resolviendo el conflicto número 4 de la lista ya que
se podía reprogramar el contenido mientras proveyese un mecanismo para recibir contenido
externo (por ejemplo, a través de un cable serial). En medio de la década de 1980 Toshiba
inventó la memoria flash, una forma de EEPROM que permitía eliminar y reprogramar contenido
en una misma operación mediante pulsos eléctricos miles de veces sin sufrir ningún daño.
Todas estas tecnologías mejoraron la versatilidad y flexibilidad de la ROM aunque el costo por
chip incrementaba. Por eso las máscaras ROM fueron la solución económica durante bastantes
años. Aún así, hay que tener en cuenta que las nuevas tecnologías con más capacidad de
modificación estuvieron diseñadas para eliminar del mercado a las ROM y reemplazarla.
El producto más reciente es la memoria NAND, otra vez desarrollada por Toshiba. Los
diseñadores rompieron explícitamente con el pasado diciendo que enfocaba "ser un reemplazo
de los discos duros y no de la antigua ROM. En 2007, NAND ha avanzado bastante en su meta,
ofreciendo un rendimiento comparable al de los discos duros, una mejor tolerancia a los choques
físicos y una miniaturización extrema (como por ejemplo memorias USB y tarjetas de memoria
MicroSD).
Uso de la ROM para almacenamiento de software
Los ordenadores domésticos a comienzos de los 80 venían con todo su
sistema operativo en ROM. No había otra alternativa razonable ya que las
unidades de disco eran generalmente opcionales. La actualización a una
nueva versión significa usar un soldador o un grupo de interruptores DIP y
reemplazar el viejo chip de ROM por uno nuevo. Actualmente los sistemas
operativos en general ya no van en ROM. Todavía los ordenadores pueden dejar algunos de sus
programas en memoria ROM, pero incluso en este caso, es más frecuente que vaya en memoria
flash. Los teléfonos móviles y los asistentes personales digitales (PDA) suelen tener programas
en memoria ROM (o por lo menos en memoria flash).
Algunas de las consolas de videojuegos que usan programas basados en la memoria ROM son
la Super Nintendo, la Nintendo 64, la Sega Mega Drive o la Game Boy. Estas memorias ROM,
pegadas a cajas de plástico aptas para ser utilizadas e introducidas repetidas veces, son
conocidas como cartuchos. Por extensión la palabra ROM puede referirse también a un archivo
de datos que contenga una imagen del programa que se distribuye normalmente en memoria
ROM, como una copia de un cartucho de videojuego.
Una razón de que todavía se utilice la memoria ROM para almacenar datos es la velocidad ya
que los discos son más lentos. Aún más importante, no se puede leer un programa que es
necesario para ejecutar un disco desde el propio disco. Por lo tanto, la BIOS, o el sistema de
arranque oportuno del PC normalmente se encuentran en una memoria ROM.
Velocidad de lectura
Aunque la velocidad relativa de RAM vs ROM ha variado con el tiempo, desde el año 2007 La
memoria RAM es más rápida para la lectura que la mayoría de las memorias ROM, por lo tanto
el contenido ROM se suele traspasar normalmente a la memoria RAM cuando se utiliza.
Velocidad de escritura
Para esos tipos de ROM que puedan ser modificados eléctricamente, la velocidad es mucho
más lenta que la velocidad de lectura, y puede requerir excepcionalmente alto voltaje,
Memoria de acceso aleatorio
Módulos de memoria instalados de 256 MB cada uno en un sistema con doble canal.
Integrado de silicio de 64 bits sobre un sector de memoria de núcleo (finales de los 60).
La memoria de acceso aleatorio (en inglés: random-access memory cuyo acrónimo es RAM)
es la memoria desde donde el procesador recibe las instrucciones y guarda los resultados. Es el
área de trabajo para la mayor parte del software de un computador. [1] Existe una memoria
intermedia entre el procesador y la RAM, llamada cache, pero ésta sólo es una copia (de acceso
rápido) de la memoria principal (típicamente discos duros) almacenada en los módulos de
RAM.[1]
Se trata de una memoria de estado sólido tipo DRAM en la que se puede tanto leer como
escribir información. Se utiliza como memoria de trabajo para el sistema operativo, los
programas y la mayoría del software. Es allí donde se cargan todas las instrucciones que
ejecutan el procesador y otras unidades de cómputo. Se dicen "de acceso aleatorio" porque se
puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier
posición, no siendo necesario seguir un orden para acceder a la información de la manera más
rápida posible.
La frase memoria RAM se utiliza frecuentemente para referirse a los módulos de memoria que
se usan en los computadores personales y servidores. En el sentido estricto, los modulos de
memoria contienen un tipo, entre varios de memoria de acceso aleatorio , ya que las ROM,
memorias Flash , caché (SRAM) , los registros en procesadores y otras unidades de
procesamiento también poseen la cualidad de presentar retardos de acceso iguales para
cualquier posición. Los módulos de RAM son la presentación comercial de este tipo de memoria,
que se compone de integrados soldados sobre un circuito impreso, en otros dispositivos como
las consolas de videojuegos, esa misma memoria va soldada sobre la tarjeta principal.

Historia
4MB de memoria RAM para un computador VAX de finales de los 70. Los integrados de
memoria DRAM están agrupados arriba a derecha e izquierda.
Módulos de memoria tipo SIPP instalados directamente sobre la placa base.
La denominación “de Acceso aleatorio” surgió para diferenciarlas de las memoria de acceso
secuencial, debido a que en los comienzos de la computación, las memorias principales (o
primarias) de las computadoras eran siempre de tipo RAM y las memorias secundarias (o
masivas) eran de acceso secuencial (cintas o tarjetas perforadas). Es frecuente pues que se
hable de memoria RAM para hacer referencia a la memoria principal de una computadora, pero
actualmente la denominación no es precisa.
Uno de los primeros tipos de memoria RAM fue la memoria de núcleo magnético, desarrollada
entre 1949 y 1952 y usada en muchos computadores hasta el desarrollo de circuitos integrados
a finales de los años 60 y principios de los 70. Antes que eso, las computadoras usaban reles y
líneas de retardo de varios tipos construidas con tubos de vacío para implementar las funciones
de memoria principal con o sin acceso aleatorio.
En 1969 fueron lanzadas una de las primeras memorias RAM basadas en semiconductores de
silicio por parte de Intel con el integrado 3101 de 64 bits de memoria y para el siguiente año se
presentó una memoria DRAM de 1 Kilobite, referencia 1103 que se constituyó en un hito, ya que
fue la primera en ser comercializada con éxito, lo que significó el principio del fin para las
memorias de núcleo magnético. En comparación con los integrados de memoria DRAM
actuales, la 1103 es primitiva en varios aspectos, pero tenia un desempeño mayor que la
memoria de núcleos.
En 1973 se presentó una innovación que permitió otra miniaturización y se convirtió en estándar
para las memorias DRAM: la multiplexación en tiempo de la direcciones de memoria. MOSTEK
lanzó la referencia MK4096 de 4Kb en un empaque de 16 pines, [2] mientras sus competidores las
fabricaban en el empaque DIP de 22 pines. El esquema de direccionamiento [3] se convirtió en un
estándar de facto debido a la gran popularidad que logró esta referencia de DRAM. Para finales
de los 70 los integrados eran usados en la mayoría de computadores nuevos, se soldaban
directamente a las placas base o se instalaban en zócalos, de manera que ocupaban un área
extensa de circuito impreso. Con el tiempo se hizo obvio que la instalación de RAM sobre el
impreso principal, impedía la miniaturización , entonces se idearon los primeros módulos de
memoria como el SIPP, aprovechando las ventajas de la construcción modular. El formato SIMM
fue una mejora al anterior, eliminando los pines metálicos y dejando unas áreas de cobre en uno
de los bordes del impreso, muy similares a los de las tarjetas de expansión, de hecho los
módulos SIPP y los primeros SIMM tienen la misma distribución de pines.
A finales de los 80 el aumento en la velocidad de los procesadores y el aumento en el ancho de
banda requerido, dejaron rezagadas a las memorias DRAM con el esquema original MOSTEK,
de manera que se realizaron una serie de mejoras en el direccionamiento como las siguientes:
Módulos formato SIMM de 30 y 72 pines, los últimos fueron utilizados con integrados tipo EDORAM.

FPM-RAM (Fast Page Mode RAM)
Inspirado en técnicas como el "Burst Mode" usado en procesadores como el Intel 486,[4] se
implantó un modo direccionamiento en el que el controlador de memoria envía una sola
dirección y recibe a cambio esa y varias consecutivas sin necesidad de generar todas las
direcciones. Esto supone un ahorro de tiempos ya que ciertas operaciones son repetitivas
cuando se desea acceder a muchas posiciones consecutivas. Funciona como si deseáramos
visitar todas las casas en una calle: después de la primera vez no seria necesario decir el
número de la calle, únicamente seguir la misma. Se fabricaban con tiempos de acceso de 70 ó
60 ns y fueron muy populares en sistemas basados en el 486 y los primeros Pentium.

EDO-RAM (Extended Data Output RAM)
Lanzada en 1995 y con tiempos de accesos de 40 o 30ns suponía una mejora sobre su
antecesora la FPM. La EDO, también es capaz de enviar direcciones contiguas pero direcciona
la columna que va utilizar mientras que se lee la información de la columna anterior, dando como
resultado una eliminación de estados de espera, manteniendo activo el buffer de salida hasta
que comienza el próximo ciclo de lectura.

BEDO-RAM (Burst Extended Data Output RAM)
Fue la evolución de la EDO RAM y competidora de la SDRAM, fue presentada en 1997. Era un
tipo de memoria que usaba generadores internos de direcciones y accedía a mas de una
posición de memoria en cada ciclo de reloj, de manera que lograba un desempeño un 50%
mejor que la EDO. Nunca salió al mercado, dado que Intel y otros fabricantes se decidieron por
esquemas de memoria sincrónicos que si bien tenían mucho del direccionamiento MOSTEK,
agregan funcionalidades distintas como señales de reloj.
Módulos de memoria RAM
Formato SO-DIMM.
Los módulos de memoria RAM son tarjetas de circuito impreso que tienen soldados integrados
de memoria DRAM por una o ambas caras. La implementación DRAM se basa en una topología
de Circuito eléctrico que permite alcanzar densidades altas de memoria por cantidad de
transistores, logrando integrados de cientos o miles de Kilobits. Además de DRAM, los módulos
poseen un integrado que permiten la identificación del mismos ante el computador por medio del
protocolo de comunicación SPD.
La conexión con los demás componentes se realiza por medio de un área de pines en uno de los
filos del circuito impreso, que permiten que el modulo al ser instalado en un zócalo apropiado de
la placa base, tenga buena conexión eléctrica con los controladores de memoria y las fuentes de
alimentación. Los primeros módulos comerciales de memoria eran SIPP de formato propietario,
es decir no había un estándar entre distintas marcas. Otros módulos propietarios bastante
conocidos fueron los RIMM, ideados por la empresa Rambus.
La necesidad de hacer intercambiable los módulos y de utilizar integrados de distintos
fabricantes condujo al establecimiento de estándares de la industria como los JEDEC.



Módulos SIMM: Formato usado en computadores antiguos. Tenían un bus de datos de 16
o 32 bits
Módulos DIMM: Usado en computadores de escritorio. Se caracterizan por tener un bus
de datos de 64 bits.
Módulos SO-DIMM: Usado en computadores portátiles. Formato miniaturizado de DIMM.
Relación con el resto del sistema
Diagrama de la arquitectura de un ordenador.
Dentro de la jerarquía de memoria la RAM se encuentra en un nivel después de los registros del
procesador y de las caches. Es una memoria relativamente rápida y de una capacidad media: en
la actualidad (año 2010), es fácil encontrar memorias con velocidades de más de 1 Ghz y
capacidades de hasta 8 GB. La memoria RAM contenida en los módulos, se conecta a un
controlador de memoria que se encarga de gestionar las señales entrantes y salientes de los
integrados DRAM. Algunas señales son las mismas que se utilizan para utilizar cualquier
memoria: Direcciones de las posiciones, datos almacenados y
señales de control.
El controlador de memoria debe ser diseñado basándose en una
tecnología de memoria, por lo general soporta solo una, pero
existen excepciones de sistemas cuyos controladores soportan
dos tecnologías (por ejemplo SDR y DDR o DDR1 y DDR2), esto
sucede en las épocas de entrada de un nuevo tipo de RAM. Los
controladores de memoria en sistemas como PC y servidores se
encuentran embebidos en el llamado "North Bridge" o dentro del mismo procesador (en el caso
de los procesadores AMD Athlon e Intel Core i7) y son los encargados de manejar la mayoría de
información que entra y sale del procesador.
Las señales básicas en el módulo están divididas en dos buses y un conjunto misceláneo de
líneas de control y alimentación. Entre todas forman el bus de memoria:

Bus de datos: Son las líneas que llevan información entre los integrados y el controlador.
Por lo general están agrupados en octetos siendo de 8,16,32 y 64 bits, cantidad que debe
igualar el ancho del bus de datos del procesador. En el pasado, algunos formatos de
modulo, no tenían un ancho de bus igual al del procesador.En ese caso había que montar
módulos en pares o en situaciones extremas, de a 4 módulos, para completar lo que se
denominaba banco de memoria, de otro modo el sistema no funciona. Esa es la principal
razón de haber aumentar el número de pines en los módulos, igualando el ancho de bus
de procesadores como el Pentium de 64 bits a principios de los 90.

Bus de direcciones: Es un bus en el cual se colocan las direcciones de memoria a las
que se requiere acceder. No es igual al bus de direcciones del resto del sistema, ya que
está multiplexado de manera que la dirección se envía en dos etapas.Para ello el
controlador realiza temporizaciones y usa las líneas de control. En cada estándar de
módulo se establece un tamaño máximo en bits de este bus, estableciendo un límite
teórico de la capacidad máxima por módulo.

Señales misceláneas: Entre las que están las de la alimentación (Vdd, Vss) que se
encargan de entregar potencia a los integrados. Están las líneas de comunicación para el
integrado de presencia que da información clave acerca del módulo. También están las
líneas de control entre las que se encuentran las llamadas RAS (row address strobe) y
CAS (column address strobe) que controlan el bus de direcciones y las señales de reloj
en las memorias sincrónicas SDRAM.
Entre las características sobresalientes del controlador de memoria, está la capacidad de
manejar la tecnología de canal doble (Dual Channel)o tres canales, donde el controlador maneja
bancos de memoria de 128 bits. Aunque el ancho del bus de datos del procesador sigue siendo
de 64 bits, el controlador de memoria puede entregar los datos de manera intercalada, optando
por uno u otro canal, reduciendo las latencias vistas por el procesador. La mejora en el
desempeño es variable y depende de la configuración y uso del equipo. Esta característica ha
promovido la modificación de los controladores de memoria, resultando en la aparición de
nuevos chipsets (la serie 865 y 875 de Intel) o de nuevos zócalos de procesador en los AMD (el
939 con canal doble , reemplazo el 754 de canal sencillo). Los equipos de gama media y alta por
lo general se fabrican basados en chipsets o zócalos que soportan doble canal.
Tecnologías de memoria
La tecnología de memoria actual usa una señal de sincronización para realizar las funciones de
lectura-escritura de manera que siempre esta sincronizada con un reloj del bus de memoria, a
diferencia de las antiguas memorias FPM y EDO que eran asíncronas. Hace más de una década
toda la industria se decidió por las tecnologías síncronas, ya que permiten construir integrados
que funcionen a una frecuencia mayor a 66 Mhz (en la actualidad (2009) alcanzaron los 1333
Mhz).
Memorias RAM con tecnologías usadas en la actualidad.
SDR SDRAM
Artículo principal: SDRAM
Memoria síncrona, con tiempos de acceso de entre 25 y 10 ns y que se presentan en módulos
DIMM de 168 contactos. Fue utilizada en los Pentium II y en los Pentium III , así como en los
AMD K6, AMD Athlon K7 y Duron. Está muy extendida la creencia de que se llama SDRAM a
secas, y que la denominación SDR SDRAM es para diferenciarla de la memoria DDR, pero no
es así, simplemente se extendió muy rápido la denominación incorrecta. El nombre correcto es
SDR SDRAM ya que ambas (tanto la SDR como la DDR) son memorias síncronas dinámicas.
Los tipos disponibles son:


PC100: SDR SDRAM, funciona a un máx de 100 MHz.
PC133: SDR SDRAM, funciona a un máx de 133 MHz.
DDR SDRAM
Artículo principal: DDR SDRAM
Memoria síncrona, envía los datos dos veces por cada ciclo de reloj. De este modo trabaja al
doble de velocidad del bus del sistema, sin necesidad de aumentar la frecuencia de reloj. Se
presenta en módulos DIMM de 184 contactos. Los tipos disponibles son:



PC2100 ó DDR 266: funciona a un máx de 133 MHz.
PC2700 ó DDR 333: funciona a un máx de 166 MHz.
PC3200 ó DDR 400: funciona a un máx de 200 MHz.
DR2 SDRAM
SDRAM DDR2.
Artículo principal: DDR2
Las memorias DDR 2 son una mejora de las memorias DDR (Double Data Rate), que permiten
que los búferes de entrada/salida trabajen al doble de la frecuencia del núcleo, permitiendo que
durante cada ciclo de reloj se realicen cuatro transferencias. Se presentan en módulos DIMM de
240 contactos. Los tipos disponibles son:


PC2-4200 ó DDR2-533: funciona a un máx de 266 MHz.
PC2-5300 ó DDR2-667: funciona a un máx de 333 MHz.
DDR3 SDRAM
Artículo principal: DDR3
Considerado el sucesor de la actual memoria estándar DDR 2, DDR 3 promete proporcionar
significantes mejoras en el rendimiento en niveles de bajo voltaje, lo que lleva consigo una
disminución del gasto global de consumo. Los módulos DIMM DDR 3 tienen 240 pines, el mismo
número que DDR 2; sin embargo, los DIMMs son físicamente incompatibles, debido a una
ubicación diferente de la muesca.
RDRAM (Rambus DRAM)
Artículo principal: RDRAM
Memoria de gama alta basada en un protocolo propietario creado por la empresa Rambus, lo
cual obliga a sus compradores a pagar regalías en concepto de uso. Esto ha hecho que el
mercado se decante por la memoria DDR de uso libre, excepto algunos servidores de grandes
prestaciones (Cray) y la consola PlayStation 3. Se presenta en módulos RIMM de 184 contactos.
Detección y corrección de errores
Existen dos clases de errores en los sistemas de memoria, las fallas (Hard fails) que son daños
en el hardware y los errores (soft errors) provocados por causas fortuitas. Los primeros son
relativamente fáciles de detectar (en algunas condiciones el diagnóstico es equivocado), los
segundos al ser resultado de eventos aleatorios, son más difíciles de hallar. En la actualidad la
confiabilidad de las memorias RAM frente a los errores, es suficientemente alta como para no
realizar verificación sobre los datos almacenados, por lo menos para aplicaciones de oficina y
caseras. En los usos más críticos, se aplican técnicas de corrección y detección de errores
basadas en diferentes estrategias:

La técnica del bit de paridad consiste en guardar un bit adicional por cada byte de datos,
y en la lectura se comprueba si el número de unos es par (paridad par) o impar (paridad
impar), detectándose así el error.

Una técnica mejor es la que usa ECC, que permite detectar errores de 1 a 4 bits y corregir
errores que afecten a un sólo bit esta técnica se usa sólo en sistemas que requieren alta
fiabilidad.
Por lo general los sistemas con cualquier tipo de protección contra errores tiene un costo más
alto, y sufren de pequeñas penalizaciones en desempeño, con respecto a los sistemas sin
protección. Para tener un sistema con ECC o paridad, el chipset y las memorias debe tener
soportar esas tecnologías. La mayoría de placas base no poseen soporte.
Para los fallos de memoria se pueden utilizar herramientas de software especializadas que
realizan pruebas integrales sobre los módulos de memoria RAM. Entre estos programas uno de
los más conocidos es la aplicación Memtest86+ que detecta fallos de memoria.
Memoria RAM registrada
Es un tipo de módulo usado frecuentemente en servidores y equipos especiales. Poseen
circuitos integrados (CI) que se encargan de repetir las señales de control y direcciones . Las
señales de reloj son reconstruidas con ayuda de un CI PLL que está en el módulo mismo. Las
señales de datos pasan directamente del bus de memoria a los CI de memoria DRAM.
Estas características permiten conectar múltiples módulos de memoria (más de 4) de alta
capacidad sin que haya perturbaciones en las señales del controlador de memoria, haciendo
posible sistemas con gran cantidad de memoria principal (8 a 16 GB). Con memorias no
registradas, no es posible, debido a los problemas surgen de sobrecarga eléctrica a las señales
enviadas por el controlador, fenómeno que no sucede con las registradas por estar de algún
modo aisladas.
Entre las desventajas de estos módulos están el hecho de que se agrega un ciclo de retardo
para cada solicitud de acceso a una posición no consecutiva y por supuesto el precio, que suele
ser mucho más alto que el de las memorias de PC. Este tipo de módulos es incompatible con los
controladores de memoria que no soportan el modo registrado, a pesar de que se pueden
instalar físicamente en el zócalo. Se pueden reconocer visualmente porque tienen un integrado
mediano, cerca del centro geométrico del circuito impreso, además de que estos módulos suelen
ser algo más altos.[5]
Memoria virtual
Cómo la memoria virtual se mapea a la memoria física.
La memoria virtual es una técnica de administración de la memoria real que permite al sistema
operativo brindarle al software de usuario y a si mismo un espacio de direcciones mayor que la
memoria real o física.
La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria
caché (tanto dentro como fuera del CPU), la memoria física (generalmente en forma de RAM,
donde la CPU puede escribir y leer directa y razonablemente rápido) y el disco duro que es
mucho más lento, pero también más grande y barato.
Muchas aplicaciones requieren el acceso a más información (código y datos) que la que se
puede mantener en memoria física. Esto es así sobre todo cuando el sistema operativo permite
múltiples procesos y aplicaciones ejecutándose simultáneamente. Una solución al problema de
necesitar mayor cantidad de memoria de la que se posee consiste en que las aplicaciones
mantengan parte de su información en disco, moviéndola a la memoria principal cuando sea
necesario. Hay varias formas de hacer esto. Una opción es que la aplicación misma sea
responsable de decidir qué información será guardada en cada sitio (segmentación), y de traerla
y llevarla. La desventaja de esto, además de la dificultad en el diseño e implementación del
programa, es que es muy probable que los intereses sobre la memoria de dos o varios
programas generen conflictos entre sí: cada programador podría realizar su diseño teniendo en
cuenta que es el único programa ejecutándose en el sistema. La alternativa es usar memoria
virtual, donde la combinación entre hardware especial y el sistema operativo hace uso de la
memoria principal y la secundaria para hacer parecer que el ordenador tiene mucha más
memoria principal (RAM) que la que realmente posee. Este método es invisible a los procesos.
La cantidad de memoria máxima que se puede hacer ver que hay tiene que ver con las
características del procesador. Por ejemplo, en un sistema de 32 bits, el máximo es 2 32, lo que
da 4096 Megabytes (4 Gigabytes). Todo esto hace el trabajo del programador de aplicaciones
mucho más fácil, al poder ignorar completamente la necesidad de mover datos entre los distintos
espacios de memoria.
Aunque la memoria virtual podría estar implementada por el software del sistema operativo, en la
práctica casi siempre se usa una combinación de hardware y software, dado el esfuerzo extra
que implicaría para el procesador.
Operación básica
Cuando se usa Memoria Virtual, o cuando una dirección es leída o escrita por la CPU, una parte
del hardware dentro de la computadora traduce las direcciones de memoria generadas por el
software (direcciones virtuales) en:


la dirección real de memoria (la dirección de memoria física), o
una indicación de que la dirección de memoria deseada no se encuentra en memoria
principal (llamado excepción de memoria virtual)
En el primer caso, la referencia a la memoria es completada, como si la memoria virtual no
hubiera estado involucrada: el software accede donde debía y sigue ejecutando normalmente.
En el segundo caso, el sistema operativo es invocado para manejar la situación y permitir que el
programa siga ejecutando o aborte según sea el caso. La memoria virtual es una técnica para
proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de
una máquina. Esta "ilusión" permite que los programas se ejecuten sin tener en cuenta el
tamaño exacto de la memoria física.
La ilusión de la memoria virtual está soportada por el mecanismo de traducción de memoria,
junto con una gran cantidad de almacenamiento rápido en disco duro. Así en cualquier momento
el espacio de direcciones virtual hace un seguimiento de tal forma que una pequeña parte de él,
está en memoria real y el resto almacenado en el disco, y puede ser referenciado fácilmente.
Debido a que sólo la parte de memoria virtual que está almacenada en la memoria principal, es
accesible a la CPU, según un programa va ejecutándose, la proximidad de referencias a
memoria cambia, necesitando que algunas partes de la memoria virtual se traigan a la memoria
principal desde el disco, mientras que otras ya ejecutadas, se pueden volver a depositar en el
disco (archivos de paginación).
La memoria virtual ha llegado a ser un componente esencial de la mayoría de los sistemas
operativos actuales. Y como en un instante dado, en la memoria sólo se tienen unos pocos
fragmentos de un proceso dado, se pueden mantener más procesos en la memoria. Es más, se
ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la
memoria. Sin embargo, el sistema operativo debe saber cómo gestionar este esquema.
La memoria virtual también simplifica la carga del programa para su ejecución llamada
reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición
de la memoria física.
En un estado estable, prácticamente toda la memoria principal estará ocupada con fragmentos
de procesos, por lo que el procesador y el S.O tendrán acceso directo a la mayor cantidad de
procesos posibles, y cuando el S.O traiga a la memoria un fragmento, deberá expulsar otro. Si
expulsa un fragmento justo antes de ser usado, tendrá que traer de nuevo el fragmento de
manera casi inmediata. Demasiados intercambios de fragmentos conducen a lo que se conoce
como hiperpaginación: donde el procesador consume más tiempo intercambiando fragmentos
que ejecutando instrucciones de usuario. Para evitarlo el sistema operativo intenta adivinar, en
función de la historia reciente, qué fragmentos se usarán con menor probabilidad en un futuro
próximo (véase algoritmos de reemplazo de páginas).
Los argumentos anteriores se basan en el principio de cercanía de referencias o principio de
localidad que afirma que las referencias a los datos y el programa dentro de un proceso tienden
a agruparse. Por lo tanto, es válida la suposición de que, durante cortos períodos de tiempo, se
necesitarán sólo unos pocos fragmentos de un proceso.
Una manera de confirmar el principio de cercanía es considerar el rendimiento de un proceso en
un entorno de memoria virtual.
El principio de cercanía sugiere que los esquemas de memoria virtual pueden funcionar. Para
que la memoria virtual sea práctica y efectiva, se necesitan dos ingredientes. Primero, tiene que
existir un soporte de hardware y, en segundo lugar, el S.O debe incluir un software para
gestionar el movimiento de páginas o segmentos entre memoria secundaria y memoria principal.
Justo después de obtener la dirección física y antes de consultar el dato en memoria principal se
busca en memoria-cache, si esta entre los datos recientemente usados la búsqueda tendrá
éxito, pero si falla, la memoria virtual consulta memoria principal , ó, en el peor de los casos se
consulta de disco (swapping).
Detalles
La traducción de las direcciones virtuales a reales es implementada por una Unidad de Manejo
de Memoria (MMU). El sistema operativo es el responsable de decidir qué partes de la memoria
del programa es mantenida en memoria física. Además mantiene las tablas de traducción de
direcciones (si se usa paginación la tabla se denomina tabla de paginación), que proveen las
relaciones entre direcciones virtuales y físicas, para uso de la MMU. Finalmente, cuando una
excepción de memoria virtual ocurre, el sistema operativo es responsable de ubicar un área de
memoria física para guardar la información faltante, trayendo la información desde el disco,
actualizando las tablas de traducción y finalmente continuando la ejecución del programa que dio
la excepción de memoria virtual desde la instrucción que causó el fallo.
En la mayoría de las computadoras, las tablas de traducción de direcciones de memoria se
encuentran en memoria física. Esto implica que una referencia a una dirección virtual de
memoria necesitará una o dos referencias para encontrar la entrada en la tabla de traducción, y
una más para completar el acceso a esa dirección.
Para acelerar el desempeño de este sistema, la mayoría de las Unidades Centrales de Proceso
(CPU) incluyen una MMU en el mismo chip, y mantienen una tabla de las traducciones de
direcciones virtuales a reales usadas recientemente, llamada Translation Lookaside Buffer
(TLB). El uso de este buffer hace que no se requieran referencias de memoria adicionales, por lo
que se ahorra tiempo al traducir.
En algunos procesadores, esto es realizado enteramente por el hardware. En otros, se necesita
de la asistencia del sistema operativo: se levanta una excepción, y en ella el sistema operativo
reemplaza una de las entradas del TLB con una entrada de la tabla de traducción, y la
instrucción que hizo la referencia original a memoria es reejecutada.
El hardware que tiene soporte para memoria virtual, la mayoría de la veces también permite
protección de memoria. La MMU puede tener la habilidad de variar su forma de operación de
acuerdo al tipo de referencia a memoria (para leer, escribir, o ejecutar), así como el modo en que
se encontraba el CPU en el momento de hacer la referencia a memoria. Esto permite al sistema
operativo proteger su propio código y datos (como las tablas de traducción usadas para memoria
virtual) de corromperse por una aplicación, y de
Paginación y memoria virtual
La memoria virtual usualmente (pero no necesariamente) es implementada usando paginación.
En paginación, los bits menos significativos de la dirección de memoria virtual son preservados y
usados directamente como los bits de orden menos significativos de la dirección de memoria
física. Los bits más significativos son usados como una clave en una o más tablas de traducción
de direcciones (llamadas tablas de paginación), para encontrar la parte restante de la dirección
física buscada.
Memoria dinámica
La memoria dinámica se refiere a aquella que no puede ser definida ya que no se conoce o no
se tiene idea del número de la variable a considerarse, la solución a esto es la memoria
dinámica que permite solicitar memoria en tiempo de ejecución real, por lo que mientras mas
memoria se necesite, esta se va pidiendo al sistema operativo. El medio por el cual el sistema
operativo puede manejar la memoria es el puntero, por la misma naturaleza del proceso nos
impide conocer el tamaño de la memoria necesaria al momento compilar.
Un dato importante es que como tal este tipo de datos se crean y se destruyen mientras se
ejecuta el programa y por lo tanto la estructura de datos se va dimensionando de forma precisa a
los requerimientos del programa, evitándonos así perder datos o desperdiciar memoria si
hubiéramos tratado de definirla cantidad de memoria a utilizar en el momento de compilar el
programa.
Lo que pasa cuando hacemos un programa en el que será necesario manejar memoria dinámica
es que primero el sistema operativo divide el programa en cuatro partes que son: texto, datos
(estáticos), pila y una zona libre o heap. En la ultima parte es donde queda la memoria libre para
poder utilizarla de forma dinámica, en el momento de la ejecución habrá tanto partes libres como
partes asignadas al proceso por lo cual si no se liberan las partes utilizadas de la memoria y que
han quedado inservibles es posible que se “agote” esta parte y por lo tanto la fuente de la
memoria dinámica. Tenemos que por ejemplo la parte llamada pila también cambia de tamaño
dinámicamente pero esto no depende del programador si no del sistema operativo.
DRAM
DRAM(Dynamic Random Access Memory) es un tipo de memoria dinamica de acceso aleatorio
que se usa principalmente en los módulos de memoria RAM y en otros dispositivos, como
memoria principal del sistema. Se denomina dinámica, ya que para mantener almacenado un
dato, se requiere revisar el mismo y recargarlo, cada cierto período, en un ciclo de refresco. Su
principal ventaja es la posibilidad de construir memorias con una gran densidad de posiciones y
que todavía funcionen a una velocidad alta: en la actualidad se fabrican integrados con millones
de posiciones y velocidades de acceso medidos en millones de bit por segundo. Es una memoria
volátil, es decir cuando no hay alimentación eléctrica, la memoria no guarda la información.
Inventada a finales de los sesenta, es una de las memorias más usadas en la actualidad.
Historia
Integrado de silicio de 64 Bites (usado en el IBM S-360, modelo 95) sobre un sector de memoria
de núcleo(finales de los 60).
La memoria dinámica , fue desarrollada en los laboratorios de IBM pasando por un proceso
evolutivo que la llevo de usar 6 transistores a solo un condensador y un transistor, como la
memoria DRAM que conocemos hoy. La invención de esta última, la hizo Robert Dennard [1]
quien obtuvo una patente norteamericana en 1968[2] por una memoria fabricada con un solo
transistor de efecto de campo y un condensador.
Los esfuerzos de IBM estaban encaminados a mejorar sus equipos de cómputo como por
ejemplo la línea System 360: el modelo 25 en 1968 ya incluía un ScratchPad (una especie de
Caché) en forma de integrados 5 veces más rápidos que la memoria principal basada en núcleos
de ferrita.[3] Dado el modelo de negocios de IBM que consistía en vender o arrendar
computadores,[4] un negocio rentable, para IBM el uso de DRAM se reducía a ser el
complemento de la memoria principal basada en núcleos magnéticos. No hubo interés en
comercializar ese tipo de memorias para otros fabricantes ni tampoco se pensó en usar las
tecnologías de estado sólido tipo SRAM o DRAM para construir la memoria principal. La
empresa Intel fue creada para aprovechar esa oportunidad de negocios: Gordon Moore,
observaba que hace tiempos la industria de los semiconductores se había estancado, a pesar de
existir potenciales usos de los integrados de silicio como la fabricación de memorias SRAM y
DRAM.[5]
Celda de memoria para la i1103.
Aunque Intel inició con memorias SRAM como la i1101 y la i3101, el primer producto rentable
fue el integrado de memoria DRAM i1103 de 1024 bits. El i1103 lanzado en 1970 estaba
formado por celdas de memoria con 3 transistores tipo PMOS y un condensador, [6] estaba
organizado en un arreglo de 32 filas y 32 columnas, empacado en un encapsulado de 18 pines y
con un costo de 1 centavo por bit era un fuerte competidor para las memorias de núcleo. La
producción y calidad del integrado era difícil de mantener, hecho que se demostró cuando Intel
entrego parte de la producción a otra empresa llamada Microelectronics Integrated Limited (MIL)
que en un principio pudo obtener mejores resultados que la misma Intel, pero después del
cambio importante en el proceso de fabricación no fue capaz de producir. [5]
La memoria i1103 era muy primitiva en comparación a las memorias DRAM de la actualidad, aun
así se comportaba mejor que la memoria de núcleo y con un precio menor. A finales de 1971 se
había convertido en el producto dominante para la fabricación de memoria principal y era usado
por 14 entre 18 de los principales fabricantes de computadores,[7] ganando el mote "core killer".[8]
Reinvención de la memoria DRAM
Para 1973 Intel y otros fabricantes construían y empacaban sus integrados de memoria DRAM
empleando un esquema en el que se aumentaba un pin por cada vez que se doblaba la
capacidad. De acuerdo a este esquema, un integrado de 64 kilobits tendría 16 pines solo para
las direcciones. Dentro de los costos más importantes para el fabricante y el ensamblador de
circuitos impresos estaba la cantidad de pines del empaque y en un mercado tan competido era
crucial tener los menores precios. Debido a eso, un integrado con una capacidad de 16 pines y
4Kb de capacidad fue un producto apreciado por los usuarios, que encontraban a los integrados
de 22 pines, ofrecidos por Intel y Texas Instruments como insumos costosos.
El lanzamiento de la memoria MK4096 de 4K, con un solo transistor por celda y con
direccionamiento multiplexado resultó del trabajo de Robert Proebsting quien observo que en las
celdas con un solo transistor, era imposible acceder la información en una posición, enviando al
mismo tiempo los datos de fila y columna a la matriz: había que enviar las señales una después
de la otra. La solución a nivel de la celda conducía a un ahorro en el empaque, ya que la
dirección podría recibirse en dos etapas, reduciendo la cantidad de pines usados.[9] Por ejemplo
para un integrado de 64 Kb se pasaba de 16 pines dedicados a solo 8 y dos más para señales
de control extra. La multiplexación en tiempo es un esquema de direccionamiento que trae
muchas ventajas, a costa de unos pocos cambios en el circuito externo, de manera que se
convirtió en un estándar de la industria que todavía se mantiene. Mucha de la terminología
usada en la hoja de datos del MK4096 todavía se usa y muchos de los parámetros de
temporización como el retardo RAS a CAS fueron instaurados con ese producto, entre otros
aspectos.[10]
Funcionamiento
La celda de memoria es la unidad básica de cualquier memoria, capaz de almacenar un Bit en
los sistemas digitales. La construcción de la celda define el funcionamiento de la misma, en el
caso de la DRAM moderna, consiste en un transistor de efecto de campo y un condensador. El
principio de funcionamiento básico, es sencillo: una carga se almacena en el condensador
significando un 1 y sin carga un 0. El transistor funciona como un interruptor que conecta y
desconecta al condensador. Este mecanismo puede implementarse con dispositivos discretos y
de hecho muchas memorias anteriores a la época de los semiconductores, se basaban en
arreglos de celdas transistor-condensador.
Las celdas en cualquier sistema de memoria, se organizan en la forma de matrices de dos
dimensiones, a las cuales se accede por medio de las filas y las columnas. En la DRAM estas
estructuras contienen millones de celdas y se fabrican sobre la superficie de la pastilla de silicio
formando áreas que son visibles a simple vista. En el ejemplo tenemos un arreglo de 4x4 celdas,
en el cual las líneas horizontales conectadas a las compuertas de los transistores son las
llamadas filas y las líneas verticales conectadas a los canales de los FET son las columnas.
Para acceder a una posición de memoria se necesita una dirección de 4 bits, pero en las DRAM
las direcciones están multiplexadas en tiempo, es decir se envían por mitades. Las entradas
marcadas como a0 y a1 son el bus de direcciones y por el mismo entra la dirección de la fila y
después la de la columna. Las direcciones se diferencian por medio de señales de
sincronización llamadas RAS (del inglés Row Address Strobe) y CAS (Column Address Strobe)
que indican la entrada de cada parte de la dirección.
Los pasos principales para una lectura son:


Las columnas son precargadas a un voltaje igual a la mitad del voltaje de 1 lógico. Esto es
posible ya que las líneas se comportan como grandes condensadores, dada su longitud
tienen un valor más alto que la de los condensadores en las celdas.
Una fila es energizada por medio del decodificador de filas que recibe la dirección y la
señal de RAS. Esto hace que los transistores conectados a una fila conduzcan y
permitiendo la conexión electrica entre las líneas de columna y una fila de
condensadores. El efecto es el mismo que se produce al conectar dos condensadores,
uno cargado y otro de carga desconocida: se produce un balance de que deja a los dos


con un voltaje muy similar, compartiendo las cargas. El resultado final depende del valor
de carga en el condensador de la celda conectada a cada columna. El cambio es
pequeño, ya que la línea de columna es un condensador más grande que el de la celda.
El cambio es medido y amplificado por una sección que contiene circuitos de
realimentación positiva: si el valor a medir es menor que el la mitad del voltaje de 1 lógico,
la salida será un 0, si es mayor, la salida se regenera a un 1. Funciona como un
redondeo.
La lectura se realiza en todas las posiciones de una fila de manera que al llegar la
segunda parte de la dirección, se decide cual es la celda deseada. Esto sucede con la
señal CAS. El dato es entregado al bus de datos por medio de la lineo D.O. y las celdas
involucradas en el proceso son reescritas, ya que la lectura de la DRAM es destructiva.
La escritura en una posición de memoria tiene un proceso similar al de arriba, pero en lugar de
leer el valor, la línea de columna es llevada a un valor indicado por la línea D.I. y el condensador
es cargado o descargado. El flujo del dato es mostrado con una línea gruesa en el gráfico.
SRAM
Static Random Access Memory (SRAM), o Memoria Estática de Acceso Aleatorio es un tipo
de memoria basada en semiconductores que, a diferencia de la memoria DRAM, es capaz de
mantener los datos (mientras esté alimentada) sin necesidad de circuito de refresco (no se
descargan). Sin embargo, sí son memorias volátiles, es decir que pierden la información si se les
interrumpe la alimentación eléctrica.
No debe ser confundida con la SDRAM (Syncronous DRAM).
Diseño
A six-transistor CMOS SRAM cell.
Estas memorias son de Acceso Aleatorio, lo que significa que las posiciones en la memoria
pueden ser escritas o leídas en cualquier orden, independientemente de cual fuera la última
posición de memoria leída o escrita. Cada bit en una SRAM se almacena en cuatro transistores,
que forman un biestable. Este biestable tendrá dos estados, utilizados para almacenar un 0 o un
1. Se utilizan otros dos transistores adicionales para controlar el acceso al biestable durante las
operaciones de lectura y escritura. Una SRAM típica utilizará seis MOSFET para almacenar
cada bit. Adicionalmente, podemos encontrar otros tipos de SRAM, que utilizan ocho, diez, o
más transistores por bit.[1] [2] [3] Esto es utilizado para implementar más de un puerto de lectura o
escritura en determinados tipos de memoria de video.
Un menor número de transistores por celda, hará posible reducir el tamaño de esta, reduciendo
el coste por bit en la fabricación, al poder implementar más celdas en una misma oblea de silicio.
Es posible fabricar celdas que utilicen menos de seis transistores, pero en los casos de tres
transistores[4] [5] o un solo transistor estaríamos hablando de memoria DRAM, no SRAM.
El acceso a la celda es controlado por un bus de control (WL en la figura), que controla los dos
transistores de acceso M5 y M6, quienes controlan si la celda debe ser conectada a los buses BL
y BL. Ambos son utilizados para transmitir datos tanto para las operaciones de lectura como las
de escritura, y aunque no es estrictamente necesario disponer de abos buses, se suelen
implementar para mejorar los margenes de ruido.
A diferencia de la DRAM, en la cual la señal de la línea de salida se conecta a un capacitador, y
este es el que hace oscilar la señal durante las operaciones de lectura, en las celdas SRAM son
los propios biestables los que hacen oscilar dicha señal, mientras que la estructura simétrica
permite detectar pequeñas variaciones de voltaje con mayor precisión. Otra ventaja de las
memorias SRAM frente a DRAM, es que aceptan recibir todos los bits de dirección al mismo
tiempo.
El tamaño de una memoria SRAM con m líneas de dirección, y n líneas de datos es 2m palabras,
o 2m × n bits.
Modos de operación de una SRAM
Una memoria SRAM tiene tres estados distintos de operación: standby, en el cual el circuito está
en reposo, reading o lectura, durante el cual los datos son leídos desde la memoria, y writing o
escritura, durante el cual se actualizan los datos almacenados en la memoria.
Reposo
Si bus de control (WL) no está activado, los transistores de acceso M5 y M6 desconectan la celda
de los buses de datos. Los dos biestables formados por M 1 – M4 mantendrán los datos
almacenados mientras dure la alimentación electrica.
Lectura
Asumimos que el contenido de la memoria es 1, y está almacenado en Q. El ciclo de lectura
comienza cargando los buses de datos con el 1 lógico, y luego activa WL y los transistores de
control. A continuación, los valores almacenados en Q y Q se transfieren a los buses de datos,
dejando BL en su valor previo, y ajustando BL a través de M1 y M5 al 0 lógico. En el caso que el
dato contenido en la memoria fuera 0, se produce el efecto contrario: BL será ajustado a 1 y BL
a 0.
Escritura
El ciclo de escritura se inicia aplicando el valor a escribir en el bus de datos. Si queremos escribir
un 0, ajustaremos BL a 1 y BL a 0, mientras que para un 1, basta con invertir los valores de los
buses. Una vez hecho esto, se activa el bus WL, y el dato queda almacenado.
Aplicaciones y Usos
Características
La memoria SRAM es más cara, pero más rápida y con un menor consumo (especialmente en
reposo) que la memoria DRAM. Es utilizada, por tanto, cuando es necesario disponer de un
mejor tiempo de acceso, o un consumo reducido, o ambos. Debido a su compleja estructura
interna, es menos densa que DRAM, y por lo tanto no es utilizada cuando es necesaria una alta
capacidad de datos, como por ejemplo en la memoria principal de los ordenadores personales.
Frecuencia de reloj y potencia
El consumo electrico de una SRAM varía dependiendo de la frencuencia con la cual se accede a
la misma: puede llegar a tener un consumo similar a DRAM cuando es usada en alta frecuencia,
y algunos circuitos integrados pueden consumir varios vatios durante su funcionamiento. Por
otra parte, las SRAM utilizadas con una frecuencia baja, tienen un consumo muy bajo, del orden
de micro-vatios.
Usos de las SRAM


como producto de propósito general:
o con interfaces asíncronas como chips 32Kx8 de 28 pines (nombrados XXC256), y
productos similares que ofrecen transferencias de hasta 16Mbit por chip.
o con interfaces síncronas, principalmente como caches y otras aplicaciones que
requieran transferencias rápidas, de hasta 18Mbit por chip.
integrados en chip:
o como memoria RAM o de cache en micro-controladores.
o como cache primaria en microcontroladores, como por ejemplo la familia x86.
o para almacenar los registros de microprocesadores.
o en circuitos integrados.
o en FPGAs y CPLDs.
Usos integrados en productos
Las SRAM se utilizan en sistemas científicos e industriales, electrónica del automóvil, y
similares. También se pueden encontrar en prácticamente todos los productos de uso cotidiano
que implementen una interfaz electrónica de usuario.
También podemos encontrar memorias SRAM en los ordenadores personales, estaciones de
trabajo, routers y la totalidad de periféricos de los mismos.
Uso de aficionados
Los aficionados a la electrónica prefieren las memorias SRAM debido a su sencilla interfaz, ya
que es mucho más fácil trabajar con SRAM que con DRAM, al no existir ciclos de refresco, y
poder acceder directamente a los buses de dirección y de datos en lugar de tener que utilizar
multiplexores. Además, las SRAM solo necesitan tres buses de control: Chip Enable (CE), Write
Enable (WE), y Output Enable (OE). En el caso de las SRAM síncronas, tendremos además la
señal de reloj (CLK)
Tipos de SRAM
SRAM no volátiles
Las SRAM no volatiles presentan un funcionamiento estándar SRAM, con la salvedad de que
guardan los datos cuando se interrumpe la alimentación electrica, salvaguardando información
crítica. Se utilizan en situaciones donde la conservación de los datos es crucial y el uso de
baterías no es posible.[6]
SRAM asíncrona
Las SRAM asíncronas están disponibles en tamaños desde 4Kb hasta 32Mb. [7] Con un tiempo
rápido de acceso, son adecuadas para el uso en equipos de comunicaciones, como switches,
routers, teléfonos IP, tarjetas DSLAM, y en electrónica de automoción.
Por tipo de transistor


Transistor Bipolar de Unión o BJT (de tipo TTL o ECL) — muy rápidos, pero con un
consumo muy alto.
MOSFET (de tipo CMOS) — consumo reducido, muy utilizados actualmente.
Por función


Asíncronas — independientes de la frecuencia de reloj.
Síncronas — todas las operaciones son controladas por el reloj del sistema.
Asignación de memoria
La asignación de memoria consiste en el proceso de asignar memoria para propósitos
espécificos, ya sea en tiempo de compilación o de ejecución. Si es en tiempo de compilación es
estática, si es en tiempo de ejecución es dinámica y si son variables locales a un grupo de
sentencias se denomina automática.[1]
Asignación estática de memoria
La Asignación estática de memoria consiste en el proceso de asignar memoria en tiempo de
compilación antes de que el programa asociado sea ejecutado, a diferencia de la asignación
dinámica o la automática donde la memoria se asigna a medida que se necesita en tiempo de
ejecución.[2]
Una aplicación de esta técnica conlleva que un módulo de programa (por ejemplo función o
subrutina) declara datos estáticos de forma local, de forma que estos datos son inaccesibles
desde otros módulos a menos que se les pasen referenciados como parámetros o que les sean
devueltos por la función. Se mantiene una copia simple de los datos estáticos, accesible a través
de llamadas a la función en la cual han sido declarados.
El uso de variables estáticas dentro de una clase en la programación orientada a objetos permite
que una copia individual de tales datos se comparta entre todos los objetos de esa clase.
Las constantes conocidas en tiempo de compilación, como literales de tipo cadena, se asignan
normalmente de forma estática. En programación orientada a objetos, el método usual para las
tablas de clases también es la asignación estática de memoria.
Asignación automática de memoria
Las variables automáticas son variables locales a un bloque de sentencias (subrutina, función
o procedimiento). Pueden ser asignadas automáticamente en la pila de datos cuando se entra
en el bloque de código. Cuando se sale del bloque, las variables son automáticamente
desasignadas.[3] Las variables automáticas tendrán un valor sin definir cuando son declaradas,
por tanto es buena práctica de programación inicializarlas con un valor válido antes de usarlas.
Asignación dinámica de memoria
Artículo principal: Memoria dinámica
En ciencia de la computación, asignación dinámica de la memoria es la asignación de
almacenamiento de memoria para utilización por parte de un programa de computador durante
el tiempo de ejecución de ese programa. Es una manera de distribuir la propiedad de recursos
de memoria limitada entre muchas piezas de código y datos. Un objeto asignado dinámicamente
permanece asignado hasta que es desasignado explícitamente, o por el programador o por un
recolector de basura; esto es notablemente diferente de la asignación automática de memoria y
de la asignación estática de memoria (la de las variables estáticas). Se dice que tal objeto tiene
tiempo de vida dinámico.[4]
Soluciones para los problemas de asignación
La tarea de satisfacer una petición de asignación, la cual conlleva encontrar un bloque de
memoria sin usar de cierto tamaño en el heap, es un problema complicado. Se han propuesto
una amplia variedad de soluciones, incluyendo listas de bloques libres, Paginación, y Asignación
buddy de memoria.
El problema principal para la mayoría de algoritmos de asignación de memoria dinámica es
evitar la fragmentación interna y externa mientras se mantiene la eficiencia del algoritmo.
También, la mayoría de algoritmos en uso tienen el problema de que un número grande de
pequeñas asignaciones pueden causar el desaprovechamiento del espacio debido a la
recolección de metadatos; así la mayoría de los programadores intentan evitar esto, a veces
usando una estrategia llamada chunking.
Asignación de bloques de tamaño fijo
Una solución es tener una lista enlazada LIFO de bloques de memoria de tamaño fijo. Esto
funciona bien para sistemas empotrados simples.
Algoritmo Buddy
Otra solución es tener un asignador buddy de bloques binarios. En este sistema, la memoria se
asigna desde un gran bloque de memoria que es tamaño potencia de dos. Si el bloque es más
del doble de grande de lo necesario, se parte en dos. Se selecciona una de las dos mitades, y el
proceso se repite (comprobando el tamaño otra vez y partiendo si se necesita) hasta que el
bloque sea justamente el necesitado.
Todos los segmentos de memoria de un tamaño particular son guardados en una lista enlazada
ordenada o una estructura de datos en árbol. Cuando se libera un bloque, se compara con su
buddy(vecino). Si los dos están libres, son combinados y colocados en la lista de bloques buddy
de siguiente mayor tamaño. (Cuando un bloque es asignado, el asignador empezará con el
bloque grande suficientemente pequeño para evitar romper bloques innecesariamente)
Nótese que los asignadores buddy de bloques no son únicamente para los Sistemas Operativos
de Tiempo-Real (RTOS); ellos también son usados en sistemas operativos de propósito general
(tales como Microsoft Windows y Linux).
Asignación de memoria basada en Heap
En la asignación de memoria basada en heap, la memoria es asignada desde un gran área
común de memoria libre (sin usar) llamada heap (también llamada almacén de libres). "El
heap" no tiene nada que ver con la estructura de datos Heap (o Montículo). El tamaño de la
asignación de memoria puede ser determinado en tiempo de ejecución, y el tiempo de vida de la
asignación no es dependiente del procedimiento actual o del marco de pila. La región de
memoria asignada es accedida indirectamente, normalmente por medio de una referencia. El
algoritmo preciso usado para organizar el área de memoria y asignar y desasignar los trozos
está oculto detrás de una interfaz abstracta y puede usar cualquiera de los métodos descritos
antes.
En contraste, la memoria de la pila de llamadas es normalmente de tamaño limitado y el tiempo
de vida de la asignación depende de la duración de las funciones correspondientes.
Buses
Buses de comunicación en un circuito impreso.
En arquitectura de computadores, el bus es un sistema digital
que transfiere datos entre los componentes de un ordenador o
entre ordenadores. Está formado por cables o pistas en un
circuito
impreso,
dispositivos
como
resistencias
y
condensadores además de circuitos integrados.
En los primeros computadores electrónicos, todos los buses eran de tipo paralelo, de manera
que la comunicación entre las partes del computador se hacía por medio de cintas o muchas
pistas en el circuito impreso, en los cuales cada conductor tiene una función fija y la conexión es
sencilla requiriendo únicamente puertos de entrada y de salida para cada dispositivo.
La tendencia en los últimos años es el uso de buses seriales como el USB, Custom Firewire
para comunicaciones con periféricos y el reemplazo de buses paralelos para conectar toda clase
de dispositivos, incluyendo el microprocesador con el chipset en la propia placa base. Son
conexiones con lógica compleja que requieren en algunos casos gran poder de cómputo en los
propios dispositivos, pero que poseen grandes ventajas frente al bus paralelo que es menos
inteligente.
Existen diversas especificaciones de bus que definen un conjunto de características mecánicas
como conectores, cables y tarjetas, además de protocolos eléctricos y de señales.
Funcionamiento
La función del MICROBus es la de permitir la conexión lógica entre distintos subsistemas de un
sistema digital, enviando datos entre dispositivos de distintos órdenes: desde dentro de los
mismos circuitos integrados, hasta equipos digitales completos que forman parte de
supercomputadoras.
La mayoría de los buses están basados en conductores metálicos por los cuales se trasmiten
señales eléctricas que son enviadas y recibidas con la ayuda de integrados que poseen una
interfaz del bus dado y se encargan de manejar las señales y entregarlas como datos útiles. Las
señales digitales que se trasmiten son de datos, de direcciones o señales de control.
Los buses definen su capacidad de acuerdo a la frecuencia máxima de envío y al ancho de los
datos. Por lo general estos valores son inversamente proporcionales: si se tiene una alta
frecuencia, el ancho de datos debe ser pequeño. Esto se debe a que la interferencia entre las
señales (crosstalk) y la dificultad de sincronizarlas, crecen con la frecuencia, de manera que un
bus con pocas señales es menos susceptible a esos problemas y puede funcionar a alta
velocidad.
Todos los buses de computador tienen funciones especiales como las interrupciones y las DMA
que permiten que un dispositivo periférico acceda a una CPU o a la memoria usando el mínimo
de recursos.
Primera Generación
Bus Backplane del PDP-11 junto con algunas tarjetas.
Los primeros computadores tenían 2 sistemas de buses, uno para la
memoria y otro para los demás dispositivos. La CPU tenía que
acceder a dos sistemas con instrucciones para cada uno, protocolos
y sincronizaciones diferentes.
La empresa DEC notó que el uso de dos buses no era necesario si
se combinaban las direcciones de memoria con las de los periféricos en un solo espacio de
memoria (mapeo), de manera que la arquitectura se simplificaba ahorrando costos de
fabricación en equipos fabricados en masa, como eran los primeros minicomputadores.
Los primeros microcomputadores se basaban en la conexión de varias tarjetas de circuito
impreso a un bus Backplane pasivo que servía de eje al sistema. En ese bus se conectaba la
tarjeta de CPU que realiza las funciones de arbitro de las comunicaciones con las demás tarjetas
de dispositivo conectadas; las tarjetas incluían la memoria, controladoras de diskette y disco,
adaptadores de vídeo. La CPU escribía o leía los datos apuntando a la dirección que tuviera el
dispositivo buscado en el espacio único de direcciones haciendo que la información fluyera a
través del bus principal.
Entre las implementaciones más conocidas, están los buses Bus S-100 y el Bus ISA usados en
varios microcomputadores de los años 70 y 80. En ambos, el bus era simplemente una
extensión del bus del procesador de manera que funcionaba a la misma frecuencia. Por ejemplo
en los sistemas con procesador Intel 80286 el bus ISA
tenia 6 u 8 Mhz de frecuencia dependiendo del
procesador.[1]
Segunda generación
Jerarquía de diversos buses en un equipo moderno:
SATA, FSB, AGP, USB entre otros.
El hecho de que el bus fuera pasivo y que usara la CPU como control, representaba varios
problemas para la ampliación y modernización de cualquier sistema con esa arquitectura.
Además que la CPU utilizaba una parte considerable de su potencia en controlar el bus.
Desde que los procesadores empezaron a funcionar con frecuencias más altas, se hizo
necesario jerarquizar los buses de acuerdo a su frecuencia: se creó el concepto de bus de
sistema (conexión entre el procesador y la RAM) y de buses de expansión, haciendo necesario
el uso de un chipset.
El bus ISA utilizado como backplane en el PC IBM original pasó de ser un bus de sistema a uno
de expansión, dejando su arbitraje a un integrado del chipset e implementando un bus a una
frecuencia más alta para conectar la memoria con el procesador.
En cambio, el bus Nubus era independiente desde su creación, tenía un controlador propio y
presentaba una interfaz estándar al resto del sistema, permitiendo su inclusión en diferentes
arquitecturas. Fue usado en diversos equipos, incluyendo algunos de Apple y se caracterizaba
por tener un ancho de 32 bits y algunas capacidades Plug and Play (autoconfiguración), que lo
hacían muy versátil y adelantado a su tiempo. Entre otros ejemplos de estos buses autónomos,
están el AGP y el bus PCI.
Tercera generación
Los buses de tercera generación se caracterizan por tener conexiones punto a punto, a
diferencia de los buses arriba nombrados en los que se comparten señales de reloj, y otras
partes del bus. Esto se logra reduciendo fuertemente el número de conexiones que presenta
cada dispositivo usando interfaces seriales. Entonces cada dispositivo puede negociar las
características de enlace al inicio de la conexión y en algunos casos de manera dinámica, al
igual que sucede en las redes de comunicaciones. Entre los ejemplos más notables, están los
buses PCI-Express, el Infiniband y el HyperTransport.
Tipos de Bus
Existen dos grandes tipos clasificados por el método de envío de la información: bus paralelo o
serial.
Hay diferencias en el desempeño y hasta hace unos años se consideraba que el uso apropiado
dependía de la longitud física de la conexión: para cortas distancias el bus paralelo, para largas
el serial.
Bus paralelo
Es un bus en el cual los datos son enviados por bytes al mismo tiempo, con la ayuda de varias
líneas que tienen funciones fijas. La cantidad de datos enviada es bastante grande con una
frecuencia moderada y es igual al ancho de los datos por la frecuencia de funcionamiento. En los
computadores ha sido usado de manera intensiva, desde el bus del procesador, los buses de
discos duros, tarjetas de expansión y de vídeo, hasta las impresoras.
Diagrama de un Bus Backplane como extensión del bus de procesador.
El Front Side Bus de los procesadores Intel es un bus de este tipo y como cualquier bus
presenta unas funciones en líneas dedicadas:

Las Líneas de Dirección son las encargadas de indicar la posición de memoria o el
dispositivo con el que se desea establecer comunicación.

Las Líneas de Control son las encargadas de enviar señales de arbitraje entre los
dispositivos. Entre las más importantes están las líneas de interrupción, DMA y los
indicadores de estado.

Las Líneas de Datos trasmiten los bits, de manera que por lo general un bus tiene un
ancho que es potencia de 2.
Un bus paralelo tiene conexiones físicas complejas, pero la lógica es sencilla, que lo hace útil en
sistemas con poco poder de cómputo. En los primeros microcomputadores, el bus era
simplemente la extensión del bus del procesador y los demás integrados "escuchan" las línea de
direcciones, en espera de recibir instrucciones. En el PC IBM original, el diseño del bus fue
determinante a la hora de elegir un procesador con I/O de 8 bits (Intel 8088), sobre uno de 16 (el
8086), porque era posible usar hardware diseñado para otros procesadores, abaratando el
producto.
Bus serie
En este los datos son enviados, bit a bit y se reconstruyen por medio de registros o rutinas de
software. Está formado por pocos conductores y su ancho de banda depende de la frecuencia.
Es usado desde hace menos de 10 años en buses para discos duros, tarjetas de expansión y
para el bus del procesador.
Bus de direcciones
En el diagrama se ven los buses de dirección, datos, y control, que van desde el CPU a la
memoria RAM, ROM, la entrada/salida, etc.
El bus de dirección (o direcciones) es un canal del microprocesador totalmente independiente
al bus de datos donde se establece la dirección de memoria del dato en tránsito.
El bus de dirección consiste en el conjunto de líneas eléctricas necesarias para establecer una
dirección.La capacidad de la memoria que se puede direccionar depende de la cantidad de bits
que conforman el bus de direcciones, siendo 2^n (dos elevado a la ene) el tamaño máximo en
bytes del banco de memoria que se podrá direccionar con n líneas. Por ejemplo, para
direccionar una memoria de 256 bytes, son necesarias al menos 8 líneas, pues 2^8 = 256.
Adicionalmente pueden ser necesarias líneas de control para señalar cuando la dirección está
disponible en el bus. Esto depende del diseño del propio bus.
Buses multiplexados
Algunos diseños utilizan líneas eléctricas multiplexadas para el bus de dirección y el bus de
datos. Esto significa que un mismo conjunto de líneas eléctricas se comportan unas veces como
bus de dirección y otras veces como bus de datos, pero nunca al mismo tiempo. Una línea de
control permite discernir cual de las dos funciones está activa.
Las direcciones de memoria
Las direcciones son números naturales (en hexadecimal) que indican la posición de los datos
dentro de la memoria principal o del espacio de direcciones de la unidad de entrada/salida. Las
direcciones son generadas por la CPU, que es quien decide a qué dato se debe acceder en
cada momento.
Bus de control
En el diagrama se ven los buses de dirección, datos, y control, que van desde el CPU a la
memoria RAM, ROM, la entrada/salida, etc.
El bus de control gobierna el uso y acceso a las líneas de datos y de direcciones. Como éstas
líneas están compartidas por todos los componentes, tiene que proveerse de determinados
mecanismos que controlen su utilización. Las señales de control transmiten tanto órdenes como
información de temporización entre los módulos. Mejor dicho, es el que permite que no haya
colisión de información en el sistema.
Circuito integrado auxiliar
Integrado de un conjunto Nvidia, no tiene su disipador.
Chipset es el conjunto de circuitos integrados diseñados
con base a la arquitectura de un procesador (en algunos
casos diseñados como parte íntegra de esa arquitectura),
permitiendo que ese tipo de procesadores funcionen en una
placa base. Sirven de puente de comunicación con el resto
de componentes de la placa, como son la memoria, las
tarjetas de expansión, los puertos USB, ratón, teclado, etc.
Las placas base modernas suelen incluir dos integrados, denominados Norte y Sur, y suelen ser
los circuitos integrados más grandes después del microprocesador.
El chipset determina muchas de las características de una placa base y por lo general la
referencia de la misma está relacionada con la del chipset.
A diferencia del microcontrolador, el procesador no tiene mayor funcionalidad sin el soporte de
un chipset: la importancia del mismo ha sido relegada a un segundo plano por las estrategias de
marketing.
Historia
Desde los comienzos de la fabricación de los primeros procesadores, se pensó en un conjunto
de integrados de soporte, de hecho el primer microprocesador de la historia, el Intel 4004
formaba parte de un conjunto de integrados numerados 4001,4002 y 4003 que tenían todos una
apariencia física similar y que formaban la base de un sistema de cómputo cualquiera.
Mientras que otras plataformas usaban muy variadas combinaciones de chips de propósito
general, los empleados en el Commodore 64 y la Familia Atari de 8 bits, incluso sus CPUs,
solían ser diseños especializados para la plataforma, que no se encontraban en otros equipos
electrónicos, por lo que se les comenzó a llamar chipsets.
Este término se generalizó en la siguiente generación de ordenadores domésticos : el
Commodore Amiga y el Atari ST son los equipos más potentes de los años 90, y ambos tenían
multitud de chips auxiliares que se encargaban del manejo de la memoria, el sonido, los gráficos
o el control de unidades de almacenamiento masivo dejando a la CPU libre para otras tareas. En
el Amiga sobre todo se diferenciaban las generaciones por el chipset utilizado en cada una.
Tanto los chips de los Atari de 8 bits como los del Amiga tenían como diseñador a Jay Miner, por
lo que algunos lo consideran el precursor de la moderna arquitectura utilizada en la actualidad.
Apple Computer comienza a utilizar chips diseñados por la compañía o comisionados
expresamente a otras en su gama Apple Macintosh, pero pese a que irá integrando chips
procedentes del campo PC, nunca se usa el término chipset para referirse al juego de chips
empleado en cada nueva versión de los Mac, hasta la llegada de los equipos G4.
Mientras tanto el IBM PC ha optado por usar chips de propósito general (IBM nunca pretendió
obtener el éxito que tuvo) y sólo el subsistema gráfico tiene una ligera independencia de la CPU.
Hasta la aparición de los IBM Personal System/2 no se producen cambios significativos, y el
término chipset se reserva para los conjuntos de chips de una placa de ampliación (o integrada
en placa madre, pero con el mismo bus de comunicaciones) dedicada a un único propósito como
el sonido o el subsistema SCSI. Pero la necesidad de ahorrar espacio en la placa y abaratar
costes trae primero la integración de todos los chips de control de periféricos (las llamadas
placas multi-IO pasan de tener hasta 5 chips a integrar más funciones en uno sólo) y con la
llegada del bus PCI y las especificaciones ATX de los primeros chipsets tal y como los
conocemos ahora.
Funcionamiento
Chipset 875 de Intel, usado con procesadore Pentium 4 en encapsulado de pines.
El Chipset es el que hace posible que la placa base funcione como eje del sistema, dando
soporte a varios componentes e interconectándolos de forma que se comuniquen entre ellos
haciendo uso de diversos buses. Es uno de los pocos elementos que tiene conexión directa con
el procesador, gestiona la mayor parte de la información que entra y sale por el bus principal del
procesador, del sistema de vídeo y muchas veces de la memoria RAM.
En el caso de los computadores PC, es un esquema de arquitectura abierta que establece
modularidad: el Chipset debe tener interfaces estándar para los demás dispositivos. Esto permite
escoger entre varios dispositivos estándar, por ejemplo en el caso de los buses de expansión,
algunas tarjetas madre pueden tener bus PCI-Express y soportar diversos tipos de tarjetas con
de distintos anchos de bus (1x, 8x, 16x).
En el caso de equipos portátiles o de marca, el chipset puede ser diseñado a la medida y
aunque no soporte gran variedad de tecnologías, presentara alguna interfaz de dispositivo.
La terminología de los integrados ha cambiado desde que se creó el concepto del chipset a
principio de los años 90, pero todavía existe equivalencia haciendo algunas aclaraciones:


El NorthBridge, puente norte, MCH (memory controller hub), GMCH (Graphic MCH), se
usa como puente de enlace entre el microprocesador y la memoria. Controla las funciones
de acceso hacia y entre el microprocesador, la memoria RAM, el puerto gráfico AGP o el
PCI-Express de gráficos, y las comunicaciones con el puente sur. Al principio tenía
también el control de PCI, pero esa funcionalidad ha pasado al puente sur.
El SouthBridge o puente sur, ICH (Imput Controller Hub), controla los dispositivos
asociados como son la controladora de discos IDE, puertos USB, FireWire, SATA, RAID,
ranuras PCI, ranura AMR, ranura CNR, puertos infrarrojos, disquetera, LAN, PCI-Express
1x y una larga lista de todos los elementos que podamos imaginar integrados en la placa
madre. Es el encargado de comunicar el procesador con el resto de los periféricos.
En la actualidad los principales fabricantes de chipsets son AMD, ATI Technologies (comprada
en 2006 por AMD), Intel, NVIDIA, Silicon Integrated Systems y VIA Technologies
El termino chipset en la electrónica
Circuito impreso de un DVD Philips, se puede apreciar el
chipset MT1389 del fabricante Mediatek y los pocos
componentes auxiliares como el controlador de servos (abajo
a la izquierda) y la memoria flash (derecha).
También en electrónica se utiliza el termino chipset para
referirnos al circuito integrado o conjunto de ellos que fueron
diseñados específicamente para un equipo electrónico, siendo
imposible su utilización para otro propósito que no fuese la
planificada por sus fabricantes. Estos circuitos integrados albergan en su interior prácticamente
la totalidad de los componentes del dispositivo, requiriendo de unos pocos componentes
adicionales en el circuito impreso, difíciles o imposibles de integrar, como capacitores, cristales
de cuarzo, inductores o memorias RAM que ocupan una gran superficie del chip y tienen una
alta tasa de fallos en la fabricación. Tampoco se suelen integrar las memorias flash donde se
almacena el firmware.
Front-side bus
El front-side bus, también conocido por su acrónimo FSB (del inglés literalmente "bus de la
parte frontal"), es el tipo de bus usado como bus principal en algunos de los microprocesadores
de la marca Intel para comunicarse con el chipset. Ese bus incluye señales de datos, direcciones
y control, así como señales de reloj que sincronizan su funcionamiento. En los nuevos
procesadores de Intel y hace tiempo en los de AMD se usan otros tipos de buses como el Intel
QuickPath Interconnect y el HyperTransport respectivamente.
Velocidad de componentes relacionados
La frecuencia de trabajo del microprocesador se obtiene como resultado de multiplicar la
frecuencia de reloj del FSB (en MHz, no en MT/s) por un factor multiplicador. Este factor
multiplicador, así como la frecuencia de reloj del FSB pueden alterarse a través de la
configuración de la placa base, generalmente a través de la BIOS, permitiendo así el
overclocking. Por ejemplo, una CPU de 1.000 MHz podría funcionar con una frecuencia de reloj
de 133 MHz y un factor multiplicador de 7,5.
El ancho de banda del FSB depende de su tamaño de palabra (si es de 16, 32 o 64 bits), su
frecuencia de reloj medida en megahercios y el número de transferencias que realiza por cíclo
de reloj. Por ejemplo, un FSB de 32 bits de ancho (4 bytes), funcionando a 100 MHz y que
realice 4 transferencias por cada ciclo, ofrece un máximo teórico de 1.600 megabytes por
segundo.
Por otra parte si se usa la tecnología Quad Pumping, si el bus funciona a 100 MHz de señal de
reloj, en cada ciclo de reloj hay cuatro transferencias de datos. Se dice entonces que el bus
funciona a 400 MT/s, y su ancho de banda se expresa mediante la siguiente sencilla fórmula:
4 bytes x 100 MHz x 4 = 1.600 MB/s.
Back-side bus
Algunas computadoras tienen una memoria Caché L2 o L3 externa a la propia CPU conectados
mediante un back side bus (literalmente bus trasero o bus de la parte de atrás). El acceso a la
memoria caché, conectada a este bus, es más rápido que el acceso a la Memoria RAM por el
FSB. En la actualidad, la caché L2, ha sido directamente incluida en el chip del microprocesador,
junto con la caché L1.
DISPOSITIVOS DE ENTRADA Y SALIDA
En informática, se denominan periféricos a los aparatos o dispositivos auxiliares e
independientes conectados a la unidad central de procesamiento de una computadora.
Se consideran periféricos tanto a las unidades o dispositivos a través de los cuales la
computadora se comunica con el mundo exterior, como a los sistemas que almacenan o
archivan la información, sirviendo de memoria auxiliar de la memoria principal.
Se entenderá por periférico al conjunto de dispositivos que, sin pertenecer al núcleo fundamental
de la computadora, formado por la CPU y la memoria central, permitan realizar operaciones de
entrada/salida (E/S) complementarias al proceso de datos que realiza la CPU. Estas tres
unidades básicas en un computador, CPU, memoria central y el subsistema de E/S, están
comunicadas entre sí por tres buses o canales de comunicación:



el bus de direcciones, para seleccionar la dirección del dato o del periférico al que se
quiere acceder,
el bus de control, básicamente para seleccionar la operación a realizar sobre el dato
(principalmente lectura, escritura o modificación) y
el bus de datos, por donde circulan los datos.
A pesar de que el término periférico implica a menudo el concepto de “adicional pero no
esencial”, muchos de ellos son elementos fundamentales para un sistema informático. El teclado
y el monitor, imprescindibles en cualquier computadora personal de hoy en día (no lo fueron en
los primeros computadores), son posiblemente los periféricos más comunes, y es posible que
mucha gente no los considere como tal debido a que generalmente se toman como parte
necesaria de una computadora. El mouse es posiblemente el ejemplo más claro de este
aspecto. Hace menos de 20 años no todos las computadora personales incluían este dispositivo.
El sistema operativo MS-DOS, el más común en esa época, tenía una interfaz de línea de
comandos para la que no era necesaria el empleo de un mouse, todo se hacía mediante
comandos de texto. Fue con la popularización de Finder, sistema operativo de la Macintosh de
Apple y la posterior aparición de Windows cuando el mouse comenzó a ser un elemento
imprescindible en cualquier hogar dotado de una computadora personal. Actualmente existen
sistemas operativos con interfaz de texto que pueden prescindir del mouse como, por ejemplo,
algunos sistemas básicos de UNIX y GNU/Linux.
Tipos de periféricos
Los periféricos pueden clasificarse en 5 categorías principales:





Periféricos de entrada: captan y envían los datos al dispositivo que los procesará.
Periféricos de salida: son dispositivos que muestran o proyectan información hacia el
exterior del ordenador. La mayoría son para informar, alertar, comunicar, proyectar o dar
al usuario cierta información, de la misma forma se encargan de convertir los impulsos
eléctricos en información legible para el usuario. Sin embargo, no todos de este tipo de
periféricos es información para el usuario.
Periféricos de entrada/salida (E/S) sirven básicamente para la comunicación de la
computadora con el medio externo
Periféricos de almacenamiento: son los dispositivos que almacenan datos e información
por bastante tiempo. La memoria RAM no puede ser considerada un periférico de
almacenamiento, ya que su memoria es volátil y temporal.
Periféricos de comunicación: son los periféricos que se encargan de comunicarse con
otras máquinas o computadoras, ya sea para trabajar en conjunto, o para enviar y recibir
información.
Periféricos de entrada
Mouse.
Son los que permiten introducir datos externos a la computadora para su
posterior tratamiento por parte de la CPU. Estos datos pueden provenir de
distintas fuentes, siendo la principal un ser humano. Los periféricos de
entrada más habituales son:







Teclado
Micrófono
Escáner
Mouse
Escáner de código de barras
Cámara web
Lápiz óptico
Periféricos de salida
Son los que reciben información que es procesada por la CPU y la reproducen para que sea
perceptible para el usuario. Algunos ejemplos son:




Monitor
Impresora
Fax
Tarjeta de sonido

Altavoz
Periféricos de almacenamiento
Interior de un disco duro.
Se encargan de guardar los datos de los que hace uso la CPU
para que ésta pueda hacer uso de ellos una vez que han sido
eliminados de la memoria principal, ya que ésta se borra cada vez que se apaga la
computadora. Pueden ser internos, como un disco duro, o extraíbles, como un CD. Los más
comunes son:










Disco duro
Disquete
Unidad de CD
Unidad de DVD
Unidad de Blu-ray Disc
Memoria flash
Cinta magnética
Tarjeta perforada
Memoria portátil
Otros dispositivos de almacenamiento:
o Zip (Iomega): Caben 100 Mb y utiliza tecnología magnética.
o EZFlyer (SyQuest): Caben 230 Mb y tiene una velocidad de lectura muy alta
o SuperDisk LS-120: Caben 200 Mb y utilizan tecnología magneto-óptica.
o Magneto-ópticos de 3,5: Caben de 128 Mb a 640 Mb
o Jaz (Iomega): Es como el Zip y caben de 1 GB a 2 GB.
Periféricos de comunicación
Su función es permitir o facilitar la interacción entre dos o más computadoras, o entre una
computadora y otro periférico externo a la computadora. Entre ellos se encuentran los
siguientes:








Fax-Módem
Tarjeta de red
Concentrador
Switch
Enrutador
Tarjeta inalámbrica
Tarjeta Bluetooth
Controlador ambos exista un tercer elemento que actúe como traductor de señales. Este
traductor es un circuito electrónico denominado interfaz.
EEPROM
Saltar a navegación, búsqueda
EEPROM o E²PROM son las siglas de Electrically-Erasable Programmable Read-Only Memory (ROM
programable y borrable eléctricamente). Es un tipo de memoria ROM que puede ser programado, borrado y
reprogramado eléctricamente, a diferencia de la EPROM que ha de borrarse mediante un aparato que emite
rayos ultravioletas. Son memorias no volátiles.
Las celdas de memoria de una EEPROM están constituidas por un transistor MOS, que tiene una
compuerta flotante (estructura SAMOS), su estado normal esta cortado y la salida proporciona un 1 lógico.
Aunque una EEPROM puede ser leída un número ilimitado de veces, sólo puede ser borrada y
reprogramada entre 100.000 y un millón de veces.
Estos dispositivos suelen comunicarse mediante protocolos como I²C, SPI y Microwire. En otras ocasiones,
se integra dentro de chips como microcontroladores y DSPs para lograr una mayor rapidez.
La memoria flash es una forma avanzada de EEPROM creada por el Dr. Fujio Masuoka mientras trabajaba
para Toshiba en 1984 y fue presentada en la Reunión de Aparatos Electrónicos de la IEEE de 1984. Intel
vio el potencial de la invención y en 1988 lanzó el primer chip comercial de tipo NOR.
Memoria PROM
De Wikipedia, la enciclopedia libre
(Redirigido desde PROM)
Saltar a navegación, búsqueda
PROM D23128C en la plaqueta de una Sinclair ZX Spectrum.
PROM es el acrónimo de Programmable Read-Only Memory (ROM programable). Es una memoria digital
donde el valor de cada bit depende del estado de un fusible (o antifusible), que puede ser quemado una sola
vez. Por esto la memoria puede ser programada (pueden ser escritos los datos) una sola vez a través de un
dispositivo especial, un programador PROM. Estas memorias son utilizadas para grabar datos permanentes
en cantidades menores a las ROMs, o cuando los datos deben cambiar en muchos o todos los casos.
Pequeñas PROM han venido utilizándose como generadores de funciones, normalmente en conjunción con
un multiplexor. A veces se preferían a las ROM porque son bipolares, habitulamente Schottky,
consiguiendo mayores velocidades.
Contenido




1 Programación
2 Historia
3 EPROM y EEPROM
4 Véase también
Programación
Una PROM común se encuentra con todos los bits en valor 1 como valor por defecto de las fábricas; el
quemado de cada fusible, cambia el valor del correspondiente bit a 0. La programación se realiza aplicando
pulsos de altos voltajes que no se encuentran durante operaciones normales (12 a 21 voltios). El término
Read-only (sólo lectura) se refiere a que, a diferencia de otras memorias, los datos no pueden ser
cambiados (al menos por el usuario final).
Historia
La memoria PROM fue inventada en 1956 por Wen Tsing Chow, trabajando para la División Arma, de la
American Bosch Arma Corporation en Garden City, Nueva York. La invención fue concebida a petición de
la Fuerza Aérea de los Estados Unidos, para conseguir una forma más segura y flexible para almacenar las
constantes de los objetivos en la computadora digital del MBI Atlas E/F.
La patente y la tecnología asociadas fueron mantenidas bajo secreto por varios años mientras el Atlas E/F
era el principal misil de Estados Unidos. El término "quemar", refiriéndose al proceso de grabar una
PROM, se encuentra también en la patente original, porque como parte de la implementación original debía
quemarse literalmente los diodos internos con un exceso de corriente para producir la discontinuidad del
circuito. Las primeras máquinas de programación de PROMs también fueron desarrolladas por ingenieros
de la División Arma bajo la dirección del Sr. Chow y fueron ubicados el laboratorio Arma de Garden City,
y en la jefatura del Comando estratégico aéreo de las Fuerzas Aéreas.
EPROM y EEPROM
Wen Tsing Chow y otros ingenieros de la División Arma continuaron con este suceso diseñando la primera
Memoria de Sólo Lectura No destruible' (Non-Destructive Read-Only Memory, NDRO) para aplicarlo
a misiles guiados, fundamentado en una base de doble abertura magnética. Estas memorias, diseñadas
originalmente para mantener constantes de objetivos, fueron utilizadas para sistemas de armas de MBIs y
MMRBMs.
La principal motivación para este invento fue que la Fuerza Aérea Estadounidense necesitaba reducir los
costes de la fabricación de plaquetas de objetivos basadas en PROMs que necesitaban cambios constantes a
medida que llegaba nueva información sobre objetivos del bloque de naciones comunistas. Como estas
memorias son borrables, programables y re-programables, constituyen la primera implementación de una
producción de memorias EPROM y EEPROM, de fabricación anterior al 1963.
Debe observarse que los términos modernos de estos dispositivos, PROM, EPROM y EEPROM, no fueron
creados hasta un tiempo después de que las aplicaciones de misiles nucleares guiados hayan estado
operacionales. Las implementaciones originales de Arma se refieren a las PROMs como "matriz de
almacenamiento de constantes"; y a las EPROMs y EEPROMs simplemente eran denominadas "memorias
NDRO".
Las modernas implementaciones comerciales de las PROM, EPROM y EEPROM basadas en circuitos
integrados, borrado por luz ultravioleta, y varias propiedades de los transistores, aparecen unos 10 años
después. Hasta que esas nuevas implementaciones fueron desarrolladas, fuera de aplicaciones militares, era
más barato fabricar memorias ROM que utilizar una de las nuevas caras tecnologías desarrolladas y
fabricados por los contratistas de misiles de las fuerzas aéreas.
Memoria EPROM
(Redirigido desde EPROM)
Saltar a navegación, búsqueda
EPROM. La pequeña ventana de cuarzo recibe luz UV durante el borrado.
Ventana de EPROM.
Una EPROM de 32KB (256Kbit).
Este microcontrolador 8749 almacena su programa en una EPROM interna.
Una EPROM de 4KB (32Kbit) 1984.
EPROM son las siglas de Erasable Programmable Read-Only Memory (ROM programable borrable). Es
un tipo de chip de memoria ROM no volátil inventado por el ingeniero Dov Frohman. Está formada por
celdas de FAMOS (Floating Gate Avalanche-Injection Metal-Oxide Semiconductor) o "transistores de
puerta flotante", cada uno de los cuales viene de fábrica sin carga, por lo que son leídos como 0 (por eso,
una EPROM sin grabar se lee como 00 en todas sus celdas). Se programan mediante un dispositivo
electrónico que proporciona voltajes superiores a los normalmente utilizados en los circuitos electrónicos.
Las celdas que reciben carga se leen entonces como un 1.
Una vez programada, una EPROM se puede borrar solamente mediante exposición a una fuerte luz
ultravioleta. Esto es debido a que los fotones de la luz excitan a los electrones de las celdas provocando que
se descarguen. Las EPROMs se reconocen fácilmente por una ventana transparente en la parte alta del
encapsulado, a través de la cual se puede ver el chip de silicio y que admite la luz ultravioleta durante el
borrado.
Como el cuarzo de la ventana es caro de fabricar, se introdujeron los chips OTP (One-Time Programmable,
programables una sola vez). La única diferencia con la EPROM es la ausencia de la ventana de cuarzo, por
lo que no puede ser borrada. Las versiones OTP se fabrican para sustituir tanto a las EPROMs normales
como a las EPROMs incluidas en algunos microcontroladores. Estas últimas fueron siendo sustituidas
progresivamente por EEPROMs (para fabricación de pequeñas cantidades donde el coste no es lo
importante) y por memoria flash (en las de mayor utilización).
Una EPROM programada retiene sus datos durante diez o veinte años, y se puede leer un número ilimitado
de veces. Para evitar el borrado accidental por la luz del sol, la ventana de borrado debe permanecer
cubierta. Los antiguos BIOS de los ordenadores personales eran frecuentemente EPROMs y la ventana de
borrado estaba habitualmente cubierta por una etiqueta que contenía el nombre del productor del BIOS, su
revisión y una advertencia de copyright.