2010-09-28 21 views
3

J'ai lu que le microprocesseur se compose de plusieurs composants ayant chacun des "tailles" identiques/différentes. Mais ce qui m'a vraiment embrouille est ce qui détermine la taille déclaré d'un microprocesseur 16 bits, 32 bits ou 64 bits ...Taille du microprocesseur

Est-il:

  1. la capacité de l'ALU?
  2. la taille du bus de données?
  3. la taille du bus d'adresse?
  4. le «plus petit dénominateur commun» de ce qui précède?
  5. ou un autre facteur que je ne connais pas encore?

Répondre

5

Généralement, la taille de bit d'un processeur est la taille de ses registres à usage général. cela correspond souvent à la taille du bus mémoire et éventuellement du bus d'adresse, mais pas nécessairement. Par exemple, Intel a vendu une version de la puce 386 appelée 386SX (http://en.wikipedia.org/wiki/Intel_80386#The_i386SX_variant) qui était en interne un 386 avec des registres 32 bits, mais qui ne dispose que d'un bus de données de 16 bits. Je pense que la plupart des gens considèrent la puce comme un processeur 32 bits au lieu d'un processeur 16 bits.

1

Généralement, cela fait référence à la quantité de mémoire (2^n) octets qui est adressable par le CPU. Habituellement, c'est la même chose que le bus de données, mais le matériel peut effectuer plusieurs accès pour récupérer ce montant, ce qui n'est pas garanti à 100%. Parfois, cela correspond également à la taille du registre CPU, mais il peut aussi être différent.

+0

Huh? Le PC IBM original utilisait un 8088 avec 20 broches d'adresse pouvant traiter 2^20 octets (environ 1 mégaoctet). Bien qu'il y ait eu une discussion sur la question de savoir s'il s'agissait d'un «8 bits» ou d'un «16 bits», je ne me souviens pas que quelqu'un ait jamais dit que le 8088 était un processeur de 20 bits. –

3

Je pense que je vais essayer. Traditionnellement, je pense que "taille" signifie la largeur (nombre de bits) dans l'ensemble de registres. Sur "mon" premier ordinateur le DEC PDP-8/E le seul registre disponible - l'accumulateur - était de 12 bits de large et c'était un ordinateur 12 bits, sur le PDP-11 les registres avaient 16 bits de large et c'était 16 ordinateur à débit IBM 370 et VAX avaient des registres 32 bits et étaient des ordinateurs 32 bits.

À partir du 80386, les choses sont devenues difficiles. Selon le mode de fonctionnement, il pourrait se présenter comme un mode réel 8086, un mode protégé (PM) 80286 ou un PM 80386. Avec les processeurs 64 bits utilisant AMD64 ou x86-64, vous avez tout ce qui précède et aussi 64 bits PM Alors qu'est-ce qu'ils sont? Cela devrait dépendre du mode de fonctionnement de base du système d'exploitation qui fonctionne dessus. Windows NT 2000, Windows XP-32, Vista-32 7-32 rendent le processeur 32 bits. OS avec "64" dans eux font le processeur 64 bits.

En ce qui concerne les bus et autres. Il y a deux bus physiques sur les processeurs x86 + adresse et deux bus logiques + i/o. Des broches spéciales sur le processeur déterminent si l'opération est en mémoire ou en E/S, en lecture ou en écriture et ainsi de suite. Sur le 8086/8088 les bus de données et d'adresse partageaient les mêmes broches A0-A15 avec D0-D15/A0-A7 avec D0-D7 avec les bits A16-A19/A8-A19 étant strictement adresse. Sur le 80286, ils étaient séparés, pas sûr de la 80186/80188. Sur le 80286 il y avait 24 adresses et 16 lignes de données. Sur les 80386 et 80486, il y en avait 32 chacun pour l'adresse et les données. Le 80386SX avait la même configuration externe que le 80286.

Après cela, les bus se compliquent. Les processeurs s'exécutent tellement rapidement en interne qu'ils attendent plus ou moins constamment leurs caches qui, à leur tour, attendent plus ou moins constamment de la RAM externe. Pour satisfaire la faim insatiable des caches pour les données, la mémoire externe a commencé à les délivrer en morceaux de 64 bits, en commençant par les Pentium et Pentium MMX qui sont tous deux des processeurs 32 bits avec 32 lignes d'adresses mais 64 lignes de données.

Avec les processeurs ultérieurs, le nombre de lignes d'adresse a été augmenté à 36 permettant une mémoire externe adressable totale de 64 Go. Les processeurs sont restés 32 bits en interne. Sur les processeurs multi-coeurs, l'appétit pour les données est encore plus prononcé, de sorte qu'ils peuvent avoir plusieurs jeux d'adresses et de bus de données pour faciliter l'intégration des données dans le processeur. Les processeurs de bureau peuvent avoir deux ou trois et les processeurs de serveur trois à quatre. Je ne suis pas sûr mais je crois que certains sont passés à des bus de données de 128 bits.

Pour les processeurs 64 bits modernes, il n'est pas possible d'avoir également 64 lignes d'adresse, car cela permettrait une mémoire allant jusqu'à 16 milliards de gigaoctets, ce qui n'est pas possible aujourd'hui. Certaines cartes mères autorisent 128 Go, ce qui signifie que le processeur a besoin d'au moins 37 lignes d'adresse. Comme vous pouvez le voir, les bus d'adresses et de données ne sont plus vraiment utilisables pour déterminer la taille du processeur. Ils ne l'ont pas fait pour les 25 dernières années (80386 modes).

En C le type int est censé être équivalent à la largeur du registre. Sur AMD64, ce n'est pas parce qu'il n'y a pas vraiment besoin de 64 bits: les bits de 32 bits le font dans la plupart des cas. La largeur d'un pointeur en C sur AMD64 est cependant de 64 bits.