OT: ayuda para decidir por proc AMD64 o PIV

Horst von Brand vonbrand en inf.utfsm.cl
Mie Nov 2 20:00:34 CLST 2005


claudio en ing-mat.udec.cl wrote:
> On Wed, 2 Nov 2005, rodrigo wrote:
> > El 02/11/05 05:11:54, Gustavo escribió:

[...]

> > eliminacion de mas de un registro por instruccion: ¿que es eso?

> Se refiere que los registros para enteros son de 64 bits, por lo cual 
> los enteros grandes caen en un solo registro, en cambio en los de 32 bits 
> se necesita mas de un registro, lo que involucra mas opereciones en su 
> manipulacion.

Notese si que /muy/ rara vez se usan enteros de 64 bits en codigo de 32
bits.

> Para el punto flotante no es tan cierto, ya que segun tengo entendido, 
> casi todos los procesaodores actuales de 32 bit traen registros 
> especiales de 80 bits para los numeros reales.

El formato de punto flotante de intel es de 80 bits (es una version
pichitateada del formato IEEE, /no/ es recomendable para calculos
numericos), y es lo que maneja nativamente la FPU.

> Los 8 registros que menciono una persona, solo pueden usarse cuando el
> athlon64 esta en modo 64 bits(tiene tres modos), es decir, si instalan
> windowxXP de 32 bits no se tendra acceso a los 8 registros adicionales,
> ya que solo se encuentran en el microcodigo de 64 bits, tambien por lo
> que entendi de los paper de la AMD, si se tiene un sistema oprativo de 64
> bits, pero la aplicacion es de 32 bits, los registros tampoco son
> usados...

A ver...

Igualito que el 80386 (32 bits) es un superconjunto del 8086 (16 bits) que
es un superconjunto del 8080 (8 bits), en el sentido que tiene registros
mas "anchos" (%eax es de 32) y contiene los anteriores (%ax es 16, %al es
8), tiene instrucciones adicionales (obvio, para manejar los registros de
32 bits; pero tambien otras realmente nuevas) y ciertas restricciones no
corren (hay ciertos modos de direccionamiento/usos que el 8086 no permite,
el 80386 acepta el equivalente moral), el x86_64 es un superconjunto del
Pentium. con mas registros &c.

Perfectamente puedes correr codigo de 16 bits (Win9x) en un Pentium, pero
no sacaras provecho a la CPU. Tambien puedes correrlo en un x86_64, o
correr codigo de 32 bits en el. Claro que un programa compilado para
Pentium ni sabe que hay mas registros, y no los usa.

> En defenitiva, si tienes mas de 4 GB y/o aplicaciones que efectuan una
> gran cantidad de operaciones con enteros grandes y que esten compiladas
> para 64 bits, sacaras ventaja sobre un procesador de 64 bits.

Sacaras provecho siempre que tengas procesos "grandes". Notese que enteros,
punteros, etc mas grandes significan instrucciones mas grandes, mas memoria
usada ==> programas mas lentos. Al menos en SPARC es tan serio que se
prefiere /no/ correr aplicaciones de 64 bits mas que donde no queda
otra. x86_64 es mejor en este sentido, pero no es que el efecto no exista.

> En todo caso, tengo entendido que salieron los PIV con EMT64,

Eso solo es intel copiando la arquitectura de AMD, dado que su Itanic le
hizo honor al nombre... por mi, me quedo con AMD.

No, no tengo datos concretos que lo respalden.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513



Más información sobre la lista de distribución Linux