Blogia
modalidadguatica2011

Mantenimiento y Reparación de PC

TIPOS DE MEMORIA RAM

Actualmente, la cantidad mínima recomendada de RAM son 512 MB. Aunque los nuevos sistemas operativos, como Windows Vista, funcionan mejor con 1 GB o más.

Tipos de RAM


Tantos como quieras: DRAM, Fast Page, EDO, SDRAM... y lo que es peor, varios nombres para la misma cosa. Trataremos estos cuatro, que son los principales.

DRAM:
Dinamic-RAM, o RAM a secas, ya que es "la original", y por tanto la más lenta (aunque recuerda: siempre es mejor tener la suficiente memoria que tener la más rápida, pero andar escasos).


Usada hasta la época del 386, su velocidad de refresco típica es de 80 ó 70 nanosegundos (ns), tiempo éste que tarda en vaciarse para poder dar entrada a la siguiente serie de datos. Por ello, es más rápida la de 70 ns que la de 80 ns.

Físicamente, aparece en forma de DIMMs o de SIMMs, siendo estos últimos de 30 contactos.

Fast Page (FPM):
a veces llamada DRAM (o sólo "RAM"), puesto que evoluciona directamente de ella, y se usa desde hace tanto que pocas veces se las diferencia. Algo más rápida, tanto por su estructura (el modo de Página Rápida) como por ser de 70 ó 60 ns.


Usada hasta con los primeros Pentium, físicamente aparece como SIMMs de 30 ó 72 contactos (los de 72 en los Pentium y algunos 486).

EDO:
o EDO-RAM, Extended Data Output-RAM. Evoluciona de la Fast Page; permite empezar a introducir nuevos datos mientras los anteriores están saliendo (haciendo su Output), lo que la hace algo más rápida (un 5%, más o menos).


Muy común en los Pentium MMX y AMD K6, con refrescos de 70, 60 ó 50 ns. Se instala sobre todo en SIMMs de 72 contactos, aunque existe en forma de DIMMs de 168.

SDRAM:
Sincronic-RAM. Funciona de manera sincronizada con la velocidad de la placa (de 50 a 66 MHz), para lo que debe ser rapidísima, de unos 25 a 10 ns. Sólo se presenta en forma de DIMMs de 168 contactos; es usada en los Pentium II de menos de 350 MHz y en los Celeron.

PC100:
o SDRAM de 100 MHz. Memoria SDRAM capaz de funcionar a esos 100 MHz, que utilizan los AMD K6-2, Pentium II a 350 MHz y micros más modernos; teóricamente se trata de unas especificaciones mínimas que se deben cumplir para funcionar correctamente a dicha velocidad, aunque no todas las memorias vendidas como "de 100 MHz" las cumplen.


SIMMs y DIMMs

Se trata de la forma en que se juntan los chips de memoria, del tipo que sean, para conectarse a la placa base de la computadora. Son unas plaquitas alargadas con conectores en un extremo; al conjunto se le llama módulo.El número de conectores depende del bus de datos del microprocesador, que es la autopista por la que viajan los datos; el número de carriles de dicha autopista representaría el número de bits de información que puede manejar cada vez.

SIMMs:
Single In-line Memory Module, con 30 ó 72 contactos. Los de 30 contactos pueden manejar 8 bits cada vez, por lo que en un 386 ó 486, que tiene un bus de datos de 32 bits, necesitamos usarlos de 4 en 4 módulos iguales. Miden unos 8,5 cm ó 10,5 cm y sus zócalos suelen ser de color blanco.

Los SIMMs de 72 contactos, más modernos, manejan 32 bits, por lo que se usan de 1 en 1 en los 486; en los Pentium se haría de 2 en 2 módulos (iguales), porque el bus de datos de los Pentium es el doble de grande (64 bits).

DIMMs:
más alargados (unos 13 cm), con 168 contactos y en zócalos generalmente negros; llevan dos muescas para facilitar su correcta colocación. Pueden manejar 64 bits de una vez, por lo que pueden usarse de 1 en 1 en los Pentium, K6 y superiores. Existen para voltaje estándar (5 voltios) o reducido (3.3 V).

Y podríamos añadir los módulos SIP, que eran parecidos a los SIMM pero con frágiles patitas soldadas y que no se usan desde hace bastantes años, o cuando toda o parte de la memoria viene soldada en la placa (caso de algunas PCs de marca).

Otros tipos de RAMBEDO (Burst-EDO):
una evolución de la EDO, que envía ciertos datos en "ráfagas". Poco extendida, compite en prestaciones con la SDRAM.

Memorias con paridad:
consisten en añadir a cualquiera de los tipos anteriores un chip que realiza una operación con los datos cuando entran en el chip y otra cuando salen. Si el resultado ha variado, se ha producido un error y los datos ya no son fiables.

Dicho así, parece una ventaja; sin embargo, la computadora sólo avisa de que el error se ha producido, no lo corrige. Es más, estos errores son tan improbables que la mayor parte de los chips no los sufren jamás aunque estén funcionando durante años; por ello, hace años que todas las memorias se fabrican sin paridad.ECC: memoria con corrección de errores. Puede ser de cualquier tipo, aunque sobre todo EDO-ECC o SDRAM-ECC. Detecta errores de datos y los corrige; para aplicaciones críticas. Usada en servidores y mainframes.

Memorias de Vídeo:
para tarjetas gráficas. De menor a mayor rendimiento, pueden ser: DRAM -> FPM -> EDO -> VRAM -> WRAM -> SDRAM -> SGRAM.

Actualizar la memoria RAM


Antiguamente resultaba casi impensable aumentar la cantidad de memoria RAM como no fuera en 2 ó 4 megas, y eso a costa de dejar la billetera en el intento, ya que la memoria era muy costosa por mega. Sin embargo, con los precios actuales, cualquiera puede pensar en añadir 16, 32 ó 64 MB a su PC fácilmente.

Ante todo, hay que tener en cuenta que actualizar la memoria de una computadora muy antigua como un 8086, un 286 ó muchos 386 SX resulta casi imposible; en estas la memoria o no es ampliable (por venir soldada en placa o no tener ranuras para ampliarla) o no se fabrica desde hace años la que sería necesaria.

Por cierto: casi todas las computadoras de marca usan memorias especiales, independientemente de si son 386, 486. En esos casos de PCs antiguas, deberás contactarte con el fabricante o comprar memorias compatibles de algún especialista. Esta desgracia se cumple para la mayoría de las PCs de marca, excepto algunas modernas tipo Pentium o superiores.

En cuanto a los que sí podrás actualizar con tus manos, te darás cuenta pronto de que existe una serie de normas a seguir muy extensa, que a decir verdad no siempre se cumplen. Los pasos que deberá seguir son:

1
.- Identificar el tipo de memoria que utiliza tu PC. La fuente más apropiada de información a este respecto es el manual de la placa base. Algunas placas base admiten más de un tipo de memoria, pero en general mezclar dos tipos o velocidades distintos de memoria es una garantía de incompatibilidades y problemas; incluso dos módulos iguales de distinta marca no tienen por qué ser compatibles, especialmente cuando se trata de marcas de no demasiada calidad... tampoco te asustes, muchas veces mezclar velocidades o marcas distintas, e incluso mezclar los tipos FPM y EDO, no da problemas; pero por si acaso busca siempre memorias lo más parecidas posible.

2
.- Una vez leído el manual de la placa base, no te fíes y comprueba qué tipo de memoria hay en realidad en tu computadora. Para ello desconéctala, ábrela, descárgate de electricidad estática y observa la placa.Los zócalos SIMM suelen ser blancos y de unos 10,5 cm (los de 30 contactos más cortos, unos 8,5 cm) y los DIMM negros y muy largos (unos 13 cm).En cuanto a los módulos en sí, la velocidad se suele indicar sobre los chips de memoria, mediante un número o dos al final del serigrafiado que indica los nanosegundos (ns), como "-7" o "-07" (curiosamente, rara vez "-70") para 70 ns, o "-6" para 60 ns.Esto es también aplicable a los chips de caché (que después de todo no es más que memoria rápida con una finalidad determinada); por ejemplo, a la izquierda están dos chips de memoria caché de 15 ns. Y, finalmente, algunos chips de memoria (especialmente del tipo SDRAM) llevan escrita no la velocidad de refresco (60 ns, 50 ns...) sino la velocidad máxima en MHz que pueden alcanzar sin problemas (66 MHz o 100 MHz son los valores más comunes hoy en día).En cuanto a diferenciar memoria EDO de FPM, principalmente observa los mensajes de la BIOS al arrancar, especialmente durante el test de memoria, o entra dentro de la misma y observa si encuentras mensajes del tipo "EDO DRAM in banks 0,1" o bien "No EDO DRAM present".


3.- Ahora que sabes qué tipo de memoria admite tu PC, elije la configuración de la memoria a añadir.
Esto de colocar los módulos en ciertos grupos se llama completar los bancos de memoria. En algunas placas hay más libertad, pero esto es tan raro como no tener problemas mezclando tipos o velocidades distintos. Lee el manual de la placa atentamente para las combinaciones admisibles, no siempre todas las teóricas son utilizables.

4
.- Compra la memoria nueva. Recuerda: mismo tipo (FPM, EDO, SDRAM), mismo conector (SIMM de 30 contactos, SIMM de 72, DIMM de 168), misma velocidad (80, 70, 60, 50, 20... ns) e incluso si puedes misma marca que la antigua. En cuanto a marcas, las hay mejores que otras, como las Kingston, HP, Samsung... si te suena la marca, puede que sea mejor que otra. Sin embargo, se han visto memorias de marca fallar en placas donde memorias genéricas "Made in Taiwan" funcionaban a la perfección; para esto no existe más regla fija que la Ley de Murphy. :)

5
.- Procede a instalar la memoria. Para ello, desconecta, descárgate, abre la caja, y aparte, desconecta o desinstala todo lo que te moleste en el acceso a los zócalos. Mira el serigrafiado y/o el manual para encontrar cuál es el extremo del pin número 1 (indicado por un pequeño 1 o por un punto o flecha) y cuál el final (el del pin 30, 72 o 168).

6
.- El proceso de introducir el módulo depende de su tipo:

SIMM de 30 contactos: entran en posición vertical, formando 90º con la placa base, y se insertan por pura presión. Resulta fundamental estar seguro de que no lo estamos introduciendo del revés, para lo cual los zócalos suelen ser ligeramente asimétricos, con unos salientes para no equivocarnos, además de tener marcada la posición del pin 1.
SIMM de 72 contactos: se insertan en posición inclinada unos 45º respecto de la placa, y seguidamente se enderezan hasta formar 90º con la placa, tras lo cual quedan atrapados por unas presillas en los extremos. Resulta asimismo importante no equivocar la orientación.
DIMM de 168 contactos: se insertan de manera vertical, como los SIMM de 30 contactos. Tienen dos muescas para no equivocar su orientación.

7
.- Una vez instalada físicamente, verifica el funcionamiento de la memoria. Primero, asegúrate de que la BIOS la reconoce, tanto en el test de arranque como en los menús de la misma; para entrar en ella, quizá se haga pulsando la tecla "Supr" ("Del"). No te preocupes si el recuento de memoria de una o ambas pruebas indica algo menos, como 23.936 Kb en vez de 24.576 Kb (24 MB, 24 "megas"), esto no significa que la memoria sea defectuosa en absoluto. Sin embargo, en ambos casos debe estar cerca de la cifra real, ¡nada de 32MB cuando ha instalado 64!!Si esto está bien, prueba arrancar y usar algunos programas, además del sistema operativo e interfaz gráfica favoritos. A estos efectos, Windows 98 y NT son mucho más exquisitos que el viejo, adorable y tolerante DOS, así que haz las pruebas sobre ellos o sobre DOS y Windows 3.1 si lo tiene. Si haciendo el trabajo habitual nada falla más de lo normal, ¡felicidades!! Ya has actualizado la memoria con éxito.


Problemas comunes y soluciones

Instalar memoria nueva en una computadora puede llegar a ser una fuente importante de dolores de cabeza, no por su instalación, puesto que es algo muy sencillo, sino porque pueden existir pequeños problemas e incompatibilidades que en ocasiones ni siquiera tienen un motivo identificable.

¿Qué pasa si no tengo ranuras libres?

Pues tendrás que desechat o vender de segunda mano parte de la memoria que tienes actualmente.
Si vas a sustituir toda la memoria, aprovecha para optimizarla un poco; es decir, que si actualmente la memoria es FPM de 70 ns instala la nueva de 60 ns, o si es EDO de 60 ns instales de 50 ns. Eso sí, siempre que tu placa no indique la necesidad de usar memoria de una velocidad específica (generalmente, y mientras no mezclemos velocidades distintas, poner memoria más rápida no es problema; ponerla más lenta sí).

¿Qué pasa si no encuentro la memoria apropiada?


Los SIMM de 30 contactos, sobre todo de bajas velocidades (es decir, de tiempos de espera altos, de 100 u 80 ns), son especialmente difíciles de encontrar y en casi ningún caso serán nuevos. De esta forma, encontrar módulos FPM o EDO lentos puede llevar un cierto tiempo, aunque en este caso no se debería desesperar.De cualquier modo, si te desesperas y decides comprar memoria de diferente velocidad o tipo, sustitúyela por la ya instalada. Si mezclas distintos tipos o velocidades te estás jugando a tener muy probables inconvenientes.

Errores al inicio y fallos de memoria


Puede que acabes de descubrir lo que es una incompatibilidad de memoria (o que un módulo esté defectuoso, pero esto es más improbable). En este caso, es recomendable:

- Verificar que se haya instalado físicamente bien la memoria, si es del tipo y velocidad adecuados.
- Verificar con el manual de la placa en mano, si estás en el zócalo adecuado y si es una combinación de módulos posible.
- Intercambiar los módulos entre sí; prueba sólo con unos, luego con otros y por último con todos

MEMORIA RAM

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.

 

Nomenclatura

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 módulos 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 circuitos integrados soldados sobre un circuito impreso, en otros dispositivos como las consolas de videojuegos, esa misma memoria va soldada sobre la placa principal.

Su capacidad se mide en bytes, y dada su naturaleza siempre binaria, sus múltiplos serán representados en múltiplos binarios tales como Kibibyte, Mebibyte, Gibibyte...

Historia

Integrado de silicio de 64 bits sobre un sector de memoria de núcleo (finales de los 60).

La historia está marcada por la necesidad del volumen de datos. Originalmente, los datos eran programados por el usuario con movimientos de interruptores. Se puede decir que el movimiento de datos era bit a bit. Las necesidades apuntaron a una automatización y se crearon lo que se denomina byte de palabra. Desde una consola remota, se trasladaban los interruptores asignándoles valores de letra, que correspondían a una orden de programación al microprocesador. Así, si se deseaba programar una orden NOT con dos direcciones distintas de memoria, solo se tenía que activar el grupo de interruptores asociados a la letra N, a la letra O y a la letra T. Seguidamente, se programaban las direcciones de memoria sobre las cuales recibirían dicho operador lógico, para después procesar el resultado. Los interruptores evolucionaron asignándoles una tabla de direccionamiento de 16x16 bytes, en donde se daban 256 valores de byte posibles (la actual tabla ASCII). En dicha tabla, se traducen lo que antes costaba activar 8 interruptores por letra, a una pulsación por letra (de cara al recurso humano, un ahorro en tiempos. Una sola pulsación, predisponía 1 byte en RAM... o en otras palabras, cambiaba la posición de 8 interruptores con una sola pulsación). Se usó el formato de máquina de escribir, para representar todo el alfabeto latino, necesario para componer palabras en inglés; así como los símbolos aritméticos y lógicos que permitían la escritura de un programa directamente en memoria RAM a través de una consola o teclado.

