IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーの特許一覧 ▶ 株式会社エヌエスアイテクスの特許一覧

<>
  • 特許-情報処理装置 図1
  • 特許-情報処理装置 図2
  • 特許-情報処理装置 図3
  • 特許-情報処理装置 図4
  • 特許-情報処理装置 図5
  • 特許-情報処理装置 図6
  • 特許-情報処理装置 図7
  • 特許-情報処理装置 図8
  • 特許-情報処理装置 図9
  • 特許-情報処理装置 図10
  • 特許-情報処理装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-01
(45)【発行日】2022-11-10
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
   G06F 11/22 20060101AFI20221102BHJP
   G06F 15/167 20060101ALI20221102BHJP
【FI】
G06F11/22 673D
G06F15/167 610Z
G06F11/22 636
【請求項の数】 1
(21)【出願番号】P 2018068426
(22)【出願日】2018-03-30
(65)【公開番号】P2019179409
(43)【公開日】2019-10-17
【審査請求日】2021-02-15
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(73)【特許権者】
【識別番号】519084397
【氏名又は名称】株式会社エヌエスアイテクス
(74)【代理人】
【識別番号】100140486
【弁理士】
【氏名又は名称】鎌田 徹
(74)【代理人】
【識別番号】100170058
【弁理士】
【氏名又は名称】津田 拓真
(72)【発明者】
【氏名】山下 源
(72)【発明者】
【氏名】丸目 佳
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2008-226186(JP,A)
【文献】米国特許出願公開第2016/0232029(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/22
G06F 15/167
(57)【特許請求の範囲】
【請求項1】
同じ構成を有する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置であって、
前記複数の処理実行ハードウェアに対する複数の故障検知実行命令を実行するチェック実行モードの開始要否を認識する実行認識部(141)と、
前記実行認識部が前記チェック実行モードの開始を認識した場合に、前記複数の処理実行ハードウェアに対して、前記チェック実行モードを実行する命令出力部(142)と、を備え、
前記命令出力部は、前記チェック実行モードの実行を少なくとも前記複数の処理実行ハードウェアの設置数と同じ回数以上行うものであって、
2回目以降の前記チェック実行モードは、前回の前記チェック実行モードにおいて実行した前記処理実行ハードウェアとは異なる前記処理実行ハードウェアにおいて前記故障検知実行命令が実行される、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、同じ構成を有する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置に関する。
【背景技術】
【0002】
複数の処理実行ハードウェアであるプロセッサエレメントの機能安全を担保するための発明として、下記特許文献1に記載のものが開示されている。下記特許文献1では、複数個のプロセッサエレメントに同じデータ処理を実行させてプロセッサエレメントの機能安全を実現する場合に、複数のプロセッサエレメントから発行されたアクセス要求の不一致が確定することをもって安全対策の処理を行い、一致することをもって当該アクセス要求に応答するアクセス処理を開始する制御を行うバスインタフェースユニットを採用している。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2015-153282号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
機能安全の要件としては、処理を異なるハードウェアリソースで重複実行し、結果を比較してハードウェア故障の有無を確認するものとしている。重複実行は、実行タイミングや実行ハードウェアリソースを変えることが、故障検出の要件となっている。従来は、同じ構成を有する複数の処理実行ハードウェアに対して、異なる種類のソフトウェアを実行して故障の検出を行い、故障検出時には同一のソフトウェアを重複実行して結果を比較することが行われている。
【0005】
しかしながら、同じ構成を有する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置では、異なる種類のソフトウェアを実行したとしても、必ずしも全ての処理実行ハードウェアが処理を実行するとは限らず、一部の処理実行ハードウェアのみが処理を実行する場合も想定される。
【0006】
本開示は、同じ構成を有する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置であって、確実に機能安全を確保することができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示は、同じ構成を有する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置であって、複数の処理実行ハードウェアに対する複数の故障検知実行命令を実行するチェック実行モードの開始要否を認識する実行認識部(141)と、実行認識部が前記チェック実行モードの開始を認識した場合に、複数の処理実行ハードウェアに対して、チェック実行モードを実行する命令出力部(142)と、を備えている。命令出力部は、チェック実行モードの実行を少なくとも複数の処理実行ハードウェアの設置数と同じ回数以上行うものであって、複数の故障検知実行命令それぞれは異なる処理実行ハードウェアにおいて実行されるようにチェック実行モードを実行する。
【0008】
チェック実行モードの実行を少なくとも複数の処理実行ハードウェアの設置数と同じ回数以上行い、複数の故障検知実行命令それぞれは異なる処理実行ハードウェアにおいて実行されるようにチェック実行モードを実行することで、複数設けられた処理実行ハードウェアに対して偏り無く、時刻をずらして故障検知命令を実行させることができるので、確実に機能安全を確保することができる。
【0009】
尚、「課題を解決するための手段」及び「特許請求の範囲」に記載した括弧内の符号は、後述する「発明を実施するための形態」との対応関係を示すものであって、「課題を解決するための手段」及び「特許請求の範囲」が、後述する「発明を実施するための形態」に限定されることを示すものではない。
【発明の効果】
【0010】
本開示によれば、同じ構成を有する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置であって、確実に機能安全を確保することができる情報処理装置を提供することができる。
【図面の簡単な説明】
【0011】
図1図1は、本実施形態の前提となる並列処理について説明するための図である。
図2図2は、図1に示される並列処理を実行するためのシステム構成例を示す図である。
図3図3は、図2に用いられるDFPの構成例を示す図である。
図4図4は、スケジューラの機能を説明するための図である。
図5図5は、スケジューラの機能を説明するための図である。
図6図6は、スケジューラの機能を説明するための図である。
図7図7は、スケジューラの機能を説明するための図である。
図8図8は、スケジューラの機能を説明するための図である。
図9図9は、スケジューラの機能を説明するための図である。
図10図10は、スケジューラの機能を説明するための図である。
図11図11は、スケジューラの機能を説明するための図である。
【発明を実施するための形態】
【0012】
以下、添付図面を参照しながら本実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【0013】
図1(A)は、グラフ構造のプログラムコードを示しており、図1(B)は、スレッドの状態を示しており、図1(C)は、並列処理の状況を示している。
【0014】
図1(A)に示されるように、本実施形態が処理対象とするプログラムは、データと処理とが分割されているグラフ構造を有している。このグラフ構造は、プログラムのタスク並列性、グラフ並列性を保持している。
【0015】
図1(A)に示されるプログラムコードに対して、コンパイラによる自動ベクトル化とグラフ構造の抽出を行うと、図1(B)に示されるような大量のスレッドを生成することができる。
【0016】
図1(B)に示される多量のスレッドに対して、ハードウェアによる動的レジスタ配置とスレッド・スケジューリングにより、図1(C)に示されるような並列実行を行うことができる。実行中にレジスタ資源を動的配置することで、異なる命令ストリームに対しても複数のスレッドを並列実行することができる。
【0017】
続いて図2を参照しながら、動的レジスタ配置及びスレッド・スケジューリングを行うアクセラレータとしてのDFP(Data Flow Processor)10を含むシステム構成例である、データ処理システム2を説明する。DFP10は、本開示の情報処理装置に相当する。
【0018】
データ処理システム2は、DFP10と、イベントハンドラ20と、ホストCPU21と、ROM22と、RAM23と、外部インターフェイス24と、システムバス25と、を備えている。ホストCPU21は、データ処理を主として行う演算装置である。ホストCPU21は、OSをサポートしている。イベントハンドラ20は、割り込み処理を生成する部分である。
【0019】
ROM22は、読込専用のメモリである。RAM23は、読み書き用のメモリである。外部インターフェイス24は、データ処理システム2外と情報授受を行うためのインターフェイスである。システムバス25は、DFP10と、ホストCPU21と、ROM22と、RAM23と、外部インターフェイス24との間で情報の送受信を行うためのものである。
【0020】
DFP10は、ホストCPU21の重い演算負荷に対処するために設けられている個別のマスタとして位置づけられている。DFP10は、イベントハンドラ20が生成した割り込みをサポートするように構成されている。
【0021】
続いて図3を参照しながら、DFP10について説明する。図3に示されるように、DFP10は、コマンドユニット12と、スレッドスケジューラ14と、実行コア16と、メモリサブシステム18と、を備えている。
【0022】
コマンドユニット12は、コンフィグ・インターフェイスとの間で情報通信可能なように構成されている。コマンドユニット12は、コマンドバッファとしても機能している。
【0023】
スレッドスケジューラ14は、図1(B)に例示されるような多量のスレッドの処理をスケジューリングする部分である。スレッドスケジューラ14は、スレッドを跨いだスケジューリングを行うことが可能である。
【0024】
実行コア16は、4つのプロセッシングエレメントである、PE#0と、PE#1と、PE#2と、PE#3と、を有している。実行コア16は、独立してスケジューリング可能な多数のパイプラインを有している。
【0025】
メモリサブシステム18は、アービタ181と、L1キャッシュ18aと、L2キャッシュ18bと、を有している。メモリサブシステム18は、システム・バス・インターフェイス及びROMインターフェイスとの間で情報通信可能なように構成されている。
【0026】
続いて、図4を参照しながら、本開示の情報処理装置に含まれるスレッドスケジューラ14について説明する。スレッドスケジューラ14には、プログラムコード(PC)及び命令コードが供給される。本実施形態では、スレッドスケジューラ14の前段のハードウェアで、プログラムコードや命令コードに応じたパリティが生成されスレッドスケジューラ14に入力される。パリティに対応するスケジュールモードも、スレッドスケジューラ14の前段のハードウェアから入力される。
【0027】
スレッドスケジューラ14は、パリティ及びスケジュールモードに応じて、実行パイプ0及び実行パイプ1に命令実行を出力する。一例として、図5を参照しながら説明する。パリティが0であり、スケジュールモードが0の場合、1命令目は実行パイプ1で命令を実行開始する。続いて、2命令目は実行パイプ0で命令を実行し、3命令目は実行パイプ0で命令を実行し、4命令目は実行パイプ1で命令を実行し、5命令目は実行パイプ1で命令を実行し、6命令目は実行パイプ1で命令を実行し、7命令目は実行パイプ0で命令を実行し、8命令目は実行パイプ1で命令を実行する。
【0028】
次に、パリティが1であり、スケジュールモードが1の場合、1命令目は実行パイプ0で命令を実行する。続いて、2命令目は実行パイプ0で命令を実行し、3命令目は実行パイプ0で命令を実行し、4命令目は実行パイプ0で命令を実行し、5命令目は実行パイプ0で命令を実行し、6命令目は実行パイプ0で命令を実行し、7命令目は実行パイプ1で命令を実行し、8命令目は実行パイプ0で命令を実行する。
【0029】
このように、一つの命令列で一対の実行パイプの一方で命令を実行し、次の命令列では前回の命令列で実行した実行パイプの逆位相となるように実行パイプを選択することで、偏り無く実行時刻をずらした命令実行が可能となる。
【0030】
スレッドスケジューラ14は、機能的な構成要素として、実行認識部141と、命令出力部142と、を備えている。実行認識部141は、複数の処理実行ハードウェアである実行パイプに対する複数の故障検知実行命令を実行するチェック実行モードの開始要否を認識する部分である。図4を参照しながら説明した例では、命令コード、パリティ、スケジュールモードが入力されると、実行認識部141はチェック時刻モードの開始要を認識する。
【0031】
命令出力部142は、実行認識部141がチェック実行モードの開始を認識した場合に、複数の処理実行ハードウェアである実行パイプに対して、チェック実行モードを実行する部分である。命令出力部142は、チェック実行モードの実行を少なくとも複数の処理実行ハードウェアの設置数と同じ回数以上行うものであって、複数の故障検知実行命令それぞれは異なる処理実行ハードウェアにおいて実行されるようにチェック実行モードを実行する。
【0032】
図4に示した例では、処理実行ハードウェアである実行パイプが2つ設けられているので、命令列の実行を2回行っている。1命令目は、1回目の実行(スケジュールモード0)では実行パイプ1が実行し、2回目の実行(スケジュールモード1)では実行パイプ0が実行している。以降の命令も、実行パイプ0と実行パイプ1とで交互に実行している。
【0033】
このように、チェック実行モードの実行を少なくとも複数の処理実行ハードウェアの設置数と同じ回数以上行い、複数の故障検知実行命令それぞれは異なる処理実行ハードウェアにおいて実行されるようにチェック実行モードを実行することで、複数設けられた処理実行ハードウェアに対して偏り無く、時刻をずらして故障検知命令を実行させることができるので、確実に機能安全を確保することができる。
【0034】
図4に示した例では、1つのスレッドスケジューラ14に対して、一対の実行パイプ0,1を設け、実行パイプ0と実行パイプ1に対して複数の故障検知実行命令を実行させた。しかしながら、スレッドスケジューラは一つに限られるものではなく、実行パイプも一対に限られるものではない。
【0035】
図6に示す例では、一対のスレッドスケジューラ14A及びスレッドスケジューラ14Bを設けている。スレッドスケジューラ14A及びスレッドスケジューラ14Bに対しては、分配器50が、プログラムコード(PC)及び命令コード、パリティ、スケジュールモードを分配する。
【0036】
スレッドスケジューラ14Aは、パリティ及びスケジュールモードに応じて、実行パイプ0及び実行パイプ1に命令実行を出力する。スレッドスケジューラ14Bは、パリティ及びスケジュールモードに応じて、実行パイプ2及び実行パイプ3に命令実行を出力する。
【0037】
一例として、図7を参照しながら説明する。パリティが0であり、スケジュールモードが0の場合、1命令目は実行パイプ3で命令を実行開始する。続いて、2命令目は実行パイプ1で命令を実行し、3命令目は実行パイプ2で命令を実行し、4命令目は実行パイプ0で命令を実行し、5命令目は実行パイプ1で命令を実行し、6命令目は実行パイプ3で命令を実行し、7命令目は実行パイプ0で命令を実行し、8命令目は実行パイプ2で命令を実行する。
【0038】
次に、パリティが1であり、スケジュールモードが1の場合、1命令目は実行パイプ0で命令を実行する。続いて、2命令目は実行パイプ3で命令を実行し、3命令目は実行パイプ1で命令を実行し、4命令目は実行パイプ2で命令を実行し、5命令目は実行パイプ2で命令を実行し、6命令目は実行パイプ1で命令を実行し、7命令目は実行パイプ3で命令を実行し、8命令目は実行パイプ0で命令を実行する。
【0039】
このように、一つの命令列で、一対のスレッドスケジューラ14A,14Bの一方で、その一方のスレッドスケジューラが担う一対の実行パイプの一方で命令を実行する。次の命令列では前回の命令列を実行したスレッドスケジューラとは逆位相のスレッドスケジューラが担う実行パイプのいずれかを選択することで、偏り無く実行時刻をずらした命令実行が可能となる。
【0040】
パリティを生成するプログラム単位のバリエーションとしては、上記説明したように、命令毎にプログラムコードと命令コードから生成するものが考えられる。この場合、ハードウェアとして、パリティ生成部が設けられる。
【0041】
パリティを生成する別のバリエーションとしては、図8に示されるように、プログラムバイナリにテスト時のスレッド選択フラグを設けるものが考えられる。この場合、ハードウェアとしてのパリティ生成部は不要となる。パリティを生成する別のバリエーションとしては、プログラムコードや命令コードに設定するデータのベースアドレス等のパリティを用いてもよい。
【0042】
図9に示されるように、命令出力部142は、チェック実行モードの実行開始前に、複数の処理実行ハードウェアに対する命令の実行履歴であるスケジュール履歴51を参照し、実行履歴を含めてチェック実行モードを実行することができる。命令の実行履歴であるスケジュール履歴51は、投機実行でキャンセルされた命令も含めた命令の履歴を持つことで、システムに影響を与えない命令の履歴を持つことになる。従って、キャンセル動作であっても、実行パイプを分けたテストを行うことができる。
【0043】
図10に示されるように、命令出力部142は、チェック実行モードの実行開始前に、複数の処理実行ハードウェアに対して影響を与える命令が実行された結果である実行結果履歴である実行パイプ履歴52を参照し、実行結果履歴を含めてチェック実行モードを実行することができる。処理実行ハードウェアに対して影響を与える命令が実行された結果である実行結果履歴である実行パイプ履歴52とすることで、実行キャンセル履歴を保持する必要がなくなり、実行パイプ履歴52のテーブルをコンパクトにすることができる。
【0044】
図11に示されるように、DFP10とは別にテストモードレジスタ55を設けることができる。テストモードレジスタ55は、テストモード信号をDFP10に出力する。実行認識部141は、このテストモード信号を受信することで、チェック実行モードの開始要を認識することができる。
【0045】
以上、具体例を参照しつつ本実施形態について説明した。しかし、本開示はこれらの具体例に限定されるものではない。これら具体例に、当業者が適宜設計変更を加えたものも、本開示の特徴を備えている限り、本開示の範囲に包含される。前述した各具体例が備える各要素およびその配置、条件、形状などは、例示したものに限定されるわけではなく適宜変更することができる。前述した各具体例が備える各要素は、技術的な矛盾が生じない限り、適宜組み合わせを変えることができる。
【符号の説明】
【0046】
141:実行認識部
142:命令出力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11