(57)【要約】【課題】圧縮情報の解凍処理をＤＭＡコントローラで行うことで、プログラム及びデータの張り替えシーケンスを簡略化できる。【解決手段】半導体集積回路装置は、ＣＰＵ１０と、圧縮データを有する第１のメモリ３０と、圧縮データの解凍データが転送される第２のメモリ２０と、圧縮データを解凍して解凍データを生成する解凍コントローラ５１を備え、解凍データを第２のメモリへＣＰＵを介さずに転送するＤＭＡコントローラ４０とを具備する。【選択図】      図１
2009053948.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
圧縮データを有する第１のメモリと、
前記圧縮データの解凍データが転送される第２のメモリと、
前記圧縮データを解凍して前記解凍データを生成する解凍コントローラを備え、前記解凍データを前記第２のメモリへ前記ＣＰＵを介さずに転送するＤＭＡコントローラと
を具備することを特徴とする半導体集積回路装置。
【請求項２】
前記ＤＭＡコントローラは、前記解凍データを転送する前に解凍後のサイズを出力するレジスタをさらに備えることを特徴とする請求項１に記載の半導体集積回路装置。
【請求項３】
前記解凍コントローラは、非圧縮ブロックと圧縮ブロックとパーサーとを有し、
前記パーサーは、前記圧縮データ内のブロック毎に前記非圧縮ブロック又は前記圧縮ブロックを選択することを特徴とする請求項１に記載の半導体集積回路装置。
【請求項４】
第１のメモリからＤＭＡコントローラに対象データが転送されるステップと、
前記対象データが圧縮データであるか否かを判断するステップと、
前記対象データが前記圧縮データである場合は前記圧縮データを前記ＤＭＡコントローラで解凍し、解凍データを生成するステップと、
前記解凍データを第２のメモリに転送するステップと、
前記解凍データの転送が完了した時点で、前記ＤＭＡコントローラがＣＰＵに完了割り込みを入れるステップと
を具備することを特徴とするデータ転送方法。
【請求項５】
前記対象データが前記圧縮データである場合は前記ＤＭＡコントローラ内のレジスタに解凍後のサイズを出力した後、前記解凍データを生成することを特徴とする請求項４に記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、解凍機能を有するＤＭＡ（Direct Memory Access）コントローラを備えた半導体集積回路装置及びこれを用いたデータ転送方法に関する。
【背景技術】
【０００２】
フラッシュＲＯＭやＳＤＲＡＭ等の配置メモリに配置されたプログラムやデータを実行メモリに転送して、高速で処理を実行する場合、ＤＭＡコントローラ（ＤＭＡＣ）等のデータ転送コントローラによって実行メモリへのデータ転送を実施する（例えば特許文献１参照）。この場合、配置メモリ上ではプログラムやデータ処理を行わないため、配置メモリにそのままのデータを置くことはメモリ資源の無駄使いとなる。このため、配置メモリには、可逆圧縮を施したプログラム及びデータを配置することがある。
【０００３】
データ転送に使用している従来のＤＭＡＣは、解凍機能を備えていない。このため、配置メモリに圧縮されたプログラムや圧縮されたデータを配置する手法をとる場合には、Ｆ／Ｗ（firmware）にて解凍処理を実施する必要があり、プログラム及びデータの張り替えシーケンスが複雑になってしまい、処理の負荷が重くなる。また、プログラム動作中にＦ／Ｗの張り替えが発生する場合には、張り替え時間に要する時間を極力抑える必要がある。また、解凍用のＦ／Ｗは圧縮できないため、メモリ資源の無駄使いにもつながる。
【特許文献１】特開平５−１６５７６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、圧縮情報の解凍処理をＤＭＡコントローラで行うことで、プログラム及びデータの張り替えシーケンスを簡略化できる半導体集積回路装置及びこれを用いたデータ転送方法を提供する。
【課題を解決するための手段】
【０００５】
本発明の第１の態様による半導体集積回路装置は、ＣＰＵと、圧縮データを有する第１のメモリと、前記圧縮データの解凍データが転送される第２のメモリと、前記圧縮データを解凍して前記解凍データを生成する解凍コントローラを備え、前記解凍データを前記第２のメモリへ前記ＣＰＵを介さずに転送するＤＭＡコントローラとを具備する。
【０００６】
本発明の第２の態様によるデータ転送方法は、第１のメモリからＤＭＡコントローラに対象データが転送されるステップと、前記対象データが圧縮データであるか否かを判断するステップと、前記対象データが前記圧縮データである場合は前記圧縮データを前記ＤＭＡコントローラで解凍し、解凍データを生成するステップと、前記解凍データを第２のメモリに転送するステップと、前記解凍データの転送が完了した時点で、前記ＤＭＡコントローラがＣＰＵに完了割り込みを入れるステップとを具備する。
【発明の効果】
【０００７】
本発明によれば、圧縮情報の解凍処理をＤＭＡコントローラで行うことで、プログラム及びデータの張り替えシーケンスを簡略化できる半導体集積回路装置及びこれを用いたデータ転送方法を提供できる。
【発明を実施するための最良の形態】
【０００８】
本発明の実施の形態を以下に図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００９】
［１］半導体集積回路装置の構成
図１は、本発明の一実施形態に係る半導体集積回路装置の構成図を示す。以下に、本発明の一実施形態に係る半導体集積回路装置の概略的な構成について説明する。
【００１０】
図１に示すように、半導体集積回路装置１は、ＣＰＵ（Central Processing Unit）１０、実行メモリ２０、配置メモリ３０、ＤＭＡコントローラ（ＤＭＡＣ）４０を備えている。
【００１１】
ＣＰＵ１０は、例えば実行メモリ２０等に保持されたプログラムを用いて各種の演算処理を行い、半導体集積回路装置１内の各ブロック（例えばＤＭＡコントローラ４０）の動作を制御する。
【００１２】
実行メモリ２０は、内部メモリ等で構成される。配置メモリ３０は、フラッシュＲＯＭやＳＤＲＡＭ等で構成される。この配置メモリ３０には、可逆圧縮されたプログラム及びデータが配置されている。配置メモリ３０内のプログラム及びデータは、ＤＭＡコントローラ４０を介して実行メモリ２０に転送される。
【００１３】
ＤＭＡコントローラ４０は、コントローラ部５０とレジスタ部６０とを有する。コントローラ部５０は、解凍コントローラ５１、スイッチＳＷ１、ＳＷ２を備えている。スイッチＳＷ１は、解凍コントローラ５１を介しない場合はａ端子側に接続し、解凍コントローラ５１を介する場合はｂ端子側に接続する。スイッチＳＷ２は、解凍後のサイズの計算のみで転送は行わない場合はＯＦＦにし、解凍転送を実施する場合はＯＮにする。スイッチＳＷ１、ＳＷ２の制御は、ＣＰＵ１０によって行われる。レジスタ部６０は、ディスティネーションサイズレジスタ６１、ソースサイズレジスタ６２、ディスティネーションアドレスレジスタ６３、ソースアドレスレジスタ６４、コントロールレジスタ６５、アクティブレジスタ６６を備えている。ディスティネーションサイズレジスタ６１及びディスティネーションアドレスレジスタ６３は、転送先（解凍後）のサイズ及びアドレスが設定される。ソースサイズレジスタ６２及びソースアドレスレジスタ６４は、転送元のサイズ及びアドレスが設定される。コントロールレジスタ６５は、「通常ＤＭＡ」及び「解凍ＤＭＡ」のいずれかを選択するスイッチ、「解凍サイズ出力」及び「解凍転送」のいずれかを選択するスイッチを有している。アクティブレジスタ６６は、コントロールレジスタ６５で選択された処理を制御する。
【００１４】
［２］解凍コントローラの構成
図２は、本発明の一実施形態に係る解凍コントローラの構成図を示す。以下に、本発明の一実施形態に係る解凍コントローラの概略的な全体構成について説明する。
【００１５】
図２に示すように、解凍コントローラ５１は、パーサー５２、非圧縮ブロック５３、ランレングス圧縮ブロック５４、ハフマン符号圧縮ブロック５５、スイッチＳＷ３、ＳＷ４を備えている。
【００１６】
パーサー５２は、モード選択機能を有している。このモード選択機能により、現状のブロックデータの圧縮形式（ランレングス圧縮／ハフマン符号圧縮／非圧縮）に基づき、スイッチＳＷ３、ＳＷ４により非圧縮ブロック５３、ランレングス圧縮ブロック５４、ハフマン符号圧縮ブロック５５の切り替えを行う。
【００１７】
非圧縮ブロック５３が選択された場合は、非圧縮データを解凍コントローラ５１からそのまま出力する。
【００１８】
ランレングス圧縮ブロック５４が選択された場合は、ランレングス復号化装置５６が選択される。このランレングス復号化装置５６によりランレングス圧縮されたデータが解凍され、解凍データが解凍コントローラ５１から出力される。
【００１９】
ハフマン符号圧縮ブロック５５が選択された場合は、ハフマン符号復号化装置５７が選択される。このハフマン符号復号化装置５７によりハフマン符号圧縮されたデータが解凍され、解凍データが解凍コントローラ５１から出力される。
【００２０】
尚、本実施形態では、圧縮ブロックとしてランレングス圧縮ブロック５４とハフマン符号圧縮ブロック５５の２種類を設けているが、他の圧縮方法を用いたブロックを用いてもよい。
【００２１】
［３］圧縮データフォーマット
図３は、本発明の一実施形態に係る圧縮データのフォーマットを示す。以下に、本発明の一実施形態のＤＭＡコントローラで扱うデータのフォーマットについて説明する。
【００２２】
圧縮データ全体のフォーマット１００は、複数のブロックＮ（Ｎ＝１、２、…）を有し、これら全体のブロック数１０１と解凍後のサイズ１０２が示されている。各ブロックは、例えば、非圧縮ブロックフォーマット７０、ランレングス圧縮ブロックフォーマット８０、ハフマン符号圧縮ブロックフォーマット９０のうちいずれかで構成されている。
【００２３】
非圧縮ブロックフォーマット７０は、モード選択７１、ブロックサイズ７２、非圧縮データ７３で構成される。ここで、モード選択７１とブロックサイズ７２とにより、ブロックヘッダが構成される。
【００２４】
ランレングス圧縮ブロックフォーマット８０は、モード選択８１、ブロックサイズ８２、リピート数８３、リピートデータ８４で構成される。ここで、モード選択８１とブロックサイズ８２とにより、ブロックヘッダが構成される。リピート数８３は、出力を繰り返す回数である。リピートデータ８４は、出力するデータである。
【００２５】
ハフマン符号圧縮ブロックフォーマット９０は、モード選択９１、ブロックサイズ９２、復号テーブル９３、圧縮データ９４で構成される。ここで、モード選択９１とブロックサイズ９２とにより、ブロックヘッダが構成される。復号テーブル９３は、データパターンの出現頻度が高い順に並んでおり、出現頻度の高いパターンに短い符号長のハフマン符号が割り当てられるように設定されている。この復号テーブル９３の割り当ては、圧縮ブロックフォーマット側で可変である。
【００２６】
このように、本実施形態では、シンプルなＨ／Ｗ（hardware）構成にて伸張を実現するため、図３に示すようなデータフォーマットとなる。０ｘ００のような固定データが繰り返されランレングスによる圧縮が有効な領域に対してはランレングス圧縮ブロックフォーマット８０となり、ハフマン符号による圧縮が有効な領域についてはハフマン符号圧縮ブロックフォーマット９０となる。どちらのブロック８０、９０でも圧縮率が悪くなるような領域については、圧縮を行わず、非圧縮ブロックフォーマット７０となる。
【００２７】
［４］ＣＰＵの処理フロー
図４は、本発明の一実施形態に係るＣＰＵ側の処理のフロー図を示す。以下に、本発明の一実施形態に係るホストＣＰＵ側の処理フローについて説明する。
【００２８】
まず、ＣＰＵ１０により、ソースアドレスレジスタ６４及びディスティネーションアドレスレジスタ６３に転送元のアドレス及び転送先のアドレスが設定される（ＳＴ１−１）。そして、現状のデータが圧縮データであるか否かが判断される（ＳＴ１−２）。
【００２９】
その結果、現状のデータが圧縮データでない場合は、解凍用のスイッチＳＷ２をＯＦＦにする（ＳＴ１−３）。そして、ソースサイズレジスタ６２及びディスティネーションサイズレジスタ６１に転送元のサイズ及び転送先のサイズが設定される（ＳＴ１−４）。その後、コントロールレジスタ６５で「通常ＤＭＡ」を選択し（ＳＴ１−５）、アクティブレジスタ６６をＯＮに設定する（ＳＴ１−１３）。これにより、通常ＤＭＡが実行され、実行メモリ２０へデータ転送が行われる。
【００３０】
一方、現状のデータが圧縮データである場合は、転送前に解凍後のサイズを知る必要があるか否かを判断する（ＳＴ１−６）。Ｆ／Ｗが転送先の領域に対しての動的な確保を行う等の理由により、解凍後のサイズを知る必要がある場合、コントロールレジスタ６５で「解凍サイズ出力」及び「解凍ＤＭＡ」を選択する（ＳＴ１−７）。そして、アクティブレジスタ６６をＯＮに設定する（ＳＴ１−８）。これにより、データ出力を行わずに解凍後のサイズのみをディスティネーションサイズレジスタ６１に出力することで、ユーザーは解凍後のサイズを知ることができる。そして、解凍サイズ出力が完了した時点で、ＤＭＡコントローラ４０はＣＰＵ１０に完了割り込みを入れる。このため、完了割り込みが発生しない場合は完了割り込み待ちを行い（ＳＴ１−９、ＳＴ１−１０）、完了割り込みが発生した場合は解凍後のサイズをチェックする（ＳＴ１−１１）。
【００３１】
次に、Ｆ／Ｗは転送先として確保が必要な領域を確保した後、ディスティネーションアドレスレジスタ６３に転送先のレジスタが設定され、コントロールレジスタ６５で「解凍転送」及び「解凍ＤＭＡ」を選択する（ＳＴ１−１２）。尚、解凍後のサイズを知る必要がない場合、上述するステップＳＴ１−７からＳＴ１−１１までが省略され、このステップＳＴ１−１２へと続く。
【００３２】
次に、アクティブレジスタ６６をＯＮに設定する（ＳＴ１−１３）。これにより、解凍及びＤＭＡ転送が実行され、解凍データが実行メモリ２０へ転送される。この転送が完了した時点で、ＤＭＡコントローラ４０はＣＰＵ１０に完了割り込みを入れる。このため、完了割り込みが発生しない場合は完了割り込み待ちを行い（ＳＴ１−１４、ＳＴ１−１５）、完了割り込みが発生した場合は終了となる。
【００３３】
［５］解凍コントローラの処理フロー
図５は、本発明の一実施形態に係る解凍コントローラの処理のフロー図を示す。以下に、本発明の一実施形態に係る解凍コントローラの処理フローについて説明する。このフローは、主に、図４のステップＳＴ１−１２、ＳＴ１−１３の解凍処理を実行するステップに相当する。
【００３４】
まず、解凍コントローラ５１に対する処理は、解凍後サイズの出力とデータ解凍とがある。そこで、解凍後サイズの出力であるか否かを判断する（ＳＴ２−１）。その結果、解凍後サイズの出力である場合は、コントロールレジスタ６５で「解凍サイズ出力」及び「解凍ＤＭＡ」を選択し、アクティブレジスタ６６をＯＮに設定する。これにより、解凍後のサイズをディスティネーションサイズレジスタ６１に出力する（ＳＴ２−２）。その後、アクティブレジスタ６６をＯＦＦにし（ＳＴ２−２６）、ＣＰＵ１０に完了割り込みを入れる（ＳＴ２−２７）。このようにして、解凍コントローラ４０の解凍後サイズの出力の処理フローが終了する。
【００３５】
一方、解凍コントローラ５１に対する処理がデータ解凍である場合、まず、現状のデータのトータルブロック数１０１を取り込む（ＳＴ２−３）。このトータルブロック数１０１をもとに残りのブロック数のカウントを始める（ＳＴ２−４）。そして、パーサー５２により、ブロック１についてモード選択を取り込み（ＳＴ２−５）、非圧縮ブロック５３、ランレングス圧縮ブロック５４、ハフマン符号圧縮ブロック５５の３つのいずれのモードであるかが判断される（ＳＴ２−６）。
【００３６】
非圧縮ブロック５３が選択された場合、次のように処理が行われる。まず、ブロックサイズ７２を取り込み（ＳＴ２−７）、残りのブロックサイズのカウントを始める（ＳＴ２−８）。そして、データ転送を行う（ＳＴ２−９）。その後、ソースアドレスレジスタ６４及びディスティネーションアドレスレジスタ６３の転送元アドレス及び転送先アドレスをインクリメントし（ＳＴ２−１０）、残りのブロックサイズ７２のデクリメントを行う（ＳＴ２−１１）。これらのフローを、残りのブロックサイズ７２が無くなるまで繰り返す。
【００３７】
ランレングス圧縮ブロック５４が選択された場合、次のように処理が行われる。まず、ブロックサイズ８２を取り込み（ＳＴ２−１２）、残りのブロックサイズのカウントを始める（ＳＴ２−１３）。そして、リピートデータを出力する（ＳＴ２−１４）。その後、ディスティネーションアドレスレジスタ６３の転送先アドレスをインクリメントし（ＳＴ２−１５）、残りのブロックサイズ８２のデクリメントを行う（ＳＴ２−１６）。これらのフローを、残りのブロックサイズ８２が無くなるまで繰り返す。
【００３８】
ハフマン符号圧縮ブロック５５が選択された場合、次のように処理が行われる。まず、ブロックサイズ（入力ビット数）９２を取り込み（ＳＴ２−１７）、復号テーブル９３の値を復号結果レジスタに設定する（ＳＴ２−１８）。そして、残りのブロックサイズ（入力ビット数）９２のカウントを始める（ＳＴ２−１９）。ハフマン符号復号化装置５７に１ビットずつ入力し、復号が完了するまで繰り返し（ＳＴ２−２０、ＳＴ２−２１）、復号結果を出力する（ＳＴ２−２２）。その後、ディスティネーションアドレスレジスタ６３の転送先アドレスをインクリメントし（ＳＴ２−２３）、残りのブロックサイズ９２のデクリメントを行う（ＳＴ２−２４）。これらのフローを、残りのブロックサイズ９２が無くなるまで繰り返す。
【００３９】
非圧縮ブロック５３、ランレングス圧縮ブロック５４、ハフマン符号圧縮ブロック５５の３つのいずれのモードにおいても、残りのブロックサイズ７２、８２、９２が無くなった場合、残りのブロック数１０１をデクリメントし（ＳＴ２−２５）、次のブロックのモード選択が行われる（ＳＴ２−５）。
【００４０】
残りのブロック数１０１が無くなった場合、アクティブレジスタ６６をＯＦＦにし（ＳＴ２−２６）、ＣＰＵ１０に完了割り込みを入れる（ＳＴ２−２７）。このようにして、解凍コントローラ４０のデータ解凍の処理フローが終了する。
【００４１】
［６］圧縮／解凍
本実施形態では、解凍コントローラ５１のデコード装置において、ランレングス方式とハフマン符号方式を用いている。
【００４２】
［６−１］ランレングス方式
（圧縮）
図６は、本発明の一実施形態に係るランレングス方式による圧縮を説明するための図を示す。以下に、ランレングス方式によるデータ圧縮についての概略を説明する。
【００４３】
ランレングスによるデータ圧縮方式は、あるビットパターンが続く場合に、その繰り返されるデータパターンと繰り返し回数との情報に変換することで、データを圧縮する。解凍の際には、繰り返すべきデータパターンを繰り返し回数だけ出力することで、圧縮データを伸長できる。
【００４４】
例えば、図６に示すように、プログラムコードにおいて、０ｘ００が１００バイト繰り返されるような領域が存在する場合、繰り返し回数を１００、繰り返しデータを００と変換することで、２バイトに圧縮できる。従って、プログラムコードにおいてあるデータパターンが繰り返されるような領域が存在する場合には、ランレングスによる圧縮が有効となる。
【００４５】
（解凍）
図７は、本発明の一実施形態に係るランレングス方式による解凍を説明するための図を示す。以下に、ランレングス方式によるデータ解凍について説明する。
【００４６】
図７に示すように、ランレングス復号化装置５６は、アウトプットカウンタ５６ａ、アウトプットデータ５６ｂを備えている。アウトプットカウンタ５６ａは、ランレングス圧縮ブロックフォーマット８０のリピート数８３をカウントする。アウトプットデータ５６ｂは、ランレングス圧縮ブロックフォーマット８０のリピートデータ８４を認識する。
【００４７】
例えば、リピート数８３を１００、リピートデータ８４を０ｘ００とする。このような場合、ランレングス復号化装置５６において、圧縮データのリピート数８３をアウトプットカウンタ５６ａで認識し、圧縮データのリピートデータ８４をアウトプットデータ５６ｂで認識する。そして、リピート回数分だけアウトプットデータを繰り返し出力する。すなわち、本例の場合、０ｘ００を１００回出力する。これにより、ランレングス復号化装置５６にて、ランレングス圧縮データが解凍される。
【００４８】
［６−２］ハフマン符号方式
図８は、本発明の一実施形態に係るハフマン符号方式による圧縮を説明するための図を示す。以下に、ハフマン符号方式によるデータ圧縮についての概略を説明する。
【００４９】
（圧縮）
ハフマン符号によるデータ圧縮方式は、プログラムコードのバイナリデータにおいて、データパターン毎の出現回数を計算し、出現頻度が最も高いパターンに符号長の短いハフマン符号を割り当て、出現頻度の低いパターンに符号長の長いハフマン符号を割り当てることで、データを圧縮する。
【００５０】
例えば、図８に示すように、３３ビットの“uncompress data”を圧縮する場合、４ビット（０ｘ０〜０ｘＦ）毎の出現頻度を見ると、プログラムコードのバイナリデータの各パターンの出現回数は、０００（記号Ａ）が６回、００１（記号Ｂ）が３回、０１０（記号Ｃ）が１回、０１１（記号Ｄ）が０回、１００（記号Ｅ）が１回となる。このため、出現回数が最も高い記号Ａには短い符号長（１ビット）のハフマン符号を割り当て、出現回数の低い記号Ｄには長い符号長（４ビット）のハフマン符号を割り当てる。これにより、１９ビットに圧縮された“compress data”が得られる。
【００５１】
（解凍）
図９及び図１０は、本発明の一実施形態に係るハフマン木回路による解凍を説明するための図を示す。以下に、ハフマン符号方式によるデータ解凍についての概略を説明する。
【００５２】
図９に示すように、ハフマン木回路によるデータ解凍では、ハフマン木回路に“compress data”を１ビットずつシリアルで入力していくことにより、圧縮データがデコードされ、もとの“uncompress data”を得ることができる。
【００５３】
図１０に示すように、箱がデコード結果レジスタ値となり、箱の中がハフマン符号長を示す。そして、ハフマン符号長が短いレジスタに出現頻度が高い復号値が設定されている。
【００５４】
例えば、４ビット単位のデータがハフマンコードにて符号化されており、４ビット×１６（８バイト）の復号テーブル（それぞれ４ビット（０ｘ０〜０ｘＦ））９３で復号結果となるデータがある。この復号テーブル９３は出現頻度が高い順に並んでおり、出現頻度が高いものほどデコード結果レジスタに符号長の短いハフマン符号がセットされることになる。ハフマン符号復号化回路５７は、入力符合に従い、分配回路で分配され出力回路に到達した時点でデコード出力レジスタに登録されている４ビットが出力されることで、ハフマン符号のデコードを行う。
【００５５】
尚、このデコード装置で用いるハフマン木については、図９及び図１０に示したものは一例であり、このハフマン木に限定せず、圧縮対象となるデータパターンに適したハフマン木を採用することが可能である。
【００５６】
［７］効果
上記本発明の一実施形態によれば、ＤＭＡコントローラ４０が解凍コントローラ５１を備えている。これにより、ＤＭＡコントローラ４０にて、解凍処理を施したデータ転送を行うことができる。従って、従来のようにＦ／Ｗ側で解凍処理を実施する必要がないため、プログラム及びデータの張替えシーケンスが簡略化できる。
【００５７】
また、ＤＭＡコントローラ４０が解凍コントローラ５１を備えることで、解凍用のＦ／Ｗを実行メモリ２０及び配置メモリ３０等に組み込む必要がなくなる。このため、実行メモリ２０及び配置メモリ３０等において解凍用のＦ／Ｗとして使用されていたメモリの容量を削減でき、メモリ資源の有効活用ができる。
【００５８】
また、ＤＭＡコントローラ４０を用いてＣＰＵ１０を介さずにデータ転送が可能である。このため、必要であれば、圧縮／解凍及びデータ転送実行中にＣＰＵ１０側でも他の処理をパラレルで動作させることが可能であり、ＣＰＵ資源の有効活用ができる。
【００５９】
さらに、本実施形態はシンプルなＨ／Ｗ構成にて実装可能であり、ＤＭＡコントローラ４０を使用するシステム全体の高速化と省電力化が期待できる。
【００６０】
その他、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【００６１】
【図１】本発明の一実施形態に係る半導体集積回路装置の構成図。
【図２】本発明の一実施形態に係る解凍コントローラの構成図。
【図３】本発明の一実施形態に係る圧縮データのフォーマットを示す図。
【図４】本発明の一実施形態に係るＣＰＵ側の処理のフロー図。
【図５】本発明の一実施形態に係る解凍コントローラの処理のフロー図。
【図６】本発明の一実施形態に係るランレングス方式による圧縮を説明するための図。
【図７】本発明の一実施形態に係るランレングス方式による解凍を説明するための図。
【図８】本発明の一実施形態に係るハフマン符号方式による圧縮を説明するための図。
【図９】本発明の一実施形態に係るハフマン木回路による解凍を説明するための図。
【図１０】本発明の一実施形態に係るハフマン木回路による解凍を説明するための図。
【符号の説明】
【００６２】
１…半導体集積回路装置、１０…ＣＰＵ、２０…実行メモリ、３０…配置メモリ、４０…ＤＭＡコントローラ、５０…コントローラ部、５１…解凍コントローラ、５２…パーサー、５３…非圧縮ブロック、５４…ランレングス圧縮ブロック、５５…ハフマン符号圧縮ブロック、５６…ランレングス復号化装置、５６ａ…アウトプットカウンタ、５６ｂ…アウトプットデータ、５７…ハフマン符号復号化装置、６０…レジスタ部、６１…ディスティネーションサイズレジスタ、６２…ソースサイズレジスタ、６３…ディスティネーションアドレスレジスタ、６４…ソースアドレスレジスタ、６５…コントロールレジスタ、６６…アクティブレジスタ、７０…非圧縮ブロックフォーマット、７１…モード選択、７２…ブロックサイズ、７３…非圧縮データ、８０…ランレングス圧縮ブロックフォーマット、８１…モード選択、８２…ブロックサイズ、８３…リピート数、８４…リピートデータ、９０…ハフマン符号圧縮ブロックフォーマット、９１…モード選択、９２…ブロックサイズ、９３…復号テーブル、９４…圧縮データ、１００…圧縮データ全体のフォーマット、１０１…ブロック数、１０２…解凍後のサイズ、ＳＷ１、ＳＷ２、ＳＷ３、ＳＷ４…スイッチ。
【図１】
2009053948.tif 000003
【図２】
2009053948.tif 000004
【図３】
2009053948.tif 000005
【図４】
2009053948.tif 000006
【図５】
2009053948.tif 000007
【図６】
2009053948.tif 000008
【図７】
2009053948.tif 000009
【図８】
2009053948.tif 000010
【図９】
2009053948.tif 000011
【図１０】
2009053948.tif 000012