DE102018128980A1 - Verfahren und vorrichtung zum betreiben einer speicheranordnung - Google Patents

Verfahren und vorrichtung zum betreiben einer speicheranordnung Download PDF

Info

Publication number
DE102018128980A1
DE102018128980A1 DE102018128980.4A DE102018128980A DE102018128980A1 DE 102018128980 A1 DE102018128980 A1 DE 102018128980A1 DE 102018128980 A DE102018128980 A DE 102018128980A DE 102018128980 A1 DE102018128980 A1 DE 102018128980A1
Authority
DE
Germany
Prior art keywords
physical address
memory
modified
address
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018128980.4A
Other languages
English (en)
Inventor
Alexandra Listl
Daniel Müller-Gritschneder
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technische Universitaet Muenchen
Original Assignee
Technische Universitaet Muenchen
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Technische Universitaet Muenchen filed Critical Technische Universitaet Muenchen
Priority to DE102018128980.4A priority Critical patent/DE102018128980A1/de
Priority to US17/292,145 priority patent/US11557327B2/en
Priority to EP19782986.4A priority patent/EP3884490A1/de
Priority to CN201980069238.0A priority patent/CN112912957A/zh
Priority to PCT/EP2019/076585 priority patent/WO2020104091A1/de
Publication of DE102018128980A1 publication Critical patent/DE102018128980A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

Hierin offenbart ist ein Verfahren zum Betreiben einer Speicheranordnung. Eine physikalische Adresse wird empfangen. Die physikalische Adresse ist einem ersten Speichersegment einer Speicheranordnung zugeordnet. Die physikalische Adresse wird zu einer modifizierten physikalischen Adresse modifiziert. Die modifizierte physikalische Adresse ist einem zweiten Speichersegment der Speicheranordnung zugeordnet.

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Offenbarung bezieht sich auf ein Verfahren und eine Vorrichtung für den Betrieb einer Speicheranordnung.
  • Manche Rechensysteme umfassen eine Speicheranordnung zum Speichern und Bereitstellen von Daten zur Ausführung eines Programms in Echtzeit. Die Speicheranordnung kann eine Anordnung von Speichersegmenten umfassen, die jeweils eine Informationseinheit speichern und bereitstellen können. Jedem der Speichersegmente kann eine jeweilige physikalische Adresse zugewiesen sein, um eine eindeutige Zuordnung zu ermöglichen.
  • Die Lebensdauer einer Speicheranordnung kann von einer Gesamtzahl der ausgefü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.
  • Eine ungleichmäßige Auslastung von bestimmten Speichersegmenten, beispielsweise durch überdurchschnittlich häufig wiederholtes Schreiben und Lesen, kann daher zu einer Verkürzung der Lebenszeit einer Speicheranordnung führen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vor diesem Hintergrund besteht eine Aufgabe der vorliegenden Erfindung darin, ein Verfahren und/oder eine Vorrichtung für den Betrieb einer Speicheranordnung bereitzustellen, um die Lebenszeit der Speicheranordnung positiv zu beeinflussen.
  • 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.
  • 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 Adresse wird zu einer modifizierten physikalischen Adresse modifiziert. Die modifizierte physische Adresse ist einem zweiten Speichersegment der Speicheranordnung zugeordnet. Anschließend kann dasjenige Speichersegment angewählt werden, das der modifizierten physikalischen Adresse entspricht. Somit kann das zweite Speichersegment angewählt werden, um beispielsweise einen Speicherwert zu speichern oder einen dort gespeicherten Speicherwert abzurufen.
  • Die Speicheranordnung kann eingerichtet sein, Daten zu speichern und gespeicherte Daten zum Lesen bereitzustellen. Insbesondere kann die Speicheranordnung eingerichtet sein, Daten zur Ausführung eines Programms in Echtzeit zu speichern und bereitzustellen. Beispielsweise kann die Speicheranordnung Speicherwerte, die bei der Ausführung eines Programms generiert, abgerufen und/oder verarbeitet werden, (zwischen-) speichern.
  • Die Speicheranordnung kann Speicherzellen eines flüchtigen Speichers umfassen. Beispielsweise ist die Speicheranordnung eingerichtet, gespeicherte Information oder gespeicherte Werte aufrechtzuerhalten, solange sie im Betrieb ist und/oder mit einem Betriebsstrom versorgt wird. Bei einer Unterbrechung der Stromversorgung kann der flüchtige Speicher 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 Speicheranordnung 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 Datenspeicher und/oder Programmspeicher an eine Prozessoreinheit gekoppelt.
  • 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 umfassen.
  • 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 Lesen 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.
  • Zusätzlich oder alternativ kann ein Speichersegment mehrere Speicherzellen umfassen. Eine Datenmenge, oder ein Speicherwert, die in mehreren Speicherzellen eines Speichersegments gespeichert werden kann, kann als ein Wort bezeichnet werden. Demnach kann die Anzahl der Speicherzellen eines Speichersegments einer (maximale) Wortlänge entsprechen. 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) entsprechen. Beispielsweise kann die Speicheranordnung eine Wortlänge von acht Bits aufweisen, und die Speichersegmente jeweils vier Bits lang sein.
  • Jedem Speichersegment kann eine jeweilige physikalische Adresse zugewiesen sein, um eine eindeutige Zuordnung und somit ein eindeutiges Anwählen des jeweiligen Speichersegments für einen Lese- oder Schreibvorgang zu ermöglichen. Die Speichersegmente der Speicheranordnung können in Zeilen und Spalten organisiert sein. Zudem kann die Speicheranordnung 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. Beispielsweise kann die physikalische Adresse Angaben der Zeile, der Spalte sowie, falls vorhanden, der Bank umfassen.
  • Die Speicheranordnung kann als eine separate, eigenständige Einheit und/oder in einem Gesamtsystem integriert bereitgestellt sein. Beispielsweise kann die Speicheranordnung Teil eines Hauptspeichers, eines Sekundärspeichers und/oder eines sonstigen Speichers eines Rechnersystems ausgebildet sein. Das Rechnersystem kann ein universell verwendbares Rechnersystem sein, das beispielsweise einen Merzweckcomputer, einen PC, ein mobiles rechenfähiges Gerät oder eine Workstation umfassen kann.
  • Gemäß einem Beispiel kann die Speicheranordnung Teil eines eingebetteten Systems 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 Steuerungsfunktion, und/oder eine Regelungsfunktion auszuführen. Das eingebettete System kann eingerichtet sein, Daten oder Signale zu verarbeiten, z.B. um diese zu verschlüsseln, zu entschlüsseln, zu kodieren, zu dekodieren, oder zu filtern. Das eingebettete System kann in einer anwendungsspezifischen Hardware implementiert sein, beispielsweise in einem Kraftfahrzeug, 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 System mit weiteren eingebetteten Systemen kommunizieren und/oder mit diesen ein größeres Gesamtsystem ausbilden, z.B. zur Steuerung von Teilen eines Kraftfahrzeugs oder eines Flugzeugs. Mehrere eingebettete Systeme können beispielsweise über einen Bus gekoppelt sein. In einigen Beispielen ist die Speicheranordnung eingerichtet, mit einem Mikroprozessor zu kommunizieren.
  • Die Speichersegmente der Speichereinrichtung können geeignet sein, jeweils einen Speicherwert zu speichern und einen gespeicherten Speicherwert zum Abrufen bereitzustellen. Der Begriff Speicherwert kann sich auf den Inhalt der zu speichernden Information beziehen. Der Speicherwert kann insbesondere Information umfassen, die für eine weitere Verarbeitung (zwischen-)gespeichert wird. Beispielsweise umfasst der Speicherwert einen Eingangswert für eine Operation. Der Eingangswert kann beispielsweise von einem Benutzer eingegeben worden sein oder von einem Programm erzeugt sein. Ferner kann der Speicherwert einen Ausgabewert umfassen, die als Ergebnis einer Operation auszugeben ist. Alternativ 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 Zwischenergebnis 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 Speicheranordnung betragen.
  • Die physikalische Adresse kann ein zugehöriges Speichersegment der Speicheranordnung 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 physikalische Adresse als eine Hexadezimalzahl vorliegen, die in eine entsprechende Binärzahl übersetzt werden kann. Die physikalische Adresse kann von einer Prozessoreinheit einem jeweiligen Speicherwert zugeordnet sein, der in der Speicheranordnung zu speichern ist. Des Weiteren kann die Prozessoreinheit die physikalische Adresse verwenden, um einen in dem jeweiligen Speichersegment der Speicheranordnung gespeicherten Speicherwert abzurufen. Alternativ oder zusätzlich kann eine Speicherverwaltungseinheit (Memory Management Unit, MMU) die physikalische Adresse verwenden, wobei die Speicherverwaltungseinheit eingerichtet sein kann, einer Prozessoreinheit oder einem ausgeführten Programm einen virtuellen Speicher bereitzustellen, der die Speicheranordnung zumindest teilweise abbildet.
  • Die physikalische Adresse kann zusammen mit dem Speicherwert in einem Datenpaket geliefert sein. Beispielsweise kann es festgelegt sein, welche (Bit-)Stellen des Datenpaketes die physikalische Adresse bezeichnen, und welche weitere den Speicherwert bezeichnen. Alternativ oder zusätzlich können die physikalische Adresse und der Speicherpaket über separate Wege empfangen werden. Beispielsweise wird der Speicherwert über einen Datenbus übertragen, während die physikalische Adresse über einen Adressenbus übertragen wird.
  • 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 Speichersegment der Speicheranordnung zugeordnet als die physikalische Adresse vor der Modifizierung. Demnach kann die physikalische Adresse einem ersten Speichersegment der Speicheranordnung, und die modifizierte physikalische Adresse ist einem zweiten Speichersegment der Speicheranordnung zugeordnet sein.
  • Die modifizierte physikalische Adresse kann in entsprechende Steuersignale übersetzt 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 Dekodiereinheiten 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 Steuersignal angesteuert werden. In Beispielen, in welchen die Speicheranordnung in Bänken organisiert ist, kann ferner die zugehörige Bank angesteuert werden, um das entsprechende Speichersegment anzuwählen.
  • In manchen Beispielen sind die einzelnen Speichersegmente der Speicheranordnung 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 einzelnes Speichersegment kann angewählt werden, indem jeweilige, vordefinierte Spannungen an den Wortleitungen und den Bitleitungen angelegt werden.
  • Das hierin beschriebene Verfahren bewirkt, dass das zweite Speichersegment anstatt des ersten Speichersegments angewählt werden kann, indem die physikalische Adresse zu der modifizierten physikalische Adresse modifiziert wird. Insbesondere kann die modifizierte physikalische Adresse aus demselben Adressraum wie die physikalische Adresse sein. Dies kann die Übersetzung der physikalischen Adresse in die modifizierte physikalische Adresse 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 Hardwarebasierte Modifizierung der physikalischen Adresse zu der modifizierten physikalischen Adresse 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 Datenübertragungseinheit beziehen. Dadurch kann eine Möglichkeit geschaffen sein, eine ausgewogene 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 Speichersegmente besser verteilt werden. Auf diese Weise kann die Lebensdauer der Speicheranordnung positiv beeinflusst werden.
  • 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 einem ersten Speichersegment der Speicheranordnung zugeordnet. Die modifizierte physikalische Adresse ist einem zweiten Speichersegment der Speicheranordnung zugeordnet. Die Vorrichtung kann eingerichtet sein, das oben beschriebene Verfahren durchzuführen.
  • 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ühren.
  • 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.
  • Gemäß einem Beispiel kann die physikalische Adresse zu der modifizierten physikalischen Adresse modifiziert werden, bevor die entsprechenden Speichersegmente angewählt werden. Hierdurch kann insbesondere der Vorgang einer Ansteuerung der entsprechenden 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.
  • Gemäß einem Beispiel umfasst die physikalische Adresse eine Gruppe von Adressensegmenten, 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 Spalte und, falls vorhanden, eine Bank umfassen, die ein einzelnes Speichersegment bestimmen können. Beispielsweise umfasst die Gruppe der Adressensegmente ein erstes Adressensegment, 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 innerhalb der physikalischen Adresse kann von einer jeweiligen Ausführungsform abhängig sein. Bei der Modifizierung der physikalischen Adresse können eines oder mehrere Adressensegmente aus der Gruppe der Adressensegmente modifiziert werden. Die Untergruppe der Adressensegmente kann die hierbei modifizierten Adressensegmente bezeichnen.
  • 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 Adresse in drei Adressensegmente jeweils für die Zeile, Spalte und Bank des zugehörigen Speichersegments segmentiert werden. Zum Beispiel können die Adressensegmente einzeln einem jeweiligen Dekodierer zugeführt werden, um das zugehörige Speichersegment anzusteuern.
  • Die physikalische Adresse kann erst in mehrere Adressensegmente segmentiert werden, und eines oder mehrere der Adressensegmente können anschließend einzeln modifiziert 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.
  • In weiteren Beispielen kann die physikalische Adresse erst zu der modifizierten physikalischen Adresse modifiziert und danach in die einzelnen Adressensegmente segmentiert 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.
  • Gemäß einem Beispiel kann ein Modifikationswert bereitgestellt werden. Die physikalische 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 Eingangswerte. 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.
  • Dementsprechend kann die hierin beschriebene Vorrichtung ein XOR-Gatter umfassen, 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. Insbesondere kann für einzelne Bits, die zu modifizieren sind, jeweils ein XOR-Gatter vorgesehen sein. Somit kann die Vorrichtung mehrere XOR-Gatter umfassen, die eingerichtet sind, die Bits der physikalischen Adresse zu modifizieren.
  • 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 Adresse 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 Modifikationswertes mit einem Inverter verknüpft sein. Insbesondere kann für einzelne Bits, die zu modifizieren sind, jeweils ein XNOR-Gatter vorgesehen sein. Somit kann die Vorrichtung mehrere XNOR-Gatter umfassen, die eingerichtet sind, die Bits der physikalischen Adresse zu modifizieren. Ferner kann die Vorrichtung ein oder mehrere XOR-Gatter in Kombination mit einem oder mehreren XNOR-Gattern umfassen.
  • Gemäß einem Beispiel wird der Modifikationswert mittels eines Zufallszahlengenerators erzeugt. Der Zufallszahlengenerator kann eingerichtet sein, eine Zufallszahl oder eine Folge von Zufallszahlen zu erzeugen. Der Zufallszahlengenerator kann einen deterministischen 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.
  • Gemäß einem Beispiel wird der Modifikationswert mittels eines ganzzahligen Zählers 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ähler 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 Speicheranordnung um eins oder mehr inkrementieren oder dekrementieren. Beispielsweise ist der Zählerstand 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 Maximalwert erreicht ist. Dabei kann der Minimalwert 0 betragen. Der Maximalwert des Zählerstands kann beispielsweise die Anzahl der möglichen physikalischen Adressen oder die Anzahl der Bitstellen der physikalischen Adresse sein. In weiteren Beispielen kann der Maximalwert 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 dekrementierenden ganzzahligen Zähler kann der ganzzahlige Zähler auf einen Maximalwert umgestellt werden, nachdem ein Minimalwert erreicht ist.
  • Hierin werden die Begriffe ganzzahliger Zähler und Zähler beliebig vertauschbar verwendet, sofern nicht explizit auf einen Unterschied hingewiesen wird. Der Modifikationswert 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 entsprechend modifiziert sein, um den Modifikationswert zu erhalten. Beispielsweise kann der maximale 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.
  • Bei einer Neusortierung der Speicheranordnung oder der Speichersegmente können 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 Access, DMA) durchgeführt werden. Bei einer Inbetriebnahme, einem Neustart oder einer Wiederaufnahme 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. Folglich 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 ausgewogene Ausnutzung der Speicheranordnung und der Speichersegmente über einen ausgedehnten Zeitraum erreicht sein.
  • Dementsprechend kann die hierin beschriebene Vorrichtung einen Zähler zum Bereitstellen des Modifikationswertes umfassen. Ferner kann ein derartiger Zähler eingerichtet 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, detektieren 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 aufrechtzuerhalten.
  • 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.
  • Gemäß einem Beispiel wird die modifizierte physikalische Adresse aus einer Verschiebung 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 modifizierte physikalische Adresse einer periodischen und bitweisen Verschiebung der physikalischen Adresse entsprechen. Hierdurch kann die modifizierte physikalische Adresse alle möglichen 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.
  • Eine derartige Verschiebung der Bitwerte der physikalischen Adresse kann beispielsweise mithilfe eines Barrel-Shifters erfolgen. Entsprechend kann die hierin beschriebene 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.
  • 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 Verschiebedistanz, 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 ausgestaltet sein, dass die Bitstellen zyklisch miteinander verbunden sind, sodass, je nach Verschiebungsrichtung, die wertniedrigste Bitstelle in die werthöchste Bitstelle übergeht oder umgekehrt. Der Barrel-Shifter kann somit eingerichtet sein, eine um von der Eingangsbitfolge eine oder mehrere Bitstellen verschobene Bitfolge auszugeben.
  • Der Barrel-Shifter kann eine Schaltung mit mehreren Multiplexern umfassen. Beispielsweise kann der Barrel-Shifter N N-zu-i-Multiplexer umfassen. Alternativ oder zusätzlich kann der Barrel-Shifter in mehrere Schritte zerlegt sein. Beispielsweise kann der Barrel-Shifter N-2 √N-zu-1-Multiplexer umfassen, wobei N eine Quadratzahl ist. In weiteren Beispielen kann der Barrel-Shifter N·E d-zu-i Multiplexer umfassen, wobei N = dE ist. In anderen Beispielen kann der Barrel-Shifter N·E d-zu-1 Multiplexer und N·G f-zu-1 Multiplexer umfassen, wobei N = dE · fG ist.
  • Ferner kann der Barrel-Shifter einen Dekodierer umfassen, der die Verschiebedistanz in ein entsprechendes elektrisches Signal umwandelt. Beispielsweise umfasst der Barrel-Shifter einen 1-aus-N-Dekodierer, der N Ausgänge umfasst und einen dieser Ausgänge entsprechend der Verschiebedistanz aktiviert. In weiteren Beispielen kann der Barrel-Shifter in mehrere Dekodierer umfassen, die kaskadiert angeordnet sind.
  • 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 (V1.1), auf Seite 1 mit Bezug auf 1 mehrere Ausführungsbeispiele eines 8-Bit-Barrel-Shifters mittels eines 8-aus-i-Multiplexers. Auf Seite 3 und in 3 der genannten Schrift sind Beispiele eines 32-bit Barrel-Shifters mit zweiunddreißig 32-zu-1-Multiplexern beschrieben.
  • 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 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-1-Multiplexern nach rechts (1) oder nach links (2) verschieben. Ferner sind mit Bezug auf 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 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.
  • 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, umfassen.
  • 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 physikalischen 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-1)/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.
  • Gemäß einem weiteren Beispiel wird bestimmt, ob der Zählerstand des ganzzahligen Zählers gerade oder ungerade ist. Wenn festgestellt wird, dass die Binärzahl der physikalischen Adresse N Null oder N Eins enthält, und das der Zählerstand des ganzzahligen Zählers 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 ganzzahligen Zählers gerade ist. Somit können Ausnahmebedingungen für Situationen, in welchen eine Verschiebung der physikalischen Adresse erfolglos wäre, bereitgestellt sein. Hierdurch kann einer möglichen Minderung der Effektivität des hierin beschriebenen Verfahrens oder der hierin beschriebenen Vorrichtung vorgebeugt werden.
  • Gemäß einem Beispiel wird das zweite Speichersegment angewählt, indem die modifizierte 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.
  • 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 zwischen der Prozessoreinheit und der Speichereinrichtung zu übertragen. Die Datenübertragungseinheit kann einen Bus umfassen. Der Bus kann in Datenbus für die Übertragung eines Speicherwertes und einen Adressenbus zur Übertragung der physikalischen Adresse umfassen. Der Datenbus und der Adressenbus können als getrennte Busse bereitgestellt sein.
  • Im Folgenden werden einige Beispiele der vorliegenden Offenbarung unter Bezugnahme auf die Zeichnungen im Detail erläutert.
  • Figurenliste
    • 1 ist ein schematisches Ablaufdiagramm eines Verfahrens gemäß einem Beispiel.
    • 2A bis 2C sind schematische Diagramme einer Vorrichtung gemäß einem Beispiel.
    • 3 ist ein schematisches Diagramm einer Modifikationseinheit gemäß einem Beispiel.
    • 4 ist ein schematisches Diagramm einer Vorrichtung gemäß einem Beispiel.
    • 5 ist ein schematisches Diagramm einer Vorrichtung gemäß einem Beispiel.
    • 6A und 6B sind schematische Diagramme einer Modifikationseinheit und einer Tabelle mit physikalischen Adressen und den zugehörigen modifizierten physikalischen Adressen gemäß einem Beispiel.
    • 7A und 7B sind schematische Diagramme einer Modifikationseinheit und einer Verschiebung und Rotation einer physikalischen Adresse zu modifizierten physikalischen Adressen gemäß einem Beispiel.
    • 8 ist ein schematisches Diagramm einer Vorrichtung gemäß einem Beispiel.
  • DETAILBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein schematisches Ablaufdiagramm eines Verfahrens 100 zum Betreiben 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.
  • Bei 102 wird eine physikalische Adresse empfangen, die einem ersten Speichersegment 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.
  • 2A bis 2C zeigen eine Vorrichtung 200 zum Betreiben einer Speicheranordnung 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.
  • Die Speicheranordnung 210 kann wie oben beschrieben ausgestaltet sein. Insbesondere 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 S1 und des zweiten Speichersegments S2. In 2A bis 2C sind die Speichersegmente S1 und S2 mit Bezugszeichen versehen. Weitere Speichersegmente weisen keine Bezugszeichen auf, um die Übersichtlichkeit zu erhöhen.
  • Die Speichersegmente S1, S2 können eine einheitliche Speicherkapazität aufweisen, zum Beispiel 8 Bits, 16 Bits, 32 Bits, 64 Bits oder 2n 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.
  • 2A zeigt eine schematische Teilansicht der Vorrichtung 200 und veranschaulicht die Zuordnung einer ersten physikalischen Adresse A1 und einer zweiten physikalischen Adresse A2 jeweils zu einem ersten Speichersegment Si und zu einem zweiten Speichersegment S2 der Speicheranordnung 210. Demnach kennzeichnet die erste physikalische Adresse A1 das zugehörige erste Speichersegment S1 eindeutig. Ebenso kennzeichnet die zweite physikalische Adresse A2 das zugehörige zweite Speichersegment S2 eindeutig.
  • Wie in 2B und 2C gezeigt, umfasst die Speicheranordnung 210 eine Modifikationseinheit 220, die eingerichtet ist, die erste physikalische Adresse A1 zu empfangen und sie zu der zweiten physikalischen Adresse A2 zu modifizieren. Die zweite physikalische Adresse A2 entspricht der modifizierten physikalischen Adresse gemäß der obigen Beschreibung.
  • In 2C gezeigt ist ferner eine Steuereinheit 230, die eingerichtet ist, die modifizierte physikalische Adresse A2 zu empfangen und Steuersignale entsprechend der modifizierten 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 2A bis 2C) umfassen.
  • Folglich wird ein Speichersegment angewählt, das von dem eingangs bezeichneten Speichersegment abweicht. Eine Regel, nach welcher die Modifikation der empfangenen physikalischen Adresse A1 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.
  • 3 zeigt schematisch die physikalische Adresse A1, die durch die Modifikationseinheit 220 zu der modifizierten physikalischen Adresse A2 modifiziert wird. Die physikalische Adresse A1 umfasst vier Adressensegmente A11 bis A14. Beispielsweise bezeichnen die Adressensegmente A11 bis A13 jeweils eine Zeile, eine Spalte und eine Bank des ersten Speichersegments S1. Das Adressensegment A14 kann leer sein, eine weitere Information zur Bestimmung des zugehörigen Speichersegments beinhalten und/oder eine andere Information enthalten. Jedes der Adressensegmente A11 bis A14 kann ein Bit oder mehrere Bits lang sein. Die Adressensegmente A11 bis A14 können eine unterschiedliche Länge aufweisen.
  • Die Modifikationseinheit 220 kann eines, einen Teil oder alle vier der vier Adressensegmente A11 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 A11 bis A14 der eingehenden physikalischen Adresse A1. In einigen Beispielen wird die physikalische Adresse A1 in die Adressensegmente A11 bis A14 segmentiert, welche einzelnen durch die Modifikationseinheit 220 modifiziert werden. Dementsprechend kann die Modifikationseinheit 220 mehrere Modifikationseinheiten für ein jeweiliges Adressensegment umfassen. In weiteren Beispielen empfängt die Modifikationseinheit 220 die physikalische Adresse A1 zusammenhängend und modifiziert sie. Beispielsweise kann die Modifikationseinheit 220 die Adressensegmente A11 bis A14 aus der zusammenhängenden physikalischen Adresse A1 selektiv modifizieren, ohne diese zu segmentieren.
  • 4 zeigt schematisch Beispiele der Speicheranordnung 210, der Modifikationseinheit 220 und der Steuereinheit 230. Die Speicheranordnung 210 umfasst eine Mehrzahl von Speichersegmenten 214, die das erste Speichersegment S1 und das zweite Speichersegment S2 umfasst die in 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 4 sind nicht alle Speichersegmente mit einem entsprechenden Bezugszeichen 214 versehen, um die Übersichtlichkeit zu erhöhen.
  • Die Steuereinheit 230 umfasst einen Zeilendekodierer 232, einen Spaltendekodierer 234, einen Bankdekodierer 236. in Beispielen, in welchen die Speicheranordnung 210 mehrere Speicherbänke 212 umfasst, wie in 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 umfassen.
  • 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 Spaltendekodierer 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ählte Speichersegment zu schreiben oder von dem angewählten Speichersegment zu lesen.
  • Die physikalische Adresse A1 umfasst Adressensegmente A11 bis A13, die die Zeile, Spalte und Bank des ersten Speichersegments S1 bestimmen. In dem Beispiel der 4 kann die Modifikationseinheit 220 eingerichtet sein, die physikalische Adresse A1 zusammenhängend zu empfangen, d.h. ohne dass die physikalische Adresse A1 in die Adressensegmente A11 bis A13 segmentiert ist. Nach der Modifizierung der physikalischen Adresse A1 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 Adresse bestimmen die Zeile, Spalte und Bank des zugehörigen Speichersegments S2 in der Speicheranordnung 210. Die Dekodierer 232 bis 236 empfangen das jeweilige Adressensegment A21 bis A23 und wählen das zugehörige zweite Speichersegment S2 an.
  • 5 zeigt schematisch ein weiteres Beispiel der Modifikationseinheit 220. In dem Beispiel der 5 umfasst die Modifikationseinheit 220 eine Zeilenmodifikationseinheit 222, eine Spaltenmodifikationseinheit 224 und eine Bankmodifikationseinheit 226. Die Zeilenmodifikationseinheit 222 ist eingerichtet, das erste Adressensegment A11 der physikalischen Adresse A1 zu empfangen und es zu einem modifizierten ersten Adressensegment A21 zu modifizieren. Dementsprechend sind die Spaltenmodifikationseinheit 224 und die Bankmodifikationseinheit 226 eingerichtet, das jeweilige Adressensegment A12 und A13 zu empfangen und zu einem jeweiligen modifizierten Adressensegment A22 und A23 zu modifizieren.
  • Gemäß dem Beispiel der 5 umfasst die Modifikationseinheit 220 drei Modifikationseinheiten 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 A1 zu modifizieren.
  • 6A und 6B zeigen schematisch ein Beispiel einer Modifikationseinheit 220. Die Modifikationseinheit gemäß dem Beispiel der 6A und 6B umfasst einen Zähler 240 und mehrere XOR-Gatter 242. Die Anzahl der XOR-Gatter 242 kann der Anzahl von zu modifizierenden Bitstellen der eingehenden physikalischen Adresse A1 entsprechen. Alternativ oder zusätzlich kann die Anzahl der XOR-Gatter 242 der Anzahl von Bitstellen eines Adressensegments der eingehenden physikalischen Adresse A1 entsprechen, welches zu modifizieren ist. In 6A und 6B ist die eingehende physikalische Adresse A1 beispielhaft als eine vierstellige Binärzahl dargestellt, und die Modifikationseinheit 220 umfasst vier XOR-Gatter 242.
  • 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 A1. Der Zählerstand des Zählers 240 inkrementiert oder dekrementiert bei einer Neusortierung, einem Start oder Neustart der Speicheranordnung 210. Des Weiteren kann der Zähler 240 wie oben beschrieben ausgestaltet sein.
  • Jedes XOR-Gatter 242 ist eingerichtet, ein jeweiliges Bit der physikalischen Adresse A1 zu modifizieren. Die XOR-Gatter 242 empfangen an ihrem Eingang ein jeweiliges Bit der physikalischen Adresse A1, wie durch Leitungen 228 veranschaulicht, und ein jeweiliges Bit des Zählerstands des Zählers 240. In dem Beispiel der 6A entspricht der Zählerstand des Zählers 232 einem Modifikationswert M, siehe 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.
  • 6B zeigt eine tabellarische Darstellung von modifizierten physikalischen Adressen A2, die aus einer Exklusiv-Oder-Verknüpfung einer vierstelligen binären physikalischen Adresse A1 mit einem vierstelligen binären Zählerstand als Modifikationswert M resultieren. In dem Beispiel der 6A und 6B ist die physikalische Adresse A1 aus einem linearen Adressraum, in welchem insgesamt sechzehn Adressen von 0 bis 15 linear durchnummeriert sind, die als vierstellige Binärzahlen (0000 bis 1111) in der ersten Spalte der Tabelle dargestellt sind. In diesem Beispiel kann der Modifikationswert M einen Wert zwischen 0 und 15 annehmen, die als vierstellige Binärzahlen (0000 bis 1111) in der obersten Zeile der Tabelle der 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 A1 mit dem jeweiligen Modifikationswert M dar.
  • In der zweiten Spalte der Tabelle der 6B sind die Werte aus einer Exklusiv-Oder-Verknüpfung der physikalischen Adresse A1 mit einem Modifikationswert M von (0000) dargestellt. Folglich ist die modifizierte physikalische Adresse A2 in diesem Fall identisch mit der eingehenden physikalischen Adresse A1. In der letzten Spalte der der Tabelle sind die Werte sind die Werte aus einer Exklusiv-Oder-Verknüpfung der physikalischen Adresse A1 mit einem Modifikationswert M von (1111) dargestellt, welche einer Inversion der physikalischen Adresse A1 entspricht. Durch die Exklusiv-Oder-Verknüpfung des Zählerstands des Zählers 240 mit der physikalischen Adresse A1 wird die physikalische Adresse A1 in einer eindeutigen Weise zu einer modifizierten physikalischen Adresse A2 modifiziert.
  • Wie oben beschrieben kann der Modifikationswert M, zusammen mit dem Zählerstand des Zählers 240, bei einer Neusortierung, einem Start oder Neustart der Speicheranordnung 210 oder der Vorrichtung 200 verändert werden. Der maximale Wert für den Zählerstand 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 Modifikationswert M den maximalen Wert 1111 (oder 15 in der Dezimaldarstellung) aufweist, kann der Modifikationswert M bei einer Neusortierung, einem Start oder Neustart der Speicheranordnung 210 auf 0000 (oder 0 in der Dezimaldarstellung) zurückgestellt werden. In weiteren Beispielen kann der Modifikationswert M mehr als um eins erhöht werden. Die Werteverschiebung 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ückgestellt, falls der Modifikationswert M 0000 ist und weiter vermindert werden soll.
  • Zusätzlich oder alternativ zu dem Zähler 240 kann ein Zufallszahlengenerator vorgesehen sein, der eingerichtet ist, eine vierstellige Zufallsbinärzahl zu generieren. Demnach kann der Modifikationswert M der vierstelligen Zufallsbinärzahl aus dem Zufallszahlengenerator entsprechen. In weiteren Beispielen kann der Modifikationswert M aus einer Verknüpfung des Zählerstandes des Zählers 240 mit der vierstelligen Zufallsbinärzahl aus dem Zufallszahlengenerator erhalten sein.
  • 7A zeigt ein weiteres Beispiel einer Modifikationseinheit 220. Die Modifikationseinheit 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 A1 bitweise empfangen, wie durch die Leitungen 228 veranschaulicht. In 7A und 7B sind die physikalische Adresse A1 und die modifizierte physikalische Adresse A2 beispielhaft jeweils als vierstellige Binärzahlen darstellt. Alternativ oder zusätzlich kann der Barrel-Shifter 244 einen Teil oder ein Adressensegment der eingehenden physikalischen Adresse A1 modifizieren.
  • 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 A1 zu verschieben sind. Das Ergebnis der Verschiebung kann der modifizierten physikalischen Adresse A2 entsprechen.
  • Zusätzlich oder alternativ kann ein Zufallszahlengenerator vorgesehen sein, der eine vierstellige Zufallsbinärzahl generiert. Demnach kann der Zählerstand durch die vierstellige Zufallsbinärzahl des Zufallszahlengenerators ersetzt oder mit ihr überlagert werden. Der Zufallszahlengenerator kann wie oben beschrieben ausgestaltet sein.
  • Die Modifikationseinheit 220 kann ferner einen Multiplexer 246 und eine Erfassungsschaltung 248 umfassen. Die Erfassungsschaltung 248 kann eingerichtet sein, zu erfassen, ob die Binärzahl der physikalischen Adresse A1 aus nur Einsen oder nur Nullen besteht. In dem Beispiel der 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 Ausgangwert 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 A1 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 weiteren Beispielen kann die Binärzahl der physikalischen Adresse A1 an zwei der vier Bitstellen invertiert werden.
  • 7B zeigt die eingehende physikalische Adresse A1 sowie zwei Beispiele von modifizierten Adressen A2 und A2*, welche mithilfe der Modifikationseinheit 220 der 7A erhalten sein können. Die modifizierten Adressen A2 und A2* sind aus einer Verschiebung der vierstelligen Binärzahl der physikalischen Adresse A1 in eine jeweilige Richtung M1, M2 erhalten.
  • Die Binärzahl der physikalischen Adresse A1 umfasst vier Bitstellen mit den Bitwerten a1 bis a4, wobei a1 das wertniedrigste Bit, und a4 das werthöchste Bit der physikalischen Adresse A1 sind. In dem Beispiel in 7B ist die eingehende physikalische Adresse A1 eine vierstellige Binärzahl 1000, der einem Wert von 8 in der Dezimaldarstellung entspricht.
  • In einem Beispiel wird die Binärzahl der physikalischen Adresse A1 um eine Bitstelle nach rechts verschoben, wie durch Pfeil M1 veranschaulicht. Dies kann einer Verschiebung der Bitwerte a1 bis a4 der physikalischen Adresse A1 um eine Bitstelle hin zu der wertniedrigsten Bitstelle entsprechen, wie durch die entsprechende modifizierte physikalische Adresse A2 dargestellt. Dabei wird das Bit a1 von der wertniedrigsten Bitstelle der physikalischen Adresse A1 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 0100 (4 in der Dezimaldarstellung) ergibt.
  • In einem weiteren Beispiel wird die Binärzahl der physikalischen Adresse A1 um eine Bitstelle nach links verschoben, wie durch Pfeil M2 veranschaulicht Dies kann einer Verschiebung der Bitwerte a1 bis a4 der physikalischen Adresse A1 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 physikalischen Adresse A1 nach rechts rotiert und an der wertniedrigsten Bitstelle platziert. Die restlichen Bitwete a1 bis a3 werden um ein Bit nach links verschoben, woraus sich ein Wert von 0001 (1 in der Dezimaldarstellung) ergibt.
  • Die Beispiele der 7B zeigen eine Verschiebung und Rotation der Bitwerte der physikalischen Adresse A1 jeweils um eine Bitstelle. In weiteren Beispielen, die in 7B nicht gezeigt sind, kann die Modifikationseinheit 220 eingerichtet sein, die Bitwerte der physikalischen Adresse um mehr als eine Bitstelle nach links oder nach rechts zu verschieben.
  • 8 zeigt eine Vorrichtung 200 gemäß einem weiteren Beispiel. Demnach kann die Vorrichtung 200 eine Prozessoreinheit 250 und eine Datenübertragungseinheit 252 umfassen. Die Prozessoreinheit 250 kann insbesondere eingerichtet sein, einen Speicherwert an die Speichereinrichtung 210 zu übermitteln oder einen Speicherwert von der Speichereinrichtung 210 abzurufen. Die Datenübertragungseinheit 252 kann die Prozessoreinheit 210 mit der Speichereinrichtung 210 verbinden und eingerichtet sein, die physikalische Adresse A1 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 Prozessoreinheit 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
    230
    Dekodiereinheit
    232
    Zeilendekodierer
    234
    Spaltendekodierer
    236
    Bankdekodierer
    238
    Lese-/Schreibschaltung
    240
    Zähler
    242
    XOR-Gatter
    244
    Barrel-Shifter
    246
    Multiplexer
    248
    Erfassungsschaltung
    250
    Prozessoreinheit
    252
    Datenübertragungseinheit
    A1
    physikalische Adresse
    A11 - A14
    Adressensegment
    A2, A2*
    modifizierte physikalische Adresse
    A21 - A24
    Adressensegment
    a1 - a4
    Bitwert
    M
    Modifikationswert
    Si, S2
    Speichersegment

Claims (15)

  1. Verfahren (100) zum Betreiben einer Speicheranordnung (210), wobei das Verfahren (100) Folgendes umfasst: Empfangen (102) einer physikalischen Adresse (A1), wobei die physikalische Adresse (A1) einem ersten Speichersegment (S1) einer Speicheranordnung (210) zugeordnet ist; Modifizieren (104) der physikalischen Adresse (A1) zu einer modifizierten physikalischen 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 (A1) eine Gruppe von Adressensegmenten (A11, A12, A13, A14) umfasst, wobei die modifizierte physikalische Adresse (A2) aus einer Modifizierung einer Untergruppe der Adressensegmente (A11, A12, A13, A14) erhalten wird.
  3. Verfahren nach einem der vorhergehenden Ansprüche, das weiterhin Folgendes umfasst: Bereitstellen eines Modifikationswertes (M), wobei die physikalische Adresse (A1) und der Modifikationswert (M) jeweils eine Binä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 (A1) 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 (A1) um K Stellen in Richtung einer ersten oder einer letzten Stelle der physikalischen Adresse (A1) 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 (A1) N Nullen oder N Einsen enthält; falls die Binärzahl der physikalischen Adresse (A1) N Null oder N Einsen enthält, Invertieren der Binärzahl der physikalischen Adresse (A1), falls der ganzzahlige Zähler (221) eine ungerade Zahl ist.
  8. Verfahren nach einem der vorhergehenden Ansprüche, das weiterhin Folgendes umfasst: 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 (S1) und einem zweiten Speichersegment (S2); eine Modifikationseinheit (220) zum Empfangen einer physikalischen Adresse (A1), wobei die physikalischen Adresse (A1) dem ersten Speichersegment (S1) zugeordnet ist, wobei die Modifikationseinheit (220) eingerichtet ist, die physikalische Adresse (A1) 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 (A1) eine Gruppe von Adressensegmenten (A11, A12, A13, A14) umfasst, wobei die Modifikationseinheit (220) eingerichtet ist, eine Untergruppe der Adressensegmente (A11, A12, A13, A14) zu modifizieren, um die modifizierte physikalische Adresse (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 physikalische Adresse (A1) und der Modifikationswert (M) jeweils eine Binärzahl mit N Stellen sind; und ein XOR-Gatter (234) zum Empfangen der physikalischen Adresse (A1) und des Modifikationswertes (M) und zum Ausgeben der modifizierten physikalischen Adresse (A2) als Ergebnis aus einer XOR-Verknüpfung der physikalischen Adresse (A1) und des Modifikationswertes (M).
  12. Vorrichtung nach Anspruch 11, wobei der Zähler (221) eingerichtet ist, den Modifikationswert (M) bei einer Neusortierung, 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 (A1) eine Binärzahl mit N Stellen ist, wobei die Vorrichtung (200) weiterhin einen Barrel-Shifter (225) umfasst, der eingerichtet ist, die modifizierte physikalische Adresse (A2) aus einer Verschiebung und Rotation von Bitwerten der physikalischen Adresse (A1) um K Stellen in Richtung einer ersten oder einer letzten Stelle der physikalischen Adresse (A1) 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 Speichereinrichtung (210) zu übermitteln oder den Speicherwert von der Speichereinrichtung (210) abzurufen, wobei die physikalische Adresse (A1) dem Speicherwert zugeordnet ist; und eine Datenübertragungseinheit (252), die die Prozessoreinheit (250) mit der Speichereinrichtung (210) verbindet und eingerichtet ist, die physikalische Adresse (A1) zwischen der Prozessoreinheit (250) und der Speichereinrichtung (210) zu übertragen.
DE102018128980.4A 2018-11-19 2018-11-19 Verfahren und vorrichtung zum betreiben einer speicheranordnung Pending DE102018128980A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102018128980.4A DE102018128980A1 (de) 2018-11-19 2018-11-19 Verfahren und vorrichtung zum betreiben einer speicheranordnung
US17/292,145 US11557327B2 (en) 2018-11-19 2019-10-01 Method and device for operating a memory assembly
EP19782986.4A EP3884490A1 (de) 2018-11-19 2019-10-01 Verfahren und vorrichtung zum betreiben einer speicheranordnung
CN201980069238.0A CN112912957A (zh) 2018-11-19 2019-10-01 一种用于操作存储器组件的方法和装置
PCT/EP2019/076585 WO2020104091A1 (de) 2018-11-19 2019-10-01 Verfahren und vorrichtung zum betreiben einer speicheranordnung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102018128980.4A DE102018128980A1 (de) 2018-11-19 2018-11-19 Verfahren und vorrichtung zum betreiben einer speicheranordnung

Publications (1)

Publication Number Publication Date
DE102018128980A1 true DE102018128980A1 (de) 2020-05-20

Family

ID=68138080

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018128980.4A Pending DE102018128980A1 (de) 2018-11-19 2018-11-19 Verfahren und vorrichtung zum betreiben einer speicheranordnung

Country Status (5)

Country Link
US (1) US11557327B2 (de)
EP (1) EP3884490A1 (de)
CN (1) CN112912957A (de)
DE (1) DE102018128980A1 (de)
WO (1) WO2020104091A1 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0176939A1 (de) * 1984-09-28 1986-04-09 Siemens Aktiengesellschaft Datenverarbeitungsanlagen mit virtueller Speicheradressierung für eine Vielzahl von Benutzern
DE19922155A1 (de) * 1999-05-12 2000-11-23 Giesecke & Devrient Gmbh Speicheranordnung mit Adreßverwürfelung
DE112008003878T5 (de) * 2008-05-21 2011-05-05 Verigy (Singapore) Pte. Ltd. Verfahren und Vorrichtung für die Bestimmung eines sich wiederholenden Bitwertmusters

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10322541A1 (de) 2003-05-19 2004-12-16 Infineon Technologies Ag Speicherbaustein mit integrierter Adressscramblereinheit und Verfahren zum Verscrambeln einer Adresse in einem integrierten Speicher
KR20110101012A (ko) 2010-03-05 2011-09-15 삼성전자주식회사 컴바인드 코딩을 이용한 병렬데이터 인터페이스 방법, 기록매체 및 그 장치
KR20130039505A (ko) 2011-10-12 2013-04-22 삼성전자주식회사 랜덤 코드 발생기를 포함하는 어드레스 변환 회로 및 이를 포함하는 반도체 메모리 장치
US9146688B2 (en) * 2012-12-05 2015-09-29 SanDisk Technologies, Inc. Advanced groomer for storage array
KR102133573B1 (ko) * 2013-02-26 2020-07-21 삼성전자주식회사 반도체 메모리 및 반도체 메모리를 포함하는 메모리 시스템
US10956318B2 (en) * 2018-06-19 2021-03-23 Macronix International Co., Ltd. Overlapping ranges of pages in memory systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0176939A1 (de) * 1984-09-28 1986-04-09 Siemens Aktiengesellschaft Datenverarbeitungsanlagen mit virtueller Speicheradressierung für eine Vielzahl von Benutzern
DE19922155A1 (de) * 1999-05-12 2000-11-23 Giesecke & Devrient Gmbh Speicheranordnung mit Adreßverwürfelung
DE112008003878T5 (de) * 2008-05-21 2011-05-05 Verigy (Singapore) Pte. Ltd. Verfahren und Vorrichtung für die Bestimmung eines sich wiederholenden Bitwertmusters

Also Published As

Publication number Publication date
EP3884490A1 (de) 2021-09-29
CN112912957A (zh) 2021-06-04
US11557327B2 (en) 2023-01-17
WO2020104091A1 (de) 2020-05-28
US20210398571A1 (en) 2021-12-23

Similar Documents

Publication Publication Date Title
DE3128740C2 (de)
DE2916710C2 (de)
DE60035171T2 (de) Verfahren und Schaltungen zum schnellen Auffinden des minimalen / maximalen Wertes in einer Menge von Zahlen
DE2619159A1 (de) Fehlererkennungs- und korrektureinrichtung
DE3689595T2 (de) Datenverarbeitungssystem.
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE3128729A1 (de) Halbleiter-speichersystem
DE2517356A1 (de) In datenverarbeitungsanlagen universell einsetzbarer logischer modul- baustein
DE2322674B2 (de) Mikroprogramm-Steuereinrichtung
DE2316296A1 (de) Durch mikroprogramme steuerbare verarbeitungseinrichtung
DE2456709C2 (de) Schaltungsanordnung zur Fehlererkennung und -korrektur
DE2725396C3 (de)
DE2421130C2 (de)
DE2440628A1 (de) Datenverarbeitungsanlage mit mikroprogrammierung
DE3650642T2 (de) Speichermittel mit Mehrwortauslesen und Schreiben
DE102018128980A1 (de) Verfahren und vorrichtung zum betreiben einer speicheranordnung
DE112017005197T5 (de) Hybrid-Komprimierungsschema zur effizienten Speicherung synaptischer Gewichte in neuromorphen Hardware-Kernen
DE1293188B (de) Schaltungsanordnung zur UEbertragung von Pruefinformationen mit vorbestimmter Paritaet in Datenverarbeitungsanlagen
DE2952163C2 (de) Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor
DE19628039A1 (de) Speicheradressen-Steuerschaltung
DE69626625T2 (de) Verfahren, um redundante fehlerhafte Adressen in einer Speicheranordnung mit Redundanz zu erkennen
DE2440390A1 (de) Elektronischer rechner
DE2004934A1 (de)
DE102018104650A1 (de) Abnutzungsegalisierung in nichtflüchtigen Speichern
EP0013885B1 (de) Verfahren zur Vermeidung von unerwünschten Paritätsfehlersignalen bei der Paritätprüfung eines Registerfeldes und Paritätsprüfeinrichtung zur Durchführung des Verfahrens

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication