Clases de Buses

21
Clases de buses [editar ] Hay tres clases de buses: bus de datos , bus de direcciones y bus de control . Una placa base tipo ATX tiene tantas pistas eléctricas destinadas a buses, como anchos sean los Canales de Buses del Microprocesador de la CPU: 64 para el Bus de datos y 32 para el Bus de Direcciones. El "ancho de canal" explica la cantidad de bits que pueden ser transferidos simultáneamente. Así, el Bus de datos transfiere 8 bytes a la vez. Así, el Canal de Direcciones del Microprocesador para una PC-ATX puede "direccionar" más de 4 mil millones de combinaciones diferentes para el conjunto de 32 bits de su bus. Bus de datos [editar ] Mueve los datos entre los dispositivos del hardware de Entrada como el teclado, el escáner, el ratón, etc.; de salida como la Impresora, el Monitor o la tarjeta de Sonido; y de Almacenamiento como el Disco Duro, el Disquete o la Memoria-Flash. Estas transferencias que se dan a través del Bus de Datos son gobernadas por varios dispositivos y métodos, de los cuales el Controlador PCI, "Peripheral Component Interconnect", Interconexión de componentes Periféricos, es uno de los principales. Su trabajo equivale, simplificando mucho el asunto, a una central de semáforos para el tráfico en las calles de una ciudad. Bus de direcciones [editar ] El Bus de Direcciones, por otra parte, está vinculado al bloque de Control de la CPU para tomar y colocar datos en el Sub-sistema de Memoria durante la ejecución de los procesos de cómputo. Para el Bus de Direcciones, el "ancho de canal" explica así mismo la cantidad de ubicaciones o Direcciones diferentes que el microprocesador puede alcanzar. Esa cantidad de ubicaciones resulta de elevar el 2 a la 32ª potencia. "2" porque son dos las señales binarias, los bits 1 y 0; y "32ª

Transcript of Clases de Buses

Page 1: Clases de Buses

Clases de buses [editar]

Hay tres clases de buses: bus de datos, bus de direcciones y bus de control. Una placa base tipo ATX tiene tantas pistas eléctricas destinadas a buses, como anchos sean los Canales de Buses del Microprocesador de la CPU: 64 para el Bus de datos y 32 para el Bus de Direcciones. El "ancho de canal" explica la cantidad de bits que pueden ser transferidos simultáneamente. Así, el Bus de datos transfiere 8 bytes a la vez.

Así, el Canal de Direcciones del Microprocesador para una PC-ATX puede "direccionar" más de 4 mil millones de combinaciones diferentes para el conjunto de 32 bits de su bus.

Bus de datos [editar]

Mueve los datos entre los dispositivos del hardware de Entrada como el teclado, el escáner, el ratón, etc.; de salida como la Impresora, el Monitor o la tarjeta de Sonido; y de Almacenamiento como el Disco Duro, el Disquete o la Memoria-Flash. Estas transferencias que se dan a través del Bus de Datos son gobernadas por varios dispositivos y métodos, de los cuales el Controlador PCI, "Peripheral Component Interconnect", Interconexión de componentes Periféricos, es uno de los principales. Su trabajo equivale, simplificando mucho el asunto, a una central de semáforos para el tráfico en las calles de una ciudad.

Bus de direcciones [editar]

El Bus de Direcciones, por otra parte, está vinculado al bloque de Control de la CPU para tomar y colocar datos en el Sub-sistema de Memoria durante la ejecución de los procesos de cómputo.

Para el Bus de Direcciones, el "ancho de canal" explica así mismo la cantidad de ubicaciones o Direcciones diferentes que el microprocesador puede alcanzar. Esa cantidad de ubicaciones resulta de elevar el 2 a la 32ª potencia. "2" porque son dos las señales binarias, los bits 1 y 0; y "32ª potencia" porque las 32 pistas del Bus de Direcciones son, en un instante dado, un conjunto de 32 bits. Nos sirve para calcular la capacidad de memoria en el CPU.

Bus de control [editar]

Este bus transporta señales de estado de las operaciones efectuadas por la CPU. El método utilizado por el ordenador para sincronizar las distintas operaciones es por medio de un reloj interno que posee el ordenador y facilita la sincronización y evita las colisiones de operaciones (unidad de control).Estas operaciones se transmiten en un modo bidireccional.

Composición interna [editar]

La memoria caché está estructurado por celdas, donde cada celda almacena un byte. La entidad básica de almacenamiento la conforman las filas, llamados también líneas de

Page 2: Clases de Buses

caché. Por ejemplo, una caché L2 de 512 KB se distribuye en 16.384 filas y 32 columnas

Cuando se copia o se escribe información de la RAM por cada movimiento siempre cubre una línea de caché.

La memoria caché tiene incorporado, un espacio de almacenamiento llamado Tag RAM, que indica a que porción de la RAM se halla asociada a cada línea de caché, es decir permite traducir una dirección de RAM en una línea de caché concretamente.

Diseño [editar]

En el diseño de la memoria caché se deben considerar varios factores que influyen directamente en el rendimiento de la memoria y por lo tanto en su objetivo de aumentar la velocidad de respuesta de la jerarquía de memoria. Estos factores son las políticas de ubicación, extracción, reemplazo, escritura y el tamaño de la caché y de sus bloques.

Política de ubicación [editar]

Decide dónde debe colocarse un bloque de memoria principal que entra en la memoria caché. Las más utilizadas son:

Directa: Al bloque n-ésimo de memoria principal le corresponde la posición n módulo k donde k es el número de bloques de la memoria caché.

Asociativa: Cualquier bloque de memoria principal puede ir en cualquier lado del bloque de memoria caché.

Asociativa por conjuntos: La memoria caché se divide en n conjuntos de bloques, así al bloque i-ésimo de memoria principal le corresponde el conjunto i módulo (k/n) donde k es el número de bloques de memoria caché. Dicho bloque de memoria podrá ubicarse en cualquier posición dentro del conjunto asociado de la memoria caché.

Política de extracción [editar]

La política de extracción determina cuándo y qué bloque de memoria principal hay que traer a memoria caché. Existen dos políticas muy extendidas:

Por demanda: Un bloque sólo se trae a memoria caché cuando ha sido referenciado y se produzca un fallo.

Con prebúsqueda: Cuando se referencia el bloque i-ésimo de memoria principal, se trae además el bloque (i+1)-esimo. Esta política se basa en la propiedad de localidad espacial de los programas.

Política de reemplazo [editar]

(Ver también Algoritmos de reemplazo de páginas ) Determina qué bloque de memoria caché debe abandonarla cuando no existe espacio disponible para un bloque entrante. Basicamente hay cuatro políticas que son:

Page 3: Clases de Buses

Aleatoria: El bloque es reemplazado de forma aleatoria. FIFO: Se usa un algoritmo First In First Out FIFO (PEPS, primero entrado

primero salido en español) para determinar qué bloque debe abandonar la caché. Este algoritmo generalmente es poco eficiente.

Menos recientemente usado (LRU): Se sustituye el bloque que hace más tiempo que no se ha utilizado.

Menos frecuentemente usado (LFU): Se reemplaza el bloque que se ha usado con menos frecuencia.

Siendo la Aleatoria y la LRU las de mejor rendimiento.

Política de escritura [editar]

Determina cuándo se actualiza la información en memoria principal cuando se ha escrito en memoria caché. Existen dos políticas principales:

Escritura inmediata o escritura directa: En inglés Write Through. Cuando se escribe en un bloque que se encuentra en memoria caché, la información se modifica también simultáneamente en memoria principal, manteniendo así la coherencia en todo momento. Suele combinarse con la técnica de "No carga en escritura" (No Write Allocation) que significa que, cuando haya que escribir en un bloque que no se encuentra en la caché, la modificación se realizará únicamente en memoria principal, sin traer dicho bloque a caché, y además sólo se actualizará la palabra concreta que haya cambiado.

Escritura aplazada o post-escritura: En inglés Write Back. Cuando se escribe en un bloque que se encuentra en memoria caché, queda marcado como basura usando un bit especial llamado normalmente dirty bit o bit de basura. Cuando el bloque sea desalojado de memoria caché (mediante la correspondiente política de reemplazo), se comprueba el bit de basura, y si está activado se escribe la información de dicho bloque en memoria principal. Esta política suele combinarse con la técnica de "Carga en escritura" (Write Allocation), que significa que, cuando haya que escribir en un bloque que no se encuentra en la caché, traeremos a caché el bloque en cuestión y lo modificaremos ahí.

Tecnología Hyper-Threading

Las aplicaciones para empresa, comercio electrónico y software para juegos siguen exigiendo rendimiento a los procesadores. Para mejorar este rendimiento en el pasado se crearon los subprocesos en los programas dividiendo las instrucciones en varias transferencias para que varios procesadores pudieran actuar sobre ellas. La tecnología Hyper-Threading (tecnología HT)† proporciona un paralelismo a nivel de subprocesos en cada procesador, lo que da como resultado un uso más eficaz de los recursos del procesador, mayor capacidad de procesamiento y rendimiento mejorado en el software con subprocesos

Page 4: Clases de Buses

múltiples de hoy día. La combinación de un procesador Intel® y un chipset que admite la tecnología HT, un sistema operativo que incluye optimizaciones para la tecnología HT y una BIOS compatible con la tecnología HT que la tiene activada ofrece flexibilidad y rendimiento del sistema incrementados.

Tecnología Hyper-Threading para equipos de sobremesa para empresas

La tecnología HT permite que los usuarios de equipos de sobremesa obtengan más rendimiento del software existente en entornos multitarea. Muchas aplicaciones ya incorporan los subprocesos múltiples y se beneficiarán automáticamente de esta tecnología. Los usuarios de los sistemas pueden ejecutar aplicaciones exigentes para equipos de sobremesa al mismo tiempo mientras mantienen la flexibilidad del sistema. Los departamentos de TI también pueden implantar servicios en segundo plano para equipos de sobremesa de forma que sus entornos sean más seguros, eficaces y fáciles de gestionar, mientras minimizan el impacto en la productividad del usuario final y ofrecen margen de ampliación para el futuro crecimiento empresarial y las nuevas prestaciones de soluciones.

Tecnología Hyper-Threading para juegos y vídeo

El procesador Intel® Pentium® Extreme Edition combina la tecnología HT con el procesamiento de doble núcleo para ofrecer PCs capaces de gestionar cuatro subprocesos de software. La tecnología HT permite que los entusiastas de los juegos puedan disfrutar de los nuevos juegos y experimentar efectos ultrarrealistas y capacidad de juego. Los entusiastas de la multimedia pueden crear, editar y codificar archivos de gráficos exigentes mientras ejecutan el antivirus en el segundo plano.

Tecnología Hyper-Threading para servidores

Con la tecnología HT, las aplicaciones de software para

Page 5: Clases de Buses

servidor con subprocesos múltiples pueden ejecutar subprocesos en paralelo con cada procesador en una plataforma de servidor. Seleccione productos de la familia de procesadores Intel® Xeon® que utilicen tecnología HT para incrementar la capacidad informática y la capacidad de procesamiento para aplicaciones de servidor empresarial y basado en web.

Beneficios de la tecnología Hyper-Threading para la empresa y el comercio electrónico

Permite más soporte de usuario, mejorando la productividad empresarial.

Ofrece tiempos de respuesta más rápidos para Internet y aplicaciones de comercio electrónico, mejorando las experiencias de los clientes.

Aumenta el número de transacciones que se pueden procesar.

Permite compatibilidad con sistemas operativos y aplicaciones IA-32 existentes.

Gestiona mayores volúmenes de trabajo.† La tecnología Hyper-Threading (HT) requiere un sistema informático equipado con un procesador Intel® que soporte la tecnología HT, un chipset y una BIOS que utilicen esta tecnología y un sistema operativo optimizado para la misma. El rendimiento variará en función del hardware y software específicos que utilice. Consulte http://www.intel.com/products/ht/hyperthreading_more.htm

para obtener más información incluyendo detalles sobre los procesadores con soporte para la tecnología Hyper-Threading.

Dual core

Un microprocesador multi núcleo es aquel que combina dos o más NUCLEOS independientes en un solo paquete, a menudo un solo circuito integrado (IC).NOTA: No son dos procesadores. Son dos o mas nucleos trabajando a una misma frecuencia. Un dispositivo doble núcleo contiene solamente dos microprocesadores independientes. En general, microprocesadores multi núcleo permiten que un dispositivo computacional exhiba una cierta forma del paralelismo a nivel de thread (Thread-level parallelism) (TLP) sin incluir múltiples microprocesadores en paquetes físicos separados. Esta forma de TLP se conoce a menudo como multiprocesamiento a nivel de chip (Chip-level multiprocessing), o CMP.

Page 6: Clases de Buses

Multiprocesamiento es un Procesamiento simultáneo con dos o más procesadores en un computador, o dos o más computadores que están procesando juntos. Cuando se usa dos o más computadores, se unen con un canal de alta velocidad y comparten la carga de trabajo general entre ellos. En caso de que uno falle el otro se hace cargo. El multiprocesamiento también se efectúa en computadores de propósitos especiales, como procesadores vectoriales, los cuales proveen procesamiento simultáneo de conjunto de datos. Aunque los computadores se construyen con diversas características que se superponen, como ejecutar instrucciones mientras se ingresan y se sacan datos, el multiprocesamiento se refiere específicamente a la ejecución de instrucciones simultáneas.

Core 2 duo

El Core 2 Duo es un procesador con un pipeline de 14 etapas lo que le permite escalar más en frecuencia que su antecesor directo: el Core 1, que tenía 12 etapas al igual que el Athlon 64. Tiene, además, un motor de ejecución ancho con tres ALUs, cuatro FPUs, y tres unidades de SSE de 128 bits. Estas dos características hacen que sea el procesador x86 que más instrucciones por ciclo puede lograr.

Entre otras características destacan arquitectura de 64 bits EM64T (no disponible en su predecesor Core Duo), Virtualization Technology, LaGrande Technology, Intel Enhanced SpeedStep Technology, Active Management Technology (iAMT2), MMX, SSE, SSE2, SSE3, SSSE3, y XD bit.

Existen versiones de sobremesa y para portátiles, a diferencia de la división existente desde 2003 entre Pentium M para portátiles y Pentium 4 para ordenadores de sobremesa, unificando el nombre de Core 2 Duo para todas los procesadores de gama media dejando además el nombre Pentium, utilizado desde 1993, para los procesadores de gama baja (y menor rendimiento) basados en la arquitectura de Core 2 con un caché reducido llamado Pentium Dual Core, quienes a su vez vienen a reemplazar a la familia Celeron en este rol.

Una llamativa característica de esta familia es su particular facilidad para aplicar overclock, llegando muchos de estos procesadores a ganancias superiores al 50% en su frecuencia de trabajo

Otra diferencia es la forma como trabajan sus núcleos: en el dual core sus núcleos trabajan de manera alterna, mientras que en el core 2 dúo sus núcleos trabajan de manera simultánea dando un mayor rendimiento.

Durante un tiempo se dijo que el core 2 dúo poseía 4 núcleos cosa que es errónea. Sólo posee 2 pues es un tipo especial de dual core.

Tecnología 32 bits

En arquitectura de ordenadores, 32 bits es un adjetivo usado para describir enteros, direcciones de memoria u otras unidades de datos que comprenden hasta 32 bits (4 octetos) de ancho, o para referirse a una arquitectura de CPU y ALU basadas en registros, bus de direcciones o bus de datos de ese ancho.

Page 7: Clases de Buses

32 bits es también un término dado a una generación de computadoras en las cuales los procesadores eran de 32 bits.

Un campo de almacenamiento de 32 bits permite 232 combinaciones posibles. Debido a esto, el rango de valores naturales que pueden ser almacenados en 32 bits es de 0 hasta 4.294.967.295 (que es 232 − 1). Para enteros con signo, utilizando el complemento a dos, el rango es desde −2.147.483.648 ( − 232 − 1) hasta +2.147.483.647 (232 − 1 − 1). Estos rangos delimitan los sistemas de numeración comunes que utilizan 32 bits, tales como las direcciones IP ó las fechas POSIX (provocando el efecto 2038).

Los buses de datos y de direcciones son usualmente más anchos que 32 bits, a pesar de que éstas se almacenen y manipulen internamente en el procesador como cantidades de 32 bits. Por ejemplo, el Pentium Pro es un procesador de 32 bits, pero el bus de direcciones externo tiene un tamaño de 36 bits, y el bus de datos externo de 64 bits.

64 bits

64 bits

De Wikipedia, la enciclopedia libre

Saltar a navegación, búsqueda

En arquitectura de ordenadores, 64 bits es un adjetivo usado para describir enteros, direcciones de memoria u otras unidades de datos que comprenden hasta 64 bits (8 octetos) de ancho, o para referirse a una arquitectura de CPU y ALU basadas en registros, bus de direcciones o bus de datos de ese ancho.

Los microprocesadores de 64 bits han existido en los superordenadores desde 1960 y en servidores y estaciones de trabajo basadas en RISC desde mediados de los años 1990. En 2003 empezaron a ser introducidos masivamente en los ordenadores personales (previamente de 32 bits) con las arquitecturas x86-64 y los procesadores PowerPC G5.

Aunque una CPU puede ser internamente de 64 bits, su bus de datos o bus de direcciones externos pueden tener un tamaño diferente, más grande o más pequeño y el término se utiliza habitualmente para describir también el tamaño de estos buses. Por ejemplo, muchas máquinas actuales con procesadores de 32 bits usan buses de 64 bits (p.ej. el Pentium original y las CPUs posteriores) y pueden ocasionalmente ser conocidas como "64 bits" por esta razón. El término también se puede referir al tamaño de las instrucciones dentro del conjunto de instrucciones o a cualquier otro elemento de datos (p.ej. las cantidades de 64 bits de coma flotante de doble precisión son comunes). Sin más calificaciones, sin embargo, la arquitectura de los ordenadores de 64 bits tiene integrados registros que son de 64 bits, que permite soportar (interna y externamente) datos de 64 bits.

Tabla de contenidos

Page 8: Clases de Buses

[ocultar] 1 Implicaciones de arquitectura 2 Limitaciones de memoria 3 Cronología del procesador de 64 bits 4 32 bits contra 64 bits 5 Pros y contras

o 5.1 Disponibilidad del Software 6 Modelos de datos de 64 bits 7 Arquitecturas de microprocesador de 64 bits actuales 8 Más allá de los 64 bits 9 Imágenes 10 Véase también 11 Referencias

12 Enlaces externos

Implicaciones de arquitectura [editar]

Los registros en un procesador se dividen generalmente en tres grupos: enteros, coma flotante y otros. En todos los procesadores de propósito general, sólo los registros enteros pueden almacenar punteros (una dirección de algún dato en memoria). Los registros que no son de enteros no se pueden utilizar para almacenar punteros para leer o escribir memoria y por tanto no se pueden utilizar para evitar cualquier restricciones impuestas por el tamaño de los registros enteros.

Casi todos los procesadores de propósito general (con la notable excepción de muchos ARM e implementaciones MIPS de 32 bits) han integrado hardware de coma flotante, que puede o no utilizar registros de 64 bits para transportar datos con el fin de procesarlos. Por ejemplo, la arquitectura X86 incluye instrucciones de coma flotante del x87 que utiliza 8 registros de 80 bits en una configuración en forma de pila; revisiones posteriores del x86 y la arquitectura x86-64 también incluyen instrucciones SSE que utilizan 8 registros de 128 bits (16 registros en el x86-64). En contraste, el procesador de 64 bits de la familia DEC Alpha define 32 registros de coma flotante de 64 bits además de sus 32 registros de enteros de 64 bits.

Limitaciones de memoria [editar]

Muchas CPUs están actualmente (en 2008) diseñadas para que los contenidos de un único registro puedan almacenar la dirección de memoria de cualquier dato en la memoria virtual. Por tanto, el número total de direcciones en memoria virtual — la suma total de datos que el ordenador puede mantener en su área de trabajo — es determinado por el ancho de estos registros. Empezando en los años 1960 con el IBM S/360, luego (entre muchos otros) el miniordenador VAX de DEC en los años 1970 y luego con el Intel 80386 a mediados de los años 1980, un consenso de facto instauró que 32 bits era un tamaño conveniente de registro. Un registro de 32 bits significa que se puede referenciar 232 direcciones o 4 gigabytes de RAM. En el momento en que estas arquitecturas fueron concebidas, 4 gigabytes de memoria estaban muy lejos de las cantidades disponibles en instalaciones que se consideraban suficiente "espacio" para direccionamiento. Las direcciones de 4 gigabytes se consideraban un tamaño apropiado

Page 9: Clases de Buses

con el que trabajar por otra importante razón: 4 mil millones de enteros son suficientes para asignar referencias únicas a la mayoría de cosas físicamente contables en aplicaciones como bases de datos.

No obstante, con el paso del tiempo y las continuas reducciones en el coste de la memoria (véase la Ley de Moore), al comienzo de los años 1990, comenzaron a aparecer instalaciones con cantidades de RAM próximas a los 4 gigabytes, y comenzó a ser deseable el uso de espacios de memoria virtual que superaban el límite de 4 gigabytes para manejar ciertos tipos de problemas. Como respuesta, varias empresas empezaron a lanzar nuevas familias de chips con arquitecturas de 64 bits, inicialmente para superordenadores, estaciones de trabajo de grandes prestaciones y servidores. Las computadoras de 64 bits se han ido moviendo hacia el ordenador personal, con algunos modelos de las líneas Macintosh de Apple Computer cambiando a procesadores PowerPC 970 (llamados "G5" por Apple) en 2003 y a procesadores EM64T de 64 bits en 2006, y con procesadores x86-64 llegando a ser comunes en PCs de gama alta. La aparición de la arquitectura de 64 bits efectivamente incrementa el límite a 264 direcciones, equivalente a 17,179,869,184 gigabytes o 16 exabytes de RAM. Para poner esto en perspectiva, en los días en que 4 MB de memoria principal eran comunes, el límite máximo de memoria de 232 direcciones era unas 1000 veces mayor que la configuración típica de memoria. En 2007, cuando 1GB de memoria principal es común, el límite de 264 es unos diez mil millones de veces superior, es decir diez millones de veces más de espacio.

Muchos PCs de 64 bits del mercado tienen actualmente un límite artificial en la cantidad de memoria que pueden reconocer, pues las limitaciones físicas hacen muy poco probable que se vaya a necesitar soporte para los 16 exabytes de capacidad total. El Mac Pro de Apple, por ejemplo, puede configurarse físicamente con hasta 32 gigabytes de memoria, y por ello no hay necesidad de soportar más allá de esa cantidad. Un núcleo linux reciente (versión 2.6.16) puede ser compilado con soporte para hasta 64 gigabytes de memoria. Segun Apple la nueva version de su sistema operativo teoricamente soporta 16 Terobytes de memoria.[1]

Cronología del procesador de 64 bits [editar]

1961: IBM lanzó el superordenador IBM 7030 Stretch. Este utilizaba palabras de 64 bits e instrucciones de 32 ó 64 bits.

1974: Control Data Corporation lanzó el superordenador vectorial CDC Star-100, que utiliza una arquitectura de palabras de 64 bits (los sistemas previos de CDC estaban basados en arquitecturas de 60 bits).

1976: Cray Research lanzó el primer ordenador Cray-1. Este estaba basado en una arquitectura de palabras de 64 bits, que sentó las bases para los posteriores superordenadores vectoriales de Cray.

1983: Elxsi lanzó el minisuperordenador Elxsi 6400 paralelo. La arquitectura Elxsi tenía registros de datos de 64 bits pero un espacio de direcciones de 32 bits.

Page 10: Clases de Buses

1991: MIPS Technologies produjo el primer microprocesador de 64 bits, como la tercera revisión de la arquitectura RISC MIPS, el R4000. La CPU fue utilizada en las estaciones de trabajo de Silicon Graphics empezando con el IRIS Crimson. Sin embargo, el soporte de 64 bits para el R4000 no se incluyó en el sistema operativo IRIX hasta la versión IRIX 6.2 en 1996.

1992: Digital Equipment Corporation (DEC) introdujo el Alpha con una arquitectura pura de 64 bits que nació del proyecto PRISM.

1993: DEC lanzó los sistemas operativos de 64 bits estilo UNIX Tru64 y el OpenVMS para Sistemas Alpha.

1994: Intel anunció sus planes para la arquitectura IA-64 de 64 bits (desarrollada conjuntamente con HP) como sucesor de su procesador de 32 bits IA-32. SGI lanzó el IRIX 6.0 con soporte de 64 bits para las CPUs R8000.

1995: Sun lanzó un procesador SPARC de 64 bits, el UltraSPARC. HAL Computer Systems propiedad de Fujitsu lanzó estaciones de trabajo basadas en una CPU de 64 bits, HAL independientemente diseñó la primera generación de SPARC64. IBM lanzó los sistemas AS/400 de 64 bits, con la posibilidad de actualizar el sistema operativo, las bases de datos y las aplicaciones. DEC lanzó el OpenVMS Alpha 7.0, la primera versión completa de 64 bits de OpenVMS para Alpha.

1996: HP lanzó una implementación de 64 bits, la versión 2.0 de su arquitectura de procesador PA-RISC, el PA-8000. Nintendo introdujo la consola de videojuegos Nintendo 64, construida con una variante de bajo coste del MIPS R4000.

1997: IBM lanzó su RS64 equipado con procesadores PowerPC de 64 bits.

1998: IBM lanzó su procesador POWER3 completamente de 64 bits de la familia PowerPC/POWER. Sun lanzó Solaris 7, con soporte completo para UltraSPARC de 64 bits.

1999: Intel publicó el conjunto de instrucciones para la arquitectura IA-64. Primera revelación pública del juego de extensiones de 64 bits al IA-32 de AMD (posteriormente renombrado como AMD64).

2000: IBM estrenó su primer mainframe de 64 bits, el z900 y su nuevo sistema operativo, el Z/OS  — culminando el mayor desarrollo de la historia de investigación de un procesador de 64 bits e instantáneamente borrando la compatibilidad con las máquinas de 31 bits de sus competidores Fujitsu/Amdahl e Hitachi. Un Linux para zSeries de 64 bits apareció casi inmediatamente.

2001: Intel finalmente lanzó su línea de procesadores de 64-bit, con la marca Itanium, teniendo como objetivo servidores de gama alta. No cumplió las expectativas debido a los repetidos retrasos del lanzamiento del IA-64 al mercado y se convirtió en un fracaso. Linux fue el primer sistema operativo en esta versión de procesador.

Page 11: Clases de Buses

2002: Intel introdujo el Itanium 2 como sucesor del Itanium.

2003: AMD sacó a la luz sus líneas de procesadores con arquitectura AMD64 Opteron y Athlon 64. Apple lanzó también sus CPUs PowerPC 970 "G5" de 64 bits por cortesía de IBM, junto con una actualización de su sistema operativo Mac OS X, que añadió soporte parcial para el modo de 64 bits. Se publicaron varias distribuciones Linux con soporte para AMD64. Microsoft anunció que crearía una versión de su sistema operativo Windows para esos chips AMD. Intel sostuvo que sus chips Itanium serían sus únicos procesadores de 64 bits.

2004: Intel, reaccionando al éxito de mercado de AMD, admitió que había estado desarrollando un clon de las extensiones AMD64, al que llamó IA-32e y posteriormente renombró como EM64T. Se lanzaron versiones actualizadas de sus familias de procesadores Xeon y Pentium 4 que soportaban las nuevas instrucciones. Freescane anuncia su núcleo e700, sucesor de su familia PowerPC G4.

2005: El 31 de Enero, Sun lanzó Solaris 10 con soporte para los procesadores AMD64 y EM64T. En Marzo, Intel anunció que sus primeros procesadores EM64T de doble núcleo se pondrían a la venta en el segundo cuatrimestre de 2005 con la publicación de su Pentium Extreme Edition 840 y los nuevos chips Pentium D. El 30 de Abril, Microsoft lanzó públicamente su Windows XP Professional x64 Edition para procesadores AMD64 y EM64T. En Mayo, AMD introdujo sus primeros procesadores para servidores Opteron AMD64 de doble núcleo y anunció su versión de escritorio, llamada Athlon 64 X2. Los primeros procesadores Athlon 64 X2 (Toledo) contaban con dos núcleos con una memoria caché L2 de 1MB y consistían de aproximadamente 233,2 millones de transistores. Tenían un tamaño de 199 mm2. En Julio, IBM anunció sus nuevos procesadores PowerPC 970MP (cuyo nombre en código era Antares) de doble núcleo y 64 bits usados por IBM y Apple. Microsoft lanzó la consola Xbox 360 que usaba el procesador PowerPC de 64 bits Xenon, fabricado por IBM.

2006: Se pusieron en producción los procesadores Itanium 2 Montecito de doble núcleo. Sony, IBM y Toshiba comenzaron a fabricar el procesador Cell para su uso en la PlayStation 3, servidores, estaciones de trabajo y otros dispositivos. Apple incorporó procesadores Xeon EM64T de 64 bits en su nuevo Mac Pro y sus ordenadores Intel Xserve, y posteriormente actualizó el iMac, el MacBook y el MacBook Pro con procesadores EM64T Intel Core 2 Duo.

32 bits contra 64 bits [editar]

El cambio de una arquitectura de 32 bits a una de 64 bits es una alteración fundamental, y muchos sistemas operativos tienen que modificarse ostensiblemente para aprovechar las ventajas de la nueva arquitectura. El resto del software también tiene que ser portado para usar las nuevas capacidades; el software antiguo normalmente es soportado a través del modo de hardware compatible (en el que los nuevos procesadores soportan las versiones antiguas del conjunto de instrucciones antiguo de 32 bits, así como las de la versión de 64 bits), a través de emulación software o por la implementación de un núcleo de procesador de 32 bits dentro del procesador de 64 bits (como con los procesadores Itanium de Intel, que incluyen un núcleo de procesador x86 para ejecutar

Page 12: Clases de Buses

aplicaciones x86 de 32 bits). Los sistemas operativos para estas arquitecturas de 64 bits generalmente soportan aplicaciones de 32 bits y de 64 bits.

Una excepción significativa de esto es el AS/400, cuyo software se ejecuta en un conjunto de instrucciones virtual, llamado TIMI (Technology Independent Machine Interface) que se traduce a código nativo por software de bajo nivel antes de ser ejecutado. El software de bajo nivel es todo lo que ha de ser reescrito para portar todo el SO y el software a una nueva plataforma, como cuando IBM hizo la transición de su línea desde los antiguos juegos de instrucciones de 32/48 ("IMPI") al PowerPC de 64 bits (IMPI no tenía nada que ver con el PowerPC de 32 bits, así que fue incluso una transición mayor que la de un juego de instrucciones de 32 bits a su equivalente de 64 bits).

Mientras las arquitecturas de 64 bits incontestablemente hacen más sencillo el trabajar con grandes conjuntos de datos en aplicaciones como el vídeo digital, computación científica y grandes bases de datos, ha habido un debate considerable sobre si los modos de compatibilidad con 32 bits serán más rápidos que los sistemas de 32 bits del mismo precio para otras tareas. En las arquitecturas x86-64 (AMD64 y EM64T, IA-32e), la mayoría de los sistemas operativos de 32 bits y aplicaciones pueden ejecutarse sin problemas en el hardware de 64 bits.

Las máquinas virtuales de JAVA de 64 bits de Sun son más lentas en el arranque que las de 32 bits porque Sun sigue asumiendo que todas las máquinas de 64 bits son servidores y sólo han implementado el compilador de "servidor" (C2) para plataformas de 64 bits. El compilador "cliente" (C1) produce código más lento, pero compila mucho más rápido. Así que aunque un programa Java en una JVM de 64 bits puede funcionar mejor en un periodo grande de tiempo (típico de aplicaciones "servidoras" de ejecución larga), su tiempo de arranque será probablemente mucho mayor. Para aplicaciones de vida corta (como el compilador de Java, javac) el incremento en el tiempo de arranque puede dominar el tiempo de ejecución, haciendo la JVM de 64 bits más lenta en conjunto.

Debería notarse que la velocidad no es el único factor a considerar en una comparación de procesadores de 32 bits y 64 bits. Usos como la multitarea, las pruebas de carga y el clustering (para computación de alto rendimiento) pueden ser más idóneos para una arquitectura de 64 bits teniendo en cuenta un desarrollo correcto. Los clusters de 64 bits han sido ampliamente usados en grandes organizaciones como IBM, Vodafone, HP y Microsoft, por esta razón.

Pros y contras [editar]

Un error común es, que las arquitecturas de 64 bits no son mejores que las de 32 bits a menos que el ordenador tenga más de 4 GB de memoria. Esto no es completamente cierto:

Algunos sistemas operativos reservan porciones de espacio de direcciones de procesos para uso del SO, reduciendo el espacio total de direcciones disponible para mapear memoria para programas de usuario. Por ejemplo, las DLLs de Windows XP y los componentes de usuario del SO están mapeados en cada espacio de direcciones de proceso, dejando sólo entre 2 y 3.8 GB (dependiendo de la configuración) de espacio de direcciones disponible, incluso si el

Page 13: Clases de Buses

ordenador tiene 4 GB de RAM. Esta restricción no está presente en el Windows de 64 bits.

El mapeado en memoria de archivos es menos útil con arquitecturas de 32 bits, especialmente con la introducción de tecnología de grabación de DVD relativamente barata. Un archivo de 4 GB ya no es inusual y tales archivos grandes no pueden ser mapeados fácilmente con arquitecturas de 32 bits; sólo se puede mapear una región del archivo en el espacio de direcciones y para acceder al archivo usando mapeado de memoria, estas regiones tendrán que mapearse dentro y fuera del espacio de direcciones según sea necesario. Esta es una cuestión clave, ya que el mapeado de memoria es uno de los métodos más eficientes para transportar datos del disco a la memoria, cuando es correctamente implementado por el SO.

La principal desventaja de las arquitecturas de 64 bits es que, con respecto a las arquitecturas de 32 bits, los mismos datos ocupan ligeramente más espacio en memoria (debido al crecimiento de los punteros y posiblemente otros tipos y al relleno para alineamiento). Esto incrementa los requisitos de memoria de un proceso dado y puede tener implicaciones para el uso eficiente de la caché del procesador. Mantener un modelo parcial de 32 bits es una manera de manejar esto y es en general razonablemente efectivo. De hecho, el sistema operativo de altas prestaciones Z/OS ha escogido este enfoque actualmente, requiriendo que el código de programa resida en varios espacios de direcciones de 32 bits mientras que los objetos de datos pueden (opcionalmente) residir en regiones de 64 bits.

Actualmente, muchos programas comerciales están construidos como código de 32 bits, no de 64 bits, así que no pueden obtener ventajas de los grandes espacios de direcciones de 64 bits o de registros de 64 bits más anchos y las rutas de datos en procesadores de 64 bits o, en procesadores x86, de los registros adicionales en el modo de 64 bits. Sin embargo, los usuarios de sistemas operativos libres o de código abierto han podido utilizar entornos exclusivos de 64 bits durante años. No todas las aplicaciones necesitan un gran espacio de direcciones o manipular elementos de 64 bits, así que no se beneficiarían de los grandes espacios de direcciones o de los registros más anchos y las rutas de datos; el principal beneficio para las aplicaciones de 64 bits que no se beneficiarían de nada de esto sería que las versiones x86 podrían usar más registros.

Disponibilidad del Software [editar]

Los sistemas de 64 bits algunas veces carecen de software equivalente escrito para arquitecturas de 32 bits. Los problemas más graves son debidos a controladores de dispositivo incompatibles. Aunque gran parte del software puede ejecutarse en modo de compatibilidad con 32 bits (también conocido como un modo emulado, p. ej. la Tecnología Microsoft WoW64), normalmente es imposible ejecutar un driver (o un programa similar) en ese modo ya que habitualmente se ejecuta entre el SO y el hardware, donde no se puede usar la emulación directa. Muchos paquetes de software de código abierto pueden simplemente ser compilados desde las fuentes para trabajar en un entrono de 64 bits en sistemas operativos como Linux. Todo lo que se necesitaría en este caso es un compilador (normalmente GCC) para la máquina de 64 bits.