Grundbasis der CPUs: Wieso nur 0V und 1V bei Spannungswerten und nicht 2,3,4,5 etc?

der nutzen von zum BSP einem Tertäiar system wäre doch immens. Man bräuchste einfahc weniger Speicher um die gleichen DAten zu Speichern / Verarbeiten.
 
Ja, aber alles wäre langsamer und vor allem noch viel komplexer!

Nimm 10cm³ und schau mal was du da alles an Daten unterbringen kannst - und nun überleg mal, was passiert wenn man zwar pro Einheit mehr als 1 Bit speichern könnte (bei 3 Zuständen genau genommen 1.58 Bit), aber dafür pro Einheit auch 4mal so viele Transistoren bräuchte.

Grob überschlagen hast du dann zwar die 1.58fache Kapazität pro Zelle, aber auf 10cm³ kannst du nur 1/4 der Speicherzellen unterbringen. Und nach Adam Riese macht das 39.5% der Ausgangskapazität ;)

Fazit: Nette Technik, nette Möglichkeiten aber mit Elektronik nicht sinnvoll umsetzbar. Dazu kommt der Konvertierungsaufwand, bei einem 3er System ist der relativ groß. Bei einem 4er System dagegen wiederrum nur minnimal, weil 4 eben keine Primzahl ist und idealerweise eine 2er-Pozenz ist, was bedeutet wir können 2 Bits komplett darin unterbringen (kein Konvertierungsaufwand).

Bei x Zustängen kommt es immer auf die Primfaktorenzerlegung an, ob man aufwändig konvertieren muss. Sowie die 2 enthalten ist wirds einfach - aber wehe die 2 fehlt ;)
 
@intel_hasser

> Das waren nur Beispielzeiten, aber es steht außer Frage, dass es bei mehreren Zuständen länger dauert, bis ein Zustand eindeutig anliegt - natürlich nur bei elektrischer Übertragung

Solangsam glaube ich zu verstehen was du meinst: Übertragung von Zuständen zwischen el. Bauteilen (auf Platine) mittels diskreter Pegel und externer Synchronisation (Clk).

Dazu folgendes Diagramm:

Code:
Eingangssignal (verzerrt durch induktive und/oder kapazitive Lasten):

           /|
          /  \
         /    +------\
        /^............\.......   
       / T1            \ T2  : Spannungshub zwischen Triggerbedingungen = 3 Einheiten
      /                 \v....  
-----/                   \ +----
                          v
     |<------>|<---->|
Setup Time^    ^ Hold Time

In der Digitaltechnik übliche Signalrekonstruktion mittels Schmitt-Trigger (idealisiert):

        +---------------+          H (n=1)
        |               |
        |               |
--------+               +--------- L (n=0)
        |<-----Tbit---->|

T1: Triggerbedingung Pegel > Pegelschwelle H
T2: Triggerbedingung Pegel < Pegelschwelle L
Tbit = Setup Time + Hold Time = kleinste Bit Periodendauer (Bitrate = 1/Tbit)

So nun ein vergleichbares Diagramm für ein Datenübertragung mit 3 Zuständen:

Code:
Symbol enthält 1,58 Bit Informationsgehlt, 
Spannungshub zwischen zwei Zuständen wiederum (mind.) 3 Einheiten:

              /|
             /  \
            /    +------\
           /             \
          /               \ 
         /                 \ 
        /                   \
       /                     \ 
      /                       \   
-----/                         \ +----
                                v
     |<--------->|<---->|
Setup Time^        ^ Hold Time
 
Signalrekonstruktion mittels kaskadierter Schmitt-Trigger oder Komperator-Logik:

            +---------------+             n=2
            |               |
         +..+               +..+          n=1
         :  |               |  :
---------+--+               |  +--------- n=0
         :  |<-----Tuse---->|  :
         :                     :
         |<--------Tsym------->|

Tuse: Zeitdauer für garantieren Symbol-Zugriff
Tsym: Maximale Symboldauer (=> Symbolrate = 1/Tsym)

Die Setup Time ist natürlich größer als beim vorigen Diagramm, aber diese ist nur ein Faktor der die Bitrate beeinflusst. Was ist wenn sich die Hold Time nicht ändert (ist sehr wahrscheinlich :-?)

Beispiel: Binär-Übertragung (L=0V, H=1V) vs. Tertiär-Übertragung (Z1=0V, Z2=1V, Z3=2V)

Gehen wir mal von gleicher Flanken-Steilheit (Slew-Rate=1V/ns), gleicher Überschwing-Dauer (0.5ns) und gleicher Auswerte-Zeit (1ns) aus:

Damit ergibt sich folgendes Bild:
binär: 1ns+0.5ns+1ns = 2.5ns für 1bit => 400MBit/s
tertiär: 2ns+0.5ns+1ns = 3.5ns für 1.58 bit => 451Mbit/s

Ich will damit eigentlich nur sagen das die Voraussetzungen darüber entscheiden was schneller ist. Nimmst du z.B. unterschiedliche Spannungshübe verändert sich das Bild wieder. D.h. (d)ein generelles Statement passt einfach nicht.

> Das liegt einfach daran, dass wir bei elektrischer Übertragung eine Induktion haben die mit der Pegeländerung wächst - bei 2 Zuständen sind die Spannungsintervalle so groß, dass wir nach kurzer Zeit schon einen eindeutigen Zustand haben, aber bei mehreren Intervallen dauert es länger bis der Spannungspegel sich dem gewünschten Wert angenährt hat (eben einfach weil sich der Spannungspegel dem gewünschten Wert weiter als bei 2 Zuständen annähren muss).

Die Periodendauer eines Symbols hängt von zwei Dingen ab:

1) der Setup-Zeit, diese Zeit wird durch induktive und kapazitive Vorgänge begrenzt.
2) der Halte-Zeit die notwendig ist die Information weiterzuleiten/verarbeiten, größter Einfluß-Faktor ist hier Clock-Skew.

> Die einfachste Umrechnung von Informationen auf ein anderes Zahlensystem geht per Modulo. Im Falle von einem 5er System müsste man 2.32, also 3 Bit nehmen und modulo 5 rechnen. Den Rest übernimmt man mit in die nächsten 3 bit, wo man wieder modulo 5 rechnet aber ich glaub ich hab noch einen Sonderfall ausgelassen.

Wenn ich einen Rechner der native im gleichen Zahlensystem arbeitet stellt sich dieses Problem erst gar nicht (=> Ausgangsfrage).

In anderen Fällen wählt man die Codierung üblicherweise so, dass der "Informationsverlust" (z.B. übergang von 2,32 Bit auf 3 Bit => 0,68 Bit "Verschnitt") mit Redundanz-Infnormation auffüllt wird. Diese Redundanzen kann man bei der Rückkonvertierung nach einer Übertragung wieder nutzbar machen.

Wird dies Redundanz-Verhalten nicht benötigt, nimmt eben keine völlig verschiedene Zahlenbasis zur übertragung! Warum auch? D.h du korrekt erkannt das die Basen m^n mit m=Ursprungsbasis (z.B. 2^n) eine besondere Rolle spielen.

> Nimm 10cm³ und schau mal was du da alles an Daten unterbringen kannst - und nun überleg mal, was passiert wenn man zwar pro Einheit mehr als 1 Bit speichern könnte (bei 3 Zuständen genau genommen 1.58 Bit), aber dafür pro Einheit auch 4mal so viele Transistoren bräuchte.

Wie kommst du auf 4 mal so viele Transistoren? Konventionelles DRAM arbeitet mit einem Transistor und einem Kondensator pro Zelle. Wenn du die Ansteuerlogik änderst wären z.B. unterschiedliche Ladungsmengen nutzbar (-1V = Z0, 0V = Z1, +1V = Z2). Im Flash-Bereich gab es schon die Tendenz zu Multi-Bit Zellen mit genau diesem Mechanismus nur, dass dort 4 oder 8 Spannungsbereiche unterschieden werden (MLC-Flash, Floating Gate Cells)

@cih2k
> der nutzen von zum BSP einem Tertäiar system wäre doch immens. Man bräuchste einfahc weniger Speicher um die gleichen DAten zu Speichern / Verarbeiten.

Nein, so einfach ist das nicht. Die Informationsmege die in einem Medium gespeichert werden kann ist nur abhängig davon wieviele physikalische Zustände man unterscheiden kann. Wie mann diese Zustände in Gruppen von Zifferen organisiert ist ein anderes Problem! D.h. durch die Codierung alleine gibt es keine magische Speicherkompression. Der physikalische Aufwand ist immer noch da.
 
Ha - endlich ;)

Und hier nun mal ein paar Bilder:

simu1b.jpg

simu2b.jpg

simu3b.jpg


Das sind 3 Signalkurven eines SDRam Riegels (glaub 100MHz), hab nur mal schnell gegoogelt -> http://www.arcs.ac.at/IT/ITS/MF/umts_5.htm

Aber so sehen die Signalkurven eben in der Realität aus. Da dauert es viel länger, bis der richtige Pegel anliegt. Und versucht mal bei den Bildern mehr als 2 Zustände zu realisieren ;)
 
THX intel_hasser

Und da schreiben Leute, dass ihre CPU wieder zu langsam sei bei 5 GHz... so eine Schweinerei...

Die allerwenigsten (ich auch nicht) wissen, wie die realen Spannungspegel in einem Rechner aussehen. So gesehen eigentlich schon ein kleines Wunder, wie sich die vielen kleinen Elektronen in die richtigen Bahnen verpissen.

MFG Bokill
 
@intel_hasser

Ich kenn solche Bilder, aber vom Prinzip ändert das nichts -- die Pegel sind nur etwas anders bzw. höher. Du siehst ja selber wie steil die Flanke ansteigt um dann während der Hold-Phase einzuschwingen. D.h. die Setup-Zeit ist gar nicht so dominant. Übrigens sind diese Einschwinger ziemlich unkritisch solange die Schwellwerte nicht verletzt werden. Würderst du das Signal nach einem passend dimensionierten Tiefpass angucken wäre es schon viel glatter.

Wie hast du die Bilder eingefügt? Geht das nur mit http:// referenzen (img tag)? oder gibts noch andere Möglichkeiten?

@PretoriaN
> die ersten computer waren analog, warum sollte man dahin wieder zurück wechseln

Gegenfrage: Warum sollte bis in alle Ewigkeit Digitalrechner verwenden?

Die Natur selbst ist nicht so einfach Aufgebaut. Dort gibt es beides! (z.B. Atome sind aus einer diskreten Anzahl von Kernbausteinen aufgebaut, gleichzeitig kann ein Energiequant aber jede beliebige Frequenz aufweisen)
 
Das Problem ist ja weniger die Flankensteilheit, sondern was mit dem Pegel danach passiert - der zickt nach einer kräftigen Flanke nämlich noch mal ganz schön rum, und so lange muss man den Zustand dann auch halten - letztes Bild, orangener Graph, 2. vertikale Linie von links: So stark kann der Graph rumzicken, das hier ist ein 100MHz SDRam Bus wo ein Riegel fehlt (also was völlig normales).

Heute sind wir bei 200MHz.

PS geht nur mit IMG Tags...
 
@intel_hasser

> Das Problem ist ja weniger die Flankensteilheit, sondern was mit dem Pegel danach passiert - der zickt nach einer kräftigen Flanke nämlich noch mal ganz schön rum, und so lange muss man den Zustand dann auch halten

Das entscheidende an den Diagrammen ist, dass die Schwellwertspannungen nicht über- (Low) bzw. unterschritten (High) werden. D.h. die Ripples bewegen sich immer in einem definierten Spannungsbereich. Bei drei Zuständen ist das prinzipiell nicht anders. Nur dass es eben drei erlaubte Spannungsbereiche gibt; z.B. 0-2V = Zustand 1, 3-5V = Zustand 2, 6-8V = Zustand 3. Ob da nun Ripple drauf sind oder net juckt eigentlich nicht sehr -- dafür gibts ja die Signalregenerations-Schaltung (Schmitt-Trigger o.ä.).

In der Praxis lästiger ist, dass man für höhere Spannungen stärkere Treiberstufen braucht. Letztendlich limitiert die Flankensteilheit dann irgendwann die max. Frequenz. BTW. Der Witz an der Übertragung mit mehreren Zuständen ist ja das man Frequenz gegen Informationsgehalt eintauscht um auf die gleiche Datenrate zu kommen. Wenn die Frequenz durch physikalische gegebenheiten begrenzt ist kann die Datenrate nur noch mit diesem Mittel weiter erhöht werden.
 
Tja - dann nimmst du eben ein paar V mehr und schickst den Schaltkreis zu den Engeln ;)

Die Spannung kann man so ohne weiteres nicht verändern. Dazu müsste man ja erstmal komplett alles umstellen.

Übrigens haben die Ripples beim letzten Bild den zulässigen Grenzwert schon überschritten, steht irgendwo im Text auf der gelinkten Seite.

Die Ripples werden bei mehreren Zuständen ja nicht weniger - die bleiben bei gleicher Spannung & Frequenz immer genau gleich. Leg doch einfach mal grob 3 Bereiche in dem letzten Bild fest, da bekommst du kurz nach der 2. v-linie eben keine 0 sondern eine 1 (wenn unten 0 und oben 2 ist).

Ergo muss man die Frequenz runternehmen - und das ist auch das Problem: Wenn du so willst besteht eine indirekte Proportionalität zwischen Informationsmenge/Takt und Frequenz (auf jeden Fall stimmt die Tendenz).

Auf jeden Fall kann man dadurch bei zb. 4 Zuständen nicht die doppelte Informationsmege übertragen, weil das Signal dann alles andere als sauber ist (wenn wir davon ausgehen, dass man die Datenrate schon maximiert hat - bei 1MHz ist das natürlich locker möglich ;)).



Und so wie ich das sehe geht die Frequenz zu stark in die Knie wenn man den Informationsgeahlt erhöht. Ein einfacher Versuch das zu untermauern:

Die Bereiche sind bei x verschiedenen Zuständen 2/x mal so groß/klein. Die Pegelabweichung vom Idealwert darf also nur noch 2/x mal so klein sein.

Die Informationsmege beträgt nun aber keinesfalls x/2, sondern log(x)/log(2) - damit sinkt die Bereichsgröße zwar 2/x ab, aber die Informationsmenge steigt nur logarithmisch an (weniger als linear).

Und 2/x*log(x)/log(2) strebt im Unendlichen gegen 0.



Mir ist klar, dass dieses Modell auf keinerlei Grundlage aufbaut (ok - meiner Schätzung ;)), aber ich denke es wird deutlich was ich damit sagen will - der Informationsgewinn reicht einfach nicht aus, um den MaxFrequenz-Verlust wieder auszugleichen.
 
Mir ist noch eine etwas bessere Erklärung eingefallen, die bessere Grundlagen hat:

Die Pegeltolleranz bei den Interpretationsbereichen (welcher Pegel als 0 und welcher als 1 interpretiert wird) gibts nur aus dem einen Grund: Störende Abweichungen (eben zb. durch Induktion).

Die Induktion steigt mit der Pegeländerung - also wenn ich den Pegel um 5V ändere ist die Induktion größer als wenn ich den Pegel um 2V ändere. Bei digitaler Übertragung haben wir bei einem Zustandswechseln immer die maximale Pegeländerung, weil die kleinste Pegeländerung der größten entspricht, weil die kleinste Zustandsänderung der größten entspricht, weil es eben nur 2 Zustände gibt.

Bei mehreren Zuständen ist das nicht mehr so. Bei 3 Zuständen zb. gibt es eine kleine und eine große Pegeländerung (zb. von 1 nach 2 bzw. 0 nach 2).
Wenn wir noch mehr Zustände nehmen gibt es immer mehr verschiedenstarke Pegeländerungen (bei 4 Zuständen gibts zb. schon 3 - bei x Zuständen x-1).

