DE3442823C2 - - Google Patents

Info

Publication number
DE3442823C2
DE3442823C2 DE3442823A DE3442823A DE3442823C2 DE 3442823 C2 DE3442823 C2 DE 3442823C2 DE 3442823 A DE3442823 A DE 3442823A DE 3442823 A DE3442823 A DE 3442823A DE 3442823 C2 DE3442823 C2 DE 3442823C2
Authority
DE
Germany
Prior art keywords
data
block
memory
subunits
control
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.)
Expired
Application number
DE3442823A
Other languages
English (en)
Other versions
DE3442823A1 (de
Inventor
Ernst Josef Dr. 8192 Geretsried De Kock
Ralf 8000 Muenchen De Hillemann
Franz Dr. 8011 Baldham De Schulte
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.)
Siemens AG
Original Assignee
Siemens 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 Siemens AG filed Critical Siemens AG
Priority to DE19843442823 priority Critical patent/DE3442823A1/de
Publication of DE3442823A1 publication Critical patent/DE3442823A1/de
Application granted granted Critical
Publication of DE3442823C2 publication Critical patent/DE3442823C2/de
Granted legal-status Critical Current

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

Die Erfindung betrifft ein Verfahren und eine Anordnung zur Steuerung der Übertragung von Daten entsprechend dem Oberbegriff des Patentanspruches 1.
Derartige Verfahren sind z. B. aus Computing Surveys, Vol. 14, Nr. 3, September 1982, Seiten 473 bis 530, insbesondere Seite 501, linke Spalte oben oder aber aus IBM Technical Disclosure Bulletin, Vol. 25, No. 11 B, April 1983, Seiten 6177/6178 für nach dem "copy-back"-Prinzip arbeitende Cache-Speicher bekannt.
Die Verwendung mehrerer, jeweils die Änderung einer Untereinheit innerhalb eines Datenblocks markierender Steuerbits soll dabei sicherstellen, daß jeweils die geänderten Untereinheiten, z. B. entsprechend der von einem normalen Speicherbefehl erfaßten Datenbreite, meistens also Doppelwörter, anstelle des gesamten Datenblocks in den Arbeitsspeicher übertragen werden. Das ist besonders von Vorteil, wenn der Datenumfang je Block sehr groß ist und daher der Umfang des Datenaustausches vom Cache-Speicher zum Arbeitsspeicher beträchtlich verringert werden kann, insbesondere wenn die Anzahl der geänderten Untereinheiten im Verhältnis zur Gesamtzahl der Untereinheiten eines Blockes verhältnismäßig klein ist.
Andererseits erfordert gerade das "copy-back"-Verfahren einen höheren Sicherungsgrad für die Daten im Cache-Speicher, da zu geänderten Daten im Cache-Speicher keine Kopie derselben Daten im Arbeitsspeicher vorhanden ist. Daten in nach dem "copy-back"-Verfahren abeitenden Cache-Speichern werden daher in der Regel durch einen fehlerkorrigierenden Code geschützt - man siehe die zuerst genannte Literaturstelle, Seite 501, Abschn. 6 -, um eine ausreichende Funktionsfähigkeit zu gewährleisten.
Dabei hängt der Aufwand für die Sicherung gegen Speicherfehler und für die Korrektur in erheblichem Maße davon ab, wie störanfällig die verwandten Speicherbausteine, meistens in Form von RAM, sind und ob daher neben Einzelfehlern auch Doppelfehler oder gar Dreifachfehler zu erkennen und zu korrigieren sind, um eine ausreichende Funktionssicherheit des Pufferspeichers sicherzustellen. So sind z. B. für Blöcke mit je 32 Bytes zu je acht Bit insgesamt 128 zusätzliche Prüfbits zur Korrektur von Einzelfehlern auf Byteebene erforderlich, was 50% mehr Speicheraufwand erfordert, wodurch sich in erheblichem Maße zusätzliche Fehlerquellen eröffnen und sich wegen der größeren Verbindungsentfernungen größere Laufzeiten ergeben.
Würde man nun unabhängig vom Gesichtspunkt, den Umfang des Datentransfers zwischen Pufferspeicher und Arbeitsspeicher möglichst klein zu halten, allgemein in Verbindung mit den eine Änderung anzeigenden Steuerbits jeweils nur die Untereinheiten übertragen, bei denen eine Änderung erfolgt ist, so würden fehlerbehaftete, nicht geänderte Untereinheiten die Steuerung gar nicht erst belasten und die Funktionsfähigkeit der Datenverarbeitungsanlage nicht beeinträchtigen, da gültige Kopien dieser Untereinheiten sowieso im Arbeitsspeicher vorhanden sind. Insbesondere würden nicht korrigierbare und damit zum Programmabbruch führende Fehler bei ungeänderten Untereinheiten ohne Auswirkung bleiben, so daß die Verfügbarkeit und damit die Leistungsfähigkeit der Datenverarbeitungsanlage gesteigert würde.
Andererseits erfordert die Übertragung von Dateneinheiten eines Blocks einzeln nacheinander mit individuellen Steuerbefehlen wesentlich mehr Aufwand gegenüber der Übertragung jeweils eines ganzen Blocks mit nur einem Steuerbefehl, insbesondere an Zeit, so daß der Vorteil der geringeren Belastung des Speicherübertragungsweges wenigstens teilweise durch eine Verringerung der Leistungsfähigkeit der Datenverarbeitungsanlage wieder aufgehoben wird.
Es ist daher Aufgabe der Erfindung, ausgehend von den eingangs genannten Verfahren und Anordnungen diese so zu gestalten, daß bei geringem Aufwand die durchschnittliche Leistungsfähigkeit der Datenverarbeitungsanlage gesteigert wird.
Diese Aufgabe wird gemäß der Erfindung durch die kennzeichnenden Merkmale des Patentanspruches 1 gelöst.
Ausgehend von der Bildung der Untereinheiten eines Datenblocks zunächst unabhängig von der Übertragungsbreite auf dem Übertragungsleitungssystem allein unter dem Gesichtspunkt, daß kleinere Untereinheiten, z. B. in Form von Bytes, mit individueller Fehlerüberwachungsmöglichkeit, die Wahrscheinlichkeit einer Funktionsbeeinträchtigung durch Speicherfehler verringern und daß sich Speicherfehler umso weniger auswirken können, je stärker der Auswirkungsbereich eingegrenzt ist, insbesondere wenn nur Teile eines Blockes geändert werden wird unter dem Gesichtspunkt, daß Speicherfehler meistens sporadisch auftreten, in den überwiegenden Fällen der Blockübertragungsmechanismus beibehalten, so daß insbesondere bei kleinen Blöcken mit zum Beispiel 32 Bytes die Übertragung in den Arbeitsspeicher mit dem geringstmöglichen Aufwand und bei nur verhältnismäßig geringer Belastung des Speicherübertragungsweges in im Durchschnitt kürzerer Zeit ausgeführt werden kann. Lediglich im Fehlerfall wird gegebenenfalls von der Blockübertragungssteuerung abgewichen und anhand der Steuerbits eine Auswahl der zu übertragenden Einheiten getroffen.
Damit erhöht sich zugleich die Wahrscheinlichkeit, daß nicht geänderte fehlerhafte Daten mit nicht korrigierbaren Fehlern ausgeschieden werden, ohne daß in gleichem Maße die Verfügbarkeit wegen Fehlens einer entsprechenden Fehlerkorrekturmöglichkeit eingeschränkt wird. Die Fehlertoleranz erhöht sich also bei nur geringem zusätzlichem Aufwand für die Änderungsbits.
Insgesamt führt das bei geringerem Aufwand zu einer durchschnittlichen Steigerung der Leistungsfähigkeit infolge der im Vergleich zur vorgegebenen Korrekturmöglichkeit verbesserten Verfügbarkeit und infolge der durchschnittlich kürzeren Übertragungszeiten.
Lösungsvarianten für den Verfahrensablauf ergeben sich aus den Ansprüchen 2 bis 5, wobei insbesondere die Weiterbildung der Erfindung nach Anspruch 5 mit Lesen und Zwischenspeicherung des auszuspeichernden Datenblocks als Einheit und mit im Fehlerfall sofortigen Überleitung in eine Einzelbefehlssteuerung die Möglichkeit einräumt, daß der freigemachte Pufferspeicherbereich sofort wieder belegt und vordringliche Speicherzyklen für andere Speicheranfragen eingeschoben werden können.
Außerdem sieht eine andere Weiterbildung gemäß den Patentansprüchen 6 und 7 der Erfindung vor, daß auch fehlerhafte geänderte Daten in den Arbeitsspeicher ausgelagert werden können, ohne daß eine Speicherfehlermeldung von diesem ausgelöst wird. Ein Prgrammabbruch wird dann nur erforderlich, wenn auf diese fehlerhaften Daten im Arbeitsspeicher zurückgegriffen werden muß. Vielfach aber handelt es sich dabei nur um Zwischenergebnisse, die im späteren Programmablauf gar nicht mehr benötigt werden, so daß auch auf diese Weise unnötige Programmabbrüche vermieden werden.
Entsprechende Anordnungen zur Durchführung der einzelnen Verfahren ergeben sich aus den Ansprüchen 8 bis 12.
Einzelheiten der Erfindung seien nachfolgend anhand in der der Zeichnung dargestellter Ausführungsbeispiele näher erläutert. Im einzelnen zeigt
Fig. 1 ein Blockschaltbild eines Cache-Speichers mit einer gemäß der Erfindung erweiterten Steuereinrichtung,
Fig. 2 ein Blockschaltbild der zusätzlichen Einrichtungen gemäß der Erfindung mit mehreren Ausführungsvarianten,
Fig. 3 ein Ablaufdiagramm zur Erläuterung der Arbeitsweise der erweiterten Steuereinrichtung entsprechend der einen erfindungsgemäßen Varianten und
Fig. 4 ein weiteres Ablaufdiagramm zur Erläuterung einer weiteren erfindungsgemäßen Verfahrensvarianten.
Das Blockschaltbild von Fig. 1 zeigt die wesentlichen Teile eines Cache-Speichers C-SP mit den Übertragungsleitungssystemen zum Arbeitsspeicher ASP und zur Prozessoreinheit CPU einer Datenverarbeitungsanlage.
Der Cache-Speicher C-SP gliedert sich in drei Teile, nämlich einen Teil AD-SP für die Adressen TAG, einen Teil ST-SP für die Steuerbits und einen Teil DAT-SP für die eigentlichen Daten, wobei die jeweils in einer Zeile liegenden Teile aller drei Speicherteile jeweils einen Eintrag bilden, der mit der Adresse AD 1 über die Schreib-/Lesesteuerung S/L-ST auswählbar ist.
Der Speicherteil DAT-SP hat beispielsweise eine Breite von jeweils n Doppelwörtern DW 1 bis DWn, die zusammen einen Block bilden, wobei z. B. jedes Doppelwort DW aus zwei Einzelwörtern mit je zwei Bytes zu je acht Datenbits besteht. Jedes Byte ist beispielsweise mit einem Paritätsbit gesichert. Die Übertragungsbreite auf den Leitungssystemen entspricht dagegen z. B. einem Doppelwort DW, so daß zur Übertragung eines Blockes n Doppelwörter nacheinander zu übertragen sind, die durch die speicherinterne Auswahlsteuerung SAW nacheinander abhängig von der Einstelladresse AD DW-E in die richtigen Speicherbereiche geleitet und aus diesen mit dem Multiplexer MUX 2 nacheinander abhängig von der Einstelladresse AD DW-A weitergeleitet werden. Der weitere Multiplexer MUX-E dient in an sich bekannter Weise zur Auswahl der Datenübertragungswege für die Eingabe durch die Prozessoreinheit CPU bzw. durch den Arbeitsspeicher ASP.
Jedem der angenommenen vier Bytes eines Doppelwortes im Speicherteil DAT-SP, die die zu überwachenden Untereinheiten bilden, ist im Speicherteil ST-SP ein Steuerbit W . . . zugeordnet, das in gesetztem Zustand eine Änderung des zugehörigen Bytes anzeigt. Bei Blöcken aus je acht Doppelwörtern entsprechend 32 Bytes sind das insgesamt 32 Bits, nämlich W 1 bis W 32. Zusätzlich ist in üblicher Weise wenigstens ein Gültigkeitsbit V, das die Gültigkeit des zugehörigen Eintrags anzeigt, und ein Sicherungszeichen SI zur Sicherung der Steuerbitinformation vorgesehen. Ebenso sind die Adressen TAG im Speicherteil AD-SP durch ein Sicherungszeichen SI gesichert.
Auf die Bildung der Sicherungszeichen und die Ableitung der Steuerbits sowie die allgemeine Arbeitsweise der Speichersteuerung SP-ST in Verbindung mit der Einrichtung H/M zur Prüfung, ob ein gewünschter Eintrag vorliegt, und mit der Prüfeinrichtung PPE zur Überwachung der vom Multiplexer MUX 2 ausgewählten gelesenen Dateneinheiten auf Fehlerfreiheit sei in diesem Zusammenhang nicht näher eingegangen, da dies für das Verständnis der Erfindung nicht von Bedeutung ist. Einzelheiten hierzu sind z. B. aus dem genannten Aufsatz aus Computing Surveys mit den darin gegebenen Literaturhinweisen bekannt.
Neu ist jedoch gemäß der Erfindung die Ergänzung der Speichersteuerung SP-ST durch die zusätzliche Steuereinrichtung W-ST, die die aus dem Speicherteil ST-SP gelesenen Steuerbits W 1 bis W 32 in Verbindung mit den von der Prüfeinrichtung PPE gelieferten Fehlersignalen für die einzelnen Bytes der aus dem Speicherteil DAT-SP gelesenen Dateneinheiten DW 1 bis DWn auswertet und davon abhängig die Übertragung der einzelnen Dateneinheiten eines Eintrags im Cache-Speicher C-SP bei der Auslagerung in den Arbeitsspeicher ASP steuert.
Einzelheiten dieser Steuereinrichtung W-ST im Zusammenwirken mit der allgemeinen Speichersteuerung SP-ST zeigt Fig. 2.
Die Steuerbitleitungen für die Steuerbits W 1 bis W 32 eines gelesenen Eintrags im linken oberen Teil der Figur sind entsprechend den vier Bytes für jede Dateneinheit DW in Gruppen G 1 bis G 8 zusammengefaßt und werden durch die ODER-Glieder OR 1 und das nachgeschaltete ODER-Glied OR 2 auf das Vorliegen einer Änderung der zugehörigen Datenbytes überwacht. Ist keines der Bits W 1 bis W 32 gesetzt und liegt demzufolge keine Änderung vor, dann ist bei einer vorzunehmenden Räumung des zugehörigen Eintrags im Cache-Speicher C-SP keine Auslagerung in den Arbeitsspeicher ASP erforderlich. Es genügt, wenn mit dem Signal S.INV das zugehörige Gültigkeitsbit V im Speicherteil ST-SP auf Null gesetzt wird und dann die neuen Daten aus dem Arbeitsspeicher in den zugehörigen Eintrag übertragen werden.
Ist dagegen eines der Bits W 1 bis W 32 gesetzt, dann müssen die Daten des Eintrags erst in den Arbeitsspeicher ASP ausgelagert werden, was durch das Signal SWAP gekennzeichnet wird und damit zur Einleitung eines Blockübertragungszyklus führt. Zu diesem Zweck liefert in an sich bekannter Weise ein Zähler CNT-A, gesteuert durch Taktimpulse T, nacheinander und in Abstimmung mit dem Übertragungszyklus für jede Dateneinheit DW . . . die Einstelladresse AD DW-A für den Multiplexer MUX 2. Diese Einstelladresse steuert gleichzeitig einen weiteren Multiplexer MUX innerhalb der Steuereinrichtung W-ST, der jeweils gleichzeitig zu den ausgewählten Dateneinheiten DW . . . eines Blockes die zugehörige Steuerbitgruppe G . . . auswählt und auf den Ausgang durchschaltet. Mit den so jeweils ausgewählten vier Steuerbits, z. B. W 1 bis W 4, werden die gleichzeitig von der die zugehörige Dateneinheit, z. B. DW 1, überprüfenden Prüfeinrichtung PPE gelieferten Fehlersignale PERR 0 bis 3 verknüpft.
Diese Verknüpfung kann entsprechend den möglichen verschiedenen Lösungsvarianten auf unterschiedliche Weise durchgeführt werden. Zur Grundausrüstung gehören dabei die UND-Glieder U 01 bis U 31, die UND-Glieder U 02 bis U 32 und das ODER-Glied OR 3.
Die UND-Glieder U 01 bis U 31 überwachen jeweils, ob ein fehlerfreies geändertes Datenbyte als Untereinheit vorliegt, und liefern das Steuersignal BYTE.SEL . . ., das mit Signal "1" jeweils das Einschreiben des zugehörigen Datenbytes in den Arbeitsspeicher freigibt und mit Signal "0" jeweils die Übernahme in den Arbeitsspeicher verhindert. Die UND-Glieder U 02 bis U 32 überwachen das Vorliegen einer geänderten, fehlerhaften Untereinheit, was durch das ODER-Glied OR 3 zum Fehlersignal (W PERR) führt, das dann in unterschiedlicher Weise den weiteren Steuerungsablauf beeinflussen kann, was später im einzelnen noch erläutert wird.
Bei der einfachsten Lösungsvariante ist das rechts vom Multiplexer MUX gestrichelt gezeichnete zusätzliche ODER-Glied OR 4 erforderlich, das die Fehlersignale PERR 0 bis 3 überwacht, ob ein Fehler gemeldet ist, und mit PERR DW ein Sperrsignal W.INH für den Rest eines laufenden Blockzyklus auslöst, z. B. durch Setzen der Kippstufe KS, die am Ende des Zyklus jeweils wieder zurückgesetzt wird.
Das Sperrsignal W.INH wird zum Arbeitsspeicher ASP in an sich bekannter Weise weitergeleitet und verhindert die Übernahme der gleichzeitig angelieferten Dateneinheiten für den Rest des laufenden Blockzyklus.
Die Ableitung des Sperrsignals W.INH kann zusätzlich davon abhängig gemacht werden, daß der Fehler kein geändertes Byte betrifft. Zu diesem Zweck wird der Ausgang des ODER-Gliedes OR 4 mit dem invertierten Ausgang des ODER-Gliedes OR 3 durch das UND-Glied U 1 verknüpft, dessen Ausgang dann mit dem Setzeingang S der Kippstufe KS verbunden ist. Dies ist besonders dann von Vorteil, wenn bei fehlerhaften geänderten Untereinheiten des Datenblocks frühzeitig in eine Fehlerbehandlungsroutine FBR mit Abbruch des laufenden Blockzyklus übergeleitet werden soll.
Solange kein Fehler PERR . . . angezeigt wird, werden während eines Blockzyklus die Sperrsignale BYTE.SEL . . .=0 normalerweise nicht wirksam geschaltet, so daß bis zum Erkennen eines Fehlers alle Untereinheiten, ob geändert oder nicht geändert, in den Arbeitsspeicher ASP übernommen werden. Die Unterdrückung der Sperrung ist jedoch nicht gezeigt. Sie könnte in einfacher Weise durch ein Anlegen eines konstanten Signales "1" an alle Sperrsignalleitungen bewirkt werden.
Tritt nun während eines laufenden Blockzyklus ein Fehler PERR . . . auf, dann läuft bei der einen Lösungsvariante der Blockzyklus zunächst bis zum Ende weiter. Da jedoch das Sperrsignal W.INH eingeschaltet ist, werden ab der fehlerbehafteten Dateneinheit keine Dateneinheiten mehr in den Arbeitsspeicher übernommen. Am Ende des abgelaufenden Blockzyklus, was mit dem Signal BE, des Zählers CNT-A erkannt wird, wird auf Einzelbefehlssteuerung umgeschaltet, und es werden nur die von geänderten Untereinheiten betroffenen Dateneinheiten DW . . . in den Arbeitsspeicher übertragen. Dabei werden alle betroffenen Dateneinheiten des Blocks, also auch die bereits übertragenen, übertragen.
Dies wird durch ein Prioritätsnetzwerk PRIO gesteuert, das an die Ausgänge der ODER-Glieder OR 1 angeschlossen und gestrichelt gezeichnet ist, da es bei anderen Lösungsvarianten entbehrlich ist.
Dies Prioritätsnetzwerk PRIO ermittelt, gesteuert durch Impulse am Eingang f in zyklischer Folge die Gruppen G . . . von Steuerbits W . . ., die eine Änderung anzeigen. Die ermittelten Gruppenadressen werden nacheinander dem Zähler CNT-A zur Einstellung durch entsprechende Steuerimpulse am Eingang ü übergeben, so daß der Multiplexer MUX die ausgewählte Gruppe durchschaltet und gleichzeitig der Multiplexer MUX 2 die zugehörige Dateneinheit auswählt. Während der Einzelbefehlssteuerung bleibt ein möglicherweise auftretendes Sperrsignal W.INH ohne Auswirkung. Vielmehr wird durch die Steuersignale BYTE.SEL . . . die Übernahme in den Arbeitsspeicher gesteuert, wobei fehlerhafte nicht geänderte Untereinheiten unberücksichtigt bleiben und fehlerhafte geänderte Untereinheiten zum Fehlersignal (W PERR) am Ausgang des ODER-Gliedes OR 3 und damit, wie bereits erläutert, gegebenenfalls zum Abbruch der Übertragung mit Überleitung in eine Fehlerbehandlungsroutine FBR führen.
Bei einer weiteren Varianten wird der laufende Blockübertragungszyklus mit Auftreten eines Fehlers abgebrochen und ohne Verzug in eine Einzelbefehlssteuerung in Verbindung mit den Steuersignalen BYTE.SEL . . . übergeleitet. Dabei können, wie bei der vorhergehend erläuterten Variante, alle geänderten Untereinheiten, also auch die bereits übertragenen, übertragen werden.
Durch den augenblicklichen Abbruch des Blockzyklus besteht aber auch die Möglichkeit, die Übertragung mit den nicht übertragenen Dateneinheiten fortzusetzen.
Der Zähler CNT-A mit seiner Adressenmarkierung liefert in diesem Falle den Startpunkt für das Prioritätsnetzwerk PRIO, wobei die Adressenmarkierung mit dem Signal üb übernommen wird. Anschließend wird dann wieder mit Signal f entsprechend den einzelnen Übertragungszyklen die Umsteuerung vorgenommen, bis das Signal en anzeigt, daß alle geänderten Untereinheiten ausgelagert sind.
Auf das Prioritätsnetzwerk PRIO kann aber, wie bereits erwähnt, verzichtet werden, wenn man generell nur einen Blockzyklus vorsieht und die Steuersignale BYTE.SEL . . . von vornherein wirksam werden läßt. Dann werden nämlich nur die gewänderten Untereinheiten erfaßt. Voraussetzung ist jedoch, daß dann kein Sperrsignal W.INH erzeugt wird.
Diese Lösungsvariante kostet vor allem dann am wenigsten Zeit und Aufwand, wenn fehlerhafte geänderte Daten ebenfalls in den Arbeitsspeicher ASP ausgelagert werden. In diesem Falle führt das Fehlersignal (W PERR) zu einem mehrfach genutzten Signal SPERR. Einerseits stellt es in Verbindung mit den zusätzlichen UND-Gliedern U 03 bis U 33 und den ODER-Gliedern OR 01 bis OR 31 sicher, daß die fehlerbehafteten geänderten Bytes für die Übernahme durch den Arbeitsspeicher mit der Erzeugung der Signale BYTE.SEL . . .=1 gekennzeichnet werden, und zum anderen bewirkt es am Arbeitsspeicher ASP, daß dieser trotz des bei der eigenen Fehlerprüfung festgestellten Fehlers die fehlerbehafteten Bytes annimmt und als ungültig markiert, z. B. durch ein falsches Sicherungszeichen, abgespeichert, ohne einen Speicherfehler zu melden. Fehlerhafte, geänderte Untereinheiten können sich dann nur auswirken, wenn im weiteren Programmverlauf auf diese Untereinheiten erneut zugegriffen werden muß.
Fig. 3 und Fig. 4 zeigen entsprechende Ablaufdiagramme für die einzelnen beschriebenen Verfahrensvarianten. Fig. 3 bezeiht sich dabei auf die Varianten mit Blockzyklussteuerung und anschließendem Übergang in eine Einzelbefehlssteuerung bei Auftreten eines Fehlers, deren Ablauf im rechten unteren Teil dargestellt ist, während der linke Teil des Ablaufdiagramms sich auf den in jedem Fall zunächst eingeleiteten Blockzyklus bezieht.
Die Überleitung in die Einzelbefehlssteuerung erfolgt nur im Fehlerfall, und zwar entweder am Ende eines Blockzyklus, wenn das Sperrsignal W.INH gesetzt ist oder aber unmittelbar, wie durch die strichpunktierte Verbindungslinie angedeutet ist, nach Auftreten eines Fehlers mit Abbruch des eingeleiteten Blockzyklus. Die Auslagerung von Dateneinheiten mit Einzelbefehlssteuerung beginnt entweder, wie dargestellt, mit der ersten geänderten Dateneinheit, für die W DW =1 ist, oder aber, wie bereits erläutert, mit der zum Abbruch des Blockzyklus führenden Dateneinheit anhand der vom Zähler CNT-A eingenommenen Zählerstellung zur Festlegung des Startpunktes für das Prioritätsnetzwerk PRIO.
Bei geänderten Untereinheiten auftretende Fehler führen, wie gestrichelt angedeutet ist, entweder zum Abbruch mit Überleitung in eine Fehlerbehandlungsroutine FBR oder aber, wenn die Art des Programms es für sinnvoll erscheinen läßt, zu einer Auslagerung in den Arbeitsspeicher mit entsprechendem Begleitsignal SPERR.
Das Ablaufdiagramm von Fig. 4 betrifft die Verfahrensvariante mit einmal ablaufendem Blockzyklus, wobei die Byteauswahlsignale BYTE.SEL . . . von vornherein wirksam sind, so daß in jedem der aufeinanderfolgenden Schreibzyklen lediglich die geänderten Bytes in den Arbeitsspeicher eingeschrieben werden.
Bei den bisher beschriebenen Varianten ist der Cache- Speicher C-SP jeweils solange blockiert, bis die Auslagerung eines Blockes abgeschlossen ist, da die einzelnen Dateneinheiten unmittelbar aus dem Cache- Speicher ohne Zwischenspeicherung zur Übertragung gelangen. Man könnte jedoch zusätzlich einen Zwischenspeicher für den gesamten Eintrag vorsehen und die Sicherungszeichen aller Dateneinheiten zunächst prüfen, um davon abhängig zu entscheiden, ob die Auslagerung im Rahmen eines Blockzyklus oder aber gleich durch Einzelbefehlssteuerung erfolgen soll. Während der Prüfzeit und auch während der Einzelbefehlssteuerung könnten der gesamte Eintragsbereich im Cache-Speicher bereits wieder belegt oder aber andere Speicheranfragen ohen weiteres berücksichtigt werden.
Die Sicherung der Daten ist beim beschriebenen Ausführungsbeispiel mit einem einzigen Paritätsbit je Byte durchgeführt worden, was im Fehlerfall keine Korrektur zuläßt. Trotzdem beeinträchtigt nicht jeder Fehler die Verfügbarkeit, da infolge der gewählten Größe der Untereinheiten die Gefahr verringert wird, daß Fehler bei nicht geänderten Dateneinheiten sich auf geänderte Dateneinheiten auswirken können. Trotz fehlender Möglichkeit einer Fehlerkorrektur läßt sich also die Funktionsfähigkeit infolge der größeren Fehlertoleranz erheblich steigern.
Bei größerer Speicherfehlerwahrscheinlichkeit mit der Notwendigkeit zur Korrektur z. B. von Einzelfehlern gilt Analoges für nicht korrigierbare Doppelfehler.
Die Durchführung der Verfahren ist dabei nicht an Schaltungsteile in fest verdrahteter Logik entsprechend dem Ausführungsbeispiel von Fig. 2 gebunden. Die einzelnen Verfahrensschritte sind ohne weiteres auch von einer speicherprogrammierten Steuerung, z. B. einem Mikroprozessor, ausführbar.
Selbstverständlich können anstelle der als Untereinheiten gewählten Bytes beispielsweise zwei oder auch vier Bytes jeweils eine Untereinheit bilden, der jeweils ein Steuerbit W zugeordnet wird. Die Größe der zu wählenden Untereinheiten richtet sich dabei in erster Linie nach der Art der Daten und deren Änderungshäufigkeit sowie nach dem angestrebten Sicherungsgrad bei einer vorgegebenen Fehlerwahrscheinlichkeit der verwendeten Speicherbausteine, sie kann durch entsprechende Simulation ermittelt werden.