En origen, los programadores no veían en tiempo real lo que tecleaban, teniendo que imprimir de cuando en cuando el programa residente en memoria RAM y haciendo uso del papel a la hora de ir modificando o creando un nuevo programa. Dado que el papel era lo más accesible, los programas comenzaron a imprimirse en un soporte de celulosa más resistente, creando lo que se denominó Tarjeta perforada. Así pues, los programas constaban de una o varias tarjetas perforadas, que se almacenaban en archivadores de papel con las típicas anillas de sujeción. Dichas perforaciones, eran leídas por un dispositivo de entrada, que no era muy diferente al teclado y que constaba de pulsadores que eran activados o desactivados, dependiendo de si la tarjeta en la posición de byte, contenía una perforación o no. Cada vez que se encendía la máquina, requería de la carga del programa que iba a ejecutar.

Dado que los datos en memoria son de 0 o 1, que esas posiciones físicamente representan el estado de un conmutador, que la estimulación del conmutador evolucionó a pulsos electromagnéticos, el almacenamiento de los programas era cuestión de tiempo que su almacenamiento pasara del papel a un soporte lógico, tal como las cintas de almacenamiento. Las cintas eran secuenciales, y la composición de la cinta era de un material magnetoestático; bastaba una corriente Gauss para cambiar las polaridades del material. Dado que el material magnético puede tener polaridad norte o sur, era ideal para representar el 0 o el 1. Así, ahora, cargar un programa no era cuestión de estar atendiendo un lector de tarjetas en el cual se debían de ir metiendo de forma interminable tarjetas perforadas que apenas podían almacenar apenas unos bytes. Ahora, los dispositivos electromagnéticos secuenciales requerían la introducción de la cinta y la pulsación de una tecla para que se cargara todo el programa de inicio a fin, de forma secuencial. Los accesos aleatorios no aparecieron hasta la aparición del disco duro y el Floppy. Con estos medios, un cabezal lector se deslizaba por la superficie en movimiento, si dicho movimiento tenía como consecuencia la lectura de un valor N-N (norte-norte) no generaba corriente, tampoco si era S-S (Sur-Sur), por el contrario, si era N-S o S-N sí creaba una corriente, que era captada por el circuito que mandaba el dato a la memoria RAM.

Toda esta automatización requiso del diseño de un sistema operativo, o de un área de gestión del recurso para su automatización. Estos sistemas requerían de un área de memoria reservada, en origen de 64 Kb (Capacidades de representación de texto en monitor monocromo), para irse ampliando a 128 Kb (Monocromo con capacidades gráficas), 256 (Texto y gráficos a dos colores), 512 (Texto y gráficos a 4 colores) y los tradicionales 640 Kb (Texto y gráficos a 16 colores). Esa memoria se denominó memoria base.

Es en esta parte del tiempo, en donde se puede hablar de un área de trabajo para la mayor parte del software de un computador. La RAM continua siendo volátil por lo que posee la capacidad de perder la información una vez que se agote su fuente de energía.[1] Existe una memoria intermedia entre el procesador y la RAM, llamada caché, 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]

4MiB 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 (unidades de cinta 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 relés 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 Kibibyte, 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 tenía 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 4 Kb 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 EDO-RAM.

  • 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 30 ns 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 búffer 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.

Arquitectura base

En origen, la memoria RAM se componía de hilos de cobre que atravesaban toroides de ferrita, la corriente polariza la ferrita. Mientras esta queda polarizada, el sistema puede invocar al procesador accesos a partes del proceso que antes (en un estado de reposo) no es posible acceder. En sus orígenes, la invocación a la RAM, producía la activación de contactores, ejecutando instrucciones del tipo AND, OR y NOT. La programación de estos elementos, consistía en la predisposición de los contactores para que, en una línea de tiempo, adquiriesen las posiciones adecuadas para crear un flujo con un resultado concreto. La ejecución de un programa, provocaba un ruido estruendoso en la sala en la cual se ejecutaba dicho programa, por ello el área central de proceso estaba separada del área de control por mamparas insonorizadas.

Con las nuevas tecnologías, las posiciones de la ferrita se ha ido sustituyendo por, válvulas de vacío, transistores y en las últimas generaciones, por un material sólido dieléctrico. Dicho estado estado sólido dieléctrico tipo DRAM permite que se pueda tanto leer como escribir información.

Uso por el sistema

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 denominan "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.

Módulos de la 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 decenas o cientos de Megabits. Además de DRAM, los módulos poseen un integrado que permiten la identificación de los 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 buen contacto eléctrico 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 cachés. Es una memoria relativamente rápida y de una capacidad media: sobre el año 2010), era fácil encontrar memorias con velocidades de más de 1 Ghz, y capacidades de hasta 8 GB por módulo, llegando a verse memorias pasando la barrera de los 3 Ghz por esa misma fecha mediante prácticas de overclock extremo. 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 transitorias de una nueva tecnología de RAM. Los controladores de memoria en sistemas como PC y servidores se encuentran embebidos en el llamado "North Bridge" o "Puente Norte" de la placa base; o en su defecto, dentro del mismo procesador (en el caso de los procesadores desde AMD Athlon 64 e Intel Core i7) y posteriores; 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), tres canales, o incluso cuatro para los procesadores venideros; 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 o superior.

Módulos de memoria instalados de 256 MiB cada uno en un sistema con 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 decantó por las tecnologías síncronas, ya que permiten construir integrados que funcionen a una frecuencia superior a 66 MHz (A día de hoy, se han superado con creces los 1600 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 en el caso de ordenador de escritorio y en módulos de 144 contactos para los ordenadores portátiles. Los tipos disponibles son:

  • PC2100 o DDR 266: funciona a un máx de 133 MHz.
  • PC2700 o DDR 333: funciona a un máx de 166 MHz.
  • PC3200 o DDR 400: funciona a un máx de 200 MHz.

DDR2 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 o DDR2-533: funciona a un máx de 533 MHz.
  • PC2-5300 o DDR2-667: funciona a un máx de 667 MHz.
  • PC2-6400 o DDR2-800: funciona a un máx de 800 MHz.
  • PC2-8600 o DDR2-1066: funciona a un máx de 1066 MHz.

DDR3 SDRAM

Artículo principal: DDR3

Las memorias DDR 3 son una mejora de las memorias DDR 2, proporcionan 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. Los tipos disponibles son:

  • PC3-8600 o DDR3-1066: funciona a un máx de 1066 MHz.
  • PC3-10600 o DDR3-1333: funciona a un máx de 1333 MHz.
  • PC3-12800 o DDR3-1600: funciona a un máx de 1600 MHz.

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 tecnología DDR, libre de patentes, excepto algunos servidores de grandes prestaciones (Cray) y la consola PlayStation 3. La RDRAM 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 dicho 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 que se encargan de repetir las señales de control y direcciones. Las señales de reloj son reconstruidas con ayuda del PLL que está ubicado 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 GiB). 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.

 

 


CPU

CPU

La unidad central de procesamiento o CPU (por el acrónimo en inglés de central processing unit), o simplemente el procesador o microprocesador, es el componente del computador y otros dispositivos programables, que interpreta las instrucciones contenidas en los programas y procesa los datos. Los CPU proporcionan la característica fundamental de la computadora digital (la programabilidad) y son uno de los componentes necesarios encontrados en las computadoras de cualquier tiempo, junto con el almacenamiento primario y los dispositivos de entrada/salida. Se conoce como microprocesador el CPU que es manufacturado con circuitos integrados. Desde mediados de los años 1970, los microprocesadores de un solo chip han reemplazado casi totalmente todos los tipos de CPU, y hoy en día, el término "CPU" es aplicado usualmente a todos los microprocesadores.

La expresión "unidad central de proceso" es, en términos generales, una descripción de una cierta clase de máquinas de lógica que pueden ejecutar complejos programas de computadora. Esta amplia definición puede fácilmente ser aplicada a muchos de los primeros computadores que existieron mucho antes que el término "CPU" estuviera en amplio uso. Sin embargo, el término en sí mismo y su acrónimo han estado en uso en la industria de la informática por lo menos desde el principio de los años 1960 . La forma, el diseño y la implementación de los CPU ha cambiado drásticamente desde los primeros ejemplos, pero su operación fundamental ha permanecido bastante similar.

Los primeros CPU fueron diseñados a la medida como parte de una computadora más grande, generalmente una computadora única en su especie. Sin embargo, este costoso método de diseñar los CPU a la medida, para una aplicación particular, ha desaparecido en gran parte y se ha sustituido por el desarrollo de clases de procesadores baratos y estandarizados adaptados para uno o muchos propósitos. Esta tendencia de estandarización comenzó generalmente en la era de los transistores discretos, computadoras centrales, y microcomputadoras, y fue acelerada rápidamente con la popularización del circuito integrado (IC), éste ha permitido que sean diseñados y fabricados CPU más complejos en espacios pequeños (en la orden de milímetros). Tanto la miniaturización como la estandarización de los CPU han aumentado la presencia de estos dispositivos digitales en la vida moderna mucho más allá de las aplicaciones limitadas de máquinas de computación dedicadas. Los microprocesadores modernos aparecen en todo, desde automóviles, televisores, neveras, calculadoras, aviones, hasta teléfonos móviles o celulares, juguetes, entre otros

Historia

El EDVAC, uno de los primeros computadores de programas almacenados electrónicamente.

Artículo principal: Historia del hardware de computador

Casi todos los CPU tratan con estados discretos, y por lo tanto requieren una cierta clase de elementos de conmutación para diferenciar y cambiar estos estados. Antes de la aceptación comercial del transistor, los relés eléctricos y los tubos de vacío (válvulas termoiónicas) eran usados comúnmente como elementos de conmutación. Aunque éstos tenían distintas ventajas de velocidad sobre los anteriores diseños puramente mecánicos, no eran fiables por varias razones. Por ejemplo, hacer circuitos de lógica secuencial de corriente directa requería hardware adicional para hacer frente al problema del rebote de contacto. Por otro lado, mientras que los tubos de vacío no sufren del rebote de contacto, éstos deben calentarse antes de llegar a estar completamente operacionales y eventualmente fallan y dejan de funcionar por completo.[1] Generalmente, cuando un tubo ha fallado, el CPU tendría que ser diagnosticado para localizar el componente que falla para que pueda ser reemplazado. Por lo tanto, los primeros computadores electrónicos, (basados en tubos de vacío), generalmente eran más rápidas pero menos confiables que las computadoras electromecánicas, (basadas en relés). Las computadoras de tubo, como el EDVAC, tendieron en tener un promedio de ocho horas entre fallas, mientras que las computadoras de relés, (anteriores y más lentas), como el Harvard Mark I, fallaban muy raramente . Al final, los CPU basados en tubo llegaron a ser dominantes porque las significativas ventajas de velocidad producidas generalmente pesaban más que los problemas de confiabilidad. La mayor parte de estos tempranos CPU síncronos corrían en frecuencias de reloj bajas comparadas con los modernos diseños microelectrónicos, (ver más abajo para una exposición sobre la frecuencia de reloj). Eran muy comunes en este tiempo las frecuencias de la señal del reloj con un rango desde 100 kHz hasta 4 MHz, limitado en gran parte por la velocidad de los dispositivos de conmutación con los que fueron construidos.

CPU de transistores y de circuitos integrados discretos

La complejidad del diseño de los CPU se incrementó a medida que varias tecnologías facilitaron la construcción de dispositivos electrónicos más pequeños y confiables. La primera de esas mejoras vino con el advenimiento del transistor. Los CPU transistorizados durante los años 1950 y los años 1960 no tuvieron que ser construidos con elementos de conmutación abultados, no fiables, y frágiles, como los tubos de vacío y los relés eléctricos. Con esta mejora, fueron construidos CPU más complejos y más confiables sobre una o varias tarjetas de circuito impreso que contenían componentes discretos (individuales).

Durante este período, ganó popularidad un método de fabricar muchos transistores en un espacio compacto. El circuito integrado (IC) permitió que una gran cantidad de transistores fueran fabricados en una simple oblea basada en semiconductor o "chip". Al principio, solamente circuitos digitales muy básicos, no especializados, como las puertas NOR fueron miniaturizados en IC. Los CPU basadas en estos IC de "bloques de construcción" generalmente son referidos como dispositivos de pequeña escala de integración "small-scale integration" (SSI). Los circuitos integrados SSI, como los usados en el computador guía del Apollo (Apollo Guidance Computer), usualmente contenían transistores que se contaban en números de múltiplos de diez. Construir un CPU completo usando IC SSI requería miles de chips individuales, pero todavía consumía mucho menos espacio y energía que diseños anteriores de transistores discretos. A medida que la tecnología microelectrónica avanzó, en los IC fue colocado un número creciente de transistores, disminuyendo así la cantidad de IC individuales necesarios para un CPU completo. Los circuitos integrados MSI y el LSI (de mediana y gran escala de integración) aumentaron el número de transistores a cientos, y luego a miles.

En 1964, IBM introdujo su arquitectura de computador System/360, que fue usada en una serie de computadores que podían ejecutar los mismos programas con velocidades y desempeños diferentes. Esto fue significativo en un tiempo en que la mayoría de las computadoras electrónicas eran incompatibles entre sí, incluso las hechas por el mismo fabricante. Para facilitar esta mejora, IBM utilizó el concepto de microprograma, a menudo llamado "microcódigo", ampliamente usado aún en los CPU modernos . La arquitectura System/360 era tan popular que dominó el mercado del mainframe durante las siguientes décadas y dejó una herencia que todavía aún perdura en las computadoras modernas, como el IBM zSeries. En el mismo año de 1964, Digital Equipment Corporation (DEC) introdujo otro computador que sería muy influyente, dirigido a los mercados científicos y de investigación, el PDP-8. DEC introduciría más adelante la muy popular línea del PDP-11, que originalmente fue construido con IC SSI pero eventualmente fue implementado con componentes LSI cuando se convirtieron en prácticos. En fuerte contraste con sus precursores hechos con tecnología SSI y MSI, la primera implementación LSI del PDP-11 contenía un CPU integrado únicamente por cuatro circuitos integrados LSI .

Los computadores basados en transistores tenían varias ventajas frente a sus predecesores. Aparte de facilitar una creciente fiabilidad y un menor consumo de energía, los transistores también permitían al CPU operar a velocidades mucho más altas debido al corto tiempo de conmutación de un transistor en comparación a un tubo o relé. Gracias tanto a esta creciente fiabilidad como al dramático incremento de velocidad de los elementos de conmutación que por este tiempo eran casi exclusivamente transistores, se fueron alcanzando frecuencias de reloj del CPU de decenas de megahertz. Además, mientras que los CPU de transistores discretos y circuitos integrados se usaban comúnmente, comenzaron a aparecer los nuevos diseños de alto rendimiento como procesadores vectoriales SIMD (Single Instruction Multiple Data) (Simple Instrucción Múltiples Datos). Estos primeros diseños experimentales dieron lugar más adelante a la era de las supercomputadoras especializadas, como los hechos por Cray Inc.

Microprocesadores

Desde la introducción del primer microprocesador, el Intel 4004, en 2016, y del primer microprocesador ampliamente usado, el Intel 8080, en 1974, esta clase de CPUs ha desplazado casi totalmente el resto de los métodos de implementación de la Unidad Central de Proceso. Los fabricantes de mainframes y minicomputadores de ese tiempo lanzaron programas de desarrollo de IC propietarios para actualizar sus más viejas arquitecturas de computador, y eventualmente produjeron microprocesadores con conjuntos de instrucciones que eran compatibles hacia atrás con sus más viejos hardwares y softwares. Combinado con el advenimiento y el eventual vasto éxito del ahora ubicuo computadora personal, el término "CPU" es aplicado ahora casi exclusivamente a los microprocesadores.

Las generaciones previas de CPUs fueron implementadas como componentes discretos y numerosos circuitos integrados de pequeña escala de integración en una o más tarjetas de circuitos. Por otro lado, los microprocesadores son CPUs fabricados con un número muy pequeño de IC; usualmente solo uno. El tamaño más pequeño del CPU, como resultado de estar implementado en una simple pastilla, significa tiempos de conmutación más rápidos debido a factores físicos como el decrecimiento de la capacitancia parásita de las puertas. Esto ha permitido que los microprocesadores síncronos tengan tiempos de reloj con un rango de decenas de megahercios a varios gigahercios. Adicionalmente, como ha aumentado la capacidad de construir transistores excesivamente pequeños en un IC, la complejidad y el número de transistores en un simple CPU también se ha incrementado dramáticamente. Esta tendencia ampliamente observada es descrita por la ley de bore, que ha demostrado hasta la fecha, ser una predicción bastante exacta del crecimiento de la complejidad de los CPUs y otros IC.

Mientras que, en los pasados sesenta años han cambiado drásticamente, la complejidad, el tamaño, la construcción, y la forma general del CPU, es notable que el diseño y el funcionamiento básico no ha cambiado demasiado. Casi todos los CPU comunes de hoy se pueden describir con precisión como máquinas de programa almacenado de von Neumann.

A medida que la ya mencionada ley del Moore continúa manteniéndose verdadera, se han presentado preocupaciones sobre los límites de la tecnología de transistor del circuito integrado. La miniaturización extrema de puertas electrónicas está causando los efectos de fenómenos que se vuelven mucho más significativos, como la electromigración, y el subumbral de pérdida. Estas más nuevas preocupaciones están entre los muchos factores que hacen a investigadores estudiar nuevos métodos de computación como la computadora cuántica, así como ampliar el uso de paralelismo, y otros métodos que extienden la utilidad del modelo clásico de von Neumann.

Diseño e implementación

Rango de enteros

La manera en que un CPU representa los números es una opción de diseño que afecta las más básicas formas en que el dispositivo funciona. Algunas de las primeras calculadoras digitales usaron, para representar números internamente, un modelo eléctrico del sistema de numeración decimal común (base diez). Algunas otras computadoras han usado sistemas de numeración más exóticos como el ternario (base tres). Casi todos los CPU modernos representan los números en forma binaria, en donde cada dígito es representado por una cierta cantidad física de dos valores, como un voltaje "alto" o "bajo".[6]

Con la representación numérica están relacionados el tamaño y la precisión de los números que un CPU puede representar. En el caso de un CPU binario, un bit se refiere a una posición significativa en los números con que trabaja un CPU. El número de bits (o de posiciones numéricas, o dígitos) que un CPU usa para representar los números, a menudo se llama "tamaño de la palabra", "ancho de bits", "ancho de ruta de datos", o "precisión del número entero" cuando se ocupa estrictamente de números enteros (en oposición a números de coma flotante). Este número difiere entre las arquitecturas, y a menudo dentro de diferentes unidades del mismo CPU. Por ejemplo, un CPU de 8 bits maneja un rango de números que pueden ser representados por ocho dígitos binarios, cada dígito teniendo dos valores posibles, y en combinación los 8 bits teniendo 28 ó 256 números discretos. En efecto, el tamaño del número entero fija un límite de hardware en el rango de números enteros que el software corre y que el CPU puede usar directamente.[7]

El rango del número entero también puede afectar el número de posiciones en memoria que el CPU puede direccionar (localizar). Por ejemplo, si un CPU binario utiliza 32 bits para representar una dirección de memoria, y cada dirección de memoria representa a un octeto (8 bits), la cantidad máxima de memoria que el CPU puede direccionar es 232 octetos, o 4 GB. Ésta es una vista muy simple del espacio de dirección del CPU, y muchos diseños modernos usan métodos de dirección mucho más complejos como paginación para localizar más memoria que su rango entero permitiría con un espacio de dirección plano.

Niveles más altos del rango de números enteros requieren más estructuras para manejar los dígitos adicionales, y por lo tanto, más complejidad, tamaño, uso de energía, y generalmente costo. Por ello, no es del todo infrecuente, ver microcontroladores de 4 y 8 bits usados en aplicaciones modernas, aun cuando están disponibles CPU con un rango mucho más alto (de 16, 32, 64, e incluso 128 bits). Los microcontroladores más simples son generalmente más baratos, usan menos energía, y por lo tanto disipan menos calor. Todo esto pueden ser consideraciones de diseño importantes para los dispositivos electrónicos. Sin embargo, en aplicaciones del extremo alto, los beneficios producidos por el rango adicional, (más a menudo el espacio de dirección adicional), son más significativos y con frecuencia afectan las opciones del diseño. Para ganar algunas de las ventajas proporcionadas por las longitudes de bits tanto más bajas, como más altas, muchas CPUs están diseñadas con anchos de bit diferentes para diferentes unidades del dispositivo. Por ejemplo, el IBM System/370 usó un CPU que fue sobre todo de 32 bits, pero usó precisión de 128 bits dentro de sus unidades de coma flotante para facilitar mayor exactitud y rango de números de coma flotante . Muchos diseños posteriores de CPU usan una mezcla de ancho de bits similar, especialmente cuando el procesador está diseñado para usos de propósito general donde se requiere un razonable equilibrio entre la capacidad de números enteros y de coma flotante.

Frecuencia de reloj

La mayoría de los CPU, y de hecho, la mayoría de los dispositivos de lógica secuencial, son de naturaleza síncrona.[8] Es decir, están diseñados y operan en función de una señal de sincronización. Esta señal, conocida como señal de reloj, usualmente toma la forma de una onda cuadrada periódica. Calculando el tiempo máximo en que las señales eléctricas pueden moverse en las varias bifurcaciones de los muchos circuitos de un CPU, los diseñadores pueden seleccionar un período apropiado para la señal del reloj.

Este período debe ser más largo que la cantidad de tiempo que toma a una señal moverse, o propagarse, en el peor de los casos. Al fijar el período del reloj a un valor bastante mayor sobre el retardo de la propagación del peor caso, es posible diseñar todo el CPU y la manera que mueve los datos alrededor de los "bordes" de la subida y bajada de la señal del reloj. Esto tiene la ventaja de simplificar el CPU significativamente, tanto en una perspectiva de diseño, como en una perspectiva de cantidad de componentes. Sin embargo, esto también tiene la desventaja que todo el CPU debe esperar por sus elementos más lentos, aun cuando algunas unidades de la misma son mucho más rápidas. Esta limitación ha sido compensada en gran parte por varios métodos de aumentar el paralelismo del CPU (ver abajo).

Sin embargo, las solamente mejoras arquitectónicas no solucionan todas las desventajas de CPUs globalmente síncronas. Por ejemplo, una señal de reloj está sujeta a los retardos de cualquier otra señal eléctrica. Velocidades de reloj más altas en CPUs cada vez más complejas hacen más difícil de mantener la señal del reloj en fase (sincronizada) a través de toda la unidad. Esto ha conducido que muchos CPU modernos requieran que se les proporcione múltiples señales de reloj idénticas, para evitar retardar una sola señal lo suficiente significativamente como para hacer al CPU funcionar incorrectamente. Otro importante problema cuando la velocidad del reloj aumenta dramáticamente, es la cantidad de calor que es disipado por el CPU. La señal del reloj cambia constantemente, provocando la conmutación de muchos componentes (cambio de estado) sin importar si están siendo usados en ese momento. En general, un componente que está cambiando de estado, usa más energía que un elemento en un estado estático. Por lo tanto, a medida que la velocidad del reloj aumenta, así lo hace también la disipación de calor, causando que el CPU requiera soluciones de enfriamiento más efectivas.

Un método de tratar la conmutación de componentes innecesarios se llama el clock gating, que implica apagar la señal del reloj a los componentes innecesarios, efectivamente desactivándolos. Sin embargo, esto es frecuentemente considerado como difícil de implementar y por lo tanto no ve uso común afuera de diseños de muy baja potencia.[9] Otro método de tratar algunos de los problemas de una señal global de reloj es la completa remoción de la misma. Mientras que quitar la señal global del reloj hace, de muchas maneras, considerablemente más complejo el proceso del diseño, en comparación con diseños síncronos similares, los diseños asincrónicos (o sin reloj) tienen marcadas ventajas en el consumo de energía y la disipación de calor. Aunque algo infrecuente, CPUs completas se han construido sin utilizar una señal global de reloj. Dos notables ejemplos de esto son el AMULET, que implementa la arquitectura del ARM, y el MiniMIPS, compatible con el MIPS R3000. En lugar de remover totalmente la señal del reloj, algunos diseños de CPU permiten a ciertas unidades del dispositivo ser asincrónicas, como por ejemplo, usar ALUs asincrónicas en conjunción con pipelining superescalar para alcanzar algunas ganancias en el desempeño aritmético. Mientras que no está completamente claro si los diseños totalmente asincrónicos pueden desempeñarse a un nivel comparable o mejor que sus contrapartes síncronas, es evidente que por lo menos sobresalen en las más simples operaciones matemáticas. Esto, combinado con sus excelentes características de consumo de energía y disipación de calor, los hace muy adecuados para sistemas embebidos .

Paralelismo

La descripción de la operación básica de un CPU ofrecida en la sección anterior describe la forma más simple que puede tomar un CPU. Este tipo de CPU, usualmente referido como subescalar, opera sobre y ejecuta una sola instrucción con una o dos piezas de datos a la vez.

Este proceso da lugar a una ineficacia inherente en CPUs subescalares. Puesto que solamente una instrucción es ejecutada a la vez, todo el CPU debe esperar que esa instrucción se complete antes de proceder a la siguiente instrucción. Como resultado, el CPU subescalar queda "paralizado" en instrucciones que toman más de un ciclo de reloj para completar su ejecución. Incluso la adición de una segunda unidad de ejecución (ver abajo) no mejora mucho el desempeño. En lugar de un camino quedando congelado, ahora dos caminos se paralizan y aumenta el número de transistores no usados. Este diseño, en donde los recursos de ejecución del CPU pueden operar con solamente una instrucción a la vez, solo puede, posiblemente, alcanzar el desempeño escalar (una instrucción por ciclo de reloj). Sin embargo, el desempeño casi siempre es subescalar (menos de una instrucción por ciclo).

Las tentativas de alcanzar un desempeño escalar y mejor, han resultado en una variedad de metodologías de diseño que hacen comportarse al CPU menos linealmente y más en paralelo. Cuando se refiere al paralelismo en los CPU, generalmente son usados dos términos para clasificar estas técnicas de diseño.

  • El paralelismo a nivel de instrucción, en inglés Instruction Level Parallelism (ILP), busca aumentar la tasa en la cual las instrucciones son ejecutadas dentro de un CPU, es decir, aumentar la utilización de los recursos de ejecución en la pastilla
  • El paralelismo a nivel de hilo de ejecución, en inglés thread level parallelism (TLP), que se propone incrementar el número de hilos (efectivamente programas individuales) que un CPU pueda ejecutar simultáneamente.

Cada metodología se diferencia tanto en las maneras en las que están implementadas, como en la efectividad relativa que producen en el aumento del desempeño del CPU para una aplicación.[10]

ILP: Entubado de instrucción y arquitectura superescalar

Tubería básica de cinco etapas. En el mejor de los casos, esta tubería puede sostener un ratio de completado de una instrucción por ciclo.

Uno de los más simples métodos usados para lograr incrementar el paralelismo es comenzar los primeros pasos de leer y decodificar la instrucción antes de que la instrucción anterior haya terminado de ejecutarse. Ésta es la forma más simple de una técnica conocida como instruction pipelining (entubado de instrucción), y es utilizada en casi todos los CPU de propósito general modernos. Al dividir la ruta de ejecución en etapas discretas, la tubería permite que más de una instrucción sea ejecutada en cualquier tiempo. Esta separación puede ser comparada a una línea de ensamblaje, en la cual una instrucción es hecha más completa en cada etapa hasta que sale de la tubería de ejecución y es retirada.

Sin embargo, la tubería introduce la posibilidad de una situación donde es necesario terminar el resultado de la operación anterior para completar la operación siguiente; una condición llamada a menudo como conflicto de dependencia de datos. Para hacer frente a esto, debe ser tomado un cuidado adicional para comprobar estas clases de condiciones, y si esto ocurre, se debe retrasar una porción de la tubería de instrucción. Naturalmente, lograr esto requiere circuitería adicional, los procesadores entubados son más complejos que los subescalares, pero no mucho. Un procesador entubado puede llegar a ser casi completamente escalar, solamente inhibido por las abruptas paradas de la tubería (una instrucción durando más de un ciclo de reloj en una etapa).

Una mejora adicional sobre la idea del entubado de instrucción (instruction pipelining) condujo al desarrollo de un método que disminuye incluso más el tiempo ocioso de los componentes del CPU. Diseños que se dice que son superescalares incluyen una larga tubería de instrucción y múltiples unidades de ejecución idénticas. En una tubería superescalar, múltiples instrucciones son leídas y pasadas a un despachador, que decide si las instrucciones se pueden o no ejecutar en paralelo (simultáneamente). De ser así, son despachadas a las unidades de ejecución disponibles, dando por resultado la capacidad para que varias instrucciones sean ejecutadas simultáneamente. En general, cuanto más instrucciones un CPU superescalar es capaz de despachar simultáneamente a las unidades de ejecución en espera, más instrucciones serán completadas en un ciclo dado.

La mayor parte de la dificultad en el diseño de una arquitectura superescalar de CPU descansa en crear un despachador eficaz. El despachador necesita poder determinar rápida y correctamente si las instrucciones pueden ejecutarse en paralelo, tan bien como despacharlas de una manera que mantenga ocupadas tantas unidades de ejecución como sea posible. Esto requiere que la tubería de instrucción sea llenada tan a menudo como sea posible y se incrementa la necesidad, en las arquitecturas superescalares, de cantidades significativas de caché de CPU. Esto también crea técnicas para evitar peligros como la predicción de bifurcación, ejecución especulativa, y la ejecución fuera de orden, cruciales para mantener altos niveles de desempeño.

  • La predicción de bifurcación procura predecir qué rama (o trayectoria) tomará una instrucción condicional, el CPU puede minimizar el número de tiempos que toda la tubería debe esperar hasta que sea completada una instrucción condicional.
  • La ejecución especulativa frecuentemente proporciona aumentos modestos del desempeño al ejecutar las porciones de código que pueden o no ser necesarias después de que una operación condicional termine.
  • La ejecución fuera de orden cambia en algún grado el orden en el cual son ejecutadas las instrucciones para reducir retardos debido a las dependencias de los datos.

En el caso donde una porción del CPU es superescalar y una parte no lo es, la parte que no es superescalar sufre en el desempeño debido a las paradas de horario. El Intel Pentium original (P5) tenía dos ALUs superescalares que podían aceptar, cada una, una instrucción por ciclo de reloj, pero su FPU no podía aceptar una instrucción por ciclo de reloj. Así el P5 era superescalar en la parte de números enteros pero no era superescalar de números de coma (o punto [decimal]) flotante. El sucesor a la arquitectura del Pentium de Intel, el P6, agregó capacidades superescalares a sus funciones de coma flotante, y por lo tanto produjo un significativo aumento en el desempeño de este tipo de instrucciones.

El entubado simple y el diseño superescalar aumentan el ILP de un CPU al permitir a un solo procesador completar la ejecución de instrucciones en ratios que sobrepasan una instrucción por ciclo (IPC).[11] La mayoría de los modernos diseños de CPU son por lo menos algo superescalares, y en la última década, casi todos los diseños de CPU de propósito general son superescalares. En los últimos años algo del énfasis en el diseño de computadores de alto ILP se ha movido del hardware del CPU hacia su interface de software, o ISA. La estrategia de la muy larga palabra de instrucción, very long instruction word (VLIW), causa a algún ILP a ser implícito directamente por el software, reduciendo la cantidad de trabajo que el CPU debe realizar para darle un empuje significativo al ILP y por lo tanto reducir la complejidad del diseño.

TLP: ejecución simultánea de hilos

Otra estrategia comúnmente usada para aumentar el paralelismo de los CPU es incluir la habilidad de correr múltiples hilos (programas) al mismo tiempo. En general, CPUs con alto TLP han estado en uso por mucho más tiempo que los de alto ILP. Muchos de los diseños en los que Seymour Cray fue pionero durante el final de los años 1970 y los años1980 se concentraron en el TLP como su método primario de facilitar enormes capacidades de computación (para su tiempo). De hecho, el TLP, en la forma de mejoras en múltiples hilos de ejecución, estuvo en uso tan temprano como desde los años 1950 . En el contexto de diseño de procesadores individuales, las dos metodologías principales usadas para lograr el TLP son, multiprocesamiento a nivel de chip, en inglés chip-level multiprocessing (CMP), y el multihilado simultáneo, en inglés simultaneous multithreading (SMT). En un alto nivel, es muy común construir computadores con múltiples CPU totalmente independientes en arreglos como multiprocesamiento simétrico (symmetric multiprocessing (SMP)) y acceso de memoria no uniforme (Non-Uniform Memory Access (NUMA)).[12] Aunque son usados medios muy diferentes, todas estas técnicas logran la misma meta: incrementar el número de hilos que el CPU(s) puede correr en paralelo.

Los métodos de paralelismo CMP y de SMP son similares uno del otro y lo más directo. Éstos implican algo más conceptual que la utilización de dos o más CPU completos y CPU independientes. En el caso del CMP, múltiples "núcleos" de procesador son incluidos en el mismo paquete, a veces en el mismo circuito integrado.[13] Por otra parte, el SMP incluye múltiples paquetes independientes. NUMA es algo similar al SMP pero usa un modelo de acceso a memoria no uniforme. Esto es importante para los computadores con muchos CPU porque el tiempo de acceso a la memoria, de cada procesador, es agotado rápidamente con el modelo de memoria compartido del SMP, resultando en un significativo retraso debido a los CPU esperando por la memoria. Por lo tanto, NUMA es considerado un modelo mucho más escalable, permitiendo con éxito que en un computador sean usados muchos más CPU que los que pueda soportar de una manera factible el SMP. El SMT se diferencia en algo de otras mejoras de TLP en que el primero procura duplicar tan pocas porciones del CPU como sea posible. Mientras es considerada una estrategia TLP, su implementación realmente se asemeja más a un diseño superescalar, y de hecho es frecuentemente usado en microprocesadores superescalares, como el POWER5 de IBM. En lugar de duplicar todo el CPU, los diseños SMT solamente duplican las piezas necesarias para lectura, decodificación, y despacho de instrucciones, así como cosas como los registros de propósito general. Esto permite a un CPU SMT mantener sus unidades de ejecución ocupadas más frecuentemente al proporcionarles las instrucciones desde dos diferentes hilos de software. Una vez más esto es muy similar al método superescalar del ILP, pero ejecuta simultáneamente instrucciones de múltiples hilos en lugar de ejecutar concurrentemente múltiples instrucciones del mismo hilo.

Procesadores vectoriales y el SIMD

Un menos común pero cada vez más importante paradigma de CPU (y de hecho, de computación en general) trata con vectores. Los procesadores de los que se ha hablado anteriormente son todos referidos como cierto tipo de dispositivo escalar.[14] Como implica su nombre, los procesadores vectoriales se ocupan de múltiples piezas de datos en el contexto de una instrucción, esto contrasta con los procesadores escalares, que tratan una pieza de dato por cada instrucción. Estos dos esquemas de ocuparse de los datos son generalmente referidos respectivamente como SISD (Single Instruction, Single Data|) (Simple Instrucción, Simple Dato) y SIMD (Single Instruction, Multiple Data) (Simple Instrucción, Múltiples Datos). La gran utilidad en crear CPUs que se ocupen de vectores de datos radica en la optimización de tareas que tienden a requerir la misma operación, por ejemplo, una suma, o un producto escalar, a ser realizado en un gran conjunto de datos. Algunos ejemplos clásicos de este tipo de tareas son las aplicaciones multimedia (imágenes, vídeo, y sonido), así como muchos tipos de tareas científicas y de ingeniería. Mientras que un CPU escalar debe completar todo el proceso de leer, decodificar, y ejecutar cada instrucción y valor en un conjunto de datos, un CPU vectorial puede realizar una simple operación en un comparativamente grande conjunto de datos con una sola instrucción. Por supuesto, esto es solamente posible cuando la aplicación tiende a requerir muchos pasos que apliquen una operación a un conjunto grande de datos.

La mayoría de los primeros CPU vectoriales, como el Cray-1, fueron asociados casi exclusivamente con aplicaciones de investigación científica y criptografía. Sin embargo, a medida que la multimedia se desplazó en gran parte a medios digitales, ha llegado a ser significativa la necesidad de una cierta forma de SIMD en CPUs de propósito general. Poco después de que comenzara a ser común incluir unidades de coma flotante en procesadores de uso general, también comenzaron a aparecer especificaciones e implementaciones de unidades de ejecución SIMD para los CPU de uso general. Algunas de estas primeras especificaciones SIMD, como el MMX de Intel, fueron solamente para números enteros. Esto demostró ser un impedimento significativo para algunos desarrolladores de software, ya que muchas de las aplicaciones que se beneficiaban del SIMD trataban sobre todo con números de coma flotante. Progresivamente, éstos primeros diseños fueron refinados y rehechos en alguna de las comunes, modernas especificaciones SIMD, que generalmente están asociadas a un ISA. Algunos ejemplos modernos notables son el SSE de Intel y el AltiVec relacionado con el PowerPC (también conocido como VMX).[15

Placa Base

PLACA BASE

La placa base, también conocida como placa madre o tarjeta madre (del inglés motherboard o mainboard) es una placa de circuito impreso a la que se conectan los componentes que constituyen la computadora u ordenador. Tiene instalados una serie de circuitos integrados, entre los que se encuentra el chipset, que sirve como centro de conexión entre el microprocesador, la memoria de acceso aleatorio (RAM), las ranuras de expansión y otros dispositivos.

Va instalada dentro de una caja o gabinete que por lo general está hecha de chapa y tiene un panel para conectar dispositivos externos y muchos conectores internos y zócalos para instalar componentes dentro de la caja.

La placa base, además, incluye un firmware llamado BIOS, que le permite realizar las funcionalidades básicas, como pruebas de los dispositivos, vídeo y manejo del teclado, reconocimiento de dispositivos y carga del sistema operativo.

COMPONENTES DE LA PLACA BASE

Una placa base típica admite los siguientes componentes:

  • Uno o varios conectores de alimentación: por estos conectores, una alimentación eléctrica proporciona a la placa base los diferentes voltajes e intensidades necesarios para su funcionamiento.
  • El zócalo de CPU es un receptáculo que recibe el microprocesador y lo conecta con el resto de componentes a través de la placa base.
  • Las ranuras de memoria RAM, en número de 2 a 6 en las placas base comunes.
  • El chipset: una serie de circuitos electrónicos, que gestionan las transferencias de datos entre los diferentes componentes de la computadora (procesador, memoria, tarjeta gráfica,unidad de almacenamiento secundario, etc.).

Se divide en dos secciones, el puente norte (northbridge) y el puente sur (southbridge). El primero gestiona la interconexión entre el microprocesador, la memoria RAM y la unidad de procesamiento gráfico; y el segundo entre los periféricos y los dispositivos de almacenamiento, como los discos duros o las unidades de disco óptico. Las nuevas líneas de procesadores de escritorio tienden a integrar el propio controlador de memoria en el interior del procesador.

  • Un reloj: regula la velocidad de ejecución de las instrucciones del microprocesador y de los periféricos internos.
  • La CMOS: una pequeña memoria que preserva cierta información importante (como la configuración del equipo, fecha y hora), mientras el equipo no está alimentado por electricidad.
  • La pila de la CMOS: proporciona la electricidad necesaria para operar el circuito constantemente y que éste último no se apague perdiendo la serie de configuraciones guardadas.
  • La BIOS: un programa registrado en una memoria no volátil (antiguamente en memorias ROM, pero desde hace tiempo se emplean memorias flash). Este programa es específico de la placa base y se encarga de la interfaz de bajo nivel entre el microprocesador y algunos periféricos. Recupera, y después ejecuta, las instrucciones del MBR (Master Boot Record), registradas en un disco duro o SSD, cuando arranca el sistema operativo.
  • El bus (también llamado bus interno o en inglés front-side bus’): conecta el microprocesador al chipset, está cayendo en desuso frente a HyperTransport y Quickpath.
  • El bus de memoria conecta el chipset a la memoria temporal.
  • El bus de expansión (también llamado bus I/O): une el microprocesador a los conectores entrada/salida y a las ranuras de expansión.
  • Los conectores de entrada/salida que cumplen normalmente con la norma PC 99: estos conectores incluyen:
  • Las ranuras de expansión: se trata de receptáculos que pueden acoger tarjetas de expansión (estas tarjetas se utilizan para agregar características o aumentar el rendimiento de un ordenador; por ejemplo, un tarjeta gráfica se puede añadir a un ordenador para mejorar el rendimiento 3D). Estos puertos pueden ser puertos ISA (interfaz antigua), PCI (en inglés Peripheral Component Interconnect) y, los más recientes, PCI Express.

Con la evolución de las computadoras, más y más características se han integrado en la placa base, tales como circuitos electrónicos para la gestión del vídeo IGP (en inglés Integrated Graphic Processor), de sonido o de redes (10/100 Mbps/1 Gbps), evitando así la adición de tarjetas de expansión.

Tipos de bus

Los buses son espacios físicos que permiten el transporte de información y energía entre dos puntos de la computadora.

Los buses generales son los siguientes:

  • Bus de datos: son las líneas de comunicación por donde circulan los datos externos e internos del microprocesador.
  • Bus de dirección: línea de comunicación por donde viaja la información específica sobre la localización de la dirección de memoria del dato o dispositivo al que se hace referencia.
  • Bus de control: línea de comunicación por donde se controla el intercambio de información con un módulo de la unidad central y los periféricos.
  • Bus de expansión: conjunto de líneas de comunicación encargado de llevar el bus de datos, el bus de dirección y el de control a la tarjeta de interfaz (entrada, salida) que se agrega a la tarjeta principal.
  • Bus del sistema: todos los componentes de la CPU se vinculan a través del bus de sistema, mediante distintos tipos de datos el microprocesador y la memoria principal, que también involucra a la memoria caché de nivel 2. La velocidad de tranferencia del bus de sistema está determinada por la frecuencia del bus y el ancho del mínimo.

Placa multiprocesador

Este tipo de placa base puede acoger a varios procesadores (generalmente de 2, 4, 8 o más). Estas placas base multiprocesador tienen varios zócalos de microprocesador, lo que les permite conectar varios microprocesadores físicamente distintos (a diferencia de los de procesador de doble núcleo).

Cuando hay dos procesadores en una placa base, hay dos formas de manejarlos:

  • El modo asimétrico, donde a cada procesador se le asigna una tarea diferente. Este método no acelera el tratamiento, pero puede asignar una tarea a una unidad central de procesamiento, mientras que la otra lleva a cabo a una tarea diferente.
  • El modo simétrico, llamado multiprocesamiento simétrico, donde cada tarea se distribuye de forma simétrica entre los dos procesadores.

Linux fue el primer sistema operativo en gestionar la arquitectura de doble procesador en x86.[cita requerida] Sin embargo, la gestión de varios procesadores existía ya antes en otras plataformas y otros sistemas operativos. Linux 2.6.x maneja multiprocesadores simétricos, y las arquitecturas de memoria no uniformemente distribuida

Algunos fabricantes proveen placas base que pueden acoger hasta 8 procesadores (en el caso de socket 939 para procesadores AMD Opteron y sobre socket 604 para procesadores Intel Xeon).

Tipos

La mayoría de las placas de PC vendidas después de 2001 se pueden clasificar en dos grupos:

Formatos

Las tarjetas madre necesitan tener dimensiones compatibles con las cajas que las contienen, de manera que desde los primeros computadores personales se han establecido características mecánicas, llamadas factor de forma. Definen la distribución de diversos componentes y las dimensiones físicas, como por ejemplo el largo y ancho de la tarjeta, la posición de agujeros de sujeción y las características de los conectores.

Con los años, varias normas se fueron imponiendo:

  • XT: es el formato de la placa base del PC de IBM modelo 5160, lanzado en 1983. En este factor de forma se definió un tamaño exactamente igual al de una hoja de papel tamaño carta y un único conector externo para el teclado.
  • 1984 AT 305 × 305 mm ( IBM)
    • Baby AT: 216 × 330 mm
  • AT: uno de los formatos más grandes de toda la historia del PC (305 × 279–330 mm), definió un conector de potencia formado por dos partes. Fue usado de manera extensa de 1985 a 1995.
  • 1995 ATX 305 × 244 mm (Intel)
    • MicroATX: 244 × 244 mm
    • FlexATX: 229 × 191 mm
    • MiniATX: 284 × 208 mm
  • ATX: creado por un grupo liderado por Intel, en 1995 introdujo las conexiones exteriores en la forma de un panel I/O y definió un conector de 20 pines para la energía. Se usa en la actualidad en la forma de algunas variantes, que incluyen conectores de energía extra o reducciones en el tamaño.
  • 2001 ITX 215 × 195 mm (VIA)
    • MiniITX: 170 × 170 mm
    • NanoITX: 120 × 120 mm
    • PicoITX: 100 × 72 mm
  • ITX: con rasgos procedentes de las especificaciones microATX y FlexATX de Intel, el diseño de VIA se centra en la integración en placa base del mayor número posible de componentes, además de la inclusión del hardware gráfico en el propio chipset del equipo, siendo innecesaria la instalación de una tarjeta gráfica en la ranura AGP.
  • 2005 [BTX] 325 × 267 mm (Intel)
    • Micro bTX: 264 × 267 mm
    • PicoBTX: 203 × 267 mm
    • RegularBTX: 325 × 267 mm
  • BTX: retirada en muy poco tiempo por la falta de aceptación, resultó prácticamente incompatible con ATX, salvo en la fuente de alimentación. Fue creada para intentar solventar los problemas de ruido y refrigeración, como evolución de la ATX.
  • 2007 DTX 248 × 203 mm ( AMD)
    • Mini-DTX: 170 × 203 mm
    • Full-DTX: 243 × 203 mm
  • DTX: destinadas a PCs de pequeño formato. Hacen uso de un conector de energía de 24 pines y de un conector adicional de 2x2.
  • Formato propietario: durante la existencia del PC, mucha marcas han intentado mantener un esquema cerrado de hardware, fabricando tarjetas madre incompatibles físicamente con los factores de forma con dimensiones, distribución de elementos o conectores que son atípicos. Entre las marcas mas persistentes está Dell, que rara vez fabrica equipos diseñados con factores de forma de la industria.

Escalabilidad

Hasta la mitad de la década de 1990, los PC fueron equipados con una placa en la que se soldó el microprocesador (CPU). Luego vinieron las placas base equipadas con zócalo de microprocesador «libre», que permitía acoger el microprocesador de elección (de acuerdo a sus necesidades y presupuesto). Con este sistema (que pronto se hizo más generalizado y no ha sido discutido), es teóricamente posible equipar el PC con una CPU más potente, sin sustituir la placa base, pero a menor costo.

De hecho, esta flexibilidad tiene sus límites porque los microprocesadores son cada vez más eficientes, e invariablemente requieren placas madre más eficaces (por ejemplo, capaces de manejar flujos de datos cada vez más importantes).

Fabricantes

Varios fabricantes se reparten el mercado de placas base, tales como Abit, Albatron, Aopen, ASUS, ASRock, Biostar, Chaintech, Dell, DFI, ECS EliteGroup, Epox, Foxconn, Gigabyte Technology, Intel, MSI, QDI, Sapphire Technology, Soltek, Super Micro, Tyan, Via, XFX, Pc Chips.

Algunos diseñan y fabrican uno o más componentes de la placa base, mientras que otros ensamblan los componentes que terceros han diseñado y fabricado.