DE3587400T2 - Datenspeicherungsanordnung. - Google Patents

Datenspeicherungsanordnung.

Info

Publication number
DE3587400T2
DE3587400T2 DE85100106T DE3587400T DE3587400T2 DE 3587400 T2 DE3587400 T2 DE 3587400T2 DE 85100106 T DE85100106 T DE 85100106T DE 3587400 T DE3587400 T DE 3587400T DE 3587400 T2 DE3587400 T2 DE 3587400T2
Authority
DE
Germany
Prior art keywords
data storage
data
buffer
segment
segments
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 - Fee Related
Application number
DE85100106T
Other languages
English (en)
Other versions
DE3587400D1 (de
Inventor
David Clifton Cole
Scott Milton Fry
Harry O Hempy
Phuoc Dinh Phan
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE3587400D1 publication Critical patent/DE3587400D1/de
Application granted granted Critical
Publication of DE3587400T2 publication Critical patent/DE3587400T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

    Datenspeichersystem
  • Die vorliegende Erfindung bezieht sich auf die Steuerung eines peripheren Datenspeicher-Untersystems, insbesondere auf die Zuordnung und Neuzuordnung einteilbarer Segmente eines Datenpuffers mit beliebigem Zugriff in einem solchen Speicher-Untersystem.
  • Datenpuffer mit einteilbaren Datenspeichersegmenten werden verwendet, um die Datenübertragungseigenschaften eines peripheren Datenspeichersystems, einschließlich Systeme, die magnetische Aufzeichnungsgeräte verwenden, zu verbessern. Die U.S.- Patente 4423480, 4403286 und 4428064 liefern eine Beschreibung eines solchen Systems und sind in diesem Sinne in dieser Spezifikation mit eingeschlossen. Das Patent 4,403,286 beispielsweise gibt an, daß die Gesamtleistung des Peripheriesystems verbessert werden kann, indem der Betrieb des Peripheriesystems so eingestellt wird, daß die Arbeitslasten zwischen unterschiedlichen Datenpuffern im Peripheriesystem ausgeglichen werden. Die Leistung, das heißt, eine geringe Zugriffszeit des peripheren Datenspeichersystems, kann erhöht werden, indem der Betrieb der Datenpuffer auf verschiedene Arten organisiert wird.
  • Beispielsweise ist dem Artikel von Casey et al mit dem Titel "Replacement Algorithms for Storage Management in Relational Data Bases", IEEE COMPUTER JOURNAL, November 1976, Seiten 306- 314, zu entnehmen, daß Relationen in einer Datenbank eine unterschiedliche Größe aufweisen. Jede definierte Relation kann eine Mehrzahl an einteilbaren Speichereinheiten oder -segmenten aufweisen. Jede Relation hat nur einen Eingang in einer Ersatzsteuerung, die eine zuletzt verwendete verknüpfte Liste enthält. Diese Referenz zeigt die Gruppierung einteilbarer Segmente als eine einzelne Einheit auf einer zuletzt verwendeten verknüpften Liste.
  • Das U.S.-Patent 4,099,235, Hoschler, beschreibt ein Telefonschaltsystem mit einer Mehrzahl an Steuercomputern, die ihre Arbeitslasten basierend auf einem "derzeit gemessenem Nutzungsverhältnis" ausgleichen. Dieses Verhältnis ist ein Quotient der Aufrufwartezeit geteilt durch die freie oder verfügbare Computerzeit. Sobald zuvor eingestellte Schwellenwerte erreicht werden, werden eingehende Aufrufe verschiedenen Steuercomputern zugeordnet (Aufgabenneuzuordnung oder Neuzuordnung). Aus diesem Patent geht daher hervor, daß Arbeitslasten ein Faktor zur Bestimmung der Neukonfiguration oder Aufgabenneuzuordnung sind. Das U.S.-Patent 4,008,460 ist ein Beispiel der Zeitstempelung einer zuletzt verwendeten verknüpften Liste zur Ermöglichung einer vorzeitigen Aussonderung oder einer Zuordnungsauflösung zugeordneter Datenspeichersegmente eines Speichers. Das Patent 3,898,624 zeigt die Variation der Bandbreite eines Daten-Caches durch Variation der Vorzugriffszeit, so daß mehr oder weniger Zuordnung im Cache von den durch den Bediener eingegebenen Steuerungen abhängig ist.
  • Das Patent 4,403,286 zeigt die Verwendung von zählenden Kanalbefehl-Wiederholungsversuchen zum Zweck eines Lastausgleichs.
  • EP-A-0 059 829 beschreibt ein Datenspeicher-Übertragungssystem, das für die Übertragungen zwischen Host-Prozessoren und peripheren Devices einen Puffer verwendet. Datenübertragungen zu/von den Devices werden Puffersegmenten zugeordnet, und das Auswechseln dieser Zuordnungen basiert auf einem LRU-Schema.
  • Die vorliegende Erfindung führt eine Neuzuordnung einteilbarer Speichersegmente zwischen einer Mehrzahl an Benutzern auf der Basis einer normalisierten verstrichenen Zeitperiode durch. Die Neuzuordnung in einem Aspekt der Erfindung ist abhängig von der Aktivität der Datenübertragungen durch einen Benutzer, und in einem weiteren Aspekt ist diese Neuzuordnung abhängig von der Aufzeichnungsgröße. Im Zusammenhang mit dieser Beschreibung ist ein Benutzer ein magnetisches Aufzeichnungsgerät und die Datenspeichereinheit ist der Datenpuffer für alle magnetischen Aufzeichnungsgeräte.
  • In einem weiteren Aspekt der Erfindung wird die normalisierte verstrichene Zeitperiode angezeigt durch die Gesamtanzahl an Zugriffen auf alle magnetischen Aufzeichnungsgeräte, oder Benutzer, in einem peripheren System. In anderen Worten, die verstrichene Zeitperiode wird auf die Gesamtsystemaktivität normalisiert. Diese Zeitnormalisierung ermöglicht die dynamische Neuzuordnung auf einer häufigeren Basis in einem ausgelasteten Bandsystem, was normalerweise höhere Leistung bedeutet; hingegen verwendet in einem langsameren Bandsystem die dynamische Neuzuordnung mehr tatsächlich verstrichene Zeit. Die normalisierte verstrichene Zeitperiode wird auf zwei Arten gemessen. An erster Stelle steht eine Intensitätsmessung, die durch die Anzahl der Kanalbefehl-Wiederholungsversuche, oder Verarbeitungsverzögerungen aufgrund des Datenspeichereinheitsstatus, angezeigt wird. Wenn beispielsweise ein zugeordnetes Datenspeichersegment Daten zur Speicherung empfangen soll und voll ist, dann wird ein Kanalbefehl-Wiederholungsversuch an den anfordernden Host gesendet; dagegen tritt in einer Leseoperation, bei der Daten aus dem Datenpuffer an einen angeschlossenen Host-Prozessor übertragen werden, eine Zeitverzögerung auf, wenn das zugeordnete Segment leer ist. Je mehr Zeitverzögerungen, desto größer die Intensität der Datenübertragungsaktivität. Der zweite Indikator bezieht sich darauf, ob während der normalisierten verstrichenen Zeitperiode überhaupt ein Zugriff eines angeschlossenen Host-Prozessors auf den Datenpuffer erfolgt ist. Dadurch wird angezeigt, ob überhaupt eine Aktivität vorhanden ist, unabhängig von deren Intensität.
  • Das bisher gesagte sowie weitere Themen, Eigenschaften und Vorteile der Erfindung werden nachfolgend anhand von Ausführungsbeispielen der Erfindung ausführlich erläutert; dabei wird auf die begleitenden Zeichnungen verwiesen.
  • Fig. 1 ist ein vereinfachtes Blockdiagramm eines Datenverarbeitungssystems unter Einbeziehung der vorliegenden Erfindung.
  • Fig. 2 ist ein vereinfachtes Flußdiagramm, das die Abläufe des in Fig. 1 dargestellten Systems darstellt und zur Bestimmung dient, ob der Aktivitätsstatus des peripheren Systems daraufhin überprüft werden sollte, ob möglicherweise eine Datensegment- Neuzuordnung vorhanden ist.
  • Fig. 3 bzw. Fig. 4 zeigt Datenstrukturen, die in der praktischen Anwendung der vorliegenden Erfindung in einem in Fig. 1 dargestellten mikroprozessorgesteuerten System verwendet werden.
  • Fig. 5 ist ein Flußdiagramm zur Darstellung der Zuordnungsprozeduren für die Erstellung einer Steuerungseingabe für die dynamischen Zuordnungsoperationen des in Fig. 1 dargestellten Systems.
  • Die Fig. 6 und 7 sind Flußdiagramme, die die Operation des in Fig. 1 dargestellten Systems während der Aktivitätsüberprüfung und der dynamischen Neuzuordnung darstellen.
  • Nachfolgend wird näher auf die Zeichnungen eingegangen, wobei gleiche Ziffern sich auf gleiche Teile und strukturelle Eigenschaften in den unterschiedlichen Zeichnungen beziehen. Im Ausführungsbeispiel ist die Erfindung in einem Speichersystem 10 enthalten, welches ein Paar Steuereinheiten 11 enthält, die auch die Bezeichnung CU-0 und CU-1 tragen. Das Speichersystem 10 läßt sich an eine Mehrzahl an Hosts 12 anschließen, um Datensignale unter der Steuerung der Host-Operationen vom und an die entsprechenden Hosts zu empfangen, zu speichern und zu liefern, wie dies in der Datenverarbeitungstechnologie üblich ist. Das Speichersystem 10 speichert Datensignale für den Host in einer Mehrzahl an Datenspeicher-Devices 13. Dieser Datenspeicher- Device 13 enthalten uneingeschränkt magnetische oder optische Bandaufzeichnungsgeräte, magnetische oder optische Plattenaufzeichnungsgeräte, magnetische oder optische Kartenaufzeichnungsgeräte und Einheitenaufzeichnungsanlagen. Die Kommunikation zwischen den Hosts 12 und dem Speichersystem 10 erfolgt über eine Mehrzahl an Eingabe/Ausgabe-Kanälen 14, die im allgemeinen in Übereinstimmung mit den Eingabe/Ausgabe-Kanälen liegen die in folgendem Patent beschrieben werden: Amdahl, et al, U.S.-Patent Nr. 3,400,371. Zur Verbesserung des Betriebsablaufs des Speichersystems 10 enthält jede Steuereinheit 11 einen Datenpuffer 15, der vorzugsweise aus halbleitenden Speicherelementen mit beliebigem Zugriff aufgebaut ist.
  • Die Puffer 15 sind die hauptsächlichen Leiterelemente für die Datenübertragung zwischen den Hosts 12 und die Devices 13; die Anordnung ist dabei so aufgebaut, daß ein Host 12 mit einem gegebenen Device 13 durch einen beliebigen Puffer 15 und über eine beliebige Steuereinheit 11 kommunizieren kann. Die Kommunikationen von den Eingabe/Ausgabe-Kanälen 14 zu einem Puffer 15 erfolgen über den Kanaladapter CXX 80 und den Bus 81 in CU-0 und über den Bus 96 an CU-1. Es herrscht Einvernehmen darüber, daß CU-1 identisch wie CU-0 aufgebaut ist und zusätzliche Anschlüsse (nicht dargestellt) aufweist. Beispielsweise verbindet der Bus 97 einen Kanaladapter (nicht dargestellt) von CU-1 mit dem Puffer 15 von CU-0 über Kanaldatenübertragungsschaltungen 16. Die Schaltungen 16 sind bekannte automatische Datenübertragungsschaltungen, die normalerweise in der Datenverarbeitungstechnologie verwendet werden.
  • Da eine Mehrzahl an Devices 13 über einen einzelnen Puffer 15 an eine Mehrzahl an Hosts 12 kommuniziert, wird der Puffer 15 dynamisch als eine Mehrzahl an einteilbaren Datenspeichersegmenten verwaltet, wie dies durch die gestrichelten Linien 17 angegeben ist. Das heißt, wenn ein gegebener Device 13 mit einem Host 12 kommuniziert, dann wird dem gegebenen Device 13 ein Datenspeichersegment des Puffers 15 zugeordnet oder zugeordnet, um die Datenübertragungen zu verwalten. Solchen Devices 13, die derzeit keine Daten übertragen, brauchen keine Datenspeichersegmente zugeordnet werden; aufgrund dieser Freiheit kann der Puffer 15 relativ klein sein, beispielsweise in der Größenordnung von 256.000 Bytes an Datenspeicher. Zuordnungen des Puffers 15 an die Devices 13 werden normalerweise zwischen aufeinanderfolgenden Datenübertragungen in jeder unabhängigen Reihe aus Datenübertragungen oder Befehlsketten aufrechterhalten Kommunikationen zwischen dem Puffer 15 und den Devices 13 werden durch eine automatische Datenübertragungsschaltung DX 83 geleitet. Die Verbindungen von DX 83 an die Devices 13 erfolgen über ein Paar an Kabeln 90 und 94, wie dies in den U.S.-Patenten 4,403,286 und 4,423,480 angegeben ist. In ähnlicher Weise ist CU-1 an die Devices 13 durch ein anderes Paar an Kabeln 93, 95 angeschlossen.
  • Die Steuerung des Speichersystems 10 sitzt in den beiden Steuereinheiten 11. Die Darstellung in Fig. 1 ist insofern vereinfacht, als diejenigen Steuerschaltungen, die nicht für das Verständnis der vorliegenden Erfindung relevant sind, nicht dargestellt sind. Jede Steuereinheit 11 enthält eine Steuerung 33, vorzugsweise mit einem programmierten Digital-Computer oder Mikroprozessor, wie in den Patenten 4403286 und 4423480 dargestellt ist. Gemischte Steuerungen werden durch die Ziffer 34 dargestellt. Da die Steuerung des Speichersystems 10 zwischen CU-0 und CU-1 aufgeteilt wird, sorgt der Verbindungsbus 109 für die Kommunikationen zwischen den beiden Steuereinheiten 11, um Steuerdaten auszutauschen, die für die logische Steuerung von Speichersystem 10 notwendig sind. Die gemischte Steuerung 34 steuert ebenfalls die automatischen Datenübertragungsschaltungen CX 16 und DX 83 und die Operationen des Puffers 15. Die Verbindungen 81, 35 und 36 stellen diese Steuerungen dar.
  • Ein erster Teil der Erfindung bezieht sich auf unterschiedliche Messungen der Datenübertragungsaktivität in CU-0 und CU-1, um sicherzustellen, daß die Arbeit von den beiden Steuereinheiten auf einer dynamischen Basis auf effektive Weise ausgeführt wird. Da die Puffer 15 von CU-0 und CU-1 die hauptsächlichen Leitungen für Datenübertragungen zwischen den Hosts 12 und den Devices 13 darstellen, ist der Status der beiden Puffer 15 zum Zeitpunkt einer Datenanforderung ein Hinweis auf die derzeitige Fähigkeit der entsprechenden Steuereinheiten 11, um auf effektive Weise den Anforderungen der Hosts 12 nachzukommen. Wenn immer beispielsweise ein Host 12 Daten vom Speichersystem 10 anfordert und diese Daten sich nicht im Puffer 15 befinden, dann wird dieser Zustand als Hinweis auf die Arbeitslast der Steuereinheit und somit auf die Effektivität der Datenübertragung betrachtet. In ähnlicher Weise gilt, daß wenn ein Host 12 die Aufzeichnung von Daten auf einem Device 13 wünscht und das Datenspeichersegment des Puffers 15, das dem Device zugeordnet ist, schon mit Daten gefüllt ist, so ist dieser Status ein weiterer Hinweis der Arbeitslast von Steuereinheit 11. Auch gilt, daß wenn ein Segment des Puffers 15 nicht einem Device 13 zugeordnet wird, wenn ein Host 12 die Verwendung dieses Device anfordert, das eine Pufferoperation benötigt, dann ist dies ein Hinweis auf die Arbeitslast der Steuereinheit. Solche Angaben werden durch die Steuerung 34 bestimmt, während auf die Eingabe/Ausgabe-Kanalbefehle vom Host 12 geantwortet wird, die zur Bestimmung dienen, daß der Befehl nicht unverzüglich ausgeführt werden kann. Die Steuerung 34 zeigt anschließend die Verzögerung an, indem sie über Leitung 40 durch CXX 80 an den anfordernden Host 12 einen Kanalbefehl-Wiederholungsversuch sendet. Solche Kanalbefehl- Wiederholungsversuche werden ausführlich in R.L. Cormier, et al, U.S.-Patent Nr. 3,688,274, beschrieben. In Übereinstimmung mit dieser Erfindung enthält jede Steuereinheit 11 Schaltungen und Steuerungen für die Verwendung der CCR-Signale, um die Effektivität in jeder der Steuereinheiten 11 aufrechtzuerhalten. Die Zählung der CCR-Signale zeigt die Intensität der Operationen für jedes der Devices 13 während jeder normalisierten durchlaufenen Zeitperiode an.
  • Für jedes eingeteilte Segment eines Puffers 15 wird für die Anzahl der CCRs eine separate Zählung "CCRK" verwendet. Die Zählungen CCRK werden in den Zählerregistern 41, 42 gespeichert. Das CCR-Signal auf Leitung 40 geht ebenfalls zu den entsprechenden Zählerregistern 41, 42, um die entsprechenden CCRK-Zählungen zu erhöhen. Jedes CCR-Signal hängt mit einem adressierten Device 13 (der Device, dem das Segment, welches durch die Register 41, 42 zugeteilt ist, zugeordnet wird) zusammen; die Register 41, 42 werden entsprechend adressiert. Auf diese Weise wird der Aktivitätsintensitätsstatus für jedes der zugeordneten Puffersegmente in den separaten CCR-Zählungen aufrechterhalten. Diese separaten Zählungen geben ebenfalls die relative Reaktion der entsprechenden Devices 13 und der damit verbundenen Segmente des Puffers 15 auf die vom Host 12 angeforderten Operationen wieder.
  • Alle Aktivitäten des Speichersystems 10 basieren auf Adressen des Device 13. Die Kombination eines zugeordneten Segments des Puffers 15 mit einem Aufzeichnungsgerät oder einem Device 13 wird als logischer Device bezeichnet, das heißt, für Hosts 12 scheinen der Device 13 und das zugeordnete Segment als eine einzelne Einheit. Bei allen Kommunikationen jedes Hosts 12 mit dem Speichersystem 10 wird stets ein Device 13 adressiert; entsprechend werden die Segmente des Puffers 15 durch die Hosts 12 nicht ausdrücklich adressiert, sondern durch eine Adresse des Device 13 implizit adressiert. Die Steuerung 34 reagiert auf die empfangenen Eingabe/Ausgabe-Befehle, die von den Hosts 12 kommen, wie dies in den bei liegenden Dokumenten ausführlich beschrieben ist. Wenn ein CCR an einen Host 12 geliefert wird, wie dies oben ausführlich dargestellt ist, dann liefert die Steuerung 34 ein Adreßsignal über den Bus 43, um eines der Register 41, 42 auszuwählen, das den adressierten logischen Device darstellt und inkrementiert die Zählung CCRK im adressierten Zählerregister. Zur Implementierung der vorliegenden Erfindung in einem bevorzugten Modus zur Messung der normalisierten durchlaufenen Zeit verfügt jede Steuereinheit 11 über eine Zählung der gesamten Device-Operationen; diese Zählung erfolgt im Device-Operationszähler 45. Jedesmal, wenn durch eine Steuereinheit 11 auf einen Device 13 zugegriffen wird, werden die Inhalte des Zählers 45 durch eine Einheit inkrementiert. Zur Überprüfung des Ablaufs einer normalisierten durchlaufenen Zeit wird jeder Zeitzähler inkrementiert, die numerischen Inhalte darin nach der Inkrementierung werden durch die Vergleichsschaltung 46 mit einem Schwellen- oder Grenzwert verglichen, der im Register 47 gespeichert ist. Wenn die Inhalte des Zählers 45 den Schwellenwert des Registers 47 erreichen oder überschreiten, dann ist die Datenübertragungsaktivität des Datenpuffers 15 zu untersuchen.
  • Die normalisierte durchlaufene Zeit wird durch die Steuerung 34 erzeugt, die den Zähler 45 um eine Einheit erhöht, indem sie über die Leitung 48 jedesmal dann ein Signal liefert (in der programmierten Anordnung wird die äquivalente Programmfunktion ausgeführt), wenn eine Operation mit einem Device 13 gestartet wird. In jeder Steuereinheit 11 befindet sich ein Zähler 45. Das Register 47 speichert den numerischen Grenzwert, der den Ablauf einer normalisierten durchlaufenen Zeit angibt. Die Vergleichsschaltung 46 vergleicht den Zählwert des Zählers 45 mit dem Grenzwert in Register 47. Jedesmal wenn die Steuerung 34 einen Device 13 auswählt oder aktiviert, liefert die Steuerung 34 über die Leitung 49 ein Signal zur Aktivierung der Vergleichsschaltung 46. Wenn die Vergleichsschaltung 46 feststellt, daß die numerischen Werte im Zähler 45 unterhalb des Grenzwerts in Register 47 liegen, so geht ein Signal über Leitung 50 durch die OR-Schaltung 51 zur Steuerung 34, was bedeutet, daß die normalisierte Zeitperiode noch nicht durchlaufen wurde. Wenn die Vergleichsschaltung 46 feststellt, daß die numerischen Werte von Zähler 45 den Grenzwert der Inhalte von Register 47 erreicht oder überschritten haben, so geht ein Aktivitätsüberprüfungssignal über die Leitung 54, um das Sampling der AND-Schaltung 55 sowie der AND/NOT-Schaltung 57 durchzuführen. Ist für das Datenspeichersegment des Datenpuffers 15 ein Konkurrenzzustand mit der derzeitigen Datenübertragung zu verwenden, das heißt, mit dem adressierten Device 13, dann folgt keine Aktivitätsüberprüfung. Der Konkurrenz-Verriegelungsschaltkreis 56 wird, wie an späterer Stelle beschrieben wird, jedesmal dann eingestellt, wenn für ein beliebiges Datenspeichersegment des Puffers 15 ein Konkurrenzzustand auftaucht. Die AND-Schaltung 55 reagiert auf den Konkurrenz-Verriegelungsschaltkreis 56, der auf Durchlauf und auf kein Überprüfungssignal durch OR-Schaltung 51 bis Steuerung 34 eingestellt ist. Andererseits gilt, daß wenn der Konkurrenz-Verriegelungsschaltkreis 56 nicht eingestellt ist (kein Konkurrenzzustand des Puffers 15), die AND/NOT-Schaltung 57 auf das Signal in Leitung 54 reagiert, um den Zähler 45 zum Starten einer neuen normalisierten Zeitperiode einzustellen. Das Ausgabesignal der AND/NOT-Schaltung 57 geht ebenfalls zu Steuerung 34, um die Aktivitätsüberprüfung einzuleiten, was an späterer Stelle beschrieben wird und wie in Fig. 1 durch die Neuzuordnungssteuerung 65 dargestellt wird. Die Leitung 66 befördert das Ausgabesignal der AND/NOT-Schaltung 57 für die Betätigung der Neuzuordnungssteuerung 65.
  • Bei jeder Aktivierung untersucht die Neuzuordnungssteuerung 65 eine Pufferaufzeichnungstabelle BRT 141, die Pufferstatustabelle BST 137 und die logische Device-Tabelle LDT 133, um die Aktivitätsintensität für jeden der logischen Devices während der soeben abgelaufenen, normalisierten durchlaufenen Zeitperiode zu messen.
  • Die Neuzuordnungssteuerung 65 verwendet eine Mehrzahl an Registern für die Speicherung von Zählungen zur Erstellung einer Angabe der maximalen Intensität der Devices 13 und somit der Datenspeichersegmente des Datenpuffers 15. Sie stellt ebenfalls fest, ob ein beliebiger Device 13 überhaupt eine Aktivität aufwies und welcher Datenspeicherstatus im Datenpuffer 15 vorhanden ist. FICOUNT 68 wir immer dann auf Einheit gesetzt, wenn ein Datenspeichersegment des Puffers 15 während einer Aktivitätsüberprüfung frei oder inaktiv ist. Das Register FC 69 speichert die maximale Fehlerzählung (hier CCR Zählung CCRK) für alle Datenspeichersegmente des Datenpuffers 15. Diese maximale Zählung wird verwendet, um festzustellen, welches der Datenspeichersegmente die meisten CCRs (größte Aktivitätsintensität) während der unmittelbar vorangegangenen normalisierten Zeitperiode aufwies. Das Register SEG 70 speichert die Identifikation des Datenspeichersegments von Datenpuffer 15, das die maximale Zählung, die FC 69 angegeben ist, erfuhr. Das Register S 71 identifiziert das Datenspeichersegment des Datenpuffers 15, das derzeit durch die Neuzuordnungssteuerung 65 untersucht wird. Das Register DECCR 72 gibt an, ob eine Zuordnungsauflösungsprozedur durchgeführt werden sollte, sobald der nächste Kanalbefehl- Wiederholungsversuch CCR an einen Host 12 gesendet wird. Während des Lesemodus gibt dieses Bit die Zuordnungsauflösungs- und Löschdaten des Datenpuffers 15 (wie dies im Patent 4,403,286 beschrieben wurde) für die Bildung von Puffersegmentpaaren an. Das Register ACT 262 enthält ein Bit für jedes der Datenspeichersegmente des Datenpuffers 15. Die entsprechenden Bits in ACT 262 werden von der Steuerung 34 während der normalisierten Zeitperiode eingestellt, wenn auf die entsprechenden Datenspeichersegmente des Datenpuffers 15 zu jedem beliebigen Zweck zugegriffen wird. Diese Bits zeigen an, ob für die entsprechenden Datenspeichersegmente während der normalisierten Zeitperiode eine Aktivität vorhanden war. In der bevorzugten Anordnung ist das Register ACT 262 ein Teil von BST 137.
  • Nachfolgend wird anhand von Fig. 2 die Vorgehensweise der Steuerung 34 beschrieben, wenn festgestellt werden soll, ob eine Aktivitätsüberprüfung des Datenpuffers 15 durchzuführen ist. Diese Figur entspricht dem Steuerfluß durch einen Mikroprozessor in Steuerung 34 bei der Ausführung der Funktionen, die durch die Punkte 45 bis 57 in Fig. 1 dargestellt sind. Die Aktivität beginnt, sobald die Aktivität ausgewählt wird, beispielsweise ein Ergebnis der Ausführung des Mikroprogrammoduls mit der Bezeichnung "DM SDO". Die Ziffer 543 stellt die Auswahlprozesse des Device 13 dar, die nicht für ein Verständnis der vorliegenden Erfindung erforderlich sind. Wenn wir annehmen, daß ein Device 13 für nachfolgende Datenübertragungsoperationen betätigt werden soll, dann startet die Steuerung 34 an Schritt 115 die Operation des Device 13. Dieser Schritt kann bekannten Prozeduren für Startoperationen von peripheren Devices folgen. Sobald ein Device 13 von der Steuerung 34 ein Startsignal empfangen hat, inkrementiert die Steuerung 34 an Schritt 116 den Zähler 45 um eine Einheit. In Schritt 117 betätigt die Steuerung 34 die Vergleichsschaltung 46, um die numerischen Inhalte des Zählers 45 mit den numerischen Inhalten des Registers 47 zu vergleichen. Ist die Zählung nicht gleich groß oder größer als der Schwellenwert, der durch die numerischen Inhalte von Register 47 dargestellt wird, dann führt die Steuerung 34 andere Maschinenoperationen aus, wie dies durch die Ziffer 503 dargestellt ist. Die Ziffer 502 zeigt an, daß eine Rückkehr zu anderen Operationen durch die Steuerung 34 von anderen Maschinenoperationen aus möglich ist, deren Beschreibung für das Verständnis der vorliegenden Erfindung nicht erforderlich ist. Für den Fall, daß in Schritt 117 die numerischen Inhalte des Zählers 45 größer oder gleich groß sind wie die numerischen Inhalte des Registers 47, untersucht in Schritt 118 die Steuerung 34 den Puffer-Konkurrenz-Verriegelungsschaltkreis 56. War ein Konkurrenzzustand für eines der Datenspeichersegmente des Datenpuffers 15 vorhanden, wie dies an späterer Stelle beschrieben wird, dann erfolgt keine Aktivitätsüberprüfung, weil die Neuzuordnung zu diesem Zeitpunkt nicht möglich ist. In anderen Worten, solange eine laufende Anforderung nach zusätzlichem Datenspeicherplatz in Puffer 15 vorhanden ist, sollte die dynamische Neuzuordnung solange nicht voranschreiten, bis dieser Konkurrenzzustand entfernt wurde. Unter diesem Aspekt stehen zwei Alternativen für die Durchführung der vorliegenden Erfindung zur Auswahl. Der Zähler 45 kann nicht auf Null zurückgesetzt werden, wenn ein Puffer-Konkurrenzzustand vorhanden ist. Entsprechend gilt, daß jedesmal, wenn ein Device 13 für eine nachfolgende Datenübertragungsoperation ausgewählt werden soll, die Vergleichsschaltungen 46 aktiviert werden, wie dies an Schritt 117 angezeigt wird. Dies erfolgt, bis der Konkurrenzzustand für den Speicherplatz des Datenpuffers 15 entfernt wird, so daß eine dynamische Neuzuordnung ausgeführt werden kann, ohne daß der Konkurrenzzustand des derzeitigen Datenspeicherplatzes in Puffer 15 Schwierigkeiten bereitet. In einer anderen Anordnung kann die Aktivitätsüberprüfung zum Zweck einer möglichen Neuzuordnung bis zum Ende der nächsten folgenden normalisierten Zeitperiode zurückgestellt werden. Im bevorzugten Modus, nämlich dem zuerst beschriebenen Modus, wird die normalisierte durchlaufene Zeitperiode durch einen eventuell vorhandenen Konkurrenzzustand im Datenpuffer 15 geringfügig erweitert.
  • Wir kehren nun zu Fig. 2 zurück. Wenn an Schritt 118 ein Pufferkonkurrenzzustand festgestellt wird, dann werden von der Steuerung 34 andere Maschinenoperationen (nicht dargestellt) ausgeführt, wie dies an 503 angezeigt wird. Wenn an Schritt 118 kein Pufferkonkurrenzzustand vorhanden ist, dann setzt die Steuerung 134 an Schritt 119 den Zähler 45 auf Null zurück, um eine neue normalisierte Zeitperiode zu starten. Dann fährt die Steuerung 34 damit fort, die Aktivität des Datenpuffers 15 während der soeben abgeschlossenen normalisierten Zeitperiode zu überprüfen und, soweit erforderlich, eine dynamische Neuzuordnung des Puffersegments durchzuführen.
  • Als nächstes werden die Datenstrukturen zur Implementierung der Erfindung beschrieben. Die logischen Devices werden identifiziert und über LDT 133 (Abbildung 4) gesteuert, während die Segmente des Datenpuffers 15 der entsprechenden logischen Devices über BST 137 (Abbildung 3) gesteuert werden. Für jedes der Segmente des Puffers 15 gibt es in den entsprechenden Steuereinheiten 11 ein Eintragsregister in BST 137. Da alle Befehle, die vom Host 12 abgesendet und vom Speichersystem 10 empfangen werden, auf Adressen des Device 13 und nicht auf Segmentadressen des Puffers 15 basieren, stellt LDT 133 eine indirekte Adreßgrundlage für BST 137 dar. Unter diesem Gesichtspunkt zeigt BSTP 253 in jedem der Register von LDT 133 die Adresse des entsprechenden Eintrags in BST 137 an. Die Zählerregister CCRK 41, 42 sind in LDT 133. IRAH 225 ist ein Bit, welches ein kommendes Leseverbot anzeigt; das heißt, das Speichersystem 10 überträgt keine Daten von einem Device 13 zum Datenpuffer 15, ohne daß vom Host 12 ein Befehl empfangen wurde. DECCR 254 (gleich wie DECCR 72) ist ein Bit, welches die Steuereinheit so steuert, daß wenn ein CCR zum adressierten Device 13 gesendet wird, welches durch das Register in LDT 133 repräsentiert ist, die Zuordnung des entsprechenden Datenspeichersegments des Datenpuffers 15 aufgelöst wird. Dieses Bit ist dann nützlich, wenn eine dynamische Neuzuordnung ein Datenspeichersegment enthält, welches Daten speichert, die aus einem Device 13 gelesen wurden. Andere LDT 133-Felder, die für das Verständnis der vorliegenden Erfindung nicht relevant sind, die sich auf logische Devices beziehen, die aus einem Device 13 und einem zugeordneten Segment in Puffer 15 bestehen, werden durch die Ellipse 256 dargestellt.
  • BST 137 (Abbildung 3) bezieht sich auf Segmentoperationen des Puffers 15 und besitzt eine Mehrzahl an Feldern in jedem seiner Register für die entsprechenden Segmente von Puffer 15. DADDR 260 speichert die Adresse eines Device 13, dem das Datenspeichersegment zugeordnet wurde. Diese Zuordnung wird angezeigt durch das A-Bit 263, welches auf Einheit gesetzt wurde. Wird das Datenspeichersegment nicht zugeordnet, dann ist das A-Bit 263 gleich Null. Die Inhalte aus DADDR 260 werden dann ignoriert. Das Feld LRU 261 bezieht sich auf die LRU-verknüpfte Liste, die für die Verwaltung des Datenpuffers 15 verwendet wird. Wenn das dargestellte Datenspeichersegment mit einem anderen Datenspeichersegment einem Device 13 zugeordnet wird, so werden die entsprechenden Einträge in LRU 261 gleich Null gesetzt; der andere Eintrag in Datenspeichersegment LRU 251 stellt beide Datenspeichersegmente für Zwecke der Steuerung der Zuordnung und des Auswechselns dar. Das Bit ACT 262 zeigt an, daß auf das dargestellte Datenspeichersegment während der derzeitigen normalisierten Zeitperiode zugegriffen wurde, wie dies durch die Auswahl seines entsprechenden Device 13 angezeigt wird. Das Feld E 264 zeigt an, daß das Segment von Puffer 15 derzeit aktiv ist; das heißt, zur Zeit wird eine Datenverarbeitungsoperation ausgeführt, die das Segment in Puffer 15 mit einbezieht, welches durch den Eintrag in BST 137 repräsentiert wird. Das Feld F 265 zeigt an, daß das Segment für die Freisetzung, das heißt, die Neuzuordnung, programmiert wurde. RANGE 268 gibt die relative Größe der Datenaufzeichnungen in den derzeit übertragenen Blöcken an, beispielsweise klein, mittel, groß und sehr groß. Das Feld D267 gibt an, ob es sich bei den Operationen des magnetischen Bandaufzeichnungsgeräts um Bewegungen nach hinten oder vorn handelt. Wenn das Bit P 270 eingestellt ist, gibt es an, daß das Segment mit einem anderen Segment zu einem Paar zusammengefaßt ist. Die Ellipse 269 zeigt an, daß in einer aufgebauten Anordnung andere Felder, die für das Verständnis der vorliegenden Erfindung nicht relevant sind, in einem typischen BST 137 enthalten sein können. Aufgrund der Konvention befinden sich nur geradzahlig numerierte Datenspeichersegmente (0, 2, 4 . . . ) eines Paares an Datenspeichersegmenten auf der LRU verknüpften Liste, während die ungeradzahlig numerierten Datenspeichersegmente (1, 3, 5 . . . ) bei der Zusammenfassung in Paaren in der LRU verknüpften Liste ausgelassen werden.
  • Die Einstellung des Konkurrenzbits 56 erfolgt während der Zuordnungsverarbeitung, wie dies in Fig. 5 dargestellt ist. Jede Anforderung nach einer Datenverarbeitung, die von einem Host-Prozessor empfangen wird, in dem derzeit keine Zuordnung vorhanden ist (angezeigte LDT 133 durch das BSTP 253 gleich Null), bewirkt die Ausführung der in Fig. 5 dargestellten Maschinenoperationen. Eine Aktivierung der Steuerung 34 zur Ausführung der in Fig. 5 dargestellten Maschinenoperationen erfolgt an 274. Zuerst untersucht die Steuerung 34 eine laufende Zuordnungstabelle (PAT 134), die die Adressen aller Devices 13 angibt, die eine Zuordnung eines Datenspeichersegments aus dem Datenpuffer 15 benötigen. Zeiger innerhalb von PAT 134 zeigen den Anfang und das Ende der Liste mit den Devices 13 unter Verwendung bekannter Tabellenkonstruktionstechniken. Jeder Eintrag von PAT 134 enthält das gepaarte Bit 135 zur Anzeige, ob ein oder zwei Datenspeichersegmente zugeordnet werden sollen. Wenn P = 0 ist, wird ein Datenspeichersegment zugeordnet, wenn P = 1 ist, werden zwei Datenspeichersegmente zugeordnet. Der Anfang der Zuordnungsliste mit den Adressen der Devices 13 wird durch das Zeichen "I" gekennzeichnet, das Ende der Liste wird durch das Zeichen "O" markiert.
  • An Schritt 280 bestimmt die Steuerung 34, ob die laufende Zuordnungstabelle (PAT) 134 leer ist; wenn die Tabellenzeiger in der Steuerung 34 (nicht dargestellt) auf dem ersten Eintrag und Tabellenzeiger (nicht dargestellt) auf dem letzten Eintrag in PAT 134 gleich sind, dann ist PAT 134 leer. Wenn PAT 134 leer ist, fährt die Steuerung 34 an 288 mit anderen Maschinenoperationen fort. Andererseits gilt, daß wenn PAT 134 nicht leer ist (laufende Zuordnung eines Datenspeichersegments), die Steuerung 34 an 281 die Dateninhalte von BSTP Feld 253 in LDT 133 nach dem adressierten Device 13 absucht. Ist BSTP 253 nicht gleich Null, so besitzt die logische Device-Adresse sowohl eine laufende Zuordnung als auch eine Zuordnungsauflösung. Die Steuerung 34 fährt anschließend über den Rückkehrpunkt 288 mit anderen Maschinenoperationen fort. Wenn das untersuchte BSTP 253 von LDT 133 gleich Null ist, dann ist die Zuordnung eines Segments des Datenpuffers 15 geeignet. An 282 untersucht die Steuerung 34 das Bit P 135 auf die laufende Zuordnungsanforderung. Wenn P = 0 ist, dann ist ein einzelnes Segment des Datenpuffers 15 dem adressierten Device 13 zuzuordnen, um einen logischen Device darzustellen. Um ein einzelnes Segment zuzuordnen, aktiviert die Steuerung 34 an 283 das logische Modul BM ASE (nicht dargestellt), welches unter Verwendung bekannter Zuordnungsverfahren ein freies Datenspeichersegment des Datenpuffers 15 zuordnet. Eine "freie Liste" mit freien Datenspeichersegmenten wird in der gewohnten Weise geführt. Nach der Beendigung eines Versuchs zur Zuordnung eines einzelnen Segments in Schritt 283 überprüft die Steuerung 34 an Schritt 284 den Rückkehrcode RC vom logischen Modul BM ASE. Wenn RC = 0 ist, wurde ein Segment des Datenpuffers 15 dem adressierten Device 13 erfolgreich zugeordnet. Dann wird in Schritt 285 der Ausgabezeiger O von PAT 134 um eine Einheit inkrementiert. An Schritt 286 paßt die Steuerung 34 nach dem Schritt 285 den Eintrag, der BST 137 entspricht, an das soeben zugeordnete Puffersegment an, indem sie ihr Bit A 263 und Bit E 264 auf Einheit setzt, um anzuzeigen, daß das angezeigte Segment zugeordnet und aktiv ist, und stellt das Bit P 270 neu ein, um die Zuordnung eines einzelnen Datenspeichersegments anzuzeigen. Die Steuerung 34 stellt auch DADDR 260 auf die Adresse des adressierten Device 13 ein. Die Steuerung 34 kehrt dann zum aktivierenden logischen Modul (nicht dargestellt) an 288 zurück, um andere Maschinenoperationen durchzuführen.
  • Wir kehren nun zu Schritt 284 zurück. Wenn der Rückkehrcode RC nicht gleich Null ist, weiß die Steuerung 34, daß die versuchte Zuordnung nicht erfolgreich war. Das bedeutet, daß unter den Datenspeichersegmenten aus Datenpuffer 15 ein Konkurrenzzustand herrscht. Entsprechend wird an Schritt 287 das Konkurrenzbit oder der Verriegelungsschaltkreis 56 (Fig. 1) auf Einheit gesetzt. Anschließend fährt die Steuerung 34 über den Punkt 288 mit anderen Maschinenoperationen fort.
  • Wenn die Steuerung 34 an Schritt 282 feststellt, daß das gepaarte Bit P 135 gleich Einheit ist, dann werden dem adressierten Device 13 zwei Datenspeichersegmente zugeordnet. Diese gepaarte Zuordnung kann auf mehrere Arten eingeleitet werden. Eine dieser Möglichkeiten liegt in Übereinstimmung mit der vorliegenden Erfindung während der dynamischen Neuzuordnung. Die Identifizierung des Paarbits ist in den Fig. 6 und 7 ersichtlich. Wenn ein Paar Datenspeichersegmente zuzuordnen ist, aktiviert die Steuerung 34 an 289 ein logisches Modul BM APR (nicht dargestellt), das unter Verwendung bekannter Technologien dem Adreß-Device 13 zwei Datenspeichersegmente zuordnet. In der aufgebauten Anordnung ist ein geradzahlig numeriertes Datenspeichersegment das niedriger numerierte Segment in jedem Paar an Datenspeichersegmenten. Wie dies in bezug auf BST 137 in Fig. 3 angezeigt wird, gilt, daß wenn einem gegebenen Device 13 mehr als ein Datenspeichersegment zugeordnet wird, nur das geradzahlig numerierte Datenspeichersegment einen Eintrag in der LRU verknüpften Liste 261 hat. Aufgrund der Konvention sind in der bevorzugten Anordnung der Erfindung die Segmente des Datenpuffers 15 von 0 bis N numeriert. Die geradzahlig numerierten Segmente befinden sich stets auf der LRU Liste 261, während die ungeradzahlig numerierten Segmente nur dann auf der LRU Liste sind, wenn sie einzeln einem adressierten Device 13 zugeordnet sind. Die Gruppierung von Zuordnungssegmenten mit einem der Zuordnungssegmente, das nur in einer LRU Ersatzsteuerliste vorhanden ist, beispielsweise Liste 261, ist bekannt und wird daher an dieser Stelle nicht ausführlich erläutert. Nach der Beendigung des Versuchs zur Zuordnung eines Pufferpaares in Schritt 289 fährt die Steuerung 34 an Schritt 284 fort, wie dies bereits an früherer Stelle beschrieben wurde. Bezüglich des Schritts 286 wird BST 137 in Übereinstimmung mit der gepaarten Zuordnung angefügt, indem sowohl das Bit A 263 als auch das Bit E 264 beider Datenspeichersegmente auf Einheit und die Bits P 270 für beide Datenspeichersegmente auf Einheit gesetzt werden.
  • Fig. 6 stellt die Maschinenoperationen der Steuerungen 65 dar, die vorzugsweise von einem Mikroprozessor ausgeführt und gesteuert werden, um die Aktivität des Datenpuffers 15 zu untersuchen und zwar bezüglich der Aktivitätsintensität für (Devices 13) eine soeben abgeschlossene, normalisierte durchlaufene Zeitperiode. Die Steuerung 65 initialisiert an Schritt 290 ihre Register von Fig. 1 zur Durchführung einer Untersuchung der Aktivität des logischen Device. Die Initialisierung besteht darin, die Register S 71, FC 69, SEG 70 und FICOUNT 68 auf Null (oder einen anderen Nullwert) zu setzen. Die Untersuchung der Aktivität aller Datenspeichersegmente von Datenpuffer 15 wird innerhalb der Schleife 291 erzielt, die die CCR-angezeigten Aktivitäten jedes Datenspeichersegments, angefangen beim Segment mit der Ziffer Null bis zum Segment mit der Ziffer N, seriell untersucht. Aufgrund der Paarung kann die Anzahl der Schleifendurchläufe zwischen N/2 und N variieren. An Schritt 292 greift die Steuerung 65 auf BST 137 zu, um festzustellen, ob das in Register S 71 identifizierte Datenspeichersegment inaktiv oder frei ist. Wenn das Bit F 265 gleich ist, dann ist das untersuchte Datenspeichersegment, das durch die Inhalte des Registers S 71 bezeichnet wird, frei. Wenn ACT 262 gleich Null ist, so war das Segment während der gesamten normalisierten durchlaufenen Zeitperiode inaktiv. Bei einem freien oder inaktiven Segment setzen die Steuerungen 65 an Schritt 293 das Bit FICOUNT 68 auf Einheit, um anzuzeigen, daß am Ende der normalisierten durchlaufenen Zeitperiode mindestens eines der Datenspeichersegmente von Datenpuffer 15 frei oder inaktiv war. Von Schritt 293 aus fährt die Steuerung 34 mit der Indexierung der Schleife fort, wie nachfolgend beschrieben wird.
  • Wenn die Steuerungen 65 feststellen, daß das untersuchte Datenspeichersegment nicht frei oder inaktiv ist, dann prüfen die Steuerungen 65 an Schritt 294, ob das untersuchte Datenspeichersegment für die Neuzuordnung in Frage kommt. Zuerst untersuchen die Steuerungen 65 RANGE 268 von BST 137 (Fig. 3), um die Größe der Daten festzustellen, die durch das untersuchte Datenspeichersegment übertragen werden. RANGE 268 speichert eine allgemeine Angabe zur Größe der Datenaufzeichnungen oder -blöcke, die übertragen werden. Der Längendetektor 75 (Fig. 1) zählt die Anzahl der Datenbytes in jedem Block oder in jeder Aufzeichnung, die entweder durch CX 16 oder durch DX 83 übertragen wird. Vier Bereiche sind eingerichtet: klein, mittel, groß und sehr groß.
  • Um den Bereich zu erhalten, empfängt die Steuerung 34 nach dem Ende der Übertragung einer Datenaufzeichnung oder eines Datenblocks die Bytezählung vom Längendetektor 75. Die Steuerung 34 vergleicht anschließend die empfangene Byte-Zählung mit drei Schwellenwerten (ein Schwellenwert zwischen zwei der vier Bereiche) und gibt dann den Bereich an. RANGE 268 von BST 137 wird aktualisiert. Dieser Ablauf kann einmal in jeder Serie von Block- oder Aufzeichnungsübertragungen oder einmal in einer einzelnen Kette von I/O-Befehlen auftreten.
  • Nach einer willkürlichen Definition können nur die großen und sehr großen Blockübertragungen in einer zuerst aufgebauten Anordnung der Erfindung einer Neuzuordnung unterzogen werden. Der Grund für diese Festlegung ist, daß wenn kleine und mittlere Datenblöcke übertragen werden, die Möglichkeit des Bedarfs an mehr als einem Datenspeichersegment von Datenpuffer 15 zur Unterbringung der Datenübertragungen sehr gering ist; es ist nicht erforderlich, das derzeitige Datenspeichersegment, das mit einem beliebigen anderen Datenspeichersegment verwendet wird, zu paaren. Daher wird bei kleinen Datenblöcken das in S 71 angezeigte Segment nicht einer Neuzuordnung unterzogen. Auch können manche Fehlerbedingungen die entsprechenden Datenspeichersegmente für die dynamische Neuzuordnung unverfügbar machen.
  • Ausgehend von der Annahme, daß das untersuchte Datenspeichersegment einer dynamischen Neuzuordnung unterzogen werden kann, vergleichen die Steuerungen 65 in Schritt 295 die numerischen Inhalte von FC 69 mit den numerischen Inhalten aus den CCRK- Registern 41, 42 auf das identifizierte Datenspeichersegment hin. Wenn die aktuelle Fehlerzählung in FC 69 größer oder gleich groß ist wie die Fehlerzählung im entsprechenden CCRK-Register, dann werden die numerischen Inhalte von FC 69 nicht geändert. Andererseits gilt, daß wenn die numerischen Zählinhalte von FC 69 kleiner sind als die entsprechenden Inhalte des Registers CCRK, an Schritt 296 die Zählinhalte des entsprechenden Registers CCRK an FC 69 übertragen werden, um die größte Fehlerzählung, die in den Intensitätsmessungen bis zum derzeit untersuchten Datenspeichersegment gefunden wurden, zu speichern. Auch werden die Inhalte von SEG 70 gleichgesetzt mit der Identifikation des Datenspeichersegments, die mit der CCRK- Zählung zusammenhängt, die soeben in FC 69 geladen wurde.
  • Die Steuerungen 65 greifen anschließend entweder von Schritt 295 oder von Schritt 296 aus im entsprechenden Register von BST 137 auf ACT 262 zu, um dieses Bit auf Null zu setzen. Dies aktiviert BST 137 für die nachfolgende normalisierte durchlaufene Zeitperiode, da für das entsprechende Datenspeichersegment die Anzeige einer nichtvorhandenen Aktivität eingetreten ist.
  • Die Steuerungen 65 indexieren anschließend entweder von Schritt 293 oder von Schritt 297 die Schleife 291. In Schritt 298 vergleicht die Steuerung 34 die Inhalte aus S 71 mit der Anzahl N an Datenspeichersegmenten, die im Datenpuffer 15 vorhanden sind. Wenn das soeben untersuchte Datenspeichersegment das n-te Datenspeichersegment ist, so bedeutet dies, daß das letzte Datenspeichersegment untersucht wurde. Entsprechend verläßt die Steuerung 34 die Schleife, wie durch die folgende Linie 305 angezeigt wird. Wenn das soeben untersuchte Datenspeichersegment nicht das letzte Datenspeichersegment ist, dann untersuchen die Steuerungen 65 in Schritt 299 die Inhalte in Register S 71 auf ungerade-gerade Werte. Wenn der untersuchte S-Wert ungerade ist, dann inkrementieren die Steuerungen 65 in Schritt 301 S um eine Einheit. Ist der untersuchte S-Wert gerade, dann wird das Bit P 270 im entsprechenden Eintrag von BST 137 untersucht, um festzustellen, ob das geradzahlig numerierte Datenspeichersegment mit einem ungeradzahlig numerierten Segment gepaart ist. Wenn es nicht gepaart ist, dann muß das ungeradzahlig numerierte Segment untersucht werden; der Wert S wird in Schritt 301 um eine Einheit inkrementiert. Wenn das Bit P 270 auf Einheit gesetzt ist, dann braucht das ungeradzahlig numerierte Segment nicht untersucht zu werden. Die Steuerungen 65 inkrementieren anschließend in Schritt 300 S um zwei, um das nächsthöhere ungeradzahlig numerierte Segment von der Untersuchung auszuschließen. Nach dem Schritt 300 oder 301 werden die Schritte 292 bis 297 wiederholt, bis alle notwendigen Segmente auf ihre Aktivitätsintensität hin untersucht wurden, wie dies durch die entsprechenden CCRK-Zählungen angezeigt wird.
  • Nach der Beendigung der Untersuchungsschleife 291 stellen die Steuerungen 65 fest, ob eine dynamische Neuzuordnung durchzuführen ist. Zuerst untersuchen die Steuerungen 65 von der Leitung 305 an Schritt 306 den numerischen Inhalt der Register FC 69 und FICOUNT 68. Wenn die Dateninhalte beider Register nicht gleich Null sind, dann wurde während der unmittelbar vorangegangenen normalisierten durchlaufenen Zeitperiode mindestens ein CCR an einen Host 12 gesendet, und mindestens ein Datenspeichersegment ist entweder frei oder inaktiv für die Durchführung einer dynamischen Neuzuordnung. Wenn eines der Register FC 69 oder FICOUNT 68 gleich Null ist, dann sollte eine dynamische Neuzuordnung nicht durchgeführt werden. Die Steuerungen 65 teilen dann über die Leitung 67 (Fig. 1) der Steuerung 34 mit, von Schritt 306 über Punkt 503 (Fig. 6) zu anderen Maschinenaktivitäten zurückzukehren, die für das Verständnis der vorliegenden Erfindung nicht relevant sind.
  • Wenn eine dynamische Neuzuordnung möglich ist, dann untersuchen die Steuerungen 65 in Schritt 307 das Bit R 266 von BST 137 auf das im Register SEG 70 identifizierte Datenspeichersegment, um festzustellen, ob sich dieses Datenspeichersegment im Lesemodus oder im Schreibmodus befindet. Wenn das Bit R 266 auf Einheit gesetzt ist, wird der Lesemodus angezeigt; dies veranlaßt die Steuerungen 65 in Schritt 308, den kommenden Lesevorgang zu verhindern, indem das Bit IRAH 225 und das Bit DECCR 254 von LDT 133 für den logischen Device, der das SEG 70 identifizierte Speichersegment enthält, auf Einheit gesetzt wird. Der operative Effekt auf das Speichersystem 10 besteht darin, daß ein weiteres Einlesen der Daten in das SEG 70 identifizierte Datenspeichersegment vermieden wird und daß die Steuereinheit 11 aktiviert wird, um nach einer Zuordnungsauflösung zu suchen, wenn der nächste CCR für den damit zusammenhängenden logischen Device an den Host 12 gesendet wird. Der praktische Effekt ist, daß der Host 12, der eine laufende Leseoperation mit dem Device 13 hat, der mit dem SEG 70 identifizierten Datenspeichersegment zusammenhängt, Daten aus diesem Datenspeichersegment von Puffer 15 einliest, bis ein Kanalbefehl-Wiederholungsversuch CCR erforderlich ist, was unter Bezugnahme auf Fig. 7 beschrieben wird; dann wird die Zuordnung dieses Segments aufgelöst, um eine später gepaarte Zuordnung von Datenspeichersegmenten zum entsprechenden Device 13 zu ermöglichen, wie ausführlich unter Bezugnahme auf Fig. 7 beschrieben wird. Wenn der Betriebsmodus für die SEG 70 identifizierten Datenspeichersegmente nicht der Lesemodus ist, dann fahren die Steuerungen 65 an Schritt 309 mit einer Zuordnungsauflösung durch Aktivierung eines logischen Moduls (nicht dargestellt) mit der Bezeichnung "BM DBS" fort, was dazu führt, daß die Steuerungen 65 die Zuordnung des SEG 70 identifizierten Datenspeichersegments auflösen. Die Zuordnungsauflösung erfolgt nach normalen und bekannten Verfahren; eine solche Zuordnungsauflösung kann das Schreiben aus dem SEG 70 identifizierten Datenspeichersegment in den entsprechenden Device 13 einschließen.
  • Dann untersuchen die Steuerungen 65 in Schritt 310 das andere Datenspeichersegment im Segmentpaar, das dem soeben in Schritt 309 Datenspeichersegment, dessen Zuordnung aufgelöst wurde, entspricht. Wenn es sich bei dem Segment, dessen Zuordnung soeben aufgelöst wurde, um ein ungeradzahlig numeriertes Segment handelt, dann ist das nächstniedriger numerierte geradzahlige Segment das andere Segment. Wenn es sich bei dem Segment, dessen Zuordnung soeben aufgelöst wurde, um ein geradzahlig numeriertes Segment handelt, dann ist das nächsthöher numerierte ungeradzahlige Segment das andere Segment. Wenn dieses andere Segment zugeordnet wird, so muß diese Zuordnung aufgelöst werden, um eine dynamische Neuzuordnung mit dem Datenspeichersegment, dessen Zuordnung soeben aufgelöst wurde, zu ermöglichen. Entsprechend aktivieren in Schritt 311 die Steuerungen 65 erneut das logische Modul BM DBS, um die Zuordnung des identifizierten anderen Segments aufzulösen. Nach der Beendigung von Schritt 311 oder wenn das andere Segment an Schritt 310 nicht zugeordnet wurde (Bit D 267 von BST 137 war gleich Null), gibt es zwei Datenspeichersegmente, die gepaart werden können und dessen Zuordnung aufgelöst wird. Diese zwei Datenspeichersegmente stehen nun für die Zuordnung als ein Paar für den Device 13 zur Verfügung, das zuvor das SEG 70 identifizierte Datenspeichersegment zur Beendigung seines logischen Device besaß. Andererseits gilt, daß wenn in Schritt 310 das identifizierte andere Segment frei ist, keine Zuordnungsauflösung erforderlich ist. Anschließend fügen in Schritt 312 die Steuerungen 65 die SEG 70 identifizierte Device 13-Adresse (DADDR) in PAT 134 von Fig. 5 ein und stellen das entsprechende Bit P 135 auf Einheit. Dies aktiviert die Zuordnungsprozeduren von Steuerung 34 für die Zuordnung eines Paares Datenspeichersegmente des Datenpuffers 15 an den SEG 70 identifizierten Device 13. Die eigentliche Zuordnung erfolgt in der beschriebenen Weise unter Bezugnahme auf Fig. 7 und zwar erst dann, wenn ein Host 12 eine weitere Datenübertragungsaktivität mit diesem identifizierten Device 13 anfordert. Anschließend aktivieren die Steuerungen 65 an 503 die Steuerung 34 zur Ausführung anderer Maschinenaktivitäten, während sich der Empfang des nächsten Datenübertragungsbefehls von einem Host 12 noch im Ablauf befindet.
  • Fig. 7 stellt dar, wie die dynamische Neuzuordnung nach dem Empfang eines vom Host ausgesendeten Befehls ausgeführt wird, nachdem die oben beschriebenen Zuordnungsauflösungsoperationen beendet sind. Bei der Decodierung der empfangenen vom Host ausgesendeten Befehle werden einige Funktionen ausgeführt, wie dies durch die Legende CS DCD angezeigt wird. An Schritt 400 wird der Betriebsmodus, der in BST 137 für den adressierten Device 13 identifiziert wird, untersucht. Befindet sich dieser im Lesemodus, wie dies durch das Bit R 266 dargestellt wird, dann untersucht die Steuerung 34 an 404 BST 137, um festzustellen, ob das Datenspeichersegment leer ist (MT), indem die entsprechende Pufferaufzeichnungstabelle untersucht wird, wie dies an früherer Stelle bereits erläutert wurde. Zeigt die Pufferaufzeichnungstabelle, daß im Datenspeichersegment des adressierten logischen Device Daten gespeichert sind (wie durch Identifikation einer Datenaufzeichnung durch einen Eintrag), dann wird an Schritt 405 das Bit ACT 262 des entsprechenden Registers BST 137 auf Einheit gesetzt. Anschließend werden an 407-411 weitere Maschinenoperationen in bezug auf die Befehlsausführung ausgeführt, die jedoch für das Verständnis der vorliegenden Erfindung nicht relevant sind.
  • Wir kehren nun zu Schritt 400 zurück. Wenn in BST 137 durch das Bit R 266 angezeigt wird, daß der Schreibmodus gleich Null ist, dann stellt die Steuerung 34 in Schritt 401 fest, ob Daten innerhalb des Datenspeichersegments, das dem adressierten Device 13 entspricht, gespeichert sind. Ist das Datenspeichersegment voll, kann es keine zusätzlichen Daten mehr aufnehmen. Entsprechend wird ein Kanalbefehl-Wiederholungsversuch an den befehlsaussendenden Host 12 an Schritt 402 gesendet. Wenn der Host 12 den CCR akzeptiert, dann wird das Bit CCR 245 der Befehlsstatustabelle 131 auf Einheit gesetzt. Ausführlichere Informationen hierzu siehe Patent 4403286.
  • In einigen Fällen hat der Kanaladapter CXX 80 möglicherweise ein CCR gesendet, ohne hierfür die Steuerung 34 miteinzubeziehen (eine normale bekannte Praxis bei IBM Steuereinheiten). In diesem Fall wird an Schritt 402 kein zusätzliches CCR gesendet. Wenn CCX 80 ein CCR sendet, teilt es dies der Steuerung 34 mit, und das Bit CCR 245 der Befehlsstatustabelle CST 131 wird gesetzt. Bevor die Steuerung 34 ein CCR an CXX 80 sendet, untersucht sie das Bit CCR 245 an CST 131; wenn dieses eingestellt ist, wurde ein CCR gesendet und in Schritt 402 wird kein zusätzliches CCR mehr gesendet.
  • Wenn das untersuchte Datenspeichersegment nicht voll ist, dann wird an 403 das Bit ACT 262 von BST 137 auf Einheit gesetzt. Dann untersucht die Steuerung 34 an 416, ob ein CCR gesendet wurde, wie an Schritt 402 und ein Bit CCR 245 von CST 131. Wenn ein CCR gesendet wird, wird das logische Modul BM IDF (nicht dargestellt) an Schritt 337 aktiviert, um die entsprechende CCRK-Zählung 41, 42 unter Verwendung bekannter Datenverarbeitungszähltechniken zu inkrementieren. An 420 werden zusätzliche Funktionen der Befehlsdekodierung ausgeführt, die jedoch für das Verständnis der vorliegenden Erfindung nicht relevant sind. Dann untersucht die Steuerung 34 in Schritt 421 BSTP 253 auf den adressierten Device 13. Wenn BSTP 253 gleich Null ist, dann wird derzeit kein Datenspeichersegment von Datenpuffer 15 dem adressierten Device zugeordnet. An 430 aktiviert die Steuerung 34 das logische Modul BM ABS, welches die in bezug auf Fig. 5 beschriebenen Funktionen ausführt. Nach der Beendigung der Zuordnung, was eine gepaarte Zuordnung während der dynamischen Neuzuordnung mit einschließt, wird ein DEVICE END (DE) an Host 12 gesendet; hierfür wird die im U.S.-Patent 3,688,274 beschriebene Kanalbefehl-Wiederholungsversuch-Prozedur verwendet. Anschließend fährt die Steuerung 34 an 503 mit anderen Maschinenaktivitäten fort und erwartet die erneute Übertragung desselben Befehls, der empfangen wurde, wie dies am Beginn der Beschreibung in Fig. 7 angezeigt wird. Dann werden die Schritte wiederholt; der nächste Durchlauf der Befehlsausführung stellt jedoch fest, daß die Zuordnung durch Schritt 430 beendet wurde, und die angeforderte Datenübertragung kann folgen.
  • Wir kehren zu Schritt 421 zurück. Wenn BSTP einen Nichtnullwert enthält, dann wird ACT 262, das dem adressierten Device 13 entspricht, auf Einheit gesetzt, um die Aktivität während einer normalen durchlaufenen Zeitperiode zu zeigen. Dann wird an 423 das Bit DECCR 254 von LDT 133 untersucht. Wenn es gleich Null ist, dann wird keine zusätzliche Steueraktivität benötigt; der adressierte Device 13 wird in Schritt 424 gestartet. Dann fährt die Steuerung 34 mit anderen Maschinenaktivitäten fort, während der Device 13 noch läuft, was das Magnetband (nicht dargestellt) in dessen Wandler auf eine höhere Geschwindigkeit bringt. Wenn das Bit DECCR an Schritt 423 auf Einheit gesetzt wird und an Schritt 402 oder früher in bezug auf das Datenspeichersegment ein CCR gesendet wurde (tatsächlich wurde der CCR in bezug auf den logischen Device gesendet, dem das Datenspeichersegment zugeordnet ist), dann wird die Zuordnung des derzeit zugeordneten Datenspeichersegments an Schritt 425 aufgelöst und an 426 wird das Bit DECCR 254 auf Null zurückgesetzt. Die Schritte 430 und 427 werden ausgeführt, wenn entweder BSTP 253 für den adressierten Device 13 an Schritt 421 oder nach Beendigung von Schritt 426 gleich Null ist. In Schritt 427 ordnet die Steuerung 34 ein Paar der Datenspeichersegmente von Puffer 15, beispielsweise die Datenspeichersegmente, deren Zuordnung aufgelöst wurde, dem adressierten Device 13 zu. Fig. 5 stellt die Zuordnungsprozedur dar. Die Zuordnung der Segmente vervollständigt die dynamischen Neuzuordnungsprozeduren, was das Speichersystem 10 dazu befähigt, mit der angeforderten Datenübertragung fortzufahren, indem eine Pufferzuordnung ausgeführt wird, die jetzt in der Lage ist, nachfolgende Datenübertragungen für den adressierten Device 13 auf effektivere Weise durchzuführen. Diese Tatsache wird dem anfordernden Host 12 durch das Speichersystem 10 signalisiert, das an Schritt 430 über CXX 80 ein DEVICE END (DE) sendet. Während das Speichersystem 10 mit anderen Maschinenaktivitäten fortfährt, indem die Steuerung 34 die darstellenden Prozeduren an 503 verläßt, reagiert der anfordernde Host 12 auf das DE, indem der Befehl zur Anforderung einer Datenübertragung erneut an das Speichersystem 10 übertragen wird.

Claims (9)

1. Ein Datenspeichersystem (10) zur Durchführung einer Mehrzahl an unabhängigen Datenübertragungen zwischen einem Host- Prozessor (12) und einer Mehrzahl an adressierbaren Datenspeichereinrichtungen (13), wobei jede der Datenübertragungen die Übertragung einer vorbestimmten Folge von Datenblöcken zu oder von einer der adressierbaren Datenspeichereinrichtungen mit einschließt, wobei dieses Datenspeichersystem folgendes umfaßt:
einen Datenpuffer (15) mit einer Mehrzahl an zuteilbaren Datenspeichersegmenten (17), wobei jedes dieser Segmente mit einer Mehrzahl an adressierbaren Datenspeicherregistern ausgestattet und zur Speicherung eines oder mehrerer Datenblöcke in der Lage ist;
Ein Übertragungsmittel (16, 83), das an den Datenpuffer gekoppelt ist, um die Datenblöcke in dieser Mehrzahl an unabhängigen Datenübertragungen in den und aus dem Datenpuffer zu übertragen, dadurch gekennzeichnet, daß folgende Mittel vorhanden sind:
Ein Systemmittel (34, 45, 46, 47) zur Anzeige einer vorbestimmten durchlaufenen Zeit;
Ein Intensitätsmittel (34, 41, 42), das an dieses Übertragungsmittel und an den Datenpuffer angeschlossen ist, um die Aktivitätsintensität jedes einzelnen Datenspeichersegments während der vorbestimmten durchlaufenen Zeit zu messen und aufzuzeichnen;
Ein Blocklängenmittel (137, 268), das an diesen Datenpuffer und an die Übertragungsmittel angeschlossen ist, um für jedes einzelne Datenspeichersegment die Länge des derzeit gespeicherten Datenblocks anzuzeigen;
Ein Prüfmittel (34, 65), das an das Blocklängenmittel, an das Systemmittel und an das Systemmittel angeschlossen ist und auf das Systemmittel reagiert und eine vorbestimmte durchlaufene Zeit anzeigt, um ein Datenspeichersegment für die Neuzuordnung zu identifizieren, welches die größte aufgezeichnete Aktivitätsintensität während der vorbestimmten durchlaufenen Zeit aufweist und welches gespeicherte Datenblöcke aufweist, die eine vorbestimmte Blocklänge überschreiten;
Ein Zuordnungssteuermittel (34, 45), das an das Prüfmittel und an den Datenpuffer angeschlossen ist und auf die Identifikation des Datenspeichersegments für die Neuzuordnung reagiert, um dem für die Neuzuordnung identifizierten Datenspeichersegment ein neues Datenspeichersegment zuzuordnen.
2. Das in Anspruch 1 beschriebene Datenspeichersystem, einschließlich:
Einstellungsmittel in diesem Prüfmittel, das an das Systemmittel und an das Intensitätsmittel angeschlossen ist, um auf die Anzeige der vorbestimmten durchlaufenen Zeit zu reagieren, um eine Messung einer anderen vorbestimmten durchlaufenen Zeit zu bewirken und um das Intensitätsmittel neu einzustellen, um die Intensitätsmessungen neu zu starten.
3. Das in Anspruch 2 beschriebene Datenspeichersystem, einschließlich:
Pufferstatustabellenmittel (137), das an den Puffer angeschlossen ist, um folgende Anzeigen zu speichern: den Status jedes Datenspeichersegments, wobei der Status die Zuordnung der Datenspeichersegmente zu den entsprechenden unabhängigen Datenübertragungen, die Verfügbarkeit jedes Datenspeichersegments für die Zuordnung und die Tatsache, ob ein Datenspeichersegment einem anderen Datenspeichersegment für eine einzige unabhängige Datenübertragung als gepaarte Zuordnung zugeordnet ist, zeigt, wobei das Pufferspeichertabellenmittel an das Zuordnungssteuermittel angeschlossen ist, um Zuordnungsänderungen zu empfangen und zu speichern;
Verfügbarkeitsmittel im Prüfmittel, das an das Pufferstatustabellenmittel und an das Neueinstellungsmittel angeschlossen ist, um anzuzeigen, daß keines der Datenspeichersegmente für die Zuordnung verfügbar ist und um das Neueinstellungsmittel und das Zuordnungsmittel davon abzuhalten, eines der Datenspeichersegmente zuzuordnen, während eine Nichtanzeige aktiv ist; und
Zuordnungsauflösungsmittel, das an den Puffer und an das Verfügbarkeitsmittel angeschlossen ist, um eine Zuordnungsauflösung der Datenspeichersegmente in den entsprechenden unabhängigen Datenübertragungen durchzuführen und dann dieses Verfügbarkeitsmittel aktiviert, im die Nichtanzeige zu entfernen.
4. Das Datenspeichersystem, wie es in allen bisher aufgeführten Ansprüchen beschrieben wurde, einschließlich:
Zusatzmittel (80) für das Anschließen des Datenspeichersystems an den Host-Prozessor und angeschlossen an das Übertragungsmittel für die Datenübertragung zwischen dem Datenpuffer und dem Host-Prozessor;
das Systemmittel ist an das Übertragungsmittel angeschlossen und besitzt ein Zählmittel (45) zur Zählung der Anzahl an Zugriffen auf ein beliebiges Datenspeicher-Device;
Grenzwertmittel (47) im Systemmittel für die Speicherung eines Grenzwerts, der den Ablauf der normalisierten vorbestimmten durchlaufenen Zeitperiode anzeigt, ein Vergleichsmittel (46) im Systemmittel, welches an das Zählmittel und an das Grenzwertmittel angeschlossen ist, um die gezählte Anzahl an Zugriffen mit dem Grenzwert zu vergleichen und welches, wenn die gezählte Anzahl an Zugriffen den Grenzwert erreicht oder überschreitet, die Anzeige der durchlaufenen Zeit liefert.
5. Das Datenspeichersystem, wie es in allen bisher aufgeführten Ansprüchen beschrieben wurde, einschließlich:
Ein aktivitätsanzeigendes Mittel (262), das an das Übertragungsmittel angeschlossen ist, um aufzuzeichnen, ob eine Aktivität in bezug auf entsprechende Aktivitäten der Datenspeichersegmente aufgetreten ist;
ein Zuordnungsauflösungsmittel, das an das aktivitätsanzeigende Mittel und an das Prüfmittel angeschlossen ist, um Datenspeichersegmente, die keine durch ein aktivitätsanzeigendes Mittel aufgezeichnete Aktivität aufweisen, als bereit für die Zuordnung als zusätzliches Speichersegment zum Datenspeichersegment mit der größten aufgezeichneten Aktivitätsintensität zu kennzeichnen.
6. Das Datenspeichersystem, wie es in allen bisher aufgeführten Ansprüchen beschrieben wurde, einschließlich:
ein Konkurrenzmittel (56), das an das Zuordnungssteuermittel und an den Datenpuffer angeschlossen ist, um versuchte Zuordnungen von Datenspeichersegmenten zu registrieren, die gescheitert sind und zur Anzeige von registrierten gescheiterten Zuordnungen als Konkurrenzanzeige;
ein Verhinderungsmittel im Prüfmittel, das mit dem Konkurrenzmittel verbunden ist und auf diese Konkurrenzanzeige reagiert, um zu verhindern, daß das Prüfmittel auf das Systemmittel reagiert und eine vorbestimmte durchlaufene Zeit solange anzeigt, wie diese Konkurrenzanzeige eine gescheiterte Zuordnung anzeigt;
ein Mittel, das an das Konkurrenzmittel angeschlossen ist, um die Konkurrenzanzeige neu einzustellen, um dem Prüfmittel zu ermöglichen, auf das Systemmittel anzusprechen.
7. Eine Methode zum Betreiben eines Datenspeichersystems (10) für den Umgang mit einer Mehrzahl an unabhängigen Datenübertragungen zwischen einem Host-Prozessor (12) und einer Mehrzahl an adressierbaren Datenspeicher-Devices (13), wobei das Datenspeichersystem einen Datenpuffer (15) mit einer Mehrzahl an einteilbaren Datenspeichersegmenten (17) enthält, wobei jedes der Segmente mit einer Mehrzahl an adressierbaren Datenspeicherregistern ausgestattet ist und einen oder mehrere Datenblöcke speichern kann;
wobei diese Methode die folgenden Schritte enthält:
Zuordnung von vorbestimmten Datenspeichersegmenten für entsprechende unabhängige Datenübertragungen;
Übertragung von Daten durch unabhängige Datenübertragungen in Datenblöcken;
Messung der Länge der Datenblöcke, die durch die entsprechenden unabhängigen Datenübertragungen übertragen werden;
Aufzeichnung der Menge an gespeicherten Daten und verfügbarer freier Speicherplatz für die Datenspeicherung in jedem der Datenspeichersegmente als Datenspeicherstatus;
Zählung der Anzahl an Datenübertragungsverzögerungen, die bei jeder unabhängigen Datenübertragung aufgetreten sind, weil die Datenspeicherungsanforderungen einer gegebenen Datenübertragung nicht erfüllt wurden;
Festlegung einer relativ zur Aktivität des Datenpuffers normalisierten Zeitperiode für alle unabhängigen Datenübertragungen;
Messung der durchlaufenen Zeit in einer normalisierten Weise;
Vergleich der gemessenen Zeit mit der festgelegten Zeitperiode, und, wenn die gemessene Zeit die festgelegte Zeitperiode erreicht oder überschreitet, Vergleich der Anzahl an gezählten Verzögerungen für jedes der Datenspeichersegmente und Zuordnung eines zusätzlichen Datenspeichersegments zur unabhängigen Datenübertragung, die dem Datenspeichersegment mit der größten Anzahl an Verzögerungen zugeordnet ist und die ebenfalls gespeicherte Datenblöcke aufweist, die eine vorbestimmte Blocklänge überschreiten; wenn die gemessene Zeit unterhalb der festgelegten Zeit liegt, folgt eine Fortsetzung der Datenübertragung.
8. Die in Anspruch 7 beschriebene Methode, einschließlich folgender Schritte:
Im Schritt der Messung der durchlaufenen Zeit Zählung der Anzahl an Zugriffen auf die Datenspeichersegmente als Anzeige der normalisierten durchlaufenen Zeit;
Im Zeitfestlegungsschritt Einstellung eines Zählwerts zur Darstellung der normalisierten durchlaufenen Zeitperiode;
Im Vergleichsschritt Vergleich des eingestellten Zählwerts mit der Zählung der Zugriffe zur Darstellung des Vergleichs der gemessenen Zeit mit der festgelegten Zeitperiode.
9. Die in Anspruch 7 oder 8 beschriebene Methode, einschließlich folgender Schritte:
Beim Versuch der Zuordnung des zusätzlichen Datenspeichersegments zu einer unabhängigen Datenübertragung und bei der Feststellung, daß keines der Datenspeichersegmente verfügbar ist, um dieses Datenspeichersegment darzustellen, Einstellung einer Konkurrenzanzeige, die der Zuordnung einen Konkurrenz zustand anzeigt;
Zuordnungsauflösung eines der zugeordneten Datenspeichersegmente und Entfernen der Konkurrenzanzeige;
Verzögerung des Vergleichsschrittes, bis die Konkurrenzanzeige entfernt ist, so daß der Verzögerungsvergleichsschritt beendet ist, bevor jegliche Neuzuordnungsschritte ausgeführt werden.
DE85100106T 1984-02-27 1985-01-11 Datenspeicherungsanordnung. Expired - Fee Related DE3587400T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/584,053 US4603382A (en) 1984-02-27 1984-02-27 Dynamic buffer reallocation

Publications (2)

Publication Number Publication Date
DE3587400D1 DE3587400D1 (de) 1993-07-22
DE3587400T2 true DE3587400T2 (de) 1993-12-23

Family

ID=24335725

Family Applications (1)

Application Number Title Priority Date Filing Date
DE85100106T Expired - Fee Related DE3587400T2 (de) 1984-02-27 1985-01-11 Datenspeicherungsanordnung.

Country Status (5)

Country Link
US (1) US4603382A (de)
EP (1) EP0153553B1 (de)
JP (1) JPS60189552A (de)
CA (1) CA1215180A (de)
DE (1) DE3587400T2 (de)

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4812968A (en) * 1986-11-12 1989-03-14 International Business Machines Corp. Method for controlling processor access to input/output devices
US4868737A (en) * 1986-12-22 1989-09-19 Tandberg Data A/S Method and arrangement in which capacity of a related storage medium is checked when buffering data
US5218685A (en) * 1987-01-02 1993-06-08 General Electric Company System for write once read many optical storage devices to appear rewritable
JPS63172143A (ja) * 1987-01-12 1988-07-15 Canon Inc カメラのフイルムカウンタ
US4967353A (en) * 1987-02-25 1990-10-30 International Business Machines Corporation System for periodically reallocating page frames in memory based upon non-usage within a time period or after being allocated
JPS63292747A (ja) * 1987-05-25 1988-11-30 Hitachi Ltd バツフア管理方式
US5008819A (en) * 1987-10-07 1991-04-16 Gorbatenko George G Memory spaced array
US5237682A (en) * 1987-10-19 1993-08-17 International Business Machines Corporation File management system for a computer
US5053945A (en) * 1988-10-06 1991-10-01 Alphatronix System and method for performing a multi-file transfer operation
CA1329432C (en) * 1988-11-02 1994-05-10 William Davy Method of memory and cpu time allocation for a multi-user computer system
US5131087A (en) * 1988-12-29 1992-07-14 Storage Technology Corporation Computer system having apparatus for automatically redistributing data records stored therein
JPH04502527A (ja) * 1988-12-29 1992-05-07 ストレージ テクノロジー コーポレイション コンピュータシステムメモリ性能改善装置
US5394531A (en) * 1989-04-03 1995-02-28 International Business Machines Corporation Dynamic storage allocation system for a prioritized cache
US5200864A (en) * 1989-06-28 1993-04-06 International Business Machines Corporation Combining small records into a single record block for recording on a record media
US5274772A (en) * 1989-06-28 1993-12-28 International Business Machines Corporation Data processing systems having means for selectively combining records into signal blocks for recording in a record medium
US5335328A (en) * 1989-06-28 1994-08-02 International Business Machines Corporation Methods for recording and reading data from a record member having data in any one of a plurality of block formats including determining length of records being transferred
US5220635A (en) * 1989-07-24 1993-06-15 Oki Electric Industry Co., Ltd. Data sink having high efficiency in received data processing
JP2504843B2 (ja) * 1989-09-06 1996-06-05 シャープ株式会社 バッファ拡張装置
US5097261A (en) * 1989-11-22 1992-03-17 International Business Machines Corporation Data compression for recording on a record medium
US5493668A (en) * 1990-12-14 1996-02-20 International Business Machines Corporation Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation
DE4118623C2 (de) * 1991-06-06 1993-12-16 Siemens Ag Verfahren zur Pufferaufteilung in Kommunikationssystemen
JP3031393B2 (ja) * 1992-01-30 2000-04-10 日本電気株式会社 クラス別バッファ面数の動的変更方式
US5450546A (en) * 1992-01-31 1995-09-12 Adaptec, Inc. Intelligent hardware for automatically controlling buffer memory storage space in a disk drive
US5608890A (en) * 1992-07-02 1997-03-04 International Business Machines Corporation Data set level cache optimization
US5991775A (en) * 1992-09-23 1999-11-23 International Business Machines Corporation Method and system for dynamic cache allocation between record and track entries
US5423018A (en) * 1992-11-16 1995-06-06 International Business Machines Corporation Queue time reduction in a data storage hierarchy using volume mount rate
WO1994019748A2 (en) * 1993-01-11 1994-09-01 Central Point Software, Inc. Method of transferring data using dynamic data block sizing
US5426736A (en) * 1993-05-26 1995-06-20 Digital Equipment Corporation Method and apparatus for processing input/output commands in a storage system having a command queue
US5373401A (en) * 1993-06-18 1994-12-13 International Business Machines Corporation Data storage system having multimodal interblock gap detection utilizing a predicted occurance time window
US5363252A (en) * 1993-06-30 1994-11-08 International Business Machines Corporation Method and system for track skew tolerant acquistion burst sequence validation in a data storage system
US6298371B1 (en) * 1993-07-08 2001-10-02 Bmc Software, Inc. Method of dynamically adjusting NCP program memory allocation of SNA network
JP3132701B2 (ja) * 1993-11-05 2001-02-05 キヤノン株式会社 情報記録方法
US5537635A (en) * 1994-04-04 1996-07-16 International Business Machines Corporation Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size
US5619656A (en) * 1994-05-05 1997-04-08 Openservice, Inc. System for uninterruptively displaying only relevant and non-redundant alert message of the highest severity for specific condition associated with group of computers being managed
JP3810449B2 (ja) * 1994-07-20 2006-08-16 富士通株式会社 キュー装置
US5463776A (en) * 1994-09-22 1995-10-31 Hewlett-Packard Company Storage management system for concurrent generation and fair allocation of disk space among competing requests
US5566315A (en) * 1994-12-30 1996-10-15 Storage Technology Corporation Process of predicting and controlling the use of cache memory in a computer system
GB2298109B (en) * 1995-02-14 1999-09-01 Nokia Mobile Phones Ltd Data interface
WO1997004557A1 (en) * 1995-07-19 1997-02-06 Fujitsu Network Communications, Inc. Minimum guaranteed cell rate method and apparatus
AU6501496A (en) * 1995-07-19 1997-02-18 Ascom Nexion Inc. Point-to-multipoint transmission using subqueues
JPH11511303A (ja) * 1995-07-19 1999-09-28 フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド リンクバッファを共用する方法及び装置
JPH11512583A (ja) * 1995-09-14 1999-10-26 フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド 広域atm網内のバッファ割付用送信側制御式フロー制御
US5784698A (en) * 1995-12-05 1998-07-21 International Business Machines Corporation Dynamic memory allocation that enalbes efficient use of buffer pool memory segments
US5838994A (en) * 1996-01-11 1998-11-17 Cisco Technology, Inc. Method and apparatus for the dynamic allocation of buffers in a digital communications network
US5991298A (en) * 1996-01-16 1999-11-23 Fujitsu Network Communications, Inc. Reliable and flexible multicast mechanism for ATM networks
GB2312134B (en) * 1996-04-12 2000-10-04 Sony Corp Data transfer device
US5748905A (en) * 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US6098123A (en) * 1997-05-08 2000-08-01 International Business Machines Corporation Method and apparatus for dynamic allocation of bandwidth to/from network adapter memory amongst active input/output ports
US6366945B1 (en) * 1997-05-23 2002-04-02 Ibm Corporation Flexible dynamic partitioning of resources in a cluster computing environment
US5961606A (en) * 1997-06-30 1999-10-05 Sun Microsystems, Inc. System and method for remote buffer allocation in exported memory segments and message passing between network nodes
US6785888B1 (en) * 1997-08-29 2004-08-31 International Business Machines Corporation Memory allocator for a multiprocessor computer system
US6279052B1 (en) * 1998-01-13 2001-08-21 Intel Corporation Dynamic sizing of FIFOs and packets in high speed serial bus applications
US6282589B1 (en) * 1998-07-30 2001-08-28 Micron Technology, Inc. System for sharing data buffers from a buffer pool
US6327644B1 (en) 1998-08-18 2001-12-04 International Business Machines Corporation Method and system for managing data in cache
US6381677B1 (en) 1998-08-19 2002-04-30 International Business Machines Corporation Method and system for staging data into cache
US6141731A (en) * 1998-08-19 2000-10-31 International Business Machines Corporation Method and system for managing data in cache using multiple data structures
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6487631B2 (en) * 1999-02-02 2002-11-26 Qlogic Corporation Circuit and method for monitoring sector transfers to and from storage medium
US6421756B1 (en) * 1999-05-06 2002-07-16 International Business Machines Corporation Buffer assignment for bridges
US6678813B1 (en) * 1999-10-28 2004-01-13 Hewlett-Packard Development Company, L.P. Dynamically adaptive buffer mechanism
US7035911B2 (en) 2001-01-12 2006-04-25 Epicrealm, Licensing Llc Method and system for community data caching
US7188145B2 (en) 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
US7111228B1 (en) 2002-05-07 2006-09-19 Marvell International Ltd. System and method for performing parity checks in disk storage system
US7287102B1 (en) 2003-01-31 2007-10-23 Marvell International Ltd. System and method for concatenating data
US7007114B1 (en) * 2003-01-31 2006-02-28 Qlogic Corporation System and method for padding data blocks and/or removing padding from data blocks in storage controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7870346B2 (en) * 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7080188B2 (en) * 2003-03-10 2006-07-18 Marvell International Ltd. Method and system for embedded disk controllers
US7064915B1 (en) 2003-03-10 2006-06-20 Marvell International Ltd. Method and system for collecting servo field data from programmable devices in embedded disk controllers
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7643983B2 (en) * 2003-03-28 2010-01-05 Hewlett-Packard Development Company, L.P. Data storage system emulation
US7299469B2 (en) * 2003-04-30 2007-11-20 International Business Machines Corporation Hierarchical weighting of donor and recipient pools for optimal reallocation in logically partitioned computer systems
US7472246B2 (en) * 2003-04-30 2008-12-30 International Business Machines Corporation Method and system for automated memory reallocating and optimization between logical partitions
US7478393B2 (en) * 2003-04-30 2009-01-13 International Business Machines Corporation Method for marketing to instant messaging service users
US7325062B2 (en) * 2003-04-30 2008-01-29 International Business Machines Corporation Method and system for automated adapter reallocation and optimization between logical partitions
US7313796B2 (en) * 2003-06-05 2007-12-25 International Business Machines Corporation Reciprocity and stabilization in dynamic resource reallocation among logically partitioned systems
US7237139B2 (en) * 2003-08-07 2007-06-26 International Business Machines Corporation Services heuristics for computer adapter placement in logical partitioning operations
US7526691B1 (en) 2003-10-15 2009-04-28 Marvell International Ltd. System and method for using TAP controllers
US8423643B2 (en) * 2003-11-19 2013-04-16 International Business Machines Corporation Autonomic assignment of communication buffers by aggregating system profiles
US7783852B2 (en) * 2003-11-26 2010-08-24 Oracle International Corporation Techniques for automated allocation of memory among a plurality of pools
US7139150B2 (en) * 2004-02-10 2006-11-21 Marvell International Ltd. Method and system for head position control in embedded disk drive controllers
EP1761851B1 (de) * 2004-06-14 2009-10-07 Nxp B.V. Schnittstelleneinrichtung zum debuggen und/oder tracen eines computersystems mit einem oder mehreren mastern und einem oder mehreren slaves, die zusammenarbeiten
US7120084B2 (en) 2004-06-14 2006-10-10 Marvell International Ltd. Integrated memory controller
US8166217B2 (en) 2004-06-28 2012-04-24 Marvell International Ltd. System and method for reading and writing data using storage controllers
US9201599B2 (en) * 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US7757009B2 (en) 2004-07-19 2010-07-13 Marvell International Ltd. Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device
US8032674B2 (en) * 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US7386661B2 (en) * 2004-10-13 2008-06-10 Marvell International Ltd. Power save module for storage controllers
US7240267B2 (en) * 2004-11-08 2007-07-03 Marvell International Ltd. System and method for conducting BIST operations
US7802026B2 (en) * 2004-11-15 2010-09-21 Marvell International Ltd. Method and system for processing frames in storage controllers
US7609468B2 (en) 2005-04-06 2009-10-27 Marvell International Ltd. Method and system for read gate timing control for storage controllers
US7710426B1 (en) * 2005-04-25 2010-05-04 Apple Inc. Buffer requirements reconciliation
US7937257B2 (en) * 2005-10-10 2011-05-03 Oracle International Corporation Estimating performance of application based on automatic resizing of shared memory for messaging
US8032675B2 (en) * 2005-12-28 2011-10-04 Intel Corporation Dynamic memory buffer allocation method and system
US20090150640A1 (en) * 2007-12-11 2009-06-11 Royer Steven E Balancing Computer Memory Among a Plurality of Logical Partitions On a Computing System
WO2009131560A1 (en) * 2008-04-22 2009-10-29 Lsi Corporation Distributed cache system in a drive array
JP2009282907A (ja) * 2008-05-26 2009-12-03 Seiko Epson Corp データベースアクセスサーバおよびデータベースアクセスシステム
US8769201B2 (en) * 2008-12-02 2014-07-01 Intel Corporation Technique for controlling computing resources
US9323473B2 (en) * 2009-01-09 2016-04-26 Hewlett Packard Enterprise Development Lp Virtual tape library
CN103106142B (zh) * 2011-11-10 2016-06-29 澜起科技(上海)有限公司 需要分配地址的器件、器件***及地址分配方法
US8972680B2 (en) 2012-01-23 2015-03-03 International Business Machines Corporation Data staging area
US11861217B2 (en) 2020-10-05 2024-01-02 Western Digital Technologies, Inc. DRAM-less SSD with command draining
US11500589B2 (en) * 2020-10-05 2022-11-15 Western Digital Technologies, Inc. Command draining using host memory buffer

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4099235A (en) * 1972-02-08 1978-07-04 Siemens Aktiengesellschaft Method of operating a data processing system
JPS564857A (en) * 1979-06-25 1981-01-19 Hitachi Ltd Access system for memory unit
JPS5646175A (en) * 1979-09-22 1981-04-27 Ckd Corp Proportional control valve
JPS5658185A (en) * 1980-09-10 1981-05-21 Hitachi Ltd Buffer memory control device
US4467411A (en) * 1981-03-06 1984-08-21 International Business Machines Corporation Scheduling device operations in a buffered peripheral subsystem
US4403286A (en) * 1981-03-06 1983-09-06 International Business Machines Corporation Balancing data-processing work loads
US4499539A (en) * 1982-12-20 1985-02-12 International Business Machines Corporation Method and apparatus for limiting allocated data-storage space in a data-storage unit

Also Published As

Publication number Publication date
US4603382A (en) 1986-07-29
CA1215180A (en) 1986-12-09
EP0153553B1 (de) 1993-06-16
EP0153553A3 (en) 1989-06-07
EP0153553A2 (de) 1985-09-04
DE3587400D1 (de) 1993-07-22
JPS60189552A (ja) 1985-09-27
JPH034940B2 (de) 1991-01-24

Similar Documents

Publication Publication Date Title
DE3587400T2 (de) Datenspeicherungsanordnung.
DE69031862T2 (de) Verfahren zum Lastausgleich für Kanälen und Verwendung desselben in einem Datenverarbeitungssystem
DE3587398T2 (de) Datenspeicherhierarchie und deren Betriebsverfahren.
DE69021899T2 (de) DMA-Steuerung.
DE3851730T2 (de) Cachespeicherverwaltung für ein peripheres Ratenspeichersubsystem.
DE68927375T2 (de) Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem
DE69731323T2 (de) Steuervorrichtung für externe Speicher und Datenübertragungsverfahren zwischen Steuervorrichtungen für externe Speicher
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE60313783T2 (de) Bewegen von daten zwischen speichereinheiten
DE60016283T2 (de) Arbeitsbelastungsverwaltung in einer rechnerumgebung
DE69534616T2 (de) System und Verfahren zum Verarbeiten von E/A-Anfragen über einen Schnittstellenbus zu einer Speicherplattenanordnung
DE19522807A1 (de) Eingabe-/Ausgabe-Steuerungssystem mit mehreren Kanalpfaden zu E/A-Einheiten
DE2912738A1 (de) System mit direkter uebertragung zwischen subsystemen
DE2523372B2 (de) Eingabe-ZAusgabe-Anschlußsteuereinrichtung
EP0010198A2 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE3131341A1 (de) "pufferspeicherorganisation"
DE19714681B4 (de) Speichersteuergerät
DE2902465A1 (de) Datenverarbeitungsanordnung
DE60026068T2 (de) System für externe transaktionen mit dynamischen prioritäten
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE69126108T2 (de) Rotierende Speicheranordnung
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE69729046T2 (de) Dynamische Zuteilung von Pufferraum zwischen Anfragen und Antworten
DE2558417C3 (de) Datenverarbeitungssystem
DE4114053A1 (de) Computersystem mit cachespeicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee