Frage

Ich bin neu im Programmieren und habe keinen Informatik-Hintergrund (kein formalen Abschluss).Ich programmiere Winforms hauptsächlich mit C#.

Ich bin verwirrt über 32-Bit und 64-Bit ...Ich meine, ich habe von 32-Bit-Betriebssystemen und 32-Bit-Prozessoren gehört und davon, auf welcher Grundlage ein Programm über maximalen Speicher verfügen kann.Wie es die Geschwindigkeit eines Programms beeinflusst.Es gibt noch viele weitere Fragen, die mir immer wieder in den Sinn kommen.

Ich habe versucht, einige Bücher über Computerorganisation und -architektur durchzugehen.Aber entweder bin ich zu dumm, um zu verstehen, was da steht, oder die Autoren gehen davon aus, dass der Leser etwas Informatik-Hintergrund hat.

Kann mir jemand diese Dinge in einem einfachen Englisch erklären oder mich auf etwas hinweisen, das das tut?

BEARBEITEN: Ich habe Dinge gelesen wie: Im 32-Bit-Modus können sie auf bis zu 4 GB Speicher zugreifen;Im 64-Bit-Modus können sie auf viel, viel mehr zugreifen ... Ich möchte wissen, WARUM all das so ist.

KOPFGELD:Die Antworten unten sind wirklich gut ... besonders eine von Martin.Aber ich schaue mir eine ausführliche Erklärung an, aber in einfachem, einfachem Englisch.

War es hilfreich?

Lösung

Es kommt wirklich alles auf die Kabel an.

In digitalen Schaltkreisen können nur Nullen und Einsen (normalerweise Niederspannung und Hochspannung) von einem Element (CPU) zu einem anderen Element (Speicherchip) übertragen werden.Wenn ich nur 1 Kabel habe, kann ich pro Taktzyklus nur entweder eine 1 oder eine 0 über das Kabel senden.Das bedeutet, dass ich nur 2 Bytes adressieren kann (unter der Annahme einer Byte-Adressierung und dass ganze Adressen aus Geschwindigkeitsgründen in nur einem Zyklus übertragen werden!).

Wenn ich 2 Drähte habe, kann ich 4 Bytes adressieren.Weil ich senden kann:(0, 0), (0, 1), (1, 0) oder (1, 1) über die beiden Drähte.Im Grunde ist es also 2 hoch Anzahl der Drähte.

Wenn ich also 32 Drähte habe, kann ich 4 GB adressieren, und wenn ich 64 Drähte habe, kann ich viel mehr adressieren.

Es gibt andere Tricks, die Ingenieure anwenden können, um einen größeren Adressraum zu adressieren, als die Leitungen zulassen.Z.B.Aufteilen der Adresse in zwei Teile und Senden einer Hälfte im ersten Zyklus und der zweiten Hälfte im nächsten Zyklus.Das bedeutet aber, dass Ihre Speicherschnittstelle nur halb so schnell ist.

Ich habe meine Kommentare hierher bearbeitet (unbearbeitet) ;) Und es zu einem Wiki machen, falls jemand auch etwas Interessantes hinzuzufügen hat.

Wie bereits in anderen Kommentaren erwähnt, ist 2^32 (2 hoch 32) = 4294967296, also 4 GB.Und 2^64 ist 18.446.744.073.709.551.616.Um näher darauf einzugehen (und das lesen Sie wahrscheinlich bei Hennesey & Patterson): Prozessoren enthalten Register, die sie als „Arbeitsplatz“ zum Speichern der Ergebnisse ihrer Berechnungen verwenden.Eine CPU kann nur einfache Arithmetik ausführen und Daten verschieben.Natürlich ist die Größe dieser Register in Bits genauso breit wie die „#-Bits“ der Architektur, sodass die Register einer 32-Bit-CPU 32 Bit breit sind und die Register einer 64-Bit-CPU 64 Bit breit.

Ausnahmen hiervon gibt es, wenn es um Gleitkommabefehle (zur Handhabung doppelter Genauigkeit) oder andere SIMD-Befehle (Einzelbefehle, mehrere Datenbefehle) geht.Die CPU lädt und speichert die Daten in den Hauptspeicher (RAM).Da die CPU diese Register auch zur Berechnung von Speicheradressen (physisch und virtuell) verwendet, entspricht die Speichermenge, die sie adressieren kann, auch der Breite ihrer Register.Es gibt einige CPUs, die die Adressberechnung mit speziellen erweiterten Registern durchführen, aber diejenigen, die ich „nachträglich“ nennen würde, wurden hinzugefügt, nachdem die Ingenieure erkannt hatten, dass sie sie brauchten.

Im Moment ist 64-Bit ziemlich viel, um realen physischen Speicher anzusprechen.Bei den meisten 64-Bit-CPUs werden aus praktischen Gründen einige Kabel weggelassen, wenn es darum geht, die CPU mit dem Speicher zu verbinden.Es macht keinen Sinn, wertvollen Platz auf dem Motherboard zu verbrauchen, um Kabel zu verlegen, die immer Nullen haben.Ganz zu schweigen davon, dass für die maximale RAM-Menge bei der heutigen DIMM-Dichte 4 Milliarden Dimm-Steckplätze erforderlich wären :)

Abgesehen von der größeren Speicherkapazität bieten 64-Bit-Prozessoren eine schnellere Berechnung für ganze Zahlen größer als 2^32.Bisher mussten Programmierer (oder Compiler, die auch von Programmierern programmiert werden ;) ein 64-Bit-Register simulieren, indem sie zwei 32-Bit-Register belegten und etwaige Überlaufsituationen behandelten.Auf 64-Bit-CPUs würde dies jedoch von der CPU selbst erledigt.

Der Nachteil besteht darin, dass eine 64-Bit-CPU (bei gleichen Bedingungen) mehr Strom verbrauchen würde als eine 32-Bit-CPU, nur weil (ungefähr) doppelt so viel Schaltkreis benötigt wird.In der Realität werden Sie jedoch nie einen gleichwertigen Vergleich erhalten, da neuere CPUs in neueren Siliziumprozessen hergestellt werden, die weniger Stromverluste aufweisen, es Ihnen ermöglichen, mehr Schaltkreise in der gleichen Chipgröße unterzubringen usw.Aber 64-Bit-Architekturen würden doppelt so viel Speicher verbrauchen.Was einst als „hässlich“ an der variablen Befehlslänge von x86 galt, ist heute tatsächlich ein Vorteil gegenüber Architekturen, die eine feste Befehlsgröße verwenden.

Andere Tipps

Lassen Sie uns versuchen, diese Frage zu beantworten, indem sie in suchen Menschen im Vergleich zu Computer ; Dies wird hoffentlich etwas Licht auf die Dinge für euch vergossen:

Dinge im Auge zu behalten

  • Wie erstaunlich, wie sie sind, Computer sind sehr, sehr dumm.

Speicher

  • Die Menschen haben Speicher (mit Ausnahme, wohl, von Männern und Politikern.) Menschen für eine spätere Verwendung in ihren Speicherinformationen speichern.
    • Mit einer Frage (zum Beispiel: „Was ist deine Telefonnummer?“) Eine Person in der Lage ist, Informationen abzurufen, eine Antwort zu geben (zum Beispiel „867-5309“)
  • Alle modernen Computer verfügen über Speicher, und speichern Informationen in ihrem Speicher für eine spätere Verwendung.
    • Da Computer stumm sind, können sie nur eine ganz konkrete Frage Informationen abzurufen gefragt werden: „Was ist der Wert bei X in Erinnerung“
      • In der Frage über, X ist bekannt als Adresse , die auch ein Zeiger genannt werden.

Hier haben wir also einen fundamentalen Unterschied zwischen Menschen und Computern: Um Informationen aus dem Speicher zu erinnern, müssen Computer eine Adresse gegeben werden, während die Menschen nicht. (Na ja in gewissem Sinne könnte man sagen: „Ihre Telefonnummer“ ist eine Adresse, weil es unterschiedliche Informationen gibt als „Ihren Geburtstag“, aber das ist ein anderes Gespräch).

Zahlen

  • Die Leute benutzen die Dezimalsystem . Das heißt, für jede Ziffer in einer Dezimalzahl kann die Ziffer Eins von 0, 1, 2, 3, 4, 5, 6, 7, 8 oder 9. Die Menschen haben zehn Optionen pro Ziffer .
  • Alle modernen Computer verwenden Sie die Binärzahlensystem . Das heißt, für jede Ziffer in einer binären Zahl, kann die Ziffer nur entweder 1 oder 0 Computer haben zwei Optionen pro Ziffer.
    • Im Computer-Jargon, eine einzelne Binärziffer ist ein Bit , die Abkürzung für b inary dig genannt es .

Adressen

  • Jede Adresse in einem Computer ist eine binäre Zahl.
  • Jede Adresse in einem Computer verfügt über eine maximale Anzahl von Stellen (oder Bits), die es haben kann. Dies ist vor allem, weil die Hardware des Computers ist unflexibel (auch als bekannt feste ) und muss im voraus wissen, dass eine Adresse nur so lange sein wird.
  • Begriffe wie „32-Bit“ und „64-Bit“ sprechen über die längste Adresse, für die ein Computer Informationen speichern und abrufen kann. In Englisch „32-Bit“ in diesem Sinne bedeutet „Dieser Computer über seine Speicherbefehle Adressen nicht mehr als 32 binäre Ziffern lang haben erwartet.“
    • Sie können sich vorstellen, ein Computer, desto mehr Bits desto länger kann die Adresse umgehen nachschlagen kann und damit die mehr Speicher kann es auf einmal verwalten.

32-Bit v. 64-Bit-Adressierung

  • Für eine unflexible (fest) Anzahl der Stellen (beispielsweise 2 Dezimalstellen) die möglichen Zahlen, die Sie wird vertreten können die Bereich (zum Beispiel 00 bis 99 oder 100 eindeutige Nummern) genannt. Das Hinzufügen eines zusätzlichen Nachkommastelle multipliziert den Bereich von 10 (beispielsweise 3 Dezimalstellen -> 000 bis 999 oder 1000 eindeutige Nummern).
  • Dies gilt für Computer auch, aber weil sie binary Maschinen anstelle von dezimal Maschinen, Hinzufügen einer zusätzlichen binary digit ( Bit ) nur erhöht die Reichweite um einen Faktor von 2 .

    Addressing Bereiche:
    • 1-Bit-Adressierung können Sie über zwei eindeutige Adressen sprechen (0 und 1).
    • 2-Bit-Adressierung können Sie über 4 eindeutige Adressen (00, 01, 10 und 11) zu sprechen.
    • 3-Bit-Adressierung können Sie etwa 8 eindeutige Adressen (000, 001, 010, 011, 100, 101, 110 und 111).
    • sprechen
    • und nach langer Zeit ... 32-Bit-Adressierung können Sie über 4.294.967.296 eindeutige Adressen sprechen.
    • und nach einer noch länger , während ... 64-Bit-Adressierung können Sie sprechen über 18.446.744.073.709.551.616 eindeutige Adressen. Das ist ein LOT Speicher!

Implikationen

Was all dies bedeutet, dass ein 64-Bit-Computer speichern und abrufen viel mehr Informationen als ein 32-Bit-Computer. Für die meisten Benutzer dies wirklich bedeutet nicht, eine ganze Menge, weil Dinge wie Surfen im Internet, E-Mails checken und Solitaire spielen alle innerhalb der Grenzen bequem arbeiten von 32-Bit-Adressierung. Wo die 64-Bit-Leistung wird wirklich glänzen ist in Bereichen, in denen Sie viele Daten der Computer muss Churn durch haben. Digitale Signalverarbeitung, Gigapixel Fotografie und erweitern 3D-Spiele sind alle Bereiche, in denen ihre großen Mengen an Datenverarbeitung einen großen Schub in einer 64-Bit-Umgebung sehen würden.

Viele moderne Prozessoren können in zwei Modi betrieben werden: 32-Bit-Modus und 64-Bit-Modus. In 32-Bit-Modus, können sie bis zu 4 GB Speicher zugreifen; in 64-Bit-Modus, können sie viel viel mehr zugreifen. Ältere Prozessoren unterstützen nur 32-Bit-Modus.

Betriebssysteme wählten die Prozessoren in einem dieser Modi zu verwenden: bei der Installation, eine Auswahl getroffen wird, ob der Prozessor in 32-Bit-Modus arbeiten oder in 64-Bit-Modus. Obwohl der Prozessor weiterhin in 64-Bit-Modus arbeiten, von 32-Bit auf 64-Bit-Schalt würde eine erneute Installation des Systems erforderlich. Ältere Systeme unterstützen nur 32-Bit-Modus.

Anwendungen können auch schriftlich (oder kompilieren für) 32-Bit- oder 64-Bit-Modus. Kompatibilität hier ist komplizierter, als der Prozessor, wenn in 64-Bit-Modus ausgeführt werden, kann noch unterstützen 32-Bit-Anwendungen als Emulationsfunktion. So auf einem 64-Bit-Betriebssystem, können Sie entweder 32-Bit-Anwendungen oder 64-Bit-Anwendungen ausgeführt werden. Auf einem 32-Bit-Betriebssystem können Sie nur 32-Bit-Anwendungen ausgeführt werden.

Auch hier ist die Größe chosing in erster Linie eine Frage der Menge des Hauptspeichers Sie zugreifen möchten. 32-Bit-Anwendungen werden oft bis zu 2 GB beschränkt auf vielen Systemen, da das System einige Adressraum für sich selbst benötigt.

Aus Performance (Geschwindigkeit) Sicht gibt es keinen signifikanten Unterschied. 64-Bit-Anwendungen können etwas langsamer sein, weil sie 64-Bit-Zeiger verwenden, also müssen sie mehr Speicher für eine gegebene Operation zugreift. Zur gleichen Zeit können sie auch etwas schneller sein, da sie 64-Bit-Integer-Operationen, wie eine Anweisung durchführen können, während der 32-Bit-Prozessoren sie mit mehreren Befehlen emulieren müssen. Allerdings sind diese 64-Bit-Integer-Operationen ziemlich ungewöhnlich.

Man kann auch fragen, was die Kosten sind eine 32-Bit-Anwendung auf einem 64-Bit-Prozessor: auf AMD64 und Intel64 Prozessoren, dieser Emulationsmodus ist vor allem in der Hardware, so gibt es keinen wirklichen Leistungsverlust über die 32 laufen -Bit-Anwendung nativ. Dies unterscheidet sich deutlich auf Itanium, wo 32-bit (x86) Anwendungen sehr schlecht nachgebildet werden.

Lassen Sie mich Ihnen sagen, die Geschichte von Binville, einer kleinen Stadt in der Mitte von Nirgendwo. Binville hatte einen Weg zu ihm führen. Jeder Mensch kommt entweder an oder verlassen Binville auf dieser Straße fahren musste. Aber wie Sie sich der Stadt näherten, gab es eine Gabel. Sie könnten entweder links oder rechts gehen gehen.

In der Tat hatte jede Straße eine Gabel in ihr, mit Ausnahme der Straßen zu den Häusern selbst führen. Diese Straßen einfach im Haus beendet. Keine der Straßen hatten Namen; sie haben keine Namen dank eines ausgeklügelten Adressierungsschema von der Binville Planungskommission erstellt müssen. Hier ist eine Karte von Binville, zeigt die Straßen und die Häuser:

              ------- []  00
             /
       ------
      /      \
     /        ------- []  01
-----
     \        ------- []  10
      \      /
       ------
             \
              ------- []  11

Wie Sie sehen können, hat jedes Haus eine zweistellige Adresse. Diese Adresse allein reicht aus, um a) eindeutig jedes Haus zu identifizieren (es gibt keine Wiederholungen) und b) Ihnen sagen, wie man dorthin kommt. Es ist leicht, in der Stadt zu bekommen, sehen Sie. Jede Gabel ist mit einer Null oder Eins markiert, das die Planungskommission der Binville Überschneidung Tracer nennt, oder Bit für kurz. Wie Sie die erste Gabel nähern, sehen Sie sich das erste Bit der Adresse. Wenn es eine Null ist, geht links; wenn es eine eine ist, gehen Sie nach rechts. Schauen Sie sich die zweite Stelle, wenn Sie auf die zweite Gabel zu bekommen, gehen nach links oder rechts als angemessen.

Angenommen, Sie haben Ihren Freund besuchen wollen, die in Binville lebt. Sie sagt, sie wohnt im Haus 10. Wenn Sie Binville erste Gabel zu bekommen, gehen Sie nach rechts (1). Dann an der zweiten Gabel, gehen Sie nach links (0). Du bist da!

Binville existierte wie dies seit einigen Jahren aber Wort begann um über seine idyllische Lage, große Parkanlage und großzügige Gesundheitsversorgung zu erhalten. (Nach allem, wenn Sie müssen nicht Geld auf Straßenschildern zu verbringen, können Sie es besser Dinge verwenden auf.) Aber es war ein Problem. Mit nur zwei Bits wurde das Adressierungsschema auf vier Häuser beschränkt!

So ist die Planungskommission steckte die Köpfe zusammen und kam mit einem Plan: sie ein wenig zu jeder Adresse hinzufügen würden, wodurch die Anzahl von Häusern zu verdoppeln. Um den Plan umzusetzen, würden sie eine neue Gabel am Rande der Stadt bauen und jeder würde neue Adressen bekommen. Hier ist die neue Karte, die neue Gabel führt in der Stadt und den neuen Teil von Binville zeigt:

                     ------- []  000
                    /
              ------
             /      \
            /        ------- []  001
       -----                            Old Binville
      /     \        ------- []  010
     /       \      /
    /         ------
   /                \
  /                  ------- []  011
--
  \                  -------     100
   \                /
    \         ------
     \       /      \
      \     /        ------- []  101
       -----                            New Binville (some homes not built yet)
            \        -------     110
             \      /
              ------
                    \
                     -------     111

Haben Sie bemerkt, dass jeder in der ursprünglichen Teil Binville einfach eine Null auf der Vorderseite ihrer Adresse hinzugefügt? Das neue Bit repräsentiert die neue Kreuzung, die gebaut wurde. Wenn die Anzahl der Bits um eins erhöht wird, verdoppelt sich die Anzahl der Adressen. Die Bürger wussten immer die maximale Größe der Stadt: alles, was sie hatten, um den Wert von zwei hoch der Anzahl der Bits erhöht zu tun war zu berechnen. Mit drei Bits, könnten sie haben 2 3 = 8 Häuser.

Einige Jahre vergingen und Binville wieder einmal war brechend voll. Immer mehr Menschen wollten sie bewegen, so wurde ein weiteres Bit (zusammen mit dem erforderlichen Schnitt) zugegeben, wobei die Größe der Stadt zu sechzehn Häusern zu verdoppeln. Dann noch ein Stück, und ein anderer, und ein anderer ... Binville Adressen Jahre waren bald mit sechzehn Bits, in der Lage zu 2 zur Aufnahme von bis 16 (16384) Häuser, aber es war nicht genug. Die Leute kamen und kommen!

So ist die Planungskommission beschlossen, das Problem sofort zu lösen und für alle: sie würden den ganzen Weg bis zweiunddreißig Bits springen. Bei ausreichenden Adressen für mehr als vier Milliarden Häuser (2 32 ), sicher, das wäre genug!

Und es war ... für etwa 25 Jahre, wenn Binville nicht mehr aus dem Nichts eine kleine Stadt in der Mitte. Es war jetzt eine große Metropole. In der Tat, es war immer Milliarden von Einwohnern mit so groß wie eine ganzen Nation zu sein. Aber die Parks waren immer noch schön und alle hatten große Gesundheitsversorgung, so dass die Bevölkerung wurde immer größer.

mit der ständig wachsenden Bevölkerung konfrontiert, sobald die Planungskommission legte wieder ihre Köpfe zusammen und eine weitere Ausdehnung der Stadt vorgeschlagen. Dieses Mal würde sie 64 Bits verwenden. Wissen Sie, wie viele Häuser jetzt innerhalb der Binville Stadtgrenzen passen könnte? Das ist richtig: 18, 446.744.073.709.551.616. Diese Zahl ist so groß, könnten wir etwa zwei Milliarden Earths bevölkern und jeder hat seine eigene Adresse geben.

64 Bit verwenden war kein Allheilmittel für alle ihre Bewältigung von Problemen. Die Adressen nehmen doppelt so viel Platz zu schreiben, wie die alten 32-Bit-Adressen haben. Schlimmer noch, hatten einige Bürger noch nicht ihre Adressen aktualisiert, um das neue 64-Bit-Format zu verwenden, so wurden sie in einen abgeschottet Teil der Stadt speziell für diejenigen, die noch unter Verwendung von 32-Bit-Adressen reserviert gezwungen. Aber das war in Ordnung: die Menschen mit 32 Bits hatten Zugang zu mehr als genug von der Stadt ihren Bedürfnissen gerecht zu werden. Sie haben nicht das Bedürfnis verspüren, nur noch zu ändern.

Werden 64 Bit ausreichen? Wer weiß, zu diesem Zeitpunkt, aber die Bürger von Binville warten auf die Ankündigung von 128-Bit-Adressen ...

Martin Antwort ist meist richtig und detailliert.

Ich dachte, ich würde nur erwähnen, dass alle Speichergrenzen pro-Anwendung virtuelle Speicher Grenzen, keine Grenzen für den tatsächlichen physischen Speicher in dem Computer ein. In der Tat erfordert es ist möglich, mit mehr als 4 GB Speicher in einzelnen Anwendung auch in 32-Bit-Systemen zu arbeiten, ist es nur mehr Arbeit, da nicht alle zugänglich mit Zeigern auf einmal sein kann. Link-Text

Ein andere Sache, die nicht erwähnt ist, dass der Unterschied zwischen dem herkömmlichen x86-Prozessor und x86-64 nicht nur in der Zeigergröße ist, sondern auch in dem Befehlssatz. Während die Zeiger sind größer und mehr Speicher verbrauchen (8 Bytes statt 4) durch größeren Registersatz ausgeglichen wird (15 Universalregister statt 8, iirc), so kann die Leistung tatsächlich besser für Code, die Rechenarbeit tut.

Martin Antwort ist ausgezeichnet. Nur um ein paar zusätzliche Punkte hinzufügen ... da Sie .NET erwähnen, sollten Sie beachten, dass die CLI / JIT einige Unterschiede zwischen x86 und x64 hat, mit verschiedenen Optimierungen (Tail-Call, zum Beispiel), und einige subtile anderes Verhalten fortschrittlicher Dinge wie volatile. Dies kann alle haben einen Einfluss auf Ihren Code.

Darüber hinaus sind nicht alle Code funktioniert auf x64. Alles, was DirectX oder bestimmte COM-Funktionen können kämpfen verwendet. Nicht wirklich ein Leistung Feature, aber wichtig zu wissen.

(I entfernt „DirectX“ - ich Müll dort reden könnte ... aber einfach: Sie müssen, dass alles, was Sie hängen prüfen, von stabil auf der Zielplattform)

Denken Sie an einem allgemein zugänglichen Computerspeicher als eine massive Bingo-Karte mit Milliarden von Quadraten. jedes einzelnes Quadrat auf der Platine zu lösen gibt es ein Schema, jede Zeile und Spalte zu etikettieren B-5, I-12, O-52..etc.

Wenn es genügend Plätze auf der Karte sind schließlich Sie aus Buchstaben laufen, so dass Sie brauchen, um mehr Buchstaben Wiederverwendung und größere Zahlen zu schreiben, um weiterhin in der Lage sein, eindeutig jedes Quadrats Adresse.

Bevor Sie es der Ansager wissen, speienden annoyingly große Zahlen und Buchstabenkombinationen, damit Sie wissen, welcher Platz auf 10 Milliarden quadratische Karte zu markieren. BAZC500000, IAAA12000000, OAAAAAA523111221

Die Bitzahl des Computers legt seine Grenze der Komplexität der Buchstaben und Zahlen einen bestimmten Platz zu adressieren.

32 Bits bedeuten, wenn die Karte jeden größer als 2 ^ 32 Quadrate der Computer nicht genug, um Drähte und Transisters es muss eindeutig physikalisch irgendein spezifische quadratischen Wert lesen gewünschte Adresse zu ermöglichen, oder einen neuen Wert zu dem Write Speicherplatz.

64-Bit-Computer einzeln können ein massives 2 ^ 64 Felder Adresse .. aber so zu tun, jeder Platz viel mehr Buchstaben und Zahlen benötigt, um sicherzustellen, jeder Platz seine eigene einzigartige Adresse hat. Aus diesem Grunde ist 64-Bit-Computer mehr Speicher benötigen.

Weitere typische Beispiele für die Adressierung Grenzen sind lokale Telefonnummern. Sie sind ususally 7-stellig 111-2222 oder neu formatiert als Nummer 1.112.222 .. was passiert, wenn es mehr als 9.999.999 Menschen, die ihre eigenen ende Telelphone Zahlen wollen? Sie Vorwahlen hinzufügen und Ländercodes und Ihre Telefonnummer geht von 7 Ziffern 10 bis 11 mehr Platz wegnimmt.

Wenn Sie mit dem bevorstehenden IPv4 Mangel vertraut sind es das gleiche Problem .. IPv4-Adressen sind 32-Bit dh es gibt nur 2 ^ 32 (ca. 4 Mrd. Euro) eindeutige IP-Adressen möglich, und es gibt viel mehr Menschen als das heute noch am Leben .

Es gibt Overhead in allen Schemata I erwähnt (Computer, Telefonnummern, IPv4-Adressen), wo bestimmte Teile für organisatorische Zwecke reserviert sind, so dass die nutzbare Fläche viel kleiner ist.

Das Leistungsversprechen für die 64-Bit-Welt ist, dass statt 4 Byte zu einem Zeitpunkt des Sendens (ABCD) ein 64-Bit-Computer 8 Bytes zu einer Zeit senden können (ABCDEFGH), so wird das Alphabet zwischen verschiedenen Speicherbereichen übertragen up Computer zu doppelt so schnell wie ein 32-Bit. Es ist auch für einige Anwendungen profitieren, die schneller nur ausgeführt werden, wenn sie mehr Speicher haben, können sie verwendet werden.

In der realen Welt 64-Bit-Desktop-Prozessoren von Intel et al sind nicht wirklich echte 64-Bit-Prozessoren und sind immer noch beschränkt auf 32-Bits für verschiedene Arten von Operationen so in der realen Welt die Leistung zwischen 32-Bit- und 64 -Bit-Anwendungen sind marginal. 64-Bit-Modus gibt Ihnen mehr Hardware-Register, mit denen zu arbeiten ist die Leistung zu verbessern, aber mehr Speicher Adressieren auf einem „fake“ 64-Bit-Prozessor kann auch in einigen Bereichen verletzt Leistung so seine ususally einer Wäsche. In Zukunft werden wir mehr Performance-Verbesserungen sehen werden, wenn Desktop-Prozessoren vollständig 64-Bit werden.

Ich glaube nicht, dass ich viel von dem Wort ‚Register‘ in den vorangegangenen Antworten gesehen habe. Ein digitaler Computer ist ein Bündel von Registern, mit Logik für Rechen- und Speicher zum Speichern von Daten und Programmen.

Aber zuerst ... digitale Computer verwenden, um eine binäre Darstellung von Zahlen, da die binären Ziffern ( ‚Bits‘) 0 und 1 leicht durch die beiden Staaten vertreten (on / off) einen Schalters. Frühe Computer elektromechanische Schalter verwendet wird; moderne Computer verwenden Transistoren, weil sie kleiner und schneller. Viel kleine und viel schneller.

Innerhalb der CPU sind die Schalter zusammen gruppiert in den Registern einer endlichen Länge und Operationen werden in der Regel auf ganze Registern durchgeführt: Zum Beispiel hinzufügen, um dieses Register zu, dass, und so weiter. Wie man erwarten würde, ein 32-Bit-CPU-Register 32 Bit lang. Ich bin Vereinfachung hier, aber mit mir tragen.

Es ist sinnvoll, den Computer-Speicher als eine Reihe von ‚Stellen‘ zu organisieren, die jeweils die gleiche Anzahl von Bits als ein CPU-Register halten: zum Beispiel, laden Sie dieses Register von dieser Speicherstelle. Eigentlich, wenn wir von Speicher denken als Bytes , das ist nur eine bequeme Bruchteil eines Registers und wir migh ein Register aus einer Reihe von Speicherplatz (1, 2, 4, 8) laden.

Als Transistoren kleiner wird, zusätzliche Logik für komplexere Arithmetik in dem begrenzten Raum eines Computerchips implementiert werden. CPU Immobilien sind immer mit einem Aufschlag.

Aber mit Verbesserungen in der Chipfertigung, können mehr Transistoren zuverlässig auf nur geringfügig größer Chips hergestellt werden. Register können auch länger sein und die Wege zwischen ihnen breiter sein.

Wenn die Register, die die Adressen der Speicherplätze halten länger sind, adressieren sie größere Speicher und Daten können in größeren Einheiten manipuliert werden. In Kombination mit der komplexeren Arithmetik-Logik, die Dinge zu erledigen schneller.

Und ist nicht das, was wir sind alle nach?

zu erklären, warum 32-Bit-Modus nur 4 GB RAM zugreifen kann:

Maximale zugängliche Speicherplatz = 2 n n Bytes, wobei die Wortlänge der Architektur ist. So in einer 32-Bit-Architektur, maximal zugängliche Speicherplatz 2 32 = 4294967296 = 4 GB RAM.

64-Bit-Architektur wäre in der Lage zu 2 zugreifen 64 = vielen Speicher.

habe gerade bemerkt Tchens Kommentare über diese gehen. Wie auch immer, ohne CS Hintergrund, ja Computer Organisation und Architektur Bücher schwierig sein werden, bestenfalls zu verstehen.

  • Der Prozessor verwendet Basis-2 zum Speichern von Nummern. 2 Base wurde wahrscheinlich gewählt, weil es die „einfachste“ alle Basen ist. Beispielsweise die Basis-2 Multiplikationstabelle nur 4 Zellen hat, während Basis „10“ Multiplikationstabelle eine 100-Zellen hat
  • Vor 2003 gemeinsamen PC-Prozessoren waren nur "32-Bit-fähig".
    • das bedeutet, dass der Prozessor des nativen numerische Operationen für 32-Bit-Zahlen waren.
    • Sie können immer noch numerische Operationen für größere Zahlen, aber die würden durch Programme, die von dem Prozessor ausgeführt wird durchgeführt werden, und nicht die „primitive Aktionen“ (Befehle in Maschinensprache) werden durch den Prozessor wie diejenigen unterstützt für 32 Bit-Integer (zu der Zeit)
    • 32 Bits wurden ausgewählt, weil CPU-Ingenieure gern Potenzen von 2 sind, und 16-Bit war nicht genug, um
  • Warum waren nicht 16 Bits genug? Mit 16 Bit können Sie ganze Zahlen im Bereich von 0 bis 65.535 darstellen
    • 65535 = 1111111111111111 in binary (= 2 0 2 1 2 2 ... + 2 15 = 2 16 -1)
    • 65535 ist nicht genug, weil zum Beispiel ein Krankenhaus-Management-Software mehr als 65.535 Patienten in der Lage sein muss, zählen
    • betrachten den Regel Menschen, die Größe des Speichers des Computers bei der Diskussion, wie groß seine ganzen Zahlen sein sollen. 65535 ist definitiv nicht genug. Computer haben viel mehr RAM als das, und es spielt keine Rolle, ob Sie in „Bytes“ oder Bits zählen
  • 32 Bit wurde genug für eine Weile betrachtet. 2003 eingeführten AMD den ersten 64-Bit-fähig "x86" Prozessor . Intel folgte bald.
  • Eigentlich war 16 Bit als genug, um eine lange vor .
  • Es ist gängige Praxis für viele Hardware und Software sein rückwärtskompatibel. In diesem Fall bedeutet es, die 64-Bit-CPUs fähig auch jede Software, die 32-Bit-fähig CPUs laufen können.
    • Die Abwärtskompatibilität ist für eine Business-Strategie strebt. Weitere Benutzer werden zur besseren Prozessor aktualisieren, wenn es auch alles, was die vorherigen tun kann.
    • In CPUs Abwärtskompatibilität bedeutet, dass die neuen Maßnahmen der CPU unterstützt, um zur vorherige Maschinensprache hinzugefügt werden. Zum Beispiel kann die vorherige Maschinensprache
    • „in 1111 sind reserviert für zukünftige Nutzung beginnen alle Opcodes“ eine Spezifikation wie gehabt
    • In der Theorie ist diese Art von CPU Abwärtskompatibilität wäre nicht nötig gewesen, da alle Software nur auf die neue und nicht kompatible Maschinensprache neu kompiliert worden sein könnte. Aber das ist nicht der Fall, weil die Unternehmensstrategien und politischer oder wirtschaftlicher Systeme. In einer Utopic „Open Source“ Welt, die Abwärtskompatibilität von Maschinensprachen würde wahrscheinlich kein Problem sein.
  • Die Abwärtskompatibilität von x86-64 (die gemeinsamen 64-Bit-CPUs' Maschinensprache) kommt in der Form eines ‚Kompatibilitätsmodus‘. Das bedeutet, dass jedes Programm will die Nutzung der neuen CPU-Funktionen zu machen, muss die CPU (durch das O) benachrichtigen, dass es in „64-Bit-Modus“ ausgeführt werden soll. Und dann könnte es zu großen neuen CPU 64-Bit-Funktionen verwendet werden.
  • Daher ist für ein Programm, das 64-Bit-Fähigkeiten der CPU verwenden: Die CPU, das Betriebssystem und das Programm, alle müssen „Unterstützung 64-Bit“
  • .
  • 64-Bit ist genug, um jeden Menschen auf der Welt mehr eindeutigen Nummern zu geben. Es ist wahrscheinlich groß genug für die meisten aktuellen Computer Bemühungen. Es ist wahrscheinlich unwahrscheinlich, dass zukünftige CPUs weiter auf 128 Bit verschieben. Aber wenn sie es tun, dass für alles, was auf jeden Fall genug ist, kann ich mich vorstellen, und damit ein 256-Bit-Übergang wird nicht nötig sein.

Ich hoffe, das hilft.

Es ist erwähnenswert, dass bestimmte Anwendungen (z. Multimedia-Codierung / Decodierung und Rendering) gewinnt signifikant (2x) Leistungssteigerung, wenn geschrieben vollständig 64-Bit zu verwenden.

Siehe 32-Bit im Vergleich zu 64-Bit-Benchmarks für die Ubuntu und Windows Vista

Für Nicht CS Person. 64-Bit wird für die Berechnungen besser funktionieren (alle Sorten), es wird gut auch ermöglicht es Ihnen mehr RAM haben.

Auch wenn Sie RAM (in VPS zum Beispiel oder Klein RAM dedizierten Server) beschränkt haben -. Wählen Sie 32-Bit-Dienstleistungen werden dort essen weniger RAM

Dies ist eine sehr einfache Erklärung, da alles, was oben ist recht detailliert.

32-Bit bezieht sich auf die Register. Die Register sind Orte, Daten zu speichern, und alle Programme arbeiten, indem sie diese Dinge zu manipulieren. Montage arbeitet direkt auf sie (und damit, warum die Leute sind oft aufgeregt bei der Montage zu programmieren).

32-Bit bedeutet, dass der grundlegende Satz von Registern kann ofinformation 32 Bits halten. 64-Bit-Mittel, wenig überraschend, 64 Bits von Informationen.

Warum kann diese Programme schneller machen? Da kann man größere Operationen tun schneller. Es wird nur bestimmte Arten von Programmen schneller machen, nebenbei bemerkt. Spiele, können in der Regel nehmen großen Vorteil zu optimieren pro Prozessor , die wegen ihrer Mathe-schweren Operationen (und damit der Einsatz registrieren).

Aber komisch, wie tchen erwähnt, ihre sind viele andere ‚Dinge‘, die Sie größere Operationen durchführen lassen sowieso. SSE, SSE2, etc, haben 64-Bit-Register und 128-Bit-Register, auch auf einem '32 Bit‘Systemen.

Die erhöhte Fähigkeit Speicher zu adressieren spricht direkt mit der Erhöhung der Grundregistergröße, bezogen auf (Ich stelle mir vor) Windows spezifischen Speicher-Adressierungssystem.

Ich hoffe, das hilft ein wenig. andere Plakate sind viel genauer als ich, ich bin nur sehr einfach zu erklären versuchen (es hilft, dass ich weiß sehr wenig:)

ich für diese Frage eine wunderbare Antwort, aber sie paßt nicht alle in diesem Antwortblock .... Die einfache Antwort ist, dass für Ihr Programm ein Byte aus dem Speicher zu erhalten, ist es eine Adresse benötigt. In 32-Bit-CPUs wird die Speicheradresse jedes Byte in einem 32-Bit (unsigned) Ganzzahl gespeichert, die als ein Maximalwert von 4 GB. Wenn man einen 64-Bit-Prozessor verwendet wird, wird die Speicheradresse eine 64-Bit-Ganzzahl, die Ihnen etwa 1,84467441 × 10 ^ 19 mögliche Speicheradressen gibt. Dies sollte wirklich genügen, wenn Sie in der Programmierung neu sind. Sie sollten wirklich mehr konzentrieren auf das Lernen, wie man programmiert, als die interne Arbeitsweise des Prozessors, und warum können Sie nicht mehr als 4 GB RAM auf 32-Bit-CPU zugreifen zu können.

Einfache Antwort adressierbaren Speicherbereich mit 32-Bit-Prozessoren zu erklären ist:

Hier können Sie nur 3-stellige Zahlen annehmen, erlaubt so maximale Anzahl zu konstruieren u bis gehen kann, ist 999. Zahlenbereich ist (0-999). Sie müssen nur 1000 Nummern zu verwenden.

Aber wenn u erlaubt 6-stellige Zahlen haben, dann ist die maximale Zahl, die Sie bauen können, ist 999999. Jetzt Bereich (0-999999). So, jetzt haben u 1 Million Zahlen mit Ihnen zu verwenden.

In ähnlichen mehr Bits Sie dürfen in einem Prozessor, größere Anzahl von Adressen (Zahlen in vorherigem Beispiel) haben Sie konstruieren und schließlich verwenden, um Daten zu speichern, etc ..

Alles, was einfacher ist als das wäre interessant zu lesen!

-AD.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top