DE102014010659A1 - Speicherzugriff unter verwendung von adressen mit permutation - Google Patents

Speicherzugriff unter verwendung von adressen mit permutation Download PDF

Info

Publication number
DE102014010659A1
DE102014010659A1 DE102014010659.4A DE102014010659A DE102014010659A1 DE 102014010659 A1 DE102014010659 A1 DE 102014010659A1 DE 102014010659 A DE102014010659 A DE 102014010659A DE 102014010659 A1 DE102014010659 A1 DE 102014010659A1
Authority
DE
Germany
Prior art keywords
blocks
memory
address bits
permutation
array
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.)
Granted
Application number
DE102014010659.4A
Other languages
English (en)
Other versions
DE102014010659B4 (de
Inventor
Ljudmil Anastasov
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102014010659A1 publication Critical patent/DE102014010659A1/de
Application granted granted Critical
Publication of DE102014010659B4 publication Critical patent/DE102014010659B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/123Frame memory handling using interleaving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4082Address Buffers; level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Eine Vorrichtung umfasst einen Speicher mit einem Array von Blöcken, die unter Verwendung von Adressbits adressierbar sind; und eine Permutationsschaltung, die mit dem Speicher gekoppelt und dafür ausgelegt ist, die Adressbits so zu permutieren, dass während eines Speicherzugriffs Blöcke von Daten virtuell umgeordnet werden.

Description

  • Ein Speicher, wie etwa ein Direktzugriffsspeicher (RAM), ist eine Form von Datenspeicher. Der Speicher kann ein Array von Blöcken aufweisen, die unter Verwendung von Adressbits adressierbar sind, um während einer Lese- oder Schreiboperation auf die Blöcke zuzugreifen. Ein RAM erlaubt den Zugriff auf Daten in einer beliebigen Zufallsreihenfolge.
  • Beispielsweise werden bei Radaranwendungen große Mengen an Daten auf verschachtelte Weise in einen Speicher geschrieben. Diese Daten müssen entschachtelt werden, bevor sie FFT-Beschleunigern (FFT: schnelle Fourier Transformation) zugeführt werden, und dann müssen die Daten wieder vor einer zweiten Phase der FFT-Verarbeitung umgeordnet werden. Daten werden in einem Array von Speicherblöcken auf verschachtelte Weise entlang seiner Dimensionen organisiert.
  • Der Zugriff auf den Speicher erfolgt im Allgemeinen unter Verwendung einer DMA-Steuerung (DMA: Direktspeicherzugriff), die einen Adresszähler aufweist, der um eine programmierbare Sprungbreite von zum Beispiel 2, 4 oder 8 Byte im Speicheradressenraum springt. Dieses Zugriffsverfahren ist insofern nachteilig, als es normalerweise keinen Burst-Zugriff gestattet, bei dem Daten in einer zusammenhängenden Sequenz transferiert werden. Stattdessen sind mehrere Verarbeitungszyklen erforderlich, um eine Lese- oder Schreiboperation abzuschließen.
  • Eine Aufgabe besteht darin, insbesondere eine verbesserte oder effizientere Möglichkeit eines Speicherzugriffs zu schaffen.
  • Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind insbesondere den abhängigen Ansprüchen entnehmbar.
  • Mindestens eines/eine der folgenden Beispiele und/oder Ausführungsformen können als innovativ betrachtet werden. Sie können mit anderen beschriebenen Aspekten oder Ausführungsformen kombiniert werden. Jede hier beschriebene Ausführungsform oder Ausgestaltung ist nicht unbedingt als gegenüber anderen Ausführungsformen oder Ausgestaltungen bevorzugt oder vorteilhaft aufzufassen.
  • So wird eine Vorrichtung vorgeschlagen umfassend:
    • – einen Speicher, der ein Array von Blöcken aufweist, die unter Verwendung von Adressbits adressierbar sind; und
    • – eine Permutationsschaltung, die mit dem Speicher gekoppelt und dafür ausgelegt ist, die Adressbits so zu permutieren, dass während eines Speicherzugriffs Blöcke von Daten virtuell umgeordnet werden.
  • Gemäß einer Ausführungsform ist das Array von Blöcken ein eindimensionales Array von Blöcken.
  • Es ist eine Ausgestaltung, dass das Array von Blöcken ein zweidimensionales Array von Blöcken ist.
  • Es ist eine Ausgestaltung, dass die Permutationsschaltung dafür ausgelegt ist, die Adressbits durch Vertauschen von Zeilenadressbits mit Spaltenadressbits zu permutieren.
  • Es ist eine Ausgestaltung, dass das Array von Blöcken ein dreidimensionales Array von Blöcken ist.
  • Es ist eine Ausgestaltung, dass die Permutationsschaltung dafür ausgelegt ist, die Adressbits durch Austauschen von Adressbits von mindestens zwei der drei Dimensionen zu permutieren.
  • Es ist eine Ausgestaltung, dass das Array von Blöcken ein Hyperwürfelarray von Blöcken mit mehr als drei Dimensionen ist.
  • Es ist eine Ausgestaltung, dass jede Dimension des Arrays von Blöcken 2N Blöcke aufweist, wobei N eine Zahl der jeweiligen Dimension ist.
  • Es ist eine Ausgestaltung, dass die Permutationsschaltung Folgendes umfasst:
    • – einen Permutationsselektor, der dafür ausgelegt ist, eine Permutation auszuwählen; und
    • – einen Multiplexer, der dafür ausgelegt ist, auf der Basis der ausgewählten Permutation einen von mehreren Busmastern auszuwählen, wobei nur einer der mehreren Busmaster ausgewählt wird, um es einer mit dem ausgewählten Busmaster gekoppelten Vorrichtung zu ermöglichen, auf den Speicher zuzugreifen.
  • Es ist eine Ausgestaltung, dass die Auswahl eines ersten der mehreren Busmaster dazu führt, dass die Adressbits permutiert werden, und die Auswahl eines zweiten der mehreren Busmaster dazu führt, dass die Adressbits unpermutiert bleiben.
  • Es ist eine Ausgestaltung, dass die Auswahl des ersten der mehreren Busmaster dazu führt, dass Daten geschrieben oder gelesen werden, und die Auswahl des zweiten der mehreren Busmaster dazu führt, dass Daten das Andere von geschrieben oder gelesen werden.
  • Es ist eine Ausgestaltung, dass die Permutationsschaltung einen Segmentselektor umfasst, der dafür ausgelegt ist, jegliche virtuell umzuordnende Segmente des Speichers auszuwählen, so dass weniger als alle Blöcke von Daten umgeordnet werden.
  • Es ist eine Ausgestaltung, dass die Permutationsschaltung dafür ausgelegt ist, virtuell Blöcke mit einer Größe von 2N Byte umzuordnen, wobei N eine Anzahl niedrigstwertiger Bits der Adressbits, die keiner Permutation unterzogen werden, repräsentiert.
  • Es ist eine Ausgestaltung, dass die Permutationsschaltung eine Nachschlagetabelle von Permutationsoptionen umfasst.
  • Es ist eine Ausgestaltung, dass sich die Permutationsschaltung auf einem Chip befindet und der Speicher ein externer Speicher ist, der sich außerhalb des Chips befindet.
  • Weiterhin wird ein Verfahren vorgeschlagen zum Zugreifen auf einen Speicher, der ein Array von Blöcken aufweist, die unter Verwendung von Adressbits adressierbar sind, wobei das Verfahren Folgendes umfasst:
    • – Bereitstellen der Adressbits; und
    • – Permutieren der Adressbits dergestalt, dass während eines Speicherzugriffs Blöcke von Daten virtuell umgeordnet werden.
  • Es ist eine Ausgestaltung, dass das Array von Blöcken ein zweidimensionales Array von Blöcken ist und der Permutationsschritt ein Vertauschen von Zeilenadressbits mit Spaltenadressbits umfasst.
  • Es ist eine Ausgestaltung, dass das Array von Blöcken ein dreidimensionales Array von Blöcken ist und der Permutationsschritt ein Vertauschen von Adressbits von mindestens zwei der drei Dimensionen umfasst.
  • Es ist eine Ausgestaltung, dass das Verfahren umfassend: ein Auswählen jeglicher virtuell umzuordnender Segmente des Speichers, so dass weniger als alle Blöcke von Daten umgeordnet werden.
  • Auch wird zur Lösung der obigen Aufgabe eine Vorrichtung vorgeschlagen, umfassend:
    • – einen Speicher, der ein Array von Blöcken aufweist, die unter Verwendung von Adressbits adressierbar sind; und
    • – ein Permutationsmittel zum Permutieren der Adressbits dergestalt, dass während eines Speicherzugriffs Blöcke von Daten virtuell umgeordnet werden.
  • Die Merkmale der jeweiligen Vorrichtung sind für das jeweiligen Verfahren anwendbar. Ebenso gilt umgekehrt, dass die Merkmale des jeweiligen Verfahrens mit der jeweiligen Vorrichtung kombiniert werden können.
  • Ausführungsformen werden unter Bezugnahme auf die Zeichnungen dargestellt und veranschaulicht. Die Zeichnungen dienen der Veranschaulichung des Grundprinzips, so dass zum Verständnis des Grundprinzips notwendige Aspekte dargestellt werden. Die Zeichnungen sind nicht maßstabgerecht. In den Zeichnungen stehen gleiche Bezugszeichen für gleiche Merkmale.
  • 1 zeigt ein Diagramm einer Schaltung gemäß einer beispielhaften Ausführungsform.
  • 2A2C zeigen das Entschachteln eines zweidimensionalen Speichers gemäß einer beispielhaften Ausführungsform.
  • 3A3C zeigen das Entschachteln eines dreidimensionalen Speichers gemäß einer beispielhaften Ausführungsform.
  • 4 zeigt das Entschachteln eines hyperwürfel-dimensionalen Speichers gemäß einer beispielhaften Ausführungsform.
  • 5A zeigt ein Diagramm einer Schaltung gemäß einer beispielhaften Ausführungsform.
  • 5B zeigt ein Diagramm einer Schaltung gemäß einer alternativen beispielhaften Ausführungsform.
  • 6A zeigt ein Diagramm einer Schaltung gemäß einer alternativen beispielhaften Ausführungsform.
  • 6B zeigt ein Blockschaltbild des Permutationsselektors von 6A gemäß einer beispielhaften Ausführungsform.
  • 7 zeigt ein Flussdiagramm für ein Verfahren zum Adressieren eines Speichers gemäß einer beispielhaften Ausführungsform.
  • Die vorliegende Offenbarung betrifft eine Vorrichtung, die einen Speicher umfasst, der ein Array von unter Verwendung von Adressbits adressierbaren Blöcken aufweist, und insbesondere eine Vorrichtung, die einen Speicher und eine Permutationsschaltung umfasst, die mit dem Speicher gekoppelt und dafür ausgelegt ist, die Adressbits so zu permutieren, dass während eines Speicherzugriffs Blöcke von Daten virtuell umgeordnet werden. Durch Permutieren der Adressbits können Daten, die zu/von dem Speicher geschrieben/gelesen werden, effektiv verschachtelt oder entschachtelt werden. Diese Permutation wird am Anfang des Speicherzugriffs konfiguriert und erlaubt die Verwendung von Standard-Burstzugriffen für einen Datenblocktransfer, wodurch die Geschwindigkeit des Transfers beträchtlich erhöht wird.
  • 1 zeigt ein Diagramm einer Schaltung 100 gemäß einer beispielhaften Ausführungsform. Genauer gesagt umfasst die Schaltung 100 einen Speicher 110 und eine Permutationsschaltung 120. Der Speicher 110 weist ein (nicht gezeigtes) Array von Blöcken auf, die unter Verwendung von Adressbits A0–A8 adressierbar sind, um Daten in die Blöcke zu schreiben und/oder Daten aus ihnen zu lesen. Die Permutationsschaltung 120 ist mit dem Speicher 110 gekoppelt und dafür ausgelegt, bestimmte der Adressbits A1–A6 so zu permutieren, dass während eines Speicherzugriffs Blöcke von Daten virtuell umgeordnet werden.
  • Eine Standardspeicheradresse ist 32-Bit breit und kann folgendermaßen aussehen: A31 A30 A29 A28 A27 ... A9 A8 A7 A6 A5 A4 A3 A2 A1 A0.
  • Bei einer Adressbitpermutationsoperation werden Gruppen der Speicheradressbit permutiert, wobei eine Gruppe ein oder mehrere Adressbits sein kann. Zum Beispiel können die Gruppen von Adressbits der oben gezeigten Standard-Speicheradresse durch Austauschen der Gruppe von Adressbits A6 A5 A4 mit der Gruppe von Adressbits A1 A0 folgendermaßen permutiert werden: A31 A30 A29 A28 A27 ... A9 A8 A7 A1 A0 A3 A2 A6 A5 A4 (Unterstreichung zur Veranschaulichung hinzugefügt).
  • Ein anderes Beispiel ist in 1 gezeigt, wobei die Gruppe von Adressbits A4 A3 A2 A1 mit der Gruppe von Adressbits A6 A5 ausgetauscht wird, so dass während des Zugriffs des Speichers 110 die Daten virtuell umgeordnet werden. Wie später ausführlicher erläutert werden wird, ist es möglich, Datenarrays als rechteckig, Würfel oder Hyperwürfel zu behandeln und die Größe und Position der „Dimensionen” zu konfigurieren und das Rechteck bzw. den Würfel bzw. den Hyperwürfel auf beliebige Weise zu drehen.
  • 2A2C zeigen das Entschachteln eines zweidimensionalen Speichers 210, der ein Array von 4 × 8 Blöcken aufweist, also insgesamt 32 Blöcke, gemäß einer beispielhaften Ausführungsform.
  • 2A zeigt eine lineare Ansicht des Speichers 210A vor Adressbitpermutation. In den Blöcken des Speichers 210A sind Daten gespeichert, die mit der Zeit wie gesammelt verschachtelt werden. Beispielsweise kann der Speicher 210 Variablen speichern, die während eines Herstellungsvorgangs gemessen werden, wobei 0 Feuchtigkeit, 1 Temperatur, 2 Licht und 3 Druck ist. Jede dieser Variablen wird gemessen und dann in den Speicher 210 geschrieben und dann nochmals gemessen und dann in den Speicher 210 geschrieben usw.
  • 2B zeigt eine zweidimensionale Ansicht der Adressbit-Permutationsoperation. Als Übersicht repräsentiert der Speicher 210B-1 auf der linken Seite der Figur eine zweidimensionale Ansicht des Speichers 210 vor Adressbitpermutation, die Adressbit-Permutationslogikschaltung 220 repräsentiert die Adressbit-Permutationsoperation und der Speicher 210B-2 auf der rechten Seite der Figur repräsentiert eine zweidimensionale Ansicht des Speichers 210 nach Adressbitpermutation.
  • Der Speicher 210B-1, der keiner Adressbitpermutation unterzogen wurde, repräsentiert den Speicher 210, während die Daten tatsächlich gespeichert werden, das heißt, auf verschachtelte Weise. Der Speicher 210 wird im Allgemeinen quer eine Zeile auf einmal geschrieben/gelesen, das heißt zuerst in der x-Achsenrichtung und dann in der y-Achsenrichtung. Genauer gesagt werden die Blöcke von Zeile 0 quer geschrieben/gelesen (zuerst Feuchtigkeit 0, dann Temperatur 1, dann Licht 2 und dann Druck 3), dann werden Blöcke von Zeile 1 quer geschrieben/gelesen (zuerst Feuchtigkeit 0, dann Temperatur 1, dann Licht 2 und dann Druck 3) usw. An jedem Beschreiben/Lesen einer Zeile ist eine Kombination verschiedener Arten von Daten beteiligt, und somit werden in diesem Fall die Daten auf verschachtelte Weise geschrieben/gelesen.
  • Die Adressbit-Permutationslogikschaltung 220 permutiert die Adressbits durch Austauschen der x-Adressbits A1 A0 mit den y-Adressbits A4 A3 A2, so dass die Zeilen x1 x0 mit den Spalten y2 y1 y0 vertauscht werden. Das Ergebnis ist, dass die Daten wie im Speicher 210B-2 dargestellt organisiert zu sein scheinen.
  • Der Speicher 210B-2 zeigt, wie die Blöcke virtuell organisiert werden, wenn Speicherzugriff nach Adressbitpermutation erfolgt, das heißt, die Blöcke scheinen auf eine entschachtelte Weise organisiert zu sein. Wie oben erwähnt, wird der Speicher 210 im Allgemeinen quer eine Zeile auf einmal geschrieben/gelesen, das heißt, zuerst in der x-Achsenrichtung und dann in der y-Achsenrichtung. Wenn der Speicher 210B-2 auf diese Weise gelesen wird, werden die Blöcke von Zeile 0 quer gelesen (nur Feuchtigkeitsblöcke 0), dann werden Blöcke der Zeile x1 quer gelesen (nur Temperaturblöcke 1) usw. Daten werden somit auf entschachtelte Weise gelesen, so dass Datenblöcke desselben Typs effizienter der Reihe nach unter Verwendung eines Burst-Zugriffsverfahrens gelesen werden können.
  • Ein Ergebnis der Adressenpermutation ist, dass, obwohl der physische Speicher 210 tatsächlich zuerst in der x-Achsenrichtung und dann in der y-Achsenrichtung gelesen wird, der Effekt darin besteht, dass die Reihenfolge, in der die Dimensionen gelesen werden, anders zu sein scheint. Das heißt, der Speicher 210 scheint stattdessen zuerst in der y-Achsenrichtung und dann in der x-Achsenrichtung gelesen zu werden.
  • 2C zeigt den Speicher 210C nach Adressenpermutation, außer dass statt eine zweidimensionale Ansicht zu sein, wie im Fall des Speichers 210B-2, der Speicher 210C eine lineare Ansicht ist. Im Gegensatz zu dem in 2A gezeigten Speicher 210A sind die im Speicher 210C gezeigten Blöcke entschachtelt. Genauer gesagt wird, statt dass Blöcke einer Art zwischen anderen Arten von Blöcken verstreut sind, auf Blöcke eines selben Typs so zugegriffen, als seien sie zusammen gruppiert; Feuchtigkeitsblöcke 0 werden zusammen gruppiert, Temperaturblöcke 1 werden zusammen gruppiert, Lichtblöcke 2 werden zusammen gruppiert und Druckblöcke 3 werden zusammen gruppiert.
  • 3A3C zeigen das Entschachteln eines dreidimensionalen Speichers 310 mit einer Größe von 4 × 8 × 2 Blöcken, also insgesamt 64 Blöcken, gemäß einer beispielhaften Ausführungsform.
  • 3A zeigt eine lineare Ansicht des Speichers 310A vor Adressenpermutation. In den Blöcken des Speichers 310A sind Daten gespeichert, die auf eine ähnliche Weise wie beim Speicher 210A von 2A verschachtelt werden. Der Unterschied zwischen Speicher 210A und Speicher 310A ist, dass Speicher 310A eine zusätzliche Dimension aufweist, die z-Dimension. Statt einer Seite von Blöcken weist der Speicher 310A zwei Seiten von Blöcken auf, die durch z0 bzw. z1 repräsentiert werden.
  • 3B zeigt eine dreidimensionale Ansicht der Adressenpermutationsoperation. Als Übersicht repräsentiert der Speicher 310B-1 auf der linken Seite der Figur eine dreidimensionale Ansicht des Speichers 310 vor Adressenpermutation, die Adressbit-Permutationslogikschaltung 320 repräsentiert die Adressbit-Permutationsoperation und der Speicher 310B-2 auf der rechten Seite der Figur repräsentiert die dreidimensionale Ansicht des Speichers 310 nach Adressbitpermutation.
  • Der Speicher 310B-1, der keiner Adressbitpermutation unterzogen wurde, repräsentiert den Speicher 310, so wie die Daten tatsächlich gespeichert werden, das heißt, auf verschachtelte Weise. Blöcke von Zeile 0 werden quer geschrieben/gelesen (zuerst Blöcke der Feuchtigkeit 0, dann Temperatur 1, dann Licht 2 und dann Druck 3). Dann werden Blöcke von Zeile 1 quer geschrieben/gelesen (mit einer Mischung von Blöcken von Feuchtigkeit 0, Temperatur 1, Licht 2 und Druck 3) usw. Jedes Schreiben/Lesen einer Zeile führt zu einer Kombination verschiedener Arten von Daten, und somit werden in diesem Fall die Daten auf verschachtelte Weise geschrieben/gelesen.
  • Die Adressbit-Permutationslogikschaltung 320 permutiert die Adressbits durch Vertauschen von Gruppen von Adressbits, wie in der Figur gezeigt, um zu dem Speicher 310B-2 zu führen. Das Ergebnis ist, dass die Daten wie in dem Speicher 310B-2 dargestellt organisiert zu sein scheinen.
  • Der Speicher 310B-2 zeigt, wie die Blöcke virtuell organisiert werden, wenn der Speicherzugriff nach Adressbitpermutation erfolgt, das heißt, die Blöcke scheinen auf entschachtelte Weise organisiert zu sein. Ähnlich wie bei dem Speicher 210 von 2 werden Blöcke quer eine Zeile auf einmal gelesen, das heißt, über die Zeile x0 der Seite z0 (die nur Feuchtigkeitsblöcke 0 umfasst), dann über Zeile x1 von Seite z0 (die nur Temperaturblöcke 1 umfasst) usw. Der Unterschied bezüglich Speicher 210B-2 von 2B besteht jedoch darin, dass, nachdem die Seite z0 gelesen wird, die Seite z1 danach auf ähnliche Weise gelesen wird. Daten werden auf entschachtelte Weise gelesen, so dass Datenblöcke einer selben Art effizienter der Reihe nach unter Verwendung eines Burst-Zugriffsverfahrens gelesen werden können.
  • Ein Ergebnis der Adressbitpermutation ist, dass, obwohl der physische Speicher 310 tatsächlich zuerst in der x-Achsenrichtung gelesen wird, und dann in der y-Achsenrichtung und dann in der z-Achsenrichtung, der Effekt ist, dass die Reihenfolge, in der die Dimensionen gelesen werden, anders zu sein scheint. Der Speicher 310 scheint zuerst in der y-Achsenrichtung, dann der z-Achsenrichtung und dann der x-Achsenrichtung gelesen zu werden.
  • 3C zeigt den Speicher 310C nach Adressenpermutation wie im Fall des Speichers 310B-2, außer dass statt eine dreidimensionale Ansicht zu sein, der Speicher 310C eine lineare Ansicht ist. Im Gegensatz zu dem in 3A dargestellten Speicher 310A sind die Blöcke, wie Speicher 310C dargestellt, entschachtelt. Genauer gesagt, werden Feuchtigkeitsblöcke 0 zusammen gruppiert, Temperaturblöcke zusammen gruppiert, Lichtblöcke zusammen gruppiert und Druckblöcke 3 zusammen gruppiert.
  • 4 zeigt Entschachtelung eines (nicht gezeigten) Hyperwürfelspeichers mit mehr als drei Dimensionen gemäß einer beispielhaften Ausführungsform. Bei dieser beispielhaften Ausführungsform besitzt der Speicher vier Dimensionen mit einer Größe von 16 × 8 × 4 × 2 Blöcken, also insgesamt 1024 Blöcken. Die Adressbit-Permutationslogikschaltung 420, die die Adressbitpermutationsoperation repräsentiert, ist gezeigt. Der Speicher ist aufgrund der Schwierigkeit der Darstellung eines Arrays von Blöcken mit mehr als drei Dimensionen auf Papier nicht gezeigt.
  • Adressbit-Permutationslogikschaltung 420 permutiert die Adressbits durch Vertauschen von Gruppen von Adressbits wie gezeigt. Nach Durchsicht der obigen Beschreibungen des in 2A2C gezeigten zweidimensionalen Beispiels und des in 3A3C gezeigten dreidimensionalen Beispiels sind für Fachleute die Einzelheiten dieses vierdimensionalen Beispiels erkennbar. Die Adressbit-Permutationslogikschaltung 420 wird deshalb hier nicht ausführlicher besprochen, der Kürze halber und um Aspekte der Offenbarung nicht unnötigerweise zu verschleiern.
  • Es ist optimal, wenn der Speicher so bemessen ist, dass sein Array 2N Blöcke aufweist, wobei N eine Zahl der jeweiligen Dimension ist. Zum Beispiel hat das oben beschriebene vierdimensionale Array eine Größe von 16 × 8 × 4 × 2 Blöcken, also 24 × 23 × 22 × 21, wobei vier die Zahl der vierten Dimension, drei die Zahl der dritten Dimension ist usw. Es ist möglich, dass eine oder mehrere Dimensionen eines Arrays von Blöcken eine andere Größe als 2N aufweisen, es können aber zusätzliche Betrachtungen notwendig sein.
  • 5A zeigt ein Diagramm einer Schaltung 500A gemäß einer beispielhaften Ausführungsform. Genauer gesagt zeigt die Schaltung 500A eine direkt mit dem Speicher 510 gekoppelte Adressbit-Permutationsschaltung 520. CPU1 552, CPU 554, DMA 556 und das Kommunikationsmodul 558 teilen sich den Zugriff auf den Speicher 510, wobei nur einer dieser Vorrichtungen auf einmal Zugriff gewährt wird. Der Zugriff wird durch das Bussystem ausgeführt, das aus Bus-Masterschnittstellen 532, 534, 536, 538, dem Bus-Master 540 und der Bus-Slave-Schnittstelle 530 besteht. Das Bussystem umfasst Datenleitungen, Adressenleitungen und Steuerleitungen. CPU1 552, CPU 554, DMA 556 und das Kommunikationsmodul 558 besitzen jeweils ihre eigene Bus-Master-Schnittstelle 532, 534, 536, 538 zum Senden von Steuersignalen C und Adressbits A, die im Speicher 510 spezifische Blöcke, auf die zugegriffen werden soll, identifizieren, zu der Bus-Slave-Schnittstelle 530. Bei dieser beispielhaften Ausführungsform steuern die Bus-Master-Schnittstellen 532, 534, 536, 538 die Adressenleitungen an. Daten D können in beiden Richtungen zwischen jeder der Vorrichtungen (CPU1 552, CPU2 554, DMA 556 und Kommunikationsmodul 558) und dem Speicher 510 übertragen werden, wobei Daten D in spezifische Speicherblöcke, die durch die Adressbits A identifiziert werden, geschrieben bzw. daraus gelesen werden.
  • 5B zeigt ein Diagramm der Schaltung 500B gemäß einer alternativen beispielhaften Ausführungsform. Genauer gesagt zeigt die Schaltung 500B alternative Orte für eine Adressbit-Permutationsschaltung verglichen mit ihrem Ort in 5A. Die Adressbit-Permutationsschaltung 524 ist direkt mit DMA 556 gekoppelt, so dass DMA 556 seine eigenen Adressbits permutieren kann. Als Alternative kann sich die Adressbit-Permutationsschaltung 524 in dem DMA 556 befinden. Mittels einer externen Buseinheit 562 außerhalb des Chips von der Adressbit-Permutationsschaltung 516 ist eine andere Adressbit-Permutationsschaltung 526 mit einem externen Speicher 560 gekoppelt.
  • Obwohl die Adressbit-Permutationsschaltung als sich an bestimmten Orten oder in bestimmten Quantitäten in der Schaltung 500A und 500B befindend beschrieben wurde, soll die Offenbarung in dieser Hinsicht nicht beschränkt sein. Die Adressbit-Permutationsschaltung kann an einem beliebigen geeigneten Ort und in einer beliebigen geeigneten Quantität sein.
  • 6A zeigt ein Diagramm einer Schaltung 600 gemäß einer beispielhaften Ausführungsform. Genauer gesagt umfasst die Schaltung 600 einen Speicher 610 und eine Adressbit-Permutationsschaltung 620. Wie oben mit Bezug auf 5A und 5B besprochen, wird Speicher 610 durch Datenleitungen, Steuerleitungen und Adressenleitungen mit dem Rest der Schaltung 600 gekoppelt. Die Anzahl der gezeigten Adressenleitungen ist neun, und die Anzahl der gezeigten Bus-Master ist zwei, aber die Offenbarung ist hinsichtlich beider dieser Aspekte nicht beschränkt.
  • Die Adressbit-Permutationsschaltung 620 umfasst einen Multiplexer 622, einen Permutationsselektor 624 und einen optionalen Segmentselektor 626 (nachfolgend mit Bezug auf 6B beschrieben). Der Multiplexer 622 empfängt von Adressenleitungen Adressbits A6 A5 A4 A3 A2 A1, die die Blöcke identifizieren, in die Daten geschrieben bzw. aus denen Daten gelesen werden sollen. Der Permutationselektor 624 ist dafür ausgelegt, den Multiplexer 622 unter Verwendung einer Permutationszahl zu steuern, die eine bestimmte Permutations-, Busmaster- und Lese-/Schreiboperation identifiziert, auf der Basis von Steuerinformationen, die er über Steuerleitungen empfängt. Es ist jede Kombination von Permutation-, Busmaster- und Lese-/Schreiboperation möglich.
  • Während eines Speicherzugriffs wird nur einer der Bus-Master ausgewählt, um es einer damit gekoppelten Vorrichtung zu ermöglichen, den Speicher 610 zu adressieren. Bei dieser konkreten beispielhaften Ausführungsform wählt der Multiplexer 622 zwischen dem Busmaster y zugewiesener Permutation x und dem Busmaster 0 zugewiesener Permutation 0 aus. Wie oben besprochen, können Daten in einer Reihenfolge geschrieben und in einer anderen Reihenfolge gelesen werden. Genauer gesagt, können Daten zuerst auf verschachtelte Weise unter Verwendung des Busmasters y mit unpermutierten Adressbits auf verschachtelte Weise geschrieben werden und dann unter Verwendung des Busmasters 0 durch Permutieren der Adressbits auf entschachtelte Weise aus Speicher gelesen werden.
  • Die Adressbit-Permutationsschaltung 620 ist dafür ausgelegt, Blöcke von Daten, die durch eine Adresse mit einer Größe von 2N Byte identifiziert werden, virtuell umzuordnen, wobei N eine Anzahl höchstwertiger Bit der Adressbits repräsentiert, die nicht Permutation unterzogen werden. Mit Bezug auf 6 wird A0 keiner Permutation unterzogen, und somit ist die Größe jedes der Datenblöcke 21 Byte oder 16 Bit, wobei 1 Byte 8 Bit ist. Würden A1 und A1 keiner Permutation unterzogen, wäre die Größe jedes der Datenblöcke 22 Byte oder 32 Bit. Die Datenblockgrößen können deshalb 8 Bit, 16 Bit, 32 Bit, 64 Bit usw. sein.
  • 6B zeigt ein Blockschaltbild des Permutationsselektors 624 von 6A gemäß einer beispielhaften Ausführungsform. Der Permutationsselektor 624 kann eine bestimmte Permutation auswählen und auf eine Weise, die entweder dynamisch oder statisch ist, eine entsprechende Permutationszahl ausgeben.
  • Während dynamischer Auswahl erfolgt eine Permutationsauswahl für jeden Speicherzugriff. Die Auswahleinheit B wählt Informationen aus der Auswahleinheit A aus; die Auswahleinheit A wählt eine bestimmte Permutation, einen bestimmten Busmaster und eine bestimmte Lese-/Schreiboperation aus einer Nachschlagetabelle gemäß Busmaster-Tag- und Leser-/Schreibsteuerinformationen aus, die über Steuerleitungen empfangen werden. Es gibt viele Arten zum Organisieren von Permutationsoptionen in der Nachschlagetabelle, und somit ist die Offenbarung nicht auf die in 6B gezeigte bestimmte Tabelle beschränkt.
  • Als Alternative erfolgt während statischer Auswahl dieselbe Permutationsauswahl nicht für jeden Speicherzugriff, sondern bleibt stattdessen dieselbe. Der Permutationsselektor 624 wählt statisch eine Permutation über Software unter Verwendung eines statischen Steuerbit(s) aus. In diesem Fall wählt die Auswahleinheit B SW-Permutation aus, wobei in diesem Fall die Auswahleinheit A für die Busmaster-Tag-, Lese-/Schreibsteuerinformationen und die Nachschlagetabelle ignoriert wird.
  • Die Permutationsauswahl-Zahleinstellung wird im Allgemeinen für alle Speicherblöcke in dem Speicher 610 gespiegelt, weil sich die Adressen wiederholen. Dieser Spiegelungseffekt ist nicht immer erwünscht. Es kann der Fall sein, dass in bestimmten Fällen Adressbits nur für bestimmte Segmente des Speichers permutiert werden sollen, wobei ein Segment als ein oder mehrere Speicherblöcke definiert wird. Ein (in 6A gezeigter) Segmentselektor 626 wählt deshalb gegebenenfalls etwaige während des Speicherzugriffs einer Adressbitpermutation zu unterziehende Segmente aus und der Zugriff auf die verbleibenden Segmente erfolgt in ihrer Vorgabereihenfolge. Diese Segmentauswahl erfolgt unter Verwendung der N höchstwertigen Bit (MSB), wie etwa A7 und A8, wie in 6A gezeigt.
  • 7 zeigt ein Flussdiagramm für ein Verfahren zum Adressieren eines Speichers mit einem Array von Blöcken, die durch Verwendung von Adressbits adressierbar sind, gemäß einer beispielhaften Ausführungsform.
  • Anfänglich werden im Schritt 710 Adressbits bereitgestellt.
  • Im Schritt 730 werden die Adressbits so permutiert, dass während eines Speicherzugriffs Blöcke von Daten virtuell umgeordnet werden.
  • Gegebenenfalls werden im Schritt 720 etwaige virtuell umzuordnende Speichersegmente so ausgewählt, dass weniger als alle der Blöcke von Daten umgeordnet werden. Wie oben mit Bezug auf 6B besprochen, verhindert dieses Auswahlmerkmal eine Spiegelung der Permutation für alle Speicherblöcke im gesamten Speicher.
  • Bei vielen Anwendungen wird Datenverschachtelung/-entschachtelung verwendet. Zu Beispielen gehören Radaranwendungen, wobei vielleicht acht ADC im Reigenverfahren gelesen werden. Die Daten aus jedem der ADC werden verschachtelt (z. B. 12345678 12345678 12345678 12345678) und müssen vor FFT-Verarbeitung entschachtelt werden (z. B. 1111 2222 3333 4444 5555 6666 7777 8888). Vor einer zweiten FFT-Verarbeitung müssen Daten dann nochmals umgeordnet werden. Die Datenumordnung wird durch Permutieren der Adressbits des Speichers erreicht. Das Umordnen von Daten auf diese Weise vermeidet Adressensprünge und -inkremente, die mehrere Verarbeitungszyklen erfordern. Der Speicher kann deshalb zur Einspeisung in FFT-Beschleuniger unter Verwendung von DMA mit Burstzugriff effizienter kopiert werden.
  • Obwohl das Obige in Verbindung mit beispielhaften Ausführungsformen beschrieben wurde, versteht sich, dass der Ausdruck „beispielhaft” lediglich als Beispiel gemeint ist und nicht als Bestes oder Optimales. Dementsprechend soll die Offenbarung Alternativen, Modifikationen und Äquivalente abdecken, die in den Schutzumfang der Offenbarung aufgenommen werden können.
  • Obwohl hier spezifische Ausführungsformen dargestellt und beschrieben wurden, versteht sich für Durchschnittsfachleute, dass vielfältige alternative und/oder äquivalente Implementierungen die gezeigten und beschriebenen spezifischen Ausführungsformen ersetzen können, ohne vom Schutzumfang der vorliegenden Anmeldung abzuweichen. Die vorliegende Anmeldung soll jegliche Anpassungen oder Abwandlungen der hier besprochenen spezifischen Ausführungsformen abdecken.

Claims (20)

  1. Vorrichtung, umfassend: – einen Speicher, der ein Array von Blöcken aufweist, die unter Verwendung von Adressbits adressierbar sind; und – eine Permutationsschaltung, die mit dem Speicher gekoppelt und dafür ausgelegt ist, die Adressbits so zu permutieren, dass während eines Speicherzugriffs Blöcke von Daten virtuell umgeordnet werden.
  2. Vorrichtung nach Anspruch 1, wobei das Array von Blöcken ein eindimensionales Array von Blöcken ist.
  3. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei das Array von Blöcken ein zweidimensionales Array von Blöcken ist.
  4. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Permutationsschaltung dafür ausgelegt ist, die Adressbits durch Vertauschen von Zeilenadressbits mit Spaltenadressbits zu permutieren.
  5. Vorrichtung nach Anspruch 1, wobei das Array von Blöcken ein dreidimensionales Array von Blöcken ist.
  6. Vorrichtung nach Anspruch 5, wobei die Permutationsschaltung dafür ausgelegt ist, die Adressbits durch Austauschen von Adressbits von mindestens zwei der drei Dimensionen zu permutieren.
  7. Vorrichtung nach Anspruch 1, wobei das Array von Blöcken ein Hyperwürfelarray von Blöcken mit mehr als drei Dimensionen ist.
  8. Vorrichtung nach Anspruch 1, wobei jede Dimension des Arrays von Blöcken 2N Blöcke aufweist, wobei N eine Zahl der jeweiligen Dimension ist.
  9. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Permutationsschaltung Folgendes umfasst: – einen Permutationsselektor, der dafür ausgelegt ist, eine Permutation auszuwählen; und – einen Multiplexer, der dafür ausgelegt ist, auf der Basis der ausgewählten Permutation einen von mehreren Busmastern auszuwählen, wobei nur einer der mehreren Busmaster ausgewählt wird, um es einer mit dem ausgewählten Busmaster gekoppelten Vorrichtung zu ermöglichen, auf den Speicher zuzugreifen.
  10. Vorrichtung nach Anspruch 9, wobei die Auswahl eines ersten der mehreren Busmaster dazu führt, dass die Adressbits permutiert werden, und die Auswahl eines zweiten der mehreren Busmaster dazu führt, dass die Adressbits unpermutiert bleiben.
  11. Vorrichtung nach Anspruch 10, wobei die Auswahl des ersten der mehreren Busmaster dazu führt, dass Daten geschrieben oder gelesen werden, und die Auswahl des zweiten der mehreren Busmaster dazu führt, dass Daten das Andere von geschrieben oder gelesen werden.
  12. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Permutationsschaltung einen Segmentselektor umfasst, der dafür ausgelegt ist, jegliche virtuell umzuordnende Segmente des Speichers auszuwählen, so dass weniger als alle Blöcke von Daten umgeordnet werden.
  13. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Permutationsschaltung dafür ausgelegt ist, virtuell Blöcke mit einer Größe von 2N Byte umzuordnen, wobei N eine Anzahl niedrigstwertiger Bits der Adressbits, die keiner Permutation unterzogen werden, repräsentiert.
  14. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Permutationsschaltung eine Nachschlagetabelle von Permutationsoptionen umfasst.
  15. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei sich die Permutationsschaltung auf einem Chip befindet und der Speicher ein externer Speicher ist, der sich außerhalb des Chips befindet.
  16. Verfahren zum Zugreifen auf einen Speicher, der ein Array von Blöcken aufweist, die unter Verwendung von Adressbits adressierbar sind, wobei das Verfahren Folgendes umfasst: – Bereitstellen der Adressbits; und – Permutieren der Adressbits dergestalt, dass während eines Speicherzugriffs Blöcke von Daten virtuell umgeordnet werden.
  17. Verfahren nach Anspruch 16, wobei das Array von Blöcken ein zweidimensionales Array von Blöcken ist und der Permutationsschritt ein Vertauschen von Zeilenadressbits mit Spaltenadressbits umfasst.
  18. Verfahren nach Anspruch 17, wobei das Array von Blöcken ein dreidimensionales Array von Blöcken ist und der Permutationsschritt ein Vertauschen von Adressbits von mindestens zwei der drei Dimensionen umfasst.
  19. Verfahren nach einem der Ansprüche 17 oder 18, umfassend ein Auswählen jeglicher virtuell umzuordnender Segmente des Speichers, so dass weniger als alle Blöcke von Daten umgeordnet werden.
  20. Vorrichtung, umfassend: – einen Speicher, der ein Array von Blöcken aufweist, die unter Verwendung von Adressbits adressierbar sind; und – ein Permutationsmittel zum Permutieren der Adressbits dergestalt, dass während eines Speicherzugriffs Blöcke von Daten virtuell umgeordnet werden.
DE102014010659.4A 2013-07-17 2014-07-17 Speicherzugriff unter verwendung von adressen mit permutation Active DE102014010659B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/944,254 US9323654B2 (en) 2013-07-17 2013-07-17 Memory access using address bit permutation
US13/944,254 2013-07-17

Publications (2)

Publication Number Publication Date
DE102014010659A1 true DE102014010659A1 (de) 2015-01-22
DE102014010659B4 DE102014010659B4 (de) 2022-10-13

Family

ID=52131461

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014010659.4A Active DE102014010659B4 (de) 2013-07-17 2014-07-17 Speicherzugriff unter verwendung von adressen mit permutation

Country Status (5)

Country Link
US (1) US9323654B2 (de)
JP (1) JP5844433B2 (de)
KR (1) KR101654416B1 (de)
CN (1) CN104298608B (de)
DE (1) DE102014010659B4 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107085452B (zh) * 2016-02-13 2021-01-15 杭州海存信息技术有限公司 基于三维印录存储器(3d-p)的处理器
US10176109B2 (en) 2017-04-20 2019-01-08 Oracle International Corporation Permuted memory access mapping
CN112015258B (zh) * 2019-05-31 2022-07-15 瑞昱半导体股份有限公司 处理系统与控制方法
TWI789549B (zh) * 2019-09-12 2023-01-11 晶豪科技股份有限公司 記憶體晶片,記憶體模組以及用來假性存取其記憶庫的方法
CN112783805B (zh) * 2019-11-05 2023-11-21 晶豪科技股份有限公司 内存芯片,内存模块以及用来假性存取其记忆库的方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5737925A (en) 1980-08-14 1982-03-02 Matsushita Electric Ind Co Ltd High-speed hadamard converter
JPS5952286A (ja) 1982-09-20 1984-03-26 株式会社東芝 ビデオram書込み制御方式
US4727474A (en) 1983-02-18 1988-02-23 Loral Corporation Staging memory for massively parallel processor
US4689823A (en) 1984-01-04 1987-08-25 Itek Corporation Digital image frame processor
JPS61286741A (ja) 1985-06-13 1986-12-17 Yokogawa Medical Syst Ltd Nmrイメ−ジング装置
EP0257987B1 (de) * 1986-08-22 1991-11-06 Fujitsu Limited Halbleiter-Speicheranordnung
US4882683B1 (en) 1987-03-16 1995-11-07 Fairchild Semiconductor Cellular addrssing permutation bit map raster graphics architecture
JPH0244445A (ja) 1988-08-05 1990-02-14 Sanyo Electric Co Ltd データ処理装置
US5247632A (en) * 1989-01-23 1993-09-21 Eastman Kodak Company Virtual memory management arrangement for addressing multi-dimensional arrays in a digital data processing system
US5095525A (en) * 1989-06-26 1992-03-10 Rockwell International Corporation Memory transformation apparatus and method
FR2652926B1 (fr) * 1989-10-06 1994-07-08 Bull Sa Procede d'exploitation de la memoire dans un systeme informatique du type a adressage virtuel et dispositif pour la mise en óoeuvre dudit procede.
JPH06295335A (ja) 1993-04-08 1994-10-21 Matsushita Electric Ind Co Ltd 画像データ記憶装置
US5530824A (en) * 1994-04-04 1996-06-25 Motorola, Inc. Address translation circuit
US6604166B1 (en) 1998-12-30 2003-08-05 Silicon Automation Systems Limited Memory architecture for parallel data access along any given dimension of an n-dimensional rectangular data array
WO2001063438A1 (en) * 2000-02-24 2001-08-30 Bops Incorporated Methods and apparatus for providing bit-reversal and multicast functions utilizing dma controller
JP2002312344A (ja) 2001-04-09 2002-10-25 Ando Electric Co Ltd ビットリバースアクセス回路
JP2002366425A (ja) 2001-06-05 2002-12-20 Hitachi Ltd アドレス変換回路を有するデータ処理装置
JP2003084751A (ja) 2001-07-02 2003-03-19 Hitachi Ltd 表示制御装置およびマイクロコンピュータならびにグラフィックシステム
US6766433B2 (en) * 2001-09-21 2004-07-20 Freescale Semiconductor, Inc. System having user programmable addressing modes and method therefor
US7170432B2 (en) 2002-12-16 2007-01-30 Telecom Italia S.P.A. Addresses generation for interleavers in turbo encoders and decoders
US8885761B2 (en) 2003-03-25 2014-11-11 Sony Corporation Data processing apparatus and method
US7305593B2 (en) * 2003-08-26 2007-12-04 Lsi Corporation Memory mapping for parallel turbo decoding
KR100608913B1 (ko) * 2004-11-10 2006-08-09 한국전자통신연구원 직교주파수분할다중(ofdm) 송신기에서의 인터리빙장치 및 방법
US20070240139A1 (en) 2006-03-28 2007-10-11 Kyocera Mita Corporation Image processing device and image processing method
JP2007293606A (ja) 2006-04-25 2007-11-08 Matsushita Electric Ind Co Ltd 画像処理装置
KR100868451B1 (ko) * 2007-02-22 2008-11-11 삼성전자주식회사 3-d 주소 매핑을 이용한 메모리 접근 방법
US8194782B2 (en) * 2008-02-14 2012-06-05 Via Technologies, Inc. Grouping bits interleaving apparatus and method thereof
DE102013005901A1 (de) 2012-09-18 2014-03-20 Bayerische Kabelwerke Ag Erdungskabel, insbesondere Bahnerdungskabel zur Erdung von Eisenbahneinrichtungen

Also Published As

Publication number Publication date
JP5844433B2 (ja) 2016-01-20
KR101654416B1 (ko) 2016-09-05
DE102014010659B4 (de) 2022-10-13
US20150026420A1 (en) 2015-01-22
CN104298608A (zh) 2015-01-21
KR20150009934A (ko) 2015-01-27
JP2015022765A (ja) 2015-02-02
US9323654B2 (en) 2016-04-26
CN104298608B (zh) 2017-08-15

Similar Documents

Publication Publication Date Title
DE69232458T2 (de) Programmierbare Zeitsteuerung für Speicher
DE69124905T2 (de) Datenverarbeitungsvorrichtung zur dynamischen Zeiteinstellung in einem dynamischen Speichersystem
DE3804938C2 (de) Bildverarbeitungseinrichtung
DE102014010659B4 (de) Speicherzugriff unter verwendung von adressen mit permutation
DE102013014168B4 (de) Kachel-basiertes verschachteln und entschachteln für digitale signalverarbeitung
DE68926043T2 (de) Mehrprozessor-Computersystem
DE3885780T2 (de) Adressierung in einer Computer-Anordnung.
DE102007054852A1 (de) Signalwandler zum Erfüllen einer Funktion
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE2310631B2 (de) Speicherhierarchie fur ein Datenverarbeitungssystem
DE69123987T2 (de) Stossbetrieb für Mikroprozessor mit externem Systemspeicher
DE69122520T2 (de) Vielfachbus-Systemspeicherarchitektur
DE69130932T2 (de) Speichersystem
DE102013014246A1 (de) Speicheradressgenerierung für digitale Signalverarbeitung
DE2364254B2 (de) Schaltungsanordnung fuer datenverarbeitende geraete
DE2758829C2 (de) Datenverarbeitungsanlage mit mehreren Prozessoren
DE2718551A1 (de) Adressenumsetzvorrichtung in einer datenverarbeitungsvorrichtung
DE69331027T2 (de) Drehungsschaltung für numerische Bilder
DE602004008712T2 (de) Speicherbandbreiten-Steuereinrichtung
EP0739509A1 (de) Anordnung mit master- und slave-einheiten
DE2539929A1 (de) Rechnersystem mit busstruktur
DE112015006089T5 (de) A/D-Wandler, D/A-Wandler und speicherprogrammierbare Steuerung
DE10110567B4 (de) Datenverarbeitungssystem mit einstellbaren Takten für unterteilte synchrone Schnittstellen
DE60209761T2 (de) Anschluss mehrerer prozessoren auf externen speicher mit burst mode
DE68924891T2 (de) Datentransfer zwischen Speicher.

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final