Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR OPERATING A MEMORY ASSEMBLY
Document Type and Number:
WIPO Patent Application WO/2020/104091
Kind Code:
A1
Abstract:
The invention relates to a method for operating a memory assembly. A physical address is received. The physical address is associated with a first memory segment of a memory assembly. The physical address is modified to a modified physical address. The modified physical address is associated with a second memory segment of the memory assembly.

Inventors:
LISTL ALEXANDRA (DE)
MÜLLER-GRITSCHNEDER DANIEL (DE)
Application Number:
PCT/EP2019/076585
Publication Date:
May 28, 2020
Filing Date:
October 01, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UNIV MUENCHEN TECH (DE)
International Classes:
G11C8/10
Foreign References:
US20140241099A12014-08-28
US20040260934A12004-12-23
US20130094320A12013-04-18
JP2011187153A2011-09-22
Other References:
VON PAUL GIGLIOTTI: "Implementing Barrel Shifters Using Multipliers", XILINX APPLICATION NOTE, 17 August 2004 (2004-08-17)
VON MICHAEL J. SCHULTE ET AL.: "Design Alternatives for Barrel Shifters", PROC. SPIE, vol. 4791
ADVANCED SIGNAL PROCESSING ALGORITHMS, ARCHITECTURES, AND IMPLEMENTATIONS XII, 6 December 2002 (2002-12-06)
Attorney, Agent or Firm:
LUCKE, Andreas (DE)
Download PDF:
Claims:
ANSPRÜCHE

1. Verfahren (100) zum Betreiben einer Speicheranordnung (210), wobei das Verfahren (100) Folgendes umfasst:

Empfangen (102) einer physikalischen Adresse (Ai), wobei die physikalische Adresse (Ai) einem ersten Speichersegment (Si) einer Speicheranordnung (210) zugeordnet ist; Modifizieren (104) der physikalischen Adresse (Ai) zu einer modifizierten physikali schen Adresse (A2), wobei die modifizierte physikalische Adresse (A2) einem zweiten Speichersegment (S2) der Speicheranordnung (210) zugeordnet ist; und

Anwählen (106) des zweiten Speichersegments (S2).

2. Verfahren nach Anspruch 1,

wobei die physikalische Adresse (Ai) eine Gruppe von Adressensegmenten (All, A12, A13, A14) umfasst,

wobei die modifizierte physikalische Adresse (A2) aus einer Modifizierung einer Unter gruppe der Adressensegmente (An, A12, A13, A14) erhalten wird.

3. Verfahren nach einem der vorhergehenden Ansprüche, das weiterhin Folgendes um fasst:

Bereitstellen eines Modifikationswertes (M),

wobei die physikalische Adresse (Ai) und der Modifikationswert (M) jeweils eine Bi närzahl mit N Stellen sind,

wobei N eine positive ganze Zahl ist, und

wobei die modifizierte physikalische Adresse (A2) aus einer Exklusiv-Oder- Verknüpfung der physikalischen Adresse (A) und des Modifikationswertes (M) erhalten wird.

4. Verfahren nach Anspruch 3, das weiterhin Folgendes umfasst:

Bestimmen des Modifikationswertes (M) mittels eines ganzzahligen Zählers (221), der bei einer Neusortierung, einem Start und/oder Neustart der Speicheranordnung (210) inkrementiert oder dekrementiert; und/oder

Bestimmen des Modifikationswertes (M) mittels eines Zufallszahlengenerators.

5. Verfahren nach einem der vorhergehenden Ansprüche,

wobei die physikalische Adresse (Ai) eine Binärzahl mit N Stellen ist,

wobei N eine positive ganze Zahl ist, wobei die modifizierte physikalische Adresse (A2) aus einer Verschiebung und Rotation von Bitwerten der physikalischen Adresse (Ai) um K Stellen in Richtung einer ersten oder einer letzten Stelle der physikalischen Adresse (Ai) erhalten wird, und

wobei K eine positive ganze Zahl größer als Null und ungleich N ist.

6. Verfahren nach Anspruch 5, das weiterhin Folgendes umfasst:

Bestimmen von K mittels eines ganzzahligen Zählers (221), der bei einer Neusortierung, einem Start und/oder Neustart der Speicheranordnung (210) inkrementiert oder dekrementiert; und/oder

Bestimmen von K mittels eines Zufallszahlengenerators.

7. Verfahren nach Anspruch 5 oder 6, das weiterhin Folgendes umfasst:

Bestimmen, ob die Binärzahl der physikalischen Adresse (Ai) N Nullen oder N Einsen enthält;

falls die Binärzahl der physikalischen Adresse (Ai) N Null oder N Einsen enthält, Inver tieren der Binärzahl der physikalischen Adresse (Ai), falls der ganzzahlige Zähler (221) eine ungerade Zahl ist.

8. Verfahren nach einem der vorhergehenden Ansprüche, das weiterhin Folgendes um fasst:

Dekodieren der modifizierten physikalischen Adresse (A2) zum Anwählen (106) des zweiten Speichersegments (S2).

9. Vorrichtung (200), umfassend:

eine Speicheranordnung (210) mit einem ersten Speichersegment (Si) und einem zwei ten Speichersegment (S2);

eine Modifikationseinheit (220) zum Empfangen einer physikalischen Adresse (Ai), wobei die physikalischen Adresse (Ai) dem ersten Speichersegment (Si) zugeordnet ist, wobei die Modifikationseinheit (220) eingerichtet ist, die physikalische Adresse (Ai) zu einer modifizierten physikalischen Adresse (A2) zu modifizieren, wobei die modifizierte physikalische Adresse (A2) dem zweiten Speichersegment (S2) zugeordnet ist.

10. Vorrichtung nach Anspruch 9,

wobei die physikalische Adresse (Ai) eine Gruppe von Adressensegmenten (An, A12, A13, A14) umfasst,

wobei die Modifikationseinheit (220) eingerichtet ist, eine Untergruppe der Adressen segmente (All, A12, A13, A14) zu modifizieren, um die modifizierte physikalische Ad resse (A2) zu erhalten.

11. Vorrichtung nach Anspruch 9 oder 10, die weiterhin Folgendes umfasst: einen Zähler (221) zum Bereitstellen eines Modifikationswertes (M), wobei die physika lische Adresse (Ai) und der Modifikationswert (M) jeweils eine Binärzahl mit N Stellen sind; und

ein XOR-Gatter (234) zum Empfangen der physikalischen Adresse (Ai) und des Modi fikationswertes (M) und zum Ausgeben der modifizierten physikalischen Adresse (A2) als Ergebnis aus einer XOR-Verknüpfung der physikalischen Adresse (Ai) und des Mo difikationswertes (M).

12. Vorrichtung nach Anspruch 11,

wobei der Zähler (221) eingerichtet ist, den Modifikationswert (M) bei einer Neusortie rung, einem Start und/oder Neustart der Speicheranordnung (210) zu inkrementieren oder zu dekrementieren.

13. Vorrichtung nach einem der Ansprüche 9 bis 12,

wobei die physikalische Adresse (Ai) eine Binärzahl mit N Stellen ist,

wobei die Vorrichtung (200) weiterhin einen Barrel-Shifter (225) umfasst, der einge richtet ist, die modifizierte physikalische Adresse (A2) aus einer Verschiebung und Ro tation von Bitwerten der physikalischen Adresse (Ai) um K Stellen in Richtung einer ersten oder einer letzten Stelle der physikalischen Adresse (Ai) auszugeben, wobei K eine positive ganze Zahl größer als Null und ungleich N ist.

14. Vorrichtung nach einem der Ansprüche 9 bis 13, die weiterhin Folgendes umfasst:

eine Steuereinheit (230) zum Ansteuern der Speichersegmente (Si, S2)

15. Vorrichtung nach einem der Ansprüche 9 bis 14, die weiterhin Folgendes umfasst:

eine Prozessoreinheit (250), die eingerichtet ist, einen Speicherwert an die Speicherein richtung (210) zu übermitteln oder den Speicherwert von der Speichereinrichtung (210) abzurufen, wobei die physikalische Adresse (Ai) dem Speicherwert zugeordnet ist; und eine Datenübertragungseinheit (252), die die Prozessoreinheit (250) mit der Speicher einrichtung (210) verbindet und eingerichtet ist, die physikalische Adresse (Ai) zwi schen der Prozessoreinheit (250) und der Speichereinrichtung (210) zu übertragen.

Description:
VERFAHREN UND VORRICHTUNG ZUM BETREIBEN EINER SPEICHERANORDNUNG

HINTERGRUND DER ERFINDUNG

[0001] Die vorliegende Offenbarung bezieht sich auf ein Verfahren und eine Vorrichtung für den Betrieb einer Speicheranordnung.

[0002] Manche Rechensysteme umfassen eine Speicheranordnung zum Speichern und Bereitstellen von Daten zur Ausführung eines Programms in Echtzeit. Die Speicheranord nung kann eine Anordnung von Speichersegmenten umfassen, die jeweils eine Informations einheit speichern und bereitstellen können. Jedem der Speichersegmente kann eine jeweili ge physikalische Adresse zugewiesen sein, um eine eindeutige Zuordnung zu ermöglichen.

[0003] Die Lebensdauer einer Speicheranordnung kann von einer Gesamtzahl der ausge führten Schreib- und Leseoperationen beeinflusst sein. Insbesondere kann die Lebensdauer einer Speicheranordnung aufgrund von Alterungseffekten verkürzt werden. Oftmals sind die Speichersegmente einer Speicheranordnung nicht isoliert reparierbar oder austauschbar, sodass das Auftreten eines Defekts in einem der Speichersegmente bereits zum Ausfall der gesamten Speicheranordnung führen kann.

[0004] Eine ungleichmäßige Auslastung von bestimmten Speichersegmenten, beispiels weise durch überdurchschnittlich häufig wiederholtes Schreiben und Lesen, kann daher zu einer Verkürzung der Lebenszeit einer Speicheranordnung führen.

ZUSAMMENFASSUNG DER ERFINDUNG

[0005] Vor diesem Hintergrund besteht eine Aufgabe der vorliegenden Erfindung darin, ein Verfahren und/oder eine Vorrichtung für den Betrieb einer Speicheranordnung bereitzu stellen, um die Lebenszeit der Speicheranordnung positiv zu beeinflussen.

[0006] Die Aufgabe wird durch den Gegenstand des Anspruchs 1 und der unabhängigen Ansprüche gelöst. Vorteilhafte Beispiele sind durch den Gegenstand der abhängigen Ansprü che wiedergegeben. [0007] Offenbart hierin ist ein Verfahren zum Betreiben einer Speicheranordnung. Gemäß dem Verfahren wird eine physikalische Adresse empfangen. Die physikalische Adresse ist einem ersten Speichersegment einer Speicheranordnung zugeordnet. Die physikalische Ad resse wird zu einer modifizierten physikalischen Adresse modifiziert. Die modifizierte physi sche Adresse ist einem zweiten Speichersegment der Speicheranordnung zugeordnet. An schließend kann dasjenige Speichersegment angewählt werden, das der modifizierten physi kalischen Adresse entspricht. Somit kann das zweite Speichersegment angewählt werden, um beispielsweise einen Speicherwert zu speichern oder einen dort gespeicherten Speicherwert abzurufen.

[0008] Die Speicheranordnung kann eingerichtet sein, Daten zu speichern und gespei cherte Daten zum Lesen bereitzustellen. Insbesondere kann die Speicheranordnung einge richtet sein, Daten zur Ausführung eines Programms in Echtzeit zu speichern und bereitzu stellen. Beispielsweise kann die Speicheranordnung Speicherwerte, die bei der Ausführung eines Programms generiert, abgerufen und/oder verarbeitet werden, (zwischen-) speichern.

[0009] Die Speicheranordnung kann Speicherzellen eines flüchtigen Speichers umfassen. Beispielsweise ist die Speicheranordnung eingerichtet, gespeicherte Information oder gespei cherte Werte aufrechtzuerhalten, solange sie im Betrieb ist und/oder mit einem Betriebs strom versorgt wird. Bei einer Unterbrechung der Stromversorgung kann der flüchtige Spei cher beispielsweise die gespeicherte Information für einen Bruchteil einer Sekunde, oder aber für eine auch länger Dauer aufrechterhalten. In manchen Beispielen umfasst die Spei cheranordnung Zellen eines SRAMs und/oder Zellen eines DRAMs. In manchen Beispielen ist die Speicheranordnung Teil eines Prozessorregisters und/oder mit Maschinencode- Operanden eines Prozessors gekoppelt. Zum Beispiel ist die Speicheranordnung als Daten speicher und/oder Programmspeicher an eine Prozessoreinheit gekoppelt.

[0010] In anderen Beispielen kann die Speicheranordnung Speicherzellen eines nicht flüchtigen Speichers umfassen. Der nichtflüchtige Speicher kann beispielsweise einen ROM, PROM, EPROM, EEPROM, Flash-EEPROM, FRAM, MRAM oder Phase-Change RAM um fassen.

[0011] Die Speicheranordnung kann eine Anordnung von Speichersegmenten umfassen. Ein Speichersegment kann eine Speicherzelle umfassen, die eine Schaltung von aktiven und passiven Halbleiterbauelementen umfasst. Jede Speicherzelle kann eingerichtet sein, eine Informationseinheit, beispielsweise einen Binärwert, kurz ein Bit, zu speichern und zum Le sen bereitzustellen. Beispielsweise umfasst eine Speicherzelle eine SRAM-Zelle mit vier, sechs, acht oder mehr Transistoren. In weiteren Beispielen umfasst eine Speicherzelle eine DRAM-Zelle mit zwei Transistoren. Die Transistoren können Feldeffekt-Transistoren, FET, umfassen.

[0012] Zusätzlich oder alternativ kann ein Speichersegment mehrere Speicherzellen um fassen. Eine Datenmenge, oder ein Speicherwert, die in mehreren Speicherzellen eines Spei chersegments gespeichert werden kann, kann als ein Wort bezeichnet werden. Demnach kann die Anzahl der Speicherzellen eines Speichersegments einer (maximale) Wortlänge ent sprechen. Beispielsweise beträgt die Anzahl der Speicherzellen in einem Speichersegment 2, 4, 8, 16, 32, 64 oder 2 hoch n, wobei n größer als 6 ist. In weiteren Beispielen kann die Anzahl der Speicherzellen eines Speichersegments einer halben Länge eines Wortes (halfword) ent sprechen. Beispielsweise kann die Speicheranordnung eine Wortlänge von acht Bits aufwei sen, und die Speichersegmente jeweils vier Bits lang sein.

[0013] Jedem Speichersegment kann eine jeweilige physikalische Adresse zugewiesen sein, um eine eindeutige Zuordnung und somit ein eindeutiges Anwählen des jeweiligen Speicher segments für einen Lese- oder Schreibvorgang zu ermöglichen. Die Speichersegmente der Speicheranordnung können in Zeilen und Spalten organisiert sein. Zudem kann die Spei cheranordnung in Bänken unterteilt sein, wobei jede Bank eine vorbestimmte Anzahl von Zeilen und/oder eine vorbestimmte Anzahl von Spalten umfassen kann. Folglich kann ein bestimmtes Speichersegment mithilfe einer Kombination der zugehörigen Zeile, der zugehö rigen Spalte und, falls vorhanden, der zugehörigen Bank eindeutig angewählt werden. Bei spielsweise kann die physikalische Adresse Angaben der Zeile, der Spalte sowie, falls vorhan den, der Bank umfassen.

[0014] Die Speicheranordnung kann als eine separate, eigenständige Einheit und/oder in einem Gesamtsystem integriert bereitgestellt sein. Beispielsweise kann die Speicheranord nung Teil eines Hauptspeichers, eines Sekundärspeichers und/oder eines sonstigen Spei chers eines Rechnersystems ausgebildet sein. Das Rechnersystem kann ein universell ver wendbares Rechnersystem sein, das beispielsweise einen Merzweckcomputer, einen PC, ein mobiles rechenfähiges Gerät oder eine Workstation umfassen kann.

[0015] Gemäß einem Beispiel kann die Speicheranordnung Teil eines eingebetteten Sys tems sein, das zur Ausführung bestimmter Operationen eingerichtet und angepasst ist. In einigen Beispielen umfasst das eingebettete System ein Rechnersystem. Das eingebettete System kann beispielsweise eingerichtet sein, eine Überwachungsfunktion, eine Steuerungs funktion, und/oder eine Regelungsfunktion auszuführen. Das eingebettete System kann ein- gerichtet sein, Daten oder Signale zu verarbeiten, z.B. um diese zu verschlüsseln, zu ent schlüsseln, zu kodieren, zu dekodieren, oder zu filtern. Das eingebettete System kann in einer anwendungsspezifischen Hardware implementiert sein, beispielsweise in einem Kraftfahr zeug, einem Flugzeug, einem Gerät der Medizintechnik, einem Haushaltsgerät, einem Gerät der Unterhaltungselektronik oder in einem mobilen Gerät. Ferner kann das eingebettete Sys tem mit weiteren eingebetteten Systemen kommunizieren und/oder mit diesen ein größeres Gesamtsystem ausbilden, z.B. zur Steuerung von Teilen eines Kraftfahrzeugs oder eines Flug zeugs. Mehrere eingebettete Systeme können beispielsweise über einen Bus gekoppelt sein. In einigen Beispielen ist die Speicheranordnung eingerichtet, mit einem Mikroprozessor zu kommunizieren.

[0016] Die Speichersegmente der Speichereinrichtung können geeignet sein, jeweils einen Speicherwert zu speichern und einen gespeicherten Speicherwert zum Abrufen bereitzustel len. Der Begriff Speicherwert kann sich auf den Inhalt der zu speichernden Information be ziehen. Der Speicherwert kann insbesondere Information umfassen, die für eine weitere Ver arbeitung (zwischen-)gespeichert wird. Beispielsweise umfasst der Speicherwert einen Ein gangswert für eine Operation. Der Eingangswert kann beispielsweise von einem Benutzer eingegeben worden sein oder von einem Programm erzeugt sein. Ferner kann der Speicher wert einen Ausgabewert umfassen, die als Ergebnis einer Operation auszugeben ist. Alterna tiv oder zusätzlich umfasst der Speicherwert ein Zwischenergebnis eines Prozessors, einer einfachen oder komplexen Operation eines Schaltwerks, eines Rechenwerks und/oder einer arithmetisch-logischen Einheit. Folglich kann der Speicherwert einen Eingangswert, ein Zwi schenergebnis und/oder ein Ergebnis einer Operation der Arithmetik und/oder der Logik umfassen. Der Speicherwert kann eine Länge von einem Bit oder mehreren Bits aufweisen. Beispielsweise beträgt die Länge des Speicherwertes 2, 4, 8, 16, 32 oder 64 Bits. In Beispielen, in welchen die Speicheranordnung zum Speichern von Wörtern einer Länge von 2 zur n-ten Potenz eingerichtet ist, kann die Länge des Speicherwertes die Länge eines Wortes der Spei cheranordnung betragen.

[0017] Die physikalische Adresse kann ein zugehöriges Speichersegment der Speicherano rdnung eindeutig bezeichnen. Die physikalische Adresse kann eine Binärzahl, d.h. eine Folge von mehreren Bits, sein. Alternativ oder zusätzlich kann die physikalische Adresse in einer Sprache vorliegen, die von Maschinen interpretierbar ist. Beispielsweise kann die physikali sche Adresse als eine Hexadezimalzahl vorliegen, die in eine entsprechende Binärzahl über setzt werden kann. Die physikalische Adresse kann von einer Prozessoreinheit einem jeweili gen Speicherwert zugeordnet sein, der in der Speicheranordnung zu speichern ist. Des Weite ren kann die Prozessoreinheit die physikalische Adresse verwenden, um einen in dem jewei- ligen Speichersegment der Speicheranordnung gespeicherten Speicherwert abzurufen. Alter nativ oder zusätzlich kann eine Speicherverwaltungseinheit (Memory Management Unit, MMU) die physikalische Adresse verwenden, wobei die Speicherverwaltungseinheit einge richtet sein kann, einer Prozessoreinheit oder einem ausgeführten Programm einen virtuel len Speicher bereitzustellen, der die Speicheranordnung zumindest teilweise abbildet.

[0018] Die physikalische Adresse kann zusammen mit dem Speicherwert in einem Daten paket geliefert sein. Beispielsweise kann es festgelegt sein, welche (Bit-)Stellen des Datenpa ketes die physikalische Adresse bezeichnen, und welche weitere den Speicherwert bezeichnen. Alternativ oder zusätzlich können die physikalische Adresse und der Speicherpaket über se parate Wege empfangen werden. Beispielsweise wird der Speicherwert über einen Datenbus übertragen, während die physikalische Adresse über einen Adressenbus übertragen wird.

[0019] Gemäß dem hierin beschriebenen Verfahren wird die physikalische Adresse zu einer modifizierten physikalischen Adresse modifiziert. Insbesondere kann die modifizierte physikalische Adresse aus dem gleichen Adressraum wie die physikalische Adresse vor der Modifizierung sein. Die modifizierte physikalische Adresse ist einem anderen Speicherseg ment der Speicheranordnung zugeordnet als die physikalische Adresse vor der Modifizierung. Demnach kann die physikalische Adresse einem ersten Speichersegment der Speicheranord nung, und die modifizierte physikalische Adresse ist einem zweiten Speichersegment der Speicheranordnung zugeordnet sein.

[0020] Die modifizierte physikalische Adresse kann in entsprechende Steuersignale über setzt werden, um das entsprechende Speichersegment anzuwählen. Dieser Vorgang kann auch als Dekodierung bezeichnet werden. Hierfür kann eine Steuereinheit vorgesehen sein, die eingerichtet ist, die modifizierte physikalische Adresse zu empfangen und entsprechende Steuersignale zu erzeugen, um dasjenige Speichersegment anzuwählen, dem die modifizierte physikalische Adresse zugeordnet ist. Die Steuereinheit kann eine oder mehrere der Dekodie reinheiten umfassen. Wenn die Speichersegmente der Speicheranordnung wie oben erwähnt in Zeilen und Spalten organisiert sind, kann ein bestimmtes Speichersegment angewählt werden, indem die zugehörige Zeile sowie die zugehörige Spalte mit einem jeweiligen Steuer signal angesteuert werden. In Beispielen, in welchen die Speicheranordnung in Bänken orga nisiert ist, kann ferner die zugehörige Bank angesteuert werden, um das entsprechende Spei chersegment anzuwählen.

[0021] In manchen Beispielen sind die einzelnen Speichersegmente der Speicheranord nung mit einer jeweiligen Wortleitung sowie mit einer jeweiligen Bitleitung verbunden. Je nach Aufbau und Struktur der Speicheranordnung können die Speichersegmente jeweils mit mehr als einer Wortleitung und/oder mit mehr als einer Bitleitung verbunden sein. Ein ein zelnes Speichersegment kann angewählt werden, indem jeweilige, vordefinierte Spannungen an den Wortleitungen und den Bitleitungen angelegt werden.

[0022] Das hierin beschriebene Verfahren bewirkt, dass das zweite Speichersegment an statt des ersten Speichersegments angewählt werden kann, indem die physikalische Adresse zu der modifizierten physikalische Adresse modifiziert wird. Insbesondere kann die modifi zierte physikalische Adresse aus demselben Adressraum wie die physikalische Adresse sein. Dies kann die Übersetzung der physikalischen Adresse in die modifizierte physikalische Ad resse erleichtern. Beispielsweise kann die physikalische Adresse mithilfe einer geeigneten Schaltung zu der modifizierten physikalischen Adresse modifiziert werden. Folglich kann die Modifizierung der physikalischen Adresse zu der modifizierten physikalischen Adresse rein Hardware-basiert erfolgen. Dadurch kann eine Verarbeitungszeit für die Modifizierung der physikalischen Adresse zu der modifizierten physikalischen Adresse zum Beispiel gegenüber einer Software-basierten Lösung reduziert werden. Beispielsweise kann die Hardware basierte Modifizierung der physikalischen Adresse zu der modifizierten physikalischen Ad resse innerhalb eines Bruchteils von einem Taktzyklus erfolgen, während eine vergleichbare Modifizierung auf der Software-Basis mehrere Taktzyklen erfordern kann. Dabei kann sich die Zeitangabe in Taktzyklen auf den Taktzyklus einer Prozessoreinheit und/oder einer Da tenübertragungseinheit beziehen. Dadurch kann eine Möglichkeit geschaffen sein, eine aus gewogene Nutzung der Speicheranordnung zu ermöglichen, indem die Speicherziele für die zu speichernden Daten regelmäßig verändert werden. Dadurch kann die Auslastung der Spei chersegmente besser verteilt werden. Auf diese Weise kann die Lebensdauer der Speicheran ordnung positiv beeinflusst werden.

[0023] Ferner offenbart ist eine Vorrichtung, die eine Speicheranordnung mit mehreren Speichersegmenten und eine Modifikationseinheit umfasst. Die Modifikationseinheit ist zum Empfangen einer physikalischen Adresse und zum Modifizieren der physikalischen Adresse zu einer modifizierten physikalischen Adresse eingerichtet. Die physikalische Adresse ist ei nem ersten Speichersegment der Speicheranordnung zugeordnet. Die modifizierte physikali sche Adresse ist einem zweiten Speichersegment der Speicheranordnung zugeordnet. Die Vorrichtung kann eingerichtet sein, das oben beschriebene Verfahren durchzuführen.

[0024] Die hierin beschriebene Vorrichtung kann ferner Teil eines eingebetteten Systems sein. Zusätzlich oder alternativ kann die Vorrichtung Teil eines universell verwendbaren Rechnersystems sein. Die Vorrichtung, das eingebettete System oder das Rechnersystem, die hierin beschrieben sind, können imstande sein, das hierin beschriebene Verfahren auszufüh ren.

[0025] Die Speicheranordnung der hierin beschriebenen Vorrichtung kann der oben mit Bezug auf das Verfahren beschriebenen Speicheranordnung entsprechen. Dementsprechend können die Speichersegmente jeweils zum Speichern und Bereitstellen eines Speicherwertes eingerichtet sein. Wie oben beschrieben kann eine jeweilige physikalische Adresse jedem Speichersegment zugeordnet sein.

[0026] Gemäß einem Beispiel kann die physikalische Adresse zu der modifizierten physi kalischen Adresse modifiziert werden, bevor die entsprechenden Speichersegmente ange wählt werden. Hierdurch kann insbesondere der Vorgang einer Ansteuerung der entspre chenden Speichersegmente ausgespart werden. Des Weiteren kann die Modifizierung der physikalischen Adresse zu der modifizierten physikalischen Adresse unabhängig von einer Speicherverwaltungseinheit, falls vorhanden, durchgeführt werden.

[0027] Gemäß einem Beispiel umfasst die physikalische Adresse eine Gruppe von Adres sensegmenten, wovon eine Untergruppe der Adressensegmente modifiziert werden kann, um die modifizierte physikalische Adresse zu erhalten. Demnach kann die physikalische Adresse in die Adressensegmente unterteilt sein. Die Adressensegmente können eine Zeile, eine Spal te und, falls vorhanden, eine Bank umfassen, die ein einzelnes Speichersegment bestimmen können. Beispielsweise umfasst die Gruppe der Adressensegmente ein erstes Adressenseg ment, welches die Zeile des Speichersegments kennzeichnet, ein zweites Adressensegment, welches die Spalte des Speichersegments kennzeichnet, und ein drittes Segment, welches die Bank des Speichersegments kennzeichnet. Die physikalische Adresse kann noch ein oder mehrere weitere Adressensegmente umfassen. Die Reihenfolge der Adressensegmente inner halb der physikalischen Adresse kann von einer jeweiligen Ausführungsform abhängig sein. Bei der Modifizierung der physikalischen Adresse können eines oder mehrere Adressenseg mente aus der Gruppe der Adressensegmente modifiziert werden. Die Untergruppe der Ad ressensegmente kann die hierbei modifizierten Adressensegmente bezeichnen.

[0028] Eine oder mehrere Adressensegmente der physikalischen Adresse können aus der physikalischen Adresse entnommen und separat verarbeitet werden. Dieser Vorgang kann als Segmentieren oder als Parsen bezeichnet werden. Beispielsweise kann die physikalische Ad resse in drei Adressensegmente jeweils für die Zeile, Spalte und Bank des zugehörigen Spei chersegments segmentiert werden. Zum Beispiel können die Adressensegmente einzeln ei- nem jeweiligen Dekodierer zugeführt werden, um das zugehörige Speichersegment anzusteu ern.

[0029] Die physikalische Adresse kann erst in mehrere Adressensegmente segmentiert werden, und eines oder mehrere der Adressensegmente können anschließend einzeln modifi ziert werden. Beispielsweise wird die physikalische Adresse in drei Adressensegmente für die Zeile, Spalte und Bank des zugehörigen Speichersegments segmentiert, und anschließend wird eines, zwei oder alle dieser drei Adressensegmente modifiziert.

[0030] In weiteren Beispielen kann die physikalische Adresse erst zu der modifizierten physikalischen Adresse modifiziert und danach in die einzelnen Adressensegmente segmen tiert werden. Beispielsweise umfasst die physikalische Adresse drei Adressensegmente für die Zeile, Spalte und Bank des zugehörigen Speichersegments, und die physikalische Adresse kann modifiziert werden, indem eines, zwei oder alle der drei Adressensegmente modifiziert werden, bevor sie in die einzelnen Adressensegmente segmentiert wird.

[0031] Gemäß einem Beispiel kann ein Modifikationswert bereitgestellt werden. Die phy sikalische Adresse und der Modifikationswert können jeweils eine Binärzahl mit N Stellen sein, wobei N eine positive ganze Zahl ist. Die modifizierte physikalische Adresse wird aus einer Exklusiv-Oder-Verknüpfung der physikalischen Adresse und des Modifikationswertes erhalten. Beispielsweise erhält die Exklusiv-Oder-Verknüpfung, die auch kurz XOR- Verknüpfung genannt werden kann, zwei Binärwerte oder zwei logische Werte als Eingangs werte. Die Exklusiv-Oder-Verknüpfung kann eingerichtet sein, eine Null oder ein logisches Falsch auszugeben, falls die Eingangswerte gleichwertig sind. Ferner kann die Exklusiv- Oder-Verknüpfung kann eingerichtet sein, eine Eins oder ein logisches Wahr auszugeben, falls die Eingangswerte unterschiedlich sind.

[0032] Dementsprechend kann die hierin beschriebene Vorrichtung ein XOR-Gatter um fassen, das zum Empfangen der physikalischen Adresse und des Modifikationswertes und zum Ausgeben der modifizierten physikalischen Adresse als Ergebnis aus einer XOR- Verknüpfung der physikalischen Adresse und des Modifikationswertes eingerichtet ist. Ins besondere kann für einzelne Bits, die zu modifizieren sind, jeweils ein XOR-Gatter vorgese hen sein. Somit kann die Vorrichtung mehrere XOR-Gatter umfassen, die eingerichtet sind, die Bits der physikalischen Adresse zu modifizieren.

[0033] Gemäß einem weiteren Beispiel kann die modifizierte physikalische Adresse aus einer XNOR-Verknüpfung der physikalischen Adresse und des Modifikationswertes erhalten werden. In weiteren Beispielen kann eine oder mehrere der N Stellen der physikalischen Ad resse und des Modifikationswertes gemäß einer XOR-Verknüpfung verknüpft sein, während die restlichen der N Stellen gemäß einer XNOR-Verknüpfung verknüpft sein können. Ferner können eine oder mehrere der N Stellen der physikalischen Adresse und des Modifikations wertes mit einem Inverter verknüpft sein. Insbesondere kann für einzelne Bits, die zu modifi zieren sind, jeweils ein XNOR-Gatter vorgesehen sein. Somit kann die Vorrichtung mehrere XNOR-Gatter umfassen, die eingerichtet sind, die Bits der physikalischen Adresse zu modifi zieren. Ferner kann die Vorrichtung ein oder mehrere XOR-Gatter in Kombination mit einem oder mehreren XNOR-Gattern umfassen.

[0034] Gemäß einem Beispiel wird der Modifikationswert mittels eines Zufallszahlengene rators erzeugt. Der Zufallszahlengenerator kann eingerichtet sein, eine Zufallszahl oder eine Folge von Zufallszahlen zu erzeugen. Der Zufallszahlengenerator kann einen deterministi schen Mechanismus, einen nicht-deterministischen Mechanismus oder eine Kombination hiervon umfassen. Beispielsweise kann eine Zufallszahl oder eine Folge von Zufallszahlen gemäß einem deterministischen Mechanismus auf der Basis einer Software erzeugt werden. Zusätzlich oder alternativ kann eine Zufallszahl oder eine Folge von Zufallszahlen gemäß einem nicht-deterministischen Mechanismus auf der Basis eines physikalischen Vorgangs erzeugt werden. Insbesondere kann der Zufallsgenerator dazu beitragen, dass der erzeugte Modifikationswert alle Permutationen für eine N-stellige Binärzahl möglichst gleichmäßig durchläuft.

[0035] Gemäß einem Beispiel wird der Modifikationswert mittels eines ganzzahligen Zäh lers bestimmt. Der ganzzahlige Zähler inkrementiert oder dekrementiert an vordefinierten Betriebspunkten, beispielsweise bei einer Neusortierung, einem Start oder einem Neustart der Speicheranordnung oder der Speichersegmente. Insbesondere kann der ganzzahlige Zäh ler einen Wert der Zählung, d.h. einen Zählerstand, speichern und bereitstellen. Ferner kann der ganzzahlige Zähler bei einer Neusortierung, einem Start oder Neustart der Speicherano rdnung um eins oder mehr inkrementieren oder dekrementieren. Beispielsweise ist der Zäh lerstand des ganzzahligen Zählers eine N-stellige Binärzahl, die bei einem Ereignis, das eine Neusortierung, einen Start oder Neustart auslöst, um einen Wert, beispielsweise eins, erhöht oder reduziert wird. Insbesondere kann, bei einem inkrementierenden ganzzahligen Zähler, der ganzzahlige Zähler auf einen Minimalwert zurückgestellt werden, nachdem ein Maxi malwert erreicht ist. Dabei kann der Minimalwert o betragen. Der Maximalwert des Zähler stands kann beispielsweise die Anzahl der möglichen physikalischen Adressen oder die An zahl der Bitstellen der physikalischen Adresse sein. In weiteren Beispielen kann der Maxi malwert des Zählerstands kleiner als die Anzahl der möglichen physikalischen Adressen oder kleiner als die Anzahl der Bitstellen der physikalischen Adresse sein. Bei einem dekrementie- renden ganzzahligen Zähler kann der ganzzahlige Zähler auf einen Maximalwert umgestellt werden, nachdem ein Minimalwert erreicht ist.

[0036] Hierin werden die Begriffe ganzzahliger Zähler und Zähler beliebig vertauschbar verwendet, sofern nicht explizit auf einen Unterschied hingewiesen wird. Der Modifikations wert kann identisch mit dem Zählerstand des Zählers sein. In einigen Beispielen kann dem Zählerstand des Zählers der Ausgestaltung des Verfahrens oder der Vorrichtung entspre chend modifiziert sein, um den Modifikationswert zu erhalten. Beispielsweise kann der ma ximale Wert für den Zählerstand sowohl die Anzahl der möglichen physikalischen Adressen als auch die Anzahl der Bitstellen der physikalischen Adresse übersteigen. In einem solchen Fall kann eine Schaltung vorgesehen sein, der den Zählerstand in einen Wert umrechnet, der mit den Adressen aus dem Adressraum der physikalischen Adresse kompatibel ist. Dieser umgerechnete Wert kann dem Modifikationswert entsprechen. In weiteren Beispielen kann der maximale Wert des Zählerstands kleiner als die Anzahl der möglichen physikalischen Adressen oder kleiner als die Anzahl der Bitstellen der physikalischen Adresse sein.

[0037] Bei einer Neusortierung der Speicheranordnung oder der Speichersegmente kön nen gespeicherte Daten an andere Speicherorte verschoben werden. Beispielsweise kann die Neusortierung der Speicheranordnung erfolgen, wenn die Speicheranordnung für länger als eine definierte Dauer, beispielsweise 10 Minuten, 30 Minuten, eine Stunde oder mehrere Stunden, inaktiv gewesen ist. Die Neusortierung der Speicheranordnung kann durch eine Hardware und/oder durch eine Software für den Speicherdirektzugriff (Direct Memory Ac cess, DMA) durchgeführt werden. Bei einer Inbetriebnahme, einem Neustart oder einer Wie deraufnahme des Betriebs der Speicheranordnung oder der Speichersegmente können die gespeicherten Daten gelöscht oder löschbar sein. Bei Detektieren eines solchen Ereignisses kann nebst dem Zählerstand des Zählers auch der Modifikationswert verändert werden. Folg lich kann bei einer Neusortierung oder einem Start oder Neustart der Speicheranordnung oder der Speichersegmente die Art und Weise der Modifizierung der physikalischen Adresse zu der modifizierten physikalischen Adresse verändert werden. Dadurch kann eine ausgewo gene Ausnutzung der Speicheranordnung und der Speichersegmente über einen ausgedehn ten Zeitraum erreicht sein.

[0038] Dementsprechend kann die hierin beschriebene Vorrichtung einen Zähler zum Bereitstellen des Modifikationswertes umfassen. Ferner kann ein derartiger Zähler eingerich tet sein, den Modifikationswert bei einer Neusortierung, einem Start oder einem Neustart der Speichersegmente zu inkrementieren oder zu dekrementieren. Der Zähler kann ein Ereignis, das eine Neusortierung, einen Start oder einen Neustart der Speichersegmente auslöst, de- tektieren und als Reaktion darauf den Modifikationswert verändern. Der Zähler kann einen flüchtigen oder nicht-flüchtigen Speicher umfassen, um den Zählerstand zu speichern. Der Zähler kann ferner eine eigene Stromversorgung umfassen oder mit solcher verbunden sein, um den Zählerstand auch über eine Abschaltung der Speicheranordnung hinaus aufrechtzu erhalten.

[0039] In manchen Beispielen ist der Wert des ganzzahligen Zählers identisch mit dem Modifikationswert. In anderen Beispielen kann der Modifikationswert eindeutig aus dem Zählerstand des ganzzahligen Zählers bestimmt sein, indem dieser beispielsweise mit einem weiteren Wert überlagert wird. Zusätzlich oder alternativ kann der Modifikationswert aus einer bitweisen Invertierung an einer, manchen oder allen der N Stellen des Zählerstandes des ganzzahligen Zählers erhalten sein. Die Verwendung eines ganzzahligen Zählers kann dazu beitragen, dass der Modifikationswert alle Permutationen für eine N-stellige Binärzahl möglichst gleichmäßig durchläuft.

[0040] Gemäß einem Beispiel wird die modifizierte physikalische Adresse aus einer Ver schiebung und Rotation von Bitwerten der N-stelligen physikalischen Adresse um K Stellen in Richtung einer ersten oder einer letzten Stelle, d.h. einer N-ten Stelle, der physikalischen Adresse erhalten. Die Zahl K kann größer als Null und ungleich N sein. Somit kann die modi fizierte physikalische Adresse einer periodischen und bitweisen Verschiebung der physikali schen Adresse entsprechen. Hierdurch kann die modifizierte physikalische Adresse alle mög lichen Permutationen für die N-stellige Binärzahl im Adressraum der physikalischen Adresse durchlaufen. Somit können die Adressen in dem Adressraum der physikalischen Adresse möglichst gleichmäßig verwendet werden.

[0041] Eine derartige Verschiebung der Bitwerte der physikalischen Adresse kann bei spielsweise mithilfe eines Barrel-Shifters erfolgen. Entsprechend kann die hierin beschriebe ne Vorrichtung einen Barrel-Shifter umfassen. Der Barrel-Shifter kann eingerichtet sein, die modifizierte physikalische Adresse aus einer Verschiebung und Rotation von Bitwerten der physikalischen Adresse um K Stellen in Richtung einer ersten oder einer N-ten Stelle der physikalischen Adresse auszugeben.

[0042] Ein Barrel-Shifter kann eine Schaltung umfassen, die eingerichtet ist, an deren Eingang eine Bitfolge, d.h. eine Folge von mehreren Bitwerten, zu erhalten und diese um eine definierbare Anzahl von Bitstellen zu verschieben und ggf. auch zu rotieren. Die Verschiebe distanz, d.h. die Anzahl der Bitstellen, um welche die Bitfolge zu verschieben ist, kann von einer Steuerungsschaltung vorgegeben sein. Die Steuerungsschaltung kann insbesondere einen Zähler umfassen. Die Schaltung des Barrel-Shifters kann insbesondere derart ausge staltet sein, dass die Bitstellen zyklisch miteinander verbunden sind, sodass, je nach Ver schiebungsrichtung, die wertniedrigste Bitstelle in die werthöchste Bitstelle übergeht oder umgekehrt. Der Barrel-Shifter kann somit eingerichtet sein, eine um von der Eingangsbitfol ge eine oder mehrere Bitstellen verschobene Bitfolge auszugeben.

[0043] Der Barrel-Shifter kann eine Schaltung mit mehreren Multiplexern umfassen. Bei spielsweise kann der Barrel-Shifter N N-zu-i-Multiplexer umfassen. Alternativ oder zusätz lich kann der Barrel-Shifter in mehrere Schritte zerlegt sein. Beispielsweise kann der Barrel- Shifter N-2 VN-zu-i-Multiplexer umfassen, wobei N eine Quadratzahl ist. In weiteren Bei spielen kann der Barrel-Shifter N-E d-zu-i Multiplexer umfassen, wobei N = d E ist. In ande ren Beispielen kann der Barrel-Shifter N-E d-zu-i Multiplexer und N-G f-zu-i Multiplexer umfassen, wobei N = d E · ist.

[0044] Ferner kann der Barrel-Shifter einen Dekodierer umfassen, der die Verschiebedis tanz in ein entsprechendes elektrisches Signal umwandelt. Beispielsweise umfasst der Barrel- Shifter einen l-aus-N-Dekodierer, der N Ausgänge umfasst und einen dieser Ausgänge ent sprechend der Verschiebedistanz aktiviert. In weiteren Beispielen kann der Barrel-Shifter in mehrere Dekodierer umfassen, die kaskadiert angeordnet sind.

[0045] Der Aufbau, die Funktionsweise, die Struktur und die Ausführungsbeispiele des Barrel-Shifters sind dem Fachmann bekannt und hierin nicht explizit in Detail beschrieben. Beispielsweise beschreibt„Implementing Barrel Shifters Using Multipliers“ von Paul Gigliotti, aus Xilinx Application Note, 17. Aug. 2004, XAPP195 (vi.i), auf Seite 1 mit Bezug auf Fig. 1 mehrere Ausführungsbeispiele eines 8-Bit-Barrel-Shifters mittels eines 8-aus-i-Multiplexers. Auf Seite 3 und in Fig. 3 der genannten Schrift sind Beispiele eines 32-bit Barrel-Shifters mit zweiunddreißig 32-zu-i-Multiplexern beschrieben.

[0046] In„Design Alternatives for Barrel Shifters“ von Michael J. Schulte et al., aus Proc. SPIE 4791, Advanced Signal Processing Algorithms, Architectures, and Implementations XII, 6. Dez. 2002, doi: 10.1117/12.452034, beschreiben die Autoren einige konkrete Beispiele für die Implementierung eines Barrel-Shifters. In den Abschnitten 2 und 3.1 mit Bezug auf Fig. 1 und 2 beschreibt diese Schrift zwei 8-Bit Barrel Shifter, die acht Eingangsbits empfangen und sie in drei Schritten mithilfe von insgesamt 24 2-zu-i-Multiplexern nach rechts (Fig. 1) oder nach links (Fig. 2) verschieben. Ferner sind mit Bezug auf Fig. 3 und 4 zwei weitere Beispiele eines 8-Bit Barrel-Shifters beschrieben, die als Rechtsschieber ausgestaltet sind und auch in der Lage sind, die Eingangsbits nach links zu verschieben, siehe Abschnitt 3.1. Im Abschnitt 3.2 und mit Bezug auf Fig. 5 und 6 wird ein weiteres Beispiel beschrieben, das in der Lage ist, die Eingangsbits logisch oder arithmetisch, nach links oder nach rechts zu verschieben oder zu rotieren.

[0047] Gemäß einem Beispiel wird die Zahl K mittels eines ganzzahligen Zählers bestimmt, der bei einer Neusortierung der Speicheranordnung inkrementiert oder dekrementiert. Der ganzzahlige Zähler kann wie oben beschrieben ausgestaltet sein. Die hierin beschriebene Vorrichtung kann einen entsprechenden Zähler, beispielsweise wie oben beschrieben, umfas sen.

[0048] Gemäß einem Beispiel wird bestimmt, ob die Binärzahl der physikalischen Adresse N Nullen oder N Einsen enthält. Wenn festgestellt wird, dass die Binärzahl der physikali schen Adresse N Nullen oder N Einsen enthält, wird bestimmt, ob die Zahl N gerade oder ungerade ist. Falls N eine gerade Zahl ist wird die Binärzahl der physikalischen Adresse an N/2 Stellen invertiert. Falls N eine ungerade Zahl ist, wird die Binärzahl der physikalischen Adresse an (N-I)/2 Stellen invertiert. Somit können Modifikationsanweisungen jeweils für Situationen, in welchen eine Verschiebung der eingehenden physikalischen Adresse erfolglos wäre, da sie aus nur Nullen oder nur Einsen besteht, bereitgestellt sein. Hierdurch kann einer möglichen Minderung der Effektivität des hierin beschriebenen Verfahrens oder der hierin beschriebenen Vorrichtung vorgebeugt werden.

[0049] Gemäß einem weiteren Beispiel wird bestimmt, ob der Zählerstand des ganzzahli gen Zählers gerade oder ungerade ist. Wenn festgestellt wird, dass die Binärzahl der physika lischen Adresse N Null oder N Eins enthält, und das der Zählerstand des ganzzahligen Zäh lers ungerade ist, wird die Binärzahl der physikalischen Adresse invertiert. Alternativ kann die Binärzahl der physikalischen Adresse invertiert werden, falls der Zählerstand des ganz zahligen Zählers gerade ist. Somit können Ausnahmebedingungen für Situationen, in wel chen eine Verschiebung der physikalischen Adresse erfolglos wäre, bereitgestellt sein. Hier durch kann einer möglichen Minderung der Effektivität des hierin beschriebenen Verfahrens oder der hierin beschriebenen Vorrichtung vorgebeugt werden.

[0050] Gemäß einem Beispiel wird das zweite Speichersegment angewählt, indem die mo difizierte physikalische Adresse dekodiert wird. Nachdem eines der Speichersegmente gemäß dem hierin beschriebenen Verfahren und der hierin beschriebenen Vorrichtung angewählt ist, kann weiterhin ein Speicherwert in dem angewählten Speichersegment gespeichert werden. Ferner kann ein gespeicherter Speicherwert analog zur obigen Beschreibung gelesen werden. Demnach kann eine Operation zum Lesen des Speicherwertes mit der physikalischen Adresse verknüpft sein, die vor dem Lesen in die modifizierte physikalische Adresse umgewandelt wird, sodass ein Zugriff auf den Speicherwert bewerkstelligt wird.

[0051] Gemäß einem Beispiel umfasst die hierin beschriebene Vorrichtung weiterhin eine Prozessoreinheit und eine Datenübertragungseinheit. Die Prozessoreinheit kann eingerichtet sein, einen Speicherwert an die Speichereinrichtung zu übermitteln oder einen gespeicherten Speicherwert von der Speichereinrichtung abzurufen. Dabei kann die physikalische Adresse dem Speicherwert zugeordnet sein. Die Datenübertragungseinheit kann die Prozessoreinheit mit der Speichereinrichtung verbinden und eingerichtet sein, die physikalische Adresse zwi schen der Prozessoreinheit und der Speichereinrichtung zu übertragen. Die Datenübertra gungseinheit kann einen Bus umfassen. Der Bus kann in Datenbus für die Übertragung eines Speicherwertes und einen Adressenbus zur Übertragung der physikalischen Adresse umfas sen. Der Datenbus und der Adressenbus können als getrennte Busse bereitgestellt sein.

[0052] Im Folgenden werden einige Beispiele der vorliegenden Offenbarung unter Bezug nahme auf die Zeichnungen im Detail erläutert.

KURZBESCHREIBUNG DER ZEICHNU GNEN

FIG. 1 ist ein schematisches Ablaufdiagramm eines Verfahrens gemäß einem Bei spiel.

FIG. 2A bis 2C sind schematische Diagramme einer Vorrichtung gemäß einem Beispiel.

FIG. 3 ist ein schematisches Diagramm einer Modifikationseinheit gemäß einem

Beispiel.

FIG. 4 ist ein schematisches Diagramm einer Vorrichtung gemäß einem Beispiel.

FIG. 5 ist ein schematisches Diagramm einer Vorrichtung gemäß einem Beispiel.

FIG. 6A und 6B sind schematische Diagramme einer Modifikationseinheit und einer Tabelle mit physikalischen Adressen und den zugehörigen modifizierten physikali schen Adressen gemäß einem Beispiel. FIG. 7A und 7B sind schematische Diagramme einer Modifikationseinheit und einer Ver schiebung und Rotation einer physikalischen Adresse zu modifizierten phy sikalischen Adressen gemäß einem Beispiel.

FIG. 8 ist ein schematisches Diagramm einer Vorrichtung gemäß einem Beispiel.

DETAILBESCHREIBUNG DER ZEICHNUNGEN

[0053] FIG. 1 zeigt ein schematisches Ablaufdiagramm eines Verfahrens 100 zum Betrei ben einer Speicheranordnung. Das Verfahren 100 kann auf eines der hierin beschriebenen Beispiele einer Speicheranordnung anwendbar sein. Insbesondere kann das Verfahren 100 auf die unten beschriebene Vorrichtung 200 anwendbar sein.

[0054] Bei 102 wird eine physikalische Adresse empfangen, die einem ersten Speicher segment einer Speicheranordnung zugeordnet ist. Bei 104 wird die physikalische Adresse zu einer modifizierten physikalischen Adresse modifiziert, die einem zweiten Speichersegment der Speicheranordnung zugeordnet ist. Bei 106 kann das zweite Speichersegment angewählt werden.

[0055] FIG. 2A bis 2C zeigen eine Vorrichtung 200 zum Betreiben einer Speicheranord nung 210. Die Vorrichtung 200 kann Teil eines universell verwendbaren Rechnersystems sein, Teil eines eingebetteten Systems oder eine Kombination hiervon sein. Insbesondere kann die Vorrichtung 200 eingerichtet sein, einen Speicherwert zum Speichern oder zum Zwischenspeichern in der Speicheranordnung 210 zu erhalten.

[0056] Die Speicheranordnung 210 kann wie oben beschrieben ausgestaltet sein. Insbe sondere kann die Speicheranordnung 210 eine Anordnung von mehreren SRAMs, DRAMs, oder sonstigen RAMs oder Flash-Speichern umfassen. Die Speicheranordnung 210 umfasst mehrere Speichersegmente einschließlich des ersten Speichersegments Si und des zweiten Speichersegments S2. In FIG. 2A bis 2C sind die Speichersegmente Si und S2 mit Bezugszei chen versehen. Weitere Speichersegmente weisen keine Bezugszeichen auf, um die Über sichtlichkeit zu erhöhen.

[0057] Die Speichersegmente Si, S2 können eine einheitliche Speicherkapazität aufweisen, zum Beispiel 8 Bits, 16 Bits, 32 Bits, 64 Bits oder 2 n Bits, wobei n eine natürliche Zahl größer als 6 ist. Die Speichersegmente der Speicheranordnung können in Zeilen und Spalten sowie in Bänken organisiert sein.

[0058] FIG. 2A zeigt eine schematische Teilansicht der Vorrichtung 200 und veranschau licht die Zuordnung einer ersten physikalischen Adresse Ai und einer zweiten physikalischen Adresse A2 jeweils zu einem ersten Speichersegment Si und zu einem zweiten Speicherseg ment S2 der Speicheranordnung 210. Demnach kennzeichnet die erste physikalische Adresse Ai das zugehörige erste Speichersegment Si eindeutig. Ebenso kennzeichnet die zweite phy sikalische Adresse A2 das zugehörige zweite Speichersegment S2 eindeutig.

[0059] Wie in FIG. 2B und 2C gezeigt, umfasst die Speicheranordnung 210 eine Modifika tionseinheit 220, die eingerichtet ist, die erste physikalische Adresse Ai zu empfangen und sie zu der zweiten physikalischen Adresse A2 zu modifizieren. Die zweite physikalische Ad resse A2 entspricht der modifizierten physikalischen Adresse gemäß der obigen Beschreibung.

[0060] In FIG. 2C gezeigt ist ferner eine Steuereinheit 230, die eingerichtet ist, die modifi zierte physikalische Adresse A2 zu empfangen und Steuersignale entsprechend der modifi zierten physikalischen Adresse A2 zu erzeugen, um das zugehörige zweite Speichersegment S2 anzuwählen. Die Steuereinheit 230 kann eine oder mehrere der Dekodiereinheiten (nicht explizit gezeigt in FIG. 2A bis 2C) umfassen.

[0061] Folglich wird ein Speichersegment angewählt, das von dem eingangs bezeichneten Speichersegment abweicht. Eine Regel, nach welcher die Modifikation der empfangenen phy sikalischen Adresse Ai erfolgt, kann mit der Zeit veränderlich sein. Auf diese Weise kann die lokale Auslastung der Speichersegmente der Speicheranordnung 210 möglichst gleichmäßig über die gesamte Speicheranordnung 210 verteilt werden. Somit kann die Lebensdauer der Speicheranordnung 210 positiv beeinflusst werden.

[0062] FIG. 3 zeigt schematisch die physikalische Adresse Ai, die durch die Modifikati onseinheit 220 zu der modifizierten physikalischen Adresse A2 modifiziert wird. Die physika lische Adresse Ai umfasst vier Adressensegmente All bis A14. Beispielsweise bezeichnen die Adressensegmente An bis A13 jeweils eine Zeile, eine Spalte und eine Bank des ersten Spei chersegments Si. Das Adressensegment A14 kann leer sein, eine weitere Information zur Be stimmung des zugehörigen Speichersegments beinhalten und/oder eine andere Information enthalten. Jedes der Adressensegmente An bis A14 kann ein Bit oder mehrere Bits lang sein. Die Adressensegmente All bis A14 können eine unterschiedliche Länge aufweisen. [0063] Die Modifikationseinheit 220 kann eines, einen Teil oder alle vier der vier Adres sensegmente All bis A14 zu einem jeweiligen Adressensegment A21 bis A24 modifizieren. Insbesondere weisen die Adressensegmente A21 bis A24 der modifizierten physikalischen Adresse A2 jeweils eine gleiche Länge auf wie die Adressensegmente An bis A14 der einge henden physikalischen Adresse Ai. In einigen Beispielen wird die physikalische Adresse Ai in die Adressensegmente All bis A14 segmentiert, welche einzelnen durch die Modifikations einheit 220 modifiziert werden. Dementsprechend kann die Modifikationseinheit 220 meh rere Modifikationseinheiten für ein jeweiliges Adressensegment umfassen. In weiteren Bei spielen empfängt die Modifikationseinheit 220 die physikalische Adresse Ai zusammenhän gend und modifiziert sie. Beispielsweise kann die Modifikationseinheit 220 die Adressen segmente An bis A14 aus der zusammenhängenden physikalischen Adresse Ai selektiv modi fizieren, ohne diese zu segmentieren.

[0064] FIG. 4 zeigt schematisch Beispiele der Speicheranordnung 210, der Modifikations einheit 220 und der Steuereinheit 230. Die Speicheranordnung 210 umfasst eine Mehrzahl von Speichersegmenten 214, die das erste Speichersegment Si und das zweite Speicherseg ment S2 umfasst die in FIG. 4 nicht explizit gezeigt sind. Die Speichersegmente 214 sind in Bänken 212, Zeilen und Spalten organisiert. Die Speichersegmente 214 umfassen jeweils eine oder mehrere SRAM-Zellen. Die Speichersegmente 214 sind mit einer jeweiligen physischen Adresse verknüpft. In FIG. 4 sind nicht alle Speichersegmente mit einem entsprechenden Bezugszeichen 214 versehen, um die Übersichtlichkeit zu erhöhen.

[0065] Die Steuereinheit 230 umfasst einen Zeilendekodierer 232, einen Spaltendekodie rer 234, einen Bankdekodierer 236. in Beispielen, in welchen die Speicheranordnung 210 mehrere Speicherbänke 212 umfasst, wie in FIG. 4 dargestellt, kann die Dekodiereinheit 230 mehrere Spaltendekodierer 234 und mehrere Lese-/ Schreibschaltungen 238 umfassen, deren Anzahl der Anzahl der Speicherbänke 212 entspricht. Des Weiteren kann die Steuereinheit 230 eine Lese-/Schreibschaltung 238 zum Lesen oder Schreiben eines Speicherwertes um fassen.

[0066] Die Dekodierer 232 bis 236 sind eingerichtet, ein einzelnes Speichersegment 214 anzuwählen. Beispielsweise kann der Zeilendekodierer 232 eine einzelne Zeile ansteuern, indem eine vorbestimmte Spannung an dieser Zeile angelegt wird. Analog können der Spal tendekodierer 234 und der Bankdekodierer 236 eine einzelne Spalte sowie eine einzelne Bank durch eine Veränderung einer dort angelegten Spannung ansteuern. Gleichzeitig kann die Lese-/ Schreibschaltung 238 betrieben werden, um einen Speicherwert auf das angewähl te Speichersegment zu schreiben oder von dem angewählten Speichersegment zu lesen. [0067] Die physikalische Adresse Ai umfasst Adressensegmente All bis A13, die die Zeile, Spalte und Bank des ersten Speichersegments Si bestimmen. In dem Beispiel der FIG. 4 kann die Modifikationseinheit 220 eingerichtet sein, die physikalische Adresse Ai zusam menhängend zu empfangen, d.h. ohne dass die physikalische Adresse Ai in die Adressen segmente An bis A13 segmentiert ist. Nach der Modifizierung der physikalischen Adresse Ai zu der modifizierten physikalischen Adresse A2 wird die modifizierte physikalische Adresse A2 in deren Adressensegmente A21 bis A23 segmentiert und dem jeweiligen Dekodierer 232 bis 236 zugeführt. Die Adressensegmente A21 bis A23 der modifizierten physikalischen Ad resse bestimmen die Zeile, Spalte und Bank des zugehörigen Speichersegments S2 in der Speicheranordnung 210. Die Dekodierer 232 bis 236 empfangen das jeweilige Adressenseg ment A21 bis A23 und wählen das zugehörige zweite Speichersegment S2 an.

[0068] FIG. 5 zeigt schematisch ein weiteres Beispiel der Modifikationseinheit 220. In dem Beispiel der FIG. 5 umfasst die Modifikationseinheit 220 eine Zeilenmodifikationsein heit 222, eine Spaltenmodifikationseinheit 224 und eine Bankmodifikationseinheit 226. Die Zeilenmodifikationseinheit 222 ist eingerichtet, das erste Adressensegment An der physika lischen Adresse Ai zu empfangen und es zu einem modifizierten ersten Adressensegment A21 zu modifizieren. Dementsprechend sind die Spaltenmodifikationseinheit 224 und die Bank modifikationseinheit 226 eingerichtet, das jeweilige Adressensegment A12 und A13 zu emp fangen und zu einem jeweiligen modifizierten Adressensegment A22 und A23 zu modifizie ren.

[0069] Gemäß dem Beispiel der FIG. 5 umfasst die Modifikationseinheit 220 drei Modifi kationseinheiten 222 - 226 für die Zeile, Spalte und Bank. In weiteren Beispielen kann die Modifikationseinheit 220 nur eine oder zwei der Modifikationseinheiten 222 - 226 umfassen, um selektiv die Zeile, Spalte und/oder Bank der physikalischen Adresse Ai zu modifizieren.

[0070] FIG. 6A und 6B zeigen schematisch ein Beispiel einer Modifikationseinheit 220. Die Modifikationseinheit gemäß dem Beispiel der FIG. 6A und 6B umfasst einen Zähler 240 und mehrere XOR-Gatter 242. Die Anzahl der XOR-Gatter 242 kann der Anzahl von zu mo difizierenden Bitstellen der eingehenden physikalischen Adresse Ai entsprechen. Alternativ oder zusätzlich kann die Anzahl der XOR-Gatter 242 der Anzahl von Bitstellen eines Adres sensegments der eingehenden physikalischen Adresse Ai entsprechen, welches zu modifizie ren ist. In FIG. 6A und 6B ist die eingehende physikalische Adresse Ai beispielhaft als eine vierstellige Binärzahl dargestellt, und die Modifikationseinheit 220 umfasst vier XOR-Gatter 242. [0071] Der Zähler 240 umfasst eine Schaltung zum Speichern und Inkrementieren eines Zählerstands als eine N-stellige Binärzahl. In einem anderen Beispiel kann der Zähler 240 eine Schaltung zum Speichern und Dekrementieren eines Zählerstands als eine N-stellige Binärzahl umfassen. Die Länge N der Binärzahl des Zählerstands entspricht der Anzahl von Bitstellen der eingehenden physikalischen Adresse Ai. Der Zählerstand des Zählers 240 in- krementiert oder dekrementiert bei einer Neusortierung, einem Start oder Neustart der Spei cheranordnung 210. Des Weiteren kann der Zähler 240 wie oben beschrieben ausgestaltet sein.

[0072] Jedes XOR-Gatter 242 ist eingerichtet, ein jeweiliges Bit der physikalischen Adres se Ai zu modifizieren. Die XOR-Gatter 242 empfangen an ihrem Eingang ein jeweiliges Bit der physikalischen Adresse Ai, wie durch Leitungen 228 veranschaulicht, und ein jeweiliges Bit des Zählerstands des Zählers 240. In dem Beispiel der FIG. 6A entspricht der Zählerstand des Zählers 232 einem Modifikationswert M, siehe FIG. 6B. In einem weiteren, nicht explizit gezeigten Beispiel kann der Zählerstand zu einem Modifikationswert M modifiziert werden und den XOR-Gattern 242 zugeführt werden. In einem nicht gezeigten Beispiel können eines oder mehrere der XOR-Gatter 242 jeweils durch ein XNOR-Gatter ersetzt sein.

[0073] FIG. 6B zeigt eine tabellarische Darstellung von modifizierten physikalischen Ad ressen A2, die aus einer Exklusiv-Oder-Verknüpfung einer vierstelligen binären physikali schen Adresse Ai mit einem vierstelligen binären Zählerstand als Modifikationswert M resul tieren. In dem Beispiel der FIG. 6A und 6B ist die physikalische Adresse Ai aus einem linea ren Adressraum, in welchem insgesamt sechzehn Adressen von o bis 15 linear durchnumme riert sind, die als vierstellige Binärzahlen (0000 bis 1111) in der ersten Spalte der Tabelle dar gestellt sind. In diesem Beispiel kann der Modifikationswert M einen Wert zwischen o und 15 annehmen, die als vierstellige Binärzahlen (0000 bis 1111) in der obersten Zeile der Tabelle der FIG. 6B dargestellt sind. Die Werte ab der zweiten Zeile und ab der zweiten Spalte der Tabelle stellen die modifizierte physikalische Adresse A2 als Ergebnisse einer Exklusiv-Oder- Verknüpfung der eingehenden physikalischen Adresse Ai mit dem jeweiligen Modifikations wert M dar.

[0074] In der zweiten Spalte der Tabelle der FIG. 6B sind die Werte aus einer Exklusiv- Oder-Verknüpfung der physikalischen Adresse Ai mit einem Modifikationswert M von (0000) dargestellt. Folglich ist die modifizierte physikalische Adresse A2 in diesem Fall identisch mit der eingehenden physikalischen Adresse Ai. In der letzten Spalte der der Tabelle sind die Werte sind die Werte aus einer Exklusiv-Oder-Verknüpfung der physikalischen Adresse Ai mit einem Modifikationswert M von (im) dargestellt, welche einer Inversion der physikali schen Adresse Ai entspricht. Durch die Exklusiv-Oder-Verknüpfung des Zählerstands des Zählers 240 mit der physikalischen Adresse Ai wird die physikalische Adresse Ai in einer eindeutigen Weise zu einer modifizierten physikalischen Adresse A2 modifiziert.

[0075] Wie oben beschrieben kann der Modifikationswert M, zusammen mit dem Zähler stand des Zählers 240, bei einer Neusortierung, einem Start oder Neustart der Speicherano rdnung 210 oder der Vorrichtung 200 verändert werden. Der maximale Wert für den Zähler stand des Zählers 240 kann der Anzahl von möglichen physikalischen Adressen entsprechen. Beispielsweise wird der Modifikationswert M ausgehend von 0000 bei einer Neusortierung, einem Start oder Neustart der Speicheranordnung 210 um eins erhöht. Falls der Modifikati onswert M den maximalen Wert 1111 (oder 15 in der Dezimaldarstellung) aufweist, kann der Modifikationswert M bei einer Neusortierung, einem Start oder Neustart der Speicheranord nung 210 auf 0000 (oder o in der Dezimaldarstellung) zurückgestellt werden. In weiteren Beispielen kann der Modifikationswert M mehr als um eins erhöht werden. Die Wertever schiebung des Modifikationswert M kann zeitlich oder je nach Belieben variiert werden. In weiteren Beispielen kann der Modifikationswert M bei einer Neusortierung, einem Start oder Neustart der Speicheranordnung 210 um eins oder mehr vermindert und auf 1111 zurückge stellt, falls der Modifikationswert M 0000 ist und weiter vermindert werden soll.

[0076] Zusätzlich oder alternativ zu dem Zähler 240 kann ein Zufallszahlengenerator vor gesehen sein, der eingerichtet ist, eine vierstellige Zufallsbinärzahl zu generieren. Demnach kann der Modifikationswert M der vierstelligen Zufallsbinärzahl aus dem Zufallszahlengene rator entsprechen. In weiteren Beispielen kann der Modifikationswert M aus einer Verknüp fung des Zählerstandes des Zählers 240 mit der vierstelligen Zufallsbinärzahl aus dem Zu fallszahlengenerator erhalten sein.

[0077] FIG. 7A zeigt ein weiteres Beispiel einer Modifikationseinheit 220. Die Modifikati onseinheit 220 umfasst einen Zähler 240 und einen Barrel-Shifter 244. Der Zähler 240 und/oder der Barrel-Shifter 244 können wie oben beschrieben ausgestaltet sein. Der Barrel- Shifter 244 kann die physikalische Adresse Ai bitweise empfangen, wie durch die Leitungen 228 veranschaulicht. In FIG. 7A und 7B sind die physikalische Adresse Ai und die modifizier te physikalische Adresse A2 beispielhaft jeweils als vierstellige Binärzahlen darstellt. Alterna tiv oder zusätzlich kann der Barrel-Shifter 244 einen Teil oder ein Adressensegment der ein gehenden physikalischen Adresse Ai modifizieren. [0078] Der Barrel-Shifter 236 kann ferner den Zählerstand des Zählers 240 empfangen. Der Barrel-Shifter 244 kann aus dem Zählerstand des Zählers 240 eine Anzahl von Bitstellen bestimmen, um welche die Bits der physikalischen Adresse Ai zu verschieben sind. Das Er gebnis der Verschiebung kann der modifizierten physikalischen Adresse A2 entsprechen.

[0079] Zusätzlich oder alternativ kann ein Zufallszahlengenerator vorgesehen sein, der eine vierstellige Zufallsbinärzahl generiert. Demnach kann der Zählerstand durch die vier stellige Zufallsbinärzahl des Zufallszahlengenerators ersetzt oder mit ihr überlagert werden. Der Zufallszahlengenerator kann wie oben beschrieben ausgestaltet sein.

[0080] Die Modifikationseinheit 220 kann ferner einen Multiplexer 246 und eine Erfas sungsschaltung 248 umfassen. Die Erfassungsschaltung 248 kann eingerichtet sein, zu erfas sen, ob die Binärzahl der physikalischen Adresse Ai aus nur Einsen oder nur Nullen besteht. In dem Beispiel der FIG. 7A umfasst die Erfassungsschaltung 248 ein UND-Gatter und ein NOR-Gatter, die jeweils die Bits der physikalischen Adresse A empfangen, ein OR-Gatter, das die Ausgangswerte dieser Gatter verknüpft, und ein weiteres UND-Gatter, das den Ausgang wert des OR-Gatters mit dem Zählerstand des Zählers 240 verknüpft und einen Ausgangwert in den Multiplexer 246 schleust. Demnach führt der Multiplexer 246 eine Invertierung der Bits der physikalischen Adresse Ai durch, falls alle Bits der physikalischen Adresse Nullen oder Einsen sind, und falls der Zählerstand des Zählers 240 eine ungerade Zahl ist. In weite ren Beispielen kann die Binärzahl der physikalischen Adresse Ai an zwei der vier Bitstellen invertiert werden.

[0081] FIG. 7B zeigt die eingehende physikalische Adresse Ai sowie zwei Beispiele von modifizierten Adressen A2 und A2*, welche mithilfe der Modifikationseinheit 220 der FIG. 7A erhalten sein können. Die modifizierten Adressen A2 und A2* sind aus einer Verschie bung der vierstelligen Binärzahl der physikalischen Adresse Ai in eine jeweilige Richtung Mi, M2 erhalten.

[0082] Die Binärzahl der physikalischen Adresse Ai umfasst vier Bitstellen mit den Bit werten ai bis a4, wobei ai das wertniedrigste Bit, und a4 das werthöchste Bit der physikali schen Adresse Ai sind. In dem Beispiel in FIG. 7B ist die eingehende physikalische Adresse Ai eine vierstellige Binärzahl 1000, der einem Wert von 8 in der Dezimaldarstellung ent spricht.

[0083] In einem Beispiel wird die Binärzahl der physikalischen Adresse Ai um eine Bit stelle nach rechts verschoben, wie durch Pfeil Mi veranschaulicht. Dies kann einer Verschie- bung der Bitwerte ai bis a4 der physikalischen Adresse Ai um eine Bitstelle hin zu der wert niedrigsten Bitstelle entsprechen, wie durch die entsprechende modifizierte physikalische Adresse A2 dargestellt. Dabei wird das Bit ai von der wertniedrigsten Bitstelle der physikali schen Adresse Ai nach links rotiert und an der werthöchsten Bitstelle platziert. Die restlichen Bitwete a2 bis a4 werden um ein Bit nach rechts verschoben, woraus sich ein Wert von oioo (4 in der Dezimaldarstellung) ergibt.

[0084] In einem weiteren Beispiel wird die Binärzahl der physikalischen Adresse Ai um eine Bitstelle nach links verschoben, wie durch Pfeil M2 veranschaulicht Dies kann einer Ver schiebung der Bitwerte ai bis a4 der physikalischen Adresse Ai um eine Bitstelle hin zu der werthöchsten Bitstelle entsprechen, wie durch die entsprechende modifizierte physikalische Adresse A2* dargestellt. Dabei wird das Bit a4 von der werthöchsten Bitstelle der physikali schen Adresse Ai nach rechts rotiert und an der wertniedrigsten Bitstelle platziert. Die restli chen Bitwete ai bis a3 werden um ein Bit nach links verschoben, woraus sich ein Wert von 0001 (1 in der Dezimaldarstellung) ergibt.

[0085] Die Beispiele der FIG. 7B zeigen eine Verschiebung und Rotation der Bitwerte der physikalischen Adresse Ai jeweils um eine Bitstelle. In weiteren Beispielen, die in FIG. 7B nicht gezeigt sind, kann die Modifikationseinheit 220 eingerichtet sein, die Bitwerte der phy sikalischen Adresse um mehr als eine Bitstelle nach links oder nach rechts zu verschieben.

[0086] FIG. 8 zeigt eine Vorrichtung 200 gemäß einem weiteren Beispiel. Demnach kann die Vorrichtung 200 eine Prozessoreinheit 250 und eine Datenübertragungseinheit 252 um fassen. Die Prozessoreinheit 250 kann insbesondere eingerichtet sein, einen Speicherwert an die Speichereinrichtung 210 zu übermitteln oder einen Speicherwert von der Speicherein richtung 210 abzurufen. Die Datenübertragungseinheit 252 kann die Prozessoreinheit 210 mit der Speichereinrichtung 210 verbinden und eingerichtet sein, die physikalische Adresse Ai zwischen der Prozessoreinheit 250 und der Speichereinrichtung 210 zu übertragen. Die Datenübertragungseinheit 252 kann einen Datenbus zur Übertragung des Speicherwertes und einen Adressenbus zu Übertragung der physikalischen Adresse zwischen der Prozesso reinheit 250 und der Speicheranordnung 210 umfassen. BEZUGSZEICHENLISTE

100 Verfahren

102 - 106 Verfahrensschritte

200 Vorrichtung

210 Speicheranordnung

212 Speicherbank

214 Speicherzelle

220 Modifikationseinheit

222 Zeilenmodifikationseinheit 224 Spaltenmodifikationseinheit 226 Bänkemodifikationseinheit 228 Datenleitung

23O Dekodiereinheit

232 Zeilendekodierer

234 Spaltendekodierer

236 Bankdekodierer

238 Lese- / Schreibschaltung

24O Zähler

242 XOR-Gatter

244 Barrel-Shifter

246 Multiplexer

248 Erfassungsschaltung

25O Prozessoreinheit

252 Datenübertragungseinheit Ai physikalische Adresse

An - A14 Adressensegment

A2, A2 modifizierte physikalische Adresse A21 - A24 Adressensegment

ai - a4 Bitwert

M Modifikationswert

Si, S2 Speichersegment




 
Previous Patent: DRIVE SYSTEM

Next Patent: OIL-CONTAINING FACIAL CARE PREPARATION