DE102021203225A1 - Vorrichtung und Verfahren zur Ermittlung von Adresswerten - Google Patents

Vorrichtung und Verfahren zur Ermittlung von Adresswerten Download PDF

Info

Publication number
DE102021203225A1
DE102021203225A1 DE102021203225.7A DE102021203225A DE102021203225A1 DE 102021203225 A1 DE102021203225 A1 DE 102021203225A1 DE 102021203225 A DE102021203225 A DE 102021203225A DE 102021203225 A1 DE102021203225 A1 DE 102021203225A1
Authority
DE
Germany
Prior art keywords
address
values
value
input
exemplary embodiments
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
DE102021203225.7A
Other languages
English (en)
Inventor
Jens Froemmer
Axel Aue
Nico Bannow
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102021203225.7A priority Critical patent/DE102021203225A1/de
Priority to US17/696,135 priority patent/US20220318131A1/en
Priority to CN202210317953.5A priority patent/CN115145835A/zh
Publication of DE102021203225A1 publication Critical patent/DE102021203225A1/de
Pending legal-status Critical Current

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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Vorrichtung zur Ermittlung von Adresswerten, beispielsweise für einen Zugriff auf eine Speichereinrichtung, wobei die Vorrichtung einen Eingangswertspeicher zur zumindest zeitweisen Speicherung von wenigstens zwei Eingangswerten aufweist, wobei die Vorrichtung dazu ausgebildet ist, zumindest zeitweise basierend auf den wenigstens zwei Eingangswerten wenigstens einen Adresswert zu ermitteln.

Description

  • Stand der Technik
  • Die Offenbarung betrifft eine Vorrichtung zur Ermittlung von Adresswerten.
  • Die Offenbarung betrifft ferner ein Verfahren zur Ermittlung von Adresswerten.
  • Offenbarung der Erfindung
  • Beispielhafte Ausführungsformen beziehen sich auf eine Vorrichtung zur Ermittlung von Adresswerten, beispielsweise für einen Zugriff auf eine Speichereinrichtung, wobei die Vorrichtung einen Eingangswertspeicher zur zumindest zeitweisen Speicherung von wenigstens zwei Eingangswerten aufweist, wobei die Vorrichtung dazu ausgebildet ist, zumindest zeitweise basierend auf den wenigstens zwei Eingangswerten wenigstens einen Adresswert zu ermitteln.
  • Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung auch zur Ermittlung von anderen Werten als den genannten Adresswerten verwendbar.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung wenigstens eine Eingangsschnittstelle zum Empfang wenigstens eines ersten Eingangswerts bzw. der wenigstens zwei Eingangswerte aufweist, beispielsweise von einer weiteren, z.B. externen, Einheit.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung wenigstens eine Adresswertermittlungseinrichtung aufweist, die dazu ausgebildet ist, den Adresswert zu ermitteln.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung wenigstens eine Ausgangsschnittstelle zur Ausgabe des wenigstens einen Adresswerts aufweist. Der Adresswert ist z.B. durch eine weitere Einheit dazu verwendbar, eine Speicheradresse in einem Adressraum einer Speichereinrichtung auszuwählen bzw. anzugeben, beispielsweise um Daten an die Speicheradresse zu schreiben und/oder um Daten von der Speicheradresse zu lesen.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise wenigstens einen neuen Eingangswert zu ermitteln, beispielsweise basierend auf wenigstens einem ersten Eingangswert der wenigstens zwei Eingangswerte bzw. basierend auf den wenigstens zwei Eingangswerten, und, optional, wenigstens einen in dem Eingangswertspeicher gespeicherten Eingangswert mit dem neuen Eingangswert zu überschreiben.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung wenigstens eine Eingangswertermittlungseinrichtung aufweist, die dazu ausgebildet ist, zumindest zeitweise wenigstens einen bzw. den wenigstens einen neuen Eingangswert zu ermitteln, beispielsweise basierend auf wenigstens einem ersten Eingangswert der wenigstens zwei Eingangswerte bzw. basierend auf den wenigstens zwei Eingangswerten.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise a) wenigstens einen ersten Eingangswert der wenigstens zwei Eingangswerte bzw. b) die wenigstens zwei Eingangswerte auszuwerten, wobei ein Auswertungsergebnis erhalten wird, und basierend auf dem Auswertungsergebnis zumindest zeitweise wenigstens eines der folgenden Elemente zu beeinflussen: a) das Ermitteln des wenigstens einen Adresswerts, b) den wenigstens einen Adresswert, c) Adresswertermittlungseinrichtung, d) das Ermitteln des neuen Eingangswerts, e) das Überschreiben des wenigstens einen in dem Eingangswertspeicher gespeicherten Eingangswerts mit dem neuen Eingangswert.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung wenigstens eine Auswertungseinrichtung aufweist, die dazu ausgebildet ist, zumindest zeitweise a) wenigstens einen ersten Eingangswert der wenigstens zwei Eingangswerte bzw. b) die wenigstens zwei Eingangswerte auszuwerten, wobei ein Auswertungsergebnis erhalten wird, und basierend auf dem Auswertungsergebnis zumindest zeitweise wenigstens eines der folgenden Elemente zu beeinflussen: a) das Ermitteln des wenigstens einen Adresswerts, b) den wenigstens einen Adresswert, c) Adresswertermittlungseinrichtung, d) das Ermitteln des neuen Eingangswerts, e) das Überschreiben des wenigstens einen in dem Eingangswertspeicher gespeicherten Eingangswerts mit dem neuen Eingangswert.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung wenigstens eine Konfigurationseinrichtung aufweist, die dazu ausgebildet ist, zumindest zeitweise eine Konfiguration wenigstens eines der folgenden Elemente zu beeinflussen und/oder zu verändern: a) Vorrichtung, b) Eingangswertspeicher, c) Adresswertermittlungseinrichtung, d) Eingangswertermittlungseinrichtung, e) Auswertungseinrichtung, f) Eingangsschnittstelle, g) Ausgangsschnittstelle, wobei beispielsweise das Verändern zumindest zeitweise basierend auf wenigstens einem statischen Konfigurationsparameter und/oder basierend auf wenigstens einem dynamischen Konfigurationsparameter ausgeführt wird.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise Adresswerte gemäß einer ersten, beispielsweise linearen, Adressierungsart zu ermitteln, beispielsweise indem, z.B. beginnend mit einem Start-Index, z.B. bei gleichbleibendem Offset, der Adresswert gleichmäßig um den Offset, also linear, bis zum Erreichen eines End-Indizes erhöht wird.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise Adresswerte gemäß einer ersten, beispielsweise nicht-linearen, Adressierungsart zu ermitteln, beispielsweise indem, beginnend mit einem Start-Wert, dieser Adresswert nicht-linear, beispielsweise durch fortlaufendes Multiplizieren mit 2 bzw. Linksschieben um 1, z.B. bis zum Erreichen eines Ende-Indizes und/oder nach Durchführung einer festgelegten Anzahl erzeugter Adresswerte, erhöht wird.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise Adresswerte gemäß einer ersten, beispielsweise komplexen, Adressierungsart zu ermitteln und zumindest zeitweise Adresswerte gemäß einer zweiten, beispielsweise komplexen, Adressierungsart zu ermitteln.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung zur Ermittlung bzw. Erzeugung und/oder Kombination einer Mehrzahl von sich linear und/oder nicht-linear ändernden Adresswerten ausgebildet ist.
  • Bei weiteren beispielhaften Ausführungsformen weist eine komplexe Adressierungsart die Ermittlung bzw. Erzeugung und Kombination einer Mehrzahl von sich linear und/oder nicht-linear ändernden Adresswerten auf, die sich z.B. durch die Kombination beispielsweise zumindest zeitweise nicht-linear ändern, oder die sich zumindest zeitweise linear und zumindest zeitweise nicht-linear ändern.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise einen als Offset verwendeten ersten Adresswert gemäß einer ersten Adressierungsart zu ermitteln, so dass dieser Offset insbesondere nicht konstant bleibt, und zumindest zeitweise zweite Adresswerte gemäß einer zweiten Adressierungsart zu ermitteln, so dass der Offset als erster Adresswert mit dem zweiten Adresswert zumindest zeitweise kombiniert wird, beispielsweise durch fortlaufende Addition, so dass im Zusammenwirken der beiden Adressierungsarten ein nicht-lineares Verhalten erreicht wird.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise einen als Offset verwendeten ersten Adresswert gemäß einer ersten Adressierungsart zu ermitteln, so dass dieser Offset sich insbesondere linear ändert, und zumindest zeitweise zweite Adresswerte gemäß einer zweiten Adressierungsart zu ermitteln, so dass der Offset als zweiter Adresswert mit dem ersten Adresswert zumindest zeitweise kombiniert wird, beispielsweise durch fortlaufendes Linksschieben, so dass im Zusammenwirken der beiden Adressierungsarten ein nicht-lineares Verhalten erreicht wird.
  • Bei weiteren beispielhaften Ausführungsformen können mittels wenigstens einer komplexen Adressierungsart, wie sie zumindest zeitweise durch die Vorrichtung ausführbar bzw. nutzbar ist, beispielsweise komplexe Zugriffsmuster z.B. auf eine Speichereinrichtung realisiert werden, die beispielsweise charakterisierbar sind durch sich linear und nicht-linear ändernde Start-Indizes, Ende-Indizes und Offsets (z.B. für jeden der ermittelten bzw. erzeugten Adresswerte), z.B. bei einem einfachen oder mehrfachen Durchlaufen derselben Dimension eines mehrdimensionalen Feldes mit z.B. jeweils gleichartigen oder unterschiedlichen Adresswerten.
  • Bei weiteren beispielhaften Ausführungsformen werden als komplexe Zugriffsmuster eine Verkettung von Indizes und/oder Offsets verschiedener Dimensionen und/oder eine Modifikation von Indizes und/oder Offsets (z.B. im Sinne von Eingangswerten) durch Indizes und/oder Offsets derselben und/oder anderer Dimensionen und/oder durch z.B. Konstanten verstanden.
  • Bei weiteren beispielhaften Ausführungsformen werden als beispielhafte Zugriffsmuster auch die Änderung von Indizes und/oder Offset(s) in Abhängigkeit z.B. von Vergleichen umfasst. In diese Vergleiche können bei weiteren beispielhaften Ausführungsformen insbesondere Indizes und/oder Offsets und/oder Konstanten einbezogen werden. Bei weiteren beispielhaften Ausführungsformen können auch von extern zu der Vorrichtung eingehende Daten (z.B. in Form wenigstens eines Eingangswerts) in die Vergleiche eingehen.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise Adresswerte gemäß einer ersten, beispielsweise linearen, Adressierungsart zu ermitteln und zumindest zeitweise Adresswerte gemäß einer zweiten, beispielsweise linearen, Adressierungsart zu ermitteln, die z.B. von der ersten linearen Adressierungsart verschieden ist.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, diese mindestens zwei „linearen“ Adresswerte der mindestens zwei linearen Adressierungsarten miteinander zu einer weiteren, komplexen, Adressierungsart z.B. so zu kombinieren so dass insbesondere ein weiterer, komplexer, nicht-linearer, Adresswert ermittelt wird.
  • Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung dazu ausgebildet eine, z.B. direkte, Adressberechnung von Adresswerten z.B. für Lade-/Speichereinheiten in Hardware (also z.B. vollständig in Hardware, ohne Nutzung eines Computerprogramms bzw. generell Software oder Firmware) auszuführen, beispielsweise in einer (z.B. mittels der Konfigurationseinrichtung) konfigurierbaren Art und Weise.
  • Dies ermöglicht bei weiteren beispielhaften Ausführungsformen z.B. die Bereitstellung einer Recheneinrichtung (z.B. Mikrocontroller, Beschleuniger-Hardware zum Auswerten bzw. Berechnen z.B. von (tiefen) künstlichen neuronalen Netzen), die einen vorgebbaren Algorithmus z.B. in Echtzeit ausführen kann, und die, z.B. unter Nutzung der Vorrichtung gemäß den Ausführungsformen, Adresswerte, z.B. gemäß komplexen Zugriffsmustern auf einen Speicher, für Zugriffe auf den Speicher, z.B. ebenfalls in Echtzeit, bereitstellen kann. Dadurch ist bei weiteren beispielhaften Ausführungsformen sichergestellt, dass die Recheneinrichtung z.B. für die Ausführung des Algorithmus verwendbare Daten, die z.B. gemäß den komplexen Zugriffsmustern aus dem Speicher gelesen und/oder in den Speicher geschrieben werden, ausreichend schnell, beispielsweise in Echtzeit, also z.B. in vergleichbarer Geschwindigkeit, wie die Recheneinrichtung den Algorithmus abarbeitet, erhält bzw. schreiben kann.
  • Mit anderen Worten ist es bei weiteren beispielhaften Ausführungsformen möglich, mittels der Vorrichtung zu einem Zeitpunkt der Ausführung eines Algorithmus auch komplexe Zugriffsmuster auf den Speicher direkt, also nativ, zu berechnen.
  • Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung dazu ausgebildet, je Takt eines Taktsignals einen neuen Adresswert zu erzeugen.
  • Bei weiteren beispielhaften Ausführungsformen kann die Vorrichtung gemäß den Ausführungsformen z.B. auch Teil wenigstens einer Lade-/Speichereinheit sein, also z.B. innerhalb der Lade-/Speichereinheit angeordnet bzw. auf demselben (Halbleiter-)Substrat wie die Lade-/Speichereinheit angeordnet sein.
  • Bei weiteren beispielhaften Ausführungsformen kann die Vorrichtung gemäß den Ausführungsformen sich auch außerhalb der Lade-/Speichereinheit befinden, jedoch z.B. ganzheitlich mit der Lade-/Speichereinheit zusammenwirken.
  • Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung dazu ausgebildet, redundante Teilberechnungen zu vermeiden, aber z.B. individuelle Adresswerte je Lade-/Speichereinheit zu berechnen. Dies wird bei weiteren beispielhaften Ausführungsformen z.B. durch eine hierarchische Struktur und/oder Kopplung von Komponenten der Vorrichtung ermöglicht.
  • Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung dazu ausgebildet, Teilberechnungen vorzunehmen, die z.B. von mehreren individuellen Adresswerteberechnungen je Lade-/Speichereinheit verwendet werden können, wodurch z.B. redundante Teilberechnungen in den mehreren individuellen Adresswerteberechnungen je Lade-/Speichereinheit vermeidbar sind. Dies wird bei weiteren beispielhaften Ausführungsformen z.B. durch eine hierarchische Struktur und/oder Kopplung von Komponenten der Vorrichtung ermöglicht.
  • Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung dazu ausgebildet, in flexibler, beispielsweise frei konfigurierbarer, Art und Weise eine Vielzahl unterschiedlicher komplexer Adressberechnungen (Ermittlung von Adresswerten gemäß komplexer Adressierungsarten) auszuführen.
  • Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung, beispielsweise flexibel, skalierbar. Bei weiteren beispielhaften Ausführungsformen kann die Vorrichtung z.B. in einem Hardware-Beschleuniger, z.B. zur Auswertung von neuronalen Netzen, vorgesehen sein, wobei z.B. eine konkrete Umsetzung, z.B. Parametrierung, der Hardware-Architektur der Vorrichtung festlegbar ist, beispielsweise im Sinne wenigstens eines der folgenden Elemente: a) gewählte Hardware-Maßnahmen (z.B. Anzahl und Bitbreite der Eingangswerte, Anzahl und Bitbreite von Eingangswerte-Schnittstellen, Anzahl und Bitbreite von Ausgabewerte-Schnittstellen, Möglichkeiten zur Auswertung der Eingangswerte, Möglichkeiten zur Ermittlung der Auswertungsergebnisse, Möglichkeiten zur Ermittlung der Adresswerte, Möglichkeiten zur Ermittlung neuer Eingangswerte, Möglichkeiten zum Überschreiben der in den Eingangswertspeichern gespeicherten Eingangswerte mit neuen Eingangswerten, Anzahl sowie jeweils spezielle Ausprägung einzelner kombinierbarer Einheiten zur Adresswertermittlung, etc.), b) Konfigurierbarkeit (z.B. unter Verwendung von wenigstens einem der vorstehend beispielhaft genannten Aspekte bzw. Ausführungsformen, also beispielsweise spezifisch einstellbar je Berechnung bzw. Algorithmus), c) mögliche Zugriffsmuster auf Speicher, also z.B. mögliche Muster für die Adresswertermittlung, d) resultierender Bauraum, z.B. Fläche, einer Implementierung der Vorrichtung bzw. einer Kombination der Vorrichtung mit dem Zielsystem, z.B. dem Hardware-Beschleuniger.
  • Bei weiteren beispielhaften Ausführungsformen ist mittels einer Parametrierung einer konkreten Hardware-Architektur festlegbar, welche Möglichkeiten der Adresswertbildung („Adressierungsmöglichkeiten“) statisch, z.B. festverdrahtet, eingestellt sind, z.B. einschließlich der ggf. vorhandenen dynamischen Einstellmöglichkeiten zur Laufzeit der Vorrichtung.
  • Bei weiteren beispielhaften Ausführungsformen werden als „statische Konfiguration“ unveränderliche, nicht konfigurierbare, also z.B. festverdrahtete, Hardware-Strukturen bezeichnet. Bei weiteren beispielhaften Ausführungsformen legen statische Konfigurationsparameter eine konkrete statische Konfiguration der Vorrichtung fest.
  • Bei weiteren beispielhaften Ausführungsformen werden als „dynamische Konfiguration“ einstellbare, also zur Laufzeit konfigurierbare bzw. umkonfigurierbare, z.B. nicht festverdrahtete, Hardware-Strukturen bezeichnet, die z.B. zumindest zeitweise konkret eingestellt / konfiguriert sind.
  • Bei weiteren beispielhaften Ausführungsformen legen statische Konfigurationsparameter einen Umfang / die Möglichkeiten einer dynamischen Konfiguration, z.B. zur Laufzeit, fest.
  • Bei weiteren beispielhaften Ausführungsformen wird als quasi-statische Konfiguration eine dynamische Konfiguration bezeichnet, die für die Dauer einer Teilberechnung eines Algorithmus oder des gesamten Algorithmus nicht umkonfiguriert wird.
  • Bei weiteren beispielhaften Ausführungsformen weist die Berechnung bzw. Ermittlung eines Adresswerts gemäß den Ausführungsformen z.B. die Berechnung von Adressen, Teiladressen, Indizes sowie weiterer Zugriffsarten, durch die sich einzelne Daten aus einer Anzahl von Daten (beispielsweise gespeichert in einer Speichereinrichtung) selektieren lassen, auf. Im Folgenden werden diese gemäß weiteren beispielhaften Ausführungsformen einheitlich als Adresswert bezeichnet.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass wenigstens eine Komponente der Vorrichtung dazu ausgebildet ist, zumindest zeitweise wenigstens eine der folgenden Operationen auszuführen: a) Addition, b) Subtraktion, c) arithmetisches und/oder logisches Schieben, d) Multiplikation, e) Nutzen bzw. Auswerten wenigstens einer Lookup-Tabelle, z.B. Umsetzungstabelle, f) Butterfly, g) Inverse Increment, h) Vergleiche von Zahlenwerten, z.B. Vergleiche gegenüber Null, beispielsweise größer Null und/oder kleiner Null und/oder größer gleich Null und/oder kleiner gleich Null, und/oder Vergleiche gegenüber Werten ungleich Null, i) wenigstens eine Kombination aus den vorstehend aufgeführten Operationen a), b), c), d), e), f), g), h), wobei beispielsweise als Eingangswerte für wenigstens manche der Operationen a), b), c), d), e), f), g), h), i) Variablen und/oder Konstanten verwendbar sind.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise wenigstens einen Eingangswert zu invalidieren, beispielsweise als ungültig zu erklären und/oder zu behandeln, beispielsweise sofern der mindestens eine Eingangswert invalide ist, und, optional, einen Betrieb wenigstens einer Komponente der Vorrichtung zumindest zeitweise anzuhalten, und, optional, einen bzw. den Betrieb der wenigstens einen angehaltenen Komponente der Vorrichtung fortzuführen, beispielsweise sofern der mindestens eine Eingangswert valide ist.
  • Bei einer weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest wenigstens einen Eingangswert anfänglich, z.B. nach einem Reset und/oder nach einem Zurücksetzen der Komponente, z.B. wahlweise oder stets, zu invalidieren.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise ein Schreiben von Daten in den Eingangswertspeicher und/oder ein Schreiben bzw. Überschreiben von Eingangswerten zu blockieren, beispielsweise sofern dieser Eingangswert bereits valide ist, und, optional, ein Schreiben bzw. Überschreiben von Eingangswerten beispielsweise dann durchzuführen, d.h. die Blockierung aufzuheben, wenn der Eingangswert im Laufe der Ausführung invalidiert wird / wurde.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung, beispielsweise vollständig, als Hardwareschaltung ausgebildet ist.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung als integrierte Schaltung ausgebildet ist, und dass, beispielsweise alle, Komponenten der Vorrichtung auf einem selben Substrat angeordnet sind.
  • Bei weiteren beispielhaften Ausführungsformen können auch mehrere Vorrichtungen gemäß den Ausführungsformen vorgesehen und z.B. auf demselben Substrat angeordnet sein.
  • Bei weiteren beispielhaften Ausführungsformen kann die wenigstens eine Vorrichtung z.B. auch in ein Zielsystem, z.B. eine Einrichtung zum Laden und/oder Speichern von Daten und/oder einen Baustein für Speicherdirektzugriffe (DMA, direct memory access) und/oder einen Mikrocontroller oder eine Recheneinrichtung anderen Typs integriert sein.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf eine Einrichtung zum Laden und/oder Speichern von Daten, aufweisend wenigstens eine Vorrichtung zur Ermittlung von Adresswerten gemäß den Ausführungsformen, wobei beispielsweise die Einrichtung dazu ausgebildet ist, die Vorrichtung zum Ermitteln wenigstens eines Adresswerts, beispielsweise für einen Schreibzugriff und/oder einen Lesezugriff auf eine Speichereinrichtung, zu nutzen. Bei weiteren beispielhaften Ausführungsformen kann die Einrichtung zum Laden und/oder Speichern von Daten beispielsweise mittels der wenigstens einen Vorrichtung gemäß den Ausführungsformen, beispielsweise in Echtzeit, Adresswerte für Lade- und/oder Speicheroperationen bezüglich wenigstens eines Speichers, z.B. eines, beispielsweise digitalen (z.B. bezogen auf die Speicherung von digitalen Werten), Halbleiterspeichers, ausführen.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf ein System zur Ermittlung von Adresswerten, beispielsweise für einen Zugriff auf eine Speichereinrichtung, aufweisend wenigstens zwei Vorrichtungen gemäß den Ausführungsformen.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf eine Recheneinrichtung, beispielsweise Mikrocontroller, aufweisend wenigstens eine Vorrichtung zur Ermittlung von Adresswerten gemäß den Ausführungsformen und/oder wenigstens eine Einrichtung zum Laden und/oder Speichern von Daten gemäß den Ausführungsformen und/oder wenigstens ein System gemäß den Ausführungsformen.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf ein eingebettetes System, z.B. für ein Steuergerät, beispielsweise für ein Fahrzeug, beispielsweise Kraftfahrzeug, mit wenigstens einer Vorrichtung gemäß den Ausführungsformen.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf ein Verfahren zur Ermittlung von Adresswerten, beispielsweise für einen Zugriff auf eine Speichereinrichtung, aufweisend: zumindest zeitweises Speichern von wenigstens zwei Eingangswerten in einem Eingangswertspeicher, zumindest zeitweises Ermitteln wenigstens eines Adresswerts basierend auf den wenigstens zwei Eingangswerten.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Ermitteln eines neuen Eingangswerts, beispielsweise basierend auf wenigstens einem ersten Eingangswert der wenigstens zwei Eingangswerte bzw. basierend auf den wenigstens zwei Eingangswerten, und, optional, Überschreiben wenigstens eines in dem Eingangswertspeicher gespeicherten Eingangswerts mit dem neuen Eingangswert.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung zumindest zeitweise a) wenigstens einen ersten Eingangswert der wenigstens zwei Eingangswerte bzw. b) die wenigstens zwei Eingangswerte auswertet, wobei ein Auswertungsergebnis erhalten wird, wobei die Vorrichtung basierend auf dem Auswertungsergebnis zumindest zeitweise wenigstens eines der folgenden Elemente beeinflusst: a) das Ermitteln des wenigstens einen Adresswerts, b) den wenigstens einen Adresswert, c) eine Adresswertermittlungseinrichtung, d) das Ermitteln des neuen Eingangswerts, e) das Überschreiben des wenigstens einen in dem Eingangswertspeicher gespeicherten Eingangswerts mit dem neuen Eingangswert.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf eine Verwendung der Vorrichtung gemäß den Ausführungsformen und/oder der Einrichtung zum Laden und/oder Speichern von Daten gemäß den Ausführungsformen und/oder des Systems gemäß den Ausführungsformen und/oder der Recheneinrichtung gemäß den Ausführungsformen und/oder des Verfahrens gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Ermittlung von Adresswerten, beispielsweise für einen Zugriff auf eine Speichereinrichtung, b) Ermittlung von Adresswerten gemäß unterschiedlichen, beispielsweise komplexen, Adressierungsarten, c) Versorgen einer Einrichtung zum Laden und/oder Speichern von Daten und/oder einer Recheneinrichtung mit Adresswerten für Zugriffe auf eine Speichereinrichtung, d) Ableiten von Adresswerten basierend auf anderen Adresswerten und/oder Konfigurationsdaten, e) Ermitteln von Adresswerten basierend auf wenigstens einem statischen Konfigurationsparameter, f) Ermitteln von Adresswerten basierend auf wenigstens einem dynamischen Konfigurationsparameter.
  • Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Ansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung.
  • In der Zeichnung zeigt:
    • 1A schematisch ein vereinfachtes Blockdiagramm einer Vorrichtung gemäß beispielhaften Ausführungsformen,
    • 1B schematisch ein vereinfachtes Blockdiagramm einer Vorrichtung gemäß weiteren beispielhaften Ausführungsformen,
    • 1C schematisch ein vereinfachtes Blockdiagramm einer Vorrichtung gemäß weiteren beispielhaften Ausführungsformen,
    • 2A schematisch ein vereinfachtes Flussdiagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 2B schematisch ein vereinfachtes Flussdiagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 2C schematisch ein vereinfachtes Flussdiagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 2D schematisch ein vereinfachtes Flussdiagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 2E schematisch ein vereinfachtes Flussdiagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 2F schematisch ein vereinfachtes Flussdiagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 2G schematisch ein vereinfachtes Flussdiagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 3 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
    • 4 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
    • 5 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
    • 6 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
    • 7 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
    • 8 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
    • 9 schematisch ein vereinfachtes Flussdiagramm gemäß weiteren beispielhaften Ausführungsformen,
    • 10 schematisch ein vereinfachtes Flussdiagramm gemäß weiteren beispielhaften Ausführungsformen,
    • 11 schematisch ein vereinfachtes Flussdiagramm gemäß weiteren beispielhaften Ausführungsformen,
    • 12 schematisch ein vereinfachtes Flussdiagramm gemäß weiteren beispielhaften Ausführungsformen,
    • 13 schematisch ein vereinfachtes Diagramm gemäß weiteren beispielhaften Ausführungsformen,
    • 14 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
    • 15 schematisch ein vereinfachtes Diagramm gemäß weiteren beispielhaften Ausführungsformen, und
    • 16 schematisch Aspekte von Verwendungen gemäß weiteren beispielhaften Ausführungsformen.
  • Beispielhafte Ausführungsformen, vgl. 1A, beziehen sich auf eine Vorrichtung 100 zur Ermittlung von Adresswerten, beispielsweise für einen Zugriff auf eine Speichereinrichtung 10, wobei die Vorrichtung 100 einen Eingangswertspeicher 110 zur zumindest zeitweisen Speicherung von wenigstens zwei Eingangswerten EW1, EW2 aufweist, wobei die Vorrichtung 100 dazu ausgebildet ist, zumindest zeitweise basierend auf den wenigstens zwei Eingangswerten EW1, EW2 wenigstens einen Adresswert AW1 zu ermitteln.
  • Bei weiteren beispielhaften Ausführungsformen weist der Eingangswertspeicher 110 Registerspeicher zur Speicherung der Eingangswerte EW1, EW2 auf.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung 100 wenigstens eine Eingangsschnittstelle 102a zum Empfang wenigstens eines ersten Eingangswerts bzw. der wenigstens zwei Eingangswerte EW1, EW2 aufweist, beispielsweise von einer weiteren, z.B. externen, Einheit 20.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung 100 wenigstens eine Ausgangsschnittstelle 102b zur Ausgabe des wenigstens einen Adresswerts AW1 aufweist. Der Adresswert AW1, bei dem es sich beispielsweise um einen (z.B. mehrere Binärziffern ‚0‘, ‚1‘ aufweisenden) Binärwert handelt, ist z.B. durch eine weitere Einheit 5' dazu verwendbar, eine Speicheradresse in einem Adressraum einer bzw. der Speichereinrichtung 10 auszuwählen bzw. anzugeben, beispielsweise um Daten an die Speicheradresse zu schreiben und/oder um Daten von der Speicheradresse zu lesen.
  • Bei weiteren beispielhaften Ausführungsformen, s.u. zu 1B, 1C, ist vorgesehen, dass die Vorrichtung 100 wenigstens eine Adresswertermittlungseinrichtung 120 aufweist, die dazu ausgebildet ist, den Adresswert AW1 zu ermitteln.
  • 2A zeigt schematisch ein Flussdiagramm gemäß weiteren beispielhaften Ausführungsformen. In dem optionalen Schritt 200 empfängt die Vorrichtung 100 (1A) die Eingangswerte EW1, EW2, z.B. von der Einheit 20, in Schritt 202 werden die empfangenen Eingangswerte EW1, EW2 zumindest zeitweise gespeichert, z.B. in dem Eingangswertspeicher 110, in Schritt 204 wird der wenigstens eine Adresswert AW1 basierend auf den Eingangswerten EW1, EW2 ermittelt, und in dem optionalen Schritt 206 gibt die Vorrichtung 100 den wenigstens einen Adresswert AW1 aus, z.B. an die weitere Einheit 5', die den wenigstens einen Adresswert AW1 z.B. für einen lesenden und/oder schreibenden Zugriff auf den Speicher 10 an wenigstens einer Speicheradresse verwenden kann, wobei die wenigstens eine Speicheradresse durch den wenigstens einen Adresswert AW1 charakterisierbar ist.
  • Bei weiteren beispielhaften Ausführungsformen, 2B, ist vorgesehen, dass die Vorrichtung 100 dazu ausgebildet ist, zumindest zeitweise einen neuen Eingangswert EW-neu zu ermitteln 210, beispielsweise basierend auf wenigstens einem ersten Eingangswert EW1 der wenigstens zwei Eingangswerte EW1, EW2 bzw. basierend auf den wenigstens zwei Eingangswerten EW1, EW2, und, optional, wenigstens einen in dem Eingangswertspeicher 110 (1A) gespeicherten Eingangswert EW1 mit dem neuen Eingangswert EW-neu zu überschreiben 212. In dem optionalen Schritt 214 kann die Vorrichtung 100 sodann basierend z.B. auf wenigstens dem neuen Eingangswert EW-neu einen neuen Adresswert AW1 bilden.
  • Bei weiteren beispielhaften Ausführungsformen, 1B, ist vorgesehen, dass die Vorrichtung 100a wenigstens eine Eingangswertermittlungseinrichtung 130 aufweist, die dazu ausgebildet ist, zumindest zeitweise einen bzw. den neuen Eingangswert EW-neu zu ermitteln, beispielsweise basierend auf wenigstens einem ersten Eingangswert EW1 der wenigstens zwei Eingangswerte bzw. basierend auf den wenigstens zwei Eingangswerten. Das optionale Überschreiben eines in dem Eingangswertspeicher 110 gespeicherten Eingangswerts mit dem neuen Eingangswert EW-neu ist in 1B durch den Pfeil a1 symbolisiert.
  • Bei weiteren beispielhaften Ausführungsformen 100b, vgl. 1C und 2C, ist vorgesehen, dass die Vorrichtung 100b dazu ausgebildet ist, zumindest zeitweise a) wenigstens einen ersten Eingangswert EW1 der wenigstens zwei Eingangswerte EW1, EW2 (s. auch 1A) bzw. b) die wenigstens zwei Eingangswerte EW1, EW2 auszuwerten 220 (2C), wobei ein Auswertungsergebnis AE erhalten wird, und basierend auf dem Auswertungsergebnis AE zumindest zeitweise wenigstens eines der folgenden Elemente zu beeinflussen 222: a) das Ermitteln 204 (2A) des wenigstens einen Adresswerts AW1, b) den wenigstens einen Adresswert AW1, c) die Adresswertermittlungseinrichtung 120 (vgl. Pfeil a2 aus 1C), d) das Ermitteln 210 (2B) des neuen Eingangswerts EW-neu bzw. die Eingangswertermittlungseinrichtung 130 (vgl. Pfeil a3 aus 1C), e) das Überschreiben 212 (2B) des wenigstens einen in dem Eingangswertspeicher gespeicherten Eingangswerts mit dem neuen Eingangswert EW-neu, s. Pfeil a1 aus 1B.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung 100b wenigstens eine Auswertungseinrichtung 140 aufweist, die dazu ausgebildet ist, zumindest zeitweise das Auswerten 220 und/oder Beeinflussen 222 auszuführen. In dem optionalen Schritt 224 gemäß 2C kann die Vorrichtung 100b sodann basierend z.B. auf der Beeinflussung 222 wenigstens einen neuen Adresswert AW1 bilden.
  • Bei weiteren beispielhaften Ausführungsformen, 1C, ist vorgesehen, dass die Vorrichtung 100b wenigstens eine Konfigurationseinrichtung 150 aufweist, die dazu ausgebildet ist, zumindest zeitweise, beispielsweise dynamisch, eine Konfiguration bzw. das Verhalten wenigstens eines der folgenden Elemente zu beeinflussen und/oder zu verändern 230 (2D): a) Vorrichtung 100, 100a, 100b, b) Eingangswertspeicher 110, c) Adresswertermittlungseinrichtung 120, d) Eingangswertermittlungseinrichtung 130, e) Auswertungseinrichtung 140, f) Eingangsschnittstelle 102a, g) Ausgangsschnittstelle 102b, h) Konfigurationseinrichtung 150, wobei beispielsweise das Verändern 230 zumindest zeitweise basierend auf wenigstens einem statischen Konfigurationsparameter ausgeführt wird, vgl. Schritt 230a gemäß 2D, und/oder basierend auf wenigstens einem dynamischen Konfigurationsparameter ausgeführt wird, vgl. Schritt 230b. Der weitere optionale Schritt 230c symbolisiert ein zumindest zeitweises Verändern 230 basierend auf wenigstens einem statischen Konfigurationsparameter und wenigstens einem dynamischen Konfigurationsparameter. 3 symbolisiert die vorstehend beschriebene Veränderung 230 bzw. Konfiguration CFG mittels der Konfigurationseinrichtung 150 basierend auf wenigstens einem dynamischen Konfigurationsparameter KP-dyn.
  • Der ebenfalls beispielhaft in 3 abgebildete Pfeil KP-stat symbolisiert eine optionale statische Konfiguration bzw. statische Konfigurationsparameter, die bei weiteren beispielhaften Ausführungsformen z.B. eine, z.B. spezielle, festverdrahtete Ausprägung der Hardware der Vorrichtung bzw. wenigstens einer Komponente der Vorrichtung charakterisieren.
  • Bei weiteren beispielhaften Ausführungsformen, 2E, ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise Adresswerte gemäß einer ersten, beispielsweise komplexen, Adressierungsart AW-A zu ermitteln 240 und zumindest zeitweise Adresswerte gemäß einer zweiten, beispielsweise komplexen, Adressierungsart AW-B zu ermitteln 242. Bei weiteren beispielhaften Ausführungsformen kann das Ermitteln 240, 242 zeitlich aufeinanderfolgend und/oder zumindest teilweise zeitlich überlappend oder gleichzeitig erfolgen.
  • Bei weiteren beispielhaften Ausführungsformen weist eine komplexe Adressierungsart AW-A, AW-B die Ermittlung bzw. Erzeugung einer Mehrzahl von Adresswerten auf, die sich, beispielsweise relativ zueinander bzw. hinsichtlich aufeinander folgender Adresswerte, zumindest zeitweise nicht-linear ändern, oder die sich zumindest zeitweise linear und zumindest zeitweise nicht-linear ändern.
  • Bei weiteren beispielhaften Ausführungsformen können mittels wenigstens einer komplexen Adressierungsart, wie sie zumindest zeitweise durch die Vorrichtung 100, 100a, 100b ausführbar bzw. nutzbar ist, beispielsweise komplexe Zugriffsmuster z.B. auf eine Speichereinrichtung 10 realisiert werden, die beispielsweise charakterisierbar sind durch sich linear und nicht-linear ändernde Adresswerte, Start-Indizes, Ende-Indizes und Offsets, z.B. bei einem einfachen und/oder mehrfachen Durchlaufen derselben Dimension eines mehrdimensionalen Feldes, z.B. mit jeweils gleichartigen oder unterschiedlichen Adresswerten.
  • Bei weiteren beispielhaften Ausführungsformen werden als komplexe Zugriffsmuster eine Verkettung von Adresswerten und/oder Indizes und/oder Offsets verschiedener Dimensionen und/oder eine Modifikation von Adresswerten und/oder Indizes und/oder Offsets durch Adresswerte und/oder Indizes und/oder Offsets derselben und/oder anderer Dimensionen und/oder durch z.B. Konstanten verstanden.
  • Bei weiteren beispielhaften Ausführungsformen werden als komplexe Zugriffsmuster eine Änderung von Adresswerten und/oder Indizes und/oder Offset(s) in Abhängigkeit z.B. von Vergleichen umfasst. In diese Vergleiche können bei weiteren beispielhaften Ausführungsformen insbesondere Adresswerte und/oder Indizes und/oder Offsets und/oder Konstanten einbezogen werden. Bei weiteren beispielhaften Ausführungsformen können auch von extern zu der Vorrichtung eingehende Daten (z.B. in Form wenigstens eines Eingangswerts EW1) in die Vergleiche eingehen. Das Vergleichen kann weiteren beispielhaften Ausführungsformen beispielsweise mittels der Auswertungseinrichtung 140 ausgeführt werden.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise Adresswerte gemäß einer ersten, beispielsweise linearen, Adressierungsart zu ermitteln, beispielsweise indem, z.B. beginnend mit einem Start-Index, z.B. bei gleichbleibendem Offset, der Adresswert gleichmäßig um den Offset, also linear, bis zum Erreichen eines End-Indizes erhöht wird.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise Adresswerte gemäß einer ersten, beispielsweise nicht-linearen, Adressierungsart zu ermitteln, beispielsweise indem, beginnend mit einem Start-Wert, dieser Adresswert nicht-linear, beispielsweise durch fortlaufendes Multiplizieren mit 2 bzw. Linksschieben um 1, z.B. bis zum Erreichen eines Ende-Indizes und/oder nach Durchführung einer festgelegten Anzahl erzeugter Adresswerte, erhöht wird.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise einen als Offset verwendeten ersten Adresswert gemäß einer ersten Adressierungsart zu ermitteln, so dass dieser Offset insbesondere nicht konstant bleibt, und zumindest zeitweise zweite Adresswerte gemäß einer zweiten Adressierungsart zu ermitteln, so dass der Offset als erster Adresswert mit dem zweiten Adresswert zumindest zeitweise kombiniert wird, beispielsweise durch fortlaufende Addition, so dass im Zusammenwirken der beiden Adressierungsarten ein nicht-lineares Verhalten erreicht wird.
  • Bei weiteren beispielhaften Ausführungsformen wird z.B. für eine lineare Adressierung nicht notwendigerweise eine Mehrzahl von Adressenwerten erzeugt.
  • Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung 100, 100a, 100b dazu ausgebildet eine, z.B. direkte, Adressberechnung von Adresswerten AW1 z.B. für Lade-/Speichereinheiten 5' (1A), 5 (4) in Hardware (also z.B. vollständig in Hardware, ohne Nutzung eines Computerprogramms bzw. generell Software oder Firmware) auszuführen, beispielsweise in einer (z.B. mittels der Konfigurationseinrichtung 150) konfigurierbaren Art und Weise.
  • Dies ermöglicht bei weiteren beispielhaften Ausführungsformen, 5, z.B. die Bereitstellung einer Recheneinrichtung 300 (z.B. Mikrocontroller, Beschleuniger-Hardware zum Auswerten z.B. von (tiefen) künstlichen neuronalen Netzen, Datenflussprozessor), die einen vorgebbaren Algorithmus ALG, z.B. in Echtzeit ausführen kann, und die, z.B. unter Nutzung der Vorrichtung 100 gemäß den Ausführungsformen, Adresswerte AW1, z.B. gemäß komplexen Zugriffsmustern auf einen Speicher 10 (1), für Zugriffe auf den Speicher 10, z.B. ebenfalls in Echtzeit, bereitstellen kann. Der Speicher kann bei manchen Ausführungsformen in die Recheneinrichtung 300 integriert sein, vgl. z.B. den beispielhaft in 5 abgebildeten flüchtigen Speicher (z.B. RAM, Arbeitsspeicher) 302 und/oder den beispielhaft in 5 abgebildeten nichtflüchtigen Speicher (z.B. Flash-EEPROM) 304, bei anderen Ausführungsformen jedoch auch außerhalb der Recheneinrichtung 300 angeordnet sein, vgl. Element 10 von 1A.
  • Dadurch ist bei weiteren beispielhaften Ausführungsformen sichergestellt, dass die Recheneinrichtung 300 z.B. für die Ausführung des Algorithmus ALG verwendbare Daten, die z.B. gemäß den komplexen Zugriffsmustern aus dem Speicher 302 gelesen und/oder in den Speicher geschrieben werden, ausreichend schnell, beispielsweise in Echtzeit, also z.B. in vergleichbarer Geschwindigkeit, wie die Recheneinrichtung 300 den Algorithmus abarbeitet, erhält bzw. schreiben kann.
  • Mit anderen Worten ist es bei weiteren beispielhaften Ausführungsformen möglich, mittels der Vorrichtung 100 zu einem Zeitpunkt der Ausführung eines Algorithmus ALG auch komplexe Zugriffsmuster auf den Speicher 302 direkt, also nativ, zu berechnen.
  • Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung 100 dazu ausgebildet, je Takt eines Taktsignals einen neuen Adresswert AW1 zu erzeugen.
  • Bei weiteren beispielhaften Ausführungsformen kann die Vorrichtung 100 gemäß den Ausführungsformen z.B. auch Teil wenigstens einer Lade-/Speichereinheit 5 (4) sein, also z.B. innerhalb der Lade-/Speichereinheit angeordnet bzw. auf demselben (Halbleiter-)Substrat HS wie die Lade-/Speichereinheit 5 angeordnet sein.
  • Bei weiteren beispielhaften Ausführungsformen kann die Vorrichtung 100 gemäß den Ausführungsformen sich auch außerhalb der Lade-/Speichereinheit 5 befinden, jedoch z.B. ganzheitlich mit der Lade-/Speichereinheit zusammenwirken.
  • Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung 100 dazu ausgebildet, redundante Teilberechnungen zu vermeiden, aber z.B. individuelle Adresswerte AW1 je Lade-/Speichereinheit 5 zu berechnen. Dies wird bei weiteren beispielhaften Ausführungsformen z.B. durch eine hierarchische Struktur und/oder Kopplung von Komponenten der Vorrichtung 100 ermöglicht, die weiter unten näher beschrieben ist.
  • Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung 100 dazu ausgebildet, Teilberechnungen vorzunehmen, die z.B. von mehreren individuellen Adresswerteberechnungen je Lade-/Speichereinheit verwendet werden können, wodurch z.B. redundante Teilberechnungen in den mehreren individuellen Adresswerteberechnungen je Lade-/Speichereinheit vermeidbar sind. Dies wird bei weiteren beispielhaften Ausführungsformen z.B. durch eine hierarchische Struktur und/oder Kopplung von Komponenten der Vorrichtung 100 ermöglicht.
  • Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung 100 dazu ausgebildet, in flexibler, beispielsweise frei konfigurierbarer, Art und Weise eine Vielzahl unterschiedlicher komplexer Adressberechnungen (Ermittlung von Adresswerten gemäß komplexer Adressierungsarten) auszuführen.
  • Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung 100, beispielsweise flexibel, skalierbar. Bei weiteren beispielhaften Ausführungsformen kann die Vorrichtung 100 z.B. in einem Hardware-Beschleuniger, z.B. zur Auswertung von neuronalen Netzen, vorgesehen sein, wobei z.B. eine konkrete Umsetzung, z.B. Parametrierung, der Hardware-Architektur der Vorrichtung festlegbar ist, beispielsweise im Sinne wenigstens eines der folgenden Elemente: a) gewählte Hardware-Maßnahmen (z.B. Anzahl und Bitbreite der Eingangswerte, Anzahl und Bitbreite von Eingangswerte-Schnittstellen, Anzahl und Bitbreite von Ausgabewerte-Schnittstellen, Möglichkeiten zur Auswertung der Eingangswerte, Möglichkeiten zur Ermittlung der Auswertungsergebnisse, Möglichkeiten zur Ermittlung der Adresswerte, Möglichkeiten zur Ermittlung neuer Eingangswerte, Möglichkeiten zum Überschreiben der in den Eingangswertspeichern gespeicherten Eingangswerte mit neuen Eingangswerten, Anzahl sowie jeweils spezielle Ausprägung einzelner kombinierbarer Einheiten zur Adresswertermittlung, etc.), b) Konfigurierbarkeit (z.B. unter Verwendung von wenigstens einem der vorstehend beispielhaft genannten Aspekte bzw. Ausführungsformen, also beispielsweise spezifisch einstellbar je Berechnung bzw. Algorithmus), c) mögliche Zugriffsmuster auf Speicher, also z.B. mögliche Muster für die Adresswertermittlung, d) resultierender Bauraum, z.B. Fläche, einer Implementierung der Vorrichtung bzw. einer Kombination der Vorrichtung mit dem Zielsystem, z.B. dem Hardware-Beschleuniger.
  • Bei weiteren beispielhaften Ausführungsformen ist mittels einer Parametrierung einer konkreten Hardware-Architektur festlegbar, welche Möglichkeiten der Adresswertbildung („Adressierungsmöglichkeiten“) statisch, z.B. festverdrahtet, eingestellt sind, z.B. einschließlich der ggf. vorhandenen dynamischen Einstellmöglichkeiten zur Laufzeit der Vorrichtung.
  • Bei weiteren beispielhaften Ausführungsformen werden als „dynamische Konfiguration“ einstellbare, also zur Laufzeit konfigurierbare bzw. umkonfigurierbare, z.B. nicht festverdrahtete, Hardware-Strukturen bezeichnet, die z.B. zumindest zeitweise konkret eingestellt / konfiguriert sind.
  • Bei weiteren beispielhaften Ausführungsformen legen statische Konfigurationsparameter einen Umfang / die Möglichkeiten einer dynamischen Konfiguration, z.B. zur Laufzeit, fest.
  • Bei weiteren beispielhaften Ausführungsformen legen statische Konfigurationsparameter KP-dyn einen Umfang / die Möglichkeiten einer dynamischen Konfiguration fest.
  • Bei weiteren beispielhaften Ausführungsformen wird als quasi-statische Konfiguration eine dynamische Konfiguration bezeichnet, die für die Dauer einer Teilberechnung eines Algorithmus ALG (5) oder des gesamten Algorithmus nicht umkonfiguriert wird.
  • Bei weiteren beispielhaften Ausführungsformen weist die Berechnung bzw. Ermittlung 204 (2A) eines Adresswerts AW1 gemäß den Ausführungsformen z.B. die Berechnung von Adressen, Teiladressen, Indizes sowie weiterer Zugriffsarten, durch die sich einzelne Daten aus einer Anzahl von Daten (beispielsweise gespeichert in einer Speichereinrichtung 10, 302) selektieren lassen, auf. Im Folgenden werden diese gemäß weiteren beispielhaften Ausführungsformen einheitlich als Adresswert bezeichnet.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass wenigstens eine Komponente 110, 120, 130, 140, 150, 102a, 102b der Vorrichtung 100, 100a, 100b dazu ausgebildet ist, zumindest zeitweise wenigstens eine der folgenden Operationen auszuführen: a) Addition, b) Subtraktion, c) arithmetisches und/oder logisches Schieben, d) Multiplikation, e) Nutzen bzw. Auswerten wenigstens einer Lookup-Tabelle, z.B. Umsetzungstabelle, f) Butterfly, g) Inverse Increment, h) Vergleiche gegenüber Null, beispielsweise größer Null und/oder kleiner Null und/oder größer gleich Null und/oder kleiner gleich Null, i) wenigstens eine Kombination aus den vorstehend aufgeführten Operationen a), b), c), d), e), f), g), h), wobei beispielsweise als Eingangswerte für wenigstens manche der Operationen a), b), c), d), e), f), g), h), i) Variablen und/oder Konstanten verwendbar sind.
  • Bei weiteren beispielhaften Ausführungsformen, 2F, ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, zumindest zeitweise wenigstens einen Eingangswert EW1 zu invalidieren 250, beispielsweise als ungültig zu erklären und/oder zu behandeln, und, optional, einen Betrieb wenigstens einer Komponente 110, 120, 130, 140, 150, 102a, 102b der Vorrichtung zumindest zeitweise anzuhalten 252, und, optional, einen bzw. den Betrieb der wenigstens einen angehaltenen Komponente 110, 120, 130, 140, 150, 102a, 102b der Vorrichtung fortzuführen 254.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung 100, 100a, 100b dazu ausgebildet ist, zumindest zeitweise ein Schreiben von Daten in den Eingangswertspeicher 110 und/oder ein Schreiben bzw. Überschreiben von Eingangswerten zu blockieren. Nach dem Blockieren kann bei weiteren beispielhaften Ausführungsformen ein optionales Beenden des Blockierens 160 erfolgen, z.B. bei dem Eintritt einer vorgebbaren Bedingung.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung 100, 100a, 100b, beispielsweise vollständig, als Hardwareschaltung ausgebildet ist.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung 100, 100a, 100b als integrierte Schaltung ausgebildet ist, und dass, beispielsweise alle, Komponenten der Vorrichtung auf einem selben Substrat bzw. Halbleitersubstrat HS (1A) angeordnet sind.
  • Bei weiteren beispielhaften Ausführungsformen können auch mehrere Vorrichtungen gemäß den Ausführungsformen vorgesehen und z.B. auf demselben Substrat angeordnet sein.
  • Bei weiteren beispielhaften Ausführungsformen kann die wenigstens eine Vorrichtung 100 z.B. auch in ein Zielsystem 5 (4), z.B. eine Einrichtung zum Laden und/oder Speichern von Daten und/oder einen Baustein für Speicherdirektzugriffe (DMA, direct memory access) und/oder einen Mikrocontroller 300 (5) oder eine Recheneinrichtung anderen Typs integriert sein.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf eine Einrichtung 5 (4) zum Laden und/oder Speichern von Daten, aufweisend wenigstens eine Vorrichtung 100 zur Ermittlung von Adresswerten gemäß den Ausführungsformen, wobei beispielsweise die Einrichtung 5 dazu ausgebildet ist, die Vorrichtung 10 zum Ermitteln wenigstens eines Adresswerts AW1, beispielsweise für einen Schreibzugriff und/oder einen Lesezugriff auf eine Speichereinrichtung 10, zu nutzen. Bei weiteren beispielhaften Ausführungsformen kann die Einrichtung 5 zum Laden und/oder Speichern von Daten beispielsweise mittels der wenigstens einen Vorrichtung 100 gemäß den Ausführungsformen, beispielsweise in Echtzeit, Adresswerte für Lade- und/oder Speicheroperationen bezüglich wenigstens eines Speichers, z.B. eines digitalen Halbleiterspeichers, ausführen.
  • Weitere beispielhafte Ausführungsformen, 6, beziehen sich auf ein System 1000 zur Ermittlung von Adresswerten, beispielsweise für einen Zugriff auf eine Speichereinrichtung, aufweisend wenigstens zwei Vorrichtungen 100-1, 100-2 gemäß den Ausführungsformen. Bei weiteren beispielhafte Ausführungsformen kann das System 1000 z.B. auch in die Recheneinrichtung 300 (5) integriert sein.
  • Bei weiteren beispielhafte Ausführungsformen können die zwei Vorrichtungen 100-1, 100-2 beispielsweise unabhängig voneinander arbeiten. Bei weiteren beispielhafte Ausführungsformen können die zwei Vorrichtungen 100-1, 100-2 beispielsweise auch zusammenarbeiten, beispielsweise um als Adresswerte für eine Adressierung verwendbare Werte zu erzeugen.
  • Weitere beispielhafte Ausführungsformen, 5, beziehen sich auf eine Recheneinrichtung 300, beispielsweise Mikrocontroller, aufweisend wenigstens eine Vorrichtung 100, 100a, 100b zur Ermittlung von Adresswerten gemäß den Ausführungsformen und/oder wenigstens eine Einrichtung 5 (4) zum Laden und/oder Speichern von Daten gemäß den Ausführungsformen und/oder wenigstens ein System 1000 (6) gemäß den Ausführungsformen.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf ein eingebettetes System 300, z.B. für ein Steuergerät, beispielsweise für ein Fahrzeug, beispielsweise Kraftfahrzeug, mit wenigstens einer Vorrichtung 100 gemäß den Ausführungsformen.
  • Weitere beispielhafte Ausführungsformen, 2A, beziehen sich auf ein Verfahren zur Ermittlung von Adresswerten, beispielsweise für einen Zugriff auf eine Speichereinrichtung 10, aufweisend: zumindest zeitweises Speichern 202 von wenigstens zwei Eingangswerten EW1, EW2 in einem Eingangswertspeicher 110 (1A), zumindest zeitweises Ermitteln 204 wenigstens eines Adresswerts AW1 basierend auf den wenigstens zwei Eingangswerten EW1, EW2.
  • Bei weiteren beispielhaften Ausführungsformen, 2B, ist vorgesehen, dass das Verfahren weiter aufweist: Ermitteln 210 eines neuen Eingangswerts EW-neu, beispielsweise basierend auf wenigstens einem ersten Eingangswert der wenigstens zwei Eingangswerte bzw. basierend auf den wenigstens zwei Eingangswerten, und, optional, Überschreiben 212 wenigstens eines in dem Eingangswertspeicher gespeicherten Eingangswerts mit dem neuen Eingangswert.
  • Bei weiteren beispielhaften Ausführungsformen, 2C, ist vorgesehen, dass die Vorrichtung zumindest zeitweise a) wenigstens einen ersten Eingangswert der wenigstens zwei Eingangswerte bzw. b) die wenigstens zwei Eingangswerte auswertet 220, wobei ein Auswertungsergebnis AE erhalten wird, wobei die Vorrichtung basierend auf dem Auswertungsergebnis zumindest zeitweise wenigstens eines der folgenden Elemente beeinflusst 222: a) das Ermitteln des wenigstens einen Adresswerts, b) den wenigstens einen Adresswert, c) eine Adresswertermittlungseinrichtung, d) das Ermitteln des neuen Eingangswerts, e) das Überschreiben des wenigstens einen in dem Eingangswertspeicher gespeicherten Eingangswerts mit dem neuen Eingangswert.
  • 7 zeigt schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen. Block B1 symbolisiert eine Vorrichtung 100, 100a, 100b gemäß den Ausführungsformen, wie sie vorstehend beispielhaft unter Bezugnahme auf 1 beschrieben worden ist. Optional ist der Vorrichtung B1 eine Konfiguration zuführbar, vgl. den Pfeil a4, beispielsweise über die Eingangsschnittstelle 102a (1A). Die Konfiguration a4 kann bei weiteren beispielhaften Ausführungsformen z.B. dynamische Konfigurationsparameter aufweisen. Statische Konfigurationsparameter sind bei weiteren beispielhaften Ausführungsformen z.B. über eine entsprechende Festverdrahtung realisierbar. Der Pfeil a5 gemäß 7 symbolisiert wenigstens einen von der Vorrichtung B1 z.B. basierend auf der Konfiguration a4 erzeugten Adresswert, der optional einer Einrichtung B2 zuführbar ist. Die Einrichtung B2 kann den Adresswert a5 z.B. als Eingangswert verwenden, darauf basierend einen eigenen Adresswert berechnen, und diesen für einen Speicherzugriff auf eine nicht in 7 abgebildete Speichereinrichtung nutzen.
  • 8 zeigt schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen, bei dem die Vorrichtung 100, vgl. auch den Block B1', in die Einrichtung B2' integriert ist. Die Einrichtung B2, B2' kann z.B. ebenfalls eine Vorrichtung gemäß dem Typ der Vorrichtung 100 sein, wobei sich B2' z.B. hierarchisch über B1', befindet, wobei B2' z.B. die mittels der Vorrichtung 100, B1, B1' erzeugten Adresswerte a5 z.B. als Eingangswerte verwendet.
  • 9 zeigt schematisch ein vereinfachtes Diagramm einer Vorrichtung 100c gemäß weiteren beispielhaften Ausführungsformen. Die Vorrichtung 100c weist einen Eingangswertspeicher 110' (z.B. drei Speicherregister) zur zumindest zeitweisen Speicherung von vorliegend beispielhaft drei Eingangswerten EW1, EW2, EW3 auf. Über die Eingangsschnittstelle 102a' sind der Vorrichtung 100c z.B. Konfigurationsdaten und/oder Eingangswerte für den Eingangswertspeicher 110' zuführbar, vgl. den Pfeil a6.
  • Bei weiteren beispielhaften Ausführungsformen sind die Konfigurationsdaten CFG', beispielsweise über eine direkte Datenverbindung a7, von der Eingangsschnittstelle 102a' zu der Konfigurationseinrichtung 150' übertragbar.
  • Bei weiteren beispielhaften Ausführungsformen ist eine optionale Multiplexereinrichtung 104 vorgesehen, die dazu ausgebildet ist, über die Eingangsschnittstelle 102a' empfangbare Daten, z.B. Eingangswerte a6, wahlweise als einen der vorliegend beispielhaft drei möglichen Eingangswerte EW1, EW2, EW3, dem Eingangswertspeicher 110' zuzuführen. Alternativ oder ergänzend kann die Multiplexereinrichtung 104 auch Ausgangsdaten einer Eingangswertermittlungseinrichtung 130' dem Eingangswertspeicher 110' zuführen, z.B. neue Eingangswerte, beispielsweise über eine direkte Datenverbindung a8 zwischen der Eingangswertermittlungseinrichtung 130' und der Multiplexereinrichtung 104.
  • Bei weiteren beispielhaften Ausführungsformen sind Daten des Eingangswertspeichers 110', z.B. einer oder mehrere der Eingangswerte EW1, EW2, EW3, beispielsweise über jeweilige direkte Datenverbindungen, die in 9 kollektiv mit dem Bezugszeichen 112 bezeichnet sind, wenigstens einer der folgenden Komponenten zuführbar: Eingangswertermittlungseinrichtung 130', Adresswertermittlungseinrichtung 120', Auswertungseinrichtung 140'.
  • Die Funktion der Komponenten 120', 130', 140' entspricht bei weiteren beispielhaften Ausführungsformen z.B. der entsprechenden Funktion der vorstehend unter Bezugnahme auf 1 beschriebenen Komponenten 120, 130, 140.
  • Ein Betrieb wenigstens einer der Komponenten 120', 130', 140' ist bei weiteren beispielhaften Ausführungsformen zumindest zeitweise durch die Konfigurationseinrichtung 150' konfigurierbar, vgl. die beispielsweise direkten Datenverbindungen bzw. Konfigurationsverbindungen a9, a10, a11.
  • Bei weiteren beispielhaften Ausführungsformen können zur Erzeugung und Ausgabe von Adresswerten AW1 durch die Vorrichtung 100c zumindest zeitweise verschiedene (mindestens zwei, in 9 beispielhaft drei) Eingangswerte EW1, EW2, EW3 kombiniert werden. Die Eingangswerte EW1, EW2, EW3 werden bei weiteren beispielhaften Ausführungsformen beispielsweise durch eine dynamisch von extern erfolgende Konfiguration a6 z.B. mittels der Konfigurationseinrichtung 150' eingestellt, beispielsweise unter Steuerung einer Recheneinrichtung 300 (5) oder eines Zustandsautomaten oder dergleichen.
  • Bei weiteren beispielhaften Ausführungsformen können wenigstens manche der Eingangswerte EW1, EW2, EW3 aus vorgehenden Berechnungen stammen, also das Ergebnis vorangehender Ergebnisse der Eingangswertermittlungseinrichtung 130' sein der Vorrichtung 100c sein.
  • Bei weiteren beispielhaften Ausführungsformen können wenigstens manche der Eingangswerte Konstanten sein.
  • Bei weiteren beispielhaften Ausführungsformen kann ein erster Eingangswert EW1 eine Basisadresse eines Speicherbereichs z.B. der Speichereinrichtung 10 oder innerhalb der Speichereinrichtung 10 sein, und ein zweiter Eingangswert EW2 kann ein Offset (z.B. positiver Differenzwert) sein, z.B. zur Selektion eines Elements innerhalb des Speicherbereichs, dessen Beginn durch die Basisadresse, mithin den ersten Eingangswert EW1, charakterisiert wird.
  • Bei weiteren beispielhaften Ausführungsformen können die beiden Eingangswerte EW1, EW2 beispielsweise addiert werden und das Ergebnis als erzeugter Adresswert AW1 ausgegeben werden.
  • Bei weiteren beispielhaften Ausführungsformen werden die Eingangswerte EW1, EW2, EW3 durch die Vorrichtung 100c kombiniert und dadurch mindestens ein neuer Eingangswert EW-neu (2B) berechnet, der z.B. dazu verwendbar ist, einen alten Eingangswert in dem Eingangswertspeicher 110' zu überschreiben. Bei weiteren beispielhaften Ausführungsformen kann das Schreiben eines Eingangswertes EW-neu somit z.B. auch von intern der Vorrichtung 100c erfolgen. Beispielsweise kann ein ursprünglicher Offset als Eingangswert EW2 um einen Inkrement-Wert „delta“ erhöht überschrieben werden (EW2+delta) und somit einen neuen Offset in Form des Eingangswerts EW2 bilden. Der Inkrement-Wert „delta“ kann beispielsweise durch einen weiteren Eingangswert EW3 festgelegt sein. Der Adresswert AW1 kann beispielsweise laufend aus einer Addition von Basisadresse EW1 mit Offset EW2 berechnet werden, beispielsweise immer dann, wenn EW2 durch Addieren mit dem Inkrement EW3 aktualisiert wurde.
  • Bei weiteren beispielhaften Ausführungsformen wird durch eine Auswertung von Eingangswerten EW1, EW2, .. eine Berechnung von Adresswerten bzw. neuen Eingangswerten EW-neu gesteuert, vgl. z.B. die Pfeile a8, a12.
  • Bei weiteren beispielhaften Ausführungsformen kann beispielsweise bei Erreichen eines bestimmten Wertes des Offsets der ursprüngliche Startwert dieses Offsets wiederhergestellt werden, um einen neuen Durchlauf zu beginnen. Beispielsweise könnte die Wiederherstellung des Offsets einer Dimension bei weiteren beispielhaften Ausführungsformen bedingt ausgelöst werden durch ein Fortschreiten der nächst höheren Dimension.
  • Bei weiteren beispielhaften Ausführungsformen kann durch statische und/oder dynamische Konfigurationsparameter (s. auch 3, KP-stat, KP-dyn) eine Steuerung der Berechnung bzw. Ermittlung von Ausgangswerten der Komponenten 120', 130', 140' eingestellt bzw. beeinflusst werden. Beispielsweise kann das vorstehend beispielhaft genannte Verhalten mittels Vorgabe entsprechende Konfigurationsparameter eingestellt werden.
  • Wie vorstehend bereits erwähnt, werden die Eingangswerte EW1, EW2, EW3 bei weiteren beispielhaften Ausführungsformen vorzugsweise in Registern gespeichert. Dadurch ist es bei weiteren beispielhaften Ausführungsformen möglich, ggf. sämtliche verwendeten Register innerhalb eines Taktes zu lesen und/oder zu beschreiben.
  • Bei weiteren beispielhaften Ausführungsformen können die Eingangswerte EW1, EW2, EW3 unmittelbar und/oder auch mittelbar (z.B. durch eine nachgeschaltete Manipulation der Eingangswerte, durch Berechnung von Zwischenergebnissen, etc.) verwendet werden.
  • Bei weiteren beispielhaften Ausführungsformen können die Eingangswerte zur Berechnung der Adresswerte a12, die Eingangswerte zur Berechnung mindestens eines neuen Eingangswertes a8 sowie der mindestens eine neu berechnete Eingangswert EW-neu dieselben, teilweise dieselben oder unterschiedlich sein, insbesondere dieselben, teilweise dieselben oder unterschiedliche Speicherorte, z.B. innerhalb des Eingangswertspeichers 110', umfassen.
  • 10 zeigt schematisch ein vereinfachtes Flussdiagramm gemäß weiteren beispielhaften Ausführungsformen zur Veranschaulichung einer bei weiteren beispielhaften Ausführungsformen möglichen, beispielsweise nachgeschalteten, Manipulation der Eingangswerte, eine Berechnung von Zwischenergebnissen sowie eine Nutzung der Zwischenergebnisse sowohl zur Berechnung eines Adresswerts AW' (a) als auch eines neuen Eingangswertes EW-neu'. Abgebildet sind: a) zwei Eingangswerte EW1, EW2, die z.B. von extern (der Vorrichtung) beschrieben werden können, b) der erste Eingangswert EW1 kann optional neu berechnet (vgl. Block B3) und durch die Vorrichtung überschrieben werden (EW-neu'), c) in der Berechnung wird zunächst der erste Eingangswert EW1 durch eine Berechnung durch den Block B3 manipuliert, d) der mittelbare (manipulierte) erste Eingangswert EW1' und der unmittelbare („direkte“) zweite Eingangswert EW2 werden mittels dem Block B4 kombiniert und können dadurch den Adresswert AW' bzw. den neuen Eingangswert EW-neu' ergeben bzw. bilden. Somit geht der erste Eingangswert EW1 gemäß 10 vorliegend mittelbar und der zweite Eingangswert EW2 unmittelbar in die Berechnung durch Block B4 ein.
  • Bei weiteren beispielhaften Ausführungsformen kann die Funktionalität der Blöcke B3, B4 gemäß 10 durch wenigstens eine der Komponenten 120', 130', 140' gemäß 9 realisiert sein.
  • Die als Kombination, Berechnung, Manipulation bezeichneten Operationen können bei weiteren beispielhaften Ausführungsformen z.B. Addition, Subtraktion, arithmetisches und/oder logisches Schieben, Multiplikation, Lookup-Tabelle (Umsetzungstabelle), Butterfly, Inverse Inkrement und andere beliebige kombinatorische Logik umfassen. Diese Operationen können bei weiteren beispielhaften Ausführungsformen zudem beliebig kombiniert werden.
  • Bei weiteren beispielhaften Ausführungsformen ist es vorteilhaft, die Operationen nicht statisch fest, sondern z.B. dynamisch konfigurierbar zu halten: z.B., ob diese überhaupt ausgeführt werden, und/oder wie diese ausgeführt werden. Beispielsweise kann bei weiteren beispielhaften Ausführungsformen vorgesehen sein, in einer Operation genau drei Eingangswerte EW1, EW2, EW3 (9) miteinander zu addieren. Eine vorteilhafte Variante gemäß weiteren beispielhaften Ausführungsformen wäre hier, die Additions-Operation dahingehend zu erweitern, dass beispielsweise jeder einzelne der drei Eingangswerte EW1, EW2, EW3 vor oder bei dem Eintreffen in die Addition auf „0“ gesetzt werden kann. Dadurch können bei weiteren beispielhaften Ausführungsformen z.B. auch lediglich zwei Werte miteinander addiert werden, oder auch lediglich ein einziger Wert unverändert durchgereicht werden, auch wenn die Addition für bis zu drei Operanden ausgelegt ist. Die Steuerung eines derartigen Betriebs bzw. einer derartigen dynamischen Konfiguration ist bei weiteren beispielhaften Ausführungsformen mittels der Konfigurationseinrichtung 150' möglich.
  • Bei weiteren beispielhaften Ausführungsformen können auf Eingangsregister (z.B. Registerspeicher des Eingangswertspeichers 110, 110') lokale (innerhalb des Registerspeichers wirkende) Manipulationen angewandt werden, die sich in der weiteren Verwendung des Registers bzw. des darin gespeicherten Eingangswerts lediglich auf einzelne oder auf eine begrenzte Anzahl nachfolgender Berechnungen auswirken.
  • Bei weiteren beispielhaften Ausführungsformen können auf Eingangsregister globale Manipulationen angewandt werden, die sich z.B. auf jegliche weitere Verwendung des Registers bzw. des darin gespeicherten Eingangswerts in nachfolgenden Berechnungen auswirkt.
  • Bei weiteren beispielhaften Ausführungsformen ist eine weitere vorteilhafte Operation das Invalidieren (ungültig machen) von Eingangswerten, vgl. z.B. Block 260 gemäß 2G. Ein Invalidieren 260 kann bei weiteren beispielhaften Ausführungsformen z.B. dann vorteilhaft sein, wenn externe Quellen, z.B. vorgeschaltete Recheneinheiten, diesen Eingangswert berechnen und an die Vorrichtung gemäß den Ausführungsformen senden.
  • Bei weiteren beispielhaften Ausführungsformen ist durch das Invalidieren und/oder ein Blockieren sowie das Validieren bzw. Fortfahren eine vorteilhafte Synchronisation mit externen Quellen möglich.
  • Eine externe Quelle 20 (1A, 7, 8) kann bei weiteren beispielhaften Ausführungsformen beispielsweise auch eine Vorrichtung gemäß den Ausführungsformen umfassen. Somit können bei weiteren beispielhaften Ausführungsformen die externe Quelle 20 und die Vorrichtung 100 zusammenarbeiten.
  • Bei weiteren beispielhaften Ausführungsformen kann es vorteilhaft sein, dass, z.B. solange / sofern Eingangswerte invalide sind bzw. invalidiert wurden und diese insbesondere (entsprechend der Konfiguration CFG) für eine Berechnung verwendbar, z.B. erforderlich, sind, die Adresswertberechnung z.B. unmittelbar z.B. vorübergehend anhalten kann. Beim Empfang eines Eingangswertes wird dieser Eingangswert z.B. sogleich valide (gültig) und - z.B. sofern alle verwendbare bzw. erforderlichen Eingangswerte vorhanden sind - kann die Berechnung bei weiteren beispielhaften Ausführungsformen, z.B. unmittelbar, fortgeführt werden.
  • Bei weiteren beispielhaften Ausführungsformen können Eingangswerte EW1, EW2, .. von einer externen Quelle 20 beispielsweise sofort angenommen werden. Bei weiteren beispielhaften Ausführungsformen kann es jedoch auch vorteilhaft sein, wenn die Eingangswerte von einer externen Quelle 20 insbesondere dann, z.B. selektiv, nicht angenommen werden können, solange die entsprechenden Eingangswerte (noch) valide sind. Das Invalidieren 260 und Validieren 262 (2G) erlauben in dieser Kombination bei weiteren beispielhaften Ausführungsformen eine Synchronisation der Berechnungen der Vorrichtung 100 zusammen mit einer oder mehreren externen Quellen 200, die Eingangsdaten bzw. Eingangswerte liefern.
  • 11 zeigt schematisch ein vereinfachtes Diagramm gemäß weiteren beispielhaften Ausführungsformen. Abgebildet ist eine Vorrichtung 100d, die mehrere Funktionsblöcke FB1, FB2, FB3, FB4, FB5 aufweist, wobei die mehreren Funktionsblöcke FB1, FB2, FB3, FB4, FB5 beispielsweise jeweils zusammenwirkende Instanzen einer oder mehrere Vorrichtungen 100 des vorstehend beispielhaft beschriebenen Typs charakterisieren.
  • Bei weiteren beispielhaften Ausführungsformen können manche, z.B. vergleichsweise komplexe, Ausprägungen der Vorrichtung gemäß den Ausführungsformen, in Substrukturen - im Folgenden „Offsets“ genannt - aufgeteilt werden, die in 11 beispielhaft durch die Funktionsblöcke FB1, FB2, FB3, FB4, FB5 symbolisiert sind.
  • Bei weiteren beispielhaften Ausführungsformen handelt es sich bei der Aufteilung in Offsets FB1, .., FB5 um eine optionale Strukturierung, die bei weiteren beispielhaften Ausführungsformen ggf. nicht zu verwenden bzw. nicht erforderlich bzw. nützlich ist.
  • Bei weiteren beispielhaften Ausführungsformen kann ein Offset FB1, .., FB5 beispielsweise jeweils wenigstens einen Teil einer Funktionalität wenigstens einer der Komponenten 110', 120', 130', 140', 150' gemäß 9 aufweisen.
  • Mit anderen Worten ist es bei weiteren beispielhaften Ausführungsformen auch möglich, die nachfolgend unter Verwendung der beispielhaften Offsets FB1, .., FB5 beschriebene Funktionalität mit der z.B. in 1 und/oder 9 abgebildeten Konfiguration zu realisieren.
  • Die Offsets FB1, .., FB5 können bei weiteren beispielhaften Ausführungsformen beispielsweise so ausgebildet sein, dass sie dergestalt zusammenwirken, dass in ihrer Gesamtheit eine Verschachtelung bzw. eine Hierarchie mehrerer Schleifenebenen ermöglicht wird. Beispielsweise kann bei Beendigung einer inneren bzw. hierarchisch tieferen Schleife eine obere bzw. hierarchisch höhere Schleife fortschreiten, während die beendete Schleife zeitgleich auf ihre neuen Startwerte zurückgestellt oder neu eingestellt wird.
  • In mehrdimensionalen Feldern kann bei weiteren beispielhaften Ausführungsformen so vorteilhafterweise je ein Offset zur Berechnung der Indizes von genau einer Dimension eingesetzt werden. Die Anzahl der Offsets sowie die konkrete Ausprägung eines jeden Offsets kann bei einer tatsächlichen Instanziierung in / Ausprägung der Vorrichtung bzw. der Hardwareschaltung für die Vorrichtung festgelegt werden und kann bei weiteren beispielhaften Ausführungsformen somit einen statischen Parameter darstellen.
  • Die während des Betriebes tatsächlich benutzten Offsets sind bei weiteren beispielhaften Ausführungsformen mittels dynamischer Konfiguration einstellbar.
  • Eine Kombination der einzelnen Offsets zu einer Adresse kann bei weiteren beispielhaften Ausführungsformen z.B. über statische und dynamische Parameter KP-stat, KP-dyn (3) konfiguriert werden. Eine vorteilhafte Art der Kombination ist bei weiteren beispielhaften Ausführungsformen beispielsweise die Bildung einer Summe ausgewählter einzelner Offsets. Je Offset bestimmt so bei weiteren beispielhaften Ausführungsformen ein statischer oder dynamischer Parameter, ob dieser direkt in die Berechnung des Adresswerts einfließt, also z.B. Teil der Kombination bzw. der Summe der Offsets ist.
  • Bei der vereinfachten Darstellung gemäß 11 sind die Komponenten 120', 130', 140' gemäß 9 der Übersichtlichkeit halber nicht abgebildet, sondern lediglich die den Komponenten 120', 130', 140' entsprechenden Datenpfade, wobei mit einer Adresswertermittlung assoziierte Datenpfade in 11 mit dem Bezugszeichen a gekennzeichnet sind, wobei mit einer Eingangswertermittlung assoziierte Datenpfade in 11 mit dem Bezugszeichen b gekennzeichnet sind, und wobei mit einer Auswertung assoziierte Datenpfade in 11 mit dem Bezugszeichen c gekennzeichnet sind.
  • Die Konfigurationseinrichtung ist in 11 ebenfalls nicht eingezeichnet - diese kann bei weiteren beispielhaften Ausführungsformen z.B. innerhalb eines Offsets FB1, .., FB5 angeordnet sein, z.B. sofern sie den betreffenden Offset konfiguriert, sowie außerhalb der Offsets, z.B. sofern die Konfiguration für mehrere Offsets zuständig ist.
  • In dem vorliegenden Beispiel gemäß 11 haben die Offsets FB2, FB3, FB4 jeweils eine Rückkopplung b, c zu sich selbst, z.B. um die eigenen Eingangswerte neu zu berechnen und zu überschreiben. Ebenso sendet Offset FB2 z.B. eine Statusinformation c an den nachfolgenden Offset FB3, der diese Statusinformation c auswerten kann. Beispielsweise kann der nachfolgende Offset FB3 jeweils genau dann voranschreiten bzw. die eigenen Eingangswerte durch Überschreiben aktualisieren, wenn der Offset FB2 eine Dimension vollständig durchlaufen hat bzw. wenn Offset FB2 beispielsweise aus Sicht vom FB3 die innere Schleife durchlaufen hat und somit FB3 als äußere Schleife um eine Iteration voranschreiten kann, und die innere Schleife FB2 erneut starten kann. Die von FB2 und FB3 durchlaufenen Dimensionen bzw. Schleifen können bei weiteren beispielhaften Ausführungsformen jeweils linear oder nicht-linear sein. Die Art und Weise des Durchlaufens jeder der Schleifen von FB2 sowie das Voranschreiten von FB3 kann beispielsweise jeweils gleichartig oder jeweils unterschiedlich sein. Beispielsweise können Startwert, Ende-Wert und Inkrement von FB2 gleichartig und/oder unterschiedlich sein. Für FB3 kann der Inkrement gleichartig oder unterschiedlich sein.
  • Bei weiteren beispielhaften Ausführungsformen können die Offsets z.B. zur Erzeugung eines Adresswerts aufaddiert werden, vgl. den Block FB5, wobei einzelne Offsets z.B. in Abhängigkeit vom Status der Offsets und/oder der Konfiguration entsprechend der Konfigurationseinrichtung aufaddiert oder nicht aufaddiert werden.
  • Bei weiteren beispielhaften Ausführungsformen können anstelle einer z.B. dedizierten Hardware-Realisierung der Komponenten 120', 130', 140' Funktionalitäten der Komponenten 120', 130', 140' in einer Hardware-Umsetzung z.B. auch teilweise oder ganz überlappend realisiert sein. Beispielsweise kann eine bei weiteren beispielhaften Ausführungsformen für die Neuberechnung eines Eingangswertes verwendete Operation bzw. eine entsprechende Hardwareschaltung hierfür bei weiteren beispielhaften Ausführungsformen auch zur Berechnung des auszugebenden Adresswerts verwendet werden.
  • Bei weiteren beispielhaften Ausführungsformen kann die Vorrichtung 100, 100a, 100b bzw. eine Instanz der Vorrichtung 100, 100a, 100b mehrere Kontexte, beispielsweise in Form von Registersätzen, aufweisen und z.B. dazu ausgebildet sein, zwischen den mehreren Kontexten bzw. Registersätzen umschalten.
  • Somit kann bei weiteren beispielhaften Ausführungsformen ein physikalisch vorhandenes Rechenwerk z.B. von zwei logisch unabhängigen Adresswertberechnungen verwendet werden, die sich z.B. die vorhandenen physikalischen Ressourcen, z.B. entsprechend durch Umschaltung der Kontexte bzw. Registersätze, teilen.
  • Die folgenden Ausführungsbeispiele zeigen weitere mögliche Ausprägungen und Konfigurationen gemäß weiteren beispielhaften Ausführungsformen. Dabei sind die vorstehend beschriebenen statischen und/oder dynamischen Konfigurationsparameter nicht explizit aufgeführt, sind - sofern optional vorhanden - jedoch z.B. ersichtlich durch die beispielhaft dargestellten Eingangswerte sowie die durchgeführten Berechnungen, Vergleiche, Operationen, etc.
  • 12 zeigt schematisch ein vereinfachtes Diagramm gemäß weiteren beispielhaften Ausführungsformen, bei denen Adresswerte für einen Zugriff auf ein zweidimensionales Array (Speicher- bzw. Datenfeld), z.B. ein 2x3 Elemente großes Array, ermittelbar sind. Ein erster Funktionsblock FB1, „Offset#0“, charakterisiert eine Start- bzw. Basis-Adresse des Arrays, z.B. 0x1000. Ein zweiter Funktionsblock FB2, „Offset#1“, ermöglicht einen Beitrag zur Bildung des Adresswerts gemäß einer ersten Dimension des Arrays, und ein dritter Funktionsblock FB3, „Offset#2“, ermöglicht einen Beitrag zur Bildung des Adresswerts gemäß einer zweiten Dimension des Arrays. FB1 ist zur besseren Übersichtlichkeit nicht dargestellt.
  • Beispielhaft gilt für den zweiten Funktionsblock FB2, „Offset#1”:
    Eingangswerte und initiale Werte:
    • o START_SAVE = 0
    • o START = 0
    • o STOP = 2
    • o INCREMENT = 1
    • □ (a1): Ermittlung Ausgabewert von Offset#1 (a1)
    • o = START
    • □ (b1): Ermittlung und Überschreiben der Eingangswerte von Offset #1 (b1)
    • o START = START + INCREMENT (c1_finished = false)
    • o START = START_SAVE (c1_finished = true)
    • □ (c1) Auswertungsschaltung zur Beeinflussung / Steuerung von Offset #1 (c1)
    • o Bei dieser beispielhaften Ausführungsformen erfolgt ein Fortschreiten der Berechnung z.B. nur, falls die generierte Adresse bzw. der generierte Adresswert AW verwendet wurde, sonst z.B. kompletter Stopp der Berechnungen dieses Offsets
    • o c1_finished = START + INCREMENT >= STOP
  • Beispielhaft gilt für den dritten Funktionsblock FB3, „Offset#2“:
    Eingangswerte und initiale Werte:
    • o START = 0
    • o STOP = 6
    • o INCREMENT = 2
    • □ (a2):
    • o = START
    • □ (b2):
    • o START = START + INCREMENT
    • □ (c2):Bei weiteren beispielhaften Ausführungsformen erfolgt ein Fortschreiten der Berechnung, z.B. nur, falls c1_finished = true, sonst z.B. kompletter Stopp der Berechnungen dieses Offsets
    • o c2_finished = START + INCREMENT >= STOP
  • Bei weiteren beispielhaften Ausführungsformen erfolgt eine Kombination der Offsets bzw. der Ausgangsdaten der drei Funktionsblöcke FB1, FB2, FB3 z.B. gemäß AW= a0 + a1 + a2, vgl. Block FB4.
    • □ (c)
    • o kompletter Stopp der Berechnungen aller Offsets, falls c2_finished = true
  • Bei weiteren beispielhaften Ausführungsformen ändern sich die Eingangswerte und die berechnete Adresse AW basierend auf der Konfiguration gemäß 12 z.B. wie folgt:
    Offset#Register Takt#0 Takt#1 Takt#2 Takt#3 Takt#4 Takt#5
    0#BASE_ADDR 0x1000 0x1000 0x1000 0x1000 0x1000 0x1000
    1#START 0 1 0 1 0 1
    1#STOP 2 2 2 2 2 2
    1#INCREMENT 1 1 1 1 1 1
    1#START_SAVE 0 0 0 0 0 0
    2#START 0 0 2 2 4 4
    2#STOP 6 6 6 6 6 6
    2#INCREMENT 2 2 2 2 2 2
    berechnete Adresse 0x1000 0x1001 0x1002 0x1003 0x1004 0x1005
  • Weitere beispielhafte Ausführungsformen beziehen sich auf eine Erzeugung von Adressen bzw. Adresswerten eines Arrays der Dimension 2x3 bzw. für ein solches Array, die z.B. als zu 12 alternativ angesehen werden kann. Beispielsweise kann die in 12 beispielhaft abgebildete Konfiguration auch wie folgt verwendet werden:
    • Offset#1
    • □ Eingangswerte und initiale Werte
    • o START = Basis-Adresse des Arrays, z.B. 0x1000
    • o STOP = Basis-Adresse des Arrays, z.B. 0x1018 (entsprechend 6 Wörter * 4 Byte je Wort = +24 (dezimal) = +0x18 (hexadezimal)")
    • o INCREMENT = 4 (32 bit Wortzugriffe)
    • □ (a1):
    • o = START
    • □ (b1):
    • o START = START + INCREMENT
    • □ (c1)
    • o Fortschreiten der Berechnung erfolgt nur falls die generierte Adresse verwendet wurde, sonst kompletter Stopp der Berechnungen dieses Offsets
    • o c1_finished = START + INCREMENT >= STOP
  • Kombination der Offsets:
    • □ (a):
    • o= a1
    • □ (c)
    • o kompletter Stopp der Berechnungen aller Offsets, falls c1_finished = true
  • Die Eingangswerte und die berechnete Adresse ändern sich wie folgt:
    Offset#Register Takt#0 Takt#1 Takt#2 Takt#3 Takt#4 Takt#5
    1#START 0x1000 0x1004 0x1008 0x100C 0x1010 0x1014
    1#STOP 0x1018 0x1018 0x1018 0x1018 0x1018 0x1018
    1#INCREMENT 4 4 4 4 4 4
    berechnete Adresse 0x1000 0x1004 0x1008 0x100C 0x1010 0x1014
  • Weitere beispielhafte Ausführungsformen beziehen sich auf eine Erzeugung von Adressen bzw. Adresswerten für eine Dreiecks-Matrix.
  • Eine Dreiecksmatrix kann bei weiteren beispielhaften Ausführungsformen z.B. aufbauend auf dem zuvor unter Bezugnahme auf 12 gezeigten Beispiel wie folgt adressiert werden: Offset#0 beinhaltet die Basis-Adresse, Offset#1 schreitet spaltenweise durch die Matrix, Offset#2 schreitet zeilenweise durch die Matrix, die Matrix ist z.B. quadratisch, z.B. 3x3.
  • Soll beispielsweise die obere Dreiecksmatrix durchlaufen werden, ist es bei weiteren beispielhaften Ausführungsformen beispielsweise möglich, den Eingangswert „START“ nach jedem Durchlauf einer Zeile nicht auf den START_SAVE Wert zurückzusetzen, sondern z.B. auf einen Wert, der von „0“ startend fortlaufend um den Wert „+1“ erhöht wird. Dies kann beispielsweise durch einen zweiten „INCREMENT“ Wert erreicht werden, der neben dem „START“ Eingangswert ebenfalls modifiziert wird.
    • Offset#1 Eingangswerte und initiale Werte o START_SAVE = 0 o START = 0 o STOP = 3 o INCREMENT_1 = 1 o INCREMENT_2 = 1
    • (a1): o = START
    • (b1): o START = START + INCREMENT_1 (c1_finished = false) o START = START_SAVE + INCREMENT_2 (c1_finished = true) o INCREMENT_2 = INCREMENT_2 + 1 (c1_finished = true)
    • (c1) Bei weiteren beispielhaften Ausführungsformen erfolgt das Fortschreiten der Berechnung z.B. nur, falls die generierte Adresse bzw. der generierte Adresswert verwendet wurde, sonst erfolgt z.B. ein kompletter Stopp der Berechnungen dieses Offsets o c1_finished = START + INCREMENT >= STOP
  • Die Eingangswerte und die berechnete Adresse ändern sich z.B. wie folgt:
    Offset#Register Takt#0 Takt#1 Takt#2 Takt#3 Takt#4 Takt#5
    0#BASE ADDR 0x1000 0x1000 0x1000 0x1000 0x1000 0x1000
    1#START 0 1 2 1 2 2
    1#STOP 3 3 3 3 3 3
    1#INCREMENT 1 1 1 1 1 1 1
    1#INCREMENT 2 1 1 1 2 2 2
    1#START SAVE 0 0 0 0 0 0
    2#START 0 0 0 3 3 6
    2#STOP 9 9 9 9 9 9
    2#INCREMENT 3 3 3 3 3 3
    berechnete Adresse 0x1000 0x1001 0x1002 0x1004 0x1005 0x1008
  • Eine weitere Alternative zur Erzeugung von Adressen bzw. Adresswerten einer Dreiecks-Matrix gemäß weiteren beispielhaften Ausführungsformen ist folgende:
    • Offset#1 Eingangswerte und initiale Werte o START_SAVE = 0 o START = 0 o STOP = 3 o INCREMENT = 1
    • (a1): o = START
    • (b1): o START = START + INCREMENT (c1_finished = false) o START = START_SAVE (c1_finished = true) o STOP = STOP - 1 (c1_finished = true)
    • (c1) Bei weiteren beispielhaften Ausführungsformen erfolgt das Fortschreiten der Berechnung z.B. nur, falls die generierte Adresse bzw. der generierte Adresswert verwendet wurde, sonst erfolgt z.B. ein kompletter Stopp der Berechnungen dieses Offsets o c1_finished = START + INCREMENT >= STOP
    • Offset#2: Eingangswerte und initiale Werte o START = 0
    • o STOP = 9 o INCREMENT = 4
    • (a2): o = START
    • (b2): o START = START + INCREMENT
    • (c2) o Fortschreiten der Berechnung erfolgt z.B. nur, falls c1_finished = true, sonst z.B. kompletter Stopp der Berechnungen dieses Offsets o c2_finished = START + INCREMENT >= STOP
  • Die Eingangswerte und die berechnete Adresse ändern sich wie folgt:
    Offset#Register Takt#0 Takt#1 Takt#2 Takt#3 Takt#4 Takt#5
    0#BASE ADDR 0x1000 0x1000 0x1000 0x1000 0x1000 0x1000
    1#START 0 1 2 0 1 0
    1#STOP 3 3 3 2 2 1
    1#INCREMENT 1 1 1 1 1 1
    1#START SAVE 0 0 0 0 0 0
    2#START 0 0 0 4 4 8
    2#STOP 9 9 9 9 9 9
    2#INCREMENT 4 4 4 4 4 4
    berechnete Adresse 0x1000 0x1001 0x1002 0x1004 0x1005 0x1008
  • 13 zeigt schematisch ein vereinfachtes Diagramm gemäß weiteren beispielhaften Ausführungsformen, bei denen z.B. logarithmisch ansteigende Adresswerte durch Schiebeoperationen für eine FFT (Fast Fourier Transform, schnelle Fourier-Transformation) ermittelbar bzw. erzeugbar sind.
  • Bei einer FFT werden die Daten gemäß weiteren beispielhaften Ausführungsformen auf eine spezielle Art und Weise eingelesen, beispielsweise dargestellt durch das in 13 abgebildete Schema, das eine 1024-Punkte FFT mit z.B. 10 Stufen charakterisiert. Dargestellt sind die jeweils ersten Zugriffe in den ersten 3 Stufen ST0, ST1, ST2, ST3 auf die Adressen [I], [I+K] und [T] gemäß weiteren beispielhaften Ausführungsformen. Auf [I], [I+K] und [T] wird gemäß weiteren beispielhaften Ausführungsformen lesend zugegriffen, auf [I] und [I+K] auch schreibend.
  • Es ist zu erkennen, dass für [I], [I+K] und [T] die Anzahl direkt hintereinanderliegender Adressen bzw. Adresswerte (also um +1 erhöht) logarithmisch zunimmt (1, 2, 4, 8, ...). Um im Rahmen der Berechnung einer FFT gemäß weiteren beispielhaften Ausführungsformen die Daten von [I], [I+K] und [T] parallel einzulesen sowie [I], [I+K] zu schreiben, sind beispielsweise insgesamt 5, z.B. autarke, Instanzen der Vorrichtung 100 gemäß den Ausführungsformen verwendbar. Alternativ können gemäß weiteren beispielhaften Ausführungsformen zur Berechnung der Adressen auch Gleichteile wiederverwendet werden.
  • Gemäß weiteren beispielhaften Ausführungsformen können die Offsets für [I] sinngemäß wie folgt ausgeprägt sein:
    • Offset#0 * enthält konstante Basis-Adresse
    • Offset#1 * Startwert für jeden Durchlauf = 0 * Inkrementwert zur laufenden Erhöhung der Adressen = 1 * initialer Stoppwert = 1, nach jedem Durchlauf des Offsets (Erreichen des Stopp-Wertes) überschreiben durch: Stoppwert = Stoppwert SHL 1 (Linksschieben um 1) somit ergibt sich für die gebildeten Adressen bzw. Adresswerte für Stufe#0 ST0: 0 -> 0 -> 0 ... somit ergibt sich für die gebildeten Adressen bzw. Adresswerte für Stufe#1 ST1: 0, 1 -> 0, 1 -> 0, 1 ... somit ergibt sich für die gebildeten Adressen bzw. Adresswerte für Stufe#2 ST2: 0, 1, 2, 3 -> 0, 1, 2, 3 -> 0, 1, 2, 3 ...
    • Offset#2 * Startwert = 0 * initialer Inkrementwert = 2, nach jedem Durchlauf des Offsets (Erreichen des Stopp-Wertes) überschreiben durch: Inkrementwert = Inkrementwert SHL 1 (Linksschieben um 1) * Stoppwert = 1024 somit ergibt sich für die gebildeten Adressen bzw. Adresswerte für Stufe#0 ST0: 0, 2, 4, ..., 1022 somit ergibt sich für die gebildeten Adressen bzw. Adresswerte für Stufe#1 ST1: 0, 4, 8, 12, ..., 1020 somit ergibt sich für die gebildeten Adressen bzw. Adresswerte für Stufe#2 ST2: 0, 8, 16, 32, ..., 1016
    • Offset#3 * Startwert = 0 * Stoppwert = 10, entsprechend der Anzahl der Stufen der FFT (0 bis 9, also 10)
  • Beispielhaft gehen die gebildeten Adressen bzw. Adresswerte für die Stufen dabei nicht in die Adressberechnung ein, sondern dienen lediglich z.B. als Schleifenzähler
    Bei weiteren beispielhaften Ausführungsformen können die Offsets für [I+K] sinngemäß an [I], s.o., angelehnt sein, beispielsweise jedoch mit dem Unterschied, dass der Startwert des Offsets#2 mit 1 beginnt und jeweils um 1 Bit nach links geschoben wird.
  • Bei weiteren beispielhaften Ausführungsformen können die Offsets für [T] sinngemäß an [I], s.o., angelehnt sein, mit folgenden beispielhaften Anpassungen.
    • Offset#0 * enthält Basis-Adresse
    • Offset#1 * Startwert für jeden Durchlauf = 0 * initialer Inkrementwert = 512, nach jedem Durchlauf des Offsets (Erreichen des Stopp-Wertes) überschreiben durch: Inkrementwert = Inkrementwert SRL 1 (Rechtsschieben um 1) * Stoppwert = 512 somit ergibt sich für die gebildeten Adressen bzw. Adresswerte für Stufe#0: 0 -> 0-> 0 ... somit ergibt sich für die gebildeten Adressen bzw. Adresswerte für Stufe#1: 0, 256 -> 0, 256 -> 0, 256 ... somit ergibt sich für die gebildeten Adressen bzw. Adresswerte für Stufe#2: 0, 128, 256, 384 -> 0, 128, 256, 384 -> 0, 128, 256, 384...
    • Offset#2 * Startwert für jeden Durchlauf = 0 * initialer Inkrementwert = 1, nach jedem Durchlauf des Offsets (Erreichen des Stopp-Wertes) überschreiben durch: Inkrementwert = Inkrementwert SHL 1 (Linksschieben um 1) * Stoppwert = 512 somit ergibt sich für die gebildeten Adressen bzw. Adresswerte für Stufe#0: 0, 1, 2, 3, ...511 -> 0, 1, 2, 3, ... 511 -> ... somit ergibt sich für die gebildeten Adressen bzw. Adresswerte für Stufe#1: 0, 2, 4, 6 ..., 510 -> 0, 2, 4, 6, ..., 510 -> ... somit ergibt sich für die gebildeten Adressen bzw. Adresswerte für Stufe#2: 0, 4, 8, 12, ..., 508 -> 0, 4, 8, 12, ..., 508 -> ...
  • Wichtig: die gebildeten Adressen für die Stufen gehen dabei nicht in die Adressberechnung ein, sondern dienen lediglich als Schleifenzähler
    • Offset#3 * Startwert = 0 * Stoppwert = 10, entsprechend der Anzahl der Stufen der FFT (0 bis 9, also 10)
  • Bei weiteren beispielhaften Ausführungsformen gehen die gebildeten Adressen bzw. Adresswerte für die Stufen nicht in die Adressberechnung ein, sondern dienen z.B. lediglich als Schleifenzähler.
  • In den zuvor genannten Beispielen werden beispielhaft Links- und Rechts-Schiebeoperationen um den festen Betrag von 1 eingesetzt.
  • Bei weiteren beispielhaften Ausführungsformen sind auch von 1 abweichende z.B. konstante Verschiebungen möglich, ebenso sind bei weiteren beispielhaften Ausführungsformen Schiebeoperationen um einen variablen Wert möglich. In diesem Fall bildet z.B. einer der Eingangswerte den zu schiebenden Wert und ein zweiter der Eingangswerte den Wert, um den geschoben wird.
  • 14 zeigt schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen. Abgebildet ist ein Beispiel für eine Kopplung von zwei Instanzen der Vorrichtung 100 gemäß den Ausführungsformen zur Erzeugung z.B. wahlfreier / direkter Adressen bzw. Adresswerte, beispielsweise für einen Zugriff auf eine nicht vollbesetzte Matrix (Sparse Matrix).
  • Eine erste Instanz der Vorrichtung 100 ist in 14 mit dem Bezugszeichen B10 bezeichnet, eine zweite Instanz der Vorrichtung 100 ist in 14 mit dem Bezugszeichen B11 bezeichnet. Die Bezugszeichen B10a, B11a symbolisieren eine jeweilige Speicherladeeinheit, die mittels der Blöcke B10, B11 gebildete Adresswerte AW10, AW11 verwenden. Die erste Instanz B10 erzeugt dabei z.B. Adressen bzw. Adresswerte AW10, die eine relative Position von Daten beschreibt, die z.B. die wahlfreien - z.B. aus dem Speicher zu ladenden - Adressen enthält. Diese Adressen AW10 werden der ersten Ladeeinheit B10a übermittelt, die sodann die Daten aus dem Speicher mit den wahlfreien Adressen einliest (z.B. aus einer Speichereinrichtung 10). Die erste Ladeeinheit B10a schreibt z.B. die eingelesenen wahlfreien Adressen nun als Eingangswerte in die zweite Instanz B11, die wiederum z.B. aus den eintreffenden wahlfreien Adressen zusammen mit einer internen Berechnung eine finale Adresse bzw. einen finalen Adresswert AW11 berechnet. Vorteilhaft ist z.B. der Einsatz von zwei Ladeeinheiten B10a, B11a, die unabhängig voneinander auf getrennte Speicherbereiche zugreifen können: z.B. einen ersten Speicherbereich 10a, der die wahlfreien - zu ladenden - Adressen enthält, und einen zweiten Speicherbereich 10b, auf den die wahlfreien Adressen angewandt werden. Die beiden Speicherbereiche 10a, 10b können sich beispielsweise innerhalb desselben physikalischen Speichers oder in voneinander getrennten physikalischen Speichern befinden.
  • Bei weiteren beispielhaften Ausführungsformen können z.B. die Offsets für das Einlesen der wahlfreien Adressen wie folgt konfiguriert sein (B10).
    • Offset#0 * enthält Basis-Adresse der einzulesenden wahlfreien Adressen
    • Offset#1 * Startwert = 0 * Inkrementwert = 1 * Stoppwert = Anzahl der einzulesenden wahlfreien Adressen
    • ggf. (optional) Offset#2 Z.B. zum Einlesen mehrerer Bereiche mit wahlfreien Adressen, wobei die berechnete Adresse auf Offset#1 aufaddiert würde. Z.B. zum mehrmaligen Einlesen desselben Bereichs mit wahlfreien Adressen, wobei die berechnete Adresse nicht auf Offset#1 aufaddiert würde.
  • Z.B. können die Offsets für die Erzeugung der Adresswerte für die Daten mit den wahlfreien Adressen wie folgt konfiguriert sein (B11)
    • Offset#0 * enthält Basis-Adresse des Speicherbereichs, auf den die wahlfreien Adressen angewandt werden
    • Offset#1 * Startwert = 0 * Inkrementwert = z.B. Eingangswert von extern beschrieben, wird z.B. nach jeder Verwendung/nach jeder Adresswerterzeugung invalidiert, von extern werden Daten z.B. nur akzeptiert sofern der Inkrementwert invalide ist. * Stoppwert = Anzahl der einzulesenden wahlfreien Adressen Sofern die Anzahl der einzulesenden wahlfreien Adressen unbekannt ist, kann beispielsweise ein von extern geschriebener Inkrementwert, der, addiert mit dem Startwert, den Stoppwert überschreitet, zum Abbruch der Berechnung führen. Alternativ könnte ein weiterer von extern empfangener Eingangswert, z.B. ein Loop-Level das letzte Element einer Serie von wahlfreien Adressen anzeigen.
    • ggf. Offset#2 Z.B. zum Einlesen mehrerer Speicherbereiche, auf die die wahlfreien Adressen angewandt werden, wobei die berechnete Adresse auf Offset#1 aufaddiert würde. Z.B. zum Einlesen desselben Speicherbereichs, auf den die wahlfreien Adressen angewandt werden, wobei die berechnete Adresse nicht auf Offset#1 aufaddiert würde.
  • Bei weiteren beispielhaften Ausführungsformen ist auch eine z.B. hierarchische Kopplung mehrerer Instanzen der Vorrichtung gemäß den Ausführungsformen zur Erzeugung individueller Adressen je Lade-/Speichereinheit B10a, B11a z.B. unter Vermeidung redundanter Teilberechnungen verwendbar.
  • Nachfolgend ist ein Beispiel für die Durchführung eines Wraps (Umlauf) an einer Speichergrenze gemäß weiteren beispielhaften Ausführungsformen angegeben: Durch eine Auswertung von Eingangswerten lässt sich prüfen, ob Adressen bzw. Adresswerte innerhalb eines bestimmten Bereichs bzw. Wertebereichs liegen. Liegen die Adressen außerhalb des Bereichs, so kann bei weiteren beispielhaften Ausführungsformen beispielsweise eine Subtraktion dieses Bereichs z.B. von dem betreffenden Adresswert vorgenommen werden. Dadurch kann bei weiteren beispielhaften Ausführungsformen z.B. das Verhalten eines Wraps realisiert werden:
    • Offset#0 * enthält Basis-Adresse des Speicherbereichs
    • Offset#1 * Startwert = 5 * Inkrementwert = 1 * Stoppwert = 8, wird jeweils um 1 dekrementiert * Wrap-Wert = 8
  • Die Eingangswerte und die berechnete Adresse ändern sich bei weiteren beispielhaften Ausführungsformen wie folgt:
    Offset#Register Takt#0 Takt#1 Takt#2 Takt#3 Takt#4 Takt#5 Takt#6 Takt#7
    0#BASE ADDR 0x1000 0x1000 0x1000 0x1000 0x1000 0x1000 0x1000 0x1000
    1#START 5 6 7 0 1 2 3 4
    1#INCREMENT 1 1 1 1 1 1 1 1
    1#STOP 8 7 6 5 4 3 2 1
    1#WRAP 8 8 8 8 8 8 8 8
    berechnete Adresse 0x1005 0x1006 0x1007 0x1000 0x1001 0x1002 0x1003 0x1004
  • 15 zeigt schematisch ein vereinfachtes Diagramm gemäß weiteren beispielhaften Ausführungsformen. Bei der Filterung von Daten, z.B. der Filterung eines Video-Bildes mit Hilfe eines Kantenfilters, können z.B. spezielle Randbehandlungen verwendet werden. Das ist z.B. der Fall, wenn die Größe des Ziel-Bildes der Größe des Eingangsbildes entsprechen soll, da der Filter über den Rand des Bildes „hinausragt“. In diesem Fall werden die Bildpunkte des Eingangsbildes, die außerhalb des tatsächlichen Eingangsbildes liegen, z.B. als „0“ gewertet, es wird also ein Auffüllen mit „0“ (im Englischen „Padding“) ausgeführt. Bei weiteren Ausführungsformen wird der betreffende Wert nicht als „0“ aufgefüllt, d.h. geschrieben, sondern z.B. nur als dieses angenommen. Liegen z.B. die Zeilen eines Bildes direkt aneinander, würde das Schreiben einer „0“ außerhalb einer Zeile effektiv sogar das in der Regel unzulässige Überschreiben eines Bildpunkts der Vorgänger- oder Nachfolgezeile bedeuten.
  • Bei weiteren beispielhaften Ausführungsformen kann es von Vorteil sein, die Adresserzeugung bzw. Adresswerterzeugung zu überprüfen, z.B. dergestalt, ob der jeweilige Bildpunkt außerhalb des tatsächlichen Bildes liegt. In diesem Fall könnte bei weiteren beispielhaften Ausführungsformen beispielsweise eine gänzlich andere Adresse erzeugt werden, die beispielsweise auf eine Speicherstelle zeigt, in dem der Wert „0“ liegt.
  • Im eine vorliegend betrachteten „Beispiel A“ wird z.B. ein Bild der Größe 5x5 mit einem 3×3 Filter gefiltert, s. 15. Der Filter filtert z.B. gerade die Zeile „0“, Punkt „0“, s. die linke Abbildung aus 15. Die Eingangswerte des Bildes zur Filterung mit den Filter Koordinaten (0, 0), (1, 0), (2, 0), (0, 1), (0, 2) sind nicht verfügbar, da die korrespondierenden Bildpunkte (-1, -1), (0, -1), (1, -1), (-1, 0), (-1, 1) außerhalb des Bildes liegen. Die Vorrichtung 100 gemäß den Ausführungsformen könnte beispielsweise über einen z.B. internen Eingangswert verfügen, der den Wert „-1“ hat. Durch eine interne Prüfung gemäß weiteren beispielhaften Ausführungsformen könnte z.B. durch eine Auswertung gegenüber dem Wert „0“ festgestellt werden, dass „-1“ kleiner ist als „0“. Durch eine entsprechende Konfiguration könnte gemäß weiteren beispielhaften Ausführungsformen - anstelle den Wert „-1“ zu verwenden, ein gänzlich anderer Eingangswert verwendet werden, z.B. ein Eingangswert, der den Wert „25“ enthält, der beispielsweise außerhalb der Bilddaten (mit den Adresswerten 0 bis 24 entsprechend der Größe 5x5) liegt und den Datenwert „0“ enthält - z.B. den für das Padding verwendbaren Wert. Die Prüfung könnte gemäß weiteren beispielhaften Ausführungsformen beispielsweise gegenüber dem Zeilenindex und/oder dem Index eines Punktes innerhalb einer Zeile angewandt werden.
  • Ein weiteres mögliches „Beispiel B“ gemäß weiteren beispielhaften Ausführungsformen baut auf dem vorstehend beschriebenen „Beispiel A“ auf. Die Eingangswerte des Bildes zur Filterung mit den Filter Koordinaten (0, 2), (1, 2), (2, 2), (2, 0), (2, 1) sind nicht verfügbar, da die korrespondierenden Bildpunkte (3, 5), (4, 5), (5, 5), (5, 3), (5, 4) außerhalb des Bildes liegen, vgl. die rechte Abbildung von 15. Hier könnte gemäß weiteren beispielhaften Ausführungsformen eine weitere interne Prüfung von Zeilen und Bildpunktindex durchgeführt werden - und zwar gegenüber dem Wert „5“. Durch eine entsprechende Konfiguration könnte gemäß weiteren beispielhaften Ausführungsformen analog dem o.g. - anstelle den Wert „5“ auszugeben, beispielsweise ebenfalls die Adresse „25“ ausgegeben werden, die außerhalb der Werte des 5x5 Bildes liegt und insbesondere den Wert „0“ für das Padding enthalten kann.
  • Alternativ, anstatt mit jedem Padding fortlaufend auf Adresse „25“ zuzugreifen, könnte gemäß weiteren beispielhaften Ausführungsformen beispielsweise auch eine gesamte zusätzliche Zeile mit dem Index „5“ bestehen (außerhalb der Zeilen 0 bis 4 des 5x5 Bildes), die mit Padding-Werten aufgefüllt ist. Dadurch braucht kein Zeilenüberlauf geprüft werden. Jedoch könnten darüber hinaus beispielsweise die weiterhin gemäß weiteren beispielhaften Ausführungsformen auszuführenden Speicherzugriffe für das Padding der Bildpunkte innerhalb einer Zeile, d.h. die aufgrund des Paddings außerhalb einer Zeile liegenden Spalten, auf die verschiedenen Bildpunkte der Zeile „5“ verteilt werden, um vielfache Zugriffe auf immer dieselbe Speicherbank zu unterbinden, was gemäß weiteren beispielhaften Ausführungsformen sonst möglicherweise zu einem größeren Einbruch der Performance führen würde als eine Verteilung der Paddingzugriffe auf mehrere Bänke.
  • Weitere beispielhafte Ausführungsformen, 16, beziehen sich auf eine Verwendung 400 der Vorrichtung gemäß den Ausführungsformen und/oder der Einrichtung zum Laden und/oder Speichern von Daten gemäß den Ausführungsformen und/oder des Systems gemäß den Ausführungsformen und/oder der Recheneinrichtung gemäß den Ausführungsformen und/oder des Verfahrens gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Ermittlung 402 von Adresswerten, beispielsweise für einen Zugriff auf eine Speichereinrichtung, b) Ermittlung 404 von Adresswerten gemäß unterschiedlichen, beispielsweise komplexen, Adressierungsarten, c) Versorgen 406 einer Einrichtung zum Laden und/oder Speichern von Daten und/oder einer Recheneinrichtung mit Adresswerten für Zugriffe auf eine Speichereinrichtung, d) Ableiten 408 von Adresswerten basierend auf anderen Adresswerten und/oder Konfigurationsdaten, e) Ermitteln 410 von Adresswerten basierend auf wenigstens einem statischen Konfigurationsparameter, f) Ermitteln 412 von Adresswerten basierend auf wenigstens einem dynamischen Konfigurationsparameter.
  • Das Prinzip gemäß den Ausführungsformen kann bei weiteren beispielhaften Ausführungsformen beispielsweise zur effizienten Ermittlung von Adresswerten für Speicherzugriffe (z.B. Lesen und/oder Schreiben) verwendet werden, beispielsweise für Hardwarebeschleuniger und/oder für eine Hardware zur Auswertung eines Datenflusses („Datenflussprozessor“). Bei weiteren beispielhaften Ausführungsformen kann eine Bereitstellung und/oder Speicherung von Daten bzw. die Erzeugung entsprechender Adresswerte AW für die Bereitstellung und/oder Speicherung der Daten für einen zu berechnenden Algorithmus genauso schnell erfolgen wie z.B. eine Berechnung des Algorithmus (im Sinne des Durchsatzes). Mit anderen Worten sind durch das Prinzip gemäß den Ausführungsformen Adresswerte für Speicherzugriffe so schnell ermittelbar bzw. bereitstellbar, dass Algorithmen - auch auf z.B. spezieller Beschleuniger-Hardware - effizient ausführbar sind, insbesondere z.B. ohne dass die Auswertung der Algorithmen zumindest zeitweise ausgesetzt bzw. verlangsamt werden muss, weil beispielsweise auf eine Bildung von Adresswerten für zukünftig auszuwertende Schritte des Algorithmus gewartet werden muss. Mit anderen Worten können beispielhafte Ausführungsformen für eine Ausführung von Algorithmen nutzbare Adresswerte so schnell ermitteln bzw. bereitstellen (z.B. einer Einheit 5 zum Laden/Speichern von Daten), dass eine den Algorithmus ausführbare Einrichtung nicht auf die Adresswerte warten muss („Echtzeit“ bzw. „relative Echtzeit“).
  • Das Prinzip gemäß den Ausführungsformen kann bei weiteren beispielhaften Ausführungsformen dazu verwendet werden, eine Hardwareschaltung (z.B. mit der Funktionalität der Vorrichtung 100, 100a, 100b, 100c) zur Adressgenerierung bzw. Adresswertgenerierung bereitzustellen, die z.B. autark, z.B. in jedem Takt eines Taktsignals, eine neue Adresse bzw. einen neuen Adresswert AW ermittelt, beispielsweise auch bezüglich Adressen für komplexe Zugriffsmuster.
  • Weitere beispielhafte Ausführungsformen können es ermöglichen, dass die Adresserzeugung z.B. gleich schnell wie bzw. parallel zu der Verwendung der Adressen stattfinden kann. Dadurch können die Adressen bzw. Adresswerte z.B. parallel zur Ausführung eines Algorithmus generiert werden.
  • Weitere beispielhafte Ausführungsformen ermöglichen eine z.B. native Unterstützung komplexer Adress-Zugriffsmuster, was z.B. aus algorithmischer Sicht eine hochperformante Bereitstellung von Daten in einer Reihenfolge ermöglicht, z.B. um komplexe Algorithmen ohne zusätzliche Wartezeiten (z.B. auf Adresswerte bzw. hierauf basierende Speicherzugriffe) auszuführen. Dadurch können bei weiteren beispielhaften Ausführungsformen z.B. nachfolgende Recheneinheiten optimal mit Daten versorgt werden bzw. vorgelagerte Recheneinheiten Daten optimal speichern.
  • Beispielsweise ist es durch das Prinzip gemäß den Ausführungsformen möglich, zumindest zeitweise auf herkömmliche Verfahren zu verzichten, insbesondere auf eine zeitaufwändige Berechnung der Adressen und/oder auf eine vorherige Umstrukturierung oder Manipulation der Daten, die jeweils mit zusätzlicher Laufzeit und zusätzlichem Energiebedarf einhergehen.
  • Die Adressgenerierung bzw. Adresswertgenerierung gemäß den Ausführungsformen kann z.B. in Kombination mit mindestens einer Lade- bzw. Speichereinheit 5 (4) verwendet werden, wobei die erzeugten Adressen unmittelbar oder mittelbar als Speicheradresse z.B. in der Lade- bzw. Speichereinheit verwendet werden können. In der Lade- bzw. Speichereinheit 5 können so typischerweise z.B. in jedem Takt neue Daten angefordert bzw. geschrieben werden.
  • Eine weitere vorteilhafte Verwendung des Prinzips gemäß den Ausführungsformen ist eine Erzeugung von Datenwerten AW, die nicht im Sinne einer Adresse, sondern als tatsächliche Daten verwendet werden. Diese erzeugten Datenwerte AW können beispielsweise direkt für nachfolgende Berechnungen verwendet werden.
  • Die Vorrichtung gemäß den Ausführungsformen ist z.B. bezüglich der zu unterstützenden komplexen Zugriffsmuster sowie z.B. hinsichtlich Fläche bzw. Flächenverbrauch und/oder Performanz und/oder Energie skalierbar. Die tatsächliche Realisierung für ein konkretes Zielsystem (z.B. Mikrocontroller 300) kann somit bei weiteren beispielhaften Ausführungsformen für einen tatsächlichen Anwendungszweck optimal angepasst werden.

Claims (21)

  1. Vorrichtung (100) zur Ermittlung von Adresswerten, beispielsweise für einen Zugriff auf eine Speichereinrichtung (10), wobei die Vorrichtung (100) einen Eingangswertspeicher (110) zur zumindest zeitweisen Speicherung (202) von wenigstens zwei Eingangswerten (EW1, EW2) aufweist, wobei die Vorrichtung (100) dazu ausgebildet ist, zumindest zeitweise basierend auf den wenigstens zwei Eingangswerten (EW1, EW2) wenigstens einen Adresswert (AW1) zu ermitteln (204).
  2. Vorrichtung (100) nach Anspruch 1, wobei die Vorrichtung (100) wenigstens eine Eingangsschnittstelle (102a) zum Empfang (200) wenigstens eines ersten Eingangswerts (EW1) bzw. der wenigstens zwei Eingangswerte (EW1, EW2) aufweist, beispielsweise von einer weiteren, z.B. externen, Einheit (20).
  3. Vorrichtung (100) nach wenigstens einem der vorstehenden Ansprüche, wobei die Vorrichtung (100) wenigstens eine Ausgangsschnittstelle (102b) zur Ausgabe (206) des wenigstens einen Adresswerts (AW1) aufweist.
  4. Vorrichtung (100) nach wenigstens einem der vorstehenden Ansprüche, wobei die Vorrichtung (100) wenigstens eine Adresswertermittlungseinrichtung (120) aufweist, die dazu ausgebildet ist, den Adresswert (AW1) zu ermitteln.
  5. Vorrichtung (100) nach wenigstens einem der vorstehenden Ansprüche, wobei die Vorrichtung (100) dazu ausgebildet ist, zumindest zeitweise wenigstens einen neuen Eingangswert (EW-neu) zu ermitteln (210), beispielsweise basierend auf wenigstens einem ersten Eingangswert (EW1) der wenigstens zwei Eingangswerte (EW1, EW2) bzw. basierend auf den wenigstens zwei Eingangswerten (EW1, EW2), und, optional, wenigstens einen in dem Eingangswertspeicher (110) gespeicherten Eingangswert mit dem neuen Eingangswert (EW-neu) zu überschreiben (212).
  6. Vorrichtung (100) nach wenigstens einem der vorstehenden Ansprüche, wobei die Vorrichtung (100) wenigstens eine Eingangswertermittlungseinrichtung (130) aufweist, die dazu ausgebildet ist, zumindest zeitweise wenigstens einen bzw. den wenigstens einen neuen Eingangswert (EW-neu) zu ermitteln (210), beispielsweise basierend auf wenigstens einem ersten Eingangswert (EW1) der wenigstens zwei Eingangswerte (EW1, EW2) bzw. basierend auf den wenigstens zwei Eingangswerten (EW1, EW2).
  7. Vorrichtung (100) nach wenigstens einem der vorstehenden Ansprüche, wobei die Vorrichtung (100) dazu ausgebildet ist, zumindest zeitweise a) wenigstens einen ersten Eingangswert (EW1) der wenigstens zwei Eingangswerte (EW1, EW2) bzw. b) die wenigstens zwei Eingangswerte (EW1, EW2) auszuwerten (220), wobei ein Auswertungsergebnis (AE) erhalten wird, und basierend auf dem Auswertungsergebnis (AE) zumindest zeitweise wenigstens eines der folgenden Elemente zu beeinflussen (222): a) das Ermitteln (204) des wenigstens einen Adresswerts (AW1), b) den wenigstens einen Adresswert (AW1), c) Adresswertermittlungseinrichtung (120), d) das Ermitteln (210) des neuen Eingangswerts (EW-neu), e) das Überschreiben (212) des wenigstens einen in dem Eingangswertspeicher (110) gespeicherten Eingangswerts mit dem neuen Eingangswert (EW-neu).
  8. Vorrichtung (100) nach wenigstens einem der vorstehenden Ansprüche, wobei die Vorrichtung (100) wenigstens eine Auswertungseinrichtung (140) aufweist, die dazu ausgebildet ist, zumindest zeitweise a) wenigstens einen ersten Eingangswert (EW1) der wenigstens zwei Eingangswerte (EW1, EW2) bzw. b) die wenigstens zwei Eingangswerte (EW1, EW2) auszuwerten (220), wobei ein Auswertungsergebnis (AE) erhalten wird, und basierend auf dem Auswertungsergebnis (AE) zumindest zeitweise wenigstens eines der folgenden Elemente zu beeinflussen (222): a) das Ermitteln (204) des wenigstens einen Adresswerts (AW1), b) den wenigstens einen Adresswert (AW1), c) Adresswertermittlungseinrichtung (120), d) das Ermitteln (210) des neuen Eingangswerts (EW-neu), e) das Überschreiben (212) des wenigstens einen in dem Eingangswertspeicher (110) gespeicherten Eingangswerts mit dem neuen Eingangswert (EW-neu).
  9. Vorrichtung (100) nach wenigstens einem der vorstehenden Ansprüche, wobei die Vorrichtung (100) wenigstens eine Konfigurationseinrichtung (150) aufweist, die dazu ausgebildet ist, zumindest zeitweise eine Konfiguration wenigstens eines der folgenden Elemente zu beeinflussen und/oder zu verändern (230): a) Vorrichtung (100), b) Eingangswertspeicher (110), c) Adresswertermittlungseinrichtung (120), d) Eingangswertermittlungseinrichtung (130), e) Auswertungseinrichtung (140), f) Eingangsschnittstelle (102a), g) Ausgangsschnittstelle (102b), wobei beispielsweise das Verändern (230) zumindest zeitweise basierend auf wenigstens einem statischen Konfigurationsparameter (KP-stat) und/oder basierend auf wenigstens einem dynamischen Konfigurationsparameter (KP-dyn) ausgeführt (230a, 230b, 230c) wird.
  10. Vorrichtung (100) nach wenigstens einem der vorstehenden Ansprüche, wobei die Vorrichtung (100) dazu ausgebildet ist, zumindest zeitweise Adresswerte (AW-A) gemäß einer ersten, beispielsweise komplexen, Adressierungsart zu ermitteln (240) und zumindest zeitweise Adresswerte (AW-B) gemäß einer zweiten, beispielsweise komplexen, Adressierungsart zu ermitteln (242), wobei beispielsweise die Vorrichtung (100) zur Ermittlung bzw. Erzeugung und/oder Kombination einer Mehrzahl von sich linear und/oder nicht-linear ändernden Adresswerten ausgebildet ist.
  11. Vorrichtung (100) nach wenigstens einem der vorstehenden Ansprüche, wobei wenigstens eine Komponente (110, 120, 130, 140, 150) der Vorrichtung (100) dazu ausgebildet ist, zumindest zeitweise wenigstens eine der folgenden Operationen auszuführen: a) Addition, b) Subtraktion, c) arithmetisches und/oder logisches Schieben, d) Multiplikation, e) Nutzen bzw. Auswerten wenigstens einer Lookup-Tabelle, z.B. Umsetzungstabelle, f) Butterfly, g) Inverse Increment, h) Vergleiche gegenüber Null, beispielsweise größer Null und/oder kleiner Null und/oder größer gleich Null und/oder kleiner gleich Null, und/oder Vergleiche gegenüber Werten ungleich Null, i) wenigstens eine Kombination aus den vorstehend aufgeführten Operationen a), b), c), d), e), f), g), h), wobei beispielsweise als Eingangswerte für wenigstens manche der Operationen a), b), c), d), e), f), g), h), i) Variablen und/oder Konstanten verwendbar sind.
  12. Vorrichtung (100) nach wenigstens einem der vorstehenden Ansprüche, wobei die Vorrichtung (100) dazu ausgebildet ist, zumindest zeitweise wenigstens einen Eingangswert (EW1) zu invalidieren, beispielsweise als ungültig zu erklären und/oder zu behandeln (250), und, optional, einen Betrieb wenigstens einer Komponente (110, 120, 130, 140, 150) der Vorrichtung (100) zumindest zeitweise anzuhalten (252), und, optional, einen bzw. den Betrieb der wenigstens einen angehaltenen Komponente (110, 120, 130, 140, 150) der Vorrichtung (100) fortzuführen (254).
  13. Vorrichtung (100) nach wenigstens einem der vorstehenden Ansprüche, wobei die Vorrichtung (100) dazu ausgebildet ist, zumindest zeitweise ein Schreiben von Daten in den Eingangswertspeicher (110) und/oder ein Schreiben bzw. Überschreiben von Eingangswerten zu blockieren und/oder einen Betrieb wenigstens einer Komponente der Vorrichtung (100) zumindest zeitweise anzuhalten.
  14. Vorrichtung (100) nach wenigstens einem der vorstehenden Ansprüche, wobei die Vorrichtung (100), beispielsweise vollständig, als Hardwareschaltung ausgebildet ist.
  15. Einrichtung (5) zum Laden und/oder Speichern von Daten, aufweisend wenigstens eine Vorrichtung (100) zur Ermittlung von Adresswerten nach wenigstens einem der vorstehenden Ansprüche, wobei beispielsweise die Einrichtung (5) dazu ausgebildet ist, die Vorrichtung (100) zum Ermitteln wenigstens eines Adresswerts (AW1), beispielsweise für einen Schreibzugriff und/oder einen Lesezugriff auf eine Speichereinrichtung (10), zu nutzen.
  16. System (1000) zur Ermittlung von Adresswerten, beispielsweise für einen Zugriff auf eine Speichereinrichtung (10), aufweisend wenigstens zwei Vorrichtungen (100-1, 100-2) gemäß wenigstens einem der vorstehenden Ansprüche.
  17. Recheneinrichtung (300), beispielsweise Mikrocontroller, aufweisend wenigstens eine Vorrichtung (100) zur Ermittlung von Adresswerten nach wenigstens einem der Ansprüche 1 bis 14 und/oder wenigstens eine Einrichtung (5) zum Laden und/oder Speichern von Daten nach Anspruch 15 und/oder wenigstens ein System (1000) nach Anspruch 16.
  18. Verfahren zur Ermittlung von Adresswerten, beispielsweise für einen Zugriff auf eine Speichereinrichtung (10), aufweisend: zumindest zeitweises Speichern (202) von wenigstens zwei Eingangswerten (EW1, EW2) in einem Eingangswertspeicher (110), zumindest zeitweises Ermitteln (204) wenigstens eines Adresswerts (AW1) basierend auf den wenigstens zwei Eingangswerten (EW1, EW2).
  19. Verfahren nach Anspruch 18, weiter aufweisend: Ermitteln (210) eines neuen Eingangswerts (EW-neu), beispielsweise basierend auf wenigstens einem ersten Eingangswert (EW1) der wenigstens zwei Eingangswerte (EW1, EW2) bzw. basierend auf den wenigstens zwei Eingangswerten (EW1, EW2), und, optional, Überschreiben (212) wenigstens eines in dem Eingangswertspeicher (110) gespeicherten Eingangswerts mit dem neuen Eingangswert (EW-neu).
  20. Verfahren nach wenigstens einem der Ansprüche 18 bis 19, wobei die Vorrichtung (100) zumindest zeitweise a) wenigstens einen ersten Eingangswert (EW1) der wenigstens zwei Eingangswerte (EW1, EW2) bzw. b) die wenigstens zwei Eingangswerte (EW1, EW2) auswertet (220), wobei ein Auswertungsergebnis (AE) erhalten wird, und wobei die Vorrichtung (100) basierend auf dem Auswertungsergebnis (AE) zumindest zeitweise wenigstens eines der folgenden Elemente beeinflusst (222): a) das Ermitteln (204) des wenigstens einen Adresswerts (AW1), b) den wenigstens einen Adresswert (AW1), c) eine Adresswertermittlungseinrichtung (120), d) das Ermitteln (210) des neuen Eingangswerts (EW-neu), e) das Überschreiben (212) des wenigstens einen in dem Eingangswertspeicher (110) gespeicherten Eingangswerts mit dem neuen Eingangswert (EW-neu).
  21. Verwendung (400) der Vorrichtung (100) nach wenigstens einem der Ansprüche 1 bis 14 und/oder der Einrichtung (5) nach Anspruch 14 und/oder des Systems (1000) nach Anspruch 16 und/oder der Recheneinrichtung (300) nach Anspruch 17 und/oder des Verfahrens nach wenigstens einem der Ansprüche 18 bis 20 für wenigstens eines der folgenden Elemente: a) Ermittlung (402) von Adresswerten, beispielsweise für einen Zugriff auf eine Speichereinrichtung (10), b) Ermittlung (404) von Adresswerten (AW-A) gemäß unterschiedlichen, beispielsweise komplexen, Adressierungsarten. beispielsweise im Zeitmultiplex, c) Versorgen (406) einer Einrichtung (5) zum Laden und/oder Speichern von Daten und/oder einer Recheneinrichtung (300) mit Adresswerten für Zugriffe auf eine Speichereinrichtung (10), d) Ableiten (408) von Adresswerten basierend auf anderen Adresswerten und/oder Konfigurationsdaten, e) Ermitteln (410) von Adresswerten basierend auf wenigstens einem statischen Konfigurationsparameter (KP-stat), f) Ermitteln (412) von Adresswerten basierend auf wenigstens einem dynamischen Konfigurationsparameter (KP-dyn).
DE102021203225.7A 2021-03-30 2021-03-30 Vorrichtung und Verfahren zur Ermittlung von Adresswerten Pending DE102021203225A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102021203225.7A DE102021203225A1 (de) 2021-03-30 2021-03-30 Vorrichtung und Verfahren zur Ermittlung von Adresswerten
US17/696,135 US20220318131A1 (en) 2021-03-30 2022-03-16 Device and method for ascertaining address values
CN202210317953.5A CN115145835A (zh) 2021-03-30 2022-03-29 用于确定地址值的设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021203225.7A DE102021203225A1 (de) 2021-03-30 2021-03-30 Vorrichtung und Verfahren zur Ermittlung von Adresswerten

Publications (1)

Publication Number Publication Date
DE102021203225A1 true DE102021203225A1 (de) 2022-10-06

Family

ID=83282752

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021203225.7A Pending DE102021203225A1 (de) 2021-03-30 2021-03-30 Vorrichtung und Verfahren zur Ermittlung von Adresswerten

Country Status (3)

Country Link
US (1) US20220318131A1 (de)
CN (1) CN115145835A (de)
DE (1) DE102021203225A1 (de)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745337B2 (en) * 2007-12-31 2014-06-03 Teradyne, Inc. Apparatus and method for controlling memory overrun
US8195916B2 (en) * 2009-03-04 2012-06-05 Qualcomm Incorporated Apparatus and method to translate virtual addresses to physical addresses in a base plus offset addressing mode
US8719374B1 (en) * 2013-09-19 2014-05-06 Farelogix, Inc. Accessing large data stores over a communications network
JP6960479B2 (ja) * 2017-03-14 2021-11-05 アズールエンジン テクノロジーズ ヂュハイ インク.Azurengine Technologies Zhuhai Inc. 再構成可能並列処理

Also Published As

Publication number Publication date
CN115145835A (zh) 2022-10-04
US20220318131A1 (en) 2022-10-06

Similar Documents

Publication Publication Date Title
DE2350225A1 (de) Anordnung fuer ein rechnersystem zur variablen ausblendung von informationen
EP2765528B1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
DE4022885C2 (de) Verfahren zum Verschieben von Speicherbereichen und Hierarchie-Speichersystem
DE2350215A1 (de) Rechnersystem sowie bei diesem verwendbares mehrebenen-speichersystem
DE2755273A1 (de) Mikroprozessor
DE2501853A1 (de) Prozessor fuer ein datenverarbeitungssystem
DE4134192A1 (de) Integrierter schaltkreis mit verarbeitung im speicher
EP2954440B1 (de) Verändern eines signalwerts eines fpga zur laufzeit
DE102015222096A1 (de) Schaltung, System und Verfahren zum Speicher-Patchen
DE19957594B4 (de) Verfahren zum Synchronisieren von threads eines Computerprogramms
WO2005003960A2 (de) Prozessorarchitektur für exakte zeigeridentifizierung
DE102013101300A1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
DE102021203225A1 (de) Vorrichtung und Verfahren zur Ermittlung von Adresswerten
DE102017209856A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE102010027906A1 (de) Datenverwaltungsverfahren und speicherprogrammierbare Steuerung
CH670715A5 (de)
DE2710436C2 (de) Datenverarbeitungseinrichtung
DE102022112459A1 (de) Techniken zum effizienten synchronisieren mehrerer programmthreads
DE102014012155A1 (de) Verbesserte verwendung von speicherressourcen
DE69626282T2 (de) Programmierbare vorrichtung und verfahren zum befehlsauffang
DE102006043167B4 (de) Mikrocontroller und Verfahren zum Starten eines Anwendungsprogramms auf einem Mikrocontroller
DE10393188T5 (de) Verarbeitung von Wiederholungs-String-Operationen
DE102021108478A1 (de) System und Verfahren zur Cache-Verzeichnis-TCAM-Fehlererkennung und - Korrektur
DE112017008201B4 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
DE102016216950A1 (de) Modellberechnungseinheit und Steuergerät zur Berechnung eines mehrschichtigen Perzeptronenmodells mit Vorwärts- und Rückkopplung