Forum: Offtopic Was definiert die Bittigkeit einer CPU


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Definitionsfrage (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Die bei direkter Adressierung verfügbare Speichermenge oder die 
Bitbreite der Rechenarithmetik.


Welche dieser beiden Möglichkeiten definiert also, ob eine CPU eine 8 
Bit, 16 Bit, 32 Bit oder 64 Bit CPU ist?


Ist das irgendwie definiert?

: Verschoben durch Moderator
von H.Joachim S. (crazyhorse)


Bewertung
0 lesenswert
nicht lesenswert
Definitionsfrage schrieb:
> die Bitbreite der Rechenarithmetik.

von (prx) A. K. (prx)


Bewertung
5 lesenswert
nicht 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.

: Bearbeitet durch User
von Helmut S. (helmuts)


Bewertung
0 lesenswert
nicht lesenswert
Wenn die Standardbefehle (ADD, SUB, AND, OR Shift, Rotate) fuer n-Bit 
sind, dann ist es eine n-Bit CPU.
Natuerlich erwartet man von einer 32bit CPU, dass die auch mehr als 
16bit linear (ohne bank switching) adressieren kann.

von (prx) A. K. (prx)


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

Nur wurden 68000 und Z8000 einstmals als 16-Bitter verkauft, werden 
damit aber zu 32-Bittern. Was man bei 68000 auch vertreten kann, aber 
bei Z8000 kam eigentlich niemand auf diese Idee.

: Bearbeitet durch User
von Ralph B. (rberres)


Bewertung
0 lesenswert
nicht lesenswert
ist es nicht die Breite des Datenbusses?

Ralph Berres

von Markus (Gast)


Bewertung
0 lesenswert
nicht 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

von Pete K. (pete77)


Bewertung
0 lesenswert
nicht 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

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
> ist es nicht die Breite des Datenbusses?

Deine Frage hat A.K. weiter oben bereits beantwortet.

von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht 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?

von Ralph B. (rberres)


Bewertung
-1 lesenswert
nicht lesenswert
Stefan U. schrieb:
> Deine Frage hat A.K. weiter oben bereits beantwortet.

Helfe mir mal auf die Sprünge

Wo hat er denn die Antwort gegeben?

Ralph Berres

von (prx) A. K. (prx)


Bewertung
1 lesenswert
nicht 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.

: Bearbeitet durch User
von Uhu U. (uhu)


Bewertung
-1 lesenswert
nicht lesenswert
Für Krücken, wie den z.B. 8088 habe ich mir selbst eine Bezeichnung 
ausgedacht:

   8 1/2 Bit-Prozessor

von Harald W. (wilhelms)


Bewertung
1 lesenswert
nicht lesenswert
Definitionsfrage schrieb:

> Wer definiert die Bittigkeit einer CPU

Der Hersteller.

von Yalu X. (yalu) (Moderator)


Bewertung
2 lesenswert
nicht lesenswert
Ich würde die ursprüngliche Frage etwas anders formulieren:

Wem außer den Marketing-Leuten bringt diese uneinheitliche
Klassifizierung in 8-, 16-, 32- und 64-Bit-Typen überhaupt etwas?

;-)

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
>> Deine Frage hat A.K. weiter oben bereits beantwortet.
> Wo hat er denn die Antwort gegeben?
Beitrag "Re: Was definiert die Bittigkeit einer CPU"

von Stefan ⛄ F. (stefanus)


Bewertung
1 lesenswert
nicht 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...

von (prx) A. K. (prx)


Bewertung
1 lesenswert
nicht lesenswert
Stefan U. schrieb:
> Komisch, bei Glühlampen ist das irgendwie aus der Mode geraten...

Nachdem die Liebhaber von viel Watt erst einmal wie die Rohrspatzen über 
die Entscheidung schimpften, sich pallettenweise eindeckten und wohl 
heute noch vom Vorrat leben. ;-)

von Harald W. (wilhelms)


Bewertung
5 lesenswert
nicht lesenswert
Stefan U. schrieb:

> Komisch, bei Glühlampen ist das irgendwie aus der Mode geraten...

Bei LED-Lampen gibts das schon. Die werden mit 60W beworben, haben
aber nur 8W und sind nur so hell wie 40W-Glühlampen.  :-)

von Thomas E. (Firma: Thomas Eckmann Informationst.) (thomase)


Bewertung
-1 lesenswert
nicht 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.

von Yalu X. (yalu) (Moderator)


Bewertung
1 lesenswert
nicht 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.

: Bearbeitet durch Moderator
von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht 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

: Bearbeitet durch User
von Markus M. (mmvisual)


Bewertung
-3 lesenswert
nicht 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.

von Εrnst B. (ernst)


Bewertung
3 lesenswert
nicht 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.

: Bearbeitet durch User
von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
Εrnst B. schrieb:
> Ah. Ein aktueller Intel mit AVX2 ist dann eine 256-Bit-CPU?

Ab Skylake-EP sind es 512.

von Joachim B. (jar)


Bewertung
0 lesenswert
nicht 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

von Markus M. (mmvisual)


Bewertung
-2 lesenswert
nicht lesenswert
Joachim B. schrieb:
> Ich blicke bald nicht mehr durch

Wir geben uns wirklich sehr viel Mühe die Verwirrung zu perfektionieren. 
Bitte schreibe sobald wir es geschafft haben und Du überhaupt nicht mehr 
durchblickst damit wir den Thread schließen können.

von Joachim B. (jar)


Bewertung
0 lesenswert
nicht lesenswert
der LH5803 war auch toll ein Zwitter zwischen 6502 und z80

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.