[go: up one dir, main page]

DE102016218280B4 - Vorrichtung, die einen Überlagerungsmechanismus umfasst, System mit Vorrichtungen, die jeweils einen Überlagerungsmechanismus mit einer individuellen programmierbaren Verzögerung umfassen - Google Patents

Vorrichtung, die einen Überlagerungsmechanismus umfasst, System mit Vorrichtungen, die jeweils einen Überlagerungsmechanismus mit einer individuellen programmierbaren Verzögerung umfassen Download PDF

Info

Publication number
DE102016218280B4
DE102016218280B4 DE102016218280.3A DE102016218280A DE102016218280B4 DE 102016218280 B4 DE102016218280 B4 DE 102016218280B4 DE 102016218280 A DE102016218280 A DE 102016218280A DE 102016218280 B4 DE102016218280 B4 DE 102016218280B4
Authority
DE
Germany
Prior art keywords
memory
overlay
access
processor
delay
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.)
Active
Application number
DE102016218280.3A
Other languages
English (en)
Other versions
DE102016218280A1 (de
Inventor
Neil Hastie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102016218280.3A priority Critical patent/DE102016218280B4/de
Priority to US15/711,391 priority patent/US10653315B2/en
Priority to JP2017182357A priority patent/JP2018049622A/ja
Publication of DE102016218280A1 publication Critical patent/DE102016218280A1/de
Application granted granted Critical
Publication of DE102016218280B4 publication Critical patent/DE102016218280B4/de
Priority to US16/874,763 priority patent/US11096578B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/0002Remote monitoring of patients using telemetry, e.g. transmission of vital signals via a communication network
    • A61B5/0004Remote monitoring of patients using telemetry, e.g. transmission of vital signals via a communication network characterised by the type of physiological signal transmitted
    • A61B5/0006ECG or EEG signals
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/0002Remote monitoring of patients using telemetry, e.g. transmission of vital signals via a communication network
    • A61B5/0031Implanted circuitry
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/02Detecting, measuring or recording for evaluating the cardiovascular system, e.g. pulse, heart rate, blood pressure or blood flow
    • A61B5/0205Simultaneously evaluating both cardiovascular conditions and different types of body conditions, e.g. heart and respiratory condition
    • A61B5/02055Simultaneously evaluating both cardiovascular condition and temperature
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/24Detecting, measuring or recording bioelectric or biomagnetic signals of the body or parts thereof
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/24Detecting, measuring or recording bioelectric or biomagnetic signals of the body or parts thereof
    • A61B5/316Modalities, i.e. specific diagnostic methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/60ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix

Landscapes

  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Animal Behavior & Ethology (AREA)
  • Veterinary Medicine (AREA)
  • Pathology (AREA)
  • Biomedical Technology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Medical Informatics (AREA)
  • Molecular Biology (AREA)
  • Surgery (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Theoretical Computer Science (AREA)
  • Cardiology (AREA)
  • Physiology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Pulmonology (AREA)
  • Neurology (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

Eine Vorrichtung 1 umfasst einen Überlagerungsmechanismus 4, der konfiguriert oder konfigurierbar ist, um einen Zugriff, der zu einem ersten Speicherplatz 5, 10 gerichtet ist, zu einem zweiten Speicherplatz 7, 11 umzulenken. Der Überlagerungsmechanismus 4 ist konfiguriert oder konfigurierbar, um den Zugriff auf den zweiten Speicherplatz 7, 11 in dem Fall einer Umlenkung zu verzögern.Ein Verfahren zum Überlagern von Daten umfasst das Umlenken eines Zugriffs S1, der zu einem ersten Speicherplatz 5, 10 gerichtet ist, zu einem zweiten Speicherplatz 7, 11. Das Verfahren zum Überlagern von Daten verzögert selektiv den Zugriff S2 auf den zweiten Speicherplatz 7, 11 um eine Zeit in dem Fall einer Umlenkung.

Description

  • Technisches Gebiet
  • Ausführungsformen gemäß der Erfindung betreffen eine Vorrichtung, die einen Überlagerungsmechanismus umfasst. Weitere erfindungsgemäße Ausführungsformen gemäß der Erfindung betreffen ein System, das mindestens zwei Vorrichtungen umfasst.
  • Stand der Technik
  • Die Veröffentlichung „Emulation of Object-Based Storage Devices by a Virtual Machine“ beschreibt eine Emulation objektbasierter Speichereinrichtungen durch eine virtuelle Maschine.
  • Die Veröffentlichung „Time-accurate Storage Emulation“ beschreibt eine Speicheremulation mit hoher Zeitgenauigkeit.
  • Die US 2014 / 0 325 129 A1 beschreibt ein Verfahren und eine Vorrichtung zur aktiven Bereichsabbildung für eine nichtflüchtige Speichereinrichtung.
  • Die Aufgabe der vorliegenden Erfindung ist ein verbessertes Konzept unter Verwendung eines Überlagerungsmechanismusses zu schaffen.
  • Kurzdarstellung der Erfindung
  • Eine erfindungsgemäße Ausführungsform schafft eine Vorrichtung, die einen Überlagerungsmechanismus umfasst, der konfiguriert oder konfigurierbar ist, um einen Zugriff, der zu einem ersten Speicherplatz gerichtet ist, zu einem zweiten Speicherplatz umzulenken. Der Überlagerungsmechanismus ist konfiguriert oder konfigurierbar, um den Zugriff auf den zweiten Speicherplatz in dem Fall einer Umlenkung zu verzögern.
  • Eine andere erfindungsgemäße Ausführungsform schafft ein System, das eine erste Vorrichtung, wie oben beschrieben, umfasst, wobei die erste Vorrichtung einen ersten Prozessor umfasst. Das System umfasst auch eine zweite Vorrichtung gemäß einem der vorhergehenden Ansprüche, wobei die zweite Vorrichtung einen zweiten Prozessor umfasst. Das System umfasst eine Busstruktur, die eine Vielzahl von Bussegmenten und eine Vielzahl von Speichern umfasst. Der erste Prozessor und der zweite Prozessor sind mit den Speichern über die Busstruktur gekoppelt. Eine Verzögerung des Überlagerungsmechanismus der ersten Vorrichtung und eine Verzögerung des Überlagerungsmechanismus der zweiten Vorrichtung sind individuell programmierbar.
  • Figurenliste
  • Erfindungsgemäße Ausführungsformen werden unten unter Bezugnahme auf die beiliegenden Figuren beschrieben, in welchen:
    • 1 schematisch eine Vorrichtung veranschaulicht, die das Funktionsprinzip gemäß einer ersten Ausführungsform aufweist, wobei die Vorrichtung einen Überlagerungsmechanismus umfasst, der fähig ist, eine Umlenkung von Daten auszuführen und einen Zugriff auf einen zweiten Speicherplatz zu verzögern;
    • 2 schematisch eine zweite Ausführungsform veranschaulicht, wobei mittels eines Datenzugriffs auf einen Zielspeicher und auf einen Überlagerungsspeicher zugegriffen werden kann, wobei ein Datenzugriff von dem Zielspeicher zu dem Überlagerungsspeicher überlagert werden kann;
    • 3 schematisch eine dritte Ausführungsform veranschaulicht, wobei veranschaulicht ist, wie ein Überlagerungszugriff durch Verzögern oder Blockieren einiger Zyklen aufgeschoben werden kann;
    • 4 schematisch eine vierte Ausführungsform veranschaulicht und sich darauf konzentriert, wie die Wechselwirkung zwischen einer Vorrichtung und einem ersten und einem zweiten Speicherplatz über einen Bus interagieren kann;
    • 5 eine fünfte Ausführungsform veranschaulicht, die eine verbesserte Version der Ausführungsform, die in 4 veranschaulicht ist, ist, die mehrere Aktoren mindestens einer Vorrichtung, einen ersten Speicherplatztyp und einen zweiten Speicherplatztyp hat;
    • 6 eine sechste Ausführungsform veranschaulicht, die eine verbesserte Version der Ausführungsform, die in den 4 oder 5 veranschaulicht ist, ist, um zu veranschaulichen, wie mehrere Busse oder Bussegmente mittels mindestens einer Brücke interagieren können, die die Schnittstelle zwischen mindestens zwei Bussegmenten oder Bussen, die zu verbinden sind, bildet;
    • die 7a und 7b eine Vorrichtung und die Schnittstelle der Vorrichtung mit einem Bus gemäß einer siebten Ausführungsform veranschaulichen, wobei eine Verzögerungseinheit innerhalb der Vorrichtung (7a) oder an der Schnittstelle zwischen dem Bus und der Vorrichtung (7b) ist; und
    • 8 ein Ablaufdiagramm einer Ausführungsform zeigt, die veranschaulicht, wie ein Verfahren zum Überlagern von Daten funktioniert, darunter ein darauf folgender Zugriff auf einen zweiten Speicherplatz.
  • Ausführliche Beschreibung der Ausführungsformen
  • In 1 ist eine erste Vorrichtung 1 veranschaulicht, die zum Beispiel mindestens zwei externe Schnittstellen 2, 3 hat. Die erste Schnittstelle 2 ist zu einem Zugriff fähig, der zu einem ersten Speicherplatz gerichtet ist, und die zweite Schnittfläche 3 ist zu einem Zugriff fähig, der zu einem zweiten Speicherplatz gerichtet ist. Die Schnittstellen zum Zugreifen auf den ersten und den zweiten Speicherplatz 2, 3 können dieselbe physische und/oder logische Struktur einsetzen, die zum Beispiel ein Bus sein kann. Innerhalb der Vorrichtung 1 befindet sich ein Überlagerungsmechanismus 4, der ein Überlagern von Daten von einem ersten Speicherplatz 5 zu einem zweiten Speicherplatz 7 steuert oder verwaltet. Der Überlagerungsmechanismus 4 kann durch einen Prozessor 1a verwendet werden, der Teil der Vorrichtung 1 ist, und kann zum Beispiel unter Verwenden einer ausreichend schnellen Hardwareschaltung (oder, alternativ, unter Verwenden einer mikroprogrammierten Schaltung oder eines Prozessors) umgesetzt werden.
  • Dabei ist die Änderung einer Lage von Daten nicht sichtbar oder kann für eine Anwendungssoftware unsichtbar sein. Die Anwendungssoftware kann daher mit dem Prozessor 1a während der Produktentwicklung interagieren. Die Produktentwicklung kann zum Beispiel das Kalibrieren von Brennkraftmaschinen-Verwaltungssystemen umfassen. Das kann technisch umgesetzt werden, da die Lageänderung der Daten durch Hardware innerhalb der Vorrichtung 1 ausgeführt wird. Die Vorrichtung 1 oder der Prozessor 1a kann zum Beispiel durch ein Debug-/Kalibrierungssystem oder durch eine Anwendungssoftware, die zu dem Debug-/Kalibrierungssystem gehört, gesteuert werden. Die Anwendungssoftware kann auch auf der Vorrichtung 1 oder, genauer genommen, auf dem Prozessor 1a, ausgeführt werden.
  • Die Vorrichtung 1, die den Überlagerungsmechanismus 4 oder das entsprechende Verfahren zum Überlagern von Daten umfasst, kann durch den Prozessor 1a innerhalb der Vorrichtung 1, die einen Zugriff auf den ersten Speicherplatz anfordert, gesteuert werden. Der Überlagerungsmechanismus 4 kann zu dem Prozessor 1a gehören oder kann eine dedizierte Hardware sein, die dem Prozessor zugeordnet ist (zum Beispiel mit dem Prozessor unter Verwenden einer Speicherschnittstelle gekoppelt ist). Der Prozessor 1a selbst kann versuchen, auf Daten, die in dem ersten Speicherplatz gespeichert sind, zuzugreifen. Bei der Signal- oder Datenverarbeitung, kann der Prozessor 1a eine Anfrage um Abrufen von Daten, die in dem ersten Speicherplatz gespeichert sind, weiterleiten, oder Daten in dem ersten Speicherplatz speichern. Da nach dem Umlenken von Daten durch den Überlagerungsmechanismus 4 die Daten aus dem ersten Speicherplatz abgerufen oder in dem zweiten Speicherplatz an Stelle des ersten Speicherplatzes gespeichert werden, verwandelt der Überlagerungsmechanismus 4 eine Anfrage des Prozessors um Abrufen von Daten von dem ersten Speicherplatz in eine Anfrage zum Abrufen von Daten von dem zweiten Speicherplatz, wobei der zweite Speicherplatz in einer/einem physisch unterschiedlichen Speicherentität oder Speicherbereich oder Speicherstruktur im Vergleich zu dem ersten Speicherplatz sein kann. Alternativ kann eine Anfrage des Prozessors 1a um Speicherung von Daten in dem ersten Speicherplatz von dem Überlagerungsmechanismus in eine Anfrage um Speicherung von Daten in dem zweiten Speicherplatz umgewandelt werden. Der Überlagerungsmechanismus 4 ist konfiguriert oder konfigurierbar, um den Zugriff auf den zweiten Speicherplatz in dem Fall einer Umlenkung zu verzögern. Mit anderen Worten können in dem Fall eines Datenherauslesens die Daten, die von dem zweiten Speicherplatz erzielt werden, zum Beispiel zu dem Prozessor 1a mit etwas absichtlich eingefügter „Extra“-Verzögerung (die länger ist als eine physisch unvermeidbare Verzögerung zum Abrufen von Daten von dem zweiten Speicherplatz und zum Transportieren der Daten von dem zweiten Speicherplatz zu dem Überlagerungsmechanismus) bereitgestellt werden. In dem Fall eines Datenschreibens kann ein Melden zu dem Prozessor, dass das Datenschreiben abgeschlossen ist, zum Beispiel (absichtlich) durch den Überlagerungsmechanismus verzögert werden.
  • Die Verzögerung des Überlagerungsmechanismus 4 der Vorrichtung 1 kann zum Beispiel programmierbar sein. Das Verfahren kann das Programmieren einer Verzögerung oder einer Zielzugriffszeit, die mindestens angewandt werden kann, um den Zugriff auf den zweiten Speicherplatz zu verzögern, umfassen. Ein Benutzer oder menschlicher Benutzer kann zum Beispiel fähig sein, eine Zeit für das Zugreifen auf den ersten Speicherplatz und die Verzögerung für das Zugreifen auf den zweiten Speicherplatz zu schätzen. Da in diesem Fall der Benutzer in der Lage ist, die Zugriffszeiten zu schätzen, kann ein Benutzer die zusätzliche Verzögerung des Überlagerungsmechanismus 4 oder des Verfahrens zum Überlagern von Daten derart berechnen oder schätzen, dass ein Zugriff auf den zweiten Speicherplatz durch die Vorrichtung 1 nicht (oder nicht schneller als) ein Zugriff auf den ersten Speicherplatz möglich wäre, abgeschlossen werden kann.
  • Wie in 2 veranschaulicht, kann der erste Speicherplatz 5 innerhalb eines Zielspeichers 6 liegen, an dem die Vorrichtung 1, insbesondere ein Prozessor 1a, der zu der Vorrichtung 1 gehören kann, beabsichtigen kann, Daten zu speichern (oder von dem der Prozessor Daten abrufen kann). Statt Daten in dem ersten Speicherplatz 5 zu speichern, speichert der Überlagerungsmechanismus 4 oder ein entsprechendes Verfahren zum Überlagern von Daten, Daten in einem zweiten Speicherplatz 7, der innerhalb eines Überlagerungsspeichers 8 liegt. Die (eine oder mehreren) externen Schnittstellen 2, 3 können ebenfalls auf den jeweiligen Zielspeicher 6 und den jeweiligen Überlagerungsspeicher 8 zugreifen.
  • Ein Speicherplatz 5, 7 kann ein Bit, ein Byte oder eine Anzahl von Bytes innerhalb eines Speichers 6, 8 sein. Alternativ kann ein Platz 5, 7 ein gesamter Speicher 6, 8 sein. Ein Platz 5, 7 kann in Bereiche teilbar sein, die ein Teil oder eine Partition eines Platzes sind. Der erste Speicherplatz 5 und der zweite Speicherplatz 7 können unter bestimmten Umständen Teil desselben Speichers 6, 8 sein. In diesem Fall sind der Zielspeicher 6 und der Überlagerungsspeicher 8 derselbe Speicher 6, 8. Der erste Speicherplatz und der zweite Speicherplatz sind jedoch typisch Teil physisch getrennter Speicher (zum Beispiel Speicher, die unterschiedliche Speichertechnologien verwenden, und/oder Speicher, die unterschiedliche Zugriffszeiten haben).
  • Bei dem Überlagerungsmechanismus 4 kann es eine programmierbare Tabelle von Zieladressbereichen und einen dazu gehörenden Satz von Umlenkadressbereichen geben, die zu ersetzen sind, falls ein Datenzugriff auf den Zielzugriffsbereich ausgeführt wird. Dabei liegen die umgelenkten Adressbereiche innerhalb des Überlagerungsspeichers 8 und/oder in dem zweiten Speicherplatz 7. Die Änderung des Platzes ist eventuell für die Anwendungssoftware, die mit der Vorrichtung 1 interagiert, nicht sichtbar, kann aber durch Hardware 4 innerhalb der Vorrichtung 1 ausgeführt werden, bevorzugt auf Anfrage des Prozessors 1a innerhalb der Vorrichtung 1, unter der Kontrolle eines Debug-/Kalibrierungssystems. Die programmierbare Tabelle kann Teil der Hardware 4 sein. Der Überlagerungsmechanismus 4 wird bevorzugt innerhalb von Hardware ausgeführt.
  • Eine solche Vorrichtung 1 erlaubt folglich die logische Übersetzung von Adressen ohne Änderung von Anwendungssoftware. Die Vorrichtung 1 erlaubt folglich zum Beispiel, dass die Flash-Datentabellen durch den SRAM überlagert werden. Die Anwendungssoftware kann die Vorrichtung 1 für Kalibrierungszwecke heranziehen, zum Beispiel die einer Maschine (oder Brennkraftmaschinensteuersoftware). Die Anwendungssoftware kann (mindestens teilweise) auf der Vorrichtung 1 oder auf dem Prozessor 1a ausgeführt werden. Mit anderen Worten, wird zum Beispiel Software zum Kalibrieren einer Maschine innerhalb der Vorrichtung 1 oder durch den Prozessor 1a, der Steuerparameter für eine Maschine ausgibt, ausgeführt. Bei einem realen Szenario, können die Zugriffszeiten auf einen ersten Speicherplatz 5 und auf den zweiten Speicherplatz 7 unterschiedlich sein. Da der erste Speicherplatz 5 oder Zielspeicher 6 oft ein Flash-Typ-Speicher ist, und der zweite Speicherplatz 7 oder der Überlagerungsspeicher 8 ein SRAM-Typ-Speicher ist, können sich die Zugriffszeiten aufgrund der unterschiedlichen Zugriffszeiten aufgrund unterschiedlicher physikalischer Eigenschaften unterscheiden. Das resultiert in unterschiedlichen Herauslesezeiten des ersten und zweiten Speicherplatzes 5, 7 aus den Speichern 6, 8. Die Herauslesezeit der Speicher 6, 8 und des ersten und des zweiten Speicherplatzes 5, 7 können sich auch aufgrund von Konkurrenz beim Zugreifen auf einen Speicher unterscheiden. Zum Beispiel können mehrere Vorrichtungen 1 versuchen, auf einen Speicherplatz 5, 7 oder einen Speicher 6, 8 zuzugreifen, das heißt auf denselben Speicher 6, 8 gleichzeitig, was die Herauslesezeit des jeweiligen Speicherplatzes 5, 7 oder Speicher 6, 8 verlängert. Konkurrenz kann auch durch mehrfachen Zugriff auf einen Bus, mit dem die Speicher 6, 8 gekoppelt sind, auftreten.
  • Die Vorrichtung 1 kann einen Prozessor 1a enthalten, der die Daten von dem Zielspeicher 5 oder von dem Überlagerungsspeicher 7, die von der Vorrichtung 1 herausgelesen werden, verarbeitet. Da die Daten in den meisten Fällen der Vorrichtung 1 oder dem Prozessor 1a schneller aus dem Überlagerungsspeicher 8 als aus dem Zielspeicher 6 selbst herausgelesen werden können, kann der Prozessor 1a in einem herkömmlichen System potentiell die Herauslesedaten früher verarbeiten als er soll. Das kann zu falscher Datenverarbeitung innerhalb des Prozessors 1a führen, weil das Verarbeiten zu früh auftritt. Ultimativ kann das in einem vollständigen Versagen resultieren, zum Beispiel falls gegen einige Timing-Annahmen in der Software verstoßen werden kann. Alternativ kann die Software in einem Entwicklungsmodus gut funktionieren, wenn ein schneller Speicher (zum Beispiel der Speicher 8) verwendet wird, aber in einem realen Anwendungsszenario, wenn ein langsamerer Speicher (zum Beispiel der Speicher 6) verwendet wird, versagen, was den Entwicklungsmodus unzuverlässig machen würde.
  • Der Überlagerungsmechanismus 4 oder das entsprechende Verfahren zum Überlagern von Daten kann folglich jedem Zieladressenbereich eine Zielzugriffszeit zuweisen. Gemäß der Offenbarung kann die Echtzeitleistung des Überlagerungssystems durch Ändern des Timing-Verhaltens des Überlagerungssystems verbessert werden. Das kann wie folgt funktionieren: Die Zielzugriffszeit kann die erwartete Anzahl von Zyklen beschreiben, die erforderlich ist, um einen Zugriff oder Zielzugriff von dem Prozessor 1a auszuführen. Wenn eine Überlagerungsverlagerung ausgeführt wird, wird die tatsächliche Anzahl von Zyklen, die erforderlich ist, um auf den Überlagerungsspeicher 8 zuzugreifen, gezählt. Falls die reale Anzahl von Zyklen, die für den Zugriff erforderlich ist (zum Beispiel auf den Überlagerungsspeicher 8) geringer ist als die Zielzugriffszeit, wird der Prozessor 1a um den Unterschied der Anzahl von Zyklen blockiert. Das erlaubt es, zusätzliche Zyklen zu der Zugriffszeit für den Überlagerungsspeicher 8 hinzuzufügen, um Zugriffszeit so zu geben, wie sie der Zielspeicher 6 ergeben hätte. Gemäß der Offenbarung kann die Echtzeitleistung des Überlagerungssystems folglich durch Ändern des Timing-Verhaltens des Überlagerungssystems verbessert werden. Gemäß der Offenbarung wird also nicht nur das Problem der Datentabellenlage gelöst, sondern auch das Problem von Datenzugriffszeiten. Das ist von Bedeutung, da die Zugriffszeit auf die Daten in einem Echtzeitsystem kritisch ist. Echtzeitbetrachtungen können von Interesse sein, da das Umschalten der Datentabellen von dem (potenziell langsamen) Flashspeicher zu dem (potenziell schnelleren) SRAM das Echtzeitverhalten des Systems verändert. Das kann unerwünschte Effekte verursachen.
  • So kann auf diese Art verhindert werden, dass Daten, die in dem Überlagerungsspeicher 8 gespeichert sind, herausgelesen werden, bevor (oder schneller als) Daten aus dem Zielspeicher 6 herausgelesen werden könnten. Als Resultat wird vermieden, dass die Vorrichtung 1 oder der Prozessor 1a Daten empfängt und verarbeitet, bevor sie/er bereit ist, Daten herauszulesen. Der Prozessor 1a kann zum Beispiel auch Daten in etwa mit derselben Verzögerung, ungeachtet dessen, ob ein Entwicklungsmodus (Speicherüberlagerung) verwendet wird oder nicht, erzielen. Das bedeutet, dass der Überlagerungsmechanismus 4 in dem Signalpfad von dem Überlagerungsspeicher 8 zu einer Vorrichtung 1 oder zu dem Prozessor 1a verhindert, dass das Weiterleiten von Daten auftritt, bevor die Vorrichtung 1 oder der Prozessor 1a dazu bereit ist (oder schneller als in einem Fall, in dem der Zielspeicher verwendet wird). In Wirklichkeit kann der Überlagerungsmechanismus 4 Teil der Vorrichtung 1 oder des Prozessors 1a sein, oder kann teilweise zu der Vorrichtung 1 oder dem Prozessor 1a gehören. In diesem Fall kann der Überlagerungsmechanismus 4 zum Beispiel das Weiterleiten zu diesem Teil der Vorrichtung 1 oder des Prozessors 1a, der die weitere Verarbeitung ausführt, verhindern. Mit anderen Worten kann die Hardware innerhalb des Prozessors 1a/der Vorrichtung 1 oder in dem Signalpfad sogar bevor der Prozessor 1a, die Vorrichtung 1, der/die für das Überlagern von Daten ein Weiterleiten von Datenherauslesung aus dem Überlagerungsspeicher 8 zu anderen Teilen des Prozessors 1a und/oder der Vorrichtung 1, die an dem Überlagern von Daten nicht beteiligt sind, sondern gewöhnliches Rechnen oder Verarbeiten ausführen, verantwortlich sind, während einiger Zeit verhindern oder verzögern.
  • Gemäß einer potentiellen Änderung kann die Verzögerung des Überlagerungsmechanismus 4 der Vorrichtungen 1 konfiguriert sein, um einen Unterschied zwischen Zugriffszeit des ersten Speicherplatzes 5 und des zweiten Speicherplatzes 7 mindestens teilweise zu kompensieren. Die entsprechende Änderung des Verfahrens umfasst auch, dass die Verzögerungszeit des Zugriffs oder die Zielzugriffszeit ausgewählt wird, um einen Zugriffszeitunterschied zwischen dem Zugreifen auf den ersten Speicherplatz 5 und dem Zugreifen auf den zweiten Speicherplatz 7 mindestens teilweise zu kompensieren.
  • Durch dieses Merkmal kann der Zugriffszeitunterschied mindestens teilweise kompensiert werden. Ein Zugriff auf Daten zu dem zweiten Speicherplatz 7 mittels des Überlagerungsmechanismus 4 wird derart verzögert, dass ein Zugriff auf den zweiten Speicherplatz 7 wahrscheinlicher abgeschlossen wird, wenn ein Direktzugriff der Vorrichtung 1 auf den ersten Speicherplatz 5 abgeschlossen würde. Es kann mindestens erzielt werden, dass die verringerte Zugriffszeit auf den zweiten Speicherplatz 7, der eventuell ein Speicher des SRAM-Typs ist, im Vergleich zu der Zugriffszeit auf den ersten Speicherplatz 5, der eventuell ein Speicher des Flash-Typs ist, wenigstens teilweise kompensiert wird. Aufgrund dieses Merkmals kann erzielt werden, dass ein Zugriff auf einen zweiten Speicherplatz 7 über den Überlagerungsmechanismus 4 während eines bestimmten Zeitbereichs oder einer bestimmten Verzögerung aufgeschoben oder verzögert wird.
  • Bei einem realen Szenario kann die Zugriffszeit auf den ersten Speicherplatz 5 variieren, so dass eine kürzere Zugriffszeit auf den zweiten Speicherplatz 5, die kürzer ist als die durchschnittliche Zugriffszeit auf den ersten Speicherplatz 5, möglich ist. Mit anderen Worten kann die Zugriffszeit auf den ersten Speicherplatz 5 mit einem bestimmten Durchschnitt willkürlich sein. Je mehr das Eingangssignal, das zu der anfragenden Vorrichtung 1 oder dem Prozessor 1a über den Überlagerungsmechanismus 4 kommt oder das Überlagerungsverfahren zu der durchschnittlichen Zugriffszeit auf den ersten Speicherplatz 5 verzögert ist, desto „realistischere“ Zugriffszeiten erreicht man in dem Fall einer Überlagerungssituation. Die Vorrichtung 1 kann daher „bereit“ sein, um sich mit dieser Eingabe zu befassen oder sie zu meistern. Eine Vorrichtung 1 oder ein Prozessor 1a kann zum Beispiel als bereit angesehen werden, sich mit einer Eingabe zu befassen oder sie zu meistern, falls eine Zugriffszeit auf einen Speicherplatz 5, 7 verstrichen ist. Typischerweise läuft eine Anwendungssoftware mit der Vorrichtung 1 oder dem Prozessor 1a oder wirkt mit ihr/ihm zusammen. Der Zugriff der Anwendungssoftware auf den Zielspeicher 6 oder den ersten Speicherplatz 5 ist typischerweise (oder wenigstens in einigen Situationen) willkürlicher Art. Im Allgemeinen ist jedoch für willkürliche Zugriffe auf den zweiten Speicherplatz 7, der ein RAM oder SRAM sein kann, ein schnellerer Zugriff möglich als auf den ersten Speicherplatz 5 oder den Zielspeicher 6, der ein Flashspeicher sein kann. Durch dieses Merkmal kann daher die Stabilität des Verarbeitungsvorgangs verbessert werden, da Signaleingabe von dem zweiten Speicherplatz 7 wahrscheinlicher auftritt, wenn die anfragende Vorrichtung 1 oder der anfragende Prozessor 1a das Eingangssignal verarbeiten kann, oder wenn das Eingangssignal „normalerweise“ (bei Abwesenheit einer Überlagerung) ankommen würde. Die Zugriffszeit kann Signalausbreitung, grundlegende Logikvorgänge und die Zeit umfassen, die erforderlich ist, um einen Speicherplatz 5, 7 (physisch) herauszulesen.
  • Mit anderen Worten erzielt man durch Verzögern der Zugriffszeit auf den zweiten Speicherplatz 7 durch den Überlagerungsmechanismus 4, dass eine Eingabe von Daten zu der Vorrichtung 1 oder Partitionen der Vorrichtung 1 auftritt, wenn die Vorrichtung 1 oder Partition der Vorrichtung 1 bereit ist, sich mit der Eingabe zu befassen, oder wenn die Eingabe normalerweise bei Abwesenheit einer Überlagerung ankommen würde. Das Echtzeit-Verhalten des Systems wird daher durch Überlagern von Daten von dem ersten Speicherplatz 5 zu dem zweiten Speicherplatz 7 nicht verändert, wobei der zweite Speicherplatz 7 typischerweise einen schnelleren Zugriff erlaubt als der erste Speicherplatz 5. Aus den oben genannten Gründen ist in einem Echtzeitsystem die Zugriffszeit auf die Daten kritisch, und Verbesserungen können durch Anpassen der Zugriffszeit in dem Fall von Speicherplatzüberlagerung im Vergleich mit einem Fall ohne Speicherplatzüberlagerung erzielt werden.
  • Gemäß einem anderen Aspekt kann der Überlagerungsmechanismus 4 konfiguriert sein, um einen Zugriff auf einen ersten Zielspeicherbereich 2 an dem ersten Speicherplatz 5 zu einem ersten Überlagerungsspeicherbereich an dem zweiten Speicherplatz 7 umzulenken. Der Überlagerungsmechanismus 4 kann auch einen Zugriff auf einen zweiten Zielspeicherbereich zu einem zweiten Überlagerungsspeicherbereich umlenken. Der Überlagerungsmechanismus 4 kann konfiguriert sein, um eine erste Verzögerung in dem Fall eines Zugriffs auf den ersten Zielspeicherbereich anzuwenden, und eine zweite Verzögerung, die von der ersten Verzögerung unterschiedlich ist, in dem Fall eines Zugriffs auf den zweiten Speicherbereich in dem Fall einer Umlenkung anzuwenden. Durch diese Änderung können Datenzugriffe, die zu dem ersten oder zweiten Zielspeicherbereich gelenkt werden, zu einem ersten oder zweiten Überlagerungsspeicherbereich des zweiten Speicherplatzes 7 umgelenkt werden.
  • Der erste oder zweite Überlagerungsspeicherbereich, zu dem die Daten umgelenkt werden können, kann unterschiedliche Zugriffszeiten haben. Der erste oder zweite Zielspeicherbereich kann auch unterschiedliche Zugriffszeiten haben. Typischerweise sind die Zugriffszeiten in einem bestimmten Ausmaß willkürlicher Art. Das bedeutet zum Beispiel, dass der Anwendungssoftwarezugriff auf die Zielspeicher 6 typischerweise willkürlicher Art sein kann. Im Allgemeinen wird erwartet, dass willkürliche Zugriffe auf SRAM schneller sind als auf einen Flashspeicher. Die unterschiedlichen Zugriffszeiten können durch den Überlagerungsmechanismus 4 und auch durch das entsprechende Verfahren zum Überlagern von Daten berücksichtigt werden. Der Überlagerungsmechanismus 4 kann daher die unterschiedlichen Zugriffszeiten kompensieren. Mit anderen Worten, da die Zugriffszeit auf den ersten und den zweiten Speicherbereich jeweils individuell an die Zugriffszeit des jeweiligen ersten und zweiten Zielspeicherbereichs angepasst werden kann, ist eine spezifische Anpassung an erwartete Zugriffszeiten möglich.
  • Gemäß einem anderen Aspekt ist der Überlagerungsmechanismus 4 konfiguriert, um eine Zugriffszeit auf den zweiten Speicherplatz 7 zu erweitern, damit sie gleich oder größer ist als die Zielzugriffszeit in dem Fall einer Umlenkung. Durch diese Änderung kann erreicht werden, dass eine Zugriffszeit eines zweiten Speicherplatzes 7 mindestens ein Minimum an Zeit benötigt. Mit anderen Worten werden die Daten, die an der Vorrichtung 1 auf Anfrage (zum Beispiel eine Daten Herausleseanfrage) von dem zweiten Speicherplatz 7 kommen, von der Vorrichtung 1 oder einem Prozessor 1a der Vorrichtung 1 nicht „zu früh“ verarbeitet, was zu einer falschen Verarbeitung oder mindestens einer Verzerrung eines Echtzeit-Verhaltens führen würde (da zum Beispiel ein Eingangssignal mit falschen Daten berücksichtigt werden kann, weil die Daten zu früh ankommen). Diese Änderung kann insbesondere angewandt werden, falls die jeweilige Dateneingabe zu dem Prozessor extrem kritisch ist. Mit anderen Worten kann das Spezifizieren einer Mindestfrist von Nutzen sein, um in einem beliebigen Fall zu vermeiden, dass der Inhalt oder Daten in einem Speicherplatz oder -bereich zu früh an dem Prozessor 1a ankommt/ankommen und dass der Prozessor 1a daher eine falsche Ausgabe erzeugt, was schwerwiegende Folgen haben kann. In diesem Kontext bedeutet „zu früh“, bevor eine angeforderte Eingabe von einem ersten Speicherplatz oder Zielspeicher 6 erwartet würde.
  • Gemäß einem Aspekt kann eine Zugriffszeit auf den ersten Speicherplatz 5 länger sein als eine nicht verzögerte Zugriffszeit auf den zweiten Speicherplatz 7. Die Zielzugriffszeit kann gleich oder größer sein als die Zeit des Zugriffs auf den ersten Speicherplatz 5. Dadurch wird erreicht, dass ein Zugriff auf den zweiten Speicherplatz 7 mindestens solange braucht wie eine Zugriffszeit, die erwartet würde, falls die Vorrichtung 1 beabsichtigt, auf den ersten Speicherplatz 1 zuzugreifen. Daher kann für die Zielzugriffszeit eine Mindestzeit definiert werden, die der Zugriffszeit auf den ersten Speicherplatz 5 entspricht. Dadurch kann sichergestellt werden, dass eine Anfrage durch den Prozessor 1a, die zu dem zweitens Speicherplatz 7 umgelenkt wird, und die zum Beispiel Daten bereitstellen kann, die zuvor durch den Überlagerungsmechanismus 4 verarbeitet oder zwischengespeichert wurden, nicht erfüllt oder von der Vorrichtung 1 abgeschlossen werden kann, bevor entsprechende Daten, die in dem ersten Speicherplatz 5 gespeichert sind, verfügbar würden.
  • Gemäß einem anderen Aspekt kann die Zielzugriffszeit programmierbar sein. Das kann durch einen Benutzer (oder durch eine vom Benutzer bereitgestellte Software) ausgeführt werden, indem ein Wert in einem für den Benutzer zugänglichen Register der Vorrichtung 1 definiert wird. Dadurch kann ein Benutzer diesen Wert derart spezifizieren, dass auf kritische Echtzeitparameter, zum Beispiel beim Kalibrieren einer Maschine durch die Vorrichtung 1, durch die Vorrichtung 1 (oder durch den Prozessor 1a) nicht früher als erwartet zugegriffen werden kann. Durch diese Verbesserung kann auch ein zeitlicher Sicherheitspuffer beim Spezifizieren der programmierbaren Zielzugriffszeit spezifiziert werden.
  • Gemäß einem weiteren Aspekt des Überlagerungsmechanismus 4 kann der Überlagerungsmechanismus 4 konfiguriert werden, um ein Inkrementieren oder Dekrementieren eines Zählers als Reaktion auf eine Erfassung, dass ein Überlagerungsvorgang ausgeführt wird, zu starten oder zu initialisieren. Das ist eine mögliche Ausführung einer zusätzlichen Verzögerung, die durch Blockieren (oder Verzögern) des Punkts, an dem ein „Daten gültig“ an der Prozessor-Last-Speichereinheit gesehen wird, ausgeführt werden kann (oder durch den Überlagerungsmechanismus bereitgestellt werden kann). Der Überlagerungsmechanismus 4 kann auch konfiguriert werden, um zu melden, dass Daten, die von dem zweiten Speicherplatz 7 empfangen wurden, für einen Prozessor 1a als Reaktion auf ein Erfassen, dass eine vorbestimmte Anzahl von Taktgeberzyklen seit dem Starten oder Initialisieren des Zählers verstrichen ist, verfügbar sind. Durch Verwenden dieses Konzepts kann eine einfache Umsetzung ausgeführt werden. In dem Fall eines dekrementierenden Zählers, können die Daten nur, wenn der Zähler auf null ist, als gültig und für die Vorrichtung 1 oder den Prozessor 1a verfügbar gesehen werden, um weiterverarbeitet oder in einer Prozessor-Pipeline weitergeleitet zu werden. Durch Verwenden dieser Verbesserung, wird auch eine Timing-Kompensation zwischen unterschiedlichen Speicherzugriffen ausgeführt.
  • Falls der Überlagerungsmechanismus 4 optional erweitert wird, um sowohl Codeals auch Datenzugriff zu decken, kann dieser Überlagerungsmechanismus 4 potenziell beim Kompensieren von Timing-Unterschieden in Zusammenhang mit einer Flash-zu-Flash-Überlagerung von Nutzen sein, wie es von diversen Software-Over-The-Air (SOTA)-Umsetzungen gefordert wird.
  • Gemäß einer optionalen Verbesserung können der Ziel- und Überlagerungsspeicher 6, 8 oder der erste und der zweite Speicher derselbe Speicher sein. In diesem Fall kann der Überlagerungsmechanismus 4 verwendet werden, um zusätzliche Verzögerungszyklen zu jedem Zugriff von dem Speicher hinzuzufügen. Das kann zum Abstimmen von Leistungs- oder Stromverbrauch verwendet werden.
  • Ferner kann durch Verwenden dieser Verbesserung der Überlagerungsmechanismus 4 innerhalb des Bereichs zur Duplizierung für Gleichschrittumsetzungen eingesetzt werden. Das kann sicheren Betrieb des Verzögerungszeitgebers unterstützen.
  • Daher ist durch Verwenden des Überlagerungsmechanismus 4 und des entsprechenden Verfahrens, wie es offenbart ist, eine programmierbare Verzögerung möglich, die es erlaubt, die Timing-Unterschiede zwischen Speicherzugriffen 2, 3 auf unterschiedliche Speicherbereiche während Datenzugriffsüberlagerung zu kompensieren.
  • In 3 ist ein Beispiel des Funktionierens des Überlagerns unter Verwendung einer Tabelle mit unterschiedlichen Zugriffs- und Verzögerungs- oder Blockierungszeiten veranschaulicht. In der linken Spalte sind die unterschiedlichen Zielspeicher 6 spezifiziert. Bei diesem Beispiel tragen die unterschiedlichen Speicher die Bezeichnungen Flash-1, Flash-2 oder Flash-3. Sie können ein Speicher des Flash-Typs sein, aber grundsätzlich könnten sie auch ein Speicher des SRAM-Typs oder zum Beispiel ein ROM, ein PROM, ein EPROM oder dergleichen sein. Die drei unterschiedlichen Speicher oder Speicherplätze Flash-1, Flash-2 und Flash-3 können physisch in demselben Zielspeicher 6 liegen, sie können sich aber auch in unterschiedlichen Zielspeichern 6 befinden. Bei diesem Beispiel kann der Zielspeicher 6 dem ersten Speicherplatz 5 entsprechen, aber der erste Speicherplatz 5 kann auch ein Teil oder ein Bereich des Zielspeichers 6 sein. Die Flash-1, Flash-2 oder Flash-3 können unterschiedliche Zielzugriffszeiten haben. Die Zielzugriffszeiten können als Verarbeitungszyklen eines Prozessors 1a einer Vorrichtung 1, die das Überlagern ausführen, oder durch die Vorrichtung 1, die das Überlagern ausführt, oder als Glieder von Buszyklen gemessen oder beschrieben werden. In diesem veranschaulichenden Beispiel hat der Flash-1 eine Zielzugriffszeit von 12 Zyklen (Prozessorzyklen oder Buszyklen), der Flash-2 hat eine Zielzugriffszeit von 15 Zyklen, und der Flash-3 hat eine Zielzugriffszeit von 21 (gemessen in Zyklen). Da der erste Speicherplatz 5 mindestens Teil des jeweiligen Zielspeichers 6 ist, gelten entsprechende Anweisungen für den ersten Speicherplatz 5 und für den Zielspeicher 6 (gelegentlich auch „erster Speicherplatz“ genannt). Mit anderen Worten bezeichnet ein erster Speicherplatz einen Teil eines Zielspeichers oder einen Zielspeicher als Ganzes. Auf ähnliche Art kann ein zweiter Speicherplatz einen Teil des Zielspeichers, der oben erwähnt wurde, bezeichnen, oder einen Teil eines anderen Zielspeichers, oder den anderen Zielspeicher als Ganzes.
  • Während des Überlagerns werden Daten (oder ein Datenzugriff) zu einem zweiten Speicherplatz 7 überlagert (zum Beispiel mittels des Mechanismus 4 zum Überlagern von Daten oder durch das Verfahren zum Überlagern von Daten). Der zweite Speicherplatz 7 ist mindestens Teil eines Überlagerungsspeichers 8, kann aber auch der Überlagerungsspeicher 8 als ein Ganzes sein. Unterschiedliche „zweite Speicherplätze“ 7 können auch in unterschiedlichen Überlagerungsspeichern 8 sein. Das bedeutet, dass die unterschiedlichen Überlagerungsspeicher 8 eventuell nicht Teil desselben Speichers sind, zum Beispiel innerhalb einer integrierten Schaltung (IC), oder zum Beispiel sogar ein externer Speicher sein können, der nur durch eine Schnittstelle mit der IC, auf der der Überlagerungsmechanismus 4 stattfindet oder das Überlagerungsverfahren umgesetzt wird, verbunden ist.
  • Ein Überlagerungszugriff auf einen zweiten Speicherplatz 7, der mindestens Teil eines Überlagerungsspeichers 8 sein kann, benötigt ebenfalls etwas Zeit. Die Zeit kann auch in Verarbeitungszyklen einer Vorrichtung 1 oder eines Prozessors 1a, die/der das Überlagern ausführt, gemessen werden. In der veranschaulichten Tabelle benötigt die Überlagerungszugriffszeit zum Überlagern des zweiten Speicherplatzes 7 eine unterschiedliche Anzahl von Zyklen für jeden „ersten Speicherplatz“ 5 oder Zielspeicherplatz Flash-1 Flash-2 und Flash-3. Der Zugriff auf den Zielspeicherplatz Flash-1 benötigt nämlich 10 Zyklen, der Zugriff auf den Zielspeicherplatz Flash-2 benötigt 14 Zyklen, und der Zugriff auf den Zielspeicherplatz Flash-3 benötigt 15 Zyklen. Bei diesen Beispielen benötigt das Zugreifen auf den zweiten Speicherplatz 7 (Überlagerungszugriffszeit) offensichtlich weniger Zyklen als das Zugreifen auf den ersten Speicherplatz 5 (Zielzugriffszeit). Die Vorrichtung 1 oder der Prozessor 1a, die/der das Überlagern ausführt, wird daher verzögert oder blockiert, um den Zeitunterschied zwischen dem Zugreifen auf den ersten Speicherplatz 5 und auf den zweiten Speicherplatz 7 zu kompensieren. Die Anzahl von Zyklen, um die verzögert wird (das heißt um die ein Zugriff auf den Überlagerungsspeicher verzögert wird oder während dem der Prozessor blockiert wird), ist der Unterschied zwischen der Zielzugriffszeit und der Überlagerungszugriffszeit (die beide in Zyklen gemessen werden). Bei diesen Beispielen wird die Überlagerungszugriffszeit auf den Flash-1 (das heißt, wenn der Prozessor Zugriff auf „Flash- 1“ anfordert und der Zugriff überlagert wird oder zu einem „zweiten Speicherplatz“, der dem „Flash- 1“ entspricht, umgelenkt wird) um 2 Zyklen verzögert (erweitert), die Überlagerungszugriffszeit auf Flash- 2 wird während eines Zyklus verzögert, und die Überlagerungszugriffszeit auf den Flash-3 wird während 6 Zyklen verzögert. Durch Verzögern eines Zugriffs auf den jeweiligen zweiten Speicherplatz um die Anzahl von Zyklen, wird der Zugriff um so viel verzögert, dass er mit einem selben Timing (oder sogar danach) im Vergleich zu einem Zugang, der direkt auf den ersten Speicherplatz 5 gelenkt wird (Zielzugriffszeit) auftritt. Auf diese Art ist ein Zugriff der Vorrichtung 1 oder des Prozessors 1a, die/der Daten von dem ersten Speicherplatz 5 anfordert, der zu dem zweiten Speicherplatz 7 überlagert wird, nicht möglich (oder wird nicht abgeschlossen), bis ein Zugriff auf den ersten Speicherplatz 5 möglich (oder abgeschlossen) würde. Es wird daher vermieden, dass der Prozessor 1a oder die Vorrichtung falsche Daten verarbeitet und folglich die falsche Ausgabe erzeugt.
  • Aber in Wirklichkeit ist auch ein zweites Szenario möglich (wie in dem unteren Block in 3 veranschaulicht). Der untere Block in 3 veranschaulicht ein Beispiel eines „Flash- 1“ ersten Speicherplatzes 5. In diesem Fall benötigt die Zielzugriffszeit auf den ersten Speicherplatz 5 immer noch 12 Zyklen. Anders als bei dem Zugriff auf den „Flash- 1“-Speicher in dem zuvor erörterten Beispiel, benötigt die Überlagerungszugriffszeit auf den zweiten Speicherplatz 7 (der der Überlagerungsspeicher für „Flash-1“ ist) 15 Zyklen. Offensichtlich dauert es nun länger, auf den zweiten Speicherplatz 7 in dem Überlagerungsspeicher 8 zuzugreifen, als der Prozessor für einen Zugriff auf Daten, die in dem entsprechenden ersten Speicher 5 gespeichert sind, erwartet. Der Unterschied zwischen der Anzahl von Zyklen beim Zugreifen auf den ersten Speicherplatz 5 und den zweiten (Überlagerungs-) Speicherplatz 7 beträgt nun 3, aber das Vorzeichen ist negativ. In diesem Fall wird die Vorrichtung 1 oder der Prozessor 1a während 0 Zyklen verzögert oder blockiert, da der Zugriff auf den zweiten Speicherplatz 7 (Überlagerungszugriffszeit) länger braucht als der Zugriff auf den ersten Speicherplatz 5 (Zielzugriffszeit). Das ist kein Problem, da sogar, falls die Überlagerungszugriffszeit länger ist als die Zielzugriffszeit, sichergestellt ist, dass Daten von dem Prozessor 1a oder der Vorrichtung 1 nicht zu früh verarbeitet werden. Bei diesem Beispiel wird der Algorithmus, der auf der Vorrichtung 1 oder auf dem Prozessor 1a läuft, typischerweise umgesetzt, um eine Eingabe zu bewältigen, die etwas später als typischerweise erwartet von dem ersten Speicherplatz 5 ankommt. Es besteht daher kein Problem für das Überlagerungsverfahren oder den Überlagerungsmechanismus.
  • Ein solches Szenario tritt wahrscheinlich auf, falls viele Zugriffe auf denselben zweiten Speicherplatz gleichzeitig auftreten. In diesem Fall steigt eine Zugriffszeit auf den zweiten Speicherplatz 7 signifikant, so dass ein Zugriff wahrscheinlich länger brauchen wird als ein Zugriff auf einen ersten Speicherplatz 5. Ein solches Szenario tritt wahrscheinlich auch auf, falls der Signalpfad lang ist oder viele Hindernisse umfasst, für deren Überwindung ein Signal Zeit benötigt. Ein solches Hindernis kann zum Beispiel eine Anzahl von Brücken oder ein Bus sein, die/der eine lange Verzögerung verursacht. Eine so lange Verzögerung kann 5, 10, 15, 25 oder mehr Prozessorzyklen betragen.
  • Mit anderen Worten ist der Überlagerungsspeicher 8 also nicht immer schneller als der Zielspeicher 6. Das hängt davon ab, wo in dem System der Zielspeicher 6 und der Überlagerungsspeicher 8 in Bezug zu dem anfragenden Prozessor 1a sind, und auch von der Konkurrenz des Zielspeichers 6, des Bussystems und des Überlagerungsspeichers 8. Der Anwendungssoftwarezugriff auf die Zielspeicher 6 ist typischerweise willkürlicher Art. Im Allgemeinen wird für willkürliche Zugriffe erwartet, dass der SRAM schneller ist als ein Flashspeicher. In dem Fall, in dem die Zielzugriffszeit kürzer ist als die Überlagerungszugriffszeit, wird keine zusätzliche Verzögerung hinzugefügt.
  • In 4 ist ein vollständiges System für Überlagerung veranschaulicht. Mittels einer Vorrichtung 1 kann ein Überlagerungsmechanismus 4 oder ein Verfahren zum Überlagern von Daten ausgeführt werden. In 4 verbindet eine Vorrichtung 1 einen ersten Speicherplatz 10 und einen zweiten Speicherplatz 11 über den Bus 9. Dabei sind beide Speicherplätze 10, 11 über denselben Bus 9 verbunden. Die Vorrichtung 1 umfasst einen Überlagerungsmechanismus 4, der konfiguriert oder konfigurierbar ist, um einen Zugriff, der zu dem ersten Speicherplatz 10 gerichtet ist, zu einem zweiten Speicherplatz 11 umzulenken. Daten, für die der Prozessor 1a in der Vorrichtung 1 oder die Vorrichtung 1 (oder die jeweilige Software) bezweckt, in einem ersten Speicherplatz 10 zu speichern, werden stattdessen in einem zweiten Speicherplatz 11 gespeichert. Derart kann vermieden werden, den ersten Speicherplatz 10 zu strapazieren, da die Daten stattdessen in dem zweiten Speicherplatz 11 gespeichert werden. Die Zugriffszeit von Daten, die in dem zweiten Speicherplatz 11 gespeichert werden, kann von der Zugriffszeit von Daten, die in dem ersten Speicherplatz 10 gespeichert werden unterschiedlich sein.
  • Mit anderen Worten können die Datenwerte statt den Flashspeicher (zum Beispiel den ersten Speicherplatz 10) bei jeder Datentabellenänderung neu zu schreiben, in einen SRAM (zum Beispiel in dem zweiten Speicherplatz 11) platziert werden. Das Neuschreiben eines Flashspeichers kann zeitaufwändig sein und kann zu einer Flash-Strapazierung führen. Typischerweise kann der erste Speicherplatz 10 als ein Flashspeicher umgesetzt werden, und der zweite Speicherplatz kann als ein SRAM umgesetzt werden.
  • In 4 wird die Verzögerung auf der Seite der Vorrichtung 1 des Busses 9 hinzugefügt. Es ist besser, die Verzögerung dort hinzuzufügen, statt (zentral) auf dem Überlagerungsspeicher 8, der den zweiten Speicherplatz 11 umfassen kann. Das ist darauf zurückzuführen, dass der Überlagerungsspeicher 8 nicht weiß, wie weit weg der anfragende Prozessor in dem System ist, oder welches Ziel 6 (das den ersten Speicherplatz 10 umfassen kann) er überlagert, so dass er nur eine „durchschnittliche“ Verzögerung bereitstellen kann, sofern kein komplexes Verzögerungssystem eingebaut wurde. Das würde erfordern, dass zusätzliche Daten über den Bus 9 bereitgestellt werden, um den Überlagerungsvorgang, der ausgeführt wird, zu identifizieren.
  • Das Bereitstellen des Mechanismus (zum Beispiel des Überlagerungsmechanismus, der hier beschrieben ist) an dem Prozessor 1 erlaubt die Wiederverwendung der aktuellen Überlagerungslogik. Prinzipiell kann so gut wie jeder SRAM in dem System als ein Überlagerungsspeicher 8 verwendet werden (DSPR, PSPR, LMU, DLUM, EMEM). Das Umsetzen der Verzögerungslogik (innerhalb des Überlagerungsmechanismus 4) an dem anfragenden Knoten (Prozessor 1a) statt an dem SRAM (Überlagerungsspeicher 8 oder zweiter Speicherplatz 11) führt zu einem einfacheren System.
  • Die Zugriffszeit auf den zweiten Speicherplatz 11 kann verringert werden. Das kann durch eine niedrigere Anzahl von Konkurrenzen auf dem zweiten Speicherplatz 11 als auf dem ersten Speicherplatz 10 verursacht werden. Falls eine Vorrichtung 1 in dem System zum Beispiel oft Daten von demselben ersten Speicher (darunter zum Beispiel der Speicherplatz 10) anfordert, kann er eine signifikant erhöhte Reaktions- oder Zugriffszeit haben. Prinzipiell gilt das (nämlich die Konkurrenz) für jeden anderen Speicher, der nicht der Speicher ist, der den ersten Speicherplatz 10 umfasst, darunter der Speicher, der den zweiten Speicherplatz 11 umfasst.
  • Der erste und der zweite Speicherplatz 10, 11 können auch unterschiedliche Speichertypen sein. Der erste Speicherplatz 5, 11 ist zum Beispiel ein Speicher des Flash-Typs, und der zweite Speicherplatz 7, 11 ist ein Speicher des SRAM-Typs. Die Zugriffszeit aufgrund der unterschiedlichen physischen Eigenschaften kann daher ebenfalls unterschiedlich sein, da ein Speicher des Flash-Typs eine kürzere Zugriffszeit hat als ein Speicher des SRAM-Typs.
  • Gemäß einem weiteren Aspekt kann der Überlagerungsmechanismus 4 konfiguriert werden, um die Verzögerung in Abhängigkeit von (bekannten oder geschätzten) Zugriffszeiten auf Speicherplätze 10, 11 anzupassen. Der Überlagerungsmechanismus 4 und/oder das entsprechende Verfahren kann erfassen, ob ein zweiter Zugriff auf den ersten Speicherplatz 10 (zum Beispiel hinsichtlich einer Speicheradresse, auf die zuzugreifen ist) auf einen ersten Zugriff auf den ersten Speicherplatz 10 folgt, was eine veränderte Zugriffszeit auf den ersten Speicherplatz 10 verursacht, wenn auf nachfolgende Speicherplätze des ersten Speicherplatzes 10 zugegriffen wird. Das kann darin resultieren, dass die geänderte Zugriffszeit kürzer ist als die Zeit des ersten Zugriffs auf den ersten Speicherplatz 10. In diesem Fall kann die Verzögerung (die angewandt wird, wenn das Speicherüberlagern ausgeführt wird) an die geänderte Zugriffszeit des ersten Speicherplatzes 10 angepasst werden, wenn auf den zweiten Speicherplatz 11 zugegriffen wird. Die kürzere Zugriffszeit beim Zugreifen beim zweiten Mal (nacheinander) kann kompensiert werden.
  • In vielen realen Szenarien kann eine Vorrichtung 1, die einen Prozessor 1a umfassen kann, fordern, dass Daten, die nachfolgende Daten sind (zum Beispiel an direkt nachfolgenden Speicherplätzen), in einem Speicherplatz 10, 11 verknüpft oder verbunden werden. Bei einem solchen Szenario kann daher auf nachfolgende, verknüpfte oder zugeordnete Speicherplätze innerhalb eines Speichers 10, 11 durch die Vorrichtung 1 schneller zugegriffen werden (zum Beispiel ausgehend von dem zweiten Zugriff auf den Speicherplatz 10, 11 einer Abfolge aufeinanderfolgender Zugriffe).
  • Zum Beispiel können zugeordnete, verknüpfte oder nachfolgende Speicherplätze 5, 7 in einen Vorabrufspeicher des ersten Speicherplatzes 5 als Reaktion auf einen ersten Zugriff auf den Speicherplatz geladen werden, was daher schnelleren Zugriff auf die Daten, die in dem Vorabrufspeicher gespeichert sind, erlaubt. Die Vorrichtung 1 kann über diese geänderte Zugriffszeit Bescheid wissen. Die geänderte Zugriffszeit (zum Beispiel der zweite sowie weitere nachfolgende Zugriffe) ist typischerweise kürzer als die Zugriffszeit für den ersten Zugriff auf den Speicherplatz. Das Programm, das in der Vorrichtung 1 oder in dem Prozessor 1a läuft, kann daher eine Eingabe früher erwarten, falls auf einen verbundenen, verknüpften oder nachfolgenden Speicherplatz 10, 11 von der Vorrichtung 1 oder dem Prozessor 1a zugegriffen wird. Die Verzögerung des Überlagerungsmechanismus 4 und das entsprechende Verfahren können also an die frühere Eingabe angepasst werden. Die Verzögerung des Überlagerungsmechanismus 4 kann die Zugriffszeit auf den zweiten Speicherplatz 11 auf die Zugriffszeit des ersten Speicherplatzes 10 verlängern, oder kann eine Verzögerung zu der Zugriffszeit auf den zweiten Speicher hinzufügen, so dass die Verzögerung und die Zugriffszeit auf den zweiten Speicher 11 gemeinsam eine längere Zeit sind als die Zugriffszeit auf den ersten Speicherplatz 10.
  • Gemäß einem Aspekt kann die Vorrichtung 1 verbindbar sein mit oder kann mit dem ersten und zweiten Speicherplatz 10, 11 durch mindestens einen Bus 9 verbunden werden. Mittels eines Busses 9 ist eine Kommunikation in einer definierten, bekannten oder vorhersehbaren Art möglich, da ein Bus einen gut getesteten Austausch von Signalen oder Daten bereitstellen kann. Bestimmte Ungewissheiten hinsichtlich der Zugriffszeit können jedoch zum Beispiel in dem Fall von Konkurrenz auftauchen.
  • Gemäß einem anderen Aspekt kann die Überlagerungsvorrichtung 4 konfiguriert werden, um variierende Zugriffszeiten ohne Verzögerung auf den zweiten Speicherplatz 7 zu kompensieren. Beim Zugreifen auf einen realen Speicher (zum Beispiel auf den zweiten Speicherplatz), kann die erforderliche Zeit statistisch variieren. Ein Überlagerungsmechanismus 4 gemäß dieser Änderung kann solche statistischen variierenden Zugriffszeiten auf den zweiten Speicherplatz 7 kompensieren.
  • Die Ausführungsform, die in 4 veranschaulicht ist, kann mit der Vorrichtung, die in 1 veranschaulicht ist, kombiniert werden. In diesem Fall können die Zugriffe, die zu dem ersten Speicherplatz 2 gerichtet sind, und die Zugriffe, die zu dem zweiten Speicherplatz 3 gerichtet sind, die in 1 gezeigt sind, beide (denselben) Bus 9 in 4 einsetzen, um auf den ersten und zweiten Speicherplatz 10, 11 zuzugreifen. Mit anderen Worten entspricht der Speicherplatz 10 dem Speicherplatz 2, und der Speicherplatz 11 entspricht dem Speicherplatz 3.
  • Die Ausführungsform, die in 4 veranschaulicht ist, kann auch mit der Vorrichtung, die in 2 veranschaulicht ist, kombiniert werden. In diesem Fall entspricht der Bus 9 dem Datenzugriff (Leitung) 19. Der erste Speicherplatz 10 entspricht einem Abschnitt des Zielspeichers 6 oder dem gesamten Zielspeicher 6, und der zweite Speicherplatz 11 entspricht einem Abschnitt des Überlagerungsspeichers 8 oder dem gesamten Überlagerungsspeicher 8. Der Abschnitt des Zielspeichers 6 kann gleich dem ersten Speicherplatz 5 in 2 sein. Der Abschnitt des Überlagerungsspeichers 8 kann gleich dem zweiten Speicherplatz 7 in 2 sein.
  • In 5 ist eine weitere Ausführungsform veranschaulicht. Grundsätzlich umfasst sie dieselben Bauteile wie bereits in 4 beschrieben, zum Beispiel eine Vorrichtung 1, einen Bus 9, einen ersten Speicherplatz 10 und einen zweiten Speicherplatz 11. Es wird folglich auf die Beschreibung dieser Bauteile und ihrer Wechselwirkung in 4 Bezug genommen. Die Einzelheiten in Zusammenhang mit der Wechselwirkung der Bauteile, wie sie bei der Erörterung einer Kombination der 1 und 4 oder 2 und 4 beschrieben sind, gelten ebenfalls.
  • In 5 ist veranschaulicht, dass mehr als eine Instanz der Bauteile 1, 10, 11 verwendet werden kann, und dass mehrere Bauteile auf einen (gemeinsamen) Bus 9 zurückgreifen können. Mehrere (zum Beispiel zwischen 2 und 10) Vorrichtungen 1 ziehen zum Beispiel einen Bus 9 heran. Prinzipiell können mehrere (zum Beispiel zwischen 2 und 10) erste Speicherplätze 10 und/oder zweite Speicherplätze 11 auf einen Bus 9 zugreifen oder ihn einsetzen. Ein typisches System kann daher mehrere Prozessoren 1a, mehrere Flashspeicher und/oder mehrere Überlagerungsspeicher enthalten oder umfassen, die zum Beispiel über einen Bus oder über unterschiedliche Segmente eines Busses gekoppelt sind. Unter Einsatz dieses Mechanismus kann der Überlagerungsvorgang jedes Prozessors separat für seine Sicht der Flash- und Überlagerungsspeicher-Zugriffszeiten eingestellt werden. Gemäß der Offenbarung wird das Definieren unterschiedlicher Zielzugriffszeiten für jeden Zielbereich und daher für jeden Flashspeicher erlaubt. Die ersten Speicherplätze 10 können, ohne dass dies zwingend wäre, einen gegebenen Speichertyp haben. Ein Speicher des Flash-Typs kann zum Beispiel für die ersten Speicherplätze 10 verwendet werden. Die zweiten Speicherplätze 11 können, ohne dass dies zwingend wäre, einen gegebenen Speichertyp haben. Nichtsdestotrotz kann ein Speicher des SRAM-Typs für die zweiten Speicherplätze 11 verwendet werden. Prinzipiell könnten der erste Speicherplatz 10 und der zweite Speicherplatz 11 ein Speicher des SRAM-Typs oder ein Speicher des Flash-Typs sein.
  • Prinzipiell kann ein Speicher (der ein Speicher des SRAM-Typs oder ein Speicher des Flash-Typs ist) gemeinsam als ein erster Speicherplatz 10 und als ein zweiter Speicherplatz 11 dienen. In diesem Fall können unterschiedliche Abschnitte oder Bereiche des Speichers unterschiedliche Zwecke erfüllen, einer als ein erster Speicherplatz und der andere als ein zweiter Speicherplatz. Es wird jedoch vorgezogen, dass der/die erste/n Speicherplatz (Speicherplätze) und der/die zweite/n Speicherplatz (Speicherplätze) unterschiedliche Speichertypen (die unterschiedliche Zugriffszeiten haben) verwenden.
  • Bei einer solchen Ausführungsform, wie in 5 veranschaulicht, treten wahrscheinlich Konkurrenzen beim Zugreifen auf einen Speicherplatz 10, 11 oder Speicher 6, 8 auf. Das ist auf die Mehrzahl von „Aktoren“, insbesondere Vorrichtungen 1, zurückzuführen, die alle Daten von den Speicherplätzen 10, 11 anfordern. Das kann (fast) gleichzeitig auftreten, das heißt fast in zeitlich paralleler Art. Ein menschlicher Benutzer, der die Algorithmen oder Programme programmiert, die auf einer Vorrichtung 1 laufen, kann daher aufgrund seiner Erfahrung und seiner Kenntnis der Topologie des Busses 9 und der Aktoren schätzen, wie lang eine erwartete Zugriffszeit auf einen ersten Speicherplatz 10 wahrscheinlich ist. Ein menschlicher Benutzer kann daher dem Überlagerungsmechanismus 4 oder dem Verfahren zum Überlagern von Daten eine Eingabe (zum Beispiel durch Einfügen einer Konfigurationsanweisung in einen Softwareabschnitt) bereitstellen, wie lange es dauert, damit eine erste Vorrichtung 1 (die einen Überlagerungsmechanismus 4 enthält oder mit ihm zusammenwirkt) auf einen ersten Speicherplatz 10 zugreift. Ein Benutzer kann zur Sicherheit auch kritische Anwendungen einer erwarteten Zugriffszeit als so lang auswählen, dass die Vorrichtung 1 auf den ersten Speicherplatz 10 auf jeden Fall zugreifen kann, zum Beispiel mit einer Wahrscheinlichkeit höher als 99 % oder 99,9 %. Es wird daher sichergestellt oder garantiert, dass die Vorrichtung in dem Fall einer Speicherüberlagerung nicht schneller arbeitet als vergleichsweise bei einem Vorgang ohne Speicherüberlagerung. Das ist auf die längere Zugriffszeit für die Überlagerungssituation, die durch den Benutzer spezifiziert werden kann, zurückzuführen. Die Zugriffszeit für die Überlagerungssituation kann durch die programmierbare Verzögerung definiert werden.
  • Innerhalb des Schutzbereichs dieser Offenbarung könnte die Zugriffszeit jedoch auch fest (durch einen Benutzer nicht veränderbar) programmiert sein. In diesem Fall kann durch den Vorrichtungshersteller spezifiziert werden, wie lange das Zugreifen auf den ersten Speicherplatz 10 typischerweise braucht. Das kann geeignet sein, falls ein Fachmann, der mit einem solchen System arbeitet, nicht genug Kenntnis der Zugriffszeiten, die zu erwarten sind, hat.
  • Eine dritte Option wäre, dass eine Standardzugriffszeit zum Zugreifen auf den ersten Speicherplatz 10 programmiert wird. Dieser Standardwert kann durch einen Benutzer für spezielle Zwecke geändert werden. Eine solche Standardzugriffszeit kann nützlich sein, um ein arbeitendes System ohne zu viele Änderungen in einem frühen Teststadium sicherzustellen, zum Beispiel beim Kalibrieren einer Maschine (oder beim Konzipieren und Feinabstimmen einer Brennkraftmaschinen-Steuersoftware). Sollten später während der Kalibrierung spezifischere Kenntnisse und auch mehr Ressourcen verfügbar sein, um Einzelheiten während der Kalibrierung (des Feinabstimmens) zu berücksichtigen, könnte die Standardzugriffszeit eines ersten Speicherplatzes 10 angepasst werden.
  • Gemäß dieser Offenbarung ist es auch möglich, die drei unterschiedlichen Optionen für unterschiedliche Parameter oder Daten zu mischen, die von der Vorrichtung 1 auf dem ersten Speicherplatz 10 zu speichern sind.
  • Prinzipiell, gemäß dieser Offenbarung, sind solche Merkmale auch für die Ausführungsformen, die in 4 veranschaulicht sind, möglich. Sie werden nichtsdestotrotz eher in einem System mit mehreren Bauteilen 1, 10, 11 angewandt, da in einem solchen System Zugriffszeiten komplizierter zu bestimmen sind.
  • 6 veranschaulicht eine weitere Ausführungsform, die ein System mit unterschiedlichen Segmenten 9a, 9b, 9c, 9d des Busses 9 lehrt. Die Segmente 9a-9d des Busses umfassen jeweils eine oder mehrere Busleitungen. Die Busleitungen können innerhalb eines Segments 9a-9d ununterbrochen sein. Die unterschiedlichen Segmente sind (teilweise) miteinander durch mindestens eine Brücke 12 verbunden. In den Beispielen sind die Bussegmente 9a, 9b, 9d durch eine Brücke 12 verbunden. Die Bussegmente 9a, 9b, 9c sind mit zwei Brücken 12 in Reihe geschaltet. Die Bussegmente 9a, 9b, 9c sind elektrisch wie aufgezählt verbunden. Prinzipiell (obwohl das nicht veranschaulicht ist), ist auch ein kreisförmiges Design der Bussegmente 9a-9d innerhalb dieser Offenbarung möglich. Die Brücken 12 können zum Beispiel von einem gemeinsamen Taktgebersignal 14, das von einem gemeinsamen Taktgeber 13 stammt, getaktet werden. Zusammenfassend können die Brücken 12 für einen Austausch von Signalen oder Daten zwischen den Bussegmenten 9a-9d verwendet werden, und können auch für eine (Zeit)-Synchronisation von Bussegmenten 9a-9d dienen. Nichtsdestotrotz verursachen die Brücken 12 eine unbeabsichtigte Verzögerung, die signifikant zu der Übertragungszeit über den Bus 9 beitragen kann, das heißt von einem Bauteil 1, 10, 11 an einem ersten Bussegment 9a-9d zu einem zweiten Bauteil 1, 10, 11 in einem unterschiedlichen Bussegment 9a-9d.
  • Ein Bussegment 9a-9d kann eine Vorrichtung 1 und/oder einen ersten Speicherplatz 10 und/oder einen zweiten Speicherplatz 11 umfassen (oder kann damit direkt gekoppelt sein). Das veranschaulichte Bussegment 9a greift zum Beispiel auf eine Vorrichtung 1 und drei unterschiedliche erste Speicherplätzen 11 zu (oder verbindet mit diesen). Das Bussegment 9b greift auf drei Vorrichtungen 1, einen ersten Speicherplatz 10 und einen zweiten Speicherplatz 11 zu oder verbindet mit diesen. Das Bussegment 9c greift ausschließlich auf einen ersten und zweiten Speicherplatz 10, 11 zu oder verbindet mit diesen, umfasst aber keine Vorrichtung 1. In dem Fall, in dem auf die Speicherplätze in dem Segment C oder Bussegment 9c zugegriffen wird, kann das nur durch Vorrichtungen 1 auftreten, die in anderen Bussegmenten 9a, 9b, 9d sind. Das veranschaulichte Bussegment 9d umfasst eine Vorrichtung 1 und drei zweite Speicherplätze 11. Prinzipiell kann eine Vorrichtung 1 an einem ersten Bussegment 9a-9d auch auf Speicherplätze 10, 11 in anderen Bussegmenten 9a-9d zugreifen. Das kann von der Verfügbarkeit von Speicherressourcen abhängen oder für das Duplizieren von Datenspeicherung sinnvoll sein. In dem Fall, in dem ein Segment A-D beschädigt wird (zum Beispiel durch elektrostatische Entladung (ESD) oder Halbleiterverschlechterung im Laufe der Zeit), können Daten in anderen Segmenten A-D gespeichert werden. Das kann insbesondere gelten, falls ein Segment A-D ein externes Segment ist. Extern bedeutet in diesem Kontext, dass es sich nicht um ein Bussegment handelt, das Teil eines Chips ist, sondern um eines, das extern über eine Schnittstelle (die auch eine Brücke 12 umfassen kann) mit dem Chip, der mindestens einige der anderen Segmente A-D oder Bussegmente 9a-9d umfasst, verbunden ist.
  • Die „absichtliche Signalverzögerung“ (die in dem Fall eines Überlagerungsvorgangs angewandt wird) tritt auf der Seite der Vorrichtung 1 auf, nicht auf der Seite des Speicherplatzes 10, 11, der der Überlagerungsspeicher 8 ist, zu dem ein Datenzugriff umgelenkt wird. Sie wird nämlich von dem Überlagerungsmechanismus 4 der Vorrichtung 1 angewandt. Der zweite Speicherplatz 11 (oder der Überlagerungsspeicher 8) weiß nichts (besitzt keine Informationen) darüber, wie weit entfernt die anfragende Vorrichtung 1 oder die Prozessoren 1a in dem System entfernt sind, oder welchen ersten Speicherplatz 10 oder Zielplatz oder Zielspeicher 6 er überlagert. Falls daher eine Verzögerung auf der Seite des zweiten Speicherplatzes 11 oder auf der Seite des Überlagerungsspeichers 8 umgesetzt wurde, könnte nur eine durchschnittliche Verzögerung oder eine andere (gewöhnliche) Verzögerung, die zum Beispiel die maximal zu erwartende Verzögerung ist, ohne Weiteres (ohne zusätzliche Signalgebungsbemühungen) verwendet werden. Dieses Problem könnte nur durch ein komplexes Verzögerungssystem umgangen werden, falls eine Verzögerung auf der Seite des Speichers verwendet wurde. Ein solches komplexes Verzögerungssystem würde möglicherweise die Informationen über die Verzögerung, die die Vorrichtung 1 oder der Prozessor für einen jeweiligen ersten Speicherplatz 10 oder einen Zielspeicher 6 erwartet, zu dem zweiten Speicherplatz 11 oder dem Überlagerungsspeicher 8 bereitstellen. In diesem Fall wären der zweite Speicherplatz 11 oder der Überlagerungsspeicher fähig, das Verzögern von Zugriff auf den zweiten Speicherplatz 11 oder den Überlagerungsspeicher 8 durch einen jeweiligen Prozessor 1a oder eine jeweilige Vorrichtung 1 auszuführen.
  • Das Bereitstellen des Überlagerungsmechanismus 4 oder Verzögerungsmechanismus an dem Prozessor 1a oder der Vorrichtung 1 (oder mindestens an der Seite dieser Bauteile) ermöglicht die Wiederverwendung der (aktuellen) Überlagerungslogik. Prinzipiell kann zum Beispiel für einen Überlagerungsspeicher 8 oder einen zweiten Speicherplatz 11 ein beliebiger SRAM in dem System eingesetzt werden. Dieses System umfasst unterschiedliche Speicherbereiche oder Speichertypen, die zum Beispiel in einigen Ausführungsformen DSPR, PSPR, LMU, DLMU und oder EMEM genannt werden. Das Umsetzen der Verzögerungslogik an dem Prozessor 1a oder an der Vorrichtung 1 (ganz allgemein an dem anfragenden Knoten) an Stelle des Überlagerungsspeichers 8 oder des zweiten Speicherplatzes 11 (möglicherweise ein SRAM) kann zu einem weit einfacheren System führen.
  • Das oben erörterte System kann optional zusätzliche mögliche Merkmale, Änderungen oder Verbesserungen umfassen.
  • Bei einer Ausführungsform können die Bussegmente 9a-9d über eine oder mehrere Brücken 12 gekoppelt werden. Die Speicher 10, 11 können mit unterschiedlichen Segmenten 9a-9d der Busstruktur 9 gekoppelt werden. Eine erste Vorrichtung 1 oder ein erster Prozessor 1a und eine zweite Vorrichtung 1 oder ein zweiter Prozessor 1a können mit unterschiedlichen Segmenten 9a-9d der Busstruktur 9 gekoppelt werden. Die Speicher 10, 11 können Zielspeicherbereiche (die zum Beispiel während einer „normalen“ Programmausführung verwendet werden) umfassen und Überlagerungsspeicherbereiche (die zum Beispiel während einer Programmentwicklung oder bei einem Programmabstimmvorgang verwendet werden). Eine Beziehung zwischen einer ersten Zugriffszeit des ersten Prozessors 1a auf einen Zielspeicherbereich, der mit einem Vorgang des ersten Prozessors 1a verbunden ist, und einer Zugriffszeit ohne Verzögerung des ersten Prozessors 1a auf einen Überlagerungsspeicherbereich, der mit dem Vorgang des ersten Prozessors verbunden ist, kann von einer Beziehung zwischen einer Zugriffszeit des zweiten Prozessors auf einen Zielspeicherbereich, der mit einem Vorgang des zweiten Prozessors verbunden ist, und einer Zugriffszeit ohne Verzögerung des zweiten Prozessors auf einen Überlagerungsspeicherbereich, der mit dem Vorgang des zweiten Prozessors verbunden ist, unterschiedlich sein. Eine Verzögerung des Überlagerungsmechanismus 4 der ersten Vorrichtung und eine Verzögerung des Überlagerungsmechanismus 4 der zweiten Vorrichtung können individuell programmierbar sein und können eine Kompensation der unterschiedlichen Beziehungen zwischen Zugriffszeiten auf Zielspeicherbereichen und entsprechende Überlagerungsspeicherbereichen erlauben.
  • Dank diesem Merkmal kann ein Benutzer oder menschlicher Benutzer, der die Systemarchitektur und Systemmerkmale kennt, auf Anforderungen reagieren, indem er individuelle Verzögerungen für unterschiedliche Prozessoren oder unterschiedliche Verzögerungen für den ersten und zweiten Prozessor (zum Beispiel unter Verwenden von Konfigurationsanweisungen, die in einem Code enthalten sind) spezifiziert. Die Anzahl von Brücken 12 in dem Signalpfad über den Bus 9 zwischen einer ersten oder zweiten Vorrichtung 1, die einen Prozessor 1a umfassen kann, und mindestens einem ersten und zweiten Speicherplatz 5, 7, kann unterschiedlich sein. Da eine Brücke 12 eine signifikante Auswirkung auf Signalverzögerung oder Signalausbreitungszeit auf dem Bus 9 hat, beeinflusst die Anzahl von Brücken 12 in dem Messsignalpfad die Zugriffszeit einer Vorrichtung 1, die einen Überlagerungsmechanismus 4 aufweist. Ein Benutzer kann auch die Anzahl von Signalkonkurrenzen aus der Sicht einer Vorrichtung 1 schätzen. Ein Benutzer kann zum Beispiel davon ausgehen, dass eine Vorrichtung 1 auf einen Speicherplatz 10, 11 zugreift, während eine oder mehrere der anderen Vorrichtungen 1 auf den anderen Speicherplatz 10, 11 zugreifen. Bei einem solchen Szenario können die eine oder mehreren anderen Vorrichtungen 1, die auf den anderen Speicherplatz 10, 11 zugreifen, etwas Buskonkurrenz verursachen, wenn sie auf die Speicherplätze 10, 11 zugreifen. Beim Programmieren einer Verzögerung für den Überlagerungsmechanismus 4, kann der Benutzer daher eine längere Verzögerungszeit programmieren, da eine lange Zugriffszeit erwartet werden kann, wenn die Vorrichtung 1 eventuell beabsichtigt, auf den ersten Speicherplatz 10 zuzugreifen. Das kann durch die eine oder beide der Anzahl von Brücken 12 in dem Pfad oder Konkurrenzen, die beim Zugreifen auf den Speicherplatz 10, 11 erwartet werden, verursacht werden.
  • Mit anderen Worten kann ein tatsächlicher Unterschied (oder ein tatsächlicher durchschnittlicher Abstand oder ein geschätzter tatsächlicher Unterschied) zwischen Zugriffszeiten auf einen Zielspeicherbereich und auf einen Überlagerungsspeicherbereich von einem Benutzer beim Programmieren einer Verzögerung für den Überlagerungsmechanismus berücksichtigt werden. Eine Verzögerungskomponente kann durch die Architektur des Bussystems oder der Bussysteme bestimmt werden, wobei eine Anzahl von Brücken zwischen einem gegebenen Prozessor und einem physischen Speicher, der den Zielspeicherbereich umfasst, von einer Anzahl von Brücken zwischen dem gegebenen Prozessor und einem physischen Speicher, der den Überlagerungsspeicherbereich umfasst, unterschiedlich sein kann. Ferner können Verzögerungen, die auf Konkurrenz basieren, für einen Zugriff auf den Zielspeicherbereich und für einen Zugriff auf den Überlagerungsspeicherbereich unterschiedlich sein. Die Verzögerung des Überlagerungsmechanismus kann daher individuell auf der Basis einer Kenntnis der Lage des jeweiligen Prozessors innerhalb eines Bussystems, einer Kenntnis der physischen Speicher, die innerhalb des Bussystems involviert sind, und einer bekannten oder geschätzten Verzögerungsauswirkung, die durch Buskonkurrenz und andere Faktoren verursacht wird, programmiert werden.
  • Daher kann beim Verwenden eines solchen Systems, das ein Bussystem mit Bussegmenten 9a-9d umfasst, eine individuelle Zugriffszeit einer Vorrichtung 1 auf einen zweiten Speicherplatz 11 (und auch auf einen ersten Speicherplatz) berücksichtigt werden. Die Zugriffszeit von Vorrichtungen 1 auf den zweiten Speicherplatz 11 kann unterschiedlich sein, da zum Beispiel der Signalpfad von einer ersten Vorrichtung 1 zu einem entsprechenden zweiten Speicherplatz 11 von einem Signalpfad von einer zweiten Vorrichtung 1 zu einem entsprechenden zweiten Speicherplatz 11 unterschiedlich sein kann. Es kann zum Beispiel eine unterschiedliche Anzahl von Brücken 12 in dem Signalpfad eines Busses 9 oder Bussystems geben, oder die Zugriffszeit von einer Vorrichtung 1 auf einen entsprechenden zweiten Speicherplatz 11 kann von der Zugriffszeit von einer anderen Vorrichtung 1 auf einen entsprechenden (anderen) zweiten Speicherplatz 11 unterschiedlich sein, weil eine unterschiedliche Anzahl von Konkurrenzen auf dem Signalpfad zu berücksichtigen ist. Wenn zum Beispiel die erste Vorrichtung 1 in Segment A auf einen (entsprechenden) zweiten Speicherplatz in Segment C zugreift, müssen zwei Brücken 11 überwunden werden, da der einzige Weg das Segment B kreuzt. Im Gegensatz dazu wird ein Zugriff von Vorrichtung 1 in Segment B nicht durch die Busarchitektur beim Zugreifen auf einen ersten oder zweiten Speicherplatz 10, 11 in Segment B verzögert. Wenn jedoch eine Vorrichtung 1 in Segment B versucht, auf einen zweiten Speicherplatz 10, 11 in Segment C zuzugreifen, wird der Zugriff durch eine Brücke 12 verzögert. Die Zugriffszeit für eine Vorrichtung 1 auf einen ersten oder zweiten Speicher 10, 11 hängt daher einerseits von dem Signalpfad und andererseits von der Anzahl von Konkurrenzen auf dem Bus 9 beim Zugreifen auf einen Speicher 10, 11 ab. Der physische Typ von Speicherplatz 10, 11 trägt auch zu der Zugriffszeit bei.
  • Die Zugriffszeit auf einen Überlagerungsspeicher 8 (der ein zweiter Speicherplatz 11 sein kann), wie von dem Prozessor 1a (der Teil einer Vorrichtung 1 sein kann) gesehen, ist aufgrund von Konkurrenz an dem Bussystem 9 und dem Überlagerungsspeicher 8 eventuell keine Konstante. Der Gebrauch einer variablen Verzögerung beim Zurücksenden von Daten stellt einen Kompensationsgrad für diese Konkurrenz dar. Daher können zurückkommende Daten die Daten sein, die von dem Prozessor 1a oder der Vorrichtung 1 in dem Bussystem 9 angefordert werden. Die zurückkommenden Daten können in dem Überlagerungsspeicher 8 oder dem zweiten Speicherplatz 11 gespeichert werden.
  • In 7 sind zwei unterschiedliche Optionen eines Funktionierens der Verzögerung veranschaulicht. In 7a gibt es eine interne Verzögerungseinheit 18, die Teil der Vorrichtung 1 ist, die den Überlagerungsmechanismus 4 ausführt. Bevor erlaubt wird, dass ein Eingangssignal (das eine Antwort auf eine Speicherausleseanfrage sein kann) von dem Bus 9 zu einem Prozessorkern übergeht, wird es durch eine Verzögerungseinheit 18 verzögert. Der Bus 9 kann auch ein Bussegment 9a-9d, wie in 6 erörtert, sein. Mit anderen Worten können Teile der Vorrichtung 1 als ein Überlagerungsmechanismus 4, der eine Verzögerungseinheit 18 umfasst, funktionieren. Das kann innerhalb eines Prozessors 1a umgesetzt werden, der Teil der Vorrichtung 1 ist (oder die Vorrichtung bildet). In diesem Fall kann die Verzögerung durch die Verzögerungseinheit 18 durch Überspringen oder Blockieren einiger Zyklen des Prozessors 1a ausgeführt werden, bevor das Signal, das von dem Bus 9 hereinkommt, zu einem weiteren Teil des Prozessors 1a weitergeleitet wird, der nicht an der Verzögerung beteiligt ist (zum Beispiel ein Prozessorkern). Bei dieser Umsetzung ist die Verzögerungseinheit 18 auch Teil des Prozessors 1a.
  • Gemäß einer anderen Option gibt es eine externe Verzögerungseinheit 17, wie in 7b) veranschaulicht. Das bedeutet, dass die Verzögerungseinheit 17 nicht Teil der Vorrichtung 1 ist, sondern eine Schnittstelle zwischen der Vorrichtung 1 und dem Bus 9 oder dem Bussegment 9a-9d bildet. Mit anderen Worten umfasst die Vorrichtung 1 einen Überlagerungsmechanismus 4, der konfiguriert oder konfigurierbar ist, um zu einem zweiten Speicherplatz 3 umzulenken und zu verzögern. Die Verzögerungseinheit kann zum Beispiel die Daten, die aus dem Überlagerungsspeicherplatz gelesen werden, und/oder ein „Daten Bereit“-Signal verzögern.
  • Der Überlagerungsmechanismus 4 gibt zu der Verzögerungseinheit 17 eine Information aus, die beschreibt, um wie viel ein Signal (zum Beispiel gelesene Daten), die von dem zweiten Speicherplatz 11 angefordert werden, zu verzögern ist. Das „Signal“ umfasst typischerweise Daten, die in dem zweiten Speicherplatz 11 gespeichert waren.
  • Bei einem Beispiel kann eine Verzögerung, die durch die Verzögerungseinheit anzuwenden ist, programmierbar sein. Der Prozessor kann zum Beispiel einen Verzögerungswert zu einem „Sonderfunktionsregister“ (zum Beispiel unter Verwenden einer oder mehrerer Programmanweisungen) schreiben, und der Verzögerungswert, der in dem Sonderfunktionsregister gespeichert ist, kann die Verzögerung, die von der Verzögerungseinheit zu verwenden ist, bestimmen.
  • Alternativ kann die Verzögerungseinheit 17 zum Beispiel eine Verzögerungsinformation oder einen Verzögerungswert von der Vorrichtung 1 erzielen, der von der Vorrichtung 1 auf eine festgelegte Art spezifiziert wird, oder der standardmäßig innerhalb der Vorrichtung 1 spezifiziert wird. Im Gegenteil zu der Lösung in 7a), kann ein zusätzliches Bauteil, nämlich die Verzögerungseinheit 17, eine Schnittstelle bilden. In diesem Fall braucht die Vorrichtung 1 nichtsdestotrotz keine Ressourcen für die Verzögerung, wie zum Beispiel Verarbeitungszeit oder Hardwareressourcen, bereitzustellen.
  • Gemäß einem anderen Aspekt kann die Vorrichtung 1 einen Prozessor 1a umfassen. Das Verfahren zum Überlagern von Daten oder der Überlagerungsmechanismus 4 kann einen Verarbeitungsvorgang des Prozessors 1a, der Zugriff auf den ersten Speicherplatz 10 anfordert, verzögern, oder kann ein Weiterleiten von Daten von dem Bus 9 zu dem Prozessor 1a verzögern, um dadurch den Zugriff auf den zweiten Speicherplatz 11 zu verzögern.
  • Der Prozessor 1a in der Vorrichtung 1 kann fordern, dass Daten in einem ersten Speicherplatz 10 gespeichert werden. Da der Zugriff auf Daten, die in dem ersten Speicherplatz 10 gespeichert sind, von dem Überlagerungsmechanismus 4 zu dem zweiten Speicherplatz 11 umgelenkt werden kann, muss der Zugriff (oder die effektive Zugriffszeit) des Prozessors 1a auf den zweiten Speicherplatz 11 verlängert werden, bevor die Daten weiter in dem Prozessor 1a verarbeitet werden, was durch diese Änderung erzielt wird. Gemäß einer ersten Option dieser Änderung, kann das durch Verzögern eines Verarbeitungsvorgangs des Prozessors 1a ausgeführt werden. Zum Beispiel erreicht man durch internes Verlangsamen oder Blockieren des Prozessors 1a selbst eine Verlängerung der Zugriffszeit auf den zweiten Speicherplatz 11.
  • Die erste Option kann durch einen Überlagerungsmechanismus oder ein Verfahren zum Überlagern von Daten umgesetzt werden, der/das einen Verarbeitungsvorgang durch Blockieren mindestens eines Zyklus des Prozessors 1a verzögern kann. Gemäß dieser Option kann die Verzögerung durch den Prozessor 1a selbst erzielt werden. Mit anderen Worten arbeiten Teile des Prozessors 1a oder der Vorrichtung 1 als Verzögerungseinheit 18. Das kann ohne weitere Funktionseinheiten, die mit dem Prozessor 1a oder dem Überlagerungsmechanismus 4 zum Zweck des Verzögerns gekoppelt sind, möglich sein.
  • Gemäß der zweiten Option dieser Änderung kann eine Verzögerung durch Verzögern eines Weiterleitens von Daten von dem Bus 9 zu dem Prozessor 1a ausgeführt werden. Das kann mittels einer Verzögerungseinheit 17 auftreten, die an einer Schnittstelle des Busses 9 und des Prozessors 1a sein kann.
  • Prinzipiell können sowohl die Vorrichtungen 1 als auch die Verzögerungseinheiten 17, 18, wie in 7 veranschaulicht, mit irgendwelchen anderen Aspekten und Ausführungsformen, die in dieser Offenbarung erörtert sind, kombiniert werden.
  • 8 veranschaulicht ein Flussdiagramm dazu, wie ein Überlagerungsmechanismus 4 oder ein Verfahren zum Überlagern von Daten gemäß einer Ausführungsform zum Beispiel funktionieren kann.
  • Es werden zwei Schritte veranschaulicht: Bei dem ersten Schritt S1 wird ein Zugriff, der zu einem ersten Speicherplatz 10 gerichtet ist, zu einem zweiten Speicherplatz 11 umgelenkt. Der zweite Schritt S2 involviert ein selektives Verzögern eines Zugriffs auf den zweiten Speicherplatz 11 um eine Zeit in dem Fall einer Umlenkung.
  • Bei dem ersten Schritt S1 werden Daten in einem zweiten Speicherplatz 11 gespeichert. Das kann durch den Überlagerungsmechanismus 4, der Teil der Vorrichtung 1 ist, wie oben erörtert, ausgeführt werden. Daten, die dazu bestimmt sind, von der Vorrichtung 1 oder dem Prozessor 1a in einem ersten Speicherplatz 10 gespeichert zu werden, werden daher stattdessen in dem zweiten Speicherplatz 11 gespeichert. Ein Strapazieren des ersten Speicherplatzes 11 wird daher verlängert. Da der erste Speicherplatz 10 oft eine längere Zugriffszeit hat als der zweite Speicherplatz 11, kann auf Daten, die in dem zweiten Speicherplatz 11 an Stelle des ersten Speicherplatzes 10 gespeichert sind, schneller zugegriffen werden. In einigen Fällen ist die Vorrichtung 1, die um einen Datenzugriff auf den ersten Speicherplatz 10 (der durch den Überlagerungsmechanismus 4 oder das Verfahren zu dem zweiten Speicherplatz 11 umgelenkt wird) anfragt, nicht zum Verarbeiten eines solchen Eingangssignals bereit oder könnte eine falsche Ausgabe erzeugen, weil das Eingangssignal zu früh verarbeitet wird, oder ein Resultat der Verarbeitung stellt eventuell kein „reales“ Resultat, das ohne eine Umlenkung erzielt würde, dar. Ein Zugriff auf den zweiten Speicherplatz 11 wird daher selektiv (Schritt S2) in dem Fall einer Umlenkung verzögert, um dieses Problem zu vermeiden. Das tritt innerhalb der Vorrichtung 1 oder in dem Signalpfad von dem zweiten Speicherplatz 11 zu der Vorrichtung 1 direkt vor der Vorrichtung 1 auf.
  • Gemäß der Offenbarung, können alle Aspekte, Ausführungsformen, Merkmale oder dergleichen kombiniert werden. Gemäß der Offenbarung können alle Bauteile, darunter die Vorrichtungen 1, Prozessoren 1a, Busse 9, Bussegment 9a-9d, Brücken 12, ersten Speicherplätze 10, zweiten Speicherplätze 11, Zielspeicher 6 und/oder Überlagerungsspeicher 8 auf einem einzigen Chip sein.
  • Sie können jedoch auch auf unterschiedlichen Chips sein. Der Chip kann auch mindestens den Prozessor 1a oder die Vorrichtung 1 und andere Bauteile aufweisen, aber mindestens einer der Speicher 6, 8 oder einer der Speicherplätze 10, 11 könnte extern sein. Das kann besonders für Datenduplizierung geeignet sein.
  • Schlussfolgerungen
  • Die Offenbarung betrifft einen Überlagerungsmechanismus oder ein Verfahren zum Umlenken von Datenlastzugriffen von einem ersten Speicherplatz zu einem zweiten Speicherplatz. Ein solcher Mechanismus, der Datenzugriffsüberlagerung genannt wird, kann von einem Kunden während eines Produktentwicklungsstadiums verwendet werden. Ein solcher Mechanismus kann beim Kalibrieren eines Brennkraftmaschinen-Managementsystems eingesetzt werden. Bei einem solchen Kalibrierungssystem kann eine Datentabelle, die innerhalb des Flashspeichers ist, abgestimmt werden. Das kann häufige Änderung der Tabellenwerte involvieren. Ein erster Speicher kann möglicherweise ein Flashspeicher sein, und ein zweiter Speicher kann ein SRAM sein. Das Neuschreiben des Flashspeichers bei jeder Datentabellenänderung ist zeitaufwändig und kann zu einem Strapazieren des ersten Speichers führen, was insbesondere gilt, falls der erste Speicher ein Speicher des Flash-Typs ist. Die Änderung der Lage der Daten ist für die Anwendungssoftware nicht sichtbar, kann aber durch Hardware innerhalb einer Vorrichtung oder eines Prozessors unter der Steuerung des Debug-/Kalibrierungssystems ausgeführt werden. Die Hardware kann eine programmierbare Tabelle von Zieladressbereichen und einen dazu gehörenden Satz umgelenkter Adressbereiche enthalten, die zu ersetzen sind, falls ein Datenzugriff auf den Zieladressbereich ausgeführt wird. Die Umlenkadressbereiche sind SRAM-Plätze und können irgendein SRAM in einem System sein, das DSPR, PSPR, LMU, EMEM umfasst.
  • Die Offenbarung erörtert eine Vorrichtung, die einen Überlagerungsmechanismus umfasst, der konfiguriert oder konfigurierbar ist, um einen Zugriff, der zu einem ersten Speicherplatz gerichtet ist, zu einem zweiten Speicherplatz umzulenken. Der Überlagerungsmechanismus ist konfiguriert oder konfigurierbar, um den Zugriff auf den zweiten Speicherplatz in dem Fall einer Umlenkung zu verzögern.
  • Durch einen solchen Überlagerungsmechanismus kann erzielt werden, dass eine Vorrichtung einen zweiten Speicherplatz an Stelle eines ersten Speicherplatzes einsetzt. Da der erste Speicherplatz nicht eingesetzt zu werden braucht, kann ein Strapazieren des ersten Speicherplatzes vermieden werden. Da aufgrund des Überlagerungsmechanismus der zweite Speicherplatz an Stelle des ersten Speicherplatzes eingesetzt werden kann, kann auf den zweiten Speicherplatz von der Vorrichtung schneller zugegriffen werden als auf den ersten Speicherplatz. Mit anderen Worten kann der Inhalt des zweiten Speicherplatzes schneller herausgelesen werden. Der Zugriff auf den zweiten Speicherplatz kann daher verzögert werden, um das zu kompensieren.
  • Die Offenbarung erörtert auch ein Verfahren zum Überlagern von Daten. Das Verfahren umfasst das Umlenken eines Zugriffs, der zu einem ersten Speicherplatz gerichtet ist, zu einem zweiten Speicherplatz, und das selektive Verzögern des Zugriffs auf den zweiten Speicherplatz um eine Zeit in dem Fall einer Umlenkung. Das Verzögern bedeutet in dem Kontext dieser Offenbarung ein absichtliches Verzögern während Signal- oder Datenverarbeitung, oder dass ein Verzögern oder Aufschieben der Signalverarbeitung absichtlich auftritt. Mit anderen Worten ist die Verzögerung gemäß dieser Offenbarung unterschiedlich von einer störenden Verzögerung, die bei der Signalverarbeitung in einer Vorrichtung, einem System oder Chip unbeabsichtigt aufgrund von Nebenwirkungen einiger Bauteile auftreten kann. Eine solche Nebenwirkung kann eine Reaktionszeit einer Schaltung sein, die zum Beispiel aus Transistoren wie MOSFETs, bipolaren Transistoren und Kapazitäten oder dergleichen besteht.
  • Prinzipiell stellt das Verfahren dieselben Vorteile bereit wie die Vorrichtung. Da ein Zugriff auf Daten, die in einem zweiten Speicherplatz gespeichert sind, auftritt, kann auf die Daten schneller zugegriffen werden als auf Daten, die sich in dem ersten Speicherplatz befinden. Durch das Überlagerungsverfahren, das selektiv den Zugriff auf den zweiten Speicherplatz in dem Fall einer Umlenkung um eine Zeit verzögert, kann der Zugriff auf den zweiten Speicherplatz daher durch die Vorrichtung, die Zugriff anfordert, verzögert oder aufgeschoben werden.
  • Die Offenbarung erörtert auch ein System, das eine erste Vorrichtung, wie bereits erwähnt, umfasst, wobei die erste Vorrichtung einen ersten Prozessor umfasst; eine zweite Vorrichtung, wie bereits erwähnt, wobei die zweite Vorrichtung einen zweiten Prozessor umfasst; eine Busstruktur, die eine Vielzahl von Bussegmenten umfasst, und eine Vielzahl von Speichern. Der erste Prozessor und der zweite Prozessor sind mit den Speichern über die Busstruktur gekoppelt. Eine Verzögerung des Überlagerungsmechanismus der ersten Vorrichtung und eine Verzögerung des Überlagerungsmechanismus der zweiten Vorrichtung sind individuell programmierbar.
  • Durch alle Aspekte, Merkmale oder dergleichen, die bisher erörtert wurden, kann ein Überlagern eines zweiten Speicherplatzes oder eines Flashspeichers möglich sein, ohne sich auf ein zeitliches oder Echtzeitverhalten der Vorrichtung oder eines Systems, das die Vorrichtung umfasst, auszuwerten.
  • Als weitere Schlussfolgerung stellen Ausführungsformen einen Mechanismus bereit, um Datenlastzugriffe von Flashspeicher zu SRAM umzulenken. Dieser Mechanismus ist als Datenzugriffüberlagerung bekannt und wird typischerweise von einem Kunden während des Produktentwicklungsstadiums verwendet, zum Beispiel beim Kalibrieren des Brennkraftmaschinen-Managementsystems. Bei einem solchen Kalibrierungssystem können Datentabellen, die innerhalb des Flashspeichers sind, „abgestimmt“ werden. Das kann manchmal häufige Änderung der Tabellenwerte involvieren. Statt den Flashspeicher bei jeder Datentabellenänderung neu zu schreiben (was zeitaufwändig ist und zu Flashspeicher-Strapazieren führt), werden die Datenwerte in den SRAM platziert. Die Änderung der Lage der Daten ist für die Anwendungssoftware nicht sichtbar, wird aber durch Hardware innerhalb des Prozessors unter der Steuerung des Debug-/Kalibrierungssystems ausgeführt. Diese Hardware kann eine programmierbare Tabelle von Zieladressbereichen und einen dazu gehörenden Satz umgelenkter Adressbereiche enthalten, die zu ersetzen sind, falls ein Datenzugriff auf den Zieladressbereich ausgeführt wird. Die Umlenkadressbereiche sind SRAM-Plätze und können ein beliebiger SRAM in dem System (DSPR, PSPR, LMU, EMEM) sein.
  • Dieses System erlaubt die logische Verlagerung von Adressen ohne Änderung der Anwendungssoftware und erlaubt es daher, Flash-Datentabellen durch den SRAM zu „überlagern“. Diese Lösung löst das Problem der Datentabellenlage. Ausführungsformen gemäß der Erfindung begegnen jedoch auch dem Problem der Datenzugriffszeiten. In einem Echtzeitsystem ist die Zugriffszeit auf die Daten kritisch. Es hat sich herausgestellt, dass das Umschalten der Datentabellen von (langsamen) Flashspeichern zu (schnellen) SRAM das Echtzeitverhalten des Systems nicht ändern sollte.
  • Ausführungsformen sind bestrebt, die Echtzeitleistung des Überlagerungssystems durch Ändern des Timingverhaltens des Überlagerungssystems, das oben beschrieben ist, zu verbessern. Der vorgeschlagene Betrieb ist der Folgende:
  • Jedem Zieladressbereich wird eine Zielzugriffszeit zugewiesen, die die erwartete Anzahl von Zyklen beschreibt, die erforderlich ist, um einen Zugriff auf den Speicher von dem Prozessor auszuführen. Wenn eine Überlagerungsverlagerung ausgeführt wird, wird die tatsächliche Anzahl von Zyklen, die erforderlich ist, um auf den Überlagerungsspeicher zuzugreifen, gezählt. Falls die reale Anzahl von Zyklen, die für den Zugriff erforderlich ist, geringer ist als die Zielzugriffszeit, wird der Prozessor um den Unterschied der Anzahl von Zyklen blockiert. Das erlaubt es, zusätzliche Zyklen zu der Zugriffszeit für den Überlagerungsspeicher hinzuzufügen, um dieselbe Zugriffszeit zu geben, wie sie der Zielspeicher ergeben hätte.
  • Zu bemerken ist, dass die Zugriffszeit des Überlagerungsspeichers, wie sie der Prozessor sieht, manchmal aufgrund von Konkurrenz an dem Bussystem und Überlagerungsspeicher keine Konstante ist. Der Gebrauch einer variablen Verzögerung beim Zurücksenden von Daten stellt einen Kompensationsgrad für diese Konkurrenz dar.
  • Ein typisches System enthält mehrere Prozessoren, mehrere Flashspeicher und kann mehrere Überlagerungsspeicher enthalten. Unter Einsatz dieses Mechanismus kann der Überlagerungsvorgang jedes Prozessors separat für seine Sicht der Flash- und Überlagerungsspeicher-Zugriffszeiten eingestellt werden. Dieser Vorschlag erlaubt das Definieren unterschiedlicher Zielzugriffszeiten für jeden Zielbereich und daher für jeden Flashspeicher.
  • Das vorgeschlagene System ist besser als das zentrale Hinzufügen von Verzögerung an dem Überlagerungsspeicher. Der Überlagerungsspeicher weiß nichts darüber, wie weit der anfragende Prozessor in dem System entfernt ist, oder welches Ziel er überlagert, und kann daher nur eine „durchschnittliche“ Verzögerung bereitstellen, außer es ist ein komplexes Verzögerungssystem eingebaut. Das würde erfordern, dass zusätzliche Daten über den Bus 9 bereitgestellt werden, um den Überlagerungsvorgang, der ausgeführt wird, zu identifizieren. Das Bereitstellen des Mechanismus an dem Prozessor (wie hier vorgeschlagen), erlaubt die Wiederverwendung der aktuellen Überlagerungslogik. Wir können so gut wie jeden SRAM in dem System als einen Überlagerungsspeicher (zum Beispiel DSPR, PSPR, LMU, DLMU, EMEM) verwenden. Das Umsetzen der Verzögerungslogik an dem anfragenden Knoten (in oder nahe dem Prozessor, der das Auslesen von Daten anfordert) an Stelle des SRAM, führt zu einem viel einfacheren System.
  • Zu bemerken ist, dass der Überlagerungsspeicher nicht immer schneller ist als der Zielspeicher. Stattdessen hängt dies davon ab, wo in dem System der Zielspeicher und der Überlagerungsspeicher in Bezug zu dem anfragenden Prozessor sind, und auch von der Konkurrenz des Zielspeichers, des Bussystems und des Überlagerungsspeichers. Der Anwendungssoftwarezugriff auf die Zielspeicher ist typischerweise willkürlicher Art. Im Allgemeinen erwarten wir für willkürliche Zugriffe, dass der SRAM schneller ist als ein Flashspeicher. In dem Fall, in dem die Zielzugriffszeit kürzer ist als die Überlagerungszugriffszeit, wird keine zusätzliche Verzögerung hinzugefügt.
  • Die zusätzliche Verzögerung kann leicht durch Blockieren des Punkts, an dem Daten gültig an der Prozessor-Last-Speichereinheit gesehen wird, hinzugefügt werden. Die einfachste Umsetzung des Verzögerungszählers und des Verzögerungsbetriebs bestünden im Laden eines abwärts zählenden Zählers mit der Zielzugriffszeit, wenn ein Überlagerungsvorgang erfasst wird. Der Zähler wird bei jedem Zyklus um 1 dekrementiert, bis er null erreicht. Nur wenn der Zähler an null ist, werden die Daten durch die Prozessor-Pipeline als gültig und verfügbar gesehen.
  • Zusätzliche Aspekte:
    • • Der beschriebene Mechanismus erlaubt Timing-Kompensation zwischen Speicherzugriffen. Falls das Überlagerungssystem erweitert wurde, um sowohl Code- als auch Datenzugriff zu decken, kann dieser Überlagerungsmechanismus potenziell beim Kompensieren von Timing-Unterschieden in Zusammenhang mit einer Flash-zu-Flash-Überlagerung von Nutzen sein, wie es von diversen Software-Over-The-Air (SOTA)-Umsetzungen gefordert wird.
    • • In dem Fall, in dem der Ziel- und Überlagerungsspeicher derselbe Speicher sind, kann dieser Mechanismus verwendet werden, um zusätzliche Verzögerungszyklen zu jedem Zugriff von dem Speicher hinzuzufügen. Das könnte potenziell zum Abstimmen von Leistungs- oder Stromverbrauch von Nutzen sein.
    • • Das Überlagerungssystem, das diesen Vorschlag aufweist, ist innerhalb des Duplizierungsbereichs für Gleichschrittumsetzungen enthalten. Das unterstützt sicheren Betrieb des Verzögerungszeitgebers.
  • Ausführungsformen werden einer Kundenforderung gerecht, nämlich dass sie fähig sein sollten, Flashspeicher zu überlagern, ohne dass das System-Timing oder Echtzeitverhalten beeinflusst wird.
  • Eine einfache Ausführungsform umfasst eine programmierbare Verzögerung, die fähig ist, den Timingunterschied zwischen Speicherzugriffen auf unterschiedliche Speicherbereiche während Datenzugriffsüberlagerung zu kompensieren.
  • Als eine Alternative könnte ein einfaches System erzeugt werden, das alle Überlagerungsspeicherzugriffe um eine feststehende Menge verzögert, aber dies hätte nicht die Lösung dieses Vorschlags.
  • Zusätzlich ist zu beachten, dass eine Crossbar-Schaltung (Kreuzschienenschaltung) ebenfalls zur Zusammenschaltung zwischen einer Vielzahl von Prozessoren und einer Vielzahl von Speichern, zum Beispiel an Stelle eines Busses, verwendet werden kann. Die Crossbar-Schaltung kann mehrere (zum Beispiel parallele) Datenpfade umfassen, die verwendet werden können, um gleichzeitig mehrere Verbindungen einzurichten, zum Beispiel jede Verbindung zwischen einem Prozessor und einem Speicher. Der Überlagerungsmechanismus kann zum Beispiel zwischen einem Prozessorkern und einem Crossbar-Schalter (der einen Prozessor auswählbar mit einem einer Vielzahl von Kommunikationspfaden der Crossbar verbindet) gekoppelt werden. Der Überlagerungsmechanismus kann konfiguriert werden, um Merkmale der Crossbar zu berücksichtigen, wie zum Beispiel mögliche Crossbar-Konkurrenz. Insofern sind Ausführungsformen, die eine Crossbar verwenden, ähnlich Ausführungsformen, die einen Bus verwenden oder ein Bussystem verwenden (wobei eine Konkurrenz in einem crossbarbasierten System typischerweise kleiner ist als eine Konkurrenz in einem busbasierten System). Mit anderen Worten gelten die Merkmale und Funktionalitäten, die hier unter Bezugnahme auf ein System, das einen Bus verwendet, beschrieben sind, auch für ein System, das eine Crossbar verwendet, und können individuell oder kombiniert verwendet werden.

Claims (11)

  1. Vorrichtung (1), umfassend: einen Überlagerungsmechanismus (4), der konfiguriert oder konfigurierbar ist, um einen Zugriff, der zu einem ersten Speicherplatz (5, 10) gerichtet ist, zu einem zweiten Speicherplatz (7, 11) umzulenken, wobei der Überlagerungsmechanismus (4) konfiguriert oder konfigurierbar ist, um den Zugriff auf den zweiten Speicherplatz (7, 11) in dem Fall einer Umlenkung zu verzögern; wobei der Überlagerungsmechanismus konfiguriert ist, um eine Anfrage eines Prozessors zum Abrufen von Daten von dem ersten Speicherplatz in eine Anfrage zum Abrufen von Daten von dem zweiten Speicherplatz zu verwandeln; wobei die Verzögerung des Überlagerungsmechanismus (4) konfiguriert ist, um einen Unterschied zwischen Zugriffszeiten des ersten Speicherplatzes (5, 10) und des zweiten Speicherplatzes (7, 11) mindestens teilweise zu kompensieren; einen ersten Speicher, wobei der erste Speicherplatz in dem ersten Speicher ist, und einem zweiten Speicher, wobei der zweite Speicherplatz in dem zweiten Speicher ist; und einem weiteren Speicher; wobei der erste Speicher und der zweite Speicher von unterschiedlichen Typen sind, wobei der erste Speicher des Flash-Typs ist, und wobei der zweite Speicher des SRAM-Typs ist; wobei der Überlagerungsmechanismus mit dem ersten und dem zweiten Speicherplatz (5, 7, 10, 11) durch mindestens einen Bus oder durch mindestens eine Crossbar (9) verbunden ist; und wobei Zugriffe, die auf den ersten Speicherplatz gerichtet sind, und Zugriffe, die auf den zweiten Speicherplatz gerichtet sind, beide den selben Bus oder dieselbe Crossbar verwenden; und wobei die Vorrichtung (1) einen Prozessor (1a) umfasst, wobei der Überlagerungsmechanismus eine dedizierte Hardware ist, wobei die Hardware eine programmierbare Tabelle von Zieladressbereichen und einen zugeordneten Satz von umgelenkten Adressbereichen aufweist, die ausgetauscht werden sollen, wenn ein Datenzugriff auf den Zieladressbereich erfolgt, wobei jedem der Zieladressbereiche eine Zielzugriffszeit zugeordnet ist; wobei der Überlagerungsmechanismus (4) konfiguriert ist, um einen Zugriff auf einen ersten Zielspeicherbereich an dem ersten Speicherplatz (5, 10) zu einem ersten Überlagerungsspeicherbereich an dem zweiten Speicherplatz (7, 11) umzulenken, und einen Zugriff auf einen zweiten Zielspeicherbereich auf einen zweiten Überlagerungsspeicherbereich umzulenken, und wobei der Überlagerungsmechanismus (4) konfiguriert ist, um eine erste Verzögerung in dem Fall eines Zugriffs auf den ersten Zielspeicherbereich anzuwenden, und eine zweite Verzögerung, die von der ersten Verzögerung unterschiedlich ist, in dem Fall eines Zugriffs auf den zweiten Zielspeicherbereich in dem Fall einer Umlenkung anzuwenden; wobei der Überlagerungsmechanismus (4) konfiguriert ist, um einen Verarbeitungsvorgang des Prozessors (1a), der einen Zugriff auf den ersten Speicherplatz (5, 10) anfordert, durch Blockieren mindestens eines Zyklus des Prozessors (1a) zu verzögern, oder ein Weiterleiten von Daten von dem Bus (9) oder von der Crossbar zu dem Prozessor (1a) durch eine Verzögerungseinheit (17), die eine Hardware-Schnittstelle zwischen der Vorrichtung und dem Bus bildet, zu verzögern, um dadurch den Zugriff auf den zweiten Speicherplatz (7, 11) zu verzögern; und wobei die Vorrichtung eine logische Übersetzung von Adressen ermöglicht, und wobei die Vorrichtung eine Überlagerung von Datentabellen in dem ersten Speicher durch den zweiten Speicher ermöglicht.
  2. Vorrichtung (1) nach Anspruch 1, wobei der erste Speicherplatz (5, 10) ein Speicher eines ersten Typs oder Speicher des Flash-Typs ist, und/oder der zweite Speicherplatz (7, 11) ein Speicher eines unterschiedlichen Typs oder ein Speicher des SRAM-Typs ist.
  3. Vorrichtung (1) nach Anspruch 1 oder 2, wobei die Verzögerung des Überlagerungsmechanismus (4) programmierbar ist.
  4. Vorrichtung (1) nach einem der vorhergehenden Ansprüche, wobei der Überlagerungsmechanismus (4) konfiguriert ist, um die Verzögerung in Abhängigkeit von Zugriffszeiten des Speicherplatzes (5, 7, 10, 11) anzupassen, wobei der Überlagerungsmechanismus (4) konfiguriert ist, um zu erfassen, ob ein zweiter Zugriff auf den ersten Speicherplatz (5, 10) auf einen ersten Zugriff auf den ersten Speicherplatz (5, 10) folgt, was eine geänderte Zugriffszeit auf den ersten Speicherplatz (5, 10) verursacht, wenn auf nachfolgende Speicherplätze des ersten Speicherplatzes (5, 10) zugegriffen wird, und was dazu führt, dass die geänderte Zugriffszeit kürzer ist als die erste Zugriffszeit auf den ersten Speicherplatz (5, 10), und in diesem Fall Anpassen der Verzögerung an die geänderte Zugriffszeit des ersten Speicherplatzes (5, 10) beim Zugreifen auf den zweiten Speicherplatz (7, 11).
  5. Vorrichtung (1) nach einem der vorhergehenden Ansprüche, wobei der Überlagerungsmechanismus (4) konfiguriert ist, um eine Zugriffszeit auf den zweiten Speicherplatz (7, 11) zu erweitern, damit sie gleich einer oder größer als eine Zielzugriffszeit in dem Fall einer Umlenkung ist.
  6. Vorrichtung (1) nach Anspruch 5, wobei eine Zugriffszeit auf den ersten Speicherplatz (5, 10) länger ist als eine Zugriffszeit ohne Verzögerung auf den zweiten Speicherplatz (7, 11), und wobei die Zielzugriffszeit gleich der oder größer als die Zugriffszeit des ersten Speicherplatzes (5, 10) ist.
  7. Vorrichtung (1) nach Anspruch 5 oder 6, wobei die Zielzugriffszeit programmierbar ist.
  8. Vorrichtung (1) nach einem der vorhergehenden Ansprüche, wobei der Überlagerungsmechanismus (4) konfiguriert ist, um variierende Zugriffszeiten ohne Verzögerung auf den zweiten Speicherplatz (7, 11) zu kompensieren.
  9. Vorrichtung (1) nach einem der vorhergehenden Ansprüche, wobei der Überlagerungsmechanismus (4) konfiguriert ist, um als Reaktion auf ein Erfassen, dass ein Überlagerungsvorgang ausgeführt wird, einen inkrementierenden oder dekrementierenden Zähler zu starten oder zu initialisieren, und wobei der Überlagerungsmechanismus (4) konfiguriert ist, um als Reaktion auf ein Erfassen, dass eine vorbestimmte Anzahl von Taktgeberzyklen seit dem Starten oder Initialisieren des Zählers verstrichen ist, zu melden, dass Daten, die von dem zweiten Speicherplatz (7, 11) empfangen wurden, für einen Prozessor (1a) der Vorrichtung (1) verfügbar sind.
  10. System, umfassend: eine erste Vorrichtung (1) nach einem der vorhergehenden Ansprüche, wobei die erste Vorrichtung (1) einen ersten Prozessor (1a) umfasst; eine zweite Vorrichtung (1) nach einem der vorhergehenden Ansprüche, wobei die zweite Vorrichtung (1) einen zweiten Prozessor (1a) umfasst; eine Busstruktur, die eine Vielzahl von Bussegmenten (9a-9d) umfasst; eine Vielzahl von Speichern (6, 8, 10, 11); wobei der erste Prozessor (1a) und der zweite Prozessor (1a) mit den Speichern (6, 8, 10, 11) über die Busstruktur (9, 9a-9d) gekoppelt sind; wobei eine Verzögerung des Überlagerungsmechanismus (4) der ersten Vorrichtung (1) und eine Verzögerung des Überlagerungsmechanismus (4) der zweiten Vorrichtung (1) individuell programmierbar sind.
  11. System nach Anspruch 10, wobei die Bussegmente (9a-9d) über eine oder mehrere Brücken (12) gekoppelt sind; wobei die Speicher (6, 8, 10, 11) mit unterschiedlichen Segmenten (9a-9d) der Busstruktur (9) gekoppelt sind; wobei der erste Prozessor (1a) und der zweite Prozessor (1a) mit unterschiedlichen Segmenten (9a-9d) der Busstruktur (9a-9d) gekoppelt sind; wobei die Speicher (6, 8, 10, 11) Zielspeicherbereiche und Überlagerungsspeicherbereiche umfassen, und wobei sich eine Beziehung zwischen einer Zugriffszeit des ersten Prozessors (1a) auf einen Zielspeicherbereich, der einem Vorgang des ersten Prozessors (1a) zugeordnet ist, und einer Zugriffszeit ohne Verzögerung des ersten Prozessors (1a) auf einen Überlagerungsspeicherbereich, der dem Vorgang des ersten Prozessors (1a) zugeordnet ist, von einer Beziehung zwischen einer Zugriffszeit des zweiten Prozessors (1a) auf einen Zielspeicherbereich, der einem Vorgang des zweiten Prozessors (1a) zugeordnet ist, und einer Zugriffszeit ohne Verzögerung des zweiten Prozessors (1a) auf einen Überlagerungsspeicherbereich, der dem Vorgang des zweiten Prozessors (1a) zugeordnet ist, unterscheidet; wobei eine Verzögerung des Überlagerungsmechanismus (4) der ersten Vorrichtung (1) und eine Verzögerung des Überlagerungsmechanismus der zweiten Vorrichtung (1) einzeln programmierbar sind, um eine Kompensation der unterschiedlichen Beziehungen zwischen Zugriffszeiten auf Zielspeicherbereiche und entsprechende Überlagerungsspeicherbereiche zu erlauben.
DE102016218280.3A 2016-09-22 2016-09-22 Vorrichtung, die einen Überlagerungsmechanismus umfasst, System mit Vorrichtungen, die jeweils einen Überlagerungsmechanismus mit einer individuellen programmierbaren Verzögerung umfassen Active DE102016218280B4 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102016218280.3A DE102016218280B4 (de) 2016-09-22 2016-09-22 Vorrichtung, die einen Überlagerungsmechanismus umfasst, System mit Vorrichtungen, die jeweils einen Überlagerungsmechanismus mit einer individuellen programmierbaren Verzögerung umfassen
US15/711,391 US10653315B2 (en) 2016-09-22 2017-09-21 Device comprising an overlay mechanism, system with devices each comprising an overlay mechanism with an individually programmable delay or method for overlaying data
JP2017182357A JP2018049622A (ja) 2016-09-22 2017-09-22 オーバレイメカニズムを含む装置、遅延を個別にプログラミング可能なオーバレイメカニズムをそれぞれが有する複数の装置を含むシステム、またはデータをオーバレイする方法
US16/874,763 US11096578B2 (en) 2016-09-22 2020-05-15 Device comprising an overlay mechanism, system with devices each comprising an overlay mechanism with an individually programmable delay or method for overlaying data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016218280.3A DE102016218280B4 (de) 2016-09-22 2016-09-22 Vorrichtung, die einen Überlagerungsmechanismus umfasst, System mit Vorrichtungen, die jeweils einen Überlagerungsmechanismus mit einer individuellen programmierbaren Verzögerung umfassen

Publications (2)

Publication Number Publication Date
DE102016218280A1 DE102016218280A1 (de) 2018-03-22
DE102016218280B4 true DE102016218280B4 (de) 2018-07-19

Family

ID=61302521

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016218280.3A Active DE102016218280B4 (de) 2016-09-22 2016-09-22 Vorrichtung, die einen Überlagerungsmechanismus umfasst, System mit Vorrichtungen, die jeweils einen Überlagerungsmechanismus mit einer individuellen programmierbaren Verzögerung umfassen

Country Status (3)

Country Link
US (2) US10653315B2 (de)
JP (1) JP2018049622A (de)
DE (1) DE102016218280B4 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140325129A1 (en) 2008-12-31 2014-10-30 Micron Technology, Inc. Method and apparatus for active range mapping for a nonvolatile memory device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01258151A (ja) * 1988-04-08 1989-10-16 Oki Electric Ind Co Ltd インタフェース回路
JPH03131944A (ja) * 1989-10-18 1991-06-05 Fujitsu Ltd データ処理装置
JP3968237B2 (ja) 2001-04-16 2007-08-29 富士通株式会社 マイクロコンピュータの評価装置
US7222224B2 (en) * 2004-05-21 2007-05-22 Rambus Inc. System and method for improving performance in computer memory systems supporting multiple memory access latencies
US8108033B2 (en) 2004-11-02 2012-01-31 Medtronic, Inc. Techniques for data retention upon detection of an event in an implantable medical device
US20070061500A1 (en) * 2005-09-09 2007-03-15 Intel Corporation Relocatable overlay window to access supernumerary data resources
US7844785B2 (en) * 2007-10-22 2010-11-30 Qimonda Ag Method and apparatus for memory access optimization
US8171206B2 (en) 2008-07-22 2012-05-01 Sandisk Technologies Inc. Avoidance of self eviction caused by dynamic memory allocation in a flash memory storage device
JP5833756B2 (ja) * 2012-03-23 2015-12-16 株式会社日立製作所 二重化共有メモリアクセス方法と二重化共有メモリアクセス方法を用いたストレージ装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140325129A1 (en) 2008-12-31 2014-10-30 Micron Technology, Inc. Method and apparatus for active range mapping for a nonvolatile memory device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Fang, Y.-C., Tseng C.-K., Hsu Y.: Emulation of Object-Based Storage Devices by a Virtual Machine. In: ICA3PP 2010, Part II, LNCS 6082, pp. 166–177 (2010)
Griffin, J.L., Schindler, J., Schlosser, S.W., Bucy, J.S., Ganger, G.R.: Timing-Accurate Storage Emulation. In: Proceedings of the Conference on File and Storage Technologies, Janaury 2002, pp. 75–88 (2002)

Also Published As

Publication number Publication date
US10653315B2 (en) 2020-05-19
US11096578B2 (en) 2021-08-24
US20200275836A1 (en) 2020-09-03
US20180078136A1 (en) 2018-03-22
JP2018049622A (ja) 2018-03-29
DE102016218280A1 (de) 2018-03-22

Similar Documents

Publication Publication Date Title
DE2645537C2 (de)
DE60132585T2 (de) Vorrichtung und verfahren zum ausgeben der gruppierung von befehlen in einem vliw-prozessor
DE3151745C2 (de)
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
DE60015395T2 (de) Speicher, der zwischen verarbeitenden threads geteilt ist
DE69129569T2 (de) Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen
DE4330751C2 (de) Verfahren zum Liefern von Daten von einem Hauptspeicher über ein Speicherpuffersystem zu einem Datenverarbeitungssystem
DE69224084T2 (de) Rechneranordnung mit Mehrfachpufferdatencachespeicher und Verfahren dafür
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE68923433T2 (de) Einrichtung und Methode um Festwertspeicher in einem Rechnerspeicherbereich anzuordnen.
CH619309A5 (de)
DE2556617C2 (de) Schiebe- und Rotierschaltung
DE2717658A1 (de) Anordnung zur ansteuerung eines mikroprogrammspeichers
DE2809602A1 (de) Kanalbus-steuereinrichtung
DE19814415A1 (de) Logikanalyse-Untersystem in einem Zeitscheibenemulator
DE102017108347A1 (de) Auf-Chip Abschlussschaltung, Speichervorrichtung mit der Auf-Chip Abschlussschaltung, und Speichersystem mit der Speichervorrichtung
DE69030072T2 (de) Schneller Durchschreib-Cache-Speicher
DE69027919T2 (de) Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher
DE19526008A1 (de) Vertikal partitionierter, primärer Befehls-Cache-Speicher
DE69432063T2 (de) Bussteuereinrichtung
DE69618831T2 (de) ECC-geschützte Speicherorganisation mit Lese-Änderungs-Schreib-Pipelinezugriff
DE102016218280B4 (de) Vorrichtung, die einen Überlagerungsmechanismus umfasst, System mit Vorrichtungen, die jeweils einen Überlagerungsmechanismus mit einer individuellen programmierbaren Verzögerung umfassen
DE112006000514T5 (de) CPU-Architektur mit einzelnem Zyklus und geringer Leistungsaufnahme
DE102016015836B4 (de) Vorrichtung, die einen Überlagerungsmechanismus umfasst, System mit Vorrichtungen, die jeweils einen Überlagerungsmechanismus mit einer individuellen programmierbaren Verzögerung umfassen, oder Verfahren zum Überlagern von Daten
EP0347970B1 (de) Verfahren zum Prüfen eines Festwertspeichers und Anordnung zur Durchführung des Verfahrens

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R130 Divisional application to

Ref document number: 102016015836

Country of ref document: DE

R020 Patent grant now final
R082 Change of representative