Wortgröße und Datenbus

8

Ich bin verwirrt über die Definition der Wortgröße . Ich habe gelesen, dass die Wortgröße eines Prozessors seine Datenbusbreite ist. Wie ein 8-Bit-Prozessor hat einen 8 Bit breiten Datenbus. Ich habe kürzlich gelesen, dass die maximale Größe des virtuellen Adressraums durch die Wortgröße bestimmt wird, d. H. Wenn die Wortgröße n Bits beträgt, beträgt der maximale virtuelle Adressraum 2 ^ n -1. Aber ich dachte immer, dass der maximale virtuelle Adressraum durch die Adressbusbreite bestimmt wird, d. H. Ein n-Bit-breiter Adressbus kann maximal 2 ^ n Bytes adressieren. Also, Was ist wahr?

Auch bezieht sich dies auf Zeiger , da ein n-Bit-Datenbus nur eine n-Bit-Adresse übertragen kann. So können maximal 2 ^ n Bytes über Zeiger erreicht werden.

    
avinash 13.07.2012, 14:26
quelle

2 Antworten

8

Ich werde zuerst sagen, dass ein Teil Ihrer Verwirrung wahrscheinlich von der Tatsache herrührt, dass die Dinge vor ein paar Jahrzehnten einfacher waren und Ihr Verständnis von Begriffen auf diesen einfacheren Maschinen basiert.

  

Ich bin verwirrt über die Definition der Wortgröße. Ich lese, dass die Wortgröße eines Prozessors seine Datenbusbreite ist. Wie ein 8-Bit-Prozessor hat einen 8 Bit breiten Datenbus.

Definitiv nicht. Datenbus mit ist völlig unabhängig davon. Die Wortgröße (die nie wirklich ein genauer Begriff war) eines Prozessors ist am besten lose definiert als die größte natürliche Größe für die Arithmetik, die im Allgemeinen die Größe der Register in der Maschine ist. Dies ist ziemlich häufig die Breite des Datenpfads (der sich deutlich vom Datenbus unterscheidet). Der Datenpfad ist einfach die Breite der ALUs. Die Wortgröße ist oft dieselbe wie die Zeigergröße.

  

Ich habe kürzlich gelesen, dass die maximale Größe des virtuellen Adressraums durch die Wortgröße bestimmt wird, d. h. wenn die Wortgröße n Bits beträgt, ist der maximale virtuelle Adressraum 2 ^ n -1. Aber ich dachte immer, daß der maximale virtuelle Adreßraum durch die Adreßbusbreite bestimmt wird, d. H. Ein n Bit breiter Adreßbus kann maximal 2 ^ n Bytes adressieren. Also, was ist wahr?

Nein. Die Größe des virtuellen Adressraums wird einfach durch die Anzahl der Bits in der virtuellen Seitennummer der Seitentabelle (und des TLB) bestimmt. Auf aktuellen amd64-basierten Maschinen sind nur 48 Bits der virtuellen Adresse verwendbar. Die oberen 16 sind eine Vorzeichenerweiterung von Bit 47. Auf aktuellen amd64-Maschinen beträgt die physikalische Adressengröße 52 Bits. Diese physikalischen Adressbits sind diejenigen, die auf dem Bus gesendet werden. Obwohl sogar der Begriff Bus wirklich falsch ist. Fast alle Links sind Point-to-Point (DDRx DRAM ist eine Ausnahme) und verwenden ein paketiertes Format (Header + Payload) anstelle von Adressdrähten und Datenleitungen.

  

Dies bezieht sich auch auf Zeiger, da ein n-Bit-Datenbus nur eine n-Bit-Adresse führen kann. So können maximal 2 ^ n Bytes über Zeiger erreicht werden.

Viele (fast alle geraden) Maschinen, die einen separaten Adressbus haben, verwenden einen Adressbus, der schmaler ist als die Anzahl der Adressbits. Diese Bits werden einfach aufgeteilt und mit mehreren Taktzyklen über den Bus gesendet. DDRx DRAM ist ein weiteres Beispiel dafür.

    
Nathan Binkert 13.07.2012, 17:20
quelle
1
  

Die maximale Größe des virtuellen Adressraums wird durch die Wortgröße

bestimmt

Das war früher richtig, aber es wurden bestimmte Erweiterungen vorgenommen, um diese Einschränkung zu umgehen (namentlich Physical Address Extension oder PAE), die solche Dinge wie 36-Bit-Speicheradressen ermöglicht.

Abgesehen davon definiert Wikipedia ein Wort als:

  

die natürliche Dateneinheit, die von einem bestimmten Prozessordesign verwendet wird

In fast allen Fällen sind dies bei 32-Bit-Systemen 32 Bit und bei 64-Bit-Systemen 64 Bit. Sie werden immer noch häufig Referenzen auf 32-Bit-Wörter auf 64-Bit-Systemen finden (teilweise weil amd64 eine Erweiterung von Intel x86 und nicht eine Revision ist). Als Überbleibsel aus den früheren Tagen des modernen Rechnens sehen Sie häufig 32-Bit-Größen, die als DWORD- oder Doppelwort bezeichnet werden, und 64-Bit-Größen als QWORD- oder Vierfachwort.

Das ist etwas, um das die Leute die ganze Zeit kämpfen. Ich persönlich benutze die Definition der Wortgröße == Busbreite.

    
Wug 13.07.2012 14:37
quelle

Tags und Links