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
Die Rechenmaschinen früher haben normalerweise in BCD-Darstellung gerechnet. Jede Dezimalstelle belegt dabei 4 Bits, was also genau zur Wortbreite des Prozessors passt.
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
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.
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
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.
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
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
>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.
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
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
> 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
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.
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
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.
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
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.
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.)
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,
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?
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 ...
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 ...
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.
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?
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.
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
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.
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
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.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.