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.