-
Ausführungsformen der vorliegenden Erfindung beziehen sich auf die Ausnahmebehandlung in einem Programm.
-
Ein Programm kann mehrere aufeinander folgende Anweisungen umfassen, die üblicherweise nacheinander durch eine CPU verarbeitet werden. Allerdings kann jederzeit eine Ausnahme (z. B. ein Interrupt, eine Trap oder ein Aufgabenwechsel, auch bezeichnet als Task-Wechsel) auftreten, sodass die aktuelle Sequenz unterbrochen wird und die Ausnahme durchgeführt wird. Nach der Ausnahme (eine RFE-Anweisung (Return From Exception, Rückkehr von der Ausnahme) kann die letzte Anweisung der Ausnahme sein) wird die vorherige Sequenz fortgesetzt.
-
Die Aufgabe besteht darin, vorhandene Ausnahmebehandlungslösungen zu verbessern.
-
Dies wird entsprechend den Merkmalen der unabhängigen Ansprüche gelöst. Weitere Ausführungsformen ergeben sich aus den abhängenden Ansprüchen.
-
Die hier vorgeschlagenen Beispiele können insbesondere auf zumindest einer der folgenden Lösungen basieren. Kombinationen der folgenden Merkmale können genutzt werden, um ein gewünschtes Ergebnis zu erreichen. Die Merkmale des Verfahrens können mit beliebigen Merkmalen der Vorrichtung, Einrichtung oder des Systems kombiniert werden, oder umgekehrt.
-
Ein Verfahren zur Behandlung von Ausnahmen wird bereitgestellt, das Folgendes umfasst:
- - Ausführen einer Rückkehr von einer Ausnahme;
- - Ausführen einer nachfolgenden Anweisung mit einer zusätzlichen Funktionalität im Falle, dass die zusätzliche Funktionalität der nachfolgenden Anweisung durch eine spezielle Anweisung ausgelöst werden kann.
-
Daher liefern die spezielle Anweisung und die nachfolgende Anweisung eine kombinierte Anweisung, die (wenn kombiniert) zum Auslösen einer zusätzlichen Funktionalität (z. B. einer Verfolgungsfunktionalität, auch bezeichnet als Trace-Funktionalität) führt. Die Ausnahme kann zum Trennen beider Anweisungen führen, wodurch sie als atomare Anweisungen verarbeitet werden, ohne eine kombinierte Wirkung zum Auslösen der zusätzlichen Funktionalität. Um daher nicht zu verpassen, dass die zusätzliche Funktionalität ausgelöst wird, wird die zusätzliche Funktionalität für die nachfolgende Anweisung nach der Rückkehr von der Ausnahme immer ausgelöst (dies gilt natürlich nur, wenn für die nachfolgende Anweisung irgendeine zusätzliche Funktionalität verfügbar ist).
-
Entsprechend einer Ausführungsform umfasst die Ausnahme zumindest eines aus Folgendem:
- - einen Interrupt;
- - eine Trap;
- - einen Aufgabenwechsel.
-
Entsprechend einer Ausführungsform kehrt die Rückkehr von einer Ausnahme zu dem vorher unterbrochenen Programm zurück.
-
Entsprechend einer Ausführungsform wird die zusätzliche Funktionalität nicht ausgelöst, wenn die nachfolgende Anweisung in einem speziellen Ausführungsmodus ausgeführt wird.
-
Entsprechend einer Ausführungsform ist der spezielle Ausführungsmodus ein sicherer Ausführungsmodus.
-
Entsprechend einer Ausführungsform umfasst die zusätzliche Funktionalität zumindest eines aus Folgendem:
- - eine Verfolgungsfunktionalität;
- - eine Überwachungsfunktionalität.
-
Entsprechend einer Ausführungsform sind die spezielle Anweisung und die nachfolgende Anweisung aufeinander folgende Anweisungen eines Programms.
-
Entsprechend einer Ausführungsform ist die spezielle Anweisung eine NOP-Anweisung.
-
Entsprechend einer Ausführungsform unterstützt die NOP-Anweisung eine Auswahl zwischen Optionen für die zusätzliche Funktionalität.
-
Entsprechend einer Ausführungsform werden Optionen für die zusätzliche Funktionalität über Bits der NOP-Anweisung ausgewählt.
-
Entsprechend einer Ausführungsform sind Optionen für die zusätzliche Funktionalität wie folgt:
- - keine zusätzliche Funktionalität;
- - zusätzliche Funktionalität für Speicheranweisung;
- - zusätzliche Funktionalität für Ladeanweisung;
- - zusätzliche Funktionalität für Speicher- oder Ladeanweisung.
-
Entsprechend einer Ausführungsform wird das Verfahren auf einem Betriebssystem ausgeführt.
-
Außerdem wird eine Vorrichtung zum Behandeln von Ausnahmen vorgeschlagen, die dazu angeordnet ist, die folgenden Schritte durchzuführen:
- - Ausführen einer Rückkehr von einer Ausnahme;
- - Ausführen einer nachfolgenden Anweisung mit einer zusätzlichen Funktionalität im Falle, dass die zusätzliche Funktionalität der nachfolgenden Anweisung durch eine spezielle Anweisung ausgelöst werden kann.
-
Entsprechend einer Ausführungsform umfasst die Vorrichtung zumindest eines aus Folgendem:
- - eine Verarbeitungsvorrichtung;
- - eine CPU;
- - eine Überwachungseinheit;
- - einen Chip;
- - einen Single-Chip.
-
Außerdem wird eine Vorrichtung zur Behandlung von Ausnahmen bereitgestellt, die Folgendes umfasst:
- - Mittel zum Ausführen einer Rückkehr von einer Ausnahme;
- - Mittel zum Ausführen einer nachfolgenden Anweisung mit einer zusätzlichen Funktionalität im Falle, dass die zusätzliche Funktionalität der nachfolgenden Anweisung durch eine spezielle Anweisung ausgelöst werden kann.
-
Ferner wird ein Computerprogrammprodukt vorgeschlagen, das direkt in einen Speicher einer digitalen Verarbeitungsvorrichtung ladbar ist, umfassend Softwarecodeteile zum Durchführen der Schritte des Verfahrens, wie hier beschrieben.
-
Ausführungsformen werden Bezug nehmend auf die Zeichnungen gezeigt und dargestellt. Die Zeichnungen dienen dazu, das Grundprinzip darzustellen, sodass nur Aspekte dargestellt werden, die zum Verstehen des Grundprinzips erforderlich sind. Die Zeichnungen sind nicht maßstabsgetreu. In den Zeichnungen bezeichnen gleiche Bezugszeichen ähnliche Merkmale.
- 1 zeigt einen Auszug aus einem Programm, umfassend eine Menge von Anweisungen;
- 2 zeigt den Auszug aus dem Programm aus 1, wobei ein Interrupt nach der Anweisung 10 aufgetreten ist, der zu einer Menge von Anweisungen des Interrupts führt, bevor er zurückkehrt, um die Anweisung 11 zu verarbeiten;
- 3 zeigt ein schematisches Diagramm, das die Schritte visualisiert, die zu verarbeiten sind, wenn eine RFE-Anweisung bestimmt wird.
-
Ein Programm kann mehrere aufeinander folgende Anweisungen umfassen, die üblicherweise nacheinander durch eine CPU verarbeitet werden. Allerdings kann jederzeit eine Ausnahme (z. B. ein Interrupt, eine Trap oder ein Aufgabenwechsel) auftreten, sodass die aktuelle Sequenz unterbrochen wird und die Ausnahme durchgeführt wird. Nach der Ausnahme (eine RFE-Anweisung (Return From Exception, Rückkehr von der Ausnahme) kann die letzte Anweisung der Ausnahme sein) wird die vorherige Sequenz fortgesetzt.
-
Allerdings ist es ein Problem, wenn die Ausnahme zwischen Anweisungen auftritt, die eine kombinierte Bedeutung haben, hier auch als „zusätzliche Funktionalität“ bezeichnet: Wenn eine erste Anweisung (10) eine Funktionalität einer nachfolgenden zweiten Anweisung (I1) auslöst, muss sichergestellt sein, dass eine solche Funktionalität selbst dann geschieht, wenn eine Ausnahme zwischen diesen Anweisungen 10 und I1 aufgetreten ist.
-
Die Anweisungen 10 und I1 können als spezifische Anweisungstypen definiert werden. Ein präemptives Betriebssystem (BS) kann eine Aufgabe während einer Interrupt-Routine (Aufgabenwechsel) ändern, sodass die Anweisung 11 möglicherweise gar nicht direkt ausgeführt wird, nachdem die Interrupt-Dienstroutine geendet hat. Stattdessen kann die Anweisung 11 später ausgeführt werden, wenn wieder zurück auf die vorherige Aufgabe gewechselt wird (d. h. die Aufgabe, in der die Anweisung 10 ausgeführt wurde).
-
Das Problem trifft insbesondere zu, wenn eine spezielle Anweisung (spezielle NOP-Anweisung („No Operation“, keine Operation) verwendet wird, um eine nachfolgende Anweisung weiter zu qualifizieren, was eine Speicheranweisung sein kann: Wenn eine solche spezielle Anweisung vor der nachfolgenden Speicheranweisung verwendet wird, kann eine Verfolgungsfunktionalität ausgelöst werden, d. h. Datenwert und Adresse werden über eine Verfolgungsschnittstelle ausgegeben. Wenn die spezielle Anweisung fehlt, wird keine Verfolgungsfunktionalität ausgelöst. Daher kann eine Ausnahme, die zwischen den Anweisungen 10 und I1 auftritt, zu einer fehlenden Verfolgungsfunktionalität führen. Dies ist besonders umständlich, da Ausnahmen mit einem beliebigen Muster auftreten können, was zu fehlenden Informationen auf der Verfolgungsschnittstelle führt.
-
Wie oben angegeben, kann, wenn ein Interrupt (oder eine Trap) nach der speziellen Anweisung auftritt, die Wirkung der speziellen Anweisung (d. h. die Verfolgungsfunktionalität) verloren gehen, d. h. keine zusätzliche Funktionalität wird ausgelöst, nachdem der Interrupt (oder die Trap) geendet hat.
-
Eine Interrupt-Dienstroutine oder ein Trap-Handler können die RFE-Anweisung als die letzte Anweisung umfassen.
-
Hier beschriebene Ausführungsformen setzen insbesondere eine Regel um, dass nach der RFE-Anweisung die Anweisung I1 (immer) mit ihrer zusätzlichen Funktionalität ausgeführt wird.
-
1 zeigt eine Menge von Anweisungen 101, umfassend die Anweisungen 10 und 11. Ein Pfeil 102 zeigt die Ausführungsreihenfolge der Anweisungen 101 an.
-
Es wird angenommen, dass die Anweisung 10 eine spezielle Anweisung ist, anzeigend, dass in Kombination mit der Anweisung 11 eine zusätzliche Funktionalität, z. B. eine Verfolgungsfunktionalität, ausgelöst wird.
-
Die Ausführung ist wie folgt: An einem Punkt zeigt ein Programmzähler (nicht gezeigt) auf die spezielle Anweisung 10, die eine NOP sein kann, die eine Auswahl zwischen unterschiedlichen Optionen ermöglicht (mehr Details über die durch die NOP ausgewählten Optionen werden nachfolgend beschrieben). Wenn die Anweisung 11 auf die spezielle Anweisung 10 folgt, wird die zusätzliche Funktionalität ausgelöst, z. B. wird eine Verfolgungsfunktionalität (oder ein Verfolgungsmodus) ausgelöst (z. B. eingeschaltet). Dies gilt nur, wenn die Anweisung 11 direkt auf die spezielle Anweisung 10 folgt. Andernfalls wird die zusätzliche Funktionalität nicht ausgelöst.
-
2 zeigt ein unterschiedliches Szenario, das auf 1 basiert. In diesem Beispiel tritt ein Interrupt 201 nach der speziellen Anweisung 10 auf, zu einer Ausführung mehrerer Anweisungen des Interrupts, d. h. Anweisungen IQ1 bis IQn, führend. Am Ende der Interrupt-Routine wird eine RFE-Anweisung ausgeführt, und die vorherige Aufgabe wird fortgesetzt durch Ausführen der Anweisung 11.
-
In diesem Fall würde die Anweisung 11 ausgeführt werden, ohne dass die spezielle Anweisung 10 ihre direkt vorangehende Anweisung ist. Aufgrund des Interrupts ist der Kontext der speziellen Anweisung 10 verloren, und die zusätzliche Funktionalität wird für die Anweisung 11 nicht ausgelöst.
-
Dies kann effizient verhindert werden durch standardmäßiges Auslösen der zusätzlichen Funktionalität, wenn die Anweisung I1 nach der RFE-Anweisung ausgeführt wird (oder nach einer beliebigen Rückkehr von der Ausnahme). In diesem Fall wird die Verfolgungsfunktionalität unabhängig davon ausgelöst, ob die spezielle Anweisung 10 die vorherige Anweisung vor dem Interrupt ist.
-
Ein Vorteil dieses Ansatzes ist, dass das Vorhandensein der vorherigen speziellen Anweisung 10 nicht während der gesamten Ausnahme gemerkt werden muss, d. h., der Prozessor oder das System muss die Anweisung nicht speichern, die vor dem Interrupt aufgetreten ist, für den Fall, dass sie bei Rückkehr von dem Interrupt relevant sein könnte.
-
Selbst Wechseln zwischen Aufgaben eines BS kann erfolgen, ohne dass die letzte spezielle Anweisung 10 gespeichert und vor Rückkehr zur vorherigen Aufgabe wieder abgerufen werden muss.
-
Daher wird die zusätzliche Funktionalität immer nach der RFE-Anweisung ausgelöst, unabhängig davon, ob eine spezielle Anweisung 10 vorhanden war oder nicht. Dies ist nichtsdestotrotz vorteilhaft, da es zu einem geringen Mehraufwand basierend auf der zusätzlichen Funktionalität führt, z. B. etwas mehr Verfolgungsausgabe als erforderlich (besser mehr Informationen als weniger).
-
3 zeigt ein beispielhaftes Diagramm, das die Schritte visualisiert, die durchzuführen sind, nachdem eine Rückkehr von einer Ausnahme bestimmt wurde. In einem Schritt 301 wird geprüft, ob es eine Rückkehr zur aktuellen Aufgabe basierend auf der RFE-Anweisung gibt. Dies kann durch das BS in einer Weise umgesetzt werden, dass der nachfolgende Schritt 302 immer ausgeführt wird, für den Fall, dass eine RFE-Anweisung ausgegeben wurde. Im Schritt 302 wird die nachfolgende Anweisung (im Beispiel aus 2 die Anweisung 11) mit einer zusätzlichen Funktionalität ausgeführt. Natürlich kann dies nur gelten, wenn eine zusätzliche Funktionalität für diese nachfolgende Anweisung verfügbar ist, die normalerweise durch eine spezielle Anweisung ausgelöst werden würde (im Beispiel aus 2 die Anweisung 10). Daher ist es irrelevant, ob die spezielle Anweisung 10 die letzte Anweisung vor der Ausnahme war oder nicht; die Anweisung 10 wird ohnehin mit der zusätzlichen Funktionalität ausgeführt.
-
Es ist eine andere Option, dass die zusätzliche Funktionalität in Abhängigkeit von einem Status eines Prozessors ausgelöst wird (oder nicht). Dadurch kann, z. B., verhindert werden, dass sichere Daten einer geheimen Aufgabe durchsickern. Es gibt mehrere Zustände, wie etwa eine virtuelle Maschine, eine Aufgabe und/oder einen sicheren Zustand des Prozessors, die die zusätzliche Funktionalität auslösen können oder nicht (oder eine solche Auslösung verhindern).
-
Zusätzlich können verschiedene Operationen durchgeführt werden, wenn die Prüfung aus Schritt 301 ergibt, dass es keine RFE zur aktuellen Aufgabe gibt. Beispielsweise kann der Code der Ausnahme fortgeführt werden. Der Schritt 301 kann daher in den Code der Ausnahme eingebettet sein (angezeigt durch die gestrichelten Linien 303).
-
Weitere Details zur speziellen Operation
-
Als eine Option kann die spezielle Operation (10 in den oben gezeigten Beispielen) eine NOP-Anweisung („No Operation“, keine Operation) sein, die Codieren unterschiedlicher Optionen ermöglicht.
-
Beispiele solcher Optionen können wie folgt sein:
- - Eine Option ist, dass es keine Auswirkung auf die nächste Anweisung gibt.
- - Eine weitere Option ist, dass im Fall, dass die nächste Anweisung eine Speicheranweisung ist, die gespeicherte Adresse und der gespeicherte Wert über eine Verfolgungsschnittstelle einer CPU an eine Verfolgungseinheit (die auf einem Chip mit der CPU bereitgestellt sein kann) und weiter an, z. B., ein verfolgungsbasiertes Messwerkzeug ausgegeben werden.
- - Entsprechend werden, z. B., als eine weitere Option oder als ein Teil der oben für die Speicheranweisung beschriebenen Option, im Fall, dass die nächste Anweisung eine Ladeanweisung ist, die geladene Adresse und der geladene Wert in die Verfolgungseinheit eingespeist.
-
Diese Optionen können über einzelne Bits der NOP-Anweisung codiert werden. Wenn beispielsweise eine Anweisung 16 Bit hat, können 12 Bit verwendet werden, um die NOP-Anweisung zu identifizieren, und 4 Bit können nicht für die NOP-Anweisung verwendet werden. Diese 4 Bit können dann genutzt werden, um die Optionen zu codieren (4 Bit können verwendet werden, um 24=16 Optionen zu codieren). Dies ist vergleichbar mit 16 NOP-Anweisungen, die durch 12 Bit der 16 Bit identifiziert werden, wohingegen die übrigen Bits „DC“ (don't care, irrelevant) sind. Allerdings ist dies nur ein Beispiel; die Anweisung kann mehr oder weniger als 16 Bit haben, usw.
-
Daher wird, nach der RFE-Anweisung, die Verfolgungsausgabe für Ladeanweisungen und/oder Speicheranweisungen immer geliefert. Der Bandbreitenmehraufwand, der aus unerwünschten Verfolgungsnachrichten herrührt, ist begrenzt: Wenn es beispielsweise 10k Interrupts/Traps pro Sekunde gibt und durchschnittlich jede 10. Anweisung eine Lade- oder Speicheranweisung ist, gibt es 1k Ereignisse vom Typ „II-Anweisungen nach RFE-Anweisung“ pro Sekunde. Dies kann zu einer zusätzlichen Verfolgungsbandbreite führen, die sich auf weniger als 8 kByte/s belaufen kann, was unter Berücksichtigung eines Verwendungsfalls in der realen Welt vernachlässigbar sein kann.
-
In einem oder mehreren Beispielen können die hier beschriebenen Funktionen zumindest teilweise in Hardware umgesetzt sein, wie etwa in spezifischen Hardwarekomponenten oder einem Prozessor. Allgemeiner können die Techniken in Hardware, Prozessoren, Software, Firmware oder einer beliebigen Kombination daraus umgesetzt sein. Wenn in Software umgesetzt, können die Funktionen auf einem computerlesbaren Medium gespeichert oder darüber als eine oder mehrere Anweisungen übertragen werden und durch eine hardwarebasierte Verarbeitungseinheit ausgeführt werden. Computerlesbare Medien können computerlesbare Speichermedien umfassen, was einem greifbaren Medium entspricht, wie etwa einem Datenspeichermedium oder einem Kommunikationsmedium, umfassend jedes Medium, das Übertragung eines Computerprogramms von einem Platz zu einem anderen ermöglicht, z. B. entsprechend einem Kommunikationsprotokoll. Auf diese Weise können computerlesbare Medien im Allgemeinen (1) greifbaren computerlesbaren Speichermedien, die nicht flüchtig sind, oder (2) einem Kommunikationsmedium, wie etwa einem Signal oder einer Trägerwelle, entsprechen. Datenspeichermedien können alle verfügbaren Medien sein, auf die über einen oder mehrere Computer oder einen oder mehrere Prozessoren zugegriffen werden kann, um Anweisungen, Code und/oder Datenstrukturen zur Umsetzung der in dieser Offenbarung beschriebenen Techniken abzurufen. Ein Computerprogrammprodukt kann ein computerlesbares Medium umfassen.
-
Als Beispiel, und nicht als Einschränkung, können solche computerlesbaren Speichermedien RAM, ROM, EEPROM, CD-ROM oder andere optische Plattenspeicher, magnetische Plattenspeicher, Flash-Speicher oder jedes andere Medium umfassen, das verwendet werden kann, um gewünschten Programmcode in der Form von Anweisungen oder Datenstrukturen zu speichern und auf das durch einen Computer zugegriffen werden kann. Außerdem wird jede Verbindung korrekt als computerlesbares Medium bezeichnet, d. h. als ein computerlesbares Übertragungsmedium. Wenn beispielsweise Anweisungen von einer Website, einem Server oder einer anderen externen Quelle unter Verwendung eines Koaxialkabels, eines faseroptischen Kabels, eines verdrillten Paares, per DSL (Digital Subscriber Line) oder über drahtlose Technologien, wie etwa Infrarot, Funk und Mikrowelle übertragen werden, sind das Koaxialkabel, das faseroptische Kabel, das verdrillte Paar, DSL oder drahtlose Technologien, wie etwa Infrarot, Funk und Mikrowelle, in der Definition von Medium enthalten. Es versteht sich allerdings, dass computerlesbare Speichermedien und Datenspeichermedien keine Verbindungen, Trägerwellen, Signale oder andere transiente Medien umfassen, sondern stattdessen auf nicht-transiente, greifbare Speichermedien gerichtet sind. Disk und Disc, wie hier verwendet, umfassen Compact Disc (CD), Laser Disc, optische Platte (Disc), Digital Versatile Disc (DVD), Floppy-Disk und Blu-ray Disc, wobei Disks Daten üblicherweise magnetisch reproduzieren, während Discs Daten optisch mit Laser reproduzieren. Kombinationen des oben genannten sollen auch im Umfang von computerlesbaren Medien enthalten sein.
-
Anweisungen können durch einen oder mehrere Prozessoren ausgeführt werden, wie etwa eine oder mehrere zentrale Verarbeitungseinheiten (CPU), Digitalsignalprozessoren (DSPs), universelle Mikroprozessoren, anwendungsspezifische integrierte Schaltungen (ASICs), feldprogrammierbare Logikarrays (FPGAs) oder andere äquivalente integrierte oder diskrete Logikschaltungsanordnungen. Entsprechend kann sich der Begriff „Prozessor“, wie hier verwendet, auf eine beliebige der vorgenannten Strukturen oder jede andere Struktur beziehen, die für eine Umsetzung der hier beschriebenen Techniken geeignet ist. Zusätzlich kann, in gewisser Hinsicht, die hier beschriebene Funktionalität innerhalb dedizierter Hardware- und/oder Softwaremodule, die zum Codieren und Decodieren ausgelegt sind, bereitgestellt sein oder kann in einen kombinierten Codec integriert sein. Außerdem können die Techniken vollständig in einer oder mehreren Schaltungen oder Logikelementen umgesetzt sein.
-
Die Techniken dieser Offenbarung können in einer breiten Vielfalt von Vorrichtungen und Einrichtungen umgesetzt sein, umfassend ein drahtloses Handset, eine integrierte Schaltung (IC) oder eine Menge von ICs (z. B. einen Chipsatz). Verschiedene Komponenten, Module oder Einheiten werden in dieser Offenbarung beschrieben, um funktionale Aspekte von Vorrichtungen hervorzuheben, die dazu ausgelegt sind, die offenbarten Techniken durchzuführen, die aber nicht notwendigerweise eine Umsetzung durch unterschiedliche Hardwareeinheiten erfordern. Stattdessen können, wie oben beschrieben, verschiedene Einheiten zu einer einzelnen Hardwareeinheit kombiniert werden oder durch eine Sammlung von zusammenwirkenden Hardwareeinheiten, umfassend einen oder mehrere Prozessoren, wie oben beschrieben, in Verbindung mit geeigneter Software und/oder Firmware bereitgestellt werden.
-
Obwohl verschiedene beispielhafte Ausführungsformen der Erfindung offenbart wurden, versteht es sich für Fachleute, dass verschiedene Änderungen und Modifizierungen vorgenommen werden können, die einige der Vorteile der Erfindung erreichen, ohne vom Geist und Schutzumfang der Erfindung abzuweichen. Für hinreichend geschulte Fachleute ist es offensichtlich, dass andere Komponenten, die die gleiche Funktion erfüllen, in geeigneter Weise ersetzt werden können. Es ist anzumerken, dass Merkmale, die Bezug nehmend auf eine spezifische Figur erläutert wurden, mit Merkmalen von anderen Figuren kombiniert werden können, selbst in Fällen, in denen dies nicht ausdrücklich erwähnt wurde. Ferner können die Verfahren der Erfindung in entweder allen Softwareumsetzungen, unter Verwendung der geeigneten Prozessoranweisungen, oder in hybriden Umsetzungen, die eine Kombination von Hardwarelogik und Softwarelogik zum Erreichen der gleichen Ergebnisse nutzen, erreicht werden. Solche Modifikationen am erfindungsgemäßen Konzept solchen durch die beigefügten Ansprüche abgedeckt sein.