Das Problem ist jetzt, dass der Spielraum den der Pegel bei einem Zustand hat immer schlechter ausgenutzt wird (Erinnerung: die Abweichung wächst mit der Pegeländerung).
Wenn ich bei 10 Zuständen von 9 nach 0 wechsele hab ich eine Pegeländerung von sagen wir einfach mal 9.
Also muss der Spielraum beim Zustand 0 groß genug sein, um die bei einer Änderung von 9 enstehende Abweichung abzufangen. Die Wahrscheinlichkeit, dass ich von 9 nach 0 wechsele ist aber ziemlich klein, nämlich 1/10 (ich kann genausogut von jedem anderen Zustand wechseln bzw. kann die 0 auch beibehalten werden).

Bei den anderen Zustandsänderungen wäre der Spielraum aber zu groß bemessen - wir vergeuden was.


Der Ansatz ist schon deutlich fundierter, von jetzt an gehe ich einfach mal davon aus, dass die Abweichung vom Pegel linear zur Pegeländerung steigt (auch wenns in der Praxis vll anders aussieht, die Aussage die entsteht ist die selbe):

Man kann den Verlust sogar recht einfach berechnen ;D (Achtung, Mathematiker! ;))

Gehen wir einfach mal von 5 Zuständen/Pegeln aus. Wenn ich auf die 3 wechs'le beträgt die maximale Pegeländerung 3 (0->3). Wenn ich auf die 2 wechsele ist die max. Pegeländerung 2 (4->2 bzw. 0->2).

Also ergibt sich für die Zustände die maximale Pegeländerung hier:

0: 4
1: 3
2: 2
3: 3
4: 4

(zum Vergleich Digital:
0: 1
1: 1)


Zu welcher Wahrscheinlichkeit verschenken wir Spielraum (weil er nie genutzt wird, weil die Pegeländerung nicht der maximal möglichen Pegeländerung entspricht)?

Bei Digital ist es einfach: Den Spielraum hab ich oben mit 1 für Zustand 0 und 1 für Zustand 1 genommen - die Wahrscheinlichkeit, dass der Pegel genutzt wird beträgt genau 1/2
(wenn wir zu 0 wechseln war der vorherige Zustand entweder auch 0 oder 1)


Wir wollen zur 0 wechseln - der Pegelbereich (den wir brauchen) für eine Pegeländerung von 1 ist also 1, wenn vorher eine 0 anlag ist er 0.

Das macht (1/2)*0+(1/2)*1 (Pegeländerungswahrscheinlichkeiten mal benötigter "Spielraum" - für Zustand 0 + Zustand 1), was genau 1/2 ergibt.
Bei der 1 ergibt sich genau das Selbe, (1/2)*1+(1/2)*0 ist auch 1/2.
Zusammengerechnet macht das 1, der gesamte Spielraum beträgt 2 (1+1) - also vergeuden wir 50% von unserem Spielraum.


Nun die Rechnung für 5 Zustände:

Beim Zustand 0 gibt es diese Pegeländerungen zu den dazu angegebenen Wahrscheinlichkeiten:
Pegeländerung: Wahrscheinlichkeit;
0: 1/5
1: 1/5
2: 1/5
3: 1/5
4: 1/5
(macht insgesammt 1, also alles ok, wir haben nix vergessen)

Nun rechnen wir genau das Selbe wie oben:
(1/5)*0 + (1/5)*1 + (1/5)*2 + (1/5)*3 + (1/5)*4 = 2 (für Zustand 0)

Bei dem Zustand 1 sieht es schon anders mit der Verteilung aus:
0: 1/5
1: 2/5 ( 0->1 und 2->1 )
2: 1/5
3: 1/5

(1/5)*0 + (2/5)*1 + (1/5)*2 + (1/5)*3 = 1.4 (für Zustand 1)

Ich setz das jetzt mal zusammengefasst für die anderen Zustände fort:
(1/5)*0 + (2/5)*1 + (2/5)*2 = 1.2 (für Zustand 2)
(1/5)*0 + (2/5)*1 + (1/5)*2 + (1/5)*3 = 1.4 (für Zustand 3)
(1/5)*0 + (1/5)*1 + (1/5)*2 + (1/5)*3 + (1/5)*4 = 2 (für Zustand 4)


Die Summe der Werte macht 2*2+2*1.4+1.2=8
Unser gesamter Spielraum beträgt 4+3+2+3+4=16


hmmm..... jetzt hab ich mich selbst überzeugt, dass diese Herangehensweise falsch ist *buck*
(8/16=50%)

Also bei 5 Zuständen haben wir genau die selbe Spielraum-Verschwendung wie bei 2 Zuständen. Aber dafür muss man diese Spielräume eben besonders definieren, die für die "inneren" Werte müssen kleiner sein, als für die äußeren. Ansonsten sähe die Rechnung nämlich etwas anders aus, und wir würden bei 5 Pegeln deutlich mehr verschwenden (wenn Interesse besteht rechne ich das gerne mal vor).

Aber der Aufwand für 5 verschiedene Zustände wäre gigantisch - wir bräuchten mindestens 4 Schmitt-Trigger gekoppelt mit mindestens 3 Transistoren (nur mal überschlagen) - ein Schmitt-Trigger besteht aus 2 Transistoren die durch Wiederstände miteinander verbunden sind, die Transistoren müssen dafür mehr können als nur zu schalten, nämlich erst bei verschiedenen Pegeln reagieren (bei gleichen Transistoren realisiert man das über Wiederstände).

Wir kommen damit also auf 11 Transistoren und 4 Wiederstände - im Vergleich zu einem einzelnen Transistor :o

Was ist da wohl die einfachere Lösung?
 
@intel_hasser

> Die Spannung kann man so ohne weiteres nicht verändern. Dazu müsste man ja erstmal komplett alles umstellen.

Und worüber geht diser Thread? Um die [m]möglichkeit[/b] der Nutzung anderer Zahlensysteme als Grundlage einer eigenen Rechnerarchitektur. Da ist es doch vollkommen klar das man die jetzige Binär-Technik nicht einfach übernehmen kann um dann einen größtmöglichen Gewinn von dieser Umstellung zu haben.

Ich sehe diesen Thread mehr dazu die Vor- und Nachteile einer solchen Technologie zu diskutieren. Du siehst m.E. das ganze von einer Warte die eigentlich nur auf Binär-Kompatibilität ausgerichtet ist. Da ist es klar dass als Sieger immer die "alte" Technolgie raus kommt.


> Die Pegeltolleranz bei den Interpretationsbereichen (welcher Pegel als 0 und welcher als 1 interpretiert wird) gibts nur aus dem einen Grund: Störende Abweichungen

Exakt! Damit die Störungen aber keine Auswirkung auf die Übertragung haben benötigt man Redundanz -- In einfachster Form ist das eben ein "Interpretationsbereich". Das ist bei jedem Übertragunssystem so. Unterschiedlich ist wo die Redundanzinformation steckt und wie man sie verarbeitet.

> Übrigens haben die Ripples beim letzten Bild den zulässigen Grenzwert schon überschritten, steht irgendwo im Text auf der gelinkten Seite.

Nein, das ist der Spike auf Bild 2. Der wirkte sich aber nicht aus, weil die Datenübernahme schon vorher passiert ist und das Clock-Signal (=Data Valid Signal) bereits auf Low war.

> Die Ripples werden bei mehreren Zuständen ja nicht weniger - die bleiben bei gleicher Spannung & Frequenz immer genau gleich.

Genau das ist eine Frage der verwendeten Technologie und die muss eben nicht notwendigerweise gleich sein.

> [Gedankenexperiment]
> Und 2/x*log(x)/log(2) strebt im Unendlichen gegen 0.

Das sagt nur etwas über die unterscheidbarkeit der Zustände aus, nicht aber über die übertragbare Informationsmenge, denn die hat eine Zeitliche Abhängigkeit!

> [Rechnung] Zu welcher Wahrscheinlichkeit verschenken wir Spielraum

Das ist nur abhängig von der Symbolfolge die übertragen wird (egal ob nun binär oder sonst wie)! D.h. du beweist damit nur das was du als Voraussetzung angenommen hast, nämlich das alle Zustände gleich verteilt sind.

> Aber der Aufwand für 5 verschiedene Zustände wäre gigantisch - wir bräuchten mindestens 4 Schmitt-Trigger gekoppelt mit mindestens 3 Transistoren (nur mal überschlagen)

Man braucht genau 5 Komparatoren (zu je 2 Transitoren). Die Transistoren bilden je einen Differenzverstärker (OP).

> ein Schmitt-Trigger besteht aus 2 Transistoren die durch Wiederstände miteinander verbunden sind

Jau, wie oben als OP mit einer Mitkopplung über die beiden Widerstände

> die Transistoren müssen dafür mehr können als nur zu schalten, nämlich erst bei verschiedenen Pegeln reagieren (bei gleichen Transistoren realisiert man das über Wiederstände).

Die Transistoren eines Operationsverstärkers arbeiten immer analog :-)

> Wir kommen damit also auf 11 Transistoren und 4 Wiederstände - im Vergleich zu einem einzelnen Transistor

10 Transistoren vs. 2 Transistoren und 2 Widerstände

> Was ist da wohl die einfachere Lösung?

Ist wohl offensichtlich! Über den Aufwand habe ich bisher gar nichts geschrieben ;-) Es ist ja klar das eine Technik nicht nur Vorteile haben kann. Der Realisationsaufwand ist sicher höher, aber bei steigenden Integrationsdichten nicht unbedingt ein No-Go Kriterium.
 
> Und worüber geht diser Thread? Um die [m]möglichkeit[/b] der Nutzung anderer Zahlensysteme als Grundlage einer eigenen Rechnerarchitektur. Da ist es doch vollkommen klar das man die jetzige Binär-Technik nicht einfach übernehmen kann um dann einen größtmöglichen Gewinn von dieser Umstellung zu haben.

Die Spannung kann man auch bei digitaler Übertragung einfach erhöhen - rate mal, warum man das nicht macht, warum der Trend zu niedrigen Spannungen geht ;)


> Das sagt nur etwas über die unterscheidbarkeit der Zustände aus, nicht aber über die übertragbare Informationsmenge, denn die hat eine Zeitliche Abhängigkeit!

Nein, das sagt auch was über die Informationsmenge aus ;). Und zwar, um genau zu sein, dass die Unterscheidbarkeit bei elektrischer Übertragung einfach zu stark abnimmt, bzw. die Informationsmenge nicht stark genug zunimmt um die entstehenden Verluste wieder auszugleichen.

Wenn du alles neu erfinden willst schlage ich vor gleich bei optischen Rechnern anzufagen, in einigen Jahren können wir sicher auch gleich mit Quantenrechnern anfangen. Momentan haben wir aber nach wie vor elektrische Rechner und da gelten bestimmte Einschränkungen, die uns eine unendliche Informationsübertragung verbieten ;)

> Das ist nur abhängig von der Symbolfolge die übertragen wird (egal ob nun binär oder sonst wie)! D.h. du beweist damit nur das was du als Voraussetzung angenommen hast, nämlich das alle Zustände gleich verteilt sind.

0: 4
1: 3
2: 2
3: 3
4: 4

Eben nicht ;). Daher bin ich jeweils auch auf 50% gekommen.
Meine Grundüberlegung war, dass wir bei digitaler Übertragung immer den max. Spielraum ausnutzen - wenn wir aber zb. von der 3 zur 4 wechseln tun wir eben das nicht, weil der Spielraum groß genug sein muss um auch einen wechseln von 0 zu 4 zu verkraften.

> Ist wohl offensichtlich! Über den Aufwand habe ich bisher gar nichts geschrieben ;-) Es ist ja klar das eine Technik nicht nur Vorteile haben kann. Der Realisationsaufwand ist sicher höher, aber bei steigenden Integrationsdichten nicht unbedingt ein No-Go Kriterium.

Wie gesagt, am besten fangen wir mit optischen Rechner an. Entweder krempeln wir alles komplett um oder wir belassen ziemlich viel gleich - aber mal abgesehen davon können wir bei steigender Integrationsdichte auch mehr mit digitaler Übertragung erreichen, Hypertransport ist ein exzellentes Beispiel dafür: Anders als bei paralleler Übertragung, wo man ein Maximum an Datenleitungen hat, kann man bei HTr praktisch beliebig viele Datenleitungen verlegen (bzw. Links verlegen), so dass ein 2560bit Bus (wie in der Playstation zb. verwendet) überhauptkein Problem wäre, weil man auf die dabei auftretenden extremen Störungen viel, viel flexibler reagieren kann. Und nun rechne mal nach - 2560Bit, 1GHz, das macht 640gb/s :o

Und der Aufwand wäre hier bei weitem nicht so hoch wie bei halb so vielen parallelen Leitungen (wo alle Leitungen genau gleich sein müssen und auch die Störungsmuster ähnlich sein müssen) - HTr passt sich ja auch selbst an die vorherrschenden Bedingungen an, reagiert also auch selbst auf Störfelder und vor allem nutzt es LVD! (-> viel weniger Störungen)
 
> Die Spannung kann man auch bei digitaler Übertragung einfach erhöhen - rate mal, warum man das nicht macht, warum der Trend zu niedrigen Spannungen geht

1) Niedriegerer Energieverbrauch.
2) Weil bei gleicher Slew-Rate die (absolute) Anstiegszeit für einen Signalwechsel 0->1 kürzer wird (=> Steigerung der Frequenz). Nachteil: Geringere Störanfälligigkeit, extra Aufwand für Störungsarmeübertragung (ODT, etc.).

>Nein, das sagt auch was über die Informationsmenge aus . Und zwar, um genau zu sein, dass die Unterscheidbarkeit bei elektrischer Übertragung einfach zu stark abnimmt, bzw. die Informationsmenge nicht stark genug zunimmt um die entstehenden Verluste wieder auszugleichen

Wenn du das mit Pegeln machst ja, aber es gibt effizientere Methoden für Übertragungen mit mehreren Zuständen.

> Wenn du alles neu erfinden willst schlage ich vor gleich bei optischen Rechnern anzufagen

Der erste Schritt dazu ist doch schon passiert! Ich sag nur Enlight.

> in einigen Jahren können wir sicher auch gleich mit Quantenrechnern anfangen.

Jo, die Grundlagen dazu sind ja auch am Entstehen.

> Momentan haben wir aber nach wie vor elektrische Rechner und da gelten bestimmte Einschränkungen, die uns eine unendliche Informationsübertragung verbieten

Schon klar, aber es ist einfach eine Frage der Zeit wann die physikalischen Grenzen der Digitaltechnik eine Grenze setzen -- warum nicht als Ausweg in die Richtung Mehrzustandssysteme. Mit k = 2^n bleibt man sogar noch einigermassen kompatibel zur "alten" Welt.

Stop the GHz-Insanity!

> [Gleichverteilung der Zustände] Eben nicht

Beim Zustand 0 gibt es diese Pegeländerungen zu den dazu angegebenen Wahrscheinlichkeiten:
Pegeländerung: Wahrscheinlichkeit;
0: 1/5
1: 1/5
2: 1/5
3: 1/5
4: 1/5

> Meine Grundüberlegung war, dass wir bei digitaler Übertragung immer den max. Spielraum ausnutzen

Meinst du damit den Störabstand? Bei mehreren Pegeln hast du natürlich verschiedene Störabstände zwischen unterschiedlichen Pegeln, aber relevant ist sowieso nur der minimale.

> wenn wir aber zb. von der 3 zur 4 wechseln tun wir eben das nicht, weil der Spielraum groß genug sein muss um auch einen wechseln von 0 zu 4 zu verkraften.

Offensichtlich nicht... Verstehe nicht worauf du hinaus willst?

>[HyperTransport und 2560Bit]

Oh yea! Und du verdratest die grob 80000 Pins :-)))

Ich glaub spätestens bei den Datenraten wird echtes LDT (Lightning Data Transport) auf Glasfaserebene angesagt sein -- und die Technik wird garantiert mit Modulation arbeiten!
 
Der Titel lautet "Grundbasis der CPUs: wieso nur 0V und 1V bei Spannungswerten und nicht 2,3,4,5 etc...
"

Grundbasis - momentan ist die Grundbasis digital, weil sich keine andere Technik auch nur annährend so effizient umsetzen lässt. Schon garnet innerhalb einer einzelnen CPU, Datentransport über mehrere Kilometer ist ja schon wieder eine andere Sache und hier hat die Optik auch schon eine hohe Verbreitung.

Aber innerhalb der CPU ist es heute einfach nicht möglich mehrere Zustände per Elektrik zu realisieren. Und andere Techniken, zb. eben Optik kommen heute innerhalb von CPUs für die Serienproduktion einfach noch nicht in Frage.

Das die digitale Technik nicht der Stein der Weise ist, ist mir doch auch klar ;) - nur nach den derzeitigen technischen Möglichkeiten (für die Serienproduktion) ist digitale Technik der Stein der Weisen.

>Offensichtlich nicht... Verstehe nicht worauf du hinaus willst?

Meine Grundüberlegung von dem Ansatz den ich dann selbst verworfen hab war die hier:
Wenn der Pegel bei digitaler Übertragung ändert haben wir gleichzeitig die maximale Pegeländerung (ist ja logisch, um mehr als 1 kann sich der Zustand net ändern).
Bei mehreren Zuständen haben wir nicht zwangsweise die maximale Pegeländerung (auch wenn wir die Interpretationsbereiche optimal einteilen) für diesen Zustand, aber der Spielraum muss trotzdem für die maximale Pegeländerung bei diesem Zustand ausgelegt sein.


> Stop the GHz-Insanity!

Auch meine Meinung - aber solange der x86 Befehlssatz aktuell bleibt wird sich daran wohl nicht viel ändern können. Die x86 Befehle sind einfach zu simpel - da verfällt zu viel Arbeit auf die Verwaltung. GPUs liefern zb. viel höhere Rechenleistungen trotz viel geringerer Taktraten, weil die Befehle einfach deutlich komplexer sind.
Die einzige Möglichkeit die Taktrate zu drosseln ist dann die Optimierung - viele Befehle parallel abarbeiten usw, aber das ist schon wieder viel zu Codeabhängig als dass man das als ideale Lösung betrachten könnte. Also bleibt nur die Taktschraube, die sich in der x86 Welt erst ein einziges mal zurückgedreht hat - 486->586 (die ersten Pentium1 kamen mit 60MHz wo der 486er schon bei 100MHz rumdümpelte).

Vor allem aber in letzter Zeit wird immer deutlicher, dass im x86 Codesatz einfach kein Optimierungspotenzial mehr steckt - SSE und 3DNow sind die allerbesten Beispiele, ohne diese Befehlssätze ist der P4 zb. deutlich langsamer. Der Athlon ist noch ein recht guter Allrounder, aber der Aufwand der in den CPUs steckt wird immer höher, und relativ dazu der Leistungsgewinn (IPC, Instructions Per Clock) immer geringer.

Einen weiteren Ausweg stellt denke ich die VLIW (?) Architektur von zb. dem Transmeta Cursoe und Efficeon (?) dar. Allerdings ist das technisch so komplex, dass es wohl noch etwas dauern wird bis die die aktuellen RISCs überholen (A64 und P4). Aber der Efficeon ist ein verdammt guter Ansatz, ich glaub eine effizientere CPU (IPC) gibts momentan garnet.


... aber das ist ein anderes Thema ;)
 
hi! habt ihr auch schon mal an den Transistor als Hardware gedacht ?!? Bei der heute gebräuchlichen Binärtechnologie wird der Transistor als Schalter verwendet (-> Vorteil: es wird weniger Leistung verbraucht als den Transistor im "Analogmodus" zu betreiben, einzig und allein beim Umschalten entstehen Verluste) Jetzt malt euch mal aus wie die Verlustleistung ansteigen würde, würde man mit einen Transistor mehrer Zustände realisieren !!!

mfg
 
Haben wir doch oben schon ausgeknobelt, 10 Transistoren und 10 Wiederstände - die Wiederstände heizen im Gegensatz zu den Transistoren noch extrem viel mehr, die aber trotzdem noch digital laufen. Anders gehts net, der Schmitt-Trigger arbeitet Digital.
 
sorry ! hab ich wohl überlesen (obwohl ich alles gelesen bzw. überflogn hab *g*)
 
@Intel_Hasser

> Aber innerhalb der CPU ist es heute einfach nicht möglich mehrere Zustände per Elektrik zu realisieren.

Ich geb's auf. Genau das wird heute in mixed Signal Chips gemacht, aber egal.

> aber solange der x86 Befehlssatz aktuell bleibt wird sich daran wohl nicht viel ändern können. Die x86 Befehle sind einfach zu simpel - da verfällt zu viel Arbeit auf die Verwaltung.

Im Gegenteil! Die Befehle sind Komplex, wenig Symetrisch und unflexibel!

> GPUs liefern zb. viel höhere Rechenleistungen trotz viel geringerer Taktraten, weil die Befehle einfach deutlich komplexer sind.

Nein, die Befehle sind nur sehr viel spezialisierter, es gibt praktisch keine Branch Problematik. Dazu kommt noch das die Speicheranbindung Point to Point ist, die Speicherzugriffsmuster regelmäßig und die "Programme" klein.

> Einen weiteren Ausweg stellt denke ich die VLIW (?) Architektur von zb. dem Transmeta Cursoe und Efficeon (?) dar.

VLIWs sind leistungsfäige Architekturen, wenn die Software gut optimiert ist. Das Allerheilmittel sind sie aber bei Leibe nicht.
 
>Ich geb's auf. Genau das wird heute in mixed Signal Chips gemacht, aber egal.

Aber alles im Rahmen 2^n und letztendlich arbeiten die CPUs immernoch digital.

>Im Gegenteil! Die Befehle sind Komplex, wenig Symetrisch und unflexibel!

Tja, x86 eben - man kann komplexe Befehle auch viel flexibler gestallten, aber x86 eben. RISC/CISC läuft auf eine ähnliche Diskussion hinaus wie das hier. Nur ist es da keine Realisierungsfrage.

Aber schau dir mal SIMD Befehle an - die sind alles andere als einfach und trotzdem sehr beliebt - hier wird massiv parallelisiert.

Kannst du Realmode x86 Assembler? Musst du dir unbedingt mal anschauen, dagegen ist Protected Mode Assembler harmlos ;)
... wehe du indizierst nicht mit BX/DI/SI ;)

> Nein, die Befehle sind nur sehr viel spezialisierter, es gibt praktisch keine Branch Problematik. Dazu kommt noch das die Speicheranbindung Point to Point ist, die Speicherzugriffsmuster regelmäßig und die "Programme" klein.

Bei der Pixel und Vertex Shader Programmierung gibts sehr wohl Sprünge etc, und die Verwendung steigt immer weiter an.
Sicher - die Speicheranbindung ist deutlich schneller, aber lass mal einen P4 mit 3GHz und SSE Unterstützung die selbe Graphik wie die GPU berechnen. Bei sowas liefert die GPU eine derart brachiale Leistung, dass selbst ein 10GHz P4 nicht annährend in die selbe Region kommen würde - und das trotz vielleicht 500MHz vs. 10GHz.


Ich denke die klassische x86 Zeit ist vorbei. Am CPU/Memory Subsystem hat sich seit dem 386er wenig getan - mal hier ein paar Bit mehr Datenbus, mal dort eine Technik wie DDR - aber das wars auch schon. Die Leistungssteigerungen zwischen den einzelnen CPU Generationen werden auch bei AMD kleiner (vergleich mal K6/K7 und K7/K8).
Man hat beim K8 lieber den K7 minnimal weiterverbessert und an völlig anderen Stellen alles umgekrempelt, weil der K7 eben schon ein verdammt effizienter Kern ist. Sicher, das ist auch eine Kostenfrage, aber schau dir mal Intel an. Der P4 hat lange gebraucht bis er richtig in Fahrt kam, und ich denke beim Prescott wirds nicht viel anders werden - nur tun sich hier langsam physikalische Grenzen auf, der P4 hat nicht mit 100W debütiert.

Und der Trend wird sich desswegen denke ich weiter richtung SMT und SMP entwickeln, weil man hier einfach bei entsprechend angepasster Software noch die größte Leistungssteigerung hat.

Du musst dir unbeding mal Assembler anschauen - die Optimierungen der CPUs schlagen sich immer stärker im Code nieder, ein Programm von Hand auf einen P4 zuzuschneiden ist ein absoluter Krampf!
So wird das weitergehen - der 486 hat so ziemlich alles gefressen, der P1 hat auch noch alles gemocht. Der PPro/P2/P3 war schon etwas wählerischer, da hat man ein ziemlich gutes Optimierungspotenzial. Und der P4 setzt alle dem die Krone auf.

Nur irgendwann kann man eben nicht mehr viel weiter optimieren, weil ein Programm sowas einfach nicht hergibt. Wenn man eine CPU mit zb. 10 ALUs baut müssen die auch irgendwie alle ausgelastet werden, und das wird schwierig. Das Problem tut sich schon bei den GPUs auf (siehe Radeon vs. GeFX, gabs bei 3D Center mal einen guten Artikel).


>VLIWs sind leistungsfäige Architekturen, wenn die Software gut optimiert ist. Das Allerheilmittel sind sie aber bei Leibe nicht.
Hab ich auch nicht gesagt, aber ich denke damit kann man noch das meißte aus x86 herausholen.
Hier umgeht man größerenteils das Optimieren auf eine bestimmte Plattform, jede CPU schneidet sich den Code so zurrecht wie er eben am besten durchpasst.

Der Efficeon macht es doch momentan wunderbar vor, einen x86er mit einer höheren IPC gibts nicht!
 
Also, beim lesen dieses Threads (ja, ich hab alles gelesen *chatt*) stellte sich mir (auch andren?) eine für mich die nicht ganz unbedeutende Frage...

Woher wisst ihr das?
Was macht ihr beruflich?
Ist es gut, sowas zu wissen, oder träumt ihr auch in 01 und logarithmen/ algorithmen? *chatt*
 
Zurück
Oben Unten