DE2350225C2 - - Google Patents

Info

Publication number
DE2350225C2
DE2350225C2 DE2350225A DE2350225A DE2350225C2 DE 2350225 C2 DE2350225 C2 DE 2350225C2 DE 2350225 A DE2350225 A DE 2350225A DE 2350225 A DE2350225 A DE 2350225A DE 2350225 C2 DE2350225 C2 DE 2350225C2
Authority
DE
Germany
Prior art keywords
memory
address
bytes
information
buffer 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.)
Expired
Application number
DE2350225A
Other languages
English (en)
Other versions
DE2350225A1 (de
Inventor
John L. Sudbury Mass. Us Curley
Wallace A. Nashua N.H. Us Martland
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.)
Bull HN Information Systems Inc
Original Assignee
Honeywell Bull Inc
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 Honeywell Bull Inc filed Critical Honeywell Bull Inc
Publication of DE2350225A1 publication Critical patent/DE2350225A1/de
Application granted granted Critical
Publication of DE2350225C2 publication Critical patent/DE2350225C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • 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/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control

Description

Die Erfindung bezieht sich auf eine Schaltungsanordnung für ein Rechnersystem zur variablen Ausblendung von Informationen gemäß dem Oberbegriff des Patentanspruchs 1. Sie findet Anwendung in Rechnersystemen oder EDV-Anlagen mit mehrstufigen, hierarchisch organisierten Speichern und insbesondere in Speicherhierarchien mit gestaffelt angeordneten Speichereinheiten, wobei die aufeinanderfolgenden Speicherstufen von steigender Speicherkapazität sind, andererseits für den Datenzugriff aber auch steigende Zugriffszeiten aufweisen. Die einfachste Speicherhierarchie ist zweistufig und umfaßt einen Hauptspeicher sehr großer Kapazität mit relativ langsamem Datenzugriff und einen Pufferspeicher relativ kleiner Kapazität, aber sehr kurzer Zugriffszeit. Gängige Bezeichnungen für diese beiden Arten von Speichern sind auch die aus dem Englischen entnommenen Bezeichnungen "Backing Store" für den Hauptspeicher und "Cache" für den Pufferspeicher.
Das Speicherhierarchiekonzept wird in der Datenverarbeitung insbesondere deshalb vorteilhaft angewendet, weil während des Programmablaufs örtliche Speicherbereiche zu bestimmten Zeiten der Abarbeitung des Programms besonders stark frequentiert sind, das heißt, Daten werden aus bestimmten Adreßbereichen besonders häufig abgerufen oder werden in bestimmte Adreßbereiche bevorzugt eingeschrieben. Man kann dann diesen Datentransfer sehr schnell zwischen dem zentralen Prozessor und dem Pufferspeicher ablaufen lassen und gewinnt dadurch beträchtlich an Verarbeitungszeit, wie wenn man den Datentransfer mit dem relativ langsamen Hauptspeicher abwickeln müßte.
Bekannte Anlagen der eingangs definierten Gattung stellen die von dem zentralen Prozessor benötigten Daten im Pufferspeicher in der Weise bereit, daß vorab feste Datenblocks aus dem Hauptspeicher in den Pufferspeicher übertragen werden. Diese rechtzeitige Datenbereitstellung verlangt besondere Techniken im gegenseitigen Datentransfer und Datenaustausch zwischen Haupt- und Pufferspeicher; die Computeringenieure sprechen hierbei auch von der sog. "Mapping"-Technik. Es sei an dieser Stelle auf einen Artikel von C. J. Conti, "Concepts for Buffer Storage" verwiesen, der in "Computer Group News", März 1969, S. 9-13 veröffentlicht wurde und der die üblichen "Mapping"-Techniken bei der Datenübernahme in hierarchischen Speichersystemen beschreibt, vorzugsweise dargestellt am IBM System/360, Modell 85.
Wegen der Größe des Hauptspeichers ist es vielfach üblich, beispielsweise bei der im US-Patent 36 26 374 beschriebenen Anlage, diesen modular zu unterteilen, d. h. in eine Anzahl von Speichermoduls zu segmentieren, so daß sich die einzelnen Daten der zu transferierenden Informationsblocks in der Art einer Verschachtelung über die einzelnen Speichermoduls verteilen. Wie man die Segmentierung der einzelnen Bytes eines Blocks, der z. B. aus 32 Bytes bestehen kann, auf die einzelnen Speichermoduls vornimmt, ist von Fall zu Fall unterschiedlich. Beispielsweise kann man bei vier Speichermoduls die Bytes 0 bis 7 im ersten, die Bytes 8 bis 15 im zweiten, die Bytes 16 bis 23 im dritten und die Bytes 24 bis 31 im vierten Speichermodul unterbringen.
Wie schon erwähnt, erfolgt bei den bisher bekannten Rechner- und EDV- Systemen mit mehrstufigen, hierarchisch organisierten Speichern die Bereitstellung der zur Verarbeitung bestimmten Daten jeweils im Pufferspeicher und die Übernahme von Daten aus dem Haupt- in den Pufferspeicher und umgekehrt nach der "Mapping"-Technik in festen Blocks.
Bei solchen Anlagen ist es oftmals aber wünschenswert, daß der zentrale Prozessor in die Lage versetzt werden kann, unter Umgehung des Pufferspeichers einen direkten Datenzugriff im Hauptspeicher vorzunehmen, z. B. bei Ausfall oder fehlerhaftem Funktionieren des Pufferspeichers oder der mit ihm in Verbindung stehenden Schaltaggregate. Um eine universelle EDV-Anlage bei den vielfältigen Anwendungsmöglichkeiten in der Praxis auch immer kostenökonomisch optimal einsetzen zu können, benötigt man vielfach eine flexible Organisationsstruktur, vor allem auch bei der "Mapping"-Technik in der Speicherhierarchie. So kann es zuweilen zweckmäßig sein, den Pufferspeicher in seiner Kapazität kleiner zu gestalten, vor allem dann, wenn aus der Sicht des Anwenders eine reduzierte Leistung im Datendurchsatz zugelassen werden kann, so daß insgesamt der Aufwand und damit auch die Kosten geringer gehalten werden können. Soll also z. B. der Pufferspeicher in seiner Kapazität mit reduzierter Leistung arbeiten, so bedingt das naturgemäß eine Änderung des Zugriffsmodus bzw. einen häufigeren Zugriff auf den Hauptspeicher. Auch in diesem Fall kann ein ggfs. zusätzlicher direkter Datenzugriff vom zentralen Prozessor zum Hauptspeicher vorteilhaft sein.
Darüber hinaus ist zur Lösung gewisser Probleme das vollständige Block-"Mapping" im Sinne einer Datenvorratshaltung im Pufferspeicher nicht immer erforderlich. Auch braucht man vom Grundsatz her nicht immer gleich einen ganzen Datenblock vom Haupt- in den Pufferspeicher zu übertragen, wenn bei der durchgeführten Adreßkontrolle sich eine Adreßfehlanzeige für den Pufferspeicher ergeben hat. Weiterhin kann es wünschenswert und zweckmäßig sein, die Anzahl der abzurufenden Bytes flexibel handbaben zu können, wenn auf diese simultan in den Moduln des Hauptspeichers beim "Mapping" zugegriffen wird.
Der Erfindung liegt demgemäß die Aufgabe zugrunde, für ein Rechnersystem oder eine EDV-Anlage der eingangs erwähnten Gattung ein verbessertes Mehrebenen-Speichersystem zu schaffen hinsichtlich der Möglichkeit eines flexibel gestaltbaren "Mapping", bei zeitlich wahlfreiem gleichzeitigem Zugriff zu einer variablen Anzahl von Bytes eines Datenblocks, gegebenenfalls unter dynamischer Umgehung des Pufferspeichers, dessen Kapazität ebenfalls variabel gestaltbar ist, und wobei schließlich auch der Informationszugriff veränderbar ist.
Die vorliegende Erfindung löst das Problem durch die Bereitstellung einer Schaltungsanordnung gemäß dem kennzeichnenden Teil des Anspruchs 1.
Dabei sind in Abhängigkeit von einem wählbaren Datentransfermodus im Rahmen der anzuwendenden "Mapping"-Technik Informations- Datenblocks variabler Größe übertragbar und im Pufferspeicher speicherbar. Diese Flexibilität im Datentransfer ist insbesondere dann vorteilhaft, wenn der Hauptspeicher in eine Anzahl von Speichermoduls unterteilt (segmentiert) ist und die einzelnen Daten (Bytes) der Informationsblocks sich in der Art einer Verschachtelung über die einzelnen Speichermoduls verteilen. Wenn also nicht die Notwendigkeit oder der Wunsch besteht, einen Informationsblock der vollen Datenkapazität zwischen Haupt- und Pufferspeicher "umzuladen", so kann die Übertragung der gewünschten Datenmenge schneller ablaufen, und man erzielt im ganzen gesehen ggfs. einen viel effizienteren Operationsablauf. Auch die Variationsmöglichkeit in der einzusetzenden Kapazität des Pufferspeichers ermöglicht eine weitere Optimierung auf Grund von Kostenüberlegungen. Zudem ermöglicht die erfindungsgemäße Schaltungsanordnung auf relativ einfache Weise die variable Ausblendung von beliebigen Informationsdaten (Bytes) aus den für die Datenverarbeitung durch den zentralen Prozessor im Speicher zur Verfügung gestellten, ggfs. blockweise angeordneten Daten.
Anhand von Zeichnungen wird der Erfindungsgegenstand an einer bevorzugten Ausführungsform nachstehend näher erläutert.
Fig. 1 zeigt in Blockdarstellung das mehrstufige Speichersystem einer EDV-Anlage mit den wichtigsten zugehörigen Steuereinrichtungen.
Fig. 2A und 2B zeigen in Blockdarstellung die im System benutzten Adreßanordnungen.
Fig. 3 zeigt in einem detaillierteren Blockdiagramm die wichtigsten Bauaggregate und Schaltelemente des Ausführungsbeispiels der Erfindung.
Fig. 4, 5, 6 und 7 zeigen in Blockdarstellung weitere Einzelheiten der Bauaggregate und Schaltelemente bei der Operation in verschiedenen Betriebsarten.
Fig. 8A bis 8E zeigen logische Verknüpfungen von Grundschaltelementen zur Erzeugung von Signalen für Maskierungs- oder Ausblendoperationen und für die Selektierung des Betriebsmodus.
In Fig. 9A sind die benötigten Taktdiagramme dargestellt.
Das logische Verknüpfungsdiagramm von Fig. 10 dient lediglich zur Erläuterung der in Fig. 8A bis 8E dargestellten Signale und Symbole.
Es erscheint zweckmäßig - bevor mit der Figurenbeschreibung begonnen wird - eine kurze Übersicht über die in der nachfolgenden Beschreibung dargestellten Speicherhierarchie-Betriebsarten der EDV- Anlage zu geben.
Es ist üblich, im Pufferspeicher zwei Speichermoduln mit je 128 Spalten anzuordnen, von denen jede Spalte einen Datenblock mit je 32 Bytes aufzunehmen vermag. Eine solche Betriebsart des Pufferspeichers wird vereinfacht als 128×2×32-Modus bezeichnet und wird als Normalbetrieb angesehen.
Eine andere Betriebsart ist der 128×2×16-Modus, der sich vom Normalbetrieb (Normalmodus) dadurch unterscheidet, daß jede Spalte nur einen halben Datenblock (16 Bytes) aufnimmt.
Eine weitere Betriebsart ist der 256×2×16-Modus, der sich vom Normalbetrieb (Normalmodus) dadurch unterscheidet, daß die Speichermoduln jeweils 256 Spalten aufweisen, von denen jede Spalte einen halben Datenblock (16 Bytes) aufzunehmen vermag.
Im Normalbetrieb erfolgt das Übertragen von Daten ("Umladen") aus dem bzw. in den Hauptspeicher entweder in vollen Blocks (32 Bytes) oder wahlweise auch in halben Blocks (16 Bytes).
Diese wahlweise einsetzbaren Betriebsarten geben dem Benutzer der EDV- Anlage eine größere Flexibilität und einen erweiterten Spielraum hinsichtlich der Optimierung einer individuell gestaltbaren Befehlsabfolge bei der Mikroprogrammierung.
Es kommt darüber hinaus auch ein Fehlanzeige-Modus ("Non-Allocate- Mode") vor, bei welchem der Speicherzugriff jeweils mit 8 Bytes erfolgt und Vierer-Byte-Gruppen temporär im Pufferspeicher abgespeichert sind. In dieser Betriebsart werden die in Bezug auf den Pufferspeicher durchgeführten Adreßkontrollen grundsätzlich als Fehlanzeige behandelt.
Schließlich gibt es noch den Umgehungs-Modus; das ist diejenige Betriebsart, bei der der Datenzugriff direkt auf den Hauptspeicher unter Umgehung des Pufferspeichers erfolgt.
Es folgt nun die Beschreibung einer bevorzugten Ausführungsform des Erfindungsgegenstandes anhand der Zeichnungen.
In Fig. 1 ist schematisch ein hierarchisches Speichersystem eines Rechnersystems oder einer EDV-Anlage dargestellt, das in zwei hierarchisch gestaffelten Stufen einen Hauptspeicher 101 und einen Pufferspeicher 104 umfaßt. Dieser Pufferspeicher 104 kann z. B. eine 8192 Bytes umfassende bipolare Halbleiter-Speicheranordnung mit wahlfreiem Zugriff sein. Typisch für einen solchen Pufferspeicher ist z. B. eine Zykluszeit von 150 Nanosekunden bei einer Zugriffszeit von 95 Nanosekunden. Der in Fig. 1 gezeigte Hauptspeicher besteht aus vier MOS-Speichermoduln 101 A-101 D, die auch wahlfrei zugreifbar sind und über die die Bytes der Datenblocks in der schon erläuterten Weise verschachtelt verteilt sind. In Anbetracht einer typischen Zykluszeit von 0,8 Mikrosekunden für den Hauptspeicher wird sofort ersichtlich, daß demgegenüber der Pufferspeicher um ein Mehrfaches schneller ist und in der Tat in dem dargestellten System die Rolle eines Hochgeschwindigkeitsspeichers innehat.
Zur Speicherung von Zeilenadreß der Daten, die im Pufferspeicher 104 gespeichert sind, dient ein Adreßlistenregister 105, das üblicherweise ein Matrixfeld aus 128×36 Bits umfaßt und eine Zykluszeit von 150 Nanosekunden bei einer Zugriffszeit von 75 Nanosekunden besitzt. Die Hauptfunktion des Pufferspeichers 104 besteht in der Speicherung des Inhalts solcher Teile aus dem Hauptspeicher 101, von denen die Daten gerade von dem zentralen Prozessor CPU verarbeitet werden. Deshalb kann sich der zentrale Prozessor in der Regel den Großteil der benötigten Daten jeweils durch Zugriff auf den Pufferspeicher 104 holen bzw. dort abrufen. Wenn das Programm in seiner Operationsabfolge irgendwann einmal auf Daten überwechselt, die in einem anderen Teil des Hauptspeichers abgespeichert sind, der nicht auch gleichzeitig im Pufferspeicher "abgebildet" ist, so werden die Daten aus diesem anderen Teil des Hauptspeichers in den Pufferspeicher geladen. Die Hauptspeicher-Folgesteuereinrichtung 102 stellt die Schnittstelle zwischen dem Hauptspeicher 101 und der Puffer- speicher-Steuereinrichtung 103 dar. Diese Steuereinrichtung 103 ist zwar im Diagramm der Fig. 1 als Schaltblock zentral dargestellt, entfaltet jedoch ihre Steuerwirkung in der Art der in Fig. 8A-8E dargestellten Signal-Logikschaltkreise in Bezug auf die Datenwege 106, 107, 108 und 109 zwischen den Moduln des Hauptspeichers sowie zwischen dem Hauptspeicher 101 und der Hauptspeicher-Folgesteuereinrichtung 102, wobei diese Datenwege eine Übertragungsbreite von 8 Bytes haben, die man ggfs. jedoch auf 16 Bytes erweitern kann. Bis auf den Datenweg 113 von der Pufferspeicher-Steuereinrichtung 103 zum zentralen Prozessor CPU, der 4 Bytes breit ist, weisen die übrigen in Fig. 1 dargestellten Datenwege 110, 111, 112, 114, 115 und 116 eine Breite von 8 Bytes auf. Dabei verbinden die Datenwege 111 und 112 die Hauptspeicher-Folgesteuereinrichtung 102 mit der Eingabe/Ausgabe-Steuereinheit IOC.
Da individuelle, im Hauptspeicher 101 gespeicherte Programmroutinen, die zu einem bestimmten Zeitpunkt gerade ablaufen, in der Regel in bestimmten definierten Teilbereichen des Hauptspeichers lokalisiert sind, werden solche Bereiche für die laufende Programmabarbeitung auch in den Pufferspeicher 104 plaziert. Durch Zugriff auf die zur Informationsverarbeitung laufend benötigten Daten gleichfalls aus dem Pufferspeicher 104 läßt sich dadurch insgesamt die effektive Verarbeitungs- und die effektive Datenzugriffszeit gegenüber einer Datenverarbeitung nur mit einem Hauptspeicher beträchtlich verkürzen.
Die Eingabe/Ausgabe-Steuereinheit IOC hat keine direkte Verbindung zum Pufferspeicher 104. Sie ist über die Hauptspeicher-Folgesteuereinrichtung 102 mit Hilfe der Datenwege 111, 112 und 106 mit dem Hauptspeicher 101 verbunden. Wenn demnach im Zuge von Operationsabläufen von der Steuereinheit IOC Einspeicherungen in solche Hauptspeicherplätze vorgenommen werden, die zu dem betreffenden Zeitpunkt auch im Pufferspeicher 104 "abgebildet" sind, so ist der Inhalt des Pufferspeichers 104 insoweit freizusetzen.
In dem in Fig. 1 diagrammatisch dargestellten Speicherhierarchie-System einer EDV-Anlage sind lediglich zwei Stufen gezeigt, nämlich der Pufferspeicher 104 als die hierarchisch höhere und der Hauptspeicher 101 als die hierarchisch niedere Speicherstufe. Natürlich können weitere Speicherstufen vorgesehen werden. Die höchste Speicherstufe hat in der Regel die kürzeste Zugriffszeit und die kleinste Kapazität, während die niedrigste Speicherstufe die größte Speicherkapazität, allerdings bei der längsten Zugriffszeit aufweist. Jeder Speicher in dieser Hierarchie ist segmentiert (logisch unterteilt) in Datenblocks b n , jeweils bestehend aus 32 Bytes. Im Normalbetrieb ist der Pufferspeicher aus zwei Moduln zu je 128 Spalten gebildet, wobei jede Spalte wiederum einen vollen Informationsblock von 32 Bytes umfaßt. Der Hauptspeicher hingegen kann eine Vielzahl von Datenblocks b n von je 32 Bytes umfassen, die in der üblichen Weise in Spalten und Zeilen angeordnet sind.
In Fig. 2A ist in einem Blockdiagramm eine Struktur eines Adreßplatzes 200 gezeigt, die zur Adressierung des Pufferspeichers 104 benutzt wird. Die in Fig. 2A dargestellte Struktur stellt eine Adresse des Systems dar, die einen Adreßplatz in dem Pufferspeicher 104 bezeichnet und die die Pufferadresse mit einer Adresse in dem Hauptspeicher 101 in Verbindung bringt. Der Adreßplatz 200 besitzt in typischer Weise eine Länge von 24 Bits. Sie beginnt mit dem Bit 8, da Prioritätsbits mit der Adresse nicht in Zusammenhang stehen. Das Adreßfeld 201 besteht aus den Bits 8 bis 10, also insgesamt aus drei Bits. Das Adreßfeld 201 ist ein reservierter Adreßplatz für die Bereitstellung einer zusätzlichen Adressierungskapazität zwecks Adressierung von einem erweiterten Hauptspeicher. Ein Zeilenadreßfeld 202 besteht in typischer Weise aus den Bits 11 bis 19, also insgesamt aus neun Bits.
Demgegenüber besteht das Spaltenadreßfeld 203 in typischer Weise aus den Bits 20 bis 26, also insgesamt aus sieben Bits. Ein Doppelwortadreßfeld 204 besteht in typischer Weise aus zwei Bits, die mit 27 und 28 numeriert sind. Ein Wortadreßfeld 205 besteht in typischer Weise aus einem mit 29 bezeichneten Bit. Ein Byte-Adreßfeld 206 besteht in typischer Weise aus den Bits 30 und 31. (Die Beschreibung der Funktionen dieser Adreßfelder folgt weiter unten.)
In Fig. 2B ist eine Struktur eines Adreßplatzes 250 dargestellt, der in typischer Weise in einem Teil der Pufferspeicher-Adreßliste 105 enthalten ist. Der Adreßplatz 250 besitzt eine Länge von 36 Bits; er besteht aus einem 4-Bit-Paritätsfeld 251, einem 2-Bit-Pufferfehlerzählfeld 252, vier Gültigkeits-1-Bit-Feldern 253 bis 256, einem unteren 12-Bit-Zeilenfeld 257, einem oberen 12-Bit-Zeilenfeld 258, einem 1-Bit-Aktivitätsfeld 259 und einem 1-Bit-OK-Feld 260. Das Spaltenfeld 203 (Fig. 2A) wird dazu benutzt, die Pufferspeicher- Adreßliste 105 zu adressieren. Durch Heranziehen der Bits 27 und 28 zusammen mit dem Spaltenfeld 203 kann der Pufferspeicher 104 ebenfalls adressiert werden. Das Zeilenfeld 202 des Adreßplatzes 200 wird dazu benutzt, das untere Zeilenfeld 257 und das obere Zeilenfeld 258 zu vergleichen. Diese Zeilenfelder sind in der Pufferspeicher- Adreßliste 105 enthalten. Läuft der Vergleich erfolgreich ab, so bezeichnet man das als "Treffer", der anzeigt, daß die benötigte Information des Hauptspeichers, die in dem Zeilenfeld 202 des Adreßplatzes 200 vorhanden ist, auch in dem Pufferspeicher vorhanden ist und sich in einer Spalte des Pufferspeichers 104 befindet, die durch das Spaltenfeld 203 bestimmt ist. Das Paritätsfeld 251 wird dazu herangezogen, die Richtigkeit der in dem Adreßplatz 250 enthaltenen Information festzustellen. Ein Paritätsbit wird in den folgenden Bitfeldern gebildet: Pufferfehlerzählfeld 252, Gültigkeitsbitfelder 253, 254, 255 und 256 und OK-Feld 260. Wird ein Adreßlistenwort gelesen, so wird die Parität bezüglich dieser Bits geprüft. Bei den übrigen 24 Bits werden die drei Paritätsbits beim Lesen überprüft und regeneriert bzw. wieder eingeschrieben, wenn ein Einschreiben in die Adreßliste erfolgt. Das Pufferfehlerzählfeld 252 speichert gegebenenfalls auftretende Fehler in bezug auf einen bestimmten Pufferspeicher-Adreßlistenplatz. Die Gültigkeitsbits 253 und 252 zeigen zu dem Speicherplatz der oberen Reihe, während die Gültigkeitsbits 254 und 256 zu Speicherplätzen der unteren Reihe bzw. Zeile hinzeigen; diese Gültigkeitsbits werden dazu herangezogen, die Gültigkeit von Daten anzuzeigen, die sich in dem Speicherplatz befinden, auf den Bezug genommen worden ist. Wird zum Beispiel ein "Treffer" (das ist ein erfolgreicher Vergleich) in der Pufferspeicher-Adreßliste erzielt, so werden die Gültigkeitsbits für diesen Speicherplatz ebenfalls überprüft. Ist verknüpfungsmäßig gesehen eine "1" vorhanden, so sind die Daten in dem Pufferspeicher gültig und können verwendet werden. Ist hingegen verknüpfungsmäßig eine "0" vorhanden, so zeigt diese an, daß die Daten in dem Pufferspeicher nicht gültig bzw. kennzeichnend für die vergleichbaren Daten in dem Hauptspeicher sind, und zwar aufgrund einer möglichen Veränderung des Hauptspeicherplatzes durch die Eingabe/Ausgabe- Einheit oder aufgrund sonstiger Fehler oder aufgrund der Tatsache, daß der betreffende Speicherplatz niemals geladen worden ist. Das Aktivitätsfeld 259 zeigt die erst zuvor benutzten oberen oder unteren Zeilen in der Pufferspeicher-Adreßliste an. Das betreffende Aktivitätsfeld wird als Teil des Algorithmus benutzt, der einen Speicherplatz für das Einschreiben neuer Daten auswählt, wenn "kein Treffer" (erfolgloser Vergleich) auftritt. Das OK-Bit 260 zeigt an, daß das zugehörige Wort keine Fehler enthält. Dies bedeutet, daß das Wort gemäß der Struktur des Adreßplatzes 250 durch das Fehlerfeld nicht für ungültig erklärt worden ist. Eine verknüpfungsmäßige "1" zeigt an, daß der Fehler-Zählerwert nicht überschritten worden ist; eine "0" zeigt Fehler an.
Im folgenden sei auf die Fig. 3 und 4 Bezug genommen. Die Zentraleinheit 306 gibt eine die Bits 8 bis 29 gemäß Fig. 2A umfassende Adresse zusammen mit einem Befehl für die Ausführung einer Maßnahme durch das Pufferspeichersystem 300 ab. Die abgegebene Adresse wird in der Speicheradreßeinheit 307 gespeichert, welche Speicher-Flipflops und eine zu einer (nicht dargestellten) Verknüpfungsschaltung gehörige Decodierlogik enthält und welche Signale erzeugt, und zwar in einer auf dem vorliegenden Gebiet bekannten Weise, um generell das obere Datenmodul 304 U und das untere Datenmodul 304 L und das Puffer- Adreßlistenmodul 305 zu adressieren. (Das obere Datenmodul 304 U und das untere Datenmodul 304 L zeigen detailliert Module des Pufferspeichers 104 gemäß Fig. 1.) Die Bits 20 bis 26 gemäß Fig. 2A werden dazu benutzt, das Puffer-Adreßlistenmodul 305 zu adressieren; die Bits 20 bis 29 werden dazu benutzt, die Datenpuffermodule 304 U und 304 L zu adressieren. (Es sei hier auf die Wiederverwendung der Bits 20 bis 26 für diesen Zweck hingewiesen.) Die Bits 8 bis 19 werden in der Vergleichseinheit 308 für einen Vergleich mit der Information benutzt, die in dem Puffer-Adreßlistenmodul 305 gespeichert ist. Im folgenden sei auf Fig. 4 Bezug genommen. Die oberen und unteren Datenmodule 304 U bzw. 304 L sind weiter unterteilt, und zwar in obere und untere Reihen bzw. Bänke 401, 402 bzw. 403, 404. Das Pufferspeicher-Adreßlistenmodul 305 ist weiter in obere und untere Zeilenfelder 405 bzw. 406 aufgeteilt. Die Daten in den oberen und unteren Zeilenfeldern 405 und 406 enthalten jeweils eine Information, die in den oberen und unteren Zeilenfeldern 258 bzw. 257 des Adreßplatzes 250 angeordnet ist. Diese Daten werden jeweils in dem Vergleicher 308 mit den von der Zentraleinheit 306 abgegebenen Daten verglichen, die in dem Zeilenadreßfeld 202 des Adreßplatzes 200 enthalten sind. Führt der Vergleich zu einem "Treffer", liegt also ein erfolgreicher Vergleich vor, so kann es sich dabei um einen oberen Treffer oder um einen unteren Treffer handeln, wodurch angezeigt wird, daß der erfolgreiche Vergleich mit der oberen Zeile 405 oder der unteren Zeile 406 des Puffer-Adreßlistenmoduls 305 durchgeführt worden ist und daß die gewünschte Information sich in dem Pufferspeicher des oberen Datenmoduls oder des unteren Datenmoduls befindet. In welchem Datenmodul sich die betreffende Information befindet, hängt davon ab, in welcher Zeile bzw. Reihe (obere oder untere) der Puffer-Adreßliste der "Treffer" aufgetreten ist. (Es sei darauf hingewiesen, daß ein Treffer in der oberen Zeile oder der unteren Zeile der Pufferspeicher-Adreßliste anzeigt, daß die Information entweder in dem oberen Modul 304 U oder in dem unteren Modul 304 L vorhanden ist; es wird jedoch nicht die Zeile bzw. Reihe - das heißt die obere Bank oder die untere Bank - innerhalb des oberen oder unteren Moduls angezeigt.) Wenn ein Treffer auftritt, kann ein acht Daten-Bytes umfassendes Wort aus irgendeiner der Datenmodulbänke in die Auswahleinrichtung 309 gelesen werden. Wie bereits weiter vorn erwähnt, gelangen die Daten von der Zentraleinheit zu dem Pufferspeicher über einen Acht-Byte-Weg, der generell für Einschreiboperationen in den Pufferspeicher benutzt wird, und die Daten von dem Pufferspeicher zu der Zentraleinheit über einen Datenweg, der nur eine Breite von vier Bytes besitzt und der dann benutzt wird, wenn eine Information aus dem Pufferspeicher ausgelesen und an die Zentraleinheit übertragen wird. Es sei im Hinblick auf Fig. 4 ferner bemerkt, daß das obere Modul 304 U und das untere Modul 304 L ferner jeweils in 128 Spalten organisiert sind, deren jede einen Informationsblock, das sind 32 Bytes, festzuhalten im Stande ist. Der obere Modul 304 U und der untere Modul 304 L sind ferner jeweils in obere bzw. untere Bänke 401, 402, 403 bzw. 404 unterteilt (das sind Reihen bzw. Zeilen des oberen oder unteren Moduls), wobei jede Bank dieselben 128 Spalten enthält wie die Datenmodule 304 U und 304 L. Jede Spalte der jeweiligen Bank enthält jedoch zwei Worte, das sind sechzehn Bytes. Somit enthält jede Bank (das heißt eine Zeile des jeweiligen Pufferspeichermoduls) 2048 Bytes, wobei jedes Datenmodul 4096 Bytes enthält und wobei der gesamte Pufferspeicher 108 insgesamt 8192 Bytes enthält.
Es sei nunmehr zum Beispiel angenommen, daß ein Treffer in der Adreßliste 305 bezüglich des Wortes 511 in der oberen Bank 304 U auftritt und daß die Zentraleinheit eine Leseoperation angefordert hat, das heißt vier Bytes wünscht, die gerade in dem adressierten Speicherplatz vorhanden sind. Ferner sei angenommen, daß die Zentraleinheit die ersten vier Bytes des Wortes 511 wünscht, das in der oberen Bank 401 des oberen Datenmoduls 304 U enthalten ist. (In dem Fall, daß insgesamt acht Bytes benötigt würden, wie dies bei Schreiboperationen der Fall ist, würden die Bits 27, 28 benutzt werden und somit das gesamte obere Modul 304 U adressieren.) Bei diesem Beispiel ist das Adreßbit 29 gemäß Fig. 2A nicht gesetzt. Dies bedeutet, daß das betreffende Bit durch eine "0" dargestellt ist. Somit stellt ein mit niedrigem Pegel auftretendes Signal das Adreßbit 29 dar, und das UND-Glied 407 gibt ein Freigabesignal an einen Anschluß des UND-Gliedes 407 und ein Sperrsignal an einen Anschluß des UND-Gliedes 408 ab. Bei ausgewählten oberen Bänken des oberen bzw. unteren Moduls 304 U bzw. 304 L und bei nicht gesetztem Adreßbit 29 und damit erfolgender Bezugnahme auf vier Bytes in derselben Spalte zweier verschiedener Module, das sind die Worte 511 und 512, ergibt sich gewissermaßen ein Konflikt, da zu diesem Zeitpunkt keine Kenntnis darüber vorhanden ist, ob vier Bytes von der oberen Bank des oberen Moduls oder des unteren Moduls zu liefern sind. Der Konflikt wird durch das UND-Glied 410 und das UND-Glied 411 aufgelöst, und zwar durch dasjenige UND- Glied, dem ein Freigabesignal zugeführt ist. Welches der beiden UND-Glieder ein Freigabesignal führt, hängt davon ab, welches Modul - nämlich das obere oder das untere Modul - von dem Treffer in der Adreßliste 305 betroffen ist. In diesem Fall sei das UND-Glied 410 freigegeben, da der Treffer auf das obere Modul bezogen ist. Damit werden die ersten vier Bytes des Wortes 511 ausgewählt. Es sei darauf hingewiesen, daß die Verknüpfungsschaltung 490 die obere Bankauswahlschaltung des oberen Moduls 304 U und des unteren Moduls 304 L ist, und daß die Verknüpfungsschaltung 491, von der lediglich ein Teil dargestellt ist, da sie der Verknüpfungsschaltung 490 ähnlich ist bzw. dieser entspricht, die untere Bankauswahlschaltung für das obere Modul 304 U und das untere Modul 304 L ist. Die nächsten vier Bytes werden dadurch ausgewählt, daß von der Zentraleinheit eine neue Operation angezeigt wird, gemäß der die Adresse dieselbe ist; hiervon ausgenommen ist jedoch das Adreßbit 29, welches das eine Komplement seines Zustandes während der vorhergehenden Operation wiedergibt. Besteht die Forderung nach einer Schreiboperation, so ist ein Acht-Byte-Wort erforderlich, und dieses Wort wird durch eine nachstehend noch zu beschreibende Schaltung ausgewählt, indem die Bits 27 und 28 des Doppelwortfeldes 204 verwendet werden.
Tritt kein Trefferzustand auf, so sind die von der Zentraleinheit benötigten Daten nicht in dem Pufferspeicher enthalten; sie müssen vielmehr aus dem Hauptspeicher 301 abgerufen werden. Da der Hauptspeicher 301 aus vier Modulen 301 A bis 301 D besteht und da ein Informationsblock normalerweise vierfach verschachtelt ist mit acht Bytes in jedem der Hauptspeichermodule, muß ein Zugriff zu jedem dieser Module erfolgen, um einen Informationsblock wieder aufzufinden bzw. zu ermitteln. Während des ersten Zugriffs werden von einem der Hauptspeichermodule 301 A bis 301 D acht Daten-Bytes erhalten und in den Pufferspeicher unter einer Adresse geladen, die von der Zentraleinheit über den Moduladreßschalter 315 ausge­ wählt worden ist. Ferner werden vier Daten-Bytes an die Zentraleinheit abgegeben, und zwar über die Moduladreßschalter 315 (für Schreiboperationen) bzw. 311 (für Leseoperationen). Die Adresse wird dann erhöht, und ferner erfolgt eine weitere Hauptspeicheranforderung. Außerdem werden weitere Acht-Daten-Bytes in den Pufferspeicher geladen; vier weitere Bytes werden jedoch nicht an die Zentraleinheit abgegeben, wie dies im vorhergehenden Zyklus der Fall war. Dieser Vorgang wird zwei weitere Male wiederholt (insgesamt sind es vier Zugriffe), bis ein Informationsblock in den Pufferspeicher eingeschrieben worden und ein Informationswort (1/8-Block) an die Zentraleinheit abgegeben worden ist. Um die übrige Information zu erhalten, setzt die Zentraleinheit die Adressierung des Pufferspeichers fort. Da jedoch ein vollständiger Informationsblock an den Pufferspeicher abgegeben worden ist, tritt ein "Treffer" auf, und die Information wird dann aus dem Pufferspeicher abgegeben, ohne daß ein weiterer Zugriff zu dem Hauptspeicher 301 erfolgt (hierbei sei angenommen, daß der betreffende Speicher durch die Eingabe/Ausgabe-Einrichtung bzw. -Steuereinrichtung geleert worden ist). Die Zentraleinheit bewirkt eine Adressierung der Pufferspeicher- Adreßliste 305 über die Eingabe/Ausgabe-Adressierungs- und Steuereinheit 312 sowie den 2×1-Schalter 310. Der 2×1-Schalter 310 ermöglicht die Benutzung von zwei Adreß, und zwar einer Adresse für den Hauptspeicher 301 und der anderen Adresse für die Pufferspeicher-Adreßliste 305, wobei lediglich eine Adresse an die Pufferspeicher-Adreßliste des Hauptspeichers gerichtet ist.
Zurückkommend auf Fig. 3 sei bemerkt, daß die Zentraleinheit 306 das Pufferspeicher-Adreßlistenmodul 305 über die Speicheradreßeinheit 307 adressiert. Die Speicheradreßeinheit 307 wird ferner dazu herangezogen, die Adreßsteuereinheit 350 und den 2×1-Schalter 310 für die Gruppenadressierung zu adressieren. Wenn die Zentraleinheit anordnet, daß Daten in den Pufferspeicher oder in die Hauptspeichermodule einzuschreiben sind, dann wird der Moduladreß-Schreibschalter 315 dazu benutzt, die richtige Einheit auszuwählen. Die Zentraleinheit 306 kann Daten entweder von dem Pufferspeicher mit den Datenmodulen 304 U, 304 L oder von dem Hauptspeicher 301 wünschen, wobei die Auswahl durch einen Moduladreß-Leseschalter 311 bewirkt wird. Zuweilen ist es erforderlich, daß die Eingabe/Ausgabe-Steuereinheit 307 die Puffer­ speicher-Eingabe/Ausgabe-Adreßsteuereinheit 312 adressiert. Dies wird durch einen 2×1-Schalter 310 bewirkt, der festlegt, ob die Zentraleinheit 306 oder die Eingabe/Ausgabe-Steuereinrichtung 307 das Pufferspeicher-Adreßlistenmodul einzustellen vermag. Existiert ein Konflikt über die Priorität, so wird dieser über die Prioritäts- bzw. Vorrang-Auflöseeinheit 351 in Zusammenwirkung mit der Puffersteuereinheit 303 gelöst.
Das generell mit 360 A bezeichnete Schaltaggregat zur Folgesteuerung des Hauptspeichers ist an anderer Stelle näher beschrieben; es ist hier der Vollständigkeit halber und zur Veranschaulichung des Umgebungsbereichs der Erfindung dargestellt. Mit Hilfe einer Hauptspeicher-Folgesteuereinrichtung 352 wird bestimmt, ob der Hauptspeicher belegt ist oder nicht, und ferner wird diese Steuereinrichtung dazu herangezogen, ein Signal zu speichern und abzuleiten, welches die Forderung nach dem Hauptspeicher quittiert, sowie eine Information bezüglich des gegenwärtigen Zustands des Hauptspeichers bereitzustellen. Die betreffende Steuereinrichtung 352 ist in typischer Weise außerdem über verschiedene Schaltstufen mit der Prioritäts-Auflöseeinheit 351, der Adreßsteuereinheit 350 und dem Moduladreß-Leseschalter 311 verbunden. Die Rekonfigurationseinheit 353 nimmt Signale von der Zentraleinheit auf; in Übereinstimmung mit der Forderung der betreffenden Signale bewirkt die betreffende Einheit 353 eine Einstellung des Hauptspeichers 301 in verschiedene Betriebsarten, und zwar über den Betriebsmodusschalter 354. Die Adreßsteuereinheit 350 steht unter dem Einfluß der Haupt­ speicher-Folgesteuereinrichtung 352; sie wird dazu benutzt die Eingabe/Ausgabe-, Zentraleinheits- oder Pufferspeicheradreß zu dem Hauptspeicher 301 hin zu leiten. Die genannten Schalteinheiten 350, 353, 354 dienen gesamthaft betrachtet der Gruppenadressierung unter bestimmten Betriebszuständen.
Im folgenden sei auf Fig. 5 Bezug genommen, in der eine zweite Betriebsart des Pufferspeichersystems 300 veranschaulicht ist. Wenn ein Anwender eine gewisse Geschwindigkeit und Kapazität opfern kann, um gewisse wirtschaftliche Vorteile zu realisieren, wird zuweilen der als 128×2×16-Modus bezeichnete Betrieb angewandt. Bei dieser Betriebsart ist die halbe Pufferspeichergröße in bezug auf den zuvor beschriebenen Normalbetrieb vorhanden. Zum Zwecke eines leichten Verständnisses ist die Fig. 5 in ähnlicher Weise angeordnet wie die Fig. 4. Es sei jedoch darauf hingewiesen, daß in dem oberen Modul 504 U und in dem unteren Modul 504 L keine unteren Bänke bzw. Felder vorhanden sind. Somit sind 2048 Bytes in dem oberen Feld 501 und 2048 Bytes in dem oberen Feld 503 vorhanden, was insgesamt zu 4096 Bytes für den Pufferspeicher 104 führt. Der Einfachheit halber ist die Terminologie bezüglich der Puffer­ speicher-Adreßliste 505 D ähnlich der Terminologie bezüglich der Pufferspeicher-Adreßliste 305 gemäß Fig. 4 belassen worden, da in beiden Fällen eine Bezugnahme gemäß den Feldern 257 und 258 des Adreßplatzes 250 erfolgt, der in der Pufferspeicher-Adreßliste enthalten ist, anstelle einer Bezugnahme auf den Pufferspeicher 104. Die Information in der oberen Reihe bzw. Zeile 505 und der unteren Reihe bzw. Zeile 506 der Pufferspeicher-Adreßliste 505 D bewirkt jedoch eine Bezugnahme auf den Pufferspeicher 104; diese Information wird in der zuvor beschriebenen Weise benutzt. Aus einer weiteren Überprüfung der oberen Bänke bzw. Reihen 504 U bzw. 504 L dürfte ersichtlich sein, daß in beiden oberen Bänken 128 Spalten vorhanden sind, daß jedoch jede Spalte nunmehr nur die Hälfte eines Blocks oder sechzehn Bytes zu speichern im Stande ist, da die besetzten Felder 502 und 504 nicht benutzt werden. Die Operation bei dieser Betriebsart ist der des zuvor beschriebenen Normalbetriebs ähnlich. Es sind jedoch lediglich zwei Zugriffe vorhanden und zwar entweder zu dem oberen Modul oder zu dem unteren Modul, da lediglich ein halber Informationsblock gelesen oder vorrätig in irgendeine Spalte irgendeines Moduls eingeschrieben zu werden braucht. Die Wortauswahlschaltung 590 gemäß Fig. 5 ist ebenfalls von der Wortauswahlschaltung 490 und 491 gemäß Fig. 4 verschieden, da lediglich die Hälfte der Schaltung benötigt wird, um die obere Bank, auf die Bezug genommen ist, in dem oberen Modul oder dem unteren Modul auszuwählen. Der Betriebsmodus der Schaltungsanordnung nach Fig. 5 wird vor Inbetriebnahme festgelegt; er bringt höhere Geschwindigkeiten mit sich, da ein Zugriff zu lediglich sechzehn Bytes in irgendeiner Spalte erforderlich ist, wodurch die halbe Anzahl an Zugriffen von dem Pufferspeicher benötigt wird.
Die in Fig. 6 veranschaulichte Betriebsart ist als 256×2×16- Modus bekannt. Im Hinblick auf Fig. 6 sei bemerkt, daß das obere Modul 604 U und das untere Modul 604 L jeweils in 256 Spalten geordnet sind, deren jede im Stande ist, ein Acht- Byte-Wort zu speichern. Mit anderen Worten ausgedrückt heißt dies, daß jede Bank 601, 602 des oberen Moduls 604 U eine Kapazität von 2048 Bytes besitzt, wobei jede Bank eine Breite von 128 Spalten besitzt. Die beiden Bänke sind zwar in vertikaler Beziehung zueinander dargestellt, um eine leichtere Bezugnahme auf die anderen Betriebsarten zu ermöglichen; tatsächlich sind die betreffenden Bänke jedoch besser durch eine fortlaufende Anordnung von Spalte 1 bis Spalte 256 beschrieben, wobei Acht-Byte-Worte 1 und 2 in der Spalte 1 und Acht-Byte-Worte 1023 und 1024 in der Spalte 256 vorhanden sind. Das untere Modul 604 L kann in entsprechender Weise beschrieben werden. Die Adreßliste 605 D nutzt bei dieser Betriebsart den gesamten Speicherplatz aus, der ihr zugeteilt ist, während bei den vorhergehenden Betriebsarten zu erkennen war, daß lediglich die Hälfte des der Adreßliste zugeteilten Speicherplatzes ausgenutzt wurde. Die übrigen Elemente wie die Verknüpfungsauswahlschaltungen 690 und 691, entsprechen den in Fig. 4 dargestellten Elementen. Liegt bei dieser Betriebsart des Bezugnehmens bzw. Ansteuerns einer in Frage kommenden Spalte 1 bis 256 ein Trefferzustand vor, so werden vier Daten-Bytes, zu denen Zugriff erhalten wird, zu der Zentraleinheit im Lesebetrieb abgegeben. Tritt kein Trefferzustand auf, so erfolgt ein Zugriff zu dem Hauptspeicher lediglich zweimal, wobei jedes Mal acht Daten-Bytes in den Pufferspeicher geladen werden. Dabei werden vier Bytes an die Zentraleinheit während des ersten Hauptspeicherzugriffs abgegeben. Obwohl diese Betriebsart, im sog. 256×2×16-Modus, selbst die Vorteile des 128×2×16-Betriebs mit sich bringt und den Nachteil hinsichtlich der Kapazität vermeidet, ist es dennoch zuweilen erwünscht, über die Fähigkeit des Ladens oder Abgebens eines vollständigen Blockes oder eines halben Blockes von irgendeiner bezeichneten Spalte verfügen zu können, und zwar in Abhängigkeit von den Forderungen seitens des Programmierers. Die in Fig. 7 veranschaulichte Betriebsart im sog. 128×2×32/16 Modus kann in dieser Weise ausgeführt werden.
Im folgenden sei auf Fig. 7 Bezug genommen. Das obere Modul 704 U weist eine obere Bank 701 und eine untere Bank 702 auf. Jede dieser Bänke ist hinsichtlich ihrer Kapazität noch weiter unterteilt, und zwar derart, daß die obere Bank in zwei Hälften unterteilt ist, deren jede die Hälfte Kapazität der gesamten Bank besitzt. Diese Unterteilung ist in sämtlichen Bänken sämtlicher Module vorgenommen. Die übrigen Elemente der Anordnung gemäß Fig. 7, nämlich die Auswahlschaltungsanordnung 790 und 791 und die Adreßliste 705 D, entsprechen den Anordnungen beim Normalbetrieb der Anordnung gemäß Fig. 4. Demgemäß besitzt die Mikroprogrammiereinrichtung die Betriebsarten gemäß Fig. 4, 6 und 7, um entsprechend den Forderungen, die das Mikroprogramm festlegt, Steuerungen, bzw. Manipulationen vornehmen zu können. Die Betriebsart gemäß Fig. 5 ist, wie zuvor erwähnt, bereits vor Inbetriebnahme festgelegt bzw. bestimmt. Es sei jedoch bemerkt, daß von dieser Be­ triebsart auch auf die Betriebsarten gemäß Fig. 4, 6 und 7 übergegangen werden kann, indem die erforderlichen zusätzlichen unteren Bänke und die hierfür benötigte Auswahlschaltungsanordnung mit einbezogen werden.
Im folgenden sei auf Fig. 10 Bezug genommen, in der anhand eines symbolischen Schaltungsdiagramms, das mit der Erfindung unmittelbar nichts zu tun hat, die hier benutzten Übereinkünfte veranschaulicht werden, insbesondere in bezug auf die in Fig. 8A bis 8E dargestellten Signale und Symbole. Zur Vereinfachung der Vielzahl von komplizierten Verknüpfungsschaltungen, die beim Aufbau eines speziellen Rechners erforderlich sind, und zur Automatisierung der Herstellung und des Lesens derartiger Schaltpläne sind, nachdem der Schaltungsentwurf einmal gebilligt worden ist, sogenannte PLEXEDIT- Listen von Verknüpfungsfunktionen (das sind Listen von Verknüpfungssignalen) verwendet worden. Aus derartigen PLEXEDIT-Listen können detaillierte Verknüpfungsblockschaltbilder, wie sie in Fig. 8A bis 8E gezeigt sind, hergestellt werden. Es kann aber auch so vorgegangen werden, daß nach Entwurf von Verknüpfungsblockschaltbildern sogenannte PLEXEDIT-Listen hergestellt werden können. Das Verfahren des Lesens von PLEXEDIT-Listen und der Ausnutzung derartiger Listen ist im dritten Teil des Buches "Computer Fundamentals", veröffentlicht 1969, Honeywell Inc., beschrieben worden. Die Fig. 10 stellt nicht irgendeine spezielle Schaltungsanordnung der Erfindung dar, sondern lediglich eine Beschreibung einer Schaltung, wobei die benutzten Übereinkünfte dem auf dem vorliegenden Gebiet tätigen Fachmann in den Stand versetzen, die Fig. 8A bis 8E zu lesen und die Erfindung auszuführen.
Einem Eingangsanschluß 1000 wird ein Signal BXXXXXX zugeführt. Dem betreffenden Signal ist die Bezeichnung BXXXXXX gegeben worden, um anzudeuten, daß B und 1 oder X irgendein Buchstabe oder irgendeine Zahl sein können. Im allgemeinen bezeichnen die ersten beiden Zeichen, in diesem Fall BX, einen Haupt- und einen Neben-Verknüpfungsbereich oder einen Hauptverknüpfungsbereich und eine Verknüpfungsfunktion. Bei diesem Beispiel bezeichnet B den Hauptverknüpfungsbereich, der zu dem Pufferspeicher gehört. Das dritte, vierte und fünfte X-Zeichen sind reserviert, um die Funktion zu bezeichnen (das ist das Verknüpfungssignal). Dieser Funktionsname kann in Übereinstimmung mit den Forderungen seitens des Entwurfs geändert werden. Der Bereich vom nächsten Zeichen bis zum letzten Zeichen, das ist bei dem speziellen Beispiel die sechste Stelle, liefert die Information bezüglich des Signalzustands, das heißt eine Information darüber, ob eine Feststellung oder eine Negation vorliegt oder nicht. Wenn zum Beispiel das Signal BXXXXXX durch das UND-Glied 1001 und durch den Verstärker 1002 hindurchgelangt, liegt eine erste Feststellung vor. Diese erste Feststellung wird durch den Zeichenbereich, umfassend das nächste bis letzte Zeichen, angezeigt. Dieser Bereich ist in diesem Fall eine "1" (Feststellungen werden durch eine ungerade Zahl von Zeichen vom nächsten bis letzten Zeichen angezeigt, und Negationen werden durch eine gerade Anzahl von Zeichen vom nächsten bis zum letzten Zeichen angezeigt). Gelangt das Signal BXXXXXX durch das UND-Glied 1003 und durch einen weiteren Verstärker 1004, so liegt eine zweite Feststellung vor, die von dem nächsten bis letzten Zeichen angezeigt wird, das ist hier eine "3". Wenn das Signal weitergeleitet wird, teilt es sich zunächst auf, und zwar zum einen über das UND-Glied 1005 und sodann durch den Verstärker 1006, wodurch eine weitere Feststellung vorliegt, die durch die Zahl 5 in dem Signal BXXXX50 angezeigt wird. Dieses Signal zeigt an, daß dies die dritte Feststellung des Signals ist. Vom Ausgang des Verstärkers 1004 teilt sich das Signal ferner auf und gelangt durch das UND-Glied 1009 und sodann durch den Verstärker 1010, der ebenfalls die dritte Feststellung liefert, welche nunmehr jedoch auf einem zweiten Pegel der Schaltung auftritt. Dieser Pegel ist in diesem Fall eine "1". Wäre ein dritter Pegel vorhanden, so wäre das letzte Zeichen eine "2", und so weiter. Nunmehr wird das ursprüngliche Signal BXXXXXX, welches dem Eingangsanschluß 1000 zugeführt wird, auch dem UND-Glied 1011 und dem Inverter 1012 zugeführt. Dies führt zur Lieferung einer ersten Inversion des Signals, wozu dieser Name benutzt wird und dem Signal folgendes Aussehen gegeben ist: BXXXX00; der Bereich des nächsten bis letzten Zeichens ist hier eine "0", die das Vorliegen einer ersten Negation anzeigt. Wenn das Signal weiter durch das UND- Glied 1013 und den Inverter 1014 hindurchgelangt, tritt eine zweite Negation auf, welche dadurch angezeigt wird, daß das zweite bis letzte Zeichen eine "2" ist, wodurch das Signal die Bezeichnung BXXXX20 erhält.
Bei der Schaltungsanordnung gemäß Fig. 10 sind einige weitere Übereinkünfte getroffen und hier benutzt. Ein ausgefüllter Kreis, wie der Kreis 1018, stellt eine interne Quelle dar, während ein Quadrat, wie das Quadrat 1019, einen Ausgangsanschluß- Stift darstellt. Ein kleiner Kreis, wie der Kreis 1000, zeigt einen Eingangsanschluß-Stift an (eine Ausnahme hiervon liegt am Ende eines Verstärkers vor; in diesem Fall wird eine Erfindung angedeutet). Ein Quadrat 1020, das in der aus Fig. 10 ersichtlichen Weise geschaltet ist, deutet ein Flipflop mit Ausgangsanschlüssen 1021 und 1022 an. An diesen Ausgangsanschlüssen wird der Zustand des Flipflops angezeigt, und zwar in Abhängigkeit davon, welcher der beiden Ausgangsanschlüsse einen hohen Signalpegel führt. Das UND-Glied 1015 weist zwei Eingangsanschlüsse auf, während die übrigen dargestellten UND- Glieder einen Eingangsanschluß aufweisen. (Im allgemeinen weisen UND-Glieder mehr als einen Eingangsanschluß auf; die Einzel-Eingangs-UND-Glieder werden hier jedoch dazu benutzt, anzuzeigen, daß das Signal in entsprechender Weise einem Doppel-Eingangs-UND-Glied zugeführt wird).
Nach dieser aus Verständnisgründen gegebenen Darstellung der in dieser Beschreibung verwendeten Konventionen wird nachfolgend unter Bezug auf Fig. 8E beispielhaft ein nur in den wichtigsten Teilen dargestelltes logisches Blockdiagramm zur dynamischen Auswahl der Betriebsart unter der Steuerung durch Programmablauf gezeigt. (Entsprechende Verknüpfungsblockschaltbilder können für die Auswahl jedes gewünschten Betriebsmodus dargestellt werden). In Fig. 8A ist insbesondere eine Speicherschaltung 812 E gezeigt, die aus einem Modul des Pufferspeichers besteht. UND-Glieder 801 E und 802 E sind oder­ mäßig zusammengefaßt an dem Eingangsanschluß eines Verstärkers 803 E angeschlossen, dessen Ausgangsanschluß mit der Speicherschaltung 812 E verbunden ist. Dieser Teil der Eingangsschaltung der Speicherschaltung 812 E verwendet die Bits 22 bis 26 (siehe Fig. 2A), um die in Frage kommende Spalte der Speicherschaltung 812 E zu adressieren. Die in Frage kommende Adresse, die als die Eingangsbits (22-26) enthaltend dargestellt ist, wird den UND-Gliedern 801 E und 802 E zugeführt. Ob die Speicherschaltung 812 E von der Zentraleinheit oder der Eingabe/Ausgabe-Einheit her adressiert wird, wird durch die Eingangssignale CPAGAT und I/O AGAT bestimmt. Diese Eingangssignale können den UND-Gliedern 801 E bzw. 802 E zugeführt werden. Tritt das CPAGAT-Signal mit hohem Pegel auf und liegt die in Frage kommende Adresse an dem UND-Glied 801 E an, so zeigt dieses an, daß die Zentraleinheit die Adressierung des Speichermoduls 812 E bewirkt. Tritt in entsprechender Weise das Signal I/O AGAT mit hohem Pegel auf und liegt die in Frage kommende Adresse an dem UND-Glied 802 E an, so zeigt dieses an, daß die Eingabe/Ausgabe-Einheit das Speichermodul 812 E adressiert. Konflikte zwischen der Zentraleinheit und der Eingabe/Ausgabe-Einheit werden durch die Prioritäts- bzw. Vorrang-Auflöseeinheit 351 gemäß Fig. 3 aufgelöst (was an anderer Stelle beschrieben wird).
Sobald die in Frage kommende Spalte ausgewählt ist, ist, wie dies in Verbindung mit Fig. 4, 5, 6 und 7 zuvor gezeigt worden ist, angezeigt, ob das Wort in der oberen oder unteren Bank enthalten ist. Wieviele Bytes abgegeben oder aus dem Pufferspeicher abgezogen werden, hängt außerdem von der zuvor beschriebenen Betriebsart ab. In Fig. 8E ist gezeigt, wie diese Betriebswahl erfolgen kann. Ist z. B. die 128×2×32-Betriebsart erwünscht, in der ein 32-Byte-Signal zu laden oder aus dem Pufferspeicher herauszuführen ist, so ist ein als B823210 bezeichnetes Funktionssignal mit hohem Pegel vorhanden. Wenn die übrigen in Frage kommenden Signale ebenfalls mit hohem Pegel bei demselben UND-Glied auftreten, handelt es sich bei der Betriebsart um den 128×2×32-Modus. Wenn es erwünscht ist, im 128×2×16-Modus zu arbeiten, muß ein Signal, welches durch die Bezeichnung B821610 gegeben ist, mit hohem Pegel auftreten (siehe Tabelle). Im Hinblick auf Fig. 8E sei bemerkt, daß die UND-Glieder 804 E und 806 E das Zentraleinheits- bzw. Ein­ gabe/Ausgabe-Steuereinrichtungs-Adressierungsgatter für die 128×2×32-Betriebsarten sind. Dies bedeutet, daß dann, wenn das Verknüpfungssignal B823210 (das ist das 128×2×32-Modussignal) mit hohem Pegel auftritt und wenn die Signale CPAGAT und CPA20 (das Bit 20 in Fig. 2A) ebenfalls mit hohem Pegel auftreten, das UND-Glied 804 E freigegeben bzw. übertragungsfähig ist und daß die Zentraleinheit einen Zugriff zu dem Pufferspeicher für ein einzelnes 16-Byte-Wort erhält. (Es sei unter Bezugnahme auf Fig. 2A darauf hingewiesen, daß das Bit 27 in dem Block 204 ein Doppelwort (32 Bytes) bezeichnet, während das Bit 20 in dem Block 203 ein Einzelwort (4 Bytes) bezeichnet. Wenn demgegenüber die Eingangssignale des UND-Gliedes 806 E alle mit hohem Pegel auftreten, das sind die Signale I/O AGT, (Eingabe/Ausgabe-Freigabesignal I/O 20 (Bit 20) und wenn das Signal B823210 (128×2×32-Betrieb) ebenfalls mit hohem Pegel auftritt, dann ist das UND-Glied 806 E übertragungsfähig, und die Eingabe/Ausgabe-Steuereinheit erhält Zugriff zu dem Pufferspeicher, und zwar unter der zuvor adressierten (und oben beschriebenen) in Frage kommenden Adresse für ein Einzelwort. Durch Heranziehen dieser Untersuchung können ferner die übrigen Betriebsarten bestimmt werden, da die physikalischen und logischen Verknüpfungsschaltungen bezüglich des unteren Pufferspeichermoduls in ähnlicher Weise darstellbar sind.
Nunmehr sei auf die Fig. 8A bis 8D sowie auf die Tabelle (weiter unten) Bezug genommen, in welchen Verknüpfungsblockschaltbilder für eine Markierungs- bzw. Ausblendsteuerung der Signal-Funktions-Definitionen gezeigt sind, welche das Einschreiben von Daten in die in Frage kommende Zeile bzw. Reihe (das heißt die obere oder untere Bank bzw. Reihe) des betreffenden Pufferspeichermoduls (das ist der obere oder untere Pufferspeicher) steuert.
Es sei darauf hingewiesen, daß die Tabelle der Signal-Funktions-Definitionen sich auf die verschiedenen Teile des Pufferspeichers und deren Organisation beziehen, und zwar in codierten Zahlen und/oder Buchstaben. Der Code wird unter Bezugnahme auf Fig. 4 erläutert. Gemäß Fig. 4 ist das obere Modul 304 U des Pufferspeichers 104 das Puffermodul 1, während das untere Modul 304 L das Puffermodul 2 ist. Die oberen Bänke des Puffermoduls 304 U sind die Reihe bzw. Zeile 1 oder die obere Reihe, während die untere Bank des Puffermoduls 304 U die Reihe 2 oder die untere Reihe bzw. Zeile ist. In entsprechender Weise ist die obere Bank des Moduls 304 U die Reihe 1 oder die obere Reihe, und die untere Bank ist die Reihe 2 oder die untere Reihe. In einer vorgegebenen Reihe oder Zeile einer vorgegebenen Spalte eines vorgegebenen Moduls werden sechzehn Bytes gespeichert. Somit zeigt ein Treffer 1 an, daß eine Übereinstimmung mit einem 32-Byte-Wort erzielt worden ist, welches in dem Puffermodul 304 U gespeichert war. Demgegenüber zeigt ein sogenannter oberer Treffer 1 an, daß eine Übereinstimmung mit einem Sechzehn-Byte-Wort aufgetreten ist, welches in der oberen Bank (obere Reihe) des oberen Moduls 304 U (Modul 1) gespeichert war.
Zuvor ist gezeigt worden, daß Daten in dem Pufferspeicher in verschiedenen Betriebsarten gespeichert werden. Eine Betriebsart ist 128×2×32, gemäß 128 Spalten jeweils einen Datenblock (32 Bytes) enthalten. Dabei sind zwei Pufferspeichermodule vorhanden, die jeweils 128 Spalten aufweisen. Da jeweils sechzehn Bytes der jeweiligen Spalte eine Reihe bilden, sind in einem vollständigen Block von 32 Bytes zwei Reihen in einer gegebenen Spalte vorhanden. Es ist zuvor gezeigt worden, wie ein Zugriff zu einer Spalte und zu irgendeinem Sechzehn-Bytes- oder Zweiunddreißig-Bytes-Wort bei irgendeiner Betriebsart der verschiedenen Betriebsarten erfolgt. Es ist ferner gezeigt worden, daß Schreibkanäle eine maximale Breite zum Schreiben eines Acht-Byte-Wortes enthalten. Es ist häufig erforderlich, lediglich einen Teil eines Wortes zu schreiben, das eine Breite von einem Byte oder eine Breite zwischen zwei Bytes bis acht Bytes besitzt. Zu diesem Zweck ist es erforderlich, Ausblendfelder 0 bis 7 zu entwickeln bzw. bereitzustellen, um unerwünschte Felder auszublenden, damit lediglich Teile von Wörtern geschrieben oder gelesen werden.
In diesem Zusammenhang sei Bezug genommen auf diejenigen Teile der Fig. 8A, 8B und 8C, die innerhalb der Strichpunktlinien liegen und die mit d bezeichnet sind. In den betreffenden Figuren sind Verknüpfungsblockschaltbilder gezeigt für die Entwicklung der Anfangsbedingungen zwecks Ersetzens der Reihe bzw. Zeile 1 im Puffer 1.
Die Verknüpfungsschaltung zur Lieferung des Signals B1WES10 ist in Fig. 8C gezeigt und durch eine Strichpunktlinie umrahmt; sie enthält die UND-Glieder 892 C bis 898 C sowie 8010 C bis 8013 C und den Verstärker 899 C; die Verknüpfungsschaltung zur Erzeugung des Signals B2WES10 ist in Fig. 8A gezeigt; sie enthält die UND-Glieder 801 A bis 806 und 808 bis 8012 A und einen Verstärker 807 A. Die Verknüpfungsschaltung zur Erzeugung der Signale B1WM000 bis B1WM700 und B2WM000 bis B2WM700, also zur Erzeugung von insgesamt sechzehn Signalen, ist in Fig. 8A und in Fig. 8B in dem mit α bezeichneten Schaltungsteil dargestellt; sie enthält unter anderem das UND-Glied 830 B und den Verstärker 827 B. Die Verknüpfungsschaltung für die Erzeugung der Signale BSV1L10 bis BSV1U10 und der Signale BSV2L10 bis BSV2U10 ist jeder der übrigen Schaltungen ähnlich und in Fig. 8B als innerhalb der Strichpunktlinien im Bereich β liegend dargestellt, und zwar beginnend mit dem UND-Glied 831 B bis hinab zu dem UND-Glied 863 B und sämtlicher zugehöriger Verstärker. In entsprechender Weise ist auch die Verknüpfungs­ schaltung für die Erzeugung der Signale B1VLS10 bis B1VUS00 in Fig. 8B dargestellt, und zwar ebenfalls einschließlich sämtlicher UND-Glieder und Verstärker, beginnend von dem UND-Glied 863 B bis zu dem UND-Glied 882 B. Die Signale B2VLS bis B2VUS können mit einer entsprechenden Verknüpfungsschaltung erzeugt werden. Die Verknüpfungsschaltung für die Erzeugung der Signale BV1LW00 bis BV2LW00 und der Signale BV1UW00 bis BV2UW00 ist in physikalischer und funktioneller Hinsicht jeder der übrigen Schaltungen ähnlich; sie ist in Fig. 8B als diejenige Schaltung dargestellt, die UND-Glieder und Verstärker enthält, und zwar von dem UND-Glied 883 B beginnend und zu dem UND-Glied 897 B hin laufend. In Fig. 8C sind Verknüpfungsschaltungen gezeigt, welche die Signale BH1LS00 und BH1LS10, BH1US00 und BH1US10, BH2LS00 und BH2LS10, BH2US00 und BH2US10, BH2ST00 und BH2ST10, BOKBS00 und BOKBS10, BACTS00 und BACTS10, BV1LS00 und BV1LS10, BV1US00 und BV1US10, BV2LS00 und BV2LS10 und BV2US00 und BV2US10 speichern. Unter Heranziehung der Vereinbarungen über die Signalnamen und der in dem Diagramm gemäß Fig. 10 dargestellten Symbole sind die Tabelle der Signal-Funktions-Definitionen und die Fig. 8A bis 8D gewissermaßen aus sich selbst heraus verständlich.
Um zum Beispiel das Signal B2WES10 gemäß Fig. 8A zu erzeugen, ist es lediglich erforderlich, die UND-Glieder 801 A bis 805 A odermäßig zusammenzufassen und das Ausgangssignal dieser UND-Glieder als ein Eingangssignal dem UND-Glied 806 A zuzuführen. Dem anderen Eingangsanschluß des UND-Gliedes 806 A wird das Signal BOKBS10 zugeführt. Ferner sind die UND-Glieder 809 A bis 811 A odermäßig zusammengefaßt, wobei ihr Ausgangssignal als ein Eingangssignal dem UND-Glied 808 A zugeführt wird. Die anderen, den Eingangsanschlüssen des UND-Gliedes 808 A zugeführten Eingangssignale sind die Signale BV1SZ00, BACTS10 und BOKBS10. Die UND-Glieder 806 A und 808 A werden sodann in einer logischen ODER-Funktion zusammengefaßt, wobei ihr Ausgangssignal dem Eingangsanschluß des Verstärkers 807 A zugeführt wird, der das gewünschte Signal B2WES10 erzeugt. Eine Betrachtung des in Fig. 8A bis 8D dargestellten dürfte unter Heranziehung der oben definierten Übereinkunft gewissermaßen aus sich selbst heraus verständlich sein.
Im folgenden sei auf Fig. 9A Bezug genommen, in der Taktdiagramme bzw. Zeitsteuerungsdiagramme für einen Zentraleinheitslesevorgang ohne einen Treffer und für einen Zentralein­ heits-Lesevorgang mit einem Treffer gezeigt sind. Das CPGO- Signal ist ein in der Zentraleinheit erzeugter Zyklus, der den Puffer darüber informiert, daß von der Zentraleinheit ein Zyklus angefordert ist. Das IOCGO-Signal ist ein vergleichbarer Zyklus, der den Pufferspeicher darüber informiert, daß die Eingabe/Ausgabe-Einheit einen Zyklus benötigt bzw. anfordert. Wenn bezüglich des Pufferspeichers eine Entscheidung zwischen der Zentraleinheit und der Eingabe/Ausgabe- Steuereinheit zu fällen ist, wird der Pufferspeicher zuerst der Zentraleinheit zugeordnet. Das BCPDC10-Signal ist ein Zentraleinheits-Adreßlistenzyklus. Während dieses Zyklus existiert eine Feststellung darüber, ob die von der Zentraleinheit ausgegebenen Adresse in dem Pufferspeicher enthalten ist oder nicht, womit eine Entscheidung darüber auftritt, ob ein "Treffer" vorhanden ist oder nicht. Wird kein Treffer während dieses Zyklus erzielt, so wird die Funktion BHAON10 (9.Zyklus von oben) gesetzt. Tritt kein Treffer in der Puffer­ speicher-Adreßliste auf, so erfolgt ein Zugriff zu dem Hauptspeicher, um die von der Zentraleinheit benötigten Daten zu erhalten. Das Pufferspeichersystem 300 gemäß Fig. 3 löst sodann zwei Zyklen BM1PF10 und BPBCB10 aus. Während des BM1PF10-Zyklus erhält das Pufferspeichersystem 300 Zugriff zu den ersten acht Datenbytes aus dem Hauptspeicher und sendet vier der acht Bytes an die Zentraleinheit und hält acht Bytes fest. Das BPBCB10-Signal ist ein Puffer-Belegt-Signal; es verhindert, daß jegliche nachfolgende Zentraleinheits-Anforde­ rungen während des Zyklus in den Pufferspeicher gelangen. Dieses Signal bleibt solange mit hohem Pegel erhalten, bis die vier Hauptspeicheranforderungen von der Zentraleinheit erfüllt sind. Nunmehr sei auf das vierte Signal von oben, das ist das Signal BIGOS10, Bezug genommen; dieses Signal wird von der Prioritätsauflöselogik dazu herangezogen, jegliche noch nicht erledigte Eingabe/Ausgabe-Adreßlistenzykluskonflikte zu lösen. Das BIODC10-Signal ist der Eingabe/ Ausgabe-Adreßlistenzyklus, der der Eingabe/Ausgabe-Einheit 307 ermöglicht, das Puffer-Adreßlistenmodul 305 bezüglich eines Treffers zu überprüfen. Der hier dargestellte Fall zeigt an, daß die Eingabe/Ausgabe-Einheit keinen Treffer ermittelt hat und daher die Puffer-Adreßliste freigibt bzw. auslöst. Ist jedoch ein Treffer festgestellt worden, so würde das Signal B1UDC10 (Puffer-1-Aktualisierungszyklus) mit hohem Pegel auftreten, so daß die Eingabe/Ausgabe-Einheit das Pufferspeicher-1-Adreßlistenmodul aktualisieren könnte. Da jedoch in diesem Fall kein Treffer vorhanden war, ist das den Puffer-Eingabe/Ausgabe-Aktualisierungszyklus betreffende Signal ein Signal mit niedrigem Pegel, und außerdem erfolgt keine Aktualisierung in der Puffer-Adreßliste. Das CPGO-Rückstellsignal ist die Umkehrung des CPGO- Signals; es quittiert der Zentraleinheit, daß sie das GO- Signal bzw. Sprungsignal zurückstellen kann. Das Signal BNMGO10 ist das GO-Signal bzw. Sprungsignal, das von dem Puffer an den Hauptspeicher abgegeben worden ist, um anzuzeigen, daß in der Puffereinheit 300 kein Trefferzustand bezüglich der Zentraleinheit vorgelegen hat und daß die Puffereinheit ein Anforderungssprungsignal GO an den Hauptspeicher abgibt, um die benötigte Information zu erhalten. Das nachfolgende Puffer-GO-Rückstellsignal bedeutet einen Zyklus, der von der Hauptspeicher-Folgesteuereinrichtung benutzt wird, um den Empfang des Sprungsignals von dem Puffer zu quittieren und dem Puffer anzuzeigen, daß dieser sein Sprungsignal zurücksetzt. Das NBACK10-Signal ist ein Quittungssignal, das von dem Hauptspeicher zu dem Puffer abgegeben wird und das dem Puffer anzeigt, daß der Hauptspeicher die Pufferanforderung verarbeitet und daß ferner der Puffer eine neue Adresse oder Anforderung erzeugen kann. Das Leseabtastsignal READSTROBE ist ein Signal, das von der Puffereinheit an die Zentraleinheit abgegeben wird und diese darüber informiert, daß die von dieser angeforderten vier Bytes abgegeben werden. Das BMSCF10-Signal läßt die Zähler laufen, die dazu benutzt werden, die Anzahl der Taktzyklen von dem Speicherquittungssignal bis zu einem Zeitpunkt zu zählen, zu dem die Daten in der Pufferspeichereinheit wirksam bzw. gültig sind. Das betreffende Signal wird dazu herangezogen zu bestimmen, ob irgendwelche Taktverschiebungen in der Puffer-Hauptspeicher- Schnittstelle vorhanden sind. Die BMAC-Zyklen 1 bis 6 sind Zählzyklen, die dazu herangezogen werden zu bestimmen, ob irgendwelche Verschiebungen vorhanden sind oder nicht. Der Scheintreffer-Zyklus DUMMY HIT wird lediglich während der Zeitspanne benutzt, während der die erste Anforderung der Zentraleinheit durchläuft; der betreffende Zyklus wird dazu herangezogen, die Zentraleinheit einzustellen, wenn sie das Schreiben bezüglich der Speicherbedienung angehalten hat. Wenn die Zentraleinheit den Puffer anfordert, wird ihr Takt bedingt abgeschaltet und ausgesetzt, wobei das Scheintreffer- Signal den Takt wieder beginnen läßt. Das BMH1F10-Signal ist ein Fehleranzeigezyklus. Der BMDWC10-Zyklus ist der Datenschreibzyklus; der betreffende Zyklus ist das Intervall während dessen Daten aus dem Hauptspeicher in die Puffermodule geschrieben werden. Die Zyklen BWCC1 und BWCC2 werden dazu herangezogen, die Anzahl der Hauptspeicheranforderungen zu zählen, die von dem Puffer unternommen worden sind. Das BDWUC10- Signal ist der Datenaktualisierungszyklus; das betreffende Signal tritt nur dann mit hohem Pegel auf, wenn während der vier Hauptspeicherzugriffe ein Fehler aufgetreten ist. Wenn ein Fehler aufgetreten ist, bewirkt die Puffereinheit die Nullstellung der Gültigkeitsbits, um nämlich anzuzeigen, daß die in dem Puffer enthaltenen Daten nicht gültig sind, und zwar wegen eines Fehlers, der während des Schreibens aufgetreten ist. Das BDWC1-Signal ist ein Zyklus, der dazu benutzt wird, die Adreßbits zu erhöhen. Das BDWUB-Signal ist ein Puffer-Schreibaktualisierungs-Belegtsignal, welches Konflikte zwischen der Eingabe/Ausgabe-Einheit und dem Puffer löst. Es verhindert einen Zugriff der Eingabe/Ausgabe-Einheit zu dem Puffer während dieser Zeitspanne. Die danach folgenden Funktionen BNA27 bis 28, BMA27 bis 28 und BSA27 bis 28 sind Adreßbits für eine Vergrößerung der Adresse für den Zugriff zu unterschiedlichen Modulen des Hauptspeichers.
Nachdem vorstehend eine Ausführungsform des Erfindungsgegenstandes anhand der Zeichnungen beschrieben worden ist, folgt abschließend die Tabelle der Signal/Funktions-Definitionen, auf welche in der vorausgegangenen Beschreibung ebenfalls mehrfach Bezug genommen wurde.
Tabelle der Signal/Funktions-Definitionen
Tabelle der Signal/Funktions-Definitionen

Claims (10)

1. Schaltungsanordnung für ein Rechnersystem zur variablen Ausblendung von Informationen mit einer Speichereinrichtung, die einen Pufferspeicher (104, 304) und einen Hauptspeicher (101, 301) mit n Speichermoduln (101 A bis 101 D; 301 A bis 301 D) umfaßt und jedem Speichermodul Sperreinrichtungen zugehörig sind, durch die das Einschreiben bzw. Auslesen von Informationen in das betreffende bzw. aus dem betreffenden Speichermodul (101 A bis 101 D; 301 A bis 301 D) gesperrt werden kann, wobei Ausblendsignale zum programmgesteuerten gleichzeitigen Ausblenden einer Untergruppe von b Informationsbytes aus einer Gruppe von i Informationsbytes bereitgestellt werden und die Untergruppe als Teil der Gruppe in bestimmten Speicherstellen irgendeines der n Speichermoduln (101 A bis 101 D; 301 A bis 301 D) gespeichert ist, und wobei die Speichereinrichtung (101, 104; 301, 304) in einer von - eine normale Betriebsart und zumindest zwei Rekonfigurations-Betriebsarten umfassenden - m Betriebsarten zu arbeiten vermag, dadurch gekennzeichnet,
  • a) daß mit den n Speichermoduln (101 A bis 101 D; 301 A bis 301 D) ein Moduladreßschalter (315; 311) verbunden ist, welcher ein ausgewähltes Speichermodul der n Speichermoduln (101 A bis 101 D; 301 A bis 301 D) in dem Fall zu adressieren gestattet, daß die Speichereinrichtung in einer ausgewählten Betriebsart der m Betriebsarten arbeitet,
  • b) daß mit dem Moduladreßschalter (315; 311) und mit den n Speichermoduln (101 A bis 101 D; 301 A bis 301 D) ein Gruppen­ adreßschalter (350, 353, 354) verbunden ist, welcher die Gruppe von i Informationsbytes innerhalb des ausgewählten Speichermoduls der n Speichermoduln (101 A bis 101 D; 301 A bis 301 D) zu adressieren gestattet,
  • c) und daß mit dem Gruppenadreßschalter (350, 353, 354) und mit den n Speichermoduln (101 A bis 101 D; 301 A bis 301 D) eine Ausblendeinrichtung (309; 490, 491; 590, 591; 690, 691; 790, 791) verbunden ist, welche die b Informationsbytes umfassende Untergruppe aus der i Informationsbytes umfassenden Gruppe auszublenden gestattet.
2. Schaltungsanordnung nach Anspruch 1, gekennzeichnet durch eine Normalbetriebsart (Fig. 4 und Fig. 7) für die Speichereinrichtung (101, 104; 301, 304), in welcher jeder ihrer B Moduln eine Anzahl von A Spalten zur Aufnahme und Speicherung je eines vollen Informationsblocks mit C Bytes oder eines halben Informationsblocks mit C/2 Bytes umfaßt, wobei die Speicherung eines vollen oder halben Informationsblocks wahlweise erfolgt, durch eine erste Rekonfigurations-Betriebsart kleiner Kapazität (A), wobei diese Betriebsart in der Anordnung voreingestellt ist, aber während des Betriebs eine Umschaltung in eine andere Betriebsart möglich ist, und durch eine zweite Rekonfigurations-Betriebsart großer Kapazität (E) und wobei die Umschaltung in die genannten Betriebsarten wahlfrei bestimmbar ist und dynamisch erfolgt.
3. Schaltungsanordnung nach Anspruch 2, dadurch gekennzeichnet, daß die Speichereinrichtung einen in einer Betriebsart betreibbaren Hauptspeicher (101, 301) bestehend aus n Speichermoduln (101 A-D; 301 A-D), die zur Aufnahme eines Informationsblocks mit C Bytes n-fach verschachtelt sind (d. h. in jedem Speichermodul sind C/n-tel des Informationsblocks gespeichert), und einen in einer der genannten m Betriebsarten wahlweise betreibbaren Pufferspeicher (304 U, L; 504 U, L; 604 U, L; 704 U, L) umfaßt, wobei der Hauptspeicher eine wesentlich größere Speicherkapazität als der Pufferspeicher, der Pufferspeicher jedoch eine wesentlich kürzere Zugriffszeit als der Hauptspeicher besitzt.
4. Schaltungsanordnung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß der Informationszugriff direkt zum und vom Hauptspeicher vom Prozessor (306) wahlfrei unter Umgehung des Pufferspeichers (304 U, L) schaltbar ist.
5. Schaltungsanordnung nach einem der Ansprüche 1 bis 4, gekennzeichnet durch ein dem Pufferspeicher zugeordnetes Adreßlistenregister (105, 305, 505 D, 605 D, 705 D), welches angibt, daß die einer bestimmten abgespei­ cherten Adresse zugeordnete Information sowohl im Haupt- als auch im Pufferspeicher gespeichert ist.
6. Schaltungsanordnung nach Anspruch 5, gekennzeichnet durch eine Vergleichseinrichtung (308), die mit dem Adreßlistenregister (305) verbunden ist und es ermöglicht festzustellen, ob eine vom Prozessor (306) oder von einer Eingabe/Ausgabe-Einheit (307) übermittelte Adresse in dem Adreßlistenregister (305) gespeichert ist, wobei in Abhängigkeit vom Vergleichsergebnis mit Hilfe entsprechender Steuersignale (HIT) über eine Pufferspeicher-Steuereinrichtung (303) entweder ein Laden des Pufferspeichers mit Information aus dem Hauptspeicher oder ein Direktabruf der Information aus dem Pufferspeicher erfolgt.
7. Schaltungsanordnung nach Anspruch 6, dadurch gekennzeichnet, daß jedes Adreßfeld (250) im Adreßlistenregister (105) eine Stelle für ein Aktivitätsbit (259) umfaßt, das zur Kennzeichnung der bisher jeweils am wenigsten aufgerufenen Adreßzeile im Adreßlistenregister (105) dient und das bei erfolglosem Adreßvergleich (NO HIT) den Speicherplatz für das Laden des Pufferspeichers mit Information aus dem Hauptspeicher bestimmt.
8. Schaltungsanordnung nach Anspruch 5 oder 6, dadurch gekennzeichnet, daß während des Ladezyklus (BM 1 PF 10) des Pufferspeichers vom Hauptspeicher C/n Bytes in den Pufferspeicher übertragen werden unter gleichzeitiger Weiterleitung einer Untermenge dieser Bytes an den Prozessor (306).
9. Schaltungsanordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der auf die Betriebsart kennzeichnende Signale ansprechende Moduladreßschalter (315) Schreibbereitschaftssignale (BNWES) zu erzeugen in der Lage ist, die das für das Einschreiben von Information vorgesehene Speichermodul n in einen Bereitschaftszustand versetzen, daß der Gruppenadreßschalter (350, 353, 354) Signale für den Datenschreibzyklus (DWC), für den Speicherschreibzyklus (MWC) und für die Datenausblendung (Maskierung) beim Schreibvorgang (DWMXX) zu erzeugen in der Lage ist, und daß die auf die Boolesche Verknüpfung der genannten Signale (BNWES · DWC)+(BNWES · MWC · DWMXX) ansprechende Ausblendeinrichtung (309) Ausblendsteuersignale für den Schreibvorgang (BNWMY) zu erzeugen in der Lage ist, die jeweils den auszublendenden Y Bytes aus einer Gruppe von i Bytes zugeordnet sind.
10. Schaltungsanordnung nach Anspruch 1 oder 9, dadurch gekennzeichnet, daß für die Adressierung des Datentransfers vom zentralen Prozessor zur Speichereinrichtung ein Moduladreß-Schreibschalter (315) und für die Adressierung des Datentransfers von der Speichereinrichtung zum zentralen Prozessor ein Moduladreß-Leseschalter (311) vorgesehen ist.
DE19732350225 1972-10-05 1973-10-05 Anordnung fuer ein rechnersystem zur variablen ausblendung von informationen Granted DE2350225A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US00295303A US3800292A (en) 1972-10-05 1972-10-05 Variable masking for segmented memory

Publications (2)

Publication Number Publication Date
DE2350225A1 DE2350225A1 (de) 1974-04-18
DE2350225C2 true DE2350225C2 (de) 1988-12-29

Family

ID=23137121

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19732350225 Granted DE2350225A1 (de) 1972-10-05 1973-10-05 Anordnung fuer ein rechnersystem zur variablen ausblendung von informationen

Country Status (6)

Country Link
US (1) US3800292A (de)
JP (1) JPS5710498B2 (de)
CA (1) CA1002204A (de)
DE (1) DE2350225A1 (de)
FR (1) FR2202611A5 (de)
GB (1) GB1433393A (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3979726A (en) * 1974-04-10 1976-09-07 Honeywell Information Systems, Inc. Apparatus for selectively clearing a cache store in a processor having segmentation and paging
US3964054A (en) * 1975-06-23 1976-06-15 International Business Machines Corporation Hierarchy response priority adjustment mechanism
US4084234A (en) * 1977-02-17 1978-04-11 Honeywell Information Systems Inc. Cache write capacity
US4195342A (en) * 1977-12-22 1980-03-25 Honeywell Information Systems Inc. Multi-configurable cache store system
GB2016752B (en) * 1978-03-16 1982-03-10 Ibm Data processing apparatus
DE2842288A1 (de) * 1978-09-28 1980-04-17 Siemens Ag Datentransferschalter mit assoziativer adressauswahl in einem virtuellen speicher
US4394733A (en) * 1980-11-14 1983-07-19 Sperry Corporation Cache/disk subsystem
US4460958A (en) * 1981-01-26 1984-07-17 Rca Corporation Window-scanned memory
US4493026A (en) * 1982-05-26 1985-01-08 International Business Machines Corporation Set associative sector cache
IT1153611B (it) * 1982-11-04 1987-01-14 Honeywell Inf Systems Procedimento di mappatura della memoria in sistema di elaborazione dati
US4803617A (en) * 1986-02-10 1989-02-07 Eastman Kodak Company Multi-processor using shared buses
JPH087715B2 (ja) * 1990-11-15 1996-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理装置及びアクセス制御方法
US5454093A (en) * 1991-02-25 1995-09-26 International Business Machines Corporation Buffer bypass for quick data access
US6766431B1 (en) * 2000-06-16 2004-07-20 Freescale Semiconductor, Inc. Data processing system and method for a sector cache
DE10343525B4 (de) 2002-09-27 2011-06-16 Qimonda Ag Verfahren zum Betreiben von Halbleiterbausteinen, Steuervorrichtung für Halbleiterbausteine und Anordnung zum Betreiben von Speicherbausteinen
US9542352B2 (en) * 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8244971B2 (en) * 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US7609567B2 (en) * 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US20080082763A1 (en) * 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8041881B2 (en) * 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US20080028136A1 (en) * 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
WO2007002324A2 (en) * 2005-06-24 2007-01-04 Metaram, Inc. An integrated memory core and memory interface circuit
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
GB2444663B (en) 2005-09-02 2011-12-07 Metaram Inc Methods and apparatus of stacking drams
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US7724589B2 (en) 2006-07-31 2010-05-25 Google Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
US8269792B2 (en) * 2006-11-21 2012-09-18 Qualcomm Incorporated Efficient scissoring for graphics application
US7921274B2 (en) * 2007-04-19 2011-04-05 Qualcomm Incorporated Computer memory addressing mode employing memory segmenting and masking
US8209479B2 (en) 2007-07-18 2012-06-26 Google Inc. Memory circuit system and method
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
EP2441007A1 (de) 2009-06-09 2012-04-18 Google, Inc. Programmierung von dimm-abschlusswiderstandswerten

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3292151A (en) * 1962-06-04 1966-12-13 Ibm Memory expansion
US3380034A (en) * 1963-07-17 1968-04-23 Vyzk Ustav Matemat Stroju Addressing system for computer memories
US3340512A (en) * 1964-07-20 1967-09-05 Burroughs Corp Storage-pattern indicating and decoding system
US3634882A (en) * 1964-12-14 1972-01-11 Bell Telephone Labor Inc Machine-processing of symbolic data constituents
US3569938A (en) * 1967-12-20 1971-03-09 Ibm Storage manager
US3543245A (en) * 1968-02-29 1970-11-24 Ferranti Ltd Computer systems
US3626374A (en) * 1970-02-10 1971-12-07 Bell Telephone Labor Inc High-speed data-directed information processing system characterized by a plural-module byte-organized memory unit
US3686640A (en) * 1970-06-25 1972-08-22 Cogar Corp Variable organization memory system

Also Published As

Publication number Publication date
CA1002204A (en) 1976-12-21
FR2202611A5 (de) 1974-05-03
US3800292A (en) 1974-03-26
DE2350225A1 (de) 1974-04-18
GB1433393A (en) 1976-04-28
JPS4974447A (de) 1974-07-18
JPS5710498B2 (de) 1982-02-26

Similar Documents

Publication Publication Date Title
DE2350225C2 (de)
DE2350215C2 (de) Rechenanlage
DE2260353C2 (de) Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage
DE2749850C3 (de) Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem Chip
DE3011552C2 (de)
DE3724317C2 (de)
DE4019135C2 (de) Serieller Speicher auf RAM-Basis mit parallelem Voraus-Lesen und Verfahren zum Speichern von Datenelementen in eine serielle Speichervorrichtung
DE2130299A1 (de) Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen
DE2501853A1 (de) Prozessor fuer ein datenverarbeitungssystem
DE2230103A1 (de) Adressiereinrichtung fuer einen speicher
DE2310631C3 (de) Speicherhierarchie für ein Datenverarbeitungssystem
DE2617408A1 (de) Datenverarbeitungsgeraet
DE2331589A1 (de) Datenverarbeitungsanordnung
DE2163342A1 (de) Hierarchische binäre Speichervorrichtung
DE1286789B (de) Einrichtung an einem elektronischen Ziffernrechner zum schnellen Datenaustausch zwischen der Verarbeitungseinheit und dem zentralen Speicher
DE2059917A1 (de) Datenspeicher
DE2926322A1 (de) Speicher-subsystem
DE2117581C3 (de) Einrichtung zur Adressenprüfung
DE2221442A1 (de) Assoziativspeicher
DE1524898C3 (de) Datenspeicher mit direktem mehrdimensionalen Zugriff zur gleichzeitigen Entnahme mehrerer Wörter
DE1524788A1 (de) Schaltungsanordnung zur Erkennung und zum automatischen Ersetzen von schadhaften Speicherstellen in Datenspeichern
DE2311503A1 (de) Datenverarbeitungsanlage mit mehreren zentraleinheiten
DE2233193A1 (de) Stapel-speichersystem
CH495584A (de) Datenverarbeitungsanlage
DE2000608C3 (de) Schaltungsanordnung fuer eine Nachrichtenverarbeitungs-,insbesondere fuer eine Nachrichtenvermittlungsanlage

Legal Events

Date Code Title Description
OD Request for examination
8127 New person/name/address of the applicant

Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee