DE102021117739B4 - Management of multiple applications' access to a data store - Google Patents

Management of multiple applications' access to a data store Download PDF

Info

Publication number
DE102021117739B4
DE102021117739B4 DE102021117739.1A DE102021117739A DE102021117739B4 DE 102021117739 B4 DE102021117739 B4 DE 102021117739B4 DE 102021117739 A DE102021117739 A DE 102021117739A DE 102021117739 B4 DE102021117739 B4 DE 102021117739B4
Authority
DE
Germany
Prior art keywords
access
queue
time frame
volume
time
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.)
Active
Application number
DE102021117739.1A
Other languages
German (de)
Other versions
DE102021117739A1 (en
Inventor
Ingo Vowinkel
Olaf Kammer
Joachim Bader
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.)
Diehl Aerospace GmbH
Original Assignee
Diehl Aerospace GmbH
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 Diehl Aerospace GmbH filed Critical Diehl Aerospace GmbH
Priority to DE102021117739.1A priority Critical patent/DE102021117739B4/en
Publication of DE102021117739A1 publication Critical patent/DE102021117739A1/en
Application granted granted Critical
Publication of DE102021117739B4 publication Critical patent/DE102021117739B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Verfahren (200) zum Verwalten von Zugriffen von mehreren Applikationen (15n) auf einen Datenspeicher (20) über Zeitrahmen (TR) mit vorbestimmten Zeitdauern (td), wobei die mehreren Applikationen (15n) während ihrer Ausführung jeweils wenigstens eine Warteschlangengruppe (17n) mit jeweils wenigstens einer Warteschlange (18nm) zum Auflisten von Zugriffskommandos (19) auf den Datenspeicher (20) erzeugen, wobei das Verfahren aufweist:Erlangen (210) von individuellen Zugriffsvolumenkontingenten (Cn), die jeweils einer der mehreren Warteschlangengruppen (17n) zugeteilt sind, wobei die Summe der Zugriffsvolumenkontingente innerhalb einer vorbestimmten Zeitdauer (td) eines anstehenden Zeitrahmens (TR) vollständig in Anspruch genommen werden kann;Starten (220) des Zeitrahmens (TR) mit der vorbestimmten Zeitdauer (td);Durchführen (230) einer ersten Arbitrierungsphase (A1), in welcher in einer einzigen Verwaltungsrunde nacheinander in den Warteschlangengruppen (17n) aller Applikationen (15n) jeweils nacheinander in allen Warteschlangen (18nm) unabhängig von einer Restzeitdauer des Zeitrahmens (TR) wenigstens eines der aufgelisteten Zugriffskommandos (19) zugelassen wird, wenn das der jeweiligen Warteschlangengruppe (17n) zugeteilte Zugriffsvolumenkontingent (Cn) noch nicht aufgebraucht ist; undDurchführen (240) einer zweiten Arbitrierungsphase (A2), in welcher in mehreren Verwaltungsrunden nacheinander in den Warteschlangengruppen (17n) aller Applikationen (15n) jeweils höchstens eines der aufgelisteten Zugriffskommandos (19) zugelassen wird, wenn das der jeweiligen Warteschlangengruppe (17n) zugeteilte Zugriffsvolumenkontingent (Cn) noch nicht aufgebraucht ist, wobei die zweite Arbitrierungsphase (A2) bei Ablauf der vorbestimmten Zeitdauer (td) des Zeitrahmens beendet wird.Method (200) for managing accesses from a plurality of applications (15n) to a data memory (20) via time frames (TR) with predetermined time periods (td), the plurality of applications (15n) each having at least one queue group (17n) during their execution generate at least one queue (18nm) for listing access commands (19) to the data memory (20), the method having:obtaining (210) individual access volume quotas (Cn), each of which is allocated to one of the plurality of queue groups (17n), wherein the sum of the access volume quotas can be fully utilized within a predetermined time period (td) of a pending time frame (TR);starting (220) the time frame (TR) with the predetermined time period (td);performing (230) a first arbitration phase ( A1), in which, in a single round of administration, at least one of the listed access commands (19) is permitted in the queue groups (17n) of all applications (15n) in succession in all queues (18nm), regardless of a remaining duration of the time frame (TR), if the access volume quota (Cn) allocated to the respective queue group (17n) has not yet been used up; andcarrying out (240) a second arbitration phase (A2), in which in several management rounds in succession in the queue groups (17n) of all applications (15n) in each case at most one of the listed access commands (19) is permitted if the respective queue group (17n) allocated access volume quota (Cn) has not yet been used up, the second arbitration phase (A2) being terminated when the predetermined period of time (td) of the time frame has elapsed.

Description

Die vorliegende Erfindung betrifft Computersysteme, in denen mehrere Applikationen während ihrer Ausführung auf einen Datenspeicher zugreifen.The present invention relates to computer systems in which multiple applications access a data memory during their execution.

Insbesondere für deterministische / sicherheitskritische Systeme werden den Applikationen üblicherweise Bandbreiten für die Zugriffe auf den Datenspeicher zugeteilt. In der Regel werden in den Computersystemen Zugriffscontroller verwendet, welche die Zugriffe der Applikationen auf den Datenspeicher unter Berücksichtigung der Bandbreitenallokation verwalten, wie beispielsweise von R. Wijayaratne et al. im Artikel „Providing QOS guarantees for disk I/O“ auf Seiten 57-68 in Multimedia Systems, Vol. 8, 2000, beschrieben. Bei herkömmlichen Zugriffscontrollern können in der Praxis aber häufig die Bandbreitenallokationen zwischen den Applikationen nicht vollständig eingehalten oder ausgenutzt werden. Und US 2003/0128707 A1 offenbart ein analoges Verwaltungssystem für Rahmenübertragungen mit variablen Längen von mehreren Ausgangswarteschlangen mit unterschiedlichen Übertragungsprioritäten.In particular for deterministic / safety-critical systems, the applications are usually allocated bandwidths for accessing the data memory. As a rule, access controllers are used in the computer systems, which manage the applications' access to the data memory, taking into account the bandwidth allocation, as described, for example, by R. Wijayaratne et al. described in the article "Providing QOS guarantees for disk I/O" on pages 57-68 in Multimedia Systems, Vol. 8, 2000. With conventional access controllers, however, the bandwidth allocations between the applications can often not be fully maintained or utilized in practice. And U.S. 2003/0128707 A1 discloses an analog management system for variable length frame transmissions from multiple output queues with different transmission priorities.

Es ist die Aufgabe der Erfindung, eine verbesserte Verwaltung von Zugriffen mehrerer Applikationen auf einen Datenspeicher zu schaffen, die eine effektivere Berücksichtigung von Bandbreitenallokationen zwischen den Applikationen ermöglicht.It is the object of the invention to provide improved management of accesses by a number of applications to a data memory, which allows bandwidth allocations between the applications to be taken into account more effectively.

Diese Aufgabe wird gelöst durch das Verfahren zum Verwalten von Zugriffen von mehreren Applikationen auf einen Datenspeicher mit den Merkmalen des Anspruchs 1. Besonders vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind Gegenstand der abhängigen Ansprüche.This object is achieved by the method for managing accesses by a number of applications to a data memory with the features of claim 1. Particularly advantageous refinements and developments of the invention are the subject matter of the dependent claims.

Das Verfahren zum Verwalten von Zugriffen von mehreren Applikationen auf einen Datenspeicher über Zeitrahmen mit vorbestimmten Zeitdauern, wobei die mehreren Applikationen während ihrer Ausführung jeweils wenigstens eine Warteschlangengruppe mit jeweils wenigstens einer Warteschlange zum Auflisten von Zugriffskommandos auf den Datenspeicher erzeugen, weist die folgenden Schritte auf. Zuerst werden individuelle Zugriffsvolumenkontingente erlangt, die jeweils einer der mehreren Warteschlangengruppen zugeteilt sind, wobei die Summe der Zugriffsvolumenkontingente innerhalb einer vorbestimmten Zeitdauer eines anstehenden Zeitrahmens vollständig in Anspruch genommen werden kann. Dann wird der Zeitrahmen mit der vorbestimmten Zeitdauer gestartet. Im Zeitrahmen wird zuerst eine erste Arbitrierungsphase durchgeführt und wird danach eine zweite Arbitrierungsphase durchgeführt. In der ersten Arbitrierungsphase wird in einer einzigen Verwaltungsrunde nacheinander in den Warteschlangengruppen aller Applikationen jeweils nacheinander in allen Warteschlangen unabhängig von einer Restzeitdauer des Zeitrahmens wenigstens eines der aufgelisteten Zugriffskommandos zugelassen, wenn das der jeweiligen Warteschlangengruppe zugeteilte Zugriffsvolumenkontingent noch nicht aufgebraucht ist. In der zweiten Arbitrierungsphase wird in mehreren Verwaltungsrunden nacheinander in den Warteschlangengruppen aller Applikationen jeweils höchstens eines der aufgelisteten Zugriffskommandos zugelassen, wenn das der jeweiligen Warteschlangengruppe zugeteilte Zugriffsvolumenkontingent noch nicht aufgebraucht ist, wobei die zweite Arbitrierungsphase bei Ablauf der vorbestimmten Zeitdauer des Zeitrahmens beendet wird.The method for managing accesses by multiple applications to a data memory over time frames with predetermined time durations, the multiple applications generating at least one queue group each with at least one queue for listing access commands to the data memory during their execution, has the following steps. First, individual access volume quotas each allocated to one of the plurality of queue groups are obtained, wherein the sum of the access volume quotas can be fully consumed within a predetermined period of time of an upcoming time frame. Then the time frame is started with the predetermined period of time. In the time frame, a first arbitration phase is performed first and then a second arbitration phase is performed. In the first arbitration phase, at least one of the listed access commands is permitted in a single administration round in the queue groups of all applications, one after the other in all queues, regardless of a remaining period of time in the time frame, if the access volume quota allocated to the respective queue group has not yet been used up. In the second arbitration phase, at most one of the listed access commands is permitted in the queue groups of all applications in several consecutive administration rounds, if the access volume quota allocated to the respective queue group has not yet been used up, the second arbitration phase being terminated when the predetermined period of time of the time frame has expired.

Die individuellen Zugriffsvolumenkontingente sind jeweils einer Warteschlangengruppe zugeteilt, und die Applikationen erzeugen jeweils wenigstens eine Warteschlangengruppe mit jeweils wenigstens einer Warteschlange, sodass die Zugriffsvolumenkontingente jeweils einer Warteschlangengruppe einer Applikation zugeteilt sind, nicht aber einzelnen Warteschlangen einer Applikation. Die individuellen Zugriffsvolumenkontingente werden den Warteschlangengruppen für jeden Zeitrahmen neu zugeteilt, sodass sie je nach Zugriffsbedarf und je nach Zeitdauer des Zeitrahmens für verschiedene Zeitrahmen unterschiedlich sein können.The individual access volume quotas are each allocated to a queue group, and the applications each create at least one queue group, each with at least one queue, so that the access volume quotas are allocated to a queue group of an application, but not to individual queues of an application. The individual access volume quotas are reallocated to the queue groups for each time frame, so they can be different for different time frames depending on the access needs and depending on the length of the time frame.

Die Formulierung in der ersten Arbitrierungsphase, dass in allen Warteschlangen aller Warteschlangengruppen wenigstens eines der aufgelisteten Zugriffskommandos zugelassen wird, umfasst natürlich auch das Zulassen keines Zugriffskommandos in einer Warteschlange, falls die jeweilige Warteschlange kein Zugriffskommando enthält. Diese Formulierung in der ersten Arbitrierungsphase, dass in allen Warteschlangen der Warteschlangengruppen wenigstens eines der aufgelisteten Zugriffskommandos zugelassen wird, umfasst auch das Zulassen mehr als eines Zugriffskommandos zum Beispiel durch mehrfaches sequentielles Verwalten der Warteschlangen beim Verwalten der jeweiligen Warteschlangengruppe in der jeweiligen Verwaltungsrunde und/oder im Fall von Zugriffskommandos mehrerer verschiedener Zugriffsarten in der Warteschlange durch das Zulassen jeweils eines Zugriffskommandos von jeder der in der Warteschlange vorhandenen Zugriffsarten in einer Verwaltung der Warteschlange. Die Zugriffsarten sind weiter unten näher erläutert.The formulation in the first arbitration phase that at least one of the listed access commands is allowed in all queues of all queue groups naturally also includes not allowing any access commands in a queue if the respective queue contains no access command. This formulation in the first arbitration phase, that at least one of the listed access commands is allowed in all queues of the queue groups, also includes allowing more than one access command, for example by multiple sequential management of the queues when managing the respective queue group in the respective management round and / or in the Case of access commands of several different types of access in the queue by allowing one access command from each of the types of access present in the queue in a management of the queue. The access types are explained in more detail below.

Die Formulierungen in der zweiten Arbitrierungsphase, dass in mehreren Verwaltungsrunden nacheinander in den Warteschlangengruppen aller Applikationen jeweils höchstens eines der aufgelisteten Zugriffskommandos zugelassen wird und die zweite Arbitrierungsphase bei Ablauf der vorbestimmten Zeitdauer des Zeitrahmens beendet wird, umfasst je nach zeitlicher Situation insbesondere auch Fälle, in denen die Warteschlangengruppen aller Applikationen mehrmals abgehandelt werden (mehrere Verwaltungsrunden), die Warteschlangengruppen aller Applikationen jeweils nur einmal abgehandelt werden (nur eine komplette Verwaltungsrunde), oder ein Teil der Warteschlangengruppen nur einmal abgehandelt wird (nur eine teilweise Verwaltungsrunde). Diese Formulierung in der zweiten Arbitrierungsphase, dass in mehreren Verwaltungsrunden nacheinander in den Warteschlangengruppen aller Applikationen jeweils höchstens eines der aufgelisteten Zugriffskommandos zugelassen wird, umfasst natürlich auch das Zulassen keines Zugriffskommandos in einer Warteschlangengruppe, falls keine der Warteschlangen der jeweiligen Warteschlangengruppe ein Zugriffskommando enthält. Das Zulassen höchstens eines Zugriffskommandos in einer Warteschlangengruppe kann insbesondere dadurch erzielt werden, dass die Warteschlangen einer Warteschlangengruppe nur solange nacheinander verwaltet werden, bis in der jeweiligen Warteschlangengruppe ein Zugriffskommando erkannt wird, das zugelassen werden kann.The formulations in the second arbitration phase, that in several successive administration rounds in the queue groups of all applications at most one of the listed access commands is permitted and the second arbitration phase is ended when the predetermined time period of the time frame has expired, includes depending on the time situation in particular also cases in which the queue groups of all applications are resolved several times (multiple management rounds), the queue groups of all applications are only resolved once each (only a complete management round), or a part of the queue groups is only resolved once (only a partial management round). This formulation in the second arbitration phase, that in several administration rounds in succession in the queue groups of all applications at most one of the listed access commands is allowed, of course also includes not allowing any access commands in a queue group if none of the queues of the respective queue group contains an access command. Allowing at most one access command in a queue group can be achieved in particular by the queues of a queue group only being managed one after the other until an access command that can be allowed is recognized in the respective queue group.

Zum besseren Verständnis der beiden unterschiedlichen Arbitrierungsphasen des in den anhängenden Ansprüchen definierten Erfindungsgegenstandes werden diese nun beispielhaft nochmals und in mehr Details beschrieben. In der ersten Arbitrierungsphase werden in einer Gruppenrunde (Durchlauf über alle Warteschlangengruppen) solange in jeder Warteschlangengruppe Zugriffskommandos für die Verarbeitung zugelassen, bis kein Zugriffskommando mehr in den Warteschlangen vorhanden ist, für das das zugehörige Zugriffsvolumenkontingent verfügbar ist. Innerhalb jeder Warteschlangengruppe wird über mehrere Warteschlangenrunden (zyklischer Zugriff auf die Warteschlangen einer Warteschlangengruppe) jeweils nur ein Zugriffskommando der jeweiligen Warteschlange zur Verarbeitung zugelassen. In der ersten Arbitrierungsphase können so je Warteschlange mehrere Zugriffskommandos zur Verarbeitung zugelassen werden. Das Zulassen zur Verarbeitung von Zugriffskommandos endet in jeder Warteschlange damit, dass das dem nächsten in der Warteschlange enthaltenen Zugriffskommando zugehörige Zugriffsvolumenkontingent aufgebraucht ist oder die Warteschlange leer ist. Sobald eine dieser beiden Bedingungen für alle Warteschlangen einer Warteschlangengruppe gegebenen ist, wird die Arbitrierung innerhalb der ersten Arbitrierungsphase mit der nächsten Warteschlangengruppe fortgesetzt. Es ist auch zu beachten, dass sich der Status der Warteschlangen jederzeit ändern kann, da die Applikationen jederzeit neue Zugriffskommandos in die Warteschlangen schreiben können, die dann vom Zugriffscontroller gelesen und verwaltet werden. In der zweiten Arbitrierungsphase werden die Warteschlangengruppen solange nach Zugriffskommandos in den Warteschlangen durchsucht, bis der Zeitrahmen beendet ist oder alle Zugriffsvolumenkontingente aller Warteschlangengruppen verbraucht sind. Die Zugriffskommandos werden sequentiell verarbeitet, wobei in jeder Gruppenrunde je Warteschlangengruppe jeweils nur höchstens ein Zugriffskommando verarbeitet wird. Das Verwalten einer Warteschlangengruppe endet, sobald ein Zugriffskommando gefunden wird, das zugelassen werden kann (und ggf. auch fragmentiert wird) oder wenn alle Warteschlangen in einer Warteschlangenrunde durchsucht wurden, ohne dass ein Zugriffskommando zugelassen werden konnte, wobei nur ein einzelner Durchlauf über höchstens alle Warteschlangen innerhalb einer Warteschlangengruppe stattfindet. Konnte ein Zugriffskommando einer Warteschlange zur Verarbeitung zugelassen werden, dann wird die Verwaltung der Zugriffskommandos in der nächsten Warteschlange der betreffenden Warteschlangengruppe fortgesetzt, wenn die Warteschlangengruppe nach einer Gruppenrunde wieder nach einem Zugriffskommando durchsucht wird.For a better understanding of the two different arbitration phases of the subject matter of the invention as defined in the appended claims, these will now be described again by way of example and in greater detail. In the first arbitration phase, access commands are permitted for processing in each queue group in a group round (pass through all queue groups) until there are no more access commands in the queues for which the associated access volume quota is available. Within each queue group, only one access command of the respective queue is permitted for processing over several queue rounds (cyclic access to the queues of a queue group). In the first arbitration phase, several access commands can be allowed for processing per queue. Allowing access commands to be processed ends in each queue when the access volume quota associated with the next access command contained in the queue has been used up or the queue is empty. As soon as one of these two conditions is given for all queues of a queue group, the arbitration is continued within the first arbitration phase with the next queue group. It should also be noted that the status of the queues can change at any time, since the applications can write new access commands to the queues at any time, which are then read and managed by the access controller. In the second arbitration phase, the queue groups are searched for access commands in the queues until the time frame has ended or all access volume quotas of all queue groups have been used up. The access commands are processed sequentially, with only a maximum of one access command being processed in each group round per queue group. Management of a queue group ends as soon as an access command is found that can be admitted (and possibly also fragmented) or when all queues in a queue round have been searched through without an access command being admitted, with only a single pass through at most all queues within a queue group. If an access command of a queue could be allowed for processing, then the management of the access commands is continued in the next queue of the relevant queue group if the queue group is searched for an access command again after a group round.

Die Zugriffsverwaltung in der zweiten Arbitrierungsphase beginnt vorzugsweise erst nach Abschluss des Abarbeitens aller zum Abarbeiten zugelassenen Zugriffskommandos aus der ersten Arbitrierungsphase, da auf diese Weise besser sichergestellt werden kann, dass die in der zweiten Arbitrierungsphase sequentiell zugelassenen Zugriffskommandos innerhalb der Restzeit des Zeitrahmens abgearbeitet werden können. Die Abarbeitung der in der ersten Arbitrierungsphase zugelassenen Zugriffskommandos aus der Warteschlangengruppe darf, soweit möglich, parallel erfolgen. Die Abarbeitung der in der zweiten Arbitrierungsphase zugelassenen Zugriffskommandos soll hingegen sequentiell erfolgen, um die Restzeit der vorbestimmten Zeitdauer des Zeitrahmens betrachten und berücksichtigen zu können. Die Anwendung des Verwaltungsverfahrens ist auf keine spezielle Art des Datenspeichers beschränkt; für Datenspeicher mit einer hohen Speicherkapazität (insbes. im Bereich mehrerer oder sogar mehrerer hundert Gigabytes) ist das vorgeschlagene Verwaltungsverfahren besonders vorteilhaft.Access management in the second arbitration phase preferably begins only after the completion of the processing of all access commands from the first arbitration phase that are permitted for processing, since this way it can be better ensured that the access commands that are sequentially permitted in the second arbitration phase can be processed within the remaining time of the time frame. The processing of the access commands from the queue group permitted in the first arbitration phase may, as far as possible, take place in parallel. In contrast, the processing of the access commands permitted in the second arbitration phase should take place sequentially in order to be able to consider and take into account the remaining time of the predetermined time period of the time frame. The application of the management method is not limited to any specific type of data storage; The proposed management method is particularly advantageous for data memories with a high storage capacity (in particular in the range of several or even several hundred gigabytes).

Das Durchführen der zwei speziellen unterschiedlichen Arbitrierungsphasen im Zeitrahmen hat den Vorteil, dass die zur Verfügung stehende Bandbreite des Datenspeichers sehr effizient genutzt wird. Es wird insbesondere erzielt, dass jede Warteschlangengruppe innerhalb eines Zeitrahmens einerseits maximal und andererseits möglichst vollständig das ihr zugeteilte Zugriffsvolumenkontingent nutzen kann. Auch wird eine Gleichverteilung unter den Warteschlangengruppen (in der zweiten Arbitrierungsphase) sowie der Warteschlangen innerhalb der Warteschlangengruppen (in der ersten und der zweiten Arbitrierungsphase) angestrebt, wobei diese Gleichverteilung über das fortgesetzte Verwalten der Warteschlangengruppen und deren Warteschlangen über mehrere Zeitrahmen mit jeweils den beiden Arbitrierungsphasen durchgeführt wird. Diese Gleichverteilung wird auch erzielt, obwohl der zeitliche Rahmen, in dem die Applikationen (z.B. unter Verwaltung des Hostsystems) ausgeführt werden, und der Zeitrahmen, auf dessen Basis der Zugriffscontroller arbeitet, nicht notwendigerweise gleich lang und auch nicht synchron zueinander sein müssen. Allgemein können die Zugriffskommandos von den Applikationen sogar asynchron in die Warteschlangen der Warteschlangengruppen geschrieben werden (d.h. auch während der beiden Arbitirierungsphasen) und können mehr Zugriffskommandos in den Warteschlangen vorhanden sein als in einem Zeitrahmen verarbeitet werden können.Carrying out the two special different arbitration phases in the time frame has the advantage that the available bandwidth of the data memory is used very efficiently. What is achieved in particular is that each queue group within a time frame can use the access volume quota assigned to it to the maximum extent on the one hand and as completely as possible on the other. An equal distribution among the queue groups (in the second arbitration phase) and the queues within the queue groups (in the first and the second arbitration phase), this equal distribution being carried out via the continued administration of the queue groups and their queues over a number of time frames, each with the two arbitration phases. This equal distribution is also achieved even though the time frame in which the applications are executed (eg under management of the host system) and the time frame on which the access controller works do not necessarily have to be of the same length or synchronous to one another. In general, the access commands can even be written asynchronously into the queues of the queue groups by the applications (ie also during the two arbitration phases) and there can be more access commands in the queues than can be processed in one time frame.

Vorzugsweise sind die Warteschlangen der Warteschlangengruppen jeweils konfiguriert, um Zugriffskommandos einer ersten Zugriffsart und/oder Zugriffskommandos einer zweiten Zugriffsart aufzulisten. In diesem Fall enthalten die den mehreren Warteschlangengruppen zugeteilten Zugriffsvolumenkontingente vorzugsweise jeweils ein erstes Zugriffsvolumenkontingent für die erste Zugriffsart und/oder ein zweites Zugriffsvolumenkontingent für die zweite Zugriffsart. Bei den ersten und zweiten Zugriffsarten handelt es sich zum Beispiel um Lesezugriff und Schreibzugriff. Grundsätzlich ist auch die Nutzung von mehr als zwei Zugriffsarten (Lesen, Schreiben, Löschen, etc.) möglich. Während in der ersten Arbitrierungsphase in der einen Verwaltungsrunde in den Warteschlangen der Warteschlangengruppen jeweils ein Zugriffskommando der ersten Zugriffsart und ein Zugriffskommando der zweiten Zugriffsart zugelassen werden kann, wird in der zweiten Arbitrierungsphase in den mehreren Verwaltungsrunden jeweils in den Warteschlangengruppen jeweils höchstens ein einziges Zugriffskommandos der ersten oder zweiten Zugriffsart zugelassen.The queues of the queue groups are preferably each configured to list access commands of a first access type and/or access commands of a second access type. In this case, the access volume quotas allocated to the plurality of queue groups preferably each include a first access volume quota for the first access type and/or a second access volume quota for the second access type. The first and second types of access are, for example, read access and write access. In principle, it is also possible to use more than two types of access (read, write, delete, etc.). While in the first arbitration phase in one administration round in the queues of the queue groups one access command of the first access type and one access command of the second access type can be allowed, in the second arbitration phase in the several administration rounds in each of the queue groups at most one single access command of the first or second type of access allowed.

In einer bevorzugten Ausgestaltung der Erfindung wird, wenn ein Restwert des der jeweiligen Warteschlangengruppe zugeteilten Zugriffsvolumenkontingents für die vollständige Ausführung eines Zugriffskommandos nicht ausreicht, das Zugriffskommando derart fragmentiert, um eine Abarbeitung nur eines Teils des Zugriffsvolumens des Zugriffskommandos entsprechend dem Restwert des zugeteilten Zugriffsvolumenkontingents zuzulassen. Diese volumenbedingte Fragmentierung eines Zugriffskommandos kann je nach Zustandssituation in beiden Arbitrierungsphasen stattfinden.In a preferred embodiment of the invention, if a residual value of the access volume quota allocated to the respective queue group is not sufficient for the complete execution of an access command, the access command is fragmented in such a way that only part of the access volume of the access command can be processed in accordance with the residual value of the allocated access volume quota. This volume-related fragmentation of an access command can take place in both arbitration phases depending on the status situation.

In einer bevorzugten Ausgestaltung der Erfindung wird, wenn in der zweiten Arbitrierungsphase eine Restzeitdauer des Zeitrahmens für die vollständige Ausführung eines Zugriffskommandos nicht ausreicht, das Zugriffskommando derart fragmentiert, um eine Abarbeitung nur eines Teils des Zugriffsvolumens des Zugriffskommandos zuzulassen, dessen Zugriffszeit der Restzeitdauer des Zeitrahmens entspricht. Diese zeitlich bedingte Fragmentierung eines Zugriffskommandos findet je nach Zustandssituation nur in der zweiten Arbitrierungsphase statt, während in der ersten Arbitrierungsphase die Zugriffskommandos unabhängig von der Restzeitdauer des Zeitrahmens zugelassen werden können.In a preferred embodiment of the invention, if in the second arbitration phase a remaining time in the time frame is not sufficient for the complete execution of an access command, the access command is fragmented in such a way that only part of the access volume of the access command can be processed, the access time of which corresponds to the remaining time in the time frame . Depending on the status situation, this time-related fragmentation of an access command takes place only in the second arbitration phase, while in the first arbitration phase the access commands can be permitted independently of the remaining duration of the time frame.

Durch die beiden vorgenannten Fragmentierungen von Zugriffskommandos kann der Zeitrahmen besser ausgenutzt werden. Bevorzugt wird pro Zugriffsart jeweils maximal eine Fragmentierung ausgeführt. Vorzugsweise wird eine Kennung des fragmentierten Zugriffskommandos zwischengespeichert, damit ein nächstes Abhandeln der Warteschlangengruppen in einem nächsten Zeitrahmen mit der Zulassungsverwaltung des im vorherigen Zeitrahmen fragmentierten Zugriffskommandos beginnen kann. Die Fragmentierung des Zugriffskommandos wird ggf. über mehrere Zeitrahmen so lange fortgesetzt, bis das jeweilige Zugriffskommando vollständig verarbeitet ist. Diese Priorisierung von fragmentierten Zugriffskommandos im nächsten Zeitrahmen gegenüber nicht-fragmentierten Zugriffskommandos ist ein wesentlicher Bestandteil des vorzugsweise durchgeführten Fragmentierungsaspekts, da dieser je Warteschlangengruppe nur jeweils eine Zugriffskommandofragmentierung je Zugriffsart zulässt. Falls die Warteschlangen Zugriffskommandos mehr als eine Zugriffsart enthalten können und entsprechend separate Zugriffsvolumenkontingente zugeteilt werden, wird von einer Warteschlange vorzugsweise kein weiteres Zugriffskommando verwaltet (auch nicht Zugriffskommandos anderer Zugriffsarten, für die noch ein Zugriffsvolumenkontingent vorhanden ist und für die aktuell kein Zugriffskommando fragmentiert wird), solange Fragmente eines Zugriffskommandos dieser Warteschlange verarbeitet werden, d.h. solange ein von dieser Warteschlange entnommenes Zugriffskommando in Fragmenten nicht vollständig in der ersten Arbitrierungsphase abgearbeitet werden kann. Der sequentielle Zugriff auf die Warteschlangen wird somit für die Dauer der Abarbeitung eines Zugriffskommandos, das von dieser Warteschlange zuletzt entnommen wurde und aktuell in Fragmenten abgearbeitet wird, gestoppt.The time frame can be better utilized as a result of the two aforementioned fragmentations of access commands. A maximum of one fragmentation is preferably carried out for each type of access. An identifier of the fragmented access command is preferably temporarily stored so that the next processing of the queue groups can begin in a next time frame with the admission management of the access command fragmented in the previous time frame. The fragmentation of the access command is optionally continued over a number of time frames until the respective access command has been completely processed. This prioritization of fragmented access commands in the next time frame compared to non-fragmented access commands is an essential part of the fragmentation aspect that is preferably carried out, since this allows only one access command fragmentation per access type per queue group. If the queues can contain access commands for more than one access type and separate access volume quotas are allocated accordingly, no further access commands are preferably managed by a queue (not even access commands from other access types for which an access volume quota is still available and for which no access command is currently being fragmented), as long as fragments of an access command from this queue are being processed, i.e. as long as an access command taken from this queue in fragments cannot be processed completely in the first arbitration phase. The sequential access to the queues is thus stopped for the duration of the processing of an access command that was last removed from this queue and is currently being processed in fragments.

In einer Ausgestaltung der Erfindung wird der Zeitrahmen vor Ablauf der vorbestimmten Zeitdauer beendet, wenn die Zugriffsvolumenkontingente aller Warteschlangengruppen vollständig aufgebraucht sind. Durch diese Maßnahme des vorzeitigen Beendens des Zeitrahmens kann der nächste Zeitrahmen früher beginnen, sodass die Datendurchsätze für alle Warteschlangengruppen und ihre Warteschlangen erhöht werden können. Da ein solches vorzeitiges Beenden des Zeitrahmens nur bei vollständig aufgebrauchten Zugriffskontingenten aller Applikationen stattfindet, wird keine der Applikationen hierdurch benachteiligt.In one embodiment of the invention, the time frame is terminated before the predetermined period of time has elapsed if the access volume quotas of all queue groups have been completely used up. This measure of ending the time frame early allows the next time frame to start earlier, so that the data throughputs for all queue groups and their queues can be increased. Since such a premature termination of the time frame only takes place when the access quotas of all applications have been completely used up, none of the applications is disadvantaged as a result.

In einer Ausgestaltung der Erfindung wird eine Kennung der zuletzt abgehandelten Warteschlange einer Warteschlangengruppe jeweils zwischengespeichert und beginnt eine nächste Verwaltungsphase derselben Warteschlangengruppe mit jener Warteschlange nach der zuletzt abgehandelten Warteschlange. Alternativ oder zusätzlich kann auch eine Kennung der zuletzt abgehandelten Warteschlangengruppe jeweils zwischengespeichert werden und eine nächste Verwaltungsphase mit jener Warteschlangengruppe nach der zuletzt abgehandelten Warteschlangengruppe beginnen. Durch diese Maßnahmen können die Warteschlangengruppen bzw. die Warteschlangen einer Warteschlangengruppe gleichmäßiger verwaltet und abgehandelt werden.In one embodiment of the invention, an identifier of the queue of a queue group that was last processed is buffered in each case and a next management phase of the same queue group begins with that queue after the queue that was last processed. As an alternative or in addition, an identifier of the queue group last dealt with can also be buffered in each case and a next management phase can begin with that queue group after the queue group last dealt with. These measures allow the queue groups or the queues of a queue group to be managed and dealt with more evenly.

In einer Ausgestaltung der Erfindung wird zum Ermitteln, ob eine Restzeitdauer des Zeitrahmens für das Abarbeiten eines Zugriffskommandos ausreicht, eine vom Zugriffskommando beanspruchte Zugriffszeit basierend auf einer Tabelle bestimmt, in welcher die Verbindung zwischen Zugriffszeiten und Zugriffsvolumina aufgelistet ist. Diese Vorgehensweise wird vorzugsweise auch zum Berechnen der Fragmentierung des Zugriffsvolumens benutzt. Durch diese Vorgehensweise kann zum Beispiel bei der Zugriffsverwaltung berücksichtigt werden, dass verschiedene Zugriffsarten unterschiedliche Zugriffszeiten benötigen (Schreibzugriffe nehmen bei gleichem Volumen in der Regel deutlich mehr Zeit in Anspruch als Lesezugriffe) und Zugriffszeiten für Volumina in der Regel nichtlinear sind (eine Zugriffszeit für zum Beispiel 128 kB ist in der Regel deutlich geringer als die achtfache Zugriffszeit für 16kB).In one embodiment of the invention, to determine whether a remaining period of time in the time frame is sufficient for processing an access command, an access time required by the access command is determined based on a table in which the connection between access times and access volumes is listed. This procedure is preferably also used to calculate the fragmentation of the access volume. With this approach, access management can take into account, for example, that different types of access require different access times (write accesses usually take significantly more time than read accesses for the same volume) and access times for volumes are usually non-linear (an access time for, for example 128 kB is usually significantly less than eight times the access time for 16 kB).

In einer Ausgestaltung der Erfindung weist das Erlangen der Zugriffsvolumenkontingente ein Abrufen der Zugriffsvolumenkontingente von einer Host-Software auf, welche den mehreren Warteschlangengruppen der mehreren Applikationen die Zugriffsvolumenkontingente zuteilt, deren Summe innerhalb der vorbestimmten Zeitdauer vollständig in Anspruch genommen werden kann.In one embodiment of the invention, obtaining the access volume quotas includes retrieving the access volume quotas from host software, which allocates the access volume quotas to the multiple queue groups of the multiple applications, the sum of which can be fully utilized within the predetermined period of time.

Gegenstand der Erfindung ist auch ein Computersystem, das wenigstens einen Prozessor; einen Datenspeicher; mehrere Applikationen, die jeweils auf dem wenigstens einen Prozessor ausführbar sind und während ihrer Ausführung jeweils wenigstens eine Warteschlangengruppe mit jeweils wenigstens einer Warteschlange zum Auflisten von Zugriffskommandos auf den Datenspeicher erzeugen; und einen Zugriffscontroller, der konfiguriert ist zum Verwalten der Zugriffe der mehreren Applikationen auf den Datenspeicher gemäß dem oben beschriebenen Verfahren der Erfindung.The invention also relates to a computer system which has at least one processor; a data store; a plurality of applications, each of which can be executed on the at least one processor and, during their execution, each generate at least one queue group each having at least one queue for listing access commands to the data memory; and an access controller configured to manage the accesses of the multiple applications to the data store according to the method of the invention described above.

Mit diesem Computersystem können die gleichen Vorteile wie mit dem oben beschriebenen Verwaltungsverfahren erzielt werden. Bezüglich der Vorteile, Begriffsdefinitionen und bevorzugter Ausgestaltungen wird auf die obigen Erläuterungen in Zusammenhang mit dem Verwaltungsverfahren der Erfindung verwiesen.With this computer system, the same advantages can be obtained as with the management method described above. With regard to the advantages, definitions of terms and preferred configurations, reference is made to the above explanations in connection with the management method of the invention.

Der Zugriffscontroller kann eine Hardware-Komponente (z.B. Mikrocontroller) sein oder durch eine auf dem wenigstens einen Prozessor ausführbare Software implementiert sein. Je nach Grundaufbau des Computersystems kann der Zugriffscontroller zum Beispiel ein Datenzugriffselement zum Prozessieren der Zugriffe der Applikationen auf den Datenspeicher ansteuern oder in das Datenzugriffselement integriert sein. Das Computersystem ist zum Beispiel durch ein einzelnes Computergerät oder durch mehrere Computergeräte oder in Form einer Computerplattform implementiert.The access controller can be a hardware component (e.g. microcontroller) or can be implemented by software executable on the at least one processor. Depending on the basic structure of the computer system, the access controller can, for example, control a data access element for processing accesses by the applications to the data memory or be integrated into the data access element. The computing system is implemented, for example, by a single computing device or multiple computing devices, or in the form of a computing platform.

Das Computersystem kann ferner eine Host-Software aufweisen, die auf dem wenigstens einen Prozessor ausführbar ist und die bei ihrer Ausführung den mehreren Warteschlangengruppen der mehreren Applikationen Zugriffsvolumenkontingente zuteilt, deren Summe innerhalb einer vorbestimmten Zeitdauer eines anstehenden Zeitrahmens vollständig in Anspruch genommen werden kann.The computer system can also have host software that can be executed on the at least one processor and that, when executed, allocates access volume quotas to the multiple queue groups of the multiple applications, the sum of which can be fully utilized within a predetermined time period of an upcoming time frame.

Gegenstand der Erfindung ist auch ein computerlesbares Speichermedium, das Anweisungen enthält, die von einem Zugriffscontroller eines Computersystems ausführbar sind und bei ihrer Ausführung den Zugriffscontroller das oben beschriebene Verfahren der Erfindung zum Verwalten von Zugriffen von mehreren Applikationen auf einen Datenspeicher des Computersystems ausführen lassen. Das computerlesbare Speichermedium kann grundsätzlich eine beliebige Art eines Speichermediums sein (zum Beispiel RAM, ROM, EEPROM, Flash-Speicher, CD-ROM, DVD, etc.).The subject matter of the invention is also a computer-readable storage medium that contains instructions that can be executed by an access controller of a computer system and, when they are executed, allow the access controller to carry out the above-described method of the invention for managing access by a number of applications to a data memory of the computer system. The computer-readable storage medium can basically be any type of storage medium (e.g. RAM, ROM, EEPROM, flash memory, CD-ROM, DVD, etc.).

Die in den anhängenden Ansprüchen definierte und nachfolgend beispielhaft im Detail beschriebene Erfindung ist auf keine speziellen Anwendungen eingeschränkt, insbesondere nicht auf spezielle Applikationen oder spezielle Datenspeicher, und auch nicht auf spezielle Anwendungsgebiete der Computersysteme.The invention, which is defined in the appended claims and described in detail below by way of example, is not limited to any special applications, in particular not to special applications or special data storage devices, nor to special fields of application of the computer systems.

Obige sowie weitere Merkmale und Vorteile der Erfindung werden aus der nachfolgenden Beschreibung eines bevorzugten, nicht-einschränkenden Ausführungsbeispiels anhand der beiliegenden Zeichnung besser verständlich. Darin zeigen, zum Teil schematisch:

  • 1 ein Computersystem gemäß einem Ausführungsbeispiel der Erfindung;
  • 2 ein Flussdiagramm des Verwaltungsverfahrens der Erfindung; und
  • 3 bis 8 mehrere Teilflussdiagramme zu dem Flussdiagramm von 2 gemäß Ausführungsbeispielen der Erfindung.
The above and other features and advantages of the invention will be apparent from the following description of a preferred, non-limiting embodiment with reference to FIG understand the drawing better. It shows, partly schematically:
  • 1 a computer system according to an embodiment of the invention;
  • 2 a flow chart of the management method of the invention; and
  • 3 until 8th several sub-flowcharts to the flowchart of 2 according to embodiments of the invention.

Das in 1 veranschaulichte Computersystem 10 enthält im Grundaufbau wenigstens einen Prozessor 12 und ein Softwaresystem 14, das auf dem wenigstens einen Prozessor 12 ausführbar ist. Das Softwaresystem 14 hat mehrere (in diesem Ausführungsbeispiel beispielhaft drei) Applikationen 15a, 15b, 15c und zusätzlich optional eine Host-Software 16. Die Applikationen 15n greifen während ihrer Ausführung auf einen Datenspeicher 20 des Computersystems 10 zu. Der Zugriff (insbes. Lesen und Schreiben) der Applikationen 15n auf den Datenspeicher 20 wird in diesem Ausführungsbeispiel über ein Datenzugriffselement 22 ausgeführt. Der Datenspeicher 20 ist ein Massenspeicher, zum Beispiel in Form einer integrierten Festplatte oder einer eingesteckten Speicherkarte.This in 1 Illustrated computer system 10 contains in the basic structure at least one processor 12 and a software system 14, which is executable on the at least one processor 12. The software system 14 has several (in this exemplary embodiment three by way of example) applications 15a, 15b, 15c and, additionally, optionally host software 16. The applications 15n access a data memory 20 of the computer system 10 during their execution. In this exemplary embodiment, the applications 15n access (in particular reading and writing) the data memory 20 via a data access element 22 . The data memory 20 is a mass memory, for example in the form of an integrated hard disk or an inserted memory card.

