説明

メモリコントローラ

【課題】プロセッサにて処理されるデータが格納されるメモリの容量を削減する。
【解決手段】メモリコントローラ2は、メモリ領域RBのアドレスBnに書き込みデータYを書き込むようにプロセッサ1からの書き込み要求を受け取ると、メモリ領域RAのアドレスAmから読み出すようにプロセッサ1から指示された読み出しデータXと、メモリ領域RBのアドレスBnに書き込むようにプロセッサ1から指示された書き込みデータYが一致するかを判定し、それらの読み出しデータXと書き込みデータYが一致する場合、書き込みデータYをメモリ領域RBのアドレスBnに書き込まないようにする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はメモリコントローラに関し、特に、プロセッサからのデータの書き込み要求に対して、重複するデータがメモリに書き込まれるのを禁止する方法に適用して好適なものである。
【背景技術】
【0002】
CMOSセンサなどから出力された撮像画像は、画質を向上させるため、画素補間、色変換、輪郭補正、フィルタリングなどの画像処理が行われている。ここで、このような画像処理を高速に実行するために、ASICなどの専用のハードウェアが用いられることがある。
また、回路構成を変更することなく、画像処理の仕様を容易に変更できるようにするために、SIMD(Single Instruction Multiple Data)型プロセッサ上で動作するソフトウェアにて画像処理を実現する方法も行われている(特許文献1)。
【0003】
しかしながら、従来のプロセッサ上で画像処理を実行させる方法では、メモリ領域Aから読み出された入力画像がプロセッサに転送され、その入力画像に対してプロセッサ上で画像処理された出力画像がそのままメモリ領域Bに格納される。このため、出力画像の画素データの中に入力画像の画素データと重複する部分があっても、そのような重複する画素データもメモリ領域Bに格納され、入力画像全体と出力画像全体を格納するメモリ容量が必要になることから、メモリ容量の増大を招くという問題があった。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004−21645号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
そこで、本発明の目的は、プロセッサにて処理されるデータが格納されるメモリの容量を削減することが可能なメモリコントローラを提供することである。
【課題を解決するための手段】
【0006】
上述した課題を解決するために、本発明の一態様によれば、第1のメモリ領域から読み出すようにプロセッサから読み出し要求される読み出しデータと、第2のメモリ領域に書き込むように前記プロセッサから書き込み要求される書き込みデータとが一致する部分を予め設定する一致要素設定部と、前記プロセッサから書き込み要求された書き込みデータのうち、前記一致要素設定部にて設定された部分を前記第2のメモリ領域に書き込まないようにする書き込み不実行部とを備えることを特徴とするメモリコントローラを提供する。
【発明の効果】
【0007】
以上説明したように、本発明によれば、プロセッサにて処理されるデータが格納されるメモリの容量を削減することが可能となる。
【図面の簡単な説明】
【0008】
【図1】本発明の第1実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図。
【図2】本発明の第2実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図。
【図3】本発明の第3実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図。
【図4】本発明の第4実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図。
【図5】本発明の一実施形態に係る一致要素が設定されるデータの一例を示す図。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態に係るメモリコントローラについて図面を参照しながら説明する。
【0010】
(第1実施形態)
図1は、本発明の第1実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図である。
図1において、プロセッサ1は、メモリコントローラ2を介してメモリ3に接続され、メモリコントローラ2は変換テーブル4に接続されている。ここで、メモリコントローラ2は、プロセッサ1からの書き込み要求に基づいてメモリ3にデータを書き込んだり、プロセッサ1からの読み出し要求に基づいてメモリ3からデータを読み出し、プロセッサ1に転送したりすることができる。そして、メモリコントローラ2は、プロセッサ1からのデータの書き込み要求に対して、重複するデータがあるかどうかを判定し、重複するデータがメモリ3に書き込まれないようにすることで、メモリ3の容量を削減させることができる。
【0011】
具体的には、メモリコントローラ2には、バッファ5、一致判定部6および書き込み不実行部7が設けられている。そして、バッファ5は、メモリ3から読み出されたデータを一時的に保持することができる。一致判定部6は、メモリ領域RAから読み出すようにプロセッサ1から読み出し要求された読み出しデータXと、メモリ領域RBに書き込むようにプロセッサ1から書き込み要求された書き込みデータYが一致するかを判定することができる。書き込み不実行部7は、プロセッサ1から読み出し要求された読み出しデータと、プロセッサ1から書き込み要求された書き込みデータYが一致する場合、書き込みデータYをメモリ領域RBに書き込まないようにすることができる。
【0012】
また、変換テーブル4は、変換データ8を格納することができる。ここで、変換データ8には、メモリ領域RBに書き込まれなかった書き込みデータYのメモリ領域RBのアドレスBnと、書き込みデータYに一致する読み出しデータXが格納されているメモリ領域RAのアドレスAmとの対応関係を登録することができる。
【0013】
そして、メモリコントローラ2は、メモリ領域RAのアドレスAmから読み出しデータXを読み出すようにプロセッサ1からの読み出し要求を受け取ると、メモリ領域RAのアドレスAmから読み出しデータXを読み出す(K1)。そして、メモリコントローラ2は、メモリ領域RAのアドレスAmから読み出した読み出しデータXをバッファ5に格納するとともに、プロセッサ1に転送する(K2)。
【0014】
そして、プロセッサ1は、読み出しデータXをメモリコントローラ2から受け取ると、読み出しデータXの処理を行うことで、書き込みデータYを生成し、メモリ領域RBのアドレスBmに書き込みデータYを書き込むようにメモリコントローラ2に書き込み要求を行う(K3)。なお、読み出しデータXとしては、例えば、画像データや音声データなどを挙げることができる。また、プロセッサ1にて読み出しデータXに対して行われる処理としては、例えば、画素補間、色変換、輪郭補正、フィルタリングなどの画像処理を挙げることができる。
【0015】
そして、メモリコントローラ2は、メモリ領域RBのアドレスBnに書き込みデータYを書き込むようにプロセッサ1からの書き込み要求を受け取ると、一致判定部6は、バッファ5に格納されている読み出しデータXと、プロセッサ1から受け取った書き込みデータYが一致するかを判定する。
【0016】
そして、メモリコントローラ2は、バッファ5に格納されている読み出しデータXと、プロセッサ1から受け取った書き込みデータYが一致しない場合、プロセッサ1から受け取った書き込みデータYをメモリ領域RBのアドレスBnに書き込む。
【0017】
一方、バッファ5に格納されている読み出しデータXと、プロセッサ1から受け取った書き込みデータYが一致する場合、書き込み不実行部7は、書き込みデータYをメモリ領域RBのアドレスBnに書き込まないようにする(K4)。また、メモリコントローラ2は、プロセッサ1から書き込み要求があった書き込みデータYをメモリ領域RBのアドレスBnに書き込まなかった場合、その書き込みデータYのメモリ領域RBのアドレスBnと、その書き込みデータYに一致する読み出しデータXが格納されているメモリ領域RAのアドレスAmとの対応関係を変換テーブル4に登録する(K5)。
【0018】
そして、メモリコントローラ2は、メモリ領域RBのアドレスBnに書き込むように書き込み要求があった書き込みデータYを読み出すようにプロセッサ1から指示された場合、変換テーブル4を参照することにより、メモリ領域RBのアドレスBnをメモリ領域RAのアドレスAmに変換し、メモリ領域RAのアドレスAmから読み出しデータXを読み出す。そして、メモリコントローラ2は、メモリ領域RBのアドレスBnから読み出すようにプロセッサ1から指示された書き込みデータYとして、メモリ領域RAのアドレスAmから読み出した読み出しデータXをプロセッサ1に転送する。
【0019】
これにより、プロセッサ1からのデータの書き込み要求に対して、重複するデータがメモリ3に書き込まれるのを禁止することが可能となるとともに、プロセッサ1からのデータの読み出し要求で指定されたデータを読み出すことが可能となり、プロセッサ1にて処理されるデータが格納されるメモリ3の容量を削減することが可能となる。
【0020】
なお、図1の実施形態では、メモリコントローラ2は、プロセッサ1と別個に設ける方法について説明したが、プロセッサ1内にメモリコントローラ2を設けるようにしてもよい。また、図1の実施形態では、変換テーブル4は、メモリコントローラ2と別個に設ける方法について説明したが、メモリコントローラ2内に変換テーブル4を設けるようにしてもよい。また、図1の実施形態では、バッファ5をメモリコントローラ2内に設ける方法について説明したが、メモリコントローラ2と別個にバッファ5を設けるようにしてもよい。また、図1の実施形態では、同一のメモリ3内のメモリ領域RA、RB間でデータの読み出しおよび書き込みが行われる場合を例にとって説明したが、プロセッサ1にてアクセス可能な異なるメモリMA、MB間でデータの読み出しおよび書き込みが行われる場合に適用してもよい。
【0021】
また、上述した実施形態では、プロセッサ1から読み出し要求された読み出しデータXと、プロセッサ1から書き込み要求された書き込みデータYが一致する場合、書き込みデータYをメモリ領域RBに書き込まないようにする方法について説明したが、プロセッサ1から書き込み要求された書き込みデータと、メモリ3に既に記憶されているデータとを比較し、プロセッサ1から書き込み要求された書き込みデータが、メモリ3に既に記憶されているデータと一致する場合、その書き込みデータをメモリ3に書き込まないようにしてもよい。この場合、変換テーブル4には、プロセッサ1から書き込み要求された書き込みデータのアドレスと、メモリ3に既に記憶され、その書き込みデータに一致するデータのアドレスとの対応関係を登録するようにしてもよい。
【0022】
また、上述した実施形態では、プロセッサ1から書き込み要求された書き込みデータYをメモリコントローラ2がメモリ領域RBに書き込まなかった場合、その書き込みデータYに一致する読み出しデータXがメモリ領域RAのどの番地に記憶されているかを認識できるようにするために、変換テーブル4を設ける方法について説明したが、メモリ領域RA、RBに論理アドレスを割り当てるようにしてもよい。そして、プロセッサ1から読み出し要求された読み出しデータXと、プロセッサ1から書き込み要求された書き込みデータYが一致しない場合、プロセッサ1から読み出し要求された読み出しデータXのメモリ領域RAの論理アドレスに一致するメモリ領域RBの論理アドレスに書き込みデータYを書き込むことができる。また、プロセッサ1から読み出し要求された読み出しデータXと、プロセッサ1から書き込み要求された書き込みデータYが一致する場合、プロセッサ1から読み出し要求された読み出しデータXのメモリ領域RAの論理アドレスに一致するメモリ領域RBの論理アドレスに書き込みデータYを書き込まないようにすることができる。
【0023】
(第2実施形態)
図2は、本発明の第2実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図である。なお、この第2実施形態は、メモリ3に読み書きされるデータとしてSIMDを用いるようにしたものである。このSIMDを用いる場合、読み出しデータと書き込みデータとの間でSIMDの一部が互いに一致する場合、その一部のデータを書き込まないようにすることができる。
【0024】
すなわち、図2において、メモリコントローラ2は、メモリ領域RAのアドレスAmから読み出しデータ‘XYZW’を読み出すようにプロセッサ1からの読み出し要求を受け取ると、メモリ領域RAのアドレスAmから読み出しデータ‘XYZW’を読み出す(K11)。なお、‘XYZW’は、データXとデータYとデータZとデータWの処理が一回の命令で行われるSIMDである。そして、メモリコントローラ2は、メモリ領域RAのアドレスAmから読み出した読み出しデータ‘XYZW’をバッファ5に格納するとともに、プロセッサ1に転送する(K12)。
【0025】
そして、プロセッサ1は、読み出しデータ‘XYZW’をメモリコントローラ2から受け取ると、読み出しデータ‘XYZW’の処理を行うことで、書き込みデータ‘AYXB’を生成し、メモリ領域RBのアドレスBnに書き込みデータ‘AYXB’を書き込むようにメモリコントローラ2に書き込み要求を行う(K13)。なお、‘AYXB’は、データBとデータXとデータYとデータAの処理が一回の命令で行われるSIMDである。
【0026】
そして、メモリコントローラ2は、メモリ領域RBのアドレスBnに書き込みデータ‘AYXB’を書き込むようにプロセッサ1からの書き込み要求を受け取ると、一致判定部6は、バッファ5に格納されている読み出しデータ‘XYZW’と、プロセッサ1から受け取った書き込みデータ‘AYXB’が一致するかを個々のデータごとに判定する。
【0027】
そして、バッファ5に格納されている読み出しデータ‘XYZW’と、プロセッサ1から受け取った書き込みデータ‘AYXB’との間で、データXとデータYが一致する場合、書き込み不実行部7は、書き込みデータ‘AYXB’のうちの書き込みデータ‘XY’をメモリ領域RBのアドレスBnに書き込まないようにするとともに、書き込みデータ‘BA’をメモリ領域RBのアドレスBnに書き込むようにする(K14)。また、メモリコントローラ2は、プロセッサ1から書き込み要求があった書き込みデータ‘AYXB’をそのままメモリ領域RBのアドレスBnに書き込まなかった場合、その書き込みデータ‘AYXB’のメモリ領域RBのアドレスBnと、その書き込みデータ‘AYXB’に一致する部分を含む読み出しデータ‘XYZW’が格納されているメモリ領域RAのアドレスAmとの対応関係を変換テーブル4に登録する(K15)。
【0028】
これにより、プロセッサ1からのデータの書き込み要求に対して、重複するデータがSIMDの一部に含まれている場合においても、メモリ3に書き込まれるのを禁止することが可能となるとともに、プロセッサ1からのデータの読み出し要求で指定されたデータを読み出すことが可能となり、プロセッサ1にて処理されるデータが格納されるメモリ3の容量を削減することが可能となる。
【0029】
(第3実施形態)
図3は、本発明の第3実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図である。
図3において、プロセッサ11は、メモリコントローラ12を介してメモリ13に接続されている。ここで、メモリコントローラ12は、プロセッサ11からの書き込み要求に基づいてメモリ13にデータを書き込んだり、プロセッサ11からの読み出し要求に基づいてメモリ13からデータを読み出し、プロセッサ11に転送したりすることができる。そして、メモリコントローラ12は、プロセッサ11からのデータの書き込み要求に対して、予め指定された重複するデータがメモリ13に書き込まれないようにすることで、メモリ13の容量を削減させることができる。
【0030】
なお、メモリ13に読み書きされるデータとしてSIMDを用いることができる。また、メモリコントローラ12は、メモリ領域RA、RBには論理アドレスを割り当て、その論理アドレスを指定することで、メモリ領域RAから読み出しデータを読み出したり、メモリ領域RBに書き込みデータを書き込んだりすることができる。また、プロセッサ11は、メモリ領域RAから読み出される読み出しデータやメモリ領域RBに書き込まれる書き込みデータを指定する場合、アドレスの代わりにオフセット値(先頭番地から何番目かを示すデータ)を用いることができる。ここで、プロセッサ11は、オフセット値を用いる場合、メモリ領域RAから読み出される読み出しデータと、メモリ領域RBに書き込まれる書き込みデータとの間でオフセット値が同一になるように設定することができる。
【0031】
具体的には、メモリコントローラ12には、一致要素設定部16および書き込み不実行部17が設けられている。そして、一致要素設定部16は、メモリ領域RAから読み出すようにプロセッサ11から読み出し要求される読み出しデータと、メモリ領域RBに書き込むようにプロセッサ11から書き込み要求される書き込みデータとが一致する部分を予め設定することができる。ここで、一致要素設定部16には、SIMDからなる読み出しデータと書き込みデータとの間において、これらのSIMDのうちのどのデータが一致するかを示す一致パターンS1が保持されている。例えば、一致パターンS1は、SIMDのうち奇数番目のデータが一致し、偶数番目のデータが一致しないということを示すことができる。書き込み不実行部17は、プロセッサ11から書き込み要求された書き込みデータのうち、一致要素設定部16にて設定された部分をメモリ領域RBに書き込まないようにすることができる。
【0032】
そして、メモリコントローラ12は、メモリ領域RAから読み出しデータ‘XAZB’を読み出すようにプロセッサ11からの読み出し要求を受け取ると、メモリ領域RAから読み出しデータ‘XAZB’を読み出す(K21)。ここで、メモリコントローラ12は、メモリ領域RAからの読み出し位置がオフセット値で与えられた場合、そのオフセット値をメモリ領域RAのアドレスAmに変換し、そのアドレスAmから読み出しデータ‘XAZB’を読み出すことができる。なお、‘XAZB’は、データXとデータAとデータZとデータBの処理が一回の命令で行われるSIMDである。そして、メモリコントローラ12は、メモリ領域RAのアドレスAmから読み出した読み出しデータ‘XAZB’をプロセッサ11に転送する(K22)。
【0033】
そして、プロセッサ11は、読み出しデータ‘XAZB’をメモリコントローラ12から受け取ると、読み出しデータ‘XAZB’の処理を行うことで、書き込みデータ‘XCZD’を生成し、メモリ領域RBに書き込みデータ‘XCZD’を書き込むようにメモリコントローラ12に書き込み要求を行う(K23)。なお、‘XCZD’は、データXとデータCとデータZデータDの処理が一回の命令で行われるSIMDである。
【0034】
そして、メモリコントローラ12は、メモリ領域RBに書き込みデータ‘XCZD’を書き込むようにプロセッサ11からの書き込み要求を受け取ると、書き込み不実行部17は、一致パターンS1にて示された奇数番目の書き込みデータ‘XZ’をメモリ領域RBに書き込まないようにするとともに、偶数番目の書き込みデータ‘CD’をメモリ領域RBに書き込むようにする(K24)。ここで、プロセッサ11は、メモリ領域RAからの読み出し位置を指定するオフセット値と同一のオフセット値を用いることで、メモリ領域RBへの書き込み位置を指定することができる。そして、メモリコントローラ12は、メモリ領域RBへの書き込み位置がオフセット値で与えられた場合、そのオフセット値をメモリ領域RBのアドレスBnに変換し、そのアドレスBnに書き込みデータ‘CD’を書き込むことができる。
【0035】
そして、メモリコントローラ12は、メモリ領域RBに書き込むように書き込み要求があった書き込みデータ‘XCZD’を読み出すようにプロセッサ11から指示された場合、その時にプロセッサ11から与えられたオフセット値をメモリ領域RAのアドレスAmおよびメモリ領域RBのアドレスBnに変換する。そして、メモリコントローラ12は、メモリ領域RAのアドレスAmから読み出しデータ‘XAZB’を読み出すとともに、メモリ領域RBのアドレスBnから読み出しデータ‘CD’を読み出す。そして、メモリコントローラ12は、読み出しデータ‘XAZB’のうちから奇数番目の読み出しデータ‘XZ’を抽出し、読み出しデータ‘XZ’が奇数番目、読み出しデータ‘CD’が偶数番目に配列された読み出しデータ‘XCZD’をプロセッサ11に転送する。
【0036】
これにより、プロセッサ11からのデータの書き込み要求に対して、重複するデータがSIMDの一部に含まれている場合においても、読み出しデータと書き込みデータとの比較を行うことなく、メモリ13に書き込まれるのを禁止することが可能となるとともに、プロセッサ11からのデータの読み出し要求で指定されたデータを読み出すことが可能となり、メモリコントローラ12にかかる負荷の増大を抑制しつつ、プロセッサ11にて処理されるデータが格納されるメモリ13の容量を削減することが可能となる。
【0037】
(第4実施形態)
図4は、本発明の第4実施形態に係るメモリコントローラによるデータ書き込み方法を示すブロック図である。
図4において、プロセッサ11は、メモリコントローラ22を介してメモリ13に接続されている。ここで、メモリコントローラ22は、プロセッサ11からの書き込み要求に基づいてメモリ13にデータを書き込んだり、プロセッサ11からの読み出し要求に基づいてメモリ13からデータを読み出し、プロセッサ11に転送したりすることができる。そして、メモリコントローラ22は、プロセッサ11からのデータの書き込み要求に対して、SIMD内で重複するデータの位置が変化する場合においても、予め指定された重複するデータがメモリ13に書き込まれないようにすることで、メモリ13の容量を削減させることができる。
【0038】
具体的には、メモリコントローラ22には、一致要素設定部26、書き込み不実行部27および一致パターン指定部28が設けられている。そして、一致要素設定部26は、メモリ領域RAから読み出すようにプロセッサ11から読み出し要求される読み出しデータと、メモリ領域RBに書き込むようにプロセッサ11から書き込み要求される書き込みデータとが一致する部分を示す複数の一致パターンS1、S2を予め設定することができる。例えば、一致パターンS1は、SIMDのうち奇数番目のデータが一致し、偶数番目のデータが一致しないということを示すことができる。また、一致パターンS2は、SIMDのうち偶数番目のデータが一致し、奇数番目のデータが一致しないということを示すことができる。
【0039】
一致パターン指定部28は、一致要素設定部26に設定された一致パターンS1、S2を指定することができる。例えば、一致パターン指定部28は、プロセッサ11から与えられたオフセット値が奇数の場合、一致パターンS1を指定し、プロセッサ11から与えられたオフセット値が偶数の場合、一致パターンS2を指定することができる。書き込み不実行部27は、プロセッサ11から書き込み要求された書き込みデータのうち、一致パターン指定部28で指定された一致パターンS1、S2にて設定された部分をメモリ領域RBに書き込まないようにすることができる。
【0040】
そして、メモリコントローラ22は、メモリ領域RAから読み出しデータ‘XAZB’を読み出すようにプロセッサ11からの読み出し要求を受け取ると、メモリ領域RAから読み出しデータ‘XAZB’を読み出す(K31)。ここで、メモリコントローラ22は、メモリ領域RAからの読み出し位置がオフセット値で与えられた場合、そのオフセット値をメモリ領域RAのアドレスAmに変換し、そのアドレスAmから読み出しデータ‘XAZB’を読み出すことができる。そして、メモリコントローラ22は、メモリ領域RAのアドレスAmから読み出した読み出しデータ‘XAZB’をプロセッサ11に転送する(K32)。
【0041】
そして、プロセッサ11は、読み出しデータ‘XAZB’をメモリコントローラ22から受け取ると、読み出しデータ‘XAZB’の処理を行うことで、書き込みデータ‘XCZD’を生成し、メモリ領域RBに書き込みデータ‘XCZD’を書き込むようにメモリコントローラ22に書き込み要求を行う(K33)。ここで、読み出しデータ‘XAZB’の読み出し要求時にプロセッサ11から与えられたオフセット値が奇数の場合、一致パターン指定部28は一致パターンS1を指定することができる。
【0042】
そして、メモリコントローラ22は、メモリ領域RBに書き込みデータ‘XCZD’を書き込むようにプロセッサ11からの書き込み要求を受け取ると、書き込み不実行部27は、一致パターンS1にて示された奇数番目の書き込みデータ‘XZ’をメモリ領域RBに書き込まないようにするとともに、偶数番目の書き込みデータ‘CD’をメモリ領域RBに書き込むようにする(K34)。ここで、プロセッサ11は、メモリ領域RAからの読み出し位置を指定するオフセット値と同一のオフセット値を用いることで、メモリ領域RBへの書き込み位置を指定することができる。そして、メモリコントローラ22は、メモリ領域RBへの書き込み位置がオフセット値で与えられた場合、そのオフセット値をメモリ領域RBのアドレスBnに変換し、そのアドレスBnに書き込みデータ‘CD’を書き込むことができる。
【0043】
次に、メモリコントローラ22は、メモリ領域RAから読み出しデータ‘YEWF’を読み出すようにプロセッサ11からの読み出し要求を受け取ると、メモリ領域RAから読み出しデータ‘YEWF’を読み出す(K35)。ここで、メモリコントローラ22は、メモリ領域RAからの読み出し位置がオフセット値で与えられた場合、そのオフセット値をメモリ領域RAのアドレスAm+1に変換し、そのアドレスAm+1から読み出しデータ‘YEWF’を読み出すことができる。そして、メモリコントローラ22は、メモリ領域RAのアドレスAm+1から読み出した読み出しデータ‘YEWF’をプロセッサ11に転送する(K36)。
【0044】
そして、プロセッサ11は、読み出しデータ‘YEWF’をメモリコントローラ22から受け取ると、読み出しデータ‘YEWF’の処理を行うことで、書き込みデータ‘UEVF’を生成し、メモリ領域RBに書き込みデータ‘UEVF’を書き込むようにメモリコントローラ22に書き込み要求を行う(K37)。ここで、読み出しデータ‘YEWFF’の読み出し要求時にプロセッサ11から与えられたオフセット値が偶数の場合、一致パターン指定部28は一致パターンS2を指定することができる。
【0045】
そして、メモリコントローラ22は、メモリ領域RBに書き込みデータ‘UEVF’を書き込むようにプロセッサ11からの書き込み要求を受け取ると、書き込み不実行部27は、一致パターンS2にて示された偶数番目の書き込みデータ‘EF’をメモリ領域RBに書き込まないようにするとともに、奇数番目の書き込みデータ‘UV’をメモリ領域RBに書き込むようにする(K38)。ここで、プロセッサ11は、メモリ領域RAからの読み出し位置を指定するオフセット値と同一のオフセット値を用いることで、メモリ領域RBへの書き込み位置を指定することができる。そして、メモリコントローラ22は、メモリ領域RBへの書き込み位置がオフセット値で与えられた場合、そのオフセット値をメモリ領域RBのアドレスBn+1に変換し、そのアドレスBn+1に書き込みデータ‘UV’を書き込むことができる。
【0046】
これにより、プロセッサ11からのデータの書き込み要求に対して、重複するデータがSIMD内で変化する場合においても、読み出しデータと書き込みデータとの比較を行うことなく、メモリ13に書き込まれるのを禁止することが可能となるとともに、プロセッサ11からのデータの読み出し要求で指定されたデータを読み出すことが可能となり、メモリコントローラ22にかかる負荷の増大を抑制しつつ、プロセッサ11にて処理されるデータが格納されるメモリ13の容量を削減することが可能となる。
【0047】
図5は、本発明の一実施形態に係る一致要素が設定されるデータの一例を示す図である。
図5において、CMOSセンサの赤色画素データをR、青色画素データをB、緑色画素データをGとする。そして、画像データのうち、奇数行目はBGBGBG・・・の順で配列され、偶数行目はGRGRGR・・・の順で配列されているものとする。
【0048】
そして、このような順で配列された画素データがメモリ領域RAに記憶され、この画素データをSIMDとしてメモリ領域RAから読み出し、図4のプロセッサ11にて緑色画素データGの補間処理を行った後、メモリ領域RBに書き込むものとする。
【0049】
ここで、奇数行目ではSIMDとして‘BGBGBG’という読み出しデータが読み出され、緑色画素データGの補間処理を行ったものとすると、‘G´GG´GG´G’という書き込みデータが生成される。ただし、G´は、補間された緑色画素データである。このため、書き込みデータ‘G´GG´GG´G’のうち奇数番目のデータが補間処理にて新規に生成されたデータであり、書き込みデータ‘G´GG´GG´G’のうち偶数番目のデータは、読み出しデータ‘BGBGBG’の偶数番目のデータと同じである。
【0050】
また、偶数行目ではSIMDとして‘GRGRGR’という読み出しデータが読み出され、緑色画素データGの補間処理を行ったものとすると、‘GG´GG´GG´’という書き込みデータが生成される。このため、書き込みデータ‘GG´GG´GG´’のうち偶数番目のデータが補間処理にて新規に生成されたデータであり、書き込みデータ‘GG´GG´GG´’のうち奇数番目のデータは、読み出しデータ‘GRGRGR’の奇数番目のデータと同じである。
【0051】
そして、奇数行目からデータを読み出す場合、図4の一致パターン指定部28は一致パターンS2を指定し、書き込みデータ‘G´GG´GG´G’のうち奇数番目のデータ‘G´G´G´’をメモリ領域RBに書き込ませる。また、偶数行目からデータを読み出す場合、図4の一致パターン指定部28は一致パターンS1を指定し、書き込みデータ‘GG´GG´GG´’のうち偶数番目のデータ‘G´G´G´’をメモリ領域RBに書き込ませる。
【0052】
これにより、偶数行目と奇数行目とでSIMDの中で変化する画素データの位置が異なる場合においても、プロセッサ11からの画素データの書き込み要求に対して、重複する画素データがメモリ領域RBに書き込まれるのを防止することができ、メモリ13の容量を削減することが可能となる。
【符号の説明】
【0053】
1、11 プロセッサ、2、12、22 メモリコントローラ、3、13 メモリ、4 変換テーブル、5 バッファ、6 一致判定部、7、17、27 書き込み不実行部、8 変換データ、16、26 一致要素設定部、28 一致パターン指定部

【特許請求の範囲】
【請求項1】
第1のメモリ領域から読み出すようにプロセッサから読み出し要求される読み出しデータと、第2のメモリ領域に書き込むように前記プロセッサから書き込み要求される書き込みデータとが一致する部分を予め設定する一致要素設定部と、
前記プロセッサから書き込み要求された書き込みデータのうち、前記一致要素設定部にて設定された部分を前記第2のメモリ領域に書き込まないようにする書き込み不実行部とを備えることを特徴とするメモリコントローラ。
【請求項2】
前記読み出しデータと前記書き込みデータとが一致する部分を変化させたパターンを指定する一致パターン指定部を備え、
前記書き込み不実行部は、前記一致要素設定部にて設定された部分のうち、前記一致パターン指定部にて指定された部分を前記第2のメモリ領域に書き込まないようにすること
を特徴とする請求項1に記載のメモリコントローラ。
【請求項3】
前記読み出しデータおよび前記書き込みデータはSIMDであり、前記SIMDの一部が互いに一致する場合、その一部のデータを書き込まないようにすることを特徴とする請求項1または2のいずれか1項に記載のメモリコントローラ。
【請求項4】
前記一致要素設定部は、前記SIMDのうち奇数番目のデータが一致し、偶数番目のデータが一致しないことを示す第1のパターン、および/または、前記SIMDのうち偶数番目のデータが一致し、奇数番目のデータが一致しないことを示す第2のパターン、とを備えることを特徴とする請求項3に記載のメモリコントローラ。
【請求項5】
前記一致パターン指定部は、前記第1のメモリ領域から読み出される読み出しデータの位置を示すオフセット値が、奇数または偶数で、前記第1または第2のパターンを指定することを特徴とする請求項4に記載のメモリコントローラ。
【請求項6】
前記第2のメモリ領域に書き込まれなかった書き込みデータの第2のメモリ領域のアドレスを、前記書き込みデータに一致する読み出しデータが格納されている前記第1のメモリ領域のアドレスに変換する変換テーブルをさらに備えることを特徴とする請求項1から5のいずれか1項に記載のメモリコントローラ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−41625(P2013−41625A)
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願番号】特願2012−248627(P2012−248627)
【出願日】平成24年11月12日(2012.11.12)
【分割の表示】特願2008−175825(P2008−175825)の分割
【原出願日】平成20年7月4日(2008.7.4)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】