(57)【要約】【課題】メモリに配置されたバッファを介したデータ転送において、データの種類に依存しない、適用範囲の広い、メモリアクセスの削減が可能なデータ処理装置を提供する。【解決手段】複数のデータ処理部（１１〜１ｎ）と、複数のデータ処理部（１１〜１ｎ）が共通にアクセスするメモリ（４）とを有し、複数のデータ処理部（１１〜１ｎ）が、メモリ（４）を介して転送データを転送するデータ処理装置であって、メモリ（４）に、転送データと、転送データの圧縮データとを保持する。そして、データのリード要求があると、圧縮データを展開し、展開データを展開データバッファ（５）に格納する。圧縮データを展開している間は、メモリ（４）から元のデータをリードし、展開データが展開データバッファ（５）に格納された以降は、展開データバッファ（５）から展開データをリードする。【選択図】図１
2008083772.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ処理部と、前記複数のデータ処理部が共通にアクセスするメモリとを有し、前記複数のデータ処理部が、前記メモリを介して転送データを転送するデータ処理装置であって、
前記メモリに、前記転送データと、前記転送データの圧縮データとを保持することを特徴とするデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置であって、
前記転送データが格納される領域情報を保持する記憶素子ＴＡＧと、
前記圧縮データのアドレスを保持する記憶素子ＣＡＤＲと、
前記転送データを保持する記憶素子ＤＡＴＡと、
前記転送データが有効か無効かを示す状態を保持する記憶素子ＤＶと、
前記転送データが展開中か展開中でないかを示す状態を保持する記憶素子ＳＴと、
が組となって構成されるエントリを複数有する展開データバッファを備えることを特徴とするデータ処理装置。
【請求項３】
請求項２に記載のデータ処理装置であって、
前記転送データの圧縮データを生成して前記メモリにライトする時、前記展開データバッファの前記複数のエントリの中から１つのエントリを選択し、この選択されたエントリの記憶素子ＴＡＧ、および記憶素子ＣＡＤＲに前記転送データが格納される領域情報と前記圧縮データのアドレスとをそれぞれ格納することを特徴とするデータ処理装置。
【請求項４】
請求項３に記載のデータ処理装置であって、
前記データ処理部が転送データを前記メモリからリードする時、前記複数のエントリから、その記憶素子ＴＡＧが示す領域が転送データのアドレスを含むエントリを検索し、
該当するエントリが存在した場合、
該当するエントリの記憶素子ＣＡＤＲ、記憶素子ＤＶ、記憶素子ＳＴをリードし、
リードした記憶素子ＤＶが無効を示す状態、かつ、リードした記憶素子ＳＴが展開中でないことを示す状態の場合、記憶素子ＣＡＤＲが示すアドレスにある圧縮データの展開を開始すると同時に、該当するエントリの記憶素子ＳＴに展開中を示す状態をセットし、展開データの生成が完了すると、該当するエントリの記憶素子ＤＡＴＡに展開データを格納すると同時に、該当するエントリの記憶素子ＤＶに有効を示す状態をセットすることを特徴とするデータ処理装置。
【請求項５】
請求項４に記載のデータ処理装置であって、
前記データ処理部が転送データを前記メモリからリードする時、前記複数のエントリから、その記憶素子ＴＡＧが示す領域が転送データのアドレスを含むエントリを検索し、
該当するエントリが存在した場合、該当するエントリの記憶素子ＤＶをリードし、
リードした記憶素子ＤＶが有効の状態を示す場合、前記データ処理部は該当するエントリの記憶素子ＤＡＴＡから展開データをリードし、
リードした記憶素子ＤＶが無効を示す状態の場合、又は該当するエントリが存在しなかった場合、前記データ処理部は前記メモリから前記転送データをリードすることを特徴とするデータ処理装置。
【請求項６】
複数のデータ処理部と、前記複数のデータ処理部が共通にアクセスするメモリとを有し、前記複数のデータ処理部が、前記メモリを介して転送データを転送するデータ処理装置であって、
前記メモリに、前記転送データと、前記転送データの圧縮データと、前記圧縮データを展開するための情報である展開ディスクリプタを保持することを特徴とするデータ処理装置。
【請求項７】
請求項６に記載のデータ処理装置であって、
前記転送データが格納される領域情報を保持する記憶素子ＴＡＧと、
前記展開ディスクリプタのアドレスを保持する記憶素子ＣＡＤＲと、
前記転送データを保持する記憶素子ＤＡＴＡと、
前記転送データが有効か無効かを示す状態を保持する記憶素子ＤＶと、
前記転送データが展開中か展開中でないかを示す状態を保持する記憶素子ＳＴと、
が組となって構成されるエントリを複数有する展開データバッファを備えることを特徴とするデータ処理装置。
【請求項８】
請求項７に記載のデータ処理装置であって、
前記転送データの圧縮データを生成して前記メモリにライトする時、前記展開データバッファの前記複数のエントリの中から１つのエントリを選択し、この選択されたエントリの記憶素子ＴＡＧ、および記憶素子ＣＡＤＲに前記転送データが格納される領域情報と前記展開ディスクリプタのアドレスとをそれぞれ格納することを特徴とするデータ処理装置。
【請求項９】
請求項８に記載のデータ処理装置であって、
前記データ処理部が転送データを前記メモリからリードする時、前記複数のエントリから、その記憶素子ＴＡＧが示す領域が転送データのアドレスを含むエントリを検索し、
該当するエントリが存在した場合、
該当するエントリの記憶素子ＣＡＤＲ、記憶素子ＤＶ、記憶素子ＳＴをリードし、
リードした記憶素子ＤＶが無効を示す状態、かつ、リードした記憶素子ＳＴが展開中でないことを示す状態の場合、記憶素子ＣＡＤＲが示すアドレスにある展開ディスクリプタの内容に従い圧縮データの展開を開始すると同時に、該当するエントリの記憶素子ＳＴに展開中を示す状態をセットし、展開データの生成が完了すると、該当するエントリの記憶素子ＤＡＴＡに展開データを格納すると同時に、該当するエントリの記憶素子ＤＶに有効を示す状態をセットすることを特徴とするデータ処理装置。
【請求項１０】
請求項９に記載のデータ処理装置であって、
前記データ処理部が転送データを前記メモリからリードする時、前記複数のエントリから、その記憶素子ＴＡＧが示す領域が転送データのアドレスを含むエントリを検索し、
該当するエントリが存在した場合、該当するエントリの記憶素子ＤＶをリードし、
リードした記憶素子ＤＶが有効を示す状態の場合、前記データ処理部は該当するエントリの記憶素子ＤＡＴＡから展開データリードし、
リードした記憶素子ＤＶが無効を示す状態の場合、又は該当するエントリが存在しなかった場合、前記データ処理部は前記メモリから前記転送データをリードすることを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置の技術に関し、特に、複数のデータ処理部間のデータ転送に適用して有効な技術に関する。
【背景技術】
【０００２】
近年、情報機器の高性能化、多機能化に伴い、これらの機器に搭載されるＳｏＣ（Ｓｙｓｔｅｍｓ  ｏｎ  ａ  Ｃｈｉｐ）が処理するデータ量も増大している。このような、増大するデータ処理に対応するため、近年のＳｏＣには複数のデータ処理部が並列にデータ処理を行い、処理されたデータをお互いに転送しながら全体の処理を進めていく構成が採られる。
【０００３】
ＳｏＣ内の複数のデータ処理部間のデータ転送には、そのデータ処理タイミングの違いを隠蔽するため、メモリにバッファを配置し、このバッファを介してデータ転送が行われる。バッファを配置するメモリは、容量を確保するため、ＳｏＣに外付けのＳＤＲＡＭ等の外部メモリを使用することが一般的である。ＳｏＣと外部メモリを接続するピン数に限りがあることから、ＳｏＣと外部メモリ間のデータ転送スループットは制約されており、システムの性能を向上させるには、この制約を回避することが必要になる。
【０００４】
例えば、特許文献１（特開２００２−１４０２３２号公報）には、マルチプロセッサシステムにおける共有キャッシュの各ラインに、そのラインのデータが複数のプロセッサで共有されていることを示す共有ビットＳを備え、ラインを置換する際、Ｓの値を参照し、共有されていない方のラインを置換する方式が提案されている。この方式により、複数のプロセッサで共有されているデータを優先して共有キャッシュに保持して複数のプロセッサのデータ転送に伴う外部メモリアクセスを削減し、ＳｏＣと外部メモリ間のデータ転送スループットの制約を回避することができる。
【特許文献１】特開２００２−１４０２３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、前記特許文献１に開示されている技術は、複数のプロセッサで共有するデータの共有キャッシュのヒット率により、効果が大きく変化する。例えば、映像のストリーミングデータといった再利用性が無いデータ処理に適用する場合、共有キャッシュのヒット率は小さくなり、前記特許文献１に開示されている技術の効果は小さい。
【０００６】
そこで、本発明の目的は、上記課題を解決し、メモリに配置されたバッファを介したデータ転送において、データの種類に依存しない、適用範囲の広い、メモリアクセスの削減が可能なデータ処理装置を提供することにある。
【０００７】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【０００９】
上記目的を達成するための手段として、本発明では、複数のデータ処理部と、前記複数のデータ処理部が共通にアクセスするメモリとを有し、前記複数のデータ処理部が、前記メモリを介して転送データを転送するデータ処理装置であって、前記メモリに、前記転送データと、前記転送データの圧縮データとを保持することを特徴とする。
【００１０】
さらに本発明では、前記転送データが格納される領域情報を保持する記憶素子ＴＡＧと、前記圧縮データのアドレスを保持する記憶素子ＣＡＤＲと、前記転送データを保持する記憶素子ＤＡＴＡと、前記転送データが有効か無効かを示す状態を保持する記憶素子ＤＶと、前記転送データが展開中か展開中でないかを示す状態を保持する記憶素子ＳＴとが組となって構成されるエントリを複数有する展開データバッファを備えることを特徴とする。
【００１１】
さらに本発明では、前記転送データの圧縮データを生成して前記メモリにライトする時、前記展開データバッファの前記複数のエントリの中から１つのエントリを選択し、この選択されたエントリのＴＡＧ、およびＣＡＤＲに前記転送データが格納される領域情報と前記圧縮データのアドレスとをそれぞれ格納することを特徴とする。
【００１２】
さらに本発明では、前記データ処理部が転送データを前記メモリからリードする時、前記複数のエントリから、そのＴＡＧが示す領域が転送データのアドレスを含むエントリを検索し、該当するエントリが存在した場合、該当するエントリのＣＡＤＲ、ＤＶ、ＳＴをリードし、リードしたＤＶが無効を示す状態、かつ、リードしたＳＴが展開中でないことを示す状態の場合、ＣＡＤＲが示すアドレスにある圧縮データの展開を開始すると同時に、該当するエントリのＳＴに展開中を示す状態をセットし、展開データの生成が完了すると、該当するエントリのＤＡＴＡに展開データを格納すると同時に、該当するエントリのＤＶに有効を示す状態をセットすることを特徴とする。
【００１３】
さらに本発明では、前記データ処理部が転送データを前記メモリからリードする時、前記複数のエントリから、そのＴＡＧが示す領域が転送データのアドレスを含むエントリを検索し、該当するエントリが存在した場合、該当するエントリのＤＶをリードし、リードしたＤＶが有効の状態を示す場合、前記データ処理部は該当するエントリのＤＡＴＡから展開データをリードし、リードしたＤＶが無効を示す状態の場合、又は該当するエントリが存在しなかった場合、前記データ処理部は前記メモリから前記転送データをリードすることを特徴とする。
【００１４】
上記目的を達成するための別の手段として、本発明では、複数のデータ処理部と、前記複数のデータ処理部が共通にアクセスするメモリとを有し、前記複数のデータ処理部が、前記メモリを介して転送データを転送するデータ処理装置であって、前記メモリに、前記転送データと、前記転送データの圧縮データと、前記圧縮データを展開するための情報である展開ディスクリプタを保持することを特徴とする。
【００１５】
さらに本発明では、前記転送データが格納される領域情報を保持する記憶素子ＴＡＧと、前記展開ディスクリプタのアドレスを保持する記憶素子ＣＡＤＲと、前記転送データを保持する記憶素子ＤＡＴＡと、前記転送データが有効か無効かを示す状態を保持する記憶素子ＤＶと、前記転送データが展開中か展開中でないかを示す状態を保持する記憶素子ＳＴとが組となって構成されるエントリを複数有する展開データバッファを備えることを特徴とする。
【００１６】
さらに本発明では、前記転送データの圧縮データを生成して前記メモリにライトする時、前記展開データバッファの前記複数のエントリの中から１つのエントリを選択し、この選択されたエントリのＴＡＧ、およびＣＡＤＲに前記転送データが格納される領域情報と前記ディスクリプタのアドレスとをそれぞれ格納することを特徴とする。
【００１７】
さらに本発明では、前記データ処理部が転送データを前記メモリからリードする時、前記複数のエントリから、そのＴＡＧが示す領域が転送データのアドレスを含むエントリを検索し、該当するエントリが存在した場合、該当するエントリのＣＡＤＲ、ＤＶ、ＳＴをリードし、リードしたＤＶが無効を示す状態、かつ、リードしたＳＴが展開中でないことを示す状態の場合、ＣＡＤＲが示すアドレスにある展開ディスクリプタの内容に従い圧縮データの展開を開始すると同時に、該当するエントリのＳＴに展開中を示す状態をセットし、展開データの生成が完了すると、該当するエントリのＤＡＴＡに展開データを格納すると同時に、該当するエントリのＤＶに有効を示す状態をセットすることを特徴とする。
【００１８】
さらに本発明では、前記データ処理部が転送データを前記メモリからリードする時、前記複数のエントリから、そのＴＡＧが示す領域が転送データのアドレスを含むエントリを検索し、該当するエントリが存在した場合、該当するエントリのＤＶをリードし、リードしたＤＶが有効を示す状態の場合、前記データ処理部は該当するエントリのＤＡＴＡから展開データリードし、リードしたＤＶが無効を示す状態の場合、又は該当するエントリが存在しなかった場合、前記データ処理部は前記メモリから前記転送データをリードすることを特徴とする。
【発明の効果】
【００１９】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００２０】
本発明によれば、データ処理部がメモリ内のデータをリードする時、そのデータの圧縮データを随時展開して読み出すため、データの特徴に関係なく、データを圧縮した分メモリアクセス量を削減することが出来る。
【００２１】
また、本発明によれば、圧縮データの展開に、展開ディスクリプタを使用することにより、圧縮率やフォーマットの異なる圧縮データを取り扱うことが出来る。
【００２２】
また、本発明によれば、圧縮データが展開されて、展開データが展開データバッファに格納されるまでの間は圧縮しない元のデータを読み出すことにより、圧縮データを展開する際のレイテンシを隠蔽し、リアルタイム性の高いデータ転送にも適用出来る。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２４】
（第一の実施の形態）
図１は、本発明の第一の実施の形態であるデータ処理装置の全体構成を示す図である。
【００２５】
本実施の形態のデータ処理装置は、複数のデータ処理部１（１１）、データ処理部２（１２）、…、データ処理部ｎ（１ｎ）と、データ圧縮部（２）と、メモリコントローラ（３）と、メモリ（４）と、展開データバッファ（５）と、ヒット判定部（６）と、データ展開部（７）と、バス（８）などから構成される。
【００２６】
データ処理部１（１１）、データ処理部２（１２）、…、データ処理部ｎ（１ｎ）は、それぞれバス（８）、メモリコントローラ（３）を経由して、メモリ（４）に格納される転送データをリード、およびライトしながらデータ処理を行う。なお、データ処理部の具体例は、ＣＰＵや特定処理に特化した演算器等である。また、本実施の形態ではこれらのデータ処理部はバイトアドレッシングにてメモリ（４）のリード、およびライトを行うものとする。
【００２７】
バス（８）には、データ処理部１（１１）、データ処理部２（１２）、…、データ処理部ｎ（１ｎ）、メモリコントローラ（３）、データ圧縮部（２）、ヒット判定部（６）、データ展開部（７）、展開データバッファ（５）が接続され、これらの間のデータ転送を行う。なお、バス（８）は、アドレス、制御信号、データを含むが、本実施の形態ではこれらを集約して図示している。また、本実施の形態ではバス（８）はアドレス、データ共３２ビット幅のバスとしている。
【００２８】
メモリコントローラ（３）は、バス（８）上のリード、およびライト要求をデコードし、メモリ（４）のインターフェースに合わせた信号をメモリ（４）に入出力して、バス（８）のリード要求に対応するデータをメモリ（４）から読み出す、あるいは、バス（８）のライトデータをメモリ（４）にライトする。また、メモリコントローラ（３）は、ヒット判定部（６）からのリード要求マスク信号（１０）がアサートされている時、バス（８）のリード要求が無視され、代わりに展開データバッファ（５）からデータが読み出される。
【００２９】
展開データバッファ（５）は、展開データの領域情報を保持する記憶素子ＴＡＧと、圧縮データのアドレスを保持する記憶素子ＣＡＤＲと、展開データを保持する記憶素子ＤＡＴＡと、記憶素子ＤＡＴＡが有効か無効かを示を保持する記憶素子ＤＶ（１：有効、０：無効）と、展開データが展開中か展開中でないかを示す状態を保持する記憶素子ＳＴ（１：展開中、０：展開中でない）、の組から構成されるエントリを複数有する。以下において、それぞれの記憶素子は、ＴＡＧ、ＣＡＤＲ、ＤＡＴＡ、ＤＶ、ＳＴと記述する。なお、本実施の形態では、展開データバッファ（５）は４つのエントリ０〜３を持つとする。さらに、本実施の形態では、展開データは２５６Ｂｙｔｅの単位に分割されてＤＡＴＡに保持されるとする。従って、展開データの領域情報としてＴＡＧにはアドレスの上位９〜３２ビットが格納される。
【００３０】
さらに、展開データバッファ（５）は、バス（８）にリード要求があると、リードアドレスの９〜３２ビットと複数エントリのＴＡＧとの値を比較し、一致したＴＡＧがあれば、そのエントリのＴＡＧ、ＳＴ、ＤＶ、ＣＡＤＲ、それぞれ信号（１７）、信号（１８）、信号（１３）、信号（１５）に出力し、２５６ＢｙｔｅのＤＡＴＡから、リードアドレスの下位１〜８ビットによって選択される４Ｂｙｔｅデータをバス（８）のデータに出力し、一致したＴＡＧが存在することを示すヒット信号（１６）に１を出力する。なお、比較の結果、一致したＴＡＧが無い場合、ヒット信号（１６）には０を出力する。
【００３１】
さらに、展開データバッファ（５）は、展開データライトバス（１４）にライト要求があると、ライトアドレスと複数エントリのＴＡＧとの値を比較し、一致したＴＡＧがあれば、そのエントリのＳＴ、ＤＶおよび、ＤＡＴＡに展開データライトバス（１４）のライトデータをそれぞれライトする。なお、比較の結果、一致したＴＡＧが無い場合、ＳＴ、ＤＶ、ＤＡＴＡに値はライトされない。
【００３２】
データ圧縮部（２）は、メモリ（４）から展開データをリードし、その圧縮データを生成し、メモリ（４）にその圧縮データをライトする。さらにデータ圧縮部（７）は、データを圧縮する際、信号（９）を用いて、展開データバッファの複数エントリ中から１つのエントリを選択し、選択されたエントリのＴＡＧおよびＣＡＤＲに展開データのアドレスの９〜３２ビット、およびその圧縮データのアドレスをそれぞれライトする。
【００３３】
ヒット判定部（６）は、展開データバッファ（５）からのヒット信号（１６）、ＳＴ読み出し信号（１８）、ＤＶ読み出し信号（１３）、をデコードし、リード要求マスク信号（１０）、および展開開始信号（２１）を出力する。
【００３４】
要求マスク信号（１０）の論理式は、
要求マスク信号（１０）＝（ヒット信号（１６）＝＝１）＆＆（ＤＶ＝＝１）
となる。また、展開開始信号（２１）の論理式は、
展開開始信号（２１）＝（ヒット信号（１６）＝＝１）＆＆（ＤＶ＝＝０）
＆＆（ＳＴ＝＝０）
となる。
【００３５】
データ展開部（７）は、展開開始信号（２１）アサート時のＴＡＧ読み出し信号（１７）、ＣＤＣＲ読み出し信号（１５）を保持すると同時に、展開データライトバス（１４）経由で、データ展開部（７）に保持したＴＡＧ読み出し信号と一致するＴＡＧを持つエントリのＳＴに１をセットし、データ展開部（７）に保持したＣＤＣＲ読み出し信号が示すアドレスにある圧縮データをバス（８）を経由してメモリからリードし圧縮データを展開する。圧縮データの展開が終了すると、展開データライトバス（１４）経由で、データ展開部（７）に保持したＴＡＧ読み出し信号と一致するＴＡＧを持つエントリのＤＶ、ＤＡＴＡに１および展開データをライトする。なお、展開データライトバス（１４）は、アドレス、制御信号、ライトデータを含み、さらにライトデータはＳＴ、ＤＶ、ＤＡＴＡに細分されるが、本実施の形態ではこれらを集約して図示している。
【００３６】
以上説明した、本発明の第一の実施の形態におけるデータ処理装置の動作を、図２〜６を用いて説明する。
【００３７】
図２は、本発明の第一の実施の形態におけるデータ処理装置が扱うデータのメモリ（４）上の配置例である。アドレス１０００〜１０ＦＣにデータＤ０（２５６Ｂｙｔｅ）が、アドレス１１００〜１１ＦＣにデータＤ１（２５６Ｂｙｔｅ）が、それぞれ配置されている。なお、本実施の形態ではアドレスは１６進数表記を用いる。データＤ０、Ｄ１がライトされる時、データ圧縮部（２）により、一例として一律１／１６に圧縮された圧縮データＣＤ０（１６Ｂ）、ＣＤ１（１６Ｂ）が生成され、アドレス２０００〜２００Ｃ、２０１０〜２０１Ｃのアドレスにそれぞれライトされる。さらに、データ圧縮部（２）は、展開データバッファ（５）のエントリ０、エントリ１のＴＡＧ、ＣＡＤＲをライトし、展開データバッファ（５）は図３に示す状態となる。
【００３８】
図４は、データ処理部１（１１）がアドレス１０００〜１０ＦＣのデータＤ０（２５６Ｂｙｔｅ）をリードする時のタイミングチャートである。なお、本タイミングチャートでは、データ処理部１（１１）はアドレス１０００から順次４Ｂｙｔｅデータが一定周期（２０サイクル）でリードを行う例を示す。
【００３９】
サイクル１にて、データ処理部１（１１）がアドレス１０００のデータのリード要求を出力する。なお、アドレス、データの各ドライバの表記は、ＤＰ：データ処理部１（１１、ＤＥ：データ展開部（７）、ＭＣ：メモリコントローラ（３）、ＣＣ：展開データバッファ（５）、とする。同サイクルにて、前述の展開データバッファ（５）動作、およびヒット判定部（６）の展開開始信号（２１）のアサート条件に従い、展開開始信号（２１）がアサートされる。
【００４０】
展開開始信号のアサートを受け、サイクル２からデータ展開部（７）がアドレス２０００から２００Ｆの圧縮データＣＤ０のリード、および展開を開始する。続くサイクル３にて、前述の展開データバッファ（５）および、データ展開部（７）の動作より、展開データバッファ（５）のエントリ０のＳＴに１がセットされ、図５に示す状態となる。サイクル２〜１３までの間にデータ展開部（７）はＣＤ０を４Ｂ単位で４回リードし、続くサイクル１４〜３９の間にＣＤ０を展開しＤ０を生成する。
【００４１】
データ展開部（７）がＣＤ０を展開する間、サイクル２０にて、データ処理部１（１１）がアドレス１００４のデータのリード要求を出力する。サイクル２０では、エントリ０のＳＴに１がセットされていることから、前述のヒット判定部（６）の展開開始信号（２１）のアサート条件より、展開開始信号（２１）がアサートされて二重に圧縮データの展開が開始されることはない。サイクル３９にてＣＤ０からＤ０の展開が終了し、展開データバッファ（５）のエントリ０のＤＡＴＡにＤ０が格納され、ＤＶに１がセットされる。この時の展開データバッファ（５）の状態を図６に示す。
【００４２】
続くサイクル４０にて、データ処理部１（１１）がアドレス１００８のデータのリード要求を出力する。前述のヒット判定部（６）のリード要求マスク信号（１０）のアサート条件に従い、リード要求マスク信号（１０）がアサートされる。リード要求マスク信号（１０）がアサートされたため、図１の説明にて記載したメモリコントローラ（３）、および展開データバッファ（５）の動作により、続くサイクル４１にて展開データバッファ（５）よりデータＤ０（２）がリードされる。
【００４３】
同様にアドレス１００Ｃ以降のデータも展開データバッファ（５）より順次リードされ、サイクル５１００にてＤ０の最終データのリード要求が出され、続くサイクル５１０１にて対応する最終データがリードされる。
【００４４】
以上説明の通り、本実施の形態によると、２５６ＢｙｔｅのデータＤ０のリードに必要なメモリアクセスは、５回となり、本発明を使用しない場合の６４回と比較して、メモリアクセスを５／６４に削減できる。さらに、また、本実施の形態によると、Ｄ０がリアルタイム性を必要とするデータであった場合でも、ＣＤ０からＤ０を展開する間にＤ０のアクセスが待たされることは無く、リアルタイム性が保証される。
【００４５】
（第二の実施の形態）
本発明の第二の実施の形態であるデータ処理装置の全体構成は、前記第一の実施の形態であるデータ処理装置の全体構成（図１）と同一であるため、図１を用いて詳細を説明する。また、データ処理部１（１１）、データ処理部２（１２）、…、データ処理部ｎ（１ｎ）、バス（８）、メモリコントローラ（３）、メモリ（４）、ヒット判定部（６）、については前記第一の実施の形態であるデータ処理装置の動作と同一とし、第二の実施の形態の説明においては詳細な動作説明は省略する。
【００４６】
展開データバッファ（５）は、展開データの領域情報を保持するＴＡＧと、圧縮データを展開するための情報である展開ディスクリプタのアドレスを保持するＣＡＤＲと、展開データを保持するＤＡＴＡと、ＤＡＴＡが有効か無効かを示す状態を保持するＤＶ（１：有効、０：無効）と、展開データが展開中か展開中でないかを示す状態を保持するＳＴ（１：展開中、０：展開中でない）、の組から構成されるエントリを複数有する。なお、本実施の形態では、展開データバッファ（５）は４つのエントリ０〜３を持つとする。さらに、本実施の形態では、展開データは２５６Ｂｙｔｅの単位に分割されてＤＡＴＡに保持されるとする。従って、展開データの領域情報としてＴＡＧにはアドレスの上位９〜３２ビットが格納される。
【００４７】
さらに、展開データバッファ（５）は、バス（８）にリード要求があると、リードアドレスの９〜３２ビットと複数エントリのＴＡＧとの値を比較し、一致したＴＡＧがあれば、そのエントリのＴＡＧ、ＳＴ、ＤＶ、ＣＡＤＲ、それぞれ信号（１７）、信号（１８）、信号（１３）、信号（１５）に出力し、２５６ＢｙｔｅのＤＡＴＡから、リードアドレスの下位１〜８ビットによって選択される４Ｂｙｔｅデータをバス（８）のデータに出力し、一致したＴＡＧが存在することを示すヒット信号（１６）に１を出力する。なお、比較の結果、一致したＴＡＧが無い場合、ヒット信号（１６）には０を出力する。さらに、展開データバッファ（５）は、展開データライトバス（１４）にライト要求があると、ライトアドレスとの９〜３２ビットと複数エントリのＴＡＧとの値を比較し、一致したＴＡＧがあれば、そのエントリのＳＴ、ＤＶおよび、ＤＡＴＡに展開データライトバス（１４）のライトデータをそれぞれライトする。なお、比較の結果、一致したＴＡＧが無い場合、ＳＴ、ＤＶ、ＤＡＴＡに値はライトされない。
【００４８】
データ圧縮部（２）は、メモリ（４）から展開データをリードし、その圧縮データを生成し、メモリ（４）にその圧縮データ、および圧縮データの展開ディスクリプタをライトする。さらにデータ圧縮部（７）は、データを圧縮する際、信号（９）を用いて、展開データバッファの複数エントリ中から１つのエントリを選択し、選択されたエントリのＴＡＧおよびＣＡＤＲに展開データのアドレスの９〜３２ビット、およびその圧縮データの展開ディスクリプタのアドレスをそれぞれライトする。
【００４９】
データ展開部（７）は、展開開始信号（２１）アサート時のＴＡＧ読み出し信号（１７）、ＣＤＣＲ読み出し信号（１５）を保持すると同時に、展開データライトバス（１４）経由で、データ展開部（７）に保持したＴＡＧ読み出し信号と一致するＴＡＧを持つエントリのＳＴに１をセットし、データ展開部（７）に保持したＣＤＣＲ読み出し信号が示すアドレスにある展開ディスクリプタに従い、圧縮データをバス（８）を経由してメモリからリードし圧縮データを展開する。圧縮データの展開が終了すると、展開データライトバス（１４）経由で、データ展開部（７）に保持したＴＡＧ読み出し信号と一致するＴＡＧを持つエントリのＤＶ、ＤＡＴＡに１および展開データをライトする。なお、展開データライトバス（１４）は、アドレス、制御信号、ライトデータを含み、さらにライトデータはＳＴ、ＤＶ、ＤＡＴＡに細分されるが、本実施の形態ではこれらを集約して図示している。
【００５０】
以上説明した、本発明の第二の実施の形態におけるデータ処理装置の動作を、図７〜１１を用いて説明する。
【００５１】
図７は、本発明の第二の実施の形態におけるデータ処理装置が扱うデータのメモリ（４）上の配置例である。アドレス１０００〜１０ＦＣにデータＤ０（２５６Ｂｙｔｅ）が、アドレス１１００〜１１ＦＣにデータＤ１（２５６Ｂｙｔｅ）が、それぞれ配置されている。データＤ０、Ｄ１がライトされる時、データ圧縮部（２）により、一例として１／８と１／１６にそれぞれ圧縮された圧縮データＣＤ０（３２Ｂｙｔｅ）、ＣＤ１（１６Ｂｙｔｅ）が生成され、アドレス２０００〜２０１Ｃ、２０２０〜２０２Ｃにそれぞれライトされる。さらにデータ圧縮部（２）により、圧縮データＣＤ０（３２Ｂｙｔｅ）、ＣＤ１（１６Ｂｙｔｅ）の展開ディスクリプタＤＳ０、ＤＳ１がそれぞれ生成され、アドレス３０００〜３００Ｃ、３０１０〜３０１Ｃにそれぞれライトされる。
【００５２】
図８は、展開ディスクリプタＤＳ０、およびＤＳ１の詳細である。展開ディスクリプタＤＳ０は対応する圧縮データＣＤ０の先頭アドレス２０００、終了アドレス２０１Ｃ、フォーマット情報から構成される。同様に展開ディスクリプタＤＳ１は対応する圧縮データＣＤ１の先頭アドレス２０２０、終了アドレス２０２Ｃ、フォーマット情報から構成される。さらに、データ圧縮部（２）は、展開データバッファ（５）のエントリ０、エントリ１のＴＡＧ、ＣＡＤＲをライトし、展開データバッファ（５）は図９に示す状態となる。
【００５３】
図１０は、データ処理部１（１１）がアドレス１０００〜１０ＦＣのデータＤ０（２５６Ｂｙｔｅ）をリードする際、展開データバッファ（５）がＣＤ０からＤ０を展開するタイミングチャートである。
【００５４】
サイクル１にて、データ処理部１（１１）がアドレス１０００のデータのリード要求を出力する。同サイクルにて、前述の展開データバッファ（５）動作、および第一の実施の形態にて記述したヒット判定部（６）の展開開始信号（２１）のアサート条件に従い、展開開始信号（２１）がアサートされる。
【００５５】
展開開始信号のアサートを受け、前述の展開データバッファ（５）および、データ展開部（７）の動作より、サイクル２〜１１の間データ展開部（７）がアドレス３０００から３００Ｃの展開ディスクリプタＤＳ０をリードする。続くサイクル１２から３０の間、展開ディスクリプタＤＳ０が示すＣＤ０の先頭アドレス、および終了アドレスに従いアドレス２０００から２０１ＣのＣＤ０をリードする。続くサイクル３１から、展開ディスクリプタＤＳ０のフォーマット情報に従いＣＤ０からＤ０を展開する。
【００５６】
図１１は、データ処理部１（１１）がアドレス１１００〜１１ＦＣのデータＤ１（２５６Ｂｙｔｅ）をリードする際、展開データバッファ（５）がＣＤ１からＤ１を展開するタイミングチャートである。
【００５７】
サイクル１にて、データ処理部１（１１）がアドレス１１００のデータのリード要求を出力する。同サイクルにて、前述の展開データバッファ（５）動作、第一の実施の形態にて記述したヒット判定部（６）の展開開始信号（２１）のアサート条件に従い、展開開始信号（２１）がアサートされる。
【００５８】
展開開始信号のアサートを受け、本実施の形態にて記述した展開データバッファ（５）および、データ展開部（７）の動作より、サイクル２〜１１の間データ展開部（７）がアドレス３０１０から３０１Ｃの展開ディスクリプタＤＳ１をリードする。続くサイクル１２から２２の間、展開ディスクリプタＤＳ１が示すＣＤ１の先頭アドレス、および終了アドレスに従いアドレス２０２０から２０２ＣのＣＤ１をリードする。続くサイクル２３から、展開ディスクリプタＤＳ１のフォーマット情報に従いＣＤ１からＤ１を展開する。
【００５９】
以上図１０、図１１の説明の通り、本実施の形態によると、前記第一の実施の形態の効果に加え、圧縮率やファーマットの異なる圧縮方式を複数扱うことが出来るため、幅広いアプリケーションに適用が可能である。
【００６０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００６１】
本発明は、データ処理装置の技術に関し、特に、複数のデータ処理部間のデータ転送技術に利用可能である。
【図面の簡単な説明】
【００６２】
【図１】本発明の第一および第二の実施の形態であるデータ処理装置の全体構成を示す図である。
【図２】本発明の第一の実施の形態におけるデータ処理装置が扱うデータのメモリ上の配置例を示す図である。
【図３】本発明の第一の実施の形態におけるデータ処理装置が扱うデータメモリにライトされた時の展開データバッファの状態を示す図である。
【図４】本発明の第一の実施の形態におけるデータ処理装置において、データ処理部１がアドレス１０００〜１０ＦＣのデータＤ０をリードする時のタイミングチャートである。
【図５】本発明の第一の実施の形態におけるデータ処理装置において、図４のサイクル３における展開データバッファの状態を示す図である。
【図６】本発明の第一の実施の形態におけるデータ処理装置において、図４のサイクル３９における展開データバッファの状態を示す図である。
【図７】本発明の第二の実施の形態におけるデータ処理装置が扱うデータのメモリ上の配置例を示す図である。
【図８】本発明の第二の実施の形態におけるデータ処理装置において、展開ディスクリプタＤＳ０およびＤＳ１の詳細を示す図である。
【図９】本発明の第二の実施の形態におけるデータ処理装置が扱うデータメモリにライトされた時の展開データバッファの状態を示す図である。
【図１０】本発明の第二の実施の形態におけるデータ処理装置において、データ処理部１がアドレス１０００〜１０ＦＣのデータＤ０をリードする際、展開データバッファがＣＤ０からＤ０を展開するタイミングチャートである。
【図１１】本発明の第二の実施の形態におけるデータ処理装置において、データ処理部１がアドレス１１００〜１１ＦＣのデータＤ１をリードする際、展開データバッファがＣＤ１からＤ１を展開するタイミングチャートである。
【符号の説明】
【００６３】
１１〜１ｎ…データ処理部１〜ｎ、２…データ圧縮部、３…メモリコントローラ、４…メモリ、５…展開データバッファ、６…ヒット判定部、７…データ展開部、８…バス。
【図１】
2008083772.tif 000003
【図２】
2008083772.tif 000004
【図３】
2008083772.tif 000005
【図４】
2008083772.tif 000006
【図５】
2008083772.tif 000007
【図６】
2008083772.tif 000008
【図７】
2008083772.tif 000009
【図８】
2008083772.tif 000010
【図９】
2008083772.tif 000011
【図１０】
2008083772.tif 000012
【図１１】
2008083772.tif 000013