PatentDe  


Dokumentenidentifikation DE102005046997A1 26.04.2007
Titel Vorrichtung zum Speichern von Speicherwörtern
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Ruckerbauer, Hermann, 94554 Moos, DE
Vertreter Schoppe, Zimmermann, Stöckeler & Zinkler, 82049 Pullach
DE-Anmeldedatum 30.09.2005
DE-Aktenzeichen 102005046997
Offenlegungstag 26.04.2007
Veröffentlichungstag im Patentblatt 26.04.2007
IPC-Hauptklasse G11C 8/00(2006.01)A, F, I, 20050930, B, H, DE
IPC-Nebenklasse G06F 12/02(2006.01)A, L, I, 20050930, B, H, DE   
Zusammenfassung Es wird eine Vorrichtung zum Speichern von Speicherwörtern (SW1, SW2) mit einer Mehrzahl von Speicherelementstapeln (130, 140, 150, 160) beschrieben, wobei die Speicherelementstapel (130, 140, 150, 160) eine Mehrzahl von Speicherelementen (130-1 bis 130-4, 140-1 bis 140-4, 150-1 bis 150-4, 160-1 bis 160-4) aufsteigender Rangfolge aufweisen und wobei auf ein Speicherelement (130-4) höherer Rangfolge über ein oder eine Mehrzahl von Speicherelementen (130-1, 130-2, 130-3) niedriger Rangfolge zugegriffen werden kann, wobei die Vorrichtung zum Speichern von Speicherwörtern ferner eine Einrichtung (110) zum verteilten Speichern eines Speicherwortes (SW1, SW2) auf die Mehrzahl von Speicherelementstapeln (130, 140, 150, 160) aufweist, wobei ein Speicherwort (SW1) in zumindest zwei Speicherelementstapeln (130, 140) in Speicherelementen (130-3, 140-4) unterschiedlicher Rangfolge gespeichert wird.

Beschreibung[de]

Die vorliegende Erfindung bezieht sich auf eine Vorrichtung zum Speichern von Speicherwörtern, wie z. B.

DDR III-Elementen (DDR = Double Data Rate).

Ziel zukünftiger Speichertechnologien und Speicherstandards wie beispielsweise DDR III ist es, die Speicherdichte zu erhöhen. Ein nichtveröffentlichter Lösungsansatz, um die Speicherdichte für diese zukünftigen Speicherstandards zu erreichen, ist, die DRAMs (DRAM = Dynamic Random Access Memory) mit einer Re-Drive-Funktionalität auszustatten, d. h. die Daten, die das DRAM von dem Controller erhält, kann es zu einem nächsten DRAM weitersenden. Dies kann beispielsweise über einen dem DRAM zugeordneten Treiber erfolgen, über den die Daten entweder „intern", d.h. an den jeweiligen DRAM, weitergeleitet werden, oder über den die Daten „extern", d.h. an einen nächsten DRAM, weitergeleitet werden. Bei Geschwindigkeiten bzw. Datenübertragungsraten von bis zu 6,4 Gb/s ist aber speziell der Leistungsbedarf der IO-Schnittstellen (IO = Input/Output) bzw. Ein- und Ausgabeschnittstellen der dominierende Teil der verbrauchten Leistung. Bei den DDR-Technologien der ersten und zweiten Generation (DDRI, DDRII) ohne Re-Drive Funktionalität ist bisher der Leistungsverbrauch des Speicherkerns dominierend. Deshalb wird durch die Re-Drive-Funktionalität der Leistungsverbrauch stark erhöht.

Wird nun ein Modul aus vier vierfach-stacked Bausteinen mit Re-Drive-Funktionalität gebaut und soll nun auf den obersten Baustein bzw. Rank geschrieben werden, müssen die darunter liegenden Bausteine ihre Inputs/Outputs bzw. IO-Schnittstellen aktivieren, d.h. brauchen viel Energie bzw. erzeugen Wärmeenergie.

Im Worst Case wird nicht nur einmal auf die obersten Bausteine der vierfach-stacked Bausteine zugegriffen, d. h. beispielsweise gelesen oder geschrieben, sondern dauerhaft bzw. über einen längeren Zeitraum kontinuierlich zugegriffen. Dies kann zu einer Erhitzung und im schlimmsten Falle zu einer Überhitzung und damit Schädigung einzelner Bausteine bzw. des gesamten Moduls führen.

Einen vierfach Baustein für den Worst-Case zu kühlen, kann nur mit viel Aufwand, beispielsweise mittels eines aktiven Kühlers oder eines wärmeleitfähigen Packages, und unter hohen Kosten erreicht werden. Ist eine Kühlung im Worst-Case nicht möglich, muß eine „Notbremse", z.B. eine Reduzierung der Zugriffsgeschwindigkeit, eingebaut werden.

5 zeigt ein Blockschaltbild eines möglichen Speichermoduls mit einem Controller 510, einem Systembus 520 für die Übertragung von Steuersignalen, Adressdaten oder Nutzdaten, sowie vier Stacks 530, 540, 550 und 560, wobei jeder der Stacks 530, 540, 550 und 560 vier Bausteine oder Chips aufweist. Die Bausteine oder Chips sind in aufsteigender Rangfolge von dem Systembus 520 ausgehend durchnumeriert, z. B. für Stack 530, 530-1 bis 530-4.

Sollen Daten auf den obersten Chip 530-4 des Stacks 530 geschrieben werden, so werden diese Daten beispielsweise vom Systembus 520 an den ersten bzw. untersten Chip 530-1 gesendet, der die Daten weitergibt an den nächst höheren Chip 530-2, dieser gibt ihn weiter an den nächst höheren Chip 530-3, der diese dann letztendlich an den vierten bzw. obersten Chip 530-4 weiterleitet, wo diese Daten dann in den Chip eingeschrieben werden. Ähnlich werden beispielsweise beim Lesen die zu lesenden Daten über die Kette 530-4 an 530-3 an 530-2 an 530-1 und dann an den Bus 520 weitergesendet.

Beim Speichern von Datenwörtern, d. h. von Daten, die durch mehr als ein Bit repräsentiert werden, können die Datenwörter zerlegt werden und parallel in verschiedene Speicherbausteine geschrieben und aus diesen auch parallel wieder gelesen werden. Beispielhaft ist in 5 ein Speicherwort SW1 eingezeichnet, das in vier Teile SW1-1, SW1-2, SW1-3 und SW1-4 unterteilt ist, wobei das Speicherwortteil SW1-1 in dem obersten Chip 530-4 des Ranks 530 gespeichert ist, das Speicherwortteil SW1-2 in dem obersten Chip 540-4 des Stacks 540 gespeichert ist, der Speicherwortteil SW1-3 in dem obersten Chip 550-4 des Stacks 550 gespeichert ist und der Speicherwortteil SW1-4 in dem obersten Chip 560-4 des Stacks 560 gespeichert ist. Die kleinste Einheit bzw. Länge eines Teils eines Speicherelements ist ein bit.

Normalerweise wird auf die Chips eines Ranges genau so häufig zugegriffen, geschrieben oder gelesen, wie auf die Chips eines anderen Ranges. In dem zuvor dargestellten Worst-Case jedoch, werden über einen längeren Zeitraum Daten bzw. Speicherwörter ähnlich wie das Speicherwort SW1 in die obersten Chips geschrieben bzw. aus den obersten Chips ausgelesen. Dies kann, wie zuvor dargestellt, zu einer Überhitzung und Beschädigung der Chips bzw. des Speichermoduls führen.

Im Normalbetrieb, d. h. alle vier Ranks werden gleich bzw. gleich oft verwendet, wird die Worst-Case-Situation nicht auftreten. Nur in besonderen Fällen wird dauernd auf einen Rank geschrieben. Um diesen Sonderfall abzufangen bzw. mögliche Schädigungen des Moduls zu verhindern, ist der Einbau erweiterter Funktionen, beispielsweise einer Taktdrosselung im Falle einer Überhitzung, möglich.

Eine alternative Lösung sind beispielsweise FBDIMM (Fully Buffered Dual In-Line Memory Module) mit einem separaten Re-Drive-Chip, der dann eine lokale Kühlung erhält.

Zusammenfassend kann daher gesagt werden, dass der Stand der Technik aufwändige Lösungen, beispielsweise Kühlung oder Taktdrosselung, teilweise sogar leistungsreduzierende Lösungen, beispielsweise Taktdrosselung, lehrt.

Die Aufgabe der vorliegenden Erfindung besteht darin, ein effizientes Konzept zur Verringerung des Leistungsverbrauchs bzw. zur Verringerung des maximalen Leistungsverbrauchs und der damit einhergehenden Überhitzung eines Speichers oder Speichermoduls zu schaffen.

Diese Aufgabe wird durch eine Vorrichtung zum Speichern von Speicherwörtern gemäß Anspruch 1, ein Verfahren zum Speichern von Speicherwörtern gemäß Anspruch 6 und ein Computerprogramm gemäß Anspruch 7 gelöst.

Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass durch eine geschickte Verteilung der Ranks bzw. von Speicherelementen in einem Stacked-Baustein, der im Folgenden auch als Speicherelementstapel bezeichnet wird, die maximal verbrauchte Leistung einer Vorrichtung zum Speichern, beispielsweise eines DIMM, auf einem minimalen Level gehalten werden kann. Dieser Level entspricht einem Mittelwert, der erreicht wird, wenn angenommen wird, dass alle Bausteine bzw. Speicherelemente in einem Speicherelementstapel zu einem gleichen Anteil der Zeit angesprochen werden, z. B. bei einem aus vier Speicherelementen bestehenden Speicherelementstapel zu einem Viertel der Zeit angesprochen werden. Erfindungsgemäß wird daher eine Vorrichtung zum Speichern von Speicherwörtern geschaffen, die eine Mehrzahl von Speicherelementstapeln aufweist, wobei die Speicherelementstapel eine Mehrzahl von Speicherelementen aufsteigender Rangfolge aufweisen, und wobei auf ein Speicherelement höherer Rangfolge über ein oder eine Mehrzahl von Speicherelementen niedrigerer Rangfolge zugegriffen werden kann, und die eine Einrichtung zum verteilten Speichern eines Speicherwortes auf die Mehrzahl von Speicherelementstapeln aufweist, wobei ein Speicherwort in zumindest zwei Speicherelementstapeln in Speicherelementen unterschiedlicher Rangfolge gespeichert wird.

Bei einem bevorzugten Ausführungsbeispiel einer erfindungsgemäßen Vorrichtung zum Speichern von Speicherwörtern wird das Speicherwort in allen Speicherelementstapeln in Speicherelementen unterschiedlichen Ranges gespeichert, wie dies im Weiteren noch anhand von 1 und 4 erläutert wird.

Bei einem weiteren bevorzugten Ausführungsbeispiel einer erfindungsgemäßen Vorrichtung zum Speichern von Speicherwörtern ist die Anzahl der Speicherelemente pro Speicherelementstapel gleich einer Anzahl der Speicherelementstapel der Vorrichtung, so dass für den bevorzugten Fall, dass ein Speicherwort in allen Speicherelementstapeln in Speicherelementen unterschiedlichen Ranges gespeichert wird, bei jedem Zugriff über die Speicherelementstapel verteilt jeder Rang angesprochen wird und so eine optimale Reduzierung des maximalen Leistungsverbrauchs erreicht wird.

Bei erfindungsgemäßen Ausführungsbeispielen der Vorrichtung zum Speichern eines Speicherwortes ist vorzugsweise die Einrichtung zum verteilten Speichern derart ausgebildet, dass ein Speicherwort mittels einer Speicheradressenumsetzung in zumindest zwei Speicherelementstapeln in Speicherelementen unterschiedlicher Rangfolge gespeichert wird. Alternativ weist eine beispielhafte Vorrichtung mindestens einen Speicherelementstapel mit einem Speicheradressumsetzer auf, der derart ausgebildet ist, dass das Speicherwort in zumindest zwei Speicherelementstapeln in Speicherelementen unterschiedlicher Rangfolge gespeichert wird.

Dabei kann die Adressumsetzung beispielsweise über eine Leitungsvertauschung in einem Speicherelementstapel bzw. Stack oder von einem Controller erfolgen.

In anderen Worten ausgedrückt, wird eine Unterscheidung zwischen einer physikalischen Rangfolge und einer logischen Rangfolge eingeführt und die Verknüpfung zwischen einer logischen Rangfolge und einer physikalischen Rangfolge beispielsweise durch eine Adressumsetzung bewirkt. Dadurch wird beispielsweise beim Speichern eines Speicherwortes den Speicherwortteilen weiterhin die gleiche logische Rangfolge zugeordnet, diese wird jedoch in eine physikalische Rangfolge umgesetzt, so dass ein Speicherwort nicht mehr nur in den Speicherelementen der selben physikalischen Rangfolge gespeichert wird. Damit wird der Worst-Case vermieden bzw. der maximale Leistungsverbrauch reduziert.

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen detaillierter erläutert. Es zeigen:

1 ein Blockschaltbild eines erfindungsgemäßen Ausführungsbeispiels einer Vorrichtung zum Speichern eines Speicherwortes;

2 einen beispielhaften Leistungsverbrauch für einen einzelnen Speicherelementstapel in einem Worst-Case-Szenario;

3 einen beispielhaften Leistungsverbrauch für einen einzelnen Speicherelementstapel für eine gleichförmige Verteilung der Zugriffe auf die einzelnen Speicherelemente;

4 einen beispielhaften Leistungsverbrauch einer erfindungsgemäßen Vorrichtung zum Speichern mit vier Speicherelementstapeln und vier Speicherelementen pro Speicherelementstapel;

5 ein mögliches Speichermodul mit vier Stacks und vier Chips pro Stack.

1 zeigt ein Blockschaltbild eines erfindungsgemäßen Ausführungsbeispiels der Vorrichtung zum Speichern von Speicherwörtern, wobei die Vorrichtung zum Speichern eine Einrichtung 110 zum verteilten Speichern des Speicherwortes, ein Bussystem 120 und vier Speichereinheitenstapel, einen ersten Speichereinheitenstapel 130, einen zweiten Speichereinheitenstapel 140, einen dritten Speichereinheitenstapel 150 und einen vierten Speichereinheitenstapel 160 aufweist. Jeder der Speichereinheitenstapel 130, 140, 150, 160 weist wiederum vier Speichereinheiten auf, wobei die Speicherelemente in aufsteigender Rangfolge von dem Bussystem 120 ausgehend angeordnet sind. Der erste Speicherelementstapel 130 umfasst daher ein erstes Speicherelement bzw. Speicherelement erster Rangfolge 130-1, das mit dem Bus 120 verbunden ist, ein zweites Speicherelement oder Speicherelement zweiter Rangfolge 130-2, das mit dem ersten Speicherelement 130-1 verbunden ist, ein drittes Speicherelement oder Speicherelement dritter Rangfolge 130-3, das mit dem zweiten Speicherelement 130-2 verbunden ist, und ein viertes Speicherelement bzw. Speicherelement vierter Rangfolge, das auch als oberstes Speicherelement bezeichnet werden kann, 130-4, das mit dem dritten Speicherelement 130-3 verbunden ist.

Sollen Daten in allgemeiner Form in das vierte Speicherelement 130-4 des ersten Speicherelementstapels 130 geschrieben werden, so werden, wie zuvor für 5 beschrieben, die Daten beispielsweise von dem Bussystem 120 an das erste Speicherelement 130-1, von da an das zweite Speicherelement 130-2, von da an das dritte Speicherelement 130-3 und von dort an das vierte Speicherelement 130-4 weitergesendet.

Bei einem erfindungsgemäßen Ausführungsbeispiel der Vorrichtung zum Speichern eines Speicherwortes, wird das Speicherwort in Speicherwortteile aufgeteilt, diese Speicherwortteile werden im Gegensatz zu dem in 5 dargestellten Speichermodul jedoch nicht in Speicherelementen der gleichen Rangfolge gespeichert.

Eine Möglichkeit der Verteilung auf Speicherelemente verschiedener Rangfolgen wird anhand des Speicherwortes SW1 dargestellt, wobei ein erster Teil SWl-1 des ersten Speicherwortes SW1 in dem dritten Speicherelement 130-3 des ersten Speicherelementstapels 130 gespeichert ist, ein zweiter Teil SW1-2 des ersten Speicherwortes SW1 in einem vierten Speicherelement 140-4 des zweiten Speicherelementstapels 140 gespeichert ist, ein dritter Teil SW1-3 des ersten Speicherwortes SW1 in einem vierten Speicher 150-4 des dritten Speicherelementstapels 150 gespeichert ist und ein vierter Teil SW1-4 des ersten Speicherwortes SW1 in einem vierten Speicherelement 160-4 des vierten Speicherelementstapels 160 gespeichert ist. Dadurch, dass der erste Teil SW1-1 des ersten Speicherwortes SW1 nicht in dem vierten Speicherelement 130-4 des ersten Speicherelementstapels 130 sondern in dem dritten Speicherelement 130-3 des selben Speicherelementstapels 130 gespeichert wird, ist der Leistungsverbrauch gegenüber dem Worst-Case, wie er in 5 anhand des Speicherwortes SW dargestellt ist, reduziert. Beliebige andere Verteilungen sind möglich.

Ein Ausführungsbeispiel wird anhand eines Speicherwortes SW2 dargestellt, wobei hier das Speicherwort SW2 in den Speicherelementstapeln 130, 140, 150, 160 in Speicherelementen unterschiedlicher Rangfolge gespeichert ist. Der erste Teil SW2-1 des zweiten Speicherwortes SW2 ist in dem vierten Speicherelement 130-4 des ersten Speicherelementstapels 130 gespeichert, der zweite Teil SW2-2 des zweiten Speicherwortes SW2 ist in dem dritten Speicherelement 130-3 des zweiten Speicherelementstapels 140 gespeichert, der dritte Teil SW2-3 des zweiten Speicherwortes SW2 ist in dem zweiten Speicherelement 150-2 des dritten Speicherelementstapels 150 gespeichert und der vierte Teil SW2-4 des zweiten Speicherwortes SW2 ist in dem ersten Speicherelement 160-1 des vierten Speicherelementstapels 160 gespeichert. Werden alle Speicherwörter bezüglich der Speicherelementstapel 130, 140, 150, 160 in Speicherelementen unterschiedlicher Rangfolge gespeichert, so wird eine Minimierung des maximal möglichen Leistungsverbrauchs erreicht.

Die erfindungsgemäße Methode kann beispielsweise anhand der Einführung einer zusätzlichen logischen Rangfolge gegenüber der „physikalischen" Rangfolge erläutert werden. Die physikalische bzw. räumliche Anordnung der einzelnen Speicherelemente innerhalb eines Speicherelementstapels und damit auch deren grundsätzliche Verbindung können unverändert bleiben, die Verteilung eines Speicherwortes bzw. die Adressierung der einzelnen Speicherelemente variiert jedoch gegenüber den Speicherelementen eines anderen Speicherelementstapels, in dem einem Speicherwort eine einheitliche logische Rangfolge für die einzelnen Speicherelementstapel zugeordnet wird, jedoch verschiedene physikalische Rangfolgen für die einzelnen Speicherelementstapel. Damit wird ein Speicherwort in den Speicherelementstapeln in Speicherelementen unterschiedlicher physikalischer Rangfolge gespeichert. Dies kann beispielsweise durch eine Adressumsetzung zwischen der logischen Rangfolge und der physikalischen Rangfolge realisiert werden, wobei die logische Rangfolge auch als „logische" Adresse bzw. als logischer Adressteil angesehen werden kann und die physikalische Rangfolge als „physikalische" Adresse bzw. physikalischer Adressteil.

Eine beispielhafte Adressumsetzung zwischen einer logischen Rangfolge und einer physikalischen Rangfolge wird anhand von 1 näher erläutert. Dabei kann beispielsweise für die Adressierung eines der vier Speicherelemente der Speicherelementstapel ein Zwei-Bit-Adresswort verwendet werden, beispielsweise „00" für das erste Speicherelement, „01" für das zweite Speicherelement, „10" für das dritte Speicherelement und „11" für das vierte bzw. oberste Speicherelement.

Im Stand der Technik würde ein Speicherwort in vier Speicherwortteile aufgeteilt, wobei ein Controller 510 die vier verschiedenen Speicherwortteile mit der gleichen Speicherelementadresse adressieren bzw. in die gleichen physikalischen Speicherelemente schreiben würde, was zu dem zuvor beschriebenen Worst-Case führen kann.

Bei dem in 1 anhand von Speicherwort SW2 gezeigten Ausführungsbeispiel wird beispielsweise dem Speicherwort bzw. den vier Speicherwortteilen SW2-1 bis SW2-4 beispielsweise die gleiche logische Rangfolge „11" zugeordnet, vor dem physikalischen Zugriff wird jedoch der logischen Rangfolge eine physikalische Rangfolge zugeordnet, die für die einzelnen Speicherelementstapel 130, 140, 150, 160 unterschiedlich ist. So entspricht beispielsweise für den ersten Speicherelementstapel 130 die physikalische Rangfolge der logischen Rangfolge „11", weswegen der erste Teil SW2-1 des zweiten Speicherworts SW2 in dem vierten Speicherelement 130-4 des Speicherelementstapels 130 gespeichert wird, für den zweiten Speicherelementstapel 140 wird der logischen Rangfolge „11" die physikalische Rangfolge bzw. Adresse „10" zugeordnet, weswegen der zweite Speicherwortteil SW2-2 in dem dritten Speicherelement 130-4 des zweiten Speicherelementstapels 140 gespeichert wird, für den dritten Speicherelementstapel 150 wird die logische Rangfolge bzw. Adresse „11" in die physikalische Rangfolge bzw. Adresse „01" umgewandelt, so dass der dritte Speicherwortteil SW2-3 des zweiten Speicherwortes SW2 in dem zweiten Speicherelement 150-2 des dritten Speicherelementstapels 150 gespeichert wird, und für den vierten Speicherelementstapel 160 wird die logische Rangfolge bzw. Adresse „11" in die logische Rangfolge bzw. Adresse „00" umgewandelt, so dass der vierte Speicherwortteil SW2-4 des zweiten Speicherworts SW in dem ersten Speicherelement 160-1 des vierten Speicherelementstapels 160 gespeichert wird.

Die Speicherumsetzung kann beispielsweise durch eine zentrale Einrichtung 112 der Speicherumsetzung erfolgen oder durch eine oder eine Mehrzahl von Einrichtungen zur Adressumsetzung 132, 142, 152, 162 in den einzelnen Speicherelementstapeln 130, 140, 150, 160, wobei eine Ausführungsbeispiel der erfindungsgemäßen Vorrichtung zum Speichern eines Speicherwortes nur eine Einrichtung zur Adressumsetzung, z. B. die Einrichtung 132 zur Adressumsetzung des ersten Speicherelementstapels 130, aufweisen kann oder zwei oder drei oder vier, d. h. für alle, also eine Einrichtung zur Adressumsetzung 142 für oder in dem zweiten Speicherelementstapel 140, eine Einrichtung 152 zur Adressumsetzung für bzw. in dem dritten Speicherelementstapel 150 und eine Einrichtung 162 zur Adressumsetzung für oder in dem vierten Speicherelementstapel 160.

Generell ist es auch möglich, diese Verteilung eines Speicherwortes auf Speicherelemente verschiedener Rangfolge bzw. die Adressumsetzung durch eine externe Einheit zu steuern, im Rahmen der Kompatibilität zu anderen Speichervorrichtungen, beispielsweise DDRIII oder der Benutzung mit anderen Geräten, wird diese Verteilung bzw. Adressumsetzung jedoch vorzugsweise innerhalb der Vorrichtung zum Speichern vorgenommen, so dass dieses Verfahren für außenstehende Geräte nicht sichtbar ist und die Kommunikation mit der Vorrichtung zum Speichern gegenüber anderen Speichern nicht geändert werden muss.

2 zeigt einen beispielhaften einzelnen Stack bzw. Speicherelementstapel 200 mit vier DRAM-Bausteinen bzw. Speicherelementen 200-1, 200-2, 200-3, 200-4 und zeigt des weiteren ein Worst-Case-Leistungsverbrauchsszenario für denselben. Die Schnittstelle des ersten Speicherelements 200-1, beispielsweise zu einem Bussystem, wird mit 200-10 bezeichnet, die Schnittstelle des ersten Speicherelements 200-1 zu dem zweiten Speicherelement 200-2 wird mit 200-12 bezeichnet, die IO-Schnittstelle des zweiten Bauelements 200-2 zu dem ersten Speicherelement 200-1 wird mit 200-21 bezeichnet, wobei die erste Ziffer hinter dem Bindestrich das jeweilige Speicherelement bezeichnet und die zweite Ziffer hinter dem Bindestrich das Speicherelement mit dem das Speicherelement über diese Schnittstelle verbunden ist. Diese Nomenklatur gilt für die anderen Schnittstellen in 2 sowie für die Schnittstellen in den 3 und 4.

Die Werte für den Leistungsverbrauch der Speicherkerne der einzelnen Speicherelemente sind in die Blöcke der Speicherelemente eingetragen. Die Werte für den Leistungsverbrauch der IO-Schnittstellen sind jeweils auf der rechten Seite der einzelnen Speicherelemente bzw. von deren Schnittstellen aufgetragen. Dies gilt für die 2 bis 4.

Worst-Case bedeutet, dass das oberste bzw. vierte Speicherelement immer aktiv ist, d. h. immer auf dieses Speicherelement zugegriffen wird.

Der Leistungsverbrauch des Speicherkerns des Speicherelementes 200-4 beträgt 0,5 W, da es aktiv ist. Der Leistungsverbrauch der Speicherkerne der drei anderen Speicherelemente 200-1, 200-2, 200-3, der im Englischen auch als Core Power bezeichnet wird, beträgt nur 0,1 W, da sie inaktiv sind. Der gesamte Speicherkernleistungsverbrauch beträgt daher 0,8 W.

Da auf das oberste bzw. vierte Speicherelement 200-4 zugegriffen wird, sind alle IO-Schnittstellen aktiv, wobei jede IO-Schnittstelle einen IO-Leistungsverbrauch, im Englischen auch als IO-Power bezeichnet, von 1 W aufweist, so dass der gesamte IO-Leistungsverbrauch des Speicherelementstapels 7 W beträgt.

Damit ergibt sich ein gesamter Leistungsverbrauch von 7,8 W pro Speicherelementstapel und ein Leistungsverbrauch von 31,2 W für ein DIMM-Modul, das beispielsweise vier Speicherelementstapel mit dem zuvor genannten Leistungsverbrauch aufweist.

3 zeigt denselben Speicherelementstapel 200 aus 2 mit vier Speicherelementen 200-1, 200-2, 200-3, 200-4. Die Schnittstellen der einzelnen Speicherelemente sind gemäß der zuvor beschriebenen Nomenklatur bezeichnet.

3 zeigt ein Szenario für einen gemischten, gleich verteilten Zugriff auf die vier Speicherelemente 200-1, 200-2, 200-3, 200-4, d. h. ein Viertel der Zugriffe pro Speicherelement bzw. jedes Speicherelement ist ein Viertel der Zeit aktiv.

Der Leistungsverbrauch der einzelnen Speicherelemente berechnet sich aus der Summe des Leistungsverbrauchs im aktiven Zustand, 1/4 × 0,5 W = 0,125 W, und dem Leistungsverbrauch in der nicht aktiven Zeit, 3/4 × 0,1 W = 0,075 W, so dass sich ein Gesamtleistungsverbrauch pro Speicherelement von 0,2 W ergibt und für den gesamten Speicherelementstapel 200 ein Speicherkernleistungsverbrauch von 0,8 W ergibt.

Der Leistungsverbrauch der einzelnen IO-Schnittstellen ergibt sich aus der Summe des Leistungsverbrauchs im inaktiven Zustand und des Leistungsverbrauchs im aktiven Zustand, wobei der linke der in 3 gezeigten Leistungsverbrauchswerte den Leistungsverbrauch im aktiven Zustand angibt und der rechte Wert den Leistungsverbrauch im inaktiven Zustand.

Die IO-Schnittstelle 200-10 ist immer aktiv, und hat daher einen Leistungsverbrauch von 1 W. Da auf alle Speicherelemente gleich verteilt zugegriffen wird, sind die Schnittstellen 200-21 und 200-12 75 % der Zeit aktiv, so dass sich ein Leistungsverbrauch im aktiven Zustand von 0,75 × 1 W = 0,75 W ergibt und ein Leistungsverbrauch im inaktiven Zustand von 0,25 × 0,1 W = 0,025 W ergibt und somit ein Gesamtleistungsverbrauch von 0,775 W. Die Schnittstellen 200-23 und 200-32 sind entsprechend 50 % der Zeit aktiv, d. h. es ergibt sich ein Leistungsverbrauch im aktiven Zustand von 0,5 × 1 W = 0,5 W und im inaktiven Zustand von 0,5 × 0,1 W = 0,05 W und damit ein Gesamtleistungsverbrauch von 0,55 W pro IO-Schnittstelle. Für die Schnittstellen 200-34 und 200-43, die nur 24 % der Zeit aktiv sind, ergibt sich dann ein Leistungsverbrauch im aktiven Zustand von 0,25 × 1 W = 0,25 W und im inaktiven Zustand von 0,75 × 0,1 W = 0,075 W und damit ein Gesamtleistungsverbrauch von 0,325 W. Der gesamte IO-Leistungsverbrauch des Speicherelementstapels 200 ergibt sich damit zu 4,3 W.

Der Gesamtleistungsverbrauch eines Speicherelementstapels beträgt damit 5,1 W und der eines DIMM-Moduls mit beispielsweise vier Speicherelementstapeln des zuvor genannten Leistungsverbrauchs 20,4 W.

Der Leistungsverbrauch bzw. der Spitzenleistungsverbrauch gemäß des Szenarios in 3 ist damit um 10,8 W geringer bzw. um mehr als 34 % reduziert gegenüber dem Leistungsverbrauch des Szenarios gemäß 2.

4 zeigt ein bevorzugtes Ausführungsbeispiel wie es anhand von 1 und dem zweiten Speicherwort SW2 erläutert wurde, und stellt damit die bevorzugte erfindungsgemäße Methode dar, um beispielsweise eine Worst-Case-DIMM-Konfiguration, wie sie in 5 anhand des Speicherworts SW dargestellt wurde, zu vermeiden.

4 zeigt eine Vorrichtung zum Speichern eines Speicherwortes mit vier Speicherelementstapeln 130, 140, 150, 160, die jeweils vier Speicherelemente aufweisen. Für die Beschreibung der 4 wird der aus der englischen Fachliteratur bekannte Begriff Rank verwendet, wobei der Rank im herkömmlichen Sinne der physikalischen Rangfolge aus 1 entspricht, und in 4 im Sinne der Erfindung als logischer Rank eingeführt wird. Dabei entspricht der erste Rank R1 beispielsweise der logischen Rangfolge 4 aus 1, der zweite Rank R2 der dritten logischen Rangfolge, der dritte Rank R3 der zweiten logischen Rangfolge und der vierte Rank R4 der ersten logischen Rangfolge.

Anhand des Ausführungsbeispiels in 4 wird der Leistungsverbrauch der gesamten Vorrichtung zum Speichern dargestellt, wobei in dem dargestellten Szenario der erste Rank R1 bzw. der erste logische Rank aktiv ist, bzw. übertragen auf 1 beispielsweise das zweite Speicherwort SW2 gelesen oder geschrieben wird, wie es in 1 dargestellt ist.

Für den ersten Speicherelementstapel 130 ergibt sich entsprechend das in 2 erläuterte Worst-Case-Szenario für einen einzelnen Speicherelementstapel mit einem Leistungsverbrauch von 7,8 W.

Im zweiten Speicherelementstapel 140 ist entsprechend des Szenarios der erste Rank R1 bzw. das Speicherelement der dritten physikalischen Rangfolge aktiv, so dass die IO-Schnittstellen zwischen dem ersten Rank R1 und dem vierten Rank R4 inaktiv sind, d. h. nur einen Leistungsverbrauch von 0,1 W jeweils haben, während die anderen Schnittstellen aktiv sind, also jeweils einen Leistungsverbrauch von 1 W aufweisen. Der Leistungsverbrauch der Speicherkerne ergibt sich aus 0,5 W für den aktiven Speicherkern und 0,1 W jeweils für die inaktiven Speicherkerne, so dass sich ein Gesamtleistungsverbrauch für den zweiten Speicherelementstapel 140 von 6 W ergibt.

In dem dritten Speicherelementstapel 150 ist gemäß des Szenarios der erste Rank R1 aktiv, der hier dem Speicherelement der zweiten physikalischen Rangfolge entspricht, so dass der dritte Rank R3 und der vierte Rank R4 inaktiv sind, so dass sich für die Schnittstellen zwischen dem ersten Rank R1 und dem vierten Rank R4 und dem dritten Rank R3, die inaktiv sind, ein Leistungsverbrauch von jeweils 0,1 W ergibt, und für die restlichen Schnittstellen, die aktiv sind, jeweils 1 W. Der Leistungsverbrauch der Speicherkerne ist wie zuvor 0,8 W, so dass sich ein gesamter Leistungsverbrauch für den dritten Speicherelementstapel 150 von 4,2 W ergibt.

Für den vierten Speicherelementstapel 160 ergibt sich dann der Best Case, nur Rank 1 bzw. das Speicherelement der ersten physikalischen Rangfolge ist aktiv, so dass nur die Schnittstelle zwischen Rank 1 und beispielsweise einem Bussystem aktiv ist, somit also einen Leistungsverbrauch von 1 W hat, während alle anderen IO-Schnittstellen einen Leistungsverbrauch von 0,1 W aufweisen. Der Leistungsverbrauch der Speicherkerne ist wie zuvor 0,8 W, so dass sich ein gesamter Leistungsverbrauch für den vierten Speicherelementstapel 160 von nur 2,4 W ergibt.

Addiert man die zuvor berechneten Leistungswerte der einzelnen Speicherelementstapel 130, 140, 150, 160, so erhält man erwartungsgemäß einen gesamten Leistungsverbrauch für die erfindungsgemäße Vorrichtung zum Speichern von 20,4 W (bzw. für ein beispielhaftes DIMM-Modul), bzw. einen gesamten Speicherkernleistungsverbrauch von 3,2 W und einen gesamten IO-Leistungsverbrauch von 17,2 W.

Dieser Leistungsverbrauch ergibt sich immer, und ist unabhängig davon, welcher Rank gerade aktiv ist. Damit ist dargelegt, dass durch die erfindungsgemäße Verteilung der Ranks bzw. Rangfolgen der Speicherelemente innerhalb der Speicherelementstapel vermieden wird, dass der Worst-Case auftreten kann.

Die Erfindung ist bzgl. der Speicherelemente auf beliebige Speichertechnologien anwendbar. Des weiteren ist die Anzahl der Speicherelemente pro Speicherelementstapel oder die Anzahl der Speicherelementstapel pro Vorrichtung zum Speichern nicht begrenzt.

So können Ausführungsbeispiele erfindungsgemäßer Speicher nicht nur vier Speicherelementstapel mit jeweils vier Speicherelementen aufweisen, sondern beispielsweise auch vier Speicherelementstapel mit jeweils zwei Speicherelementen, acht Speicherelementstapel mit jeweils vier Speicherelementen, d.h. mehr Speicherelementstapel als Speicherelemente pro Speicherelementstapel aufweisen, oder beispielsweise zwei Speicherelementstapel mit jeweils vier Speicherelementen pro Speicherelementstapel, d.h. mehr Speicherelemente pro Speicherelementstapel als Speicherelementstapel aufweisen.

Ein Ausführungsbeispiel eines erfindungsgemäßen Speichers mit beispielsweise vier Speicherstapelelementen mit jeweils zwei Speicherelementen pro Speicherelementstapel speichert ein Speicherwort derart, dass mindestens ein Teil des Speicherwortes nicht in dem obersten Speicherelement eines Speicherelementstapels gespeichert wird, also z. B. einen ersten Teil des Speicherwortes in einem unteren Speicherelement eines ersten Speicherelementstapels und die restlichen Teile des Speicherwortes in oberen Speicherelementen eines zweiten, dritten und vierten Speicherelementstapels. Ein bevorzugtes Ausführungsbeispiel eines derartigen Speichers speichert zwei Teile eines vierteiligen Speicherwortes in den unteren Speicherelementen zweier Speicherelementstapel und die zwei restlichen Teile des Speicherwortes in den oberen Speicherelementen der zwei anderen Speicherelementstapel, um so den maximal möglichen Leistungsverbrauch zu minimieren.

Generell sind bevorzugte Ausführungsbeispiele der Erfindung derart ausgebildet, dass der maximal mögliche Leistungsverbrauch für jede logische Rangfolge bzw. entsprechende Zuordnung von physikalischen Rangfolgen oder Kombination von Speicherelementen verschiedener Speicherelementstapel minimiert wird. Bevorzugte Adressumsetzungen verteilen daher die Teile eines Speicherwortes „paarweise" in Speicherelementen entgegengesetzter Rangfolge, z. B. einen ersten Teil eines Speicherwortes in ein Speicherelement der höchsten Rangfolge und einen zweiten Teil des Speicherwortes in ein Speicherelement der niedrigsten Rangfolge oder anders ausgedrückt, in das oberste Speicherelement eines Speicherelementstapels und in das unterste Speicherelement eines weiteren Speicherelementstapels. Dabei kann diese „paarweise" Zuordnung benachbarte Speicherelementstapel umfassen, kann jedoch genauso auch eine beliebige räumliche Zuordnung von Speicherelementstapeln umfassen. Entsprechend wird vorzugsweise ein Speicherelement der zweithöchsten Rangfolge mit einem Speicherelement einer zweitniedrigsten Rangfolge eines anderen Speicherelementstapels, usw., kombiniert.

Zusammenfassend kann daher gesagt werden, dass durch die erfindungsgemäße Anordnung der Ranks innerhalb eines Multi-Rank-Stack-Bausteins bzw. der geschickten Anordnung der beispielsweise vier Speicherelemente innerhalb eines Speicherelementstapels erreicht wird, dass der Worst-Case, nämlich dass alle vier Speicherelementstapel auf den obersten Chip bzw. das Speicherelement der höchsten bzw. vierten Rangfolge schreiben, nicht auftreten kann.

