ULLtra-DIMM: Bis zu 12,8 Terabyte Flashspeicher im RAM-Gewand

Verstehe nicht, wie man es anstellen will, das der Speicher nicht nach jedem Start gelöscht wird. :huh:
Es steckt doch in der RAM Bank und dieser wird ja jedes mal gelehrt.

Oder ist das die ganze Zeit über in den RAMs "integriert" und nicht im Anschluss bzw Controller selbst? :what:
 
Das ist an sich eigentlich völlig transparent für den RAM-Controller. Da wird nen Brückenchip sitzen, der die Signale des RAM-Controllers annimmt und dann eben weiter verarbeitet. Im Prinzip wird das wohl laufen wie fully buffered DRAM.

Aber sehen die Specs einen DDR3-250 Riegel mit 1000er (Lese-)Latenz vor? Überhaupt asymetrische Lese-/Schreiblatenzen? Betrieb mit unendlichem Abstand zwischen Refreshs? Allein die 400 GB Modulgröße sollte ein Problem sein, wenn ich an die typischen Maximalangaben zum Speicherausbau denke.
Und diese Werte liegen alle soweit jenseits der Standards, dass ich persönlich nicht darauf wetten würde, dass ein einfaches Update reicht. Wenn man um zwei Dezimalstellen jenseits der Specs liegt, könnte es auch einfach mal sein, dass der Speichercontroller überhaupt nicht in der Lage ist, diese Latenz zu laden, weil er nur 5-6 Bit dafür vorgesehen hat.

Und, wie erwähnt: Er muss auch in der Lage sein, diese sehr extremen Einstellungen nur für einen Kanal zu verwenden und die anderen unverändert, sogar in Multi-Channel-Modi, weiterzubetreiben. Sonst sitzt man nämlich tatsächlich mit einem Arbeitsspeicher da, der zwar ggf. mehr Schreibzyklen als diese SSDs aushält - aber mit deren schnarchlahmen Tempo laufen muss.
Ich z.B. hätte noch nichts von Speichercontrollern gehört, die unterschiedliche Frequenzen auf unterschiedlichen Kanälen erlauben würden.

Rein vom gefühl her, würde ich versuchen, den RAM als RAM-Disk zu behandeln. DAs sollte an sich eigentlich alle Eigenschaften mit bringen, die man sich wünscht.

Auf Programmebene: Ja.
Aber damit du diesen Riegel gezielt zur RAM-Disk machen kannst, muss das gesamte System vom OS bis zum Controller halt überhaupt erst einmal erlauben, einzelne Riegel anzusprechen. Und afaik ist das nicht vorgesehen. (Falls jemand eine Methode kennt, wäre ich jedenfalls sehr dankbar - das würde RAM-Stabilitätstests dramatisch vereinfachen...)
Wenn du, wie in jedem PC seit dem ersten üblich, nur einen einheitlichen "Arbeitsspeicher" siehst, der sich aus allen Modulen zusammensetzt und dessen Details der Speichercontroller nach eigenem Wissen verwaltet (Wissen, in dem "SSD" nicht vorkommt), dann...
 
Irgendwie hören sich 1GB/s lesen und ~700MB/s schreiben nicht viel Scheller als aktuelle PCIe SSDs an. Sollte die RAM-Anbindung nicht deutlich höhere Geschwindigkeiten erlauben, oder bremsen da schon die Flashzellen?
 
Einzelne Flashzellen haben bei unter 10mb/s ihr Limit. Der Rest sind schon jetzt geschickte Controller. Deswegen bin ich ja auch nach wie vor der Meinung dass man Problemlos eine Multiplatter Magnet-HDD mit 1GB/s Durchsatz bauen könnte.
 
Ram wird nicht beim Start geleert, er ist einfach von selbst leer sobald man den Strom abstellt.

Ist noch immer keine Beantwortung meiner Frage. ^^
Und wenn ich Start schreibe, dann meine ich beim Anmachen des PCs. Und da ist der RAM nun mal geleert.
Nicht ohne Grund das ne RAM Disk nach jedem Start leer gefegt ist. :D

Also was habe ich nun falsches gesagt? ;)

Oder streitest du dich jetzt echt mit mir darüber, ob der RAM von selbst leer ist (Zauberei?^^) oder geleert wird??? (verständlichere Erklärung wie ich finde)
Man kann´s auch übertreiben. Er ist leer. Fertisch. :ugly:

So, wäre schön wenn nun jemand meine Frage beantworten könnte, wie man das nun bei den ULLtra-Dimm verhindern will, wenn doch der selbe Anschluss genutzt wird. ;)
 
Zuletzt bearbeitet:
Ist noch immer keine Beantwortung meiner Frage. ^^
Und wenn ich Start schreibe, dann meine ich beim Anmachen des PCs. Und da ist der RAM nun mal geleert.

Das ist sehr wohl eine Antwort:
Ja, wenn man einen Rechner einschaltet, ist der DRAM leer. Das liegt daran, dass es DRAM ist - der ist immer leer, wenn man mal den Strom abgestellt hat. Es wird aber nichts "geleert" (aktive Handlung) und wenn man Speicher verwendet, der seine Daten nicht von alleine verliert (z.B. Flash), dann wäre der noch voll.
(Was übrigens gleich noch die nächste Herausforderung für die Ansteuerung ist: Das BIOS darf die Module nicht beschreiben)
 
Bis PCI-E 3.0 x8 SSD's erscheinen kann es doch nicht mehr lange dauern. Die sind wahrscheinlich schon in der fortgeschrittenen Entwicklung. Die Teile werden dann nochmal einen richtigen Schub geben, im Gegensatz zu herkömmlichen Sata SSD's. Was will man da mit so lahmen ULLtra Dimm im Consumer Bereich ?
 
@ Pumpi Was einen dann aber wieder vor die Frage stellen würde: wie "verschwende" ich "meine" kostbaren Lanes.

Ich halte die Technik eher für eine Randerscheinung. Mit heutigen Speicherkontrollern nicht sinnvoll einsetzbar.
Mit zusätzlichen Kontrollern und Bänken aber vorstellbar. Was spezielle Boards erzwingt. Alles andere würde den Arbeitspeicher doch massiv ausbremsen.
Es sei denn, Kontroller auf so einem Riegel wäre ein hardcoded RamDrive mit puffer SDRAM o.ä.!?
 
Das ist sehr wohl eine Antwort:
Ja, wenn man einen Rechner einschaltet, ist der DRAM leer. Das liegt daran, dass es DRAM ist - der ist immer leer, wenn man mal den Strom abgestellt hat. Es wird aber nichts "geleert" (aktive Handlung) und wenn man Speicher verwendet, der seine Daten nicht von alleine verliert (z.B. Flash), dann wäre der noch voll.
(Was übrigens gleich noch die nächste Herausforderung für die Ansteuerung ist: Das BIOS darf die Module nicht beschreiben)

Also wenn man mir erklärt, was ich schon weiß ist das keine Erklärung. ^^
Ich weiß doch selbst das dieser nach abschaltung des stroms leer ist. :ugly:

Mir ging's doch nur um die Erklärung, wie man das bei Ulltra-Dimm Speicher verhindern will, wenn der selbe Anschluss verwendet wird. ^^

Ich hab gedacht das die Speichermodule auf dem RAM die selben wären, wie eben auf flashspeicher.
Also ist das mechanischer Natur, das die Speicherzellen nach Abschaltung des Stroms gelöscht werden? ;)
 
Man unterscheidet zwischen dem flüchtigen Speicher (zugunsten der schärferen Ansprechzeiten), das waren bisher die RAM Module, und dem nichtflüchtigen, welcher wohl auf diesen ULLtras verbaut werden.
 
Die Speicherzellen im RAM funktionieren anders als Flashzellen. Ram muss alle paar Millisekunden nachgeladen werden, damit der Speicherinhalt erhalten bleibt. Liegt für ein paar Sekunden keine Spannung an, sind alle Zellen entladen und der Ram ist leer.
 
Für meinen Geschmack bleiben da mehr Fragen offen als auf einen Zettel passen. Klingt zwar interessant aber in absehbarer Zeit sehe ich da noch nicht die Umsetzung für den lieben Otto Normal
 
Aber sehen die Specs einen DDR3-250 Riegel mit 1000er (Lese-)Latenz vor?
Nein, du bist da natürlich FERN! ab jedweder Spec! Das ist halt eine "Frickellösung", die NUR mit Board XY, Bios Z, CPU K und RAM L funktioniert ;)

Überhaupt asymetrische Lese-/Schreiblatenzen?
Öhm ja, an sich eigentlich schon. Also ich kann für jeden RAM-Riegel die getrennt einstellen auf dem GB Board, wenn ich das richtig sehe. Die Speichercontroller sind heutzutage völlig unabhängig voneinander bzgl den Einstellungen. Das muss man ja schon sein um asymmetrische Bestückungen zu unterstützen. ;)

Betrieb mit unendlichem Abstand zwischen Refreshs?
Bei DDR3 (ich glaub es war zumindest "erst" seit DDR3) kann man dem Memory-Controller sagen, das er keinen Refresh machen soll, sondern sich der RAM-Riegel selbst darum kümmert. Selfrefresh halt. Sowas missbraucht man dann halt. Wie gesagt, das ist alles NICHT! Standardkonform, sondern alles nen böser Hack.

Allein die 400 GB Modulgröße sollte ein Problem sein, wenn ich an die typischen Maximalangaben zum Speicherausbau denke.
Ja, das könnte wirklich problematisch werden, bzw sehe ich auch als das größte Problem auf den ersten Blick an. Ich weiß jetzt gerade nicht, wieviele Adressleitungen man hat, aber ich bin mir nicht sicher, ob die ausreichen. Wenn ja, müsste man mit Offsets arbeiten, also mit Offsetregistern arbeiten, die man erstmal beschreiben muss. Das wäre aber durchaus machbar.

Und diese Werte liegen alle soweit jenseits der Standards, dass ich persönlich nicht darauf wetten würde, dass ein einfaches Update reicht.
Definiere mal "einfaches Update". ;)

Das ist nen absolut BÖSER! Hack. Die furwerken da am BIOS und weiß der Teufel wo noch dran rum und verbauen ziemlich sicher sogar noch nen speziellen Brückenchip. Da lässt sich verdammt viel machen ;)

Ich sag mal so viel. Ich hab auf Softwareebene schon nen propritäres Bussystem entwickelt, das PCI-E ersetzt. Wenn man nur tief genug runter steigt, dann kann man verdammt viel tricksen, und weiter runter als die mit BIOS-Update und spezial-Hardware geht es nicht mehr.

Wenn man um zwei Dezimalstellen jenseits der Specs liegt, könnte es auch einfach mal sein, dass der Speichercontroller überhaupt nicht in der Lage ist, diese Latenz zu laden, weil er nur 5-6 Bit dafür vorgesehen hat.
Die RAM-Controller unterstützen ECC, was die Latenzen eh sehr kritisch macht bzgl. Vorhersage. Ich habe da wie gesagt ein gutes Vertrauen in die Leute, dass die das vernünftig gelöst bekommen haben, wenn auch natürlich mit absolut bösen Hacks :ugly:

Und, wie erwähnt: Er muss auch in der Lage sein, diese sehr extremen Einstellungen nur für einen Kanal zu verwenden und die anderen unverändert, sogar in Multi-Channel-Modi, weiterzubetreiben. Sonst sitzt man nämlich tatsächlich mit einem Arbeitsspeicher da, der zwar ggf. mehr Schreibzyklen als diese SSDs aushält - aber mit deren schnarchlahmen Tempo laufen muss.
Ich z.B. hätte noch nichts von Speichercontrollern gehört, die unterschiedliche Frequenzen auf unterschiedlichen Kanälen erlauben würden.
Also soweit ich das verstanden habe, ist mit den DIMMs nur noch 1! DIMM Pro Channel möglich. Also wenn du einen einsetzt bleiben die anderen Sockel leer für den Channel.

Auf Programmebene: Ja.
Aber damit du diesen Riegel gezielt zur RAM-Disk machen kannst, muss das gesamte System vom OS bis zum Controller halt überhaupt erst einmal erlauben, einzelne Riegel anzusprechen. Und afaik ist das nicht vorgesehen. (Falls jemand eine Methode kennt, wäre ich jedenfalls sehr dankbar - das würde RAM-Stabilitätstests dramatisch vereinfachen...)
Wenn du, wie in jedem PC seit dem ersten üblich, nur einen einheitlichen "Arbeitsspeicher" siehst, der sich aus allen Modulen zusammensetzt und dessen Details der Speichercontroller nach eigenem Wissen verwaltet (Wissen, in dem "SSD" nicht vorkommt), dann...
Das sollte eigentlich kein Problem sein. MemoryMappedIO ist da an sich das Stichwort.

Du musst halt die entsprechenden physikalischen Hardwareadressen wissen und verwenden, aber die kennste ja, da du VOLLE! Kontrolle über das gesamte System hast. Also das sollte jetzt wirklich nicht DAS Problem sein. Ich würde allerdings nicht erwarten, dass das Ganze auch unter Windows läuft ;) *hust hust*

Einzelne Flashzellen haben bei unter 10mb/s ihr Limit. Der Rest sind schon jetzt geschickte Controller. Deswegen bin ich ja auch nach wie vor der Meinung dass man Problemlos eine Multiplatter Magnet-HDD mit 1GB/s Durchsatz bauen könnte.
Wäre durchaus möglich, wenn man wieder auf 5,25" Platten in voller Bauhöhe, also die Höhe von zwei Einschüben @home, verwenden würden :devil:

Ist das realistisch??? NOT!

Ist noch immer keine Beantwortung meiner Frage. ^^
Und wenn ich Start schreibe, dann meine ich beim Anmachen des PCs. Und da ist der RAM nun mal geleert.
Nicht ohne Grund das ne RAM Disk nach jedem Start leer gefegt ist. :D
Die RAM!-Disk ist leer, weil sie DRAM! verwendet, und DRAM ist volatil. Das heist, wenn du den Strom abstellst ist die Information weg/kaputt. Das ist einfach die Eigenschaft von DRAM. Daher ist ne RAM-Disk, die auf DRAM aufbaut halt immer leer, wenn man den Strom weg nimmt, es sei denn man hat ein Verfahren, um in dem Fall die Daten noch schnell in einen nichtvolatilen Speicher zu sichern ;)

Hier wird aber FLASH! verwendet, und Flash ist NICHT!volatil. Die Daten bleiben also erhalten, auch wenn der Strom weg ist.

Der Unterschied kommt also allein von der verwendeten Speichertechnologie.

Also was habe ich nun falsches gesagt? ;)

Oder streitest du dich jetzt echt mit mir darüber, ob der RAM von selbst leer ist (Zauberei?^^) oder geleert wird??? (verständlichere Erklärung wie ich finde)
Man kann´s auch übertreiben. Er ist leer. Fertisch. :ugly:

So, wäre schön wenn nun jemand meine Frage beantworten könnte, wie man das nun bei den ULLtra-Dimm verhindern will, wenn doch der selbe Anschluss genutzt wird. ;)
... siehe oben.


Bis PCI-E 3.0 x8 SSD's erscheinen kann es doch nicht mehr lange dauern. Die sind wahrscheinlich schon in der fortgeschrittenen Entwicklung. Die Teile werden dann nochmal einen richtigen Schub geben, im Gegensatz zu herkömmlichen Sata SSD's. Was will man da mit so lahmen ULLtra Dimm im Consumer Bereich ?
Nichts?

Das wirst du auch NEVER EVER im Consumerbereich sehen. Bei den Preisen werden dir die Ohren wegfliegen. Unter 1k€ für einen Riegel sollte man nicht erwarten...

Also wenn man mir erklärt, was ich schon weiß ist das keine Erklärung. ^^
Ich weiß doch selbst das dieser nach abschaltung des stroms leer ist. :ugly:
Es wurde dir absolut richtig erklärt, du verstehst nur nicht den Zusammenhang ;)

Mir ging's doch nur um die Erklärung, wie man das bei Ulltra-Dimm Speicher verhindern will, wenn der selbe Anschluss verwendet wird. ^^

Ich hab gedacht das die Speichermodule auf dem RAM die selben wären, wie eben auf flashspeicher.
Also ist das mechanischer Natur, das die Speicherzellen nach Abschaltung des Stroms gelöscht werden? ;)
... siehe oben und die bereits zuvor von anderen gegebene Erklärung.

Man verwendet einfach einmal DRAM und einmal Flash. Das ist der Unterschied...
 
Also ist das mechanischer Natur, das die Speicherzellen nach Abschaltung des Stroms gelöscht werden? ;)

Nicht mechanischer, aber elektrischer. DRAM ist im Prinzip ein kleiner Kondensator, der einen Transistor ansteuert. Je nach Spannung des Transistors ergibt sich eine logische null oder eins. Problem: Kondensatoren entladen sich mit der Zeit. Erst recht, wenn zum auslesen noch schnell schaltende Transistoren dranhängen, die i.d.R. hohe Leckströme haben, selbst wenn sie gerade nichts tun sollen. Als Ergenis ist Spannung nach afaik 60-300 Taktzyklen verschwunden, der DRAM muss vorher erneut beschrieben (refreshed) werden. (also x-fach pro Sekunde)
Flash dagegen speichert die 0/1-definierende Ladung quasi im Transistor, auf einem rundum isolierten Gate. Abfließen kann sie da kaum, auch nach Jahren ist i.d.R. noch genug da. Problem: "rundum isoliert" ist denkbar schlecht zu beschreiben. Und um die hohen Speicherdichten von Flash-Chips zu erreichen, wird auch eine wesentlich primitivere, platzsparende Verschaltung genutzt - die umgekehrt kein schnelles Auslesen erlaubt.


Nein, du bist da natürlich FERN! ab jedweder Spec! Das ist halt eine "Frickellösung", die NUR mit Board XY, Bios Z, CPU K und RAM L funktioniert ;)

Problem1: Niemand stellt "CPU K für ULL-DIMM" her.
Problem2: Wenn es eine derart propietäre Lösung ist - wieso wird sie dann als Standard-Modul produziert und vertrieben?

Öhm ja, an sich eigentlich schon. Also ich kann für jeden RAM-Riegel die getrennt einstellen auf dem GB Board, wenn ich das richtig sehe. Die Speichercontroller sind heutzutage völlig unabhängig voneinander bzgl den Einstellungen. Das muss man ja schon sein um asymmetrische Bestückungen zu unterstützen. ;)

Ich müsste nochmal gucken, ob ich irgendwo in den Tiefen meines antiken BIOS noch etwas anderes finde, aber zumindest ohne Detail-Tweaks läuft eine asymetrische Konfiguration bei mir durchgängig mit den Specs des lahmsten Moduls.

Ja, das könnte wirklich problematisch werden, bzw sehe ich auch als das größte Problem auf den ersten Blick an. Ich weiß jetzt gerade nicht, wieviele Adressleitungen man hat, aber ich bin mir nicht sicher, ob die ausreichen. Wenn ja, müsste man mit Offsets arbeiten, also mit Offsetregistern arbeiten, die man erstmal beschreiben muss. Das wäre aber durchaus machbar.

Register im RAM-Modul oder wie? Die in andere Speicherbereiche umschalten? (an anderer Stelle würde man jedenfalls die Addressierung nicht umgehen) Würde sich das nicht mit den "ultra kurzen" Latenzen beißen, wenn der Speicher in Software addressiert werden muss?

Definiere mal "einfaches Update". ;)

"ohne Öffnung des Gehäuses einspielbar"
vs.
"wir brauchen neue Transistoren" :ugly:

Ich sag mal so viel. Ich hab auf Softwareebene schon nen propritäres Bussystem entwickelt, das PCI-E ersetzt.

Auf Softwareebene ist vieles einfach möglich. Hier geht es aber um Hardware. Hardware, die Intel ohne Rücksicht auf Flash-DIMMs produziert. Und im Gegensatz zu z.B. PCIe ist das Speicherinterface nun einmal hochspezialisiert !und!
hat getrennte Daten- und Steuerungsleitungen. Du kannst also nicht einfach unspezifizierte Befehlssysteme für nicht eingeplante Hardware in einen generellen Datenstream einschleusen, sondern müsstest eben gerade das Dateninterface, dass du eigentlich nutzen willst, kanibalisieren.

Die RAM-Controller unterstützen ECC, was die Latenzen eh sehr kritisch macht bzgl. Vorhersage. Ich habe da wie gesagt ein gutes Vertrauen in die Leute, dass die das vernünftig gelöst bekommen haben, wenn auch natürlich mit absolut bösen Hacks :ugly:

Also soweit ich das verstanden habe, ist mit den DIMMs nur noch 1! DIMM Pro Channel möglich. Also wenn du einen einsetzt bleiben die anderen Sockel leer für den Channel.

Den beworbenen System-Speicherkapazitäten zu Folge sollen auch mehrere möglich sein - wüsste auch nicht, was dagegen spräche.
Mir ging es aber nicht um mehrere Module pro Channel, sondern um mehrere Channel. Wenn ich einen Kanal meiner schönen So2011 mit "DDR3 250"-Flash-Speicher bestücke, können die restlichen dann im 2400er Triple-Channel-Modus laufen?

Das sollte eigentlich kein Problem sein. MemoryMappedIO ist da an sich das Stichwort.

Du musst halt die entsprechenden physikalischen Hardwareadressen wissen und verwenden, aber die kennste ja, da du VOLLE! Kontrolle über das gesamte System hast.

Wenn das geht - schön. Bislang bestand halt nie Bedarf daran, die Verteilung physischer Speicheradressen zu kennen/beeinflussen. Da wäre es gut möglich gewesen, dass Intel überhaupt keine Kontrollmöglichkeit vorsieht, mit der man beeinflussen oder auch nur überprüfen könnte, welche Adresse der Controller denn welcher Speicherzelle zuordnet. Und sich nur darauf verlassen, dass es bei Bank0 in Kanal0 losgeht und in BankXY in Kanal4 endet, ist vermutlich eine schlechte Idee. Insbesondere wenn die Software mit wechselnden Modulgrößen zurecht kommen müssen, die Grenze zwischen DDR und Flash also auf unterschiedlichen Adressen liegen kann.

Wäre durchaus möglich, wenn man wieder auf 5,25" Platten in voller Bauhöhe, also die Höhe von zwei Einschüben @home, verwenden würden :devil:

?
Mal ganz abgesehen davon, dass die meisten Leuten mit 5,25" half height Platten überhaupt kein und mit 5,25" full height nur ein kleines Problem hätte, solange der Rest stimmt, ist das einfach eine bescheurte Abschätzung. Man kriegt pro Schreib-Lesekopf Datenraten von 180 MB/s Spitze und 130-140 MB/s im Schnitt hin. Und man bekommt problemlos 10, mit etwas Aufwand neuerdings auch 14 Köpfe in ein normales 3,5" Gehäuse. Damit sollten eigentlich sogar 2 GB/s HDDs machbar sein, sobald endlich mal irgend ein Hersteller anfängt, mehr als nur einen Kopf zu einem Zeitpunkt zu nutzen.
 
Die RAM!-Disk ist leer, weil sie DRAM! verwendet, und DRAM ist volatil. Das heist, wenn du den Strom abstellst ist die Information weg/kaputt. Das ist einfach die Eigenschaft von DRAM. Daher ist ne RAM-Disk, die auf DRAM aufbaut halt immer leer, wenn man den Strom weg nimmt, es sei denn man hat ein Verfahren, um in dem Fall die Daten noch schnell in einen nichtvolatilen Speicher zu sichern ;)

Hier wird aber FLASH! verwendet, und Flash ist NICHT!volatil. Die Daten bleiben also erhalten, auch wenn der Strom weg ist.

Der Unterschied kommt also allein von der verwendeten Speichertechnologie.

... siehe oben und die bereits zuvor von anderen gegebene Erklärung.

Man verwendet einfach einmal DRAM und einmal Flash. Das ist der Unterschied...

Danke! Mehr wollte ich doch gar nicht wissen. Ich dachte bisher immer das der verbaute Speicher im RAM, der Selbe wer wie im Flashspeicher.
Mehr wollt ich gar nicht. ;)

Und nicht das RAM ein flüchtiger Speicher und deshalb immer nach kappung der Stromquelle gelöscht ist. Das weiß ich selbst. :D

Nicht mechanischer, aber elektrischer. DRAM ist im Prinzip ein kleiner Kondensator, der einen Transistor ansteuert. Je nach Spannung des Transistors ergibt sich eine logische null oder eins. Problem: Kondensatoren entladen sich mit der Zeit. Erst recht, wenn zum auslesen noch schnell schaltende Transistoren dranhängen, die i.d.R. hohe Leckströme haben, selbst wenn sie gerade nichts tun sollen. Als Ergenis ist Spannung nach afaik 60-300 Taktzyklen verschwunden, der DRAM muss vorher erneut beschrieben (refreshed) werden. (also x-fach pro Sekunde)
Flash dagegen speichert die 0/1-definierende Ladung quasi im Transistor, auf einem rundum isolierten Gate. Abfließen kann sie da kaum, auch nach Jahren ist i.d.R. noch genug da. Problem: "rundum isoliert" ist denkbar schlecht zu beschreiben. Und um die hohen Speicherdichten von Flash-Chips zu erreichen, wird auch eine wesentlich primitivere, platzsparende Verschaltung genutzt - die umgekehrt kein schnelles Auslesen erlaubt.

Vielen Dank. Hab ich so bisher überhaupt nicht gewusst. :huh:
Wieder etwas neues gelernt und super von dir erklärt. :daumen:
 
Zuletzt bearbeitet:
Problem1: Niemand stellt "CPU K für ULL-DIMM" her.
Problem2: Wenn es eine derart propietäre Lösung ist - wieso wird sie dann als Standard-Modul produziert und vertrieben?
Mit CPU K ist gemeint, das es eben nur mit Intel IB-EP CPU geht, oder halt mit IB-EX. Es wird aber halt nicht einfach mit jedweder CPU/Platform laufen, die DDR3 unterstützt ;)

Ich müsste nochmal gucken, ob ich irgendwo in den Tiefen meines antiken BIOS noch etwas anderes finde, aber zumindest ohne Detail-Tweaks läuft eine asymetrische Konfiguration bei mir durchgängig mit den Specs des lahmsten Moduls.
Bitte hier nicht Consumer und Serverboards miteinander vergleichen. Nur weils es bei A nicht geht, heist es nicht, das es bei B nicht auch geht.

[quite]
Register im RAM-Modul oder wie? Die in andere Speicherbereiche umschalten? (an anderer Stelle würde man jedenfalls die Addressierung nicht umgehen) Würde sich das nicht mit den "ultra kurzen" Latenzen beißen, wenn der Speicher in Software addressiert werden muss?
[/quote]
Wer sagt denn, dass du immer und in jedem Fall die ultra kurzen Latenzen hast? ;)

Ah ja richtig niemand :P

Du könntest ja innerhalb eines mindestens 64GB(?) Blocks ohne Probleme lesen können. Erst bei nem wechsel aus nem 64 GB Block müsstest du halt im Prinzip einen DRAM-Schreizyklus warten. Das ist verschmerzbar.


"ohne Öffnung des Gehäuses einspielbar"
vs.
"wir brauchen neue Transistoren" :ugly:
Naja, du brauchst ja wie gesagt eh neue Chips auf den Modulen. In der CPU usw nicht. Da ist alles da, nur musst du halt am BIOS/CPU-Firmware rumspielen. Also schon tiefgehendste eingriffe, ohne an der CPU an sich was zu ändern.

Auf Softwareebene ist vieles einfach möglich. Hier geht es aber um Hardware. Hardware, die Intel ohne Rücksicht auf Flash-DIMMs produziert. Und im Gegensatz zu z.B. PCIe ist das Speicherinterface nun einmal hochspezialisiert !und!
Ich hab da aber was vom Prinzip ziemlich ähnliches gemacht ;)

Wie gesagt, an sich ist es schon möglich, die Sachen zu machen, du musst "nur" wissen, wo du was zu machen hast. Dafür brauchste die Doku der Hersteller, sonst kannste das knicken.

hat getrennte Daten- und Steuerungsleitungen. Du kannst also nicht einfach unspezifizierte Befehlssysteme für nicht eingeplante Hardware in einen generellen Datenstream einschleusen, sondern müsstest eben gerade das Dateninterface, dass du eigentlich nutzen willst, kanibalisieren.
Musst du hier auch nicht. Du musst du die Adressen richtig Mappen und dem OS halt beibringen, das es Speicherbereiche gibt, die wie ne RAM-Disk funktionieren.

Das sollte wie gesagt kein Hexenwerk sein. Sie habens ja auch geschafft. Was wirklich das Problem ist, sind die Größe und eben die Anbindung des Flashs. Das braucht halt zwingend nen Brückenchip. Der Rest ist dann halt Arbeit, aber nichts fundamental Neues.


Den beworbenen System-Speicherkapazitäten zu Folge sollen auch mehrere möglich sein - wüsste auch nicht, was dagegen spräche.
Mir ging es aber nicht um mehrere Module pro Channel, sondern um mehrere Channel. Wenn ich einen Kanal meiner schönen So2011 mit "DDR3 250"-Flash-Speicher bestücke, können die restlichen dann im 2400er Triple-Channel-Modus laufen?
Aber eben nur einer Pro Channel ;)

Und wie gesagt, die Riegel kannste auf Serverboards meines Wissens nach eh schon unterschiedlich ansteuern. Das sollte also eh schon alles vorhanden sein.


Wenn das geht - schön. Bislang bestand halt nie Bedarf daran, die Verteilung physischer Speicheradressen zu kennen/beeinflussen. Da wäre es gut möglich gewesen, dass Intel überhaupt keine Kontrollmöglichkeit vorsieht, mit der man beeinflussen oder auch nur überprüfen könnte, welche Adresse der Controller denn welcher Speicherzelle zuordnet. Und sich nur darauf verlassen, dass es bei Bank0 in Kanal0 losgeht und in BankXY in Kanal4 endet, ist vermutlich eine schlechte Idee. Insbesondere wenn die Software mit wechselnden Modulgrößen zurecht kommen müssen, die Grenze zwischen DDR und Flash also auf unterschiedlichen Adressen liegen kann.
Doch! Das musstest du auch bisher schon wissen und auch regeln können!!!
Je nachdem, wieviel Speicher in welchem Slot steckt usw musst du das Adressmapping ändern. Du kommst dir ansonsten auch mit 32<->64 Bit PCI-E Adressen in die Quere usw usw.

ganz abgesehen davon, dass du ja auch SMP Systeme unterstützt. Da brauchste das auch schon. Ganz abgesehen davon, dass du bei Failover eben auch nen Remapping des RAMs machen musst, und fürs Spiegeln der Daten ist es auch Sinnvoll. usw usw. Also es gibt absolut keinen Grund zu glauben, das würde nicht gehen.
 
Mit CPU K ist gemeint, das es eben nur mit Intel IB-EP CPU geht, oder halt mit IB-EX.

Auch das würde eben vorraussetzen, dass diese CPUs zufällig oder absichtlich Fähigkeiten haben, die die DDR3-Specs nicht fordern, die DDR3-RAM nicht gebrauchen kann und die zusätzliche Kosten verursachen - aber für ULLDIMM nötig wären...

Bitte hier nicht Consumer und Serverboards miteinander vergleichen. Nur weils es bei A nicht geht, heist es nicht, das es bei B nicht auch geht.

In aller Regel sind es gerade Consumer-/OC-Boards, die die Änderung von so ziemlich jedem Detail erlauben, in dem man vielleicht noch eine Spezifikation nicht überrschritten hat ;)

Wer sagt denn, dass du immer und in jedem Fall die ultra kurzen Latenzen hast? ;)

Touché
Wäre aber arg peinlich, wenn man Speicher mit extrem niedrigen Latenzen verkauft - und diese dann nur in einigen wenigen Situationen geboten werden.

Du könntest ja innerhalb eines mindestens 64GB(?) Blocks ohne Probleme lesen können. Erst bei nem wechsel aus nem 64 GB Block müsstest du halt im Prinzip einen DRAM-Schreizyklus warten. Das ist verschmerzbar.

So kurz sind die Schreibzyklen bei den hier einzustellenden Taktraten und Latenzen nicht. Vor allem aber erfordert dies einen permanenten Software-Overhead, denn einen Speicherzugriff zurückstellen und stattdessen erstmal ein spezielles Datum schreiben und dann den Zugriff doch durchführen - dass kann der Speichercontroller der CPU definitiv nicht in Eigenregie.

ganz abgesehen davon, dass du ja auch SMP Systeme unterstützt. Da brauchste das auch schon.

In SMP-Systemen reicht es, den Speicher CPU-weise zu verwalten, im Worst Case pro Controller. Aber ich habe keinen Grund, einem Controller Anweisungen geben zu müssen/können, wie er die Speicherbänke seines Kanals zu sortieren hat. Auch deine anderen genannten Aufgaben greifen letztlich nur einen XY MB großen RAM mit Geschwindigkeit ZA an Controller AB zu. Wie der physisch organisiert ist, ist alleiniges Problem des Controllers.
 
Auch das würde eben vorraussetzen, dass diese CPUs zufällig oder absichtlich Fähigkeiten haben, die die DDR3-Specs nicht fordern, die DDR3-RAM nicht gebrauchen kann und die zusätzliche Kosten verursachen - aber für ULLDIMM nötig wären...
Wie gesagt, ich seh da nichts, was man nicht irgendwie zweckendfremden könnte. ;)

Irgendwie muss es ja geben. Das Zeug gibt es ja auch bald zu kaufen, bzw halt Demos davon ;)


In aller Regel sind es gerade Consumer-/OC-Boards, die die Änderung von so ziemlich jedem Detail erlauben, in dem man vielleicht noch eine Spezifikation nicht überrschritten hat ;)
Jaein.

Kannste z.B. die PCI-E Paketgröße an Consumerboards einstellen?

Kannste RAM-Mirrowing betreiben?

alles was I/O anbelangt, sind Serverboards recht gut ausgestattet, und Consumerboards eher weniger. Was Serverboads nicht können sind Spannungen anpassen und TAktraten, das liegt aber eher an den CPUs, denn daran das man es nicht machen könnte von Seiten der Hersteller.

Touché
Wäre aber arg peinlich, wenn man Speicher mit extrem niedrigen Latenzen verkauft - und diese dann nur in einigen wenigen Situationen geboten werden.
Nö wieso?

Die Latenzen sind doch sehr niedrig. Der Wechsel aus einem Speicherbereich in einen anderen dauert halt etwas länger. Das haste aber bei DRAM an sich auch. Die Hacken an dem System werden die Leute schon selbst herausfinden, die muss man einem nicht noch auf die Nase binden ;)

So kurz sind die Schreibzyklen bei den hier einzustellenden Taktraten und Latenzen nicht. Vor allem aber erfordert dies einen permanenten Software-Overhead, denn einen Speicherzugriff zurückstellen und stattdessen erstmal ein spezielles Datum schreiben und dann den Zugriff doch durchführen - dass kann der Speichercontroller der CPU definitiv nicht in Eigenregie.
Die Frage ist halt, wie hoch sind die Taktraten wirklich???

Ich würde erwarten, dass das Interface an sich eben nicht niedrig getacktet ist, sondern relativ schnell läuft, um eben die Latenzen niedrig zu halten. Dafür brauchts dann halt genug Logik im Brückenchip, aber das sollte kein Problem sein.

In SMP-Systemen reicht es, den Speicher CPU-weise zu verwalten, im Worst Case pro Controller. Aber ich habe keinen Grund, einem Controller Anweisungen geben zu müssen/können, wie er die Speicherbänke seines Kanals zu sortieren hat. Auch deine anderen genannten Aufgaben greifen letztlich nur einen XY MB großen RAM mit Geschwindigkeit ZA an Controller AB zu. Wie der physisch organisiert ist, ist alleiniges Problem des Controllers.
Du hast aber nen globalen Adressraum :P

Es kommt also ganz darauf an, wie die Bestückung der einzelnen CPUs ist, um zu wissen wo wie der Speicher gemapped wird.
 
Wie gesagt, ich seh da nichts, was man nicht irgendwie zweckendfremden könnte. ;)

Ich gehe bei spezialisierter Hardware erstmal prinzipiell davon aus, dass sie sich gar nicht zweckentfremden lässt. In Zeiten, in denen selbst Massenspeicher zu PCI-Hardware mutieren, mag das merkwürdig erscheinen - aber das Speicherinterface ist tatsächlich noch ein archaisches Relikt aus einer Zeit, in der es für jede Hardwarekomponente ein spezialisiertes Interface gab, an dem dann auch wirklich nichts anderes funktionierte. Was hier verkauft wird, hat imho ähnliche Dimensionen wie die immer mal wieder gestellte Frage, warum man nicht Teile des VRAM-Interfaces von GPUs in einen Multi-GPU-Interconnect umfunktioniert.

Irgendwie muss es ja geben. Das Zeug gibt es ja auch bald zu kaufen, bzw halt Demos davon ;)

Ich will aber wissen, WIE es geht - und kein "da muss es wohl Konfigurierbarkeiten geben" ;)


Jaein.

Kannste z.B. die PCI-E Paketgröße an Consumerboards einstellen?

Hab ich schon mal gesehen, ja. (frag mich aber nicht, wo)

Kannste RAM-Mirrowing betreiben?

Meinst du Mirroring oder etwas, was ich tatsächlich nicht kenne? Ersteres ist keine Konfigurierung der Hardware-Settings, sondern ein Feature, wie mehrere Komponenten interagieren. Da bieten Server-Boards natürlich andere Features (Consumer hatten ja z.B. lange auch kein RAID). Aber das ist 2 Layer über den hier angesprochenen Punkten.

alles was I/O anbelangt, sind Serverboards recht gut ausgestattet, und Consumerboards eher weniger. Was Serverboads nicht können sind Spannungen anpassen und TAktraten, das liegt aber eher an den CPUs, denn daran das man es nicht machen könnte von Seiten der Hersteller.

Spannungsanpassungen haben nichts mit CPUs zu tun. Und I/O sind Schnittstellen für weitere Hardware - den Speichercontroller würde ich da nur sehr bedingt dazu zählen, der ist zentraler Systembestandteil. Und stabilitätsrelevant, weswegen er -wie CPUs- in Servern i.d.R. nur innerhalb der Specs läuft, ohne Bedarf für Feinjustierung.

Aber es geht hier auch gar nicht darum, was normale BIOSe können. Ein spezielles BIOS sollte kein Problem sein.
Die Frage ist: Was können normale Speichercontroller? Denn da wird es keinen speziellen geben. Und Konfigurationsmöglichkeiten, die selbst auf sehr extremen Boards nicht zur Verfügung stehen, sind z.T. eben schlichtweg nicht existent.

Die Frage ist halt, wie hoch sind die Taktraten wirklich???

Ich würde erwarten, dass das Interface an sich eben nicht niedrig getacktet ist, sondern relativ schnell läuft, um eben die Latenzen niedrig zu halten. Dafür brauchts dann halt genug Logik im Brückenchip, aber das sollte kein Problem sein.

Selbst bei 250 MHz hättest du noch eine Latenz von 1000 Taktzyklen, bis der Flash die Befehle verarbeitet hat. Auf DDR3 2500 hochzugehen, um 0,9 Taktzyklen bei der Übermittlung des Befehls einzusparen, würde nichts bringen - außer Probleme mit dem Speichercontroller, der jetzt auf einmal Register für ne 10.000er Latenzeinstellung braucht.

Du hast aber nen globalen Adressraum :P

Es kommt also ganz darauf an, wie die Bestückung der einzelnen CPUs ist, um zu wissen wo wie der Speicher gemapped wird.

Adressraum ist (Low-Level-)Software. Die muss über die Bestückung der CPUs nur die genannten Parameter wissen: Größe, ggf. Geschwindigkeit (bei SMP eher: Geschwindigkeit der Verbindung bis dahin). Also alles Dinge, die softwareseitig des Speichercontrollers laufen, nicht auf der Speicherseite des Channels.
 
Zurück