InicioAyudaBuscarIngresarRegistrarse

Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación?
08 de Enero de 2009, 06:39:45 pm

Ingresar con nombre de usuario, contraseña y duración de la sesión
Mexhardware
Buscar

Stats
7507 Mensajes en 1768 Temas por 591 Usuarios
Último usuario: salesdirect
Foro MexHardware  |  Hardware  |  Procesadores  |  Tema: EM64T vs. AMD64 « anterior próximo »
Páginas: [1] Imprimir
Tema: EM64T vs. AMD64  (Leído 1584 veces)
AlCapone
Titán
Geek
*****
Desconectado Desconectado

Mensajes: 105


Geek & Chic


Ver Perfil
« en: 19 de Abril de 2007, 12:02:19 am »

Para que se vaya moviendo más el tema y ver wenos aportes, por que en CHW se nos dió una wenísima discusión respecto al tema, les dejo una copia de algo que escribí cuando me hice exactamente esa pregunta y estuve leyendo como enajenado durante 2 semanas... Uy

Las diferencias en realidad son pequeñas. Los compiladores (armadores del software por decirlo lúdicamente) generalmente producen binarios que son aptos para ambos sets, haciendo a las diferencias imprescindibles de conocer para los desarrolladores tanto de los mismos compiladores como de los sistemas operativos.

- Los primeros AMD64 no tienen la instrucción CMPXCHG16B, que es una extensión de la instrucción CMPXCHG8B presente en la mayoría de los procers post 486. Similar a CMPXCHG8B, CMPXCHG16B permite operaciónes de tipos de datos en 128-bit doble quadword (quadword es la direccionalidad de la cadena que contiene el bit de menor orden (bit 0)). Esto es útil para contadores de alta resolución que pueden ser actualizados por múltiples procesadores ó núcleos. Sin CMPXCHG16B, la única manera de hacer operaciones de éste estilo es usar una sección crítica (netamente menos eficiente).   

- Las primeras CPU's Intel con EM64T carecen de LAHF y SAHF, soportadas por AMD64 hasta la producción de los P4 Step G1 en Diciembre del 2005. LAHF y SAHF son instrucciones de carga/almacenaje para los flags de status. Además, carecían también del NX bit (No Execute bit), que marca los archivos de memoria como no-ejecutables, protegiendo de muchos tipos de códigos maliciosos. 

- SYSCALL y SYSRET están solo soportados en el modo IA-32e (no en el modo de compatibilidad) de EM64T. SYSENTER y SYSEXIT están soportados en ambos. Éstas instrucciones llaman a segmentos de código duro para describir el segmento de código objetivo.

- Las ramas cercanas al prefijo 0x66 (tamaño de operación) se comportan distinto. Para EM64T despeja los 48 bits superiores mientras que para AMD64, los primeros 32.

- Las instrucciones de EM64T BSF y BSR actúan diferente cuando la fuente es 0 y el tamaño operativo es de 32 bits. El procesador fija el flag 0 y deja los 32 bits superiores de destino indefinidos.

- AMD64 soporta 3dNow!. Esto incluye pre-carga con el opcode (porción del lenguaje de instrucciones de la máquina que especifica las operaciones que esta realizará) 0x0F, 0x0D y PREFETCHW (like CHW!), que son utilísimos para esconder las latencias (retardos) de la memoria.

- EM64T carece de la habilidad de guardar y restaurar una versión reducida (y por ello más rápida) del estado de punto flotante (involucrando a las operaciones FXSAVE y FXRSTOR). Punto flotante es una manera de representar un set de números reales en términos de un exponente, que es un integrando, y un significando, que es una cadena de ciertos números escogidos de dígitos. 

- EMT64T carece de algunos modelos de registros específicos que son considerados "arquitecturales" de AMD64. Ésto inclute SYSCFG, TOP_MEM y TOP_MEM2.

- EM64T soporta refresco de microcódigo como en el modo de 32 bits.

- La identificación de la CPU del EM64T es muy específica del vendedor, como es normal en los procesadores x86.

- Las instrucciones MONITOR y MWAIT usadas por parte de los sistemas operativos para lidiar con el Hyper-threading son sólo soportadas (y útiles, ya q AMD no lo usa) en los EM64T.

- Los sistemas AMD64 permiten el uso de la apertura de AGP como IO-MMU (I/O Memory Mapping Unit ó Unidad de Mapeo de memoria de entrada/salida). Los sistemas operativos pueden tomar ventaja de ésto, dejando a los dispositivos PCI normales acceso directo a la memoria (DMA) de alrededor de 4 GB. Los que tienen EM64T requieren el uso de almacenadores intermediarios, lo que los hace más lentos.     

- El hardware EM64T actual permite acceso a sólo 236 bytes de memoria, mientras AMD64 puede manejar hasta 240 bytes. Todo esto de una extensión máxima de 256 bytes.

Espero comentarios, complementos y críticas, por que fue harta pega reuniendo toda la info y complementandola con las definiciones de las cosas que no toda la gente sabe que son. Espero que queden más claras las diferencias.

Fuentes:
- AMD
- Intel
- Ars Technica
- Wikipedia
- x86-64.org
- Google
En línea

zerostrong
Geek
*
Desconectado Desconectado

Mensajes: 210


Grondstrong


Ver Perfil WWW
« Respuesta #1 en: 19 de Abril de 2007, 05:51:30 pm »

- El hardware EM64T actual permite acceso a sólo 236 bytes de memoria, mientras AMD64 puede manejar hasta 240 bytes. Todo esto de una extensión máxima de 256 bytes.

Mi maestro de Arquitortura de computadoras diria... "Y de que les sirve 256bytes, ni siquiera se les ha sacado 100% provecho a los 32bits de acceso a memoria de las primeras computadoras, etc etc..." xD
En línea

AlCapone
Titán
Geek
*****
Desconectado Desconectado

Mensajes: 105


Geek & Chic


Ver Perfil
« Respuesta #2 en: 19 de Abril de 2007, 10:28:20 pm »

Y tu le respondiste: Es que hay que pensar en la escalabilidad siempre... Jajajaja xD
En línea

Legionario
Dios
Gurú
*****
Desconectado Desconectado

Mensajes: 960


For the honor and glory!!!


Ver Perfil
« Respuesta #3 en: 20 de Abril de 2007, 12:19:33 am »

jajaja espero les guste mi articulo del dia lunes Giñar
En línea

---Viviremos eternamente en el legado de nuestras acciones---
<br

xalastor
Noob
*
Desconectado Desconectado

Mensajes: 2



Ver Perfil
« Respuesta #4 en: 29 de Junio de 2007, 11:24:02 am »

Entonces en el caso que yo quiera ejecutar una aplicacion de 64b, funciona igual en cualquiera de los 2 o tengo que encontrar la version especifica (o parches) para EM64 o AMD64?, por ejemplo un SO.

Hace tiempo queria hacer una investigacion del tema, pero no e tenido tiempo, me has ahorrado las desveladas. Sonrisa

Felicidades por el trabajo de investigacion. thumbsup

Saludos.
En línea
AlCapone
Titán
Geek
*****
Desconectado Desconectado

Mensajes: 105


Geek & Chic


Ver Perfil
« Respuesta #5 en: 02 de Julio de 2007, 05:02:02 pm »

Funciona en general para ambos. Lo que si cambia es que, por ejemplo, al momento de compilar una aplicación son distintos los flags de compilación que usas.
Por ejemplo, para AMD usas:
-march=k8 -mmmx -msse -msse2 -m3dnow -m64
Y para intel:
-march=pentium-m -mmmx -msse2 -m64

Para más detalles, uno de mis bookmarks de cuando programaba:
http://gcc.gnu.org/onlinedocs/gcc-4.2.0/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options
En línea

Páginas: [1] Imprimir 
Foro MexHardware  |  Hardware  |  Procesadores  |  Tema: EM64T vs. AMD64 « anterior próximo »
Ir a:  

Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks
Amber design by Bloc | XHTML | CSS