(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024097465
(43)【公開日】2024-07-19
(54)【発明の名称】情報処理装置及び情報処理方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20240711BHJP
G06F 9/54 20060101ALI20240711BHJP
G06F 15/78 20060101ALI20240711BHJP
【FI】
G06F12/00 560D
G06F9/54 A
G06F15/78 550
G06F12/00 572A
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023000927
(22)【出願日】2023-01-06
(71)【出願人】
【識別番号】000004204
【氏名又は名称】日本精工株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】鳥居 武史
【テーマコード(参考)】
5B062
5B160
【Fターム(参考)】
5B062CC05
5B062EE10
5B160CB06
5B160CD17
(57)【要約】
【課題】データの読み出し処理中にデータの書き込み処理が生じてもデータの読み出し処理の独立性を確保できる情報処理装置等を提供する。
【解決手段】情報処理装置10は、データを記憶可能に設けられた記憶部11と、外部からの情報の入力に基づいたデータを記憶部11に書き込み、記憶部11に記憶されたデータを読み出して読み出されたデータに基づいた処理を行う制御部12と、を備える。記憶部11は、個別にデータを記憶可能な第1レジスタ領域110aと第2レジスタ領域110bとを有する。制御部12は、第1レジスタ領域110a又は第2レジスタ領域110bの一方からのデータの読み出しが行われている間、読み出されているデータとは別のデータが記憶部11に書き込まれる場合、当該別のデータを第1レジスタ領域110a又は第2レジスタ領域110bの他方に退避させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
データを記憶可能に設けられた記憶部と、
外部からの情報の入力に基づいたデータを前記記憶部に書き込み、前記記憶部に記憶されたデータを読み出して読み出されたデータに基づいた処理を行う制御部と、を備え、
前記記憶部は、個別にデータを記憶可能な第1レジスタ領域と第2レジスタ領域とを有し、
前記制御部は、前記第1レジスタ領域又は前記第2レジスタ領域の一方からのデータの読み出しが行われている間、読み出されているデータとは別のデータが前記記憶部に書き込まれる場合、前記別のデータを前記第1レジスタ領域又は前記第2レジスタ領域の他方に退避させる、
情報処理装置。
【請求項2】
データを前記記憶部に書き込む書き込み処理が行われている間、前記記憶部に記憶されたデータを読み出す読み出し処理は開始されず、
前記読み出し処理が行われている間でも、前記書き込み処理は開始される、
請求項1に記載の情報処理装置。
【請求項3】
外部から情報を入力する装置と、前記情報処理装置と、は同期しない、
請求項2に記載の情報処理装置。
【請求項4】
外部から情報を入力する装置は、センサであり、
前記制御部は、前記センサからの入力に基づいて、前記情報処理装置と接続されたアクチュエータの動作を制御する、
請求項1から3のいずれか一項に記載の情報処理装置。
【請求項5】
前記センサは、当該センサが取り付けられた構造物の変位を検出する変位センサ、前記構造物の単位時間あたりの変位の度合いを検出する速度センサ、及び、前記構造物の単位時間あたりの加速度を検出する加速度センサ、のうち少なくともいずれか1つ以上として機能する、
請求項4に記載の情報処理装置。
【請求項6】
情報処理装置が、外部からの情報の入力に基づいたデータを記憶装置に書き込み、前記記憶装置に記憶されたデータを読み出して読み出されたデータに基づいた処理を行う情報処理方法であって、
前記情報処理装置は、前記記憶装置において個別にデータを記憶可能に設けられた第1レジスタ領域と第2レジスタ領域の一方からのデータの読み出しが行われている間、読み出されているデータとは別のデータの書き込みが行われる場合、前記別のデータを前記第1レジスタ領域と前記第2レジスタ領域の他方に退避させる、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【0002】
マイクロプロセッサ等の演算装置を有する情報処理装置による情報処理方法として、1つの演算処理中に生じうる別の演算処理による割り込みの発生に対応するための演算処理の優先度付けを行う情報処理方法が知られている(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
複数の演算処理で読み書きされるデータの記憶領域が共有される場合、1つの演算処理が行われている間により優先度の高い他の演算処理が割り込んだとき、当該1つの演算処理で読み出されているデータが当該他の演算処理によって上書きされてしまい、当該1つの演算処理に影響を与えてしまうことがある。
【0005】
本発明は、データの読み出し処理中にデータの書き込み処理が生じてもデータの読み出し処理の独立性を確保できる情報処理装置及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記の目的を達成するための本発明の情報処理装置は、データを記憶可能に設けられた記憶部と、外部からの情報の入力に基づいたデータを前記記憶部に書き込み、前記記憶部に記憶されたデータを読み出して読み出されたデータに基づいた処理を行う制御部と、を備え、前記記憶部は、個別にデータを記憶可能な第1レジスタ領域と第2レジスタ領域とを有し、前記制御部は、前記第1レジスタ領域又は前記第2レジスタ領域の一方からのデータの読み出しが行われている間、読み出されているデータとは別のデータが前記記憶部に書き込まれる場合、前記別のデータを前記第1レジスタ領域又は前記第2レジスタ領域の他方に退避させる。
【0007】
従って、データの読み出しが第1レジスタ領域又は第2レジスタ領域の一方から行われている間、当該一方にデータの書き込みが行われることはない。従って、データの読み出し処理中にデータの書き込み処理が生じてもデータの読み出し処理の独立性を確保できる。
【0008】
本発明の情報処理装置では、データを前記記憶部に書き込む書き込み処理が行われている間、前記記憶部に記憶されたデータを読み出す読み出し処理は開始されず、前記読み出し処理が行われている間でも、前記書き込み処理は開始される。
【0009】
従って、データの読み出しが行われている間に生じる割り込み処理としてのデータの書き込みに対応できる。
【0010】
本発明の情報処理装置では、外部から情報を入力する装置と、前記情報処理装置と、は同期しない。
【0011】
従って、情報処理装置とは独立して動作してデータを情報処理装置に入力してくる外部の装置から提供されるデータを、読み出し処理中か否かに関わらず記憶部に書き込むことができる。これによって、情報処理装置によるデータの読み出しのタイミングに関わらず外部から入力されるデータの書き込みによるデータの保全を行える。すなわち、外部から入力されるデータを記憶部に書き込むことができずに当該データを破棄せざるをえない事態の発生を抑制できる。
【0012】
本発明の情報処理装置では、外部から情報を入力する装置は、センサであり、前記制御部は、前記センサからの入力に基づいて、前記情報処理装置と接続されたアクチュエータの動作を制御する。
【0013】
従って、情報処理装置を、センサによるセンシングの結果に応じたアクチュエータの動作制御に利用できる。
【0014】
本発明の情報処理装置では、前記センサは、当該センサが取り付けられた構造物の変位を検出する変位センサ、前記構造物の単位時間あたりの変位の度合いを検出する速度センサ、及び、前記構造物の単位時間あたりの加速度を検出する加速度センサ、のうち少なくともいずれか1つ以上として機能する。
【0015】
従って、構造物に生じた変位に対応してアクチュエータを動作させることができる。
【0016】
上記の目的を達成するための本発明の情報処理方法は、情報処理装置が、外部からの情報の入力に基づいたデータを記憶装置に書き込み、前記記憶装置に記憶されたデータを読み出して読み出されたデータに基づいた処理を行う情報処理方法であって、前記情報処理装置は、前記記憶装置において個別にデータを記憶可能に設けられた第1レジスタ領域と第2レジスタ領域の一方からのデータの読み出しが行われている間、読み出されているデータとは別のデータの書き込みが行われる場合、前記別のデータを前記第1レジスタ領域と前記第2レジスタ領域の他方に退避させる。
【0017】
従って、データの読み出しが第1レジスタ領域又は第2レジスタ領域の一方から行われている間、当該一方にデータの書き込みが行われることはない。従って、データの読み出し処理中にデータの書き込み処理が生じてもデータの読み出し処理の独立性を確保できる。
【発明の効果】
【0018】
本発明によれば、データの読み出し処理中にデータの書き込み処理が生じてもデータの読み出し処理の独立性を確保できる。
【図面の簡単な説明】
【0019】
【
図1】
図1は、実施形態の情報処理装置が利用される構成例を示すブロック図である。
【
図2】
図2は、制御対象の制振に係る制御部の主要な処理の流れを示すフローチャートである。
【
図3】
図3は、制御部の初期化処理の流れを示すフローチャートである。
【
図4】
図4は、
図2に示すステップS1の処理の流れの一例を示すフローチャートである。
【
図5】
図5は、
図2に示すステップS2の処理の流れの一例を示すフローチャートである。
【
図6】
図6は、読み出しプロセスと、書き込みプロセスと、第1レジスタ領域に対するアクセスと、第2レジスタ領域に対するアクセスと、書き込みフラグと、読み出しフラグと、の関係の一例を示すタイムチャートである。
【
図7】
図7は、レジスタ領域の構成例を示すブロック図である。
【
図8】
図8は、
図2に示すステップS1の処理の流れの他の一例を示すフローチャートである。
【
図9】
図9は、読み出しプロセスと、書き込みプロセスと、第1レジスタ領域に対するアクセスと、第2レジスタ領域に対するアクセスと、書き込みフラグと、読み出しフラグと、の関係の他の一例を示すタイムチャートである。
【
図10】
図10は、読み出しプロセスと、書き込みプロセスと、レジスタ領域に対するアクセスと、の関係の参考例を示すタイムチャートである。
【発明を実施するための形態】
【0020】
以下、本発明に係る実施形態について図面を参照しながら説明するが、本発明はこれに限定されない。以下で説明する各実施形態の要件は、適宜組み合わせることができる。また、一部の構成要素を用いない場合もある。
【0021】
図1は、実施形態の情報処理装置10を含む構成例を示すブロック図である。当該構成例は、情報処理装置10と、センサ20と、駆動部30と、制御対象100と、を含む。情報処理装置10は、センサ20からの情報の入力に応じて、駆動部30の動作を制御するための出力を行う情報処理装置である。情報処理装置10は、
図1に示すように、記憶部11と、制御部12と、を備える。情報処理装置10は、情報処理装置10、センサ20、駆動部30は、車両、エレベーター、ビル等の建物等に用いられる。
【0022】
記憶部11は、データを書き換え可能に設けられた記憶装置として機能する。記憶部11は、例えばフラッシュメモリであるが、これに限られるものでなく、同様に機能する他の構成であってもよい。記憶部11は、第1レジスタ領域110aと、第2レジスタ領域110bと、を含む。
【0023】
制御部12は、情報処理装置10の動作に関する各種の処理を行う。具体的には、制御部12は、センサ20から得られた情報を第1レジスタ領域110a又は第2レジスタ領域110bに記憶させる書き込みを行う。また、制御部12は、第1レジスタ領域110a又は第2レジスタ領域110bに記憶された最新の情報に基づいて、駆動部30の動作を制御するための演算処理を行う。実施形態の情報処理装置10は、係る書き込み及び演算処理を実現可能に設けられた、いわゆるSoC(System on a Chip)である。
【0024】
センサ20は、例えば、ビル等の建物等が地震により生じる振動や、車両等が凹凸な路面を走行した際に生じる振動を検知するために用いられ、制御対象100に生じた振動に関する情報を情報処理装置10へ出力する。実施形態のセンサ20は、制御対象100の変位、制御対象100の速度及び制御対象100の加速度のうち少なくとも1つ以上の情報を出力するセンサとして機能する。実施形態のセンサ20は、いわゆるASSY(assembly)である。具体例を挙げると、当該ASSYは、例えば、アナログの加速度センサと、当該アナログの加速度センサが出力する電荷をデジタル情報に変換するA/D変換回路と、を含む。当該アナログの加速度センサは、例えば、圧電素子と重りとが一体化された構造体である。
【0025】
なお、情報処理装置10と、センサ20と、は非同期である。すなわち、制御部12による演算処理の実行期間中、センサ20による情報の出力はスケジューリングされていない。センサ20による情報の出力は、制御部12の演算処理に対する割り込みとして扱われる。
【0026】
駆動部30は、制御対象100に対して外部から力を与えることで、制御対象100に生じた振動を軽減、抑制することを意図して設けられた駆動装置である。実施形態の駆動部30は、いわゆるACM(Active Control Mount)を実現するためのアクチュエータを構成に含む。当該アクチュエータは、情報処理装置10の制御下で動作するよう設けられる。すなわち、実施形態の情報処理装置10は、駆動部30のコントローラとして設けられる。
【0027】
制御対象100は、振動をより小さくするよう制御されることが望ましい構造体である。係る構造体として、例えば自動車の車体等が挙げられるが、これに限られるものでなく、外部からの予定されない振動の影響を受けることが望ましくない他の機器であってもよい。
【0028】
図2は、制御対象100の制振に係る制御部12の主要な処理の流れを示すフローチャートである。制御部12は、所定周期でのセンシングデータの書き込みを行う(ステップS1)。具体的には、実施形態のセンサ20は、制御対象100に生じた振動に関する情報(例えば、変位、速度及び加速度)を所定周期で出力する。制御部12は、センサ20からの出力に応じて書き込みを行う。すなわち、制御部12は、当該出力が示す情報をセンシングデータとして第1レジスタ領域110a又は第2レジスタ領域110bに記憶させる。所定周期は、例えば100Hzであるが、これに限られるものでなく、制振の観点で最適な周期が選定されてよい。
【0029】
ステップS1の処理が少なくとも1回以上行われた後、制御部12は、第1レジスタ領域110a又は第2レジスタ領域110bに記憶された最新のセンシングデータを読み出す(ステップS2)。制御部12は、ステップS2の処理で読み出された最新のセンシングデータが示す制御対象100の状態に応じた駆動部30の動作制御を行う(ステップS3)。
【0030】
なお、ステップS2の処理、ステップS3の処理が行われている最中であっても、ステップS1の処理は、並行して行われる。具体的には、実施形態では、センシングデータの書き込みと、センシングデータの読み出しと、の間に優先度の優劣が設定されている。より具体的には、センシングデータの書き込みの優先度は、センシングデータの読み出しよりも高い。従って、ステップS2の処理中にステップS1の処理が開始される場合もありうる。この場合、センシングデータの読み出し中にセンシングデータの書き込みが新たに行われる。これによって、センサ20から複数回出力される情報を破棄することなく、最新の出力に対応した最新のセンシングデータを記憶部11に記憶させることができる。
【0031】
ただし、ある1回のセンサ20からの出力に対応したステップS1の処理が開始された場合、当該ステップS1の処理が完了するまで、新たにステップS2の処理が開始されることはない。これは、センシングデータの書き込みの優先度が、センシングデータの読み出しよりも高いため、センシングデータの書き込みが行われている間、センシングデータの読み出しが待機状態になることによる。
【0032】
ここで、後述する参考例(
図10参照)のように、センシングデータの書き込み対象となる記憶領域と、センシングデータの読み出し対象となる記憶領域と、が同一であると仮定すると、当該記憶領域に対する読み出しが行われている最中に書き込みが行われる状態が生じる。このような状態では、書き込み前のデータと、書き込み後のデータとが混在するセンシングデータの読み出しが行われてしまう。すなわち、2回分のセンシングデータが混在したセンシングデータの読み出しが行われてしまう。このようなセンシングデータの取り扱いは、あるタイミングで取得された1回分のセンシングデータに応じた駆動部30の動作制御を確実に成立させる観点で望ましくない。そこで、実施形態では、このような状態の発生を抑制するセンシングデータの書き込み制御が行われる。以下、当該書き込み制御に関する処理の流れについて、
図3から
図6を参照して説明する。
【0033】
図3は、制御部12の初期化処理の流れを示すフローチャートである。制御部12は、読み出しフラグrを、初期値0で設定する(ステップS11)。また、制御部12は、書き込みフラグwを、初期値0で設定する(ステップS12)。ステップS11の処理と、ステップS12の処理と、は順不同である。実施形態の読み出しフラグr及び書き込みフラグwは、0又は1のいずれかを設定可能に設けられた変数である。なお、変数の管理に採用されるアルファベット(r,w)はあくまで実施形態の説明のために記載しているものであって、本開示による態様をこれに限定するものでない。
【0034】
図4は、
図2に示すステップS1の処理の流れの一例を示すフローチャートである。まず、センサ20からの情報の出力タイミングに応じて、制御部12がセンシングデータを取得する(ステップS21)。
【0035】
制御部12は、読み出しフラグrが0であるか判定する(ステップS22)。読み出しフラグrが0でないと判定された場合(ステップS22;No)、制御部12は、書き込みフラグwが0であるか判定する(ステップS23)。
【0036】
ステップS22の処理で読み出しフラグrが0であると判定された場合(ステップS22;Yes)又はステップS23の処理で書き込みフラグwが0でないと判定された場合(ステップS23;No)、制御部12は、ステップS21の処理で取得されたセンシングデータを第1レジスタ領域110aへ書き込む(ステップS24)。ステップS24の処理後、制御部12は、書き込みフラグwを0に更新する(ステップS25)。
【0037】
ステップS23の処理で書き込みフラグwが0であると判定された場合(ステップS23;Yes)、制御部12は、ステップS21の処理で取得されたセンシングデータを第2レジスタ領域110bへ書き込む(ステップS26)。ステップS26の処理後、制御部12は、書き込みフラグwを1に更新する(ステップS27)。
【0038】
ステップS1の処理(
図2参照)は、
図4に示すステップS21の処理で開始され、ステップS25の処理又はステップS27の処理を以て完了する。ステップS21の処理は、センサ20による出力のたびに生じる。すなわち、所定周期で繰り返されるステップS1の処理毎に、
図4を参照して説明した処理が行われる。
【0039】
図5は、
図2に示すステップS2の処理の流れの一例を示すフローチャートである。ステップS2の処理の開始に係り、まず、制御部12は、読み出しフラグrを1に更新する(ステップS31)。
【0040】
制御部12は、書き込みフラグwが0であるか判定する(ステップS32)。書き込みフラグwが0であると判定された場合(ステップS32;Yes)、制御部12は、第1レジスタ領域110aからのセンシングデータの読み出しを行う(ステップS33)。一方、書き込みフラグwが0でないと判定された場合(ステップS32;No)、制御部12は、第2レジスタ領域110bからのセンシングデータの読み出しを行う(ステップS34)。ステップS33又はステップS34の処理後、制御部12は、読み出しフラグrを0に更新し(ステップS35)、ステップS2の処理を終了する。
【0041】
図6は、読み出しプロセスと、書き込みプロセスと、第1レジスタ領域110aに対するアクセスと、第2レジスタ領域110bに対するアクセスと、書き込みフラグと、読み出しフラグと、の関係の一例を示すタイムチャートである。
【0042】
図6及び後述する
図9における起点WSnは、第1レジスタ領域110a又は第2レジスタ領域110bへのセンシングデータの書き込みプロセスの開始タイミングを示す。また、終点WEnは、第1レジスタ領域110a又は第2レジスタ領域110bへのセンシングデータの書き込みプロセスの終了タイミングを示す。nは、自然数である。例えば、起点WS1で開始された書き込みプロセスは、終点WE1で終了する。
【0043】
図6及び後述する
図9における起点RSnは、第1レジスタ領域110a又は第2レジスタ領域110bからのセンシングデータの読み出しプロセスの開始タイミングを示す。終点REnは、第1レジスタ領域110a又は第2レジスタ領域110bからのセンシングデータの読み出しプロセスの終了タイミングを示す。例えば、起点RS1で開始された書き込みプロセスは、終点RE1で終了する。
【0044】
図6に示す時間の開始タイミングで、書き込みフラグw及び読み出しフラグrは、ともに0である。これは、
図3を参照して説明したステップS11の処理及びステップS12の処理による。
【0045】
図6に示す例では、まず、起点WS1から始まる書き込みプロセスが生じている。起点WS1のタイミングで、読み出しフラグrは、0である。従って、
図4におけるステップS22の処理で読み出しフラグrが0であると判定された場合(ステップS22;Yes)に該当し、制御部12は、センシングデータを第1レジスタ領域110aへ書き込む(ステップS24)。ステップS24の処理が完了する終点WE1に対応したタイミングT1で、制御部12は、書き込みフラグwを0に更新する(ステップS25)。書き込みフラグwは、タイミングT1前もタイミングT1後も0であるので、変化しない。
【0046】
図6に示す例では、次に、起点RS1が生じている。起点RS1のタイミングT2で、
図5におけるステップS31の処理によって読み出しフラグrが1に更新される。タイミングT2における書き込みフラグwは、0である。従って、
図5におけるステップS32の処理で書き込みフラグwが0であると判定された場合(ステップS32;Yes)に該当し、制御部12は、第1レジスタ領域110aからのセンシングデータの読み出しを行う(ステップS33)。第1レジスタ領域110aには、起点WS1から始まる書き込みプロセスで記憶された最新のセンシングデータが記憶されている。
【0047】
図6に示す例では、起点RS1の後、起点RS1から始まる読み出しプロセスの終点RE1が生じる前に、起点WS2から始まる書き込みプロセスが生じている。起点WS2のタイミングで、読み出しフラグrは、1である。また、起点WS2のタイミングで、書き込みフラグwは、0である。従って、
図4におけるステップS23の処理で書き込みフラグwが0であると判定された場合(ステップS23;Yes)に該当し、制御部12は、センシングデータを第2レジスタ領域110bへ書き込む(ステップS26)。ステップS26の処理が完了する終点WE2に対応したタイミングT3で、制御部12は、書き込みフラグwを1に更新する(ステップS27)。
【0048】
終点WE2の後、終点RE1に対応したタイミングT4で、制御部12は、読み出しフラグrを0に更新する(ステップS35)。このように、起点RS1から始まる第1レジスタ領域110aからのセンシングデータの読み出しプロセスの最中、起点WS2から始まるセンシングデータの書き込みは、第2レジスタ領域110bに対して行われる。これによって、起点RS1から始まる第1レジスタ領域110aからのセンシングデータの読み出しプロセスが終点RE1に完了するまでの間、第1レジスタ領域110aにおけるセンシングデータの同一性が保持される。すなわち、実施形態では、読み出しプロセス中に読み出されるセンシングデータが更新されてしまうことはない。
【0049】
図6に示す例では、終点RE1の後、新たな書き込みプロセスを経ることなく起点RS2が生じている。起点RS2のタイミングT5で、
図5におけるステップS31の処理によって読み出しフラグrが1に更新される。タイミングT5における書き込みフラグwは、1である。従って、
図5におけるステップS32の処理で書き込みフラグwが0でないと判定された場合(ステップS32;No)に該当し、制御部12は、第2レジスタ領域110bからのセンシングデータの読み出しを行う(ステップS34)。第2レジスタ領域110bには、起点WS2から始まる書き込みプロセスで記憶された最新のセンシングデータが記憶されている。
【0050】
図6に示す例では、起点RS2の後、起点RS2から始まる読み出しプロセスの終点RE2が生じる前に、起点WS3から始まる書き込みプロセスが生じている。起点WS3のタイミングで、読み出しフラグrは、1である。また、起点WS3のタイミングで、書き込みフラグwは、1である。従って、
図4におけるステップS23の処理で読み出しフラグrが0でないと判定された場合(ステップS23;No)に該当し、制御部12は、センシングデータを第1レジスタ領域110aへ書き込む(ステップS24)。ステップS24の処理が完了する終点WE3に対応したタイミングT6で、制御部12は、書き込みフラグwを0に更新する(ステップS25)。
【0051】
終点WE3の後、終点RE2に対応したタイミングT7で、制御部12は、読み出しフラグrを0に更新する(ステップS35)。このように、起点RS2から始まる第2レジスタ領域110bからのセンシングデータの読み出しプロセスの最中、起点WS3から始まるセンシングデータの書き込みは、第1レジスタ領域110aに対して行われる。これによって、起点RS2から始まる第2レジスタ領域110bからのセンシングデータの読み出しプロセスが終点RE2に完了するまでの間、第2レジスタ領域110bにおけるセンシングデータの同一性が保持される。
【0052】
図6に示す例では、次に、起点WS4から始まる書き込みプロセスが生じている。起点WS4のタイミングで、読み出しフラグrは、0である。従って、
図4におけるステップS22の処理で読み出しフラグrが0であると判定された場合(ステップS22;Yes)に該当し、制御部12は、センシングデータを第1レジスタ領域110aへ書き込む(ステップS24)。ステップS24の処理が完了する終点WE4に対応したタイミングT8で、制御部12は、書き込みフラグwを0に更新する(ステップS25)。書き込みフラグwは、タイミングT8前もタイミングT1後も0であるので、変化しない。
【0053】
図6に示す例では、次に、起点RS3が生じている。起点RS3のタイミングT9で、
図5におけるステップS31の処理によって読み出しフラグrが1に更新される。タイミングT9における書き込みフラグwは、0である。従って、
図5におけるステップS32の処理で書き込みフラグwが0であると判定された場合(ステップS32;Yes)に該当し、制御部12は、第1レジスタ領域110aからのセンシングデータの読み出しを行う(ステップS33)。第1レジスタ領域110aには、起点WS4から始まる書き込みプロセスで記憶された最新のセンシングデータが記憶されている。
【0054】
図6に示す例では、起点RS3の後、起点RS3から始まる読み出しプロセスの終点RE3が生じる前に、起点WS5から始まる書き込みプロセスが生じている。起点WS5のタイミングで、読み出しフラグrは、1である。また、起点WS5のタイミングで、書き込みフラグwは、0である。従って、
図4におけるステップS23の処理で読み出しフラグrが0であると判定された場合(ステップS23;Yes)に該当し、制御部12は、センシングデータを第2レジスタ領域110bへ書き込む(ステップS26)。ステップS26の処理が完了する終点WE5に対応したタイミングT10で、制御部12は、書き込みフラグwを1に更新する(ステップS27)。
【0055】
終点WE5の後、終点RE3に対応したタイミングT11で、制御部12は、読み出しフラグrを0に更新する(ステップS35)。このように、起点RS3から始まる第1レジスタ領域110aからのセンシングデータの読み出しプロセスの最中、起点WS5から始まるセンシングデータの書き込みは、第2レジスタ領域110bに対して行われる。これによって、起点RS3から始まる第1レジスタ領域110aからのセンシングデータの読み出しプロセスが終点RE3に完了するまでの間、第1レジスタ領域110aにおけるセンシングデータの同一性が保持される。
【0056】
図6に示す例では、次に、起点WS6から始まる書き込みプロセスが生じている。起点WS6のタイミングで、読み出しフラグrは、0である。従って、
図4におけるステップS22の処理で読み出しフラグrが0であると判定された場合(ステップS22;Yes)に該当し、制御部12は、センシングデータを第1レジスタ領域110aへ書き込む(ステップS24)。ステップS24の処理が完了する終点WE4に対応したタイミングT12で、制御部12は、書き込みフラグwを0に更新する(ステップS25)。
【0057】
図6を参照して説明したように、制御部12は、第1レジスタ領域110a又は第2レジスタ領域110bの一方からのセンシングデータの読み出しが行われている間に新たなセンシングデータの書き込みが行われる場合、新たに書き込まれるデータを第1レジスタ領域110a又は第2レジスタ領域110bの他方に退避させる。これによって、新たなセンシングデータの書き込みが行われる間にも継続しているセンシングデータの読み出しにおいて、誤って読み出しの最中にセンシングデータが上書きされてしまうことを抑制できる。従って、あるタイミングで取得されたセンシングデータに対応した駆動部30の制御をより確実に行える。
【0058】
実施形態では、
図1に示す第1レジスタ領域110aと、第2レジスタ領域110bと、は、管理された記憶領域としてのフォーマットが共通である。以下、第1レジスタ領域110aと、第2レジスタ領域110bと、で共通する事項を説明する場合、レジスタ領域110と記載する。
【0059】
図7は、レジスタ領域110の構成例を示すブロック図である。レジスタ領域110は、個別にデータを記憶可能な複数の記憶領域を含む。具体的には、例えば
図7に示すように、レジスタ領域110は、第1情報格納領域111と、第2情報格納領域112と、第3情報格納領域113と、を含む。第1情報格納領域111と、第2情報格納領域112と、第3情報格納領域113と、はそれぞれ異なる情報を格納できるよう確保された記憶領域である。実施形態では、第1情報格納領域111に制御対象100の加速度を示す情報が記憶され、第2情報格納領域112に制御対象100の速度を示す情報が記憶され、第3情報格納領域113に制御対象100の変位を示す情報としての位置情報が記憶される。なお、レジスタ領域110は、2つの記憶領域を有していてもよいし、4つ以上の記憶領域を有していてもよい。
【0060】
変位とは、位置の変化の度合いをさす。例えば、制御対象100が振動している場合、センサ20のセンシングによって求められた変位が示すのは、当該振動の振幅である。速度とは、単位時間あたりの変位量をさす。例えば、ある変位が示す位置の変化の度合いが生じる間に経過した時間で当該変位を除した値が、速度にあたる。加速度とは、単位時間あたりの速度の変化量をさす。例えば、ある変位が生じる間における速度は一般的に一定ではなく、変位の開始から終了までの期間に速度は都度変化しうる。この場合、当該期間を単位時間で細分化して単位時間あたりの速度を求めることで、単位時間あたりの加速度を導出できる。このように、変位と、速度と、加速度と、は互いに関連している。例えば、センサ20が制御対象100の加速度を検出する加速度センサであるとする。当該加速度を積分すると、制御対象100の速度を導出できる。当該速度を積分すると、制御対象100の変位を導出できる。逆に、変位を微分すると、速度を導出できる。また、速度を微分すると、加速度を導出できる。
【0061】
実施形態のセンサ20が出力する情報は、制御対象100の変位、制御対象100の速度及び制御対象100の加速度のうち少なくとも1つ以上である。これらのうち1つから全てを求める処理は、センサ20に設けられた回路が行ってもよいし、制御部12が行ってもよい。
【0062】
以上、実施形態によれば、情報処理装置10は、データを記憶可能に設けられた記憶部11と、外部からの情報の入力に基づいたデータを記憶部11に書き込み、記憶部11に記憶されたデータを読み出して読み出されたデータに基づいた処理を行う制御部12と、を備える。記憶部11は、個別にデータを記憶可能な第1レジスタ領域110aと第2レジスタ領域110bとを有する。制御部12は、第1レジスタ領域110a又は第2レジスタ領域110bの一方からのデータの読み出しが行われている間、読み出されているデータとは別のデータが記憶部11に書き込まれる場合、当該別のデータを第1レジスタ領域110a又は第2レジスタ領域110bの他方に退避させる。
【0063】
従って、データの読み出しが第1レジスタ領域110a又は第2レジスタ領域110bの一方から行われている間、当該一方にデータの書き込みが行われることはない。従って、データの読み出し処理中にデータの書き込み処理が生じてもデータの読み出し処理の独立性を確保できる。すなわち、データの読み出し処理中にデータの書き込み処理が割り込んでも、データの読み出し処理と、データの書き込み処理と、をそれぞれ個別に、より確実に実行できる。
【0064】
また、情報処理装置10では、データを記憶部11に書き込む書き込み処理が行われている間、記憶部11に記憶されたデータを読み出す読み出し処理は開始されず、当該読み出し処理が行われている間でも、当該書き込み処理が開始されるようにすることで、データの読み出しが行われている間に生じる割り込み処理としてのデータの書き込みに対応できる。
【0065】
また、外部から情報を入力する装置(例えば、センサ20)と、情報処理装置10と、が同期しないことで、情報処理装置10とは独立して動作してデータを情報処理装置10に入力してくる当該装置から提供されるデータを、読み出し処理中か否かに関わらず記憶部11に書き込むことができる。これによって、情報処理装置10によるデータの読み出しのタイミングに関わらず外部から入力されるデータの書き込みによるデータの保全を行える。すなわち、外部から入力されるデータを記憶部11に書き込むことができずに当該データを破棄せざるをえない事態の発生を抑制できる。
【0066】
また、情報処理装置10では、外部から情報を入力する装置は、センサであり、記憶部11は、当該センサからの入力に基づいて、情報処理装置10と接続されたアクチュエータ(例えば、駆動部30)の動作を制御する。
【0067】
従って、情報処理装置10を、センサによるセンシングの結果に応じたアクチュエータの動作制御に利用できる。
【0068】
また、外部から情報を入力するセンサであるセンサ20は、センサ20が取り付けられた構造物(例えば、制御対象100)の変位を検出する変位センサ、当該構造物の単位時間あたりの変位の度合いを検出する速度センサ、及び、当該構造物の単位時間あたりの加速度を検出する加速度センサ、のうち少なくともいずれか1つ以上として機能する。
【0069】
従って、センサ20が取り付けられた構造物に生じた変位に対応してアクチュエータを動作させることができる。
【0070】
(変形例)
次に、実施形態の変形例について、
図8及び
図9を参照して説明する。変形例に係る説明では、実施形態と同様の事項については同じ符号を付して説明を省略する。
【0071】
図1から
図6を参照して説明した実施形態では、
図4及び
図6を参照して説明したように、読み出しプロセスが生じていない限り、新たに生じたセンシングデータの書き込みが第1レジスタ領域110aに対して行われている。これに対し、変形例では、読み出しプロセスの最中に書き込みプロセスが生じない限り、センシングデータの書き込みが行われる対象が切り替わらない。
【0072】
図8は、
図2に示すステップS1の処理の流れの他の一例を示すフローチャートである。まず、センサ20からの情報の出力タイミングに応じて、制御部12がセンシングデータを取得する(ステップS41)。
【0073】
制御部12は、書き込みフラグwが0であるか判定する(ステップS42)。書き込みフラグwが0であると判定された場合(ステップS42;Yes)、制御部12は、読み出しフラグrが0であるか判定する(ステップS43)。
【0074】
ステップS43の処理で読み出しフラグrが0であると判定された場合(ステップS43;Yes)、制御部12は、ステップS41の処理で取得されたセンシングデータを第1レジスタ領域110aへ書き込む(ステップS44)。ステップS44の処理後、制御部12は、書き込みフラグwを0に更新する(ステップS45)。
【0075】
ステップS43の処理で読み出しフラグrが0でないと判定された場合(ステップS43;No)、制御部12は、ステップS21の処理で取得されたセンシングデータを第2レジスタ領域110bへ書き込む(ステップS46)。ステップS46の処理後、制御部12は、書き込みフラグwを1に更新する(ステップS47)。
【0076】
ステップS42の処理で書き込みフラグwが0でないと判定された場合(ステップS42;No)、制御部12は、読み出しフラグrが0であるか判定する(ステップS48)。
【0077】
ステップS48の処理で読み出しフラグrが0であると判定された場合(ステップS48;Yes)、ステップS46の処理へ移行する。ステップS48の処理で読み出しフラグrが0でないと判定された場合(ステップS48;No)、ステップS44の処理へ移行する。
【0078】
変形例では、ステップS1の処理(
図2参照)は、
図8に示すステップS41の処理で開始され、ステップS45の処理又はステップS47の処理を以て完了する。ステップS41の処理は、センサ20による出力のたびに生じる。
【0079】
図9は、読み出しプロセスと、書き込みプロセスと、第1レジスタ領域110aに対するアクセスと、第2レジスタ領域110bに対するアクセスと、書き込みフラグと、読み出しフラグと、の関係の他の一例を示すタイムチャートである。
【0080】
図9に示す時間の開始タイミングで、書き込みフラグw及び読み出しフラグrは、ともに0である。これは、
図3を参照して説明したステップS11の処理及びステップS12の処理による。
【0081】
図9に示す例では、まず、起点WS11から始まる書き込みプロセスが生じている。起点WS11のタイミングで、書き込みフラグwは、0である。また、起点WS11のタイミングで、読み出しフラグrは、0である。従って、
図8におけるステップS43の処理で読み出しフラグrが0であると判定された場合(ステップS43;Yes)に該当し、制御部12は、センシングデータを第1レジスタ領域110aへ書き込む(ステップS44)。ステップS44の処理が完了する終点WE11に対応したタイミングT21で、制御部12は、書き込みフラグwを0に更新する(ステップS45)。書き込みフラグwは、タイミングT21前もタイミングT21後も0であるので、変化しない。
【0082】
図9に示す例では、次に、起点RS11が生じている。起点RS11のタイミングT22で、
図5におけるステップS31の処理によって読み出しフラグrが1に更新される。タイミングT22における書き込みフラグwは、0である。従って、
図5におけるステップS32の処理で書き込みフラグwが0であると判定された場合(ステップS32;Yes)に該当し、制御部12は、第1レジスタ領域110aからのセンシングデータの読み出しを行う(ステップS33)。第1レジスタ領域110aには、起点WS11から始まる書き込みプロセスで記憶された最新のセンシングデータが記憶されている。
【0083】
図9に示す例では、起点RS11の後、起点RS11から始まる読み出しプロセスの終点RE11が生じる前に、起点WS12から始まる書き込みプロセスが生じている。起点WS12のタイミングで、書き込みフラグwは、0である。また、起点WS12のタイミングで、読み出しフラグrは、1である。従って、
図8におけるステップS43の処理で読み出しフラグrが0でないと判定された場合(ステップS43;No)に該当し、制御部12は、センシングデータを第2レジスタ領域110bへ書き込む(ステップS46)。ステップS46の処理が完了する終点WE2に対応したタイミングT23で、制御部12は、書き込みフラグwを1に更新する(ステップS47)。
【0084】
終点WE12の後、終点RE11に対応したタイミングT24で、制御部12は、読み出しフラグrを0に更新する(ステップS35)。このように、起点RS11から始まる第1レジスタ領域110aからのセンシングデータの読み出しプロセスの最中、起点WS12から始まるセンシングデータの書き込みは、第2レジスタ領域110bに対して行われる。これによって、起点RS11から始まる第1レジスタ領域110aからのセンシングデータの読み出しプロセスが終点RE11に完了するまでの間、第1レジスタ領域110aにおけるセンシングデータの同一性が保持される。すなわち、変形例でも、実施形態と同様、読み出しプロセス中に読み出されるセンシングデータが更新されてしまうことはない。
【0085】
図9に示す例では、終点RE11の後、新たな読み出しプロセスの起点RS12が生じる前に、起点WS13,WS14から始まる2回の書き込みプロセスが生じている。起点WS13,WS14のタイミングで、書き込みフラグwは、1である。また、起点WS13,WS14のタイミングで、読み出しフラグrは、0である。従って、
図8におけるステップS48の処理で読み出しフラグrが0であると判定された場合(ステップS48;Yes)に該当し、制御部12は、センシングデータを第2レジスタ領域110bへ書き込む(ステップS46)。ステップS46の処理が完了する終点WE13に対応したタイミングT25及び終点WE14に対応したタイミングT26で、制御部12は、書き込みフラグwを1に更新する(ステップS47)。書き込みフラグwは、タイミングT24後からタイミングT28前まで1であり、変化しない。
【0086】
終点WE14の後、起点RS12が生じている。起点RS12のタイミングT27で、
図5におけるステップS31の処理によって読み出しフラグrが1に更新される。タイミングT27における書き込みフラグwは、1である。従って、
図5におけるステップS32の処理で書き込みフラグwが0でないと判定された場合(ステップS32;No)に該当し、制御部12は、第2レジスタ領域110bからのセンシングデータの読み出しを行う(ステップS34)。第2レジスタ領域110bには、起点WS2から始まる書き込みプロセスで記憶された最新のセンシングデータが記憶されている。
【0087】
図9に示す例では、起点RS12の後、起点RS12から始まる読み出しプロセスの終点RE12が生じる前に、起点WS15から始まる書き込みプロセスが生じている。起点WS15のタイミングで、書き込みフラグwは、1である。また、起点WS12のタイミングで、読み出しフラグrは、1である。従って、
図8におけるステップS48の処理で読み出しフラグrが0でないと判定された場合(ステップS48;No)に該当し、制御部12は、センシングデータを第1レジスタ領域110aへ書き込む(ステップS44)。ステップS44の処理が完了する終点WE15に対応したタイミングT28で、制御部12は、書き込みフラグwを0に更新する(ステップS45)。
【0088】
終点WE15の後、終点RE12に対応したタイミングT29で、制御部12は、読み出しフラグrを0に更新する(ステップS35)。このように、起点RS12から始まる第2レジスタ領域110bからのセンシングデータの読み出しプロセスの最中、起点WS15から始まるセンシングデータの書き込みは、第1レジスタ領域110aに対して行われる。これによって、起点RS12から始まる第2レジスタ領域110bからのセンシングデータの読み出しプロセスが終点RE12に完了するまでの間、第2レジスタ領域110bにおけるセンシングデータの同一性が保持される。
【0089】
図9に示す例では、終点RE12の後、起点WS16から始まる書き込みプロセスが生じている。起点WS16のタイミングで、書き込みフラグwは、0である。また、起点WS16のタイミングで、読み出しフラグrは、0である。従って、
図8におけるステップS43の処理で読み出しフラグrが0であると判定された場合(ステップS43;Yes)に該当し、制御部12は、センシングデータを第1レジスタ領域110aへ書き込む(ステップS44)。ステップS44の処理が完了する終点WE16に対応したタイミングT30で、制御部12は、書き込みフラグwを0に更新する(ステップS45)。
【0090】
図9を参照して説明したように、変形例でも、実施形態と同様、制御部12は、第1レジスタ領域110a又は第2レジスタ領域110bの一方からのセンシングデータの読み出しが行われている間に新たなセンシングデータの書き込みが行われる場合、新たに書き込まれるデータを第1レジスタ領域110a又は第2レジスタ領域110bの他方に退避させる。
【0091】
以上のように説明した実施形態及び変形例と比較して、センシングデータの書き込み領域としてのレジスタ領域が単一である参考例について、
図10を参照して説明する。
【0092】
図10は、読み出しプロセスと、書き込みプロセスと、レジスタ領域に対するアクセスと、の関係の参考例を示すタイムチャートである。
【0093】
図10における起点WSは、レジスタ領域へのセンシングデータの書き込みプロセスの開始タイミングを示す。起点WS21,WS22は、起点WSのうち特筆するものである。また、終点WEは、レジスタ領域へのセンシングデータの書き込みプロセスの終了タイミングを示す。終点WE21,WE22は、終点WEのうち特筆するものである。
【0094】
図10における起点RSnは、レジスタ領域からのセンシングデータの読み出しプロセスの開始タイミングを示す。終点REnは、レジスタ領域からのセンシングデータの読み出しプロセスの終了タイミングを示す。
【0095】
図10に示す参考例では、起点WSから始まって終点WEで完了する書き込みプロセスが周期的に生じている。係る書き込みプロセスのうち、起点WS21から始まって終点WE21で完了する書き込みプロセスは、起点RS21から始まって終点RE21で完了する読み出しプロセス中に生じている。また、起点WS22から始まって終点WE22で完了する書き込みプロセスは、起点RS22から始まって終点RE22で完了する読み出しプロセス中に生じている。
【0096】
起点RS21から始まって終点RE21で完了する読み出しプロセス中に、起点WS21から始まって終点WE21で完了する書き込みプロセスが生じることで、起点RS21から読み出しを開始されるセンシングデータは、起点WS21から書き換え始められ、終点RE21前の終点WE21で書き換えきられている。すなわち、起点RS21から読み出しを開始されるセンシングデータは、終点RE21まで保持されておらず、書き換え前後のセンシングデータが混在したデータが読み出されることになる。起点RS22から始まって終点RE22で完了する読み出しプロセス中にも、同様の事象が生じる。このような参考例では、読み出し中の書き込みが生じることでセンシングデータが破損したり、仮に破損しなかったとしても書き換え前後のデータが混在したセンシングデータに基づいた制御が行われてしまうことで、適切な制振制御を実現できない可能性が高い。
【0097】
これに対し、実施形態及び変形例(以下、実施形態等と記載)によれば、上述したように、新たなセンシングデータの書き込みが行われる間にも継続しているセンシングデータの読み出しにおいて、誤って読み出しの最中にセンシングデータが上書きされてしまうことを抑制できる。従って、あるタイミングで取得されたセンシングデータに対応した駆動部30の制御をより確実に行える。
【0098】
なお、実施形態等の説明では、読み出しフラグrと、書き込みフラグwと、の2つのフラグ値が2値とされているが、これはあくまで読み出し処理と書き込み処理との関係を制御するためのフラグ値の取り扱いの一例であって、実際の情報処理で利用されるフラグ値の設定方法をこれに限定するものでない。例えば、フラグx=0である場合の読み出しが第1レジスタ領域110aから行われ、書き込みが第2レジスタ領域110bに対して行われ、フラグx=1である場合の読み出しが第2レジスタ領域110bから行われ、書き込みが第1レジスタ領域110aに対して行われるものとする。この例では、フラグx=0の場合、実際に読み出しが行われているかに関わらず、読み出しは第1レジスタ領域110aから行われると判定され、第2レジスタ領域110bに書き込まれる。そして、書き込み完了後、フラグはx=1に変更される。その後にデータを読み出す際は、フラグx=1なので第2レジスタ領域110bからの読み出しが行われる。読み出し処理の際、フラグxの変更は行われない。当該読み出し処理中に書き込み処理の割り込み処理が発生したとき、フラグx=1なので、第1レジスタ領域110aに書き込みが行われ、書き込み完了後、フラグがx=0に変更される。この例では、書き込み先は1周期前に書き込んでいないレジスタ領域に書き込みを行うような動きになり、第1レジスタ領域110aと第2レジスタ領域110bに対して交互に書き込みを行う動きになる。また、フラグ値は2値を超える値を管理可能であってもよいし、書き込みフラグwと読み出しフラグrとが個別であることも必須でない。要は、情報処理装置で読み出し処理が実行中かどうかを示す情報と、読み出し処理が行われている場合に読み出されるデータの記憶領域が第1レジスタ領域110a又は第2レジスタ領域110bのいずれであるかを示す情報と、を管理可能であれば、その具体的なデータ処理方法は適宜変更可能である。
【0099】
また、実施形態等では、情報処理装置10に対して外部から情報を入力するセンサ20が制御対象100の変位に関する情報(変位、速度及び加速度のうち1つ以上)を検出するセンサである。また、実施形態等では、情報処理装置10が情報を出力する対象が、情報処理装置10の制御下で動作する駆動部30である。実施形態等におけるこのような情報処理装置10と入出力との関係はあくまで一例であってこれに限られるものでない。情報処理装置10は、情報処理装置10と独立して動作して外部から情報を情報処理装置10に入力する入力装置と、当該入力装置からの情報に応じて情報処理装置10によって制御される駆動部30とは異なる出力装置と、の組み合わせに対応可能である。当該入力装置の例として、音声を検出するマイク、光を検出する光センサ等が挙げられる。当該出力装置の例として、音声発生装置、発光装置、表示装置等、アクチュエータとは異なる出力形態を有する装置が挙げられる。
【符号の説明】
【0100】
10 情報処理装置
11 記憶部
12 制御部
110a 第1レジスタ領域
110b 第2レジスタ領域
20 センサ
30 駆動部