110
Einrichtung zum verteilten Speichern
120
Bussystem
130
erster Speicherelementstapel
140
zweiter Speicherelementstapel
150
dritter Speicherelementstapel
150
vierter Speicherelementstapel
130-1
erstes Speicherelement des ersten Speicherelementstapels
130-2
zweites Speicherelement des ersten Speicherelementstapels
130-3
drittes Speicherelement des ersten Speicherelementstapels
130-4
viertes Speicherelement des ersten Speicherelementstapels
SW1
erstes Speicherwort
SW1-1
erster Teil des ersten Speicherwortes
SW1-2
zweiter Teil des ersten Speicherwortes
SW1-3
dritter Teil des ersten Speicherwortes
SW1-4
vierter Teil des ersten Speicherwortes
SW2
zweites Speicherwort
SW2-1
erster Teil des zweiten Speicherwortes
SW2-2
zweiter Teil des zweiten Speicherwortes
SW2-3
dritter Teil des zweiten Speicherwortes
SW2-4
vierter Teil des zweiten Speicherwortes
112
zentrale Einrichtung zur Adressumsetzung
132
Einrichtung zur Adressumsetzung des ersten Speicherelementstapels
142
Einrichtung zur Adressumsetzung des zweiten Speicherelementstapels
152
Einrichtung zur Adressumsetzung des dritten Speicherelementstapels
162
Einrichtung zur Adressumsetzung des vierten Speicherelementstapels
200
einzelner Speicherelementstapel
200-1
erstes Speicherelement des Speicherelementstapels
200-2
zweites Speicherelement des Speicherelementstapels
200-3
drittes Speicherelement des Speicherelementstapels
200-4
viertes Speicherelement des einzelnen Speicherelementstapels
R1
erster Rank
R2
zweiter Rank
R3
dritter Rank
R4
vierter Rank
510
Controller
520
Bussystem
530
Stacks
540
Stacks
550
Stacks
560
Stacks
530-1
erster Chip des Stacks 530
530-2
zweiter Chip des Stacks 530
530-3
dritter Chip des Stacks 530
530-4
vierter Chip des Stacks 530
SW
Speicherwort
SW-1
erster Speicherwortteil
SW-2
zweiter Speicherwortteil
SW-3
dritter Speicherwortteil
SW-4
vierter Speicherwortteil
540-4
vierter bzw. oberster Chip des Stacks 540
550-4
vierter bzw. oberster Chip des Stacks 550
560-4
vierter bzw. oberster Chip des Stacks 560


Anspruch[de]
Vorrichtung zum Speichern von Speicherwörtern (SW1, SW2), mit folgenden Merkmalen:

einer Mehrzahl von Speicherelementstapeln (130, 140, 150, 160);

wobei die Speicherelementstapel (130, 140, 150, 160) eine Mehrzahl von Speicherelementen (130-1 bis 130-4, 140-1 bis 140-4, 150-1 bis 150-4, 160-1 bis 160-4) aufsteigender Rangfolge aufweisen, und wobei auf ein Speicherelement (130-4) höherer Rangfolge über ein oder eine Mehrzahl von Speicherelementen (130-1, 130-2, 130-3) niedrigerer Rangfolge zugegriffen werden kann;

eine Einrichtung (110) zum verteilten Speichern eines Speicherwortes (SW1, SW2) auf die Mehrzahl von Speicherelementstapeln (130, 140, 150, 160);

wobei ein Speicherwort (SW1) in zumindest zwei Speicherelementstapeln (130, 140) in Speicherelementen (130-4, 140-3) unterschiedlicher Rangfolge gespeichert wird.
Vorrichtung nach Anspruch 1, bei der eine Anzahl der Speicherelemente (130-1 bis 130-4, 140-1 bis 140-4, 150-1 bis 150-4, 160-1 bis 160-4) pro Speicherelementstapel (130, 140, 150, 160) gleich einer Anzahl der Speicherelementstapel (130, 140, 150, 160) der Vorrichtung ist. Vorrichtung nach Anspruch 1 oder 2, wobei das Speicherwort (SW2) in allen Speicherelementstapeln (130, 140, 150, 160) in Speicherelementen (130-4, 140-3, 150-2, 160-1) unterschiedlicher Rangfolge gespeichert wird. Vorrichtung nach einem der Ansprüche 1 bis 3, bei der die Einrichtung (110) zum verteilten Speichern derart ausgebildet ist, dass ein Speicherwort (SW1) mittels einer Speicheradressenumsetzung in zumindest zwei Speicherelementstapeln (130, 140) in Speicherelementen (130-4, 140-3) unterschiedlicher Rangfolge gespeichert wird. Vorrichtung nach einem der Ansprüche 1 bis 3, bei der mindestens ein Speicherelementstapel (130) einen Speicheradressumsetzer (132) aufweist, der derart ausgebildet ist, dass das Speicherwort (SW1) in zumindest zwei Speicherelementstapeln (130, 140) in Speicherelementen (130-3, 140-4) unterschiedlicher Rangfolge gespeichert wird. Verfahren zum Speichern von Speicherwörtern (SW1, SW2) mittels einer Mehrzahl von Speicherelementstapeln (130, 140, 150, 160), wobei die Speicherelementstapel (130, 140, 150, 160) eine Mehrzahl von Speicherelementen (130-1 bis 130-4, 140-1 bis 140-4, 150-1 bis 150-4, 160-1 bis 160-4) aufsteigender Rangfolge aufweisen, und wobei auf ein Speicherelement (130-4) höherer Rangfolge über ein oder eine Mehrzahl von Speicherelementen (130-1, 130-2, 130-3) niedrigerer Rangfolge zugegriffen werden kann, mit folgendem Schritt:

verteiltes Speichern eines Speicherwortes (SW1, SW2) auf die Mehrzahl von Speicherelementstapeln (130, 140, 150, 160),

wobei ein Speicherwort (SW1) in zumindest zwei Speicherelementstapeln (130, 140) in Speicherelementen (130-3, 140-4) unterschiedlicher Rangfolge gespeichert wird.
Computerprogramm mit einem Programm-Code zum Ausführen eines Verfahrens gemäß Anspruch 6, wenn das Computerprogramm auf einem Computer abläuft.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com