JP6810651B2 - 電子制御装置、論理回路の制御方法 - Google Patents

電子制御装置、論理回路の制御方法 Download PDF

Info

Publication number
JP6810651B2
JP6810651B2 JP2017085365A JP2017085365A JP6810651B2 JP 6810651 B2 JP6810651 B2 JP 6810651B2 JP 2017085365 A JP2017085365 A JP 2017085365A JP 2017085365 A JP2017085365 A JP 2017085365A JP 6810651 B2 JP6810651 B2 JP 6810651B2
Authority
JP
Japan
Prior art keywords
data
calculation
unit
circuit
processing
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
JP2017085365A
Other languages
English (en)
Other versions
JP2018186332A (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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems Ltd
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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2017085365A priority Critical patent/JP6810651B2/ja
Priority to CN201880025847.1A priority patent/CN110520855B/zh
Priority to US16/606,830 priority patent/US11132329B2/en
Priority to DE112018001595.5T priority patent/DE112018001595T5/de
Priority to PCT/JP2018/011517 priority patent/WO2018198616A1/ja
Publication of JP2018186332A publication Critical patent/JP2018186332A/ja
Application granted granted Critical
Publication of JP6810651B2 publication Critical patent/JP6810651B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • G06F15/7882Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for self reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0088Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)

Description

本発明は、電子制御装置、および論理回路の制御方法に関する。
車両の自動運転を目指した技術開発が進められている。自動運転は運転者に代わり周囲の認識、車両の制御を行う必要があり、膨大な情報処理が必要になる。増大する情報処理に対応するため、CPUに加え、ハードウェアチップを用いる検討が進められている。その中でも、論理回路を再構成可能なFPGA(Field Programmable Gate Array)等のPLD(Programmable Logic Device)を用いて複数の処理を1つの論理回路上で実現することが期待されている。論理回路を用いて演算を行う場合は、論理回路の再構成に要する時間を考慮した適切な処理が求められる。
特許文献1には、回路素子と、この回路素子に接続されるコンフィギュレーションメモリとを備え、前記コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が構成されるプログラマブル論理回路部と、外部からの制御信号を受けて、前記コンフィギュレーションメモリに外部から入力される回路情報を書き込むための回路情報入力制御手段と、前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成された回路で処理されるデータを一時的に保持するデータキャッシュ手段と、前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成される回路に対して、前記データキャッシュ手段からのデータと、入力データとのいずれか一方を供給するように、外部からの切り替え制御信号に応じて切替制御する入力データ切替手段と、前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成される回路の出力データを、前記データキャッシュ手段に供給するか、あるいは出力データとして導出するかを、外部からの切り替え制御信号に応じて切替制御する出力データ切替手段と、を備えることを特徴とするプログラマブル論理回路装置が開示されている。
特開2006−333496号公報
特許文献1に記載されている発明では、再構成される論理回路において非連続なデータを処理する場合には処理時間を短縮することができない。
本発明の第1の態様による電子制御装置は、再構成されて演算を実行する演算部、および前記演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路と、前記演算部を再構成させるための回路データ、および前記演算対象データを前記論理回路に送信する処理制御部とを備え、前記処理制御部は、再構成の完了後の前記演算部である次回演算部にかかる前記演算対象データである次回演算対象データが得られると、前記次回演算部の再構成が完了しているか否かにかかわらず、前記格納部への前記次回演算対象データの送信を開始し、再構成が完了した前記次回演算部は前記次回演算対象データを用いて演算を行う。
本発明の第2の態様による論理回路の制御方法は、送信される回路データを用いて再構成されて演算を実行する演算部、および前記演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路の制御方法であって、再構成の完了後の前記演算部である次回演算部にかかる前記演算対象データである次回演算対象データが得られると、前記次回演算部の再構成が完了しているか否かにかかわらず、前記格納部への前記次回演算対象データの送信を開始することと、前記次回演算部は再構成が完了すると前記次回演算対象データを用いて演算を行うこととを含む。
本発明によれば、再構成される論理回路において非連続なデータを処理する場合に処理時間を短縮することができる。
車載システム1のシステム構成図 自律走行制御装置2のハードウエア構成図 第1の実施の形態における自律走行制御装置2の機能構成図 処理情報DB3の一例を示す図 演算DB管理情報211の一例を示す図 結果DB管理情報212の一例を示す図 状態管理情報213の一例を示す図 第1の実施の形態における処理制御部202の動作を示すフローチャート 再構成回路203の動作を示すフローチャート 自律走行制御装置2の動作を示すタイミングチャート 従来技術との比較を示すタイミングチャート 変形例2における処理制御部202の動作を表すフローチャート 変形例3における処理制御部202の動作を表すフローチャート 変形例4における処理制御部202の動作を表すフローチャート 第2の実施の形態における自律走行制御装置2の機能構成図 内部処理管理部230の動作を示すフローチャート 外部処理管理部240の動作を示すフローチャート
―第1の実施の形態―
以下、図1〜図11を参照して、本発明にかかる電子制御装置である自律走行制御装置の第1の実施の形態を説明する。
<システム構成>
図1は、自律走行制御装置2を含む車載システム1のシステム構成図である。車載システム1は、車両100に搭載され、車両100の外界状況をカメラにより認識するカメラ情報取得部101と、車両100の外界状況をレーダにより認識するレーダ情報取得部102と、衛星航法システム、たとえばGPSの受信機を用いて車両100の位置を検出する自車位置情報取得部103とを備える。車載システム1はさらに、車両100の自動運転を設定するための自動運転設定部104と、OTA(Over−The−Air)により車載システム1の情報を更新するための無線通信部105を備える。
車載システム1はさらに、自律走行制御装置2と、補助制御部106と、ブレーキ制御部107と、エンジン制御部108と、パワーステアリング制御部109とを備える。自律走行制御装置2、補助制御部106、ブレーキ制御部107、エンジン制御部108、およびパワーステアリング制御部109は、たとえばECU(Electronic Control Unit)である。
カメラ情報取得部101、レーダ情報取得部102、自車位置情報取得部103、自動運転設定部104、無線通信部105、自律走行制御装置2、補助制御部106、ブレーキ制御部107、エンジン制御部108、およびパワーステアリング制御部109は、CAN(Controller Area Network)の車載ネットワークによって相互に通信可能に接続される。
カメラ情報取得部101、レーダ情報取得部102、および自車位置情報取得部103は、それぞれがセンサなどから受信した情報を自律走行制御装置2に送信する。自動運転設定部104は、自動運転時の目的地、ルート、走行速度等の設定情報を自律走行制御装置2に送信する。ただし自動運転設定部104が送信する情報の一部が無線通信部105を介してサーバ装置110など外部から受信したものであってもよい。
自律走行制御装置2は、自動運転制御のための処理を行い処理結果に基づいて制御指令を、ブレーキ制御部107、エンジン制御部108、およびパワーステアリング制御部109へ出力する。補助制御部106は、自律走行制御装置2と同様の制御を補助として行う。ブレーキ制御部107は、車両100の制動力を制御する。エンジン制御部108は、車両100の駆動力を制御する。パワーステアリング制御部109は、車両100のステアリングを制御する。
自律走行制御装置2は、自動運転設定部104により自動運転の設定要求を受け付けると、カメラ情報取得部101、レーダ情報取得部102、自車位置情報取得部103等からの外界の情報を基に車両100が移動する軌道を算出する。そして、自律走行制御装置2は、算出した軌道に従って車両100を移動させるように、制動力、駆動力、操舵などの制御指令を、ブレーキ制御部107、エンジン制御部108、およびパワーステアリング制御部109に出力する。ブレーキ制御部107、エンジン制御部108、およびパワーステアリング制御部109は、自律走行制御装置2から制御指令を受けて、それぞれ不図示の制御対象であるアクチュエータに操作信号を出力する。
図2は、自律走行制御装置2のハードウエア構成図である。自律走行制御装置2は、CPU251と、ROM252と、RAM253と、フラッシュメモリ254と、論理回路255と、通信インタフェース256とを備える。CPU251は、ROM252に格納されたプログラムをRAM253に展開して実行することで後述する機能を実現する。フラッシュメモリ254は不揮発性の記憶領域である。なおCPU251は、ロックステップ方式を採用した複数のコアを持つプロセッサであってもよい。
論理回路255は、FPGA(Field Programmable Gate Array)などのPLD(Programmable Logic Device)を用いた再構成可能な論理回路である。論理回路255はその一部のみを再構成することが可能な、いわゆる部分再構成可能な論理回路である。通信インタフェース256は、CAN等の所定のプロトコルで通信するインタフェースである。自律走行制御装置2は、通信インタフェース256を介して他の装置に接続され、データを送受信する。ただし通信インタフェース256は、外部の機器と接続される2つの通信ポートを備えてもよいし、通信ポートを1つのみ備えてもよい。
<自律走行制御装置の機能構成>
図3は、自律走行制御装置2の機能構成図である。自律走行制御装置2は、第1通信インタフェース201A、第2通信インタフェース201B、処理制御部202、再構成回路203、再構成管理部204、データベース管理部(以下、DB管理部)205、演算部206、処理情報データベース(以下、処理情報DB)3、演算データベース(以下、演算DB)4、結果データベース(以下、試験DB)5、および回路データベース(以下、回路DB)6を有する。以下では、第1通信インタフェース201A、第2通信インタフェース201Bをまとめて、「通信インタフェース201」と呼ぶ。通信インタフェース201は、図2の通信インタフェース256により実現される。処理情報DB3および回路DB6は、フラッシュメモリ254により実現される。
再構成回路203は、論理回路255により実現される。再構成管理部204、DB管理部205、演算部206、演算DB4、および結果DB5は、再構成回路203に構成される。本実施の形態では、再構成回路203には再構成管理部204、DB管理部205、演算DB4、および結果DB5は再構成されず、演算部206のみが再構成される。換言すると、再構成回路203は部分的に再構成が可能であり、演算DB4などの回路を維持したまま演算部206に相当する回路を再構成する。
自律走行制御装置2は、第1通信インタフェース201Aを介して、図1のカメラ情報取得部101、レーダ情報取得部102、自車位置情報取得部103、自動運転設定部104、および無線通信部105と接続され、第2通信インタフェース201Bを介して補助制御部106、ブレーキ制御部107、エンジン制御部108、およびパワーステアリング制御部109と接続される。なお図3では、自律走行制御装置2は第1通信インタフェース201Aおよび第2通信インタフェース201Bの論理的な2つの通信インタフェースを備えるが、両者の機能を併せ持つ1つの論理的な通信インタフェースのみを備えてもよい。
処理制御部202は、CPU251により実行されるプログラムにより実現される。処理制御部202は状態管理情報213を有し、処理制御部202は状態管理情報213を参照および編集しながら所定の処理周期Tで後述する処理を繰り返し実行する。なお状態管理情報213は、RAM253またはフラッシュメモリ254により実現される。処理制御部202は、カメラ情報取得部101、レーダ情報取得部102、および自車位置情報取得部103からのセンサ情報や、自動運転設定部104からの自動運転設定情報を周期的に収集する。処理制御部202は、処理情報DB3を参照し、収集したセンサ情報や、自動運転設定情報に対して実施する処理回数、および処理情報を判定する。処理制御部202は、状態管理情報213を記憶する。
処理制御部202は、処理情報DB3で判定した処理回数、および処理情報に基づき、処理制御部202で実施する演算処理の有無や、演算部206で実施する演算処理の有無を判断する。処理制御部202は、演算部206に演算処理を実行させる場合は、回路データを含む再構成指示21を再構成回路203に送信し、再構成管理部204を介して演算部206の論理回路を再構成する。また処理制御部202は、演算部206で演算処理を実施させる場合は、演算データ23を再構成回路203に送信し、DB管理部205を経由して演算部206の演算処理に必要なデータを演算DB4に格納する。
処理制御部202は、演算部206の回路領域の再構成の状態、演算DB4の書き込みや読み出しの状態、および、結果DB5の書き込みや読み出しの状態を管理し、処理制御部202で実施する演算処理や、演算部206で実施する演算処理のタイミングを調整する。処理制御部202は、処理制御部202自身で実施した演算処理の結果や、DB管理部205から取得した結果データ24を基に、制動力や駆動力などの制御指令を通信インタフェース201Bから出力する。
再構成管理部204は、処理制御部202から処理回路データを含む再構成指示21を受信し、再構成回路203内の回路領域の演算部206の論理回路を変更する。再構成管理部204は、論理回路の変更が完了すると、再構成完了通知22を処理制御部202に通知する。
DB管理部205は、処理制御部202および演算部206に演算DB4および結果DB5へのアクセスを提供する。たとえばDB管理部205は、処理制御部202から演算データ23を受信すると演算DB4に格納し、そのデータを演算部206に提供する。またDB管理部205は、演算部206が出力する演算結果を結果DB5に格納し、格納が開始されたことを処理制御部202に通知する。DB管理部205は結果DB管理情報212および演算DB管理情報211を有し、これらを参照および編集しながら処理を実行する。詳しくは後述する。結果DB管理情報212および演算DB管理情報211は、再構成回路203に構成される記憶領域である。
演算DB4および試験DB5は、再構成回路203に構成される記憶領域である。演算DB4および試験DB5は演算部206と同じ再構成回路203に構成されるので、それらの間では再構成回路203の外部に存在する処理制御部202に比べて高速なデータの入出力が可能である。たとえば同一のデータを演算部206が読み込む場合に、処理制御部202から読み込むよりも演算DB4から読み込む方が演算部206の読み込みに要する時間が短い。なお演算部206が演算DB4からデータを読み込む場合には、処理制御部202から演算DB4へのデータの読み込みが別途必要となるが、後述するようにそのタイミングを工夫している。また同一のデータを演算部206が書き込む場合に、処理制御部202に書き込むよりも、結果DB5に書き込む方が、演算部206の書き込みに要する時間が短い。
回路DB6には、複数の処理回路データが格納される。これらの処理回路データは、再構成回路203内の回路領域に書き込まれて演算部206等の論理回路を形成する。
演算部206は、再構成管理部204により再構成され、再構成が完了すると所定の処理を実行する。演算部206が実行する所定の処理とは再構成された回路、換言すると再構成管理部204が処理制御部202から受信した処理回路データにより定まるものである。演算部206は、DB管理部205に演算DB4内に格納した演算データ23の読み出しを要求し、取得したデータを用いて所定の処理を実行する。さらに、演算部206は、所定の処理の実行結果を結果DB5内に格納するようにDB管理部205に書き込みを要求する。
DB管理部205は、演算部206から書き込み要求を受信すると、実行結果を結果DB5に格納する。DB管理部205の結果DB管理情報212の詳細は図6を参照して後述する。処理制御部202は、結果DB5に格納された実行結果を結果データ24として取得する。
<処理情報データベースの構成例>
図4は、処理情報DB3の一例を示す図である。処理情報DB3は、処理制御部202によって参照され、収集したセンサ情報や、自動運転設定情報に対して実施する処理内容が格納されるデータベースである。処理情報DB3は、処理回数301、および処理情報302のフィールドを有する。処理回数301には、演算部206が演算を行う回数および処理制御部202が処理を行う回数の和が格納される。処理情報302には、複数の処理情報、たとえば処理情報1〜処理情報5から構成され、処理の名称およびそれぞれの処理に対応する演算部206の回路の名称が格納される。ただし、処理が処理制御部202において実行される場合は「回路:無」が格納される。
たとえば図4に示す例では、回数301のフィールドに「5」が格納されているので、演算部206による処理と処理制御部202における処理の回数の和が5回であることが示されている。符号302−1〜符号302−5で示す処理情報1〜処理情報5のフィールドに格納されている情報は以下のとおりである。符号302−1で示す処理情報1は、回路DB6内の論理回路Aに対応する処理回路データを用いて演算部206を再構成し、演算処理P1を実施することを示している。符号302−2で示す処理情報2は、処理制御部が演算処理P2を実施することを示している。符号302−3で示す処理情報3は、回路DB6内の論理回路Bに対応する処理回路データを用いて演算部206を再構成し、演算処理P3を実施することを示している。符号302−4で示す処理情報4は、処理制御部が演算処理P4を実施することを示している。符号302−5で示す処理情報5は、回路DB6内の論理回路Cに対応する処理回路データを用いて演算部206を再構成し、演算処理P5を実施することを示している。なお図4に示す処理情報DB3は一例であり、処理情報302を構成する処理情報の数は3以外でもよい。すなわち処理情報302が2つの処理情報から構成されてもよいし、4以上の処理情報から構成されてもよい。
本実施の形態では、それぞれの演算処理は直前の演算処理の実行結果を元に所定の処理の実行結果を取得することとする。たとえば演算処理P1では、収集したセンサ情報や、自動運転設定情報に基づき演算を行い実行結果を取得し、演算処理P2は、演算処理P1の実行結果に基づき所定の処理を実行する。演算処理P3〜P5のそれぞれは、演算処理P2〜P4のそれぞれの実行結果に基づき所定の処理を実行する。ただし演算処理P2〜P4のそれぞれは、直前の演算処理の実行結果以外の情報も用いて演算を行ってもよい。
<演算データベース管理情報>
図5は、演算DB管理情報211の一例を示す図である。演算DB管理情報211は、回路種別401、総演算データ数402、1演算データサイズ403、書込データ数404、および読出データ数405のフィールドを有する。回路種別401のフィールドには、演算部206に処理を実施させる論理回路の種別情報が格納される。総演算データ数402のフィールドには、演算部206に実施させる所定の処理に必要な演算データの総数が格納される。1演算データサイズ403のフィールドには、演算部206に複数の演算を実施させる場合において、1つの演算に使用するデータサイズが格納される。書込データ数404のフィールドには、演算DB4に書き込まれたデータ数が格納される。読出データ数405のフィールドには、演算DB4から読み出されたデータ数が格納される。
総演算データ数402のフィールドに格納される演算データの総数の情報は、処理制御部202が演算データ23とともに送信されてもよいし、処理制御部202から演算データ23の送信が完了した際の書込データ数404のフィールドの値を用いてもよい。DB管理部205は、処理制御部202から演算データ23を受信すると演算DB4に格納するとともに、書込データ数404のフィールドに受信した演算データ23の数を書き込む。DB管理部205は、演算DB4から演算部206に演算データ23を送信すると、読出データ数405のフィールドに送信した演算データ23の数を書き込む。
書込データ数404のフィールドに格納される値と、総演算データ数402のフィールドに格納される値との一致は、演算部206の処理に必要な演算データが全て格納されたことを示す。これと同様に、読込データ数405のフィールドに格納される値と、総演算データ数402のフィールドに格納される値との一致は、演算データが全て読み出されたことを示す。詳細な説明は省略するが、書込データ数404および読出データ数405は、演算DB4のアドレスの管理ポインタである。
たとえば、処理制御部202が図4に符号302−1で示す処理情報1を実行する場合は、演算部206が論理回路Aに構成されるので回路種別401のフィールドには「A」が格納される。総演算データ数402のフィールドには、演算処理P1に必要な演算データの総数、たとえば「1024」が格納される。1演算データサイズ403のフィールドには、演算処理P1の1つの演算データのサイズ、たとえば「8Byte」が格納される。また図5に示す例では、書込データ数404のフィールドの値が「512」なので、総演算データ数402の1024のうち512が書き込まれていることが示されている。さらに、読出データ数405のフィールドの値が「0」なので、演算データが演算部206に1つも読み出されていないことが示されている。
<結果データベース管理情報>
図6は、結果DB管理情報212の一例を示す図である。結果DB管理情報212は、回路種別501、総結果データ数502、1結果データサイズ503、書込データ数504、および読出データ数505のフィールドを備える。回路種別501のフィールドには、実行結果を取得した演算部206の論理回路の種別情報が格納される。総結果データ数502のフィールドには、所定の処理を実行した演算部206の結果データの総数が格納される。1結果データサイズ503のフィールドには、演算部206から複数の演算結果を取得する場合において、1つの演算結果を格納するために必要な記憶領域のサイズが格納される。書込データ数504のフィールドには、結果DB5に書き込まれたデータ数が格納される。読出データ数505のフィールドには、結果DB5から読み出されたデータ数が格納される。
総結果データ数502のフィールドの値は、演算DB管理情報211の総演算データ数402のフィールドから転記してもよいし、処理制御部202から別途伝達されてもよい。DB管理部205は、演算部206から結果データ24を受信すると結果DB5に格納するとともに書込データ数504のフィールドに受信した結果データ24の数を書き込む。DB管理部205は、処理制御部202に結果データ24を送信すると、読出データ数505のフィールドに送信した結果データ24の数を書き込む。
書込データ数504のフィールドに格納される値と、総演算データ数502のフィールドに格納される値との一致は、演算部206の処理が完了し演算結果が全て格納されたことを示す。これと同様に、読込データ数505のフィールドに格納される値と、総演算データ数502のフィールドに格納される値との一致は、演算データが全て読み出されたことを示す。詳細な説明は省略するが、書込データ数504および読出データ数505は、結果DB5のアドレスの管理ポインタである。
たとえば、処理制御部202が図4に符号302−3で示す処理情報3を実行する場合は、演算部206が論理回路Bに構成されるので回路種別501のフィールドには「B」が格納される。総演算データ数502のフィールドには、演算処理P3に必要な演算データの総数、たとえば「1024」が格納される。1演算データサイズ503のフィールドには、演算処理P3の1つの演算結果のサイズ、たとえば「4Byte」が格納される。また図6に示す例では、書込データ数404のフィールドの値が「1024」なので、全ての結果データが書き込まれていることが示されている。さらに、読出データ数505のフィールドの値が「128」なので、結果データの一部が読み出されていることが示されている。
<状態管理情報>
図7は、状態管理情報213の一例を示す図である。状態管理情報213は、演算部206、演算DB4、および結果DB5の状態を示す。状態管理情報213は、演算部206の状態を示す回路種別601と再構成状態602のフィールド、演算DB4の状態を示す演算種別603と演算DB状態604のフィールド、結果DB5の状態を示す結果種別605と結果DB状態606のフィールドを備える。回路種別601のフィールドには、演算部206の論理回路の種別情報が格納される。再構成状態602のフィールドには、演算部206の再構成の状態、すなわち再構成の完了を示す「完了」または再構成中であることを示す「再構成中」が格納される。
演算種別603のフィールドには、演算DB4に格納される演算データ23を処理する論理回路の種別情報が格納される。演算DB状態604のフィールドには、演算種別603のフィールドの値で特定される論理回路が処理する演算データ23の演算DB4への格納状況を示す値が格納される。その値は、格納が完了していることを示す「格納済み」、または格納中または格納を開始していないことを示す「格納中」である。結果種別605のフィールドには、結果DB5に格納された実行結果を出力した論理回路の種別情報が格納される。結果DB状態606のフィールドには、結果種別605のフィールドの値で特定される論理回路で処理された実行結果の結果DB5からの取得状況を示す値が格納される。その値は、処理制御部202が結果DB5から全ての結果データ24を取得したことを示す「取得済」、または取得していない結果データ24が存在することを示す「格納有」である。
たとえば、図7に示す例では演算部206が論理回路Cに再構成されていることを、回路種別601のフィールドの値「C」、および再構成状態602のフィールドの値「完了」により表している。また演算種別603および演算DB状態604のフィールドの値は、回路種別「C」の演算データが演算DB4に「格納中」であることを示している。さらに結果種別605および結果DB状態606のフィールドの値は、回路種別「B」の演算結果を処理制御部202がすべて「取得済」であることを示している。
<処理制御部のフローチャート>
図8は、処理制御部202の動作を示すフローチャートである。以下に説明する各ステップの実行主体は、自律走行制御装置2のCPU251である。処理制御部202は、所定の処理周期Tごとに以下のフローチャートで示される動作を実行する。
ステップS601では、処理制御部202はループカウンタである処理IDに「1」を代入する。続くステップS602では、処理制御部202は、処理情報DB3を参照し、処理IDで示される処理情報の処理は、論理回路を使用するか否かを判断する。論理回路を使用すると判断する場合はステップS603に進み、論理回路を使用しないと判断する場合はステップS621に進む。たとえば処理情報DB3が図4に示すものであり処理IDが「1」の場合は、処理制御部202は符号302−1で示される処理情報1を参照する。そして処理制御部202は、「回路:A」と記載されているので論理回路を使用すると判断する。
ステップS603では、処理情報DB3の記載に基づき再構成管理部204に回路データの転送を開始する。本ステップでは回路データの転送の開始のみを規定しており、転送の終了を確認することなく、換言すると回路データの転送を開始するとすぐに次のステップS604に進む。なお本フローチャートには記載していないが、再構成管理部204は回路データを受信すると演算部206の再構成を直ちに開始する。そして再構成が完了すると、演算部206は演算DB4から演算データを取得して演算を実行し、結果DB5に結果データ24を書き込む。
続くステップS604では演算データが入手可能であるか否か、換言すると直前の処理が完了しているか否かを判断する。入手可能であると判断するとステップS605に進み、まだ入手できないと判断するとステップS631で一定時間待機した後に再度ステップS604を実行する。続くステップS605では演算データをDB管理部205に転送する。
続くステップS606では、結果DB5に書き込みがあるか否か、換言すると演算部206から結果データ24の出力が開始されたか否かを判断する。書き込みがあると判断する場合はステップS607に進み、まだ書き込みがないと判断する場合はステップS632で一定時間待機した後に再度ステップS606を実行する。ステップS607では、DB管理部205を介して結果DB5から結果データ24の読み出しを開始する。続くステップS608では、全ての結果データが結果DB5に格納されたか否かを判断する。前述のとおりこの判断は、結果DB管理情報212の総結果データ数502のフィールドの値と読出データ数505のフィールドの値が一致するか否かにより判断できる。全ての結果データ24が結果DB5に格納されたかと判断する場合はステップS609に進み、格納されていない結果データ24が存在すると判断する場合はステップS633で一定時間待機した後に再度ステップS608を実行する。
ステップS609では、処理IDが規定値、すなわち処理情報DB3の処理回数のフィールドの値以上であるか否かを判断する。処理IDがその値以上であると判断する場合は、処理情報DB3に示す全ての処理が完了しているので図8に示す動作を終了する。処理IDがその値未満であると判断する場合は、ステップS634に進んで処理IDをインクリメントし、ステップS602に戻る。
ステップS602において否定判断されると実行されるステップS621では、処理情報DB3を参照して、処理IDで示される処理の実行のために、結果DB5からの結果データ24の読み出しが不要であるか否かを判断する。たとえば、処理制御部202における処理が連続している場合や、処理IDが「1」の場合は本ステップが肯定判断される。肯定判断する場合はステップS624に進み、否定判断する場合はステップS622に進む。ステップS622では、結果DB5からの結果データ24の読み出しが完了したか否かを判断する。読み出しが完了したと判断する場合はステップS624に進み、読み出しが完了していないと判断する場合はステップS623で一定時間待機した後に再度ステップS622を実行する。なお本ステップにおいて完了を待っている読み出し処理は、ステップS607において開始されたものである。
ステップS624では、処理制御部202は処理IDで示された処理を実行してステップS609に進む。
<再構成管理部のフローチャート>
図9は、再構成回路203の動作を示すフローチャートである。以下に説明するように再構成回路203は、再構成管理部204、DB管理部205、および演算部206の協調動作により動作する。再構成回路203は、処理制御部202から回路データを受信するたびに以下のフローチャートで示される動作を実行する。
ステップS800では、再構成管理部204は、再構成回路203への受信した回路データの書き込み、すなわち演算部206の再構成を開始する。続くステップS801では、再構成管理部204は再構成回路203への演算部206の再構成が完了したか否かを判断する。完了したと判断する場合はステップS802に進み、完了していないと判断する場合はステップS801に戻る。ステップS802では、再構成管理部204は再構成が完了した旨を処理制御部202に通知する。続くステップS803では、DB管理部205が演算DB4に演算データが格納されているか否かを判断する。演算データが格納されていると判断する場合はステップS804に進み、演算データが格納されていないと判断する場合はステップS803を再度実行する。ステップS804では、演算部206は演算DB4から演算データを取得して処理を実行し、処理結果を結果DB5に格納する。以上で処理を終了する。
<タイミングチャート>
図10は、自律走行制御装置2のある処理周期Tにおける動作を示すタイミングチャートである。図10に示す例では、処理制御部202は図4に記載した処理情報DB3を参照して動作する。図10は図示左から右に向かって時間が経過している。図10の左端に示すように、図10には上から処理制御部202の動作状態、状態管理情報213の符号601〜606の各フィールドの値、再構成指示21の送信状態、再構成完了通知22の送信状態、演算データ23の送信状態、演算DB4の入出力、演算部206の動作、結果DB5の入出力、および結果データ24の送信状態を示している。
処理制御部202は、時刻t0で周期処理を開始し、処理情報DB3を参照して処理回数301および処理情報302を解釈する。図10では時間Tの1周期分のみを示しているが、これらの処理は繰り返し実行される。
解釈が完了した時刻t1において、処理制御部202は、図4で符号302−1で示す処理情報1の処理回路データ、すなわち論理回路A、および演算部206への再構成指示21を再構成管理部204に送信する。これにより演算部206は再構成中となる。また処理制御部202は、演算処理P1に必要な演算データ23を演算DB4に書き込む。再構成中に演算データ23を演算DB4に書き込むことで、再構成完了後の演算処理P1の実行開始に備える。このとき処理制御部202は、図7に記載した状態管理情報213の回路種別601に「A」、再構成状態602に「再構成中」、演算種別603に「A」、演算DB状態604に「格納中」をそれぞれ格納する。
時刻t2において演算データ23の演算DB4への書き込みが完了すると、処理制御部202は、演算DB状態604を「設定済」に変更する。
時刻t3で論理回路Aの回路データの送信が終了し演算部206の再構成が完了すると、再構成管理部204は再構成完了通知22を処理制御部202に送信する。また処理制御部202は、再構成状態602を「完了」に変更する。また、再構成が完了した演算部206は、演算DB4に演算処理P1に必要なデータが格納されていることを確認し、DB管理部205経由で演算DB4からデータの読み出しつつ、演算処理P1を実行開始する。演算DB4から演算部206へのデータの読み出しは、同じ再構成回路203上に構成されているため、短時間で実施することができる。
時刻t4において、演算処理P1を実行している演算部206は、DB管理部205経由で結果DB5への実行結果の格納を開始する。処理制御部202は、結果種別605を「A」、結果DB状態606を「格納有」に変更する。処理制御部202は、DB管理部205経由で結果DB5の読み出しを開始し、演算処理P1の結果データ24を取得する。演算部206から結果DB5へのデータの書き込みは、同じ再構成回路203上に構成されているため、短時間で完了する。
時刻t5において演算部206の結果DB5への結果データの書き込みが完了する。すなわち演算部206の処理が完了しているため、処理制御部202は、次の回路データ、すなわち図3において符号302−3で示される処理情報3の処理回路データ、すなわち論理回路Bの回路データの送信を開始する。処理制御部202はさらに、演算部206への再構成指示21を再構成管理部204に送信する。これにより、演算部206は再び再構成中となる。またこのとき処理制御部202は、回路種別601を「B」、再構成状態602を「再構成中」に変更する。
時刻t6において、処理制御部202は、結果DB5から演算処理P1の結果データ24の読み出しが完了し、結果DB状態606が「取得済」に変更される。そして、処理制御部202は、演算処理P2の実行を開始する。
時刻t7において、論理回路Bの回路データの送信が終わり、演算部206の再構成が完了すると、再構成管理部204は、再構成完了通知22を処理制御部202に送信する。そして再構成状態602が「完了」に変更される。ただし論理回路Bが処理対象とする演算データは、処理情報2がまだ実行中で得られないため演算部206における演算はまだ開始されない。
時刻t8において処理制御部202が演算処理P2の実行を完了すると、処理制御部202は演算処理P3に必要な演算データ23を演算DB4に書き込む。このとき処理制御部202は、演算種別603を「B」、演算DB状態604を「格納中」に変更する。また時刻t7で演算部206の論理回路Bへの再構成が完了しているため、演算部206は、演算DB4に演算処理P3に必要なデータが格納されていることを確認し、DB管理部205経由で演算DB4からデータの読み出しつつ、演算処理P3の実行を開始する。
時刻t9において演算データ23の演算DB4への書き込みが完了すると、処理制御部202は演算DB状態604を「設定済」に変更する。なお、演算DB4から演算部206へのデータの読み出しは短時間で実施することができるため、同じ時刻t9で読み出しを完了としている。
時刻t10において、演算処理P3を実行している演算部206は、DB管理部205経由で結果DB5への実行結果の格納を開始する。このとき処理制御部202による結果DB5からの結果データ24の読み出しも開始される。処理制御部202は、結果種別605を「B」、結果DB状態606を「格納有」に変更する。
時刻t11において実行結果の結果DB5への書き込みが完了すると、処理制御部202は、次の演算部206を構成するために論理回路Cの回路データ、および再構成指示21を再構成管理部204に送信する。なお時刻t10〜時刻t11の期間で結果DB5への書き込みは完了するが、処理制御部202は再構成回路203の外部に存在するため結果DB5からの読み出しは時刻t11では完了せず継続している。処理制御部202は、回路種別601を「C」、再構成状態602を「再構成中」に変更する。
時刻t12において、処理制御部202は結果DB5から演算処理P3の結果データ24の読み出しを完了し、結果DB状態606を「取得済」に変更する。そして処理制御部202は、演算処理P4の実行を開始する。
時刻t13において、処理制御部202は演算処理P4の実行を完了すると、次の演算処理P5に必要な演算データ23を演算DB4に書き込む。このとき演算部206は再構成を継続しており、この再構成に並行して演算データ23を演算DB4に書き込むことで、再構成完了後の演算処理P5の実行開始に備える。またこのとき処理制御部202は、演算種別603を「C」、演算DB状態604を「格納中」に変更する。
時刻t14において論理回路Cの回路データの送信、および演算部206の再構成が完了すると、再構成管理部204は、再構成完了通知22を処理制御部202に送信する。処理制御部202は、再構成状態602を完了に変更する。再構成が完了した演算部206は、演算DB4に演算処理P5に必要なデータが格納されていることを確認し、DB管理部205経由で演算DB4からデータの読み出しつつ、演算処理P5を実行開始する。
時刻t15において演算データ23の演算DB4への書き込みが完了すると、処理制御部202は、演算DB状態604を「設定済」に変更する。なお、演算DB4から演算部206へのデータの読み出しは短時間で実施することができるため、同じ時刻t15で読み出しが完了する。
時刻t16において、演算処理P5を実行している演算部206は、DB管理部205経由で結果DB5への実行結果の格納を開始する。このとき処理制御部202による結果DB5からの結果データ24の読み出しも開始される。処理制御部202は、結果種別605を「C」、結果DB状態606を「格納有」に変更する。
時刻t17において、実行結果の結果DB5への書き込みが完了する。なお結果DB5からの読み出しは時刻t17では完了せず継続している。
時刻t18において、処理制御部202は結果DB5から演算処理P5の結果データ24の読み出しを完了し、結果DB状態606を「取得済」に変更する。また処理制御部202は、演算処理P5の結果データ24に基づき制御指令を出力する。時刻t19において制御指令の出力を完了し、処理制御部202は、時間Tの1周期分の処理を終了する。
<従来技術との比較>
図11は、第1の実施の形態における自律走行制御装置2と、従来の自律走行制御装置(以下、従来自律走行制御装置)の比較を示すタイミングチャートである。従来自律走行制御装置は、演算DB4および結果DB5を備えず、従来演算部は従来処理制御部から演算データを直接受信し、結果データを直接出力する。図11は図示中ほどよりも少し下の記載した時刻情報により上半分と下半分に分断される。図11の上半分には、図10に示すいくつかの要素をそのまま示している。図11の下半分には、従来自律走行制御装置における従来の処理制御部(以下、従来処理制御部)および従来の演算部(従来演算部)の動作タイミングを示す。ただしここでは、従来自律走行制御装置も図4に示した処理情報DB3の記述に従って動作することとする。
従来演算部は、時刻t0から時刻t1において処理制御部202と同様に処理情報DB3を参照して処理回数301および処理情報302を解釈する。従来演算部は、時刻t1から時刻t3において再構成を行う。そして従来演算部は、再構成が完了した時刻t3にP1の演算を開始する。時刻t3以降、従来演算部は従来処理制御部から演算データを受信して演算を行う。そして従来演算部は、演算により得られた結果データを従来処理制御部に出力する。
従来演算部は、再構成回路203の外部にある処理制御部から演算データを受信するので、演算部206が演算DB4から演算データを読み込む時間よりも長い時間をその読み込みに要する。従来演算部の結果データの出力についても同様である。そのため演算部206と従来演算部は同じ処理を行っているが、入出力に要する時間が異なるので所要時間が異なる。具体的には従来演算部が演算処理P1の演算データの出力を終了する時刻t6Aは、処理制御部202が結果DB5から全てのデータを読み出し終える時刻t6よりも遅い。
従来処理制御部は、時刻t6Aから演算処理P2を開始する。この処理に要する時間は、処理制御部202が演算処理P2に要する時間と同一である。時刻t8Aにおいて、従来処理制御部が演算処理P2を完了したので、従来演算部は次の演算処理P3のために再構成を開始する。なおこの時刻t8Aは、演算部206が演算処理P3を開始する時刻t8よりも遅い。時刻t10Aにおいて、従来演算部の再構成が完了し、従来演算部は演算処理P3を開始する。従来演算部は、演算処理P1と同様に演算データを従来処理制御部から取得しつつ演算を行い、その結果データを従来処理制御部に出力する。そのため従来演算部が演算処理P3に要する時間は、演算部206が演算処理P3に要する時間よりも長い。
このように演算部206は、従来演算部に比していわば入出力に使用できる帯域が広い状態と等価なので、同一の処理を行う場合でも短時間で完了する。また演算部206は直前の演算部206の処理が完了するとすぐに次の処理のために再構成を開始するので、直前の演算が完了してから演算部206が動作を開始するまでに時間が短い。
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)自律走行制御装置2は、再構成されて演算を実行する演算部206、および演算部206が演算対象とする演算データを格納する演算DB4が構成される部分再構成可能な再構成回路203と、演算部206を再構成させるための回路データ、および演算データを再構成回路203の演算DB4に送信する処理制御部202とを備える。処理制御部202は、たとえば演算処理P1にかかる演算データが得られると、演算部206の再構成が完了しているか否かにかかわらず、演算DB4への演算データの送信を開始する。演算部206は、演算DB4に格納される演算データを用いて演算を行う。
演算DB4は演算部206と同一の再構成回路203に構成されているので、演算DB4から演算部206への演算データの転送は、処理制御部202から演算部206への直接のデータ転送よりも短時間で完了する。処理制御部202は演算部206の再構成の完了に先駆けて演算DB4への演算データの送信を開始するので、演算部206は演算DB4から演算データを読み込むことにより演算データの読み込みに要する時間を短縮できる。すなわち、自律走行制御装置2は上記構成を有するので処理制御部202と演算部206が交互に処理を行うような非連続にデータを処理する場合に処理時間を短縮することができる。また図11に示す従来例との比較からわかるように、自律走行制御装置2は再構成回路203の利用効率を向上させている。
(2)演算部206が次に演算対象とするデータが処理制御部202のたとえば演算処理P2により生成される場合は、処理制御部202は処理制御部202における演算処理P2が完了すると、演算部206が次に演算対象とするデータが得られると判断する。
(3)処理制御部202は、回路データおよび演算データの両方を再構成回路203に送信可能な場合は、図8においてS605よりもS603が先に実行されるので、回路データを優先して再構成回路203に送信する。図10のt8に示すように演算データの全てを演算DB4に格納しなくても演算部206の演算を開始できる。しかし回路データの全てを再構成回路203に送信完了した後でなければ、演算部206の演算を開始できない。そのため演算データよりも回路データを優先して再構成回路203に送信し、演算部206の演算を早期に開始させることができる。
(4)回路データを再構成回路203に送信可能な場合とは、演算部206における演算が完了している場合である。演算対象データを再構成回路203に送信可能な場合とは、演算DB4から演算データがすべて読みだされ、かつ次回演算対象データが得られる場合である。
(5)再構成回路203には、演算部206の演算結果を格納する結果DB5が構成される。処理制御部202は、結果DB5に演算部206の演算結果が格納されると、演算部206の再構成のための回路データを送信する。結果DB5は演算部206と同一の再構成回路203に構成されているので、演算部206から結果DB5へのデータ転送は、結果DB5から処理制御部202へのデータ転送よりも短時間で完了する。そのため、演算部206から処理制御部202へ結果データを転送する場合に比べて、早期に演算部206の再構成を開始することができる。
(変形例1)
処理制御部202は、図8のステップS803において回路データの転送を開始すると演算データの入手可能性を判断し、入手できる場合はすぐに演算データの転送を開始した。すなわち上述した実施の形態では、回路データの転送を開始した直後に演算データの転送が開始される場合があった。しかし、演算データの転送は回路データの転送開始からあらかじめ定めた時間が経過したことを条件として演算データの転送を開始してもよい。
(変形例2)
処理制御部202は、回路データの送信と演算データの送信とを略同時に開始してもよい。
図12は、上述した実施の形態における図8に代わって本変形例における処理制御部202の動作を表すフローチャートである。ただし図12では主に図8との相違点を記載しており、省略している部分は図8の動作と同様である。また図8と同一の処理を行うステップには、同一のステップ番号を付している。
ステップS602において肯定判断をすると、処理制御部202はステップS603AとステップS604Aの処理を並列して開始する。ステップS603Aにおいて、処理制御部202は回路データの転送を開始する。ステップS604Aにおいて、処理制御部202は肯定判定をするとステップS605Aの処理を行う。処理制御部202は、ステップS603AおよびステップS605Aの両方の処理が完了すると、ステップS606の処理を開始する。
この変形例2によれば、回路データの送信と演算データの送信とを略同時に開始し、演算データの演算DB4への転送を少しでも早く完了させることができる。
(変形例3)
処理制御部202は、回路データと演算データの両方を送信可能な場合に、後続する処理に要する時間に基づき回路データおよび演算対象データのどちらの送信を優先するかを決定してもよい。
図13は、上述した実施の形態における図8に代わって本変形例における処理制御部202の動作を表すフローチャートである。ただし図13では主に図8との相違点を記載しており、省略している部分は図8の動作と同様である。また図8と同一の処理を行うステップには、同一のステップ番号を付している。
ステップS602において肯定判断をすると、処理制御部202はステップS604Bに進む。ステップS604Bにおいて、処理制御部202は、演算データが入手可能であるか否かを判断し、肯定判断する場合はステップS641に進み、否定判断する場合はステップS603Cに進む。ステップS641において、処理制御部202は、回路データの再構成管理部204への転送開始から演算部206の再構成完了までの時間が、演算データの演算DB4への転送に要する時間よりも短いか否かを判断する。前者の時間が後者の時間よりも短いと判断する場合はステップS605Bに進み、逆の判断をする場合はステップS603Dに進む。ステップS605Bでは演算データの転送を開始し、続くステップS643では所定の時間待機する。ステップS643における待機時間はたとえば、回路データの再構成管理部204への転送開始から演算部206の再構成完了までの時間と、演算データの演算DB4への転送に要する時間との差である。続くステップS603Bでは回路データの転送を開始し、ステップS606に進む。
ステップS604Bにおいて否定判断されると実行されるステップS603Cでは、処理制御部202は回路データの転送を開始してステップS604Aに進む。ステップS641において否定判断されると実行されるステップS603Dでは、回路データの転送を開始してステップS642に進む。ステップS642では、所定の時間待機してステップS604Aに進む。ステップS643における待機時間はたとえば、回路データの再構成管理部204への転送開始から演算部206の再構成完了までの時間と、演算データの演算DB4への転送に要する時間との差である。すなわちこの場合は、演算部206の再構成完了と演算データの転送の完了が略同時となる。
ステップS604Aでは、処理制御部202は演算データが入手可能であるか否かを改めて判断し、否定判断する場合はステップS631Aにおいて待機したのちに再度ステップS604Aを実行する。ステップS604Aにおいて肯定判断する場合はステップS605Cに進む。ステップS605Cでは演算データの転送を開始し、ステップS606に進む。ステップS606以降の処理は第1の実施の形態と同様なので説明を省略する。
なお演算部206の再構成が回路データ等の転送に比して短時間で完了する場合や、図10のタイミングチャートに示したように回路データの転送と演算部206の再構成を同時に実行できる場合は、上述したフローチャートを以下のように変形してもよい。すなわち、ステップS641およびステップS642において、回路データの再構成管理部204への転送開始から演算部206の再構成完了までの時間の代わりに、回路データの再構成管理部204への転送に要する時間を評価してもよい。またステップS643において、演算データの転送の完了が演算部206の再構成完了よりも早く完了するように待機時間を決定してもよい。またステップS643において、先に送信を開始したデータの転送が完了するタイミングで後のデータの送信が開始されるように待機時間を決定してもよい。
この変形例3によれば、第1の実施の形態における作用効果に加えて次の作用効果が得られる。
(1)処理制御部202は、回路データおよび演算対象データの両方を再構成回路203に送信可能な場合は、回路データの送信に要する時間、および演算対象データの送信に要する時間に基づき、回路データおよび演算対象データのどちらの送信を優先するかを決定する。そのため長い転送時間を要するデータを先に送信し、演算部206の再構成完了後の演算開始までの時間を短縮することができる。
(2)処理制御部202は、回路データの送信に要する時間と演算対象データの送信に要する時間とに基づき、回路データおよび演算対象データのいずれを先に送信する先送信データとし、他方を後送信データとするかを決定し、回路データの送信に要する時間と演算対象データの送信に要する時間との差に基づき後送信待機時間を決定し、先送信データを送信した後に、後送信待機時間だけ待機した後に後送信データを送信する。そのため回路データおよび演算データを効率よく送信することができる。
(3)処理制御部202は、演算部206の再構成の完了と、演算データの演算DB4への転送の完了が同時になるように後送信待機時間を決定する。そのため演算部206の再構成完了後の演算開始までの時間を短くすることができる。
(変形例4)
処理制御部202は、回路データと演算データの両方を送信可能な場合に、後続する処理に要する時間に基づき演算データを優先して送信してもよい。
図14は、上述した実施の形態における図8に代わって本変形例における処理制御部202の動作を表すフローチャートである。また図8と同一の処理を行うステップには、同一のステップ番号を付している。
ステップS601およびステップS602の処理は図8と同様なので説明を省略する。ステップS602において肯定判断すると、処理制御部202はステップS608AおよびステップS651を並行して実行する。なおステップS602において否定判断された場合の処理は第1の実施の形態と同様なので説明を省略する。
ステップS608Aでは、処理制御部202は結果DB5に全ての結果データが格納されたか否か、すなわち演算部206の演算が完了したか否かを判断する。演算部206の演算が完了したと判断する場合はステップS603Eに進み、演算部206の演算が完了していないと判断する場合はステップS608Aを再度実行する。ただしステップS608Aを実行する前に所定の時間待機してもよい。なお処理IDが「1」の場合はステップS608Aでは肯定判断がされる。ステップS603Eでは、処理制御部202は回路データの転送を開始する。
ステップS651では、処理制御部202は演算DB4からの演算データの読み出しが完了したか否かを判断する。演算データの読み出しが完了したか否かの判断は、演算DB管理情報211における総演算データ数402のフィールドの値と読出データ数405のフィールドの値が一致するか否かにより可能である。ステップS651において肯定判断する場合はステップS604Bに進み、ステップS651において否定判断する場合はステップS651を再度実行する。ただしステップS651を実行する前に所定の時間待機してもよい。処理IDが「1」の場合はステップS651では肯定判断がされる。ステップS604Bでは、処理IDが示す演算処理が使用する演算データが入手可能であるか否かを判断する。入手可能と判断する場合はステップS605Eに進んで演算データの転送を開始し、演算データがまだ入手できないと判断する場合はステップS604Bを再度実行する。
ステップS603EおよびステップS605Eの両方が実行されると、処理制御部202はステップS606を実行する。処理制御部202は、ステップS606およびステップS607を実行するとステップS609を実行する。ステップS609の処理および、ステップS609において否定判断された場合に実行されるステップS634の処理は第1の実施の形態と同様なので説明を省略する。
(変形例5)
演算部206において連続して処理が行われる場合は、結果DB5に格納された結果データを処理制御部202に転送することなく、次に構成された演算部206への入力としてもよい。その場合は、演算DB4と結果DB5とが一時的に役割を入れ替えることで対応が可能である。たとえば演算処理Q1と演算処理Q2を演算部206において続けて処理する場合を例に説明する。演算部206は、演算処理Q1の演算結果を結果DB5に格納する。演算処理Q1について全ての演算結果を結果DB5に格納すると、演算部206は演算処理Q2を実行するために再構成を開始する。この再構成が完了すると、演算部206は結果DB5から演算処理Q1の結果データ、すなわち演算処理Q2の演算データを読み取り処理を開始する。そして演算部206は、演算処理Q2の演算結果を演算DB4に出力する。本変形例によれば、演算部206において連続して処理が行われる場合に再構成回路203においてデータをキャッシュするので処理制御部202による読み書きを一部省略し、処理を高速化できる。
−第2の実施の形態−
図15〜図17を参照して、本発明にかかる電子制御装置である自律走行制御装置の第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、処理制御部が、処理制御部202における演算処理を管理する内部処理管理部と、再構成回路における演算処理を管理する外部処理管理部とを備える点で、第1の実施の形態と異なる。
<自律走行制御装置の機能構成>
図15は、第2の実施の形態における自律走行制御装置2の機能構成図である。第1の実施の形態との違いは、処理制御部202が内部処理管理部230と外部処理管理部240とをさらに備える点である。内部処理管理部230および外部処理管理部240は、CPU251がROM252に格納されたプログラムを実行することにより実現される。内部処理管理部230および外部処理管理部240は、処理IDの情報を共有しており、いずれか一方が処理IDの値を変更すると他方でも処理IDの値が変更される。
<内部処理管理部のフローチャート>
図16は、内部処理管理部230の動作を示すフローチャートである。内部処理管理部230は、所定の処理周期Tごとに以下のフローチャートで示される動作を実行する。また図8と同一の処理を行うステップには、同一のステップ番号を付す。以下では主に図8と異なる点を説明する。以下に説明するフローチャートの書くステップの実施主体はCPU251である。図16に示すフローチャートを開始する直前に、処理制御部202により処理IDには「1」が代入されている。
ステップS702では、内部処理管理部230は処理情報DB3を参照し、処理IDが示す処理情報における処理は、処理制御部202において実行されるか否かを判断する。この判断は、処理IDが示す処理情報において、回路が「無」に設定されていれば肯定判断され、それ以外に設定されていれば否定判断される。内部処理管理部230は、肯定判断する場合はステップS621に進み、否定判断する場合はステップS702を再度実行する。なおステップS702において否定判断された場合は、外部処理管理部240により処理IDが更新されることを待つこととなる。
ステップS621以下の処理は第1の実施の形態と同様である。ステップS609において処理IDが規定値、すなわち処理情報DB3の処理回数のフィールドの値以上であると判断すると図16に示す動作を終了する。
<外部処理管理部のフローチャート>
図17は、外部処理管理部240の動作を示すフローチャートである。外部処理管理部240は、所定の処理周期Tごとに以下のフローチャートで示される動作を実行する。また図8と同一の処理を行うステップには、同一のステップ番号を付す。以下では主に図8と異なる点を説明する。以下に説明するフローチャートの書くステップの実施主体はCPU251である。図17に示すフローチャートを開始する直前に、処理制御部202により処理IDには「1」が代入されている。
ステップS752では、外部処理管理部240は処理情報DB3を参照し、処理IDの値以降の処理で最初に演算部206で実行する演算を特定する。たとえば処理IDが「2」であり処理情報DB3が図4に示す例の場合は、「P3」が特定される。処理情報2は「回路:無」と記録されているので演算P2は演算部206では実行されず、その次の処理情報3の演算P3は「回路:B」と記録されており演算部206で実行されるからである。ステップS752の処理が完了すると、外部処理管理部240はステップS603Fの処理とステップS604Fの処理を並列に実行する。
ステップS603Fでは、外部処理管理部240はステップS752において特定した演算に対応する回路データの転送を開始する。ステップS604Fでは、外部処理管理部240はステップS752において特定した演算において使用される演算データが入手可能であるか否かを判断する。入手可能であると判断する場合はステップS605Fに進み、まだ入手できないと判断する場合は再度ステップS604Fを実行する。なおステップS604Fにおいて否定判断された場合は、内部処理管理部230の演算が完了することを待つこととなる。ステップS605Fでは、外部処理管理部240はステップS752において特定した演算において使用される演算データの演算DB4への転送を開始する。
外部処理管理部240は、ステップS603FおよびステップS605Fの両方の実行が完了すると、ステップS606を実行する。ステップS606からステップS609までの処理は第1の実施の形態と同様なので説明を省略する。ステップS609において否定判断されると、処理IDをインクリメント、すなわち「1」増加させてステップS752に戻る。
上述した第2の実施の形態によれば、次の作用効果が得られる。
(1)処理制御部202は、内部処理管理部230と外部処理管理部240とを備える。内部処理管理部230および外部処理管理部240は並列に処理を実行する。外部処理管理部240は現在の処理ID以降で最初に演算部206で実行される演算を特定する。そして外部処理管理部240は、回路データの転送を開始するとともに、演算部206において次に演算対象とする演算データが入手可能であるかを判断して入手可能な場合には演算データの転送を開始する。
そのため演算部206における処理の後に、処理制御部202における処理が2回以上している場合であっても、演算部206における処理が完了すると演算部206の再構成のための回路データの送信を開始することができる。
自律走行制御装置2が実行するプログラムはROM252に格納されるとしたが、プログラムはフラッシュメモリ254に格納されていてもよい。また、自律走行制御装置2が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースとECU1が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、たとえば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
1…車載システム
2…自律走行制御装置
3…処理情報データベース
4…演算データベース
5…結果データベース
6…回路データベース
21…再構成指示
22…再構成完了通知
23…演算データ
24…結果データ
202…処理制御部
203…再構成回路
204…再構成管理部
205…データベース管理部
206…演算部
211…演算データベース管理情報
212…結果データベース管理情報
213…状態管理情報
212…管理情報
213…状態管理情報
230…内部処理管理部
240…外部処理管理部

Claims (14)

  1. 再構成されて演算を実行する演算部、および前記演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路と、
    前記演算部を再構成させるための回路データ、および前記演算対象データを前記論理回路に送信する処理制御部とを備え、
    前記処理制御部は、再構成の完了後の前記演算部である次回演算部にかかる前記演算対象データである次回演算対象データが得られると、前記次回演算部の再構成が完了しているか否かにかかわらず、前記格納部への前記次回演算対象データの送信を開始し、
    再構成が完了した前記次回演算部は前記次回演算対象データを用いて演算を行う電子制御装置。
  2. 請求項1に記載の電子制御装置において、
    前記次回演算対象データが前記演算部以外の処理により生成される場合は、前記処理制御部は前記処理が完了すると前記次回演算対象データが得られると判断する電子制御装置。
  3. 請求項1に記載の電子制御装置において、
    前記処理制御部は、前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合は、前記回路データを優先して前記論理回路に送信し、
    前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合とは、前記演算部における前記演算が完了しており、かつ、前記格納部から前記演算対象データがすべて読みだされ、かつ前記次回演算対象データが得られる場合である、電子制御装置。
  4. 請求項1に記載の電子制御装置において、
    前記処理制御部は、前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合は、前記回路データの前記論理回路への送信に要する時間である回路データ転送時間、および前記演算対象データの前記論理回路への送信に要する時間である演算データ転送時間に基づき、前記回路データおよび前記演算対象データのいずれを先に送信する先送信データとし、他方を後に送信する後送信データとするかを決定し、
    前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合とは、前記演算部における前記演算が完了しており、かつ、前記格納部から前記演算対象データがすべて読みだされ、かつ前記次回演算対象データが得られる場合である、電子制御装置。
  5. 請求項4に記載の電子制御装置において、
    前記処理制御部は、前記回路データ転送時間と前記演算データ転送時間との差に基づき後送信待機時間を決定し、
    前記処理制御部は、前記先送信データを送信した後に、前記後送信待機時間だけ待機した後に前記後送信データを送信する電子制御装置。
  6. 請求項5に記載の電子制御装置において、
    前記処理制御部は、前記回路データの送信の完了と前記演算対象データの送信の完了が同時になるように前記後送信待機時間を決定する電子制御装置。
  7. 請求項1に記載の電子制御装置において、
    前記論理回路には、前記演算部の演算結果を格納する結果格納部がさらに構成され、
    前記処理制御部は、前記結果格納部に前記演算部の演算結果が格納されると、前記演算部の再構成のための前記回路データの送信を開始する電子制御装置。
  8. 送信される回路データを用いて再構成されて演算を実行する演算部、および前記演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路の制御方法であって、
    再構成の完了後の前記演算部である次回演算部にかかる前記演算対象データである次回演算対象データが得られると、前記次回演算部の再構成が完了しているか否かにかかわらず、前記格納部への前記次回演算対象データの送信を開始することと、
    前記次回演算部は再構成が完了すると前記次回演算対象データを用いて演算を行うこととを含む論理回路の制御方法。
  9. 請求項8に記載の論理回路の制御方法において、
    前記次回演算対象データが前記演算部以外の処理により生成される場合は、前記処理が完了すると前記次回演算対象データが得られると判断する論理回路の制御方法。
  10. 請求項8に記載の論理回路の制御方法において、
    前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合は、前記回路データを優先して前記論理回路に送信し、
    前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合とは、前記演算部における前記演算が完了しており、かつ、前記格納部から前記演算対象データがすべて読みだされ、かつ前記次回演算対象データが得られる場合である、論理回路の制御方法。
  11. 請求項8に記載の論理回路の制御方法において、
    前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合は、前記回路データの前記論理回路への送信に要する時間である回路データ転送時間、および前記演算対象データの前記論理回路への送信に要する時間である演算データ転送時間に基づき、前記回路データおよび前記演算対象データのいずれを先に送信する先送信データとし、他方を後に送信する後送信データとするかを決定し、
    前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合とは、前記演算部における前記演算が完了しており、かつ、前記格納部から前記演算対象データがすべて読みだされ、かつ前記次回演算対象データが得られる場合である、論理回路の制御方法。
  12. 請求項11に記載の論理回路の制御方法において、
    前記回路データ転送時間と前記演算データ転送時間との差に基づき後送信待機時間を決定し、
    前記先送信データを送信した後に、前記後送信待機時間だけ待機した後に前記後送信データを送信する論理回路の制御方法。
  13. 請求項8に記載の論理回路の制御方法において、
    前記論理回路には、前記演算部の演算結果を格納する結果格納部がさらに構成され、
    前記結果格納部に前記演算部の演算結果が格納されると、前記演算部の再構成のための前記回路データを送信する論理回路の制御方法。
  14. 請求項12に記載の論理回路の制御方法において、
    前記回路データの送信の完了と前記演算対象データの送信の完了が同時になるように前記後送信待機時間を決定する電子制御装置。
JP2017085365A 2017-04-24 2017-04-24 電子制御装置、論理回路の制御方法 Active JP6810651B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017085365A JP6810651B2 (ja) 2017-04-24 2017-04-24 電子制御装置、論理回路の制御方法
CN201880025847.1A CN110520855B (zh) 2017-04-24 2018-03-22 电子控制装置、逻辑电路的控制方法
US16/606,830 US11132329B2 (en) 2017-04-24 2018-03-22 Electronic control device and method of controlling logic circuit
DE112018001595.5T DE112018001595T5 (de) 2017-04-24 2018-03-22 Elektronische Steuervorrichtung und Verfahren zum Steuern einer logischen Schaltung
PCT/JP2018/011517 WO2018198616A1 (ja) 2017-04-24 2018-03-22 電子制御装置、論理回路の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017085365A JP6810651B2 (ja) 2017-04-24 2017-04-24 電子制御装置、論理回路の制御方法

Publications (2)

Publication Number Publication Date
JP2018186332A JP2018186332A (ja) 2018-11-22
JP6810651B2 true JP6810651B2 (ja) 2021-01-06

Family

ID=63918915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017085365A Active JP6810651B2 (ja) 2017-04-24 2017-04-24 電子制御装置、論理回路の制御方法

Country Status (5)

Country Link
US (1) US11132329B2 (ja)
JP (1) JP6810651B2 (ja)
CN (1) CN110520855B (ja)
DE (1) DE112018001595T5 (ja)
WO (1) WO2018198616A1 (ja)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020673B2 (en) 2001-01-19 2006-03-28 Sony Corporation Reconfigurable arithmetic device and arithmetic system including that arithmetic device and address generation device and interleave device applicable to arithmetic system
JP3846196B2 (ja) 2001-01-19 2006-11-15 ソニー株式会社 演算装置および並列演算装置
US8281297B2 (en) * 2003-02-05 2012-10-02 Arizona Board Of Regents Reconfigurable processing
JP4720436B2 (ja) * 2005-11-01 2011-07-13 株式会社日立製作所 リコンフィギュラブルプロセッサまたは装置
JPWO2007074583A1 (ja) * 2005-12-27 2009-06-04 パナソニック株式会社 再構成可能な演算器を持つプロセッサ
JP3877002B2 (ja) * 2006-01-05 2007-02-07 富士ゼロックス株式会社 情報処理システムおよび情報処理方法
JP2007228052A (ja) 2006-02-21 2007-09-06 Nec Engineering Ltd 再構成データ制御回路および再構成データ制御方法
JP2006333496A (ja) 2006-06-22 2006-12-07 Fuji Xerox Co Ltd プログラマブル論理回路装置および情報処理システム
JP5373620B2 (ja) * 2007-11-09 2013-12-18 パナソニック株式会社 データ転送制御装置、データ転送装置、データ転送制御方法及び再構成回路を用いた半導体集積回路
US20110216247A1 (en) * 2008-05-06 2011-09-08 Hideshi Nishida Signal processing device, signal processing method, integrated circuit for signal processing, and television receiver
CN102567281B (zh) * 2011-12-16 2014-10-15 北京大学深圳研究生院 可重构调度算子阵列结构、集成电路阵列结构及控制模块
JP5994679B2 (ja) * 2013-02-26 2016-09-21 株式会社ソシオネクスト 処理装置、及び処理装置の制御方法
CN105659287B (zh) * 2013-08-28 2018-08-17 株式会社理光 图像处理装置、图像处理方法和成像系统
US20160025497A1 (en) * 2014-07-24 2016-01-28 Harman International Industries, Incorporated Pre-caching of navigation content based on cellular network coverage
JP6685694B2 (ja) 2015-10-28 2020-04-22 キヤノン株式会社 画像形成装置、情報処理装置及びその制御方法並びにコンピュータプログラム、記録媒体
JP6713410B2 (ja) * 2016-11-21 2020-06-24 日立オートモティブシステムズ株式会社 電子制御装置
US11334263B2 (en) * 2018-01-11 2022-05-17 Intel Corporation Configuration or data caching for programmable logic device
FR3086412B1 (fr) * 2018-09-20 2020-10-30 Amadeus Sas Recalcul des resultats de recherche precalcules

Also Published As

Publication number Publication date
JP2018186332A (ja) 2018-11-22
DE112018001595T5 (de) 2020-01-02
CN110520855B (zh) 2023-01-20
US11132329B2 (en) 2021-09-28
WO2018198616A1 (ja) 2018-11-01
US20200050580A1 (en) 2020-02-13
CN110520855A (zh) 2019-11-29

Similar Documents

Publication Publication Date Title
JP2021518591A (ja) 機械知覚および高密度アルゴリズム集積回路を実装するためのシステムおよび方法
CN110036370B (zh) 电子控制装置、电子控制系统和电子控制方法
US20240045722A1 (en) Accelerating table lookups using a decoupled lookup table accelerator in a system on a chip
US20180150386A1 (en) Multi-processor and multi-processor system
JP6810651B2 (ja) 電子制御装置、論理回路の制御方法
JP6109340B2 (ja) 情報機器
US11878704B2 (en) Electronic control device and control method
CN110915138B (zh) 电子控制装置和电路的重构方法
US20220300445A1 (en) Electronic Control Unit, Vehicle Comprising the Electronic Control Unit and Computer-Implemented Method
US20220058020A1 (en) Electronic control device and control method
WO2020059347A1 (ja) 電子制御装置
JP6781089B2 (ja) 電子制御装置、電子制御システム、電子制御装置の制御方法
US8320150B2 (en) Structure and method for backing up and restitution of data
JP7201381B2 (ja) 電子制御装置、並列処理方法
KR102253414B1 (ko) Cnn-rnn 아키텍처 전환형 연산 가속장치 설계 방법
US11755806B2 (en) Systems and methods for executing a programmable finite state machine that accelerates fetchless computations and operations of an array of processing cores of an integrated circuit
JP2007329760A (ja) プログラマブル論理デバイス、回路情報入力制御装置および半導体装置
US20230134744A1 (en) Execution State Management
CN116561049A (zh) 一种基于片内处理器配置码流的fpga及码流配置方法
US20230050062A1 (en) Simd data path organization to increase processing throughput in a system on a chip
US20090144461A1 (en) Method and system for configuration of a hardware peripheral
JP2024046296A (ja) 制御システム及びソフトウェア更新方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201023

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: 20201201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201211

R150 Certificate of patent or registration of utility model

Ref document number: 6810651

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250