Während ihrer Ausführung erzeugen die Applikationen 15n jeweils Zugriffskommandos 19, die in Warteschlangen 18nm aufgelistet werden. Wie in 1 veranschaulicht, hat jede der Applikationen 15n eine oder mehrere Warteschlangengruppen 17n mit einer oder mehreren Warteschlangen 18nm für die Zugriffskommandos 19. Zum Beispiel kann die erste Applikation 15a eine erste Warteschlangengruppe 17a mit drei Warteschlangen 18a1, 18a2, 18a3 für Zugriffskommandos 19 haben, die zweite Applikation 15b eine zweite Warteschlangengruppe 17b mit zwei Warteschlangen 18b1, 18b2 für Zugriffskommandos 19 und eine dritte Warteschlangengruppe 17c mit drei Warteschlangen 18c1, 18c2, 18c3 für Zugriffskommandos 19 haben, und die dritte Applikation 15c eine vierte Warteschlangengruppe 17d mit zwei Warteschlangen 18d1, 18d2 für Zugriffskommandos 19 haben. Die von den Applikationen 15n aufgelisteten Zugriffskommandos 19 können bei Bedarf Zugriffskommandos einer ersten Zugriffsart (z.B. Lesezugriffskommandos 19R) und Zugriffskommandos einer zweiten Zugriffsart (z.B. Schreibzugriffskommandos 19W) enthalten, wobei bei Bedarf auch Zugriffskommandos noch weiterer Zugriffsarten möglich sind. In den Warteschlangengruppen 17n der Applikationen 15n können die Zugriffskommandos der verschiedenen Zugriffsarten wahlweise separat in verschiedenen Warteschlangen 18nm oder gemischt in gemeinsamen Warteschlangen 18nm aufgelistet sein.During their execution, the applications 15n each generate access commands 19, which are listed in queues 18nm. As in 1 As illustrated, each of the applications 15n has one or more queue groups 17n with one or more queues 18nm for the access commands 19. For example, the first application 15a can have a first queue group 17a with three queues 18a1, 18a2, 18a3 for access commands 19, the second application 15b have a second queue group 17b with two queues 18b1, 18b2 for access commands 19 and a third queue group 17c with three queues 18c1, 18c2, 18c3 for access commands 19, and the third application 15c has a fourth queue group 17d with two queues 18d1, 18d2 for access commands 19 have. The access commands 19 listed by the applications 15n can, if required, contain access commands of a first access type (e.g. read access commands 19R) and access commands of a second access type (e.g. write access commands 19W), access commands of other access types also being possible if required. In the queue groups 17n of the applications 15n, the access commands of the different access types can be listed either separately in different queues 18nm or mixed in common queues 18nm.

Das Datenzugriffselement 22 arbeitet die in den Warteschlangen 18nm aufgelisteten Zugriffskommandos 19 ab. Zum Verwalten dieser Datenzugriffe der Applikationen 15n auf den Datenspeicher 20 weist das Computersystem 10 außerdem einen Zugriffscontroller 24 zum Managen der Warteschlangengruppen 17n auf (nur der Warteschlangengruppen, während er die Applikationen nicht kennt und die Applikationen nur durch die Host-Software 16 verwaltet werden). Der Zugriffscontroller 24 ist zum Beispiel ein Mikrocontroller, der das Datenzugriffselement 22 ansteuert, oder ein in das Datenzugriffselement 22 integriertes Steuersystem. Wie in 1 veranschaulicht, weist das Computersystem 10 einen Programmspeicher (computerlesbares Speichermedium) 25 auf, der vom Zugriffscontroller 24 ausführbare Anweisungen zum Durchführen des Verfahrens zum Verwalten der Zugriffe der Applikationen 15n auf den Datenspeicher 20 enthält.The data access element 22 processes the access commands 19 listed in the queues 18nm. To manage these data accesses of the applications 15n to the data store 20, the computer system 10 also has an access controller 24 for managing the queue groups 17n (only the queue groups, while it does not know the applications and the applications are only managed by the host software 16). The access controller 24 is, for example, a microcontroller that controls the data access element 22 or a control system integrated into the data access element 22 . As in 1 Illustrated, the computer system 10 has a program memory (computer-readable storage medium) 25, which contains instructions that can be executed by the access controller 24 for carrying out the method for managing the accesses of the applications 15n to the data memory 20.

Das Computersystem 10 kann natürlich auch noch weitere Komponenten aufweisen (z.B. Anzeigen, Eingabevorrichtungen, Kommunikationsschnittstellen, etc.), die in 1 nicht dargestellt sind, weil sie für die Verwirklichung der erfindungsgemäßen Datenzugriffsverwaltung nicht vorhanden sein müssen.The computer system 10 can of course also have other components (e.g. displays, input devices, communication interfaces, etc.) that 1 are not shown because they do not have to be present for the implementation of the data access management according to the invention.

Ein Ausführungsbeispiel des vom Zugriffscontroller 24 durchzuführenden Verfahrens zum Verwalten der Zugriffe der mehreren Applikationen 15n auf den Datenspeicher 20 wird nachfolgend anhand der in den 2 bis 8 dargestellten Flussdiagramme beispielhaft im Detail erläutert.An exemplary embodiment of the method to be carried out by the access controller 24 for managing the accesses of the multiple applications 15n to the data memory 20 is described below with reference to the 2 until 8th illustrated flowcharts explained in detail as an example.

2 zeigt zunächst die Hauptschritte des Verfahrens 200 zur Datenzugriffsverwaltung der Applikationen 15n auf den Datenspeicher 20, die vom Zugriffscontroller 24 durchgeführt werden. 2 first shows the main steps of the method 200 for data access management of the applications 15n to the data memory 20, which are carried out by the access controller 24.

In einem ersten Verfahrensschritt 210 erlangt der Zugriffscontroller 24 (in diesem Ausführungsbeispiel von der Host-Software 16) individuelle Zugriffsvolumenkontingente Cn, die von der Host-Software 16 jeweils einer der mehreren Warteschlangengruppen 17n, die von den mehreren Applikationen 15n aktuell eingerichtet sind, für den anstehenden Zeitrahmen TR zugeteilt worden sind. In diesem Ausführungsbeispiel, in dem die Warteschlangen der Applikationen 15n wahlweise Lesezugriffskommandos 19R und/oder Schreibzugriffskommandos 19W enthalten können, werden den Warteschlangengruppen 17n jeweils individuelle Lesezugriffsvolumenkontingente CRn und individuelle Schreibzugriffsvolumenkontingente CWn für den anstehenden Zeitrahmen TR zugeteilt. Der Zugriffscontroller 24 erlangt somit von der Host-Software 16 ein Lesezugriffsvolumenkontingent CRa und ein Schreibzugriffsvolumenkontingent CWa für die erste Warteschlangengruppe 17a der ersten Applikation 15a, ein Lesezugriffsvolumenkontingent CRb und ein Schreibzugriffsvolumenkontingent CWb für die zweite Warteschlangengruppe 17b der zweiten Applikation 15b, ein Lesezugriffsvolumenkontingent CRc und ein Schreibzugriffsvolumenkontingent CWc für die dritte Warteschlangengruppe 17c der zweiten Applikation 15c, und ein Lesezugriffsvolumenkontingent CRd und ein Schreibzugriffsvolumenkontingent CWd für die vierte Warteschlangengruppe 17d der dritten Applikation 15c.In a first step 210, the access controller 24 (in this exemplary embodiment from the host software 16) obtains individual access volume quotas Cn, which the host software 16 assigns to one of the multiple queue groups 17n that are currently set up by the multiple applications 15n for the pending time frame TR have been allocated. In this exemplary embodiment, in which the queues of the applications 15n can optionally contain read access commands 19R and/or write access commands 19W, the queue groups 17n are each allocated individual read access volume quotas CRn and individual write access volume quotas CWn for the pending time frame TR. The access controller 24 thus obtains from the host software 16 a read access volume quota CRa and a write access volume quota CWa for the first queue group 17a of the first application 15a, a read access volume quota CRb and a write access volume quota CWb for the second queue group 17b of the second application 15b, a read access volume quota CRc and a write access volume quota CWc for the third queue group 17c of the second application 15c, and a read access volume quota CRd and a write access volume quota CWd for the fourth queue group 17d of the third application 15c .

Die Zuteilung der Zugriffsvolumenkontingente Cn (CRn und CWn) ist dabei so an die vom Datenspeicher 20 verarbeitbare Bandbreite angepasst, dass die Summe der Zugriffsvolumenkontingente Cn aller Applikationen 15n innerhalb einer vorbestimmten Zeitdauer td eines anstehenden Zeitrahmens TR vollständig in Anspruch genommen werden kann. Die Zeitdauern td von aufeinanderfolgenden Zeitrahmen TR sind zum Beispiel unverändert, können aber bei Bedarf oder je nach Anwendungsfall variiert werden. Die Zuteilung der individuellen Zugriffsvolumenkontingente Cn auf die Warteschlangengruppen 17n der Applikationen 15n erfolgt für aufeinanderfolgende Zeitrahmen TR grundsätzlich variabel, sodass für die Zuteilungen der Zugriffsvolumenkontingente die Verfahrensabläufe der Applikationen 15n berücksichtigt werden können.The allocation of the access volume quotas Cn (CRn and CWn) is adapted to the bandwidth that can be processed by the data store 20 such that the sum of the access volume quotas Cn of all applications 15n can be fully utilized within a predetermined time period td of an upcoming time frame TR. The durations td of consecutive time frames TR are unchanged, for example, but can be varied as required or depending on the application. The allocation of the individual access volume quotas Cn to the queue groups 17n of the applications 15n is basically variable for consecutive time frames TR, so that the process sequences of the applications 15n can be taken into account for the allocation of the access volume quotas.

Nach dem Erlangen der Zugriffsvolumenkontingente Cn in Schritt 210 startet der Zugriffscontroller 24 in Schritt 220 den anstehenden Zeitrahmen TR mit der vorbestimmten Zeitdauer td. Im Zeitrahmen TR werden dann in Schritt 230 eine erste Arbitrierungsphase A1 und danach in Schritt 240 eine zweite Arbitrierungsphase A2 durchgeführt.After obtaining the access volume quotas Cn in step 210, the access controller 24 starts the pending time frame TR with the predetermined time period td in step 220. In the time frame TR, a first arbitration phase A1 and then in step 240 a second arbitration phase A2 are carried out in step 230.

Nach Abschluss des Zeitrahmens TR bzw. der beiden Arbitrierungsphasen A1, A2 kehrt das Verfahren 200 wieder zurück zu Schritt 210. D.h. es werden in der Regel mehrere Zeitrahmen TR abgewickelt, für die jeweils individuelle Zugriffsvolumenkontingente Cn den jeweils von den Applikationen 15n eingerichteten Warteschlangengruppen 17n zugeteilt werden und die beiden Arbitrierungsphasen A1, A2 für die Verwaltung der Zugriffe auf den Datenspeicher 20 durchgeführt werden.After completion of the time frame TR or the two arbitration phases A1, A2, the method 200 returns to step 210. I.e. several time frames TR are usually processed, for which individual access volume quotas Cn are allocated to the queue groups 17n set up by the applications 15n and the two arbitration phases A1, A2 for managing the accesses to the data memory 20 are carried out.

Bezugnehmend auf 3 und 4 wird nun der Schritt 230 zum Durchführen der ersten Arbitrierungsphase A1 genauer erläutert.Referring to 3 and 4 Step 230 for performing the first arbitration phase A1 will now be explained in more detail.

In der ersten Arbitrierungsphase A1 werden in Schritt 232 die Zugriffsvolumenkontingente Cn für eine aktuelle Warteschlangengruppe 17x (zum Beispiel die erste Warteschlangengruppe 17a der ersten Applikation 15a) in einer Weise verbraucht, wie dies genauer in 4 veranschaulicht ist. Nach Abschluss dieses Zugriffskontingentenverbrauchs 232 für die aktuelle Warteschlangengruppe 17x wird dann in Schritt 234 überprüft, ob dieser Zugriffskontingentenverbrauch 232 schon für alle Warteschlangengruppen 17n aller Applikationen 15n abgehandelt worden ist. Falls nicht (N in 234), wird in Schritt 236 eine nächste Warteschlangengruppe 17x+1 (zum Beispiel die zweite Warteschlangengruppe 17b der zweiten Applikation 15b) als aktuelle Warteschlangengruppe 17x ausgewählt, um den Zugriffskontingentenverbrauch 232 dann für diese nächste Warteschlangengruppe 17x+1 durchzuführen. Wenn dann alle Warteschlangengruppen 17n mit dem Verfahrensschritt 232 abgehandelt worden sind (Y in 234), endet diese erste Arbitrierungsphase A1.In the first arbitration phase A1, in step 232, the access volume quotas Cn for a current queue group 17x (for example the first queue group 17a of the first application 15a) are used up in a manner as described in more detail in FIG 4 is illustrated. After completion of this access quota consumption 232 for the current queue group 17x, it is then checked in step 234 whether this access quota consumption 232 has already been dealt with for all queue groups 17n of all applications 15n. If not (N in 234), in step 236 a next queue group 17x+1 (for example the second queue group 17b of the second application 15b) is selected as the current queue group 17x in order to then carry out the access quota consumption 232 for this next queue group 17x+1. When all queue groups 17n have then been dealt with using method step 232 (Y in 234), this first arbitration phase A1 ends.

4 veranschaulicht den Verfahrensschritt 232 der ersten Arbitrierungsphase A1 für ein bevorzugtes Ausführungsbeispiel der Datenzugriffsverwaltung der Applikationen 15n, das ein Fragmentierungskonzept enthält. In diesem Ausführungsbeispiel enthält der Verfahrensschritt 232 der ersten Arbitrierungsphase A1 eine erste Phase 310, in der der Zugriffscontroller 24 fragmentierte Zugriffskommandos 19f zulassen kann, die möglicherweise in einem vorherigen Zeitrahmen TR durch Limitierung eines Zugriffskommandos 19 entstanden sind, wie später anhand von 7 und 8 näher erläutert. Die Verarbeitung der fragmentierten Zugriffskommandos aus vorherigen Zeitrahmen wird so priorisiert. In dieser Phase 310 wird in einem Schritt 311 geprüft, ob in der aktuellen Warteschlangengruppe 17x ein fragmentiertes Lesezugriffskommando 19Rf aus dem vorherigen Zeitrahmen existiert. Falls dies der Fall ist (Y in 311), wird in Schritt 312 geprüft, ob für die aktuelle Warteschlangengruppe 17x ein Lesezugriffsvolumenkontingent CRn vorhanden ist. Falls dies der Fall ist (Y in 312), lässt der Zugriffscontroller 24 in Schritt 313 das fragmentierte Lesezugriffskommando 19Rf zu (wie später anhand der 7 und 8 näher erläutert). Danach wird in einem Schritt 314 geprüft, ob in der aktuellen Warteschlangengruppe 17x ein fragmentiertes Schreibzugriffskommando 19Wf aus dem vorherigen Zeitrahmen existiert. Falls dies der Fall ist (Y in 314), wird in Schritt 315 geprüft, ob für die aktuelle Warteschlangengruppe 17x ein Schreibzugriffsvolumenkontingent CWn vorhanden ist. Falls dies der Fall ist (Y in 315), lässt der Zugriffscontroller 24 in Schritt 316 das fragmentierte Lesezugriffskommando 19Wf zu (wie später anhand der 7 und 8 näher erläutert). 4 illustrates the method step 232 of the first arbitration phase A1 for a preferred exemplary embodiment of the data access management of the applications 15n, which contains a fragmentation concept. In this exemplary embodiment, method step 232 of the first arbitration phase A1 contains a first phase 310 in which access controller 24 can allow fragmented access commands 19f that may have arisen in a previous time frame TR by limiting an access command 19, as will be explained later with reference to 7 and 8th explained in more detail. The processing of the fragmented access commands from previous time frames is thus prioritized. In this phase 310, a step 311 checks whether a fragmented read access command 19Rf from the previous time frame exists in the current queue group 17x. If this is the case (Y in 311), it is checked in step 312 whether there is a read access volume quota CRn for the current queue group 17x. If this is the case (Y in 312), the access controller 24 allows the fragmented read access command 19Rf in step 313 (as explained later with reference to 7 and 8th explained in more detail). Then, in a step 314, it is checked whether a fragmented write access command 19Wf from the previous time frame exists in the current queue group 17x. If this is the case (Y in 314), it is checked in step 315 whether there is a write access volume quota CWn for the current queue group 17x. If this is the case (Y in 315), the access controller 24 permits the fragmented read access command 19Wf in step 316 (as explained later with reference to 7 and 8th explained in more detail).

Nach dieser Priorisierungsphase 310 betreffend fragmentierte Zugriffskommandos 19Rf, 19Wf wird in Schritt 320 eine Kennung der zuletzt abgehandelte Warteschlange 18z der aktuellen Warteschlangengruppe 17x abgerufen, die nach deren Abhandlung im vorherigen Zeitrahmen zwischengespeichert worden ist. Dann wird in Schritt 322 geprüft, ob für die aktuelle Warteschlangengruppe 17x das zugeteilte Lesezugriffskontingent CRn und das zugeteilte Schreibzugriffsvolumenkontingent CWn bereits vollständig aufgebraucht worden sind, d.h. ob kein Zugriffsvolumenkontingentrest rCn mehr für die aktuelle Warteschlangengruppe 17x in diesem Zeitrahmen TR vorhanden ist. Falls dies der Fall ist (Y in 322), wird der Verfahrensschritt 232 ohne Abhandeln von Zugriffskommandos 19 beendet.After this prioritization phase 310 relating to fragmented access commands 19Rf, 19Wf, in step 320 an identifier of the last processed queue 18z of the current queue group 17x is retrieved, which has been temporarily stored after its processing in the previous time frame. Then in step 322 it is checked whether for the current queue group 17x the allocated read access quota CRn and the allocated write access volume quota CWn have already been completely used up, ie whether there is no access volume quota residue rCn left for the current queue group 17x in this time frame TR. If this is the case (Y in 322), method step 232 is terminated without processing access commands 19.

Wenn die Zugriffsvolumenkontingente Cn noch nicht ganz aufgebraucht sind (N in 322), wird in Schritt 323 ausgehend von der abgerufenen Kennung der zuletzt abgehandelten Warteschlange 18z dieser aktuellen Warteschlangengruppe 17x auf die nächste Warteschlange als aktuelle Warteschlange 18xy der aktuellen Warteschlangengruppe 17x zum Abhandeln zugegriffen. Zuerst wird in Schritt 324 dann geprüft, ob in der aktuellen Warteschlange 18xy überhaupt Zugriffskommandos 19 vorhanden sind. Falls die aktuelle Warteschlange 18xy leer ist (N in 324), wird die Abhandlung der aktuellen Warteschlange 18xy sofort beendet. Wenn die aktuelle Warteschlange 18xy nicht leer ist (Y in 324), wird in Schritt 325 geprüft, ob ein Lesezugriffskommando 19R in der aktuellen Warteschlange 18xy aufgelistet ist. Falls vorhanden (Y in 325), wird in Schritt 326 geprüft, ob noch ein Lesezugriffsvolumenkontingentrest rCRn (d.h. Rest des zugeteilten Lesezugriffsvolumenkontingents CRn in diesem Zeitrahmen) für diese Warteschlangengruppe 17x vorhanden ist. Falls dies der Fall ist (Y in 326) (unabhängig vom Wert des Lesezugriffsvolumenkontingentenrests), wird in Schritt 327 das Lesezugriffskommando 19R zugelassen und dann wieder zu Schritt 322 zurückgekehrt und, falls möglich (N in 322), in Schritt 323 zur nächsten Warteschlange gewechselt.If the access volume quotas Cn are not yet completely used up (N in 322), in step 323, starting from the retrieved identifier of the last processed queue 18z of this current queue group 17x, the next queue is accessed as the current queue 18xy of the current queue group 17x for processing. First, in step 324, a check is made as to whether access commands 19 are present at all in the current queue 18xy. If the current queue 18xy is empty (N in 324), the processing of the current queue 18xy stops immediately. If the current queue 18xy is not empty (Y in 324), it is checked in step 325 whether a read access command 19R is listed in the current queue 18xy. If present (Y in 325), it is checked in step 326 whether there is still a read access volume quota remainder rCRn (i.e. remainder of the allocated read access volume quota CRn in this time frame) for this queue group 17x. If this is the case (Y in 326) (regardless of the value of the read access volume quota remainder), in step 327 the read access command 19R is permitted and then returned to step 322 and, if possible (N in 322), in step 323 switched to the next queue .

Falls in der aktuellen Warteschlange 18xy kein Lesezugriffskommando 19R vorhanden ist (N in 325), wird aufgrund des Prüfungsergebnisses in Schritt 324, dass die aktuelle Warteschlange nicht leer ist (Y in 324), davon ausgegangen, dass ein Schreibzugriffskommando 19W in der aktuellen Warteschlange 18xy aufgelistet ist. In Schritt 328 wird deshalb geprüft, ob noch ein Schreibzugriffsvolumenkontingentrest rCWn (d.h. Rest des zugeteilten Schreibzugriffsvolumenkontingents CWn in diesem Zeitrahmen) für diese Warteschlangengruppe 17x vorhanden ist. Falls dies der Fall ist (Y in 328) (unabhängig vom Wert des Schreibzugriffsvolumenkontingentenrests), wird in Schritt 329 das Schreibzugriffskommando 19W zugelassen und dann wieder zu Schritt 322 zurückgekehrt und, falls möglich (N in 322), in Schritt 323 zur nächsten Warteschlange gewechselt. Optional könnte vor Schritt 328 auch ein zusätzlicher Prüfungsschritt analog zu Schritt 325 abgewickelt werden.If there is no read access command 19R in the current queue 18xy (N in 325), based on the check result in step 324 that the current queue is not empty (Y in 324), it is assumed that a write access command 19W is in the current queue 18xy is listed. In step 328 it is therefore checked whether there is still a write access volume quota remainder rCWn (i.e. remainder of the allocated write access volume quota CWn in this time frame) for this queue group 17x. If this is the case (Y in 328) (regardless of the value of the write access volume quota remainder), in step 329 the write access command 19W is allowed and then returned to step 322 and, if possible (N in 322), in step 323 switched to the next queue . Optionally, before step 328, an additional testing step analogous to step 325 could also be processed.

Bei einer Feststellung, dass keine Zugriffskommandos 19 in der aktuellen Warteschlange 18xy aufgelistet sind (N in 324) oder dass kein Lesezugriffsvolumenkontingentrest rCRn mehr verfügbar ist (N in 326) oder dass kein Schreibzugriffsvolumenkontingentrest rCWn mehr verfügbar ist (N in 328), wird in einem weiteren Schritt 330 geprüft, ob dies Fakten schon für alle Warteschlangen 18nm der aktuellen Warteschlangengruppe 17x festgestellt worden sind. Falls dies der Fall ist (Y in 330), wird der Verfahrensschritt 232 beendet. Falls dies noch nicht der Fall ist (N in 330), wird wieder zu Schritt 323 zurückgekehrt, um zur nächsten Warteschlange zu wechseln.Upon determination that no access commands 19 are listed in the current queue 18xy (N in 324) or that no read access volume quota remainder rCRn is available (N in 326) or that no write access volume quota remainder rCWn is available (N in 328), in a further step 330 checked whether these facts have already been established for all queues 18nm of the current queue group 17x. If this is the case (Y in 330), method step 232 is ended. If this is not yet the case (N in 330), the process returns to step 323 in order to switch to the next queue.

Wenn für die aktuelle Warteschlangengruppe 17x die Zugriffsvolumenkontingente Cn ohne Abhandeln einer Warteschlange oder nach Abhandeln von ein oder mehr Warteschlangen dieser Warteschlangengruppe aufgebraucht sind (Y in 322), oder auch nachdem alle Warteschlangen 18nm der aktuellen Warteschlangengruppe 17x abgehandelt worden sind (Y in 330), wird der Verfahrensschritt 232 beendet, wobei zuvor noch in Schritt 332 eine Kennung der zuletzt abgehandelten Warteschlange 18z der aktuellen Warteschlangengruppe 17x gespeichert wird.If for the current queue group 17x the access volume quotas Cn are used up without resolving a queue or after resolving one or more queues of this queue group (Y in 322), or also after all queues 18nm of the current queue group 17x have been resolved (Y in 330), method step 232 is terminated, with an identifier of the last processed queue 18z of the current queue group 17x being stored beforehand in step 332.

In einer bevorzugten Ausführungsvariante kann der in 4 veranschaulichte Verfahrensschritt 232 der ersten Arbitrierungsphase A1 so modifiziert sein, dass in einem Fall, wenn in der Phase 310 ein fragmentiertes Zugriffskommando 19f erkannt wird, d.h. in einem vorherigen Zeitrahmen TR ein Zugriffskommando 19 fragmentiert worden ist, anschließend kein Zugriffskommando 19 mehr für diese Warteschlangengruppe 17x verwaltet wird, wenn in der ersten Arbitrierungsphase A1 ein vom vorherigen Zeitrahmen TR stammendes Zugriffskommandofragment 19f mangels ausreichendem Zugriffsvolumenkontingent Cn erneut fragmentiert werden muss, sodass in diesem Zeitrahmen TR kein Zugriffsvolumenkontingentenrest rCn für die Verarbeitung weiterer Zugriffskommandos 19 dieser Zugriffsart zur Verfügung steht oder der Zugriffsvolumenkontingentenrest rCn mit dem Abarbeiten des letzten Fragments vollständig aufgebraucht ist.In a preferred embodiment variant, the in 4 illustrated method step 232 of the first arbitration phase A1 be modified such that in a case when a fragmented access command 19f is detected in phase 310, ie an access command 19 has been fragmented in a previous time frame TR, then no more access command 19 for this queue group 17x is managed if, in the first arbitration phase A1, an access command fragment 19f originating from the previous time frame TR has to be fragmented again due to a lack of sufficient access volume quota Cn, so that in this time frame TR no access volume quota remainder rCn is available for processing further access commands 19 of this access type, or the access volume quota remainder rCn is available completely used up after processing the last fragment.

Generell kann in diesem Zusammenhang a) eine Fragmentierung von Zugriffskommandos 19 in beiden Arbitrierungsphasen A1 und A2 begonnen werden durch die Limitierung des Zugriffsvolumens; b) eine Fragmentierung eines Zugriffskommandos 19 nur in der ersten Arbitrierungsphase A1 fortgesetzt werden durch erneute Limitierung des Zugriffsvolumens (entsprechend einem verbleibenden Zugriffskontingent Null); und c) eine Fragmentierung eines Zugriffskommandos 19 nur in der ersten Arbitrierungsphase A1 beendet werden. Bei c) kann der Zugriffsvolumenkontingentenrest rCn der jeweiligen Zugriffsart restlos verbraucht werden oder für die Verarbeitung weiterer Zugriffskommandos 19 dieser Zugriffsart in der ersten Arbitrierungsphase A1 und ggf. auch in der zweiten Arbitrierungsphase A2 zur Verfügung stehen.In general, in this connection a) a fragmentation of access commands 19 can be started in both arbitration phases A1 and A2 by limiting the access volume; b) fragmentation of an access command 19 can only be continued in the first arbitration phase A1 by again limiting the access volume (corresponding to a remaining access quota of zero); and c) a fragmentation of an access command 19 can only be ended in the first arbitration phase A1. At c) he can Access volume quota remainder rCn of the respective access type are used up completely or are available for processing further access commands 19 of this access type in the first arbitration phase A1 and possibly also in the second arbitration phase A2.

Bezugnehmend auf 5 und 6 wird nun die zweite Arbitrierungsphase A2 genauer erläutert.Referring to 5 and 6 the second arbitration phase A2 will now be explained in more detail.

In der zweiten Arbitrierungsphase A2 wird in Schritt 510 zunächst abgewartet bis alle zuvor zugelassenen Zugriffskommandos 19 aus irgendwelchen Warteschlangen 18nm in irgendwelchen Warteschlangengruppen 17n abgearbeitet worden sind. Die Abarbeitung der in der ersten Arbitrierungsphase A1 zugelassenen Zugriffskommandos 19, 19f darf dabei, soweit möglich, parallel erfolgen. Dann wird in Schritt 512 die Restzeitdauer rtd bis zum Ablauf der vorbestimmten Zeitdauer td des Zeitrahmens TR berechnet und in Schritt 514 geprüft, ob noch eine Restzeitdauer rtd im Zeitrahmen TR vorhanden ist.In the second arbitration phase A2, in step 510 there is first a wait until all previously permitted access commands 19 from any queues 18nm in any queue groups 17n have been processed. The processing of the access commands 19, 19f permitted in the first arbitration phase A1 may, as far as possible, take place in parallel. Then, in step 512, the remaining time period rtd is calculated until the predetermined time period td of the time frame TR has elapsed, and in step 514 it is checked whether there is still a remaining time period rtd in the time frame TR.

Falls noch eine Restzeitdauer rtd vorhanden ist (Y in 514), wird in Schritt 516 ausgehend von der abgerufenen Kennung der zuletzt abgehandelten Warteschlangengruppe 17z die nächste Warteschlangengruppe als aktuelle Warteschlangengruppe 17x zum Abhandeln bestimmt und dann in Schritt 518 diese aktuelle Warteschlangengruppe 17x abgehandelt, um ein, insbesondere höchstens ein Zugriffskommando 19 aus dieser Warteschlangengruppe 17x zuzulassen. Wie in 5 veranschaulicht, wird nach dem Abhandeln einer Warteschlangengruppe 17x wieder zu Schritt 510 zurückgekehrt, um in der zweiten Arbitrierungsphase A2 wieder auf vollständiges Abarbeiten von zugelassenen Zugriffskommandos zu warten und die Restzeitdauer rtd zu berechnen (512), um gegebenenfalls eine weitere Warteschlangengruppe 17n abzuhandeln (518).If there is still a remaining time period rtd (Y in 514), in step 516, based on the retrieved identifier of the queue group 17z last processed, the next queue group is determined as the current queue group 17x for processing and then in step 518 this current queue group 17x is processed by a , in particular to allow at most one access command 19 from this queue group 17x. As in 5 illustrated, after a queue group 17x has been dealt with, a return is made to step 510 in order to wait again in the second arbitration phase A2 for the complete processing of permitted access commands and to calculate the remaining time rtd (512) in order to deal with another queue group 17n if necessary (518) .

Falls es keine Restzeitdauer rtd mehr gibt (N in 514) (nach keiner, einer oder mehreren abgehandelten Warteschlangengruppen), wird die zweite Arbitrierungsphase A2 nicht weiter durchgeführt. In Schritt 520 wird dann aber noch eine Kennung der zuletzt abgehandelten Warteschlangengruppe 17z zwischengespeichert.If there is no remaining time period rtd (N in 514) (after none, one or more queue groups have been dealt with), the second arbitration phase A2 is no longer carried out. In step 520, however, an identifier of the last queue group 17z dealt with is then temporarily stored.

Das Abhandeln 518 der aktuellen Warteschlangengruppe 17x ist in 6 genauer veranschaulicht. Zuerst wird in Schritt 610 die zwischengespeicherte Kennung der zuletzt abgehandelten Warteschlange 18z der aktuellen Warteschlangengruppe 17x abgerufen. Dann wird in Schritt 612 ausgehend von der abgerufenen Kennung der zuletzt abgehandelten Warteschlange 18z auf die nächste Warteschlange als aktuelle Warteschlange 18xy der aktuellen Warteschlangengruppe 17x zum Abhandeln zugegriffen.Resolving 518 the current queue group 17x is in 6 illustrated in more detail. First, in step 610, the cached identifier of the last processed queue 18z of the current queue group 17x is retrieved. Then, in step 612, the next queue is accessed as the current queue 18xy of the current queue group 17x for handling based on the retrieved identifier of the last handled queue 18z.

In Schritt 614 wird dann geprüft, ob in der aktuellen Warteschlange 18xy überhaupt Zugriffskommandos 19 vorhanden sind. Falls die aktuelle Warteschlange 18xy leer ist (N in 614), wird die Abhandlung der aktuellen Warteschlange 18xy sofort beendet. Wenn die aktuelle Warteschlange 18xy nicht leer ist (Y in 614), wird in Schritt 616 geprüft, ob ein Lesezugriffskommando 19R in der aktuellen Warteschlange 18xy aufgelistet ist. Falls vorhanden (Y in 616), wird in Schritt 618 geprüft, ob noch ein Lesezugriffsvolumenkontingentrest rCRn (d.h. Rest des zugeteilten Lesezugriffsvolumenkontingents CRn in diesem Zeitrahmen) für diese Warteschlangengruppe 17x vorhanden ist. Falls dies der Fall ist (Y in 618) (unabhängig vom Wert des Lesezugriffsvolumenkontingentenrests), wird in Schritt 620 das Lesezugriffskommando 19R zugelassen.In step 614 it is then checked whether there are any access commands 19 in the current queue 18xy at all. If the current queue 18xy is empty (N in 614), the processing of the current queue 18xy ends immediately. If the current queue 18xy is not empty (Y in 614), it is checked in step 616 whether a read access command 19R is listed in the current queue 18xy. If present (Y in 616), it is checked in step 618 whether there is still a read access volume quota remainder rCRn (i.e. remainder of the allocated read access volume quota CRn in this time frame) for this queue group 17x. If this is the case (Y in 618) (regardless of the value of the read access volume quota remainder), in step 620 the read access command 19R is permitted.

Falls in der aktuellen Warteschlange 18xy kein Lesezugriffskommando 19R vorhanden ist (N in 616), wird aufgrund des Prüfungsergebnisses in Schritt 614, dass die aktuelle Warteschlange nicht leer ist (Y in 614), davon ausgegangen, dass ein Schreibzugriffskommando 19W in der aktuellen Warteschlange 18xy aufgelistet ist. Optional könnte hierzu auch ein zusätzlicher Prüfungsschritt analog zu Schritt 616 abgewickelt werden. In Schritt 622 wird deshalb geprüft, ob noch ein Schreibzugriffsvolumenkontingentrest rCWn (d.h. Rest des zugeteilten Schreibzugriffsvolumenkontingents CWn in diesem Zeitrahmen) für diese Warteschlangengruppe 17x vorhanden ist. Falls dies der Fall ist (Y in 622) (unabhängig vom Wert des Lesezugriffsvolumenkontingentenrests), wird in Schritt 624 das Schreibzugriffskommando 19W zugelassen.If there is no read access command 19R in the current queue 18xy (N in 616), based on the check result in step 614 that the current queue is not empty (Y in 614), it is assumed that a write access command 19W is in the current queue 18xy is listed. Optionally, an additional testing step analogous to step 616 could also be processed for this. In step 622 it is therefore checked whether there is still a write access volume quota remainder rCWn (i.e. remainder of the allocated write access volume quota CWn in this time frame) for this queue group 17x. If this is the case (Y in 622) (regardless of the value of the read access volume quota remainder), in step 624 the write access command 19W is allowed.

Wie in 6 dargestellt, wird in der zweiten Arbitrierungsphase A2 in diesem Zusammenhang (im Unterschied zur ersten Arbitrierungsphase A1) höchstens ein Zugriffskommando 19 einer Warteschlange 18nm zugelassen. In Zusammenhang mit 5 ist zudem erkennbar, dass, nachdem ein Zugriffskommando 19 zugelassen und verarbeitet worden ist oder alle Warteschlangen 18n der Warteschlangengruppe 17x ergebnislos nach ausführbaren Zugriffskommandos 19 durchsucht worden sind, die nächste Warteschlangengruppe 17x+1 nach ausführbaren Zugriffskommandos 19 durchsucht wird. D.h. in der zweiten Arbitrierungsphase A2 (ebenfalls im Unterschied zur ersten Arbitrierungsphase A1) wird in jeder Verwaltungsrunde der Warteschlangengruppen 17n auch nur höchstens ein Zugriffskommando 19 je Warteschlangengruppe 17n zugelassen (die entscheidenden Verfahrensschritte sind 616, 626, 630). Allerdings werden die Warteschlangengruppen 17n zyklisch nach Zugriffskommandos 19 durchsucht (d.h. auch in mehreren Verwaltungsrunden über die Warteschlangengruppen 17n), bis das Ende des Zeitrahmens TR erreicht ist oder in allen Warteschlangengruppen 17n keine Zugriffsvolumenkontingentenreste rCn mehr vorhanden sind.As in 6 shown, in the second arbitration phase A2 in this context (in contrast to the first arbitration phase A1) at most one access command 19 of a queue 18 nm is permitted. Relating to 5 it can also be seen that after an access command 19 has been admitted and processed or all queues 18n of the queue group 17x have been searched for executable access commands 19 without result, the next queue group 17x+1 is searched for executable access commands 19. In other words, in the second arbitration phase A2 (likewise in contrast to the first arbitration phase A1), in each round of administration of the queue groups 17n only a maximum of one access command 19 per queue group 17n is permitted (the decisive method steps are 616, 626, 630). However, the queue groups 17n are cyclically changed according to access commands 19 searched (ie also in several management rounds via the queue groups 17n) until the end of the time frame TR is reached or in all queue groups 17n there are no longer any access volume quota residues rCn.

Nach Zulassen des Lesezugriffskommandos 19R in Schritt 620 oder des Schreibzugriffskommandos 19W in Schritt 624 wird zunächst in Schritt 626 geprüft, ob die Abarbeitung des zugelassenen Zugriffskommandos 19 begonnen hat. Falls dies der Fall ist (Y in 626), wird in Schritt 628 eine Kennung der zuletzt abgehandelten Warteschlange 18z der aktuellen Warteschlangengruppe 17x gespeichert.After the read access command 19R has been allowed in step 620 or the write access command 19W in step 624, it is first checked in step 626 whether processing of the allowed access command 19 has started. If this is the case (Y in 626), in step 628 an identifier of the last processed queue 18z of the current queue group 17x is stored.

Nach der Feststellung, dass keine Zugriffskommandos 19 in der aktuellen Warteschlange 18xy aufgelistet sind (N in 614) oder dass kein Lesezugriffsvolumenkontingentrest rCRn mehr verfügbar ist (N in 618) oder dass kein Schreibzugriffsvolumenkontingent rCWn mehr verfügbar ist (N in 622) oder dass die Abarbeitung des zugelassenen Zugriffskommandos 19 nicht startet (N in 626), wird in einem weiteren Schritt 630 geprüft, ob schon alle Warteschlangen 18nm der aktuellen Warteschlangengruppe 17x abgehandelt worden sind. Falls dies der Fall ist (Y in 630) geht der Prozess direkt weiter zu Schritt 628. Falls noch nicht alle Warteschlangen abgehandelt worden sind (N in 630), kehrt der Prozess zu Schritt 612 zurück, um zur nächsten Warteschlange 18xy der aktuellen Warteschlangengruppe 17x zu wechseln. In diesem Zusammenhang ist zu beachten, dass die Abarbeitung der zugelassenen Zugriffskommandos 19 in der zweiten Arbitrierungsphase A2 sequentiell erfolgen soll (während dies in der ersten Arbitrierungsphase A1 gegebenenfalls parallel erfolgen kann).After determining that no access commands 19 are listed in the current queue 18xy (N in 614) or that no read access volume quota remainder rCRn is available (N in 618) or that no write access volume quota rCWn is available (N in 622) or that the processing of the permitted access command 19 does not start (N in 626), it is checked in a further step 630 whether all queues 18nm of the current queue group 17x have already been dealt with. If so (Y in 630), the process proceeds directly to step 628. If all queues have not yet been dealt with (N in 630), the process returns to step 612 to move to the next queue 18xy of the current queue group 17x switch. In this context, it should be noted that the processing of the permitted access commands 19 should take place sequentially in the second arbitration phase A2 (while this can possibly take place in parallel in the first arbitration phase A1).

Bezugnehmend auf 7 und 8 wird nun ein bevorzugtes Ausführungsbeispiel eines Zulassungsprozesses 700 eines Lesezugriffskommandos 19R oder eines Schreibzugriffskommandos 19L mit einer, falls erforderlich, möglichen Fragmentierung des Zugriffskommandos 19 genauer erläutert. Der Zulassungsprozess 700 bezieht sich auf die in 4 angegebenen Schritte 313, 316, 327 und 329 in der ersten Arbitrierungsphase A1 und die in 6 angegebenen Schritte 620 und 624 in der zweiten Arbitrierungsphase A2. D.h. es können sogar im vorherigen Zeitrahmen TR fragmentierte Zugriffskommandos 19f in der ersten Arbitrierungsphase A1 nochmals fragmentiert werden, falls der Fragmentierungsrest nicht vollständig zugelassen werden kann. Eine solche zweite Fragmentierung eines Zugriffskommandos erfolgt nur in der ersten Arbitrierungsphase A1, wohingegen eine erste Fragmentierung eines Zugriffskommandos sowohl in der ersten als auch in der zweiten Arbitrierungsphase A1, A2 stattfinden kann.Referring to 7 and 8th a preferred embodiment of an admission process 700 of a read access command 19R or a write access command 19L with a possible fragmentation of the access command 19, if necessary, will now be explained in more detail. The admission process 700 refers to the in 4 indicated steps 313, 316, 327 and 329 in the first arbitration phase A1 and in 6 indicated steps 620 and 624 in the second arbitration phase A2. In other words, access commands 19f that were fragmented in the previous time frame TR can be fragmented again in the first arbitration phase A1 if the remainder of the fragmentation cannot be completely permitted. Such a second fragmentation of an access command takes place only in the first arbitration phase A1, whereas a first fragmentation of an access command can take place both in the first and in the second arbitration phase A1, A2.

Im ersten Schritt 710 wird ggf. eine Limitierung des zuzulassenden Zugriffskommandos 19 basierend auf dem Zugriffsvolumenkontingent Cn vorgenommen. Wie in 8 veranschaulicht, wird in Schritt 710a zunächst geprüft, ob das Zugriffsvolumen ZV des Zugriffskommandos 19 größer ist als der Zugriffsvolumenkontingentenrest rCn des entsprechenden zugeteilten Zugriffsvolumenkontingents Cn. Falls dies nicht der Fall ist (N in 710a) kann das Zugriffskommando kontingentenbezogen voll abgearbeitet werden und muss deshalb nicht limitiert werden. Falls hingegen das Zugriffsvolumen ZV des zuzulassenden Zugriffskommandos 19 den Zugriffsvolumenkontingentenrest rCn überschreitet (Y in 710a), dann wird das Zugriffsvolumen ZV in Schritt 710b auf den noch vorhandenen Zugriffsvolumenkontingentenrest rCn limitiert. Diese kontingentenbezogene Limitierungsprüfung wird gleichermaßen für Lesezugriffsvolumenkontingente CRn und Schreibzugriffsvolumenkontingente CWn durchgeführt.In the first step 710, the access command 19 to be permitted may be limited based on the access volume quota Cn. As in 8th illustrated, it is first checked in step 710a whether the access volume ZV of the access command 19 is greater than the access volume quota remainder rCn of the corresponding allocated access volume quota Cn. If this is not the case (N in 710a), the access command can be processed in full in relation to quotas and therefore does not have to be limited. If, on the other hand, the access volume ZV of the access command 19 to be permitted exceeds the access volume quota remainder rCn (Y in 710a), then the access volume ZV is limited in step 710b to the access volume quota remainder rCn that is still present. This quota-related limit check is performed equally for read access volume quotas CRn and write access volume quotas CWn.

Nach dieser ggf. vorzunehmenden kontingentenbezogenen Limitierung in Schritt 710 wird in Schritt 712 geprüft, ob überhaupt eine zeitdauerbezogene Limitierung berücksichtigt werden muss, was nur in der zweiten Arbitrierungsphase A2 der Fall ist. Die zeitdauerbezogene Limitierung in Schritt 714 kann ohne vorherige kontingentenbezogene Limitierung notwendig sein, kann aber auch auf ein bereits kontingentenbezogen limitiertes Zugriffskommando anwendbar sein.After this quota-related limitation, which may have to be carried out in step 710, it is checked in step 712 whether a duration-related limitation has to be taken into account at all, which is only the case in the second arbitration phase A2. The duration-related limitation in step 714 can be necessary without prior quota-related limitation, but can also be applicable to an access command that is already quota-related.

In der zweiten Arbitrierungsphase A2 (Y in 712) wird dann in Schritt 714 ggf. eine Limitierung des zuzulassenden Zugriffskommandos 19 (evt. eine weitere Limitierung des bereits kontingentenbezogen limitierten Zugriffskommandos) basierend auf der vorbestimmten Zeitdauer td des aktuellen Zeitrahmens TR vorgenommen. Hierbei wird insbesondere sehr genau berücksichtigt, wie lange ein Abarbeiten eines Zugriffsvolumens ZV des jeweiligen Zugriffskommandos 19 dauert. Dabei ist zum Beispiel zu beachten, dass verschiedene Zugriffsarten unterschiedliche Zugriffszeiten benötigen können (z.B. nehmen Schreibzugriffe bei gleichem Volumen in der Regel deutlich mehr Zeit in Anspruch als Lesezugriffe). Außerdem ist zum Beispiel zu beachten, dass Zugriffszeiten für Volumina in der Regel nicht linear zu berechnen sind, da beispielsweise eine Zugriffszeit für 128 kB in der Regel deutlich geringer ist als die achtfache Zugriffszeit für 16kB. Zum einfacheren und zuverlässigeren Durchführen dieses Limitierungsschrittes kann vorzugsweise auf eine Tabelle zugegriffen werden, in welcher die Verbindungen zwischen Zugriffszeiten und Zugriffsvolumina aufgelistet sind. Falls die Zugriffszeit zum Abarbeiten des Zugriffskommandos 19 kürzer ist als die zur Verfügung stehende Restzeitdauer rtd des aktuellen Zeitrahmens, kann das Zugriffskommando voll abgearbeitet werden und muss deshalb nicht zeitdauerbezogen limitiert werden. Falls hingegen die Zugriffszeit zum Abarbeiten des Zugriffskommandos 19 länger ist als die zur Verfügung stehende Restzeitdauer rtd des aktuellen Zeitrahmens, dann wird das Zugriffsvolumen ZV auf ein Maß limitiert, für dessen Zugriffszeit die Restzeitdauer rtd des Zeitrahmens TR ausreicht. Auch diese zeitdauerbezogene Limitierungsprüfung wird gleichermaßen für Lesezugriffsvolumenkontingente CRn und Schreibzugriffsvolumenkontingente CWn durchgeführt.In the second arbitration phase A2 (Y in 712), in step 714 the access command 19 to be permitted may be limited (possibly a further limitation of the access command that is already limited in relation to quotas) based on the predetermined time period td of the current time frame TR. Here, in particular, very precise consideration is given to how long it takes to process an access volume ZV of the respective access command 19 . It should be noted, for example, that different types of access can require different access times (e.g. write accesses with the same volume usually take significantly more time than read accesses). It should also be noted, for example, that access times for volumes generally cannot be calculated linearly, since, for example, an access time for 128 kB is generally significantly less than eight times the access time for 16 kB. In order to carry out this limiting step more simply and reliably, a table can preferably be accessed in which the connections between access times and access volumes are listed. If the access time for processing the access command 19 is shorter than the available remaining time rtd of the current time frame, the access command can be processed in full and therefore does not have to be limited in terms of time. If, on the other hand, the access time for processing the access command 19 is longer than the available remaining time rtd of the current time frame, then the access volume ZV is limited to a level for whose access time the remaining time rtd of the time frame TR is sufficient. This time-based limitation check is also carried out equally for read access volume quotas CRn and write access volume quotas CWn.

Eine solche Limitierung des abzuarbeitenden Zugriffskommandos in einem Zeitrahmen führt zu einer entsprechenden Fragmentierung des Zugriffskommandos über wenigstens zwei Zeitrahmen.Such a limitation of the access command to be processed in a time frame leads to a corresponding fragmentation of the access command over at least two time frames.

Als nächstes wird in Schritt 716 geprüft, ob eine Limitierung des Zugriffsvolumen ZV auf Null erfolgt ist, d.h. ob nicht einmal eine limitierte Abarbeitung des Zugriffskommandos 19 möglich ist. Falls dies der Fall ist (Y in 716), d.h. wenn innerhalb der Restzeitdauer rtd des Zeitrahmens TR keine (nicht einmal eine limitierte) Abarbeitung des Zugriffskommandos 19 möglich ist, dann wird der Zulassungsprozess 700 direkt abgeschlossen, ohne eine Abarbeitung bzw. eine zumindest limitierte Abarbeitung des Zugriffskommandos 19 zuzulassen.Next, in step 716, it is checked whether the access volume ZV has been limited to zero, i.e. whether limited processing of the access command 19 is not even possible. If this is the case (Y in 716), i.e. if no (not even a limited) processing of the access command 19 is possible within the remaining period rtd of the time frame TR, then the admission process 700 is completed directly, without processing or at least a limited one Allow access command 19 to be processed.

Andernfalls (N in 716) wird der Zulassungsprozess 700 fortgesetzt. Im nächsten Schritt 718 wird geprüft, ob in den Schritten 710 und/oder 714 eine Limitierung des Zugriffskommandos 19 erfolgt ist. Falls dies der Fall ist (Y in 718), wird im nächsten Schritt 720 geprüft, ob es sich bei dem nun limitierten Zugriffskommando um ein bereits im vorherigen Zeitrahmen fragmentiertes Zugriffskommando handelt. D.h. es kann eine mehrfache Fragmentierung von Zugriffskommandos über mehrere Zeitrahmen TR hinweg durchgeführt werden. Dementsprechend wird in Schritt 722a das aktuell erstmals fragmentierte Zugriffskommando 19 in die entsprechende Warteschlangengruppe 17x gespeichert oder in Schritt 722b die Speicherung des bereits vorher fragmentierten Zugriffskommandos 19 in der Warteschlangengruppe 17x aktualisiert, sodass das nun fragmentierte Zugriffskommando im nächsten Zeitrahmen TR als solches erkannt und bevorzugt als erstes Zugriffskommando in der ersten Arbitrierungsphase A1 abgehandelt werden kann.Otherwise (N in 716), the approval process 700 continues. In the next step 718 it is checked whether in steps 710 and/or 714 the access command 19 was limited. If this is the case (Y in 718), in the next step 720 it is checked whether the now limited access command is an access command that was already fragmented in the previous time frame. This means that access commands can be fragmented multiple times over a number of time frames TR. Accordingly, in step 722a the access command 19 that is currently fragmented for the first time is stored in the corresponding queue group 17x, or in step 722b the storage of the previously fragmented access command 19 in the queue group 17x is updated, so that the now fragmented access command is recognized as such in the next time frame TR and is preferred as first access command can be processed in the first arbitration phase A1.

Anschließend wird in Schritt 724 der vom Zugriffskommando 19 verbrauchte Zugriffsvolumenwert an die vorgenommene Limitierung angepasst. Und danach werden in Schritt 726 die Zugriffsvolumenkontingentenreste rCn entsprechend der Limitierung aktualisiert. Falls keine Limitierung stattgefunden hat (N in 718) werden die Zugriffsvolumenkontingenreste rCn ebenfalls in Schritt 726 angepasst, aber natürlich basierend auf dem vollen Zugriffsvolumen ZV des Zugriffskommandos. Und dann wird im letzten Schritt 728 die Abarbeitung des zugelassenen (limitierten oder nicht limitierten) Zugriffskommandos gestartet.Then, in step 724, the access volume value consumed by the access command 19 is adjusted to the limitation that has been set. And after that, in step 726, the access volume quota remainders rCn are updated according to the limitation. If no limitation has taken place (N in 718), the access volume quota remainders rCn are also adjusted in step 726, but of course based on the full access volume ZV of the access command. And then, in the last step 728, the processing of the permitted (limited or non-limited) access command is started.

Mit diesem beschriebenen Verwaltungsverfahren der Zugriffe auf den Datenspeicher wird die maximal verfügbare Bandbreite zwischen den mehreren Applikationen verteilt und sehr effizient genutzt. Dies wird insbesondere durch die beiden speziellen unterschiedlichen Arbitrierungsphasen erzielt und bevorzugt durch die mögliche Fragmentierung der Zugriffskommandos noch effizienter ausgeführt.The maximum available bandwidth is distributed between the several applications and used very efficiently with this described method of managing access to the data memory. This is achieved in particular by the two special different arbitration phases and is preferably executed even more efficiently by the possible fragmentation of the access commands.

Das oben unter Bezug auf 1 bis 8 beispielhaft beschriebene Ausführungsbeispiel dient insbesondere dem besseren Verständnis der in den anhängenden Ansprüchen definierten Erfindung, ohne den Schutzbereich der Ansprüche zu begrenzen. Die in den Ansprüchen definierte Erfindung kann auch unter Verwendung zusätzlicher oder modifizierter Merkmale und auch unter Verzicht einzelner beschriebener Merkmale realisiert werden.The above referring to 1 until 8th The embodiment described by way of example is intended to provide a better understanding of the invention as defined in the appended claims, without limiting the scope of the claims. The invention defined in the claims can also be implemented using additional or modified features and also by omitting individual features described.

BezugszeichenlisteReference List

1010
Computersystemcomputer system
1212
Prozessorprocessor
1414
Softwaresystemsoftware system
15n15n
Applikationenapplications
1616
Host-Softwarehost software
17n17n
Warteschlangengruppenqueue groups
17x17x
aktuelle Warteschlangengruppecurrent queue group
17z17z
zuletzt abgehandelte Warteschlangengruppelast processed queue group
18nm18nm
Warteschlangen in WarteschlangengruppenQueues in queue groups
18xy18xy
aktuelle Warteschlange der aktuellen Warteschlangengruppecurrent queue of the current queue group
18z18z
zuletzt abgehandelte Warteschlangelast processed queue
1919
Zugriffskommandoaccess command
19f19f
fragmentiertes Zugriffskommandofragmented access command
19R / 19W19R / 19W
Lesezugriffskommando / SchreibzugriffskommandoRead access command / write access command
19fR / 19fW19fR / 19fW
fragmentiertes Lesezugriffskommando / Schreibzugriffskommandofragmented read access command / write access command
2020
Datenspeicherdata storage
2222
Datenzugriffselementdata access element
2424
Zugriffscontrolleraccess controller
2525
Programmspeicherprogram memory
200200
ZugriffsverwaltungsverfahrenAccess Management Procedures
A1A1
erste Arbitrierungsphasefirst arbitration phase
A2A2
zweite Arbitrierungsphasesecond arbitration phase
Cncn
Zugriffsvolumenkontingent für 17n in TRAccess volume quota for 17n in TR
rCnrCn
Zugriffsvolumenkontingentrest für 17n in TRAccess Volume Quota Remainder for 17n in TR
CRnCRn
Lesezugriffsvolumenkontingent für 17n in TRRead access volume quota for 17n in TR
CWnCWn
Schreibzugriffsvolumenkontingent für 17n in TRWrite access volume quota for 17n in TR
TRTR
Zeitrahmentime frame
tdtd
vorbestimmte Zeitdauer des Zeitrahmenspredetermined length of time of the time frame
rtdrd
Restzeitdauer im ZeitrahmenRemaining time in the time frame
ZVZV
Zugriffsvolumenaccess volume

Claims (15)

Verfahren (200) zum Verwalten von Zugriffen von mehreren Applikationen (15n) auf einen Datenspeicher (20) über Zeitrahmen (TR) mit vorbestimmten Zeitdauern (td), wobei die mehreren Applikationen (15n) während ihrer Ausführung jeweils wenigstens eine Warteschlangengruppe (17n) mit jeweils wenigstens einer Warteschlange (18nm) zum Auflisten von Zugriffskommandos (19) auf den Datenspeicher (20) erzeugen, wobei das Verfahren aufweist: Erlangen (210) von individuellen Zugriffsvolumenkontingenten (Cn), die jeweils einer der mehreren Warteschlangengruppen (17n) zugeteilt sind, wobei die Summe der Zugriffsvolumenkontingente innerhalb einer vorbestimmten Zeitdauer (td) eines anstehenden Zeitrahmens (TR) vollständig in Anspruch genommen werden kann; Starten (220) des Zeitrahmens (TR) mit der vorbestimmten Zeitdauer (td); Durchführen (230) einer ersten Arbitrierungsphase (A1), in welcher in einer einzigen Verwaltungsrunde nacheinander in den Warteschlangengruppen (17n) aller Applikationen (15n) jeweils nacheinander in allen Warteschlangen (18nm) unabhängig von einer Restzeitdauer des Zeitrahmens (TR) wenigstens eines der aufgelisteten Zugriffskommandos (19) zugelassen wird, wenn das der jeweiligen Warteschlangengruppe (17n) zugeteilte Zugriffsvolumenkontingent (Cn) noch nicht aufgebraucht ist; und Durchführen (240) einer zweiten Arbitrierungsphase (A2), in welcher in mehreren Verwaltungsrunden nacheinander in den Warteschlangengruppen (17n) aller Applikationen (15n) jeweils höchstens eines der aufgelisteten Zugriffskommandos (19) zugelassen wird, wenn das der jeweiligen Warteschlangengruppe (17n) zugeteilte Zugriffsvolumenkontingent (Cn) noch nicht aufgebraucht ist, wobei die zweite Arbitrierungsphase (A2) bei Ablauf der vorbestimmten Zeitdauer (td) des Zeitrahmens beendet wird.Method (200) for managing access from multiple applications (15n) to a data memory (20) via time frames (TR) with predetermined time periods (td), the multiple applications (15n) each having at least one queue group (17n) during their execution generate in each case at least one queue (18 nm) for listing access commands (19) to the data memory (20), the method having: acquiring (210) individual access volume quotas (Cn) each allocated to one of the plurality of queue groups (17n), wherein the sum of the access volume quotas can be fully consumed within a predetermined period of time (td) of a pending time frame (TR); starting (220) the time frame (TR) with the predetermined time period (td); Carrying out (230) a first arbitration phase (A1), in which in a single management round in succession in the queue groups (17n) of all applications (15n) in each case in all queues (18nm) independently of a remaining period of the time frame (TR) at least one of the listed Access commands (19) are permitted if the respective queue group (17n) allocated access volume quota (Cn) has not yet been used up; and Carrying out (240) a second arbitration phase (A2), in which in several management rounds in succession in the queue groups (17n) of all applications (15n) at most one of the listed access commands (19) is permitted if the respective queue group (17n) allocated access volume quota (Cn) has not yet been used up, the second arbitration phase (A2) being terminated when the predetermined period of time (td) of the time frame has elapsed. Verfahren (200) nach Anspruch 1, bei welchem die Warteschlangen (18nm) der Warteschlangengruppen (17n) jeweils konfiguriert sind, um Zugriffskommandos einer ersten Zugriffsart und/oder Zugriffskommandos einer zweiten Zugriffsart aufzulisten; und die den mehreren Warteschlangengruppen (17n) zugeteilten Zugriffsvolumenkontingente (Cn) jeweils ein erstes Zugriffsvolumenkontingent (CRn) für die erste Zugriffsart und/oder ein zweites Zugriffsvolumenkontingent (CWn) für die zweite Zugriffsart enthalten.Method (200) according to claim 1 , in which the queues (18nm) of the queue groups (17n) are each configured to list access commands of a first access type and/or access commands of a second access type; and the access volume quotas (Cn) allocated to the plurality of queue groups (17n) each include a first access volume quota (CRn) for the first access type and/or a second access volume quota (CWn) for the second access type. Verfahren nach Anspruch 2, bei welchem in der ersten Arbitrierungsphase (A1) in der einen Verwaltungsrunde in den Warteschlangen (18nm) jeweils eines der aufgelisteten Zugriffskommandos der ersten Zugriffsart zugelassen wird, solange das der jeweiligen Warteschlangengruppe (17n) zugeteilte Zugriffsvolumenkontingent (CRn) für die erste Zugriffsart noch nicht aufgebraucht ist, und eines der aufgelisteten Zugriffskommandos der zweiten Zugriffsart zugelassen wird, solange das der jeweiligen Warteschlangengruppe (17n) zugeteilte Zugriffsvolumenkontingent (CWn) für die zweite Zugriffsart noch nicht aufgebraucht ist; und in der zweiten Arbitrierungsphase (A2) in den mehreren Verwaltungsrunden jeweils in den Warteschlangengruppen (17n) jeweils nur eines der aufgelisteten Zugriffskommandos der ersten Zugriffsart oder eines der aufgelisteten Zugriffskommandos der zweiten Zugriffsart zugelassen wird.procedure after claim 2 , in which in the first arbitration phase (A1) in the one management round in the queues (18nm) one of the listed access commands of the first access type is allowed as long as the respective queue group (17n) allocated access volume quota (CRn) for the first access type has not yet has been used up, and one of the listed access commands of the second access type is permitted as long as the access volume quota (CWn) allocated to the respective queue group (17n) for the second access type has not yet been used up; and in the second arbitration phase (A2) in the several administration rounds only one of the listed access commands of the first access type or one of the listed access commands of the second access type is permitted in each of the queue groups (17n). Verfahren (200) nach einem der vorhergehenden Ansprüche, bei welchem, wenn ein Restwert des der jeweiligen Warteschlangengruppe (17n) zugeteilten Zugriffsvolumenkontingents (Cn) für die vollständige Ausführung eines Zugriffskommandos (19) nicht ausreicht, das Zugriffskommando (19) derart fragmentiert wird, um eine Abarbeitung nur eines Teils des Zugriffsvolumens des Zugriffskommandos entsprechend dem Restwert des zugeteilten Zugriffsvolumenkontingents (Cn) zuzulassen.Method (200) according to one of the preceding claims, in which, if a residual value of the access volume quota (Cn) allocated to the respective queue group (17n) is not sufficient for the complete execution of an access command (19), the access command (19) is fragmented in such a way that allow processing of only part of the access volume of the access command corresponding to the remainder of the allocated access volume quota (Cn). Verfahren (200) nach einem der vorhergehenden Ansprüche, bei welchem, wenn in der zweiten Arbitrierungsphase (A2) eine Restzeitdauer des Zeitrahmens (TR) für die vollständige Ausführung eines Zugriffskommandos (19) nicht ausreicht, das Zugriffskommando (19) derart fragmentiert wird, um nur eine Abarbeitung eines Teils des Zugriffsvolumens des Zugriffskommandos zuzulassen, dessen Zugriffszeit der Restzeitdauer des Zeitrahmens entspricht.Method (200) according to one of the preceding claims, in which, if in the second arbitration phase (A2) a residual time period of the time frame (TR) is not sufficient for the complete execution of an access command (19), the access command (19) is fragmented in such a way that allow only part of the access volume of the access command to be processed, des sen access time corresponds to the remaining time of the time frame. Verfahren (200) nach Anspruch 4 oder 5, bei welchem eine Kennung des fragmentierten Zugriffskommandos (19f) zwischengespeichert wird und ein nächstes Abhandeln der Warteschlangengruppen (17n) in einem nächsten Zeitrahmen (TR) mit der Zulassungsverwaltung des im vorherigen Zeitrahmen (TR) fragmentierten Zugriffskommandos (19f) beginnt.Method (200) according to claim 4 or 5 , in which an identifier of the fragmented access command (19f) is temporarily stored and a next processing of the queue groups (17n) begins in a next time frame (TR) with the admission management of the access command (19f) fragmented in the previous time frame (TR). Verfahren (200) nach einem der Ansprüche 4 bis 6, wenn abhängig von Anspruch 3, bei welchem kein weiteres Zugriffskommando (19) einer Warteschlange (18nm) verwaltet wird, solange ein von dieser Warteschlange entnommenes Zugriffskommando in Fragmenten nicht vollständig in der ersten Arbitrierungsphase (A1) abgearbeitet werden kann.Method (200) according to any one of Claims 4 until 6 , if dependent on claim 3 , in which no further access command (19) of a queue (18nm) is managed as long as an access command taken from this queue in fragments cannot be processed completely in the first arbitration phase (A1). Verfahren (200) nach einem der vorhergehenden Ansprüche, bei welchem der Zeitrahmen (TR) vor Ablauf der vorbestimmten Zeitdauer (td) beendet wird, wenn die Zugriffsvolumenkontingente (Cn) aller Warteschlangengruppen (17n) vollständig aufgebraucht sind.Method (200) according to one of the preceding claims, in which the time frame (TR) is terminated before the predetermined time period (td) has elapsed if the access volume quotas (Cn) of all queue groups (17n) have been completely used up. Verfahren (200) nach einem der vorhergehenden Ansprüche, bei welchem eine Kennung der zuletzt abgehandelten Warteschlange (18nm) einer Warteschlangengruppe (17n) jeweils zwischengespeichert wird und eine nächste Verwaltungsphase derselben Warteschlangengruppe (17n) mit jener Warteschlange nach der zuletzt abgehandelten Warteschlange beginnt; und/oder eine Kennung der zuletzt abgehandelten Warteschlangengruppe (17n) jeweils zwischengespeichert wird und eine nächste Verwaltungsphase mit jener Warteschlangengruppe nach der zuletzt abgehandelten Warteschlangengruppe beginnt.Method (200) according to one of the preceding claims, in which an identifier of the last processed queue (18nm) of a queue group (17n) is buffered in each case and a next management phase of the same queue group (17n) begins with that queue after the last processed queue; and/or an identifier of the queue group (17n) last dealt with is buffered in each case and a next management phase begins with that queue group after the queue group last dealt with. Verfahren (200) nach einem der vorhergehenden Ansprüche, bei welchem zum Ermitteln, ob eine Restzeitdauer des Zeitrahmens (TR) für das Abarbeiten eines Zugriffskommandos (19) ausreicht, eine vom Zugriffskommando (19) beanspruchte Zugriffszeit basierend auf einer Tabelle bestimmt wird, in welcher die Verbindung zwischen Zugriffszeiten und Zugriffsvolumina aufgelistet ist.Method (200) according to one of the preceding claims, in which, to determine whether a remaining period of time in the time frame (TR) is sufficient for processing an access command (19), an access time claimed by the access command (19) is determined based on a table in which the connection between access times and access volumes is listed. Verfahren (200) nach einem der vorhergehenden Ansprüche, bei welchem das Erlangen (210) der Zugriffsvolumenkontingente (Cn) ein Abrufen der Zugriffsvolumenkontingente (Cn) von einer Host-Software (16) aufweist, welche den mehreren Warteschlangengruppen (17n) der mehreren Applikationen (15n) die Zugriffsvolumenkontingente (Cn) zuteilt, deren Summe innerhalb der vorbestimmten Zeitdauer (td) vollständig in Anspruch genommen werden kann.The method (200) of any preceding claim, wherein obtaining (210) the access volume quotas (Cn) comprises retrieving the access volume quotas (Cn) from host software (16) associated with the plurality of queue groups (17n) of the plurality of applications ( 15n) allocates the access volume quotas (Cn), the sum of which can be fully utilized within the predetermined period of time (td). Verfahren (200) nach einem der vorhergehenden Ansprüche, bei welchem die Zugriffsverwaltung in der zweiten Arbitrierungsphase (A2) erst nach Abschluss des Abarbeitens aller zum Abarbeiten zugelassenen Zugriffskommandos (19) aus der ersten Arbitrierungsphase (A1) beginnt.Method (200) according to one of the preceding claims, in which the access management in the second arbitration phase (A2) only begins after the completion of the processing of all access commands (19) permitted for processing from the first arbitration phase (A1). Computersystem (10), aufweisend: wenigstens einen Prozessor (12); einen Datenspeicher (22); mehrere Applikationen (15n), die jeweils auf dem wenigstens einen Prozessor (12) ausführbar sind und während ihrer Ausführung jeweils wenigstens eine Warteschlangengruppe (17n) mit jeweils wenigstens einer Warteschlange (18nm) zum Auflisten von Zugriffskommandos (19) auf den Datenspeicher (20) erzeugen; und einen Zugriffscontroller (24), der konfiguriert ist zum Verwalten der Zugriffe der mehreren Applikationen (15n) auf den Datenspeicher (20) gemäß dem Verfahren nach einem der Ansprüche 1 bis 12.A computer system (10) comprising: at least one processor (12); a data store (22); several applications (15n), each of which can be executed on the at least one processor (12) and during their execution at least one queue group (17n) each with at least one queue (18nm) for listing access commands (19) to the data memory (20) generate; and an access controller (24) which is configured to manage the accesses of the plurality of applications (15n) to the data store (20) according to the method according to any one of Claims 1 until 12 . Computersystem (10) nach Anspruch 13, ferner aufweisend eine Host-Software (16), die auf dem wenigstens einen Prozessor (12) ausführbar ist und die bei ihrer Ausführung den mehreren Warteschlangengruppen (17n) der mehreren Applikationen (15n) Zugriffsvolumenkontingente (Cn) zuteilt, deren Summe innerhalb einer vorbestimmten Zeitdauer (td) eines anstehenden Zeitrahmens (TR) vollständig in Anspruch genommen werden kann.Computer system (10) according to Claim 13 , further having host software (16) which can be executed on the at least one processor (12) and which, when it is executed, allocates access volume quotas (Cn) to the plurality of queue groups (17n) of the plurality of applications (15n), the sum of which is within a predetermined Duration (td) of an upcoming time frame (TR) can be fully utilized. Computerlesbares Speichermedium (25), das Anweisungen enthält, die von einem Zugriffscontroller (24) eines Computersystems (10) ausführbar sind und bei ihrer Ausführung den Zugriffscontroller (24) das Verfahren (200) zum Verwalten von Zugriffen von mehreren Applikationen (15n) auf einen Datenspeicher (20) des Computersystems (25) nach einem der Ansprüche 1 bis 12 ausführen lassen.Computer-readable storage medium (25) containing instructions that can be executed by an access controller (24) of a computer system (10) and when they are executed the access controller (24) the method (200) for managing access from multiple applications (15n) to one Data memory (20) of the computer system (25) according to one of Claims 1 until 12 run.
DE102021117739.1A 2021-07-09 2021-07-09 Management of multiple applications' access to a data store Active DE102021117739B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102021117739.1A DE102021117739B4 (en) 2021-07-09 2021-07-09 Management of multiple applications' access to a data store

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021117739.1A DE102021117739B4 (en) 2021-07-09 2021-07-09 Management of multiple applications' access to a data store

Publications (2)

Publication Number Publication Date
DE102021117739A1 DE102021117739A1 (en) 2023-01-12
DE102021117739B4 true DE102021117739B4 (en) 2023-04-20

Family

ID=84534019

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021117739.1A Active DE102021117739B4 (en) 2021-07-09 2021-07-09 Management of multiple applications' access to a data store

Country Status (1)

Country Link
DE (1) DE102021117739B4 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030128707A1 (en) 1999-02-09 2003-07-10 Mohan Kalkunte Servicing output queues dynamically according to bandwidth allocation in a frame environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030128707A1 (en) 1999-02-09 2003-07-10 Mohan Kalkunte Servicing output queues dynamically according to bandwidth allocation in a frame environment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WIJAYARATNE, R. [et al.]: Providing QOS guarantees for disk I/O. Multimedia Systems, Vol. 8, 2000, S. 57-68. DOI: 10.1007/s005300050005

Also Published As

Publication number Publication date
DE102021117739A1 (en) 2023-01-12

Similar Documents

Publication Publication Date Title
DE2517302C2 (en) Multi-program data processing device
DE69936257T2 (en) GENERATE AND REVIEW REFERENCE ADDRESSES
DE102010011658A1 (en) Application platform and method for operating a data processing device with such
DE102009060746A1 (en) memory backup
EP1731999B1 (en) Mechanism for dynamically registering of files in a batch processing environment
DE112010003675T5 (en) Address Server
DE112010005609T5 (en) Storing data in one of a plurality of buffers in a memory controller
DE102019102861A1 (en) Method and device for estimating the wear of a non-volatile information store
DE102016007651B4 (en) Numerical control with function for automatically selecting a storage destination for a machining program
DE102021117739B4 (en) Management of multiple applications' access to a data store
DE102008001162A1 (en) Reset method and information processing apparatus that performs this
DE102009057401B3 (en) Operating method for a computer with performance optimization by grouping applications
DE102006059626A1 (en) Method for reading data from a storage medium
DE102008000649B4 (en) Memory management device and method for this
DE102008019287A1 (en) A method for automatically generating a time scheme for communicating distributed processes of a digital network
DE19850650C2 (en) Method of transferring data
WO2004031955A2 (en) Method for regulating access to data in at least one data storage device in a system consisting of several individual systems
DE60037429T2 (en) Method for reducing finite automatic control units and corresponding computer-readable medium
DE102018217609A1 (en) Control device for controlling an information system
EP0715313B1 (en) Method of programming an electrically erasable read-only memory in an elecronic computer device and control device using the method
DE102012111181A1 (en) Storage system, in particular Cloud Storage System, and computer program product
DE102018101203A1 (en) Automation device and method for optimized access to a variable
WO2002099650A2 (en) Method for managing a chip card memory
DE102021209509A1 (en) Method and device for processing at least one first and one second arithmetic operation in a computing unit
DE112015002881T5 (en) Storage device, flash memory controller and program

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009460000

Ipc: G06F0013200000

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final