Was definiert die Bittigkeit einer CPU

#4981816
Lesenswert?

Definitionsfrage schrieb:
> Ist das irgendwie definiert?

Nicht wirklich. Und jeder Versuch wird durch irgendwelche Gegenbeispiele 
konterkariert.

Manche definieren es über die Busse. Bei modernen CPUs gibts aber 
dermassen viele unterschiedlichster Breite, da müsste man erst einmal 
definieren, welchen man meint.

Manche gehen über die Register. Wird bei 8080 und erst recht bei Z80 
recht spannend, Mehrheitsentscheid spricht für 16 Bits.

Manche definieren es über die ALU. Dann wär die Z80 ein 4-Bitter und bei 
Motorola hätte man in der gemeinhin mindestens als 8-Bitter eingestuften 
6800 Reihe auch 1-Bitter gefunden.

Geht man über die Rechenbreite, aber vermeidet allzu tiefen Einblick in 
die Implementierung und solche Sauereien zu vermeiden, dann muss man 
sich etwas einfallen lassen, um die 8080 nicht zum 16-Bitter zu machen.

Einfach ist eigentlich nur die Idee mit den Adressen: Das versucht 
niemand, denn dann gäbe es überhaupt keine 8-Bitter.

Deshalb verlegt man sich auf eher gefühlsmässige Einschätzung und 
streitet ab und zu wie die Kesselflicker (bei der 68008 gab es solide 
Argumente für 8, 16 und 32 Bits). Und unterscheidet auch schon mal die 
Sicht der Befehlssatzarchitektur von der Sicht der Implementierung.
Gast #4982051
Lesenswert?

>Nur wurden 68000 und Z8000 einstmals als 16-Bitter verkauft, werden
>damit aber zu 32-Bittern.

Wie meinst Du das?
Der hat doch ein 32 bit ADD.

Operation:
Source + Destination -->; Destination

Compatibility: 68000 Family

Assembler Syntax:
ADD <ea>, Dn
ADD Dn, <ea>

Attributes: Size = (Byte, Word, Long)

gefunden hier:
http://68k.hax.com/ADD
#4982067
Lesenswert?

Scheint wirklich eine Auslegungssache zu sein:

"The MC68000 is the first implementation of the M68000 16/-32 bit 
microprocessor architecture. The MC68000 has a 16-bit data bus and 
24-bit address bus while the full architecture provides for 32-bit 
address and data buses. It is completely code-compatible with the 
MC68008 8-bit data bus implementation of the M68000 and is upward code 
compatible with the MC68010 virtual extensions and the MC68020 32-bit 
implementation of the architecture. Any user-mode programs using the 
MC68000 instruction set will run
unchanged on the MC68008, MC68010, MC68020, MC68030, and MC68040. This 
is
possible because the user programming model is identical for all 
processors and the instruction sets are proper subsets of the complete 
architecture."

Quelle: 
http://www.nxp.com/assets/documents/data/en/reference-manuals/MC68000UM.pdf
#4982070
Lesenswert?

Markus schrieb:
>>Nur wurden 68000 und Z8000 einstmals als 16-Bitter verkauft, werden
>>damit aber zu 32-Bittern.
>
> Wie meinst Du das?
> Der hat doch ein 32 bit ADD.

Eben. Entsprechend dieses Kriteriums:

Helmut S. schrieb:
> Wenn die Standardbefehle (ADD, SUB, AND, OR Shift, Rotate) fuer n-Bit
> sind, dann ist es eine n-Bit CPU.

.. sind es 32-Bitter. Verkauft wurden sie als 16-Bitter. Also was nun?
#4982084
Lesenswert?

Ralph B. schrieb:
> ist es nicht die Breite des Datenbusses?

Zur 68008:
- Hat 8 Bit Datenbus. Klare Sache, Frage beantwortet.
- Hat 16 Bit Recheneinheiten. Klare Sache, Frage beantwortet.
- Ist aber aus Sicht des Programmierers fast konsequent 32-bittig (*).
Und nun?

Mit den Recheneinheiten ist das auch so eine Sache. Die der 68000 hatten 
16 Bits, bei der intern völlig anders aufgebauten 68070 von Signetics 
waren es meiner Erinnerung nach 32 Bits. Die Chips waren zwar nicht 
pinkompatibel, aber voll funktionskompatibel.

*: Die im Registersatz klar 16-bittige Z8000 hatte auch MUL/DIV in 32 
Bits, die im Registersatz eindeutig 32-bittige 68000 nicht.
Gast #4982345
Lesenswert?

> Wem ... bringt diese uneinheitliche Klassifizierung ... überhaupt etwas?

Den selben Leuten, die die Leistung in MHz messen, oder Staubsauger mit 
viel Watt grundsätzlich besser finden.

Komisch, bei Glühlampen ist das irgendwie aus der Mode geraten...
#4982467
Lesenswert?

A. K. schrieb:
> Mit den Recheneinheiten ist das auch so eine Sache. Die der 68000 hatten
> 16 Bits,

Du irrst.

Der 68000 hat 16 32-Bit Daten- und Adressregister. Der Datenbus, also 
das, was über die Pins nach aussen geführt wird, ist 16 Bit breit. Der 
Adressbus 24 Bit.

Der 68008 hat die gleichen D- und A-Register, aber nur einen 8-Bit 
Daten- und einen 20-Bit Adress- im DIL- und einen 22-Bit Adressbus im 
PLCC-Gehäuse.

Später gab es vom 68000er noch Versionen, bei denen man den Datenbus 
statisch auf 8 oder 16Bit schalten konnte(z.B. 68001).

Von Motorola wurde der 68000er als 16/32-Bit CPU, nach Aufkommen des 
68008 wurde die Familie als 8/16/32-Bit CPU bezeichnet.

Die 68000er waren intern immer 32-Bit CPUs.
Moderator #4982492
Lesenswert?

Thomas E. schrieb:
> A. K. schrieb:
>> Mit den Recheneinheiten ist das auch so eine Sache. Die der 68000 hatten
>> 16 Bits,
>
> Du irrst.
>
> ...
>
> Die 68000er waren intern immer 32-Bit CPUs.

Die ALU des 68000 ist m.W. nur 16 Bit breit, und darauf bezog sich A. K.

Die 32-Bit-Operationen werden per Mikroprogramm realisiert und bspw. bei
der Addition aus zwei 16-Bit-Operationen zusammengesetzt, weswegen die
32-Bit-Addition auch entsprechend länger dauert.
#4982501
Lesenswert?

Thomas E. schrieb:
> Die 68000er waren intern immer 32-Bit CPUs.

"The MC68000 has a 16-bit-wide ALU that essentially performs all data 
calculations and provides single-pass evaluation of the 16-bit data, for 
which the MC68000 is primarily designed."

> on Motorola wurde der 68000er als 16/32-Bit CPU

"A 16-bit processor with multiple 32-bit registers."

http://www.easy68k.com/paulrsm/doc/dpbm68k1.htm
http://www.easy68k.com/paulrsm/doc/dpbm68k2.htm
http://www.easy68k.com/paulrsm/doc/dpbm68k3.htm
1983, Thomas W. Starnes, Motorola Inc., Microprocessor Division
(Firma: EleLa - www.elela.de) #4982693
Lesenswert?

Die Bittigkeit der CPU definiert wie viel Bit eine CPU atomar 
verarbeiten kann, der nicht durch ein Interrupt abgebrochen wird.

Bei einer 32 Bit CPU werden garantiert 32 Bit in den Speicher 
geschrieben / gelesen, ein Interrupt kann das auch nicht aufteilen.

Bei einer 8 Bit CPU muss für eine 32 Bit Variable 4 MOV Befehle 
ausgeführt werden, die einzeln von einem Interrupt unterbrochen werden 
können. Somit kann je nach Zeitpunkt wo der Interrupt auftritt die 32 
Bit-Variable im Speicher noch nicht korrekt liegen und man muss per 
Software verhindern kann nichts falsches gelesen wird.
Eine 8 Bit CPU hat keine Möglichkeit 32 Bit mit einem einzigen Befehl in 
den Speicher zu schreiben, ohne dass dieser Vorgang unterbrochen werden 
kann.
Dafür gibt es zusätzliche "Spezial-Befehle" die z.B. einen Interrupt 
deaktivieren oder für X Maschinenzyklen verhindern.

Im Umkehrschluss erwarte ich von einem CPU Hersteller, wenn er 16 Bit 
drauf schreibt, dass er auch 16 Bit atomar verarbeitet - ohne dass ich 
extra Interrupts deaktivieren muss.
#4982724
Lesenswert?

Markus M. schrieb:
> Die Bittigkeit der CPU definiert wie viel Bit eine CPU atomar
> verarbeiten kann, der nicht durch ein Interrupt abgebrochen wird.

Ah. Ein aktueller Intel mit AVX2 ist dann eine 256-Bit-CPU? Warum sind 
da die Marketing-Fuzzis noch nicht draufgekommen und verkaufen den 
weiter als 64-Bit?

-->

A. K. schrieb:
> Nicht wirklich. Und jeder Versuch wird durch irgendwelche Gegenbeispiele
> konterkariert.
#4982774
Lesenswert?

und, gibts schon Ergebnisse?

6502 da tippe ich auf 8-Bit musste immer viel schieben nur hat der PC ja 
16-Bit wie eigentlich alle sogenannten 8-bitter.

z80 -> 8 oder 16 Bit? immerhin kann man mit 16-bit Registern rechnen, 
war einfacher

Lustig wirds beim ATmega, ich las immer nur von 8-bit AVR und dann gibt 
es da den m1284p der offensichtlich 64K Worte zu 16 Bit hat und nicht 
ein Adressbit mehr.

Ich blicke bald nicht mehr durch

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren