DE112017006454T5 - Computervorrichtung, Aufgabeneinleitungsverfahren und Aufgabeneinleitungsprogramm - Google Patents

Computervorrichtung, Aufgabeneinleitungsverfahren und Aufgabeneinleitungsprogramm Download PDF

Info

Publication number
DE112017006454T5
DE112017006454T5 DE112017006454.6T DE112017006454T DE112017006454T5 DE 112017006454 T5 DE112017006454 T5 DE 112017006454T5 DE 112017006454 T DE112017006454 T DE 112017006454T DE 112017006454 T5 DE112017006454 T5 DE 112017006454T5
Authority
DE
Germany
Prior art keywords
interrupt
task
flag
dependent
unit
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.)
Granted
Application number
DE112017006454.6T
Other languages
English (en)
Other versions
DE112017006454B4 (de
Inventor
Chisato Sato
Yoshiaki Katayama
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112017006454T5 publication Critical patent/DE112017006454T5/de
Application granted granted Critical
Publication of DE112017006454B4 publication Critical patent/DE112017006454B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4825Interrupt from clock, e.g. time of day
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

Eine Computervorrichtung (100) umfasst eine OS-Ausführungseinheit (120), eine OS-abhängige Interrupt-Verarbeitungseinheit (110) und eine OS-unabhängige Interrupt-Verarbeitungseinheit (130). Wenn ein OS-unabhängiges Interrupt (201) aufgrund eines Zustandes eines Geräts (200) auftritt, bestimmt die OS-unabhängige Interrupt-Verarbeitungseinheit (130), ob oder ob nicht eine Aufgabe (145) eingeleitet werden soll. Wenn die Aufgabe (145) eingeleitet werden soll, aktiviert die OS-unabhängige Interrupt-Verarbeitungseinheit (130) das Flag (141) und veranlasst, dass die OS-Ausführungseinheit (120) ein OS-abhängiges Interrupt (202) erzeugt. Wenn das OS-abhängige Interrupt (202) erzeugt wird, bestimmt die OS-abhängige Interrupt-Verarbeitungseinheit (110), ob ober ob nicht das Flag (141) aktiviert ist, und, wenn das Flag (141) aktiviert ist, leitet die Aufgabe (145) ein und deaktiviert das Flag (141).

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft eine Computervorrichtung, ein Aufgabeneinleitungsprogramm und ein Aufgabeneinleitungsverfahren.
  • Hintergrund zum Stand der Technik
  • Nichtpatentliteratur 1 offenbart ein Computersystem unter Verwendung eines Echtzeit-Betriebssystems (OS = Operating System) für eingebettete Geräte. Das Computersystem der Nichtpatentliteratur 1 hat zwei Arten von Interrupt-Behandlern: einen Kernel-verwalteten Interrupt-Behandler, der vom OS abhängig ist, und einen nicht-Kernel-verwalteten Interrupt-Behandler, welcher vom OS unabhängig ist. Der Kernel-verwaltete Interrupt-Behandler wird auch als OS-abhängiger Interrupt-Behandler bezeichnet. Der nicht-Kernel-verwaltete Interrupt-Behandler wird auch als OS-unabhängiger Interrupt-Behandler bezeichnet.
  • Der OS-abhängige Interrupt-Behandler kann innerhalb des OS-abhängigen Interrupt-Behandlers einen OS-Dienstaufruf ausgeben. Ein während der Verarbeitung des Dienstaufrufs erzeugtes OS-abhängiges Interrupt wird allerdings so lange verzögert, bis das OS-abhängige Interrupt akzeptiert werden kann.
  • Der OS-unabhängige Interrupt-Behandler kann innerhalb des OS-unabhängigen Interrupt-Behandlers einen OS-Dienstaufruf ausgeben. Ein OS-unabhängiges Interrupt, das während der Verarbeitung eines Dienstaufrufs erzeugt wird, kann jedoch auch in einem Abschnitt akzeptiert werden, in dem OS-abhängige Interrupte nicht akzeptiert werden können.
  • Referenzliste
  • Patentliteratur
  • Patentliteratur 1: JP 2001-092676 A
  • Nicht-Patentliteratur
    • Nicht-Patentliteratur 1: M3T-MR30/4 V.4.01 Benutzerhandbuch (3.6 Interrupts)
    • Nicht-Patentliteratur 2: Mitsubishi Electric Technical Report, Februar 2003, „Third-Generation Mobile Phone Technology“ (Leitartikel: Basic Software for W-CDMA Portable Devices)
  • Zusammenfassung der Erfindung
  • Technisches Problem
  • In kleinen eingebetteten Geräten, wie elektrischen Haushaltsgeräten und Motorsteuerungen, ist es notwendig, ein OS-unabhängiges Interrupt zu verwenden, wenn eine Verzögerung eines Interrupts als eine Folge der Verwendung eines OS-abhängigen Interrupts nicht toleriert werden kann.
  • Dementsprechend gibt es eine Technik, bei der ein OS-unabhängiger Interrupt-Behandler einen Prozess einer durch das OS verwalteten Aufgabe über einen OS-abhängigen Interrupt-Behandler einleitet. Insbesondere gibt es, wie in Patentliteratur 1, eine Technik, bei der ein mit einem periodischen Timer-Interrupt erzeugter OS-abhängiges Interrupt verwendet wird, um den Zustand eines zu aktualisierenden Flags zu überwachen, wenn eine Aufgabe durch ein OS-unabhängiges Interrupt eingeleitet werden soll, um die Aufgabe bei Bedarf einzuleiten.
  • Mit der Technik der Patentliteratur 1 müssen jedoch OS-abhängige Interrupte regelmäßig erzeugt werden, auch wenn das Flag nicht gesetzt ist, d.h. auch wenn es nicht notwendig ist, die Aufgabe einzuleiten. Daher wird die Auslastung einer zentralen Verarbeitungseinheit (CPU) verschwendet.
    Da OS-abhängige Interrupte immer periodisch erzeugt werden müssen, kann außerdem ein in Nichtpatentliteratur 2 offenbartes Tickless-Timer-Verfahren nicht eingesetzt werden, und der Energieverbrauch einer Computervorrichtung wird verschwendet. Das Tickless-Timer-Verfahren ist ein Verfahren, bei dem Systemuhr-Interrupte nur bei Bedarf erzeugt werden können.
  • Es ist ein Gegenstand der vorliegenden Erfindung, das Tickless-Timer-Verfahren als ein Zeitverwaltungsverfahren des OS zu übernehmen und eine durch das OS verwaltete Aufgabe von einem OS-abhängigen Interrupt-Behandler über einen nicht-periodischen OS-abhängigen Interrupt-Behandler einzuleiten.
  • Lösung des Problems
  • Eine Computervorrichtung gemäß der vorliegenden Erfindung ist mit einem Gerät verbunden und umfasst eine OS-Ausführungseinheit, um ein Betriebssystem (OS) auszuführen und ein OS-abhängiges Interrupt zu erzeugen, wobei die Computervorrichtung umfasst:
    • eine Speichereinheit, um ein Flag zu speichern;
    • eine OS-unabhängige Interruptverarbeitungseinheit, um, wenn ein OS-unabhängiges Interrupt aufgrund eines Zustandes de Geräts auftritt, zu bestimmen, ob oder ob nicht eine Aufgabe eingeleitet werden soll, und wenn die Aufgabe eingeleitet werden soll, das Flag zu aktivieren und die OS-Ausführungseinheit zu veranlassen, das OS-abhängige Interrupt zu erzeugen; und
    • eine OS-abhängige Interrupt-Verarbeitungseinheit, um, wenn das OS-abhängige Interrupt durch die OS-Ausführungseinheit erzeugt wird, zu bestimmen, ob ober ob nicht das Flag aktiviert ist, und wenn das Flag aktiviert ist, die Aufgabe einzuleiten und das Flag zu deaktivieren.
  • Vorteilhafte Wirkungen der Erfindung
  • In einer Computervorrichtung gemäß der vorliegenden Erfindung, wenn ein OS-unabhängiges Interrupt auftritt, bestimmt eine OS-unabhängige Interrupt-Verarbeitungseinheit, ob oder ob nicht eine Aufgabe eingeleitet werden soll, und, wenn die Aufgabe eingeleitet werden soll, das Flag aktiviert und eine OS-Ausführungseinheit veranlasst, das OS-abhängige Interrupt zu erzeugen. Wenn das OS-abhängige Interrupt erzeugt wird, um, bestimmt eine OS-abhängige Interrupt-Verarbeitungseinheit, ob ober ob nicht das Flag aktiviert ist, und wenn das Flag aktiviert ist, die Aufgabe einzuleiten und das Flag zu deaktivieren. Daher ist es gemäß der Computervorrichtung der vorliegenden Erfindung möglich, beim Auftreten eines OS-unabhängigen Interrupts ein OS-abhängiges Interrupt unregelmäßig zu erzeugen und eine Aufgabe durch die OS-abhängige Interrupt-Verarbeitungseinheit einzuleiten. Dadurch kann die CPU-Auslastung verbessert und Energieverbrauch reduziert werden.
  • Figurenliste
    • 1 ist ein Konfigurationsdiagramm einer Computervorrichtung 100 gemäß einer ersten Ausführungsform;
    • 2 ist eine beispielhafte Konfiguration einer Anordnung eines Flags 141 gemäß der ersten Ausführungsform;
    • 3 ist ein Diagramm einer Korrespondenz zwischen Elementnummern und Flagwerten des Flags 141 gemäß der ersten Ausführungsform;
    • 4 ist ein Flussdiagramm, darstellend einen Aufgabeneinleitungsprozess S100 eines Aufgabeneinleitungsverfahrens 510 und ein Aufgabeneinleitungsprogramm 520 der Computervorrichtung 100 gemäß der ersten Ausführungsform;
    • 5 ist ein Flussdiagramm, darstellend einen OS-abhängigen Interrupt-Prozess S10 gemäß der ersten Ausführungsform;
    • 6 ist ein Flussdiagramm, darstellend einen OS-unabhängigen Interrupt-Prozess S20 gemäß der ersten Ausführungsform;
    • 7 ist ein Diagramm, darstellend einen Interrupt-Auftretenszeitpunkt, der in einem bestimmten Beispiel des OS-abhängigen Interrupt-Prozesses S10 gemäß der ersten Ausführungsform angenommen wird;
    • 8 ist ein Diagramm, darstellend eine Timeout-Warteschlange und Aufgabenverwaltungsinformationen, die 7 entsprechen;
    • 9 ist ein Diagramm, darstellend ein bestimmtes Beispiel des OS-abhängigen Interrupt-Prozesses, in dem Fall, in dem nur ein OS-abhängiges Interrupt auftritt;
    • 10 ist ein Diagramm, darstellend ein bestimmtes Beispiel des OS-abhängigen Interrupt-Prozesses, in dem Fall, in dem ein OS-abhängiges Interrupt zu einem Zeitpunkt T1 auftritt, der 3 ms nach dem Startpunkt einer dem im Prozess in 9 gezeigten Zeitdauer liegt;
    • 11 ist ein Konfigurationsdiagramm einer Computervorrichtung 100 gemäß einem Modifikationsbeispiel einer ersten Ausführungsform;
  • Beschreibung der Ausführungsformen
  • Eine Ausführungsform der vorliegenden Erfindung wird nachfolgend unter Bezugnahme auf die Zeichnungen erläutert. In den Zeichnungen sind gleiche oder entsprechende Teile durch die gleichen Bezugszeichen bezeichnet. In der Beschreibung der Ausführungsform wird auf die Beschreibung gleicher oder entsprechender Teile verzichtet oder diese gegebenenfalls vereinfacht.
  • Erste Ausführungsform
  • Beschreibung der Konfiguration
  • Eine Konfiguration einer Computervorrichtung 100 gemäß dieser Ausführungsform wird unter Bezugnahme auf 1 erläutert;
  • Die Computervorrichtung 100 ist mit einem Gerät 200 verbunden. Das Gerät 200 erzeugt ein OS-unabhängiges Interrupt 201 aufgrund eines Zustands des Geräts 200. Insbesondere ist das Gerät 200 ein Motor 210 oder ein Sensor 220. Das Gerät 200, wie beispielsweise der Motor 210 oder der Sensor 220, erzeugt als das OS-unabhängige Interrupt 201 ein Interrupt aufgrund einer Zustandsänderung, umfassend den Abschluss eines Betriebs oder einen Fehler. Anstatt das Gerät 200 das OS-unabhängige Interrupt 201 erzeugen zu lassen, kann die Computervorrichtung 100 einen Timer verwenden, um OS-unabhängige Interrupte periodisch zu erzeugen, um Änderungen im Zustand des Geräts 200 zu überwachen.
  • Wie in 1 dargestellt, ist die Computervorrichtung 100 ein Computer.
  • Die Computervorrichtung 100 umfasst Hardware, wie beispielsweise einen Prozessor 910, eine Speichereinrichtung 920, eine Eingabe/AusgabeSchnittstelle 930, einen Interrupt-Timer 160 und einen Uhr-Timer 170. Die Speichereinrichtung 920 umfasst einen Speicher 921 und eine Hilfsspeichereinrichtung 922.
  • Die Computervorrichtung 100 umfasst, als funktionale Komponenten, eine OS-abhängige Interrupt-Verarbeitungseinheit 110, eine OS-abhängige Interrupt-Verarbeitungseinheit 130, eine OS-Ausführungseinheit 120 und eine Speichereinheit 140. Die OS-abhängige Interrupt-Verarbeitungseinheit 110 umfasst eine Aufgabeneinleitungsbestimmungseinheit 111, eine Systemzeitverwaltungseinheit 112, eine Timeout-Verarbeitungseinheit 113 und eine Timeout-Einstellungseinheit 114. Die OS-unabhängige Interrupt-Verarbeitungseinheit 130 umfasst eine Aufgabeneinleitungsanforderungseinheit 131, eine Timer-Einstellungseinheit 132.
  • Die OS-abhängige Interrupt-Verarbeitungseinheit 110 ist ein OS-abhängiger Interrupt-Behandler. Die OS-unabhängige Interrupt-Verarbeitungseinheit 130 ist ein OS-unabhängiger Interrupt-Behandler.
  • Die Aufgabeneinleitungsbestimmungseinheit 111, die Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113 und die Timeout-Einstellungseinheit 114 werden von der OS-abhängigen Interrupt-Verarbeitungseinheit 110, die der OS-abhängige Interrupt-Behandler ist, aufgerufen. Die Aufgabeneinleitungsbestimmungseinheit 131 und die Timer-Einstellungseinheit 132 werden durch die OS-unabhängige Interrupt-Verarbeitungseinheit 130, die der OS-unabhängige Interrupt-Behandler ist, aufgerufen.
  • Die Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 1290 sind durch Software realisiert.
  • Die Speichereinheit 140 ist durch den Speicher 921 und die Hilfsspeichereinrichtung 922 realisiert. Die Speichereinheit 140 kann auch nur durch den Speicher 921 oder nur durch die Hilfsspeichereinrichtung 922 realisiert sein. Die Speichereinheit 140 kann durch irgendein Verfahren realisiert sein. Ein Flag 141, eine vorherige Ausführungszeit Tp und eine Timeout-Warteschlange 143 sind im Speicher 921 gespeichert. Eine Restzeit 144 ist in der Timeout-Warteschlange 143 eingestellt. Eine Aufgabe 145 ist in der Hilfsspeichereinrichtung 922 gespeichert.
  • Der Prozessor 910 ist mit anderen Hardwarekomponenten mit Signalleitungen verbunden und steuert diese Hardwarekomponenten. Der Prozessor 910 ist eine integrierte Schaltung (IC), die eine arithmetische Verarbeitung durchführt. Der Prozessor 910 ist eine zentrale Verarbeitungseinheit (CPU) oder eine Mikroprozessoreinheit (MPU).
  • Insbesondere ist die Hilfsspeichereinrichtung 922 ein Nur-LeseSpeicher (ROM), ein Flash-Speicher oder eine Festplatte (HDD). Insbesondere ist der Speicher 921 ein Direktzugriffsspeicher (RAM).
  • Die Eingabe/Ausgabe-Schnittstelle 930 funktioniert als eine Eingabeschnittstelle und funktioniert auch als eine Ausgabeschnittstelle. Beim Funktionieren als die Eingabeschnittstelle, ist die Eingabe/AusgabeSchnittstelle 930 ein Port, der mit einer Eingabeeinrichtung, wie beispielsweise einer Maus, einer Tastatur oder einem Berührungsfeld, verbunden ist. Insbesondere ist die Eingabe/Ausgabe-Schnittstelle 930 ein Universal-Serial-Bus-(USB)-Anschluss. Die Eingabe/Ausgabe-Schnittstelle 930 kann auch ein Port sein, der mit einem lokalen Netzwerk (LAN) verbunden ist. Die Eingabe/Ausgabe-Schnittstelle 930 ist mit dem Gerät 200 verbunden und akzeptiert das OS-unabhängige Interrupt 201 vom Gerät 200.
  • Beim Funktionieren als die Eingabeschnittstelle, ist die Eingabe/AusgabeSchnittstelle 930 ein Port, mit dem ein Kabel einer Anzeigeeinrichtung, wie eine Anzeige, verbunden ist. Insbesondere ist die Ausgabeschnittstelle ein USB-Anschluss oder ein High-Definition-Multimedia-Interface-(HDMI)-(eingetragene Marke)-Anschluss. Insbesondere ist die Anzeige eine Flüssigkristallanzeige (LCD).
  • Die Hilfsspeichereinrichtung 922 speichert ein Programm zum Realisieren der Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, der Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120. Das Programm zum Realisieren der Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, der Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 wird auch als ein Aufgabeneinleitungsprogramm 520 bezeichnet. Dieses Programm wird in den Speicher 921 geladen, durch den Prozessor 910 gelesen und durch den Prozessor 910 ausgeführt. Die Hilfsspeichereinrichtung 922 speichert auch ein OS. Zumindest ein Teil des OS ist in den Speicher 921 geladen. Dann führt der Prozessor 910 das Aufgabeneinleitungsprogramm 520 während des Ausführens des OS aus. Die Aufgabe 145 wird durch einen Serviceaufruf eingeleitet, den das OS bereitstellt, unter Verwendung des Interrupt-Timers 160.
  • Die Computervorrichtung 100 kann nur einen Prozessor 910 umfassen, oder kann eine Vielzahl von Prozessoren 910 umfassen. Die Vielzahl von Prozessoren 910 können zusammenwirken, um das Programm zum Realisieren der Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, der Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 auszuführen.
  • Informationen, Daten, Signalwerte und Variablenwerte, anzeigend Ergebnisse der Verarbeitung durch die Aufgabeneinleitungsbestimmungseinheit 111, die Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, die Timeout-Einstellungseinheit 114, die Aufgabeneinleitungsanforderungseinheit 131, die Timer-Einstellungseinheit 132 und die OS-Ausführungseinheit 910, sind in der Hilfsspeichereinrichtung 922 und dem Speicher 921 der Computervorrichtung 100 oder in einem Register oder Cache-Speicher im Prozessor 910 gespeichert.
  • Das Programm zum Realisieren der Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, der Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 können in einem tragbaren Aufzeichnungsmedium, wie einer magnetischen Platte, einer flexiblen Platte, einer optischen Platte, einer Compact Disk, einer Blu-ray-(eingetragene Marke)-Disc und einer Digitalen Versatilen Disc (DVD) gespeichert sein.
  • Es ist zu beachten, dass ein Aufgabeneinleitungsprogrammprodukt ein Speichermedium oder eine Speichereinrichtung ist, in der das Aufgabeneinleitungsprogramm 520 aufgezeichnet ist. Das Aufgabeneinleitungsprogrammprodukt bezieht sich auf ein Objekt, in das ein computerlesbares Programm geladen wurde, unabhängig vom Aussehen.
  • Beschreibung funktionaler Komponenten
  • Die funktionalen Komponenten in 1 werden nun erläutert.
  • Die OS-Ausführungseinheit 120 verwaltet die Ausführung der Aufgabe 145 in der Computervorrichtung 100. Die OS-Ausführungseinheit 120 stellt auch eine Funktion des Einleitens der Aufgabe 145 in der Computervorrichtung 100 bereit.
  • Das Gerät 200 erzeugt ein OS-unabhängiges Interrupt 201 aufgrund einer Zustandsänderung, umfassend den Abschluss eines Betriebs oder einen Fehler.
  • Der Interrupt-Timer 160 wird verwendet, um die OS-Ausführungseinheit 120 zu veranlassen, ein OS-abhängiges Interrupt 202 zu erzeugen. Das heißt, das OS-abhängige Interrupt 202 wird durch die Funktion des Interrupt-Timers 160 erzeugt. Der Interrupt-Timer 160 wird auch als ein Systemuhr-Interrupt-Timer bezeichnet.
  • Der Uhr-Timer 170 ist ein Timer zum Nachverfolgen der Systemzeit. Der Uhr-Timer 170 wird auch als ein Systemzeit-Uhr-Timer bezeichnet. Insbesondere ist der Uhr-Timer 170 ein Timer unter Verwendung einer freilaufenden Timerfunktion.
  • Wenn das OS-unabhängige Interrupt 201 aufgrund eines Zustandes des Geräts 200 auftritt, bestimmt die Aufgabeneinleitungsanforderungseinheit 131, ob oder ob nicht eine Aufgabe 145 eingeleitet werden soll. Wenn die Aufgabe 145 eingeleitet werden soll, aktiviert die Aufgabeneinleitungsanforderungseinheit 131 das Flag 141 und veranlasst die OS-Ausführungseinheit 120, ein OS-abhängiges Interrupt 202 zu erzeugen. Die Aufgabe 145 ist irgendeine durch das OS verwaltete Aufgabe. Aktivieren des Flags 141 bedeutet Setzen des Flags, insbesondere Setzen seines Wertes auf „1“.
    Das Flag 141 ist mit einer Datenstruktur konfiguriert, die das Bestimmen eines entsprechenden Geräts 200 ermöglicht, wenn das Flag 141 durch die Aufgabeneinleitungsanforderungseinheit 131 gesetzt ist. Die Datenstruktur des Flags 141 ermöglicht auch das Bestimmen einer einzuleitenden Aufgabe 145, wenn es eine Vielzahl von Aufgaben 145 gibt. Es kann eine Vielzahl von Flags 141 vorhanden sein. Das Flag 141 wird auch als ein Meldungsanforderungsflag bezeichnet.
  • Eine exemplarische Konfiguration einer Anordnung des Flags 141 gemäß dieser Ausführungsform wird unter Bezugnahme auf 2 beschrieben. Wie in 2 dargestellt, sind in dem Flag 141 eine Elementnummer und ein Flagwert einander zugeordnet. Es ist zu beachten, dass eine Elementnummer einem Gerät im Voraus zugeordnet wird. Wenn Aufgabeneinleitung für ein Gerät erforderlich ist, wird der Flagwert der Elementnummer entsprechend dem Gerät auf „1“ gesetzt.
  • 3 ist ein Diagramm, darstellend eine Korrespondenz zwischen Elementnummern und Flagwerten des Flag 141 gemäß dieser Ausführungsform; Wie in 3 dargestellt, wenn der Flagwert entsprechend einer Elementnummer „0“ ist, bedeutet dies, dass eine Meldungsanforderung für das der Elementnummer zugeordnete Gerät nicht vorliegt. Wenn der Flagwert entsprechend einer Elementnummer „1“ ist, bedeutet dies, dass eine Meldungsanforderung für das der Elementnummer zugeordnete Gerät vorliegt.
  • Die Konfiguration des Flags 141, wie vorstehend beschrieben, ermöglicht es der Aufgabeneinleitungsbestimmungseinheit 111, ein Gerät zu identifizieren, auf die sich die Benachrichtigungsanforderung bezieht, und eine geeignete Aufgabe einzuleiten.
  • Die Timer-Einstellungseinheit 132 veranlasst die OS-Ausführungseinheit 120, ein OS-abhängiges Interrupt 202 zu erzeugen durch Einstellen eines Zählerwerts im Interrupt-Timer 160. Insbesondere stellt die Timer-Einstellungseinheit 132 im Interrupt-Timer 160 als den Zählerwert einen Wert, der veranlasst, dass der Zählerwert sofort 0 wird, wie z.B. 0 ms, 1 ms oder 0,5 ms.
  • Die OS-Ausführungseinheit 120 erzeugt das OS-abhängige Interrupt 202 unter Verwendung des Interrupt-Timers 160. Insbesondere erzeugt die OS-Ausführungseinheit 120 das OS-abhängige Interrupt 202, wenn der Zählerwert des Interrupt-Timers 160 0 wird.
  • Wenn das OS-abhängige Interrupt 202 durch die OS-Ausführungseinheit 120 erzeugt wird, bestimmt die Aufgabeneinleitungsbestimmungseinheit 111, ob ober ob nicht das Flag (141) aktiviert ist. Wenn das Flag 141 aktiviert ist, leitet die Aufgabeneinleitungsbestimmungseinheit 111 die Aufgabe 145 ein und deaktiviert das Flag 141. Deaktivieren des Flags 141 bedeutet Herabsetzen des Flags, insbesondere Setzen seines Wertes auf „0“. Das heißt, basierend auf dem Zustand des Flags 141, leitet die Aufgabeneinleitungsbestimmungseinheit 111 die Aufgabe 145 ein und deaktiviert das Flag 141. Insbesondere ist „0“ im Flag 141 gesetzt.
  • Die Systemzeitverwaltungseinheit 112 berechnet eine abgelaufene Zeit basierend auf der aktuellen Zeit, die die aktuelle Systemzeit ist, die vom Uhr-Timer 170 erhalten wurde, und der vorherigen Ausführungszeit Tp, die die zuletzt erhaltene Systemzeit ist.
  • Die Timeout-Verarbeitungseinheit 113 führt einen Timeout-Prozess einer Aufgabe oder eines Timer-Ereignis-Behandlers durch. Die Computervorrichtung 100 umfasst eine Timeout-Warteschlange 143, die die Restzeit 144 der Aufgabe oder den Timer-Ereignis-Behandler verwaltet. Die Timeout-Verarbeitungseinheit 113 setzt die Restzeit 144 der Tiemout-Warteschlange 143 zurück, basierend auf der vorherigen Ausführungszeit Tp, zu der die Aufgabe zuletzt eingeleitet wurde, und der aktuellen Zeit. Insbesondere ist der Timer-Ereignis-Behandler ein Behandler, wie ein zyklischer Behandler oder ein Alarm-Behandler, in einem Echtzeit-OS basierend auf der µlTRON-Spezifikation.
  • Die Timeout-Einstellungseinheit 114 verwaltet eine Timeout-Warteschlange einer Aufgabe oder einen Timer-Ereignis-Behandler. Nachfolgend bedeutet die Timeout-Warteschlange 143 die Timeout-Warteschlange der Aufgabe oder die Timer-Ereignis-Behandler-Warteschlange. Die Timeout-Einstellungseinheit 114 berechnet eine nächste Interruptzeit, um das OS-abhängige Interrupt 202 zu erzeugen und stellt einen Zählerwert im Interrupt-Timer 160 ein, um das OS-abhängige Interrupt 202 zur nächsten Interruptzeit zu erzeugen.
  • Beschreibung des Betriebs
  • 4 ist ein Flussdiagramm, darstellend einen Aufgabeneinleitungsprozess S100 eines Aufgabeneinleitungsverfahrens 510 und das Aufgabeneinleitungsprogramm 520 der Computervorrichtung 100 gemäß dieser Ausführungsform. Das Aufgabeneinleitungsprogramm 520 veranlasst die Computervorrichtung 100, welche ein Computer ist, jeden nachfolgend zu erläuternden Prozess auszuführen.
  • Der Aufgabeneinleitungsprozess S100 umfasst einen OS-abhängigen Interrupt-Prozess S10 und einen OS-unabhängigen Interrupt-Prozess S20.
  • In Schritt S1, falls das OS-abhängige Interrupt 202 aufgetreten ist, geht die Computervorrichtung 100 weiter zum OS-abhängigen Interrupt-Prozess S10. Falls das OS-abhängige Interrupt 201 aufgetreten ist, geht die Computervorrichtung 100 weiter zum OS-unabhängigen Interrupt-Prozess S20. Falls kein Interrupt aufgetreten ist, wiederholt die Computervorrichtung 100 Schritt S1.
  • OS-abhängiger Interrupt-Prozess S10
  • 5 ist ein Flussdiagramm, darstellend einen OS-unabhängigen Interrupt-Prozess S10 gemäß dieser Ausführungsform;
  • Der OS-abhängige Interrupt-Prozess S10 wird gestartet, wenn das OS-abhängige Interrupt 202 durch den Interrupt-Timer 160 der Systemuhr veranlasst wird, aufzutreten. Wenn das OS-abhängige Interrupt 202 durch den Interrupt-Timer 160 veranlasst wird, aufzutreten, wird der OS-abhängige Interrupt-Behandler durch die Interrupt-Funktion der OS-Ausführungseinheit 120 des Prozessors 910 eingeleitet. Dann ruft der OS-abhängige Interrupt-Behandler die Aufgabeneinleitungsbestimmungseinheit 111 auf.
  • In dem OS-abhängigen Interrupt-Prozess 510, wenn das OS-abhängige Interrupt 202 durch die OS-Ausführungseinheit 120 erzeugt wird, bestimmt die OS-abhängige Interrupt-Verarbeitungseinheit 110, ob oder ob nicht das Flag 141 aktiviert ist. Falls das Flag 141 aktiviert ist, leitet die OS-abhängige Interrupt-Verarbeitungseinheit 110 die Aufgabe 145 ein und deaktiviert das Flag 141.
  • In Schritt S11 bestimmt die Aufgabeneinleitungsbestimmungseinheit 111, ob oder ob nicht das Flag 141 gesetzt ist. Falls das Flag 141 gesetzt ist, geht der Prozess weiter zu Schritt S12. Falls das Flag 141 deaktiviert ist, geht der Prozess weiter zu Schritt S13.
  • In Schritt S12 leitet die Aufgabeneinleitungsbestimmungseinheit 111 die auszuführende Aufgabe 145 unter Verwendung eines durch das OS bereitgestellten Dienstaufrufs ein und deaktiviert das Flag 141. Der Prozess geht weiter zu Schritt S13, der durch die Systemzeitverwaltungseinheit 112 ausgeführt wird.
  • Als nächstes erhält die Systemzeitverwaltungseinheit 112 in Schritt S13 die aktuelle Systemzeit als eine Ausführungszeit Tn vom Uhr-Timer 170 der Systemzeit.
  • In Schritt S14 erhält die Systemzeitverwaltungseinheit 112 die vorherige Ausführungszeit Typ, die in der Speichereinheit 140 zuvor gespeichert wurde, wenn die das vorherige Interrupt aufgetreten ist. Die Systemzeitverwaltungseinheit 112 vergleicht die vorherige Ausführungszeit Tp mit der Ausführungszeit Tn und berechnet eine abgelaufene Zeit Tk von der vorherigen Ausführungszeit Tp bis zur Ausführungszeit Tn. Die vorherige Ausführungszeit Tp hat einen Anfangswert von 0. Der Prozess geht weiter zu Schritt S15, der durch die Timeout-Verarbeitungseinheit 113 ausgeführt wird.
  • In Schritt S15 führt die Timeout-Verarbeitungseinheit 113 den Timeout-Prozess der Aufgabe oder den Alarm-Behandler basierend auf der abgelaufenen Zeit Tk, die durch die Systemzeitverwaltungseinheit 112 berechnet wurde, durch. Ein spezifisches Beispiel des Timeout-Prozesses wird später erläutert. Der Prozess geht weiter zu Schritt S16, der durch die Timeout-Einstellungseinheit 114 ausgeführt wird.
  • In Schritt S16 speichert die Timeout-Einstellungseinheit 114 die Ausführungszeit Tn, die durch die Systemzeitverwaltungseinheit 112 erhalten wurde, in der Speichereinheit 140 als die vorherige Ausführungszeit Tp.
  • Dann überprüft die Timeout-Einstellungseinheit 114 in Schritt S17 die im Kopfelement jeder Timeout-Warteschlange 143 eingestellte Restzeit 144 und bestimmt eine nächste Interruptzeit Tf basierend auf der kleinsten Restzeit 144.
  • Schließlich stellt die Timeout-Einstellungseinheit 114 in Schritt S18 den Zählerwert des Interrupt-Timers 160 so ein, dass ein Interrupt des Interrupt-Timers 160 der Systemuhr zur nächsten Interruptzeit Tf auftritt.
  • Damit ist der OS-abhängige Interrupt-Prozess S10 abgeschlossen.
  • OS-unabhängiger Interrupt-Prozess S20
  • 6 ist ein Flussdiagramm, darstellend einen OS-unabhängigen Interrupt-Prozess S20 gemäß dieser Ausführungsform;
  • In einem Aufgabeneinleitungsanforderungsprozess S21 wird der OS-unabhängige Interrupt-Behandler eingeleitet, wenn das OS-unabhängige Interrupt 201 vom Gerät 200 auftritt. Dann ruft der OS-abhängige Interrupt-Behandler die Aufgabeneinleitungsanforderungseinheit 131 auf.
  • Im OS-unabhängigen Interrupt-Prozess S20 bestimmt die OS-unabhängige Interrupt-Verarbeitungseinheit 130 beim Auftreten des OS-unabhängigen Interrupts 201 aufgrund des Zustands des Geräts 200, ob die Aufgabe 145 eingeleitet werden soll oder nicht. Falls die Aufgabe (145) eingeleitet werden soll, aktiviert die OS-unabhängige Interrupt-Verarbeitungseinheit 130 das Flag (141) und veranlasst die OS-Ausführungseinheit 120, ein OS-abhängiges Interrupt 202 zu erzeugen.
  • In Schritt S21 bestimmt die Aufgabeneinleitungsanforderungseinheit 131, ob die Aufgabe 145 eingeleitet werden muss oder nicht. Die Aufgabeneinleitungsanforderungseinheit 131 kann bestimmen, ob die Aufgabe 145 eingeleitet werden muss oder nicht, basierend auf irgendeiner Bedingung. Falls die Aufgabe 145 eingeleitet werden muss, geht der Prozess weiter zu Schritt S22. Falls die Aufgabe 145 nicht eingeleitet werden muss, endet der Prozess.
  • In Schritt S22 setzt die Aufgabeneinleitungsanforderungseinheit 131 das Flag 141. Der Prozess geht weiter zu Schritt S23, der durch die Timer-Einstellungseinheit 132 ausgeführt wird.
  • Schließlich stellt die Timeout-Einstellungseinheit 132 in Schritt S23 den Zählerwert des Interrupt-Timers 160 so ein, dass das OS-abhängige Interrupt 202 sofort auftritt. Insbesondere stellt die Timer-Einstellungseinheit 132 den Interrupt-Timer 160 auf einen Zählerwert, wie 0 ms, 1 ms oder 2 ms, ein, so dass das OS-abhängige Interrupt 202 sofort auftritt.
  • Damit ist der OS-unabhängige Interrupt-Behandler-Prozess S20 abgeschlossen.
  • Es ist zu beachten, dass der Zählerwert des Interrupt-Timers 160, der durch die Timer-Einstellungseinheit 132 eingestellt wurde, gemäß irgendeiner Bedingung dynamisch bestimmt werden kann. Insbesondere, wenn die abgelaufene Zeit seit dem letzten Überschreiben des Zählerwerts kurz ist, kann die Timer-Einstellungseinheit 132 einen großen Zählerwert gezielt einstellen. Alternativ kann die Timer-Einstellungseinheit 132 das Durchführen des Überschreibens des Zählerwerts weglassen. Eine solche Einstellung des Zählerwerts kann als Teil der Funktion der Timer-Einstellungseinheit 132 vorgesehen sein. Alternativ kann eine Verarbeitungseinheit zum Bestimmen, ob oder ob nicht ein Zählerwert bestimmt werden soll, die Einstellung des Zählerwerts durchführen. Alternativ kann eine Verarbeitungseinheit zum Bestimmen, ob oder ob nicht ein Zählerwert überschrieben werden soll, die Einstellung des Zählerwerts durchführen.
  • In dieser Ausführungsform bestimmt die Aufgabeneinleitungsbestimmungseinheit 111, ob eine Aufgabe im Prozess eines OS-abhängigen Interrupts, das in Verbindung mit einem Timer-Interrupt auftritt, eingeleitet werden muss oder nicht. Die Aufgabeneinleitungsbestimmungseinheit 111 kann jedoch bestimmen, ob oder ob nicht eine Aufgabe im Prozess eines Interrupts, das aufgrund eines anderen Faktors auftritt, eingeleitet werden muss oder nicht.
  • Ein bestimmtes Beispiel des OS-abhängigen Interrupt-Prozesses S10 durch die Computervorrichtung 100 gemäß dieser Ausführungsform wird nun unter Bezugnahme auf 7 bis 10 beschrieben.
  • 7 zeigt eine Interrupt-Auftretenszeit, welche in diesem bestimmten Beispiel angenommen wird. Es wird dargestellt, dass im Interrupt-Timer 160 eine Zeitdauer von 10 ms eingestellt ist, und das OS-unabhängige Interrupt 201 zu einem Zeitpunkt T1 auftritt, der 3 ms nach dem Startpunkt der Zeitdauer liegt. In 7 bis 10 ist das OS-abhängige Interrupt 202 als kernel_int bezeichnet und das OS-unabhängige Interrupt 201 als nonkernel-int bezeichnet.
  • 8 zeigt eine Timeout-Warteschlange und Aufgabenverwaltungsinformationen. Die Aufgabenverwaltungsinformationen sind als TCB (Task Control Block = Aufgabenkontrollblock) bezeichnet. Die Timeout-Warteschlange ist eine Information, in der TCBs in der Reihenfolge des Timeouts verkettet sind. Basierend auf der Restzeit der Timeout-Warteschlange bezieht sich das OS auf den Inhalt eines entsprechenden TCBs zu dem Zeitpunkt, der als angeforderte Ausführung der Aufgabe gesetzt ist, um den Prozess der Aufgabe auszuführen.
  • 9 ist ein Diagramm, darstellend ein bestimmtes Beispiel des OS-abhängigen Interrupt-Prozesses, in dem Fall, in dem nur ein OS-abhängiges Interrupt auftritt; Ein bestimmtes Beispiel des Prozesses von Schritt S15 bis Schritt S18 in 5 in dem Fall, in welchem nur ein OS-abhängiges Interrupt auftritt, wird unter Bezugnahme auf 9 beschrieben. Nachfolgend entsprechen (11) bis (13) den in 9 dargestellten (11) bis (13).
  • In Schritt S15 prüft die Timeout-Verarbeitungseinheit 113, ob es oder ob es keine Aufgabe gibt, deren Ausführungszeit abgelaufen ist. Falls es eine Aufgabe gibt, deren Ausführungszeit abgelaufen ist, veranlasst die Timeout-Verarbeitungseinheit 113 das OS, den Prozess dieser Aufgabe auszuführen. Falls eine Aufgabe vorhanden ist, für welche die Restzeit, die abgelaufene Zeit ≤ 0 ist, veranlasst die Timeout-Verarbeitungseinheit 113 das OS, den Prozess dieser Aufgabe auszuführen. Wie in (11) gemäß 9 dargestellt, beträgt die Restzeit am Kopf der Timeout-Warteschlange 10 ms und die abgelaufene Zeit Tk ist 10 ms, so dass 10 - 10 = 0. Daher veranlasst die Timeout-Verarbeitungseinheit 113 das OS, den Prozess der Aufgabe 1 auszuführen. Dann aktualisiert die Timeout-Verarbeitungseinheit 113 die Adresse, die durch den Kopfzeiger der Timeout-Warteschlange angezeigt ist, auf das nächste Element. Wie in (12) von 9 dargestellt, ändert die Timeout-Verarbeitungseinheit 113 die Adresse, auf die der Kopfzeiger der Timeout-Warteschlange zeigt, von der Adresse des Elements 0 auf die Adresse des Elements 1.
  • In Schritt S16 speichert die Timeout-Verarbeitungseinheit 113 die Ausführungszeit Tn in der Speichereinheit 140 als die vorherige Ausführungszeit Tp.
  • In Schritt S17 bestimmt die Timeout-Verarbeitungseinheit 113 die nächste Interruptzeit Tf. Es kann eine Vielzahl von Timeout-Warteschlangen, aufweisend eine Timeout-Warteschlange für einen Timer-Ereignis-Behandler und eine Timeout-Warteschlange für einen Alarm-Behandler, vorhanden sein. Daher vergleicht die Timeout-Verarbeitungseinheit 113 die Restzeiten der Kopfblöcke aller Timeout-Warteschlangen, um die nächste Interruptzeit Tf zu bestimmen.
  • In Schritt S18 stellt die Timeout-Verarbeitungseinheit 113 einen Zählerwert im Interrupt-Timer 160 ein. Der Zählerwert des Interrupt-Timers 160 ist so eingestellt, dass ein OS-abhängiges Interrupt zur nächsten Interruptzeit Tf auftritt. Wie in (13) von 9 dargestellt, stellt die Timeout-Verarbeitungseinheit 113 7 ms im Interrupt-Timer 160 ein.
  • 10 ist ein Diagramm, darstellend ein bestimmtes Beispiel des OS-abhängigen Interrupt-Prozesses, in dem Fall, in dem ein OS-abhängiges Interrupt zu einem Zeitpunkt T1 auftritt, der 3 ms nach dem Startpunkt einer dem Prozess in 9 folgenden Zeitdauer liegt;
  • Ein bestimmtes Beispiel des Prozesses von Schritt S15 bis Schritt S18 in 5 in dem Fall, in welchem nur ein OS-unabhängiges Interrupt zum Zeitpunkt T1 auftritt, wird unter Bezugnahme auf 10 beschrieben. Nachfolgend entsprechen (21) bis (23) den in 10 dargestellten (21) bis (23). In dem Fall von 10 beträgt die abgelaufene Zeit Tk ab dem Startpunkt der Zeitdauer 3 ms.
  • In Schritt S15 prüft die Timeout-Verarbeitungseinheit 113, ob es oder ob es keine Aufgabe gibt, deren Ausführungszeit abgelaufen ist. Falls es eine Aufgabe gibt, deren Ausführungszeit abgelaufen ist, veranlasst die Timeout-Verarbeitungseinheit 113 das OS, den Prozess dieser Aufgabe auszuführen. Falls eine Aufgabe vorhanden ist, für welche (die verbleibende Zeit - die abgelaufene Zeit) ≤ 0 ist, veranlasst die Timeout-Verarbeitungseinheit 113 das OS, den Prozess dieser Aufgabe auszuführen. Wie in (21) gemäß 10 dargestellt, beträgt die Restzeit am Kopf der Timeout-Warteschlange 7 ms und die abgelaufene Zeit Tk ist 3 ms, so dass 7 - 3 = 4. Daher ist keine Aufgabe für die Timeout-Verarbeitungseinheit 113 auszuführen. Die Timeout-Verarbeitungseinheit 113 aktualisiert die Restzeit der Timeout-Warteschlange. Wie in (22) von 10 dargestellt, ist Tk = 3 ms seit der vorherigen Ausführungszeit Tp abgelaufen, so dass die Rstzeit von 7 ms auf (7 - 3) = 4 ms aktualisiert wird.
  • In Schritt S16 speichert die Timeout-Verarbeitungseinheit 113 die Ausführungszeit Tn in der Speichereinheit 140 als die vorherige Ausführungszeit Tp.
  • In Schritt S17 bestimmt die Timeout-Verarbeitungseinheit 113 die nächste Interruptzeit Tf.
  • In Schritt S18 stellt die Timeout-Verarbeitungseinheit 113 einen Zählerwert im Interrupt-Timer 160 ein. Der Zählerwert ist im Interrupt-Timer 160 eingestellt, so dass ein OS-abhängiges Interrupt zur nächsten Interruptzeit Tf auftritt. Wie in (23) von 10 dargestellt, stellt die Timeout-Verarbeitungseinheit 113 4 ms im Interrupt-Timer 160 ein.
  • Damit ist die Beschreibung des konkreten Beispiels für den OS-abhängigen Interrupt-Prozess S10 durch die Computervorrichtung 100 gemäß dieser Ausführungsform beendet.
  • Weitere Konfigurationen
  • Die Computervorrichtung 100 kann eine Kommunikationseinrichtung umfassen. Die Kommunikationseinrichtung umfasst einen Empfänger und einen Übertrager. Insbesondere ist die Kommunikationseinrichtung ein Kommunikationschip oder eine Netzwerkschnittstellenkarte (NIC). Die Kommunikationseinrichtung funktioniert als eine Kommunikationseinheit, die Daten kommuniziert. Der Empfänger funktioniert als eine Empfangseinheit, die Daten empfängt, und der Übertrager funktioniert als eine Übertragungseinheit, die Daten überträgt.
  • In dieser Ausführungsform sind die Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 durch Software realisiert. Als ein Modifikationsbeispiel können allerdings die Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 durch Hardware realisiert sein.
  • Eine Konfiguration einer Computervorrichtung 100 gemäß dieses Modifikationsbeispiels wird unter Bezugnahme auf 11 erläutert.
  • Wie in 11 dargestellt, umfasst die Computervorrichtung 100 Hardware, wie eine Verarbeitungsschaltung 909, eine Eingabe/Ausgabe-Schnittstelle 930, einen Interrupt-Timer 160 und einen Uhr-Timer 170.
  • Die Verarbeitungsschaltung 909 ist eine dedizierte elektronische Schaltung, die die Speichereinheit 140 und die Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120, die vorangehend beschrieben sind, realisiert. Insbesondere ist die Verarbeitungsschaltung 909 eine Einzelschaltung, eine Verbundschaltung, ein programmierter Prozessor, ein parallel programmierter Prozessor, ein Logik-IC, ein GA, eine ASIC oder ein FPGA. GA ist eine Abkürzung für Gate Array. ASIC ist eine Abkürzung für Application Specific Integrated Circuit (Anwendungsspezifische Integrierte Schaltung). FPGA ist eine Abkürzung für Feldprogrammierbares Gate Array.
  • Die Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 können durch eine einzelne Verarbeitungsschaltung 909 realisiert sein, oder können durch Verteilung auf eine Vielzahl von Verarbeitungsschaltungen 909 realisiert sein.
  • Als ein weiteres Modifikationsbeispiel können die Funktionen der Computervorrichtung 100 durch eine Kombination von Software und Hardware realisiert sein. Da heißt, eine oder mehrere der Funktionen der Computervorrichtung 100 können durch dedizierte Hardware realisiert sein, und der Rest der Funktionen kann durch Software realisiert sein.
  • Der Prozessor 910, die Speichereinrichtung 920 und die Verarbeitungsschaltung 909 der Computervorrichtung 100 werden kollektiv als „Verarbeitungsschaltkreis“ bezeichnet. Das heißt, unabhängig davon, ob die Konfiguration der Computervorrichtung 100 die in 1 oder 11 dargestellte Konfiguration ist, sind die Speichereinheit 140 und die Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, der Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 durch den Verarbeitungsschaltkreis realisiert.
  • Eine „Einheit“ kann mit einem „Schritt“, „Vorgang“ oder „Prozess“ ersetzt sein. Die Funktion einer „Einheit“ kann durch Firmware realisiert sein.
  • Beschreibung der Wirkungen dieser Ausführungsform
  • Gemäß der Computervorrichtung 100 dieser Ausführungsform wird ein Flag gesetzt und ein OS-abhängiges Interrupt erzeugt. Daher ist es möglich, eine Aufgabe jederzeit einzuleiten, ohne das Flag mit einem periodischen OS-abhängigen Interrupt zu überwachen. Somit ist es gemäß der Computervorrichtung 100 dieser Ausführungsform möglich, das Tickless-Timer-Verfahren als das Zeitverwaltungsverfahren des OS zu übernehmen und die CPU-Auslastung und den Energieverbrauch zu reduzieren. Darüber hinaus ist es gemäß der Computervorrichtung 100 dieser Ausführungsform nicht erforderlich, das Flag periodisch zu überprüfen, so dass es möglich ist, auf eine Meldungsanforderung in der kürzesten Zeit, die mit dem Interrupt-Timer eingestellt werden kann, zu antworten.
  • Gemäß der Computervorrichtung 100 dieser Ausführungsform kann ein OS-abhängiges Interrupt erzeugt werden und eine Aufgabe früher eingeleitet werden als die durch die Timeout-Einstellungseinheit eingestellte Zeit.
  • Gemäß der Computervorrichtung 100 dieser Ausführungsform wird die Systemzeitverwaltungseinheit, die die Systemzeit verwaltet, bereitgestellt. Daher ist es gemäß der Computervorrichtung 100 dieser Ausführungsform möglich, dass die Aufgabe und der Alarm-Behandler zur richtigen Zeit arbeiten können, auch wenn der Zählerwert des Interrupt-Timers durch die Timer-Einstellungseinheit überschrieben wird. Darüber hinaus umfasst die Computervorrichtung 100 dieser Ausführungsform die Timeout-Einstellungseinheit, die die Timeout-Warteschlange der Aufgabe und die Ereignis-Behandler-Warteschlange verwaltet und den Zählerwert des Interrupt-Timers setzt. Daher ist es gemäß der Computervorrichtung 100 dieser Ausführungsform möglich, ein OS-abhängiges Interrupt zur richtigen Zeit arbeiten zu lassen, auch wenn der Zählerwert des Interrupt-Timers durch die Timer-Einstellungseinheit überschrieben wird.
  • In dieser Ausführungsform bilden die Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, die Timeout-Einstellungseinheit 114, die Aufgabeneinleitungsanforderungseinheit 131, die Timer-Einstellungseinheit 132 und die OS-Ausführungseinheit 120 die Computervorrichtung 100 als unabhängige funktionale Blöcke. Es ist jedoch nicht erforderlich, die Konfiguration wie in der oben beschriebenen Ausführungsform vorzusehen, und die Computervorrichtung 100 kann eine beliebige Konfiguration aufweisen. Die funktionalen Blöcke der Computervorrichtung 100 können irgendwelche funktionalen Blöcke sein, vorausgesetzt, dass die in der vorangehenden Ausführungsform beschriebenen Funktionen realisiert werden können. Die Computervorrichtung kann durch irgendeine Kombination dieser funktionalen Blöcke gebildet sein. Die Computervorrichtung kann auch durch irgendeine Blockkonfiguration dieser funktionalen Blöcke gebildet sein.
  • Die Computervorrichtung kann eine einzelne Vorrichtung sein oder kann ein durch eine Vielzahl von Vorrichtungen gebildetes Computersystem sein.
  • Die erste Ausführungsform wurde erläutert. Eine Vielzahl von Teilen dieser Ausführungsform kann in Kombination implementiert sein. Eine Vielzahl von Teilen dieser Ausführungsform kann in Kombination implementiert sein. Alternativ kann eine Vielzahl von Teilen dieser Ausführungsform als ein Ganzes oder teilweise in irgendeiner Kombination implementiert sein.
  • Die vorstehend beschriebene Ausführungsform ist ein im Wesentlichen bevorzugtes Beispiel und soll den Umfang der vorliegenden Erfindung sowie die Anwendungsbereiche und Verwendungszwecke der vorliegenden Erfindung nicht einschränken, und es sind gegebenenfalls verschiedene Modifikationen möglich.
  • Bezugszeichenliste
  • 100: Computervorrichtung, 110: OS-abhängiges-Interrupt-Verarbeitungseinheit, 130: OS-unabhängiges-Interrupt-Verarbeitungseinheit, 120: OS-Ausführungseinheit, 140: Speichereinheit, 111: Aufgabeneinleitungsbestimmungseinheit, 112: Systemzeitverwaltungseinheit, 113: Timeout-Verarbeitungseinheit, 114: Timeout-Einstellungseinheit, 131: Aufgabeneinleitungsanforderungseinheit, 132: Timer-Einstellungseinheit, 141: Flag, 143: Timeout-Warteschlange, 144: Restzeit, 145: Aufgabe, 160: Interrupt-Timer, 170: Uhr-Timer, 200: Gerät, 210: Motor, 220: Sensor, 201: OS-unabhängiges Interrupt, 202: OS-abhängiges Interrupt, 510: Aufgabeneinleitungsverfahren, 520: Aufgabeneinleitungsprogramm, S10: OS-abhängiger Interrupt-Prozess, S20: OS-unabhängiger Interrupt-Prozess, S100: Aufgabeneinleitungsprozess, Tp: vorherige Ausführungszeit, Tn: Ausführungszeit, Tf: nächstes-Interrupt-Zeit, Tk: abgelaufene Zeit, 909: Verarbeitungsschaltung, 910: Prozessor, 920: Speichereinrichtung, 921: Speicher, 922: Hilfsspeichereinrichtung, 930: Eingabe/Ausgabe-Schnittstelle
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • JP 2001092676 A [0005]

Claims (6)

  1. Computervorrichtung, die mit einem Gerät zu verbinden ist, und eine OS-Ausführungseinheit aufweist, um ein Betriebssystem auszuführen und ein OS-abhängiges Interrupt zu erzeugen, wobei die Computervorrichtung umfasst: eine Speichereinheit, um ein Flag zu speichern; eine OS-unabhängige Interrupt-Verarbeitungseinheit, um, wenn ein OS-unabhängiges Interrupt aufgrund eines Zustandes des Geräts auftritt, zu bestimmen, ob oder ob nicht eine Aufgabe eingeleitet werden soll, und wenn die Aufgabe eingeleitet werden soll, das Flag zu aktivieren und die OS-Ausführungseinheit zu veranlassen, das OS-abhängige Interrupt zu erzeugen; und eine OS-abhängige Interrupt-Verarbeitungseinheit, um, wenn das OS-abhängige Interrupt durch die OS-Ausführungseinheit erzeugt wird, zu bestimmen, ob ober ob nicht das Flag aktiviert ist, und wenn das Flag aktiviert ist, die Aufgabe einzuleiten und das Flag zu deaktivieren.
  2. Computervorrichtung nach Anspruch 1, ferner umfassend: einen Interrupt-Timer, wobei die OS-Ausführungseinheit das OS-abhängige Interrupt erzeugt unter Verwendung des Interrupt-Timers, wobei die OS-unabhängige Interrupt-Verarbeitungseinheit die OS-Ausführungseinheit veranlasst, ein OS-abhängiges Interrupt zu erzeugen durch Setzen eines Zählerwerts im Interrupt-Timer.
  3. Computervorrichtung nach Anspruch 2, ferner umfassend: eine Timeout-Warteschlange, um eine Restzeit zu verwalten, wobei die OS-abhängige Interrupt-Verarbeitungseinheit die Restzeit der Timeout-Warteschlange zurücksetzt basierend auf einer vorherigen Ausführungszeit, zu der die Aufgabe zuletzt eingeleitet wurde, und einer aktuellen Zeit.
  4. Computervorrichtung nach Anspruch 2 oder 3, wobei die OS-abhängige Interrupt-Verarbeitungseinheit eine nächste Interruptzeit, zu der das OS-abhängige Interrupt zu erzeugen ist, berechnet, und einen Zählerwert im Interrupt-Timer einstellt, um zu veranlassen, dass das OS-abhängige Interrupt zur nächsten Interruptzeit erzeugt wird.
  5. Aufgabeneinleitungsverfahren einer Computervorrichtung, die mit einem Gerät zu verbinden ist, und aufweisend eine OS-Ausführungseinheit, um ein Betriebssystem (OS) auszuführen und ein OS-abhängiges Interrupt zu erzeugen, wobei das Aufgabeneinleitungsverfahren umfasst: Bestimmen, wenn ein OS-unabhängiges Interrupt aufgrund eines Zustands des Geräts auftritt, ob oder ob nicht eine Aufgabe eingeleitet werden soll, und wenn die Aufgabe eingeleitet werden soll, Aktivieren eines Flags und Veranlassen der OS-Ausführungseinheit, das OS-abhängige Interrupt zu erzeugen, durch eine OS-unabhängige Interrupt-Verarbeitungseinheit; und Bestimmen, wenn das OS-abhängige Interrupt durch die OS-Ausführungseinheit erzeugt wird, ob oder ob nicht das Flag aktiviert ist, und wenn das Flag aktiviert ist, Einleiten der Aufgabe und Deaktivieren des Flags, durch eine OS-abhängige Interrupt-Verarbeitungseinheit.
  6. Aufgabeneinleitungsprogramm für eine Computervorrichtung, die mit einem Gerät zu verbinden ist, und aufweisend eine OS-Ausführungseinheit, um ein Betriebssystem (OS) auszuführen und ein OS-abhängiges Interrupt zu erzeugen, wobei das Aufgabeneinleitungsprogramm die Computervorrichtung, die ein Computer ist, veranlasst, auszuführen: einen OS-unabhängigen Interrupt-Prozess, um, wenn ein OS-unabhängiges Interrupt aufgrund eines Zustandes des Geräts auftritt, zu bestimmen, ob oder ob nicht eine Aufgabe eingeleitet werden soll, und wenn die Aufgabe eingeleitet werden soll, ein Flag zu aktivieren und die OS-Ausführungseinheit zu veranlassen, das OS-abhängige Interrupt zu erzeugen; und einen OS-abhängigen Interrupt-Prozess, um, wenn das OS-abhängige Interrupt durch die OS-Ausführungseinheit erzeugt wird, zu bestimmten, ob ober ob nicht das Flag aktiviert ist, und, wenn das Flag aktiviert ist, die Aufgabe einzuleiten und das Flag zu deaktivieren.
DE112017006454.6T 2017-01-25 2017-01-25 Computervorrichtung, Aufgabeneinleitungsverfahren und Aufgabeneinleitungsprogramm Expired - Fee Related DE112017006454B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/002498 WO2018138798A1 (ja) 2017-01-25 2017-01-25 計算機装置、タスク起動方法およびタスク起動プログラム

Publications (2)

Publication Number Publication Date
DE112017006454T5 true DE112017006454T5 (de) 2019-10-02
DE112017006454B4 DE112017006454B4 (de) 2020-06-10

Family

ID=62069404

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017006454.6T Expired - Fee Related DE112017006454B4 (de) 2017-01-25 2017-01-25 Computervorrichtung, Aufgabeneinleitungsverfahren und Aufgabeneinleitungsprogramm

Country Status (6)

Country Link
US (1) US10983823B2 (de)
JP (1) JP6316522B1 (de)
CN (1) CN110192183B (de)
DE (1) DE112017006454B4 (de)
TW (1) TW201828046A (de)
WO (1) WO2018138798A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020261519A1 (ja) * 2019-06-27 2020-12-30 三菱電機株式会社 電子制御ユニット及びプログラム
CN113742059B (zh) * 2021-07-15 2024-03-29 上海朋熙半导体有限公司 任务分配方法、装置、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092676A (ja) 1999-09-22 2001-04-06 Kenwood Corp 組み込みプログラムにおけるタスク管理システム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0795276B2 (ja) * 1990-11-19 1995-10-11 株式会社東芝 情報処理装置
US5845133A (en) * 1995-07-06 1998-12-01 Cyrix Corporation Virtualized functions within a microprocessor
JPH10143378A (ja) 1996-11-15 1998-05-29 Mitsubishi Electric Corp コンピュータ装置、およびコンピュータ装置における緊急プロセスのプリエンプション方法
FR2760103B1 (fr) * 1997-02-25 2000-02-04 Sextant Avionique Architecture modulaire de pilotage d'un aerodyne presentant un faible cout tout en etant apte a assurer un niveau eleve de securite de fonctionnement
US6038632A (en) 1997-05-07 2000-03-14 Kabushiki Kaisha Toshiba Interrupt control on SMM
JP3930116B2 (ja) 1997-08-29 2007-06-13 株式会社東芝 コンピュータシステム
JPH11184712A (ja) 1997-12-24 1999-07-09 Toshiba Corp 情報処理装置
JP2000047880A (ja) 1998-07-31 2000-02-18 Canon Inc オペレーティングシステム、その時間管理方法、情報処理装置および記憶媒体
US6466998B1 (en) * 1999-08-25 2002-10-15 Intel Corporation Interrupt routing mechanism for routing interrupts from peripheral bus to interrupt controller
JP4057769B2 (ja) * 2000-08-31 2008-03-05 松下電器産業株式会社 割り込み管理装置及び割り込み管理方法
US6792492B1 (en) 2001-04-11 2004-09-14 Novell, Inc. System and method of lowering overhead and latency needed to service operating system interrupts
US6910381B2 (en) * 2002-05-31 2005-06-28 Mykrolis Corporation System and method of operation of an embedded system for a digital capacitance diaphragm gauge
US20040088704A1 (en) 2002-10-30 2004-05-06 Advanced Simulation Technology, Inc. Method for running real-time tasks alongside a general purpose operating system
JP2004199393A (ja) 2002-12-18 2004-07-15 Matsushita Electric Ind Co Ltd タスク制御装置及びタスク制御方法
JP2005190207A (ja) * 2003-12-25 2005-07-14 Matsushita Electric Ind Co Ltd 割り込み制御装置、制御方法
JP4072503B2 (ja) 2004-02-04 2008-04-09 シャープ株式会社 補助演算用コプロセッサ内蔵型icカード及びその制御方法
JP4829177B2 (ja) 2007-06-11 2011-12-07 ルネサスエレクトロニクス株式会社 ディスパッチ装置
JP2009261865A (ja) 2008-04-25 2009-11-12 Haruo Kitamura ぞうり編み機
CN101639791B (zh) * 2009-08-31 2012-12-05 浙江大学 一种改善嵌入式实时操作系统中断延迟的方法
CN103176841A (zh) * 2013-03-06 2013-06-26 深圳市文鼎创数据科技有限公司 实时操作系统Tick时钟的实现方法及装置
KR20150058618A (ko) * 2013-11-18 2015-05-29 한국전자통신연구원 실시간 임베디드 시스템에서의 지연 보상 방법 및 그 장치
JP6354333B2 (ja) 2014-05-27 2018-07-11 富士通株式会社 情報処理装置及びタイマ設定方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092676A (ja) 1999-09-22 2001-04-06 Kenwood Corp 組み込みプログラムにおけるタスク管理システム

Also Published As

Publication number Publication date
JP6316522B1 (ja) 2018-04-25
WO2018138798A1 (ja) 2018-08-02
CN110192183B (zh) 2023-07-07
CN110192183A (zh) 2019-08-30
DE112017006454B4 (de) 2020-06-10
JPWO2018138798A1 (ja) 2019-02-07
US20200004581A1 (en) 2020-01-02
TW201828046A (zh) 2018-08-01
US10983823B2 (en) 2021-04-20

Similar Documents

Publication Publication Date Title
DE102006048115B4 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE102014101633B4 (de) Unterbrechung von Aufgaben zur Verwatlung von Chip-Komponenten
DE112008001757B4 (de) Systeme und Verfahren zum Bestimmen einer Aktualisierungsrate eines Speichers auf der Basis von HF-Aktivitäten
CN109510842B (zh) 一种工控网络文件强制访问控制策略配置的方法及装置
DE112012005589T5 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Computerprogramm
DE102012109829A1 (de) Verfahren und Vorrichtung zum Steuern von Straßenlampen
DE2747633A1 (de) Dv-system mit einer unterbrechungseinrichtung
DE602004007754T2 (de) Verfahren und Vorrichtung zur Feststellung einer Prozessorenbelastung
DE112018007129T5 (de) Kommunikationsprotokoll für Master-Slave-Konfiguration, Verfahren zur Erhöhung der Kompatibilität und elektrisches Gerät
DE112017006454B4 (de) Computervorrichtung, Aufgabeneinleitungsverfahren und Aufgabeneinleitungsprogramm
DE102016121486A1 (de) Vorrichtung, verfahren und programmprodukt zum planen des batterieverbrauchs
CN111459629A (zh) 基于Azkaban的项目运行方法、装置及终端设备
CN116302708A (zh) 基于负载均衡的数据备份方法、装置、设备及存储介质
DE112012006155B4 (de) Verfahren und Vorrichtung zur Mitteilung der verfügbaren Batterieleistung
DE102011055276A1 (de) Statusaustausch zwischen einem Basisgerät und einem abnehmbaren Gerät
DE102009019828A1 (de) Verfahren zum Übertakten einer CPU einer Computer-Hauptplatine
DE112013007676T5 (de) Informationsvorrichtung
DE102012221253A1 (de) Gleitkomma-Ereigniszähler mit automatischer Vorteilung
DE60211211T2 (de) Kommunikationsgerät, empfangprozessausführungsverfahren-und-programm, und rechnerlesbares medium auf dem dieses programm gespeichert ist
DE102013108943B4 (de) Statische Blockanzeige aus einem zu einer Datenverarbeitungseinrichtung gehörenden Speicher während geringer Aktivität derselben
DE112015007097B4 (de) Übertragungssteuervorrichtung, Fahrzeug und Übertragungssteuerverfahren
DE102005008778B4 (de) System und Verfahren zum Verändern einer Buskonfiguration
CN107292142B (zh) 业务操作处理方法、业务操作处理装置及业务终端
DE112017008061T5 (de) Simulationsvorrichtung, simulationsverfahren und simulationsprogramm
DE112017006918T5 (de) Informationsverarbeitungsvorrichtung und Verfahren zum Steuern einer Informationsverarbeitungsvorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R084 Declaration of willingness to licence
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee