(57)【要約】【課題】ハードウェアにおいて読み出し頻度が高い順にデータを並べること。【解決手段】複数の論理アドレスの各々に対応するデータが、論理アドレスに対応する評価情報が示す順位に基づく順序でメモリに記憶される。制御装置１００は、読み出し要求に含まれる第１論理アドレスＬＡ１に対応する第１評価情報が示す第１順位よりも高い第２順位を示す第２評価情報に対応する第２論理アドレスＬＡ２を特定する。制御装置１００は、第２順位と第１順位とが交換されるように第２評価情報と第１評価情報とを、を更新する。制御装置１００は、第２論理アドレスＬＡ２に対応する物理アドレスＰＡ２と、第１論理アドレスＬＡ１に対応する物理アドレスＰＡ１と、を交換する。制御装置１００は、第１論理アドレスＬＡ１に対応するデータＤＡＴＡ２と、第２論理アドレスＬＡ２に対応するデータＤＡＴＡ１と、を交換する。【選択図】図１
2014016744.tif 000002
【特許請求の範囲】
【請求項１】
メモリへの読み出し要求に含まれる論理アドレスに対応する物理アドレスが示す前記メモリ内の記憶領域に記憶されたデータを読み出す制御を行う制御装置であって、
複数の前記論理アドレスの各々に対応する複数の前記データが、前記複数の論理アドレスの各々に対応する評価情報が示す順位に基づく順序で前記メモリ内の記憶領域に記憶され、
前記評価情報を記憶する記憶部と、
受け付けた前記読み出し要求に含まれる前記論理アドレスである第１論理アドレスに対応する前記記憶部に記憶された第１評価情報が示す第１順位よりも高い第２順位を示す第２評価情報に対応する第２論理アドレスを前記複数の論理アドレスの中から特定する特定部と、
前記第２順位と前記第１順位とが交換されるように前記第２評価情報と前記第１評価情報とを更新し、前記第２論理アドレスに対応する物理アドレスと、前記第１論理アドレスに対応する物理アドレスと、を交換する第１交換部と、
前記第１論理アドレスに対応するデータと、前記第２論理アドレスに対応するデータと、を交換する第２交換部と、
を有することを特徴とする制御装置。
【請求項２】
前記評価情報は前記複数の論理アドレスの各々に対応する物理アドレスであり、
前記第１交換部は、
前記第２論理アドレスに対応する物理アドレスと、前記第１論理アドレスに対応する物理アドレスと、を交換することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記第２順位は、前記第１順位よりも高い順位の中で最も低い順位であることを特徴とする請求項１または２に記載の制御装置。
【請求項４】
アクセス速度の異なる複数のメモリへのアクセスを制御し、
前記複数の論理アドレスの各々に対応するデータが、前記論理アドレスに対応する評価情報が示す順位が高いほど、前記複数のメモリのうちのアクセス速度が速いメモリに記憶されることを特徴とする請求項１〜３のいずれか一つに記載の制御装置。
【請求項５】
複数の論理アドレスの各々に対応する評価情報を記憶部に記憶し、前記複数の論理アドレスの各々に対応するデータが、前記論理アドレスに対応する前記評価情報が示す順位に基づく順序でメモリ内の記憶領域に記憶され、前記メモリへの読み出し要求に含まれる前記論理アドレスに対応する物理アドレスが示す前記メモリ内の記憶領域に記憶された前記データを読み出す制御を行う制御装置が、
受け付けた前記読み出し要求に含まれる論理アドレスである第１論理アドレスに対応する前記記憶部に記憶された第１評価情報が示す第１順位よりも高い第２順位を示す第２評価情報に対応する第２論理アドレスを前記複数の論理アドレスの中から特定し、
前記第２順位と前記第１順位とが交換されるように前記第２評価情報と前記第１評価情報とを更新し、前記第２論理アドレスに対応する物理アドレスと、前記第１論理アドレスに対応する物理アドレスと、を交換し、
前記第１論理アドレスに対応するデータと、前記第２論理アドレスに対応するデータと、を交換する、
処理を実行することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、および制御方法に関する。
【背景技術】
【０００２】
従来、アクセス速度の異なる少なくとも２つのメモリを有するプロセッサシステムがモデル化され、プログラムがシミュレーションされることにより、高速なメモリに配置するデータと、低速なメモリに配置するデータが決定される技術が知られている（たとえば、下記特許文献１を参照。）。具体的には、たとえば、シミュレーション結果におけるアクセス頻度に基づき各データが重み付けされ、重み付け順に各データを記憶させる領域が配列される。
【０００３】
また、複数あるタスクを切り替えて使用する場合に、タスク管理にかかるメモリの使用量が削減される技術が知られている（たとえば、下記特許文献２を参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−７０８６２号公報
【特許文献２】特開平５−４６４１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、シミュレーションによって得られる各データのアクセス頻度と、実際のハードウェアにおける各データのアクセス頻度と、が異なると、読み出し頻度が高い順にデータを並べることができない場合がある。
【０００６】
１つの側面では、本発明は、ハードウェアにおいて読み出し頻度が高い順にデータを並べることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、メモリへの読み出し要求に含まれる論理アドレスに対応する物理アドレスが示す前記メモリ内の記憶領域に記憶されたデータを読み出す制御を行う制御装置であって、複数の論理アドレスの各々に対応するデータが、前記論理アドレスに対応する評価情報が示す順位に基づく順序で前記メモリ内の記憶領域に記憶され、前記複数の論理アドレスの各々に対応する評価情報を記憶する記憶部と、受け付けた読み出し要求に含まれる第１論理アドレスに対応する前記記憶部に記憶された第１評価情報が示す第１順位よりも高い第２順位を示す第２評価情報に対応する第２論理アドレスを前記複数の論理アドレスの中から特定する特定部と、前記特定部によって特定された第２論理アドレスに対応する前記第２評価情報が示す前記第２順位と前記第１順位とが交換されるように前記第２評価情報と前記第１評価情報とを更新し、前記第２論理アドレスに対応する物理アドレスと、前記第１論理アドレスに対応する物理アドレスと、を交換する第１交換部と、前記第１論理アドレスに対応するデータと、前記第２論理アドレスに対応するデータと、を交換する第２交換部と、を有する制御装置が提案される。
【０００８】
本発明の他側面によれば、複数の論理アドレスの各々に対応するデータが、前記論理アドレスに対応する評価情報が示す順位に基づく順序でメモリ内の記憶領域に記憶され、前記メモリへの読み出し要求に含まれる論理アドレスに対応する物理アドレスが示す前記メモリ内の記憶領域に記憶されたデータを読み出す制御を行う制御装置が、受け付けた読み出し要求に含まれる第１論理アドレスに対応する、前記複数の論理アドレスの各々に対応する評価情報を記憶する記憶部に記憶された第１評価情報が示す第１順位よりも高い第２順位を示す第２評価情報に対応する第２論理アドレスを前記複数の論理アドレスの中から特定し、特定した第２論理アドレスに対応する前記第２評価情報が示す前記第２順位と前記第１順位とが交換されるように前記第２評価情報と前記第１評価情報とを更新し、前記第２論理アドレスに対応する物理アドレスと、前記第１論理アドレスに対応する物理アドレスと、を交換し、前記第１論理アドレスに対応するデータと、前記第２論理アドレスに対応するデータと、を交換する、処理を実行する制御方法が提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、ハードウェアにおいて読み出し頻度が高い順にデータを並べることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の一動作例を示す説明図である。
【図２】図２は、制御装置の機能的構成例を示すブロック図である。
【図３】図３は、実施例１にかかる制御装置の一例を示す説明図である。
【図４】図４は、実施例１にかかる制御装置の動作例（その１）を示す説明図である。
【図５】図５は、実施例１にかかる制御装置の動作例（その２）を示す説明図である。
【図６】図６は、実施例１にかかる制御装置の動作例（その３）を示す説明図である。
【図７】図７は、実施例１にかかる制御装置の動作例（その４）を示す説明図である。
【図８】図８は、制御装置による制御処理手順の一例を示すフローチャートである。
【図９】図９は、実施例２にかかる制御装置例を示す説明図である。
【図１０】図１０は、読み出し要求を受け付けた場合のタイミングチャート例を示す説明図である。
【図１１】図１１は、書き込み要求を受け付けた場合のタイミングチャート例を示す説明図である。
【図１２】図１２は、論理制御ブロックの詳細例を示す説明図である。
【図１３】図１３は、論理制御ブロックに関するタイミングチャート例を示す説明図である。
【図１４】図１４は、制御装置を含むエミュレータ例を示す説明図である。
【図１５】図１５は、制御装置を含むシステム例を示す説明図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明にかかる制御装置、および制御方法の実施の形態を詳細に説明する。
【００１２】
図１は、本発明の一動作例を示す説明図である。図２は、制御装置の機能的構成例を示すブロック図である。制御装置１００は、メモリ１０１へのアクセスを制御する。制御装置１００は、たとえば、エミュレータに用いられる。複数の論理アドレスの各々に対応するデータは、論理アドレスに対応する評価情報が示す順位に沿って、メモリ１０１に記憶される。制御装置１００と、メモリ１０１は、たとえば、エミュレータに含まれていてもよい。たとえば、メモリ１０１は、実際に製品として出荷する際に設けられる複数のメモリ分の記憶領域を有していればよい。
【００１３】
評価情報は、複数の論理アドレスの中で、読み出し要求頻度が高いと推定される順位を示す情報である。評価情報としては、１，２，３などの整数、ａ，ｂ，ｃなどのアルファベットであってもよい。図１の例では、評価情報を整数で表し、数が大きいほど順位が高いこととしている。
【００１４】
制御装置１００は、記憶部２０１と、受付部２０２と、特定部２０３と、第１交換部２０４と、第２交換部２０５と、を有している。各部は、たとえば、論理積回路であるＡＮＤ、否定論理回路であるＩＮＶＥＲＴＥＲ、論理和回路であるＯＲや、ラッチ回路であるＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）などの素子によって形成される。または、各部は、たとえば、Ｖｅｒｉｌｏｇ−ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）などの記述によって機能定義し、その記述を論理合成してＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）によって実現させてもよい。
【００１５】
記憶部２０１は、複数の論理アドレスの各々に対応する評価情報を記憶する。受付部２０２は、メモリ１０１への読み出し要求を受け付ける。読み出し要求は、読み出しであることを示す情報と、読み出し先の論理アドレスと、を有している。記憶部２０１は、たとえば、複数のレジスタである。
【００１６】
制御装置１００は、たとえば、受け付けた読み出し要求に含まれる第１論理アドレスＬＡ１を物理アドレスに変換し、メモリ１０１の中の物理アドレスが示す記憶領域から当該記憶領域に記憶されたデータを読み出す。そして、制御装置１００は、読み出したデータを読み出し要求の要求元に通知する。
【００１７】
特定部２０３は、受け付けられた読み出し要求に含まれる第１論理アドレスＬＡ１に対応する記憶部２０１に記憶された第１評価情報が示す第１順位よりも高い第２順位を示す記憶部２０１に記憶された第２評価情報に対応する第２論理アドレスＬＡ２を特定する。第２論理アドレスＬＡ２に対応する第２評価情報は、５であるため、第１論理アドレスＬＡ１に対応する第１評価情報が示す順位より高い。
【００１８】
第１交換部２０４は、第２論理アドレスＬＡ２に対応する第２評価情報が示す第２順位と第１順位とが交換されるように第２評価情報と第１評価情報とを、を更新する。たとえば、第１交換部２０４は、記憶部２０１に記憶された第１評価情報と第２評価情報を交換してもよい。または、たとえば、第１交換部２０４は、第１評価情報をカウントアップし、第２評価情報をカウントダウンすることにより、第１評価情報と第２評価情報を交換してもよい。第１交換部２０４は、第２論理アドレスＬＡ２に対応する物理アドレスと、第１論理アドレスＬＡ１に対応する物理アドレスと、を交換する。
【００１９】
第２交換部２０５は、第１論理アドレスＬＡ１に対応するデータと、第２論理アドレスＬＡ２に対応するデータと、を交換する。図１の中央では、第１論理アドレスＬＡ１に対応する物理アドレスがＰＡ１からＰＡ２に更新されたため、第１論理アドレスＬＡ１に対応するデータがＤＡＴＡ１からＤＡＴＡ２に変わっている。図１の中央では、第２論理アドレスＬＡ２に対応する物理アドレスがＰＡ２からＰＡ１に更新されたため、第２論理アドレスＬＡ２に対応するデータがＤＡＴＡ２からＤＡＴＡ１に変わっている。そのため、第２交換部２０５によって第１論理アドレスＬＡ１に対応するデータがＤＡＴＡ１となり、第２論理アドレスＬＡ２に対応するデータがＤＡＴＡ２となる。これにより、図１に示す各論理アドレスに対応するデータを記憶する記憶領域が変わる。また、評価情報が示す順位が最も高い場合には、第１交換部２０４と第２交換部２０５とにかかる交換処理を行わないこととする。
【００２０】
これにより、読み出し頻度が高い順にデータを並べることができる。したがって、制御装置を含むシステムを運用時に、データを、順序が高いほど、アクセス速度が速いメモリに記憶させる。これにより、読み出し頻度が高いデータをアクセス速度が速いメモリに記憶させることができる。
【００２１】
（実施例１）
実施例１では、複数の論理アドレスの各々に対応する評価情報が複数の論理アドレスの各々に対応する物理アドレスである。これにより、物理アドレスが評価情報を兼用するため、物理アドレスと評価情報とが異なる場合と比較して、制御装置の素子数を削減することができ、制御装置の省スペース化を図ることができる。
【００２２】
図３は、実施例１にかかる制御装置の一例を示す説明図である。たとえば、制御装置１００は、スコアテーブル３０１と、マップテーブル３０２と、を有している。スコアテーブル３０１と、マップテーブル３０２と、は、たとえば、ＡＮＤ素子、ＩＮＶＥＲＴＥＲ素子、ＯＲ素子や、ＦＦなどの素子によって形成される。または、各部は、たとえば、Ｖｅｒｉｌｏｇ−ＨＤＬなどの記述によって機能定義し、その記述を論理合成してＦＰＧＡによって実現させてもよい。
【００２３】
スコアテーブル３０１は、論理アドレスから物理アドレスに変換するためのテーブルである。デコーダ３１１と、複数のカウンタ３１２−１〜３１２−ｎと、を有している。デコーダ３１１は、外部からの読み出し要求や書き込み要求を受け付けて、読み出し要求や書き込み要求に含まれる論理アドレスに対応するカウンタ３１２を選択する機能を有する。カウンタ３１２は、論理アドレスに対応して、順位を示す評価情報をカウントする。論理アドレスの数よりも物理アドレスの数の方が小さい場合には、カウンタ３１２の数は、物理アドレスの数と同じになる。この場合、未使用の論理アドレスがある。マップテーブル３０２は、物理アドレスから論理アドレスに変換するためのテーブルである。つぎに、図４から図７を用いて、制御装置１００の動作例を説明する。
【００２４】
図４から図７は、実施例１にかかる制御装置の動作例を示す説明図である。たとえば、カウンタ３１２−ｉ（ｉは１〜ｎ）は、論理アドレスＬＡｉに対応することとする。マップテーブル３０２は、ＬＡ、ＰＡのフィールドを有している。ＬＡのフィールドには論理アドレスが設定され、ＰＡのフィールドには、ＬＡのフィールドに設定された論理アドレスに対応する物理アドレスが設定される。各フィールドに情報が設定されることにより、レコード（３０３−１〜３０３−６）として記憶される。
【００２５】
まず、制御装置１００が、ＣＰＵ３２１から読み出し要求を受け付ける。図４の例では、読み出し要求に含まれる論理アドレスは、ＬＡ４である。制御装置１００は、スコアテーブル３０１のデコーダによりカウンタ３１２−４を選択する。制御装置１００は、カウンタ３１２−４のカウント値に基づいて、第１論理アドレスを第１物理アドレスに変換する。ここでは、ＬＡ４からＰＡ４に変換される。制御装置１００は、第１物理アドレスが示す記憶領域に記憶されたデータｄａｔａ４を読み出して、読み出し要求元に読み出したデータを通知する。
【００２６】
図５に示すように、制御装置１００は、（１）選択したカウンタ３１２−４を１インクリメントさせる。これにより、カウンタ３１２−４のカウント値が４から５になり、第１論理アドレスに対応する物理アドレスが更新される。制御装置１００は、（２）マップテーブル３０２を参照して、インクリメント後のカウンタ３１２−４のカウント値である第２物理アドレスに対応する第２論理アドレスを特定する。これにより、インクリメント前のカウンタ３１２−４のカウント値が示す第１順位よりも高い第２順位を示す第２物理アドレスに対応する第２論理アドレスが特定される。ここでは、第２論理アドレスとしてＬＡ５が特定される。
【００２７】
つぎに、制御装置１００は、（３）第２論理アドレスに対応するカウンタ３１２−５のカウント値を１デクリメントする。これにより、カウンタ３１２−５のカウント値が５から４になる。制御装置１００は、（４）マップテーブル３０２内の、インクリメント前のカウント値に対応する第１論理アドレスと、インクリメント後のカウント値に対応する第２論理アドレスと、を入れ替える。（１）〜（４）に示した処理が、上述した特定部２０３と第１交換部２０４との処理に対応している。
【００２８】
制御装置１００は、（５）第１論理アドレスに対応する物理アドレスが示す記憶領域に記憶されたデータと、第２論理アドレスに対応する物理アドレスが示す記憶領域に記憶されたデータと、を交換する。（５）に示した処理が上述した第２交換部２０５の処理に対応している。
【００２９】
つぎに、図６では、再度、第１論理アドレスＬＡ４を含む読み出し要求が受け付けられた場合の例を示している。制御装置１００は、スコアテーブル３０１のデコーダによりカウンタ３１２−４を選択する。制御装置１００は、（１）選択したカウンタ３１２−４を１インクリメントさせる。これにより、カウンタ３１２−４のカウント値が５から６になり、第１論理アドレスに対応する物理アドレスが更新される。
【００３０】
つぎに、制御装置１００は、（３）第２論理アドレスに対応するカウンタ３１２−６のカウント値を１デクリメントする。これにより、カウンタ３１２−６のカウント値が６から５になる。制御装置１００は、（４）マップテーブル３０２内の、インクリメント前のカウント値に対応する第１論理アドレスと、インクリメント後のカウント値に対応する第２論理アドレスと、を入れ替える。（１）〜（４）に示した処理が、上述した特定部２０３と第１交換部２０４との処理に対応している。
【００３１】
制御装置１００は、（５）第１論理アドレスに対応する物理アドレスが示す記憶領域に記憶されたデータと、第２論理アドレスに対応する物理アドレスが示す記憶領域に記憶されたデータと、を交換する。（５）に示した処理が上述した第２交換部２０５の処理に対応している。
【００３２】
図７には、第１論理アドレスＬＡ４に対応するデータの読み出し要求が２回発生した後の制御装置１００およびメモリ１０１の状態を示している。このように、初期状態において評価情報が示す順位が低い論理アドレスであっても、実際に制御装置１００を含むシステムを動作させた場合に読み出し頻度が大きいデータであれば、順位は上がる。したがって、ハードウェアにおいて読み出し頻度が高い順にデータを並べることができる。
【００３３】
図８は、制御装置による制御処理手順の一例を示すフローチャートである。制御装置１００は、読み出し要求を受け付ける（ステップＳ８０１）、受け付けた読み出し要求に含まれる第１論理アドレスに対応するカウンタの値が最大値か否かを判断する（ステップＳ８０２）。読み出し要求に含まれる第１論理アドレスに対応するカウンタの値が最大値でない場合（ステップＳ８０２：Ｎｏ）、制御装置１００は、受け付けた読み出し要求に含まれる第１論理アドレスに対応するカウンタの値を１インクリメントする（ステップＳ８０３）。
【００３４】
制御装置１００は、マップテーブル３０２を参照して、インクリメント後のカウンタの値に対応する第２論理アドレスを特定し（ステップＳ８０４）、第２論理アドレスに対応するカウンタの値を１デクリメントする（ステップＳ８０５）。制御装置１００は、インクリメント後の物理アドレスが示す記憶領域に記憶されたデータと、デクリメント後の物理アドレスが示す記憶領域に記憶されたデータと、を交換する（ステップＳ８０６）。
【００３５】
制御装置１００は、マップテーブル３０２内の、インクリメント前の物理アドレスに対応する論理アドレスと、インクリメント後の物理アドレスに対応する論理アドレスと、を交換し（ステップＳ８０７）、一連の処理を終了する。ステップＳ８０２において、読み出し要求に含まれる第１論理アドレスに対応するカウンタの値が最大値である場合（ステップＳ８０２：Ｙｅｓ）、一連の処理を終了する。
【００３６】
（実施例２）
実施例２では、物理アドレスを１インクリメント可能な加算器を用いて、第１論理アドレスに対応する物理アドレスと、第２論理アドレスに対応する物理アドレスと、を交換する。さらに、実施例２では、各信号の詳細なタイミングチャートについても図示する。
【００３７】
図９は、実施例２にかかる制御装置例を示す説明図である。メモリユニット９００は、制御装置１００と、データメモリ９１０を有している。データメモリ９１０としては、たとえば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などが挙げられる。
【００３８】
制御装置１００は、スコアテーブル９０１と、マップテーブル９０２と、コンパレータ９０３と、加算器９０４と、セレクタ９０５と、論理制御ブロック９０６と、を有している。制御装置１００の入出力端は、論理アドレス入力端と、データ入出力端と、ｘＷＥ入力端と、ｘＲＤ入力端と、がある。
【００３９】
論理アドレス入力端には、読み出し要求または書き込み要求の対象となる論理アドレスが入力される。データ入出力端には、読み出し要求時にはデータメモリ９１０から読み出されたデータが出力され、書き込み要求時にはデータメモリ９１０に書き込むデータが入力される。
【００４０】
上述したように、スコアテーブル９０１は、論理アドレスから物理アドレスへの変換を行うことが可能なテーブルである。上述したように、マップテーブル９０２は、物理アドレスから論理アドレスへの変換を行うことが可能なテーブルである。
【００４１】
コンパレータ９０３は、指定された物理アドレスと最大値とを比較する機能を有する。たとえば、コンパレータ９０３は、指定された物理アドレスと最大値とが同一の場合、１を出力し、指定された物理アドレスと最大値とが異なる場合、０を出力する。
【００４２】
加算器９０４は、指定された物理アドレスを１インクリメントする機能を有する。セレクタ９０５は、論理制御ブロック９０６から出力された選択信号に基づいて、データ入出力端から入力されたデータと、データメモリ９１０から出力されたデータと、のいずれか一方のデータを出力する。論理制御ブロック９０６は、読み出し要求と書き込み要求に基づいて、全体を制御する。
【００４３】
ここで、図９に示す各ブロックの端子について簡単に説明する。まず、マップテーブル９０２とスコアテーブル９０１の端子名を以下に示す。ｘＷＥａは、デュアルポートメモリＡポートであり、ライトイネーブル信号入力端である。ｘＷＥｂは、デュアルポートメモリＢポートであり、ライトイネーブル信号入力端である。ＣＬＫはデュアルポートメモリのクロック入力端である。ＳＡａはスコアテーブル９０１用デュアルポートメモリＡポートであり、アドレス信号入力端である。
【００４４】
ＳＡｂはスコアテーブル９０１用デュアルポートメモリＢポートであり、アドレス信号入力端である。ＳＤａｉはスコアテーブル９０１用デュアルポートメモリＡポートであり、データ入力端である。ＳＤｂｉはスコアテーブル９０１用デュアルポートメモリＢポートであり、データ入力端である。ＳＤａｏはスコアテーブル９０１用デュアルポートメモリＡポートであり、データ出力端である。ＳＤｂｏはスコアテーブル９０１用デュアルポートメモリＢポートであり、データ出力端である。
【００４５】
ＭＡａはマップテーブル９０２用デュアルポートメモリＡポートであり、アドレス信号入力端である。ＭＡｂはマップテーブル９０２用デュアルポートメモリＢポートであり、アドレス信号入力端である。ＭＤａｉはマップテーブル９０２用デュアルポートメモリＡポートであり、データ入力端である。ＭＤｂｉはマップテーブル９０２用デュアルポートメモリＢポートであり、データ入力端である。ＭＤａｏはマップテーブル９０２用デュアルポートメモリＡポートであり、データ出力端である。ＭＤｂｏはマップテーブル９０２用デュアルポートメモリＢポートであり、データ出力端である。
【００４６】
つぎに、データメモリ９１０の端子名について説明する。ＤＡａはデータメモリ９１０用デュアルポートメモリＡポートであり、アドレス信号入力端である。ＤＡｂは、データメモリ９１０用デュアルポートメモリＢポートであり、アドレス信号入力端である。ＤＤａｉはデータメモリ９１０用デュアルポートメモリＡポートであり、データ入力端である。ＤＤｂｉはデータメモリ９１０用デュアルポートメモリＢポートであり、データ入力端である。ＤＤａｏはデータメモリ９１０用デュアルポートメモリＡポートであり、データ出力端である。ＤＤｂｏはデータメモリ９１０用デュアルポートメモリＢポートであり、データ出力端である。
【００４７】
つぎに、論理制御ブロック９０６の端子名について説明する。ｘＷＥｉｎは評価用チップからのライトイネーブル信号入力端である。ｘＲＤｉｎは評価用チップからのリードイネーブル信号入力端である。ＳＥＬはセレクタ９０５切り替え信号出力端（「Ｈｉ」の場合、Ａが出力、「Ｌｏｗ」の場合、Ｂが出力）である。ｘＤＷＥａはメモリユニット９００のライトイネーブルＡ信号出力端である。ｘＤＷＥｂはメモリユニット９００のライトイネーブルＢ信号出力端である。ＭＡＸはコンパレータ９０３からの比較結果入力端である。
【００４８】
図１０は、読み出し要求を受け付けた場合のタイミングチャート例を示す説明図である。タイミングチャート１０００では、読み出し要求を受け付けた場合の各信号の変化を示している。ここでは、１クロック目の各信号の変化について詳細に説明する。
【００４９】
制御装置１００は、クロック信号ＣＬＫの立ち上がりに同期して動作する。制御装置１００は、ｘＲＤ入力端に「Ｌｏｗ」が入力されることにより、読み出し要求を受け付ける。スコアテーブル９０１のＳＡａ入力端に論理アドレスＬＡ０が入力されると、スコアテーブル９０１のＳＤａｏ出力端から物理アドレスＰＡ０が出力されて、データメモリ９１０のＤＡａ入力端に物理アドレスＰＡ０が入力される。データメモリ９１０のＤＤａｏ出力端から物理アドレスＰＡ０が示す記憶領域に記憶されたデータＤ（ＰＡ０）が出力される。
【００５０】
また、データメモリ９１０のＤＡｂ入力端に、物理アドレスＰＡ０に加算器９０４によって１がインクリメントされた物理アドレスＰＡ（０＋１）が入力されると、データメモリ９１０のＤＤｂｏ出力端からデータＤ（ＰＡ（０＋１））が出力される。
【００５１】
マップテーブル９０２のＭＡａ入力端に、スコアテーブル９０１のＳＤａｏ出力端から出力された物理アドレスＰＡ０が１インクリメントされた物理アドレスＰＡ（０＋１）が入力される。これにより、物理アドレスＰＡ（０＋１）が第２論理アドレスＬＡ’（ＰＡ（０＋１））に変換される。そのため、マップテーブル９０２のＭＤａｏ出力端から第２論理アドレスＬＡ’（ＰＡ（０＋１））が出力される。
【００５２】
スコアテーブル９０１のＳＤｂｉ入力端に、スコアテーブル９０１のＳＤａｏ出力端から出力された物理アドレスＰＡ０が入力される。スコアテーブル９０１のＳＡｂ入力端に、マップテーブル９０２のＭＤａｏ出力端から出力された第２論理アドレスＬＡ’（ＰＡ（０＋１））が入力される。データメモリ９１０のｘＷＥｂ入力端には、コンパレータ９０３の出力結果であるＭＡＸがＬｏｗの場合には「０」が入力される。これにより、第２論理アドレスＬＡ”（ＰＡ（０＋１））に対応する物理アドレスが、ＰＡ０になる。
【００５３】
スコアテーブル９０１のＳＤａｉ入力端に、加算器９０４からの物理アドレスＰＡ（０＋１）が入力される。上述したように、スコアテーブル９０１のＳＡａ入力端に、第１論理アドレスＬＡ０が入力される。データメモリ９１０のｘＷＥａ入力端には、コンパレータ９０３の出力結果であるＭＡＸが「Ｌｏｗ」の場合には「０」が入力される。これにより、スコアテーブル９０１内の第１論理アドレスＬＡ０に対応する物理アドレスがＰＡ（０＋１）になる。
【００５４】
上述したように、マップテーブル９０２のＭＡａ入力端に、物理アドレスＰＡ（０＋１）が入力され、ＭＤａｉ入力端に、第１論理アドレスＬＡ０が入力され、ｘＷＥａ入力端に、「０」が入力される。これにより、物理アドレスＰＡ（０＋１）に対応する論理アドレスがＬＡ０になる。上述したように、マップテーブル９０２のＭＡｂ入力端に、物理アドレスＰＡ０が入力され、ＭＤｂｉ入力端に、第２論理アドレスＬＡ’（ＰＡ（０＋１））が入力され、ｘＷＥｂ入力端に、「０」が入力される。これにより、物理アドレスＰＡ０に対応する論理アドレスがＬＡ（０＋１）になる。
【００５５】
したがって、第１論理アドレスＬＡ０に対応する物理アドレスがＰＡ（０＋１）になり、第２論理アドレスＬＡ１に対応する物理アドレスがＰＡ０になるため、２つの物理アドレスが交換されたことになる。
【００５６】
データメモリ９１０のＤＤｂｉ入力端に、ＤＤａｏ出力端から出力されるデータＤ（ＰＡ０）が入力される。上述したように、ＤＡｂ入力端に、加算器９０４からの物理アドレスＰＡ（０＋１）が入力される。データメモリ９１０のｘＷＥｂ入力端に、コンパレータ９０３の出力結果であるＭＡＸが「０」の場合には「０」が入力される。これにより、物理アドレスＰＡ（０＋１）が示す記憶領域に、第１論理アドレスＬＡ０に対応するデータが格納される。
【００５７】
データメモリ９１０のＤＤａｉ入力端に、データメモリ９１０のＤＤｂｏ出力端から出力されたデータＤ（ＰＡ（０＋１））が入力される。上述したように、ＤＡａ入力端に、スコアテーブル９０１のＳＤａｏ出力端から出力された物理アドレスＰＡ０が入力される。データメモリ９１０のｘＷＥａ入力端とデータメモリ９１０のｘＷＥｂ入力端に、コンパレータ９０３の出力結果であるＭＡＸがＬｏｗの場合には「０」が入力される。これにより、物理アドレスＰＡ０が示す記憶領域に、第２論理アドレスＬＡ（０＋１）に対応するデータが格納される。したがって、データメモリ９１０の２つの記憶領域内のデータが交換される。
【００５８】
２クロック目では、論理アドレスＬＡ１を含む読み出し要求が発生した例を示しているが、制御装置１００の各部の動作は１クロック目と同一であるため、詳細な説明を省略する。
【００５９】
図１１は、書き込み要求を受け付けた場合のタイミングチャート例を示す説明図である。タイミングチャート１１００は、書き込み要求を受け付けた場合の各端子に入力される信号または各端子から出力される信号の変化を示している。ここでは、１クロック目に示す各信号の変化について詳細に説明する。
【００６０】
ＳＡａ入力端に、論理アドレスＬＡ０が入力され、スコアテーブル９０１によって論理アドレスＬＡ０が物理アドレスＰＡ０に変換される。これにより、ＳＤａｏ端子から物理アドレスＰＡ０が出力される。ＤＡａ入力端に、物理アドレスＰＡ０が入力され、データ入力端から入力されたデータＤ０がセレクタ９０５から出力され、データメモリ９１０のＤＤａｉ入力端にデータＤ０が入力される。ｘＤＷＥａ出力端が「Ｈｉ」から「Ｌｏｗ」に変化することにより、物理アドレスＰＡ０が示す記憶領域にデータＤ０が書き込まれる。ｘＲＤ入力端とｘＤＷＥｂ出力端は、「Ｈｉ」状態となる。
【００６１】
２クロック目では、論理アドレスＬＡ１に対応する物理アドレスＰＡ１が示す記憶領域にデータＤ１が書き込まれる例であるが、制御装置１００の各部の動作は１クロック目と同一であるため、詳細な説明を省略する。
【００６２】
図１２は、論理制御ブロックの詳細例を示す説明図である。論理制御ブロック９０６は、ｘＷＥｉｎ入力端に入力される信号と、ｘＲＤｉｎ入力端に入力される信号と、コンパレータ９０３による比較結果であるＭＡＸと、に基づいて、３つの出力端から出力される信号の値を決定する。ＳＥＬ出力端から出力される信号は、ｘＷＥｉｎ入力端から入力される信号によって決定される。ｘＤＷＥａ出力端から出力される信号は、ｘＷＥｉｎ入力端から入力される信号とｘＲＤｉｎ入力端から入力される信号と、ＭＡＸと、によって決定される。ｘＤＷＥｂ出力端から出力される信号は、ｘＲＤｉｎ入力端から入力される信号と、ＭＡＸと、によって決定される。
【００６３】
図１３は、論理制御ブロックに関するタイミングチャート例を示す説明図である。タイミングチャート１３００では、１クロック目では、読み出し要求が発生した場合の動作例を示し、２クロック目では、書き込み要求が発生した場合の動作例を示している。
【００６４】
まず、１クロック目について説明する。ｘＷＥ入力端から入力された信号の値が「１」であるため、ＳＥＬ出力端からは、セレクタ９０５のＡ入力端に入力される信号がセレクタ９０５によって選択される「１」が出力される。ｘＲＤ入力端に入力された信号が「０」であり、ＭＡＸ入力端に入力された信号が「０」であるため、ｘＤＷＥａ出力端から出力される信号とｘＤＷＥｂ出力端から出力される信号とが「０」となる。
【００６５】
つぎに、２クロック目について説明する。ｘＷＥ入力端から入力された信号の値が「０」であるため、ＳＥＬ出力端からは、セレクタ９０５のＢ入力端に入力される信号がセレクタ９０５によって選択される「０」が出力される。ｘＷＥ入力端から入力された信号の値が「０」であるため、ｘＤＷＥａ出力端から出力される信号が「０」となる。ｘＲＤ入力端に入力された信号が「１」であり、ＭＡＸ入力端に入力された信号が「０」であるため、ｘＤＷＥｂ出力端から出力される信号が「１」となる。
【００６６】
図１４は、制御装置を含むエミュレータ例を示す説明図である。エミュレータ１４００は、コンピュータ１４１０によって制御される装置である。エミュレータ１４００は、たとえば、評価用装置１４０１と、制御装置１００およびデータメモリ９１０とを含むメモリユニット９００と、を有する。評価用装置１４０１は、デバッグユニット１４０２と、演算コア１４０３と、内部メモリ１４０４と、を有する。デバッグユニット１４０２は、演算コア１４０３と内部メモリ１４０４と、をコンピュータ１４１０によって制御可能とするための装置である。コンピュータ１４１０は、たとえば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、入力装置、出力装置、通信装置などを有している。
【００６７】
エミュレータ１４００に制御装置１００が含まれることにより、アクセス頻度が高いであろう順にデータメモリ９１０内のデータを並び替えることができ、各データの順位付けを行うことができる。
【００６８】
（実施例３）
実施例３では、制御装置が複数のメモリに対するアクセスを制御する場合、論理アドレスに対応するデータを順位が高いほどアクセスが速いメモリに記憶させ、読み出し要求が発生した論理アドレスの順位を上げて記憶位置を変える。これにより、読み出し頻度が高いデータを該メモリに記憶させることができる。
【００６９】
図１５は、制御装置を含むシステム例を示す説明図である。たとえば、システム１５１０では、マイコン１５０１と、１つの外部メモリ１５１１と、を有している。マイコン１５０１は、演算コア１５０２と、制御装置１００と、内部メモリ１５０３と、を有している。内部メモリ１５０３は、外部メモリ１５１１よりも演算コア１５０２からのアクセス速度が速い。この場合、論理アドレスに対応する評価情報の順位が高いほど、論理アドレスに対応するデータを内部メモリ１５０３に記憶させる。これにより、アクセス頻度が高いデータほど、内部メモリ１５０３に記憶されることとなる。
【００７０】
たとえば、システム１５００では、マイコン１５０１と、ＳＲＡＭ１５０４と、ＤＲＡＭ１５０５と、を有している。マイコン１５０１は、演算コア１５０２と、制御装置１００と、内部メモリ１５０３と、を有している。内部メモリ１５０３は、ＳＲＡＭ１５０４およびＤＲＡＭ１５０５よりも演算コア１５０２からのアクセス速度が速い。ＳＲＡＭ１５０４は、ＤＲＡＭ１５０５よりも演算コア１５０２からのアクセス速度が速い。この場合、論理アドレスに対応する評価情報の順位が高いほど、論理アドレスに対応するデータを内部メモリ１５０３に記憶させる。内部メモリ１５０３に記憶できない場合、論理アドレスに対応する評価情報の順位が高いほど、ＳＲＡＭ１５０４に記憶させる。
【００７１】
システム１５００の運用中に、制御装置１００が、読み出し要求が発生した論理アドレスの順位を入れ替える。これにより、アクセス頻度が高いほど、よりアクセス速度が速いメモリに記憶させることができる。
【００７２】
以上説明したように、論理アドレスに付けた順位によりメモリ内の記憶位置を事前に決め、制御装置が、読み出し要求が発生した論理アドレスの順位を上位の順位と入れ替えて記憶位置を変える。これにより、読み出し頻度が高い順にデータを並べられる。
【００７３】
また、複数の論理アドレスの各々に対応する評価情報は複数の論理アドレスの各々に対応する物理アドレスである。これにより、評価情報と複数の物理アドレスとが異なる情報である場合と比較して、制御装置の素子数を削減することができ、制御装置の省スペース化を図ることができる。
【００７４】
また、制御装置は、受け付けた読み出し要求に含まれる論理アドレスに対応する順位を、当該順位よりも高い順に最も低い順位と入れ替えて記憶位置を変える。順位が近いデータ同士で順位が入れ替わるため、段階的に順位を入れ替えることができ、順位が近いデータ同士のアクセス頻度の差を小さくすることができる。読み出し要求が頻繁に発生するデータであれば、徐々に順位が上位に上がる。したがって、順位が遠いデータ同士で入れ替える場合と比較して、データがアクセス頻度の高い順に並べられる可能性を高くすることができる。
【００７５】
また、メモリが複数ある場合には、論理アドレスに対応するデータを、論理アドレスに対応する順位が高いほど、アクセスが速いメモリに記憶させる。これにより、制御装置を含むシステムを運用中に、読み出し頻度が高いデータほど、高速なメモリに記憶させることができる。
【符号の説明】
【００７６】
１００  制御装置
１０１  メモリ
２０１  記憶部
２０２  受付部
２０３  特定部
２０４  第１交換部
２０５  第２交換部
【図１】
2014016744.tif 000003
【図２】
2014016744.tif 000004
【図３】
2014016744.tif 000005
【図４】
2014016744.tif 000006
【図５】
2014016744.tif 000007
【図６】
2014016744.tif 000008
【図７】
2014016744.tif 000009
【図８】
2014016744.tif 000010
【図９】
2014016744.tif 000011
【図１０】
2014016744.tif 000012
【図１１】
2014016744.tif 000013
【図１２】
2014016744.tif 000014
【図１３】
2014016744.tif 000015
【図１４】
2014016744.tif 000016
【図１５】
2014016744.tif 000017