(57)【要約】【課題】プロセッサとプロセッサに接続するキャッシュ装置を用いたＭＰＥＧ処理において、キャッシュ装置を有効に利用することにより、高速かつ効率の良い処理を行なうデータ処理装置を提供すること。【解決手段】データを記録する主記憶装置４０と、主記憶装置４０にアクセスして演算プログラムに従ってＭＰＥＧ符号化又は復号化のデータ処理を実行する中央処理装置１と、中央処理装置１に接続され、主記憶装置４０で処理されるデータの一部を記憶するキャッシュ装置２とを備え、キャッシュ装置２は、過去に復号化された画像データを格納する第１のキャッシュ領域３２と、ヘッダ情報やＤＣＴ係数を格納する第２のキャッシュ領域６とを有し、中央処理装置１は、キャッシュ装置２へのアクセスの際に上記演算プログラム中の規定に従って上記第１及び第２のキャッシュ領域の選択を行なう。【選択図】図１
2005102144.tif 000002
【特許請求の範囲】
【請求項１】
データを記録する主記憶装置と、
上記主記憶装置にアクセスし、演算プログラムに従ってＭＰＥＧ符号化又は復号化のデータ処理を実行する中央処理装置と、
上記中央処理装置に接続され、上記中央処理装置で処理されるデータの一部を記憶するキャッシュ装置とを備え、
上記キャッシュ装置は、過去に復号化された画像データを格納する第１のキャッシュ領域と、第２のキャッシュ領域とを有し、
上記中央処理装置は、上記キャッシュ装置へのアクセスの際に上記演算プログラム中の規定に従って上記第１及び第２のキャッシュ領域の選択を行なうことを特徴とするデータ処理装置。
【請求項２】
上記中央処理装置は、上記ＭＰＥＧ符号化又は復号化のデータ処理中の参照画像の読み出しを上記第１のキャッシュ領域から行なうことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
上記第２のキャッシュ領域には、ヘッダ情報が格納されることを特徴とする請求項１又は請求項２に記載のデータ処理装置。
【請求項４】
上記第２のキャッシュ領域には、ＤＣＴ係数が格納されることを特徴とする請求項１乃至請求項３のいずれか一に記載のデータ処理装置。
【請求項５】
上記中央処理装置は、上記中央処理装置が設定するアドレスのビットを用いて上記選択を行なうことを特徴とする請求項１又は請求項２に記載のデータ処理装置。
【請求項６】
上記中央処理装置は、上記第１及び第２のキャッシュ領域の選択条件を保存するレジスタを有し、該保存した選択条件に応じて上記選択を行なうことを特徴とする請求項１又は請求項２に記載のデータ処理装置。
【請求項７】
上記中央処理装置は、上記第１及び第２のキャッシュ領域の選択条件に対応して使用する命令を変更し、該変更した命令に基づいて上記選択を行なうことを特徴とする請求項１又は請求項２に記載のデータ処理装置。
【請求項８】
上記中央処理装置は、上記第１及び第２のキャッシュ領域の選択条件に対応して使用するデータ格納用レジスタを変更し、該変更した使用レジスタに基づいて上記選択を行なうことを特徴とする請求項１又は請求項２に記載のデータ処理装置。
【請求項９】
上記中央処理装置は、上記キャッシュ装置のキャッシュライン単位の読み書きを連続で行なう回数を記憶する領域を備え、
上記中央処理装置は、上記キャッシュ装置へデータを格納可能であるときに、上記領域の回数に関する情報を使用して、データの読み書きを行なうことを特徴とする請求項１又は請求項２に記載のデータ処理装置。
【請求項１０】
上記中央処理装置は、上記キャッシュ装置のキャッシュライン単位のデータが有効であるか無効であるかを判定する手段を有し、判定結果に基づいて、次データのキャッシュへの格納を行うことを特徴とする請求項１又は請求項２に記載のデータ処理装置。
【請求項１１】
上記第１のキャッシュ領域が読出し用領域と書込み用領域とに分けられていることを特徴とする請求項１又は請求項２に記載のデータ処理装置。
【請求項１２】
データを記録する主記憶装置と、
上記主記憶装置にアクセスし、演算プログラムに従ってデータ処理を実行する中央処理装置と、
上記中央処理装置に接続され、上記中央処理装置で処理されるデータの一部を記憶する第１のキャッシュメモリと、
上記中央処理装置に接続され、上記中央処理装置で処理されるデータの一部を記憶する第２のキャッシュメモリと、
上記第１のキャッシュメモリと第２のキャッシュメモリの一方にデータを記録するためのセレクタを有するデータ処理装置。
【請求項１３】
さらに命令キャッシュメモリを有することを特徴とする請求項１２記載のデータ処理装置。
【請求項１４】
上記セレクタは、上記第１のキャッシュメモリに対応する第１のセレクタと、上記第２のキャッシュメモリに対応する第２のセレクタとを有し、
上記第１及び第２のセレクタには選択信号を入力する選択信号線が接続され、
上記選択信号により、上記第１のセレクタがデータを通過させ上記第２のセレクタがデータを通過させない第１の状態と、上記第１のセレクタがデータを通過させず上記第２のセレクタがデータを通過さる第２の状態とを切り替えることを特徴とする請求項１３記載のデータ処理装置。
【請求項１５】
上記第１のセレクタおよび第２のセレクタには相補的な選択信号が入力されることを特徴とする請求項１４記載のデータ処理装置。
【請求項１６】
上記第１のキャッシュメモリは、過去に復号化された画像データを格納することを特徴とする請求項１５記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュ装置を用いたデータ処理に係り、特に映像信号の圧縮・伸張を行なうＭＰＥＧによる符号化・復号化処理に適用して好適のデータ処理装置に関する。
【背景技術】
【０００２】
現在、デジタル放送やＤＶＤ（Digital Versatile Disc）ビデオ、映像を扱うパーソナルコンピュータなど、デジタル技術を用いた映像の利用が急速に発展しつつある。そのような映像の新利用は、高画質を保ちながら映像信号のデータ量を高度に圧縮することができるＭＰＥＧ（Motion Picture Coding Experts Group）によって可能になったと言って過言ではない。
【０００３】
映像信号を圧縮・伸張するＭＰＥＧ処理においては、符号化対象の動画像を構成するフレームがマクロブロックに分割され、マクロブロック単位で符号化処理が行なわれる。処理の核となるのがＤＣＴ（Discrete Cosine Transform）と動き補償である。これらを含む符号化処理のステップが上記マクロブロック単位で繰返して行なわれ、最終的に出力される符号化データがストリームの形式で伝送される。ＤＣＴによって得られるＤＣＴ係数を含む符号化データには、符号方法や符号化対象のフレームについての情報を格納したヘッダが付加される。
【０００４】
符号化処理における局部復号及び伝送後の復号化処理において、上記ＤＣＴ係数や情報等を用いた逆ＤＣＴの処理が行なわれ、符号化処理及び復号化処理において動き補償の処理のために参照画像データが用いられる。使用されるこれらのデータは、主記憶装置に格納されて用いられるが、中央処理装置（以下「プロセッサ」という）が高速に演算を行なうために、小容量であるが高速の読み書きが可能なキャッシュ装置がプロセッサに接続されて一時的に利用される。
【０００５】
プロセッサとそれに接続するキャッシュ装置を用いてプロセッサ処理とＭＰＥＧ処理を行なうデータ処理装置において、キャッシュ装置をプロセッサ処理による逐次型処置とＭＰＥＧ処理による繰返型処理とで分ける例がある（例えば特許文献１参照）
【０００６】
【特許文献１】特開２００１−２５６１０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のようにＭＰＥＧの処理中には様々なデータがキャッシュ装置に格納されることになる。しかし、データには性質や使用形態の異なるものがあり、その相違によってキャッシュ装置における読み書きの高速性が阻害されることがしばしばある。
【０００８】
ＭＰＥＧ演算処理において扱うデータの性質について以下に述べる。
【０００９】
符号化データに挿入されるヘッダには、符号化対象の画像に共通の情報等が格納されており、符号・復号処理に際してはフレーム処理単位、つまり複数のマクロブロックの処理にまたがってアクセスされる。
【００１０】
次に、ＤＣＴ係数はブロック単位で計算され、計算結果を含めてマクロブロック単位で符号化処理が行なわれるが、ブロック毎のＤＣＴ係数は１００バイト程度の容量があるため、プロセッサのレジスタに格納することができず、ＤＣＴ演算後の処理の前に一度キャッシュ装置に格納する必要がある。また、復号化処理においても、逆ＤＣＴ処理によって得られる画像差分データは、逆ＤＣＴ処理に続いて行なう加算処理の前に一度キャッシュ装置に格納する必要がある。しかし、処理後にはキャッシュ装置上のデータをアクセスすることはなく、次のマクロブロック処理の際に、同じ領域が再利用される。
【００１１】
以上のように、ヘッダ情報及びＤＣＴ係数や画像差分データは、フレーム処理中に何度もアクセスされ、それによってデータが繰返し利用され、或いは領域が再利用され、広い領域を必要としない特徴を有する。
【００１２】
一方、動き補償を含む予測画像合成の処理の際にはフレームメモリから過去に復号化された画像データである参照画素データが読み出され、キャッシュ装置に格納される。そして、予測画像合成の処理においては、基本的にマクロブロック毎に異なるデータがアクセスされる。従って、読み出されたデータは一回利用され、その後破棄される。
【００１３】
各マクロブロックの符号化・復号化処理中に、各参照領域は一度のみ使われる可能性が高い。また、映像の特性上、参照領域と現在処理中のマクロブロックとは、画面上の同じ位置にある可能性が高く、従って各マクロブロック処理で参照領域がそれぞれ異なる可能性が高い。それ故、参照領域のアクセスにおいて、非常に広いアドレス空間に対してアクセスが行なわれる可能性が高い。更に、フレーム内のマクロブロックを順に処理するとは限らず、又、処理がマクロブロック単位で行なわれるため、マクロブロックの中で次のライン（水平走査線）処理に移行する処理が必要であって参照画素データは連続配置されない。
【００１４】
以上のように、参照画像データは、１度のみアクセスされて読み出され、かつ、広いアドレス空間にアクセスされる必要があり、１度のみ利用されるという特徴を有する。
【００１５】
１フレームは、携帯電話等に採用されるＱＣＩＦ（Quarter Common Intermediate Format）フォーマットでは１７６×１４４画素、ディジタルモバイル端末等に用いられるＶＧＡ（Video Graphic Array）フォーマットで６４０×４８０画素である。ＭＰＥＧ符号データは、１画素あたり１．５バイトとして考えるとそれぞれ３８ｋバイト、４５０ｋバイトの容量が必要となる。実装されているキャッシュ装置は現状では例えば３２ｋバイト等であり、上記１フレームの容量には満たない。従って、該参照画像データと、ヘッダ情報やＤＣＴ係数等の他の処理に使用されるデータとを同じキャッシュ装置で扱うと、他のデータがキャッシュ装置より掃き出されてしまい、再参照の際に、再び、主記憶装置よりキャッシュ装置に再転送する必要が生じる。その結果、再転送のオーバヘッドが必要となり、読み書きの高速性が損なわれる。
【００１６】
本発明の目的は、プロセッサとプロセッサに接続するキャッシュ装置を用いたＭＰＥＧ処理において、キャッシュ装置を有効に利用することにより、高速かつ効率の良い処理を行なうデータ処理装置を提供することにある。
【課題を解決するための手段】
【００１７】
上記課題を解決するために、本願の開示する発明の概要は以下の通りである。
【００１８】
本発明のデータ処理装置は、データを記録する主記憶装置と、主記憶装置にアクセスし
て演算プログラムに従ってＭＰＥＧ符号化又は復号化のデータ処理を実行する中央処理装置と、中央処理装置に接続され、上記主記憶装置で処理されるデータの一部を記憶するキャッシュ装置とを備え、キャッシュ装置は、過去に復号化された画像データを格納する第１のキャッシュ領域と、第２のキャッシュ領域とを有し、上記中央処理装置は、上記キャッシュ装置へのアクセスの際に上記演算プログラム中の規定に従って上記第１及び第２のキャッシュ領域の選択を行なうことを特徴とする。
【００１９】
特に、ＭＰＥＧ処理中の参照画像の読み出しを上記第１のキャッシュ領域から行ない、また、ヘッダ情報やＤＣＴ係数を第２のキャッシュ領域に格納する。
【００２０】
本発明のデータ処理装置の他の特徴は、データを記録する主記憶装置と、主記憶装置にアクセスし、演算プログラムに従ってデータ処理を実行する中央処理装置と、中央処理装置に接続され、中央処理装置で処理されるデータの一部を記憶する第１のキャッシュメモリと、中央処理装置に接続され、中央処理装置で処理されるデータの一部を記憶する第２のキャッシュメモリと、第１のキャッシュメモリと第２のキャッシュメモリの一方にデータを記録するためのセレクタを有する点である。
【００２１】
キャッシュメモリとしては、さらに命令キャッシュメモリを有することが望ましい。セレクタとして、第１のキャッシュメモリに対応する第１のセレクタと、第２のキャッシュメモリに対応する第２のセレクタとを備えることができる。一つの例では、第１及び第２のセレクタには選択信号を入力する選択信号線が接続される。選択信号線の選択信号により、第１のセレクタがデータを通過させ第２のセレクタがデータを通過させない第１の状態と、第１のセレクタがデータを通過させず第２のセレクタがデータを通過さる第２の状態とを切り替えることが可能となる。この第１のセレクタおよび第２のセレクタには相補的な選択信号を入力することにしても良い。例えばＭＰＥＧ画像処理においては、第１のキャッシュメモリは、過去に復号化された画像データを格納することが考えられる。
【発明の効果】
【００２２】
本発明によれば、キャッシュ装置を過去に復号化された画像データを格納する第１のキャッシュ領域とヘッダ情報やＤＣＴ係数を格納する第２のキャッシュ領域とに分けたことにより、第２のキャッシュ領域に読み込まれたデータが、該キャッシュ領域より主記憶装置に書き戻される可能性を低減させ、主記憶装置から再読み出しを行なうオーバヘッドを低減させ、より高速かつ効率の良いデータ処理装置を実現することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明に係るデータ処理装置を図面に示した実施の形態を参照して更に詳細に説明する。なお、図１〜９及び図１３〜１６における同一の符号は、同一物又は類似物を表示するものとする。
【００２４】
初めに、ＭＰＥＧの符号化及び復号化処理について説明する。まず、ＭＰＥＧでは、８×８画素のブロックが小単位となり、輝度についてその４個を、色差信号についてその２個を用いた計６個のブロックから成るマクロブロックが単位となる。動画像を構成するフレームはマクロブロックの小領域毎に分割され、ＤＣＴの演算がブロック毎に行なわれ、符号化がマクロブロック単位で行なわれる。
【００２５】
続いて、復号化処理を行なう復号化器の構成を図１ａに示す。当該復号化器は、各機能をＣＰＵ上で実行させるソフトウエアで構成することができる。また、専用のハードウエアで構成することもできる。あるいは、一部分をソフトウエアで構成し、他の部分をハードウエアで構成することも可能である。復号化器では、ヘッダに続くストリーム形式の符号化データが入力符号として受信される。ヘッダには、符号化データに共通の情報として、原画像の大きさ等の情報が搭載されている。これらの情報は、ヘッダ解析処理によって解読され、各マクロブロックの処理に用いられる。
【００２６】
受信した符号化データは、可変長復号化器１５２に入力されて量子化ＤＣＴ係数Ｄ１及び動きベクトル情報に分離される。量子化ＤＣＴ係数Ｄ１は、逆量子化器１５３を経てＤＣＴ係数Ｄ２となる。ＤＣＴ係数Ｄ２は、逆ＤＣＴ変換器１５４を経て復号化され、画像差分データＤ３となる。
【００２７】
一方、フレームメモリ１５６には現在処理しているフレームの前フレーム即ち過去の復号画像が蓄えられている。動き補償部１５７は、符号化データから分離された動きベクトル情報に従って参照する領域を上記復号画像上に決定し、該領域から参照画像データＤ４を読み出して予測マクロブロック画像を合成する。加算器１５８は、この予測マクロブロック画像と画像差分データＤ３を加算して復号化マクロブロックを出力する。連続した復号化マクロブロックにより、最終的に復号画像が得られる。フレームメモリ１５６には復号画像から書き込みデータＤ５が送られ、上記の前フレームの画像が形成される。
【００２８】
プロセッサとプロセッサに接続したキャッシュ装置が演算プログラムに従って実行するＭＰＥＧのデータ処理を図１ｂに示す。プロセッサ１によるＭＰＥＧデータ処理には、上記の逆量子化器１５３、逆ＤＣＴ変換器１５４及び動き補償部１５７による各処理等がある。また、ＭＰＥＧにおいては、量子化ＤＣＴ係数Ｄ１、ＤＣＴ係数Ｄ２、画像差分データＤ３、参照画像データＤ４及び書き込みデータＤ５がそれぞれ主記憶装置４０に蓄えられる。図示していないが、主記憶装置４０にはその他に、フレームに共通の情報等が蓄えられる。
【００２９】
本発明においては、キャッシュ装置２に第１のキャッシュ領域（以下単に「第１のキャッシュ」という）３２と第２のキャッシュ領域（以下単に「第２のキャッシュ」という）６とが設けられる。量子化ＤＣＴ係数Ｄ１、ＤＣＴ係数Ｄ２、画像差分データＤ３を読み書きする領域は、一度書き込んだ後、即座に再利用される。そのため、量子化ＤＣＴ係数Ｄ１、ＤＣＴ係数Ｄ２、画像差分データＤ３の読み書きには、第２のキャッシュ６が使用される。また、各マクロブロックの処理で共通に繰返し使われる共通の情報も第２のキャッシュ６が使用される。
【００３０】
一方、１度のみ利用される参照画像データＤ４の読み出しや書き込みデータＤ５の書き込みには、第１のキャッシュ３２が使用される。
【００３１】
以上のように、本発明は、過去に復号化された画像データであって、一度のみアクセスを行ない、１度のみ利用するデータである参照画像データを専用の領域に格納し、その他の、ヘッダ情報やＤＣＴ係数のような、複数回アクセスして繰返し利用するデータや、アクセスされた後に領域が再利用されるデータを異なる領域に格納する点に特徴がある。
【００３２】
なお、ＭＰＥＧの処理プログラムを記述するプログラマは、処理コード作成中に、意識して、その二つのデータを区別しながらコードを記述することが可能である。各々の処理中のデータ毎に再度使用するか否かは、ＭＰＥＧの処理に応じて決まっているために明確であり、プログラマがプログラムを作成する段階で、メモリアドレスの違いによる使用するキャッシュ領域の指定（第１の実施例）、コントロールレジスタを使用したキャッシュ領域の指定（第２の実施例）、或いはプロセッサが使用する命令の変更によるキャッシュ領域の指定（第３の実施例）などにより実現することができる。これらのキャッシュ領域の指定がキャッシュ選択のための演算プログラム中の規定となる。
【００３３】
図２は、図１に示したＭＰＥＧデータ処理を行なうデータ処理装置を示す図である。図２のデータ処理装置は、プロセッサ１、キャッシュ装置２、バスステートコントローラ（ＢＳＣ）３及びメモリインタフェース４、及びメモリインタフェース４に接続された主記憶装置４０によって構成される。
【００３４】
キャッシュ装置２は、通常の、命令キャッシュ５、第２のキャッシュ６、命令キャッシュＴＬＢ（Translation Lookaside Buffer）７、第２のキャッシュＴＬＢ８、キャッシュ・ＴＬＢコントローラ９に、第１のキャッシュ３２、第１のキャッシュＴＬＢ３３を追加した構成となっている。なお、ＴＬＢは、キャッシュにアクセスするためのアドレスを格納したテーブルとして機能する。
【００３５】
プロセッサ１とキャッシュ装置２は、命令用アドレス線１０、命令用データ線１１、データ用アドレス線１２、データ用読出しデータ線１３、データ用書込みデータ線１４に追加して、キャッシュセレクタ制御線３４によって接続されている。また、キャッシュ装置２とバスステートコントローラ３は、アドレス線１５、読出し用データ線１６、書込み用データ線１７によって接続され、バスステートコントローラ３とメモリインタフェース４は、アドレス線１８、読出し用データ線１９、書き込み用データ線２０によって接続されている。
（実施例）
上記本発明のデータ処理装置の第１の実施例を図３から図９及び図１３を用いて説明する。本実施例においては、第２のキャッシュ６と第１のキャッシュ３２の選択にデータのアドレスが使用される。後で詳述するが、データのアドレスの一部をキャッシュ選択に割り当てるようにプログラムが組まれ、そのアドレスに従ってキャッシュセレクタ制御線３４へのキャッシュ選択信号の状態が設定される。このようにして、データのアドレスの一部が選択のための演算プログラム中の規定となる。
【００３６】
図３は、キャッシュの動作を説明するための概要図である。命令キャッシュについては、説明を省略する。図３は、図２に示した第２のキャッシュ６、第１のキャッシュ３２、第２のキャッシュＴＬＢ８、第１のキャッシュＴＬＢ３３及びキャッシュ・ＴＬＢコントローラ９の相互接続を２つのセレクタ３５、３６を加えて示したものである。
【００３７】
プロセッサ１とそれに接続するキャッシュ装置２によって次のようにデータアクセス動作が行なわれる。
【００３８】
まず、ＤＣＴ処理前のＤＣＴ係数の書込みについて説明する。上記のように、この動作は、第２のキャッシュ６へのＤＣＴ係数の書込み動作である。
【００３９】
プロセッサ１は、データ書込み命令によって、キャッシュ装置２への書込みアドレスをデータ用アドレス線１２に、ＤＣＴ係数を書込み用データ線１４にそれぞれ出力し、更に、キャッシュ装置２へのキャッシュ選択信号を第２のキャッシュ６選択状態にして、キャッシュセレクタ制御線３４に出力する。キャッシュ・ＴＬＢコントローラ９は、キャッシュセレクタ制御線３４の信号に従って、第２のキャッシュ６への書込み動作を行なう。
【００４０】
次に、ＤＣＴ係数読出しの処理について説明する。ＤＣＴ係数は、上記のように第２のキャッシュ６上に保持されている。プロセッサ１は、データ読出し命令によって、キャッシュ装置２への読出しアドレスをデータ用アドレス線１２に出力し、更に、キャッシュ装置２へのキャッシュ選択信号を第２のキャッシュ６選択状態にして、キャッシュセレクタ制御線３４に出力する。キャッシュ・ＴＬＢコントローラ９は、キャッシュセレクタ制御線３４の信号に従って、第２のキャッシュ６の読出し動作を行ない、読み出されたＤＣＴ係数がプロセッサ１内のレジスタ（図示せず）に格納される。
【００４１】
続いて、ＤＣＴ処理後の画像差分データ書込みについて説明する。上記のように、この動作は、第２のキャッシュ６への画像差分データの書込み動作である。
【００４２】
プロセッサ１は、データ書込み命令によって、キャッシュ装置２への書込みアドレスをデータ用アドレス線１２に、画像差分データを書込み用データ線１４にそれぞれ出力すると共に、キャッシュ装置２へのキャッシュ選択信号を第２のキャッシュ６選択状態にして、キャッシュセレクタ制御線３４に出力する。キャッシュ・ＴＬＢコントローラ９は、キャッシュセレクタ制御線３４の信号に従って、第２のキャッシュ６への書込み動作を行なう。
【００４３】
次に、画像差分データ読出しの処理について説明する。画像差分データは、ＤＣＴ処理によって生成されたデータであり、上記のように第２のキャッシュ６上に保持されている。プロセッサ１は、データ読出し命令によって、キャッシュ装置２への読出しアドレスをデータ用アドレス線１２に出力し、更に、キャッシュ装置２へのキャッシュ選択信号を第２のキャッシュ６選択状態にして、キャッシュセレクタ制御線３４に出力する。キャッシュ・ＴＬＢコントローラ９は、キャッシュセレクタ制御線３４の信号に従って、第２のキャッシュ６の読出し動作が行なわれ、読み出されたデータがプロセッサ１内のレジスタ（図示せず）に格納される。
【００４４】
次に、フレームメモリ中の参照画像データの読出し処理について説明する。ここで、上記で参照画像データには第１のキャッシュ３２が使用されるとしたが、参照画像データの状況によっては第２のキャッシュ６を用いても構わない場合がある。キャッシュ領域は、ラインという単位で制御される。従って、参照画像データの端が他のデータ領域と同じラインを使用することがあった場合には第２のキャッシュ６に格納されることがある。これが第２のキャッシュ６を用いる場合である。以下では、第１のキャッシュ３２に加えて第２のキャッシュ６を用いる可能性がある場合について取り上げる。
【００４５】
プロセッサ１は、データ読出し命令により、キャッシュ装置２への読出しアドレスをデータ用アドレス線１２に出力し、更に、キャッシュ装置２へのキャッシュ選択信号を第１のキャッシュ３２選択状態にして、第１のキャッシュセレクタ制御線３４に出力する。キャッシュ・ＴＬＢコントローラ９は、キャッシュセレクタ制御線３４の信号に従って、第１のキャッシュ３２と第２のキャッシュ６上の両者上に要求されたアドレスのデータが存在するが否かを調べ、存在した場合に、参照画素データをデータ読出し用データ線１３に出力する。この場合、第２のキャッシュ６と第１のキャッシュ３２の両者に同一のデータは存在していないので、データが衝突することはない。
【００４６】
一方、アドレスが両キャッシュ上に存在しなかった場合、キャッシュ・ＴＬＢコントローラ９は、読出しアドレスをアドレス線１５に出力し、バスステートコントローラ３を介して、主記憶装置４０上にある参照画像データを読み出し、第１のキャッシュ３２に格納する。その際、キャッシュ・ＴＬＢコントローラを介して出力させるキャッシュセレクタ信号３４に従って、セレクタ３５はデータを通過させ、セレクタ３６はデータを通過させないようにする。読み出したデータは、読出し用データ線１３を介し、プロセッサ１へ渡される。
【００４７】
次に、画像フレームデータの書込み処理について説明する。
【００４８】
画像差分データと参照画像データの加算処理により生成された画像フレームデータは、即時の再利用が無いために、第１のキャッシュ３２に書き込まれる。プロセッサ１は、データ書き込み命令によって、キャッシュ装置２への書込みアドレスをデータ用アドレス線１２に、書込みデータを書込み用データ線１４にそれぞれ出力すると共に、キャッシュ装置２へのキャッシュ選択信号を第１のキャッシュ３２選択状態にして、キャッシュセレクタ制御線３４に出力する。キャッシュ・ＴＬＢコントローラ９は、第１のキャッシュ３２上に要求されたアドレスのデータが存在するが否かを調べ、存在した場合、データを第１のキャッシュ３２へ格納する。一方、第１のキャッシュ３２上に存在しなかった場合、セレクタ３５並びに書き込み用データ線１７を介し、バスステートコントローラ３を通して、主記憶装置４０へデータを格納する。
【００４９】
次に、図４及び図５を用いて、本実施例における、第２のキャッシュ６と第１のキャッシュ３２の選択の方法、即ち選択のための演算プログラム中の規定について説明する。
【００５０】
図４及び図５に示した例においては、プロセッサ１は、論理アドレス空間を使用し、ＭＭＵ（Memory Management Unit）等を用いて論理アドレスを物理アドレスに変換する処理を行ない、それによってキャッシュ装置２及び主記憶装置４０にアクセスする。
【００５１】
図４ａは、プロセッサ１の論理アドレス２２の２９ビット目をキャッシュ選択に割り当てた例である。その結果、図４ｂに示すように、３２ビットのメモリ空間内に４つの第１のキャッシュアクセス用の論理メモリ空間（ONETIMEキャッシュ領域）が位置付けられる。図４ａの２９ビット目のキャッシュ選択は、図１３のキャッシュセレクタ制御線３４へと接続されており、以下の動作を伴ってキャッシュの選択を実施する。
【００５２】
図１３は、論理アドレス３２ビット、物理アドレス２９ビット、ワードサイズ３２ビット、ラインサイズ３２バイトのダイレクトマップ方式のデータキャッシュと、ラインサイズ８バイトの一度読み書き用キャッシュを使用した例である。プロセッサ１のデータアクセスは、論理アドレス２２とキャッシュセレクト信号３４を用いて行われる。論理アドレスの１０ビットから３１ビットまでの２２ビット２３は、ＭＭＵ２４にて、物理アドレスの上位１９ビット２５にマッピングされる。
【００５３】
まず、一度読み書き用キャッシュ側であるが、論理アドレスの４ビットから９ビットの６ビット５４の数値とＭＭＵ２４の出力の１９ビット２５をまとめて、アドレス値３８とする。このアドレスと、一度読み書き用キャッシュのアドレスアレイ３９上のアドレス６０との比較の出力と、Ｖビット４１の論理和によって、一度読み書き用キャッシュのヒット信号４２が出力される。キャッシュ上のライン上（８バイト）のワード位置は、論理アドレスの２ビットから３ビットまでの２ビットにて定まり、データとして出力される。
【００５４】
また、データキャッシュ側は、論理アドレスの５ビットから１３ビットまでの９ビット２６の数値にしたがってアドレスアレイ２７のエントリ及びキャッシュ上のライン位置が定められ、キャッシュに収められている物理アドレスの上位１９ビット２８を取り出す。この１９ビットと、ＭＭＵの出力の１９ビットを比較結果および、アドレスアレイ２７のＶビット２９の論理和から、ヒット信号３０が出力される。キャッシュ上のライン上（３２バイト）のワード位置は、論理アドレスの２ビットから４ビットまでの３ビットにて定まり、データとして出力される。
【００５５】
従って、プログラマが第１のキャッシュアクセス用の論理メモリ空間、例えば、図４の例では、Ａ０００１０００等を選んでアクセスした場合に、第１のキャッシュ３２を使用したメモリへのアクセスが可能となる。
【００５６】
図５に示すように、プロセッサの論理アドレス２２の上位ビットはＭＭＵ２４にて物理アドレス４３へマッピングされるが、このときに、２９ビット目は、取り出され、図３中のキャッシュセレクタ制御線３４へキャッシュ選択信号が出力されることとなる。つまり、２９ビットが１の場合に、キャッシュセレクタ制御線のキャッシュ選択信号はＯＮとなり、０の場合に、ＯＦＦとなる。
【００５７】
図４、図５では、プロセッサが論理アドレスを使用する場合について説明したが、ＭＭＵを用いないプロセッサの場合、物理アドレスで直接アクセスを行なうので、物理アドレスの１つのビットにキャッシュ選択を割り当てることとなる。ＭＭＵを介した動作はないが、割り当てたビットに応じて、キャッシュセレクタ制御線のキャッシュ選択信号のＯＮ・ＯＦＦが定められることとなる。
【００５８】
選択動作を、図３では、回路の配置や接続に基づいて説明し、図４、図５では、論理アドレス及び物理アドレスに基づいて説明した。次に、図６〜図９を用い、フローチャートに従って全体の動作を説明する。
【００５９】
図６は、本実施例の読出し時の動作を示したフローチャートである。まず、プロセッサ１がデータ読出し命令動作を起こしたとき、アドレスの２９ビット目がチェックされ（１００）、ＯＮでなければ、キャッシュ選択信号（セレクト信号）がＯＦＦとなり（１０１）、第２のキャッシュ動作１０９が行なわれることとなる。２９ビット目がＯＮの場合、キャッシュ選択信号はＯＮとなり（１０２）、第１のキャッシュ３２のヒット状況がチェックされる（１０３）。ヒットしていれば、第１のキャッシュ３２から参照画素データが読み出され、即ちリードされプロセッサ１へ転送される（１０６）。ヒットしていなければ、主記憶装置４０より、第１のキャッシュ３２にデータが書き込まれ、即ちライトされ（１０７）、更に、その参照画素データがリードされてプロセッサ１へ転送される（１０８）。
【００６０】
なお、上記で参照画素データを第２のキャッシュ６に格納することを可能にする場合があることを説明した。図７に、そのような場合の読出し時動作のフローチャートが示される。図７では、図６のフローチャートにステップ１０４及びステップ１０５が追加される。第２のキャッシュ６のヒット状況をチェックしたとき（１０４）、ヒットしていれば、第２のキャッシュ６から参照画素データがリードされてプロセッサ１へ転送される（１０５）。ヒットしていなければ、主記憶装置４０より、第１のキャッシュ３２にデータがライトされ（１０７）、更にその参照画素データがリードされてプロセッサ１へ転送される（１０８）。
【００６１】
図８は、本実施例の書込み時の動作を示したフローチャートである。まず、プロセッサ１がデータ書き込み命令動作を起こしたとき、アドレスの２９ビット目がチェックされ（１００）、ＯＮでなければキャッシュ選択信号（セレクト信号）はＯＦＦとなり（１０１）、第２のキャッシュ動作１０９が行なわれることとなる。２９ビット目がＯＮの場合、キャッシュ選択信号はＯＮとなり（１０２）、第１のキャッシュ３２のヒット状況がチェックされ（１０３）、ヒットしていなければプロセッサ１からのデータが主記憶装置４０へ転送され、ライトされる（１１１）。第１のキャッシュ３２にヒットしていれば、第１のキャッシュ３２にデータが書き込まれ、即ちライトされ（１１０）、その後主記憶装置４０へ書き込まれる（１５０）。
【００６２】
図９に、参照画素データを第２のキャッシュ６に格納することを可能にする場合の読出し時動作のフローチャートが示される。図９では、図８のフローチャートにステップ１０４及びステップ１１２が追加される。第１のキャッシュ３２のヒット状況がチェックされたとき（１０３）、ヒットしていなければ、第２のキャッシュ６のヒット状況をチェックし（１０４）、ヒットしていれば、プロセッサ１からのデータが第２のキャッシュ３２へ格納され、即ちライトされ（１１２）、ヒットしていなければ、プロセッサ１からのデータが主記憶装置４０へ転送され、ライトされる（１１１）。
【００６３】
以上、本実施例により、キャッシュ装置において、１度のみ利用するデータである参照画像データと、その他の、複数回アクセスして繰返し利用するデータやその領域が繰返し使われるデータとが異なる領域に格納される。それにより、他のデータがキャッシュ装置より掃き出されてしまい、再参照の際に、再び、主記憶装置よりキャッシュ装置に再転送するという不都合が回避される。即ち、キャッシュ装置が有効に利用され、より高速かつ効率の良いＭＰＥＧ処理を行なうデータ処理装置を実現することができた。
【００６４】
本発明の第２の実施例は、プログラマの選択により、プロセッサ１が有するキャッシュコントロールレジスタの内容の変化を使用して、第１のキャッシュ３２と第２のキャッシュ６を選択するものである。キャッシュコントロールレジスタの内容の変化、即ち選択条件が保存され、選択のための演算プログラム中の規定が形成される。
【００６５】
本実施例に関し図１４を用いて説明する。図１４は、本実施例によるキャッシュの動作について概要を説明するための概要図である。命令キャッシュについては、説明に使用しないために略してある。データ処理装置は、プロセッサ１、キャッシュ２、バスステートコントローラ３から成り、プロセッサ１は、キャッシュ制御レジスタ４９等から成る。キャッシュ制御レジスタ４９は、キャッシュのＯＮおよびＯＦＦあるいは、キャッシュのモードなどを選択するためのレジスタである。キャッシュ２は、データキャッシュ６、一度読み書き用キャッシュ３２、データキャッシュＴＬＢ８、一度読み書き用キャッシュＴＬＢ３３、キャッシュ・ＴＬＢコントローラ９、３つのセレクタ３５、３６、３７から成る。プロセッサとキャッシュはデータ用アドレス線１２、データ用読み込みデータ線１３、データ用書き込みデータ線１４、キャッシュセレクタ制御線３４によって、接続されており、キャッシュ２とバスステートコントローラ３はアドレス線１５、読み込み用データ線１６、書き込み用データ線１７によって接続されている。プロセッサ１とキャッシュ２によるデータアクセス動作は、以下の通りである。
【００６６】
プロセッサ１は、上記のようにキャッシュ制御レジスタ４９を含んでおり、プロセッサ１によって、キャッシュ制御レジスタ４９の内容を変更してキャッシュの使用状況を変化させることが可能である。すなわち、キャッシュ選択ビット５０がキャッシュ制御レジスタに設けられる。キャッシュ選択ビット５０が０の場合に、キャッシュ選択信号がＯＦＦ、１の場合にＯＮとなることでキャッシュ選択が可能になる。
【００６７】
本発明の第３の実施例は、プログラマの選択により、プロセッサ１が使用する命令を変えることによって、第２のキャッシュと参照画像第２のキャッシュを選択するものである。命令の変更が選択のための演算プログラム中の規定となる。
【００６８】
図１５は、本発明によるキャッシュの動作について概要を説明するための概要図である。命令キャッシュについては、説明に使用しないために略してある。データ処理装置は、プロセッサ１、キャッシュ２、バスステートコントローラ３から成り、プロセッサ１は、インストラクションデコーダ５１等から成り、キャッシュ２は、データキャッシュ６、一度読み書き用キャッシュ３２、データキャッシュＴＬＢ８、一度読み書き用キャッシュＴＬＢ３３、キャッシュ・ＴＬＢコントローラ９、３つのセレクタ３５、３６、３７から成る。プロセッサ１とキャッシュ２はデータ用アドレス線１２、データ用読み込みデータ線１３、データ用書き込みデータ線１４、キャッシュセレクタ制御線３４によって、接続されており、キャッシュ２とバスステートコントローラ３はアドレス線１５、読み込み用データ線１６、書き込み用データ線１７によって接続されている。プロセッサ１とキャッシュ２によるデータアクセス動作は、以下の通りである。
【００６９】
プロセッサ１は、プロセッサ１によって実行される命令を解析するインストラクションデコーダ５１を含み、解析の結果、命令が第２のキャッシュ６を使用するデータアクセス命令の場合は、キャッシュ選択信号３４はＯＦＦとなり、命令が第１のキャッシュ３２を使用するデータアクセスの場合は、キャッシュ選択信号３４はＯＮとなる。
本発明の第４の実施例は、プログラマの選択による使用レジスタよって、キャッシュを選択するものである。図１６は、本実施例によるキャッシュの動作について概要を説明するための概要図である。命令キャッシュについては、説明に使用しないために略してある。データ処理装置は、プロセッサ１、キャッシュ２、バスステートコントローラ３から成り、プロセッサ１は、インストラクションデコーダ４６、Ａレジスタ群４４、Ｂレジスタ群４５等から成り、キャッシュ２は、データキャッシュ６、一度読み書き用キャッシュ３２、データキャッシュＴＬＢ８、一度読み書き用キャッシュＴＬＢ３３、キャッシュ・ＴＬＢコントローラ９、３つのセレクタ３５、３６、３７から成る。プロセッサ１とキャッシュ２はデータ用アドレス線１２、データ用読み込みデータ線１３、データ用書き込みデータ線１４、キャッシュセレクタ制御線３３によって、接続されており、キャッシュ２とバスステートコントローラ３はアドレス線１５、読み込み用データ線１６、書き込み用データ線１７によって接続されている。プロセッサ１とキャッシュ２によるデータアクセス動作は、以下の通りである。
プロセッサ１によって実行される命令は、インストラクションデコーダ４６によって解析される。解析の結果、使用するレジスタ群Ａ４４にイネーブル信号が出される。レジスタ群Ｂ４５のイネーブル信号は、キャッシュセレクタ制御信号３４へも接続されている。そのため、第２のキャッシュを使用するレジスタＡ群４４を利用したデータアクセスの場合は、キャッシュセレクタ制御信号３４はＯＦＦと成り、第１のキャッシュを利用するレジスタＢ群４５を利用したデータアクセスの場合は、キャッシュセレクタ制御信号３４はＯＮと成る。
【００７０】
次に、キャッシュの読み書き動作をライン毎に行なってフレームメモリアクセスを効率化した第５の実施例を図１０及び図１１に示す。
【００７１】
図１０は、動き補償の際のフレームメモリアクセス方法の一例を示す図で、画像（２５０）から縦横１７画素を取り出した形（２５１）となり、１７画素部分のデータが連続的に利用される。２キャッシュラインを有するキャッシュ（２５２）への書込み動作は、ライン毎に行なわれる。１ラインを８バイトとした場合に、１７画素のデータを読み出すためには、３ライン（２５５，２５６，２５７）２４画素の読出しが必要である。キャッシュライン単位の参照画素データ群について、参照画素データ群２５５は、キャッシュライン２５３へ書き込まれ、参照画素データ群２５６はキャッシュライン２５４へ書き込まれる。参照画素データ群２５７は、キャッシュライン２５３が空き次第書き込まれる。プロセッサ１は、キャッシュライン単位の読み書きを連続で行なう回数を記憶する領域を備え（上記では３回）、領域に記憶されている回数に関する情報を利用して参照画素データの読み書きを行なう。
【００７２】
図１１を用いて、１ライン８画素を３回連続して読み書きを行なう動き補償の際の動作を説明する。処理の最初に必要な参照画素データが第１のキャッシュ３２にヒットしているかのチェックを行なう（２６０）。ヒットしていない場合は、まず、２ライン分１６バイトつまり１６画素分を書き込む（２６１）。次に、第１のキャッシュ３２からプロセッサコア２００のレジスタに１画素分のデータを読み出す（２６２）。レジスタへの２ライン分の読出しが終了したかの判定を行ない（２６３）、引き続いて、キャッシュラインの最後のデータをアクセスしているかのチェックを行なう（２６４）。最後のデータの場合は、まだ、書き込む必要があるかのチェックを行ない（２６５）、必要である場合は、１ラインの書込みを行なう（２６６）。全体として３ライン分の２４画素読出しが終了の場合（２６３）、マクロブロックデータ処理の終了をチェック（２６７）し、終了していない場合は、次の画素ラインへのアドレスを加算する（２６８）。２６４にて最後のデータをアクセスした場合は、該当キャッシュラインのデータを無効化する。２６６における書き込みは、２６４にてキャッシュラインのデータを無効化したキャッシュラインへ行う。本動作により、読み込みを完了したキャッシュラインへ次のデータを自動的に読み込むことが可能となり、キャッシュをより有効に活用可能となる。
【００７３】
上記実施例では、キャッシュラインの最終データアクセスにて、該当キャッシュラインのデータを無効とし、キャッシュへのデータの読み込みを可能な状況としたが、キャッシュライン毎にキャッシュアクセス完了フラグを設置し、設定された条件に応じて、キャッシュ・ＴＬＢコントローラからキャッシュアクセス完了フラグをＯＮとする方法でも良い。キャッシュアクセス完了フラグをＯＮとする条件は、キャッシュコントロールレジスタを使用して設定する等の方法が挙げられる。条件には、例えば、キャッシュライン中の全てのデータへのアクセスを１度以上行った場合、キャッシュライン中のｎバイト目のデータをアクセスした場合などが挙げられるが、設定方法、設定条件などは上記以外でも良い。
【００７４】
第１のキャッシュ３２をプロセッサ１への読出し用領域とプロセッサ１からの書込み用領域に分けた第６の実施例を図１２を用いて説明する。図１２は、第１のキャッシュ３２が読出し用領域(読出し用キャッシュ)と書込み用領域（書込み用キャッシュ）に分かれている場合のフローチャートである。本実施例では、データ書込み専用のキャッシュ領域が用意されている。そのため、本実施例ではこれまでの実施例と書込み動作のみが異なってくる。
【００７５】
書込み動作時に、まず、第１のキャッシュ３２の読出し用キャッシュにヒットするか否かを判定する（１３０）。ヒットした場合、キャッシュに書き込み（１３１）、同時に、メモリへも書込みを行なう（１３２）。読出し用キャッシュでヒットしない場合、引き続いて、書込み用キャッシュにヒットするか否かの判定を行なう（１３３）。ここで、ヒットした場合、書込み用キャッシュに書き込む（１３４）。読出し用キャッシュでヒットしない場合、引き続いて、第２のキャッシュ６にヒットするか否かの判定を行なう（１３５）。ヒットした場合、第２のキャッシュ動作を行ない（１３７）、ヒットしない場合、第１のキャッシュ３２の書込みキャッシュに書き込む（１３６）。
【００７６】
第１から第５の実施例においては、第１のキャッシュ３２が読出しと書込みを行なう場合について説明したが、ライトスルーの場合もあり得る。
【００７７】
また、以上の実施例においてはＭＰＥＧの復号化装置の場合に限って説明してきたが、本発明の第１のキャッシュ３２と第２のキャッシュ６を用いるという構成はＭＰＥＧの符号化装置にも適用可能である。
【図面の簡単な説明】
【００７８】
【図１】本発明に係るデータ処理装置の実施の形態を説明するための概略図であって、（ａ）は復号化器の構成を示す図、（ｂ）は本発明によるキャッシュ装置を説明するための図。
【図２】図１のデータ処理装置の構成を説明するためのブロック図。
【図３】本発明の第１の実施例を説明するためのブロック図。
【図４】論理アドレスによる選択時の論理メモリ空間状況を説明するための概念図であって、（ａ）は本発明によるプロセッサの論理アドレスを示す図、（ｂ）は本発明による論理メモリ空間を示す図。
【図５】論理空間・物理空間の変換を説明するための概念図。
【図６】第１の実施例における、アドレスによるキャッシュ選択の読出し動作を説明するためのフローチャート。
【図７】第１の実施例における、アドレスによるキャッシュ選択の読出し動作を説明するための別のフローチャート。
【図８】第１の実施例における、アドレスによるキャッシュ選択の書込み動作を説明するためのフローチャート。
【図９】第１の実施例における、アドレスによるキャッシュ選択の書込み動作を説明するための別のフローチャート。
【図１０】本発明の第５の実施例を説明するための、動き補償処理におけるデータアクセスの概念図。
【図１１】第５の実施例における動き補償の動作を説明するためのフローチャート。
【図１２】本発明の第６の実施例を説明するためのフローチャート。
【図１３】第１の実施例におけるキャッシュの動作について概要を説明するための概要図。
【図１４】本発明の第２の実施例を説明するためのブロック図。
【図１５】本発明の第３の実施例を説明するためのブロック図。
【図１６】本発明の第４の実施例を説明するためのブロック図。
【符号の説明】
【００７９】
１…プロセッサ、２…キャッシュ装置、３…バスステートコントローラ、４…メモリインタフェース、６…第２のキャッシュ領域、８…第２のキャッシュＴＬＢ、９…キャッシュ・ＴＬＢコントローラ、１２…データ用アドレス線、１３…データ用読出しデータ線、１４…データ用書込みデータ線、１５，１８…アドレス線、１６，１９…読出し用データ線、１７，２０…書込み用データ線、２２…論理アドレス、２４…ＭＭＵ、３２…第１のキャッシュ領域、３３…第１のキャッシュＴＬＢ、３４…キャッシュセレクタ制御線、３５，３６…セレクタ、４０…主記憶装置、１５２…可変長復号化器、１５３…逆量子化器、１５４…逆ＤＣＴ変換器、１５６…フレームメモリ、１５７…動き補償部、１５８…加算器、２００…プロセッサコア。
【図１】
2005102144.tif 000003
【図２】
2005102144.tif 000004
【図３】
2005102144.tif 000005
【図４】
2005102144.tif 000006
【図５】
2005102144.tif 000007
【図６】
2005102144.tif 000008
【図７】
2005102144.tif 000009
【図８】
2005102144.tif 000010
【図９】
2005102144.tif 000011
【図１０】
2005102144.tif 000012
【図１１】
2005102144.tif 000013
【図１２】
2005102144.tif 000014
【図１３】
2005102144.tif 000015
【図１４】
2005102144.tif 000016
【図１５】
2005102144.tif 000017
【図１６】
2005102144.tif 000018