JP6679758B2 - 制御装置を駆動するための方法及び装置 - Google Patents

制御装置を駆動するための方法及び装置 Download PDF

Info

Publication number
JP6679758B2
JP6679758B2 JP2018561304A JP2018561304A JP6679758B2 JP 6679758 B2 JP6679758 B2 JP 6679758B2 JP 2018561304 A JP2018561304 A JP 2018561304A JP 2018561304 A JP2018561304 A JP 2018561304A JP 6679758 B2 JP6679758 B2 JP 6679758B2
Authority
JP
Japan
Prior art keywords
task
task program
data
program
memory area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018561304A
Other languages
English (en)
Other versions
JP2019510327A (ja
Inventor
ツィーゲルバイン、ディルク
ヘーフェレ、ペーター
クラマー、ジーモン
ハルトマン、ウーヴェ
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of JP2019510327A publication Critical patent/JP2019510327A/ja
Application granted granted Critical
Publication of JP6679758B2 publication Critical patent/JP6679758B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0043Signal treatments, identification of variables or parameters, parameter estimation or state estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)
  • Communication Control (AREA)

Description

本発明は、独立請求項の導入部に記載の、制御装置を駆動するための方法及び装置に関する。
この分野における特許公報は、独国特許出願公開第10229520号明細書である。
車両内での制御過程においては、オペレーティングシステムが、制御過程を実行するための土台として存在する。オペレーティングシステムでは、特に、例えば自動車産業の埋め込みシステム(embedded−system)に実装されるような実時間オペレーティングシステムでは、タイムクリティカルな部分が、あまりタイムクリティカルではないアルゴリズム又はプログラム若しくはプログラム部分よりも頻繁に計算されうるように、サンプリング時間が異なる複数のタスクプログラムに機能が分散されていることが多い。タスクプログラムは、以下でタスク(Task)とも呼ばれるソフトウェアユニットである。緊急の場合には、オペレーティングシステムが、データ整合性を保証するために役立つ。従って、複数タスクにおいてアクセスされる変数から、適切な時点に複写が作成され、従って、例えばゆっくりとしたタスクにおける2つのアクセスの間に、より速いタスクにおいて上記変数が上書きされるという理由では、値が変化しない。
制御技術的な適用において、例えば、車両安定制御システムESP(横滑り防止プログラム)の場合に、又は、エンジン制御及び変速機制御の枠組みにおいても、決定的動作(deterministisches Verhalten)が保証されるべきである。即ち、同じ出力条件では、計算結果(例えば、アクチュエータ駆動部の周期的な出力)は、入力変数(例えば、周期的にサンプリングされるセンサ値)のみに依存しており、利用可能な複数の演算コアにソフトウェアユニットが分散されていること、及び、システムの利用率には依存していない。この他に、決定性の(deterministisch)通信によって、以下のことが保証され、即ち、複数のソフトウェアユニットにより進められる信号アクティブチェーンの実行時間(待ち時間)が、小さな所定の枠組み内でのみ変動すること、即ち、実行時間におけるジッタ(Jitter)が小さいことが保証される。当然のことながら、所定の時間内に全てのタスクを終了できること、即ち、演算コアに過負荷が掛からないことが保証される必要がある。
決定的動作は、制御システムでは制御の質を改善することが可能であり、開発プロセスにおいては、較正及び試験を簡略化することが可能であり、例えば複数の演算コアが設けられており当該演算コアにソフトウェアユニットが最適に分散されている他の演算ユニットへの移行(Migration)を、基本的に容易にすることが可能であり、1つ以上の演算コアを備える演算ユニットにおける機能の確実性という目標の達成をサポートすることが可能である。さらに、例えばモデルに基づく開発方法論の枠組みにおいて、様々な実行プラットフォーム(例えば、シミュレーション環境、開発用コンピュータ、量産制御装置)で、システムが常に同じように動作することが保証される。
従って、タスク間の通信のための方法であって、公知の解決法に対して、基本的により少ないリソース、即ち例えばメモリ、実行時間、又は計算時間を必要とし通信チャネルのフル稼働時のピークを軽減する上記方法が望まれる。
本発明は、独立請求項に係る方法及び装置に関する。これにより、特定の時間に、オペレーティングシステムにより制御されるソフトウェアユニットの間で、データが論理的に伝送され、その際に、個々の通信パートナー間の物理的な伝送が、時間的に分散されて行われる。これにより、基本的により少ないリソースが必要とされ、通信チャネルのフル稼働時のピークが軽減される。
導入部で言及した形態による決定的な通信方法に対する利点は、一時的メモリが設けられず、伝送されるデータのための1つより多い受信メモリが回避され、これにより、タスクの間に交換されるデータが大量である場合に、記憶場所をかなり削減することが可能であり、従ってコストが削減される。
他の利点は、データの送信又は受信が、送信者又は受信者による各実行の後に行われるのではなく、合目的的に、2つのタスクの間のアクティブ化期間の比率に従って、特定の時間にのみデータが伝達されることである。これにより、バス負荷が軽減され、必要な計算時間が削減される。
その際、計算リソースを節約するために、通信関係ごとに1つの追加的なタスクが省略されうるのが有利である。さらに、特定の前提条件においては、同じ入力メモリの多重使用によって更なるリソースが節約されうる。
有利に、第1のタスクプログラムは、制御装置内の第1の実行ユニットで実行され、第2のタスクプログラムは、制御装置内の第2の実行ユニットで実行される。これにより、異なる演算コアで平行して実行されるタスク同士が、データを交換することが可能である。
有利に、第2の時間間隔の長さは、第1の時間間隔の長さの整数倍である。これにより、同時に開始されるタスク間で、間隔境界の同期が取られる。
有利に、第1のタスクプログラムに対応付けられたメモリ領域から、第2のタスクプログラムに対応付けられたメモリ領域へとデータが直接的に伝送される。これにより、1回の複写過程によってデータが直接的に送信者から受信者へと伝達され、その際に、データが最初に一時的メモリに複写される必要がない。通信負荷におけるピークが予防され、記憶場所及び計算時間が節約されるにも関わらず、決定的な全システムの動作が引き続き保証される。
有利に、第1のタスクプログラムに対応付けられたメモリ領域から一時的メモリへとデータを伝送し、及び一時的メモリから第2のタスクプログラムに対応付けられたメモリ領域へとデータを伝送するために、第3のタスクプログラムが追加的に実行される。これにより、同時に開始されず又は互いに整数倍の長さを有さない2つのタスクの間の通信が可能である。
有利に、第1のタスクプログラムと第2のタスクプログラムとは、異なるサイクル時間を有し、第1のタスクプログラムのサイクル時間は、第2のタスクプログラムのサイクル時間よりも短く、時間的に第2のタスクプログラムのサイクルエンド(Zyklusende)の範囲に存在する第1のタスクプログラムのサイクル内に、第1のタスクプログラムに対応付けられたメモリ領域から、第2のタスクプログラムに対応付けられたメモリ領域へと、データが伝送される。これにより、より速く繰り返される第1のタスクプログラムの最後の実行結果が、よりゆっくりと繰り返される第1のタスクプログラムとの通信のために利用される。これにより、最新の結果が通信のために提供される。
好適に、第1の駆動状態では、各タスクプログラムに対応付けられた時間間隔内に、他のタスクプログラムによって、上記各タスクプログラムに対応付けられたメモリ領域にアクセスされず、第2の駆動状態では、上記各タスクプログラムに対応付けられた上記時間間隔内に、上記各タスクプログラムによって、当該各タスクプログラムに対応付けられたメモリ領域にアクセスされない。これにより、最新の値となる前に、出力変数が複写されず、又は、出力変数が複写過程の間に変更されない。
好適に、タスクプログラムには、入力データのための第1のメモリ領域が対応付けられ、タスクプログラムには、出力データのための第2のメモリ領域が対応付けられ、状態情報が設けられ、状態情報は、現在の時間間隔の終了前の、タスクプログラムの実行期間内には入力データにもはやアクセスされず、出力データでの変更がもはや行われないことを示す。この追加情報によって、データアクセスが制御される。これにより、複写過程自体がウェイトフリー(wait−free)である。
更なる別の利点及び有利な構成は、以下の明細書の記載及び請求項の特徴から明らかとなろう。
本発明がさらに、図面に示された図を用いて詳細に解説される。
タスクの順序を概略的に示す。 制御部を概略的に示す。 複写ルーティン又は引き渡しルーティンを概略的に示す。 状態ビットを用いた制御方法を概略的に示す。 2つより多い通信するタスクの制御方法を概略的に示す。 上記制御方法の他の変形例を概略的に示す。 2つのタスク間の非調和的な通信を概略的に示す。
図では、互いに対応する構成要素が同じ符号で示される。
図1は、2つのソフトウェアユニットを含む例示的なシステムを示している。このソフトウェアユニットは、タスクプログラムであり、5msのタスクとして、及び10msのタスクとして実行される。図1では、5msのタスクの例が、長方形1で示される。図1では、10msのタスクの例が、長方形2で示される。図1に示すようなタスクプログラムは、5ms又は10msの全てを必要としない。長方形1、2の長さ、及び、時間軸t上での又は時間軸tに沿った長方形1、2の位置は、個々の計算の開始、終了、及び時間を例示している。即ち、タスクプログラムは、5msごと又は10msごとにアクティブ化される。上記アクティブ化は、必ずしも上記タスクの一方の開始時に行われない。上記タスクは、両方向矢印3により示される長さ5msの所定の間隔内に、又は、両方向矢印4により示される長さ10msの所定の間隔内に実行される。10msごとに、共通の間隔境界5において、データがタスク間で論理的に交換される。データ交換は、両方向矢印6により概略的に示されている。データ交換は、双方向に行われ、又は二つの方向のうちの一方向にのみ行われる。
通信6が、図示するように実現される場合には、間隔境界5のところに通信に対するニーズのピークが来る。
導入部に挙げた形態によるオペレーティングシステムは、上記対応するフローのために役立つ。
対応する方法は、個別タスクのアクティブ化率の固定的な整数比を前提としており、拡張されることなく、1つの演算コアを備えた演算ユニット(シングルコア(Single−Core)プロセッサ)のためにのみ利用可能である。
図1の例は、優先度制御されて実行される、同じ演算コアでの上記タスクのそのような遂行を示している。
タスク間の更なる別の通信では、一時的メモリが利用され、一時的メモリには、送信者がタスクの終了時に出力データを書き込み、受信者はタスクの開始時に一時的メモリから自身の入力データを読み出す。データ整合性を保証するために、一時的メモリへのアクセスが保護される必要があり、即ち例えば、送信者がデータを一時的メモリに書き込む間、受信者は、入力データを複写できず待機しなければならない。
第1のタスクと第2のタスクとの間の通信のために、第1のタスクが、通信を調整するために、第2のタスクのコンテキストにおいて追加的な通知タスクをアクティブ化することが構想されうる。通知タスクによって、第1のタスク又は第2のタスクには、差し迫った通信について報知される。
以下では、ロジカルエクゼキューションタイム(LET:Logical Execution Time)という概念が利用される。この概念を用いて、ソフトウェアユニットの時間的挙動、及び特に上記ユニット間の通信動作を、接続された演算ユニットへの分散及び実行する演算ユニットの性能に依存せずに、記述することが可能である。上記概念は、T.A.Henzinger、B.Horowitz、C.M.Kirschらによる著書「Enbedded control systems development with Giotto」(In Proc.ACM SIGPLAN Workshop on Languages、Compilers and Tools for Emdedded Systems(LCTES)、ACM、2001年)で導入され、以下で、対応して利用する。
ソフトウェアユニットの実行のためには、所定の時間間隔がそれぞれ用意される。時間間隔の始まりに、ソフトウェアユニットの入力値が用意され、上記間隔の厳密な終りに、ソフトウェアユニットにより計算された出力値が、他方のソフトウェアユニットに提供される。ソフトウェアユニットの実行は、上記時間間隔内の任意の時間に行われうる。
ソフトウェアユニット間の通信は、時間間隔の開始時と終了時にそれぞれ、正に当該時点での通信によって(例えば、受信者の動作領域への出力データの複写の作成によって)論理的に行われ、又は、データのための複数メモリの設置によって(この場合、実行時間に上記複数のメモリ間で切り替えられる)論理的に行われ、即ち、送信者が上記メモリのうちの1のメモリに書き込む間に、受信者は、先行する送信サイクルからの整合のとれたデータを他のメモリから読み出すことが可能である。
以下に記載する方法によって、実行可能な異なるソフトウェアユニット間、即ちタスクプログラム間又はタスク間の通信が、実時間制御システムにおいて調整される。
その際に、実行する演算ユニットの利用率に依存せずに、全システムの再生可能な決定的動作を保証するという目的から、タスク間の通信が特定の時点にのみ行われるよう調整される。
図2は、2つの実行ユニット30を備えた電子制御装置33を概略的に示している。この実行ユニット30は、例えば、各ソフトウェアユニット31が周期的に実行される演算コア又は演算ユニットであり、データは、一方のソフトウェアユニットから他方のソフトウェアユニットへと伝送される。このデータ伝送は、図2では符号32の矢印として示されている。1つの入力値34若しくは複数の入力値34又は入力データ、即ち物理値が測定されて、制御装置33で処理される。制御装置33の1つの出力値35若しくは複数の出力値35又は出力データは、例えば制御量として物理的環境へと出力される。このために、対応する不揮発性のメモリ又はデータインタフェースが、制御装置33内に設けられる。
以下では、複数の入力値34及び複数の出力値35を用いて、以下のことを記載する。即ち、異なるソフトウェアユニット31間の通信を、リソースを大切にしながら如何して以下のように実行するのか、即ち、出力値35が決定論的に入力値34にのみに依存し、上記複数の実行ユニット30へのソフトウェアユニット31の分散及び実行ユニット30の利用率には依存しないように、如何して実行するのかについて記載する。同じことが、入力値34又は出力値35についても該当する。
図3は、5msのタスクと10msのタスクとの間の通信を示している。送信者から受信者へのデータ伝送が、よりゆっくりとした時間間隔ごとに厳密に1回行われることが、プログラムシーケンスにより保証される。よりゆっくりとしたタスクの時間間隔内でのより速いタスクの各最後の実行の後にのみデータ伝送が実行されることが、カウンタの仕組みによって保証される。上記カウンタの仕組みのカウンタであるcounter_5ms、5ms_ready、及び、10ms_readyが図3に示されており、それぞれ符号22、20、21で表されている。
これにより、決定的動作が、「ロジカルエクゼキューションタイム(Logical Execution Time)」の意味において保証される。
図3の例では、5msのタスクは、10msのタスクと比較してアクティブ化率がより高い。従って、1つのおきの実行期間12a/bにデータ伝送が行われるが、実行期間19にはデータ伝送が行われない。さらに、より速いタスクの終了時にそれぞれ、カウンタが減分される。
カウンタ22のカウンタ状態がゼロに達した場合にはデータ伝送が許可され、カウンタは、よりゆっくりとしたサンプリング時間とより速いサンプリング時間との間の比率に対応する値にリセットされる。図3の例では、カウンタ22は値2に設定される。5ms_ready情報20と、10ms_ready情報21と、は駆動状態を示している。例えば状態1は、各タスクがデータ交換の準備ができていることを意味する。例えば状態0は、各タスクがデータ交換の準備ができていないことを意味する。
上記タスクは、同じ演算コアで又は異なる演算コアで実行されうる。
本発明を実現するための前提条件は、2つのタスクが、通信に関連する各他方のタスクのメモリ領域へのアクセス権を有することである。メモリ領域は、図3では、各タスクのバッファ(buffer)として示されている。
5msのタスク12a/b又は19のメモリ領域11には、5msのタスクにより計算された出力値が存在しており、この出力値が、10msのタスク13のメモリ領域15へと伝送される。
1回おきの5msのタスク12a/bが、出力すべきデータの計算を終了していると共に、10msのタスクが、先行するサイクルに受信されたデータ15の処理を終えている場合には、送信者から受信者へのデータの伝送14が行われる。このことは遅くとも、双方のタスクが終了可能である場合には当てはまる。
同じことが、他の方向への通信、即ち10msのタスクから5msのタスクへの通信についても言える。10msのタスクにより計算された出力値16が、同じ時点に、5msのタスク12a/b又は19のメモリ領域17へと複写(18)されうる。
所望の動作を実現するために、共通の10msの間隔以内に計算が終了されており受信データへのアクセスがもはや必要ではなくなり次第、即ち、遅くとも1回おきの5msのタスク12a/bの終了時に、5msのタスク12a/bは、双方のタスクが問合せ可能なメモリ領域内に報知ビット20を設定する。
これと同様に、10msのタスク13は、実行期間内に計算が終了されており受信データへのアクセスがもはや必要ではなくなり次第、即ち、遅くとも各10msのタスクの終了時に、報知ビット21を設定する。
タスク間でのデータの伝達は、5msのタスク12a/bの終了時又は10msのタスク13の終了時に、どのイベントがより遅く発生するかに応じて行われる。12aの場合は、データ伝送22aが双方向に、10msのタスクによって実行される。なぜならば、5msのタスク12aが既に先に終了されているからである。12bの場合は、データ伝送22bが、5msのタスク12bによって行われる。なぜならば、タスク12bが10msのタスク13よりも遅く終了されるからである。
データ伝送を担当するタスクの検出は、状態ビット20及び21を用いて行われる。双方のタスクがそれぞれ、データ交換の準備ができている場合には、対応する状態ビットを設定し、その後に、各他方の状態ビットの状態について問合せを行う。双方のビットが設定されている場合には、通信機能22a又は22bの呼出しにより通信が実行され、状態ビットがリセットされる。例えば、設定された状態ビットは、各タスクの終りの範囲を定める。
一般に、第1のタスクのサイクルは、当該第1のタスクのサイクルが、第2のタスクのサイクル内の、第2のタスクのデータ交換の準備が整っている範囲で終わる場合には、時間的に第2のタスクのサイクルのサイクルエンドの範囲に存在する。好適に、第1のタスクのサイクル時間は、第2のタスクのサイクル時間よりも短い。この場合、第1のタスクの或るサイクルは、以下のような場合には、例えば時間的に第2のタスクの或るサイクルのサイクルエンドの範囲に存在し、即ち、第1のタスクが、第2のタスクの上記或るサイクルの開始後に始まり、かつ、当該或るサイクル内の第2のタスクのデータ交換の準備が整っている範囲で終わる場合には、時間的に第2のタスクの或るサイクルのサイクルエンドの範囲に存在する。
状態ビット20及び21は、双方のタスクによる同時アクセスから守られている。しかしながら、本来の複写過程又は通信過程は、ロックフリー(lock−free)であり、ウェイトフリー(wait−free)である。
理想的な場合に、データ伝送の役割を担う機能22a及び22bは同一であり、1のタスク又は他のタスクの終りに呼び出される。好適に、上記の機能は、通信関係に依存して、ツールによりサポートされて生成される。
以下のプログラムの例は、5msのタスクと10msのタスクとの間の通信を例に、所望の動作が如何に実現されるのかについて概略的に示している。
より短いサンプリング時間12a/b又は19を有するタスクの終りには、以下のようなプログラムコードが挿入される。

END_5ms:
counter_5ms=counter_5ms-1
if
(counter_5ms==0
{

protection_on

5ms_ready=true

if (10ms_ready==true) copy=true

protection_off


counter_5ms==2 ! サンプリング時間の比率


if
(copy==true)
{

call copydata !双方向へのデータの複写のために生成される機能

5ms_ready=false

10ms_ready=false

copy=false
}
カウンタ(counter_5ms)を用いて、最初に、この時間ステップにデータを交換すべきかどうかが検査される。このことは、より短いサンプリング時間を有するタスクにのみ該当し、それ以外の場合は、カウンタは設けられなくてもよい。
図3の例では、10msのタスクはカウンタを必要としない。この時間ステップでは、より速い5msのタスク12a/bによってデータが交換されるからである。
データを交換すべきであることがカウンタを用いて確認された限りにおいて、どのタスクが、データ交換を担当するのかが検査される。対応する状態ビットを照会して操作することが許される前に、通信に関与する双方のタスクが同時には状態ビットにアクセスしえないことが保証される必要がある。これに加えて、大抵の場合には、状態「5ms_ready」及び「10ms_ready」のための不変の値を保証するために、追加的な保護の仕組み(protection_on/protection_off)をプログラムコードに組み込む必要がある。その際に、オペレーティングシステムの公知の仕組みによって、2つの該当するソフトウェアユニットの一方のみ「protection」により保護された領域に入ることを許されることが保証される。実行ユニットへのタスクの分散に従って、保護の仕組みは、例えば、タスク交代が短時間の間防止されることで、又は演算コアの境界を超えた、スピンロック(Spin−Lock)の利用によって、局所的に1つの実行ユニットでのみ、即ち局所的な演算コアでのみ効果を有する。
5msのタスクがデータを送信及び受信する準備ができていることをシグナリングするために制御ビット「5ms_ready」が設定された後で、他方のタスクの状態が、制御ビット「10ms_ready」を用いて検査される。この制御ビットも設定されている場合は、10msのタスクは既にデータを交換する準備が整っており、通信を直ぐにも行うことが可能である。それ以外の場合には、通信は後に、10msのタスクの終りに実行される。
例えば、第1のソフトウェアユニット31の5msのサイクルからのデータが伝送される。データがそこから伝送される5msのサイクルは、例えば時間的に、第2のソフトウェアユニット31の10msのサイクルのサイクルエンドの範囲に存在する。第2のソフトウェアユニット31のサイクルエンドの範囲は、第2のソフトウェアユニット31が既にデータ交換の準備ができている範囲である。この範囲は例えば、第2のソフトウェアユニット31の実行期間内に計算が終了されており受信データへのアクセスがもはや必要ではなくなり次第、始まる。この範囲は、例えば、第2のソフトウェアユニット31の各サイクルの終りで終了する。
アクセス保護がアクティブである時間を短時間に保つために、複写アクションの実行が、論理的変数「copy」によって制御され、従って、本来の複写アクションが、保護された範囲の外で行われうる。
より長いサンプリング時間を有するタスク(13)の終りに、以下のようなプログラムコードが挿入される。

END_10ms:
protection_on
10ms_ready=true
if
(5ms_ready==true) copy=true
protection_off

if
(copy==true)
{

call copydata !双方向へのデータの複写のために生成される機能

5ms_ready=false

10ms_ready=false

copy=false
}
このプログラムコードは、5msのタスクの終りのコードと非常に似ているが、よりゆっくりとしたタスクの各実行の終了時に検査が行われるためカウンタが設けられない点で異なっている。
図4は、2つより多い通信するタスクを含むシステムで適用可能な、必要なメモリ又は計算時間を削減する方法の任意の最適化を示している。上記の最適化は、原則的に、データを受信する全てのタスクが、データを送信するタスクよりも短い(又はデータを送信するタスクと同じ)周期期間又はサイクル時間を有する限りにおいて、同一の受信データを利用しうることに基づいている。
図4は、データを送信する1つの20msのタスク40と、それぞれがより短い周期時間5ms又は10msを有する、データを受信する2つタスク41及び42と、を含む例を示している。20msのタスク40は、自身の出力データを自身のメモリ領域43に書き込む。より速いタスク41及び42は、20msのタスクの入力データを必要とし、その際、入力データのうちの少なくとも幾つかは、上記最適化によりリソースを節約しうるために、上記2つのタスクによって必要とされる。
関与する全てのタスク40、41、及び42の共通の間隔の終り44で、先に記載したような一方法によって、どのタスクが最後に終了されるのかが確認される。その後で、この最後に終わったタスクが、先に記載したように通信機能45又は46を呼出し、通信機能45又は46は、受信者タスク41が必要としている入力データを、メモリ領域43からメモリ領域47へと複写する。本例では、通信機能45が、20msのタスク40の第1の共通の間隔の終りに呼び出される。なぜならば、20msのタスク40は、タスク41及び42よりも遅く終了するからである。第2の共通の間隔の終りでは、5msのタスク42が最後に終了されて、通信機能46を呼び出す。
メモリ領域47は、2つの受信者タスク41及び42の一方又は双方が入力データとして必要としている、20msのタスク40の全出力データを含んでいる。双方の受信者タスクは、自身の入力データを同じメモリ領域47から読み出す。
これにより、双方の受信者タスクが必要とする入力データを1回で複写しメモリ領域47に格納しなければならないということが実現され、これにより、記憶場所と計算時間との双方が節約されうる。
対応策として、複写アクションを実行するタスクを定めるためのロジック部が幾分複雑になっている。なぜならば、複写アクションのための2つより多い可能なタスクが問題となるからである。演算ユニットへの受信者タスクの分散を考慮して、実行時間と必要なメモリとの間の最適な組み合わせが定められる。
図4には、一方向への通信が示されている。しかしながら、通信機能45及び46は、他の方向への通信、即ち、より速いタスク41及び42の出力メモリ領域から、20msのタスク40の入力メモリ領域への通信も実行することが可能である。
図5は、2つより多い通信するタスクを含むシステムで適用可能な、本方法の任意の最適化を示している。
この最適化によって、ソフトウェア分散、スケジューリング、及び/又は、複写されたデータを考慮して、1の間隔の終りから次の間隔の始まりへと複写動作をずらすことが可能となる。
これにより、様々な長さの間隔が重なった際の負荷のピークが合目的的に防止され、このような状況下のバスシステムへの負荷が、時間的にさらに均等化される。
図5では、5msのタスク50が、先に記載したように、それぞれ間隔の終りに10msのタスク51と通信している。
通信機能52が、上述のように、共通の間隔で最後に終了したタスクの終りにそれぞれ呼び出される。
10msのタスク51と20msのタスク52との間の通信53は、先に挙げた理由から、新たな間隔の始まりにずらされる。1つおきの10msのタスクの始まりに、通信機能54が呼び出され、この通信機能54が、先行する間隔で計算された値を、タスク間で双方向に対応するメモリ領域(ここでは図示せず)へとそれぞれ複写する。
このことは、上記通信が終わった後に初めて、通信パートナー、この場合20msのタスク52が実行されることが保証される場合には、更なる対策を取らなくても機能する。このことは、以下の場合には自動的に当てはまり、即ち、優先度に基づくスケジューリングにおいて双方のタスクが同一の実行ユニットでアクティブ化されて、優先度がより高いタスク、即ちこの場合より速い10msのタスクによって通信が実行される場合には、自動的に当てはまる。
図6は、上記の「ロジカルエクゼキューションタイム(Logical Execution Time)」のスキームから以下のようにその挙動が外れる方法の任意の変形例を示している。
ここでは目的は、信号アクティブチェーン内での信号移動時間(待ち時間)を低減することであり、その際、決定的動作が引き続き維持される。
図3で示したように、ここでは、5msのタスク60が、10msのタスク61と通信する。よりゆっくりとしたタスク61からより速いタスク60への通信64は、引き続き共通の間隔の終りに行われ、及び、最後に終了された各タスク61a又は60cによって、通信機能62又は63の呼出しにより実行される。
しかしながら、より速い5msのタスク60からよりゆっくりとした10msのタスク61への通信65は、もはや共通の間隔の終りでは行われず、共通の間隔内のより速い5msのタスク60a又は60bの最初の実行の直後に行われる。
この形態による通信の前提条件は、よりゆっくりとした受信者タスク61a又は61が、上記通信が終了した場合に初めて、即ちタスク60a又は60bの終了後に実行されることである。このことは、優先度制御されるレートモノトニックススケジューリング(Rate−Monotonic−Scheduling)では、双方のタスクが同じ実行ユニット、即ち同一の演算コア(core)で実行される場合に自動的に当てはまる。なぜならばこの場合、より速いタスクは、よりゆっくりとしたタスクよりも実行優先度が高いからである。
異なる実行ユニットでタスクが実行される場合には、よりゆっくりとしたタスク61a又は61が、送信タスク60a又は60bの終りにアクティブ化されうる。
本発明の上記変形例によって、例えば、センサ、即ち例えば図のセンサ34から、アクチュエータ、即ち例えば図のアクチュエータ35への経路において、速いタスク及びその後のよりゆっくりとしたタスクによって進行する信号アクティブチェーンのために、実行時間(待ち時間)を低減することが実現され、このことは、例えば、制御技術的な用途のためには有利でありうる。
本変形例では、間隔内での実行期間の間の依存性に考慮して、タスクが複数の実行ユニットに分散される。
図7は、2msのタスク70から5msのタスク71への通信を示している。5msのタスク71の長さは、2msのタスクの長さの整数倍ではない。以下では、このようなタスクの間の通信は、非調和的な通信と呼ばれる。
上記の方法は、定期的に発生する共通の間隔限界に基づいており、この共通の間隔限界において論理的に通信される。このことは、非調和的な通信の場合、例えば2msのタスクと5msのタスクの場合には、10msごとに該当する。上記共通の間隔限界72では、上記方法の1つによって、共通の間隔の終りに、最後に終了したタスクによって通信73が行われる。
共通の間隔内での第2の2msのタスクの計算結果も同様に、5msのタスクへと決定論的に伝達されるべきであるが、この場合、共通の間隔境界が存在しない。上記の値は、5msのタスクの入力メモリ74へは直接的に複写されえない。なぜならば、入力メモリ74は未だに、第1の5msのタスク71aによって読出しアクセスの間遮断されているからである。
従って、第2の2msのタスク70aは、タスクの終了時に通信機能75の呼出しによって、上記の伝達すべき値を最初に一時的メモリ76に書き込む。その後、第2の5msのタスク71bが、タスクの開始時に通信機能77の呼出しによって、上記の値を一時的メモリ76から自身の入力メモリ74へと複写する。
他の方向への通信、即ち5msのタスクから2msのタスクへの通信も同じように機能する。第1の5msのタスクが、値を他の一時的メモリへと複写する。第4の2msのタスク、即ち、第1の5msのタスクが確実に終了した後の6〜8msの間隔内にアクティブ化された最初の2msのタスクが、上記データを一時的メモリから自身の入力メモリへと複写する。
共通の間隔境界における通信は、上記の方法の1つに従った他の方向への通信のようにも進行する。
タスクプログラムは、好適に周期的に繰り返される。この場合、上記の間隔はサイクル時間に相当する。通信も同様に、好適に周期的に行われる。
通信パートナーは、上記の方法においては、同一の演算コア又は異なる演算コアにおいて実現される。
好適に、タスクの実行期間内に入力データ17又は15にもはやアクセスされず、既に当該タスクが終了する前の時点に、出力データ11又は16での変更がもはや行われない場合には、状態ビット20又は20の設定が行われる。これにより、例えば、対応するソフトウェアユニット31のサイクルエンドの範囲が定められる。
以下に、本発明に係る原則の利点をまとめる。
1.独国特許出願公開第10229520号明細書に開示された方法が、以下のように拡張され、即ち、複数の演算コア、例えばマルチコアプロセッサを備える演算ユニットのためにも使用可能であり、その際に再生可能な決定的動作が維持されるように、拡張される。このためには、「ロジカルエクゼキューションタイム(Logical Execution Time)」の構想が適している。
2.本方法は、2つのタスク間で伝送されるデータの整合性を保証し、即ち、受信者タスクの始まりに用意される全データは、送信タスクの同一の実行から派生し、入力データは、受信タスクが当該入力データにアクセスしている間は変化しない。
3.本方法は、バスシステムにより制御されるソフトウェアユニット(タスク)をサポートし、当該ソフトウェアユニット(タスク)のアクティブ化率は、互いに固定の整数比の関係にある(図1参照)。その際に、同じアクティブ化率を有する複数のタスクも存在しうる。
4.本方法は、図1に示すような正に間隔限界での通信よりも、通信チャネル(例えば、バス)に対する負荷が小さい。
5.利用可能な計算性能をより良好に利用しうるために、本方法は、広範に「ウェイトフリー(wait−free)」であり、即ち、例えば共有されるメモリ領域の整合性を保証するために、どの通信パートナーの実行も言うに値する時間の間ブロックされない。
6.本方法は、今日自動車分野で通常実装されるオペレーティングシステム(例えば、AUTOSAR−OS)を拡張することなく実現可能である。
7.本方法は、必要な演算リソース(メモリ、実行時間)を低減するために、追加的な「通知」タスクを削減できるように最適化される。
8.本方法は、特定の条件下において、受信者が受信データを共有することにより、リソース(メモリ、実行時間)が節約されるように、最適化される。
9.通信は、双方向に実行されうる。即ち、2つのタスク間で通信が実行される期間には、その必要があれば、通信が双方向に行われうる。これにより、実行インフラストラクチャ(機能、カウンタ、状態メモリ)が、タスクの対ごとに一度だけ必要とされるが、通信方向ごとに一度だけ必要とされるわけではない。
10.本方法は、ソフトウェア構造及びソフトウェア分散を考慮して、負荷のピークが回避され、リソース(メモリ、実行時間)が最適に利用されるように、任意に最適化される。
11.本方法は、任意に、複数タスクに亘る信号アクティブチェーンの待ち時間を削減するという可能性をもたらす。
12.本方法は、調和的な間隔を有さないタスク間の決定的な通信のために、例えば、2msのタスクと5msのタスクとの間の通信のために、任意に拡張可能である。

Claims (7)

  1. 制御装置(33)を駆動する方法であって、前記制御装置(33)は、タスクプログラム(31)を実行するよう構成された少なくとも1つの実行ユニット(30)を有し、少なくとも部分的に、第1のタスクプログラム(31)と第2のタスクプログラム(31)とが実行され、前記第1のタスクプログラム(31)は、第1の所定の時間間隔の終りに、前記第2のタスクプログラム(31)のためのデータ(32)を提供し、前記第1のタスクプログラム(31)から前記第2のタスクプログラム(31)への前記データの伝送は、前記第2のタスクプログラム(31)の実行のための第2の所定の時間間隔内での、前記第1のタスクプログラム(31)の各最後の実行の後にのみ行われ、前記第2の所定の時間間隔は、前記第1の所定の時間間隔よりも長く、
    前記第1のタスクプログラム(31)は、前記制御装置(33)内の第1の実行ユニット(30)で実行され、前記第2のタスクプログラムは、前記制御装置(33)内の第2の実行ユニット(30)で実行される、前記方法において、
    前記第2の所定の時間間隔の前記長さは、前記第1の所定の時間間隔の長さの整数倍であることを特徴とする、方法。
  2. 前記第1のタスクプログラム(31)に対応付けられたメモリ領域から、前記第2のタスクプログラム(31)に対応付けられたメモリ領域へと、データが直接的に伝送されることを特徴とする、請求項1に記載の方法。
  3. 前記第1のタスクプログラム(31)に対応付けられたメモリ領域から一時的メモリ(76)へとデータを伝送し、及び前記一時的メモリ(76)から前記第2のタスクプログラム(31)に対応付けられたメモリ領域へとデータを伝送するために、第3のタスクプログラム(75、77)が追加的に実行されることを特徴とする、請求項1〜2のいずれか1項に記載の方法。
  4. 前記第1のタスクプログラム(31)と前記第2のタスクプログラム(31)とは、異なるサイクル時間を有し、前記第1のタスクプログラム(31)のサイクル時間は、前記第2のタスクプログラム(31)の前記サイクル時間よりも短く、時間的に前記第2のタスクプログラム(31)のサイクルエンドの範囲に存在する前記第1のタスクプログラム(31)のサイクル内に、前記第1のタスクプログラム(31)に対応付けられたメモリ領域から、前記第2のタスクプログラム(31)に対応付けられたメモリ領域(15)へと、データが伝送されることを特徴とする、請求項1〜3のいずれか1項に記載の方法。
  5. 第1の駆動状態では、各前記タスクプログラム(31)に対応付けられた時間間隔内に、他のタスクプログラム(31)によって、前記各タスクプログラム(31)に対応付けられた前記メモリ領域にアクセスされず、第2の駆動状態では、前記各タスクプログラム(31)に対応付けられた前記時間間隔内に、前記各タスクプログラム(31)によって、当該各タスクプログラム(31)に対応付けられた前記メモリ領域にアクセスされないことを特徴とする、請求項〜4のいずれか1項に記載の方法。
  6. タスクプログラム(31)には、入力データのための第1のメモリ領域(17、15)が対応付けられ、前記タスクプログラム(31)には、出力データのための第2のメモリ領域(11、16)が対応付けられ、状態情報(20、21)が設けられ、前記状態情報(20、21)は、現在の前記時間間隔の終了前の、前記タスクプログラム(31)の実行期間内には前記入力データ(17、15)にもはやアクセスされず、前記出力データ(11、16)での変更がもはや行われないことを示すことを特徴とする、請求項1〜5のいずれか1項に記載の方法。
  7. 請求項1〜6のいずれか1項に記載の方法を実行するよう構成された、制御装置(33)。
JP2018561304A 2016-02-16 2017-02-02 制御装置を駆動するための方法及び装置 Active JP6679758B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102016202305.5 2016-02-16
DE102016202305.5A DE102016202305A1 (de) 2016-02-16 2016-02-16 Verfahren und Vorrichtung zum Betreiben eines Steuergeräts
PCT/EP2017/052194 WO2017140504A1 (de) 2016-02-16 2017-02-02 Verfahren und vorrichtung zum betreiben eines steuergeräts

Publications (2)

Publication Number Publication Date
JP2019510327A JP2019510327A (ja) 2019-04-11
JP6679758B2 true JP6679758B2 (ja) 2020-04-15

Family

ID=57960449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018561304A Active JP6679758B2 (ja) 2016-02-16 2017-02-02 制御装置を駆動するための方法及び装置

Country Status (7)

Country Link
US (1) US11115232B2 (ja)
EP (1) EP3417373B1 (ja)
JP (1) JP6679758B2 (ja)
CN (1) CN108701054B (ja)
DE (1) DE102016202305A1 (ja)
FR (1) FR3047821B1 (ja)
WO (1) WO2017140504A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018205390A1 (de) * 2018-04-10 2019-10-10 Robert Bosch Gmbh Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten
DE102018205392A1 (de) * 2018-04-10 2019-10-10 Robert Bosch Gmbh Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten
JP7204443B2 (ja) * 2018-11-22 2023-01-16 日立Astemo株式会社 車両制御装置およびプログラム実行方法
JP2023161698A (ja) * 2022-04-26 2023-11-08 日立Astemo株式会社 電子制御装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195699B1 (en) * 1998-11-03 2001-02-27 Acorn Networks, Inc. Real-time scheduler method and apparatus
JP2000339029A (ja) * 1999-05-31 2000-12-08 Komatsu Ltd 車両の干渉防止装置
DE10229520A1 (de) 2002-07-01 2004-01-15 Robert Bosch Gmbh Verfahren und Vorrichtung sowie Betriebssystem zur Steuerung von Vorgängen bei einem Fahrzeug
EP1870806A1 (en) 2006-06-19 2007-12-26 Wolfgang Pree GmbH System for executing distributed sofware
US8453003B2 (en) * 2007-08-24 2013-05-28 Nec Corporation Communication method
CN101772073A (zh) * 2009-01-05 2010-07-07 中兴通讯股份有限公司 基于时分双工系统的混合自动重传请求的实现方法和装置
JP5218585B2 (ja) 2011-03-15 2013-06-26 オムロン株式会社 制御装置およびシステムプログラム
US8996195B2 (en) * 2011-04-12 2015-03-31 Georgia Tech Research Corporation Systems and methods for derivative-free adaptive control
JP5099251B1 (ja) * 2011-07-15 2012-12-19 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラム、plc用のシステムプログラムを格納した記録媒体、plcシステム、plcサポート装置、plcサポートプログラム、および、plcサポートプログラムを格納した記録媒体
DE102013202774A1 (de) * 2013-02-20 2014-08-21 Robert Bosch Gmbh Vorrichtung, Verfahren und System zum Steuern eines Prozessors
AT514444A2 (de) * 2013-06-24 2015-01-15 Fts Computertechnik Gmbh Verfahren und Vorrichtung zur zeitrichtigen Datenübergabe an die zyklischen Tasks in einem verteilten Echtzeitsystem
CN104462987A (zh) * 2014-11-29 2015-03-25 中国航空工业集团公司第六三一研究所 一种大型飞机综合处理平台中的任务安全共享方法
CN104331327B (zh) 2014-12-02 2017-07-11 山东乾云启创信息科技股份有限公司 大规模虚拟化环境中任务调度的优化方法及优化系统

Also Published As

Publication number Publication date
FR3047821A1 (fr) 2017-08-18
EP3417373A1 (de) 2018-12-26
WO2017140504A1 (de) 2017-08-24
DE102016202305A1 (de) 2017-08-17
KR20180108831A (ko) 2018-10-04
US11115232B2 (en) 2021-09-07
EP3417373B1 (de) 2022-04-06
CN108701054B (zh) 2022-04-19
JP2019510327A (ja) 2019-04-11
US20210194720A1 (en) 2021-06-24
CN108701054A (zh) 2018-10-23
FR3047821B1 (fr) 2020-10-16

Similar Documents

Publication Publication Date Title
JP6679758B2 (ja) 制御装置を駆動するための方法及び装置
Kramer et al. Real world automotive benchmarks for free
US8321065B2 (en) Method for controlling/regulating at least one task
JP2006515690A (ja) 複数のプロセッサを有するデータ処理システムと、複数のプロセッサを有するデータ処理システムのためのタスクスケジューラと、タスクスケジューリングの対応する方法
EP3436944B1 (en) Fast transfer of workload between multiple processors
WO2008043564A1 (en) Synchronization and concurrent execution of control flow and data flow at task level
US20040117793A1 (en) Operating system architecture employing synchronous tasks
CN111078323A (zh) 基于协程的数据处理方法、装置、计算机设备及存储介质
US9229716B2 (en) Time-based task priority boost management using boost register values
CN108958903B (zh) 嵌入式多核中央处理器任务调度方法与装置
CN109582379B (zh) 基于微内核操作系统的可编程逻辑控制器系统、控制方法
WO2022237419A1 (zh) 任务执行方法、装置及存储介质
US7603673B2 (en) Method and system for reducing context switch times
EP3920030A1 (en) Data processing
KR102685982B1 (ko) 제어기를 작동시키기 위한 방법 및 장치
US11055163B2 (en) Method and device for error handling in a communication between distributed software components
JP2021086512A (ja) 情報処理装置
JP6729430B2 (ja) 電子制御装置
US11048575B2 (en) Method and device for error handling in a communication between distributed software components
CN111221535B (zh) 线程分配方法、服务器及计算机可读存储介质
US11520638B1 (en) Combined active and preinitialized resource management for rapid autoscaling
Eberhard et al. Timing Protection in Multifunctional and Safety-Related Automotive Control Systems
Holenderski et al. Using fixed priority scheduling with deferred preemption to exploit fluctuating network bandwidth
Buttazzo Why real-time computing?
Schaffer et al. The joy of scheduling

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180815

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180815

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190208

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190214

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190222

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190318

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190710

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20191010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191224

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200318

R150 Certificate of patent or registration of utility model

Ref document number: 6679758

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250