Advertisement
but2ene

postpebkacfr

Apr 2nd, 2014
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. @Anomine houlà il ne faut pas confondre architecture x86-64 de ce qui est réellement implémenté pour cette architecture.
  2.  
  3. Certes le I7 ne sait gérer que 48bit en virtuel qui transforme en adressage de 40bit.
  4. Mais l'instruction prend bien 64bit et il y a 17bit qui doivent être identique.[1,2,3]
  5. Lorsque tu fait un chargement "MOV" [3] t'as bien un pointeur de 64bit qui n'est pas dans la version 32bit [4].
  6.  
  7. Par contre le bus de données du I7 est de 128bits [5]
  8. Le bus de donné de la DDR3 est de 64bit ainsi que la DDR2 que l'on utilisait avec des processeur 32bit.
  9.  
  10. Pour le système d'exploitation le pointeur fait bien 64bits.
  11. Pour ceux qui veulent essayer :
  12.  
  13. `#include <stdio.h>
  14.  
  15. int main(){
  16. printf("%ld bits\n",sizeof(int*)*8);
  17. return 0;
  18. }`
  19.  
  20. Ce programme répond.
  21. "64 bits" sur un linux en 64bits
  22. "32 bits" sur un linux en 32bits
  23.  
  24. [1]http://en.wikipedia.org/wiki/X86-64#Virtual_address_space_details
  25. [2]http://www.linuxquestions.org/questions/linux-hardware-18/address-sizes-in-cpuinfo-757456/
  26. [3]http://ref.x86asm.net/coder64.html
  27. [4]http://ref.x86asm.net/coder32.html
  28. [5]http://upload.wikimedia.org/wikipedia/commons/6/64/Intel_Nehalem_arch.svg
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement