DE102005021546A1 - Mikrocontroller- bzw. Mikroprozessor-System, insbesondere Mikrocontroller- bzw. Mikroprozessor-System mit Fehler-Erkennung bzw. -Korrektur - Google Patents

Mikrocontroller- bzw. Mikroprozessor-System, insbesondere Mikrocontroller- bzw. Mikroprozessor-System mit Fehler-Erkennung bzw. -Korrektur Download PDF

Info

Publication number
DE102005021546A1
DE102005021546A1 DE102005021546A DE102005021546A DE102005021546A1 DE 102005021546 A1 DE102005021546 A1 DE 102005021546A1 DE 102005021546 A DE102005021546 A DE 102005021546A DE 102005021546 A DE102005021546 A DE 102005021546A DE 102005021546 A1 DE102005021546 A1 DE 102005021546A1
Authority
DE
Germany
Prior art keywords
data
bit
read
bits
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102005021546A
Other languages
English (en)
Other versions
DE102005021546B4 (de
Inventor
Klaus Oberlaender
Paul Hubbert
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 DE102005021546.7A priority Critical patent/DE102005021546B4/de
Publication of DE102005021546A1 publication Critical patent/DE102005021546A1/de
Application granted granted Critical
Publication of DE102005021546B4 publication Critical patent/DE102005021546B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben eines Mikrocontroller- bzw. Mikroprozessor-Systems (1) sowie ein Mikrocontroller- bzw. Mikroprozessor-System (1), welches aufweist: DOLLAR A eine Speicher-Einrichtung (4), DOLLAR A dadurch gekennzeichnet, dass DOLLAR A das System zusätzlich einen Zwischen-Speicher (5a) aufweist zum Zwischen-Speichern von in Reaktion auf einen Schreibbefehl (8-Bit-Store) erzeugten, korrespondierenden Lese- bzw. Lese-Modifizier-Schreib-Befehl (16-Bit-Read-Modify-Write) aus der Speicher-Einrichtung (4) ausgelesenen Daten.

Description

  • Die Erfindung betrifft ein Mikrocontroller- bzw. Mikroprozessor-System gemäß Oberbegriff des Anspruchs 1, und ein Verfahren zum Betreiben eines Mikrocontroller- bzw. Mikroprozessor-Systems.
  • Herkömmliche Mikrocontroller- bzw. Mikroprozessor-Systeme weisen eine oder mehrere (zentrale) Steuer- bzw. Recheneinheiten auf (Central Processing Units (CPUs), bzw. CPU „Cores").
  • Die CPU oder die CPUs sind mit einer oder mehreren Speicher-Einrichtungen verbunden, z.B. einer Programm- und einer Datenspeichereinrichtung („Programmspeicher", und „Datenspeicher").
  • Der „Programmspeicher" enthält insbesondere die Folge der von dem bzw. den CPU Cores abzuarbeitenden Befehle, also das Programm (und ggf. zusätzlich entsprechende – von dem bzw. den CPU Cores zu verwendende – Daten-Konstanten, z.B. System-Daten betreffende Daten-Konstanten).
  • Der Programmspeicher kann z.B. von einem EPROM (Erasable PROM bzw. Löschbaren Festwertspeicher) oder EEPROM (Electrically Erasable PROM bzw. Elektrisch Löschbarer Festwertspeicher) gebildet werden, oder z.B. von einem SRAM (SRAM = Static Random Access Memory).
  • Dadurch kann erreicht werden, dass das Programm auch bei unterbrochener Stromzufuhr auf der entsprechenden Speicher-Einrichtung gespeichert bleibt.
  • Für häufig zu ändernde Programme können – alternativ – z.B. auch DRAMs (DRAM = Dynamic Random Access Memory) als Programmspeicher verwendet werden, die von einem externen Massenspeicher geladen werden können.
  • Im o.g. „Datenspeicher" können z.B. die – insbesondere von dem bzw. den CPU Cores beim Abarbeiten des Programms ggf. abzuändernden – Variablen gespeichert sein.
  • Der Datenspeicher kann z.B. von einem oder mehreren RAM-Bauelementen, insbesondere z.B. einem entsprechenden DRAM-Bauelement (DRAM = Dynamic Random Access Memory), oder SRAM-Bauelement (SRAM = Static Random Access Memory) gebildet werden.
  • Bei der Speicherung von Daten in Speicherbauelementen, z.B. RAMs können zwei verschiedene Arten von Fehlern auftreten permanente Fehler (hard errors) und flüchtige Fehler (soft errors).
  • Permanente Fehler (hard errors) können durch Defekte in den jeweiligen Halbleiter-Speicherbauelementen, und/oder in den beteiligten Ansteuerschaltungen verursacht werden.
  • Flüchtige Fehler (soft errors) treten nur zufällig auf, und sind nicht reproduzierbar. Soft errors können z.B. durch α-Strahlung verursacht werden, z.B. durch von kosmischer Strahlung, der Umgebung des jeweiligen Speicherbauelements, oder dem Speicherbauelement-Gehäuse selbst, etc. herrührender α-Strahlung.
  • α-Strahlung kann z.B. dazu führen, dass die Speicherkondensatoren von dynamischen RAMs umgeladen werden, oder dass die Speicher-Flip-Flops von statischen RAMs umkippen, etc.
  • Flüchtige Fehler können auch durch Störimpulse entstehen, die innerhalb oder außerhalb einer Schaltung bzw. eines Speicherbauelements erzeugt werden.
  • Speicher-Fehler können weitreichende Folgen haben, z.B. zum „Absturz" (endgültigen Ausfall) eines Programms führen, oder dazu, dass von einem Mikrocontroller- bzw. Mikroprozessor-System ein falsches Ergebnis geliefert bzw. berechnet wird, etc., etc.
  • Aus diesem Grund werden in Mikrocontroller- bzw. Mikroprozessor-Systemen entsprechende Speicherbauelemente immer häufiger so betrieben, dass eine Erkennung oder – besser – eine Korrektur von Speicher-Fehlern möglich ist.
  • Zu diesem Zweck können entsprechende fehlererkennende oder fehlerkorrigierende Codes verwendet werden.
  • Das einfachste Verfahren zur Fehlererkennung besteht in der – zusätzlichen – Übertragung und Speicherung eines sog. Paritätsbits als Prüfbit.
  • Beispielsweise wird – im Falle einer sog. „geraden" Parität – das zusätzlich übertragene Paritätsbit auf Null gesetzt, wenn die Zahl der Einsen in den übrigen zu übertragenden Datenbits gerade ist, und auf Eins, wenn die Zahl der Einsen in den übrigen zu übertragenden Datenbits ungerade ist.
  • Umgekehrt wird – im Falle einer sog. „ungeraden" Parität – das zusätzlich übertragene Paritätsbit auf Eins gesetzt, wenn die Zahl der Einsen in den übrigen zu übertragenden Datenbits gerade ist, und auf Null, wenn die Zahl der Einsen in den übrigen zu übertragenden Datenbits ungerade ist.
  • Zur Fehlererkennung wird das – zusätzlich übertragene – Paritätsbit zusammen mit den abzuspeichernden, übertragenen Datenbits abgespeichert.
  • Beim Auslesen der Datenbits wird – erneut – das entsprechende Paritätsbit berechnet, und mit dem abgespeicherten Paritätsbit verglichen. Ergibt sich ein Unterschied, ist ein Fehler aufgetreten.
  • Sind mehrere Bits gestört, kann mit Hilfe der o.g. Paritätsbit-Methode eine ungerade Fehlerzahl erkannt werden, eine gerade hingegen nicht.
  • Durch Übertragung gleich mehrerer Prüfbits (statt eines einzigen Paritätsbits) kann das o.g. Prinzip so verbessert werden, dass ein Fehler nicht nur erkannt, sondern auch lokalisiert werden kann (und/oder dass gleich mehrere bzw. auch eine gerade Anzahl an Fehlern erkannt werden kann). Ein lokalisierter Fehler kann durch Negation des entsprechenden Bits korrigiert werden.
  • Als fehlerkorrigierender Code kann z.B. ein sog. Hamming-Code verwendet werden, etc.
  • Abhängig vom jeweils verwendeten Code, und der Anzahl an Prüfbits kann die Anzahl an erkenn- und/oder korrigierbaren Fehlern unterschiedlich sein.
  • Z.B. können mit Hilfe eines sog. SECDED-Codes gleich zwei in den übertragenen Datenbits enthaltene Fehler erkannt, und ein in den übertragenen Datenbits enthaltener Fehler korrigiert werden (SECDED = Single Error Correction, Dual Error Detection).
  • Wie sich aus der in 1 gezeigten Tabelle ergibt, ist die Anzahl an zu übertragenden (Nutz-)Datenbits, und die Anzahl der entsprechenden, zusätzlich zu übertragenden Prüfbits (z.B. entsprechender SECDED-Code-Bits) nicht linear.
  • Stattdessen sind z.B. – falls 2n zu übertragende Datenbits mit Hilfe entsprechender SECDED-Code-Bits „geschützt" werden sollen – hierzu n+2 SECDED-Code-Bits notwendig.
  • Der sich aus den o.g. Formeln ergebende Zusammenhang zwischen der Anzahl an zu übertragenden (Nutz-)Datenbits, und dem entsprechenden SECDED-Code-Bit-/(Nutz-)Datenbit-Verhältnis ist aus dem in 2 zur Veranschaulichung dargestellten Graphen ersichtlich.
  • Wie den Darstellungen in 1 und 2 entnommen werden kann, werden – pro (Nutz-)Datenbit – um so weniger SECDED-Code-Bits benötigt, je größer die Datenbreite der zu übertragenden (Nutz-)Datenbits ist.
  • Die Erfindung hat zur Aufgabe, ein neuartiges Mikrocontroller- bzw. Mikroprozessor-System zur Verfügung zu stellen, sowie ein neuartiges Verfahren zum Betreiben eines Mikrocontroller- bzw. Mikroprozessor-Systems, insbesondere ein System und ein Verfahren, bei denen die Anzahl der zum „Schutz" der Daten benötigten Prüfbits gering gehalten werden kann, bei keinen oder nur geringen Performance-Einbussen.
  • Sie erreicht dieses und weitere Ziele durch den Gegenstand der Ansprüche 1 und 8.
  • Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
  • Gemäß einem Aspekt der Erfindung wird ein Mikrocontroller- bzw. Mikroprozessor-System zur Verfügung gestellt, welches aufweist:
    eine Speicher-Einrichtung, und
    einen Zwischen-Speicher zum Zwischen-Speichern von in Reaktion auf einen in Reaktion auf einen Schreib-Befehl erzeugten, korrespondierenden Lese- bzw. Lese-Modifizier- Schreib-Befehl aus der Speicher-Einrichtung ausgelesenen Daten.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Verfahren zum Betreiben eines Mikrocontroller- bzw. Mikroprozessor-Systems zur Verfügung gestellt, welches mindestens eine Speicher-Einrichtung umfasst, wobei das Verfahren die Schritte aufweist:
    Erzeugen eines zu einem Schreib-Befehl korrespondierenden Lese- bzw. Lese-Modifizier-Schreib-Befehls; und
    Zwischen-Speichern von in Reaktion auf den erzeugten Lese- bzw. Lese-Modifizier-Schreib-Befehl aus der Speicher-Einrichtung ausgelesenen Daten.
  • Im folgenden wird die Erfindung anhand von Ausführungsbeispielen und der beigefügten Zeichnung näher erläutert. In der Zeichnung zeigt:
  • 1 eine Tabelle zur beispielhaften Veranschaulichung des Zusammenhangs zwischen der Anzahl an zu übertragenden (Nutz-)Datenbits, der Anzahl der entsprechenden, zusätzlich zu übertragenden SECDED-Code-Bits, und des sich jeweils ergebenden SECDED-Code-Bit-/(Nutz-)Datenbit-Verhältnisses; und
  • 2 einen Graphen zur beispielhaften Veranschaulichung des Zusammenhangs zwischen der Anzahl an zu übertragenden (Nutz-)Datenbits, und dem entsprechenden SECDED-Code-Bit-/(Nutz-)Datenbit-Verhältnis;
  • 3 eine schematische Darstellung eines Mikrocontroller- bzw. Mikroprozessor-Systems gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und
  • 4 eine schematische Darstellung von Speicher-Plätzen eines der in 3 gezeigten Merge Buffer bzw. der dort gezeigten Speicher-Einrichtung, und der jeweils gespeicherten Daten-Bits, zur Veranschaulichung von bei einem Verfahren zum Betreiben des Mikrocontroller- bzw. Mikroprozessor-Systems gemäß einem Ausführungsbeispiel der vorliegenden Erfindung durchgeführten Verfahrensschritten.
  • In 3 ist – beispielhaft – eine schematische Darstellung eines Mikrocontroller- bzw. Mikroprozessor-Systems 1 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung gezeigt.
  • Dieses weist eine Mikrocontroller-Einheit 7 auf, welche eine einzelne Steuer- bzw. Recheneinheit 2a („Single-Core-System") oder mehrere Steuer- bzw. Recheneinheiten 2a, 2a („Multi-Core-System") aufweisen kann (Central Processing Units (CPUs), bzw. CPU „Cores" 2a, 2b).
  • Die CPU Cores 2a, 2b sind über ein entsprechendes Bus-System 3, und unter Zwischenschaltung einer Speicher-Steuer-Einrichtung 17, und – wie im folgenden noch genauer erläutert wird – mehrerer Merge Buffer 5a, 5b, 5c, 5d mit einer Speicher-Einrichtung 4 verbunden.
  • Das Bus-System 3 weist mehrere Sub-Busse auf, z.B. einen Daten-Bus 3a, einen Steuer-Bus 3b, und einen Adress-Bus 3c.
  • Statt oder zusätzlich zu der in 1 gezeigten Speicher-Einrichtung 4 können eine oder mehrere weitere Speicher-Einrichtungen vorgesehen sein, wobei beispielsweise eine erste der Speicher-Einrichtungen 4 – insbesondere – als Programmspeicher fungiert, und eine zweite der Speicher-Einrichtungen – insbesondere – als Datenspeicher, etc.
  • Der „Programmspeicher" enthält insbesondere die Folge der von dem bzw. den CPU Cores 2a, 2b abzuarbeitenden Befehle, also das Programm (und ggf. zusätzlich entsprechende – von dem bzw. den CPU Cores zu verwendende – Daten-Konstanten, z.B. System-Daten betreffende Daten-Konstanten).
  • Im o.g. „Datenspeicher" können z.B. die – insbesondere von dem bzw. den CPU Cores 2a, 2b beim Abarbeiten des Programms ggf. abzuändernden – Variablen gespeichert sein.
  • Als Speicher-Einrichtung 4 (und/oder als weitere Speicher-Einrichtung, etc.) können z.B. ein oder mehrere SRAMs (SRAM = Static Random Access Memory) verwendet werden, und/oder ein oder mehrere DRAMs (DRAM = Dynamic Random Access Memory), etc. (und/oder alternativ z.B. auch ein oder mehrere EPROMs (Erasable PROM bzw. Löschbarer Festwertspeicher) und/oder EEPROMs (Electrically Erasable PROM bzw. Elektrisch Löschbarer Festwertspeicher) und/oder Flash-Speicherbauelemente).
  • Der o.g. Datenspeicher kann z.B. von einem oder mehreren RAM-Bauelementen, insbesondere z.B. einem entsprechenden DRAM-Bauelement (DRAM = Dynamic Random Access Memory), oder SRAM-Bauelement (SRAM = Static Random Access Memory) gebildet werden.
  • Die Speicher-Einrichtung 4, die Speicher-Steuer-Einrichtung 17, und die Mikrocontroller-Einheit 7 können alle auf ein- und demselben Chip liegen; alternativ kann z.B. für die Speicher-Einrichtung 4 auch ein separater Chip vorgesehen sein.
  • Im vorliegenden fall weist die Speicher-Einrichtung 4 vier separate Memory Tower 4a, 4b, 4c, 4d auf, in denen bei einem einzelnen Zugriff jeweils (maximal) 16 Bit breite Daten als „Nutz-Daten" abgespeichert, oder ausgelesen werden können.
  • Alternativ können statt der hier beispielhaft dargestellten Speicher-Einrichtung 4 auch beliebig anders aufgebaute und eingerichtete Speicher-Einrichtungen verwendet werden, z.B. Speicher-Einrichtungen mit mehr oder weniger Memory Towern, als in 3 dargestellt, und/oder Speicher-Einrichtungen, bei denen die maximale Daten-Breite der bei einem einzelnen Zugriff (in einem entsprechenden Memory Tower) abspeicher- oder auslesbaren Daten höher ist, als oben angegeben (z.B. Speicher-Einrichtungen, bei denen bei einem einzelnen Zugriff jeweils maximal 32, 64, 128 oder 256 Bit breite Daten als Nutz-Daten in einem entsprechenden Memory Tower abgespeichert, oder aus diesem ausgelesen werden können).
  • Wie im folgenden noch genauer erläutert wird, kann von der Mikrocontroller-Einheit 7 – durch Übertragen entsprechender Befehls-Signale über den o.g. Steuer-Bus 3b – auch ein Lese- oder Schreib-Zugriff durchgeführt werden, bei dem Daten als Nutz-Daten in einem entsprechenden Memory Tower abgespeichert, oder aus diesem ausgelesen werden sollen, die eine kleinere Daten-Breite aufweisen, als die o.g. maximale Daten-Breite des jeweiligen Memory Towers (z.B. 8 Bit statt der o.g. 16 Bit (oder – bei anderen, alternativen Speicher-Einrichtungs-Konfigurationen, z.B. bei solchen, bei welchen bei einem einzelnen Zugriff jeweils maximal 32 Bit breite Daten als Nutz-Daten in einem entsprechenden Memory Tower abgespeichert, oder aus diesem ausgelesen werden können – 8 oder 16 Bit statt 32 Bit (oder z.B. 8, 16 oder 32 Bit statt maximal 64 Bit, etc., etc.))).
  • Wie in 3 veranschaulicht ist, werden beim vorliegenden Ausführungsbeispiel in der Speicher-Einrichtung 4, bzw. genauer: im jeweiligen Memory Tower 4a, 4b, 4c, 4d zusammen mit den o.g. Nutz-Daten (hier: z.B. bestehend aus jeweils 16 Bit) jeweils zusätzlich den jeweiligen Nutz-Daten zugeordnete Prüf-Daten (hier: z.B. jeweils bestehend aus 6 Bit) abgespeichert.
  • Die Prüf-Daten werden unter Verwendung an sich bekannter fehlererkennender oder fehlerkorrigierender Codes aus den Nutz-Daten berechnet (z.B. jeweils durch den Mikrocontroller bzw. -prozessor 7 selbst, und/oder durch die Speicher-Steuer-Einrichtung 17, und/oder durch den jeweiligen Merge Buffer 5a, 5b, 5c, 5d).
  • Bei den Prüf-Daten kann es sich z.B. um ein oder mehrere entsprechende, unter Verwendung entsprechender fehlererkennender Codes aus den jeweiligen Nutz-Daten berechnete „gerade" oder „ungerade" Paritätsbits handeln, oder z.B. um unter Verwendung entsprechender fehlerkorrigierender Codes (ECC = Error Correcting Code), z.B. eines Hamming-Codes aus den jeweiligen Nutz-Daten berechnete Prüfbits, etc., z.B. – beim vorliegenden Ausführungsbeispiel – um SECDED-Code-Prüf-Daten (SECDED = Single Error Correction, Dual Error Detection), mit deren Hilfe zwei in den abgespeicherten Nutz-Daten enthaltene Fehler erkannt, und ein in den abgespeicherten Nutz-Daten enthaltener Fehler korrigiert werden kann (oder z.B. um DECTED-Code-Prüf-Daten (DECTED = Double Error Correction, Triple Error Detection), mit deren Hilfe drei in den abgespeicherten Nutz-Daten enthaltene Fehler erkannt, und zwei in den abgespeicherten Nutz-Daten enthaltene Fehler korrigiert werden können).
  • Wie im folgenden noch genauer erläutert wird, werden beim vorliegenden Ausführungsbeispiel unabhängig von der tatsächlichen Breite der von der Mikrocontroller-Einheit 7 mittels Schreib-Zugriff jeweils angesprochenen Nutz-Daten (hier z.B. 8 Bit, oder 16 Bit) – falls dann tatsächlich ein Zugriff auf den entsprechenden Memory Tower 4a, 4b, 4c, 4d erfolgt (s.u.) – jeweils die o.g. maximale Zahl der bei einem Zugriff in einem entsprechenden Memory Tower abspeicher- oder auslesbarerer Nutz-Daten dort abgespeichert (hier z.B. jeweils 16 Bit), und die jeweils entsprechende, zugehörige Anzahl von Prüf-Daten (hier z.B. jeweils 6 Bit SECDED-Code-Prüfdaten (vgl. z.B. auch die in 1 gezeigte Tabelle)).
  • Entspricht bei einem Schreib-Zugriff (z.B. bei einem 16-Bit-Store-Befehl) durch die Mikrocontroller-Einheit 7 die Breite der von der Mikrocontroller-Einheit 7 über das Bus-System 3 übermittelten, in der Speicher-Einrichtung 4 abzuspeichernden Nutz-Daten der o.g. Anzahl der jeweils in einem Memory Tower bei einem Einzel-Zugriff abspeicherbaren Nutz-Daten (hier z.B. 16 Bit), werden diese – wie herkömmlich, und ohne Zwischenspeicherung im entsprechenden Merge Buffer 5a, 5b, 5c, 5d – zusammen mit den entsprechenden (wie oben erläutert berechneten) Prüf-Daten an der durch die über den Adress-Bus 3c übertragenen Adresse definierten Stelle in der Speicher-Einrichtung 4 abgespeichert (und zwar innerhalb eines einzigen Zyklus).
  • Ist bei einem Schreib-Zugriff (z.B. bei einem 8-Bit-Store-Befehl) durch die Mikrocontroller-Einheit 7 die Breite der von der Mikrocontroller-Einheit 7 über das Bus-System 3 übermittelten, in der Speicher-Einrichtung 4 abzuspeichernden Nutz-Daten kleiner der o.g. Anzahl der jeweils in einem Memory Tower bei einem Einzel-Zugriff (maximal) abspeicherbaren Nutz-Daten, wird wie folgt verfahren:
    Der entsprechende Befehl (z.B. der o.g. 8-Bit-Store-Befehl) wird – z.B. von der Mikrocontroller-Einheit 7, der Speicher-Steuer-Einrichtung 17, oder dem jeweiligen Merge Buffer 5a, 5b, 5c, 5d – in einen entsprechenden 16-Bit-Read-Modify-Write-Befehl umgewandelt (d.h. in einen 16-Bit-Read-Modify-Write-Befehl, mit welchem eine entsprechende Stelle in der Speicher-Einrichtung 4 angesprochen wird, wie durch den 8-Bit-Store-Befehl (wobei die durch die Befehle angesprochene Speicher-Stelle über die über den Adress-Bus 3c übertragene Adresse definiert wird)).
  • Mit anderen Worten wird also statt des o.g. Schreib-Zugriffs ein entsprechender Lese-Modifizier-Schreib-Zugriff durchgeführt.
  • Dabei werden – wie aus 4, oben („Schritt 1") hervorgeht – abhängig von der durch den 8-Bit-Store-Befehl angesprochenen Adress-Stelle entweder (zusätzlich zu den an den durch den 8-Bit-Store-Befehl angesprochenen Speicher-Stellen abgespeicherten Daten) auch Daten aus der Speicher-Einrichtung 4 ausgelesen, die an den 8 vorhergehenden (siehe 4, Fall A, oben), oder 8 nachfolgenden (siehe 4, Fall B, oben) Speicher-Stellen der Speicher-Einrichtung abgespeichert sind (Bits 12a, 12b, 12c, 12d, 12e, 12f, 12g, 12h, bzw. Bits 13a, 13b, 13c, 13d, 13e, 13f, 13g, 13h) – mit anderen Worten wird also jeweils das entsprechende, vollständige (16-Bit) Daten-Wort 16 aus der Speicher-Einrichtung 4 bzw. dem entsprechenden Memory Tower 4a, 4b, 4c, 4d ausgelesen, bzw. dasjenige (16-Bit) Daten-Wort 16, welches Daten an einer Adress-Stelle enthält, die der für den 8-Bit-Store-Befehl angegebenen Adresse entspricht.
  • Die ausgelesenen Daten (d.h. das entsprechende, vollständige Daten-Wort) werden im entsprechenden, dem jeweiligen Memory Tower 4a, 4b, 4c, 4d zugeordneten Merge Buffer 5a, 5b, 5c, 5d zwischengespeichert, und dort mit den o.g. für den o.g. 8-Bit-Store-Befehl von der Mikrocontroller-Einheit 7 über das Bus-System 3 übermittelten, in der Speicher-Einrichtung 4 abzuspeichernden Nutz-Daten zusammengeführt („Merging").
  • Dabei werden – wie aus 4, „Schritt 2" hervorgeht – zu den o.g. durch den 16-Bit-Read-Modify-Write-Befehl im Vergleich zu dem korrespondierenden 8-Bit-Store-Befehl zusätzlich spezifizierten 8 Bits 12a, 12b, 12c, 12d, 12e, 12f, 12g, 12h, bzw. 8 Bits 13a, 13b, 13c, 13d, 13e, 13f, 13g, 13h (d.h. zu den 8 ersten Bits (Fall A), oder 8 letzten Bits (Fall B) des o.g. Daten-Worts) die entsprechenden, durch den o.g. 8-Bit-Store-Befehl spezifizierten, von der Mikrocontroller-Einheit 7 über das Bus-System 3 übermittelten 8 Bits hinzugefügt (d.h. die 8 Bits 14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h nachfolgend auf die o.g. 8 Bits 12a, 12b, 12c, 12d, 12e, 12f, 12g, 12h im entsprechenden Merge-Buffer abgespeichert (Fall A), bzw. die 8 Bits 15a, 15b, 15c, 15d, 15e, 15f, 15g, 15h vorhergehend zu den o.g. 8 Bits 13a, 13b, 13c, 13d, 13e, 13f, 13g, 13h im entsprechenden Merge-Buffer abgespeichert (Fall B)).
  • Für das so erzeugte, geänderte Daten-Wort 18 werden entsprechend wie oben erläutert (insbesondere z.B. jeweils durch den Mikrocontroller bzw. -prozessor 7 selbst, und/oder durch die Speicher-Steuer-Einrichtung 17, und/oder durch den jeweiligen Merge Buffer 5a, 5b, 5c, 5d) das oder die korrespondierenden Prüf-Daten (hier z.B.: die entsprechenden 6 SECDED-Code-Prüf-Daten-Bits) berechnet, und – unter Zuordnung zum o.g. geänderten Daten-Wort 18 – ebenfalls im entsprechenden Merge-Buffer abgespeichert (erster Zyklus).
  • Daraufhin wird – falls ermittelt wird, dass der nächste Zugriff durch die Mikrocontroller-Einheit 7 einen anderen Memory Tower 4a, 4b, 4c, 4d betrifft, als der letzte (d.h. der o.g. 8-Bit-Store-Befehl), oder falls als nächstes ein IDLE-Zustand eintritt, oder der nächste Befehl kein Load- und kein Store-Befehl ist (bzw. kein Befehl vom Typ Load oder Store) – das o.g. geänderte Daten-Wort 18 (d.h. die in 4 gezeigten Bits 12a, 12b, 12c, 12d, 12e, 12f, 12g, 12h, gefolgt von den Bits 14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h (Fall A), bzw. die in 4 gezeigten Bits 15a, 15b, 15c, 15d, 15e, 15f, 15g, 15h, gefolgt von den Bits 13a, 13b, 13c, 13d, 13e, 13f, 13g, 13h (Fall B)) an der dem – alten – Daten-Wort 16 zugeordneten Adresse im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4 abgespeichert; zusätzlich hierzu erfolgt auch – unter Zuordnung zum geänderten Daten-Wort 18 – eine Abspeicherung der o.g., neu berechneten, korrespondierenden Prüf-Daten (hier: der o.g. neu berechneten 6 SECDED-Code-Prüf-Daten-Bits) im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4 (zweiter Zyklus).
  • Wird stattdessen ermittelt, dass beim auf den o.g. (Schreib-) Zugriff (d.h. dem o.g. 8-Bit-Store-Befehl) unmittelbar folgenden (Schreib-)Zugriff Speicher-Stellen angesprochen werden, die – innerhalb des entsprechenden 16-Bit-Daten-Worts, wie beim o.g. 8-Bit-Store-Befehl – den durch den o.g. 8-Bit-Store-Befehl spezifizierten Speicher-Stellen unmittelbar vorhergehenden (Fall A) oder unmittelbar nachfolgenden (Fall B) Speicher-Stellen entsprechen (d.h. falls auf den o.g. 8-Bit-Store-Befehl ein weiterer, unmittelbar vorhergehende oder nachfolgende Speicher-Stellen betreffender 8-Bit-Store-Befehl folgt), wird wie folgt vorgegangen (vgl. 4, „Schritt 3"):
    Zu den wie erläutert durch den vorausgehenden 8-Bit-Store-Befehl im jeweiligen Merge Buffer abgespeicherten 8 Bits 14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h (Fall A) bzw. 15a, 15b, 15c, 15d, 15e, 15f, 15g, 15h (Fall B) (d.h. zu den 8 letzten Bits (Fall A), oder 8 ersten Bits (Fall B) des o.g., geänderten Daten-Worts 18) werden die entsprechenden, durch den o.g. neuen 8-Bit-Store-Befehl spezifizierten, von der Mikrocontroller-Einheit 7 über das Bus-System 3 übermittelten 8 Bits hinzugefügt (d.h. die 8 Bits 21a, 21b, 21c, 21d, 21e, 21f, 21g, 21h vorhergehend zu den 8 Bits 14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h im entsprechenden Merge-Buffer abgespeichert (Fall A), bzw. die 8 Bits 22a, 22b, 22c, 22d, 22e, 22f, 22g, 22h nachfolgend auf die o.g. 8 Bits 15a, 15b, 15c, 15d, 15e, 15f, 15g, 15h im entsprechenden Merge-Buffer abgespeichert (Fall B)).
  • Für das so erzeugte, erneut geänderte Daten-Wort 19 werden entsprechend wie oben erläutert erneut (insbesondere z.B. jeweils durch den Mikrocontroller bzw. -prozessor 7 selbst, und/oder durch die Speicher-Steuer-Einrichtung 17, und/oder durch den jeweiligen Merge Buffer 5a, 5b, 5c, 5d) das oder die korrespondierenden Prüf-Daten (hier z.B.: die entsprechenden 6 SECDED-Code-Prüf-Daten-Bits) berechnet, und – unter Zuordnung zum o.g. geänderten Daten-Wort 18 – im entsprechenden Merge-Buffer abgespeichert.
  • Des weiteren wird das o.g., erneut geänderte Daten-Wort 19 (d.h. die in 4 gezeigten Bits 21a, 21b, 21c, 21d, 21e, 21f, 21g, 21h, gefolgt von den Bits 14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h (Fall A), bzw. die in 4 gezeigten Bits 15a, 15b, 15c, 15d, 15e, 15f, 15g, 15h, gefolgt von den Bits 22a, 22b, 22c, 22d, 22e, 22f, 22g, 22h (Fall B)) an der dem – alten – Daten-Wort 16 zugeordneten Adresse im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4 abgespeichert; zusätzlich hierzu erfolgt auch – unter Zuordnung zum o.g. erneut geänderten Daten-Wort 19 – eine Abspeicherung der o.g., erneut berechneten, korrespondierenden Prüf-Daten (hier: der o.g. erneut berechneten 6 SECDED-Code-Prüf-Daten-Bits) im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4 (alternativer, zweiter Zyklus).
  • Da der oben geschilderte Fall relativ häufig auftritt, kann beim Mikrocontroller- bzw. Mikropozessor-System 1 mit der oben beschriebenen Vorgehensweise in der Regel ein Zyklusverlust verhindert werden; zusätzlich kann für die o.g. Zugriffe die Anzahl an benötigten SECDED-Code-Prüf-Daten-Bits minimiert werden (da statt zweier verschiedener – eigentlich insgesamt 5 × 2 = 10 SECDED-Code-Prüfbits benötigender 8-Bit-Store-Befehle – entsprechende lediglich jeweils 6 SECDED-Code-Prüfbits benötigende 16-Bit-Zugriffe ausgeführt werden (vgl. auch die in 1 dargestellte Tabelle, bzw. den in 2 dargestellten Graphen)).
  • Wird ermittelt, dass der auf den o.g. (Schreib-)Zugriff (d.h. den o.g. 8-Bit-Store-Befehl) unmittelbar folgende Zugriff ein Lese-Zugriff ist, mit dem entsprechende Speicher-Stellen angesprochen werden, wie mit dem o.g. 8-Bit-Store-Befehl (z.B. ein entsprechender 8- oder 16-Bit-Load-Befehl), werden die entsprechenden Daten direkt aus dem Merge Buffer (und nicht – nochmals – aus der Speicher-Einrichtung 4) ausgelesen, und an die Mikrocontroller-Einheit 7 weitergeleitet (alternativ können die Daten – nochmals – aus der Speicher-Einrichtung 4 ausgelesen, und – da die entsprechenden Daten nicht mehr aktuell sind – gleich wieder verworfen werden)).
  • Erst dann (d.h. einen Zyklus später) wird das im entsprechenden Merge Buffer gespeicherte Daten-Wort 18 (d.h. die in 4 gezeigten Bits 11a, 12b, 12c, 12d, 12e, 12f, 12g, 12h, gefolgt von den Bits 14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h (Fall A), bzw. die in 4 gezeigten Bits 15a, 15b, 15c, 15d, 15e, 15f, 15g, 15h, gefolgt von den Bits 13a, 13b, 13c, 13d, 13e, 13f, 13g, 13h (Fall B)) an der dem – alten – Daten-Wort 16 zugeordneten Adresse im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4 abgespeichert; zusätzlich hierzu erfolgt wiederum – unter Zuordnung zum o.g. Daten-Wort 18 – eine Abspeicherung der o.g., korrespondierenden Prüf-Daten (hier: der o.g. erneut berechneten 6 SECDED-Code-Prüf-Daten-Bits) im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4.
  • Falls ermittelt wird, dass der auf den o.g. (Schreib-)Zugriff (d.h. den o.g. 8-Bit-Store-Befehl) unmittelbar folgende Zugriff ein Lese-Zugriff (z.B. ein entsprechender 8- oder 16-Bit-Load-Befehl) ist, mit dem andere Speicher-Stellen angesprochen werden, wie mit dem o.g. 8-Bit-Store-Befehl, jedoch im gleichen Memory Tower 4a, 4b, 4c, 4d liegende Speicher-Stellen, werden zunächst die entsprechenden Daten aus der Speicher-Einrichtung 4 ausgelesen, und an die Mikrocontroller-Einheit 7 weitergeleitet, und erst dann das im entsprechenden Merge Buffer gespeicherte, geänderte Daten-Wort 18 (d.h. die in 4 gezeigten Bits 12a, 12b, 12c, 12d, 12e, 12f, 12g, 12h, gefolgt von den Bits 14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h (Fall A), bzw. die in 4 gezeigten Bits 15a, 15b, 15c, 15d, 15e, 15f, 15g, 15h, gefolgt von den Bits 13a, 13b, 13c, 13d, 13e, 13f, 13g, 13h (Fall B)) an der dem – alten – Daten-Wort 16 zugeordneten Adresse im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4 abgespeichert.
  • Das Rückschreiben des geänderten Daten-Worts in die Speicher-Einrichtung 4 verschiebt sich somit um einen Zyklus nach hinten.
  • Zusätzlich hierzu erfolgt wiederum (entsprechend wie oben beschrieben) – unter Zuordnung zum geänderten Daten-Wort 18 – eine Abspeicherung der o.g., neu berechneten, korrespondierenden Prüf-Daten (hier: der o.g. neu berechneten 6 SECDED-Code-Prüf-Daten-Bits) im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4.
  • Wird ermittelt, dass beim auf den o.g. (Schreib-) Zugriff (d.h. dem o.g. 8-Bit-Store-Befehl) unmittelbar folgenden (Schreib-)Zugriff identische Speicher-Stellen angesprochen werden, wie mit dem 8-Bit-Store-Befehl (d.h. falls auf den o.g. 8-Bit-Store-Befehl ein entsprechende Speicher-Stellen ansprechender, weiterer 8-Bit-Store-Befehl folgt), wird wie folgt vorgegangen:
    Die wie oben erläutert, und wie in 4 dargestellt durch den vorausgehenden 8-Bit-Store-Befehl im jeweiligen Merge Buffer abgespeicherten 8 Bits 14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h (Fall A) bzw. 15a, 15b, 15c, 15d, 15e, 15f, 15g, 15h (Fall B) (d.h. die 8 letzten Bits (Fall A), oder 8 ersten Bits (Fall B) des o.g., geänderten Daten-Worts 18) werden durch die entsprechenden, durch den o.g. weiteren 8-Bit-Store-Befehl spezifizierten, von der Mikrocontroller-Einheit 7 über das Bus-System 3 übermittelten 8 Bits ersetzt.
  • Für das so erzeugte, erneut geänderte Daten-Wort werden entsprechend wie oben erläutert erneut (insbesondere z.B. jeweils durch den Mikrocontroller bzw. -prozessor 7 selbst, und/oder durch die Speicher-Steuer-Einrichtung 17, und/oder durch den jeweiligen Merge Buffer 5a, 5b, 5c, 5d) das oder die korrespondierenden Prüf-Daten (hier z.B.: die entsprechenden 6 SECDED-Code-Prüf-Daten-Bits) berechnet, und – unter Zuordnung zum o.g. geänderten Daten-Wort – im entsprechenden Merge-Buffer abgespeichert.
  • Des weiteren wird das o.g., erneut geänderte Daten-Wort an der dem – alten – Daten-Wort 16 zugeordneten Adresse im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4 abgespeichert; zusätzlich hierzu erfolgt auch – unter Zuordnung zum o.g. erneut geänderten Daten-Wort – eine Abspeicherung der o.g., erneut berechneten, korrespondierenden Prüf-Daten (hier: der o.g. erneut berechneten 6 SECDED-Code-Prüf-Daten-Bits) im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4 (weiterer alternativer, zweiter Zyklus).
  • Wird ermittelt, dass der auf den o.g. (Schreib-) Zugriff (d.h. dem o.g. 8-Bit-Store-Befehl) unmittelbar folgende Zugriff ein Schreib-Zugriff (z.B. ein – weiterer – 8-Bit-, oder ein 16-Bit-Store-Befehl) ist, mit dem Speicher-Stellen angesprochen werden, die den gleichen Memory Tower betreffen, wie der 8-Bit-Store-Befehl, jedoch ein anderes bzw. unterschiedliches Daten-Wort, als beim vorausgehenden 8-Bit-Store-Befehl – was relativ selten vorkommt -, wird wie folgt vorgegangen:
    Das im Merge Buffer abgespeicherte Daten-Wort 18 (d.h. die wie in 4 dargestellt durch den vorausgehenden 8-Bit-Store-Befehl im jeweiligen Merge Buffer abgespeicherten 8 Bits 14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h (Fall A) bzw. 15a, 15b, 15c, 15d, 15e, 15f, 15g, 15h (Fall B) (d.h. die 8 letzten Bits (Fall A), oder 8 ersten Bits (Fall B), und die vom o.g. 16-Bit-Read-Modify-Write-Befehl beibehaltenen 8 Bits 12a, 12b, 12c, 12d, 12e, 12f, 12g, 12h (Fall A) bzw. 13a, 13b, 13c, 13d, 13e, 13f, 13g, 13h (Fall B))) wird bzw. werden an der dem – alten – Daten-Wort 16 zugeordneten Adresse im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4 abgespeichert.
  • Zusätzlich hierzu erfolgt auch – unter Zuordnung zum o.g. geänderten Daten-Wort 18 – eine Abspeicherung der o.g. neu berechneten, korrespondierenden Prüf-Daten (hier: der o.g. neu berechneten 6 SECDED-Code-Prüf-Daten-Bits) im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4.
  • Da der entsprechende Merge Buffer mit dem Schreiben des o.g. Daten-Worts 18 in die Speicher-Einrichtung 4 beschäftigt ist, kann er auf den o.g. – weiteren – 8-Bit- oder den o.g. 16-Bit-Store-Befehl der Mikrocontroller-Einheit 7 zunächst nicht reagieren.
  • Erst wenn der entsprechende Merge Buffer den Schreib-Vorgang abgeschlossen hat, kann er auf die Anfrage der Mikrocontroller-Einheit 7 reagieren. Entsprechend wie oben beschrieben wird dann wie folgt vorgegangen:
    Der entsprechende Befehl (z.B. der o.g. weitere 8-Bit-Store-Befehl) wird – z.B. von der Mikrocontroller-Einheit 7, der Speicher-Steuer-Einrichtung 17, oder dem jeweiligen Merge Buffer 5a, 5b, 5c, 5d – in einen entsprechenden 16-Bit-Read-Modify-Write-Befehl umgewandelt (d.h. in einen 16-Bit-Read-Modify-Write-Befehl, mit welchem eine entsprechende Stelle in der Speicher-Einrichtung 4 angesprochen wird, wie durch den weiteren 8-Bit-Store-Befehl (wobei die durch die Befehle angesprochene Speicher-Stelle über die über den Adress-Bus 3c übertragene Adresse definiert wird)).
  • Mit andere Worten wird also wiederum statt des o.g. Schreib-Zugriffs ein entsprechender Lese-Modifizier-Schreib-Zugriff durchgeführt.
  • Dabei werden – wie aus 4, oben („Schritt 1") hervorgeht – abhängig von der durch den weiteren 8-Bit-Store-Befehl angesprochenen Adress-Stelle entweder (zusätzlich zu den an den durch den 8-Bit-Store-Befehl angesprochenen Speicher-Stellen abgespeicherten Daten) auch Daten aus der Speicher-Einrichtung 4 ausgelesen, die an den 8 vorhergehenden (siehe 4, Fall A, oben), oder 8 nachfolgenden (siehe 4, Fall B, oben) Speicher-Stellen der Speicher-Einrichtung abgespeichert sind (Bits 12a, 12b, 12c, 12d, 12e, 12f, 12g, 12h, bzw. Bits 13a, 13b, 13c, 13d, 13e, 13f, 13g, 13h) – mit anderen Worten wird also wiederum jeweils das entsprechende, vollständige (16-Bit) Daten-Wort 16 aus der Speicher-Einrichtung 4 bzw. dem entsprechenden Memory Tower 4a, 4b, 4c, 4d ausgelesen, bzw. dasjenige (16-Bit) Daten-Wort 16, welches Daten an einer Adress-Stelle enthält, die der für den weiteren 8-Bit-Store-Befehl angegebenen Adresse entspricht.
  • Die ausgelesenen Daten (d.h. das entsprechende, vollständige Daten-Wort) werden im entsprechenden, dem jeweiligen Memory Tower 4a, 4b, 4c, 4d zugeordneten Merge Buffer 5a, 5b, 5c, 5d zwischengespeichert, und dort mit den o.g. für den o.g. weiteren 8-Bit-Store-Befehl von der Mikrocontroller-Einheit 7 über das Bus-System 3 übermittelten, in der Speicher-Einrichtung 4 abzuspeichernden Nutz-Daten zusammengeführt.
  • Dabei werden – wie aus 4, „Schritt 2" hervorgeht – zu den o.g. durch den 16-Bit-Read-Modify-Write-Befehl im Vergleich zu dem korrespondierenden 8-Bit-Store-Befehl zusätzlich spezifizierten 8 Bits 12a, 12b, 12c, 12d, 12e, 12f, 12g, 12h, bzw. 8 Bits 13a, 13b, 13c, 13d, 13e, 13f, 13g, 13h (d.h. zu den 8 ersten Bits (Fall A), oder 8 letzten Bits (Fall B) des o.g. Daten-Worts) die entsprechenden, durch den o.g. 8-Bit-Store-Befehl spezifizierten, von der Mikrocontroller-Einheit 7 über das Bus-System 3 übermittelten 8 Bits hinzugefügt (d.h. die 8 Bits 14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h nachfolgend auf die o.g. 8 Bits 12a, 12b, 12c, 12d, 12e, 12f, 12g, 12h im entsprechenden Merge-Buffer abgespeichert (Fall A), bzw. die 8 Bits 15a, 15b, 15c, 15d, 15e, 15f, 15g, 15h vorhergehend zu den o.g. 8 Bits 13a, 13b, 13c, 13d, 13e, 13f, 13g, 13h im entsprechenden Merge-Buffer abgespeichert (Fall B)).
  • Für das so erzeugte, geänderte Daten-Wort 18 werden entsprechend wie oben erläutert (insbesondere z.B. jeweils durch den Mikrocontroller bzw. -prozessor 7 selbst, und/oder durch die Speicher-Steuer-Einrichtung 17, und/oder durch den jeweiligen Merge Buffer 5a, 5b, 5c, 5d) das oder die korrespondierenden Prüf-Daten (hier z.B.: die entsprechenden 6 SECDED-Code-Prüf-Daten-Bits) berechnet, und – unter Zuordnung zum o.g. geänderten Daten-Wort 18 – ebenfalls im entsprechenden Merge-Buffer abgespeichert.
  • Daraufhin wird – falls die oben erläuterten Bedingungen vorliegen (IDLE-Zustand, nächster Befehl kein vom Typ Load oder Store) – das o.g. geänderte Daten-Wort 18 (d.h. die in 4 gezeigten Bits 12a, 12b, 12c, 12d, 12e, 12f, 12g, 12h, gefolgt von den Bits 14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h (Fall A), bzw. die in 4 gezeigten Bits 15a, 15b, 15c, 15d, 15e, 15f, 15g, 15h, gefolgt von den Bits 13a, 13b, 13c, 13d, 13e, 13f, 13g, 13h (Fall B)) an der dem – alten – Daten-Wort zugeordneten Adresse im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4 abgespeichert; zusätzlich hierzu erfolgt auch – unter Zuordnung zum geänderten Daten-Wort 18 – eine Abspeicherung der o.g., neu berechneten, korrespondierenden Prüf-Daten (hier: der o.g. neu berechneten 6 SECDED-Code-Prüf-Daten-Bits) im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4.
  • Folgt auf den o.g. vorausgehenden 8-Bit-Store-Befehl statt dem o.g. weiteren 8-Bit-Store-Befehl der o.g. 16-Bit-Store-Befehl, werden die entsprechenden, dem Befehl zugeordneten Daten – wie herkömmlich, und ohne Zwischenspeicherung im entsprechenden Merge Buffer 5a, 5b, 5c, 5d – zusammen mit den entsprechenden (wie oben erläutert berechneten) Prüf-Daten an der durch die über den Adress-Bus 3c übertragenen Adresse definierten Stelle in der Speicher-Einrichtung 4 abgespeichert.
  • Wird – wie oben bereits erläutert – ermittelt, dass der auf den o.g. (Schreib-) Zugriff (d.h. dem o.g. 8-Bit-Store-Befehl) unmittelbar folgende Zugriff ein Schreib-Zugriff (insbesondere z.B. ein 16-Bit-Store-Befehl) ist, mit dem Speicher-Stellen angesprochen werden, die den gleichen Memory Tower betreffen, wie der 8-Bit-Store-Befehl, jedoch ein anderes bzw. unterschiedliches Daten-Wort, als beim vorausgehenden 8-Bit-Store-Befehl – was relativ selten vorkommt –, kann alternativ zu den Erläuterungen oben auch wie folgt vorgegangen werden:
    Das dem 16-Bit-Store-Befehl zugeordnete Daten-Wort wird unmittelbar an der entsprechenden Speicher-Stelle in der Speicher-Einrichtung 4 abgespeichert (zusammen mit entsprechend wie oben erläutert berechneten, korrespondierenden Prüf-Daten (hier z.B.: die entsprechenden 6 SECDED-Code-Prüf-Daten-Bits).
  • Währenddessen bleibt der Merge Buffer (vorübergehend) in einem Warte-Zustand.
  • Erst wenn der o.g. Schreib-Vorgang des (neuen, dem 16-Bit-Store-Befehl zugeordneten) Daten-Worts beendet ist, wird das im Merge Buffer abgespeicherte Daten-Wort 18 (d.h. die wie in 4 dargestellt durch den vorausgehenden 8-Bit-Store-Befehl im jeweiligen Merge Buffer abgespeicherten 8 Bits 14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h (Fall A) bzw. 15a, 15b, 15c, 15d, 15e, 15f, 15g, 15h (Fall B) (d.h. die 8 letzten Bits (Fall A), oder 8 ersten Bits (Fall B)), und die vom o.g. 16-Bit-Read-Modify-Write-Befehl beibehaltenen 8 Bits 12a, 12b, 12c, 12d, 12e, 12f, 12g, 12h (Fall A) bzw. 13a, 13b, 13c, 13d, 13e, 13f, 13g, 13h (Fall B)) an der dem – alten – Daten-Wort 16 zugeordneten Adresse im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4 abgespeichert.
  • Zusätzlich hierzu erfolgt wiederum – unter Zuordnung zum o.g. geänderten Daten-Wort – eine Abspeicherung der o.g. neu berechneten, korrespondierenden Prüf-Daten (hier: der o.g. neu berechneten 6 SECDED-Code-Prüf-Daten-Bits) im entsprechenden Memory Tower 4a, 4b, 4c, 4d der Speicher-Einrichtung 4.
  • 1
    Mikrocontroller- bzw. Mikropozessor-System
    2a
    CPU Core
    2b
    CPU Core
    3
    Bus-System
    3a
    Daten-Bus
    3b
    Steuer-Bus
    3c
    Adress-Bus
    4
    Speicher-Einrichtung
    4a
    Memory Tower
    4b
    Memory Tower
    4c
    Memory Tower
    4d
    Memory Tower
    5a
    Merge Buffer
    5b
    Merge Buffer
    5c
    Merge Buffer
    5d
    Merge Buffer
    7
    Mikrocontroller-Einheit
    12a
    Bit
    12b
    Bit
    12c
    Bit
    12d
    Bit
    12e
    Bit
    12f
    Bit
    12g
    Bit
    12h
    Bit
    13a
    Bit
    13b
    Bit
    13c
    Bit
    13d
    Bit
    13e
    Bit
    13f
    Bit
    13g
    Bit
    13h
    Bit
    14a
    Bit
    14b
    Bit
    14c
    Bit
    14d
    Bit
    14e
    Bit
    14f
    Bit
    14g
    Bit
    14h
    Bit
    15a
    Bit
    15b
    Bit
    15c
    Bit
    15d
    Bit
    15e
    Bit
    15f
    Bit
    15g
    Bit
    15h
    Bit
    16
    Daten-Wort
    17
    Speicher-Steuer-Einrichtung
    18
    geändertes Daten-Wort
    19
    erneut geändertes Daten-Wort
    21a
    Bit
    21b
    Bit
    21c
    Bit
    21d
    Bit
    21e
    Bit
    21f
    Bit
    21g
    Bit
    21h
    Bit
    22a
    Bit
    22b
    Bit
    22c
    Bit
    22d
    Bit
    22e
    Bit
    22f
    Bit
    22g
    Bit
    22h
    Bit

Claims (17)

  1. Mikrocontroller- bzw. Mikroprozessor-System (1), welches aufweist: eine Speicher-Einrichtung (4), dadurch gekennzeichnet, dass das System zusätzlich einen Zwischen-Speicher (5a) aufweist zum Zwischen-Speichern von in Reaktion auf einen in Reaktion auf einen Schreib-Befehl (8-Bit-Store) erzeugten, korrespondierenden Lese- bzw. Lese-Modifizier-Schreib-Befehl (16-Bit-Read-Modify-Write) aus der Speicher-Einrichtung (4) ausgelesenen Daten.
  2. System (1) nach Anspruch 1, bei welchem sich der Schreib-Befehl (8-Bit-Store) auf Daten bezieht, die eine Bit-Länge aufweisen, die kleiner ist, als die Bit-Länge der in Reaktion auf den korrespondierenden Lese- bzw. Lese-Modifizier-Schreib-Befehl (16-Bit-Read-Modify-Write) aus der Speicher-Einrichtung (4) ausgelesenen Daten.
  3. System (1) nach Anspruch 2, bei welchem die Bit-Länge der Daten, auf die sich der Schreib-Befehl (8-Bit-Store) bezieht, 8, 16, 32, 64 oder 128 Bit beträgt.
  4. System (1) nach Anspruch 2 oder 3, bei welchem die Bit-Länge der in Reaktion auf den Lese- bzw. Lese-Modifizier-Schreib-Befehl (16-Bit-Read-Modify-Write) aus der Speicher-Einrichtung (4) ausgelesenen Daten 16, 32, 64, 128 oder 256 Bit beträgt.
  5. System (1) nach einem der vorhergehenden Ansprüche, bei welchem die aus der Speicher-Einrichtung (4) ausgelesenen Daten und die Daten, auf die sich der Schreib-Befehl (8-Bit-Store) bezieht, im Zwischen-Speicher (5a) zusammengeführt werden.
  6. System (1) nach Anspruch 5, bei welchem zusätzlich eine Einrichtung vorgesehen ist zum Berechnen eines oder mehrerer Prüfbits für die im Zwischen-Speicher (5a) zusammengeführten Daten, und zum Abspeichern des oder der Prüfbits im Zwischen-Speicher (5a).
  7. System (1) nach Anspruch 6, bei welchem der Zwischen-Speicher (5a) so ausgestaltet und eingerichtet ist, dass die im Zwischen-Speicher (5a) zusammengeführten Daten, und das oder die Prüfbits – unter Zuordnung zu den zusammengeführten Daten – in der Speicher-Einrichtung (4) abgespeichert werden.
  8. Verfahren zum Betreiben eines Mikrocontroller- bzw. Mikroprozessor-Systems (1), welches mindestens eine Speicher-Einrichtung (4) umfasst, wobei das Verfahren die Schritte aufweist: Erzeugen eines zu einem Schreib-Befehl (8-Bit-Store) korrespondierenden Lese- bzw. Lese-Modifizier-Schreib-Befehls (16-Bit-Read-Modify-Write); und Zwischen-Speichern von in Reaktion auf den erzeugten Lese- bzw. Lese-Modifizier-Schreib-Befehl (16-Bit-Read-Modify-Write) aus der Speicher-Einrichtung (4) ausgelesenen Daten.
  9. Verfahren nach Anspruch 8, wobei sich der Schreib-Befehl (8-Bit-Store) auf Daten bezieht, die eine Bit-Länge aufweisen, die kleiner ist, als die Bit-Länge der in Reaktion auf den korrespondierenden Lese- bzw. Lese-Modifizier-Schreib-Befehl (16-Bit-Read-Modify-Write) aus der Speicher-Einrichtung (4) ausgelesenen Daten.
  10. System (1) nach Anspruch 9, wobei die Bit-Länge der Daten, auf die sich der Schreib-Befehl (8-Bit-Store) bezieht, 8, 16, 32, 64 oder 128 Bit beträgt.
  11. System (1) nach Anspruch 9 oder 10, wobei die Bit-Länge der in Reaktion auf den Lese- bzw. Lese-Modifizier-Schreib- Befehl (16-Bit-Read-Modify-Write) aus der Speicher-Einrichtung (4) ausgelesenen Daten 16, 32, 64, 128 oder 256 Bit beträgt.
  12. Verfahren nach einem der Ansprüche 8 bis 11, welches zusätzlich den Schritt aufweist: Zusammenführen der aus der Speicher-Einrichtung (4) ausgelesenen Daten und der Daten, auf die sich der Schreib-Befehl (8-Bit-Store) bezieht in einem Zwischen-Speicher (5a).
  13. Verfahren nach Anspruch 12, welches zusätzlich den Schritt aufweist: Berechnen eines oder mehrerer Prüfbits für die im Zwischen-Speicher (5a) zusammengeführten Daten.
  14. Verfahren nach Anspruch 13, wobei das oder die Prüfbits auf Basis eines fehlererkennenden oder fehlerkorrigierenden Codes berechnet werden.
  15. Verfahren nach Anspruch 14, wobei das oder die Prüfbits Paritätsbits sind.
  16. Verfahren nach Anspruch 14, wobei die Prüfbits SECDED-Code- oder DECTED-Code-Prüfbits sind.
  17. Verfahren nach einem der Ansprüche 13 bis 16, welches zusätzlich den Schritt aufweist: Abspeichern der im Zwischen-Speicher (5a) zusammengeführten Daten, und des oder der Prüfbits – unter Zuordnung zu den zusammengeführten Daten – in der Speicher-Einrichtung (4).
DE102005021546.7A 2005-05-10 2005-05-10 Mikrocontroller- bzw. Mikroprozessor-System, insbesondere Mikrocontroller- bzw. Mikroprozessor-System mit Fehler-Erkennung bzw. -Korrektur Active DE102005021546B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102005021546.7A DE102005021546B4 (de) 2005-05-10 2005-05-10 Mikrocontroller- bzw. Mikroprozessor-System, insbesondere Mikrocontroller- bzw. Mikroprozessor-System mit Fehler-Erkennung bzw. -Korrektur

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102005021546.7A DE102005021546B4 (de) 2005-05-10 2005-05-10 Mikrocontroller- bzw. Mikroprozessor-System, insbesondere Mikrocontroller- bzw. Mikroprozessor-System mit Fehler-Erkennung bzw. -Korrektur

Publications (2)

Publication Number Publication Date
DE102005021546A1 true DE102005021546A1 (de) 2006-11-16
DE102005021546B4 DE102005021546B4 (de) 2018-01-11

Family

ID=37295262

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005021546.7A Active DE102005021546B4 (de) 2005-05-10 2005-05-10 Mikrocontroller- bzw. Mikroprozessor-System, insbesondere Mikrocontroller- bzw. Mikroprozessor-System mit Fehler-Erkennung bzw. -Korrektur

Country Status (1)

Country Link
DE (1) DE102005021546B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007029116A1 (de) * 2007-06-25 2009-01-02 Continental Automotive Gmbh Verfahren zum Betreiben eines Mikrocontrollers und einer Ausführungseinheit sowie ein Mikrocontroller und eine Ausführungseinheit

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325375A (en) * 1991-06-28 1994-06-28 Sun Microsystems, Inc. Method and apparatus for non-atomic level parity protection for storing data in a random access memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325375A (en) * 1991-06-28 1994-06-28 Sun Microsystems, Inc. Method and apparatus for non-atomic level parity protection for storing data in a random access memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007029116A1 (de) * 2007-06-25 2009-01-02 Continental Automotive Gmbh Verfahren zum Betreiben eines Mikrocontrollers und einer Ausführungseinheit sowie ein Mikrocontroller und eine Ausführungseinheit
US8392815B2 (en) 2007-06-25 2013-03-05 Continental Automotive Gmbh Method for the operation of a microcontroller and an execution unit and microcontroller and an execution unit

Also Published As

Publication number Publication date
DE102005021546B4 (de) 2018-01-11

Similar Documents

Publication Publication Date Title
DE10255872B4 (de) Speichermodul und Verfahren zum Betrieb eines Speichermoduls in einem Datenspeichersystem
DE2619159C2 (de) Fehlererkennungs- und Korrektureinrichtung
DE102004036888B4 (de) Flashspeichersystem und zugehöriges Datenschreibverfahren
DE102005048255A1 (de) Integriertes Schaltungsbauelement und Betriebsverfahren
DE112007003015T5 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE112008000736T5 (de) ECC-Implementierung in Komponenten ohne ECC
DE102006016499B4 (de) Speichermodulsteuerung, Speichersteuerung und entsprechende Speicheranordnung sowie Verfahren zur Fehlerkorrektur
DE2835533A1 (de) Verfahren zur durchfuehrung einer korrektur eines doppel-bit-fehlers, in einem speichersystem, das nur eine korrekturlogik fuer einen einzel-bit-fehler enthaelt, und vorrichtung zur durchfuehrung des verfahrens
DE2456709C2 (de) Schaltungsanordnung zur Fehlererkennung und -korrektur
EP1588380B1 (de) Verfahren zur erkennung und/oder korrektur von speicherzugriffsfehlern und elektronische schaltungsanordnung zur durchführung des verfahrens
DE2549392C3 (de) Verfahren zur Erhöhung der Zuverlässigkeit von integrierten Speicherbausteinen und zur Verbesserung der Ausbeute von nach außen hin fehlerfrei erscheinenden Speicherbausteinen bei ihrer Herstellung
DE102004003352A1 (de) Systeme und Verfahren zum Puffern von Daten zwischen einer Übereinstimmungscachesteuerung und einem Speicher
DE102005021546B4 (de) Mikrocontroller- bzw. Mikroprozessor-System, insbesondere Mikrocontroller- bzw. Mikroprozessor-System mit Fehler-Erkennung bzw. -Korrektur
EP1595212B1 (de) Verfahren und vorrichtung zur überwachung einer elektronischen steuerung
DE102005060901A1 (de) Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers
DE2823457A1 (de) Verfahren und schaltungsanordnung zur fehlerueberwachung in speichersystemen digitaler rechenanlagen
DE102006036384A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
EP0453609B1 (de) Verfahren zum Testen einer kleinsten adressierbaren Einheit eines RAM's auf über einer bestimmten Zahl liegende Bitfehler
EP1777622A2 (de) Instruktionsspeicherabsicherung durch Control Flow Checking
DE3433679C2 (de)
DE2133323C3 (de) Fehlererkennungs- und Korrekturschaltung für binäre Datensignale
DE10045410B4 (de) Burst-Transfer-Ausrichtverfahren für ein Datenverarbeitungssystem
DE3442823C2 (de)
EP1639466B1 (de) Verfahren und vorrichtung zur fehlererkennung für einen cachespeicher und entsprechender cachespeicher
DE102009024019A1 (de) Fehlererkennungscode-Speichermodul

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative