(57)【要約】【課題】プロセッサにて処理されるデータが格納されるメモリの容量を削減する。【解決手段】メモリコントローラ２は、メモリ領域ＲＢのアドレスＢｎに書き込みデータＹを書き込むようにプロセッサ１からの書き込み要求を受け取ると、メモリ領域ＲＡのアドレスＡｍから読み出すようにプロセッサ１から指示された読み出しデータＸと、メモリ領域ＲＢのアドレスＢｎに書き込むようにプロセッサ１から指示された書き込みデータＹが一致するかを判定し、それらの読み出しデータＸと書き込みデータＹが一致する場合、書き込みデータＹをメモリ領域ＲＢのアドレスＢｎに書き込まないようにする。【選択図】      図１
2010015438.tif 000002
【特許請求の範囲】
【請求項１】
第１のメモリ領域から読み出すようにプロセッサから読み出し要求された読み出しデータと、第２のメモリ領域に書き込むように前記プロセッサから書き込み要求された書き込みデータが一致するかを判定する一致判定部と、
前記読み出しデータと前記書き込みデータが一致する場合、前記書き込みデータを前記第２のメモリ領域に書き込まないようにする書き込み不実行部とを備えることを特徴とするメモリコントローラ。
【請求項２】
第１のメモリ領域から読み出すようにプロセッサから読み出し要求される読み出しデータと、第２のメモリ領域に書き込むように前記プロセッサから書き込み要求される書き込みデータとが一致する部分を予め設定する一致要素設定部と、
前記プロセッサから書き込み要求された書き込みデータのうち、前記一致要素設定部にて設定された部分を前記第２のメモリ領域に書き込まないようにする書き込み不実行部とを備えることを特徴とするメモリコントローラ。
【請求項３】
前記読み出しデータと前記書き込みデータとが一致する部分を変化させたパターンを指定する一致パターン指定部を備え、
前記書き込み不実行部は、前記一致要素設定部にて設定された部分のうち、前記一致パターン指定部にて指定された部分を前記第２のメモリ領域に書き込まないようにすることを特徴とする請求項２に記載のメモリコントローラ。
【請求項４】
前記読み出しデータおよび前記書き込みデータはＳＩＭＤであり、前記ＳＩＭＤの一部が互いに一致する場合、その一部のデータを書き込まないようにすることを特徴とする請求項１から３のいずれか１項に記載のメモリコントローラ。
【請求項５】
前記第２のメモリ領域に書き込まれなかった書き込みデータの第２のメモリ領域のアドレスを、前記書き込みデータに一致する読み出しデータが格納されている前記第１のメモリ領域のアドレスに変換する変換テーブルをさらに備えることを特徴とする請求項１から４のいずれか１項に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリコントローラに関し、特に、プロセッサからのデータの書き込み要求に対して、重複するデータがメモリに書き込まれるのを禁止する方法に適用して好適なものである。
【背景技術】
【０００２】
ＣＭＯＳセンサなどから出力された撮像画像は、画質を向上させるため、画素補間、色変換、輪郭補正、フィルタリングなどの画像処理が行われている。ここで、このような画像処理を高速に実行するために、ＡＳＩＣなどの専用のハードウェアが用いられることがある。
また、回路構成を変更することなく、画像処理の仕様を容易に変更できるようにするために、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）型プロセッサ上で動作するソフトウェアにて画像処理を実現する方法も行われている（特許文献１）。
【０００３】
しかしながら、従来のプロセッサ上で画像処理を実行させる方法では、メモリ領域Ａから読み出された入力画像がプロセッサに転送され、その入力画像に対してプロセッサ上で画像処理された出力画像がそのままメモリ領域Ｂに格納される。このため、出力画像の画素データの中に入力画像の画素データと重複する部分があっても、そのような重複する画素データもメモリ領域Ｂに格納され、入力画像全体と出力画像全体を格納するメモリ容量が必要になることから、メモリ容量の増大を招くという問題があった。
【０００４】
【特許文献１】特開２００４−２１６４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
そこで、本発明の目的は、プロセッサにて処理されるデータが格納されるメモリの容量を削減することが可能なメモリコントローラを提供することである。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明の一態様によれば、第１のメモリ領域から読み出すようにプロセッサから読み出し要求された読み出しデータと、第２のメモリ領域に書き込むように前記プロセッサから書き込み要求された書き込みデータが一致するかを判定する一致判定部と、前記読み出しデータと前記書き込みデータが一致する場合、前記書き込みデータを前記第２のメモリ領域に書き込まないようにする書き込み不実行部とを備えることを特徴とするメモリコントローラを提供する。
【０００７】
また、本発明の一態様によれば、第１のメモリ領域から読み出すようにプロセッサから読み出し要求される読み出しデータと、第２のメモリ領域に書き込むように前記プロセッサから書き込み要求される書き込みデータとが一致する部分を予め設定する一致要素設定部と、前記プロセッサから書き込み要求された書き込みデータのうち、前記一致要素設定部にて設定された部分を前記第２のメモリ領域に書き込まないようにする書き込み不実行部とを備えることを特徴とするメモリコントローラを提供する。
【発明の効果】
【０００８】
以上説明したように、本発明によれば、プロセッサにて処理されるデータが格納されるメモリの容量を削減することが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態に係るメモリコントローラについて図面を参照しながら説明する。
【００１０】
（第１実施形態）
図１は、本発明の第１実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図である。
図１において、プロセッサ１は、メモリコントローラ２を介してメモリ３に接続され、メモリコントローラ２は変換テーブル４に接続されている。ここで、メモリコントローラ２は、プロセッサ１からの書き込み要求に基づいてメモリ３にデータを書き込んだり、プロセッサ１からの読み出し要求に基づいてメモリ３からデータを読み出し、プロセッサ１に転送したりすることができる。そして、メモリコントローラ２は、プロセッサ１からのデータの書き込み要求に対して、重複するデータがあるかどうかを判定し、重複するデータがメモリ３に書き込まれないようにすることで、メモリ３の容量を削減させることができる。
【００１１】
具体的には、メモリコントローラ２には、バッファ５、一致判定部６および書き込み不実行部７が設けられている。そして、バッファ５は、メモリ３から読み出されたデータを一時的に保持することができる。一致判定部６は、メモリ領域ＲＡから読み出すようにプロセッサ１から読み出し要求された読み出しデータＸと、メモリ領域ＲＢに書き込むようにプロセッサ１から書き込み要求された書き込みデータＹが一致するかを判定することができる。書き込み不実行部７は、プロセッサ１から読み出し要求された読み出しデータと、プロセッサ１から書き込み要求された書き込みデータＹが一致する場合、書き込みデータＹをメモリ領域ＲＢに書き込まないようにすることができる。
【００１２】
また、変換テーブル４は、変換データ８を格納することができる。ここで、変換データ８には、メモリ領域ＲＢに書き込まれなかった書き込みデータＹのメモリ領域ＲＢのアドレスＢｎと、書き込みデータＹに一致する読み出しデータＸが格納されているメモリ領域ＲＡのアドレスＡｍとの対応関係を登録することができる。
【００１３】
そして、メモリコントローラ２は、メモリ領域ＲＡのアドレスＡｍから読み出しデータＸを読み出すようにプロセッサ１からの読み出し要求を受け取ると、メモリ領域ＲＡのアドレスＡｍから読み出しデータＸを読み出す（Ｋ１）。そして、メモリコントローラ２は、メモリ領域ＲＡのアドレスＡｍから読み出した読み出しデータＸをバッファ５に格納するとともに、プロセッサ１に転送する（Ｋ２）。
【００１４】
そして、プロセッサ１は、読み出しデータＸをメモリコントローラ２から受け取ると、読み出しデータＸの処理を行うことで、書き込みデータＹを生成し、メモリ領域ＲＢのアドレスＢｍに書き込みデータＹを書き込むようにメモリコントローラ２に書き込み要求を行う（Ｋ３）。なお、読み出しデータＸとしては、例えば、画像データや音声データなどを挙げることができる。また、プロセッサ１にて読み出しデータＸに対して行われる処理としては、例えば、画素補間、色変換、輪郭補正、フィルタリングなどの画像処理を挙げることができる。
【００１５】
そして、メモリコントローラ２は、メモリ領域ＲＢのアドレスＢｎに書き込みデータＹを書き込むようにプロセッサ１からの書き込み要求を受け取ると、一致判定部６は、バッファ５に格納されている読み出しデータＸと、プロセッサ１から受け取った書き込みデータＹが一致するかを判定する。
【００１６】
そして、メモリコントローラ２は、バッファ５に格納されている読み出しデータＸと、プロセッサ１から受け取った書き込みデータＹが一致しない場合、プロセッサ１から受け取った書き込みデータＹをメモリ領域ＲＢのアドレスＢｎに書き込む。
【００１７】
一方、バッファ５に格納されている読み出しデータＸと、プロセッサ１から受け取った書き込みデータＹが一致する場合、書き込み不実行部７は、書き込みデータＹをメモリ領域ＲＢのアドレスＢｎに書き込まないようにする（Ｋ４）。また、メモリコントローラ２は、プロセッサ１から書き込み要求があった書き込みデータＹをメモリ領域ＲＢのアドレスＢｎに書き込まなかった場合、その書き込みデータＹのメモリ領域ＲＢのアドレスＢｎと、その書き込みデータＹに一致する読み出しデータＸが格納されているメモリ領域ＲＡのアドレスＡｍとの対応関係を変換テーブル４に登録する（Ｋ５）。
【００１８】
そして、メモリコントローラ２は、メモリ領域ＲＢのアドレスＢｎに書き込むように書き込み要求があった書き込みデータＹを読み出すようにプロセッサ１から指示された場合、変換テーブル４を参照することにより、メモリ領域ＲＢのアドレスＢｎをメモリ領域ＲＡのアドレスＡｍに変換し、メモリ領域ＲＡのアドレスＡｍから読み出しデータＸを読み出す。そして、メモリコントローラ２は、メモリ領域ＲＢのアドレスＢｎから読み出すようにプロセッサ１から指示された書き込みデータＹとして、メモリ領域ＲＡのアドレスＡｍから読み出した読み出しデータＸをプロセッサ１に転送する。
【００１９】
これにより、プロセッサ１からのデータの書き込み要求に対して、重複するデータがメモリ３に書き込まれるのを禁止することが可能となるとともに、プロセッサ１からのデータの読み出し要求で指定されたデータを読み出すことが可能となり、プロセッサ１にて処理されるデータが格納されるメモリ３の容量を削減することが可能となる。
【００２０】
なお、図１の実施形態では、メモリコントローラ２は、プロセッサ１と別個に設ける方法について説明したが、プロセッサ１内にメモリコントローラ２を設けるようにしてもよい。また、図１の実施形態では、変換テーブル４は、メモリコントローラ２と別個に設ける方法について説明したが、メモリコントローラ２内に変換テーブル４を設けるようにしてもよい。また、図１の実施形態では、バッファ５をメモリコントローラ２内に設ける方法について説明したが、メモリコントローラ２と別個にバッファ５を設けるようにしてもよい。また、図１の実施形態では、同一のメモリ３内のメモリ領域ＲＡ、ＲＢ間でデータの読み出しおよび書き込みが行われる場合を例にとって説明したが、プロセッサ１にてアクセス可能な異なるメモリＭＡ、ＭＢ間でデータの読み出しおよび書き込みが行われる場合に適用してもよい。
【００２１】
また、上述した実施形態では、プロセッサ１から読み出し要求された読み出しデータＸと、プロセッサ１から書き込み要求された書き込みデータＹが一致する場合、書き込みデータＹをメモリ領域ＲＢに書き込まないようにする方法について説明したが、プロセッサ１から書き込み要求された書き込みデータと、メモリ３に既に記憶されているデータとを比較し、プロセッサ１から書き込み要求された書き込みデータが、メモリ３に既に記憶されているデータと一致する場合、その書き込みデータをメモリ３に書き込まないようにしてもよい。この場合、変換テーブル４には、プロセッサ１から書き込み要求された書き込みデータのアドレスと、メモリ３に既に記憶され、その書き込みデータに一致するデータのアドレスとの対応関係を登録するようにしてもよい。
【００２２】
また、上述した実施形態では、プロセッサ１から書き込み要求された書き込みデータＹをメモリコントローラ２がメモリ領域ＲＢに書き込まなかった場合、その書き込みデータＹに一致する読み出しデータＸがメモリ領域ＲＡのどの番地に記憶されているかを認識できるようにするために、変換テーブル４を設ける方法について説明したが、メモリ領域ＲＡ、ＲＢに論理アドレスを割り当てるようにしてもよい。そして、プロセッサ１から読み出し要求された読み出しデータＸと、プロセッサ１から書き込み要求された書き込みデータＹが一致しない場合、プロセッサ１から読み出し要求された読み出しデータＸのメモリ領域ＲＡの論理アドレスに一致するメモリ領域ＲＢの論理アドレスに書き込みデータＹを書き込むことができる。また、プロセッサ１から読み出し要求された読み出しデータＸと、プロセッサ１から書き込み要求された書き込みデータＹが一致する場合、プロセッサ１から読み出し要求された読み出しデータＸのメモリ領域ＲＡの論理アドレスに一致するメモリ領域ＲＢの論理アドレスに書き込みデータＹを書き込まないようにすることができる。
【００２３】
（第２実施形態）
図２は、本発明の第２実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図である。なお、この第２実施形態は、メモリ３に読み書きされるデータとしてＳＩＭＤを用いるようにしたものである。このＳＩＭＤを用いる場合、読み出しデータと書き込みデータとの間でＳＩＭＤの一部が互いに一致する場合、その一部のデータを書き込まないようにすることができる。
【００２４】
すなわち、図２において、メモリコントローラ２は、メモリ領域ＲＡのアドレスＡｍから読み出しデータ‘ＸＹＺＷ’を読み出すようにプロセッサ１からの読み出し要求を受け取ると、メモリ領域ＲＡのアドレスＡｍから読み出しデータ‘ＸＹＺＷ’を読み出す（Ｋ１１）。なお、‘ＸＹＺＷ’は、データＸとデータＹとデータＺとデータＷの処理が一回の命令で行われるＳＩＭＤである。そして、メモリコントローラ２は、メモリ領域ＲＡのアドレスＡｍから読み出した読み出しデータ‘ＸＹＺＷ’をバッファ５に格納するとともに、プロセッサ１に転送する（Ｋ１２）。
【００２５】
そして、プロセッサ１は、読み出しデータ‘ＸＹＺＷ’をメモリコントローラ２から受け取ると、読み出しデータ‘ＸＹＺＷ’の処理を行うことで、書き込みデータ‘ＡＹＸＢ’を生成し、メモリ領域ＲＢのアドレスＢｎに書き込みデータ‘ＡＹＸＢ’を書き込むようにメモリコントローラ２に書き込み要求を行う（Ｋ１３）。なお、‘ＡＹＸＢ’は、データＢとデータＸとデータＹとデータＡの処理が一回の命令で行われるＳＩＭＤである。
【００２６】
そして、メモリコントローラ２は、メモリ領域ＲＢのアドレスＢｎに書き込みデータ‘ＡＹＸＢ’を書き込むようにプロセッサ１からの書き込み要求を受け取ると、一致判定部６は、バッファ５に格納されている読み出しデータ‘ＸＹＺＷ’と、プロセッサ１から受け取った書き込みデータ‘ＡＹＸＢ’が一致するかを個々のデータごとに判定する。
【００２７】
そして、バッファ５に格納されている読み出しデータ‘ＸＹＺＷ’と、プロセッサ１から受け取った書き込みデータ‘ＡＹＸＢ’との間で、データＸとデータＹが一致する場合、書き込み不実行部７は、書き込みデータ‘ＡＹＸＢ’のうちの書き込みデータ‘ＸＹ’をメモリ領域ＲＢのアドレスＢｎに書き込まないようにするとともに、書き込みデータ‘ＢＡ’をメモリ領域ＲＢのアドレスＢｎに書き込むようにする（Ｋ１４）。また、メモリコントローラ２は、プロセッサ１から書き込み要求があった書き込みデータ‘ＡＹＸＢ’をそのままメモリ領域ＲＢのアドレスＢｎに書き込まなかった場合、その書き込みデータ‘ＡＹＸＢ’のメモリ領域ＲＢのアドレスＢｎと、その書き込みデータ‘ＡＹＸＢ’に一致する部分を含む読み出しデータ‘ＸＹＺＷ’が格納されているメモリ領域ＲＡのアドレスＡｍとの対応関係を変換テーブル４に登録する（Ｋ１５）。
【００２８】
これにより、プロセッサ１からのデータの書き込み要求に対して、重複するデータがＳＩＭＤの一部に含まれている場合においても、メモリ３に書き込まれるのを禁止することが可能となるとともに、プロセッサ１からのデータの読み出し要求で指定されたデータを読み出すことが可能となり、プロセッサ１にて処理されるデータが格納されるメモリ３の容量を削減することが可能となる。
【００２９】
（第３実施形態）
図３は、本発明の第３実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図である。
図３において、プロセッサ１１は、メモリコントローラ１２を介してメモリ１３に接続されている。ここで、メモリコントローラ１２は、プロセッサ１１からの書き込み要求に基づいてメモリ１３にデータを書き込んだり、プロセッサ１１からの読み出し要求に基づいてメモリ１３からデータを読み出し、プロセッサ１１に転送したりすることができる。そして、メモリコントローラ１２は、プロセッサ１１からのデータの書き込み要求に対して、予め指定された重複するデータがメモリ１３に書き込まれないようにすることで、メモリ１３の容量を削減させることができる。
【００３０】
なお、メモリ１３に読み書きされるデータとしてＳＩＭＤを用いることができる。また、メモリコントローラ１２は、メモリ領域ＲＡ、ＲＢには論理アドレスを割り当て、その論理アドレスを指定することで、メモリ領域ＲＡから読み出しデータを読み出したり、メモリ領域ＲＢに書き込みデータを書き込んだりすることができる。また、プロセッサ１１は、メモリ領域ＲＡから読み出される読み出しデータやメモリ領域ＲＢに書き込まれる書き込みデータを指定する場合、アドレスの代わりにオフセット値（先頭番地から何番目かを示すデータ）を用いることができる。ここで、プロセッサ１１は、オフセット値を用いる場合、メモリ領域ＲＡから読み出される読み出しデータと、メモリ領域ＲＢに書き込まれる書き込みデータとの間でオフセット値が同一になるように設定することができる。
【００３１】
具体的には、メモリコントローラ１２には、一致要素設定部１６および書き込み不実行部１７が設けられている。そして、一致要素設定部１６は、メモリ領域ＲＡから読み出すようにプロセッサ１１から読み出し要求される読み出しデータと、メモリ領域ＲＢに書き込むようにプロセッサ１１から書き込み要求される書き込みデータとが一致する部分を予め設定することができる。ここで、一致要素設定部１６には、ＳＩＭＤからなる読み出しデータと書き込みデータとの間において、これらのＳＩＭＤのうちのどのデータが一致するかを示す一致パターンＳ１が保持されている。例えば、一致パターンＳ１は、ＳＩＭＤのうち奇数番目のデータが一致し、偶数番目のデータが一致しないということを示すことができる。書き込み不実行部１７は、プロセッサ１１から書き込み要求された書き込みデータのうち、一致要素設定部１６にて設定された部分をメモリ領域ＲＢに書き込まないようにすることができる。
【００３２】
そして、メモリコントローラ１２は、メモリ領域ＲＡから読み出しデータ‘ＸＡＺＢ’を読み出すようにプロセッサ１１からの読み出し要求を受け取ると、メモリ領域ＲＡから読み出しデータ‘ＸＡＺＢ’を読み出す（Ｋ２１）。ここで、メモリコントローラ１２は、メモリ領域ＲＡからの読み出し位置がオフセット値で与えられた場合、そのオフセット値をメモリ領域ＲＡのアドレスＡｍに変換し、そのアドレスＡｍから読み出しデータ‘ＸＡＺＢ’を読み出すことができる。なお、‘ＸＡＺＢ’は、データＸとデータＡとデータＺとデータＢの処理が一回の命令で行われるＳＩＭＤである。そして、メモリコントローラ１２は、メモリ領域ＲＡのアドレスＡｍから読み出した読み出しデータ‘ＸＡＺＢ’をプロセッサ１１に転送する（Ｋ２２）。
【００３３】
そして、プロセッサ１１は、読み出しデータ‘ＸＡＺＢ’をメモリコントローラ１２から受け取ると、読み出しデータ‘ＸＡＺＢ’の処理を行うことで、書き込みデータ‘ＸＣＺＤ’を生成し、メモリ領域ＲＢに書き込みデータ‘ＸＣＺＤ’を書き込むようにメモリコントローラ１２に書き込み要求を行う（Ｋ２３）。なお、‘ＸＣＺＤ’は、データＸとデータＣとデータＺデータＤの処理が一回の命令で行われるＳＩＭＤである。
【００３４】
そして、メモリコントローラ１２は、メモリ領域ＲＢに書き込みデータ‘ＸＣＺＤ’を書き込むようにプロセッサ１１からの書き込み要求を受け取ると、書き込み不実行部１７は、一致パターンＳ１にて示された奇数番目の書き込みデータ‘ＸＺ’をメモリ領域ＲＢに書き込まないようにするとともに、偶数番目の書き込みデータ‘ＣＤ’をメモリ領域ＲＢに書き込むようにする（Ｋ２４）。ここで、プロセッサ１１は、メモリ領域ＲＡからの読み出し位置を指定するオフセット値と同一のオフセット値を用いることで、メモリ領域ＲＢへの書き込み位置を指定することができる。そして、メモリコントローラ１２は、メモリ領域ＲＢへの書き込み位置がオフセット値で与えられた場合、そのオフセット値をメモリ領域ＲＢのアドレスＢｎに変換し、そのアドレスＢｎに書き込みデータ‘ＣＤ’を書き込むことができる。
【００３５】
そして、メモリコントローラ１２は、メモリ領域ＲＢに書き込むように書き込み要求があった書き込みデータ‘ＸＣＺＤ’を読み出すようにプロセッサ１１から指示された場合、その時にプロセッサ１１から与えられたオフセット値をメモリ領域ＲＡのアドレスＡｍおよびメモリ領域ＲＢのアドレスＢｎに変換する。そして、メモリコントローラ１２は、メモリ領域ＲＡのアドレスＡｍから読み出しデータ‘ＸＡＺＢ’を読み出すとともに、メモリ領域ＲＢのアドレスＢｎから読み出しデータ‘ＣＤ’を読み出す。そして、メモリコントローラ１２は、読み出しデータ‘ＸＡＺＢ’のうちから奇数番目の読み出しデータ‘ＸＺ’を抽出し、読み出しデータ‘ＸＺ’が奇数番目、読み出しデータ‘ＣＤ’が偶数番目に配列された読み出しデータ‘ＸＣＺＤ’をプロセッサ１１に転送する。
【００３６】
これにより、プロセッサ１１からのデータの書き込み要求に対して、重複するデータがＳＩＭＤの一部に含まれている場合においても、読み出しデータと書き込みデータとの比較を行うことなく、メモリ１３に書き込まれるのを禁止することが可能となるとともに、プロセッサ１１からのデータの読み出し要求で指定されたデータを読み出すことが可能となり、メモリコントローラ１２にかかる負荷の増大を抑制しつつ、プロセッサ１１にて処理されるデータが格納されるメモリ１３の容量を削減することが可能となる。
【００３７】
（第４実施形態）
図４は、本発明の第４実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図である。
図４において、プロセッサ１１は、メモリコントローラ２２を介してメモリ１３に接続されている。ここで、メモリコントローラ２２は、プロセッサ１１からの書き込み要求に基づいてメモリ１３にデータを書き込んだり、プロセッサ１１からの読み出し要求に基づいてメモリ１３からデータを読み出し、プロセッサ１１に転送したりすることができる。そして、メモリコントローラ２２は、プロセッサ１１からのデータの書き込み要求に対して、ＳＩＭＤ内で重複するデータの位置が変化する場合においても、予め指定された重複するデータがメモリ１３に書き込まれないようにすることで、メモリ１３の容量を削減させることができる。
【００３８】
具体的には、メモリコントローラ２２には、一致要素設定部２６、書き込み不実行部２７および一致パターン指定部２８が設けられている。そして、一致要素設定部２６は、メモリ領域ＲＡから読み出すようにプロセッサ１１から読み出し要求される読み出しデータと、メモリ領域ＲＢに書き込むようにプロセッサ１１から書き込み要求される書き込みデータとが一致する部分を示す複数の一致パターンＳ１、Ｓ２を予め設定することができる。例えば、一致パターンＳ１は、ＳＩＭＤのうち奇数番目のデータが一致し、偶数番目のデータが一致しないということを示すことができる。また、一致パターンＳ２は、ＳＩＭＤのうち偶数番目のデータが一致し、奇数番目のデータが一致しないということを示すことができる。
【００３９】
一致パターン指定部２８は、一致要素設定部２６に設定された一致パターンＳ１、Ｓ２を指定することができる。例えば、一致パターン指定部２８は、プロセッサ１１から与えられたオフセット値が奇数の場合、一致パターンＳ１を指定し、プロセッサ１１から与えられたオフセット値が偶数の場合、一致パターンＳ２を指定することができる。書き込み不実行部２７は、プロセッサ１１から書き込み要求された書き込みデータのうち、一致パターン指定部２８で指定された一致パターンＳ１、Ｓ２にて設定された部分をメモリ領域ＲＢに書き込まないようにすることができる。
【００４０】
そして、メモリコントローラ２２は、メモリ領域ＲＡから読み出しデータ‘ＸＡＺＢ’を読み出すようにプロセッサ１１からの読み出し要求を受け取ると、メモリ領域ＲＡから読み出しデータ‘ＸＡＺＢ’を読み出す（Ｋ３１）。ここで、メモリコントローラ２２は、メモリ領域ＲＡからの読み出し位置がオフセット値で与えられた場合、そのオフセット値をメモリ領域ＲＡのアドレスＡｍに変換し、そのアドレスＡｍから読み出しデータ‘ＸＡＺＢ’を読み出すことができる。そして、メモリコントローラ２２は、メモリ領域ＲＡのアドレスＡｍから読み出した読み出しデータ‘ＸＡＺＢ’をプロセッサ１１に転送する（Ｋ３２）。
【００４１】
そして、プロセッサ１１は、読み出しデータ‘ＸＡＺＢ’をメモリコントローラ２２から受け取ると、読み出しデータ‘ＸＡＺＢ’の処理を行うことで、書き込みデータ‘ＸＣＺＤ’を生成し、メモリ領域ＲＢに書き込みデータ‘ＸＣＺＤ’を書き込むようにメモリコントローラ２２に書き込み要求を行う（Ｋ３３）。ここで、読み出しデータ‘ＸＡＺＢ’の読み出し要求時にプロセッサ１１から与えられたオフセット値が奇数の場合、一致パターン指定部２８は一致パターンＳ１を指定することができる。
【００４２】
そして、メモリコントローラ２２は、メモリ領域ＲＢに書き込みデータ‘ＸＣＺＤ’を書き込むようにプロセッサ１１からの書き込み要求を受け取ると、書き込み不実行部２７は、一致パターンＳ１にて示された奇数番目の書き込みデータ‘ＸＺ’をメモリ領域ＲＢに書き込まないようにするとともに、偶数番目の書き込みデータ‘ＣＤ’をメモリ領域ＲＢに書き込むようにする（Ｋ３４）。ここで、プロセッサ１１は、メモリ領域ＲＡからの読み出し位置を指定するオフセット値と同一のオフセット値を用いることで、メモリ領域ＲＢへの書き込み位置を指定することができる。そして、メモリコントローラ２２は、メモリ領域ＲＢへの書き込み位置がオフセット値で与えられた場合、そのオフセット値をメモリ領域ＲＢのアドレスＢｎに変換し、そのアドレスＢｎに書き込みデータ‘ＣＤ’を書き込むことができる。
【００４３】
次に、メモリコントローラ２２は、メモリ領域ＲＡから読み出しデータ‘ＹＥＷＦ’を読み出すようにプロセッサ１１からの読み出し要求を受け取ると、メモリ領域ＲＡから読み出しデータ‘ＹＥＷＦ’を読み出す（Ｋ３５）。ここで、メモリコントローラ２２は、メモリ領域ＲＡからの読み出し位置がオフセット値で与えられた場合、そのオフセット値をメモリ領域ＲＡのアドレスＡｍ＋１に変換し、そのアドレスＡｍ＋１から読み出しデータ‘ＹＥＷＦ’を読み出すことができる。そして、メモリコントローラ２２は、メモリ領域ＲＡのアドレスＡｍ＋１から読み出した読み出しデータ‘ＹＥＷＦ’をプロセッサ１１に転送する（Ｋ３６）。
【００４４】
そして、プロセッサ１１は、読み出しデータ‘ＹＥＷＦ’をメモリコントローラ２２から受け取ると、読み出しデータ‘ＹＥＷＦ’の処理を行うことで、書き込みデータ‘ＵＥＶＦ’を生成し、メモリ領域ＲＢに書き込みデータ‘ＵＥＶＦ’を書き込むようにメモリコントローラ２２に書き込み要求を行う（Ｋ３７）。ここで、読み出しデータ‘ＹＥＷＦＦ’の読み出し要求時にプロセッサ１１から与えられたオフセット値が偶数の場合、一致パターン指定部２８は一致パターンＳ２を指定することができる。
【００４５】
そして、メモリコントローラ２２は、メモリ領域ＲＢに書き込みデータ‘ＵＥＶＦ’を書き込むようにプロセッサ１１からの書き込み要求を受け取ると、書き込み不実行部２７は、一致パターンＳ２にて示された偶数番目の書き込みデータ‘ＥＦ’をメモリ領域ＲＢに書き込まないようにするとともに、奇数番目の書き込みデータ‘ＵＶ’をメモリ領域ＲＢに書き込むようにする（Ｋ３８）。ここで、プロセッサ１１は、メモリ領域ＲＡからの読み出し位置を指定するオフセット値と同一のオフセット値を用いることで、メモリ領域ＲＢへの書き込み位置を指定することができる。そして、メモリコントローラ２２は、メモリ領域ＲＢへの書き込み位置がオフセット値で与えられた場合、そのオフセット値をメモリ領域ＲＢのアドレスＢｎ＋１に変換し、そのアドレスＢｎ＋１に書き込みデータ‘ＵＶ’を書き込むことができる。
【００４６】
これにより、プロセッサ１１からのデータの書き込み要求に対して、重複するデータがＳＩＭＤ内で変化する場合においても、読み出しデータと書き込みデータとの比較を行うことなく、メモリ１３に書き込まれるのを禁止することが可能となるとともに、プロセッサ１１からのデータの読み出し要求で指定されたデータを読み出すことが可能となり、メモリコントローラ２２にかかる負荷の増大を抑制しつつ、プロセッサ１１にて処理されるデータが格納されるメモリ１３の容量を削減することが可能となる。
【００４７】
図５は、本発明の一実施形態に係る一致要素が設定されるデータの一例を示す図である。
図５において、ＣＭＯＳセンサの赤色画素データをＲ、青色画素データをＢ、緑色画素データをＧとする。そして、画像データのうち、奇数行目はＢＧＢＧＢＧ・・・の順で配列され、偶数行目はＧＲＧＲＧＲ・・・の順で配列されているものとする。
【００４８】
そして、このような順で配列された画素データがメモリ領域ＲＡに記憶され、この画素データをＳＩＭＤとしてメモリ領域ＲＡから読み出し、図４のプロセッサ１１にて緑色画素データＧの補間処理を行った後、メモリ領域ＲＢに書き込むものとする。
【００４９】
ここで、奇数行目ではＳＩＭＤとして‘ＢＧＢＧＢＧ’という読み出しデータが読み出され、緑色画素データＧの補間処理を行ったものとすると、‘Ｇ´ＧＧ´ＧＧ´Ｇ’という書き込みデータが生成される。ただし、Ｇ´は、補間された緑色画素データである。このため、書き込みデータ‘Ｇ´ＧＧ´ＧＧ´Ｇ’のうち奇数番目のデータが補間処理にて新規に生成されたデータであり、書き込みデータ‘Ｇ´ＧＧ´ＧＧ´Ｇ’のうち偶数番目のデータは、読み出しデータ‘ＢＧＢＧＢＧ’の偶数番目のデータと同じである。
【００５０】
また、偶数行目ではＳＩＭＤとして‘ＧＲＧＲＧＲ’という読み出しデータが読み出され、緑色画素データＧの補間処理を行ったものとすると、‘ＧＧ´ＧＧ´ＧＧ´’という書き込みデータが生成される。このため、書き込みデータ‘ＧＧ´ＧＧ´ＧＧ´’のうち偶数番目のデータが補間処理にて新規に生成されたデータであり、書き込みデータ‘ＧＧ´ＧＧ´ＧＧ´’のうち奇数番目のデータは、読み出しデータ‘ＧＲＧＲＧＲ’の奇数番目のデータと同じである。
【００５１】
そして、奇数行目からデータを読み出す場合、図４の一致パターン指定部２８は一致パターンＳ２を指定し、書き込みデータ‘Ｇ´ＧＧ´ＧＧ´Ｇ’のうち奇数番目のデータ‘Ｇ´Ｇ´Ｇ´’をメモリ領域ＲＢに書き込ませる。また、偶数行目からデータを読み出す場合、図４の一致パターン指定部２８は一致パターンＳ１を指定し、書き込みデータ‘ＧＧ´ＧＧ´ＧＧ´’のうち偶数番目のデータ‘Ｇ´Ｇ´Ｇ´’をメモリ領域ＲＢに書き込ませる。
【００５２】
これにより、偶数行目と奇数行目とでＳＩＭＤの中で変化する画素データの位置が異なる場合においても、プロセッサ１１からの画素データの書き込み要求に対して、重複する画素データがメモリ領域ＲＢに書き込まれるのを防止することができ、メモリ１３の容量を削減することが可能となる。
【図面の簡単な説明】
【００５３】
【図１】本発明の第１実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図。
【図２】本発明の第２実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図。
【図３】本発明の第３実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図。
【図４】本発明の第４実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図。
【図５】本発明の一実施形態に係る一致要素が設定されるデータの一例を示す図。
【符号の説明】
【００５４】
１、１１  プロセッサ、２、１２、２２  メモリコントローラ、３、１３  メモリ、４  変換テーブル、５  バッファ、６  一致判定部、７、１７、２７  書き込み不実行部、８  変換データ、１６、２６  一致要素設定部、２８  一致パターン指定部
【図１】
2010015438.tif 000003
【図２】
2010015438.tif 000004
【図３】
2010015438.tif 000005
【図４】
2010015438.tif 000006
【図５】
2010015438.tif 000007