DE102021117739B4 - Management of multiple applications' access to a data store - Google Patents
Management of multiple applications' access to a data store Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000015654 memory Effects 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 38
- 239000012634 fragment Substances 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 26
- 238000006062 fragmentation reaction Methods 0.000 description 18
- 238000013467 fragmentation Methods 0.000 description 17
- 238000009472 formulation Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program 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
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 bis8 mehrere Teilflussdiagramme zu dem Flussdiagramm von2 gemäß Ausführungsbeispielen der Erfindung.
-
1 a computer system according to an embodiment of the invention; -
2 a flow chart of the management method of the invention; and -
3 until8th several sub-flowcharts to the flowchart of2 according to embodiments of the invention.
Das in
Während ihrer Ausführung erzeugen die Applikationen 15n jeweils Zugriffskommandos 19, die in Warteschlangen 18nm aufgelistet werden. Wie in
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
Das Computersystem 10 kann natürlich auch noch weitere Komponenten aufweisen (z.B. Anzeigen, Eingabevorrichtungen, Kommunikationsschnittstellen, etc.), die in
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
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
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
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
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
Bezugnehmend auf
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
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
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
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
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
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
In einer bevorzugten Ausführungsvariante kann der in
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
Bezugnehmend auf
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
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
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
Das Abhandeln 518 der aktuellen Warteschlangengruppe 17x ist in
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
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
Wie in
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
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
Bezugnehmend auf
Im ersten Schritt 710 wird ggf. eine Limitierung des zuzulassenden Zugriffskommandos 19 basierend auf dem Zugriffsvolumenkontingent Cn vorgenommen. Wie in
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
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
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
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
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
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
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)
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)
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 |
-
2021
- 2021-07-09 DE DE102021117739.1A patent/DE102021117739B4/en active Active
Patent Citations (1)
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)
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 |