DE2912073A1 - Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem - Google Patents
Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystemInfo
- Publication number
- DE2912073A1 DE2912073A1 DE19792912073 DE2912073A DE2912073A1 DE 2912073 A1 DE2912073 A1 DE 2912073A1 DE 19792912073 DE19792912073 DE 19792912073 DE 2912073 A DE2912073 A DE 2912073A DE 2912073 A1 DE2912073 A1 DE 2912073A1
- Authority
- DE
- Germany
- Prior art keywords
- level
- information
- stack
- memory
- flip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
Description
DIPL. ING. HEINZ BARCEHLE München, 27~.März 1979
DIPL. CHEM. DR. PETER FÜRNISS _
Aktenzeichen: Unser Zeichen:
Anmelder: Honeywell Information Systems Inc. 200 Smith Street
Waltham, Mass., V. St. v. A.
Waltham, Mass., V. St. v. A.
Stapelspeicheranordnung zur kurzzeitigen Speicherung von Informationen bei Nichtabsetzbarkeit
dieser Informationen in einem Datenverarbeitungssystem
909844/0666
Kanzlei: Hermstraße 15, München 22
DIPL. ING. HEINZ BARDEHLE München,
DIPL. CHEM. DR. PETER FÜRNISS
P 2855
Aktenzeichen: Unser Zeichen:
Anmelder:
Die Erfindung bezieht sich generell auf Speichersysteme für die Verwendung in Datenverarbeitungsanlagen und insbesondere
auf eine Speiehersteuerungs-Ablageanordnung,
die Befehle, Instruktionen oder Daten aufnimmt und speichert, die von einer anfordernden Einheit erzeugt
werden, bis eine bezeichnete Empfangseinheit zur Aufnahme der betreffenden Information verfügbar ist.
Moderne Datenverarbeitungssysteme enthalten verschiedene Untersysteme bzw. Subsysteme für die Ausführung der Behandlungs-
und Speieherungsfunktionen sowie zur Datenübertragung.
Ein derartiges System würde beispielsweise eine Zentraleinheit, einen Speicher, eine Vielzahl von
Eingabe/Ausgabe-Einrichtungen und eine Steuereinheit enthalten. Derartige Datenverarbeitungssysteme können
in der Konfiguration sich erheblich voneinander unterscheiden. Dies bedeutet, daß verschiedene Funktionalitäten
in unterschiedlichen Subsystemen entsprechend besonderen Auslegungskriterien untergebracht sein können.
In entsprechender Weise können die erforderlichen Schnittstellenschaltungen für eine Datenübertragung zwischen den
verschiedenen Subsystemen sowohl in funktioneller als auch in betrieblicher Hinsicht voneinander verschieden
sein.
In typischer Weise nimmt die Zentraleinheit eine Behandlung der Daten entsprechend einer Reihe von ,decodier-
909844/0666
Kanzlei: Herrnstraße 16, München 82
BAD ORIGINAL
baren Befehlen vor, die ein Programm genannt werden. Diese Programmbefehle werden im allgemeinen sequentiell
von der Zentraleinheit bzw. dem Prozessor wieder aufgefunden und zusammen mit den Daten, bezüglich der eine
Operation vorzunehmen ist, in Speichereinrichtungen gespeichert.
Derartige Speichereinrichtungen können solche aus einer Vielzahl bekannter Typen sein. Am gebräuchlichsten wird
als Hauptspeicher eine Einrichtung mit wahlfreiem Zugriff verwendet, die diskrete adressierbare Speicherplätze
enthält, deren jeder für die Speicherung eines Wortes vorgesehen ist, das Daten und/oder Befehle umfassen
mag und das besondere Felder enthalten kann, die in einer Vielzahl von Operationen von Nutzen sind. Wenn
der Prozessor Daten oder Befehle benötigt, erzeugt er im allgemeinen einen Speieherzyklus und gibt eine Adresse
an den Speicher ab, um die unter der betreffenden Adresse gespeicherten Daten oder das unter der betreffenden Adresse
gespeicherte Wort wieder abzuholen.
Die Reihe der das Programm bildenden Befehle wird üblicherweise in den Speicher zu Beginn der jeweiligen Operation
geladen. Diese Befehle beanspruchen einen Speicherblock, der normalerweise solange nicht zerstört oder
geändert werden muß, bis ein Programm abgeschlossen worden ist. Daten, bezüglich welcher eine Verarbeitung durch
den Prozessor entsprechend den gespeicherten Befehlen erfolgt, sind in anderen Bereichen des Speichers gespeichert.
Diese Daten werden abgeholt und entsprechend den Programmbefehlen ersetzt.
Der Datenaustausch bzw. die Datenübertragung zwischen dem äußeren Bereich der Anlage und dem Datenverarbeitungssystem
erfolgt üblicherweise durch die Ausnutzung
9098U/0666
einer Vielzahl von Eingabe/Ausgabe-Einrichtungen. Diese Einrichtungen umfassen Anordnungen, wie Magnetbandbehandlungseinrichtungen,
Lochstreifenleser, Lochkartenleser und entfernt liegende Datenstationen. Um die Informationsübertragung zwischen den Eingabe/Ausgabe-Einrichtungen
zu steuern, ist eine Eingabe/Ausgabe-Steuereinrichtung vorgesehen, durch die die verschiedenen
Eingabe/Ausgabe-Einrichtungen mit dem Prozessor gekoppelt sind. Die Eingabe/Ausgabe-Steuereinrichtung
koordiniert den Infoxm ationsfluß zu und von den verschiedenen
Eingabe/Ausgabe-Einrichtungen und nimmt außerdem eine Prioritätszuteilung in dem Fall vor,
daß mehr als eine Eingabe/Ausgabe-Einrichtung versucht, mit dem übrigen Teil des Systems in Verbindung zu treten.
Da die Eingabe/Ausgabe-Einrichtungen üblicherweise elektromechanische
Einrichtungen sind und als solche durch wesentlich niedrigere Arbeitsgeschwindigkeiten charakteri
siert sind als der übrige Teil des Datenverarbeitungssystems, bewirkt die Eingabe/Ausgabe-Steuereinrichtung
eine Pufferung, durch die dem übrigen Teil des Verarbeitungssystems ermöglicht ist, mit seiner normalen
Datenübertragungsrate zu arbeiten. In vielen Anwendungsfällen ist es von Vorteil, mehr als einen Prozessor und
mehr als einen Speicher zu verwenden. In entsprechender Weise erfordern derartige Systeme im allgemeinen eine
große Anzahl von Eingabe/Ausgabe-Einrichtungen und damit mehrere Eingabe/Ausgabe-Steuereinrichtungen bzw. Steuerwerke.
Eine Speichersteuereinrichtung dient dazu, Datenübertragungen zwischen dem Prozessor, Speichereinrichtungen
und Eingabe/Ausgabe-Steuereinrichtungen zu koordinieren. Die Speichersteuereinrichtung empfängt Anforderungen für
den Zugriff zu dem Speicher sowie spezielle Anforderungen für Datenübertragungen zu anderen Subsystemen hin. Die
Speichersteuereinrichtung koordiniert die Ausführung von
9098U/066S
.1.
Operationen und Informationsübertragungen; sie kann auch mit einer Einrichtung versehen sein, durch die
eine Prioritätszuteilung in dem Fall erfolgt, daß Anforderungen für einen Speicherzugriff von mehr als
einem Subsystem erzeugt werden.
Ein typisches Datenverarbeitungssystem kann eine einzige Speichersteuereinrichtung enthalten. Multirechnerkonfigurationen
können jedoch mehrere SpeieherSteuereinrichtungen
verwenden.
In solchen Anwendungsbereichen, in denen mehr als eine Speichersteuereinrichtung verwendet ist, sind die
Speichersteuereinrichtungen unabhängig voneinander; sie sind gleichzeitig in Funktion, wodurch eine
Parallelität hinsichtlich des Zugriffs zu dem Speichersystem vorliegt. Jede Speichersteuereinrichtung wird
Anforderungen von den Prozessoren und von den Eingabe/ Ausgabe-Steuereinrichtungen kurzzeitig speichern und
diese Subsysteme im allgemeinen entsprechend einem Prioritätsprinzip bedienen. Datenübertragungen zwischen
den verschiedenen Datenübertragungseinrichtungen und der Speichersteuereinrichtung sind wortorientiert; sie
umfassen beispielsweise 40 Bits. Typische Datenverarbeitungssysteme, die SpeicherSteuereinrichtungen verwenden,
sind bereits bekannt (siehe US-PS 3 413 613).
Die Befehle und/oder Instruktionen und/oder Daten, die der Speichersteuereinrichtung zugeleitet werden, werden
in einem eine Vielzahl von Registern enthaltenden, auch als Stack-Speicher bezeichneten Stapelspeicher aufgenommen
und kurzzeitig gespeichert, bis die in Frage kommenden Bestimmungseinheiten zur Verarbeitung der
Information zur Verfügung stehen. Nach erfolgter Stapelspeicherung werden die Befehle oder Instruktionen im
allgemeinen zu den Bestimmungseinheiten hin geleitet,
909844/0666
und zwar nach dem FIFO-Prinzip (die erste eingegebene
Information ist die erste ausgegebene Information). Ein Schreibzähler bestimmt, welches Register in dem
Stapelspeicher die eintreffende Information erhält, und ein Lesespeicher wählt das Register aus, dessen
Registerinhalt als nächster Inhalt zu seiner Best immungse inhe it hinzuleiten ist. Das Vorhandensein
eines Befehls in dem Stapelspeicher wird üblicherweise dadurch ermittelt, daß der Inhalt des Schreibzählers
mit dem Inhalt des Lesezählers verglichen wird. Wenn die betreffenden Zählerstellungen bzw. Inhalte voneinander
verschieden sind, so zeigt dies an, daß der Stapelspeicher eine weiterzuleitende information enthält.
Der Schreibzähler wird weitergeschaltet, wenn
eine Anforderung von der Speiehersteuereinrichtung her
aufgenommen ist, um der Lesezähler wird weitergeschaltet, wenn die Information aus dem Stapelspeicher
zu der Bestimmungseinheit hin weitergeleitet ist. Wenn die dem nächsten aus dem Stapelspeicher auszulesenden
Befehl entsprechende Bestimmungseinheit belegt ist,
können andere Befehle, die eine untere Position in dem Stapelspeicher einnehmen, auch dann nicht verteilt
bzw. weitergeleitet werden, wenn ihre jeweiligen Bestimmungseinheiten frei sind. Somit kann eine belegte
Bestimmungseinheit wirksam Befehle sperren, die für freie Einheiten bestimmt sind. Dies ist ganz klar ein
unwirksamer Betrieb, der zu ungerechtfertigten Verzögerungen in einer Technologie führt, in der die
Geschwindigkeit von höchster Bedeutung ist.
Da der Stapelspeicher eine endliche Länge besitzt, existiert überdies die Gefahr, daß der Schreibzähler
sämtliche zur Verfügung stehenden Speicherplätze in dem Stapelspeicher aufbraucht und sich selbst gewissermaßen
überläuft, wodurch eine neue Information in einen Stapelspeicherplatz eingeschrieben wird, bevor der Inhalt des
9098U/0666
betreffenden Speicherplatzes zu dessen Bestimmungseinheit hin geleitet worden ist. Wenn dieser Überlauf
stattfindet, dann ist der Inhalt des Registers oder der fraglichen Register verloren, was zu einem Systemfehler
führt. Unter Heranziehung der oben beschriebenen Lösung ist es schwierig zu bestimmen, wann der Stapelspeicher
mit einer Information voll werden wird, die an die entsprechenden Bestimmungseinheiten nicht abgegeben
worden ist. Da diese Anordnung sequentiell arbeitet, ist es überdies schwierig zu bestimmen, wie
die Belegung des Stapelspeichers tatsächlich ist, was bedeutet, daß es schwierig ist , eine Anzeige bezüglich
des Durchsatzes zu erhalten.
Der Erfindung liegt demgemäß die Aufgabe zugrunde, eine Stapelungsanordnung für die Verwendung in Verbindung
mit einer Speichersteuereinrichtung zu schaffen, wobei Fehler aufgrund eines Überlaufes weitgehend herabgesetzt
sein sollen.
Darüber hinaus soll eine Stapelungsanordnung geschaffen werden, die eine leichte Bestimmung eines Stapelspeicherdurchsatzes
ermöglicht.
Gelöst wird die vorstehend aufgezeigte Aufgabe durch die in den Patentansprüchen angegebene Erfindung.
Gemäß einem weiten Aspekt der Erfindung ist eine Anordnung zur Speicherung von eintreffenden Daten in einer
Speicherebene eines Mehrebenen-Stapelspeichers vorgesehen. Diese Anordnung umfaßt eine Detektoreinrichtung,
die die niedrigste Ebene in dem Stapelspeicher zu bestimmen gestattet, welche nicht belegt ist. Ferner ist
eine Freigabeeinrichtung vorgesehen, die mit der Detektoreinrichtung und dem Stapelspeicher verbunden ist und die
das Laden von Daten in die betreffende niedrigste bzw.
909844/0666
unterste Ebene ermöglicht.
Anhand von Zeichnungen wird die Erfindung nachstehend beispielsweise näher erläutert.
Fig. 1 zeigt ein Blockdiagramm eines Datenverarbeitungssystems, in welchem eine Speichersteuereinrichtung gemäß
dem Stand der Technik verwendet ist. Fig. 2 zeigt in einem Blockdiagramm eine Speichersteuereinrichtung
für eine Stapelspeicheranordnung gemäß der vorliegenden Erfindung.
Fig. 3 zeigt in einem detaillierten Verknüpfungsdiagramm
eine Stapelspeicheranordnung für die Verwendung in einer Speichersteuereinrichtung gemäß der vorliegenden Erfindung.
Im folgenden wird die bevorzugte Ausführungsform der
Erfindung näher erläutert.
In Fig. 1 ist in einem Blockdiagramm eine Einzelspeicher-Steuerwerkskonfiguration
eines Datenverarbeitungssystems veranschaulicht. Das Datenverarbeitungssystem enthält
einen Datenprozessor 2, Speichereinrichtungen 4 und 6, eine Eingabe/Ausgabe-Steuereinrichtung 10 und eine Vielzahl
von Eingabe/Ausgabe-Einrichtungen 12, 14 und 16.
Der Prozessor, die Eingabe/Ausgabe-Steuereinrichtung und die Speicher sind über eine Speichersteuereinrichtung 8
miteinander verbunden, welche den Zugriff zu den Speichereinrichtungen 4 und 6 steuert und außerdem die Datenübertragungssteuerung
zwischen dem Prozessor 2 und/oder der Eingabe/Ausgabe-Steuereinrichtung 10 vornimmt. Wie
oben erwähnt, wirkt die Speichersteuereinrichtung 8 als eine die Datenverarbeitung koordinierende Einrichtung,
welche die Zwischensystem-Datenübertragungen überwacht. Außerdem werden durch die betreffende Steuereinrichtung
gewisse Funktionen in dieser Steuereinrichtung selbst ausgeführt. In der Speichersteuereinrichtung ist eine
Stapelungsanordnung bzw. Stapelspeicheranordnung vorge-
9098U/0666
sehen, um Befehle, Instruktionen und Dateninformationen
aufzunehmen und kurzzeitig zu speichern, die für die Speichereinrichtungen 4 und 6 bestimmt sind,
wobei diese Aufnahme und Speicherung der betreffenden Informationen dann erfolgt, wenn eine oder beide der
Speichereinrichtungen nicht verfügbar sind.
In Fig. 2 ist ein Funktionblockdiagramm einer Stapelungsanordnung gemäß der Erfindung veranschaulicht. In Fig.2
ist ein 4-Ebenen-Stapelspeicher 42 vorgesehen. Es sei an dieser Stelle darauf hingewiesen, daß der Stapelspeicher
42 irgendeine Länge besitzen kann, und daß die Verwendung von vier Ebenen lediglich als Beispiel dargestellt
ist. Der St_apelspeicher 42 nimmt Befehlsadressen und Daten auf, die tatsächlich jeder Ebene des Stapelspeichers
zugeführt werden, obwohl - wie dargestellt sie als ein Eingangssignal lediglich der Einfachheit
halber der Ebene 1 zugeführt sind. Wenn die in Frage kommende Empfangseinheit verfügbar ist, wird der Inhalt
einer bestimmten Ebene des Stapelspeichers an die Empfangseinheit nach einem Prioritätsprinzip verteilt
bzw. abgegeben, wie es an anderer Stelle näher beschrieben wird.
Jeder Ebene des Stapelspeichers ist ein Belegungs-Flipflop
zugehörig. In Fig. 2 sind hierfür die Flipflops 20, 22,24 und 26 dargestellt. Wenn ein Befehl, eine Adresse
und/oder Daten in einer bestimmten Ebene eines Stapelspeichers gespeichert sind, wird deren zugehöriges Ebenen-Belegungsflipflop
gesetzt. Wenn Daten aus einer bestimmten Ebene des Stapelspeichers durch eine Empfangseinheit
ausgelesen werden, wird von der betreffenden Empfangseinheit ein Signal erzeugt, welches das entsprechende
Ebenenbelegungs-Flipflop zurücksetzt.
Die Ausgangssignale der Ebenenbelegungs-Flipflops 20,
22,24 und 26 werden den Eingängen eines Ebenenbelegungs-
909844/0666
-Ak-
Decoders 28 zugeführt, der mit der in ihm enthaltenen Verknüpfungslogik die niedrigste Ebene in dem Stapelspeicher
ermittelt, die nicht belegt ist. Wenn sämtliche Ebenen belegt sind, d.h., wenn sämtliche Ebenenbelegungs-Flipflops
gesetzt sind, dann erzeugt der Ebenenbelegungs-Decoder 28 ein Stapelbelegungssignal,
welches an die anfordernde Einheit abgegeben wird, die somit darüber informiert wird, daß ihre Anforderung
zu diesem Zeitpunkt nicht verarbeitet werden kann.
Das Ausgangssignal des Ebenenbelegungs-Decoders 28 wird in zweierlei Weise ausgenutzt. Zum ersten wird das betreffende
Ausgangssignal einem Eingang eines Multiplexers 18 zurückgekoppelt. Von anfordernden Einheiten
empfangene Anforderungen werden in entsprechender Weise dem Multiplexer 18 zugeführt, der ein Ausgangssignal auf
einer entsprechenden Leitung erzeugt, um ein Ebenenbelegungs-Flipflop der niedrigsten in dem Stapelspeicher
nicht belegten Ebene zu setzen. Zum zweiten wird das Ausgangssignal des Ebenenbelegungs-Decoders 28 an einen
Stapeladressengenerator 32 abgegeben. Der Adressengenerator
32 erzeugt ein Freigabesignal, welches in Verknüpfung
mit dem Anforderungssignal den Eintrag des Befehls, der Adresse und/oder von Daten in die niedrigste
nicht belegte Ebene des Stapels ermöglicht. Dies wird über UND-Funktionen erfüllende Verknüpfungsglieder 34,
36,38 und 40 vorgenommen.
Wie früher vorgeschlagen, wird es als wünschenswert angesehen, über eine Anzeige darüber zu verfügen, wie stark
der Stapelspeicher belegt ist, um nämlich festzustellen, ob zusätzliche Ebenen hinzugefügt oder vorhandene Ebenen
weggelassen werden sollten. Dies kann dadurch erreicht werden, daß die Ausgänge der Ebenenbelegungs-Flipflops
909844/0666
■ /is·
mit der in Fig. 2 als Durchsatz-Anzeigeeinrichtung 30 bezeichneten Verknüpfungseinrichtung verbunden werden.
Dabei kann es sich um nicht mehr als um eine einfache Verknüpfungseinrichtung handeln, die die höchste Ebene
in dem Stapelspeicher anzeigt, die belegt ist. Die Durchsatz-Anzeigeeinrichtung 30 erzeugt ein Signal,
welches einer Stapelspeicherebenen-Steuereinrichtung zugeführt wird, die entweder Ebenen zu dem Stapelspeicher
hinzufügt oder von diesem wegnimmt. Die hiermit zusammenhängenden Vorgänge sind jedoch kein Teil
der vorliegenden Erfindung.
In Fig. 4 ist in einem detaillierten Verknüpfungsschaltbild
eine Stapelungsanordnung gemäß der vorliegenden Erfindung gezeigt. Wie in Fig. 2 ist der Stapelspeicher
lediglich zum Zwecke der Erläuterung auf vier Ebenen begrenzt. Die Ebenen 0, 1, 2 und 3 des Stapelspeichers
werden durch das Ausgangssignal von UND-Verknüpfungsgliedern
66, 68, 70 bzw. 72 freigegeben. Wie in Fig. 2 dargestellt, werden auch hier ein Befehl und/oder Daten
lediglich der ersten Ebene zugeführt. Es dürfte jedoch einzusehen sein, daß der Befehl und die Adressendaten
in entsprechender Weise jeder Ebene des Stapelspeichers zugeführt werden.
Jeder Stapelspeicherebene ist ein Ebenenbelegungs-Flipflop
zugehörig. Wenn das Flipflop 44 gesetzt ist, zeigt dies an, daß die Ebene "0" besetzt ist. Die Flipflops 46,
48 und 50 dienen entsprechenden Funktionen bezüglich der Ebenen 1, 2 bzw. 3.
Die UND-Glieder 52,54,56 und 58 dienen dazu, die unterste nicht besetzte Ebene in dem Stapelspeicher zu identifizieren.
So wird beispielsweise dem eine UND-Funktion erfüllenden Verknüpfungsglied 52 an einem seiner Eingänge das am
909844/0666
• Ab-
Q-Ausgang des Flipflops auftretende Ausgangssignal zugeführt,
und dem anderen Eingang des betreffenden Verknüpfungsgliedes wird das am Q-Ausgang des Flipflops
auftretende Ausgangssignal zugeführt. Demgemäß tritt das Ausgangssignal des UND-Gliedes 52 lediglich dann
mit hohem Pegel auf, wenn die Ebene "O" belegt und die Ebene "1" nicht belegt ist. In entsprechender Weise ist
das UND-Glied 54 an den Ausgängen der Ebenenbelegungs-Flipflops angeschlossen, so daß es ein Ausgangssignal f2
dann erzeugt, wenn die Ebenen "0" und "1" belegt bzw. besetzt und die Ebene "2" nicht belegt bzw. besetzt ist.
Das Ausgangssignal {Ϊ3) des eine UND-Funktion erfüllenden
Verknüpfungsgliedes 56 zeigt an, daß sämtliche Ebenen mit Ausnahme der letzten Ebene des Stapelspeichers belegt
sind. Diese Funktionen (f1,f2 und Ϊ3) werden zurückgekoppelt
und einem Eingang der Eingänge von UND-Verknüpfungsgliedern
76,78 bzw. 80 zugeführt. Eine Zugriffsanforderung wird dem jeweiligen zweiten Eingang der UND-Verknüpfungsglieder
74,76,78 und 80 zugeführt. Wenn eine Anforderung aufgenommen wird und wenn eine Bestimmung
darüber erfolgt, welche Ebene die niederste nicht besetzte Ebene in dem Stapelspeicher ist, dann ist auf diese
Weise das in Frage kommende Ebenenbelegungs-Flipflops gesetzt. Wenn die Ebene "1" die niedrigste nicht besetzte
Ebene in dem Stapelspeicher ist, dann tritt das Signal f1 mit hohem Pegel auf. Dadurch ist das UND-Glied 76
in den Stand versetzt, die Anforderung dem Setzeingang des Flipflops 46 zuzuführen. Wenn die Ebene "2" die
niedrigste nicht besetzte Ebene ist, dann gibt das Signal f2 das UND-Glied 78 für die Weiterleitung der Anforderung
zu dem Setz-Eingang des Ebenenbelegungs-Flipflops 48 frei. Wenn die Ebene "3" die niedrigste nicht
besetzte Ebene ist, dann wird in entsprechender Weise das Signal f3 die Weiterleitung des Anforderungssignals zum
Setzeingang des Flipflops 50 bewirken.
909844/0666
Dem UWD-Verknüpfungsglied 74 wird an einem ersten Eingang
das Anforderungssignal zugeführt, und der zweite Eingang dieses Verknüpfungsgliedes ist an dem Q-Ausgang
des Flipflops 44 angeschlossen, bei dem es sich um das der ersten Ebene des Stapelspeichers zugehörige Ebenenbelegungs-Flipflop
handelt. Wenn das Flipflop 44 nicht gesetzt ist - womit angezeigt wird, daß die Ebenen "0"
in dem Stapel nicht besetzt ist - wird somit das Anforderungssignal über das UND-Verknüpfungsglied 74 weitergeleitet,
um das Flipflop 44 zu setzen.
Das UND-Verknüpfungsglied 58 ist eingangsseitig an den Q-Ausgangen sämtlicher Ebenenbelegungs-Flipflops 44,46,
48 und 50 angeschlossen. Demgemäß wird das UND-Verknüpfungsglied 58 nur dann ein Ausgangssignal erzeugen,
wenn sätmliche Ebenenbelegungs-Flipflops gesetzt sind, d.h. dann, wenn sämtliche Ebenen in dem Stapelspeicher
besetzt sind. Dieses Ausgangssignal wird der anfordernden Einheit zugeleitet, um diese darüber zu informieren,
daß ihre Anforderung nicht verarbeitet werden kann.
Gleichzeitig mit dem Setzen des in Frage kommenden Ebenenbelegungs-Flipflops werden der Befehl, die Adresse
und/oder die Daten in der niedrigsten ni±t besetzten Ebene des Stapelspeichers übernommen und gespeichert.
Dies geschieht dabei in folgender Art und Weise.
Das UND-Verknüpfungsglied 60 ist eingangsseitig an den
Ausgängen der UND-Verknüpfungsglieder 52 und 56 angeschlossen,
was bedeutet, daß es die Signale f1 und f3 aufnimmt.
Das UND-Verknüpfungsglied 62 ist eingangsseitig an den Ausgängen der UND-Verknüpfungsglieder 54 und 56 angeschlossen,
was bedeutet, daß es die Signale f2 und f3
909844/0666
AS·
aufnimmt. Damit werden die vier möglichen Kombinationen der von den UND-Verknüpfungsgliedern 60 und 62 erzeugten
Ausgangssignale (00,01,10,11) in dem Adressengenerator
decodiert , der aus lediglich einem 2-Bit-Decoder besteht. Wenn eine der Ebene "0" des Stapelspeichers entsprechende
Adresse decodiert wird, wird ein Freigabesignal über die Leitung 88 an das UND-Verknüpfungsglied 66 abgegeben,
welches das eigentliche bzw. tatsächliche Anforderungssignal freigibt. Dieses Anforderungssignal wird dem
zweiten Eingang des betreffenden Verknüpfungsgliedes zugeführt, wodurch eine Taktsteuerung des Befehls, der
Adresse und/oder der Daten in die Ebene "0" erfolgt. In entsprechender Weise führen die den Ebenen 1, 2 und 3
entsprechenden Adressen zur Erzeugung von Freigabesignalen durch das Adreßregister 64 auf den Leitungen 86,84
bzw. 82. Wenn die Information in einer bestimmten Ebene des Stapelspeichers an ihre in Frage kommende Bestimmungseinheit
weitergeleitet worden ist, wird ein Rückse_±zsignal durch die betreffende Bestimmungseinheit
erzeugt und dem entsprechenden Ebenenbelegungs-Flipflop über die Leitung 91 zum Zwecke der Zurückstellung zugeführt.
Obwohl lediglich eine einzige Leitung dargestellt ist, dürfte einzusehen sein, daß jede Bestimmungseinheit
einen individuellen Zugriff zum jeweiligen Ebenenbelegungs-Flipflop besitzt, so daß jedes derartige Flipflop ohne
Beeinträchtigung der übrigen Flipflops zurückgesetzt werden kann.
Durch Überwachen der Ausgangssignale der UND-Funktionen erfüllenden Verknüpfungsglieder 52,54,56 und 58 kann eine
Anzeige darüber erhalten werden, wie stark der Stapelspeicher belegt ist. Damit kann dann bestimmt werden, ob
zusätzliche Ebenen dem Stapelspeicher hinzugefügt werden sollten, oder ob vorhandene Ebenen weggelassen werden
sollten. Ferner sei darauf hingewiesen, daß es auf relativ
9098U/0666
einfache Weise möglich istj, eine bestimmte Ebene des
Stapelspeichers in dem Fall zu umgehen, daß die betreffende
Ebene fehlerhaft arbeitet» Dies kann dadurch geschehen^ daß das zugehörige Ebenenbelegungs-Flipflop
einfach in einen Setzzustand gebracht wird.
Durch die Erfindung ist also eine Stapelungsanordnung für die Verwendung in einer Speichersteuereinrichtung
eines Datenverarbeitungssystems geschaffen worden« Dabei werden Instruktionen oder Befehle, die einen
Speicherzugriff anfordern, in dem Stapelspeicher übernommen und kurzzeitig gespeichert, sofern ein entsprechender
Speicher nicht verfügbar ist. Jede neue Instruktion oder jeder neue Befehl wird in der niedrigsten nicht"besetzten
Ebene des Stapelspeichers gespeichert. Jeder Stapelspeicherebene ist ein Belegungs-Flipflop zugehörig,
welches dann gesetzt wird, wenn ein Befehl oder eine Instruktion in seiner zugehörigen Stapelspeicherebene
gespeichert wird bzw. ist. Das Belegungs-Flipflop wird dann zurückgesetzt, wenn der Befehl oder die
Instruktion zu ihrem Bestimmungsspeicher hin geleitet wird bzw. ist. Die Ebenenbelegungs-Flipflops werden
überwacht um festzustellen, wann der Stapelspeicher voll ist. Damit wird dann eine Anzeige darüber gewonnen,
daß weitere Anforderungen gesperrt werden. Durch Überwachen der höchsten Ebene des Stapelspeichers,
die besetzt ist, kann ein Maß für den Durchsatz erhalten werden, um nämlich zu bestimmen, ob der Stapel vergrößert
oder verkleinert werden sollte.
909844/0666
Claims (10)
- DIPL. ING. HEINZ BAROfHLE München,DIPL. CHEM. DR. PETER FÜRNISSPATENTANWÄLTEAktenzeichen: Unser Zeichen: P 2855Anmelder:Patentansprüche1J Stapelspeicheranordnung zur kurzzeitigen Speicherung von Informationen bei Nichtabsetzbarkeit dieser Informationen in einem Datenverarbeitungssystem mit einer Speichersteuereinrichtung, welche die Informationsübertragung zwischen zumindest einer Speichereinrichtung und zumindest einer anfordernden Einheit koordiniert, dadurch gekennzeichnet, daß eine Vielzahl von unterschiedlichen Speicherebenen (O bis 3) vorgesehen ist, deren jede eine einer anderen Anforderung zugehörige Information zu speichern imstande ist, und daß Ladeeinrichtungen vorgesehen sind, welche die jeweilige Information in die niedrigste nicht besetzte Ebene zu laden gestatten.
- 2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die Ladeeinrichtungen der jeweiligen Ebene (0 bis 1) zugehörige Anzeigeeinrichtungen (30) enthalten, die eine Anzeige in dem Fall liefern, daß die jeweilige Ebene (0 bis 3) besetzt bzw. nicht besetzt ist, daß mit der betreffenden Anzeigeeinrichtung Decodiereinrichtungen (52,54,56,58) verbunden sind, welche die niedrigste nicht besetzte Ebene zu bestimmen gestatten, daß mit den Decodierungseinrichtungen (52,54,56,58) eine Generatoreinrichtung (60,62,64) verbunden ist, die eine der niedrigsten nicht besetzten Ebene entsprechende Adresse zu erzeugen imstande ist, daß mit der Generatoreinrichtung (60,62,64) Freigabeeinrich-9099U/0666Kanzlei: Herrnstraße 15, München 32tungen (66,68,70,72) verbunden sind, welche die jeweilige Information in die niedrigste nicht "besetzte Ebene zu laden gestatten, und daß mit der Decodierungseinrichtung (52,54,56,58) eine Änderungseinrichtung (74,76,78,80) verbunden ist, welche die der niedrigsten nidat belegten Ebene zugehörige Anzeigeeinrichtung (44;46;48;50) zur Wiedergabe der Besetzung dieser Ebene zu ändern gestattet.
- 3. Anordnung ,nach Anspruch 2, dadurch gekennzeichnet, daß die Anzeigeeinrichtung ein der jeweiligen Ebene zugehöriges Ebeneribelegungs-Fllpflop (44;46; 48;50) enthält, welches in dem Fall gesetzt ist, daß eine Information in die zugehörige Ebene geladen ist, während das betreffende Flipflop in dem Fall zurückgesetzt ist, daß die Information in der zugehörigen Ebene an zumindest eine Speichereinrichtung weitergeleitet ist.
- 4. Anordnung nach Anspruch 3, dadurch gekennzeichnet, daß die Decodiereinrichtung eine Verknüpfungsgliedanordnung (52,54,56,58) enthält, die eingangsseitig an den Ausgängen der Ebenenbelegungs-Flipflops (44, 46,48,50) angeschlossen sind und die ein für die niedrigste nicht besetzte Ebene kennzeichnendes erstes Ausgangssignal und ein für die Besetzung sämtlicher Ebenen kennzeichnendes zweites Ausgangssignal abzugeben vermögen.
- 5. Anordnung nach Anspruch 4, dadurch gekennzeichnet, daß der Stapelspeicher (42) vier Ebenen (0,1,2,3) umfaßt, daß die Anzeigeeinrichtung vier Ebenenbelegungs-Flipflops (44,46,48,50) umfaßt und daß die Verknüpfungseinrichtung eine erste Verknüpfungs-9098U/0666einrichtung (52), welche eine Anzeige darüber liefert, daß die zweite Ebene (1) die niedrigste nicht besetzte Ebene ist, eine zweite Anzeigeeinrichtung (54), welche eine Anzeige darüber liefert, daß die dritte Ebene (2) die niedrigste nicht besetzte Ebene ist, eine dritte Anzeigeeinrichtung (56) welcne eine Anzeige darüber liefert, daß die vierte Ebene (3) dia niedrigste nicht besetzte Ebene ist und eine vierte Anzeigeeinrichtung (58) enthält, welche eine Anzeige darüber liefert, daß die vier Ebenen besetzt sind.
- 6. Anordnung nach Anspruch 5, dadurch gekennzeichnet, daß die vier Anzeigeeinrichtungen (52,54,56,58) durch UND-Funktionen erfüllende Vejrknüpfungsglieder gebildet sind.
- 7. Anordnung nach Anspruch 4, dadurch gekennzeichnet, daß die Änderungseinrichtung eine Verknüpfungseinrichtung (74,76,78,80) enthält, welche auf das Auftreten des ersten Ausgangssignals hin das in Frage kommende Ebenenbelegungs-Flipflop (44;46;48;50) in den Setzzustand zu bringen gestattet.
- 8. Anordnung nach einem der Ansprüche 1 bis 7, zur Speicherung von eintreffenden Daten in einer Speicherebene eines Mehrebenen-Stapelspeichers, dadurch gekennzeichnet, daß eine Detektoreinrichtung (52,54,56,58) vorgesehen ist, die die niedrigste Ebene des Stapelspeichers (42) zu bestimmen gestattet, die rieht besetzt ist, und daß mit der Detektoreinrichtung (52,54,56,58) und dem Stapelspeicher (42) eine Freigäbeeinrichtung (66,68,70,72) verbunden ist, welche die jeweiligen Daten in die niedrigste Ebene zu laden gestattet.9098U/0666-A-
- 9. Anordnung nach Anspruch 8, dadurch gekennzeichnet, daß die Detektoreinrichtung eine Vielzahl von Ebenenbelegungs-Flipflops (44,46,48,50) enthält, deren jedes einer bestimmten Ebene des Stapelspeichers (42) zugehörig ist und eine Anzeige in dem Fall liefert, daß die betreffende Ebene besetzt bzw.nicht besetzt ist, und daß mit den Ebenenbelegungs-Flipflops (44,46,48,50) eine Decodiereinrichtung (52,54,56,58) gekoppelt ist, die ein für die niedrigste nidit besetzte Ebene in dem Stapelspeicher (42) kennzeichnendes Signal zu erzeugen vermag.
- 10. Anordnung nach Anspruch 9, dadurch gekennzeichnet, daß die Freigabeeinrichtung eine mit der Decodiereinrichtung (52,54,56,58) verbundene Generatoreinrichtung (60,62,64) enthält, die eine der niedrigsten nicht besetzten Ebene entsprechende Adresse zu erzeugen vermag, und daß die Freigabeeinrichtung (66,68, 70,72) mit der Generatoreinrichtung derart verbunden ist, daß sie die jeweilige Information in die niedrigste nicht besetzte Ebene zu laden gestattet.909844/0666
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US05/890,006 US4228500A (en) | 1978-03-27 | 1978-03-27 | Command stacking apparatus for use in a memory controller |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE2912073A1 true DE2912073A1 (de) | 1979-10-31 |
| DE2912073C2 DE2912073C2 (de) | 1989-05-03 |
Family
ID=25396103
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE19792912073 Granted DE2912073A1 (de) | 1978-03-27 | 1979-03-27 | Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US4228500A (de) |
| JP (2) | JPS54133844A (de) |
| AU (1) | AU529936B2 (de) |
| CA (1) | CA1132716A (de) |
| DE (1) | DE2912073A1 (de) |
| FR (1) | FR2421439B1 (de) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5616248A (en) * | 1979-07-17 | 1981-02-17 | Matsushita Electric Ind Co Ltd | Processing system for interruption |
| US4366539A (en) * | 1980-10-31 | 1982-12-28 | Honeywell Information Systems Inc. | Memory controller with burst mode capability |
| US4366538A (en) * | 1980-10-31 | 1982-12-28 | Honeywell Information Systems Inc. | Memory controller with queue control apparatus |
| US4410943A (en) * | 1981-03-23 | 1983-10-18 | Honeywell Information Systems Inc. | Memory delay start apparatus for a queued memory controller |
| US4433391A (en) * | 1981-08-17 | 1984-02-21 | Burroughs Corporation | Buffered handshake bus with transmission and response counters for avoiding receiver overflow |
| US4608633A (en) * | 1983-04-01 | 1986-08-26 | Honeywell Information Systems Inc. | Method for decreasing execution time of numeric instructions |
| US4837785A (en) * | 1983-06-14 | 1989-06-06 | Aptec Computer Systems, Inc. | Data transfer system and method of operation thereof |
| US4757440A (en) * | 1984-04-02 | 1988-07-12 | Unisys Corporation | Pipelined data stack with access through-checking |
| US4722052A (en) * | 1984-04-02 | 1988-01-26 | Sperry Corporation | Multiple unit adapter |
| JPS61650U (ja) * | 1985-05-02 | 1986-01-06 | 三菱電機株式会社 | 多重仮想記憶方式の情報処理装置 |
| US4821177A (en) * | 1986-09-02 | 1989-04-11 | Honeywell Bull Inc. | Apparatus for controlling system accesses having multiple command level conditional rotational multiple port servicing priority hierarchy |
| US4942553A (en) * | 1988-05-12 | 1990-07-17 | Zilog, Inc. | System for providing notification of impending FIFO overruns and underruns |
| US5418971A (en) * | 1992-04-20 | 1995-05-23 | International Business Machines Corporation | System and method for ordering commands in an automatic volume placement library |
| US6065093A (en) * | 1998-05-15 | 2000-05-16 | International Business Machines Corporation | High bandwidth narrow I/O memory device with command stacking |
| CN100416494C (zh) * | 2003-04-15 | 2008-09-03 | 威盛电子股份有限公司 | 显示控制器读取系统存储器中的存储数据的方法 |
| US8074019B2 (en) * | 2007-11-13 | 2011-12-06 | Network Appliance, Inc. | Preventing data loss in a storage system |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3413613A (en) * | 1966-06-17 | 1968-11-26 | Gen Electric | Reconfigurable data processing system |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR1483564A (de) * | 1965-06-18 | 1967-09-06 | ||
| US3449724A (en) * | 1966-09-12 | 1969-06-10 | Ibm | Control system for interleave memory |
| BE755666A (fr) * | 1969-09-18 | 1971-02-15 | Burroughs Corp | Memoire tampon pour entree d'ordinateur |
| US3623006A (en) * | 1970-06-29 | 1971-11-23 | Burroughs Corp | Queueing device for the selection of requests for access to a storage medium |
| US3825902A (en) * | 1973-04-30 | 1974-07-23 | Ibm | Interlevel communication in multilevel priority interrupt system |
| US3964054A (en) * | 1975-06-23 | 1976-06-15 | International Business Machines Corporation | Hierarchy response priority adjustment mechanism |
| US4034347A (en) * | 1975-08-08 | 1977-07-05 | Bell Telephone Laboratories, Incorporated | Method and apparatus for controlling a multiprocessor system |
| JPS5247638A (en) * | 1975-10-15 | 1977-04-15 | Toshiba Corp | Information processing device |
| US4023143A (en) * | 1975-10-28 | 1977-05-10 | Cincinnati Milacron Inc. | Fixed priority interrupt control circuit |
| JPS52130246A (en) * | 1976-04-24 | 1977-11-01 | Fujitsu Ltd | Memory access control system |
| US4151598A (en) * | 1978-03-27 | 1979-04-24 | Honeywell Information Systems Inc. | Priority assignment apparatus for use in a memory controller |
-
1978
- 1978-03-27 US US05/890,006 patent/US4228500A/en not_active Expired - Lifetime
-
1979
- 1979-03-20 AU AU45258/79A patent/AU529936B2/en not_active Ceased
- 1979-03-26 FR FR7907576A patent/FR2421439B1/fr not_active Expired
- 1979-03-27 JP JP3616379A patent/JPS54133844A/ja active Pending
- 1979-03-27 CA CA324,245A patent/CA1132716A/en not_active Expired
- 1979-03-27 DE DE19792912073 patent/DE2912073A1/de active Granted
-
1984
- 1984-09-17 JP JP1984140787U patent/JPS6065847U/ja active Granted
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3413613A (en) * | 1966-06-17 | 1968-11-26 | Gen Electric | Reconfigurable data processing system |
Non-Patent Citations (2)
| Title |
|---|
| DE-Z: "Elektronische Rechenanlagen" Heft 2, S. 95-103 * |
| H.W. Kohl: "System IBM/360" Modell 195 * |
Also Published As
| Publication number | Publication date |
|---|---|
| FR2421439B1 (fr) | 1986-11-07 |
| AU529936B2 (en) | 1983-06-23 |
| JPS6065847U (ja) | 1985-05-10 |
| AU4525879A (en) | 1979-10-04 |
| US4228500A (en) | 1980-10-14 |
| FR2421439A1 (fr) | 1979-10-26 |
| DE2912073C2 (de) | 1989-05-03 |
| CA1132716A (en) | 1982-09-28 |
| JPS6217876Y2 (de) | 1987-05-08 |
| JPS54133844A (en) | 1979-10-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE2119063C2 (de) | Datenverarbeitungseinrichtung mit einer Einrichtung zur Steuerung von Programmunterbrechungsanforderungen | |
| DE2350884C2 (de) | Adreßumsetzungseinheit | |
| DE2523414C3 (de) | Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen | |
| DE2415900C3 (de) | Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen | |
| DE60205231T2 (de) | Vorrichtung und verfahren zur effizienten zuteilung von speicherbandbreite in einem netzwerkprozessor | |
| DE3424962C2 (de) | ||
| DE2912073A1 (de) | Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem | |
| DE4220698A1 (de) | System zur dynamischen verknuepfung modularer abschnitte von computersoftware | |
| DE1524102B2 (de) | Elektronische, aus baueinheiten aufgebaute datenverarbeitungsmaschine | |
| DE1499182B2 (de) | Datenspeichersystem | |
| DE4207158A1 (de) | Speicher-zugriffssteuerung | |
| DE2856680A1 (de) | Befehlspuffer fuer ein datenverarbeitungssystem | |
| DE69816714T2 (de) | Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen | |
| DE1499206B2 (de) | Rechenanlage | |
| DE3911721C2 (de) | ||
| DE19957594A1 (de) | Verfahren zum Synchronisieren von Programmabschnitten eines Computerprogramms | |
| DE3919802C2 (de) | Speichersteuersystem für ein Multiprozessorsystem | |
| DE4114053A1 (de) | Computersystem mit cachespeicher | |
| DE3382684T2 (de) | Blockzaehlersystem zur ueberwachung des datentransfers. | |
| DE4135031C2 (de) | Eingabe/Ausgabe-Einrichtung und Verfahren zum Betreiben einer Eingabe/Ausgabe-Einrichtung | |
| DE69028224T2 (de) | Mikroprozessor | |
| DE2726679A1 (de) | Kanalsteuerung fuer datenverarbeitungsanlagen und verfahren zu ihrem betrieb | |
| DE1499286B2 (de) | Datenbearbeitungsanlage | |
| DE2842603A1 (de) | Schnittstelle zwischen einem wartungsprozessor und einer mehrzahl einzeln zu pruefender funktionseinheiten eines datenverarbeitenden systems | |
| DE3787213T2 (de) | Verzögerungsverwaltungsverfahren und -vorrichtung. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8110 | Request for examination paragraph 44 | ||
| 8128 | New person/name/address of the agent |
Representative=s name: BARDEHLE, H., DIPL.-ING., PAT.-ANW., 8000 MUENCHEN |
|
| 8125 | Change of the main classification |
Ipc: G06F 12/00 |
|
| 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 |