Frage

Wir haben 8-Bit, 16-Bit, 32-Bit und 64-Bit-Hardware-Architekturen und Betriebssysteme. Aber nicht, sagen wir, 42-Bit- oder 69-Bit-Einsen.

Warum? Ist es etwas Grundsätzliches, die 2 ^ n Bits eine bessere Wahl macht, oder ist nur über die Kompatibilität mit bestehenden Systemen? (Es ist natürlich praktisch, dass ein 64-Bit-Register kann zwei 32-Bit-Zeiger halten, oder dass ein 32-Bit-Dateneinheit 4 Bytes aufnehmen kann.)

War es hilfreich?

Lösung

Das ist vor allem eine Frage der Tradition. Es ist nicht einmal immer wahr. Zum Beispiel Gleitkommaeinheiten in Prozessoren (auch zeitgemäßen sind) haben 80-Bit-Register. Und es gibt nichts, was uns zwingen würde, 8-Bit-Bytes zu haben, anstelle von 13-Bit-Bytes.

Manchmal hat diese mathematische Argumentation. Zum Beispiel, wenn Sie Integer-Multiplikation eines N Bit Byte und haben wollen, um entscheiden zu tun, müssen Sie genau 2N Bits, um die Ergebnisse zu speichern. Dann mögen Sie auch addieren / subtrahieren / multiplizieren diese 2N-Bits ganze Zahlen und jetzt müssen Sie 2N-Bit Allzweckregister zum Speichern der Addition / Subtraktion Ergebnisse und 4N-Bit-Register für die Multiplikationsergebnisse zu speichern.

Andere Tipps

http://en.wikipedia.org/wiki/Word_%28computer_architecture 29% # Word_size_choice

  

Verschiedene Speichermengen werden zum Speichern von Datenwerten mit unterschiedlichen Graden der Genauigkeit verwendet. Die am häufigsten verwendeten Größen sind in der Regel eine Potenz von 2 Vielfach der Einheit der Adressauflösung (Byte oder Wort). Die Umwandlung des Index eines Elements in einem Array in die Adresse des Elements dann erfordert nur einen Schaltvorgang statt einer Multiplikation. In einigen Fällen kann diese Beziehung auch vermeiden, die Verwendung von Divisionsoperationen. Als Ergebnis haben die meisten modernen Computer-Designs Wortgrößen (und andere Operandengrößen), die eine Potenz von 2 mal die Größe eines Bytes sind.

Zum Teil ist es eine Frage der Adressierung. N Bits der Adresse ermöglicht es Ihnen, höchstens 2 ^ N Bits von Speicher zu adressieren, und die Designer von Hardware bevorzugen die meisten dieser Fähigkeit zu nutzen. So können Sie 3 Bits verwenden 8-Bit-Bus etc. zu adressieren ...

Der ehrwürdige PDP-10 betrug 36 Bits.

Viele (die meisten?) Frühe Pre-Mikroprozessor-CPUs hat eine bestimmte Anzahl von Bits pro Wort, das nicht eine Potenz von zwei ist.

Insbesondere Seymour Cray und sein Team viele einflussreichen Maschinen mit nicht-Power-of-two Wortgrößen und Adress Größen gebaut - 12 Bit, 48 Bit, 60 Bit, etc.

.

Eine überraschend große Anzahl von frühen Computern hatten 36-Bit-Worte, ganz auf die Tatsache zurückzuführen, dass die Menschen 10 Finger haben. Die Wikipedia „36-Bit“ Artikel mehr Details über die Beziehung zwischen 10 Fingern und 36 Bits, und Links zu Artikeln auf vielen anderen historisch wichtig, aber nicht mehr populär Bit Größen haben, die meisten von ihnen nicht eine Zweierpotenz.

ich spekulieren, dass

(a) 8-Bit-Speicher populär wurden, weil es für die Speicherung von 7-bit ASCII und 4-Bit-BCD etwas bequemer war, ohne entweder umständlich Verpackung oder mehrere Bits pro Zeichen zu verschwenden; und keine andere Speicherbreite hatte keinen großen Vorteil.

(b) Wie Stephen C. Stahl weist darauf hin, dass leichte Vorteil durch Skalen- und Marktkräfte vervielfacht - mehr 8-Bit breite Speicher verwendet werden, und so Skalen machen sie etwas billiger, was zu noch 8-Bit breiten Speicher in neuen Designs verwendet werden, etc.

(c) Breitere Busbreiten in Theorie machte eine CPU schneller, aber auf einem einzigen Chip die gesamte CPU setzen machte es erheblich billiger und vielleicht etwas schneller als alle bisherigen mehrteiligen CPU-System jeder Busbreite. Zuerst gab es kaum genug Transistoren für einen 4-Bit-CPU, dann ist ein 8-Bit-CPU. Später gab es kaum genug, um Transistoren für einen 16-Bit-CPU, zu einer großen Fanfare und „16-Bit“ Marketing-Kampagne. Gleich um die Zeit würde man erwarten, dass ein 24-Bit-CPU ...

(d) die RISC-Revolution geschlagen. Die beiden ersten RISC-Chips waren 32 Bits, für welchen Gründen auch immer, und die Menschen konditioniert worden war zu denken, dass „mehr Bits besser sind“, so dass jeder Hersteller sprang auf den 32-Bit-Zug aufgesprungen. Auch IEEE 754-1985 wurde mit 32-Bit und 64-Bit-Gleitkommazahlen genormt. Es gab einige 24-Bit-CPUs, aber die meisten Menschen haben noch nie von ihnen gehört.

(e) Für Software-Kompatibilitätsgründen beibehalten Hersteller die Illusion eines 32-Bit-Datenbus auch auf Prozessoren mit einer 64-Bit-Front-Side-Bus (wie der Intel Pentium und AMD K5, etc.) oder auf Mainboards mit einem 4 Bit breite Bus (LPC-Bus).

Ihr Speichersystem will einen Byte mehrere sein, die der Cache ein Byte mehrere sein wollen machen, die das gesamte System macht will ein Byte mehrere sein.

als HW Designer Sprechen Sie in der Regel CPU wollen das Design einer Art auf Byte Grenzen, also ein Vielfaches von 8. Ansonsten haben Sie entweder eine Menge peinliche Schaltung zu einem System 49-Bit hinzufügen, um es den Mod zu machen nutzen -8 Bits, oder Sie am Ende die zusätzlichen Bits zu ignorieren, in diesem Fall ist es eine Verschwendung war, es sei denn Sie das zusätzliche Bit für Befehle benötigt, die nie der Fall auf 16-Bit oder größeren Systemen ist.

Wie andere haben darauf hingewiesen, in den frühen Tagen, die Dinge waren nicht so eindeutig: Worte in allen möglichen Größen oddball kommen.

Aber der Druck auf 8-Bit-Bytes zu standardisieren auch durch Speicherchip-Technologie angetrieben wurde. In den frühen Tagen wurden viele Speicherchips als 1 Bit pro Adresse organisiert. Speicher für n-Bit-Worte, wurden konstruiert durch Speicherchips in Gruppen von N (mit entsprechenden Adressleitungen miteinander verbunden, und jeder Chip einzelne Datenbit Beitrag zu einem Bit des n-Bit-Wortes).

Als Speicherchip Dichten bekam höher, verpackt Hersteller mehrere Chips in einem einzigen Paket. Da die beliebtesten Wortgrößen im Einsatz ein Vielfaches von 8 Bits waren, 8-Bit-Speicher war besonders beliebt: das bedeutete, es war auch das günstigste. Da mehr und mehr Architekturen auf das 8-Bit-Byte-Zug aufgesprungen, der Preisaufschlag für Speicherchips, die nicht 8-Bit-Bytes nicht genutzt wurde größer und größer. Ähnliche Argumente machen sich von 8-> 16, 16-> 32, 32-> 64.

Sie können immer noch ein System mit 24-Bit-Speichern entwerfen, aber das Gedächtnis wird wahrscheinlich viel teurer als ein ähnliches Design unter Verwendung von 32-Bit-Speichern sein. Es sei denn, es ein wirklich guter Grund, bei 24 Bit zu halten ist, die meisten Designer für 32 Bit entscheiden würde, wenn seine beiden billiger und besser in der Lage.

Zu einer Zeit, Computer-Wortlängen tendenziell ein Vielfaches von 6 Bits sein, weil Computer typischerweise 6-Bit-Zeichensatz verwendet wird, ohne die Unterstützung für Kleinbuchstaben.

IBM einen Hochleistungsrechner, die STRETCH, für Los Alamos, die ein 64-Bit-Wort hatten. Es hatte die ungewöhnliche Eigenschaft, dass einzelne Bits in dem Speicher des Computers direkt angesprochen werden, was die Wortlänge gezwungen eine Zweierpotenz zu sein. Es hatte auch einen erweiterten Zeichensatz, die mathematische Symbole (zusätzlich zu den Kleinbuchstaben) erlaubt einbezogen werden; sie wurden in einer speziellen Hochsprache namens COLASL verwendet.

Wenn IBM mit dem sehr beliebten-System herauskommt / 360 Mainframe, auch wenn es nicht etwas hat dies, wie üblich gehalten, um die Acht-Bit-Byte, in erster Linie eines effiziente Speicherung von gepackte Dezimalzahl Mengen auf die Nachkommastelle bei vier Bits zu ermöglichen. Da diese Maschine so beliebt war, war es sehr einflussreich, und der PDP-11-Computer von DEC wurde mit einem 16-Bit-Wort und 8-Bit-Zeichen ausgelegt. Die PDP-11 war auch die erste echte Little-Endian-Maschine, und es war auch sehr beliebt und einflussreich.

Es ist aber nicht nur wegen der Art und Weise folgen. 8-Bit-Zeichen erlauben Klein Text und als Computer billiger geworden ist, leicht in der Lage, sie für die Textverarbeitung zu verwenden, wurde bewertet. Und ebenso wie die STRETCH benötigt ein Wort zu haben, die eine Leistung von zwei Größe in Bits hatte Bits zu ermöglichen leicht angegangen werden, die heutigen Computer ein Wort haben benötigt, die eine Potenz von zwei Vielfaches von 8 war (was passiert zu sein zwei in die dritte Potenz selbst) Zeichen zu ermöglichen, leicht behandelt werden.

Wenn wir noch 6-Bit-Zeichen verwendet, würden Computer sind in der Regel 24 haben, 48 oder 96-Bit-Worte.

Damit zusammenhängende, aber möglicherweise nicht der Grund, hörte ich, dass die Konvention von 8 Bits in einem Byte ist, weil es ist, wie IBM in Ordnung gebracht, um die IBM System / 360-Architektur.

Ein häufiger Grund ist, dass Sie Ihre Bits in Binärzahl kann. Dies kommt in nützlich in ganz wenigen Situationen. Zum Beispiel in bitshift oder drehen Operationen. Sie können einen 16-Bit-Wert über 0 bis 15 Bits drehen. Ein Versuch, mehr als 16 Bits zu drehen, ist auch trivial: Das entspricht eine Drehung um 0 Bit. Und eine Drehung über 1027 Bits gleich eine Drehung über 3 Bits. Im Allgemeinen ist eine Drehung eines Registers der Breite W über N Bits entspricht eine Drehung über N modulo W, und die Operation „modulo W“ ist trivial, wenn W eine Potenz von 2 ist.

Die 80186, 8086, 8088 und "Real Mode" auf 80286 und späteren Prozessoren verwendet, um ein 20-Bit-segmentierten Speicheradressierungssystem. Die 80286 hatten 24 einheimische Adressleitungen und dann die 386 und hatte später entweder 32 oder 64.

Ein weiterer Zähler. Beispiel: die PIC16C8X Mikrocontroller der Serie verfügen über einen 14 Bit breiten Befehlssatz

Byte wird Codierung von Zeichen zum größten Teil aus der westlichen Welt also 8 Bit verwendet. Wort ist nicht zu codieren, es zu Breite von Adress zusammenhängt damit es 4-80 etc etc variiert wird

Mein guter alter HP 32S Rechner war 12-Bit.

Da der Raum für die Adresse reserviert immer eine feste Anzahl von Bits ist. Sobald Sie die feste Adresse (oder Zeiger) Größe definiert haben, dann wollen Sie das Beste daraus zu machen, so dass Sie, bis die höchste Zahl, alle ihre Werte verwenden, haben sie speichern kann. Die höchste Zahl können Sie von einem Vielfachen eines Bit erhalten (0 entweder 1) ist immer eine Potenz von zwei

Mai werden Sie etwas heraus finden Sie hier: Binary_numeral_system

Die ICL 1900 waren alle 24-Bit (Wörter). Bet gibt es nicht viele Leute diese erinnern. Sie tun ??

Wir haben gerade Blick auf PIC-Mikrocontroller.

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