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 User
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
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.
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
>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
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
> ist es nicht die Breite des Datenbusses?
Deine Frage hat A.K. weiter oben bereits beantwortet.
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?
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
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
Für Krücken, wie den z.B. 8088 habe ich mir selbst eine Bezeichnung ausgedacht: 8 1/2 Bit-Prozessor
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? ;-)
>> Deine Frage hat A.K. weiter oben bereits beantwortet. > Wo hat er denn die Antwort gegeben? Beitrag "Re: Was definiert die Bittigkeit einer CPU"
> 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...
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. ;-)
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. :-)
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.
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
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
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.
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
Εrnst B. schrieb: > Ah. Ein aktueller Intel mit AVX2 ist dann eine 256-Bit-CPU? Ab Skylake-EP sind es 512.
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
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.
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? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.