[go: up one dir, main page]

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 datenverarbeitungssystem

Info

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
Application number
DE19792912073
Other languages
English (en)
Other versions
DE2912073C2 (de
Inventor
Marvin Kent Webster
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 Information Systems Italia SpA
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 Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2912073A1 publication Critical patent/DE2912073A1/de
Application granted granted Critical
Publication of DE2912073C2 publication Critical patent/DE2912073C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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 _
PATENTANWÄLTE *·*
Aktenzeichen: Unser Zeichen:
Anmelder: Honeywell Information Systems Inc. 200 Smith Street
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
PATENTANWÄLTE m S
P 2855
Aktenzeichen: Unser Zeichen:
Anmelder:
Beschreibung
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)

  1. DIPL. ING. HEINZ BAROfHLE München,
    DIPL. CHEM. DR. PETER FÜRNISS
    PATENTANWÄLTE
    Aktenzeichen: Unser Zeichen: P 2855
    Anmelder:
    Patentansprüche
    1J 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. 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/0666
    Kanzlei: Herrnstraße 15, München 32
    tungen (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. 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. 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. 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/0666
    einrichtung (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. 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. 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. 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. 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. 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
DE19792912073 1978-03-27 1979-03-27 Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem Granted DE2912073A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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