JP2011257892A - 情報処理装置、メモリ制御装置、メモリアクセス方法およびプログラム - Google Patents

情報処理装置、メモリ制御装置、メモリアクセス方法およびプログラム Download PDF

Info

Publication number
JP2011257892A
JP2011257892A JP2010130590A JP2010130590A JP2011257892A JP 2011257892 A JP2011257892 A JP 2011257892A JP 2010130590 A JP2010130590 A JP 2010130590A JP 2010130590 A JP2010130590 A JP 2010130590A JP 2011257892 A JP2011257892 A JP 2011257892A
Authority
JP
Japan
Prior art keywords
address
memory
banks
access
same data
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.)
Pending
Application number
JP2010130590A
Other languages
English (en)
Inventor
Koji Ozaki
浩治 尾崎
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2010130590A priority Critical patent/JP2011257892A/ja
Publication of JP2011257892A publication Critical patent/JP2011257892A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】複数のバンクにアクセスする場合にキャッシュメモリを効率よく利用する。
【解決手段】キャッシュメモリ120は、複数のバンクを備えるメモリ200の一部の領域に保持されているデータをエントリ単位で保持する。バスマスタ110は、複数のバンクに保持されている同一データへのアクセス要求を行う場合には、1つのアクセスアドレスを発行する。この発行により、キャッシュメモリ120には、同一データが保持されている複数のバンクにおける各メモリアドレスに対応する1つのエントリのみが登録される。メモリコントローラ130は、バスマスタ110からアクセスアドレスが発行された場合には、そのアクセスアドレスに基づいて、同一データが保持されている複数のバンクにおける各メモリアドレスを特定する。そして、その特定された各メモリアドレスのうちの1つのメモリアドレスにアクセスする。
【選択図】図1

Description

本発明は、情報処理装置に関し、特に、複数のバンクを用いて各種処理を行う情報処理装置、メモリ制御装置およびメモリアクセス方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
従来、複数のバンクを備えるメモリにアクセスする場合に、これらの各バンクのうち1または2以上のバンクに対して同時にアクセスすることが可能なメモリ制御装置が存在する。
このように複数のバンクを備えるメモリにおいて、1つのデータが1つのバンクに書き込まれている場合に、バースト長が比較的短いデータを各バンクから読み出す場合を想定する。例えば、複数のデータを連続して読み出す場合において、この読出対象となる複数のデータが書き込まれているバンクが同一である場合には、同一のバンクから連続してデータを読み出す必要がある。この場合には、バンク衝突によるペナルティが発生するため、メモリアクセスに要する時間が長くなり、アクセス効率が低下するおそれがある。
そこで、複数のバンクを備えるメモリにおいて同一データを複数のバンクに書き込んでおき、各バンクからのデータ読み出し時には、読出対象となる複数のバンクのうち、バンク衝突が少ないバンクを選択して読み出すメモリ制御装置が提案されている。
例えば、複数のバンクに同一データを書き込み、同一バンクの異なるロウアドレスに対してデータ読み出しが発生した場合には、異なるバンクからデータを読み出すメモリアクセス装置が提案されている(例えば、特許文献1参照。)。
特開2002−149487号公報(図1)
上述の従来技術によれば、同一データを複数のバンクに書き込んでおき、各バンクからのデータ読み出し時には、バンク衝突が少ないバンクを選択して読み出すため、バンク衝突を軽減させ、アクセス効率を高めることができる。
ここで、アクセス効率をさらに高めるため、バスにアクセスしてそのバスに対してバス信号(書き込みデータ等)を送出するバスマスタ(データ処理装置)と、メモリ制御装置との間にキャッシュメモリを設けることが考えられる。このようにキャッシュメモリを設けた場合において、例えば、同一データが保持されている複数のバンクの何れかにバスマスタがアクセスする場合を想定する。この場合には、これらの複数のバンクにおける何れかのアドレス(同一データが保持されているアドレス)に対するアクセス要求をバスマスタが出力すると、バンク衝突が少ないバンクをメモリ制御装置が選択する。
しかしながら、このようにバスマスタから複数のアドレス(バンクのアドレス)にアクセスすると、キャッシュメモリに同一データが複数登録されることになる。この場合には、複数のアドレスの分だけ、キャッシュ領域を消費してしまうため、キャッシュメモリの利用効率が低下するおそれがある。
本発明はこのような状況に鑑みてなされたものであり、複数のバンクにアクセスする場合にキャッシュメモリを効率よく利用することを目的とする。
本発明は、上記課題を解決するためになされたものであり、その第1の側面は、複数のバンクを備えるメモリの一部の領域に保持されているデータをエントリ単位で保持するキャッシュメモリと、上記メモリへのアクセス要求を上記キャッシュメモリを介して行い、上記複数のバンクのうちの少なくとも2つのバンクに保持されている同一データへのアクセス要求を行う場合には上記同一データが保持されている複数のバンクにおける各メモリアドレスを特定するためのアクセスアドレスであって当該各メモリアドレスに対応する1つのエントリのみを上記キャッシュメモリに登録させるための1つのアクセスアドレスを発行するバスマスタと、上記キャッシュメモリを介して上記バスマスタと接続されて上記バスマスタからのアクセス要求に基づいて上記メモリへのアクセス制御を行い、上記バスマスタから上記アクセスアドレスが発行された場合には当該アクセスアドレスに基づいて上記同一データが保持されている複数のバンクにおける各メモリアドレスを特定して上記特定された各メモリアドレスのうちの1つのメモリアドレスにアクセスするメモリコントローラとを具備する情報処理装置およびメモリアクセス方法ならびに当該方法をコンピュータに実行させるプログラムである。これにより、複数のバンクのうちの少なくとも2つのバンクに保持されている同一データへのアクセス要求を行う場合には1つのアクセスアドレスを発行し、このアクセスアドレスに基づいて、同一データが保持されている複数のバンクにおける各メモリアドレスを特定し、この特定された各メモリアドレスのうちの1つのメモリアドレスにアクセスするという作用をもたらす。
また、この第1の側面において、上記バスマスタは、上記同一データが保持されている複数のバンクにおける各メモリアドレスのうちの1つのメモリアドレスを上記アクセスアドレスとして発行し、上記メモリコントローラは、上記同一データが保持されている複数のバンクにおける各メモリアドレスのうちの1つのメモリアドレスとして上記アクセスアドレスを特定し、上記同一データが保持されている複数のバンクにおける各メモリアドレスのうちの他のメモリアドレスを上記アクセスアドレスと所定値との演算により特定するようにしてもよい。これにより、同一データが保持されている複数のバンクにおける各メモリアドレスのうちの1つのメモリアドレスとしてアクセスアドレスを特定し、同一データが保持されている複数のバンクにおける各メモリアドレスのうちの他のメモリアドレスをアクセスアドレスと所定値との演算により特定するという作用をもたらす。
また、この第1の側面において、上記メモリコントローラは、上記特定された各メモリアドレスに対応するバンクのうちアクセス時間の少ないバンクを1つ選択して当該選択されたバンクにおけるメモリアドレスを上記1つのメモリアドレスとして上記同一データにアクセスするようにしてもよい。これにより、特定された各メモリアドレスに対応するバンクのうちアクセス時間の少ないバンクを1つ選択し、この選択されたバンクにおけるメモリアドレスにアクセスして同一データにアクセスするという作用をもたらす。
また、この第1の側面において、上記バスマスタは、上記同一データへのアクセス要求として上記同一データを読み出すアクセス要求を行い、上記メモリコントローラは、上記同一データを読み出すアクセス要求が上記バスマスタから出力された場合には上記1つのメモリアドレスにアクセスして当該メモリアドレスに保持されている上記同一データを読み出すようにしてもよい。これにより、同一データを読み出すアクセス要求がバスマスタから出力された場合には、1つのメモリアドレスにアクセスしてそのメモリアドレスに保持されている同一データを読み出すという作用をもたらす。
また、この第1の側面において、上記バスマスタは、上記少なくとも2つのバンクに上記同一データを書き込むアクセス要求を行う場合には当該書込対象となる複数のバンクにおける各メモリアドレスを特定するためのアクセスアドレスとして上記1つのアクセスアドレスを発行し、上記メモリコントローラは、上記同一データを書き込むアクセス要求が上記バスマスタから出力された場合には上記バスマスタから発行された上記アクセスアドレスに基づいて上記書込対象となる複数のバンクにおける各メモリアドレスを特定して上記特定された各メモリアドレスにアクセスして当該各メモリアドレスに上記同一データを書き込むようにしてもよい。これにより、同一データを書き込むアクセス要求が出力された場合には、アクセスアドレスに基づいて、書込対象となる複数のバンクにおける各メモリアドレスを特定し、この特定された各メモリアドレスにアクセスして同一データを書き込むという作用をもたらす。
また、この第1の側面において、上記バスマスタは、上記同一データを複数のバンクに保持する設定の解除後には上記アクセスアドレスを上記同一データが保持されていた複数のバンクのうちの1つのバンクにおけるメモリアドレスを特定するためのアクセスアドレスとして発行し、上記メモリコントローラは、上記設定の解除後において上記バスマスタから上記アクセスアドレスが発行された場合には当該アクセスアドレスに基づいて上記1つのバンクにおけるメモリアドレスを特定して上記特定されたメモリアドレスにアクセスするようにしてもよい。これにより、同一データを複数のバンクに保持する設定の解除後において、バスマスタからアクセスアドレスが発行された場合には、そのアクセスアドレスに基づいて、1つのバンクにおけるメモリアドレスを特定し、この特定されたメモリアドレスにアクセスするという作用をもたらす。
また、この第1の側面において、上記設定の解除後に発行されるアクセスアドレスは、当該アクセスアドレスのアドレス変換が行われる場合には少なくとも当該アドレス変換単位で連続するアドレスとし、一方、当該アクセスアドレスのアドレス変換が行われない場合には当該アクセスアドレスに対応するメモリアドレスの全体が上記バスマスタの物理アドレス空間で連続するアドレスとするようにしてもよい。これにより、同一データを複数のバンクに保持する設定の解除後において、バスマスタから適切なアクセスアドレスを発行するという作用をもたらす。
また、この第1の側面において、上記メモリコントローラは、上記情報処理装置におけるプログラムの起動終了後または動作モードの切り替え時において上記同一データが保持されるバンクの数を調整するようにしてもよい。これにより、情報処理装置におけるプログラムの起動終了後、または、動作モードの切り替え時において、同一データが保持されるバンクの数を調整するという作用をもたらす。
また、この第1の側面において、上記メモリコントローラは、特定の範囲のメモリアドレスへのアクセス要求の有無またはレジスタ設定に基づいて上記同一データを上記少なくとも2つのバンクに保持させるか否かの切替を行うようにしてもよい。これにより、特定の範囲のメモリアドレスへのアクセス要求の有無、または、レジスタ設定に基づいて、同一データを複数のバンクに保持させるか否かの切替を行うという作用をもたらす。
また、この第1の側面において、上記情報処理装置は、上記バスマスタを複数備え、上記メモリコントローラは、上記複数のバスマスタのうちの特定のバスマスタから上記同一データを読み出すアクセス要求が出力された場合にのみ上記同一データが保持されている複数のバンクからの上記同一データの選択読み出しを行うようにしてもよい。これにより、複数のバスマスタのうちの特定のバスマスタから、同一データを読み出すアクセス要求が出力された場合にのみ、同一データが保持されている複数のバンクからの同一データの選択読み出しを行うという作用をもたらす。
また、この第1の側面において、上記メモリコントローラは、上記特定された各メモリアドレスが、読み出しのみを行うデータ領域に対応する場合にのみ上記同一データが保持されている複数のバンクからの上記同一データの選択読み出しを行うようにしてもよい。これにより、特定された各メモリアドレスが、読み出しのみを行うデータ領域に対応する場合にのみ、同一データが保持されている複数のバンクからの同一データの選択読み出しを行うという作用をもたらす。
また、この第1の側面において、上記キャッシュメモリは、遅延書き込みを行うキャッシュメモリであり、上記キャッシュメモリまたは上記メモリコントローラに書き込み無効領域を設定して上記書き込み無効領域のメモリアドレスへの書き込みアクセス要求が上記バスマスタから出力された場合には当該書き込みアクセス要求を上記キャッシュメモリまたは上記メモリコントローラにより無効とするようにしてもよい。これにより、キャッシュメモリまたはメモリコントローラに書き込み無効領域を設定し、この書き込み無効領域のメモリアドレスへの書き込みアクセス要求が、バスマスタから出力された場合には、その書き込みアクセス要求をキャッシュメモリまたはメモリコントローラにより無効とするという作用をもたらす。
また、この第1の側面において、上記書き込み無効領域として、その時点でのスタックの未使用領域を指定するようにしてもよい。これにより、書き込み無効領域としてその時点でのスタックの未使用領域を指定するという作用をもたらす。
また、この第1の側面において、上記書き込み無効領域に対する読み出しアクセス要求が上記バスマスタから出力された場合には上記キャッシュメモリまたは上記メモリコントローラがエラー応答を返すようにしてもよい。これにより、書き込み無効領域に対する読み出しアクセス要求が、バスマスタから出力された場合には、キャッシュメモリまたはメモリコントローラがエラー応答を返すという作用をもたらす。
また、この第1の側面において、上記メモリコントローラは、上記アクセス制御によりバンク競合が発生した場合には当該競合が発生したバンク以外のバンクの少なくとも1つに対してリフレッシュを行うようにしてもよい。これにより、アクセス制御によりバンク競合が発生した場合には、その競合が発生したバンク以外のバンクの少なくとも1つに対してリフレッシュを行うという作用をもたらす。
また、本発明の第2の側面は、遅延書き込みを行うキャッシュメモリと、複数のバンクを備えるメモリへのアクセス要求を上記キャッシュメモリを介して行い、上記複数のバンクのうちの少なくとも2つのバンクに保持されている同一データへのアクセス要求を行うバスマスタと、上記キャッシュメモリを介して上記バスマスタと接続されて上記バスマスタからのアクセス要求に基づいて上記メモリへのアクセス制御を行うメモリコントローラとを具備し、上記キャッシュメモリまたは上記メモリコントローラに書き込み無効領域を設定して上記書き込み無効領域のメモリアドレスへの書き込みアクセス要求が上記バスマスタから出力された場合には当該書き込みアクセス要求を上記キャッシュメモリまたは上記メモリコントローラにより無効とする情報処理装置およびメモリアクセス方法ならびに当該方法をコンピュータに実行させるプログラムである。これにより、キャッシュメモリまたはメモリコントローラに書き込み無効領域を設定し、この書き込み無効領域のメモリアドレスへの書き込みアクセス要求が、バスマスタから出力された場合には、その書き込みアクセス要求をキャッシュメモリまたはメモリコントローラにより無効とするという作用をもたらす。
また、本発明の第3の側面は、複数のバンクを備えるメモリへのアクセス要求を行い、上記複数のバンクのうちの少なくとも2つのバンクに保持されている同一データへのアクセス要求を行うバスマスタと、上記同一データへのアクセス要求に基づいて上記メモリへのアクセス制御を行い、当該アクセス制御によりバンク競合が発生した場合には当該競合が発生したバンク以外のバンクの少なくとも1つに対してリフレッシュを行うメモリコントローラとを具備する情報処理装置およびメモリアクセス方法ならびに当該方法をコンピュータに実行させるプログラムである。これにより、同一データへのアクセス要求に基づいてメモリへのアクセス制御を行い、このアクセス制御によりバンク競合が発生した場合にはその競合が発生したバンク以外のバンクの少なくとも1つに対してリフレッシュを行うという作用をもたらす。
また、本発明の第4の側面は、複数のバンクを備えるメモリへのアクセス要求をキャッシュメモリを介して行うバスマスタから、上記複数のバンクのうちの少なくとも2つのバンクに保持されている同一データへのアクセス要求を行うためのアクセスアドレスであって、上記同一データが保持されている複数のバンクにおける各メモリアドレスを特定して当該各メモリアドレスに対応する1つのエントリのみを上記キャッシュメモリに登録させるための1つのアクセスアドレスを上記キャッシュメモリを介して受け付ける受付部と、上記バスマスタからのアクセス要求に基づいて上記メモリへのアクセス制御を行い、上記バスマスタから上記アクセスアドレスが発行された場合には当該アクセスアドレスに基づいて上記同一データが保持されている複数のバンクにおける各メモリアドレスを特定して上記特定された各メモリアドレスのうちの1つのメモリアドレスにアクセスするアクセス制御部とを具備するメモリ制御装置およびメモリアクセス方法ならびに当該方法をコンピュータに実行させるプログラムである。これにより、複数のバンクのうちの少なくとも2つのバンクに保持されている同一データへのアクセス要求を行う1つのアクセスアドレスを受け付けると、このアクセスアドレスに基づいて、同一データが保持されている複数のバンクにおける各メモリアドレスを特定し、この特定された各メモリアドレスのうちの1つのメモリアドレスにアクセスするという作用をもたらす。
本発明によれば、複数のバンクにアクセスする場合にキャッシュメモリを効率よく利用することができるという優れた効果を奏し得る。
本発明の第1の実施の形態における情報処理装置100の機能構成例を示すブロック図およびキャッシュメモリ120における保持内容の一例を示す図である。 本発明の第1の実施の形態におけるメモリコントローラ130によるアドレスの算出対象となる複数のバンクにおけるデータの配置例を示す図である。 本発明の第1の実施の形態における情報処理装置100の機能構成例を示すブロック図およびキャッシュメモリ120における保持内容の一例を示す図である。 本発明の第1の実施の形態における情報処理装置100による物理アドレスおよび仮想アドレスのアドレス変換例を模式的に示す図である。 本発明の第1の実施の形態における情報処理装置100による物理アドレスおよび仮想アドレスのアドレス変換例を模式的に示す図である。 本発明の第1の実施の形態におけるメモリ200上のスタック領域にアクセスする場合におけるデータの流れを模式的に示す図である。 本発明の第1の実施の形態におけるメモリ200上のスタック領域にアクセスする場合におけるデータの流れを模式的に示す図である。 本発明の第1の実施の形態におけるメモリ200上のスタック領域にアクセスする場合におけるスタック領域の無効有効を判定する判定方法を模式的に示す図である。 本発明の第1の実施の形態におけるメモリコントローラ130によるリフレッシュ処理の一例を模式的に示す図である。 本発明の第1の実施の形態におけるメモリ200によるセルフリフレッシュ処理の一例を模式的に示す図である。 本発明の第1の実施の形態における情報処理装置100によるデータ読出処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100によるデータ読出処理の処理手順のうちのキャッシュエントリ無効化処理の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100によるデータ書込処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100によるデータ読出処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100によるデータ読出処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100によるデータ読出処理の処理手順のうちのキャッシュエントリ無効化処理の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100によるデータ書込処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100による複数バンク対応解除処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100による複数バンク設定処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100による複数バンク読出処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100による複数バンク読出処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100による複数バンク読出処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100によるライトアクセス処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100によるライトアクセス処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100によるリフレッシュ処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100によるリフレッシュ処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100による複数バンク対応切替処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100による複数バンク対応切替処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態における情報処理装置100による複数バンク対応切替処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施の形態の変形例における情報処理装置600の機能構成例を示すブロック図である。 本発明の第1の実施の形態の変形例における情報処理装置620の機能構成例を示すブロック図である。 本発明の第1の実施の形態の適用例における撮像装置700の内部構成例を示すブロック図である。 本発明の第1の実施の形態の適用例におけるバスマスタにより行われる処理の一例を示す図である。 本発明の第1の実施の形態の適用例におけるメモリ750における複数バンク対応を調整する場合における調整方法を模式的に示す図である。
以下、本発明を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(メモリアクセス制御:複数のバンクに保持されている同一データにアクセスする場合にキャッシュメモリに1つのエントリのみが登録されるように1つのアクセスアドレスのみを用いる例)
2.変形例
3.適用例
<1.第1の実施の形態>
[情報処理装置の構成例]
図1は、本発明の第1の実施の形態における情報処理装置100の機能構成例を示すブロック図およびキャッシュメモリ120における保持内容の一例を示す図である。図1(a)には、情報処理装置100の機能構成例を示す。情報処理装置100は、バスマスタ110と、キャッシュメモリ120と、メモリコントローラ130と、メモリ200とを備える。
メモリ200は、バスマスタ110において処理対象となる各種データを記憶するメモリである。また、メモリ200には、複数のバンク(バンク1(211)乃至バンク4(214))が設けられている。ここで、バンクは、メモリ200を管理する際の管理単位である。なお、図1(a)では、説明の容易のため、比較的少ない数のバンク(4つのバンク)をメモリ200に設ける例について説明する。
バスマスタ110は、キャッシュメモリ120を介してバスにアクセスして、そのバスに対してバス信号(アドレス、制御信号、書込みデータ等)を送出するデータ処理装置である。すなわち、バスマスタ110は、メモリ200へのアクセス要求をキャッシュメモリ120を介して行う。なお、本発明の第1の実施の形態で示す各図では、バスマスタ110およびキャッシュメモリ120を異なる構成とする例を示すが、バスマスタ110がキャッシュメモリ120を内蔵する構成としてもよい。また、バスマスタ110は、例えば、CPU(Central Processing Unit)やDSP(Digital Signal Processor)等に相当する。なお、バスマスタ110から発行されるアクセスアドレスについて、物理アドレスおよび仮想アドレスの変換を行われる場合には、MMU(Memory Management Unit:メモリ管理ユニット)が配置される。例えば、キャッシュメモリ120が物理アドレスで動作する構成の場合には、バスマスタ110およびキャッシュメモリ120の間にMMUが配置される。また、キャッシュメモリ120が仮想アドレスで動作する構成の場合には、キャッシュメモリ120およびメモリコントローラ130の間にMMUが配置される。
また、バスマスタ110は、例えば、メモリ200における複数のバンクのうちの少なくとも2つのバンクに保持されている同一データへのアクセス要求を行う場合には、1つのアクセスアドレスを発行する。このアクセスアドレスは、同一データの保持対象となる複数のバンクにおける各メモリアドレスを特定するためのアクセスアドレスであり、その各メモリアドレスに対応する1つのエントリのみをキャッシュメモリ120に登録させるためのアクセスアドレスである。また、バスマスタ110は、同一データを複数のバンクに保持する設定が解除された後には、そのアクセスアドレスを、同一データが保持されていた複数のバンクのうちの1つのバンクにおけるメモリアドレスを特定するためのアクセスアドレスとして発行する。ここで、その設定の解除後に発行されるアクセスアドレスは、アクセスアドレスのアドレス変換が行われる場合には、少なくともアドレス変換単位で連続するアドレスとする。また、アクセスアドレスのアドレス変換が行われない場合には、アクセスアドレスに対応するメモリアドレスの全体がバスマスタ110の物理アドレス空間で連続するアドレスとする。
キャッシュメモリ120は、バスマスタ110およびメモリコントローラ130と接続されるキャッシュメモリであり、メモリ200の一部の領域のコピーを保持し、遅延書き込みを行う。また、キャッシュメモリ120は、例えば、メモリ200の一部の領域のコピーをエントリ単位で保持する。
メモリコントローラ130は、キャッシュメモリ120を介して受け取るバスマスタ110からのバス信号に基づいて、メモリ200へのアクセス制御を行うメモリ制御装置である。すなわち、メモリコントローラ130は、キャッシュメモリ120を介してバスマスタ110と接続され、バスマスタ110からのアクセス要求に基づいてメモリ200へのアクセス制御を行う。
また、メモリコントローラ130は、例えば、バスマスタ110からアクセスアドレスが発行された場合(複数のバンクの同一データへのアクセス要求)には、そのアクセスアドレスに基づいて、その複数のバンクにおける各メモリアドレスを特定する。そして、メモリコントローラ130は、その特定された各メモリアドレスに対応するバンクのうち、アクセス時間の少ないバンクを1つ選択し、この選択されたバンクにおけるメモリアドレスにアクセスする。なお、メモリコントローラ130は、キャッシュメモリ120を介してアクセスアドレスを受け付ける受付部と、そのアクセスアドレスに基づいてメモリ200へのアクセス制御を行うアクセス制御部とを備えるメモリ制御装置である。すなわち、メモリコントローラ130は、特許請求の範囲に記載のメモリ制御装置の一例である。
また、メモリコントローラ130は、例えば、同一データを読み出すアクセス要求がバスマスタ110から出力された場合には、そのアクセスアドレスに基づいて特定された1つのメモリアドレスにアクセスしてその同一データを読み出す。また、メモリコントローラ130は、例えば、同一データを書き込むアクセス要求がバスマスタ110から出力された場合には、そのアクセスアドレスに基づいて、書込対象となる複数のバンクにおける各メモリアドレスを特定する。そして、メモリコントローラ130は、その特定された各メモリアドレスにアクセスしてその同一データを書き込む。
また、メモリコントローラ130は、例えば、同一データを複数のバンクに保持する設定が解除された後において、バスマスタ110からアクセスアドレスが発行された場合には、そのアクセスアドレスに基づいて1つのバンクにおけるメモリアドレスを特定する。 また、メモリコントローラ130は、例えば、情報処理装置100におけるプログラムの起動終了後、または、動作モードの切り替え時において、同一データが保持されるバンクの数を調整する。また、メモリコントローラ130は、例えば、特定の範囲のメモリアドレスへのアクセス要求の有無、または、レジスタ設定に基づいて、同一データを複数のバンクに保持させるか否かの切替を行う。また、メモリコントローラ130は、例えば、アクセス制御によりバンク競合が発生した場合には、その競合が発生したバンク以外のバンクの少なくとも1つに対してリフレッシュを行う。
ここで、メモリ200におけるバンク1(211)およびバンク2(212)に同一データを書き込む場合における書込処理の流れについて説明する。ここでは、バンク1(211)のアドレスA(215)と、バンク2(212)のアドレスB(216)とに同一データを書き込む場合を例にして説明する。
バスマスタ110は、バンク1(211)のアドレスA(215)と、バンク2(212)のアドレスB(216)とに同一データを書き込む場合には、1つの書き込みアドレスXを使用する。このアドレスXは、例えば、アドレスAまたはアドレスBと同一とすることができる(この例では、アドレスXはアドレスAと同一とする)。また、アドレスXと同一とされたアドレス以外の他のアドレス(この例ではアドレスBとする)については、アドレスXに基づいて特定することができるアドレスを用いる。例えば、同一データが書き込まれるバンクにおける2つのアドレスの差分値を同一とすることにより、一方のアドレスに基づいて、他方のアドレスを特定することができる。例えば、「アドレスA−アドレスB=所定値α」とすることができる。このように、同一データが書き込まれるバンクにおける2つのアドレスの差分値を同一とすることにより、一方のアドレスに基づいて他方のアドレスを容易に特定することができる。なお、1つのアドレスに基づく他のアドレスの算出方法については、図2を参照して詳細に説明する。
図1(b)には、キャッシュメモリ120における保持内容の一例を示す。上述したように、バンク1(211)のアドレスA(215)と、バンク2(212)のアドレスB(216)とに同一データを書き込む場合には、バスマスタ110から1つの書き込みアドレスXが発行される。このように発行された1つの書き込みアドレスXについては、図1(b)に示すように、キャッシュメモリ120に登録される。具体的には、その同一データに関するエントリとして、1つのエントリ(アドレスXおよびその同一データ)がキャッシュメモリ120に登録される。
続いて、メモリコントローラ130が、バスマスタ110から発行された1つの書き込みアドレスXに基づいて、書き込み対象となるバンクの2つのアドレス(アドレスAおよびアドレスB)を特定する。このようにして特定されたアドレスAおよびアドレスBに、メモリコントローラ130が同一データを書き込む。
続いて、同一データが複数のバンクに書き込まれた場合において、その同一データをメモリ200から読み出す場合における読出処理の流れについて説明する。ここでは、バンク1(211)のアドレスA(215)と、バンク2(212)のアドレスB(216)との何れか一方から、同一データを読み出す場合を例にして説明する。
バスマスタ110は、バンク1(211)のアドレスA(215)と、バンク2(212)のアドレスB(216)とに保持されている同一データの何れかを読み出す場合には、1つの読み出しアドレスXを使用する。このアドレスXは、上述した書き込みアドレスXと同一である。また、このアドレスXは、上述したように、アドレスAおよびアドレスBの何れか1つと同一とすることができ、一方のアドレスに基づいて、他方のアドレスを特定することができる。すなわち、バスマスタ110が、複数のバンクに保持されている同一データの何れかを読み出す場合には、1つの書き込みアドレスのみを使用する。言い換えると、同一データを保持する複数のバンクの組み合わせに対しては、常に1つのアドレスのみを使用する。
このように1つのアドレスを用いて、複数のバンクに保持されている同一データの何れかを読み出すことができるため、図1(b)に示すように、その同一データに関するエントリとして1つのエントリのみをキャッシュメモリ120に登録する。このため、キャッシュメモリ120を有効に利用することができる。また、書き込みアドレスと読み出しアドレスとを同じアドレスとすることができるため、整合性を保つことができる。
なお、図1(b)では、バンク3(213)のアドレスC(217)とバンク4(214)のアドレスD(218)とに保持されている同一データと、これに対応するアドレスWとを、キャッシュメモリ120のエントリ登録例として示す。このアドレスWを用いた書き込みおよび読み出しについても、対象とするバンクが異なる点以外は、上述した例と同様である。
ここで、複数のバンクが設けられているメモリから、バースト長が短いデータを読み出す場合における読み出し例について簡単に説明する。例えば、同一データを1つのバンクに保持させておく場合において、連続して同一のバンクがデータの読出対象となる場合には、バンク衝突によるペナルティが発生する。そこで、上述したように、同一データを複数のバンクに保持させておき、データの読出時に複数のバンクのうちからそのデータの読出対象となる適切なバンクを選択する。このように、同一データを複数のバンクに保持させておき、衝突の少ないバンクを選択してデータを読み出すことにより、バンクの衝突を軽減することができる。
ここで、例えば、バスマスタが、キャッシュメモリを介さずにメモリからデータの読み出しを行う場合を想定する(すなわち、図1(a)に示す構成から、キャッシュメモリ120を省略した場合)。この場合には、例えば、同一データを複数のバンク(アドレスAおよびアドレスB)に保持させておき、その同一データを読み出すときには、バスマスタは、アドレスAで読み出しても、アドレスBで読み出してもよい。すなわち、アドレスAおよびアドレスBの何れかを用いて同一データを読み出す。
一方、バスマスタが、キャッシュメモリを介してメモリからデータの読み出しを行う場合(すなわち、図1(a)に示す構成)に、アドレスAおよびアドレスBの何れかを用いて同一データを読み出す場合を想定する。例えば、同一データを複数のバンク(アドレスAおよびアドレスB)に保持させておき、その同一データを読み出す場合には、バスマスタが、アドレスAまたはBの何れかを用いて読み出しを行う。この場合には、アドレスAおよびアドレスBのそれぞれがキャッシュメモリに登録されてしまうため、貴重なキャッシュ領域を複数消費してしまうことになる。そこで、本発明の第1の実施の形態では、バスマスタが、複数のバンクに保持されている同一データの何れかを読み出す場合には、1つの書き込みアドレス(例えば、アドレスX)のみを使用する。これにより、キャッシュ領域の消費を抑制することができる。
[1つのアドレスに基づく他のアドレスの算出例]
図2は、本発明の第1の実施の形態におけるメモリコントローラ130によるアドレスの算出対象となる複数のバンクにおけるデータの配置例を示す図である。なお、図2に示す複数のバンク(バンク1(211)乃至バンク4(214))は、図1(a)および図2(a)に示すものと同様である。
図2(a)には、アドレスAおよびBのデータが同一であり、アドレスCおよびDのデータが同一であり、アドレスEおよびFのデータが同一である場合におけるデータの配置例を示す。すなわち、図2(a)では、2つのバンクに同一データを書き込む場合におけるデータの配置例を示す。
図2(a)に示す例では、所定値α=(アドレスA−アドレスB)=(アドレスC−アドレスD)=(アドレスE−アドレスF)とすることにより、同一データが保持されている2つのアドレスの差分値を同一とすることができる。これにより、1つのアドレスに基づいて他のアドレスを容易に算出することができる。
図2(b)には、アドレスA乃至Cのデータが同一であり、アドレスD乃至Fのデータが同一である場合におけるデータの配置例を示す。すなわち、図2(b)では、3つのバンクに同一データを書き込む場合におけるデータの配置例を示す。
図2(b)に示す例では、所定値α=(アドレスA−アドレスB)=(アドレスB−アドレスC)、所定値α=(アドレスD−アドレスE)=(アドレスE−アドレスF)、所定値α=(アドレスA−アドレスB)=(アドレスD−アドレスE)とする。これにより、同一データが保持されている3つのアドレスの各差分値を同一とすることができ、1つのアドレスに基づいて他のアドレスを容易に算出することができる。
図2(c)には、アドレスA乃至Dのデータが同一であり、アドレスE乃至Hのデータが同一である場合におけるデータの配置例を示す。すなわち、図2(c)では、4つのバンクに同一データを書き込む場合におけるデータの配置例を示す。
図2(c)に示す例では、所定値α=(アドレスA−アドレスB)=(アドレスB−アドレスC)=(アドレスC−アドレスD)とする。同様に、所定値α=(アドレスE−アドレスF)=(アドレスF−アドレスG)=(アドレスG−アドレスH)、所定値α=(アドレスA−アドレスB)=(アドレスE−アドレスF)とする。これにより、同一データが保持されている4つのアドレスの各差分値を同一とすることができ、1つのアドレスに基づいて他のアドレスを容易に算出することができる。
このように、1つのアドレスに基づいて他のアドレスを容易に特定することができるため、各種装置に実装し易くなる。
[複数バンク対応の開放例]
図3は、本発明の第1の実施の形態における情報処理装置100の機能構成例を示すブロック図およびキャッシュメモリ120における保持内容の一例を示す図である。図3では、複数バンクへの同一データの書き込みおよび選択読み出しを解除した場合における流れを示す。なお、図3(a)に示す構成は、図1(a)に示す例と同様である。
例えば、データ処理のスピードよりもメモリ200のメモリ容量を優先する場合が想定される。この場合には、複数バンクへの同一データの書き込みを解除して、そのデータを1つのバンクにのみ保持させることができる。例えば、アドレスA(215)に書き込みを行う場合には、図1に示す例と同様に、アドレスXを用いて書き込みを行うことにより、キャッシュメモリ120のデータをそのまま利用することができる。
また、この場合には、複数バンクの選択読み出しを解除して、そのデータ(元の同一データ)を1つのバンクにのみ保持させることになる。例えば、アドレスA(215)にアクセスする場合には、図1に示す例と同様に、アドレスXを用いて読み出しを行うことにより、キャッシュメモリ120のデータをそのまま利用することができる。一方、アドレスB(216)にアクセスする場合には、これまで使用してなかったアドレスを使用することにより、キャッシュメモリ120を利用することができる。
ここで、アドレスA(215)にアクセスする場合に、図1(a)に示すアドレスXと異なるアドレスを使用する場合を想定する。例えば、アドレスXと異なるアドレスを使用したアクセスにより、アドレスAにアクセスする場合には、ライトバックキャッシュに残っているデータが別の領域に書き込まれてしまうおそれがある。また、データの読出時に、アドレスXと異なるアドレスを使用する場合には、キャッシュメモリ120にデータが残っているため、異なるデータが読めてしまうおそれがある。これらを回避するには、キャッシュメモリ120を一度書き戻したり、無効化したりしなければならず、切り替えに時間を要する。そこで、本発明の第1の実施の形態では、複数バンクへの同一データの書き込みおよび選択読み出しを解除した場合において、一方のバンクにアクセスする場合には、これまで使用していたアドレスを用いてアクセスを行う。また、他方のバンクにアクセスする場合には、これまで使用してなかったアドレスを使用する。
図3(b)には、キャッシュメモリ120における保持内容の一例を示す。図3(b)では、複数バンクへの同一データの書き込みおよび選択読み出しを解除した場合における保持内容例を示す。
[物理アドレスおよび仮想アドレスの変換例]
図4および図5は、本発明の第1の実施の形態における情報処理装置100による物理アドレスおよび仮想アドレスのアドレス変換例を模式的に示す図である。図4(a)には、仮想アドレス空間を模式的に示し、図4(b)には、物理アドレス空間を模式的に示す。また、この例では、データ群A乃至Cが2つずつ異なるバンクに配置されている場合における物理アドレス空間(図4(b)に示す)と、仮想アドレス空間(図4(a)に示す)とのアドレス変換の一例を示す。ここで、データ群A乃至Cは、アドレス変換単位311乃至316のそれぞれに保持されているものとする。また、図4に示す状態で、複数バンク対応を解消する場合におけるメモリの開放例を、図5に示す。
図5には、物理アドレス空間のうちの一部を開放した例を示す。具体的には、図5(c)に示す物理アドレス空間のうち、グレーにしていない部分(アドレス変換単位312乃至314)を開放した例を示す。なお、図5(a)に示す配列は、図4(a)に示す例と同様であり、図5(c)に示す配列は、図4(b)に示す例と同様である。
また、図5(b)には、図5(c)に示す物理アドレス空間を開放した後における物理アドレス空間を示す。この例では、仮想アドレスがそのままになるようにアドレス変換単位で開放した場合を示し、開放後の物理アドレス空間におけるアドレス変換単位312乃至314に保持されるデータ群を「データ群D」、「データ群E」、「データ群F」で示す。
図5に示すように開放した場合には、アドレス変換、キャッシュともに対応の必要がない。また、複数バンク対応していたアドレスについてもそのままアクセスすることができる。また、このように開放をすることにより、2つのバンク対応の有無に関係なく、仮想アドレス空間上で連続アドレスにすることができる。さらに、仮想アドレスで連続になるように開放することにより、アドレス変換テーブルをそのまま使用することができる。
ここで、例えば、図4(b)に示す上側の3つのアドレス変換単位311乃至313のそれぞれをアドレス変換単位で開放する場合を想定する。この場合には、アドレス変換を変えることにより、複数バンク対応時と同じアドレスにすることが可能である。すなわち、2つのバンク対応の有無に関係なく、仮想アドレス空間上で連続アドレスにすることができる。ただし、このように開放した場合には、アドレス変換を変更することになるため、仮想アドレスに対応する物理アドレスが異なることになる。このため、アドレス変換テーブルの変更が必要になる。また、物理アドレスキャッシュの場合には、キャッシュの対応も必要となる。
また、例えば、図4(b)に示すアドレス変換単位311乃至316のそれぞれを2つに分割して分割後の一方を開放する場合を想定する。この場合には、アドレス変換を工夫しても、データ群A乃至Cの何れについても複数バンク対応と同じアドレスにすることができない。このように、アドレス変換単位で連続して開放しない場合には、2つのバンク非対応時は仮想アドレス空間上で連続アドレスとはならない。
[スタック領域へのアクセス例]
図6および図7は、本発明の第1の実施の形態におけるメモリ200上のスタック領域にアクセスする場合におけるデータの流れを模式的に示す図である。
図6(a)には、アドレスX(223)がスタック領域220における有効領域221に存在する場合に、アドレスXへ書き込みを行う場合を示す。具体的には、図6(a)には、キャッシュメモリ120にデータ(エントリ121)が保持されているが、メモリ200にはそのデータがまだ書き込まれていない状態を示す。
図6(b)には、他のアクセスのアドレスZへのアクセスによりキャッシュメモリ120のライトバックが発生し、アドレスXのデータがメモリ200に書き込まれる状態を示す。この場合には、図6(b)に示すように、アドレスX(223)がスタック領域220の有効領域221に存在するとは限らず、無効領域222に存在することがある。
このように、アドレスX(223)が無効領域222に存在する場合には、アドレスX(223)にデータの書き込みを行っても利用されない。このため、アドレスX(223)が無効領域222に存在する場合には、メモリコントローラ130は、そのデータをメモリ200に書かずに、バスマスタ110に正常応答を返す。これにより、メモリアクセス時間を削減することができる。なお、ライトバックキャッシュだけではなく、バスマスタ110のライトからメモリへのライトまでの間に遅延があるものについても適用することができる。
図7では、図6(b)に示す処理(メモリコントローラ130が無効領域222へのライトをせずに正常応答をバスマスタ110に返す処理)をキャッシュ側で行う例を示す。
図7(a)には、キャッシュメモリが1段である場合(キャッシュメモリ125)の構成例を示す。この例では、キャッシュメモリ125が正常応答をバスマスタ110に返す。
図7(b)には、キャッシュメモリが2段である場合(キャッシュメモリ126および127)の構成例を示す。この例では、キャッシュメモリ126が正常応答をバスマスタ110に返す。
このように、バスマスタ110に比較的近いキャッシュメモリ(キャッシュメモリ125および126)により、無効領域222へのライトをせずに正常応答をバスマスタ110に返す処理を行う。これにより、バスマスタ110から見た無効領域222へのアクセス時間を短くすることができる。なお、図7に示す例では、キャッシュメモリが1段または2段である場合の構成例を示したが、キャッシュメモリが3段以上である場合についても適用することができる。
すなわち、情報処理装置100は、キャッシュメモリ120またはメモリコントローラ130に書き込み無効領域を設定する。そして、その書き込み無効領域のメモリアドレスへの書き込みアクセス要求がバスマスタ110から出力された場合には、その書き込みアクセス要求をキャッシュメモリ120またはメモリコントローラ130により無効とする。なお、その書き込み無効領域として、その時点でのスタックの未使用領域を指定することができる。また、その書き込み無効領域に対する読み出しアクセス要求が、バスマスタ110から出力された場合には、キャッシュメモリ120またはメモリコントローラ130がエラー応答を返す。
図8は、本発明の第1の実施の形態におけるメモリ200上のスタック領域にアクセスする場合におけるスタック領域の無効有効を判定する判定方法を模式的に示す図である。
図8(a)には、スタック領域220において、スタックポインタ224が現在の読み書き対象となる領域の最後を指し示す場合を示す。図8(a)に示す例において、スタックポインタ(A)224がスタックポインタ(B)224に変化した場合には、スタック領域の有効無効の境界がAからBへ変わる。この場合には、スタックポインタ224自体が境界を表す。
図8(b)には、スタック領域220において、スタックポインタ224が現在の読み書き対象となる領域の最初を指し示す場合を示す。図8(b)に示す例では、スタックポインタ(C)224がスタックポインタ(D)224に変化した場合において、直前のCの位置がDから見て無効領域222側にある場合には、直前のCの位置が有効無効の境界となる。
ここで、アドレスが増える方向に積み増していくスタックポインタと、アドレスが減る方向に積み減らしていくスタックポインタとがあるが、これらの何れについても、上述した判定方法を適用することができる。
[バンクに対するリフレッシュ例]
図9は、本発明の第1の実施の形態におけるメモリコントローラ130によるリフレッシュ処理の一例を模式的に示す図である。図9では、リフレッシュを必要とするメモリ200において、バンク競合が発生した場合に、アクセス対象となっていないバンクに対してリフレッシュを行う例を示す。
図9(a)には、メモリ200に備えられる複数のバンク(バンク1(211)乃至バンク4(214))と、これらの各バンクにおけるアドレスA乃至Fとを模式的に示す。
図9(b)には、1つのデータが1つのバンクに書き込まれている場合におけるバンクの読み出し例を示す。図9(b)に示す例では、図9(a)に示すバンク2(アドレスF)、バンク1(アドレスE)、バンク1(アドレスA)、バンク1(アドレスE)、バンク2(アドレスF)の順序で、各バンクに書き込まれているデータが読み出される例を示す。図9(b)に示すように、同一のバンクから連続して読み出しが行われる場合には、バンク衝突によるペナルティ時間t1およびt2が発生する。そこで、上述したように、同一データを複数のバンクに書き込むことにより、バンク衝突によるペナルティ時間の発生を低減させることができる。この例を図9(c)に示す。
図9(c)には、同一データが複数のバンクに書き込まれている場合におけるバンクの読み出し例を示す。図9(c)に示す例では、図9(a)に示すバンク1のアドレスAとバンク2のアドレスBとに同一データが書き込まれている場合を示す。なお、バンク1のアドレスE、バンク2のアドレスF、バンク3のアドレスC、バンク4のアドレスDのそれぞれには、異なるデータが書き込まれているものとする。また、図9(c)に示す例では、図9(b)に示す例と同一の順序で各データが各バンクから読み出される例を示す。
ここで、図9(c)に示す例では、バンク1のアドレスAと、バンク2のアドレスBとに同一データが書き込まれている。このため、バンク2のアドレスFおよびバンク1のアドレスEからのデータ読み出しが行われた後には、バンク1同士のバンク衝突によるペナルティ時間t1の発生を防止するため、バンク2のアドレスBからデータの読み出しが行われる。すなわち、バンク選択が行われ、バンク衝突が比較的少ないバンク2が選択されてアドレスBからデータの読み出しが行われる。この場合には、バンク2同士のバンク衝突によるペナルティ時間t3が発生するが、図9(b)に示す例と比較して(矢印241)、アクセス時間を短縮することができる。なお、データを書き込む場合についても同様に、バンク衝突の少ない順序で入れ替えることにより、全体のアクセス時間を短縮することができる。
ここで、バンク2のアドレスBからデータを読み出す時点t5では、バンク1およびバンク2については競合の可能性があるが、バンク3およびバンク4については競合の可能性がない。このため、バンク2のアドレスBからデータを読み出す時点t5の後に、バンク3に対してリフレッシュを行う(太線の枠242で示す)。また、このリフレッシュ後には、図9(b)と同様に、バンク1およびバンク2からデータの読み出しが行われる。なお、この例では、時点t5の後にバンク3に対するリフレッシュを行う例を示したが、時点t5の後には、競合の可能性がないバンク4に対してリフレッシュを行うようにしてもよい。
このように、バンク選択を行うことにより、全体のアクセス時間を短縮させることができる。また、競合の可能性がないバンクについてリフレッシュを行うことができるため、リフレッシュ単独に要する時間を短縮することができる。なお、リフレッシュについては、競合バンクを避けて行うことができるものを用いることができる。例えば、バンクがアクティブでない場合にはアクティブにして、このアクティブ後にプリチャージする処理や読み出す処理等のように、該当する領域に対してリフレッシュと同様の効果を得られる処理を行うことができる。
[バンクに対するセルフリフレッシュ例]
ここで、近年では、セルフリフレッシュを行う際における電力削減のため、部分リフレッシュ機能を備えるメモリが提案されている。例えば、LPDDR SDRAM(Low Power Double Data Rate Synchronous Dynamic Random Access Memory)が提案されている。ここで、部分リフレッシュ機能は、一部のバンクのみについてセルフリフレッシュを行い、他のバンクについてはセルフリフレッシュを行わない機能である。そこで、以下では、この部分リフレッシュ機能を備えるメモリにおけるリフレッシュの一例を示す。
図10は、本発明の第1の実施の形態におけるメモリ200によるセルフリフレッシュ処理の一例を模式的に示す図である。図10では、リフレッシュを必要とするメモリにおいて、外部の関与を必要としないセルフリフレッシュを行う例を示す。
図10(a)には、メモリ200に備えられる複数のバンク(バンク1(211)乃至バンク4(214))と、これらの各バンクにおけるアドレスA乃至Dとを模式的に示す。図10(a)では、バンク1のアドレスAと、バンク3のアドレスCとに同一データが書き込まれ、バンク2のアドレスBと、バンク4のアドレスDとに同一データが書き込まれている場合を示す。すなわち、バンク1およびバンク3と、バンク2およびバンク4とに同一データが含まれるように複数バンク対応が行われているものとする。
図10(b)には、図10(a)に示す状態で、部分リフレッシュが行われた場合を示す。具体的には、グレーでないバンク1およびバンク2について部分リフレッシュが行われたものとする。このように部分リフレッシュが行われたバンク(バンク1およびバンク2)についてはデータが引き続き保持される。一方、部分リフレッシュが行われないバンク(グレーで示すバンク3およびバンク4)についてはデータが保持されなくなる。すなわち、部分リフレッシュが行われないバンクについては、時間の経過に応じてデータに誤りが増えていくため、そのデータが保持されなくなる。ただし、部分リフレッシュが行われているバンク1およびバンク2に保持されていたデータについては引き続き保持される。このため、バンク3およびバンク4に保持されなくなったデータと同一データが、バンク1およびバンク2に保持されていることになる。
図10(c)には、図10(b)に示す部分リフレッシュ後にデータコピーが行われた場合を示す。図10(b)に示すように、バンク3およびバンク4について部分リフレッシュが行われない場合には、バンク3およびバンク4のデータが保持されなくなるが、この保持されなくなったデータと同一データがバンク1およびバンク2に保持されている。そこで、部分リフレッシュから復帰した場合には、矢印251および252に示すように、バンク1およびバンク2に保持されているデータを、バンク3およびバンク4にコピーをする。これにより、バンク3およびバンク4におけるデータを部分リフレッシュ直前の状態に戻すことができる。
このように部分リフレッシュが行われないバンクについては、このバンクから保持されなくなったデータと同一データが保持されているバンクからコピーを行うことにより、複数バンク対応の際にも部分リフレッシュを行うことができる。これにより、複数バンク対応にしていない場合と同様に、セルフリフレッシュを行う際における消費電力を削減することができる。
[情報処理装置の動作例]
図11は、本発明の第1の実施の形態における情報処理装置100によるデータ読出処理の処理手順の一例を示すフローチャートである。図11に示す例では、物理アドレスおよび仮想アドレスの変換を行わない場合におけるデータ読出処理を示す。
最初に、バスマスタ110が、読み出しアドレスを発行して(ステップS901)、キャッシュヒットするか否かが判断される(ステップS902)。すなわち、発行された読み出しアドレスに対応するデータがキャッシュメモリ120に存在するか否かが判断される。なお、ステップS901は、特許請求の範囲に記載の発行手順の一例である。
キャッシュヒットする場合には(ステップS902)、発行された読み出しアドレスに対応するデータがキャッシュメモリ120から読み出され、この読み出されたデータがバスマスタ110に送られ(ステップS908)、データ読出処理の動作を終了する。一方、キャッシュヒットしない場合(すなわち、キャッシュミスの場合)には(ステップS902)、メモリコントローラ130が、発行された読み出しアドレスが、複数バンク対応アドレスであるか否かを判断する(ステップS903)。
発行された読み出しアドレスが複数バンク対応アドレスでない場合には(ステップS903)、メモリコントローラ130が、その発行された読み出しアドレスに対応するデータをメモリ200から読み出し(ステップS904)、ステップS906に進む。一方、発行された読み出しアドレスが複数バンク対応アドレスである場合には(ステップS903)、メモリコントローラ130が、その発行された読み出しアドレスに対応する複数のアドレスを特定する。そして、メモリコントローラ130が、その特定された複数のアドレスのうち、アクセス時間が少ない1つのアドレスを選択し、この選択されたアドレスに対応するデータをメモリ200から読み出す(ステップS905)。なお、ステップS905は、特許請求の範囲に記載のアクセス手順の一例である。
続いて、キャッシュメモリ120におけるエントリが空いているか否かが判断され(ステップS906)、キャッシュメモリ120におけるエントリが空いていない場合には、キャッシュエントリ無効化処理が行われ(ステップS910)、ステップS907に進む。このキャッシュエントリ無効化処理については、図12を参照して詳細に説明する。
また、キャッシュメモリ120におけるエントリが空いている場合には(ステップS906)、その空いているエントリに、発行された読み出しアドレスに対応するデータとして、メモリ200から読み出されたデータが格納される(ステップS907)。続いて、発行された読み出しアドレスに対応するデータがキャッシュメモリ120から読み出され、この読み出されたデータがバスマスタ110に送られ(ステップS908)、データ読出処理の動作を終了する。
図12は、本発明の第1の実施の形態における情報処理装置100によるデータ読出処理の処理手順のうちのキャッシュエントリ無効化処理(図11に示すステップS910の処理手順)の一例を示すフローチャートである。図12では、空ける対象となるエントリに格納されているデータが更新されていれば、ライトバックを行った後に無効化し、そのデータが更新されていなければ、そのまま無効化を行う例を示す。
最初に、キャッシュメモリ120において、空ける対象となるエントリが選択される(ステップS911)。続いて、その選択されたエントリに格納されているデータが更新されているか否かが判断され(ステップS912)、そのデータが更新されていない場合には、その選択されたエントリが無効化される(ステップS916)。なお、データが更新されている場合は、例えば、その選択されたエントリに書き込みがあった場合である。
一方、その選択されたエントリに格納されているデータが更新されている場合には(ステップS912)、バスマスタ110から発行された読み出しアドレスが、複数バンク対応アドレスであるか否かが判断される(ステップS913)。
その発行された読み出しアドレスが複数バンク対応アドレスでない場合には(ステップS913)、メモリコントローラ130が、その発行された読み出しアドレスに、ステップS904で読み出されたデータを書き込む(ステップS914)。そして、ステップS916に進む。一方、発行された読み出しアドレスが複数バンク対応アドレスである場合には(ステップS913)、メモリコントローラ130が、その発行された読み出しアドレスに対応する複数のアドレスを特定する。そして、メモリコントローラ130が、その特定された複数のアドレスに、ステップS905で読み出されたデータを書き込む(ステップS915)。
図13は、本発明の第1の実施の形態における情報処理装置100によるデータ書込処理の処理手順の一例を示すフローチャートである。図13に示す例では、物理アドレスおよび仮想アドレスの変換を行わない場合におけるデータ書込処理を示す。
最初に、バスマスタ110が、書き込みアドレスおよび書込対象となるデータを発行して(ステップS921)、キャッシュヒットするか否かが判断される(ステップS922)。すなわち、発行された書き込みアドレスに対応するデータがキャッシュメモリ120に存在するか否かが判断される。
キャッシュヒットする場合には(ステップS922)、発行された書き込みアドレスに対応するデータとして、その発行されたデータがキャッシュメモリ120に格納され(ステップS924)、データ書込処理の動作を終了する。一方、キャッシュヒットしない場合(すなわち、キャッシュミスの場合)には(ステップS922)、キャッシュメモリ120におけるエントリが空いているか否かが判断される(ステップS923)。そして、キャッシュメモリ120におけるエントリが空いていない場合には(ステップS923)、キャッシュエントリ無効化処理が行われ(ステップS910)、ステップS924に進む。このキャッシュエントリ無効化処理については、図12で示したものと略同様であるため、ここでの説明を省略する。
また、キャッシュメモリ120におけるエントリが空いている場合には(ステップS923)、その空いているエントリに、発行された書き込みアドレスに対応するデータとして、その発行されたデータが格納される(ステップS924)。
図14および図15は、本発明の第1の実施の形態における情報処理装置100によるデータ読出処理の処理手順の一例を示すフローチャートである。図14に示す例では、物理アドレスおよび仮想アドレスの変換を行い、キャッシュメモリが物理アドレスで動作する場合におけるデータ読出処理を示す。また、図15に示す例では、物理アドレスおよび仮想アドレスの変換を行い、キャッシュメモリが仮想アドレスで動作する場合におけるデータ読出処理を示す。なお、図14および図15に示す処理手順は、図11の変形例であり、物理アドレスおよび仮想アドレスの変換を行う点が異なる。また、この点以外については、図11と略同一であるため、図11と共通する部分については、同一の符号を付してこれらの説明を省略する。
図14において、最初に、バスマスタ110が、読み出しアドレス(例えば、アドレスY)を発行する(ステップS901)。続いて、その読み出しアドレスをMMUがアドレス変換して変換後のアドレス(例えば、アドレスX)を発行する(ステップS925)。そして、この処理手順では、この変換後のアドレス(例えば、アドレスX)を用いて、データ読出処理の動作が行われる。
図15において、最初に、バスマスタ110が、読み出しアドレス(例えば、アドレスY)を発行して(ステップS901)、キャッシュヒットするか否かが判断される(ステップS902)。そして、キャッシュヒットしない場合(すなわち、キャッシュミスの場合)には(ステップS902)、その読み出しアドレスをMMUがアドレス変換して変換後のアドレス(例えば、アドレスX)を発行する(ステップS926)。そして、この処理手順では、この変換後のアドレス(例えば、アドレスX)を用いて、データ読出処理の動作が行われる。
また、キャッシュメモリ120におけるエントリが空いていない場合には(ステップS906)、キャッシュエントリ無効化処理が行われ(ステップS917)、ステップS907に進む。このキャッシュエントリ無効化処理については、図16を参照して詳細に説明する。
図16は、本発明の第1の実施の形態における情報処理装置100によるデータ読出処理の処理手順のうちのキャッシュエントリ無効化処理(図15に示すステップS917の処理手順)の一例を示すフローチャートである。なお、図16に示す処理手順は、図12の変形例であり、物理アドレスおよび仮想アドレスの変換を行う点が異なる。また、この点以外については、図12と略同一であるため、図12と共通する部分については、同一の符号を付してこれらの説明を省略する。
キャッシュメモリ120において、空ける対象として選択されたエントリに格納されているデータが更新されている場合には(ステップS912)、MMUがアドレス変換して変換後のアドレス(例えば、アドレスX)を発行する(ステップS918)。そして、この変換後のアドレス(例えば、アドレスX)を用いて、データの書き込み(ステップS914またはS915)が行われる。
図17は、本発明の第1の実施の形態における情報処理装置100によるデータ書込処理の処理手順の一例を示すフローチャートである。図17に示す例では、物理アドレスおよび仮想アドレスの変換を行い、キャッシュメモリが物理アドレスで動作する場合におけるデータ書込処理を示す。なお、図17に示す処理手順は、図13の変形例であり、物理アドレスおよび仮想アドレスの変換を行う点が異なる。また、この点以外については、図13と略同一であるため、図13と共通する部分については、同一の符号を付してこれらの説明を省略する。
最初に、バスマスタ110が、書き込みアドレス(例えば、アドレスY)および書込対象となるデータを発行して(ステップS921)、その書き込みアドレスをMMUがアドレス変換して変換後のアドレス(例えば、アドレスX)を発行する(ステップS927)。そして、この処理手順では、この変換後のアドレス(例えば、アドレスX)を用いて、データ書込処理の動作が行われる。
なお、物理アドレスおよび仮想アドレスの変換を行い、キャッシュメモリが仮想アドレスで動作する場合におけるデータ書込処理については、図13に示すキャッシュエントリ無効化処理(ステップS910)が異なる。具体的には、図13に示すキャッシュエントリ無効化処理(ステップS910)の代わりに、図16に示すキャッシュエントリ無効化処理(ステップS917)を行う。なお、この点以外については、図13と略同一であるため、図示および説明を省略する。
図18は、本発明の第1の実施の形態における情報処理装置100による複数バンク対応解除処理の処理手順の一例を示すフローチャートである。この処理手順では、複数バンク対応の状態で、特定のアドレス空間(例えば、図4(a)に示す切り替え領域300)にアクセスがされた場合にその状態を解除する例を示す。
最初に、アクセス発行がされ(ステップS931)、特定範囲のアドレスにアクセスがあるか否かが判断される(ステップS932)。特定範囲のアドレスにアクセスがない場合には(ステップS932)、設定レジスタにおける設定内容が、解除設定とされているか否かが判断され(ステップS933)、その設定内容が解除設定とされていない場合には、複数バンク対応解除処理の動作を終了する。なお、特定範囲のアドレス空間は、メモリコントローラ130に伝えるため、キャッシュ無効領域等にすることが好ましい。
また、特定範囲のアドレスにアクセスがある場合(ステップS932)、または、設定レジスタにおける設定内容が解除設定とされている場合には(ステップS933)、メモリコントローラ130が、複数バンク対応を解除する(ステップS934)。
図19は、本発明の第1の実施の形態における情報処理装置100による複数バンク設定処理の処理手順の一例を示すフローチャートである。この処理手順では、メモリ200のメモリ容量に応じて、複数バンクの選択読み出しを行うか否かを設定する例を示す。
最初に、メモリ200のメモリ容量が取得され(ステップS935)、複数バンクに同一データを格納することができるか否かが判断される(ステップS936)。複数バンクに同一データを格納することができない場合には(ステップS936)、複数バンク設定処理の動作を終了する。
一方、複数バンクに同一データを格納することができる場合には(ステップS936)、取得されたメモリ容量に基づいて、同一データを格納することができるバンクの数が算出される(ステップS937)。続いて、同一データを格納するバンクの数と、複数バンク対応を行うアドレスとが、メモリコントローラ130に設定される(ステップS938)。
図20は、本発明の第1の実施の形態における情報処理装置100による複数バンク読出処理の処理手順の一例を示すフローチャートである。この処理手順では、バースト長の大きさに応じて、複数バンクのデータ読出方法を変更する例を示す。
最初に、バースト長が取得され(ステップS941)、所定バースト長よりも短いデータ読み出しであるか否かが判断される(ステップS942)。所定バースト長よりも短いデータ読み出しである場合には(ステップS942)、読出対象となる複数バンクのうち、アクセス時間が最も短いバンクが選択され、この選択されたバンクからデータ読み出しが行われる(ステップS943)。一方、所定バースト長よりも短いデータ読み出しでない場合には(ステップS942)、通常の読み出しが行われる(ステップS944)。この通常の読み出しは、例えば、バンク競合を考慮しない読み出しである。
図21は、本発明の第1の実施の形態における情報処理装置100による複数バンク読出処理の処理手順の一例を示すフローチャートである。この処理手順では、読み出しアクセスがあったバスマスタに応じて、複数バンクのデータ読出方法を変更する例を示す。
最初に、バスマスタ情報が取得され(ステップS945)、特定のバスマスタであるか否かが判断される(ステップS946)。特定のバスマスタは、例えば、CPUや画像処理時におけるDSPとすることができる。特定のバスマスタである場合には(ステップS946)、読出対象となる複数バンクのうち、アクセス時間が最も短いバンクが選択され、この選択されたバンクからデータ読み出しが行われる(ステップS947)。一方、所定バースト長よりも短いデータ読み出しでない場合には(ステップS946)、通常の読み出しが行われる(ステップS948)。
図22は、本発明の第1の実施の形態における情報処理装置100による複数バンク読出処理の処理手順の一例を示すフローチャートである。この処理手順では、読み出し対象となるアドレス(アクセスするアドレス)が、読み出しのみの領域に対応するか否かに応じて、複数バンクのデータ読出方法を変更する例を示す。
最初に、アクセス発行がされ(ステップS951)、読み出し対象となるアドレスが、読み出しのみの領域に対応するか否かが判断される(ステップS952)。読み出し対象となるアドレスが、読み出しのみの領域に対応する場合には(ステップS952)、読出対象となる複数バンクのうち、アクセス時間が最も短いバンクが選択され、この選択されたバンクからデータ読み出しが行われる(ステップS953)。一方、読み出し対象となるアドレスが、読み出しのみの領域に対応しない場合には(ステップS952)、通常の読み出しが行われる(ステップS954)。
このように、ライトが少ない領域や所定のバスマスタのみに適用して、リードが多くなるようにすることにより、さらにアクセス時間の短縮を図ることができる。
図23は、本発明の第1の実施の形態における情報処理装置100によるライトアクセス処理の処理手順の一例を示すフローチャートである。この処理手順では、メモリへのアクセスが無効領域へのライトアクセスである場合には、そのアクセスを無効にする例を示す。
最初に、バスマスタ110からメモリ200へのアクセスが発生され(ステップS955)、そのアクセスが無効領域と設定されている領域へのライトアクセスであるか否かが判断される(ステップS956)。そのアクセスが無効領域と設定されている領域へのライトアクセスである場合には(ステップS956)、ライトアクセスを無効とし、バスマスタ110に正常応答が出力される(ステップS957)。このように、ライトアクセスを無効とし、バスマスタ110に正常応答を返すことにより、無駄なライトアクセスを削減することができる。
一方、そのアクセスが無効領域と設定されている領域へのライトアクセスでない場合には(ステップS956)、通常のアクセスが行われる(ステップS958)。
図24は、本発明の第1の実施の形態における情報処理装置100によるアクセス処理の処理手順の一例を示すフローチャートである。この処理手順では、メモリへのアクセスが無効領域へのライトアクセスである場合にはそのアクセスを無効にし、リードアクセスである場合にはエラーとする例を示す。なお、図24に示す処理手順は、図23の変形例であるため、図23と共通する部分については、同一の符号を付してこれらの説明を省略する。
バスマスタ110からメモリ200へのアクセスが、無効領域と設定されている領域へのアクセスである場合には(ステップS950)、そのアクセスがライトアクセスであるか否かが判断される(ステップS959)。そのアクセスがライトアクセスである場合には(ステップS959)、ステップS957に進む。一方、そのアクセスがライトアクセスでない場合(すなわち、リードアクセスである場合)には(ステップS959)、バスマスタ110にエラー応答が出力される(ステップS960)。このようにすることにより、無駄なライトアクセスを削減することができ、不正な読み出しを防ぐことができる。
また、例えば、無効となったスタック領域への書き込みを無効とするため、メモリへのライト自体を減らすことができ、バンク競合の可能性も削減することができる。このため、複数バンクへの書き込みを減らせ、さらにアクセス時間を削減することができる。
図25は、本発明の第1の実施の形態における情報処理装置100によるリフレッシュ処理の処理手順の一例を示すフローチャートである。この処理手順では、リフレッシュを必要とするメモリのうち、アクセス中であるメモリ以外の他のメモリに対してリフレッシュを行う例を示す。
最初に、複数のバンクのうち、バンク競合が発生したか否かが判断される(ステップS961)。バンク競合が発生した場合には(ステップS962)、他にアクセスできるバンクがあるか否かが判断され(ステップS962)、他にアクセスできるバンクがない場合には、リフレッシュ処理の動作を終了する。
一方、他にアクセスできるバンクがある場合には(ステップS962)、そのバンクのリフレッシュカウンタに1を加え(ステップS963)、そのバンクのリフレッシュを行う(ステップS964)。ここで、リフレッシュカウンタは、バンク毎に設けられているカウンタであり、リフレッシュが行われる毎に「1」が加算される。
このように、バンク競合が発生している場合には、目的とするデータへのアクセスに時間を要するが、他のバンクはアクセスできる状態であるため、他のバンクのリフレッシュを行うことができる。なお、リフレッシュを行う場合には、例えば、通常のダイナミックランダムアクセスメモリのリフレッシュコマンドを行うことができる。また、読み出し等を行うことにより、リフレッシュを行うようにしてもよい。
また、図25に示すように、リフレッシュを行うことができるが、リフレッシュが十分できない場合も想定される。そこで、不足するリフレッシュを定期的または不定期に補うことが考えられる。この例を図26に示す。
図26は、本発明の第1の実施の形態における情報処理装置100によるリフレッシュ処理の処理手順の一例を示すフローチャートである。この処理手順では、不足するリフレッシュを所定タイミングで補う例を示す。
最初に、監視タイミングに達したか否かが判断され(ステップS965)、監視タイミングに達していない場合には、監視タイミングに達するまでループする。一方、監視タイミングに達した場合には(ステップS965)、複数のバンクのうち、各バンクについて所定回数以上のリフレッシュが行われたか否かが判断される(ステップS966)。各バンクについて所定回数以上のリフレッシュが行われたか否かは、例えば、各バンクのリフレッシュカウンタに基づいて判断される。そして、各バンクについて所定回数以上のリフレッシュが行われている場合には(ステップS966)、リフレッシュ処理の動作を終了する。
一方、各バンクについて所定回数以上のリフレッシュが行われていない場合には(ステップS966)、所定回数以上のリフレッシュが行われていない1つのバンクを対象バンクとして、この対象バンクのリフレッシュカウンタに1を加える(ステップS967)。続いて、その対象バンクについてリフレッシュを行い(ステップS968)、対象バンクのリフレッシュカウンタが所定値(所定回数)以上となったか否かが判断される(ステップS969)。対象バンクのリフレッシュカウンタが所定値以上となっていない場合には(ステップS969)、ステップS967に戻る。
一方、対象バンクのリフレッシュカウンタが所定値以上となった場合には(ステップS969)、他のバンクのうち、リフレッシュカウンタが所定値以上となっていないバンクが存在するか否かが判断される(ステップS970)。そして、リフレッシュカウンタが所定値以上となっていないバンクが存在する場合には(ステップS970)、そのバンクを対象バンクとし(ステップS971)、ステップS967に戻る。
このように、リフレッシュが不足しているバンクについては、一定のタイミングで、リフレッシュを行うことができる。すなわち、基本的には、バンク競合等の処理中にリフレッシュを行うが、リフレッシュが足りない部分だけ、リフレッシュのための時間を割くことができる。このため、帯域を有効に利用することができる。
図27は、本発明の第1の実施の形態における情報処理装置100による複数バンク対応切替処理の処理手順の一例を示すフローチャートである。この処理手順では、複数バンクの対応時から非対応時に切り替える場合における切替例を示す。また、図27(a)には、複数バンク対応の切替の前後でアクセスアドレスを同一とする場合における処理手順を示し、図27(b)には、複数バンク対応の切替の前後でアクセスアドレスが異なる場合における処理手順を示す。
複数バンク対応の切替の前後でアクセスアドレスを同一とする場合は、最初に、開放領域についてのみMMUの設定変更が行われ(ステップS981)、メモリコントローラ130における複数バンク対応を解消するための設定が行われる(ステップS982)。
また、複数バンク対応の切替の前後でアクセスアドレスが異なる場合は、最初に、キャッシュメモリ120に複数バンク対応のアドレスが存在するか否かが判断される(ステップS983)。そして、キャッシュメモリ120に複数バンク対応のアドレスが存在しない場合には(ステップS983)、ステップS985に進む。
一方、キャッシュメモリ120に複数バンク対応のアドレスが存在する場合には(ステップS983)、キャッシュメモリ120から複数バンク対応のアドレスのデータを消去させる必要がある。このため、複数バンク領域のデータについてライトバックまたは無効化が行われる(ステップS984)。
続いて、MMUの設定変更が行われ(ステップS985)、メモリコントローラ130における複数バンク対応を解消するための設定が行われる(ステップS986)。
このように、複数バンク対応の切替の前後でアクセスアドレスを同一とする場合は、複数バンク対応の切替の前後でアクセスアドレスが異なる場合における切替処理の一部と略同じとすることができる。
ただし、図27(b)に示す例では、複数バンク対応していたデータがキャッシュメモリ120にまったく残らないのに対し、図27(a)に示す例では、キャッシュメモリ120にデータが残っている。このため、複数バンク対応切替処理の動作の後では、複数バンク対応していたデータにアクセスした場合に、図27(b)に示す例では、キャッシュメモリ120にヒットする可能性が全くない。これに対して、図27(a)に示す例では、以前と同じ程度の確率でヒットする可能性がある。
図28は、本発明の第1の実施の形態における情報処理装置100による複数バンク対応切替処理の処理手順の一例を示すフローチャートである。この処理手順では、複数バンクの非対応時から対応時に切り替える場合における切替例を示す。また、図28(a)には、複数バンク対応の切替の前後でアクセスアドレスを同一とする場合における処理手順を示し、図28(b)には、複数バンク対応の切替の前後でアクセスアドレスが異なる場合における処理手順を示す。
複数バンク対応の切替の前後でアクセスアドレスを同一とする場合は、最初に、複数バンクで新たに使用する領域のデータがキャッシュメモリ120に存在するか否かが判断される(ステップS987)。そして、複数バンクで新たに使用する領域のデータがキャッシュメモリ120に存在しない場合には(ステップS987)、ステップS989に進む。
一方、複数バンクで新たに使用する領域のデータがキャッシュメモリ120に存在する場合には(ステップS987)、複数バンクにする領域のデータについてライトバックまたは無効化が行われる(ステップS988)。
続いて、新たに複数バンク対応により使用される領域について、MMUの設定変更が行われ(ステップS989)、メモリコントローラ130における複数バンク対応の設定が行われる(ステップS990)。
また、複数バンク対応の切替の前後でアクセスアドレスが異なる場合は、図28(a)に示すステップS987およびS989の代わりに、ステップS991およびS992を行う点が異なる以外は、図28(a)と同様の処理手順を行う。すなわち、図28(a)では、新たに複数バンク対応により使用される領域のみが対象となるのに対し、図28(b)では、複数バンク対応にするアドレスの全てが対象となる。このように、複数バンク対応の切替の前後でアクセスアドレスを同一とすることにより、対象領域を少なくすることができる。
図29は、本発明の第1の実施の形態における情報処理装置100による複数バンク対応切替処理の処理手順の一例を示すフローチャートである。この処理手順では、複数バンク対応で使用する領域のうちの一部(2つのバンクに同一データを保持する場合にはその一方のバンク)を非対応時に同じバスマスタが使用しない場合における複数バンクの対応時または非対応時への切替例を示す。また、図29(a)には、複数バンク対応の切替の前後でアクセスアドレスを同一とする場合における非対応時への切替処理手順を示す。また、図29(b)には、複数バンク対応の切替の前後でアクセスアドレスを同一とする場合における複数バンク対応時への切替処理手順を示す。
図29に示すように、複数バンク対応で使用する領域のうちの一部を非対応時に同じバスマスタが使用しない場合には、メモリコントローラ130への複数バンク対応の設定または解消のみが行われる(ステップS992、S993)。
例えば、複数バンクの対応時と非対応時でアクセスするアドレスを同じにして、複数バンク対応で使用する領域を非対応時には使用しない場合(例えば、図4(b)に示すデータ群D乃至Fの領域を仮想アドレス空間に配置しない場合)を想定する。この場合には、キャッシュメモリやMMUにデータ群D乃至Fのアドレスの情報が含まれないため、メモリコントローラへの設定または解消だけが必要となる。このため、設定変更による処理時間の増加を最小限にすることができ、処理時間に制約のあるリアルタイム処理のバスマスタ等にも適用可能となる。
以上で示したように、複数バンク対応のうちの一部を開放する場合に、複数バンク対応時と同じアドレスで同じデータにアクセスすることができる。また、キャッシュメモリの書き戻し等が必要なく、MMUも開放領域の設定のみとすることができるため、簡単に切り替えることが可能である。
また、複数バンク対応にする場合には、新たに複数バンク対応で使用する領域のキャッシュの書き戻しと無効化を行うことにより、切替が可能である。
なお、複数バンク対応の領域のうち、開放されたり新たに使用したりする領域を、他のバスマスタで使用する場合には、キャッシュメモリやMMUに影響はないため、単に複数バンク対応の設定のみで切り替えが可能である。これにより、さらに容易に切替を行うことができる。
<2.変形例>
本発明の第1の実施の形態では、メモリコントローラをメモリの外部に設ける例を示した。ただし、メモリコントローラについては、メモリに内蔵するようにしてもよい。また、本発明の第1の実施の形態では、複数のバンクを備える1つのメモリを情報処理装置に設ける例を示した。ただし、複数のバンクについては、複数のメモリデバイスにより構成するようにしてもよい。そこで、以下では、本発明の第1の実施の形態の変形例を示す。なお、この変形例における情報処理装置の機能構成については、図1に示す例と略同様である。このため、本発明の第1の実施の形態と共通する部分(または対応する部分)については、同一の符号を付して、これらの説明の一部を省略する。
[情報処理装置の構成例]
図30は、本発明の第1の実施の形態の変形例における情報処理装置600の機能構成例を示すブロック図である。図30では、メモリコントローラ130をメモリデバイス610に内蔵する例を示す。なお、メモリコントローラ130をメモリデバイス610に内蔵する点以外は、図1に示す例と同様であるため、ここでの説明を省略する。また、メモリデバイス610は、例えば、SRAM(Static Random Access Memory)により実現される。また、例えば、DDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)により実現される。
[情報処理装置の構成例]
図31は、本発明の第1の実施の形態の変形例における情報処理装置620の機能構成例を示すブロック図である。図31では、複数のメモリデバイス(メモリデバイス1(630)およびメモリデバイス2(640))に複数のバンクを分割して設けた例である。すなわち、本発明の第1の実施の形態におけるメモリ200に設けられている4つのバンク(バンク1(211)乃至バンク4(214))を分割して、メモリデバイス1(630)およびメモリデバイス2(640)のそれぞれに設ける。そして、同一データを複数のバンクに保持させる場合に、メモリデバイス1(630)およびメモリデバイス2(640)のそれぞれに保持させるようにする。なお、これらの点以外は、図1に示す例と同様であるため、ここでの説明を省略する。
<3.適用例>
本発明の第1の実施の形態では、情報処理装置を例にして説明した。以下では、本発明の第1の実施の形態を適用した各種装置の一例について説明する。ここでは、デジタルスチルカメラやデジタルビデオカメラ(例えば、カメラ一体型レコーダ)等の撮像装置を例にして説明する。
[撮像装置の構成例]
図32は、本発明の第1の実施の形態の適用例における撮像装置700の内部構成例を示すブロック図である。撮像装置700は、バス701と、集光部702と、撮像素子703と、デジタル変換部704と、信号処理部705と、リサイズ部706と、符号化部707と、記憶装置708とを備える。また、撮像装置700は、顔検出部720と、メモリコントローラ730と、不揮発メモリ740と、メモリ750と、キャッシュメモリ760と、演算部770と、操作受付部780とを備える。なお、撮像装置700を構成する各部の間で行われるやりとりは、バス701を介して行われる。また、撮像装置700は、例えば、被写体を撮像して複数の画像データ(撮像画像)を生成し、これらの複数の画像データについて各種画像処理を行うことが可能なデジタルスチルカメラにより実現することができる。
集光部702は、被写体からの光を集光する複数のレンズ(ズームレンズ、フォーカスレンズ等)から構成され、これらのレンズおよびアイリスを介して入射された被写体からの光が撮像素子703に供給される。また、集光部702を介して入射された被写体の光学像(被写体像)が撮像素子703の撮像面に結像され、この状態で撮像素子703が撮像処理を行うことにより画像信号(電気信号(アナログ信号))が生成される。そして、この画像信号がデジタル変換部704に供給される。なお、撮像素子703として、例えば、CCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサ等を用いることができる。
デジタル変換部704は、撮像素子703から供給された画像信号(アナログ信号)について、増幅やノイズ除去等のアナログ信号処理、A/D(Analog/Digital)変換処理等を行うことにより画像信号(デジタル信号)を生成するものである。そして、デジタル変換部704は、生成された画像信号(デジタル信号)を画像データとしてメモリコントローラ730を介してメモリ750に書き込む。
信号処理部705は、メモリ750に書き込まれた画像データ(デジタル信号)を読み出し、この読み出された画像データについて各種のデジタル信号処理を施すものである。そして、信号処理部705は、そのデジタル信号処理が施された画像データをメモリコントローラ730を介してメモリ750に書き込む。
顔検出部720は、メモリ750に書き込まれた画像データ(デジタル信号)を読み出し、この読み出された画像データを解析することによりその撮像画像に含まれる人物の顔を検出するものである。そして、顔検出部720は、その検出結果をメモリコントローラ730を介してメモリ750に書き込む。この顔の検出結果として、顔検出部720は、例えば、顔の検出の有無、撮像画像における顔の位置およびサイズを含む顔情報をメモリ750に書き込む。なお、画像に含まれる顔の検出方法として、例えば、顔の輝度分布情報が記録されているテンプレートと検出対象画像とのマッチングによる顔検出方法(例えば、特開2004−133637参照。)を用いることができる。また、検出対象画像に含まれる肌色の部分や人間の顔の特徴量に基づいた顔検出方法を用いることができる。
リサイズ部706は、メモリ750に書き込まれた画像データ(デジタル信号処理が施された画像データ)を読み出し、この読み出された画像データについてリサイズ(例えば、記憶装置708への記録に適した解像度変換)を行うものである。そして、リサイズ部706は、そのリサイズされた画像データをメモリコントローラ730を介してメモリ750に書き込む。
符号化部707は、メモリ750に書き込まれた画像データ(リサイズされた画像データ)を読み出し、この読み出された画像データについて符号化を行うものである。そして、符号化部707は、その符号化された画像データをメモリコントローラ730を介してメモリ750に書き込む。
このように生成された画像データ(符号化された画像データ)が、メモリ750から読み出され、この読み出された画像データが画像ファイルとして記憶装置708に記録される。記憶装置708として、例えば、テープ(例えば、磁気テープ)、光ディスク(例えば、記録可能なDVD(Digital Versatile Disc))を用いることができる。また、記憶装置708として、例えば、磁気ディスク(例えば、ハードディスク)、半導体メモリ(例えば、メモリカード)、光磁気ディスク(例えば、MD(MiniDisc))を用いるようにしてもよい。
なお、これらの制御を行うための制御プログラムは、不揮発メモリ740からメモリ750に転送される。また、演算部770は、キャッシュメモリ760およびメモリコントローラ730を介してメモリ750にアクセスし、メモリ750に転送されたその制御プログラムを読み出す。そして、演算部770は、その読み出された制御プログラムに基づいて、撮像装置700の各部を制御する。
操作受付部780は、ユーザにより操作された操作入力を受け付ける操作部であり、この受け付けられた操作入力の内容をデジタルデータに変換する。そして、この変換後のデジタルデータがメモリコントローラ730を介してメモリ750に書き込まれる。このようにメモリ750に書き込まれたデータを演算部770が読み出し、演算部770がユーザの指示に基づいた処理を実行する。
[バスマスタの処理例]
図33は、本発明の第1の実施の形態の適用例におけるバスマスタにより行われる処理の一例を示す図である。図33では、書き込みトランザクションよりも読み出しトランザクションの方が多いバスマスタによる処理の一例を示す。このようなバスマスタとして、例えば、プロセッサ等のようにプログラムを読み出して動作するバスマスタ(例えば、演算部770)や、画像の中から特定のパターンを探索するバスマスタ(例えば、信号処理部705や顔検出部720)等がある。この特定パターンの探索は、例えば、動きベクトル検出のブロックマッチング処理、顔検出のパターンマッチング処理、テキストデータのフレーズマッチング処理に対応する。また、これらのバスマスタは、バースト長が短いことが多く、また、規則的でないアクセスになるため、メモリ750にとって、アクセス効率を上げ難いことが多い。しかしながら、このように、読み出しが多く、バースト長が短いバスマスタが、本発明の第1の実施の形態における適用対象としては好ましい。そこで、図33では、具体的な処理例を示す。
図33(a)には、バスマスタにより行われる画像データの書き込み処理の流れを模式的に示す。図33(a)に示すように、メモリ750に画像データを書き込む場合には、例えば、画像データに対応する矩形800の左上隅の画素801から右下隅の画素802まで、ラスタ順に書き込みが行われる。この矩形800において、書き込み対象画素803およびその進行方向804を示す。
図33(b)には、バスマスタにより行われる画像データの読み出し処理の流れを模式的に示す。メモリ750に保持されている画像データを読み出す処理として、例えば、画像データの中から特定のパターンを探索する顔検出処理(顔検出部720による処理)や各種画像処理(信号処理部705による処理)等がある。例えば、顔検出処理を行う場合には、画像データに対応する矩形810において、その左上隅から右下隅まで一定サイズの取出領域811を移動させ、この取出領域811に含まれる画像データが順次読み出される。この矩形810において、取出領域811の進行方向812を示す。
[バンクの調整例]
図34は、本発明の第1の実施の形態の適用例におけるメモリ750における複数バンク対応を調整する場合における調整方法を模式的に示す図である。
図34(a)には、撮像装置700の起動時におけるバンクの配置構成例を示す。例えば、撮像装置700の起動時には、演算部770による処理に用いられる同一プログラムおよび同一データを4バンクに書き込む。
図34(b)には、撮像装置700の起動終了後における定常状態のバンクの配置例を示す。矢印820に示すように、撮像装置700の起動処理が終了して定常状態となった場合には、現在の動作モードに応じて各バンクを調整する。ここで、定常状態1は、例えば、撮像装置700において静止画撮影モードが設定されている状態であり、定常状態2は、撮像装置700において動画撮影モードが設定されている状態である。また、定常状態1および定常状態2の切替(動作モード切替830)については、ユーザ操作により行うことができる。
例えば、定常状態1は、撮像素子703による撮像動作により生成された画像データ(撮像画像)をメモリ750に順次保持しておき、その撮像動作の終了後に各種画像処理を行う状態である。このため、帯域には余裕があるが、画像処理にメモリ750を多く必要とする状態となる。
また、例えば、定常状態2は、定められた時間内に画像処理を順次行うため、帯域は厳しいが、メモリ750は画像処理にあまり使用しない状態である。このように、帯域を必要とする定常状態2では、演算部770による処理に用いられる同一のプログラムやデータを2バンクに配置して帯域を削減する。
これに対して、メモリ容量を必要とする定常状態1では、演算部770による処理に用いられる同一プログラムや同一データを1バンクに配置してメモリ容量の削減を図り、帯域とメモリ容量の制約を緩和することができる。
なお、定常状態1におけるバスマスタは、例えば、静止画処理時におけるデジタル変換部704、信号処理部705、リサイズ部706、符号化部707、顔検出部720が対応する。
また、定常状態2におけるバスマスタは、例えば、動画処理時におけるデジタル変換部704、信号処理部705、リサイズ部706、符号化部707、顔検出部720が対応する。
なお、この適用例では、撮像装置を例にして説明したが、複数のバンクを備えるメモリを備える他の情報処理装置等に本発明の実施の形態を適用することができる。
以上で示したように、本発明の実施の形態によれば、メモリにおける複数のバンクに同一データを同時にライトアクセスするとともに(複数バンクアクセス)、リードアクセス時にはアクセス時間の短いバンクを選択して読み出すことができる。これにより、アクセス時間の短縮を図ることができる。
また、複数のバンクに同一データを書き込む場合には、例えば、バスマスタ側から1つのアクセスアドレスを用いたアクセスにすることにより、キャッシュメモリへの重複登録を防ぐことができる。なお、仮想アドレスおよび論理アドレスを変換するための変換テーブルを一時的に保持するTLB(Translation Look-aside Buffer)を用いる場合についても同様に、TLBへの重複登録を防ぐことができる。また、複数バンクを選択して読み出しを行う場合には、バスマスタ側からのアクセスアドレスを書き込み時と同じ1つのアドレスにすることにより、キャッシュメモリやTLBへの重複登録を防ぐことができる。これにより、複数のバンクにアクセスする場合にキャッシュメモリを効率よく利用することができる。
また、複数バンクアクセスの動作設定と、通常の単一バンクアクセスの動作設定とを切り替えて使用することにより、メモリ残容量が少ない場合には単一バンクアクセスを行うことができ、メモリ使用量を抑制することができる。すなわち、複数バンクに同一データを常に保持しておくと、メモリが複数倍必要になる。このため、必要なときだけ複数バンクに同一データを保持させておき、複数バンクからの選択読み出しを行う。そして、必要がなくなった場合には、1つのバンク以外の他のバンクを他の用途に開放することにより、最大メモリ量を抑制することができる。
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、本発明の実施の形態において明示したように、本発明の実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本発明の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
100、600、620 情報処理装置
110 バスマスタ
120、125〜127 キャッシュメモリ
130 メモリコントローラ
200 メモリ
610 メモリデバイス
700 撮像装置
701 バス
702 集光部
703 撮像素子
704 デジタル変換部
705 信号処理部
706 リサイズ部
707 符号化部
708 記憶装置
720 顔検出部
730 メモリコントローラ
740 不揮発メモリ
750 メモリ
760 キャッシュメモリ
770 演算部
780 操作受付部

Claims (20)

  1. 複数のバンクを備えるメモリの一部の領域に保持されているデータをエントリ単位で保持するキャッシュメモリと、
    前記メモリへのアクセス要求を前記キャッシュメモリを介して行い、前記複数のバンクのうちの少なくとも2つのバンクに保持されている同一データへのアクセス要求を行う場合には前記同一データが保持されている複数のバンクにおける各メモリアドレスを特定するためのアクセスアドレスであって当該各メモリアドレスに対応する1つのエントリのみを前記キャッシュメモリに登録させるための1つのアクセスアドレスを発行するバスマスタと、
    前記キャッシュメモリを介して前記バスマスタと接続されて前記バスマスタからのアクセス要求に基づいて前記メモリへのアクセス制御を行い、前記バスマスタから前記アクセスアドレスが発行された場合には当該アクセスアドレスに基づいて前記同一データが保持されている複数のバンクにおける各メモリアドレスを特定して前記特定された各メモリアドレスのうちの1つのメモリアドレスにアクセスするメモリコントローラと
    を具備する情報処理装置。
  2. 前記バスマスタは、前記同一データが保持されている複数のバンクにおける各メモリアドレスのうちの1つのメモリアドレスを前記アクセスアドレスとして発行し、
    前記メモリコントローラは、前記同一データが保持されている複数のバンクにおける各メモリアドレスのうちの1つのメモリアドレスとして前記アクセスアドレスを特定し、前記同一データが保持されている複数のバンクにおける各メモリアドレスのうちの他のメモリアドレスを前記アクセスアドレスと所定値との演算により特定する
    請求項1記載の情報処理装置。
  3. 前記メモリコントローラは、前記特定された各メモリアドレスに対応するバンクのうちアクセス時間の少ないバンクを1つ選択して当該選択されたバンクにおけるメモリアドレスを前記1つのメモリアドレスとして前記同一データにアクセスする請求項1記載の情報処理装置。
  4. 前記バスマスタは、前記同一データへのアクセス要求として前記同一データを読み出すアクセス要求を行い、
    前記メモリコントローラは、前記同一データを読み出すアクセス要求が前記バスマスタから出力された場合には前記1つのメモリアドレスにアクセスして当該メモリアドレスに保持されている前記同一データを読み出す
    請求項1記載の情報処理装置。
  5. 前記バスマスタは、前記少なくとも2つのバンクに前記同一データを書き込むアクセス要求を行う場合には当該書込対象となる複数のバンクにおける各メモリアドレスを特定するためのアクセスアドレスとして前記1つのアクセスアドレスを発行し、
    前記メモリコントローラは、前記同一データを書き込むアクセス要求が前記バスマスタから出力された場合には前記バスマスタから発行された前記アクセスアドレスに基づいて前記書込対象となる複数のバンクにおける各メモリアドレスを特定して前記特定された各メモリアドレスにアクセスして当該各メモリアドレスに前記同一データを書き込む
    請求項1記載の情報処理装置。
  6. 前記バスマスタは、前記同一データを複数のバンクに保持する設定の解除後には前記アクセスアドレスを前記同一データが保持されていた複数のバンクのうちの1つのバンクにおけるメモリアドレスを特定するためのアクセスアドレスとして発行し、
    前記メモリコントローラは、前記設定の解除後において前記バスマスタから前記アクセスアドレスが発行された場合には当該アクセスアドレスに基づいて前記1つのバンクにおけるメモリアドレスを特定して前記特定されたメモリアドレスにアクセスする
    請求項1記載の情報処理装置。
  7. 前記設定の解除後に発行されるアクセスアドレスは、当該アクセスアドレスのアドレス変換が行われる場合には少なくとも当該アドレス変換単位で連続するアドレスであり、一方、当該アクセスアドレスのアドレス変換が行われない場合には当該アクセスアドレスに対応するメモリアドレスの全体が前記バスマスタの物理アドレス空間で連続するアドレスである請求項6記載の情報処理装置。
  8. 前記メモリコントローラは、前記情報処理装置におけるプログラムの起動終了後または動作モードの切り替え時において前記同一データが保持されるバンクの数を調整する請求項1記載の情報処理装置。
  9. 前記メモリコントローラは、特定の範囲のメモリアドレスへのアクセス要求の有無またはレジスタ設定に基づいて前記同一データを前記少なくとも2つのバンクに保持させるか否かの切替を行う請求項1記載の情報処理装置。
  10. 前記情報処理装置は、前記バスマスタを複数備え、
    前記メモリコントローラは、前記複数のバスマスタのうちの特定のバスマスタから前記同一データを読み出すアクセス要求が出力された場合にのみ前記同一データが保持されている複数のバンクからの前記同一データの選択読み出しを行う
    請求項1記載の情報処理装置。
  11. 前記メモリコントローラは、前記特定された各メモリアドレスが、読み出しのみを行うデータ領域に対応する場合にのみ前記同一データが保持されている複数のバンクからの前記同一データの選択読み出しを行う請求項1記載の情報処理装置。
  12. 前記キャッシュメモリは、遅延書き込みを行うキャッシュメモリであり、
    前記キャッシュメモリまたは前記メモリコントローラに書き込み無効領域を設定して前記書き込み無効領域のメモリアドレスへの書き込みアクセス要求が前記バスマスタから出力された場合には当該書き込みアクセス要求を前記キャッシュメモリまたは前記メモリコントローラにより無効とする
    請求項1記載の情報処理装置。
  13. 前記書き込み無効領域として、その時点でのスタックの未使用領域を指定する請求項12記載の情報処理装置。
  14. 前記書き込み無効領域に対する読み出しアクセス要求が前記バスマスタから出力された場合には前記キャッシュメモリまたは前記メモリコントローラがエラー応答を返す請求項12記載の情報処理装置。
  15. 前記メモリコントローラは、前記アクセス制御によりバンク競合が発生した場合には当該競合が発生したバンク以外のバンクの少なくとも1つに対してリフレッシュを行う請求項1記載の情報処理装置。
  16. 遅延書き込みを行うキャッシュメモリと、
    複数のバンクを備えるメモリへのアクセス要求を前記キャッシュメモリを介して行い、前記複数のバンクのうちの少なくとも2つのバンクに保持されている同一データへのアクセス要求を行うバスマスタと、
    前記キャッシュメモリを介して前記バスマスタと接続されて前記バスマスタからのアクセス要求に基づいて前記メモリへのアクセス制御を行うメモリコントローラとを具備し、
    前記キャッシュメモリまたは前記メモリコントローラに書き込み無効領域を設定して前記書き込み無効領域のメモリアドレスへの書き込みアクセス要求が前記バスマスタから出力された場合には当該書き込みアクセス要求を前記キャッシュメモリまたは前記メモリコントローラにより無効とする
    情報処理装置。
  17. 複数のバンクを備えるメモリへのアクセス要求を行い、前記複数のバンクのうちの少なくとも2つのバンクに保持されている同一データへのアクセス要求を行うバスマスタと、
    前記同一データへのアクセス要求に基づいて前記メモリへのアクセス制御を行い、当該アクセス制御によりバンク競合が発生した場合には当該競合が発生したバンク以外のバンクの少なくとも1つに対してリフレッシュを行うメモリコントローラと
    を具備する情報処理装置。
  18. 複数のバンクを備えるメモリへのアクセス要求をキャッシュメモリを介して行うバスマスタから、前記複数のバンクのうちの少なくとも2つのバンクに保持されている同一データへのアクセス要求を行うためのアクセスアドレスであって、前記同一データが保持されている複数のバンクにおける各メモリアドレスを特定して当該各メモリアドレスに対応する1つのエントリのみを前記キャッシュメモリに登録させるための1つのアクセスアドレスを前記キャッシュメモリを介して受け付ける受付部と、
    前記バスマスタからのアクセス要求に基づいて前記メモリへのアクセス制御を行い、前記バスマスタから前記アクセスアドレスが発行された場合には当該アクセスアドレスに基づいて前記同一データが保持されている複数のバンクにおける各メモリアドレスを特定して前記特定された各メモリアドレスのうちの1つのメモリアドレスにアクセスするアクセス制御部と
    を具備するメモリ制御装置。
  19. メモリに備えられる複数のバンクのうちの少なくとも2つのバンクに保持されている同一データへのアクセス要求を行う場合には前記同一データが保持されている複数のバンクにおける各メモリアドレスを特定するためのアクセスアドレスであって当該各メモリアドレスに対応する1つのエントリのみをキャッシュメモリに登録させるための1つのアクセスアドレスを発行する発行手順と、
    前記アクセスアドレスが発行された場合には当該アクセスアドレスに基づいて前記同一データが保持されている複数のバンクにおける各メモリアドレスを特定して前記特定された各メモリアドレスのうちの1つのメモリアドレスにアクセスするアクセス手順と
    を具備するメモリアクセス方法。
  20. メモリに備えられる複数のバンクのうちの少なくとも2つのバンクに保持されている同一データへのアクセス要求を行う場合には前記同一データが保持されている複数のバンクにおける各メモリアドレスを特定するためのアクセスアドレスであって当該各メモリアドレスに対応する1つのエントリのみをキャッシュメモリに登録させるための1つのアクセスアドレスを発行する発行手順と、
    前記アクセスアドレスが発行された場合には当該アクセスアドレスに基づいて前記同一データが保持されている複数のバンクにおける各メモリアドレスを特定して前記特定された各メモリアドレスのうちの1つのメモリアドレスにアクセスするアクセス手順と
    をコンピュータに実行させるプログラム。
JP2010130590A 2010-06-08 2010-06-08 情報処理装置、メモリ制御装置、メモリアクセス方法およびプログラム Pending JP2011257892A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010130590A JP2011257892A (ja) 2010-06-08 2010-06-08 情報処理装置、メモリ制御装置、メモリアクセス方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010130590A JP2011257892A (ja) 2010-06-08 2010-06-08 情報処理装置、メモリ制御装置、メモリアクセス方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2011257892A true JP2011257892A (ja) 2011-12-22

Family

ID=45474027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010130590A Pending JP2011257892A (ja) 2010-06-08 2010-06-08 情報処理装置、メモリ制御装置、メモリアクセス方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2011257892A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018216081A1 (ja) * 2017-05-22 2018-11-29 ゼンテルジャパン株式会社 半導体記憶システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018216081A1 (ja) * 2017-05-22 2018-11-29 ゼンテルジャパン株式会社 半導体記憶システム
JPWO2018216081A1 (ja) * 2017-05-22 2020-03-26 ゼンテルジャパン株式会社 半導体記憶システム
JP7130634B2 (ja) 2017-05-22 2022-09-05 ゼンテルジャパン株式会社 半導体記憶システム

Similar Documents

Publication Publication Date Title
TWI446166B (zh) 判定快取策略的方法、處理器和設定快取策略的系統
US8250322B2 (en) Command reordering based on command priority
JPWO2005109205A1 (ja) 情報処理装置およびデータアクセス方法
US10725698B2 (en) Memory controller and control method thereof
US20100153645A1 (en) Cache control apparatus and method
JP2013092854A (ja) 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
US20110016264A1 (en) Method and apparatus for cache control in a data storage device
JP2011257892A (ja) 情報処理装置、メモリ制御装置、メモリアクセス方法およびプログラム
JPH11224221A (ja) メモリ制御装置および方法
JP3718599B2 (ja) キャッシュ装置、メモリ制御システムおよび方法、記録媒体
US8732384B1 (en) Method and apparatus for memory access
US8850118B2 (en) Circuit and method for dynamically changing reference value for address counter based on cache determination
TWI446276B (zh) 影像特徵描述處理裝置及影像特徵描述處理方法
JP7414477B2 (ja) メモリコントローラ、メモリコントローラで実施される方法および装置
JP4461805B2 (ja) 画像処理装置
JP2021157295A (ja) メモリ制御装置
US7516258B2 (en) Electronic apparatus and control method
JP2000172560A (ja) メモリ制御装置
US20150026375A1 (en) Control apparatus, computer system, control method and storage medium
JP2013130899A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP2006109224A (ja) 撮像装置
TWI682395B (zh) 固態硬碟的未映射位址的重導向方法
TWI334131B (en) Apparatus and method for defect replacement when an optical storage medium is read
US9037806B2 (en) Reducing store operation busy times
JP6750502B2 (ja) メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法