Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1878 connectés 

  FORUM HardWare.fr
  Programmation

  [DEFINITION] Différence entre une archi 16bits et 32bits

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[DEFINITION] Différence entre une archi 16bits et 32bits

n°206625
guillot
Posté le 01-09-2002 à 14:21:35  profilanswer
 

Hello
 
Je cherche à expliquer pour mon mémoire la différene entre une architecture 16bits et 32bits au niveau logiciel.
 
A la base, le logiciel que j'ai développé était en Access 2 et Visual Basic 3 (archi 16bits) et a été réécrit en Visual Basic 6 (Archi 32bits).
 
Par contre je ne sais pas expliquer :
- ni ce qu'est une architecture 16 ou 32bits
- ni la différence qu'il y a entre les 2 (différence de fonctionnement, rapidité d'exécution... ?)
 
Si quelqu'un peut m'éclairer ce serait sympa :)
 
Merci d'avance

mood
Publicité
Posté le 01-09-2002 à 14:21:35  profilanswer
 

n°206634
apolon34
Vive Linux!!
Posté le 01-09-2002 à 14:43:12  profilanswer
 

guillot a écrit a écrit :

Hello
 
Je cherche à expliquer pour mon mémoire la différene entre une architecture 16bits et 32bits au niveau logiciel.
 
A la base, le logiciel que j'ai développé était en Access 2 et Visual Basic 3 (archi 16bits) et a été réécrit en Visual Basic 6 (Archi 32bits).
 
Par contre je ne sais pas expliquer :
- ni ce qu'est une architecture 16 ou 32bits
- ni la différence qu'il y a entre les 2 (différence de fonctionnement, rapidité d'exécution... ?)
 
Si quelqu'un peut m'éclairer ce serait sympa :)
 
Merci d'avance
 




 
la difference se situe au niveau de la largeur de bus. 16 bits (2octets) ou 32bits (4octets)
 
au niveau du processeur, il pourra effectuer des calculs sur 32bits plus rapidement (c'est possible de faire du calcul 32bits avec un proc 16bits!)
 
au niveau de ton logiciel, ca change pas grand chose a part l'occupation memoire.
 
ex en c:
un int fait 2octets en 16bits et 4 octets en 32bits
le char ne change pas (1 octet)
 
enfin bref, generalement la seule difference est au niveau du compilo.
 
et une archi 32bits est plus rapide si tu fais des calculs sur des nombres codes en 32bits, sinon c'est pareil (spec des procs mises a part)

n°206635
smaragdus
whores, drugs & J.S. Bach
Posté le 01-09-2002 à 14:46:50  profilanswer
 

Archi 32 bits : mode protégé (chaque processus est "restreint" à son espace mémoire), 4 Go adressables, multitâche
 
Archi 16 bits : 1 Mo adressable, monotâche et bidouillage pour essayer d'obtenir la même chose que le multitache tant que la techno 32 bits était intouchable.


Message édité par smaragdus le 01-09-2002 à 14:52:14
n°206637
apolon34
Vive Linux!!
Posté le 01-09-2002 à 15:01:47  profilanswer
 

Smaragdus a écrit a écrit :

Archi 32 bits : mode protégé (chaque processus est "restreint" à son espace mémoire), 4 Go adressables, multitâche
 
Archi 16 bits : 1 Mo adressable, monotâche et bidouillage pour essayer d'obtenir la même chose que le multitache tant que la techno 32 bits était intouchable.




 
en effet mais ca n'a rien a voir avec l'archi mais avec le processeur.
 
et en plus l'adressage memoire n'est pas dependant non plus du 16/32 bits mais de la largeur du bus de donnees (generalement la meme, mais pas forcement)

n°206638
smaragdus
whores, drugs & J.S. Bach
Posté le 01-09-2002 à 15:16:34  profilanswer
 

apolon34 a écrit a écrit :

 
 
en effet mais ca n'a rien a voir avec l'archi mais avec le processeur.
 
et en plus l'adressage memoire n'est pas dependant non plus du 16/32 bits mais de la largeur du bus de donnees (generalement la meme, mais pas forcement)




 
ben si

n°206641
mrbebert
Posté le 01-09-2002 à 15:29:02  profilanswer
 

Smaragdus a écrit a écrit :

 
 
ben si



non non.
Par exemple, un PIII est capable de gérer (et de cacher) 64 Go.
Pourtant, c'est un processeur 32 bits.
 
Je pense que le terme 16 ou 32 bits, c'est uniquement la taille des registres généraux (entiers et adresses) (les EAX, EBX...)


Message édité par mrbebert le 01-09-2002 à 15:30:38
n°206643
kadreg
profil: Utilisateur
Posté le 01-09-2002 à 15:30:01  profilanswer
 

De la même façon, le 8086 gérait la mémoire sur 20 bits avec des registres 16 bits, mais au prix d'un bidouillage de goret :D


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°206646
smaragdus
whores, drugs & J.S. Bach
Posté le 01-09-2002 à 15:37:04  profilanswer
 

mrbebert a écrit a écrit :

non non.
Par exemple, un PIII est capable de gérer (et de cacher) 64 Go.
 




 
Adressables en même temps ?  :sarcastic:

n°206648
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-09-2002 à 15:39:02  profilanswer
 

mrbebert a écrit a écrit :

non non.
Par exemple, un PIII est capable de gérer (et de cacher) 64 Go.
Pourtant, c'est un processeur 32 bits.
 
Je pense que le terme 16 ou 32 bits, c'est uniquement la taille des registres généraux (entiers et adresses) (les EAX, EBX...)




J'aimerais que tu m'expliques comment un P3 peut gérer 64 Go.  
 
Ca voudrait dire qu'il adresse sur 36 bits... Si vraiment c'est possible, ça veut dire qu'il lui faut 2 registres 32 bits pour accéder à la zone au delà des 4 Go, et sur les 32 bits du second registre, 28 seront inutilisés.
 
Je pense qu'il doit flipper les pages mémoires, comme au temps des 8 bits qui arrivaient à gérer + de 64 Ko de RAM, mais sur plusieurs pages. Mais bon, jusqu'a preuve du contraire, un P3 n'est pas 36 bits...


Message édité par Harkonnen le 01-09-2002 à 15:40:55

---------------
J'ai un string dans l'array (Paris Hilton)
n°206649
smaragdus
whores, drugs & J.S. Bach
Posté le 01-09-2002 à 15:40:23  profilanswer
 

Harkonnen a écrit a écrit :

 
J'aimerais que tu m'expliques comment un P3 peut gérer 64 Go.  
 
Ca voudrait dire qu'il adresse sur 36 bits... Si vraiment c'est possible, ça veut dire qu'il lui faut 2 registres 32 bits pour accéder à la zone au delà des 4 Go, et sur les 32 bits du second registre, 28 seront inutilisés.




 
Oui, d'ailleurs si c'était possible, je me demande pourquoi on passe maintenant à l'archi 64 bits puisque c'est justememnt pour faire péter la limite des 4 Go.

mood
Publicité
Posté le 01-09-2002 à 15:40:23  profilanswer
 

n°206650
verdoux
And I'm still waiting
Posté le 01-09-2002 à 15:42:12  profilanswer
 

La largeur du bus d'adressage des PII/PIII/celeron est de 36 bits.

n°206651
verdoux
And I'm still waiting
Posté le 01-09-2002 à 15:43:36  profilanswer
 

Smaragdus a écrit a écrit :

 
 
Oui, d'ailleurs si c'était possible, je me demande pourquoi on passe maintenant à l'archi 64 bits puisque c'est justememnt pour faire péter la limite des 4 Go.




Pourtant c'est utilisé:
http://www.microsoft.com/hwdev/pla [...] efault.asp
 
http://tangentsoft.net/ix/pae.html


Message édité par verdoux le 01-09-2002 à 15:44:50
n°206652
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-09-2002 à 15:44:34  profilanswer
 

Verdoux a écrit a écrit :

La largeur du bus d'adressage des PII/PIII/celeron est de 36 bits.




Dans ce cas, comment y accéder avec uniquement des registres 32 bits ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°206653
mrbebert
Posté le 01-09-2002 à 15:46:47  profilanswer
 

Je ne sais pas précisément comment ca fonctionne, mais je sais qu'Intel annonce 64 Go dans les datasheets du PIII, que Microsoft n'hésite pas à dire que 2000 Datacenter peut gérer 32 Go de RAM (sur des PIII), et que Dell ou IBM ont des serveurs avec + de 4 Go, basés sur des processeurs 32 bits.
 
Mais c'est une limite pour le système. Je connais pas toutes les subtilités de l'adressage virtuel en x86, et je ne dit pas qu'un processus seul peut dépasser les 2 ou 4 Go.
Il y a une distinction entre la taille adressable par un processus, et la taille totale utilisable par l'ensemble du système.
 
Le passage à 64 bits devrait permettre de dépasser cette limite par processus.

n°206654
verdoux
And I'm still waiting
Posté le 01-09-2002 à 15:49:20  profilanswer
 

Harkonnen a écrit a écrit :

 
Dans ce cas, comment y accéder avec uniquement des registres 32 bits ?




Y a pas mal de gymnastique d'après les docs des liens.

n°206656
smaragdus
whores, drugs & J.S. Bach
Posté le 01-09-2002 à 15:50:32  profilanswer
 

mrbebert a écrit a écrit :

Je ne sais pas précisément comment ca fonctionne, mais je sais qu'Intel annonce 64 Go dans les datasheets du PIII, que Microsoft n'hésite pas à dire que 2000 Datacenter peut gérer 32 Go de RAM (sur des PIII), et que Dell ou IBM ont des serveurs avec + de 4 Go, basés sur des processeurs 32 bits.
 
Mais c'est une limite pour le système. Je connais pas toutes les subtilités de l'adressage virtuel en x86, et je ne dit pas qu'un processus seul peut dépasser les 2 ou 4 Go.
Il y a une distinction entre la taille adressable par un processus, et la taille totale utilisable par l'ensemble du système.
 




 
Moi je ne parle que de ça : la taille adressable. En 16 bits on pouvait adresser 1 Mo en même temps, même si, avec l'XMS on pouvait adresser plus mais c'était du bidouillage. Là, le coup des 36 bits, c'est pareil.

n°206657
kadreg
profil: Utilisateur
Posté le 01-09-2002 à 15:52:19  profilanswer
 

Harkonnen a écrit a écrit :

 
Dans ce cas, comment y accéder avec uniquement des registres 32 bits ?




 
Par segmentation, comme à l'époque du 8086.
 
R1 et R2 sont des registres 32 bits, PHY est l'addresse physique sur 36 bits.
PHY = (R1 << 4) + R2


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°206658
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-09-2002 à 15:53:21  profilanswer
 

Verdoux a écrit a écrit :

 
Y a pas mal de gymnastique d'après les docs des liens.




Mouais, et en plus je suis pas sur qu'au niveau efficacité du code, ça apporte grand chose... Ca doit être basé sur des décalages de bits à tire larigot.
 
Mieut vaut attendre une vraie architecture 64 bits ! Au passage, ça me fait bien marrer que certaines consoles de jeu estampillent "64 bits" sur leur notice pour ne posséder que 16 ou 32 Mo de RAM... Marketing, quand tu nous tiens ! :sarcastic:


---------------
J'ai un string dans l'array (Paris Hilton)
n°206659
verdoux
And I'm still waiting
Posté le 01-09-2002 à 15:53:51  profilanswer
 

De toute façon sous windows, pour chaque processus, y a que 2 Go pour l'utilisateur, les  2 autres Go sont pour le noyau (sauf si on mets le switch \3GB dans le boot.ini)

n°206662
mrbebert
Posté le 01-09-2002 à 16:03:09  profilanswer
 

Harkonnen a écrit a écrit :

 
Mouais, et en plus je suis pas sur qu'au niveau efficacité du code, ça apporte grand chose... Ca doit être basé sur des décalages de bits à tire larigot.
 
Mieut vaut attendre une vraie architecture 64 bits ! Au passage, ça me fait bien marrer que certaines consoles de jeu estampillent "64 bits" sur leur notice pour ne posséder que 16 ou 32 Mo de RAM... Marketing, quand tu nous tiens ! :sarcastic:  



Ca ne se fait pas dans le processus, ce n'est pas le programme qui calcule lui même les adresses. Lui, il a son espace de taille <= 4 Go, ca tient sur des registres 32 bits, il n'a pas d'opération particulière à effectuer.
 
C'est uniquement lorsque le proc convertit l'adresse logique vers l'adresse physique, qu'il passe à 36 bits.

n°206664
Polio
lanceur de Kerbals
Posté le 01-09-2002 à 16:10:14  profilanswer
 

Si l'on regarde la datasheet d'un P3 (par exemple), le bus d'adresse ne commence pas à A0 mais à A3 (le bus mémoire faisant 64 bits de large, les données sont alignées sur 8 octets).
 
 
Donc tout est décalé de 4 bits, ce qui fait 64 Go d'adressable (ce qui donne bien 4 Gmots de 64 bits).

n°206670
apolon34
Vive Linux!!
Posté le 01-09-2002 à 16:23:00  profilanswer
 

Harkonnen a écrit a écrit :

 
Mouais, et en plus je suis pas sur qu'au niveau efficacité du code, ça apporte grand chose... Ca doit être basé sur des décalages de bits à tire larigot.
 
Mieut vaut attendre une vraie architecture 64 bits ! Au passage, ça me fait bien marrer que certaines consoles de jeu estampillent "64 bits" sur leur notice pour ne posséder que 16 ou 32 Mo de RAM... Marketing, quand tu nous tiens ! :sarcastic:  




 
le fait qu'elles soient 64bits ou non n'est pas pour la taille max de la memoire.
 
il faut bien separer la taille des registres internes de la largeur du bus d'adresse.

n°206675
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-09-2002 à 16:32:58  profilanswer
 

apolon34 a écrit a écrit :

 
 
le fait qu'elles soient 64bits ou non n'est pas pour la taille max de la memoire.
 
il faut bien separer la taille des registres internes de la largeur du bus d'adresse.




ça va ensemble !
si je vois une étiquette "64 bits", je m'attends à avoir en face de moi une architecture 64 bits, et non 32/64 bits.


---------------
J'ai un string dans l'array (Paris Hilton)
n°206677
mrbebert
Posté le 01-09-2002 à 16:44:16  profilanswer
 

Harkonnen a écrit a écrit :

 
ça va ensemble !
si je vois une étiquette "64 bits", je m'attends à avoir en face de moi une architecture 64 bits, et non 32/64 bits.



Tout dépend de ce que tu entends par "architecture 64 bits".
Pour moi, un proc 64 bits est un proc où les registres généraux sont sur 64 bits. Ce sera le cas du Hammer. Mais rien ne dit qu'il sera capable de gérer 2^64 octets de mémoire .

n°206683
Polio
lanceur de Kerbals
Posté le 01-09-2002 à 16:50:35  profilanswer
 

mrbebert a écrit a écrit :

Tout dépend de ce que tu entends par "architecture 64 bits".
Pour moi, un proc 64 bits est un proc où les registres généraux sont sur 64 bits. Ce sera le cas du Hammer. Mais rien ne dit qu'il sera capable de gérer 2^64 octets de mémoire .




 
 
C'est clair !
 
 
Par exemple les processeurs Sun 64 bit ont un bus d'adresse de 44 bits de large. Et toujours pour des raisons de coût, je serai surpris que le bus d'adresse du hammer fasse 64 bits de large.

n°206685
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-09-2002 à 16:52:24  profilanswer
 

mrbebert a écrit a écrit :

Tout dépend de ce que tu entends par "architecture 64 bits".
Pour moi, un proc 64 bits est un proc où les registres généraux sont sur 64 bits. Ce sera le cas du Hammer. Mais rien ne dit qu'il sera capable de gérer 2^64 octets de mémoire .




pour moi, "architecture 64 bits", signifie qu'un processeur non seulement possède des registres 64 bits, donc permettant de travailler sur des nombres en 64 bits en un seul accès, mais également un bus d'adressage en 64 bits, donc capable d'adresser en théorie 16 777 216 tera-octets ! :d


---------------
J'ai un string dans l'array (Paris Hilton)
n°206851
Jar Jar
Intaigriste
Posté le 01-09-2002 à 23:01:55  profilanswer
 

Linux Kernel v2.4.17 Configuration
                                                                                                              High Memory Support                                   CONFIG_NOHIGHMEM:                                                                                                                                               Linux can use up to 64 Gigabytes of physical memory on x86 systems.             However, the address space of 32-bit x86 processors is only 4                   Gigabytes large. That means that, if you have a large amount of                 physical memory, not all of it can be "permanently mapped" by the               kernel. The physical memory that's not permanently mapped is called             "high memory".                                                              
 
(snip)
 
    If more than 4 Gigabytes is used then answer "64GB" here. This                  selection turns Intel PAE (Physical Address Extension) mode on.                 PAE implements 3-level paging on IA32 processors. PAE is fully                  supported by Linux, PAE mode is implemented on all recent Intel                 processors (Pentium Pro and better). NOTE: If you say "64GB" here,              then the kernel will not boot on CPUs that don't support PAE!              


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°206921
Musaran
Cerveaulté
Posté le 02-09-2002 à 07:09:44  profilanswer
 

guillot a écrit a écrit :

Je cherche à expliquer pour mon mémoire la différene entre une architecture 16bits et 32bits au niveau logiciel.


Y'en a une qui calcule (naturellement) sur 16 bits, et l'autre sur 32.
 
Maintenant, il y a d'autres considérations qui viennent, comme tu peux le voir...
 

kadreg a écrit a écrit :

le 8086 gérait la mémoire sur 20 bits avec des registres 16 bits, mais au prix d'un bidouillage de goret.


100% d'accord.
Jamais compris pourquoi.
 

Verdoux a écrit a écrit :

 
(sauf si on mets le switch \3GB dans le boot.ini)


Ça m'intéresse !
Il faut mettre exactement quoi, sur quelle ligne ?
C'est compatible NT/2000/XP ?
 

Harkonnen a écrit a écrit :

un bus d'adressage en 64 bits, donc capable d'adresser en théorie 16 777 216 tera-octets !


16 777 216 giga-octets.
 
A tous
La largeur des registres, du bus de données, du bus d'adresses, du ou des bus internes, du bus électronique effectif, sont en général proches, mais pas forcémment identiques.
Une machine avec des registres n bits:
-Peut adresser n^(2*n) octets avec un registre de segment d'adresse supplémentaire. (segment<<n)+adresse = adresse effective n*2 bits.
-Peut adresser n*x octets en les lisant par blocs de x (Cas du PIII mentionné).
-Peut disposer d'un bus n/2, ou n*2, ou pire/mieux encore.
-Peut généralement faire certains calculs en n*2 bits.
 
Aura-t'on bientôt des int *64 verylongpint; ?


Message édité par Musaran le 03-09-2002 à 00:09:10

---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [DEFINITION] Différence entre une archi 16bits et 32bits

 

Sujets relatifs
[C++] Différence de codage entre .so(unix/linux) et .dll(win32)Editeur : c'est quoi la différence entre netbean et le studio de java?
[XSL-XML] Définition du Namespace en XSL : comprends rien ![open gl] c quoi la différence entre une source de lumière et...
[MYSQL] différence entre les differents sortes de tablesattachEvent pourqoui l'evenement passe lors de la definition
[NB] Help, c'est quoi la différence entre PL-SQL et SQLquelle différence entre C++ et Visual C++ ?
[Access] Différence entre deux date format DD/MM/YYYYDéfinition d'un framework
Plus de sujets relatifs à : [DEFINITION] Différence entre une archi 16bits et 32bits


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR