IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hardware Discussion :

Bus d'adresses du processeur


Sujet :

Hardware

  1. #1
    Candidat au Club
    Femme Profil pro
    administration
    Inscrit en
    juin 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : administration

    Informations forums :
    Inscription : juin 2021
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Bus d'adresses du processeur
    Bonjour,

    Quel qu'un sait comment calculer la largeur du bus d'adresses dans le cas d'un processeur qui utilise un adressage de 4 GO de mémoire avec 8 mémoire cache et des mots de mémoire de 32 bits ??

    Normalement avec 4GO, nous aurons 2 puissance 30 d'espace mémoire. Est-ce que c'est la même capacité pour le bus d'adresses?

    Merci de m'éclairer

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    14 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 14 577
    Points : 33 659
    Points
    33 659
    Par défaut
    Pour le bus d'adresse d'un CPU ,le cache et la taille de ses mots n'a pas d'importance.

    La taille de la mémoire peut être supérieure au bus d’adresse du CPU, grâce à la MMU et à l'utilisation de la pagination, système connu sous le nom de mémoire virtuelle.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Candidat au Club
    Femme Profil pro
    administration
    Inscrit en
    juin 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : administration

    Informations forums :
    Inscription : juin 2021
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Je ne sais toujours pas comment calculer la largeur de ce bus. Y a t-il une formule?

    Merci,

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    novembre 2012
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : novembre 2012
    Messages : 315
    Points : 780
    Points
    780
    Par défaut
    La largeur du bus dépend du nombre de lignes de bus physiques sur le processeur. Ça n'a pas de rapport avec la quantité de mémoire adressable compte-tenu de la possibilité de gérer la mémoire virtuelle. Exemple pour les processeurs Intel 16 bits sur wikpédia

  5. #5
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    décembre 2010
    Messages
    14 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : décembre 2010
    Messages : 14 446
    Points : 22 356
    Points
    22 356
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Les processeurs (CPU) ont maintenant des registres 64 bits, ils utilisent ces registres pour les données et les adresses. https://chamilo.grenoble-inp.fr/cour.../asm_intro.pdf

    La mémoire

    Sur l’architecture x86_64, les adresses sont codées sur 64 bits : la taille maximale de la mémoire adressable est donc 2 puissance 64 = 18446744073709551616 soit environ 18 milliards de milliards de cases mémoire.

    Il s’agit bien sûr d’une limite théorique : il n’existe pas encore de machine disposant d’autant de mémoire !

    L’architecture x86_32 supporte quant à elle des adresses allant jusqu’à 2 puissance 32 = 4294967296, c’est à dire 4 GiO : cette taille mémoire paraissait encore énorme il y a quelques années, mais c’est devenu maintenant une taille courante sur la plupart des machines grand public, et même insuffisante pour de gros serveurs de calcul.

    Le bus de données de l’architecture x86_64 est aussi sur 64 bits, mais on peut accéder à des données sur 64, 32, 16 et 8 bits : on devra donc systématiquement préciser la taille des données manipulées.

    L’architecture x86_32 fonctionne de façon similaire, avec une taille maximum de donnée de 32 bits bien sûr.

    L’architecture Intel est conçue pour des processeurs little-endian, ce qui signifie que dans un mot mémoire, les bits de poids faibles sont stockés en premier. Par exemple, si la valeur (sur 32 bits) 0x12345678 est stockée à l’adresse 0x1000, on trouve en mémoire :
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    14 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 14 577
    Points : 33 659
    Points
    33 659
    Par défaut
    @JML : la taille d'un registre (interne au CPU) ne donne pas forcément la taille d'un bus (externe au CPU). exemples les instructions SSE utilisent des registres 128 bits, le bus externe n'est pas en 128 bits.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #7
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    décembre 2010
    Messages
    14 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : décembre 2010
    Messages : 14 446
    Points : 22 356
    Points
    22 356
    Billets dans le blog
    10
    Par défaut
    Je connais très bien ce principe depuis les processeurs 16 bits où grâce à un décalage on pouvait adresser sur 20 bits pour avoir 1 Mo de RAM, avec la fameuse mémoire étendue UMA puis HMA au dessus des 640 Ko du DOS.

    Je suis un ancien programmeur en assembleur l'adressage même s'il a évolué, je connais parfaitement.

    Surtout que j'ai commencé l'informatique même avant l'Assembleur, en chargeant les registres avec des codes hexa puis avec des mnémoniques.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  8. #8
    Responsable Modération

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    septembre 2008
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : septembre 2008
    Messages : 1 067
    Points : 3 898
    Points
    3 898
    Par défaut
    Bonsoir à tous

    Ne pas confondre théorie (cours de base) et réalité.

    4Go exploités en mots de 32 bits nécessitent 1G_Adresses. Car chaque adresse référence 4 octets (= 1 mots de 32 bits).
    1G_Adresse nécessite 30 bits d'adressage car 230 <= 1Giga.

    Dans une architecture basique 32 bits, sans astuces d'adressage (pagination, etc.), il faut bien 30 bits sur le bus d'adresse...
    Les mémoires caches sont normalement transparentes pour le processeur car gérée par un circuit matériel indépendant. Cela n'influe pas cela (sauf si c'est le processeur qui s'occupe directement de cela, après il faut en savoir plus).

    Tout le reste n'est que complications. Les 32 bits nécessaires pour 4Go d'un x86 32bits est dû à la compatibilité 8 bits et la possibilité d'adressage de chaque octet séparément, mais ce n'est pas une obligation...

    Bon week-end

    Delias

  9. #9
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    14 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 14 577
    Points : 33 659
    Points
    33 659
    Par défaut
    Tout le reste n'est que complications. Les 32 bits nécessaires pour 4Go d'un x86 32bits est dû à la compatibilité 8 bits et la possibilité d'adressage de chaque octet séparément, mais ce n'est pas une obligation...
    Je ne comprend pas ce que tu veux dire par là, on parle d'adresse : si on veut 4 Go d'adresses 4G=4294967296 possibilités -> 2^32=4294967296, il faut donc bien 32 bits/32 fils (sans système de pagination) pour adresser 4G d'adresses différentes.
    Cette limite a d’ailleurs été franchie avec le PÄE apparu avec les pentium pro en ajoutant 4 fils supplémentaires sur le bus externe, montant celui-ci à 36 passant l'adressage à 64 Go (2^36). Le pentium Pro restant lui-même un processeur 32 bits, un processus ne pouvait accéder qu'à 4 Go de RAM simultané.
    Les Intel sont maintenant 64 bits au niveau bus de données et bus d'adresse.

    edit: je vois ou tu veux en venir : l'unité de l'octet : 8 bits. Si on postule une barette de 4 Go, il s'agit en fait d'une barette de 32 Gbits, mais on y accède que par octet : bloc de 8 bits.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  10. #10
    Expert éminent
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    juillet 2013
    Messages
    4 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : juillet 2013
    Messages : 4 007
    Points : 8 951
    Points
    8 951
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    il faut donc bien 32 bits/32 fils (sans système de pagination) pour adresser 4G d'adresses différentes.
    Il me semble que non c'est 64 fils pour gérer le half-duplex.
    J'ai lu que les constructeurs carte mère galéraient pour mettre 128 fils entre le processeur et la mémoire (c'est 1 petit espace)

    Et également la mémoire 64 bits est limitée à 2^48 (<- à vérifier)

    Sur la page wikipedia 64-bit computing en anglais
    The x86-64 architecture (as of 2016) allows 48 bits for virtual memory and, for any given processor, up to 52 bits for physical memory.[8][9] These limits allow memory sizes of 256 TB (256 × 10244 bytes) and 4 PB (4 × 10245 bytes), respectively. A PC cannot currently contain 4 petabytes of memory (due to the physical size of the memory chips), but AMD envisioned large servers, shared memory clusters, and other uses of physical address space that might approach this in the foreseeable future. Thus the 52-bit physical address provides ample room for expansion while not incurring the cost of implementing full 64-bit physical addresses. Similarly, the 48-bit virtual address space was designed to provide 65,536 (216) times the 32-bit limit of 4 GB (4 × 10243 bytes), allowing room for later expansion and incurring no overhead of translating full 64-bit addresses.

  11. #11
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    14 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 14 577
    Points : 33 659
    Points
    33 659
    Par défaut
    Il me semble que non c'est 64 fils pour gérer le half-duplex.
    Je pense que ça c'est un feature du chipset.

    Et également la mémoire 64 bits est limitée à 2^48 (<- à vérifier)
    Tu as raison, c'est un choix de conception pour permettre une évolution. Ils réservent 16 bits pour une éventuelle extension. Ces 16 bits sont actuellement non utilisés, limitant l'adressage à 48 bits, ce qui représente quand-même 256 To (ou 4 Péta octets avec les 52 fils, les 4 fils du PAE je pense) Le principe étant de pouvoir adresser 2^16 fenêtre de mémoires, c'est ce qu'explique ton lien. Choix d'Intel, sur d'autres type de CPU, ça sera différent.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  12. #12
    Responsable Modération

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    septembre 2008
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : septembre 2008
    Messages : 1 067
    Points : 3 898
    Points
    3 898
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    edit: je vois ou tu veux en venir : l'unité de l'octet : 8 bits. Si on postule une barette de 4 Go, il s'agit en fait d'une barette de 32 Gbits, mais on y accède que par octet : bloc de 8 bits.
    Presque. Dans une architecture libre, selon la consigne indiqué, on y accède par mots de 32 bits, chaque adresse retourne 32 bits ou 4 octets. Donc pour 4Go il ne faut que 1G adresses soit 230.

    Le fait de continuer à adresser qu'un seul octet dans l'architecture x86 est une complication non nécessaire (mais choisie pour économiser de la mémoire lors du stockage des variables de moins de 32 bits)

    Delias

  13. #13
    Expert éminent
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    3 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 3 060
    Points : 9 584
    Points
    9 584
    Par défaut
    Citation Envoyé par JML19 Voir le message
    Je connais très bien ce principe depuis les processeurs 16 bits où grâce à un décalage on pouvait adresser sur 20 bits pour avoir 1 Mo de RAM, avec la fameuse mémoire étendue UMA puis HMA au dessus des 640 Ko du DOS.
    C'est dommage de prendre toujours le x86 comme référence
    Le M68000 qui est un proc 16 bits (et un peu 32 bits) permettait d'adresser plus de 16 bits , assez facilement sans ce système de segmentation. (ces registres fait bien 32 bits).
    Le 65816 pouvait adresser 16 Mo soit pas valeur immédiate , soit via un pointeur (pointeur qui lisait l'adresse sur la RAM).
    le HuC6280 qui était un modification du 6502 (un proc 8 bits ) pouvait adresser 2 Mo , tout simplement parce qu'il avait des instructions qui permettait de changer la Memory Map (par bloc de 0x2000 ou 8ko).

    Et il doit y'avoir plein d'autre proc qui ont utilisé des astuces pour adresses plus , mais je trouve celui du x86 le plus mal foutu sur ce point

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/05/2017, 00h17
  2. [Bus communication] Bus I2C multi composant même adresse
    Par Sh0rtY dans le forum Embarqué
    Réponses: 8
    Dernier message: 16/01/2016, 21h45
  3. Les adresse sur le Bus i2c-0
    Par rufa11 dans le forum Matériel
    Réponses: 0
    Dernier message: 04/05/2014, 00h58
  4. Capacité adressable de processeur
    Par Tonio12 dans le forum Composants
    Réponses: 7
    Dernier message: 19/02/2007, 18h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo