Forum: Mikrocontroller und Digitale Elektronik Welcher Bus des MC ist bei einem 8 Bit MC 8 Bit breit?


von Marko (Gast)


Lesenswert?

Ich glaube der Datenbus, der Steuerbus und der Addressbus, also alle 3 
aber stimmt das?

von sven (Gast)


Lesenswert?

dann wirds aber eng mit dem Speicher (Adressbus = 8 Bit)...

von Huch (Gast)


Lesenswert?

Die Aussage, eine CPU sei eine 8-Bit CPU bezieht sich ncht auf einen der 
Busse sondern auf die Breite des/der Arbeistregister.
Es gibt keinen zwingenden Zusammenhang zwischen der Breite des 
Arbeistregisters und einem der Busse.
Insofern ist die Frage so nicht zu stellen.

von Huch (Gast)


Lesenswert?

Mist. Das sind mir zuviele Rechtschreibfehler. Sorry.

Die Aussage, eine CPU sei eine 8-Bit CPU bezieht sich nicht auf einen 
der
Busse sondern auf die Breite des/der Arbeitsregister.
Es gibt keinen zwingenden Zusammenhang zwischen der Breite der
Arbeitsregister und einem der Busse.
Insofern ist die Frage so nicht zu stellen. Falsche Kategorie.

von spess53 (Gast)


Lesenswert?

Hi

>Ich glaube der Datenbus, der Steuerbus und der Addressbus, also alle 3
>aber stimmt das?

Allgemein kann man darüber überhaupt keine Aussage machen.

Adressbus : Abhängig von der Speichergröße
Datenbus  : Hängt von der Speicherorganisation ab. Ein 8-Bit-AVR hat 
16-Bit
            breite Befehle.
Steuerbus : Unbestimmt.

Diese Einteilung stammt aus der Zeit der Microprozessoren. Da wurden 
diese Signale aus dem IC herausgeführt um externen Speicher, 
IO-Bausteine u.ä. anzuschließen. Bei µCs eigentlich uninteressant, da 
niemand mehr mit den Bussen in Berührung kommt.

MfG Spess

von Marko (Gast)


Lesenswert?

Dh bei einer 32 Bit CPU können auch alle Busse 8 but breit sein? Das 
wäre ja irgendwie komisch, da ja bei der Ausgabe eines PORTS der 
Steuerbus 4 mal etwas senden muss.`?

Kennt wer eine gute Seite wo die internen Busse von 8 Bit 
Mikrocontrollern erleutert sind?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Üblicherweise entspricht die Datenbusbreite der Registerbreite, aber 
es gibt auch da Ausnahmen (wie z.B. der 68000 mit 16-Bit-Datenbus und 
32-Bit-Registern, oder der 68008 mit 8-Bit-Datenbus und 
32-Bit-Registern, oder der 8088 mit 8-Bit-Datenbus und 
16-Bit-Registern).

Bei den meisten* 8-Bit-Prozessoren beträgt die Datenbusbreite 8 Bit. Der 
Adressbus wiederum ist bei 8-Bit-Prozessoren und 16-Bit-Prozessoren 
meistens** breiter als 8 bzw. 16 Bit, bei 32-Bit-Prozessoren kann er 
aber durchaus auch schmaler sein als 32 Bit (erneute Beispiele sind der 
68000 mit 24-Bit-Adressbus oder der 8088 mit 20-Bit-Adressbus).

Die Breite des Steuerbusses hingegen hängt von vollkommen anderen 
Faktoren ab.


*) mir fällt jetzt gerade keiner ein, bei dem es nicht so ist, aber im 
µP-Urschleim dümpelt garantiert einer herum, bei dem das anders ist.

**) Bei 8-Bit-Prozessoren oft 16 Bit, aber auch weniger oder mehr (6512 
hat weniger, HD64180 hat mehr)

von Marko (Gast)


Lesenswert?

spess53 schrieb:
> Allgemein kann man darüber überhaupt keine Aussage machen.
>
> Adressbus : Abhängig von der Speichergröße
> Datenbus  : Hängt von der Speicherorganisation ab. Ein 8-Bit-AVR hat
> 16-Bit
>             breite Befehle.
> Steuerbus : Unbestimmt.
>
> Diese Einteilung stammt aus der Zeit der Microprozessoren. Da wurden
> diese Signale aus dem IC herausgeführt um externen Speicher,
> IO-Bausteine u.ä. anzuschließen. Bei µCs eigentlich uninteressant, da
> niemand mehr mit den Bussen in Berührung kommt.

Aber was unterscheidet dann eigentlich einen 32 Bit MC von einem 8Bit 
außer die Peripherie?

Ach ja, also in einem AVR32 Bit MC Datenblatt steht nichts über Register 
drinnen sondern nur von einem 16 KB instruction cache and 16 KB data 
caches.
Stellt diese Größe die Register eines 8 But dar?

von Sascha (Gast)


Lesenswert?

Da hat wohl jemand keine Lust auf Hausaufgaben ;-)

von Huch (Gast)


Lesenswert?

>Aber was unterscheidet dann eigentlich einen 32 Bit MC von einem 8Bit
>außer die Peripherie?

Wie ich schon oben schrieb: Die Breite der Arbeitsregister.

von Marko (Gast)


Lesenswert?

Sascha schrieb:
> Da hat wohl jemand keine Lust auf Hausaufgaben ;-)

Da is mal wieder wem langweilig geworden.
______________________________________________

Ich habe jetzt mal gerechnet und komme bei einem 32Bit Controller auf 
500 Register mit 32 Bit Breite, stimmt das?

von Huch (Gast)


Lesenswert?

>Ich habe jetzt mal gerechnet und komme bei einem 32Bit Controller auf
>500 Register mit 32 Bit Breite, stimmt das?

Was hast Du denn da berechnet. Weder stimmt das noch stimmt es nicht. Es 
gibt keinen Zusannenhang zwischen der Registerbreite und deren Anzahl.

von Vlad T. (vlad_tepesch)


Lesenswert?

Marko schrieb:
> Ich habe jetzt mal gerechnet und komme bei einem 32Bit Controller auf
> 500 Register mit 32 Bit Breite, stimmt das?

dann rechne mal bitte vor.


am rande:
Ain AVR hat doch sogar 2 unterschiedlich breite Datenbusse oder?
für den Programmspeicher 16bit und für den SRAM 8bit.

Kann mich aber auch irren, normalerweise interessiert das ja einen 
überhaupt nicht.

von Marko (Gast)


Lesenswert?

Huch schrieb:
> Was hast Du denn da berechnet. Weder stimmt das noch stimmt es nicht. Es
> gibt keinen Zusannenhang zwischen der Registerbreite und deren Anzahl.

Naja im DB eines 8 Bit steht zB dass der 32 Register hat mit jeweils 8 
Bit da er ja ein 8 Bit Controller ist. also sind das insgesamt 8*32 
Bytes.

In einem 32 Bit MC DB steht 16kB instruction set und dann habe ich 
einfach 16000/32bit gerechnet und da dachte ich ich komme auf die Anzahl 
der Register

Wenn das nicht stimmt was sagt mir dann wieviel Register ich habe?

von Vlad T. (vlad_tepesch)


Lesenswert?

Marko schrieb:
> Wenn das nicht stimmt was sagt mir dann wieviel Register ich habe?

das Datenblatt des µC

von Olaf (Gast)


Lesenswert?

> Aber was unterscheidet dann eigentlich einen 32 Bit MC von einem 8Bit
> außer die Peripherie?

Die Flaeche des Siliziums im Prozessor. :-)

Olaf

von Marko (Gast)


Lesenswert?

Vlad Tepesch schrieb:
> das Datenblatt des µC

Unter welchem Kapitel steht das?

von Vlad T. (vlad_tepesch)


Lesenswert?

42

- ich geb auf

von Marko (Gast)


Lesenswert?

Vlad Tepesch schrieb:
> 42

Nein, da stehts nicht drinnen

von Huch (Gast)


Lesenswert?

>Wenn das nicht stimmt was sagt mir dann wieviel Register ich habe?
Das Datenblatt.

Insofern musst Du das nochmal wiederholen:

>Ach ja, also in einem AVR32 Bit MC Datenblatt steht nichts über Register
>drinnen
Manchmal sind die Datenblätter auf mehrere Dokumente aufgeteilt. Poste 
doch mal einen Link auf das Datenblatt, in dem Du nachgeschaut hast. 
Vielleicht können wir für Dich mal reingucken, wo das steht.

>von einem 16 KB instruction cache and 16 KB data
>caches.
Diese Angabe hat nichts mit der Anzahl oder Breite der Register zu tun.
Der Instruction Cache hat die Aufgabe Befehle aus dem Speicher 
kurzfristig zu speichern bevor sie zur Ausführung kommen. Das macht vor 
allem bei CPUs Sinn, bei denen die Ausführungszeit der Befehle im Mittel 
länger ist, als die Zugriffszeit auf den Programmspeicher. Analog hält 
der Daten-Cache Daten die zwar momentan nicht gebraucht aber mit einer 
gewissen Wahrscheinlichkeit in Kürze gebraucht werden.

Ich empfehle Dir Dich mal allgemein in die Struktur von CPUs einzlesen. 
Als Startpunkt http://de.wikipedia.org/wiki/CPU#Grundarchitekturen

von Klaus W. (mfgkw)


Lesenswert?

Marko schrieb:
> In einem 32 Bit MC DB steht 16kB instruction set

nicht vielleicht der Cache für die Befehle?

von Huch (Gast)


Lesenswert?

Ehrlich gesagt, meine ich, das Du Dir für das Thema mal etwas mehr als 
den Zeitraum für den Deine Feiertags-Langeweile (falls Du in einem 
vornehmlich kath. Bundesland wohnst) nimmst.

Das ist zwar alles nicht wirklich schwierig, aber man muss doch einige 
Grundkenntnisse haben und so einiges an Aspekten beachten um das Ganze 
zu verstehen. Deine Fragen zeigen aber, das Du nur sehr verschwommene 
Vorstellungen hast.

Deine Rechnungen, bitte nimm das so als halben Scherz, sind so, als wenn 
jemand irgendwo zwei Zahlen sieht und sie prompt mal multipliziert, 
dividiert, addiert und subtrahiert, nur weil man das mit Zahlen machen 
kann.
Die Ergebnisse haben nichts mit der Realität zu tun. ;-)

von Marko (Gast)


Lesenswert?

Klaus Wachtler schrieb:
> nicht vielleicht der Cache für die Befehle?

Oja, stimmt Cache, sry

http://www.atmel.com/dyn/resources/prod_documents/doc32003.pdf

von Huch (Gast)


Lesenswert?

Also die Anzahl der Register siehst Du in Unterkapitel
6.3.1 Register file configuration

Es sind zwölf Arbeitsregister, deren Verwendung aber je nach 
Betriebszustand eingeschränkt ist bzw. machen davon haben in bestimmten 
Modi eine besondere Bedeutung.

Ich möchte Dir dringend empfehlen, zum Einstieg in das Thema mit 
einfacheren Architekturen zu beginnnen. Z.B. den 8-Bit AVRs.

von Marko (Gast)


Lesenswert?

Ok, danke jedanfalls für die Hilfen!!

von Erbsenzähler (Gast)


Lesenswert?

Üblicherweise zielen Bezeichnungen wie 8/16/32/64-Bit-CPU oder -MCU 
alleine auf die Wortbreite der Daten-Arithmetik (bspw. für ADD-/SUB- 
oder auch Byte/Wortweise logische Operationen) einzelner Befehle des des 
Prozessors.

Von der Adreß-Arithmetik innerhalb der CPU oder gar den internen oder 
externen Busbreiten ist diese Bezeichnung weitgehened unabhängig. Gerade 
bei Controllern werden extern die Daten oft über Schnittstellen mit nur 
einem Datenbit (I2C, SPI, RS232 usw.) ausgetauscht - unanhängig von der 
"Breite" der Daten selbst, die zwischen einem und "vielen" Bit betragen 
kann.

Und selbst bei der Daten-Arithmetik gibt es mitunter Sonderfälle, die 
die Grenzen einer klare "n-Bit"-Bezeichnung überschreiten. Bspw. wenn 
eine 8-Bit-CPU einen Multiplikationsbefehl besitzt, der zwar 
8-Bit-Operanden verwendet, aber dann ein 16-Bit-Ergebnis in zwei 
Register ablegt.

MfG

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
Noch kein Account? Hier anmelden.