Forum: Mikrocontroller und Digitale Elektronik Frage zu 4 Bit Prozessor


von Flo H. (tori1117)


Lesenswert?

Hallo,

ich weiß nicht ob ich hier richtig bin.
Und zwar habe ich Probleme einen 4 Bit Mikroprpozessor zu verstehen.
Wie z.B. den Intel 4004.
Ich habe mich schon auf diversen Seiten informiert, verstehe aber die 
Zusammenhänge nicht.


4 Bit
Zustände 16
         2^4
         8

Ich habe gelesen, dass der Intel 4004 in Taschenrechnern zum Einsatz kam 
und
das er maximal Zahlen von 0 bis 15 darstellen konnte ist das wegen den 
16
Zuständen? Kann man dann die Zahl 19 nicht darstellen? Das würde doch 
für einen Taschenrechner keinen Sinn machen?

Wie stehen die 4 Bits im Zusammenhang mit den 2.300 Trasistoren?

Ich hoffe, dass mir jemand helfen kann. Bin irgendwie davon besessen und
möchte es verstehen.

Gruß
Flo

von Tim  . (cpldcpu)


Lesenswert?

Die Rechenmaschinen früher haben normalerweise in BCD-Darstellung 
gerechnet. Jede Dezimalstelle belegt dabei 4 Bits, was also genau zur 
Wortbreite des Prozessors passt.

von D. V. (mazze69)


Lesenswert?


von Kaj (Gast)


Lesenswert?

Flo Haber schrieb:
> Zuständen? Kann man dann die Zahl 19 nicht darstellen? Das würde doch
> für einen Taschenrechner keinen Sinn machen?

Der Taschenrechner stellt nicht die Zahl "19" da, sondern die Ziffern 
"1" und "9", damit reicht es, wenn der Prozessor max. die Zahlen 0-15 
darstellen kann.

Flo Haber schrieb:
> das er maximal Zahlen von 0 bis 15 darstellen konnte ist das wegen den
> 16
> Zuständen?

ja. Binäreszahlensystem

Flo Haber schrieb:
> 4 Bit
> Zustände 16
>          2^4
>          8

2^4 sind 16 und nicht 8

Flo Haber schrieb:
> Ich hoffe, dass mir jemand helfen kann
Grundlagen technische Informatik: 
http://www.amazon.de/Grundlagen-Technischen-Informatik-Dirk-Hoffmann/dp/3446437576/ref=sr_1_1?ie=UTF8&qid=1391968639&sr=8-1&keywords=grundlagen+technische+informatik

Grüße

von Bitflüsterer (Gast)


Lesenswert?

Erstmal freue ich mich, dass Du bestrebt bist Grundlagen zu lernen.

Die 4-Bit beziehen sich eigentlich darauf, wieviele Bits der Prozessor 
in einem Schritt, gleichzeitg verarbeiten kann. Ein Prozessor aber ist 
genau dazu da, eine Folge von Schritten auszuführen: das sogenannte 
(oder auch :-) ) "Programm". Um also eine aus 8 Bit oder mehr bestehende 
Zahl zu verarbeiten werden einfach mehrere Schritte ausgeführt.

Der Zusammenhang zwischen den 4-Bit und den 2300 Transistoren ist zwar 
vorhanden, aber nicht sehr einfach. Irgendwelche 4 (resp. 8) davon, 
speichern auch die 4-Bit, die das letzte Ergebnis sind oder mit denen im 
nächsten Schritt gerechnet wird. Die anderen haben andere Aufgaben. Sie 
verknüpfen boolsche Werte oder Speichern andere Dinge. Abgesehen davon, 
halte Dich nicht an dieser Zahl fest. Sie ist einfache nur eine 
Konsequenz des Schaltwerkentwurfs, hat sonst keine weitere Bedeutung. 
Allenfalls wichtig ist noch, die Fläche, welche diese Transistoren 
einnehmen.

von Peter R. (pnu)


Lesenswert?

1Bit Wortbreite reicht für Steuerungen mit Logiksignalen (siehe SPS) 
völlig aus, es gab sogar mal früher von Motorola eine CPU mit 1 bit 
Datenbreite.

Dezimalzahlen lassen sich mit 4 Bit darstellen, dafür reichen also rein 
numerisch arbeitende Rechner 4 Bit völlig aus.

bei Texten reichen eigentlich 7bit (ASCII-Code) aus, wegen der 
Aufwärts-Kompatibilität hat man 8bit gewählt (zuerst musste man die 
bereits auf dem Markt befindlichen 4-bit Speicherbausteine für die 
8-Bitter paarweise einsetzen)

Mehr bit Wortbreite (16,32,64bit,... Parallelrechner) bringen eigentlich 
keine neuen Fertigkeiten sondern sind nur schneller, weil sie 
mehrstellige Zahlen in weniger Schritten und mit weniger 
Stellenüberträgen verarbeiten können.

Für Textverarbeitung sind 32- oder 64-bitter eigentlich technischer 
Blödsinn.

: Bearbeitet durch User
von Tim  . (cpldcpu)


Lesenswert?

Peter R. schrieb:
> Für Textverarbeitung sind 32- oder 64-bitter eigentlich technischer
> Blödsinn.

Ich schreibe schon manchmal Texte mit mehr als 65535 Zeichen.

von Peter R. (pnu)


Lesenswert?

Tim    schrieb:
> Ich schreibe schon manchmal Texte mit mehr als 65535 Zeichen.

Der Zeichenvorrat (z.B. verschiedene Buchstaben) wird da von Dir mit der 
Zeichenzahl (Länge eines Textes) verwechselt.

Normalerweise wirst Du auch bei sehr umfangreichen Texten mit dem 
Alphabet und einigen zusätzlichen Steuerzeichen arbeiten, oder schreibst 
Du chinesische Texte?

: Bearbeitet durch User
von Tim  . (cpldcpu)


Lesenswert?

Peter R. schrieb:
> Der Zeichenvorrat (z.B. verschiedene Buchstaben) wird da von Dir mit der
> Zeichenzahl (Länge eines Textes) verwechselt.

Ich glaube Du vergisst, dass es auch so etwas wie Addressregister gibt. 
Selbst die 8 bitter haben schon 16 bit Addressregister.

Bei dem Umstieg auf 64Bit ging es hauptsächlich um die Erweiterung des 
Addressraums.

: Bearbeitet durch User
von Kein Name (Gast)


Lesenswert?

>Der Zusammenhang zwischen den 4-Bit und den 2300 Transistoren

Hier hat jemand einen 4-Bit Addierer mit Transistoren aufgebaut.

http://www.waitingforfriday.com/index.php/4-Bit_Computer

Für einen 4-Bit Addierer braucht er 22 Transistoren. Damit sein 
"Computer" sinnvolle Arbeit machen kann, braucht er 4 Addierer. Also 88 
Transistoren.

Der 4004 hat 45 Maschinenbefehle. Sagen wir einfach über den Daumen 
gepeilt: für jeden Befehl braucht ein 4-Bit Prozessor 50 Transistoren - 
ergibt 2300.

Oder umgekehrt: Intel konnte damals 2300 Transistoren auf einem Chip 
unterbringen. Wollte einen Prozessor mit 45 Maschinenbefehlen bauen. Da 
kann man halt nur 4 Bit gleichzeitig verarbeiten.

von Flo H. (tori1117)


Lesenswert?

Vielen Dank für die Antworten. Sorry wenn ich für euch triviale Fragen 
stelle. Aber für mich ist es nicht ganz einfach zu verstehen.

Null:0 0 0 0
Eins:0 0 0 1
Zwei:0 0 1 0
Drei:0 0 1 1
Vier:0 1 0 0
Fünf:0 1 0 1
Sechs:0 1 1 0
Sieben:0 1 1 1
Acht:1 0 0 0
Neun:1 0 0 1
Zehn:1 0 1 0
Elf:1 0 1 1
Zwölf:1 1 0 0
Dreizehn:1 1 0 1
Vierzehn:1 1 1 0
Fünfzehn:1 1 1 1

Sind das die max Kombinationen die man aus t1   t2   t3   t4 errichen 
kann 2^4?
                                           0/1  0/1  0/1  0/1




t= Transistor

von Tim  . (cpldcpu)


Lesenswert?

Kein Name schrieb:
> Hier hat jemand einen 4-Bit Addierer mit Transistoren aufgebaut.
>
> http://www.waitingforfriday.com/index.php/4-Bit_Computer
>
> Für einen 4-Bit Addierer braucht er 22 Transistoren. Damit sein
> "Computer" sinnvolle Arbeit machen kann, braucht er 4 Addierer. Also 88
> Transistoren.

Der i4004 ist in PMOS-Technik aufgebaut. Damit sieht die Schaltung eines 
Addierers etwas anders aus, als im Link.

Hier ist ein Bild eines I4004 Dies:
http://flylogic.net/knohl/i4004/i4004.jpg

Hier sind die Funktionen der einzelnen Bereiche erklärt, leider etwas 
undeutlich.

http://www.outframe.com/4004_map.png

Und hier gibt es die kompletten(!) Schaltungen:

http://www.4004.com/mcs4-masks-schematics-sim.html


> Der 4004 hat 45 Maschinenbefehle. Sagen wir einfach über den Daumen
> gepeilt: für jeden Befehl braucht ein 4-Bit Prozessor 50 Transistoren -
> ergibt 2300.

Ganz so schlimm ist es aber nicht. Es wird nicht jeder Befehle durch 
eine eigene Logik implementiert.

: Bearbeitet durch User
von Kein Name (Gast)


Lesenswert?

> Sind das die max Kombinationen die man aus t1 t2 t3 t4 errichen
kann 2^4?

Einfache und klare Antwort: Ja.

Bei der Frage wie man nun die Zahl 16 in 2 Gruppen zu je 4 Bit 
unterbringt gibt es mehrere Möglichkeiten.

Heute nimmt man:  0001 0000
Zu 4004 Zeiten war üblich:  0001 0110

von innerand i. (innerand)


Lesenswert?

Flo Haber schrieb:
>
> Sind das die max Kombinationen die man aus t1   t2   t3   t4 errichen
> kann 2^4?
>                                            0/1  0/1  0/1  0/1
>
> t= Transistor

Ich denke der Sprung auf die Transistoren ist hier etwas zu groß.
Aus den Transistoren werden erstmal Logik-Gatter gebaut und aus denen 
dann die CPU. Also 1 Bit = ein Transistor ist eigentlich falsch.

von Flo H. (tori1117)


Lesenswert?

ok Danke, verstehe es immer besser.

Zustände   16   8   4   2
Wertigkeit 8    4   2   1

Warum nimmt man diese Wertigkeit?

Könnte man auch festlegen, dass 0 0 0 1 auch was anderes ist?

Ist dann der Speicher, der adressiert werden kann 16 bits / 2 Byte?

Das mit den Gruppen habe ich nicht ganz verstanden. Warum man 16 in
2 Gruppen einteilt je 4 Bit?

hatte immer gedacht, dass 1 Bit durch ein Transistor dargesellt wird,
da zwei Zustände 0/1 Storm aus / Strom ein.

Da kommt noch ganz schön viel Arbeit auf mich zu

: Bearbeitet durch User
von Mark B. (markbrandis)


Lesenswert?

Flo Haber schrieb:
> Könnte man auch festlegen, dass 0 0 0 1 auch was anderes ist?

Die am weitesten rechts stehende Ziffer eine ganzen Zahl hat immer die 
Wertigkeit eins. Egal ob die Basis zehn ist, oder zwei, oder 16.

von innerand i. (innerand)


Lesenswert?

Flo Haber schrieb:
> ok Danke, verstehe es immer besser.
>
> Zustände   16   8   4   2
> Wertigkeit 8    4   2   1
>
> Warum nimmt man diese Wertigkeit?
>

Das ergibt sich aus dem Binärsystem.

Nehmen wir mal die Zahl 192 im Dezimalsystem. Die kann man auch so 
anschreiben: 1*10^2 (=1*100) + 9 * 10^1 (=9*10) + 2 * 10^0 (=2*1)
Es heißt eben Dezimalsystem, weil es die Basis 10 hat.

Im Binär-System ist die Basis eben Zwei: 2^4(=16) 2^3(=8) 2^2(=4) 
2^1(=2) 2^0(=1)
Die Zahl 10 (dezimal) wird darin zu 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 0*2^0, 
also 01010 (binär)

: Bearbeitet durch User
von Rolf Magnus (Gast)


Lesenswert?

Flo Haber schrieb:
> ok Danke, verstehe es immer besser.
>
> Zustände   16   8   4   2
> Wertigkeit 8    4   2   1
>
> Warum nimmt man diese Wertigkeit?

Aus dem selben Grund, warum man im Dezimalsystem Wertigkeiten wie 1000 
100 10 und 1 nimmt.

> Könnte man auch festlegen, dass 0 0 0 1 auch was anderes ist?

Ja, könnte man, und teilweise macht man das auch. Es gibt verschiedene 
binäre Codierungen. Siehe 
http://de.wikipedia.org/wiki/Binärcode#Codebeispiele

> Ist dann der Speicher, der adressiert werden kann 16 bits / 2 Byte?

Eine Speicheradresse mußt du dir wie eine Hausnummer vorstellen. In 
jedem Haus wohnt ein Byte. Mit einer 4 Bit großen Adresse kannst du also 
bis zu 16 Bytes adressieren.

> Das mit den Gruppen habe ich nicht ganz verstanden. Warum man 16 in
> 2 Gruppen einteilt je 4 Bit?

Weil einmal 4 Bit nicht ausreichen. Man kommt damit nur bis 15. Das ist 
wieder genau wie im Dezimalsytem. Wenn ich mehr als 9 darstellen will, 
nehme ich einfach eine zweite Stelle dazu.

> hatte immer gedacht, dass 1 Bit durch ein Transistor dargesellt wird,
> da zwei Zustände 0/1 Storm aus / Strom ein.

So einfach kann man das nicht sehen. Es kommt drauf an, was mit dem Bit 
gemacht werden soll. Du brauchst, um es z.B. in einem Register zu 
speichern ein Flipflop, das mindestens aus 2 Transistoren besteht.
http://de.wikipedia.org/wiki/Flipflop

innerand innerand schrieb:
>> Warum nimmt man diese Wertigkeit?
>>
>
> Das ergibt sich aus dem Binärsystem.

Aus dem Dualsystem. Binär heißt erstmal nur, daß eine Stelle zwei 
mögliche Zustände kennt, sagt aber nichts über deren Wertigkeiten aus.

von innerand i. (innerand)


Lesenswert?

Rolf Magnus schrieb:

>
> Aus dem Dualsystem. Binär heißt erstmal nur, daß eine Stelle zwei
> mögliche Zustände kennt, sagt aber nichts über deren Wertigkeiten aus.

Da haben Sie natürlich recht. (Hatte das sogar schon dort stehen und 
habe es dann, warum auch immer, auf Binärsystem geändert.)

von Fpgakuechle K. (Gast)


Lesenswert?

Flo Haber schrieb:

>
> Wie stehen die 4 Bits im Zusammenhang mit den 2.300 Trasistoren?
>

Sehr lose um nicht zu sagen, fast garnicht. Es sind andere Kennwerte die 
den Transistorcount bestimmen wie:
-Tiefe des internen subroutine stacks
-Breite Adresscounter, addressmodi
-Anzahl Instruktionen
-Anzahl Register
-Buslogic (multiplex, prefetch etc)
-...

Schau mal dort:
http://en.wikipedia.org/wiki/Intel_4004#Technical_specifications

Das ist für den Transistorcount verantwortlich...

MfG,

von Flo H. (tori1117)


Lesenswert?

habe bis auf die Gruppen alles verstanden?


           (16)

Gruppe1 (8)    Gruppe2 (8)

(4)               (4)
(4)               (4)



mit 1111 stellt man 15 dar
alles über 15 wäre doch mehr als 4 bit?

von Rolf Magnus (Gast)


Lesenswert?

Flo Haber schrieb:
> mit 1111 stellt man 15 dar
> alles über 15 wäre doch mehr als 4 bit?

Ja, das ist richtig. Vergleiche es einfach wieder mit dem Dezimalsystem. 
Da ist echt kein Unterschied, außer daß eine Ziffer halt nur den Wert 0 
bis 1 haben können, statt 0 bis 9.

Dezimalsystem:
0 1 2 3 4 5 6 7 8 9 -> jetz brauche ich zwei Stellen: 10

Dualsytem:
0 1 -> 2 Stellen: 10 11 -> 3 Stellen 100 101 110 111 -> 4 Stellen 1000 
...

Bei 4 Bits füllt man die führenden Stellen eben mit 0 auf. Also für die 
2 z.B. 0010. Wenn ich vier Bit habe, stehen halt nur 4 Stellen zur 
Verfügung. Es geht bis 1111. Will ich mehr, nehme ich einfach nochmal 4 
dazu und mache genau nach dem selben Schema weiter:

0000 1111 -> 15
0001 0000 -> 16
0001 0001 -> 17
...

von Irgendwer (Gast)


Lesenswert?

Rolf Magnus schrieb:
> 0000 1111 -> 15
> 0001 0000 -> 16
> 0001 0001 -> 17

Und das wird nochmals einfacher wenn man das ganze hexadezimal 
ausdrückt.
Dann entsprechen vier Bit genau einer Hexadezimalstelle:
0000 0001 -> 01
...
0000 1001 -> 09
0000 1010 -> 0A
...
0000 1111 -> 0F
0001 0000 -> 10
0001 0001 -> 11
...

von Route_66 (Gast)


Lesenswert?

Rolf Magnus schrieb:
> Dezimalsystem:
> 0 1 2 3 4 5 6 7 8 9 -> jetz brauche ich zwei Stellen: 10
>
> Dualsytem:
> 0 1 -> 2 Stellen: 10 11 -> 3 Stellen 100 101 110 111 -> 4 Stellen 1000

Hallo tori1117!
Zur Übung von dem was Rolf schrieb, kannst Du ja mal überlegen, wie ein 
Drei-Bit-Prozessor rechnen würde.
Sage jetzt nicht, 3 Bit wären utopisch! Das Oktalsystem gibt es 
wirklich.

von Flo H. (tori1117)


Lesenswert?

ein 3 bit Prozessor könnte dann die zahlen von 0 bis 7 darstellen.

Ich habe noch eine Frage zum 4 Bit Prozessor.

sagen wir ich möchte 15 + 15 rechnen. Kann er dann mit der Zahl 30
arbeiten?

von Mr. Claudius (Gast)


Lesenswert?

Flo Haber schrieb:
> Ich habe noch eine Frage zum 4 Bit Prozessor.
>
> sagen wir ich möchte 15 + 15 rechnen. Kann er dann mit der Zahl 30
> arbeiten?

Beim 4 Bit Prozessor ist das Ergebnis 14, das Übertragsflag (carry) 
gesetzt.

von Norbert M. (Gast)


Lesenswert?

Flo Haber schrieb:
> Kann man dann die Zahl 19 nicht darstellen? Das würde doch
> für einen Taschenrechner keinen Sinn machen?

Nach dieser Logik würde ein 8-Bit-Taschenrechner nur bis 255 zählen 
können und einer mit 16 Bit bis 65535. Bereits durch diese einfache 
Schlussfolgerungerung hättest Du einsehen müssen, daß Du einem 
Denkfehler unterlegen bist.

> Wie stehen die 4 Bits im Zusammenhang mit den 2.300 Trasistoren?

Gar nicht. Zumindest nicht soo pauschal.

> Ich hoffe, dass mir jemand helfen kann. Bin irgendwie davon besessen und
> möchte es verstehen.

Wenn Du wirklich ein minimales Interesse am Verständnis gehabt hättest, 
dann hättest Du Dich bestimmt soweit informiert, daß Du sicher Deinen 
ersten Gedanken 'mit einer 4-Bit-CPU kann man nur bis 16 rechnen' 
verworfen hättest.

Da dem nicht so ist bist Du entweder ein Troll, ein Lügner oder dumm wie 
ein Stein. In allen drei Fällen lohnen sich weitere Ausführungen nicht.

LG, N0R

von Alex (Gast)


Lesenswert?

Norbert M. schrieb:
> ersten Gedanken 'mit einer 4-Bit-CPU kann man nur bis 16 rechnen'
> verworfen hättest.
Spätestens wenn man ASM programmiert wird man verstehen, wieso man mit 
einer 4-bit CPU auch mit 16bit Zahlen rechnen kann.

von Flo H. (tori1117)


Lesenswert?

Norbert M. schrieb:
> Da dem nicht so ist bist Du entweder ein Troll, ein Lügner oder dumm wie
> ein Stein. In allen drei Fällen lohnen sich weitere Ausführungen nicht.

Beleidigungen bringen niemanden was. Wenn du schlechte Laune hast, dann 
lass sie bitte nicht an mir aus. Manchmal leiden solche Leute auch an 
Minderwertigkeitskomplexen und wollen ihr Ego pushen. Um sich mal auf 
dein Niveau zu begeben. Du magst zwar diesbezüglich Ahnung haben, aber 
normalverteilt ist deine Intelligenz nicht, sonnst würdest nicht so ein 
primitives Verhalten an den Tag legen.

Außerdem, wenn wenn ich kein Interesse hätte, wieso sollte ich denn hier
ins Forum schreiben zum Spaß?

Es gibt keine dumme Fragen. Niemand ist perfekt und so einfach ist die
funktionsweise auch nicht zu verstehen, erst recht wenn man sich damit 
nur paar Stunden befasst hat. Es ist halt für micht einfach zu 
verstehen.

: Bearbeitet durch User
von H.Joachim S. (crazyhorse)


Lesenswert?

Flo Haber schrieb:
> Außerdem, wenn wenn ich kein Interesse hätte, wieso sollte ich denn hier
> ins
> Forum schreiben zum Spaß?

naja, von denen gibts hier mehr als genug :-) Die erfreuen sich eben 
dran, komisches Zeug zu schreiben und dann zu schauen, wie die Sache 
heiss läuft.

Schau dir hinter die Stirn und du wirst merken, dass auch du i.a. nur in 
einem sehr kleinen Zahlenraum tatsächlich rechnest und für grössere 
Zahlen erlernte Algorithmen benutzt um damit das grössere Problem in 
Teilschritte zerlegst. Genau das macht auch ein kleiner Prozessor mit 
Zahlen, die seinen direkten Zahlenraum überschreiten. Solange genug 
Speicher und Zeit zur Verfügung stehen, gibt es keine Grenze für Zahlen, 
die ein 4bit-Prozessor berechnen kann. D.h. direkte komplette 
Verarbeitung wird mit Hilfe eines Programms in ausführbare Teilaufgaben 
zerlegt.

von Flo H. (tori1117)


Lesenswert?

H.Joachim Seifert schrieb:
> naja, von denen gibts hier mehr als genug :-) Die erfreuen sich eben
> dran, komisches Zeug zu schreiben und dann zu schauen, wie die Sache
> heiss läuft.

Man kann aber nicht alle Leute pauschalisieren, wenn man es nicht zu
100% weiß und beleidigen.


Danke, damit kann ich was anfangen.

Also dann sind auch für die meisten Anwendungen 32 bit ausreichend.
Aber da es dann nur auf 4 gig ram beschränkt ist, macht es Sinn ein
64 Bit OS zu installieren richtig?

von H.Joachim S. (crazyhorse)


Lesenswert?

Du verwurstest 2 Sachen, die nichts miteinander zu tun haben (mit dem OS 
sind es sogar 3)
1. Verarbeitungsbreite des Prozessors (also wieviele Bit kann der in 
einem Rutsch verarbeiten)
2. Adressbereich (also auf wieviel Speicherzellen kann direkt 
zugegriffen werden)

Beides hat NICHTS miteinander zu tun.

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.