Claims (12)

1. Verfahren zur Steuerung der Übertragung von in Pufferspeichern, insbesondere Cache-Speichern, von Datenverarbeitungsanlagen gespeicheten Daten in den Arbeitsspeicher, wobei nur im Pufferspeicher in Form von Blöcken gespeicherte Daten des Arbeitsspeichers geändert und geänderte Daten nur dann in den Arbeitsspeicher übertragen werden, wenn der zugehörige Speicherbereich für einen Block im Pufferspeicher für andere Daten benötigt wird, die Blöcke der Daten aus selbständigen Untereinheiten bestehen und jeder Untereinheit in Steuerbit zugeordnet ist, das die Änderung der jeweiligen Untereinheit anzeigt, und wobei wenigstens die Übertragung der Daten vom Arbeitsspeicher zum Pufferspeicher jeweils im Rahmen eines gesamten Blockes durch einen einzigen Steuerbefehl und in umgekehrter Richtung auch im Rahmen von einzelnen Untereinheiten mit individuellen Steuerbefehlen abhängig von den Steuerbits möglich ist, wobei jeweils der Breite des Übertragungsleitungssystems entsprechende Dateneinheiten nacheinander übertragen werden,
dadurch gekennzeichnet, daß bei Auslagerung eines Datenblockes mit wenigstens einer geänderten Untereinheit aus dem Pufferspeicher (C-SP) in den Arbeitsspeicher (ASP), wobei unabhängig vom Umfang des jeweiligen Datenblocks und der von der Breite des Übertragungsleitungssystems bedingten Größe der Dateneinheiten (z. B. Doppelwörter DW . . . mit je vier Bytes) diese in Untereinheiten (z. B. in Form von Bytes) mit individueller Fehlerüberwachungsmöglichkeit unterteilt sind, denen ein individuelles Steuerbit (z. B. W 1) zur Markierung einer Änderung zugeordnet ist, bei Fehlerfreiheit aller Untereinheiten des Blockes die Übertragung jeweils im Rahmen des gesamten Blockes mit nur einem Steuerbefehl erfolgt und daß bei Vorliegen wenigstens einer fehlerhaften Untereinheit innerhalb des auszulagernden Blockes die Steuerbits (z. B. W 1 bis W 32) zur Steuerung der Übertragung der Dateneinheiten mit geänderten Untereinheiten herangezogen und nicht geänderte fehlerhafte Untereinheiten von der Übernahme in den Arbeitsspeicher (ASP) ausgeschlossen werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß jede Auslagerung eines Datenblocks mit einem Blockübertragungszyklus eingeleitet wird, daß mit der jeweils ersten innerhalb des Blockübertragungszyklus aus dem Pufferspeicher gelesenen fehlerhaften Dateneinheit (z. B. DW 5) die Übernahme dieser und aller im Blockübertragungszyklus nachfolgenden Dateneinheiten (z. B. DW 6 bis DW 8) durch ein Begleitsignal (W.INH) gesperrt wird und daß nachfolgend wenigstens alle, noch nicht übernommene geänderte Untereinheiten aufweisenden Dateneinheiten mit Einzelbefehlssteuerung übertragen werden, wobei gegebenenfalls von der Speicherübernahme auszuschließende Untereinheiten innerhalb einer Dateneinheit durch gesonderte Steuersignale (BYTRE.SEL . . .=0) markiert werden.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß mit Lesen einer fehlerhaften Dateneinheit (z. B. DW 5) der laufende Blockübertragungszyklus sofort abgebrochen und auf Einzelbefehlssteuerung umgeschaltet wird, wobei lediglich die im Rahmen des Blockzyklus noch nicht übertragenen Dateneinheiten berücksichtigt werden.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß jede Auslagerung eines Datenblocks im Rahmen eines Blockübertagungszyklus durchgeführt wird und daß während des ablaufenden Blockübertragungszyklus alle nicht geänderten Untereinheiten der einzelnen Dateneinheiten durch gesonderte Steuersignale (z. B. BYTE.SEL 1=0) markiert werden, die eine Übernahme durch den Arbeitsspeicher (ASP) unterbinden.
5. Verfahren nach Anspruch 2 oder 4, dadurch gekennzeichnet, daß zu Beginn einer jeden Auslagerung eines Datenblocks der zugehörige Block zunächst als Ganzes aus dem Pufferspeicher (C-SP) gelesen und zur Fehlerprüfung (mit PEE) zwischengespeichert wird und daß ein Blockübertragungszyklus ohne Berücksichtigung der die ungeänderten Untereinheiten markierenden Steuersignale (z. B. BYTE.SEL 1=0) lediglich bei Fehlerfreiheit aller Untereinheiten des Datenblockes eingeleitet wird.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß auch als fehlerhaft erkannte und als geändert markierte Untereinheiten in den Arbeitsspeicher (ASP) übertragen und in diesem als ungültig markiert werden und daß die vom Arbeitsspeicher (ASP) dabei normalerweise ausgelöste Speicherfehlermeldung unterdrückt wird.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß die Übernahme fehlerbehafteter Dateneinheiten in den Arbeitsspeicher (ASP) und die Unterdrückung der Speicherfehlermeldung durch ein gesondertes Begleitsignal (SPERR) gesteuert wird.
8. Anordnung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 7, bestehend aus einem dem Arbeitsspeicher (ASP) einer Datenverarbeitungsanlage vorgeschalteten, nach dem "copy-back"-Verfahren arbeitenden Cache-Speicher (C-SP), aus Einrichtungen (z. B. PPE) zur Sicherung und/oder Korrektur der im Cache-Speicher (C-SP) in Form von Blöcken gespeicherten Daten gegen Speicherfehler und aus einem Übertragungsleitungssystem mit Steuerung zum Austausch von die Datenblöcke bildenden Dateneinheiten (z. B. DW 1 bis DWn) zwischen dem Arbeitsspeicher (ASP) und dem Cache-Speicher (C-SP) entweder aufgrund eines einzigen Steuerbefehls im Rahmen eines Blockzyklus oder aufgrund von Einzelsteuerbefehlen für die einzelnen Dateneinheiten (z. B. DW 1), gekennzeichnet durch eine gesonderte Steuereinrichtung (W-ST) zur Überwachung sowohl der den einzelnen Untereinheiten einer Dateneinheit zwecks Kennzeichnung einer erfolgten Änderung zugeordneten Steuerbits (z. B. W 1 bis W 32) als auch der von den Sicherungseinrichtungen (PPE) gelieferten Fehlersignale (z. B. PERR 0 bis 3) sowie zur Erzeugung von Steuersignalen (z. B. SWAP bzw. S.INH oder BYTE.SEL . . .) abhängig von den überwachten Steuerbits (W . . .) und der Fehlersignale (PERR . . .) zur Steuerung der Auslagerung eines gekennzeichneten Datenblocks (mit SWAP) in den Arbeitsspeicher (ASP) und zur Sperrung der Übernahme von Untereinheiten des auszulagernden Datenblockes, (z. B. mit W.INH oder BYTE.SEL . . .=0).
9. Anordnung nach Anspruch 8, gekennzeichnet durch Einrichtungen (OR 1 und OR 2) zur Feststellung, daß Untereinheiten des auszulagernden Datenblockes geändert sind, und zur Erzeugung entsprechender Steuersignale (z. B S.INV und SWAP), durch Einrichtungen (MUX) zur Auswahl der jeweils zur aus dem Cache-Speicher (C-SP) gelesenen und ausgewählten Dateneinheit (z. B. DW 1) gehörigen Gruppe (z. B. G 1) von Steuerbits (z. B. W 1 bis W 4) und durch Einrichtungen (U 01 bis U 31) zur Ermittlung fehlerfreier geänderter Untereinheiten und zur Erzeugung der die Übernahme durch den Arbeitsspeicher (ASP) steuernden Begleitsignale (BYTE.SEL . . .=1).
10. Anordnung nach Anspruch 9, gekennzeichnet durch Einrichtungen (OR 4) zur Prüfung der jeweils vorliegenden Fehlersignale (PERR 0 bis 3) auf das Vorliegen eines Fehlers und zur Erzeugung eines Sperrsignals (W.INH) zur Verhinderung der Übernahme gleichzeitig übertragener Dateneinheiten in den Arbeitsspeicher (ASP).
11. Anordnung nach Anspruch 9 oder 10 gekennzeichnet durch Einrichtungen (PRI 0, CNT-A) zur Bestimmung der jeweils von einer Änderung betroffenen Dateneinheiten eines Blockes abhängig von den einzelnen Steuerbitgruppen (z. B. G 1 bis G 8) der Steuerbits (W 1 bis W 32) in lückenlöser Folge und zur entsprechenden Einstellung der Auswahleinrichtungen (MUX, MUX 2) für die Bereitstellung der zugehörigen Steuerbitgruppe (z. B. G 1) und der zugehörigen Dateneinheit (z. B. DW 1) für die Steuerung der Übertragung.
12. Anordnung nach einem der Ansprüche 9 bis 11, gekennzeichent durch Einrichtungen (U 02 bis U 32, OR 3) zur Ableitung eines Begleitsignales (SPERR) bei Vorliegen fehlerbehafteter geänderter Untereinheiten zur Erzwingung der Übernahme der zugehörigen Dateneinheit durch den Arbeitsspeicher (ASP) und durch Einrichtungen (U 03 bis U 33, OR 01 bis OR 31) zur Abwandlung der die Übernahme verhindernden individuellen Begleitsignale (BYTE.SEL . . .=0) für die Untereinheiten in die Übernahme ermöglichende Begleitsignale (BYTE.SEL . . . = 1) bei Auftreten des globalen Begleitsignales (SPERR) zur Erzwingung der Übernahme einer fehlerbehafteten Dateneinheit durch den Arbeitsspeicher.
DE19843442823 1984-11-23 1984-11-23 Verfahren und anordnung zur steigerung der leistungsfaehigkeit von datenverarbeitungsanlagen mit in pufferspeichern, insbesondere in cache-speichern, gespeicherten fehlerhaften daten Granted DE3442823A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19843442823 DE3442823A1 (de) 1984-11-23 1984-11-23 Verfahren und anordnung zur steigerung der leistungsfaehigkeit von datenverarbeitungsanlagen mit in pufferspeichern, insbesondere in cache-speichern, gespeicherten fehlerhaften daten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19843442823 DE3442823A1 (de) 1984-11-23 1984-11-23 Verfahren und anordnung zur steigerung der leistungsfaehigkeit von datenverarbeitungsanlagen mit in pufferspeichern, insbesondere in cache-speichern, gespeicherten fehlerhaften daten

Publications (2)

Publication Number Publication Date
DE3442823A1 DE3442823A1 (de) 1986-06-05
DE3442823C2 true DE3442823C2 (de) 1988-04-07

Family

ID=6251018

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19843442823 Granted DE3442823A1 (de) 1984-11-23 1984-11-23 Verfahren und anordnung zur steigerung der leistungsfaehigkeit von datenverarbeitungsanlagen mit in pufferspeichern, insbesondere in cache-speichern, gespeicherten fehlerhaften daten

Country Status (1)

Country Link
DE (1) DE3442823A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3912705C2 (de) * 1989-04-18 1996-06-20 Siemens Nixdorf Inf Syst Verfahren und Anordnung zur Steuerung des Datenaustausches bei Schreibanforderungen von Verarbeitungseinheiten an einen Cachespeicher
DE69127936T2 (de) * 1990-06-29 1998-05-07 Digital Equipment Corp Busprotokoll für Prozessor mit write-back cache

Also Published As

Publication number Publication date
DE3442823A1 (de) 1986-06-05

Similar Documents

Publication Publication Date Title
DE2806024C2 (de)
DE3301628A1 (de) Schaltungsanordnung fuer den datenaustausch zwischen zwei rechnern
DE3111447C2 (de)
DE2430464A1 (de) Einrichtung zur fehlergesicherten datenuebertragung
DE69026346T2 (de) Technik zum Informationsschutz für fehlertolerante redundante Informationsspeichereinrichtungen
EP0141160A2 (de) Schaltungsanordnung zum Registrieren von Adressen von einen fehlerhaften Speicherinhalt aufweisenden Speicherzellen
DE4335061C2 (de) Mehrspeichervorrichtung
EP0282877A1 (de) Verfahren und Einrichtung zur Steuerung der Fehlerkorrektur innerhalb einer Datenübertragungssteuerung bei von bewegten peripheren Speichern, insbesondere Plattenspeichern, eines Datenverarbeitungssystems gelesenen Daten
DE19900251A1 (de) Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals
DE2325137C3 (de) Speichereinrichtung mit Bereitschaftsspeicherelementen
EP0350016B1 (de) Verfahren und Einrichtung zum Duplizieren des Inhalts von Datenträgern
DE3442823C2 (de)
DE102006019426B4 (de) Speichermodulsteuerung, Speichersteuerung und entsprechende Speicheranordnung sowie Verfahren zur Fehlerkorrektur
EP0127118B1 (de) Speichersteueranordnung, insbesondere für fehlertolerantes Fernsprech-Vermittlungssystem
WO2006128810A2 (de) Verfahren zur kommunikation redundanter daten während der adressübertragung auf einem gemultiplexten adress/datenbus
DE3433679C2 (de)
DE2242279B2 (de) Schaltungsanordnung zur Ermittlung von Fehlern in einer Speichereinheit eines programmgesteuerten Datenvermittiungssystems
DE2823457A1 (de) Verfahren und schaltungsanordnung zur fehlerueberwachung in speichersystemen digitaler rechenanlagen
EP0036148A1 (de) Hybrid-Assoziativspeicher
DE3431770A1 (de) Verfahren und anordnung zur sicherung von wichtigen informationen in speichereinheiten mit wahlweisem zugriff, insbesondere solchen aus ram-bausteinen
EP0306736A2 (de) Verfahren zum Übertragen von in einer Fernmeldevermittlungsanlage gespeicherten Verbindungsinformationen zu einer Informationsverarbeitungsanlage
DE10084752T5 (de) Verfahren zur Überwachung von parallelen Prozessen
DE3229111C1 (de) Verfahren zur Fehlerkorrektur von Daten
DE3628259C1 (en) Method and arrangement for control of access to the memory system consisting of cache memory and working memory in a data processing system
DE1449555C (de) Einrichtung zur Korrektur von Datenubertragungsfehlern mit zwei dimensionaler Paritätsprüfung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee