wozu mehr bits



  • Wann kommt 128 Bit? 😕 🕶



  • Kenner der Bits schrieb:

    Wann kommt 128 Bit? 😕 🕶

    soweit ich weiss Dezember 1998



  • Kenner der Bits schrieb:

    Wann kommt 128 Bit? 😕 🕶

    Wenn die NSA ihre ganzen Daten man: mmappen würde, würden 64-Bit nicht ausreichen.



  • rapso schrieb:

    Kenner der Bits schrieb:

    Wann kommt 128 Bit? 😕 🕶

    soweit ich weiss Dezember 1998

    😃 👍
    sehr treffend...rotfl
    ...irgendwo ja auch einer der Hinweise darauf, wie Sprache (und Bitbreite) das (unser) Denken beeinflusst...



  • Z schrieb:

    tntnet schrieb:

    Der Hauptgrund für 64 Bit ist tatsächlich der adressierbare Speicher. mit 32 Bit kann man maximal 4GB adressieren, da ein Zeiger eben 32 Bit lang ist.

    Schon mal was von Adressbus und Datenbus gehört? Und dass sie nicht die gleiche Breite haben müssen, ja dass gleiche Bitanzahl sogar ein Sonderfall ist? Nicht? Egal, weitermachen mit pseudoschlauer Dampfplauderei. 🙄

    Wirklich schade. So eine Beschimpfung trägt nicht gerade zur gepflegten Diskussion bei. Aber ich überlese es mal.

    Ich habe schon mal was von Adressbus und Datenbus gehört. Ich habe auch schon gehört, dass bei einem 64-Bit-Programm ein Zeiger 64 Bit groß ist und bei einem 32-Bit-Programm nur 32 Bit. Und ich habe es sogar selbst nachgerechnet, dass ein 32-Bit-Zeiger maximal 4GB Adressieren kann, ein 64-Bit-Zeiger aber diese 16 Exabytes.

    Wenn ein 64-Bit Prozessor weniger als die 64 Bit über den Adressbus nach draußen geführt hat, dann kann er eben nicht den kompletten theoretisch möglichen Speicher adressieren. Ein 64-Bit-Programm ist aber dafür gerüstet.

    Vielleicht kannst Du ja mal versuchen, mir ganz gepflegt mitzuteilen, wo mein Denkfehler oder meine Wissenslücke ist. Eventuell schaffst Du das ja auch ganz sachlich ohne Beschimpfungen. Da wäre ich Dir dankbar. Und eventuell sind ja auch andere hier interessiert daran, an Deinem Wissen teilzuhaben.



  • tntnet schrieb:

    Ich habe schon mal was von Adressbus und Datenbus gehört. Ich habe auch schon gehört, dass bei einem 64-Bit-Programm ein Zeiger 64 Bit groß ist und bei einem 32-Bit-Programm nur 32 Bit.

    Die Bezeichnungen "32-Bit-Programm" bzw. "64-Bit-Programm" bezeichnen Programme für 2 verschiedene Betriebsmodi, in der Regel bei x86-Prozessoren. Abseits davon haben sie jedoch keine Bedeutung.

    Es gab IMHO mal einem x86 der einen Adressbus von 20 Bit hatte. Als 20-Bitter wurde er aber nie bezeichnet. Daten- und Adressbusbreite sind unabhängig voneinander. Dass Prozessoren die einen breiteren Datenbus haben auch mehr Speicher adressieren können, liegt einfach nur am technischen Fortschritt. Einen zwingenden Zusammenhang gibt es nicht.

    Ein Prozessor heisst z.B. 8-Bitter, wenn er Daten mit einer Breite von 8 Bit parallel verarbeiten kann. Ein Z80 ist ein 8-Bitter, weil er eben dazu fähig ist. Sein Adressbus ist aber 16 Bit breit. Daher braucht dieser Prozessor eine Möglichkeit um 65536 Adressen anzusprechen. Mit 8 Bit wäre bei der Adresse 255 schon Schluss.

    n-Bitter haben gegenuber 2n-Bittern den Nachteil, dass Operationen mit 2n-breiten Daten zu Fuß programmiert werden müssen. Wo der 64-Bitter entsprechend breite Datentypen hat, um solche Operationen in einem Rutsch durchzuführen, muss man auf einem 32-Bitter Algorithmen einsetzen, die die Daten in LoWord und HiWord zerstückeln, getrennt behandeln, und danach wieder zusammenfügen. Demzufolge ist die Anzahl Taktzyklen, um auf einem 32-Bitter das Gleiche zu erreichen wie auf einem 64-Bitter, um ein Vielfaches größer.



  • Z schrieb:

    tntnet schrieb:

    Ich habe schon mal was von Adressbus und Datenbus gehört. Ich habe auch schon gehört, dass bei einem 64-Bit-Programm ein Zeiger 64 Bit groß ist und bei einem 32-Bit-Programm nur 32 Bit.

    Die Bezeichnungen "32-Bit-Programm" bzw. "64-Bit-Programm" bezeichnen Programme für 2 verschiedene Betriebsmodi, in der Regel bei x86-Prozessoren. Abseits davon haben sie jedoch keine Bedeutung.

    Auch wenn ich riskiere, dass Du wieder abfällig wirst, muss ich Dir widersprechen. Ich arbeite an einer AIX-Kiste mit PowerPC 6. Das ist ein 64 Bit Prozessor. Allerdings compilieren wir unsere Programme als 32-Bit-Programme, auch wenn das mit x86 so gar nichts zu tun hat. Also hat es doch eine Bedeutung abseits von x86.

    Der Effekt ist der, dass unsere Programme 32 Bit Zeiger haben und daher maximal 4 GB Speicher adressieren können.

    Z schrieb:

    Es gab IMHO mal einem x86 der einen Adressbus von 20 Bit hatte. Als 20-Bitter wurde er aber nie bezeichnet. Daten- und Adressbusbreite sind unabhängig voneinander. Dass Prozessoren die einen breiteren Datenbus haben auch mehr Speicher adressieren können, liegt einfach nur am technischen Fortschritt. Einen zwingenden Zusammenhang gibt es nicht.

    Der Adressbus beim 8088 und 8086 war tatsächlich 20 Bit. Zeiger waren hier zwar 32 Bit. Aber davon wurden nur 20 effektiv genutzt (ganz so einfach ist das nicht aber ich denke die Aussage ist genau genug für diese Ausführung). Gemeinhin wurde der 8088 und 8086 als 16-Bit-Prozessor bezeichnet, da dieser 16-Bit Register und vor allen Dingen eine 16-Bit-ALU hatte. Der 8088 hatte sogar nur einen 8-Bit Datenbus. Um ein Register zu laden, benötigte er 2 Zugriffe auf den Speicher.

    Dann gab es noch den 68000 von Motorola. Der hatte einen 23 Bit Adressbus und einen 16 Bit Datenbus. Aber 32 Bit Register. Adressieren konnte er 16 GB. Dafür braucht es 24 Bit, aber da der Datenbus 16 Bit breit ist, hat er immer nur auf gerade Adressen zugegriffen und 2 Bytes gelesen oder geschrieben. Damit gab es das LSB Bit nicht. Im Prinzip hatte er 32 Bit Adressen.

    Z schrieb:

    Ein Prozessor heisst z.B. 8-Bitter, wenn er Daten mit einer Breite von 8 Bit parallel verarbeiten kann. Ein Z80 ist ein 8-Bitter, weil er eben dazu fähig ist. Sein Adressbus ist aber 16 Bit breit. Daher braucht dieser Prozessor eine Möglichkeit um 65536 Adressen anzusprechen. Mit 8 Bit wäre bei der Adresse 255 schon Schluss.

    Da hast Du allerdings recht. Da stimmt die Wortlänge tatsächlich nicht mit der Adresslänge überein. Das habe ich tatsächlich vergessen, da das heutzutage gar nicht so üblich ist.

    Z schrieb:

    n-Bitter haben gegenuber 2n-Bittern den Nachteil, dass Operationen mit 2n-breiten Daten zu Fuß programmiert werden müssen. Wo der 64-Bitter entsprechend breite Datentypen hat, um solche Operationen in einem Rutsch durchzuführen, muss man auf einem 32-Bitter Algorithmen einsetzen, die die Daten in LoWord und HiWord zerstückeln, getrennt behandeln, und danach wieder zusammenfügen. Demzufolge ist die Anzahl Taktzyklen, um auf einem 32-Bitter das Gleiche zu erreichen wie auf einem 64-Bitter, um ein Vielfaches größer.



  • tntnet schrieb:

    Ich arbeite an einer AIX-Kiste mit PowerPC 6. Das ist ein 64 Bit Prozessor. Allerdings compilieren wir unsere Programme als 32-Bit-Programme, auch wenn das mit x86 so gar nichts zu tun hat. Also hat es doch eine Bedeutung abseits von x86.

    Ausnahmen bestätigen die Regel.



  • ARM schrieb:

    Dann guck dir mal an, wie es vor ARM64 war.

    Zufällig weiß ich das sogar ziemlich genau. Worauf willst du hinaus?



  • Z schrieb:

    tntnet schrieb:

    Ich arbeite an einer AIX-Kiste mit PowerPC 6. Das ist ein 64 Bit Prozessor. Allerdings compilieren wir unsere Programme als 32-Bit-Programme, auch wenn das mit x86 so gar nichts zu tun hat. Also hat es doch eine Bedeutung abseits von x86.

    Ausnahmen bestätigen die Regel.

    Als Ausnahme würde ich das jetzt nicht unbedingt bezeichnen. In der RISC-Welt war und ist es teilweise immer noch üblich, einen 64-Bit-Kernel mit einem 32-Bit-Userland zu betreiben. Im Gegensatz zu x86 beschränken sich die Unterschiede zwischen 32- und 64-Bit-Kompilaten hier aber wirklich praktisch nur auf die Zeigergröße. Das x86-Äquivalent wäre in etwa das x32-ABI[1] für Linux, bei dem zwar 32-Bit-Zeiger zum Einsatz kommen, aber nicht der i386-Kompatibilitätsmodus des Prozessors, sodass man die ganzen netten x86-64-Features (mehr Register, PC-relative Adressierung, usw.) trotzdem nutzen kann.

    [1] https://lwn.net/Articles/456731/


Anmelden zum Antworten