Welche auswirkung hätte eine höhere Bitbreite auf ein Computersystem bzw. eine auf diesem System betriebene Software?
Antworten (4)
-
1Hilfreichste Antwort ausgezeichnet vom FragestellerAntwort von
hypergerdhypergerd
Jetzt verstehe ich was Du meinst. Das sind keine breiteren Bits, sondern Duobinäre- oder sogar Multi-Pegel-Signale siehe
http://www.itwissen.info/definition/lexikon/Ternaer-ternary.html
Duobinäre Signale benötigen weniger Bandbreite als die NRZ-Codierung. Außerdem können einige Fehler ohne zusätzliche Paritätsbits erkannt werden. Man versucht durch Mehrpegelverfahren, dem Multi Level Coding (MLC) mit codierter Modulation die Datentransferrate bei gleicher Datenrate zu erhöhen.
Es gibt in der Tat verschiedene Ansätze die Anzahl der Takte pro Unterprogramm zu reduzieren, da die physikalischen Grenzen (oberhalb 2 GHz entstehen extreme Temperaturen: Mikrowellenherde 2,45 GHz... 5,8 GHz) der Taktfrequenz einer CPU erreicht werden.
Die extremste Form - der 1 Takt pro Algorithmus-Rechner - lasse ich mal beiseite, da die Hardware extrem flexibel (FPGAs?) und die Software genau der Hardware zugeschnitten werden müsste.
Der aktuelle Weg sind die Mehrkern-Prozessoren mit den bekannten Nachteilen: nicht alle Algorithmen lassen sich parallelisieren, Software ist anspruchsvoller und Fehleranfälliger...
Ein weiterer Weg ist die Reduzierung der Takte pro ASM-Befehl. Ein Bit - als kleinste Informationseinheit - bleibt weiterhin ein Bit, aber man kann in der Tat die Physik unterhalb der ASM-Befehls (OP-Codes) optimieren (was nicht immer wirtschaftlich ist). ASM-Befehle benötigt bis zu 343 Takte (fsincos = 343Takte; fpatan 337 Takte; je nach Hersteller).
Mehrpegelverfahren, Multi Level Coding (MLC), bei dem die Pulsamplitude aus mehreren Pegeln besteht und jeder Pegel für sich ein Bit oder eine Bitkombination darstellen, gibt es seit den 70er Jahren. Anwendung ist jedoch hauptsächlich die Reduzierung der Übertragungsfrequenz. Innerhalb einer CPU hat man jedoch weniger Probleme große Daten gleichzeitig zwischen den Registern zu übertragen, sondern die Logik eines ASM-Befehls mit wenig Takten zu realisieren. CPUs bestehen heute schon aus etwa 30 Mio. Transitoren. Die Hersteller haben mit vielen Problemen gerade bei hohen Frequenzen zu kämpfen. Eine Logik zu entwickeln, die auch noch auf verschiedenen Spannungspegeln basiert, stelle ich mir sehr schwehr vor. Es wurden extra Schmitt-Trigger entwickelt, um 2 Pegel sauber su trennen. Bei noch mehr Peglen wird auch dies komplizierter. Außerdem wäre die Mehrpegellogik sehr speziell und vermutlich zu wenig universell... Eine Möglichkeit wäre eine lokale Bitbreiten-Vergrößerung für spezielle ASM-Befehle. Zwar kommen z.B. Double Gleitpunktzahlen als 80-Bit hinein, aber für interne Zwischenergebnisse (die oft genauer sein müssen) könnte eine Vergrößerung z.B. auf 128 Bit sinnvoll sein. Mit welcher Technik diese "Unterlogik" realisiert wird (binär oder Multi.Pegel) ist allein eine Optimierungsfrage.
Und da sind wir auch schon beim Thema Mikroelektronik und Patente. Selbst wenn Wissenschaftler hier starke Verbesserungen herausfinden würden, wirst Du schnell merken, dass sofort wirtschaftliche Interessen und Patente zu tragen kommen. Welche Firma wird schon ihr Geheimnis verraten...
-
1Antwort von
hypergerdhypergerd
Was Du vermutlich meinst ist die BUS-Bit-Breite von Prozessoren und Betriebssystem. Zunächst muss die gesamte Kette vom Prozessor über Betriebssystem bis zur Endsoftware die volle Bitbreite unterstützen. Dann gibt es mit zunehmender BUS-Bit-Breite 2 Grundvorteile:
- Addressierung des Speichers: mehr RAM-Speicher kann direkt angesprochen werden
- pro Assembler-Befehl (Befehlscodes/OP-Codes) können mehr Bits (also größere Variablen) gleichzeitig berechnet werden
Beispiel: 2 Variablen vom Typ INT64 zu multiplizieren dauerte auf einem 32Bit-Betriebssystem mindestens doppelt so lang, da der Compiler intern viele Unterbefehle benötigte um mit seinen 32Bit-ASM-Multiplikationsbefehlen zum selben Ergebnis zu kommen.
Das bedeutet aber auch, dass der Algorithmus für das neuen Betriebssystem optimiert werden muss! Es bringt z.B. nichts, wenn man mit einfachen LONG (also 32Bit) Grafikpunkte auf einem 64Bit Betriebssystem berechnet. Man "verschenkt" pro ASM-Berechnung jedesmal 32Bit.
Die Optimierung ist eine Wissenschaft für sich: Paralleles Rechnen, Nutzung von Mul-Div-Befehlen oder Matrix-Befehlen (mehrere Unterberechnungen pro ASM-Befehl), MMX oder Grafikkarte (GPU)...
Nutzen: 128-Bit-Verschlüsselung braucht große Zwischenergebnisse. d.h. weniger Unterbefehle mit größerer BUS-Bit-Breite
-
1Antwort von
Flitztuete95 Entschuldige den Doppelpost. Für Programmierer in höheren Programmiersprachen wenige bis keine, die Größe eines Integers ändert sich, und ein paar kleine Dinge, aber sonst nicht viel. Man kompiliert halt auf einAnderes Ziel.
In Assembler bleiben die Befehlscodes (OP-Codes) weitestgehend gleich, nur die Addressierung des Speichers ändert sich. Eine Addresse ist nichtmehr n, sondern m Bit lang.
Der Begriff Bitbreite war mir unbekannt, Wikipedia kennt ihn auch nur in einem anderem Artikel... Eine kurze Erklärung was du meinst hätte meinen Ersten Post unnötig gemacht. Der begriff bitbreite ist glaube ich nicht soooo geläufig... Zumindest habe ich ihn noch nie gehört, aber dass muss nichts heißen ;)
Kommentar von
MrPuchMrPuch Wie du unten bereits erwähnt hast, hat ein Bit genau 2 definierbare Werte, 1 und 0
Meine Frage ist simpel: wie würde sich ein Bit mit einer Ternären Wertespannweite von z.b. 0-2 (0,1,2) auf das System auswirken.
Theoretisch könnte man mehr Information auf die selbe Speichergröße abspeichern und je breiter diese Spannweite, desto größere / mehr Werte können einem Bit zugewiesen werden, die Schreib- und Lesezeiten bleiben gleich, da es 1 Bit = 1 verarbeitungs Takt bleibt.
Mir ist sehr wohl bewusst, dass moderne Flash-Speicher und Prozessoren nur mit dem binären System arbeiten können, aber ohne von der technischen Umsetzung zu sprechen, würde ich doch gerne fragen, ob ein Ternärer / Quinärer Speicher + Prozessor, nicht mehr Information in der selben Zeit verarbeiten könnte, als ein heutiges auf dem binären Zahlensystem basiertes Computersystem?
-
-
0Antwort von
Flitztuete95 Wtf ist eine "Bitbreite"? Ein Bit steht für "binary Didgit", und das impliziert ziemlich genau 2 zustände...
Nein das ist nicht das was ich meine, Ich habe eher den Bit selbst gemeint, nicht die BUS-Breite.
Ich habe die Spannweite eines einzelnen Bits gemeint (mehr als nur 1 und 0) nicht die Anzahl der parallel-verarbeiteten Bits