CIRCUITRY FOR PROCESSING DATA IN A DATA PROCESSING SYSTEM CONSISTING OF A CENTRAL PROCESSOR, A MAIN MEMORY AND AN INTERPOSED BUFFER MEMORY

Abstract: 1. A circuit arrangement for processing data in a data processing system, wherein a buffer store is arranged between a central processor and a working store, and the items of data are addressed by means of page- and class-addresses, wherein the buffer store comprises a data buffer, which is sub-divided into a plurality of equal-sized banks each comprising a plurality of pages, and of a plurality of address stores which are each assigned to one of the banks and which serve to store the page-addresses, wherein the content of data buffer and associated address store is selected by means of class-address, and at the output of each address store, in each case with the assistance of a comparison circuit, an address comparison takes place between the page-address, which emanates directly from the address register of the central processor, and the page-address stored in the address store, and wherein individual store entries in the buffer store can be marked by means of protection signals which can be input into two equal-sized protection signal stores which are assigned to the address stores, and of which one is activated and the other is blocked by means of a controlled switch-over, characterised in that, for the erasure of the protection signal stores, the clock pulse input of each protection signal store (APS, APS') is connected to the output of an AND-OR-gate (DU, DU'), via the first subsidiary-AND-gate of which a protection signal (AP), transmitted from the central processor, is logic-linked to a failed-read-access-load pulse (LI) and to a first or second output signal (M1 or M2) of a switching-flip-flop (M) which is controlled by means of a programme-function-change signal (TCH) and which effects the switch-over from the one to the other protection signal store (APS, APS'), whereas via the second subsidiary-AND-gate a clock pulse signal (TS) is logic-linked to the second or first output signal (M2 or M1) of the switching flip-flop (M), and that the address inputs of the two protection signal stores (APS, APS') can each be connected via a multiplexer (MUX, MUX'), controlled by means of the switching-flip-flop, selectively to the address register of the central processor or to the outputs of a counter (Z) which produces continuous addresses for the erasure process (Z).

Description: Schaltungsanordnung zum Verarbeiten von Daten in einer aus Zentralprozessor, Arbeitsspeicher und dazwischen angeordnetem Pufferspeicker bestehenden Datenverarbeitungsanlage. Die Erfindung bezieht sich auf eine Schaltungsanordnung zum Verarbeiten von Daten in einer aus Zentralprozessor, Arbeitsspeicher und dazwischen angeordnetem Puffe-rspei- cher bestehenden Datenverarbeitungsanlage gemäss dem Oberbegriff des Hauptanspruchs. Es ist bekannt, in einer Datenverarbeitungsanlage ab einer bestimmten Leistungsklasse zwischen Zentraltrozes- sor und Arbeitsspeicher einen Pufferspeicher, ein sogenanntes Cache, vorzusehen, in welchem ein Teil des im 4r- beisspeicher enthaltenen Gesatntdatenbestandes zum Zwecke eines schnelleren Zugriffs zwischengespeichert werden kann. Dem Konzeot des Cache-Speichers liegt die Erfah- rung zugrunde, dass Lese- oder Schreibzugriiie im Ar- beisspeicher häuiig konsekutive Adressen betref fen. Greift man also einen, meist aber mehrere Speicherbereiche heraus und übertra#gt sie in das Cache, so hat dies eine spürbare Verkürzung der Zugriffszeit gegenüber einer herkömmlichen Abwicklung mit dem in Bezug auf die Zugriffszeit wesentlich langsameren Arbeitsspeicher zur Folge. Ist nun eine Adresse finzusprechen, die sich nicht im Cache-Speicher befindet, so wird ein entsprechender Abschnitt des Cache-Speichers mit dem Arbeitsspeicherabschnitt gefüllt und der Eintrag entsprechend registriert, weil zu erwarten ist, dass während des gerade ablaufenden Programms mit grosser Wahrscheinlichkeit erneut auf diesen Abschnitt zugegriffen wird. Die Schwierigkeiten in 3ezug auf eine Verkürzung der Zugriffszeit bestehen vor allen Dingen dann, wenn, wie in grösseren Datenverarbeitungsanlagen üblich, die Daten virtuell adressiert werden. Dies hat nämlich zur Folge, dass die Adresse vor jedem Zugriff zum Cache bzw. zum Arbeitsspeicher zunächst in eine physikalische Adresse ibersetzQ werden muss. Diese Ubersetzung erfolgt, um den Aufwand auch hier möglichst gering zu halten, in bekannter Weise dadurch, dass man den virtuellen und den physikalischen Speicher in Seiten von z.B. 2k Byte Grosse unterteilt und über Ub#ersetzungs- tafeln, die beispielsweise im Arbeitsspeicher stehen können, jeder physikalischen Seitenadresse eine virtuelle Seitenadresse zuordnet. Um nun die Zahl der Lesezugriffe zu den Adressübersetzungstafeln möglichst gering zu halten, wird gemäss einem bekannten Vorschlag (DE-OS 26 05 617) in der Zentraleinheit ein schneller teilassoziativer Adressübersetzungsspeicher vorgesehen, indem ein Teil der Übersetzungstafeln vorübergehend dupliziert wird. Aus Kostengründen kann auch dieser Speicher nicht so gross gemacht werden, dass sich eine genügend hohe Trefferrate einstellt. Es wird daher auch aus diesem Grund vorkommen, dass unmittelbare Zugriffe zum Arbeitsspeicher notwendig werden. Aus den genannten Gründen ist es deshalb vorteilhaft, bestimmte Einträge beispielsweise mit Hilfe eines eigens dafür vorgesehenen Überwachungsbits (Schutzbit) vor einem etwaigen Löschen oder Überschreiben zu schützen, weil dadurch eine hohe Cache-Trefferrate, insbesondere bei Lesezugriffen im Zusammenhang mit einer Adressübersetzung erzielt wird. Der begrenzte Speichervorrat im Cache und im Adressübersetzungsspeicher hat nun zur Folge, dass bei einem in der Verarbeitungseinheit stattfindenden Aufgabenwechsel sowohl im Cache als auch im Adressübersetzungsspeicher andere Speicherbereiche des Arbeitsspeichers aktuell werden. Die ungeschützten Teile des Cacheinhalts werden dabei automatisch durch das neue Programm mit einer Information überschrieben, wobei anfangs die Trefferrate sehr gering sein wird. Bei geschützten Informationen dauert dagegen das Uberschreiben durch neue zu schützende Einträge meist zu lange, so dass das Cache durch diese wertlosen Einträge nicht wieder seine volle Trefferrate erreicht. Es ist daher sinnvoll, beim Aufgabenwechsel den Schutz zustand aufzuheben und die entsprechenden Schutzbits zu löschen. Dieser Löschvorgang, bei dem alle Einträge des Cache sequentiell adressiert werden müssen, verursacht andererseits aber wieder einen erheblichen Zeitaufwand, so dass der weitere Betriebsablauf empfindlich gestört wird. Der vorliegenden Erfindung liegt nun die Aufgabe zugrun- de, einen Weg aufzuzeigen, wie das Rücksetzen bzw. Löschen von durch Überwachungsbits geschützten Einträgen im Cache möglichst ohne Behinderung des laufenden Programms und möglichst ohne zusätzlichen Zeitbedarf durchgeführt werden kann. Ausgehend von einer Schaltungsanordnung der eingangs genannten Art wird diese Aufgabe erfindungsgemäss durch die im kennzeichnenden Teil des Hauptanspruchs genannten Merkmale gelöst. Durch das Vorhandensein zweier Flagfeldspeicher für die Speicherung der Schutzbits steht bei jedem Aufgabenwechsel immer der vorher gerade nicht benutzte Speicher für den Ablauf des neuen Programms unmittelbar und sofort zur Verfügung, während der jeweils andere, gerade benutzte Speicher gleichzeitig gelöscht werden kann. Vorteilhafte Weiterbildungen des Erfindungsgedankens sind in den Unteransprüchen angegeben. Im folgenden werden zwei Ausführungsbeispiele von er findungsgemäss aufgebauten Schaltungsanordnungen anhand der Zeichnung näher erläutert. Es zeigen: FIG 1 einen Ausschnitt aus dem Adressteil eines Puf ferspeichers mit zwei Flagfeldspeichern zur Speicherung von Schutzbits sowie eine Schaltungs anordnung zum Löschen der jeweils in einem der Flagfeldspeicher -vorhandenen Schutzbits, FIG 2 eine vereinfachte Ausführungsform einer Schal tungsanordnung gemäss FIG 1. Die FIG 1 zeigt in einer ausschnittweisen Darstellung einen Pufferspeicher mit zwei Flagfeldspeichern APS und APS t f in denen die zur#Markierung und Uberwachung einzelner Oache-Einträge dienenden Schutzbits AP eingespeichert sind. Diese Schutzbits AP greifen dabei derart in den Ersetzungsalgorithmus ein, dass Einträge mit gesetztem AP-Bit bevorzugt behandelt und solange vor dem Überschreiben geschützt werden, wie noch freie Speicherplätze mit nicht gesetzten AP-Bit vorhanden sind. Dadurch wird bei Lesezugriffen zu geschützten Informationen eine hohe Trefferrate erreicht. Eine sinnvolle Anwendung dieser Schutzbits ergibt sich beispielsweise durch eine bevorzugte Behandlung derjenigen Speicherzugriffe, die im Zusammenhang mit der Adressübersetzung bei virtueller Adressen erfolgt. Sie ist umso wirkungsvoller, je geringer die Trefferrate des Adressübersetzungsspeichers selbst ist. Für den Fall, dass das Cache aus mehreren Bänken besteht, kann der Ersetzungsalgorithmus auch so gesteuert werden, dass pro Zeile in jeweils nur einer Bank ein AP-Bit gesetzt und damit jeweils nur ein Eintrag geschützt werden, um die Trefferrate für normale Zugriffe nicht zu sehr zu verringern. Erfolgt in der Verarbeitungseinheit ein Aufgabenwechsel, so werden im Cache andere Einträge aktuell. Jeder Aufgabenwechsel wird im Cache durch ein entsprechendes Signal TCH angezeigt. Dieses Signal TCH invertiert dann jedesmal einen z.B. als Schaltflipflop ausgebildeten Merker MI wobei in Abhängigkeit vom Zustand der beiden Ausgänge Ml, M2 des Merkers abwechselnd der eine oder der andere Flagfeldspeicher APS, APS in den Übertragungsweg eingeschaltet wird. Es sei nun angenommen, dass der Merker M so angesteuert ist, dass die Adresse ADR eines neuen Speichereintrages, d.h. dessen Seitenklassenadresse über den Multiplexer MUS an den Flagfeldspeicher APS gelangt. Da das Cache beispielsweise aus vier Bänken A, B, C, D besteht, sind entsprechend vier UND-Glieder UA, UB, UC, UD vor gesehen, die einerseits durch das erste Ausgangssignal Ml des Merkers M und andererseits durch das jeweilige Bankauswahlsignal SEL A1 SEL 3, SEL C und SEL D angesteuert werden. Aufgrund des gewählten Ersetzungsalgorithmus, wonach z.B. pro Zeile nur jeweils in einer Bank ein AP-Bit gesetzt werden soll, wird beispielsweise nur das UND-Glied UA durchgeschaltet, während die übrigen UND-Glieder gesperrt werden. Das Setzen des jeweiligen AP-Bits im Flagfeldspeicher APS setzt einen Taktimpuls TI voraus, der am Ausgang eines Doppel-U#TD-Gliedes DU auftritt. Dieses Taktsignal TI entsteht durch logische Verknüpfung im oberen Teil UND- Glied des Doppel-UND-Gliedes und zwar durch Verknüpfung des auf den richtigen Zustand zeigenden Ausgangssignals Ml des Merkers M mit dem von der Verar beitungseinheit ausgesandten AP-Signal und einem Lesezugriff-Ladeimpuls LI. Das untere Teil-UND-Glied des Doppel-UND-Gl edes DU wird durch ein Taktsignal TS und durch den zweiten Zustand des Merkers M über dessen Ausgangssignal M2 angesteuert und damit zunächst gesperrt. Die vier Ausgänge des Flagfeldspeichers APS gelangen schliesslich über einen ebenfalls vom Merker M gesteuerten Mehrfachschalter MS an die Ersetzungslogik, die aufgrund des neuen Eintrags den Ersetzungsalgorithmus entsprechend beeinflusst. Im Falle eines Ausgabewechsels wird der Merker M, wie bereits erwähnt, aufgrund des von der Verarbe#tungsein- heit ausgesandten Signals TCH invertiert, was zur Folge hat, dass nurmehr über die Multiplexer MUX, MUX' und den Mehrfachschalter MS der zweite Flagfeldspei- cher APS' aktiviert und der erste Flagfeldspeicher APS gesperrt wird. Beide Flagfeldspeicher APS und APS' einschliesslich der ihnen zugeordneten Schaltungen stim men in Aufbau und Funktion völlig überein, weshalb für die zweite Schaltungshälfte die gleichen Bezugszeichen, jedoch mit zusätzlichem Apostroph,¯ verwendet wurden. Mit der Aktivierung des zweiten Flagfeldspeichers APS' wird gleichzeitig ein Löschvorgang für den ersten Flagfeldspeicher APS eingeleitet. Dies geschieht dadurch, dass das Cache über eine Zähler Z Zeile für Zeile mit dem Taktsignal TS adressiert wird. Dasselbe Taktsignal TS geht über das untere, inzwischen vom Merker M freigegebene Teil-UND-Glied des Doppel-UND-Gliedes UD an den Takteingang des Flagfeldspeichers APS. Schliesslich werden noch alle UND-Glieder UA...UD gesperrt, so dass an den Dateneingängen der Bänke, A, B, C, D jeweils Nullen auftreten. Durch das sequentielle Adressieren der Einträge mit Hilfe des vom Taktsignal TS gesteuerten Zählers Z wird somit in vorteilhafter Weise ein schnellstmögliches systematisches Rücksetzen des Flagfeldspeichers erreicht. Das Taktsigna' TS kann beispielsweise vom Maschinentakt abgeleitet werden. Die FIG 2 zeigt ein gegenüber FIG 1 etwas vereinfachtes Schaltbild, wobei sich der Unterschied durch das Fehlen dec Zählers Z und der beiden Multiplexer MUX, MUX' ergibt. Ausserdem wird das untere Teil-UND Glied des Doppel-UND-Gliedes nicht mit dem Taktsignal TS sondern mit dem Ladeimpuls LI angesteuert. In allen übrigen Schaltungsteilen besteht völlige Uberein- stimmung, weshalb zweckmässigerweise auch die gleichen Bezugszeichen übernommen worden sind. Bei dieser zweiten Schaltungsanordnung erfolgt der Löschvorgang dadurch, dass die Adressen ADR jedes Lesezugriffs, der nicht zu einem Treffer im Cache führt, gleichzeitig zum Löschen der nicht mehr aktuellen AP-Bits im Flagfeldspeicher APS' ve--end-t werden. Das bedeutet, dass bei einem in einer bestimmten Zeile vorgesehenen Lesezugriff gleichzeitig im Flagfeldspeicher APS' und zwar in der gleichen Zeile ein Rücksetzimpuls erzeugt und das dort gegebenenfalls vorhandene AP-Bit gelöscht wird. Das Rücksetzen geschieht hier also nicht mehr systematisch Zeile für Zeile, sondern in Abhängigkeit von den Zufälligkeiten der Lesezugriffe des neuen Programms entsprechend sprunghaft und unsystematisch. Schliesslich sei noch erwähnt, dass eic rinschalten der Anlage selbstverständlich beide Flagfeldspeicher gelöscht sein müssen. Dies geschieht zweckmässigerweise durch Parallelschalten beider Flagfeldspeicher und gleichzeitiges Löschen mit Hilfe eines Taktsignals, wobei alle Einträge durch einen im Cache vorhandenen Zähler sequentiell adressiert werden. 4 Patentansprüche 2 Figuren

Claims: Patentansorüche 1. Schaltungsanordnung zum Verarbeiten von Daten in einer aus Zentralprozessor, Arbeitsspeicher und dazwischen angeordnetem Pufferspeicher bestehenden Datenverarbeitungsanlage, bei der der Pufferspeicher aus einem in mehrere gleichgrosse Bänke unterteilten Datenpuffer und entsprechend vielen, der Speicherung der zugehörigen Seitenadressen dienenden Adressenspeichern besteht, und bei der einzelne Speichereinträge durch im sogenann- ten Flagfeld des Adressenspeichers zusätzlich speicherbare Schutzsignale markierbar sind, d a d u r c h g e k e n n z e i c h n e t , dass parallel zu dem den Schutzsignalen zugeordneten Speicherbereich (APS) des Flagfeldes ein zweiter identisch aufgebauter Schutzsignal-Flagfeld-Speicher (APS') angeordnet ist und dass beide Speicher bei jedem Aufgabenwechsel alternierend in den Signalweg einschaltbar sind. 2. Schaltungsanordnung nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, dass jedem der beiden Flagfeldspeicher (APS, APS') mehrere, der Zahl der Pufferspeicherbänke entsprechende UND-Glieder (UA, UB, UC, UD) zugeordnet sind, die einerseits mit je einem jeweils einer Bank (A, B, C, D) zugeordneten Bankauswahlsignal (SELA, SELB, SELC, SELD) und andererseits mit einem ersten bzw. zweiten Ausgangssignal (M1, M2) eines die Umschaltung von einem Schutzsignalspeicher zum anderen Schutzsignalspeicher bewirkenden Schaltflipflops (M) ansteuerbar sind und dass re den einzelnen Bänken zuge ordneten Ausgänge jeweils eines der beiden Schutzsignal- speicher mittels eines vom Schaltflipflop (M) steuer- baren Mehrfachschalter (MS) in den Signalweg einschaltbar sind. 3. Schaltungsanordnung nach Anspruch 2, d a d u r c h g e k e n n z e i c h n e t , dass jedem Schutzsignalspeicher (APS, APS') je ein Doppel-UND-Glied (DU) zugeordnet ist und die Eingänge des einen UND-Gliedes mit dem ersten bzw. zweiten Ausgangssignal (M1, M2) des Schaltflipflops (M)1 dem vom Zentralprozessor ausgesandten Steuersignal (AP) und einem Lesefehlzugriff Ladeimpuls (LI) verknüpft sind, während die Eingänge des zweiten UND-Gliedes mit dem zweiten bzw. ersten Ausgangssignal (M2, M1) des Schaltflipflops (M) und einem Taktsignal (TS) bzw. dem Ladeimpuls (LI) belegt sind. 4. Schaltungsanordnung nach einem der Ansprüche 2 oder 3, d a d u r c h ge k e n n z e i ch n e t dass den beiden Steuersgnals#eichern (APS, APS') äe ein Multiplexer (MUX. MUX') vorgeschaltet ist, deren durch das Schaltflipflop (M) gesteuerte Eingänge im Gegen- takt zwischen einem Adressregister des Zentralprozessors und einem Adresszähler (Z) umschaltbar sind.

Inventors: KAHLER, JURGEN. DIPL.-ING-, Kähler, Jürgen. Dipl.-Ing-
Applicants: SIEMENS AKTIENGESELLSCHAFT
Application year: 1980
Main classification: G06F13
IPC codes: G06F12