(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-10
(45)【発行日】2023-04-18
(54)【発明の名称】メモリアクセス装置
(51)【国際特許分類】
G06F 12/02 20060101AFI20230411BHJP
【FI】
G06F12/02 510A
(21)【出願番号】P 2019158103
(22)【出願日】2019-08-30
【審査請求日】2022-03-31
(73)【特許権者】
【識別番号】000237592
【氏名又は名称】株式会社デンソーテン
(72)【発明者】
【氏名】前田 勉
【審査官】後藤 彰
(56)【参考文献】
【文献】特開平7-84871(JP,A)
【文献】特開2015-82166(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/02
(57)【特許請求の範囲】
【請求項1】
メモリにアクセスするメモリアクセス装置であって、
前記メモリは、
1~N(Nは3以上の自然数)のデータ番号が付された第1~第Nデータを記憶し、各々が複数のバンクのいずれか1つに設定された複数の単位領域を含む主領域と、
第2~第Nデータを記憶し、各々が前記複数のバンクのいずれか1つに設定された複数の単位領域を含む副領域とを備え、
前記主領域の単位領域の各々は、先頭データのデータ番号が奇数であってデータ番号が連続する2つのデータを記憶し、
前記副領域の単位領域の各々は、先頭データのデータ番号が偶数であってデータ番号が連続する2つのデータを記憶し、
前記メモリアクセス装置は、
前記第1~第Nデータのうち連続する2以上のデータを読み出す場合、前記2以上のデータのデータ番号のうち最小のデータ番号が奇数であるか否かを判断する判断部と、
前記最小のデータ番号が奇数であると前記判断部により判断された場合に前記2以上のデータを前記主領域の単位領域から読み出すことを決定し、前記最小のデータ番号が偶数であると前記判断部により判断された場合、前記2以上のデータを前記副領域の単位領域から読み出すことを決定する領域決定部と、
前記領域決定部により決定された単位領域から前記2以上のデータを読み出す読み出し制御部と、を備えるメモリアクセス装置。
【請求項2】
請求項1に記載のメモリアクセス装置であって、
前記判断部は、前記2以上のデータの数が奇数であるか否かを判断し、
前記最小のデータ番号が奇数であり、かつ、前記2以上のデータの数が奇数であると前記判断部により判断された場合、前記領域決定部は、前記2以上のデータのデータ番号のうち最大のデータ番号を除くデータ番号に対応するデータを前記主領域の単位領域から読み出し、前記最大のデータ番号に対応するデータを前記副領域の単位領域から読み出す、メモリアクセス装置。
【請求項3】
請求項1又は2に記載のメモリアクセス装置であって、
前記判断部は、前記2以上のデータの数が奇数であるか否かを判断し、
前記最小のデータ番号が偶数であり、かつ、前記2以上のデータの数が奇数であると前記判断部により判断された場合、前記領域決定部は、前記2以上のデータのデータ番号のうち最大のデータ番号を除くデータ番号に対応するデータを前記副領域の単位領域から読み出し、前記最大のデータ番号に対応するデータを前記主領域の単位領域から読み出す、メモリアクセス装置。
【請求項4】
請求項1~3のいずれか1項に記載のメモリアクセス装置であって、さらに、
前記第1~第Nデータのうち先頭データのデータ番号が奇数であってデータ番号が連続する2つのデータを前記主領域の単位領域に書き込み、前記第2~第Nデータのうち先頭データのデータ番号が偶数であってデータ番号が連続する2つのデータを前記副領域の単位領域に書き込む書き込み制御部、を備えるメモリアクセス装置。
【請求項5】
1~N(Nは3以上の自然数)のデータ番号が付された第1~第Nデータを記憶し、各々が複数のバンクのいずれか1つに設定された複数の単位領域を含む主領域と、第2~第Nデータを記憶し、各々が前記複数のバンクのいずれか1つに設定された複数の単位領域を含む副領域とを備えるメモリアクセス方法であって、
前記主領域の単位領域の各々は、先頭データのデータ番号が奇数であってデータ番号が連続する2つのデータを記憶し、
前記副領域の単位領域の各々は、先頭データのデータ番号が偶数であってデータ番号が連続する2つのデータを記憶し、
前記メモリアクセス方法は、
前記メモリに記憶されたデータの読み出し指示を受け付けるステップと、
第1~第Nデータのうち連続する2以上のデータの読み出し指示を受け付けた場合、前記2以上のデータのデータ番号のうち最小のデータ番号が奇数であるか否かを判断するステップと、
前記最小のデータ番号が奇数であると判断された場合に前記2以上のデータを前記主領域の単位領域から読み出し、前記最小のデータ番号が偶数であると判断された場合、前記2以上のデータを前記副領域の単位領域から読み出すステップと、を備えるメモリアクセス方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のバンクを備えるメモリにアクセスするメモリアクセス装置に関する。
【背景技術】
【0002】
RAM(Random Access Memory)は、コンピュータのメインメモリとして用いられる。メモリアクセス装置が、CPU(Central Processing Unit)の要求に応じて、RAMからのデータの読み出しと、RAMへのデータの書き込みとを実行する。例えば、特許文献1は、複数のバンクを備えるメモリにデータを書き込むメモリ制御回路を開示している。
【0003】
CPU(Central Processing Unit)の処理速度の向上に伴って、演算時間の短縮が図られている。しかし、メモリアクセス装置がデータをRAMから読み出す時間が、CPUの演算時間のうち半分近くの時間を占める場合がある。RAMからのデータの読み出しが、演算時間の短縮のボトルネックであるため、RAMからのデータ読み出し時間を短縮することが求められている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記問題点に鑑み、本発明は、データの読み出し時間を短縮することができるメモリアクセス装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、第1の発明は、メモリにアクセスするメモリアクセス装置である。メモリは、主領域と、副領域とを備える。主領域は、1~N(Nは3以上の自然数)のデータ番号が付された第1~第Nデータを記憶し、各々が複数のバンクのいずれか1つに設定された複数の単位領域を含む。副領域は、第2~第Nデータを記憶し、各々が複数のバンクのいずれか1つに設定された複数の単位領域を含む。主領域の単位領域の各々は、先頭データのデータ番号が奇数であってデータ番号が連続する2つのデータを記憶する。副領域の単位領域の各々は、先頭データのデータ番号が偶数であってデータ番号が連続する2つのデータを記憶する。メモリアクセス装置は、判断部と、領域決定部と、読み出し制御部とを備える。判断部は、第1~第Nデータのうち連続する2以上のデータを読み出す場合、2以上のデータのデータ番号のうち最小のデータ番号が奇数であるか否かを判断する。領域決定部は、最小のデータ番号が奇数であると判断部により判断された場合に2以上のデータを主領域の単位領域から読み出すことを決定する。領域決定部は、最小のデータ番号が偶数であると判断部により判断された場合、2以上のデータを副領域の単位領域から読み出すことを決定する。読み出し制御部は、領域決定部により決定された単位領域から2以上のデータを読み出す。
【0007】
第1の発明によれば、読み出し制御部は、一の単位領域からデータを読み出す際に、複数のバンクにアクセスしなくてもよい。従って、第1の発明は、データの読み出し時間を短縮することができる。
【0008】
第2の発明は、第1の発明であって、判断部は、2以上のデータの数が奇数であるか否かを判断する。最小のデータ番号が奇数であり、かつ、2以上のデータの数が奇数であると判断部により判断された場合、領域決定部は、2以上のデータのデータ番号のうち最大のデータ番号を除くデータ番号に対応するデータを主領域の単位領域から読み出し、最大のデータ番号に対応するデータを副領域の単位領域から読み出す。
【0009】
第2の発明によれば、読み出し対象である2以上のデータ以外のデータをメモリから読み出すことを防ぐことができる。
【0010】
第3の発明は、第1又は第2の発明であって、判断部は、2以上のデータの数が奇数であるか否かを判断する。最小のデータ番号が偶数であり、かつ、2以上のデータの数が奇数であると判断部により判断された場合、領域決定部は、2以上のデータのデータ番号のうち最大のデータ番号を除くデータ番号に対応するデータを副領域の単位領域から読み出し、最大のデータ番号に対応するデータを主領域の単位領域から読み出す。
【0011】
第3の発明によれば、読み出し対象である2以上のデータ以外のデータをメモリから読み出すことを防ぐことができる。
【0012】
第4の発明は、第1~第3の発明であって、さらに、書き込み制御部を備える。書き込み制御部は、第1~第Nデータのうち先頭データのデータ番号が奇数であってデータ番号が連続する2つのデータを主領域の単位領域に書き込み、第2~第Nデータのうち先頭データのデータ番号が偶数であってデータ番号が連続する2つのデータを副領域の単位領域に書き込む。
【0013】
第4の発明によれば、読み出し制御部が単位領域からデータを読み出す際にバンクへのアクセス回数を削減することができるように、第1~第Nデータをメモリに書き込むことができる。
【0014】
第5の発明は、主領域と副領域とを備えるメモリアクセス方法である。主領域は、1~N(Nは3以上の自然数)のデータ番号が付された第1~第Nデータを記憶し、各々が複数のバンクのいずれか1つに設定された複数の単位領域を含む。副領域は、第2~第Nデータを記憶し、各々が複数のバンクのいずれか1つに設定された複数の単位領域を含む。主領域の単位領域の各々は、先頭データのデータ番号が奇数であってデータ番号が連続する2つのデータを記憶する。副領域の単位領域の各々は、先頭データのデータ番号が偶数であってデータ番号が連続する2つのデータを記憶する。メモリアクセス方法は、a)ステップと、b)ステップと、c)ステップとを備える。a)ステップは、メモリに記憶されたデータの読み出し指示を受け付ける。b)ステップは、第1~第Nデータのうち連続する2以上のデータの読み出し指示を受け付けた場合、2以上のデータのデータ番号のうち最小のデータ番号が奇数であるか否かを判断する。c)ステップは、最小のデータ番号が奇数であると判断された場合に2以上のデータを主領域の単位領域から読み出し、最小のデータ番号が偶数であると判断された場合、2以上のデータを副領域の単位領域から読み出す。
【0015】
第5の発明は、第1の発明に用いられる。
【発明の効果】
【0016】
本発明によれば、データの読み出し時間を短縮することができるメモリアクセス装置を提供することができる。
【図面の簡単な説明】
【0017】
【
図1】本発明の実施の形態に係るシミュレーションシステムの構成を示す機能ブロック図である。
【
図2】
図1に示すシミュレータの構成を示す機能ブロック図である。
【
図3】
図2に示す演算部によって用いられるパラメータの一例を示す図である。
【
図4】
図2に示すメモリに設定される主領域及び副領域を示す図である。
【
図5】
図2に示すメモリアクセス装置の構成を示す機能ブロック図である。
【
図6】
図2に示すメモリアクセス装置がパラメータを読み出す時の動作を示すフローチャートである。
【
図7】単位領域が複数のバンクを用いて設定されたメモリの一例を示す図である。
【
図8】
図2に示すメモリアクセス装置がパラメータを書き込む時の動作を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【0019】
[1.構成]
[1.1.シミュレーションシステム100の構成]
図1は、本発明の一実施の形態に係るシミュレーションシステム100の構成を示す機能ブロック図である。
図1を参照して、シミュレーションシステム100は、自動車等の車両に搭載されるECU(Electronic Control Unit)2の評価に用いられる。シミュレーションシステム100は、シミュレータ1と、ECU2と、ユーザ端末3と、中継装置4とを備える。
【0020】
シミュレータ1は、ECU2と接続される。シミュレータ1は、ECU2から出力される制御信号に従って、車両に搭載されるモータ及びインバータの動作を模擬演算する。
【0021】
ECU2は、シミュレーションシステム100における評価対象である。ECU2は、中継装置4を介してユーザ端末3から動作指示を取得し、取得した動作指示に応じた制御信号をシミュレータ1に出力する。
【0022】
ユーザ端末3は、ECU2の評価者が使用するコンピュータである。ユーザ端末3は、中継装置4を介してシミュレータ1及びECU2に動作指示を出力する。ユーザ端末3は、中継装置4を介してシミュレータ1から模擬演算結果を取得し、その取得した模擬演算結果を図示しないモニタに表示する。
【0023】
中継装置4は、シミュレータ1とユーザ端末3との間の通信を中継し、ECU2とユーザ端末3との間の通信を中継する。
【0024】
シミュレーションシステム100において、装置間の通信方式は特に限定されない。例えば、シミュレータ1は、CAN(Controller Area Network)を用いてECU2と通信する。中継装置4は、LAN(Local Area Network)を用いて、シミュレータ1及びユーザ端末と通信する。中継装置4は、図示しないプロトコル変換装置を介して、ECU2と通信する。プロトコル変換装置は、LANに準拠した通信とCANに準拠した通信とを相互に変換する。中継装置4は、LANを用いてプロトコル変換装置と通信する。ECU2は、CANを用いてプロトコル変換装置と通信する。
【0025】
[1.2.シミュレータ1の構成]
図2は、
図1に示すシミュレータ1の構成を示す機能ブロック図である。
図2を参照して、シミュレータ1は、演算部11と、メモリアクセス装置12、メモリコントローラ13と、メモリ14とを備える。
【0026】
演算部11は、ECU2からPWM(Pulse Width Modulation)信号22Vを受け、その受けたPWM信号22Vに基づいて、車両に搭載されるインバータ及びモータの動作をシミュレーションする。
【0027】
具体的には、演算部11は、その受けたPWM信号22Vに基づいて、インバータの動作をシミュレーションする。PWM信号22Vは、インバータが直流から三相交流を生成するための制御信号であり、U相、V相及びW相の各々の電圧に対応する信号を含む。演算部11は、インバータの動作のシミュレーションの結果として、電流信号24iを生成する。電流信号24iは、インバータからモータに供給される三相交流の電流を示し、U相、V相及びW相の各々の電流値を含む。
【0028】
演算部11は、電流信号24iを生成した後に、生成した電流信号24iと、メモリアクセス装置12から受けたパラメータ25Pとに基づいて、モータの動作をシミュレーションする。詳細については後述するが、パラメータ25Pは、メモリ14に記憶されている。演算部11は、モータの動作のシミュレーションの結果として、位置信号24θを生成する。位置信号24θは、モータに含まれるロータの回転位置を示す。
【0029】
演算部11は、ユーザ端末3から初期条件23を受け、その受けた初期条件23に基づいてインバータ及びモータの動作のシミュレーションを開始する。例えば、初期条件23は、モータに含まれるロータの初期回転位置や、インバータに含まれるスイッチング素子の状態を含む。
【0030】
モータのシミュレーションについて、さらに詳しく説明する。
図3は、演算部11によるシミュレーションに用いられるパラメータ25Pの一例を示すテーブル51である。
図3を参照して、データ番号が、パラメータ25Pの各々に割り当てられる。データ番号は、1以上の自然数であり、パラメータ25Pの識別情報に相当する。パラメータ25Pは、5種類あり、鎖交磁束、d軸電流と、q軸電流と、d軸インダクタンス及びq軸インダクタンスのいずれかである。これら5種類のパラメータ25Pは、U相電流と、V相電流、W相電流及びロータの回転位置によって一意に決まる。
【0031】
演算部11は、鎖交磁束、d軸電流、q軸電流、d軸インダクタンス及びq軸インダクタンスを用いて、一の時刻におけるU相電流と、V相電流、W相電流及びロータの回転位置を算出する。演算部11は、算出したU相電流と、V相電流、W相電流及びロータの回転位置に基づいて特定されるパラメータ25Pを用いて、一の時刻よりも後の時刻におけるU相電流と、V相電流、W相電流及びロータの回転位置を算出する。
【0032】
再び
図2を参照して、メモリアクセス装置12は、電流信号24i及び位置信号24θを演算部11から受ける。メモリアクセス装置12は、読み出し指示27をメモリコントローラ13に出力することにより、その受けた電流信号24i及び位置信号24θに対応するパラメータ25Pをメモリ14から取得する。
【0033】
メモリアクセス装置12は、複数のパラメータ25Pをユーザ端末3から取得した場合、書き込み指示28をメモリコントローラ13に出力することにより、その取得した複数のパラメータ25Pをメモリ14に書き込む。パラメータ25Pは、シミュレータ1の動作開始時にメモリ14に書き込まれる。
【0034】
つまり、シミュレータ1において、パラメータ25Pを用いたモータの動作の模擬演算と、模擬演算の結果に基特定されるパラメータ25Pの特定とが繰り返される。これにより、車両に搭載されるモータの動作を仮想的に実現される。
【0035】
メモリコントローラ13は、メモリアクセス装置12の制御に応じて、メモリ14にアクセスする。具体的には、メモリコントローラ13は、読み出し指示27をメモリアクセス装置12から受けた場合、その受けた読み出し指示27に含まれるアドレスからデータを読み出す。メモリコントローラ13は、書き込み指示28をメモリアクセス装置12から受けた場合、その受けた書き込み指示28に含まれるデータをメモリ14に書き込む。
【0036】
メモリ14は、RAM(Random Access Memory)であり、シミュレータ1のメインメモリである。メモリ14は、シミュレータ1が実行するプログラムや、パラメータ25Pを記憶する。従って、
図2に示していないが、演算部11が、メモリコントローラ13を介してメモリ14にアクセスすることがある。メモリ14は、バンク141~143を備える。本実施の形態において、バンク141~143の各々は、メモリモジュールである。
【0037】
[1.3.メモリ14の記憶領域]
図4は、
図2に示すメモリ14に記憶されるデータの一例を示す図である。
図4を参照して、メモリ14は、主領域41と副領域42とを含む。主領域41及び副領域42は、パラメータ25Pを記憶するために用いられ、複数の単位領域に区分される。メモリアクセス装置12は、パラメータ25Pをメモリ14から読み出す場合、単位領域に含まれる全てのパラメータ25Pを読み出す。
図4に示すアドレスは、論理アドレスである。
【0038】
主領域41は、データ番号が「1」~「360」であるパラメータ25Pを記憶する。副領域42は、データ番号が「2」~「360」であるパラメータ25Pを記憶する。パラメータ25Pのデータ番号を、「k」を用いて示している。
【0039】
主領域41は、複数の単位領域61に区分される。単位領域61の各々は、バンク141~143のいずれかに設定される。例えば、単位領域61Aは、「0001」から「0002」までのアドレスが設定された記憶領域であり、バンク141に設定される。単位領域61Bは、「0003」から「0004」までのアドレスが設定された記憶領域であり、バンク142に設定される。単位領域61Cは、「0005」から「0006」までのアドレスが設定された記憶領域であり、バンク143に設定される。
【0040】
単位領域61の各々は、データ番号が連続する2つのパラメータ25Pを記憶する。例えば、単位領域61Aは、データ番号が「1」~「2」であるパラメータ25Pを格納する。単位領域61Bは、データ番号が「3」~「4」であるパラメータ25Pを格納する。単位領域61Cは、データ番号が「5」~「6」であるパラメータ25Pを格納する。つまり、単位領域61の先頭アドレスに格納されるパラメータ25Pのデータ番号は奇数である。
【0041】
副領域42は、主領域41と同様に、複数の単位領域62に区分される。複数の単位領域62の各々は、バンク141~143のいずれかに設定される。例えば、単位領域62Aは、「2001」から「2002」までのアドレスが設定された記憶領域であり、バンク141に設定される。単位領域61Bは、「2003」から「2004」までのアドレスが設定された記憶領域であり、バンク142に設定される。単位領域61Cは、「2005」から「2006」までのアドレスが設定された記憶領域であり、バンク143に設定される。
【0042】
単位領域62の各々は、データ番号が連続する2つのパラメータ25Pを記憶する。例えば、単位領域62Aは、データ番号が「2」~「3」であるパラメータ25Pを格納する。単位領域62Bは、データ番号が「4」~「5」であるパラメータ25Pを格納する。単位領域62Cは、データ番号が「6」~「7」であるパラメータ25Pを格納する。つまり、単位領域62において、先頭アドレスに格納されるパラメータ25Pのデータ番号は偶数である。
【0043】
[1.4.メモリアクセス装置12の構成]
図5は、
図2に示すメモリアクセス装置12の構成を示す機能ブロック図である。
図5を参照して、メモリアクセス装置12は、データ番号特定部121と、判断部122と、領域決定部123と、読み出し制御部124と、書き込み制御部125とを備える。
【0044】
データ番号特定部121は、電流信号24i及び位置信号24θを演算部11から受ける。データ番号特定部121は、その受けた電流信号24i及び位置信号24θに対応するパラメータ25Pのデータ番号を決定する。演算部11が5種類のパラメータ25Pを用いてシミュレーションするため、データ番号特定部121は、5つの種類に対応する5つのデータ番号を決定する。データ番号特定部121は、決定したデータ番号を記録した番号情報31を判断部122及び領域決定部123に出力する。
【0045】
判断部122は、番号情報31に記録されたデータ番号の中で先頭のデータ番号を特定する。判断部122は、特定した先頭のデータ番号が奇数であるか否かを判断する。判断部122は、特定した先頭データのデータ番号が奇数であるか否かを示す判断情報32を領域決定部123に出力する。
【0046】
領域決定部123は、データ番号特定部121から受けた番号情報31と、判断部122から受けた判断情報32に基づいて、パラメータ25Pを読み出すアドレスを決定する。
【0047】
具体的には、判断情報32が、先頭のデータ番号が奇数であることを示す場合、領域決定部123は、データ番号特定部121により特定されたデータ番号のうち、最後尾のデータ番号に対応するパラメータ25Pを除くパラメータ25Pを、主領域41の単位領域から読み出すことを決定する。領域決定部123は、最後尾のデータ番号に対応するパラメータ25Pを副領域42の単位領域から読み出すことを決定する。
【0048】
判断情報32が、先頭のデータ番号が偶数であることを示す場合、領域決定部123は、データ番号特定部121により特定されたデータ番号のうち、最後尾のデータ番号に対応するパラメータ25Pを除くパラメータ25Pを、副領域42の単位領域から読み出すことを決定する。領域決定部123は、最後尾のデータ番号に対応するパラメータ25Pを主領域41の単位領域から読み出すことを決定する。
【0049】
領域決定部123は、決定した単位領域の各々を示す読み出しアドレス33を読み出し制御部124に出力する。読み出しアドレス33は、パラメータ25Pのデータ番号と、パラメータ25Pが書き込まれたアドレスとを対応付けたアドレスデータ34に基づいて決定される。アドレスデータ34は、パラメータ25Pがメモリ14に書き込まれる際に、書き込み制御部125によって生成される。
【0050】
読み出し制御部124は、読み出しアドレス33を領域決定部123から受け、その受けた読み出しアドレス33に基づいて、パラメータ25Pをメモリ14から読み出す。具体的には、読み出し制御部124は、受けた読み出しアドレス33を含む読み出し指示27をメモリコントローラ13に出力する。読み出し制御部124は、パラメータ25Pを読み出し指示27の応答として受け、その受けたパラメータ25Pを演算部11に出力する。
【0051】
書き込み制御部125は、パラメータ25Pをユーザ端末3から受けた場合、その受けたパラメータ25Pの書き込みを指示する書き込み指示28をメモリコントローラ13に出力する。書き込み制御部125は、アドレスデータ34を生成し、その生成したアドレスデータ34を領域決定部123に出力する。アドレスデータ34は、パラメータ25Pのデータ番号と、パラメータ25Pが書き込まれたアドレスとを対応付けたデータである。
【0052】
[2.動作]
[2.1.パラメータ読み出し時の動作]
図6は、
図2に示すメモリアクセス装置12がパラメータ25Pを読み出すときの動作を示すフローチャートである。
図3~
図6を参照しながら、パラメータ25Pを読み出すメモリアクセス装置12の動作を説明する。
【0053】
データ番号特定部121が、電流信号24i及び位置信号24θを演算部11から受けた場合、メモリアクセス装置12は、
図6に示す処理を開始する。
【0054】
データ番号特定部121は、演算部11から受けた電流信号24i及び位置信号24θに対応するデータ番号を特定する(ステップS101)。具体的には、データ番号特定部121は、電流信号24i及び位置信号24θをパラメータ25Pのデータ番号に対応付けたテーブル51を保持している。データ番号特定部121は、
図3に示すテーブル51を参照して、電流信号24i及び位置信号24θに対応するパラメータ25Pのデータ番号を特定する。
【0055】
ステップS101において、鎖交磁束、d軸電流、q軸電流、d軸インダクタンス及びq軸インダクタンスの各々に対応するデータ番号が、電流信号24i及び位置信号24θに基づいて特定される。つまり、データ番号特定部121は、ステップS101において、5つのデータ番号を特定する。特定された5つのデータ番号は、連続している。データ番号特定部121は、連続する5つのデータ番号を記録した番号情報31を判断部122及び領域決定部123に出力する。
【0056】
判断部122は、番号情報31をデータ番号特定部121から受ける。判断部122は、その受けた番号情報31に記録されたデータ番号のうち、先頭のデータ番号と最後尾のデータ番号とを特定する(ステップS102)。先頭のデータ番号は、番号情報31に記録されたデータ番号のうち最小の番号である。最後尾のデータ番号は、番号情報31に記録されたデータ番号のうち最大の番号である。例えば、番号情報31に含まれるデータ番号が、「3」~「7」である場合、先頭のデータ番号は「3」である。最後尾のデータ番号は、「7」である。
【0057】
判断部122は、メモリ14から読み出すパラメータ25Pの数が奇数であるか否かを判断する(ステップS103)。具体的には、判断部122は、番号情報31に記録されたデータ番号をカウントした値が奇数であるか否かを判断する。
【0058】
以下、メモリ14から読み出すパラメータ25Pの数が奇数である場合と、偶数である場合とに分けて、メモリアクセス装置12の動作を説明する。
【0059】
(読み出すパラメータ25Pの数が奇数である場合)
判断部122は、先頭のデータ番号に対応するパラメータ25Pを主領域41及び副領域42のどちらから読み出すかを決定するために、ステップS102で特定した先頭のデータ番号が奇数であるか否かを判断する(ステップS104)。先頭のデータ番号が奇数であるか否かによって、先頭のデータ番号に対応するパラメータ25Pを読み出す領域を変更する理由については後述する。
【0060】
先頭のデータ番号が奇数である場合(ステップS104においてYes)、判断部122は、読み出すパラメータ25Pの数が奇数であり、かつ、先頭のデータ番号が奇数であることを示す判断情報32を領域決定部123に出力する。
【0061】
領域決定部123は、判断部122から受けた判断情報32に基づいて、最後尾のデータ番号を除くデータ番号に対応するパラメータ25Pを、主領域41から読み出すことを決定する(ステップS105)。領域決定部123は、判断部122から受けた判断情報32に基づいて、最後尾のデータ番号に対応するパラメータ25Pを副領域42から読み出すことを決定する(ステップS106)。
【0062】
番号情報31に記録されたデータ番号が「3」~「7」である場合を例にして、ステップS105~S106を詳しく説明する。
【0063】
最後尾のデータ番号が「7」であるため、領域決定部123は、データ番号が「3」~「6」であるパラメータ25Pを記録した単位領域を、主領域41から読み出すことを決定する(ステップS105)。メモリアクセス装置12は、パラメータ25Pを単位領域ごとに読み出すため、主領域41に設定された単位領域61B及び61Cを読み出し対象に決定する。
【0064】
領域決定部123は、データ番号が「7」であるパラメータ25Pを記録した単位領域を、副領域42から読み出すことを決定する(ステップS106)。メモリアクセス装置12は、パラメータ25Pを単位領域ごとに読み出すため、副領域42に設定された単位領域62Cを読み出し対象に決定する。
【0065】
領域決定部123は、ステップS105及びS106の結果として、読み出し対象に決定された単位領域61B、61C及び62Cの各々の読み出しアドレス33を読み出し制御部124に出力する。
【0066】
読み出し制御部124は、領域決定部123から受けた読み出しアドレス33を用いて、パラメータ25Pをメモリ14から読み出す(ステップS109)。具体的には、読み出し制御部124は、領域決定部123から受けた読み出しアドレス33を含む読み出し指示27を生成し、その生成した読み出し指示27をメモリコントローラ13に出力する。メモリコントローラ13は、領域決定部123から受けた読み出し指示27に基づいてパラメータ25Pを読み出し、読み出したパラメータ25Pを読み出し制御部124に出力する。読み出し制御部124は、メモリコントローラ13から受けたパラメータ25Pを演算部11に出力する。
【0067】
番号情報31に記録されたデータ番号が「3」~「7」である場合、読み出し制御部124は、最初に、単位領域61Bを読み出し、その次に、単位領域61Cを読み出す。最後に、単位領域62Cが読み出される。
【0068】
この結果、データ番号が「6」であるパラメータ25Pは、主領域41及び副領域42の各々から読み出される。データ番号が「6」であるパラメータ25Pは、演算部11に2回出力される。演算部11は、同じパラメータ25Pを重複して受けた場合、同じパラメータ25Pのうち一方を破棄する。
【0069】
メモリアクセス装置12が、データ番号が「6」~「7」であるパラメータ25Pを副領域42から読み出す理由を説明する。
【0070】
読み出し制御部124は、上述のように、単位領域ごとにデータを読み出す。従って、データ番号が「7」であるパラメータ25Pを主領域41から読み出すと仮定した場合、読み出し制御部124は、単位領域61Dを読み出す。単位領域61Dは、データ番号が「7」であるパラメータ25Pと、データ番号が「8」であるパラメータ25Pを記憶している。
【0071】
読み出し制御部124は、データ番号が「7」であるパラメータ25Pを主領域41から読み出す場合、データ番号が「7」であるパラメータ25Pの他に、データ番号が「8」であるパラメータ25Pを読み出す必要がある。データ番号「8」は、ステップS101で特定されるデータ番号「3」~「7」に対応していない。データ番号が「8」であるパラメータ25Pを演算部11に出力した場合、演算部11が誤ったシミュレーションを実行する虞がある。
【0072】
そこで、メモリアクセス装置12は、データ番号が「6」~「7」であるパラメータ25Pを副領域42の単位領域62Cから読み出す。データ番号が「6」であるパラメータ25Pは、ステップS101で特定されたデータ番号「3」~「7」に含まれる。つまり、データ番号が「6」~「7」であるパラメータ25Pを副領域42から読み出すことにより、演算部11が誤ったシミュレーションを実行することを防ぐことができる。
【0073】
メモリアクセス装置12は、データ番号が「6」~「7」であるパラメータ25Pを副領域42から読み出すことにより、ホストである演算部11が要求していないパラメータ25Pを出力することを防ぐことができる。
【0074】
先頭のデータ番号が奇数である場合、先頭のデータ番号に対応するパラメータ25Pが主領域41から読み出される理由を説明する。先頭のデータ番号が奇数である場合、メモリアクセス装置12は、ステップS101で特定されたデータ番号以外の番号のパラメータ25Pを読み出すことを防ぐために、先頭のデータ番号に対応するパラメータ25Pを主領域41から読み出す。
【0075】
例えば、ステップS101において、データ番号「3」~「7」が特定されたと仮定する。この仮定において、副領域42における単位領域62Aが読み出し対象に決定された場合、メモリアクセス装置12は、ステップS101において特定されなかったデータ番号「2」のパラメータ25Pを読み出す必要がある。主領域41における単位領域61Bが読み出し対象に決定された場合、メモリアクセス装置12は、ステップS101において特定されなかったデータ番号「2」のパラメータ25Pを読み出さなくてもよい。この結果、メモリアクセス装置12は、ホストである演算部11が要求していないパラメータ25Pを出力することを防ぐことができる。
【0076】
ステップS104の説明に戻る。先頭のデータ番号が偶数である場合(ステップS104においてNo)、判断部122は、メモリ14から読み出すパラメータ25Pの数が奇数であり、かつ、先頭のデータ番号が偶数であることを示す判断情報32を領域決定部123に出力する。
【0077】
領域決定部123は、判断部122から受けた判断情報32に基づいて、最後尾のデータ番号を除くデータ番号に対応するパラメータ25Pを、副領域42から読み出すことを決定する(ステップS107)。領域決定部123は、判断部122から受けた判断情報32に基づいて、最後尾のデータ番号に対応するパラメータ25Pを主領域41から読み出すことを決定する(ステップS108)。
【0078】
例えば、番号情報31に記録されたデータ番号が「4」~「8」である場合、領域決定部123は、データ番号が「4」~「7」であるパラメータ25Pを副領域42から読み出すことを決定する(ステップS107)。つまり、副領域42に設定された単位領域62B及び62Cが読み出し対象に決定される。
【0079】
領域決定部123は、データ番号が「7」~「8」であるパラメータ25Pを主領域41から読み出すことを決定する(ステップS108)。つまり、主領域41に設定された単位領域61Dが読み出し対象に決定される。領域決定部123は、読み出し対象に決定された単位領域62B、62C及び61Cの各々のアドレス33を読み出し制御部124に出力する。
【0080】
読み出し制御部124は、領域決定部123から受けたアドレス33を用いて、パラメータ25Pをメモリ14から読み出す(ステップS109)。読み出し制御部124は、読み出したパラメータ25Pを演算部11に出力する。この結果、データ番号が「7」であるパラメータ25Pが、主領域41及び副領域42の各々から読み出される。演算部11は、上述のように、重複して受けたパラメータのうち一方を破棄する。これにより、先頭のデータ番号が奇数であり、かつ、読み出すパラメータの数が奇数である場合と同様に、ホストである演算部11が要求していないパラメータ25Pを出力することを防ぐことができる。
【0081】
(読み出すパラメータ25Pの数が偶数である場合)
読み出すパラメータ25Pの数が偶数である場合(ステップS103においてNo)におけるメモリアクセス装置12の動作を説明する。この場合、判断部122は、ステップS102で特定された先頭のデータ番号が奇数であるか否かを判断する(ステップS110)。
【0082】
先頭のデータ番号が奇数である場合(ステップS110においてYes)、判断部122は、読み出すパラメータの数が偶数であり、かつ、先頭のデータ番号が奇数であることを示す判断情報32を領域決定部123に出力する。
【0083】
領域決定部123は、判断部122から受けた判断情報32に基づいて、番号情報31に記録されたデータ番号に対応するパラメータ25Pを、主領域41から読み出すことを決定する(ステップS111)。例えば、番号情報31に記録されたデータ番号が「3」~「10」である場合、領域決定部123は、単位領域61B~61Eを読み出し対象に決定する。領域決定部123は、読み出し対象に決定した単位領域61B~61Eに対応するアドレス33を読み出し制御部124に出力する。
【0084】
このように、読み出すパラメータ25Pの数が偶数であり、かつ、先頭のデータ番号が偶数である場合、メモリアクセス装置12は、パラメータ25Pを副領域42から読み出さない。メモリアクセス装置12は、副領域42にアクセスすることなく、ステップS101で特定されたデータ番号に対応する全てのパラメータ25Pを読み出すことができるためである。
【0085】
先頭のデータ番号が偶数である場合(ステップS110においてNo)、判断部122は、読み出すパラメータの数が偶数であり、かつ、先頭のデータ番号が偶数であることを示す判断情報32を領域決定部123に出力する。
【0086】
領域決定部123は、判断部122から受けた判断情報32に基づいて、番号情報31に記録されたデータ番号に対応するパラメータ25Pを、副領域42から読み出すことを決定する(ステップS112)。例えば、番号情報31に記録されたデータ番号が「2」~「9」である場合、領域決定部123は、単位領域62A~62Dを読み出し対象に決定する。この場合、メモリアクセス装置12は、ステップS101で特定されたデータ番号に対応する全てのパラメータ25Pを副領域42から読み出すことができる。メモリアクセス装置12は、パラメータ25Pを読み出すために主領域41にアクセスしなくてもよい。
【0087】
読み出し制御部124は、領域決定部123から受けたアドレスを用いて、ステップS111又はS112で決定された単位領域からパラメータ25Pを読み出す(ステップS109)。
【0088】
先頭のデータ番号が偶数である場合、先頭のデータ番号に対応するパラメータ25Pが副領域42から読み出される理由を説明する。先頭のデータ番号が偶数である場合、メモリアクセス装置12は、ステップS101で特定されたデータ番号以外の番号のパラメータ25Pを読み出すことを防ぐために、先頭のデータ番号に対応するパラメータ25Pを副領域42から読み出す。
【0089】
例えば、ステップS101において、データ番号「4」~「8」が特定されたと仮定する。この仮定において、主領域41における単位領域61Bが読み出し対象に決定された場合、メモリアクセス装置12は、ステップS101において特定されなかったデータ番号「3」のパラメータ25Pを読み出す必要がある。副領域42における単位領域62Bが読み出し対象に決定された場合、メモリアクセス装置12は、データ番号「3」のパラメータ25Pを読み出さなくてもよい。この結果、メモリアクセス装置12は、ホストである演算部11が要求していないパラメータ25Pを出力することを防ぐことができる。
【0090】
以上説明したように、メモリアクセス装置12は、連続する2つのパラメータ25Pを読み出す場合、読み出し対象のパラメータ25Pにおける先頭のデータ番号と、読み出し対象のパラメータ25Pの数とを特定する。メモリアクセス装置12は、特定した先頭のデータ番号と、特定したパラメータ25Pの数とに基づいて、パラメータ25Pを主領域41及び副領域42のどちらから読み出すかを決定する。
【0091】
これにより、メモリアクセス装置12は、連続するパラメータ25Pを高速にメモリ14から読み出すことができる。以下、メモリアクセス装置12が連続するパラメータ25Pを高速に読み出すことができる理由をさらに詳しく説明する。
【0092】
1つの単位領域が複数のバンクにより設定されている場合、データの読み出しに遅延が発生する。
図7は、複数のバンクにより設定された単位領域を含むメモリの一例を示す図である。
【0093】
図7を参照して、メモリ14aは、アドレスが「2001」から「2010」までのアドレス空間を有する。単位領域63A~63Eがメモリ14aに設定されている。単位領域63A及び63Dの各々は、バンク141及び142に設定される。単位領域63B及び63Eの各々は、バンク142及び143に設定される。単位領域63Cは、バンク143及び141に設定される。
【0094】
単位領域63Aに記憶されるパラメータ25Pのデータ番号は、「1」~「2」である。単位領域63Bに記憶されるパラメータ25Pのデータ番号は、「3」~「4」である。単位領域63Cに記憶されるパラメータ25Pのデータ番号は、「5」~「6」である。単位領域63Dに記憶されるパラメータ25Pのデータ番号は、「7」~「8」である。単位領域63Eに記憶されるパラメータ25Pのデータ番号は、「9」~「10」である。
【0095】
データ番号「1」~「4」のパラメータ25Pを
図7に示すメモリ14aから読み出す場合におけるメモリアクセス装置12の動作を説明する。メモリアクセス装置12は、上述のように、パラメータ25Pを単位領域ごとにメモリ14aから読み出す。
【0096】
最初に、読み出し制御部124は、単位領域63Aの読み出しをメモリコントローラ13に指示する。メモリコントローラ13は、バンク141にアクセスしてデータ番号が「1」であるパラメータ25Pを読み出し、バンク142にアクセスしてデータ番号が「2」であるパラメータ25Pを読み出す。
【0097】
次に、読み出し制御部124は、単位領域63Bの読み出しをメモリコントローラ13に指示する。メモリコントローラ13は、単位領域63Aの読み出しと同様に、単位領域63Bを読み出すために、バンク142及び143にアクセスする。
【0098】
メモリコントローラ13は、単位領域を読み出すたびに、複数のバンクにアクセスしなければならない。この結果、往復遅延時間が長くなり、パラメータ25Pの読み出し効率が低下する。往復遅延時間は、メモリアクセス装置12がパラメータ25Pの読み出しを指示してから、パラメータ25Pを取得するまでの時間である。
【0099】
これに対して、メモリ14は、主領域41及び副領域42を含む。主領域41及び副領域42は、複数の単位領域を含む。各単位領域は、バンク141~143のうちいずれか1つに設定され、連続する2つのパラメータ25Pを記憶する。主領域41に設定される単位領域において、先頭のデータ番号は奇数である。副領域42に設定される単位領域において、先頭のデータ番号は偶数である。
【0100】
先頭のデータ番号が奇数である場合、最後尾のデータ番号を除くデータ番号に対応するデータを主領域41から読み出す。先頭のデータ番号が偶数である場合、最後尾のデータ番号を除くデータ番号に対応するデータを副領域42から読み出す。これにより、メモリアクセス装置12は、単位領域からデータを読み出すたびに、複数のバンクにアクセスしなくてもよいため、パラメータ25Pを高速に読み出すことが可能となる。
【0101】
[2.2.パラメータ25Pの書き込み]
図8は、パラメータ25Pをメモリ14に書き込むメモリアクセス装置12の動作を示すフローチャートである。以下、
図4及び
図8を参照しながら、パラメータ25Pを書き込むメモリアクセス装置12の動作を説明する。
【0102】
メモリアクセス装置12において、書き込み制御部125は、メモリコントローラ13を介して、メモリ14のアドレス空間を設定する(ステップS201)。具体的には、書き込み制御部125は、連続する2つの論理アドレスが1つのバンクに割り当てられるように、アドレス空間を設定する。例えば、
図4を参照して、書き込み制御部125は、論理アドレス「0001」及び「0002」をバンク141に割り当て、論理アドレス「2001」及び「2002」をバンク141に割り当てる。
【0103】
書き込み制御部125は、ステップS201で設定された論理アドレスのうち、連続する2つの論理アドレスを単位領域に設定する(ステップS202)。連続する2つの論理アドレスとは、ステップS201において同一のバンクに設定されたアドレスである。この結果、
図4に示すように、単位領域61及び62が設定される。
【0104】
書き込み制御部125は、ステップS202で設定された単位領域を主領域41及び副領域42のいずれか一方に割り当てる(ステップS203)。本実施の形態では、論理アドレスが連続する複数の単位領域が、
図4に示すように、主領域41又は副領域42に割り当てられる。しかし、主領域41又は副領域42に割り当てられる単位領域の論理アドレスが不連続であることは妨げられない。
【0105】
書き込み制御部125は、ステップS203において主領域41に設定された単位領域61に、データ番号「1」~「360」のパラメータ25Pを書き込む(ステップS204)。このとき、書き込み制御部125は、データ番号が連続する2つのパラメータ25Pを単位領域61に書き込む。単位領域61の先頭アドレスに書き込まれるパラメータ25Pのデータ番号は、奇数である。単位領域61の論理アドレスが連続している場合、パラメータ25Pが格納される記憶領域の論理アドレスは、
図4に示すように、データ番号の増加に伴って増加する。
【0106】
書き込み制御部125は、ステップS203において副領域42に設定された単位領域62に、データ番号「2」~「360」のパラメータ25Pを書き込む(ステップS205)。このとき、書き込み制御部125は、データ番号が連続する2つのパラメータ25Pを単位領域62に書き込む。単位領域62の先頭アドレスに書き込まれるパラメータ25Pのデータ番号は、偶数である。単位領域62の論理アドレスが連続している場合、パラメータ25Pが格納される記憶領域の論理アドレスは、
図4に示すように、データ番号の増加に伴って増加する。
【0107】
書き込み制御部125は、一のパラメータ25Pのデータ番号を、一のパラメータ25Pが書き込まれた論理アドレスと対応付ける(ステップS206)。ステップS206の結果、アドレスデータ34が生成される。書き込み制御部125は、生成されたアドレスデータ34を領域決定部123に出力する。その後、書き込み制御部125は、
図8に示す書き込み処理を終了する。
【0108】
書き込み制御部125が
図8に示すフローチャートに基づいてパラメータ25Pをメモリ14に書き込むことにより、読み出し制御部124は、
図6に示す処理を実行することが可能となる。つまり、書き込み制御部125は、読み出し制御部124がバンクへのアクセス回数を削減できるように、パラメータ25Pをメモリに書き込むことができる。
【0109】
[変形例]
上記実施の形態では、複数のパラメータ25Pがメモリ14に書き込まれる例を説明したが、これに限定されない。メモリ14に書き込まれるデータは、特に限定されない。つまり、メモリ14に書き込まれるデータは、1~N(Nは3以上の自然数)のデータ番号が付された第1~第Nデータであればよい。主領域41は、第1~第Nデータを記憶し、各々が複数のバンクのいずれか1つに設定された複数の単位領域61を含む。副領域42は、第2~第Nデータを記憶し、各々が前記複数のバンクのいずれか1つに設定された複数の単位領域62を含む。
【0110】
上記実施の形態では、メモリアクセス装置12が、シミュレータ1に搭載される例を示したが、これに限定されない。メモリアクセス装置12は、メモリ14を搭載する情報処理機器に搭載されればよい。
【0111】
上記実施の形態では、メモリ14が、RAMである例を説明したが、これに限定されない。メモリ14は、メモリアクセス装置12がデータの書き込みと読み出し可能な記憶装置であれば、メモリ14の種類は特に限定されない。
【0112】
また、上記実施の形態において、メモリアクセス装置12の各機能ブロックは、LSIなどの半導体装置により個別に1チップ化されてもよいし、一部又は全部を含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0113】
集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0114】
また、メモリアクセス装置12により実行される処理の一部または全部は、プログラムにより実現されてもよい。そして、上記各実施の形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
【0115】
また、上記実施の形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
【0116】
例えば、メモリアクセス装置12の各機能ブロックを、ソフトウェアにより実現する場合、
図9に示したハードウェア構成(例えば、CPU、ROM、RAM(メモリ14)、入力部、出力部等をバスBusにより接続したハードウェア構成)を用いて、各機能部をソフトウェア処理により実現するようにしてもよい。
【0117】
また、上記実施の形態における処理方法の実行順序は、上記実施の形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で実行順序を入れ替えてもよい。
【0118】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
【0119】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【符号の説明】
【0120】
1 シミュレータ
11 演算部
12 メモリアクセス装置
13 メモリコントローラ
14 メモリ
121 データ番号特定部
122 判断部
123 領域決定部
124 読み出し制御部
125 書き込み制御部