-
HINTERGRUND
-
Gebiet
-
Die Offenbarung betrifft ein Verfahren, System und einen Herstellungsgegenstand zur Anpassung der Auslagerungsgeschwindigkeit auf der Grundlage von Anforderungen in Bezug auf die Lese- und Schreib-Antwortzeiten.
-
Hintergrund
-
Eine Speichersteuereinheit kann eine Mehrzahl von Speichereinheiten steuern, zu denen Festplatten, Bänder usw. gehören können. Ein Cache-Zwischenspeicher kann ebenfalls durch die Speichersteuereinheit verwaltet werden, wobei der Cache-Zwischenspeicher einen schnellen Speicher aufweisen kann, auf den im Vergleich zu bestimmten anderen Speichereinheiten wie zum Beispiel Festplatten, Bänder usw. schneller zugegriffen werden kann. Der Gesamtbetrag der Speicherkapazität des Cache-Zwischenspeichers kann jedoch relativ kleiner sein, verglichen mit der Speicherkapazität bestimmter anderer Speichereinheiten wie zum Beispiel Festplatten usw., die durch die Speichersteuereinheit gesteuert werden. Der Cache-Zwischenspeicher kann aus einem oder mehreren Direktzugriffsspeichern (Random Access Memory, RAM), einer nichtflüchtigen Speichereinheit (Non-volatile Storage, NVS), Lese-Cache-Zwischenspeicher, Schreib-Cache-Zwischenspeicher usw. bestehen, die untereinander auf unterschiedliche Weise zusammenwirken können. Der NVS kann aus einem batteriegestützten Direktzugriffsspeicher bestehen und die Durchführung von Schreiboperationen mit hoher Geschwindigkeit ermöglichen. Die Speichersteuereinheit kann Eingabe-/Ausgabe Anforderungen (E/A-Anforderungen) von vernetzten Hosts in Bezug auf eine Mehrzahl von Speichereinheit verwalten.
-
Die durch die Speichersteuereinheit realisierten Zwischenspeicherungstechniken tragen dazu bei, die E/A-Latenz zu kaschieren. Der Cache-Zwischenspeicher kann eine schnelle Hauptspeicher- oder Speichereinheit aufweisen, die dazu dient, die tatsächliche Zeit zu verringern, die zum Lesen von Daten von einem langsameren Hauptspeicher oder einer langsameren Einheit oder Schreiben auf einen langsameren Hauptspeicher oder eine langsamere Einheit zu verringern. Der Cache-Zwischenspeicher dient zum schnellen Zugriff auf Daten, die von einem externen Speicher zwischengespeichert wurden, um Anforderungen in Bezug auf den Lesezugriff auf Daten zu bedienen und das Puffern geänderter Daten bereitzustellen. Schreib-Anforderungen werden in den Cache-Zwischenspeicher geschrieben und anschließend auf die externen Speichereinheiten geschrieben (d.h. ausgelagert).
-
NVS wurde eingeführt, um schnelle Schreibvorgänge zu ermöglichen. Im Allgemeinen müssen bei nicht vorhandenem NVS Datenschreibvorgänge synchron direkt auf die Speichereinheit geschrieben (d.h. ausgelagert) werden, um die Konsistenz, Korrektheit und Permanenz zu gewährleisten. Andernfalls kann ein Ausfall des Servers dazu führen, dass im Cache-Zwischenspeicher gespeicherte Daten verloren gehen. Im Allgemeinen überschreitet die Geschwindigkeit von Host-Schreibvorgängen die Geschwindigkeit der Speichereinheiten, sodass die Geschwindigkeit von Datenübertragungen auf Speichereinheiten ohne NVS niedrig sein kann. NVS ermöglicht schnelle Schreibvorgänge auf den Cache-Zwischenspeicher, auf dem die Schreibvorgänge in Bezug auf den NVS gespiegelt und sicher im NVS gespeichert werden, bis die Schreibvorgänge auf die externe Speichereinheit übertragen werden können. Die Daten werden später in asynchroner Weise aus dem Cache-Zwischenspeicher ausgelagert (und aus dem NVS gelöscht), wodurch die Schreiblatenz der Speichereinheit kaschiert wird. Der Cache-Zwischenspeicher und der NVS speichern normalerweise Aktualisierungen, die für mehrere Speichereinheiten vorgesehen sind. Um eine kontinuierlich niedrige Latenz für Schreibvorgänge zu garantieren, müssen die Daten im NVS möglicherweise bereinigt werden, um zu gewährleisten, dass stets etwas Platz für eingehende Schreibvorgänge vorhanden ist; anderenfalls werden nachfolgende Schreibvorgänge möglicherweise tatsächlich synchron, was die Reaktionszeit bei Host-Schreibvorgängen unter Umständen beeinträchtigt. Wenn die Schreibvorgänge aber andererseits zu aggressiv bereinigt werden, können die Vorteile des Zwischenspeicherns beim Schreiben nicht voll ausgenutzt werden, da die durchschnittliche Größe des genutzten NVS-Cache-Zwischenspeichers möglicherweise gering ist.
-
Ein Tasksteuerblock (Task Control Block, TCB) ist eine Datenstruktur im Betriebssystemkern, die die zur Verwaltung eines bestimmten Prozesses benötigten Informationen enthält. Speichersteuereinheiten können unter Verwendung von TCBs zur Verwaltung der Bewegung von Daten Informationen zu und von Speichereinheiten sowie zum und vom Cache-Zwischenspeicher (einschließlich des NVS) bewegen. Wenn von einem Host-Computer eine Schreib-Anforderung an eine Speichersteuereinheit ausgegeben wird, kann ein TCB vom Betriebssystemcode zugeordnet werden. Der TCB dient zur Verwaltung von Informationen über den Schreibprozess vom Beginn bis zum Ende, während zu schreibende Daten vom Host-Computer über den Cache-Zwischenspeicher an die sekundären Speichereinheiten übermittelt werden. Bei einem vollen Cache-Zwischenspeicher kann der TCB in eine Warteschlange eingereiht werden, bis vorhandene Daten im Cache-Zwischenspeicher ausgelagert (d.h. auf sekundäre Speichereinheiten geschrieben) werden können, um Speicherplatz freizugeben. Zu den Auslagerungsoperationen kann das Bewegen von Informationen aus dem Cache-Zwischenspeicher in einen RAID-Rang gehören, und Auslagerungs-TCBs können zum Durchführen der Auslagerungsoperationen zugeordnet werden.
-
In diesem Kontext gibt es bereits veröffentlichte Dokumente. Beispielsweise beschreibt das Dokument
US 2011 / 0 191 534 A1 ein Verfahren zur Durchführung einer Datenübertragung von einem Schreib-Cache und NVS über einen Vorrichtungsadapter an einen Pool von Speichervorrichtungen durch einen Prozessor. Dabei variiert der Prozessor die Auslagerungsgeschwindigkeit abhängig von einer Auslastung des NVS für eine bestimmte Speichervorrichtung und Aktivitäten bezüglich der Speichervorrichtung.
-
Darüber hinaus beschreibt das Dokument
US 2004 / 0 078 518 A1 , dass es wünschenswert ist, dass eine Cache-Trefferquote von einem Host oder einer Anwendung nicht durch ein Zugriffsmuster eines anderen Host beeinträchtigt wird. Um dies zu erreichen, wird durch eine Segment-Informationsetzvorrichtung Information in einer Segment-Informationsverwaltungstabelle basierend auf einem Einstellungskommando von einem Host geschrieben.
-
Trotzdem besteht ein Bedarf an - bzw. eine Aufgabe darin - ein Zugriffsverfahren auf Daten dahingehend zu verbessern, dass unternehmenskritische Anwendungen, Echtzeitanwendungen oder Anwendung im medizinischen Bereich besser unterstützt werden, welche strikte Anforderungen in Bezug auf Lese-Antwortzeiten aufweisen.
-
KURZDARSTELLUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Diese Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst. Weitere Ausführungsbeispiele sind durch die abhängigen Ansprüche angegeben.
-
Gemäß bestimmten Aspekten ermöglicht die angepasste Auslagerungsgeschwindigkeit, die den Rängen des ersten Typs entspricht, eine Geschwindigkeit von E/A-Operationen zu den Rängen des ersten Typs zu maximieren, vorausgesetzt, dass die Lese- und Schreib-Antwortzeiten zum Ausführen des Befehls erfüllt sind. Die Menge von Kriterien legt fest, dass die durchschnittliche Lese-Antwortzeit geringer als ein erster Schwellenwert sein muss und ein vorgegebener Prozentsatz von Lesevorgängen in einer Zeit durchzuführen ist, die geringer als ein zweiter Schwellenwert ist. Die Menge von Kriterien legt ferner fest, dass die durchschnittliche Schreib-Antwortzeit geringer als ein dritter Schwellenwert sein muss, jeder Schreib-Burst (Schreib-Block) in einer Zeit abzuschließen ist, die geringer als ein vierter Schwellenwert ist, und das Intervall zwischen zwei beliebigen aufeinanderfolgenden Schreib-Bursts größer als ein fünfter Schwellenwert ist.
-
Gemäß weiteren Aspekten wird die angepasste Auslagerungsgeschwindigkeit, die Rängen des zweiten Typs entspricht, durch Simulieren der Ausführung eines Vergleichswertes ermittelt, wobei das Simulieren das Ermitteln aufweist, ob Schreib-Spitzenwerte mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind. Als Reaktion auf das Feststellen, dass die Lese-Spitzenwerte mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind, wird die Anzahl von Auslagerungs-Tasksteuerblöcken vermindert, um die Auslagerungsgeschwindigkeit zu verringern. Außerdem wird als Reaktion auf das Feststellen, dass die Lese-Spitzenwerte nicht mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind, die Anzahl von Auslagerungs-Tasksteuerblöcken erhöht, um die Auslagerungsgeschwindigkeit zu erhöhen.
-
Gemäß ergänzenden Aspekten wird das Ermitteln von Rängen des ersten Typs durchgeführt, indem eine Touch-Datei verarbeitet wird, die Ränge des ersten Typs kennzeichnet, oder durch Empfangen eines Hinweises bei der Steuereinheit, dass ein Datenträger für einen ersten Typ von Arbeitslast zu verwenden ist, und indem aus dem Hinweis ermittelt wird, welche Ränge vom ersten Typ sind.
-
Darüber hinaus kann das Ermitteln von Rängen des ersten Typs ferner das Verarbeiten von Schreib-Burst-Mustern weisen, die bei der Speichersteuereinheit empfangen wurden, um zu ermitteln, ob die Schreib-Burst-Muster mit einem vorgegebenen Typ übereinstimmen. Als Reaktion auf das Feststellen, dass die Schreib-Burst-Muster mit dem vorgegebenen Typ übereinstimmen, wird eine Feststellung dahingehend getroffen, dass Ränge, an die die Schreib-Burst-Muster gerichtet sind, vom ersten Typ sind.
-
Gemäß einem zusätzlichen Aspekt beträgt die angepasste Auslagerungsgeschwindigkeit, die Rängen des ersten Typs entspricht, weniger als die Hälfte der Standard-Auslagerungsgeschwindigkeit.
-
Figurenliste
-
Im Folgenden wird lediglich als Beispiel eine bevorzugte Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, wobei:
- 1 ein Blockschema einer Datenverarbeitungsumgebung veranschaulicht, die eine Speichersteuereinheit aufweist, die gemäß bestimmten Ausführungsformen mit einer Mehrzahl von Hosts und einer Mehrzahl von Speichereinheiten verbunden ist;
- 2 ein Blockschema veranschaulicht, das beispielhafte Anforderungen in Bezug auf Lese-Antwortzeiten gemäß bestimmten Ausführungsformen zeigt;
- 3 ein Blockschema veranschaulicht, das beispielhafte Anforderungen in Bezug auf Schreib-Antwortzeiten gemäß bestimmten Ausführungsformen zeigt;
- 4 ein Blockschema veranschaulicht, das Parameter zur Anpassung der Auslagerungsgeschwindigkeit gemäß bestimmten Ausführungsformen zeigt;
- 5 ein Blockschema veranschaulicht, das zeigt, wie Ränge eines vorgegebenen Typs gemäß bestimmten Ausführungsformen ermittelt werden;
- 6 einen Ablaufplan veranschaulicht, der Operationen zum Ermitteln der Anzahl von Auslagerungs-Tasksteuerblöcken pro Rang für Auslagerungsdaten gemäß bestimmten Ausführungsformen zeigt;
- 7 einen Ablaufplan veranschaulicht, der bestimmte Operationen zum Anpassen der Auslagerungsgeschwindigkeit gemäß bestimmten Ausführungsformen zeigt; und
- 8 ein Blockschema eines Datenverarbeitungssystems veranschaulicht, das bestimmte Elemente zeigt, die die Speichersteuereinheit aus 1 gemäß bestimmten Ausführungsformen aufweisen kann.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil hiervon bilden und mehrere Ausführungsformen veranschaulichen. Es versteht sich, dass andere Ausführungsformen genutzt und strukturelle und betriebstechnische Änderungen vorgenommen werden können.
-
Bestimmte Anwendungen wie zum Beispiel unternehmenskritische Anwendungen, Echtzeitanwendungen oder einige Anwendungen im medizinischen Bereich weisen strikte Anforderungen in Bezug auf Lese-Antwortzeiten auf. Derartige Anwendungen können als „Anwendungen mit strengen Anforderungen“ bezeichnet werden. Beispielsweise müssen bei bestimmten Anwendungen unter Umständen 99,99 % von Leseanforderungen in weniger als 600 Millisekunden durch die Speichersteuereinheit bedient werden. Bestimmte derartige Anwendungen können auch Arbeitslasten aufweisen, zu denen eine Abfolge großer Schreib-Bursts gehört. Beispielsweise kann jeder Schreib-Burst aus mehreren hundert Megabyte bis mehreren Gigabyte von Daten in kleinen Blöcken bestehen, und es können zu jedem Schreib-Burst Anforderungen in Bezug auf Schreib-Antwortzeiten und Beendigungszeiten vorliegen.
-
Wenn eine Speichersteuereinheit die Auslagerungsgeschwindigkeit zu hoch festlegt, sodass die großen Schreib-Bursts und die Anforderungen in Bezug auf die Beendigungszeit bei den Schreib-Bursts nicht berücksichtigt werden, kann die Speichersteuereinheit unter Umständen nicht schnell genug auf Lese-Anforderungen antworten, um die Anforderungen in Bezug auf die Lese-Antwortzeit zu erfüllen. Durch schnelles Auslagern von Daten aus dem Cache-Zwischenspeicher über eine hohe Auslagerungsgeschwindigkeit können Schreibvorgänge beschleunigt werden. Eine hohe Geschwindigkeit der Auslagerung kann jedoch eine niedrige Geschwindigkeit von Lesevorgängen aus sekundären Speichereinheiten verursachen, da Suchzeiten in Festplatten für Leseoperationen unter Umständen zunehmen, während Schreibvorgänge durchgeführt werden, oder Lesevorgänge müssen in eine Warteschlange eingereiht werden, um durchgeführt zu werden, nachdem Schreibvorgänge durchgeführt wurden.
-
Bestimmte Ausführungsformen ermitteln, welche Ränge von sekundärem Speicher für Anwendungen mit strikten Anforderungen in Bezug auf Lese-Antwortzeiten verwendet werden, bei denen auch große Schreib-Bursts auftreten, und passen die Auslagerungsgeschwindigkeit an eine Geschwindigkeit an, die geringer als eine Standard-Auslagerungsgeschwindigkeit ist. Bei bestimmten Ausführungsformen kann die Speichersteuereinheit in der Lage sein, zu ermitteln, welche Ränge derartigen angepassten Auslagerungsgeschwindigkeiten zu unterwerfen sind, die im Vergleich zu Standard-Auslagerungsgeschwindigkeiten verringert sind. Des Weiteren wird bei bestimmten Ausführungsformen ein Optimierungsmechanismus verwendet, um eine hohe Geschwindigkeit von Eingabe-/Ausgabeoperationen (E/A-Operationen) zur Festplatte zu erreichen und gleichzeitig die Anforderungen in Bezug auf die Lese- und Schreib-Antwortzeiten bei einer Anwendung mit strengen Anforderungen zu erfüllen.
-
1 veranschaulicht ein Blockschema einer Datenverarbeitungsumgebung 100, die die Speichersteuereinheit 102 aufweist, die gemäß bestimmten Ausführungsformen mit einer Mehrzahl von Hosts 104a, 104b, ... 104n und einer Mehrzahl von Speichereinheiten 106 verbunden ist. Die Mehrzahl von Speichereinheiten 106 kann im Gegensatz zu dem Cache-Zwischenspeicher 108, den die Speichersteuereinheit 102 aufweist, als „sekundäre Speichereinheiten“ bezeichnet werden.
-
Die Speichersteuereinheit 102 und die Hosts 104a bis 104n können eine beliebige geeignete Datenverarbeitungseinheit einschließlich derjenigen aufweisen, die nach dem Stand der Technik bekannt sind, wie zum Beispiel einen Personal Computer, eine Workstation, einen Server, einen Großrechner, einen Handcomputer, einen Palmtop-Computer, eine Telefoneinheit, ein Netzwerkgerät, einen Blade-Computer, einen Server usw. Die Speichersteuereinheit 102 und die Hosts 104a bis 104n und die Mehrzahl von Speichereinheiten 106 können über ein Netzwerk wie zum Beispiel das Internet, ein Speichernetzwerk, ein Weitverkehrsnetzwerk, ein lokales Netzwerk usw. Daten austauschen.
-
Die Mehrzahl von Speichereinheiten 106 kann beliebige geeignete Speichereinheiten aufweisen wie zum Beispiel physische Festplatten, Halbleiterlaufwerke usw., die nach dem Stand der Technik bekannt sind. Die Speichereinheiten 106 können in Datenträger konfiguriert sein. Bei bestimmten Ausführungsformen können die Speichereinheiten 106 Festplatten sein, die als RAID-Ränge (RAID = Redundant Array of Independent Disk) konfiguriert sind. In 1 ist eine Mehrzahl von Rängen eines ersten Typs, die verwendet werden, um auf eine erste Art von Anwendung (z.B. Anwendungen, die strenge Anforderungen in Bezug auf Lese- und Schreib-Antwortzeiten aufweisen) zu antworten, mit den Bezugsziffern 110a bis 110m gezeigt, und eine zweite Mehrzahl von Rängen eines zweiten Typs, die verwendet werden, um auf andere Arten von Anwendungen zu antworten, ist mit den Bezugsziffern 112a bis 112p gezeigt. Die Ränge 110a bis 110m werden auch als „Ränge 111 mit strengen Anforderungen“ bezeichnet, und die Ränge 112a bis 112p werden auch als „andere Ränge 113“ bezeichnet.
-
Der Cache-Zwischenspeicher 108 kann eine oder mehrere unterschiedliche Arten von Speicher wie zum Beispiel RAMs, Schreib-Cache-Zwischenspeicher, Lese-Cache-Zwischenspeicher, NVS usw. aufweisen. Die unterschiedlichen Arten von Speicher, die der Cache-Zwischenspeicher aufweist, können untereinander zusammenwirken. Schreibvorgänge aus den Hosts 104a bis 104n können anfänglich auf den Cache-Zwischenspeicher 108 geschrieben und anschließend auf die Speichereinheiten 106 ausgelagert werden. Leseanforderungen von den Hosts 104a bis 104n können aus dem Cache-Zwischenspeicher 108 bedient werden, wenn die entsprechenden Informationen im Cache-Zwischenspeicher 108 zur Verfügung stehen, anderenfalls werden Informationen von den Speichereinheiten 106 auf den Cache-Zwischenspeicher 108 ausgelagert und anschließend den Hosts 104a bis 104n bereitgestellt.
-
Die Speichersteuereinheit 102 führt die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit aus, die die Anzahl von Tasksteuerblöcken (TCB) pro Rang anpasst, um bei bestimmten beispielhaften Anwendungen (z.B. bei der Anwendung 115 mit strengen Anforderungen, die im beispielhaften Host 104a gezeigt ist), bei denen eine Menge von Kriterien 120 in Bezug auf Lese- und Schreib-Antwortzeiten erfüllt sein muss, eine Standard-Auslagerungsgeschwindigkeit 116 an eine angepasste Auslagerungsgeschwindigkeit 118 anzupassen. Beispielhafte TCBs pro Rang sind mit den Bezugsnummern 122a, 122b bis 122s bezeichnet.
-
Bei bestimmten Ausführungsformen kann eine Anwendung mit Anforderungen an die Lese- und Schreib-Antwortzeiten einen Befehl vom Host 104a an die Speichersteuereinheit 102 senden. Die Anwendung mit Anforderungen an die Lese- und Schreib-Antwortzeiten kann als Anforderung 115 mit strengen Anforderungen oder als Anwendung eines ersten Typs bezeichnet werden. Der Befehl kann eine Lese- oder Schreibanforderung oder einen anderen Befehl aufweisen. Die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit ermittelt, welche Ränge der Anwendung 115 mit strengen Anforderungen zugeordnet sind, und kann feststellen, dass die Ränge des ersten Typs 110a bis 110m (Ränge 111 mit strengen Anforderungen) der Anwendung 115 mit strengen Anforderungen zugeordnet sind. Die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit kann den Cache-Zwischenspeicher 108 mit einer Standard-Auslagerungsgeschwindigkeit 116 betrieben haben, und um die Befehle von der Anwendung 115 mit strengen Anforderungen zu verarbeiten, kann die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit die Anzahl von TCBs pro Rang bei jedem der Ränge 110a bis 110m verringern, um eine angepasste Auslagerungsgeschwindigkeit 118 bereitzustellen, die geringer als die Standard-Auslagerungsgeschwindigkeit 116 ist, wobei die Standard-Auslagerungsgeschwindigkeit 116 bei Anwendungen verwendet wird, die sich von den Anwendungen 115 mit strengen Anforderungen unterscheiden. Beispielsweise kann die Anzahl von TCBs pro Rang bei bestimmten Anwendungen halbiert werden, sodass die angepasste Auslagerungsgeschwindigkeit 118 für die Anwendung 115 mit strengen Anforderungen die Hälfte der Standard-Auslagerungsgeschwindigkeit 116 für andere Anwendungen beträgt.
-
2 veranschaulicht ein Blockschema 200, das beispielhafte Anforderungen in Bezug auf Lese-Antwortzeiten 202 bei beispielhaften Anwendungen 115 mit strengen Anforderungen gemäß bestimmten Ausführungsformen zeigt.
-
Bei bestimmten Ausführungsformen können die beispielhaften Anforderungen in Bezug auf Lese-Antwortzeiten folgende sein:
- 1) Die durchschnittliche Lese-Antwortzeit muss geringer als 15,0 Millisekunden sein (mit der Bezugsnummer 204 bezeichnet);
- 2) Anforderung mit vier Neunen: 99,99 % der Lesevorgänge müssen in einer Zeit abgeschlossen sein, die innerhalb von 600 Millisekunden liegt (mit der Bezugsnummer 206 bezeichnet);
- 3) Anforderung mit drei Neunen: 99,9 % der Lesevorgänge müssen in einer Zeit abgeschlossen sein, die innerhalb von 200 Millisekunden liegt (mit der Bezugsnummer 208 bezeichnet); und
- 4) Anforderung mit zwei Neunen: 99 % der Lesevorgänge müssen in einer Zeit abgeschlossen sein, die innerhalb von 60 Millisekunden liegt (mit der Bezugsnummer 210 bezeichnet).
-
Bei bestimmten Ausführungsformen wird, wenn die Wartezeit auf einen Lesevorgang mehr als 500 Millisekunden beträgt, der Lesevorgang durchgeführt, selbst wenn beliebige anstehende Schreibvorgänge vorliegen. Bei derartigen Ausführungsformen lässt sich die Anforderung mit vier Neunen unter Umständen leicht erfüllen, aber die Anforderungen mit drei Neunen und die Anforderungen mit zwei Neunen sind möglicherweise schwer zu erfüllen, wenn die Auslagerungsgeschwindigkeit zu hoch ist.
-
3 veranschaulicht ein Blockschema 300, das beispielhafte Anforderungen in Bezug auf Schreib-Antwortzeiten 302 bei Anwendungen 115 mit strengen Anforderungen gemäß bestimmten Ausführungsformen zeigt.
-
Bei bestimmten Anwendungen mit strengen Anforderungen weist eine beispielhafte Arbeitslast einen großen Schreib-„Burst“ auf, der aus mehreren einhundert MB bis 2 GB mit Daten in kleinen Blöcken bestehen kann. Die Daten werden von den Hosts 104a bis 104n unter Verwendung mehrerer E/A-Datenströme so schnell wie möglich an die Speichereinheit 102 gesendet. Je nach der Größe des NVS im Cache-Zwischenspeicher 108 können die Auslagerungsanwendungen der Speichersteuereinheit offensiv und sehr effizient werden. Obwohl dies ein schnelles Auslagerungsverhalten bereitstellt, können die Speichereinheiten 106 die Schreibvorgänge vor anstehenden Lesevorgängen priorisieren. Dies ist hauptsächlich in der Tatsache begründet, dass die Suchzeiten zwischen den Schreibvorgängen minimiert werden, wodurch wiederum eine höhere Eingabe-/Ausgabeeffizienz (E/A-Effizienz) bereitgestellt wird. Die Anwendungen mit strengen Anforderungen benötigen konstant niedrige Lese-Antwortzeiten, unabhängig davon, ob ein Schreib-Burst-Ereignis auftritt (der Schreib-Burst tritt normalerweise ca. alle 80 Sekunden auf und kann bis zu 30 Sekunden dauern). Falls keine Anpassungen an der Standard-Auslagerungsgeschwindigkeit 116 vorgenommen werden, können kurze Zeit nach dem Beginn des Schreib-Bursts große Lese-Latenzzeiten (oder „Spitzen“-Latenzzeiten bei E/A-Lesevorgängen) auftreten und über das Ende des Schreib-Bursts hinaus andauern. Der Auslagerungsmechanismus kann aktiv daran arbeiten, den NVS-Cache-Zwischenspeicher zu leeren, und kann niedrige Lese-Antwortzeiten verursachen.
-
Die Anwendung 115 mit strengen Anforderungen kann auch Festplattensteuereinheit-Hardware empfehlen und kann Hardware mit einer hohen Zahl von E/A-Operationen pro Sekunde (IOPS) pro Festplatte bevorzugen. Das Konfigurationsziel der Speichersteuereinheit 102 besteht darin, die höchste Anzahl von IOPS pro Festplatte zu erreichen und gleichzeitig die Anforderungen 202 in Bezug auf Lese-Antwortzeiten und die Anforderungen 302 in Bezug auf Schreib-Antwortzeiten zu erfüllen.
-
Bei bestimmten Ausführungsformen können die beispielhaften Anforderungen 302 in Bezug auf Schreib-Antwortzeiten folgende sein:
- 1) die durchschnittliche Schreib-Antwortzeit muss geringer als 1 Millisekunde sein (mit der Bezugsnummer 304 bezeichnet);
- 2) jeder Schreib-Burst ist in weniger als 30 Sekunden abgeschlossen (mit der Bezugsnummer 306 bezeichnet); und
- 3) das Zeitintervall zwischen aufeinanderfolgenden Schreib-Bursts ist größer als 50 Sekunden (mit der Bezugsnummer 308 bezeichnet).
-
4 veranschaulicht ein Blockschema 400, das Parameter zur Anpassung 402 der Auslagerungsgeschwindigkeit gemäß bestimmten Ausführungsformen zeigt.
-
Bei bestimmten Ausführungsformen wird die Anzahl von Auslagerungsaufgaben so angepasst, dass die Speichersteuereinheit die höchstmögliche Anzahl von IOPS pro Festplatte bereitstellen kann, ohne die Anforderungen der Anwendung mit strengen Anforderungen in Bezug auf sowohl Lese- als auch Schreib-Antwortzeiten zu verletzen. Im Idealfall tritt die höchste Anzahl von IOPS an dem Punkt auf, an dem nahezu gleichzeitig sowohl Lese- als auch Schreib-Spitzenwerte vorliegen.
-
Daher versucht die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit, die Auslagerungsgeschwindigkeit so anzupassen, dass die Anzahl von IOPS pro Festplatte maximiert wird 404, während sowohl die Anforderungen in Bezug auf die Lese-Antwortzeit 406 als auch die Anforderungen in Bezug auf die Schreib-Antwortzeit 408 erfüllt werden.
-
Außer dem Anpassen der Auslagerungsgeschwindigkeit, um die Anzahl von IOPS pro Festplatte zu maximieren und gleichzeitig Anforderungen in Bezug auf Lese- und Schreib-Antwortzeiten zu erfüllen, kann die Speichersteuereinheit 102 auch bestimmte Ränge 110a bis 110m zuordnen, die speziell für die Anwendung 115 mit strengen Anforderungen zugeordnet werden müssen.
-
5 veranschaulicht ein Blockschema 500, das zeigt, wie Ränge (z.B. die Ränge 110a bis 110m) des Typs mit strengen Anforderungen gemäß bestimmten Ausführungsformen ermittelt werden.
-
Es gibt mehrere Möglichkeiten, wie die Speichersteuereinheit 102 Ränge ermitteln kann, die für die Anwendung 115 mit strengen Anforderungen vorgesehen sind. Bei bestimmten Ausführungsformen (die mit der Bezugsnummer 504 bezeichnet sind) kann eine Touch-Datei einen Rang kennzeichnen, der der Anwendung 115 mit strengen Anforderungen entspricht. Die Touch-Datei kann ein Bitmap aufweisen, bei dem Bits für Ränge gesetzt sind, die für die Anwendung 115 mit strengen Anforderungen zu verwenden sind.
-
Bei anderen Ausführungsformen (die mit der Bezugsnummer 506 bezeichnet sind) kann die Anwendung 115 mit strengen Anforderungen einen Hinweis an einen Datenträger übermitteln, um anzuzeigen, dass der Datenträger für Arbeitslasten von Anwendungen mit strengen Anforderungen zu verwenden ist. Von diesen Datenträgern kann die Speichersteuereinheit 102 ermitteln, welche Ränge für die Anwendung 115 mit strengen Anforderungen zu verwenden sind. Anschließend kann die Speichersteuereinheit 102 ein Bitmap von Rängen aufbauen, die für Ränge 111 von Anwendungen 115 mit strengen Anforderungen zu verwenden sind.
-
Bei noch weiteren Ausführungsformen (die mit der Bezugsnummer 508 bezeichnet sind) ermittelt die Speichersteuereinheit 102 auf der Grundlage des Schreib-Burst-Musters aus der Anwendungssoftware mit strengen Anforderungen Ränge 111 mit strengen Anforderungen. Wenn ein Rang Schreib-Burst für weniger als 30 Sekunden erhält und 50 Sekunden lang keine Schreibvorgänge vorliegen, kann der Rang als Rang einer Anwendung mit strengen Anforderungen ermittelt werden. Die Speichersteuereinheit 102 baut anschließend ein Bitmap von Rängen auf, die für Arbeitslasten von Anwendungen mit strengen Anforderungen verwendet werden.
-
Bei bestimmten beispielhaften Ausführungsformen ist die maximale Anzahl von Auslagerungs-TCBs 122a bis 122s pro Rang wie folgt festgelegt:
- 1) Wenn das Bit für den Rang gesetzt ist, um anzudeuten, dass es sich hierbei um einen Rang mit strengen Anforderungen handelt, wird die Anzahl der bei diesem Rang maximal zulässigen Auslagerungs-TCBs auf die Anzahl festgelegt, die für die Anwendung 115 mit strengen Anforderungen optimal ist. Bei bestimmten Ausführungsformen beträgt die optimale Anzahl 8; und
- 2) wenn das Bit nicht gesetzt ist, um anzudeuten, dass es sich hierbei nicht um einen Rang mit strengen Anforderungen handelt, wird die Anzahl der bei diesem Rang zulässigen Auslagerungs-TCBs auf den Standardwert von 40 festgelegt.
-
6 veranschaulicht einen Ablaufplan 600, der Operationen zum Ermitteln der Anzahl von Auslagerungs-Tasksteuerblöcken pro Rang für Auslagerungsdaten gemäß bestimmten Ausführungsformen zeigt. Die in 6 gezeigten Operationen können durch die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit durchgeführt werden, die in der Speichersteuereinheit 102 ausgeführt wird.
-
Die Steuerung beginnt bei Block 602, in dem die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit mit einer vorgegebenen Anzahl von Auslagerungs-Tasksteuerblöcken pro Rang beginnt. Die Steuerung geht zu Block 604 über, bei dem die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit die Ausführung des Vergleichswertes für Arbeitslasten der Anwendung 115 mit strengen Anforderungen simuliert, und die Simulation wird fortgesetzt, bis eine optimale Anzahl von Auslagerungs-TCBs ermittelt ist.
-
Von Block 604 geht die Steuerung zu Block 606 über, in dem die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit ermittelt, ob Lese-Spitzenwerte mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind. Als Reaktion auf das Feststellen („Ja“-Zweig aus Block 606), dass die Lese-Spitzenwerte mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind, wird die Anzahl von Auslagerungs-Tasksteuerblöcken vermindert (bei Block 608), um die Auslagerungsgeschwindigkeit zu verringern. Zusätzlich wird als Reaktion auf das Feststellen („Nein“-Zweig aus Block 606), dass die Lese-Spitzenwerte nicht mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind, die Anzahl von Auslagerungs-Tasksteuerblöcken erhöht (bei Block 610), um die Auslagerungsgeschwindigkeit zu erhöht.
-
Aus den Blöcken 608 und 610 kehrt die Steuerung zu Block 604 zurück, und die Simulation wird fortgesetzt. Die Simulation ermittelt die IOPS, bei denen Lese-Spitzenwerte und die Schreibvorgänge den Cache-Zwischenspeicher (z.B. den NVS) zu füllen beginnen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher (z.B. dem NVS) abgeschlossen sind.
-
Bei bestimmten Ausführungsformen kann möglicherweise eine beispielhafte optimale Anzahl von Auslagerungs-TCBs gefunden werden, bei der gleichzeitig Lese-Spitzenwerte und Schreib-Spitzenwerte erreicht werden. Bei bestimmten Ausführungsformen kann die Simulation mit 40 Auslagerungs-TCBs gestartet werden, und es kann möglicherweise festgestellt werden, dass die optimale Anzahl von Auslagerungs-TCBs bei Arbeitslasten von Anwendungen mit strengen Anforderungen 8 bis 10 Auslagerungs-TCBs beträgt. Als Ergebnis derartiger Simulationen können die IOPS pro Festplatte von 80 IOPS, wenn die Standardanzahl von TCBs pro Rang von 40 verwendet wird, auf über 200 IOPS erhöht werden, wenn 8 bis 10 Auslagerungs-TCBs pro Rang verwendet werden.
-
7 veranschaulicht einen Ablaufplan 700, der bestimmte Operationen zum Anpassen der Auslagerungsgeschwindigkeit gemäß bestimmten Ausführungsformen zeigt. Die in 7 gezeigten Operationen können durch die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit durchgeführt werden, die in der Speichersteuereinheit 102 ausgeführt wird.
-
Die Steuerung beginnt bei Block 702, in dem die Speichersteuereinheit 102, die den Cache-Zwischenspeicher 108 aufweist, einen Befehl vom Host 104a empfängt, wobei die Menge von Kriterien 102, die der Lese-Antwortzeit 202 und der Schreib-Antwortzeit 302 zum Ausführen des Befehls entsprechen, erfüllt sein muss. Bei bestimmten Ausführungsformen kann der Befehl unter Umständen aus der Anwendung 115 mit strengen Anforderungen empfangen werden, die im Host 104a ausgeführt wird.
-
Die Speichersteuereinheit 102 ermittelt (bei Block 704) Ränge 110a bis 110m eines ersten Typs und Ränge 112a bis 112p eines zweiten Typs, die einer Mehrzahl von Datenträgern entsprechen, die mit der Speichersteuereinheit 102 verbunden sind, wobei der Befehl unter Berücksichtigung der Ränge 110a bis 110m des ersten Typs auszuführen ist. Bei bestimmten Ausführungsformen gelten die Ränge 110a bis 110m für die Anwendung 115 mit strengen Anforderungen, die auf dem Host 104 ausgeführt wird und von der der Befehl durch die Speichersteuereinheit 102 empfangen wurde.
-
Die Steuerung geht zu Block 706 über, bei dem die Auslagerungsgeschwindigkeit, die den Rängen des ersten Typs entspricht (d.h. des Typs mit strengen Anforderungen) so angepasst wird, dass sie geringer als die Standard-Auslagerungsgeschwindigkeit 116 ist, die den Rängen des zweiten Typs entspricht, wobei die Menge 120 von Kriterien, die den Lese- und Schreib-Antwortzeiten zum Ausführen des Befehls entsprechen, erfüllt ist.
-
Daher veranschaulicht 7 bestimmte Ausführungsformen, bei denen in der Speichersteuereinheit 102 der Anwendung mit strengen Anforderungen Ränge zugewiesen und anderen Anwendungen zugewiesene Ränge gekennzeichnet werden. Bei bestimmten Ausführungsformen wird eine Anordnung von Auslagerungs-TCBs bei Rängen verwendet, die der Anwendung 115 mit strengen Anforderungen zugeordnet sind, und eine andere Anordnung wird bei anderen Anwendungen verwendet. Bei bestimmten Ausführungsformen beträgt die angepasste Auslagerungsgeschwindigkeit, die Rängen des Typs mit strengen Anforderungen entspricht, weniger als die Hälfte der Standard-Auslagerungsgeschwindigkeit. Bei bestimmten anderen Ausführungsformen beträgt die angepasste Auslagerungsgeschwindigkeit, die Rängen des Typs mit strengen Anforderungen entspricht, weniger als ein Fünftel der Standard-Auslagerungsgeschwindigkeit.
-
Daher verringern bestimmte Ausführungsformen die Auslagerungsgeschwindigkeit im Vergleich zu einer Standard-Auslagerungsgeschwindigkeit, um maximale IOPS zu ermöglichen und gleichzeitig die Anforderungen an die Lese- und Schreib-Antwortzeiten bei Anwendungen mit strengen Anforderungen zu erfüllen. Bei Anwendungen, bei denen es sich nicht um Anwendungen mit strengen Anforderungen handelt, wird die Standard-Auslagerungsgeschwindigkeit verwendet.
-
Die beschriebenen Operationen können unter Verwendung von Standard-Programmiertechniken oder Standard-Entwicklungstechniken zur Erzeugung von Software, Firmware, Hardware oder einer beliebigen Kombination davon als Verfahren, Vorrichtung oder Computerprogrammprodukt realisiert sein. Dementsprechend können Aspekte der Ausführungsformen die Form einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, in der Software- und Hardwareaspekte miteinander kombiniert sind, die hierin allgemein als „Schaltung“, „Modul“ oder „System“ bezeichnet werden. Ferner können Aspekte der Ausführungsformen die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, auf denen computerlesbarer Programmcode verkörpert ist.
-
Es können beliebige Kombinationen eines oder mehrerer computerlesbarer Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Zu computerlesbaren Speichermedien können beispielsweise, ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches oder elektromagnetisches System bzw. ein Infrarot- oder Halbleitersystem bzw. eine derartige Vorrichtung oder Einheit oder eine beliebige geeignete Kombination des Vorstehenden gehören. Zu den genaueren Beispielen (unvollständige Liste) computerlesbarer Speichermedien zählen unter anderem folgende: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorstehenden. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes beliebige vergegenständlichte Medium sein, das ein Programm enthalten oder speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
-
Ein computerlesbares Signalmedium kann unter anderem ein im Basisband oder als Teil einer Trägerwelle übertragenes Datensignal mit darin verkörpertem computerlesbarem Programmcode aufweisen. Ein derartiges übertragenes Signal kann eine beliebige Mehrzahl von Formen annehmen, einschließlich, ohne darauf beschränkt zu sein, einer elektromagnetischen oder optischen Form oder einer beliebigen geeigneten Kombination davon. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, bei dem es sich nicht um ein computerlesbares Speichermedium handelt und das ein Programm übertragen, senden oder transportieren kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
-
Auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes beliebigen geeigneten Mediums, einschließlich, ohne darauf beschränkt zu sein, drahtloser, drahtgebundener Medien, Lichtwellenleitern, HF usw. oder unter Verwendung einer beliebigen geeigneten Kombination des Vorstehenden übertragen werden.
-
Computerprogrammcode zur Ausführung von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, darunter in einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder Ähnlichem und in herkömmlichen prozeduralen Programmiersprachen wie z.B. „C“ oder ähnlichen Programmiersprachen geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (LAN) oder über ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)).
-
Nachstehend werden Aspekte der vorliegenden Erfindung unter Bezugnahme auf Ablaufpläne und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder der Blockschemata und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschemata durch Computerprogrammanweisungen realisiert werden kann bzw. können. Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderen programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel zum Realisieren der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschemas angegebenen Funktionen/Aktionen schaffen.
-
Diese Computerprogrammanweisungen können ebenfalls in einem computerlesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Anweisungen ein Erzeugnis schaffen, das die Anweisungen aufweist, die die in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschemas angegebene Funktion/Aktion realisieren.
-
Die Computerprogrammanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer oder auf anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zur Realisierung der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschemas angegebenen Funktionen/Aktionen bereitstellen.
-
8 veranschaulicht ein Blockschema eines Datenverarbeitungssystems, das bestimmte Elemente zeigt, die die Speichersteuereinheit 102 oder die Hosts 104a bis 104n gemäß bestimmten Ausführungsformen aufweisen können. Das System 800 kann die Speichersteuereinheit 102 oder die Hosts 104a bis 104n aufweisen, und es kann die Schaltung 802 aufweisen, die bei bestimmten Ausführungsformen mindestens den Prozessor 804 aufweisen kann. Das System 800 kann außerdem den Hauptspeicher 806 (z.B. eine flüchtige Speichereinheit) und den Speicher 808 aufweisen. Der Speicher 808 kann eine nichtflüchtige Speichereinheit (z.B. EEPROM, ROM, PROM, RAM, DRAM, SRAM, Flash-Speicher, Firmware, programmierbare Logik usw.), ein Magnetplattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk usw. aufweisen. Der Speicher 808 kann eine interne Speichereinheit, eine angeschlossene Speichereinheit und/oder eine über ein Netzwerk zugängliche Speichereinheit aufweisen. Das System 800 kann die programmierbare Logik 100 einschließlich Code 812 aufweisen, der in den Hauptspeicher 806 geladen und durch den Prozessor 804 oder die Schaltung 802 ausgeführt werden kann. Bei bestimmten Ausführungsformen kann die Programmlogik 810 einschließlich des Codes 812 im Speicher 808 gespeichert sein. Bei bestimmten anderen Ausführungsformen kann die Programmlogik 810 in der Schaltung 802 realisiert sein. Daher kann die Programmlogik 810 im Hauptspeicher 806 und/oder in der Schaltung 802 realisiert sein, obwohl in 8 die Programmlogik 810 getrennt von anderen Elementen dargestellt ist.
-
Bestimmte Ausführungsformen können auf ein Verfahren zum Bereitstellen von Datenverarbeitungsanweisungen durch eine Person oder eine automatische Verarbeitung gerichtet sein, indem computerlesbarer Code in ein Datenverarbeitungssystem integriert wird, wobei der Code in Verbindung mit dem Datenverarbeitungssystem so ausgelegt ist, dass die Operationen der beschriebenen Ausführungsformen durchgeführt werden.
-
Einheiten, die in Verbindung untereinander stehen, brauchen nicht ununterbrochen miteinander in Verbindung zu stehen, sofern nicht ausdrücklich etwas anderes angegeben ist. Außerdem können untereinander in Verbindung stehende Einheiten über eine oder mehrere Vermittlereinheiten direkt oder indirekt miteinander kommunizieren.
-
Obwohl ferner Prozessschritte, Verfahrensschritte, Algorithmen und dergleichen in einer Reihenfolge beschrieben sein können, können derartige Prozesse, Verfahren und Algorithmen so gestaltet sein, dass sie in alternativen Reihenfolgen funktionieren. Anders ausgedrückt gibt ein möglicherweise beschriebener beliebiger Ablauf oder eine möglicherweise beschriebene beliebige Reihenfolge von Schritten nicht zwangsläufig ein Erfordernis an, dem zufolge die Schritte in dieser Reihenfolge durchgeführt werden müssen. Die hierin beschriebenen Schritte von Prozessen können in einer beliebigen praktisch durchführbaren Reihenfolge durchgeführt werden. Ferner können einige Schritte gleichzeitig durchgeführt werden.
-
Zumindest bestimmte Operationen, die in den Figuren veranschaulicht sein können, zeigen bestimmte Ereignisse, die in einer bestimmten Reihenfolge auftreten. Bei alternativen Ausführungsformen können bestimmte Operationen in einer anderen Reihenfolge durchgeführt, verändert oder entfernt werden. Darüber hinaus können Schritte zu der oben beschriebenen Logik hinzugefügt werden, die dann immer noch den beschriebenen Ausführungsschritten entspricht. Ferner können hierin beschriebene Operationen der Reihe nach auftreten, oder bestimmte Operationen können parallel verarbeitet werden. Weiterhin können Operationen durch eine einzelne Verarbeitungseinheit oder durch verteilte Verarbeitungseinheiten durchgeführt werden.