Hey! Unser Lehrer hat uns heute in der Schule eine Vortrag gehalten über Rechner-Architekturen und deren Entwicklung usw. Dann ging es halt auch um die Zahlendarstellung. Er meinte halt, dass sich das 2er-System so eingebürgert hätte (wegen "Strom an" -> "Strom aus"). Aber ist das wirklich so? Wieso gibt es nicht einfach noch einen dritten, vierten, etc Zustand bzw. einfach eine andere Basis statt der zwei? Und warum sind diese Architekturen immer 32bit oder dann 64bit? Wiso gibt es keine 50bit-Architektur? Habe das so verstanden, dass die bits immer die breite des Busses angeben bzw die größe der Datenmenge, die aus dem Speicher in die CPU geladen wird. Aber wieso darf diese nicht einfach z.B. 50bit groß sein? Warum 8, 16,32, 64, 128? Da muss doch mehr dahinter stecken, als die Aussage: "das wurd' damals so entwickelt und wird deshalb heute noch so angewendet." Vielen Dank für eure Erklärungen!
Es fing an mit einem Schalter, der kann an oder aus also 0 oder 1. Dann hat man es mit einem Relais versucht, das kann an oder aus. Dann kommt der Transistor, der kann an oder aus. Und so ging es weiter. Zumindest in der digital Elektronik. Es gibt bzw. gab auch die Variante mit Analog-Rechnern und manche versuchen sich an Fuzzy-Logic das gibt es noch mehr als 1 und 0. Wie so oft im Leben, die einen sehen alles Schwarz und Weiss. Andere sehen auch noch was dazwischen...
@Seb Er (smokyjay) >sich das 2er-System so eingebürgert hätte (wegen "Strom an" -> "Strom >aus"). Aber ist das wirklich so? Ja. >Wieso gibt es nicht einfach noch einen dritten, vierten, etc Zustand Wei es dann analog würde, was fehleranfälliger und ggf. langsamer ist. Binär EIN/AUS ist sehr robust und schnell. >bzw. einfach eine andere Basis statt der zwei? Z.B. acht, oktal. Gibt es aber nur in der Software, bei UNIX. Hardware ist immer binär. >Und warum sind diese Architekturen immer 32bit oder dann 64bit? Weil sich das so eingebürgert hat. Irgendwann wurden mal 8 Bit als Byte definiert. Das Doppelte (Basis zwei!) sind halt 16. Und dann das Doppelte, des Doppelten, des doppelten. > Wiso >gibt es keine 50bit-Architektur? Ist zu exotisch, lohnt nicht. Es gibt ein paar DSPs mit 24 Bit. Einige alte PICs mit 10, 12 und 14 Bit. >Habe das so verstanden, dass die bits immer die breite des Busses >angeben bzw die größe der Datenmenge, die aus dem Speicher in die CPU >geladen wird. Das ist im wesentlichen auch so. > Aber wieso darf diese nicht einfach z.B. 50bit groß sein? Darf schon lohnt aber nicht. Wenn dann schon 48, das ist durch 8 teilbar. >Warum 8, 16,32, 64, 128? Siehe oben. MfG Falk Da muss doch mehr dahinter stecken, als die Aussage: "das wurd' damals so entwickelt und wird deshalb heute noch so angewendet." Vielen Dank für eure Erklärungen!
Elektrisch hat man mit nur zwei erlaubten Zuständen den größtmöglichen Störabstand zwischen Zuständen. Logisch ist das Vorhandensein eines Zustandes - oder gerade sein Gegenteil - am einfachsten zu verarbeiten. Systematisch lässt sich jeder komplizierte Zusammenhang auf diese 1-0 abbilden, etwas anderes ist daher auch nicht nötig. Es gab in der Geschichte durchaus Wordlängen, die keine Zweier-Potenz sind. Auch heute noch, siehe z.B. die PIC-Controller.
Seb Er schrieb: > Dann ging es halt auch um die Zahlendarstellung. Er meinte halt, dass > sich das 2er-System so eingebürgert hätte (wegen "Strom an" -> "Strom > aus"). Aber ist das wirklich so? Ja. > Wieso gibt es nicht einfach noch einen dritten, vierten, etc Zustand > bzw. einfach eine andere Basis statt der zwei? Gibt es teilweise auch: in Flash-Speichern werden pro Zelle oft mehr als 2 Zustände gespeichert. Allerdings ist das eine Sache, die das Flash mit sich selbst ausmachen muss, das Interface ist wie üblich binär. Folglich kommen auch hier nur Zweierpotenzen in Frage, also beispielsweise 2 Bits pro Zelle. Bei anderen Werten müsse man multiplizieren/dividieren um mit den binären Werten des Interface konform zu gehen. Allerdings gibt es das auch nur an derart speziellen Ecken. Verarbeitet und gerechnet wird binär, weil das die einfachste und effizienteste Methode ist. In der Anfangszeit waren Rechner sehr verbreitet, die dekadisch rechneten. Zwar auch mit 2 Zustanden pro Leitung/Speicherelement, aber 4 Bits bildeten eine Dezimalstelle und gerechnet wurde effektiv dezimal. Das machte es zwar einfacher, die Werte direkt abzulesen und einzugeben, aber in den 40 Bits von 10 Dezimalstellen sind binär ca. 1000 Mrd Werte codierbar, was 12 Dezimalstellen entspricht. Man verschenkt also erheblich Genauigkeit. Und technisch ist diese Dezimalrechnung zudem komplizierter. > Und warum sind diese Architekturen immer 32bit oder dann 64bit? Wiso > gibt es keine 50bit-Architektur? Ich weiss von alten Architekturen mit 12, 18, 24, 36, 48 und 60 Bits. Allerdings sind Zweierpotenzen im Vorteil, weil man sie in Komponenten bis runter aus einzelne Bits zerlegen kann, ohne bei der damit verbundenen Rechnung mehr tun zu müssen, als Bits links/rechts zu schieben. Denn dazu muss man multiplizieren/dividieren, was arg teure Operationen sind, wenn sie nicht auf besagte Schiebeoperationen rauslaufen. Wenn man Texte in 8-Bit Bytes byteweise sequentiell auf einem 48-Bit Rechner speichert, dann muss man, um an das ein Byte enthaltene Wort zu kommen, durch 6 dividieren. Das ist oft die teuerste Operation, die ein Rechner hat. Infolgedessen kamen solche Bitbreiten praktisch nur bei Rechnern vor, die für den technisch/wissenschaftlichen Sektor vorgesehen waren, deren Hauptaufgabe also in Rechenoperationen bestand. Da konnten 48 Bits mit weniger Aufwand ausreichen, wo bei 32-36 Bits die Genauigkeit zu gering und bei 64 Bits der Aufwand zu gross war. Mit der IBM 360 Linie, die die davor in getrennten Systemen stattfindende technisch/wissenschaftliche und kaufmännische Verarbeitung im gleichen System integrierte setzte sich die ausschliesslich binäre Technik mit Zweierpotenzen als Verarbeitungsbreite endgültig durch. > Habe das so verstanden, dass die bits immer die breite des Busses > angeben bzw die größe der Datenmenge, die aus dem Speicher in die CPU > geladen wird. Es gibt keine von allen akzeptierte Definition dafür, weil bei vielen Prozessoren mehrere verschieden breite Busse existieren, die zudem auch noch von der Breite der Recheneinheit verschieden sind. Folglich ist es bei manchen Prozessoren recht umstritten, ob es sich bei ihnen um 8-, 16- oder 32-Bit Prozessoren handelt (68008: 8-Bit Bus, 16-Bit Verarbeitung, 32-Bit Adressen und Register).
Seb Er schrieb: > Wieso gibt es nicht einfach noch einen dritten, vierten, etc Zustand > bzw. einfach eine andere Basis statt der zwei? Auch diese Ansätze wurden in der Vergangenheit ausprobiert, aber das binäre System hat etliche Vorteile gegenüber anderen, "analogen" Systemen. Schon Babbage hatte das erkannt und seine Rechenmaschinen als binäre Rechenmaschinen konzipiert. Das "digitale" Konzept war auch da schon nichts Neues; schon im 16. udn 17. Jahrhundert hatten Mathematiker oder Universalgelehrte wie Leibnitz und Pascal das Dualsystem (und auch Systeme mit anderen Basen) systematisch beschrieben und z.B. gezeigt, dass sich alle Rechenoperationen auch auf Zahlen mit anderen Basen anwenden lassen. Vermutlich war auch die Erfindung des Transistors in der Telekom-Ecke ein Wegbereiter für digitale Systeme. Die gesamte Telefonie (Vermittlung) arbeitete ja lange Zeit mit Schaltern bzw. Steckverbindungen; erstmal die Damen, die Verbindungen stöpseln mussten, später dann automatisierte Systeme mit Relais und Frequenz- und/oder Pulssteuerung (Wählscheibentelefon). Die erste CPU (Intel 4004) war noch eine vier-bit-Maschine, wohl einfach aus dem Grund, dass sie für ein Taschenrechner konzipiert war. Dezimalzahlen benötigen nun mal 4 Bit pro Ziffer, auch wenn diese dann nicht voll ausgenutzt werden. Noch heute gibt es BCD Rechenmodi auf vielen CPUs, auch wenn die Register 32 oder 64 Bit breit sind. Die jew. Verdoppelung von 4 auf 8, auf 16, 32 und 64 bit war erstmal einfach praktisch, und erleichtert zweitens das Arbeiten mit bestehenden Datenbeständen. Aber es geht auch anders, wie man bei den PDP sehen kann (da gab's 12, 16, 18 und 36 Bit Systeme). So ist für mich nachvollziehbar, dass die digitalen Systeme das "Rennen" gemacht haben, weil sie kostengünstiger, zuverlässiger und leichter beherrschbar sind als analoge Systeme.
A. K. schrieb: > Allerdings sind Zweierpotenzen im Vorteil, weil man sie in Komponenten > bis runter aus einzelne Bits zerlegen kann, ohne bei der damit > verbundenen Rechnung mehr tun zu müssen, als Bits links/rechts zu > schieben. Denn dazu muss man multiplizieren/dividieren, was arg teure > Operationen sind, wenn sie nicht auf besagte Schiebeoperationen > rauslaufen. Das gilt für das Binärsystem generell, nicht (nur) für Zweierpotenzen. Schieben (shift) funktioniert genau so gut bei einem 8 wie bei einem 123 bit Wort.
Tom M. schrieb: > Das gilt für das Binärsystem generell, nicht (nur) für Zweierpotenzen. > Schieben (shift) funktioniert genau so gut bei einem 8 wie bei einem 123 > bit Wort. Ich hatte damit keine Bitfelder wie in C gemeint, sondern indizierbare Komponenten. Zugegeben, im zitierten Absatz nicht eindeutig formuliert, daher hatte ich das Beispiel mit der Textspeicherung angehängt. Wenn du deine 123-Bit Worte verwendest, um ein gepacktes Array aus 100000 Bits zu speichern, dann ist das mit Schieben allein nicht wirklich sinnvoll.
Tom M. schrieb: > Steckverbindungen; erstmal die Damen, die Verbindungen stöpseln mussten, > später dann automatisierte Systeme mit Relais und Frequenz- und/oder > Pulssteuerung (Wählscheibentelefon). Wobei die Frequenzsteuerung in der Telefonie ein Beispiels für nicht binäre Signalisierung ist, weil 16 Zustände in einem aus 2 Frequenzen mit je 4 Varianten gemixten Signal codiert werden. Insofern ist das verwandt mit der moderneren Datenübertragung wie in Modems oder Digitalfernsehen, die beispielsweise in jedem Signalschritt 64 Zustände also 6 Bits codieren. Die älteste verbreitete elektrische Signalisierung ist wohl das Morsen, zunächst im 19. Jahrhundert per Telegraph, später per Funk. Und das ist auf unterster Ebene binär.
A. K. schrieb: > Die älteste verbreitete elektrische Signalisierung ist wohl das Morsen, > Und das ist auf unterster Ebene binär. Wie meinst du das? Es gibt hier doch drei Symbole: Punkt, Strich und die Pause zwischen den Zeichen.
Es sind nicht immer Zweierpotenzen. So ein PIC (ein Microcontroller von MicroChip) kommt je nach Typ mit 12 oder 14 Bit im Befehlswort daher. Und für Video-Zwecke gibt es RAM's mit 'krummen' Bitanzahlen, ich glaub 18 oder so. Auch bei AD-Wandlern und anderem Zeugs gibt es 10, 12, 13 Bit und noch anderes. Also wenn man genau hinschaut, dann sind es eben nicht immer nur Zweierpotenzen. Aber Schaltkreise, die möglichst universell seien sollen, also RAM's, Bustreiber usw. werden eben immer in Zweierpotenzen gebaut, weil das im Allgemeinen die günstigste Version ist. W.S.
Detlev T. schrieb: > Wie meinst du das? Es gibt hier doch drei Symbole: Punkt, Strich und die > Pause zwischen den Zeichen. Das ist bereits die zweitunterste Ebene. Die unterste ist an/aus. Darauf sitzt dein Code mit den 3 Werten, darauf dann einer mit einigen zig Werten.
Falk Brunner schrieb: >>Und warum sind diese Architekturen immer 32bit oder dann 64bit? > > Weil sich das so eingebürgert hat. Irgendwann wurden mal 8 Bit als Byte > definiert. Tatsächlich ist das Byte eigentlich nicht so definiert, auch wenn es heute fast überall synonom verwendet wird. Das Byte wurde eher definiert als die kleinste einzeln adressierbare Speichereinheit und zugleich die Speichereinheit, die man brauchte, um ein Zeichen des System-Zeichensatzes zu speichern. Damals waren die Bytes auch eher 5 oder 6 Bit breit und nicht 8. Heutzutage ist eben bei der überwiegenden Mehrheit der Systeme die kleinste Einheit 8 Bit breit. Den "Systemzeichensatz" gibt es heute so nicht mehr. Es können viele Zeichensätze gleichzeitig mit teils unterschiedlicher Bitbreite auf einem System in Verwendung sein.
Nur ein Gedanke: Bei 4 Bit , 8 Bit, 16 Bit usw Busbreiten kann ich die Bits innerhalb der Busse optimal adressieren, brauche also bei 8 Bit breiten Daten z. B. 3 Bits um jedes der Bits im Datum zu adressieren. Bei 12 Bit breiten Bussen, brauche ich 4 Bits, womit 4 mögliche weitere Bits verschwendet würden. In den Befehlssätzen der 8 Bit Controller war das durchaus relevant. Gruss Axel
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.