(57)【要約】【課題】  処理の開始順序と終了順序の整合性を保証することを目的とする。【解決手段】  プロセッサ２−１、２−２とメモリ３を有し、入力装置から取得した入力データで出力装置を制御する車両制御装置１であって、前記入力装置からデータを受け付けて、当該受け付けたデータを処理する演算部１０と、前記演算部のタスクの情報を管理するタスク情報テーブル１３と、前記タスク情報テーブル１３を制御するテーブル制御部１５と、を有し、前記テーブル制御部１５は、複数のタスクをタスク情報テーブル１３に登録し、処理開始時刻を参照して優先度を制御し、終了したタスクをテーブルから削除して、処理の開始順序と終了順序の整合性を確保する。【選択図】図１
2020197886.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクの処理を制御する制御装置において、
複数のタスクから構成されるタスクグループを単位として処理を実行するプロセッサと、
前記タスクグループの処理開始時間とタスクの種別に応じて、当該タスクの処理の優先度を算出し、タスク情報テーブルに登録する手段とを有し、
前記プロセッサは、前記タスク情報テーブルに登録された優先度に従ってタスクを処理することを特徴とする制御装置。
【請求項２】
請求項１に記載の制御装置において、
前記タスクは、予めその種別ごとに優先度が定まっており、
前記タスクの起動要求を受付ける手段と、
受付けられた前記起動要求の示すタスクの識別情報、種別、当該種別に応じて定まっている優先度および当該タスクを含むタスクグループの処理開始時間をタスク情報テーブルに登録する手段と、
登録された前記タスクの種別と同じ種別のタスクを、前記タスク情報テーブルから抽出する手段とをさらに有し、
前記タスク情報テーブルに登録する手段は、抽出されたタスクの処理開始時間を特定し、当該処理開始時間に従った前記優先度を各タスクに対して付与することを特徴とする制御装置。
【請求項３】
請求項１または２のいずれかに記載の制御装置において、
前記タスク情報テーブルに登録する手段は、前記処理開始時間が古いタスクほど高い優先度を付与することを特徴とする制御装置。
【請求項４】
請求項１乃至３のいずれかに記載の制御装置において、
さらに、
前記タスクの処理の終了を検知する手段と、
前記処理の終了の検知に応じて、前記タスク情報テーブルから処理が終了したタスクの識別情報、種別、当該種別に応じて定まっている優先度および当該タスクを含むタスクグループの処理開始時間を削除する手段を有することを特徴とする制御装置。
【請求項５】
請求項２乃至４のいずれかに記載の制御装置において、
前記プロセッサが第１および第２のプロセッサからなり、
前記第２のプロセッサは、前記第１のプロセッサで実行しているタスクが割込み処理で中断した場合、当該第２のプロセッサで前記中断したタスクより１段階優先度の高いタスクが終了した後に、前記中断したタスクを再開することを特徴する制御装置。
【請求項６】
制御装置を用いた複数のタスクの処理を制御する制御方法において、
前記制御装置は、複数のタスクから構成されるタスクグループを単位として処理を実行するプロセッサを有し、
前記タスクグループの処理開始時間とタスクの種別に応じて、当該タスクの処理の優先度を算出し、タスク情報テーブルに登録し、
前記プロセッサが、前記タスク情報テーブルに登録された優先度に従ってタスクを処理することを特徴とする制御方法。
【請求項７】
請求項６に記載の制御方法において、
前記タスクは、予めその種別ごとに優先度が定まっており、
前記タスクの起動要求を受付け、
受付けられた前記起動要求の示すタスクの識別情報、種別、当該種別に応じて定まっている優先度および当該タスクを含むタスクグループの処理開始時間をタスク情報テーブルに登録し、
登録された前記タスクの種別と同じ種別のタスクを、前記タスク情報テーブルから抽出し、
前記タスク情報テーブルへの登録は、抽出されたタスクの処理開始時間を特定し、当該処理開始時間に従った前記優先度を各タスクに対して付与することを特徴とする制御方法。
【請求項８】
請求項６または７のいずれかに記載の制御方法において、
前記タスク情報テーブルへの登録において、前記処理開始時間が古いタスクほど高い優先度を付与することを特徴とする制御方法。
【請求項９】
請求項６乃至８のいずれかに記載の制御方法において、
前記タスクの処理の終了を検知し、
前記処理の終了の検知に応じて、前記タスク情報テーブルから処理が終了したタスクの識別情報、種別、当該種別に応じて定まっている優先度および当該タスクを含むタスクグループの処理開始時間を削除することを特徴とする制御方法。
【請求項１０】
請求項７乃至９のいずれかに記載の制御方法において、
前記プロセッサが第１および第２のプロセッサからなり、
前記第２のプロセッサは、前記第１のプロセッサで実行しているタスクが割込み処理で中断した場合、当該第２のプロセッサで前記中断したタスクより１段階優先度の高いタスクが終了した後に、前記中断したタスクを再開することを特徴する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、いわゆるリアルタイム処理が求められる車載等の制御装置の演算処理技術に関するものである。その中でも特に、複数のタスクで構成されるタスクグループを連続的に並列処理する際の演算処理技術に関する。
【背景技術】
【０００２】
制御装置は入力データを処理して、後段の装置にデータを出力する。リアルタイム性を必要とする制御については、データの入力及び出力タイミングに制約が設けられており、その制約を満たすように設計が行われる。  
【０００３】
例えば、車両制御システムは、電子化された車載装置を制御するＥＣＵ、すなわち電子制御装置（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）を含んで構成され、センサからの入力データを処理して、アクチュエータなどへ信号を出力することで車両を制御している。  
【０００４】
近年の車両制御システムでは、画像やレーダーなど複数のセンサからの情報を統合して制御する技術が採用されている。情報の統合にあたっては、車両制御装置（電子制御装置）が、同時刻に取得したデータを照合して正常であることを判定する必要がある。しかし、センサ毎にサンプリングレートが異なるなど、厳密に同時刻のデータを取得することは困難であるため、車両制御装置では所定の期間を設け、時間差が閾値以下（所定の期間内）であれば正常としている。
【０００５】
特許文献１では、車両に搭載される車載通信システムであって、ネットワークに接続され、周期的に前記ネットワークにデータを出力する複数の情報処理手段と、各情報処理手段が周期的に前記ネットワークに出力するデータのうち、各情報処理手段が最短周期で出力するデータを判別し、該最短周期で出力するデータが前記ネットワークに出力されたか否かを監視することにより、該車載通信システムの通信異常を検知する監視手段と、を有する車載通信システムが記載されている。この車載通信システムでは、最小時間間隔をもとにして、システムが正常か否かを判定している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−２３６１８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来のネットワークシステムでは、処理の順序の整合性については考慮されていなかった。  
【０００８】
マルチコアシステムにおいて、システムのスループットを向上させるために、異なるプロセッサで同一の処理を並列に実行することがある。このような場合、処理の演算を行うプロセッサの性能が同じであれば、通常先に開始されたものが先に終了する。しかし、一方のプロセッサにおいてのみ、割込み処理が発生したり、処理の遅延が発生したりすると、処理間で開始順序と終了順序が一致しないことがある。  
【０００９】
また、同一の処理であるがゆえに、優先度に差がなく、優先度によるタスク切り替えも起こらない。
【００１０】
本発明は、上記の課題を解決するためになされたものであり、処理の開始順序と終了順序の整合性の保証を目的とする。なお、本願明細書では「同一の処理」とは、「同一の種別の処理」を含み、上述のように優先度に差がないものを含む。
【課題を解決するための手段】
【００１１】
本発明では、タスクグループを連続的に並列処理する場合、タスクグループの処理開始時間とタスクの種別に応じて、当該タスクの処理の優先度を設定するものである。また、本発明の一態様として、各タスクの優先度をそのタスクの種別ごとに設定しておき、所定のタイミングにおいて、同一の種別に対して、タスクグループの処理開始時刻に応じた優先度を設定ないし修正する優先度制御を行うことを含む。
【発明の効果】
【００１２】
本発明によれば、処理のための優先度の設定を処理の状況に応じて柔軟に制御することが可能になる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施例に係る車両制御装置の構成の一例を示すブロック図である。
【図２】本発明の一実施例に係るタスク情報テーブルの構成の一例を示す図である。
【図３】本発明の一実施例に係るエントリ登録部で行われる処理の一例を示すフローチャートである。
【図４】本発明の一実施例に係る優先度制御部で行われる処理の一例を示すフローチャートである。
【図５】本発明の一実施例に係るエントリ削除部で行われる処理の一例を示すフローチャートである。
【図６】本発明の一実施例に係る車両制御装置の動作の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、実施例について図面を用いて説明する。なお、本発明は以下の実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲で、各部の構成などを適宜追加、変更、削除などして実施することができる。ここでは例として、本発明を車両制御装置に適用した場合の形態を示すが、車両以外の移動手段や、移動手段以外のリアルタイム処理が求められる処理の制御にも適用可能である。
【００１５】
本実施例では、制御装置の一例として、車両制御装置としてのＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）を用いて説明する。ＥＣＵを制御するプログラムは、タスクで構成される。タスクでは複数の演算処理を行い、結果を出力する。
【００１６】
本実施例では、車両制御装置で複数のプロセッサにより並列にタスクを実行し、タスクの優先度を適切に制御し、処理の開始順序と終了順序の整合性を保証する例を示す。タスクは、関数、モジュール、サブルーチン、プロセス、手続きなどとも言い換えることができる。プログラムはＥＣＵ内の演算装置（プロセッサなど）が実行することによって、それぞれの機能を提供する。すなわち、処理の主体は演算装置であるが、以降、説明を簡素化するため、各プログラムを主語として説明することがある。
【００１７】
図１は、本実施例に係る車両制御装置の構成の一例を示すブロック図である。
【００１８】
車両制御装置１は、プロセッサ２−１、２−２と、メモリ３と、不揮発性メモリ４と、Ｉ／Ｏインタフェース（図中Ｉ／Ｏ）５と、ネットワークインタフェース６と、タイマ９を含む。プロセッサ２〜タイマ９は、インターコネクト８を介して接続される。
Ｉ／Ｏインタフェース５は、入力装置１１と出力装置１４に接続されて通信を行う。ネットワークインタフェース６は、ネットワーク２４を介して外部制御装置１２−１、１２−２に接続されて通信を行う。
【００１９】
メモリ３には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）７と、演算部１０と、タスク情報テーブル１３と、テーブル制御部１５がロードされてプロセッサ２−１もしくは２−２によって実行される。
【００２０】
演算部１０は、ＯＳ７上で稼働するソフトウェアである。ＯＳ７は、例えば、ＡＵＴＯＳＡＲ（Ａｕｔｏｍｏｔｉｖｅ  Ｏｐｅｎ  Ｓｙｓｔｅｍ  Ａｒｃｈｉｔｅｃｔｕｒｅ）に準拠したＯＳや、リアルタイムＯＳを用いることができる。
【００２１】
演算部１０は、入力装置１１や外部制御装置１２からデータを取得する。取得したデータをタスク１０１、１０２、１０３で演算して出力用のデータを生成する。出力用のデータは、出力装置１４や外部制御装置１２または他の制御部へ出力される。
【００２２】
ＯＳ７は、タスク情報テーブル１３を参照し、タスクをプロセッサに割り当てる。
【００２３】
演算部１０は、１以上の数のタスク１０１〜１０３からなる。タスク１０１〜１０３は、ＯＳ７によりプロセッサ２−１もしくは２−２に割り当てられる。
【００２４】
タスク情報テーブル１３は、１以上の数のエントリ１３１〜１３３からなる。エントリ１３１〜１３３は、テーブル制御部１５の各機能によって制御される。
【００２５】
テーブル制御部１５は、エントリ登録部１５１、優先度制御部１５２、エントリ削除部１５３からなる。
【００２６】
プロセッサ２は、割り当てられたタスクの処理を実行することによって、所定の演算を提供する演算部として稼働する。例えば、プロセッサ２は、タスクに従って処理を実行することで、演算部１０として機能する。さらに、各タスクが実行する複数の処理のそれぞれの機能を提供する演算部としても稼働する。計算機及び計算機システムは、これらの演算部を含む装置及びシステムである。
【００２７】
車両制御装置１の各機能を実現するタスク、テーブル等の情報は、不揮発性半導体メモリや、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００２８】
なお、図１ではプロセッサ２−１、２−２を含む構成を示したが、これはプロセッサの数を限定するものではなく、３以上の数のプロセッサを含む等、プロセッサの数を変更しても構わない。なお、図１では、演算部１０、タスク情報テーブル１３、テーブル制御部１５について、独立した拡大図としても記載した。
【００２９】
図２は、タスク情報テーブル１３の構成の一例を示す図である。タスク情報テーブル１３は、タスクＩＤ２４１と、タスク種別２４２と、優先度２４３、ステータス２４４、処理開始時刻２４５のフィールドで構成される。
【００３０】
タスクＩＤ２４１のフィールドには、タスクを一意に表す識別子が登録される。タスク種別２４２のフィールドには、タスクの種別を一意に表す識別子が登録される。優先度２４３のフィールドには、タスクの優先度を表す数値が登録される。ステータス２４４のフィールドには、タスクが実行中か待機中のどちらのステータスであるかが登録される。処理開始時刻２４５のフィールドには、タスクが含まれる一連の処理の開始時刻が登録される。
【００３１】
以下、図３に示すタスク情報テーブル１３への登録処理および図４に示すタスク情報テーブル１３への登録内容に従った優先度制御処理の内容を説明する。ここでは、図２や図６も適宜参照して説明する。
【００３２】
図３は、エントリ登録部１５１で行われる処理の一例を示すフローチャートである。エントリ登録部の処理４１は、以下の様に実行される。この処理は、起動されたタスク（つまり、処理すべきタスク）に関する情報をタスク情報テーブル１３に登録する処理である。これは、タスクの処理を制御するために、図２に示す各項目を登録するものである。
【００３３】
まず、ステップ４１１では、タスクが起動されたことを検知し、当該タスクの処理を制御に用いられる情報を登録するために、タスク情報テーブル１３の中から、エントリの登録が可能な空きレコードを探す。
【００３４】
ここでは、タイミングが図６に示す時刻（ｔ）＝２３−０、つまり、タスクＢ１７−２が完了したタイミングで、タスクＣ１７−３が起動された場合、つまり、タスクＣ１７−３を登録する例で、その処理内容を説明する。本例では、図２の（ａ）ではタスク情報テーブル１３の最終のレコードが空いているため、本レコードを空きとして特定する。
【００３５】
次に、ステップ４１２〜４１５において、起動されたタスクについて、タスクの処理を制御に用いられる情報を、タスク情報テーブル１３のうちステップ４１１で特定された空きレコードに登録する。登録する各情報は以下のとおりであり、登録順序は問わない（一括での書き込みも含む）。その内容は、以下のとおりである。
【００３６】
ステップ４１２：タスクを識別するタスクＩＤ
ステップ４１３：タスクの種別を示すタスク種別
ステップ４１４：タスクの処理の優先度合いを示すタスク優先度
ステップ４１５：タスクの処理状況を示すステータス
なお、タスク種別は、通常処理であるタスクグループに含まれるタスクの他、割込みなど特殊な処理を含む。また、タスクの処理状況には待機中、実行中の他、終了、一時停止中などがある。また、これらの情報がタスクの起動を検知した際、入手可能な付属情報である。
【００３７】
次に、ステップ４１６では、起動されたタスクに処理開始時刻の情報があるかを、判定する。この判断は、タスクの起動を検知した際に入手可能な付属情報に処理開始時刻が含まれるかで行われる。
【００３８】
ステップ４１６にて処理開始時刻があると判断された場合、ステップ４１７で、起動されたタスクの処理開始時刻を、タスク情報テーブル１３に登録する。
【００３９】
ステップ４１６にて処理開始時刻がないと判断された場合、ステップ４１８で、タイマから時刻を取得し、起動されたタスクの処理開始時刻として、タスク情報テーブル１３に登録する。以上で、タスク情報テーブル１３への登録処理を終了する。
【００４０】
この結果、タスク情報テーブル１３は、図２（ｂ）に示す内容の情報が登録される。つまり、タスクＣ１７−３については、図２（ｂ）に示すように、タスクＩＤ＝００６、タスク種別＝Ｃ、優先度＝１２０、ステータス＝待機中、処理開始時刻＝２０−２が登録される。ここで、優先度はタスク種別Ｃであるため、タスクＡ１７−１、１８−１やタスクＢ１７−２、１８−２よりも低い値である１２０が設定される。なお、既に他のタスクＣが登録されている場合は、優先度として登録済と同じ値を記録する。また、処理開始時刻は、ステップ４１７で同じタスクグループのタスクＡ１８−１やタスクＢ１８−２と同じく２０−２が登録される。
【００４１】
次に、優先度を制御する、つまり、優先度を算出する処理を、図４を用いて説明する。図４は、優先度制御部１５２で行われる処理の一例を示すフローチャートである。優先度制御部の処理５１は、以下の様に実行される。
【００４２】
ステップ５１１では、図３で説明したタスク情報テーブル１３へ登録されたタスクと同一のタスク種別であるエントリ(タスク)を、タスク情報テーブル１３から抽出する。例えば、図３での処理により、タスクＣ１８−３に関する情報が登録された場合、同種のタスクＣ１７−２を抽出する(図示せず)。
【００４３】
ステップ５１２では、抽出したエントリ(タスク)と登録したタスクのうち、処理開始時刻が古いものから順に高い優先度を登録する。例えば、タスクＣ１８−３、のタスクＣ１７−２の場合、共に優先度が１２０であると仮定すると、処理開始時刻がより古いタスクＣ１７−３に優先度１２８を付与し、より新しいタスクＣ１８−３の優先度１２７を付与する。この結果は、図６の１３−１や１３−２に示すとおりとなる。なお、この優先度の付与は古いものほど優先度が高くなればよく、本例のように双方の優先度を変更してもよいし、その一部のみを変更してもよい。また、優先度の変更においては、タスク種別により優先度の高い各タスクを超えないようにし、タスク種別により優先度の低い各タスクの優先度を下回らないように制御する。以下、このようにして設定された優先度に従ってタスクの処理を実施する。
【００４４】
図５は、エントリ削除部１５３で行われる処理の一例を示すフローチャートである。この処理は、処理が終了したタスクの情報を、タスク情報テーブル１３から削除し、メモリなどのリソースを有効利用するための処理である。エントリ削除部の処理６１は、以下の様に実行される。
【００４５】
ステップ６１１では、終了したタスクのエントリを、タスク情報テーブル１３から探す。これは、タスク情報テーブルのステータス２４４から「終了」が登録された情報を特定する。そして、ステップ６１２では、ステップ６１１で特定されたエントリ(情報)を削除する。
【００４６】
次に、図６を用いて、上述した各処理で実行される車両制御装置１の動作の一例を模式的に説明する。本例は、時刻（ｔ）＝２３−１で割込み処理が起動された場合について、説明する。
【００４７】
プロセッサ２−１は、周期起動要求２０−１、２０−３により、タスクＡ１６−１、１８−１それぞれの実行を開始する。タスクＡ１６−１は処理を行い、タスクＢ１６−２の起動要求を出す。タスクＢ１６−２は処理を行い、タスクＣ１６−３の起動要求を出す。タスクＡ１８−１、タスクＢ１８−２、タスクＣ１８−３も同様である。
【００４８】
プロセッサ２−２は、周期起動要求２０−２により、タスクＡ１７−１の実行を開始する。タスクＡ１７−１は処理を行い、タスクＢ１７−２の起動要求を出す。タスクＢ１７−２は処理を行い、タスクＣ１７−３の起動要求を出す。
【００４９】
図６の例では、プロセッサ２−２において、タスクＣ１７−３の処理の途中の時刻（ｔ）２３−１に、外部割込み要求２１が発生し、割込み処理１９の実行が開始されている。まず、割込み処理１９が発生した際のタスク情報テーブル１３は、図６の１３−１が示す内容となる。これは、図２（ｂ）の内容に対し、その処理が終了されたタスクが図５の処理により削除されており、タスクＢ１８−２とタスクＣ１７−３が実行中であることを示す。
そして、割込み処理１９の発生を検知すると、割込み処理１９を登録し、１３−１で実行中だったタスクで最も優先度の低いタスクＣ１７−３のステータスを待機中とする(図示せず)。この登録に従って、プロセッサ２では、タスクＣ１７−３を中断し、割込み処理１９を実行する。
【００５０】
次に、時刻（ｔ）＝２３−２において、タスクＢ１８−２が終了し、タスクＣ１８−３の起動要求がかかる。つまり、プロセッサ２−１は、タスク情報テーブル１３は１３−２の状態となり、ステータスが待機中で最も優先度が高いタスクＣ１７−３の実行を再開する。この結果、１３−１において、タスクＣ１７−３のステータスを待機中から実行中に変更する。なお、タスク管理テーブルが１３−１から１３−２に遷移する際、上述のとおりタスクＣ１７−３の優先度が１２０から１２８に変更され、また、タスクＣ１８−３の優先度が１２７に変更される。
【００５１】
割込み処理１９が終了すると、プロセッサ２−２は、タスク情報テーブル１３において１３−２でタスクＣ１８−３のみが、ステータスが待機中であるタスクＣ１８−３の実行を再開する。これは言い換えると、ステータスが待機中で優先度が最も高いタスクＣ１８−３の実行を再開することとなる。
【００５２】
以上、本発明の一実施例に係る車両制御装置１によれば、ある処理に予期しない原因で遅延した場合、処理の開始順序と終了順序の一致しないことを抑止することが可能となる。より具体的には、異なるプロセッサで実行される同優先度の処理のどちらかに遅延が発生し、先に開始された処理が後に開始された処理より遅く終了してしまうことを防ぎ、処理の開始順序と終了順序の整合性を保証することが可能となる。
【００５３】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【００５４】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。  
【００５５】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００５６】
１  車両制御装置
２−１、２−２  プロセッサ
３  メモリ
７  ＯＳ
１０  演算部
１３  タスク情報テーブル
１５  テーブル制御部
１５１  エントリ登録部
１５２  優先度制御部
１５３  エントリ削除部
【図１】
2020197886.tif 000003
【図２】
2020197886.tif 000004
【図３】
2020197886.tif 000005
【図４】
2020197886.tif 000006
【図５】
2020197886.tif 000007
【図６】
2020197886.tif 000008