(57)【要約】【課題】通信周期を上げることなく、通信のスループット向上を可能とし、消費電力を少なく抑える。【解決手段】転送データを記憶するメモリ５を保有し、メモリ５のデータ書き込み領域を把握するために、最小アドレス記憶レジスタ、最大アドレス記憶レジスタを有するアドレス比較手段４を備えている。アドレス比較回路４は、最小アドレス記憶レジスタの値とメモリ５の書き込みアドレスとを比較し、メモリ５の書き込みアドレスの方が小さいときに最小アドレス記憶レジスタにメモリ５の書き込みアドレスを書き込むことにより最小アドレス記憶レジスタの値を更新し、最大アドレス記憶レジスタの値とメモリ５の書き込みアドレスとを比較し、メモリ５の書き込みアドレスの方が大きいときに最大アドレス記憶レジスタにメモリ５の書き込みアドレスを書き込むことにより最大アドレス記憶レジスタの値を更新する。【選択図】　　　　図１
2004096376.tif 000002
【特許請求の範囲】
【請求項１】
メモリに書き込まれたデータを転送のために圧縮するデータ圧縮方法であって、
前記メモリへの書き込みアドレスの最小値および最大値である最小アドレスと最大アドレスとを検出保持し、前記メモリのデータ転送領域を前記メモリにおける前記最小アドレスおよび前記最大アドレスにより指定されるデータ設定領域に絞り込むことを特徴とするデータ圧縮方法。
【請求項２】
最小アドレスおよび最大アドレスを基にメモリにおいてデータの書き込みが行われたデータ設定領域を特定し、前記データ設定領域を所定ビット数のデータを１単位としてマトリクス状に細分化し、前記データ設定領域をデータマトリクスとして管理するために、前記データ設定領域における前記所定ビット数のデータの各々の位置を示すアドレスで構成されるアドレスマトリクスを生成し、
前記データ設定領域の最小単位のデータを基準にして、前記アドレスマトリクスを構成するマトリクスデータを前記最小単位の同一のデータに対応するもの毎にグループ分けし、グループ分けされたマトリクスデータと各グループ毎の最小単位のデータとを対にして出力し、
前記グループ分けされたマトリクスデータと前記グループ毎の最小単位のデータとを対にして記憶することを特徴とする請求項１記載のデータ圧縮方法。
【請求項３】
１単位を構成するビット数を異ならせてデータ設定領域を複数種類のマトリクス構成でマトリクス状に細分化し、複数種類のマトリクス構成の各々でアドレスマトリクスを生成し、
複数種類のマトリクス構成の各々のアドレスマトリクスについてグループ分けし、
複数種類のマトリクス構成の各々について、グループ分けされたマトリクスデータとグループ毎の最小単位のデータとを対にして記憶し、
複数種類のマトリクス構成の各々について前記グループ分けされたマトリクスデータと前記グループ毎の最小単位のデータを格納するのに必要なデータ容量を相互に比較し、
複数種類のマトリクス構成の中からデータ容量の少ない方のマトリクス構成について、前記グループ分けされたマトリクスデータと前記グループ毎の最小単位のデータを残し、データ容量の多い方のマトリクス構成については前記グループ分けされたマトリクスデータと前記グループ毎の最小単位のデータを削除することを特徴とする請求項２記載のデータ圧縮方法。
【請求項４】
請求項２または請求項３記載のデータ圧縮方法で圧縮されたデータを転送するデータ通信方法であって、
データメモリから出力されるグループ分けされたマトリクスデータとグループ毎の最小単位のデータとに基づいて、前記グループ分けされたマトリクスデータの各々の差分を計算して差分情報として出力し、前記差分情報に基づいて通信データ量を最小に抑える通信フォーマットを選択することを特徴とするデータ通信方法。
【請求項５】
転送データを記憶するためのメモリを保有する半導体装置であって、
前記メモリへの書き込みアドレスを保持するアドレス記憶手段を有し、前記アドレス記憶手段の保持アドレスと前記メモリへの書き込みアドレスとを大小比較し、比較結果に基づいて前記アドレス記憶手段の保持アドレスを更新することにより、前記メモリへの書き込みアドレスの最小値および最大値である最小アドレスと最大アドレスとをそれぞれ検出保持するアドレス比較手段を備え、前記メモリのデータ転送領域を前記最小アドレスおよび前記最大アドレスで指定されるデータ設定領域に絞り込むようにした半導体装置。
【請求項６】
アドレス比較手段から与えられる最小アドレスおよび最大アドレスを基にメモリにおいてデータの書き込みが行われたデータ設定領域を特定し、前記データ設定領域を所定ビット数のデータを１単位としてマトリクス状に細分化し、前記データ設定領域をデータマトリクスとして管理するために、前記データ設定領域における前記所定ビット数のデータの各々の位置を示すアドレスで構成されるアドレスマトリクスを生成するマトリクス生成手段と、
前記データ設定領域の最小単位のデータを基準にして、前記アドレスマトリクスを構成するマトリクスデータを前記最小単位の同一のデータに対応するもの毎にグループ分けし、グループ分けされたマトリクスデータと各グループ毎の前記最小単位のデータとを対にして出力するグループ分け手段と、
前記グループ分け手段より出力される、前記グループ分けされたマトリクスデータと前記グループ毎の最小単位のデータとを対にして記憶するデータメモリとをさらに備えた請求項５記載の半導体装置。
【請求項７】
マトリクス生成手段は、１単位を構成するビット数を異ならせてデータ設定領域を複数種類のマトリクス構成でマトリクス状に細分化し、複数種類のマトリクス構成の各々でアドレスマトリクスを生成し、
グループ分け手段は複数種類のマトリクス構成の各々のアドレスマトリクスについてグループ分けし、
前記データメモリは、複数種類のマトリクス構成の各々について、グループ分けされたマトリクスデータとグループ毎の最小単位のデータとを対にして記憶し、かつ前記複数種類のマトリクス構成の各々について、前記グループ分けされたマトリクスデータと前記グループ毎の最小単位のデータを格納するのに必要なデータ容量を前記マトリクス生成手段へ通知し、
前記マトリクス生成手段は、複数種類のマトリクス構成の各々について前記グループ分けされたマトリクスデータと前記グループ毎の最小単位のデータを格納するのに必要なデータ容量を相互に比較し、前記データメモリにおいて、複数種類のマトリクス構成の中からデータ容量の少ない方のマトリクス構成について、前記グループ分けされたマトリクスデータと前記グループ毎の最小単位のデータを残し、データ容量の多い方のマトリクス構成については前記グループ分けされたマトリクスデータと前記グループ毎の最小単位のデータを削除するようにした請求項６記載の半導体装置。
【請求項８】
データメモリから出力されるグループ分けされたマトリクスデータとグループ毎の最小単位のデータとに基づいて、前記グループ分けされたマトリクスデータの各々の差分を計算して差分情報として出力するマトリクス差分算出制御部と、前記マトリクス差分算出制御部から出力される前記差分情報に基づいて通信データ量を最小に抑える通信フォーマットを選択する通信フォーマット選択制御部とをさらに備えた請求項６または７記載の半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ圧縮方法、データ通信方法および汎用マイクロコントローラなどの半導体装置に関するものである。
【０００２】
【従来の技術】
機器システム内におけるデバイス間の制御データや、機器間で送受信されるコンテンツデータなどの情報量は増加の一途を辿っており、通信のスループット向上が重要な課題となっている。
【０００３】
従来は、物理的な転送速度の向上、つまり、単位データあたりの通信周期を短縮化するなどの手段によって、通信のスループット向上を図ってきたが、上記転送速度の向上に伴い通信エラーの発生頻度が上昇するため、前記通信エラーの低減対策も同時に行う必要があった。
【０００４】
【発明が解決しようとする課題】
通信周期を短縮化すると、通信エラーの発生頻度が上昇するため、通信エラーの低減対策も同時に行う必要があった。また、物理的に高速な通信を実現するには高速動作可能な半導体装置が必要であるとともに、消費電力が大きくなるという課題があった。
【０００５】
本発明の目的は、通信周期を上げることなく、通信のスループット向上を可能とし、通信のスループット向上のために高速動作が要求されず、消費電力を少なく抑えることができるデータ圧縮方法、データ通信方法、および半導体装置を提供することである。
【０００６】
【課題を解決するための手段】
本発明は、デバイスや機器間で転送するデータ量を最小限に抑制することで、物理的な転送速度を変更することなく通信のスループット向上を実現するものである。
【０００７】
本発明の請求項１記載のデータ圧縮方法は、メモリに書き込まれたデータを転送のために圧縮するデータ圧縮方法であり、メモリへの書き込みアドレスの最小値および最大値である最小アドレスと最大アドレスとを検出保持し、メモリのデータ転送領域をメモリにおける最小アドレスおよび最大アドレスにより指定されるデータ設定領域に絞り込むことを特徴とする。
【０００８】
この方法によれば、メモリの書き込みアドレスの最小アドレスと最大アドレスを保持しているので、メモリのデータを転送するときに、データ転送領域をデータの書き込みを行ったデータ設定領域に絞り込むことができ、転送データを少なく抑制することができる。その結果、通信周期を上げることなく、通信のスループット向上を可能し、通信のスループット向上のために高速動作が要求されず、消費電力を少なく抑えることができる。
【０００９】
本発明の請求項２記載のデータ圧縮方法は、請求項２記載のデータ圧縮方法において、最小アドレスおよび最大アドレスを基にメモリにおいてデータの書き込みが行われたデータ設定領域を特定し、データ設定領域を所定ビット数のデータを１単位としてマトリクス状に細分化し、データ設定領域をデータマトリクスとして管理するために、データ設定領域における所定ビット数のデータの各々の位置を示すアドレスで構成されるアドレスマトリクスを生成し、データ設定領域の最小単位（１単位）のデータを基準にして、アドレスマトリクスを構成するマトリクスデータを最小単位の同一のデータに対応するもの毎にグループ分けし、グループ分けされたマトリクスデータと各グループ毎の最小単位のデータとを対にして出力し、グループ分けされたマトリクスデータとグループ毎の最小単位のデータとを対にして記憶することを特徴とする。
【００１０】
この方法によれば、データ設定領域をマトリクス状に細分化し、データ設定領域の各データのアドレスで構成されるアドレスマトリクスを生成し、アドレスマトリクスを構成するマトリクスデータを最小単位の同一のデータに対応するもの毎にグループ分けし、グループ分けされたマトリクスデータと各グループ毎の最小単位のデータとを対にして出力することにより、データの圧縮を行うので、メモリに書き込まれたデータをそのまま転送するのに比べて転送データを少なく抑制することができ、かつ転送データを圧縮することで通信のスループット向上を可能とするものである。
【００１１】
本発明の請求項３記載のデータ圧縮方法は、請求項２記載のデータ圧縮方法において、１単位を構成するビット数を異ならせてデータ設定領域を複数種類のマトリクス構成でマトリクス状に細分化し、複数種類のマトリクス構成の各々でアドレスマトリクスを生成し、複数種類のマトリクス構成の各々のアドレスマトリクスについてグループ分けし、複数種類のマトリクス構成の各々について、グループ分けされたマトリクスデータとグループ毎の最小単位（１単位）のデータとを対にして記憶し、複数種類のマトリクス構成の各々についてグループ分けされたマトリクスデータとグループ毎の最小単位のデータを格納するのに必要なデータ容量を相互に比較し、複数種類のマトリクス構成の中からデータ容量の少ない方のマトリクス構成について、グループ分けされたマトリクスデータとグループ毎の最小単位のデータを残し、データ容量の多い方のマトリクス構成についてはグループ分けされたマトリクスデータとグループ毎の最小単位のデータを削除することを特徴とする。
【００１２】
この方法によれば、複数のマトリクス構成のうちからデータ容量の少ないものを残すので、転送データの圧縮の程度をさらに高めることができ、通信のスループットのいっそうの向上を可能とする。
【００１３】
本発明の請求項４記載のデータ通信方法は、請求項２または請求項３記載のデータ圧縮方法で圧縮されたデータを転送するデータ通信方法であって、データメモリから出力されるグループ分けされたマトリクスデータとグループ毎の最小単位のデータとに基づいて、グループ分けされたマトリクスデータの各々の差分を計算して差分情報として出力し、差分情報に基づいて通信データ量を最小に抑える通信フォーマットを選択することを特徴とする。
【００１４】
この方法によれば、通信フォーマット選択制御部により通信データ量を最小に抑える通信フォーマットを選択するので、通信データ量をさらに削減することができ、通信のスループットのさらなる向上を可能とする。
【００１５】
本発明の請求項５記載の半導体装置は、転送データを記憶するためのメモリを保有する半導体装置であり、メモリへの書き込みアドレスを保持するアドレス記憶手段を有し、アドレス記憶手段の保持アドレスとメモリへの書き込みアドレスとを大小比較し、比較結果に基づいてアドレス記憶手段の保持アドレスを更新することにより、メモリへの書き込みアドレスの最小値および最大値である最小アドレスと最大アドレスとをそれぞれ検出保持するアドレス比較手段を備え、メモタのデータ転送領域を最小アドレスおよび最大アドレスで指定されるデータ設定領域に絞り込むようにしている。
【００１６】
この構成によれば、アドレス比較手段によりメモリの書き込みアドレスの最小アドレスと最大アドレスを保持しているので、メモリのデータを転送するときに、データ転送領域をデータの書き込みを行ったデータ設定領域に絞り込むことができ、転送データを少なく抑制することができる。その結果、通信周期を上げることなく、通信のスループット向上を可能し、通信のスループット向上のために高速動作が半導体装置に要求されず、消費電力を少なく抑えることができる。したがって、半導体装置として廉価なものが使用可能である。
【００１７】
本発明の請求項６記載の半導体装置は、請求項５記載の半導体装置において、アドレス比較手段から与えられる最小アドレスおよび最大アドレスを基にメモリにおいてデータの書き込みが行われたデータ設定領域を特定し、データ設定領域を所定ビット数のデータを１単位としてマトリクス状に細分化し、データ設定領域をデータマトリクスとして管理するために、データ設定領域における所定ビット数のデータの各々の位置を示すアドレスで構成されるアドレスマトリクスを生成するマトリクス生成手段と、データ設定領域の最小単位（１単位）のデータを基準にして、アドレスマトリクスを構成するマトリクスデータを最小単位の同一のデータに対応するもの毎にグループ分けし、グループ分けされたマトリクスデータと各グループ毎の最小単位のデータとを対にして出力するグループ分け手段と、グループ分け手段より出力される、グループ分けされたマトリクスデータとグループ毎の最小単位のデータとを対にして記憶するデータメモリとをさらに備えている。
【００１８】
この構成によれば、データ設定領域をマトリクス状に細分化し、データ設定領域の各データのアドレスで構成されるアドレスマトリクスを生成し、アドレスマトリクスを構成するマトリクスデータを最小単位の同一のデータに対応するもの毎にグループ分けし、グループ分けされたマトリクスデータと各グループ毎の最小単位のデータとを対にして出力することにより、データの圧縮を行うので、メモリに書き込まれたデータをそのまま転送するのに比べて転送データを少なく抑制することができ、かつ転送データを圧縮することで通信のスループット向上を可能とするものである。
【００１９】
本発明の請求項７記載の半導体装置は、請求項６記載の半導体装置において、マトリクス生成手段は、１単位を構成するビット数を異ならせてデータ設定領域を複数種類のマトリクス構成でマトリクス状に細分化し、複数種類のマトリクス構成の各々でアドレスマトリクスを生成し、グループ分け手段は複数種類のマトリクス構成の各々のアドレスマトリクスについてグループ分けし、データメモリは、複数種類のマトリクス構成の各々について、グループ分けされたマトリクスデータとグループ毎の最小単位（１単位）のデータとを対にして記憶し、かつ複数種類のマトリクス構成の各々について、グループ分けされたマトリクスデータとグループ毎の最小単位のデータを格納するのに必要なデータ容量をマトリクス生成手段へ通知し、マトリクス生成手段は、複数種類のマトリクス構成の各々についてグループ分けされたマトリクスデータとグループ毎の最小単位のデータを格納するのに必要なデータ容量を相互に比較し、データメモリにおいて、複数種類のマトリクス構成の中からデータ容量の少ない方のマトリクス構成について、グループ分けされたマトリクスデータとグループ毎の最小単位のデータを残し、データ容量の多い方のマトリクス構成についてはグループ分けされたマトリクスデータとグループ毎の最小単位のデータを削除するようにしている。
【００２０】
この構成によれば、複数のマトリクス構成のうちからデータ容量の少ないものを残すので、転送データの圧縮の程度をさらに高めることができ、通信のスループットのいっそうの向上を可能とする。
【００２１】
本発明の請求項８記載の半導体装置は、請求項６または７記載の半導体装置において、データメモリから出力されるグループ分けされたマトリクスデータとグループ毎の最小単位のデータとに基づいて、グループ分けされたマトリクスデータの各々の差分を計算して差分情報として出力するマトリクス差分算出制御部と、マトリクス差分算出制御部から出力される差分情報に基づいて通信データ量を最小に抑える通信フォーマットを選択する通信フォーマット選択制御部とをさらに備えている。
【００２２】
この構成によれば、通信フォーマット選択制御部により通信データ量を最小に抑える通信フォーマットを選択するので、通信データ量をさらに削減することができ、通信のスループットのさらなる向上を可能とする。
【００２３】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【００２４】
（第１の実施の形態）
図１は、本発明の第１の実施の形態の半導体装置を構成するブロック図である。図１において、符号１は半導体装置であり、符号２は半導体装置１の内部回路である。符号５はメモリアクセス用のアドレス線１０１、メモリ書き込み許可信号１０２、およびメモリアクセス用のデータ線１０３を入力として、転送データを格納するためのメモリである。
【００２５】
符号４はメモリアクセス用のアドレス線１０１とメモリ書き込み許可信号１０２とを入力としてメモリ５にデータの書き込みを行った最小アドレス２０２と最大アドレス２０１を比較演算により検出し、かつそれを記憶保持し、出力するアドレス比較回路であり、アドレス比較手段を構成している。メモリ５中のデータ設定領域４００は最小アドレス２０２と最大アドレス２０１とで指定された範囲を示している。
【００２６】
符号６はアドレス比較回路４から出力される最大アドレス２０１と最小アドレス２０２とを入力として、書き込みが行われたデータ設定領域４００をマトリクス状に細分化するマトリクス生成回路である。符号８はデータ設定領域４００のメモリデータ１０７とマトリクス生成回路６のアドレスマトリクスデータ１１０とを入力として、データ設定領域４００内の最小単位（１単位）のデータを基準にアドレスマトリクスデータ１１０をグループ化するデータ比較回路である。符号７はデータ比較回路８の出力結果１１１を格納するデータメモリである。
【００２７】
マトリクス生成回路６は、データメモリ７が格納されたデータ容量を通知するデータ容量信号１０８を入力として、データメモリ７のデータ容量が最小になるマトリクスを再構成する仕組みを備えるものとする。
【００２８】
符号１１は、データメモリ７のメモリデータ１１２を入力として、最小単位の同一データごとにマトリクスデータの差分を算出するマトリクス差分算出制御部である。符号１０はマトリクス差分算出回路１１からの差分情報１１３を入力として最適な通信を実現する通信フォーマット選択制御部である。
【００２９】
以下に、実施の形態の半導体装置の各部の具体的な構成について図面を用いて説明する。
【００３０】
図２は図１の半導体装置におけるアドレス比較回路４の具体的な構成を示すブロック図である。図６はアドレス比較回路４の動作を示すタイミングチャートである。
【００３１】
以下、アドレス比較回路４を構成する各素子の機能的役割、およびアドレス比較回路４の動作を図２と図６を用いて説明する。
【００３２】
図２において、アドレス比較回路４を構成する最大アドレス記憶レジスタ２０１Ａは、メモリ５へのデータ書き込み時にアクセスした最大のアドレスを格納保持するためのレジスタであり、最大アドレス記憶手段を構成し、リセット時に初期化されて全ビット“０”であるものとする。また、最小アドレス記憶レジスタ２０２Ａは、メモリ５へのデータ書き込み時にアクセスした最小のアドレスを格納保持するためのレジスタであり、最小アドレス記憶手段を構成し、リセット時に初期化されて全ビット“１”であるものとする。
【００３３】
また、アドレス演算回路１２は、メモリ書き込み許可信号１０２がアサートされた時に、メモリアクセス用のアドレス線１０１上の値と最大アドレス記憶レジスタ２０１Ａおよび最小アドレス記憶レジスタ２０２Ａの設定値とを比較するもので、アドレス演算手段を構成し、アドレス線１０１の値が最大アドレス記憶レジスタ２０１Ａの設定値（最大アドレス）よりも大きい場合には、アドレス線１０１の値が最大アドレス記憶レジスタ２０１Ａに設定され、アドレス線１０１の値が最小アドレス記憶レジスタ２０２Ａの設定値（最小アドレス）よりも小さい場合には、アドレス線１０１の値が最小アドレス記憶レジスタ２０２Ａに設定される。
【００３４】
これによって、最大アドレス記憶レジスタ２０１Ａに記憶保持される最大アドレスおよび最小アドレス記憶レジスタ２０２Ａに記憶保持される最小アドレスが更新されることになる。
【００３５】
つまり、アドレス比較回路４は、最小アドレス記憶レジスタ２０２Ａ、最大アドレス記憶レジスタ２０１Ａおよびアドレス演算回路１２を有する。そして、アドレス演算回路１２で最小アドレス記憶レジスタ２０２Ａの記憶する最小アドレスとメモリ５の書き込みアドレス（アドレス線１０１の値）とを比較演算し、メモリ５の書き込みアドレスの方が小さいときに最小アドレス記憶レジスタ２０２Ａにメモリ５の書き込みアドレスを書き込むことにより最小アドレス記憶レジスタ２０２Ａの記憶する最小アドレスを更新し、アドレス演算回路１２で最大アドレス記憶レジスタ２０１の記憶する最大アドレスとメモリ５の書き込みアドレスとを比較演算し、メモリ５の書き込みアドレスの方が大きいときに最大アドレス記憶レジスタ２０１Ａにメモリ５の書き込みアドレスを書き込むことにより最大アドレス記憶レジスタ２０１Ａの記憶する最大アドレスを更新する。
【００３６】
図６は、アドレス比較回路４の動作を示すタイミングチャートであり、アドレス線１０１の値と、書き込み信号１０２の状態と、最大アドレス記憶レジスタ２０１Ａの値と、最小アドレス記憶レジスタ２０２Ａの値とが、時系列的に示されている。最大アドレス記憶レジスタ２０１Ａおよび最小アドレス記憶レジスタ２０２Ａは、例として各３２ビットとしている。
【００３７】
図６において、タイミングＴ０では、最大アドレス記憶レジスタ２０１Ａと最小アドレス記憶レジスタ２０２Ａは初期状態にあるが、タイミングＴ２、Ｔ４、Ｔ６において値が変化している。まず、最大アドレス記憶レジスタ２０１Ａについてみると、タイミングＴ２、Ｔ４ではアドレス線１０１の値が最大アドレス記憶レジスタ２０１Ａの値よりも大きいために設定値が変更されるが、タイミングＴ６ではアドレス線１０１の値がアドレス記憶レジスタ２０１Ａの値よりも小さいために設定値は変更されない。
【００３８】
また、最小アドレス記憶レジスタ２０２Ａについてみると、タイミングＴ２、Ｔ６ではアドレス線１０１の値が最小アドレス記憶レジスタ２０１Ａの値よりも小さいために設定値が変更されるが、タイミングＴ４ではアドレス線１０１の値がアドレス記憶レジスタ２０１Ａの値よりも大きいために設定値は変更されない。
【００３９】
このようにして、最大アドレス２０１と最小アドレス２０２とを検出して、メモリ５にデータが書き込まれる部分を絞り込み、データが書き込まれたデータ設定領域のみをデータ転送領域とすることで、転送すべきデータの容量値を抑制することができる。図２のデータ設定領域が、絞り込まれたデータ領域を表している。
【００４０】
以上説明したように、この実施の形態によれば、アドレス比較回路４によりメモリ５の書き込みアドレスの最小アドレス２０２と最大アドレス２０１を記憶保持しているので、メモリ５のデータを転送するときに、データ転送領域をデータの書き込みを行ったデータ設定領域に絞り込むことができ、転送データを少なく抑制することができる。その結果、通信周期を上げることなく、通信のスループット向上を可能し、通信のスループット向上のために高速動作が半導体装置に要求されず、消費電力を少なく抑えることができる。したがって、半導体装置として廉価なものが使用可能である。
【００４１】
（第２の実施の形態）
図３は本発明の第２の実施の形態の半導体装置におけるマトリクス生成回路６、データ比較回路８、およびデータメモリ７の具体的な構成を示すブロック図である。マトリクス生成回路６は、マトリクス演算制御部１３と、マトリクスを管理するためのテーブルデータが格納されるメモリ１４ａ，１４ｂで構成され、マトリクス生成手段を構成している。メモリ１４ａ，１４ｂにおけるテーブルデータとしては、最小データ単位が例えば３２ビットもしくは６４ビットであることを示す情報と、データの種類と、マトリクスデータ量と、容量値と、アドレスマトリクスデータとが含まれる。
【００４２】
データの種類とは、データ設定領域４００のマトリクス内におけるデータの種類のことで、図３の場合には、「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」と、３２ビットのデータが４種類ある。また、図４の場合には、「ＡＤ」、「ＤＡ」、「ＣＤ」、「ＡＢ」、「ＢＣ」、「ＣＢ」と、６４ビットのデータが６種類ある。
【００４３】
マトリクスデータ量とは、アドレスマトリクスデータのデータ量であり、図３の例では、４×１６＝６４ビットであり、図４の例では、３×８＝２４ビットである。
【００４４】
容量値とは、後述する数式に従って計算されたデータメモリ７の容量値のことである。
【００４５】
以下、マトリクス生成回路６、データ比較回路８、およびデータメモリ７を構成する各素子の機能的役割および動作を図３と図４と図７とを用いて説明する。なお、データメモリ７およびメモリ１４ａ，１４ｂのテーブルデータの初期値は、リセット時に初期化されて“０”であるものとする。
【００４６】
マトリクス生成回路６内のマトリクス演算制御部１３には、アドレス比較回路４から出力される最大アドレス２０１と最小アドレス２０２をもとにアドレスマトリクスデータを生成すると同時に、メモリ１４ａ，１４ｂにアドレスマトリクスに格納されているアドレスに対応した最小単位のデータサイズ（例えば、３２ビットあるいは６４ビット）を最小データ単位として格納する。
【００４７】
内部回路２から与えられる比較起動信号１０９がアサートされると、グループ分け手段を構成するデータ比較回路８は、データ設定領域４００の出力データであるメモリデータ１０７とメモリ１４ａ，１４ｂ内のアドレスマトリクスデータ１１０を取得して、データ設定領域４００のデータマトリクスの同一の最小単位データを基準にしたアドレスマトリクスデータ１１０のグループ化を行い、データメモリ７に格納する。
【００４８】
つまり、データ設定領域４００の最小化をマトリクス生成回路６で行うが、その後各マトリクスデータ毎にデータを振り分けるのが、データ比較回路８である。つまり、このデータ比較回路８は、データ設定領域４００からデータを、図３では、Ａ，Ｄ，Ｄ，Ａ，Ｃ，Ｄ，Ａ，Ｂ，‥‥と読み出し、それらのアドレスに相当するデータ００００，０００１，００１０，００１１，０１００，０１０１，０１１０，０１１１，‥‥を、Ａ，Ｂ，Ｃ，Ｄの各データ毎に振り分けていく処理を行う。
【００４９】
図３では、データマトリクスの最小単位データはＡ、Ｂ、Ｃ、Ｄで表している。こうしてデータメモリ７は形成されるが、データ比較回路８の動作が終了した時点で、データメモリ７は格納したデータの容量をマトリクス演算制御部１３に通知するため、データ容量通知信号１０８を送信する。マトリクス演算制御部１３はデータ容量通知信号１０８とメモリ１４ａ，１４ｂ内の最小データ単位１１５をもとに、データメモリ７の容量が最小となるマトリクスのフォーマットを図７のフローに従って生成する。
【００５０】
図４は、図３とは異なるマトリクスを構成したものであるが、これを図７のフローにあてはめることを考える。
【００５１】
まず、データ設定領域４００のデータであるＡやＢなどのデータを３２ビットとした場合、図３における最小データ単位は３２ビットであり、図４における最小データ単位は６４ビットである。この場合に、図３および図４のマトリクス構成におけるデータメモリ７の容量値は、それぞれ以下のようになる。
【００５２】
2004096376.tif 000003
両容量値を比較すると、図３のマトリクス構成のほうがデータ量を圧縮できることがわかる。
【００５３】
上記データ比較回路８におけるデータ比較動作は、比較起動信号１０９がアサートされている間は繰り返し行われるので、処理にかける時間が長いほど、マトリクス構成を最適化してデータ量を圧縮することができる。このデータ量の最小化機構は、専用のハードウェアもしくはソフトウェア処理のどちらでもかまわない。
【００５４】
上記したように、マトリクス生成回路６は、アドレス比較回路４から与えられる最小アドレス２０２および最大アドレス２０１を基にメモリ５においてデータの書き込みが行われたデータ設定領域４００を特定し、データ設定領域４００を所定ビット数のデータ毎にマトリクス状に細分化し、データ設定領域４００をデータマトリクスとして管理するために、データ設定領域４００における所定ビット数のデータの各々の位置を示すアドレスで構成されるアドレスマトリクスを生成する機能を有する。
【００５５】
また、データ比較回路８は、データ設定領域４００の最小単位のデータを基準にして、アドレスマトリクスを構成するマトリクスデータを最小単位の同一のデータに対応するもの毎にグループ分けし、グループ分けされたマトリクスデータと各グループ毎の最小単位のデータとを対にして出力する機能を有する。
【００５６】
また、データメモリ７は、データ比較回路８より出力される、グループ分けされたマトリクスデータとグループ毎の最小単位のデータとを対にして記憶する機能を有する。
【００５７】
さらに、１単位を構成するビット数を異ならせてデータ設定領域４００を複数種類のマトリクス構成でマトリクス状に細分化し、複数種類のマトリクス構成の各々でアドレスマトリクスを生成する。
【００５８】
また、データ比較回路８は複数種類のマトリクス構成の各々のアドレスマトリクスについてグループ分けする。
【００５９】
また、データメモリ７は、複数種類のマトリクス構成の各々について、グループ分けされたマトリクスデータとグループ毎の最小単位のデータとを対にして記憶し、かつ複数種類のマトリクス構成の各々について、グループ分けされたマトリクスデータとグループ毎の最小単位のデータを格納するのに必要なデータ容量をマトリクス生成回路６へ通知する。
【００６０】
そして、マトリクス生成回路６は、複数種類のマトリクス構成の各々についてグループ分けされたマトリクスデータとグループ毎の最小単位のデータを格納するのに必要なデータ容量を相互に比較し、データメモリ７において、複数種類のマトリクス構成の中からデータ容量の少ない方のマトリクス構成について、グループ分けされたマトリクスデータとグループ毎の最小単位のデータを残し、データ容量の多い方のマトリクス構成についてはグループ分けされたマトリクスデータとグループ毎の最小単位のデータを削除する。
【００６１】
ここで、図７のフローチャートについて説明する。
【００６２】
最初に、メモリ１４ａ，１４ｂのテーブルデータの内容をともに消去する。
【００６３】
つぎに、最大アドレス２０１と最小アドレス２０２からマトリクス１を構築する。
【００６４】
つぎに、マトリクス１についての最小データ単位１、データの種類１、マトリクスデータ量１をメモリ１４ａ，１４ｂのうちの一方に書き込む。
【００６５】
つぎに、マトリクス１についてデータ容量を計算し、それをメモリ１４ａ，１４ｂのうちの一方に容量値１として書き込む。
【００６６】
つぎに、最大アドレス２０１と最小アドレス２０２からマトリクス２を構築する。
【００６７】
つぎに、マトリクス２についての最小データ単位２、データの種類２、マトリクスデータ量２をメモリ１４ａ，１４ｂのうちの他方（消去されている側）に書き込む。
【００６８】
つぎに、マトリクス２についてデータ容量を計算し、それをメモリ１４ａ，１４ｂのうちの他方に容量値２として書き込む。
【００６９】
つぎに、マトリクス１についての容量値１とマトリクス２についての容量値２とを比較し、容量値の大きい方のメモリ１４ａまたは１４ｂの内容を消去、容量値の小さい方のメモリ１４ｂまたは１４ａの内容を残す。
【００７０】
つぎに、次のマトリクスを構築するどうかを判定し、マトリクス３以降を構築する場合には、マトリクスを構築するステップへ戻る。
【００７１】
そして、つぎのマトリクスを構築しない場合には、マトリクスの決定を行う。
【００７２】
上記において、例えば図３がマトリクス１が対応し、図４がマトリクス２に対応する。
【００７３】
上記したように、図７で示すフローにより、マトリクスをいくつか構成して、その中で最も圧縮後のデータ容量が少ないものを採用する。すなわち、まず第１のマトリクス案を構築して容量値を算出し、次に第２のマトリクス案を構築して容量値を算出し、それら２つの容量値を比較して容量値が小さい方のマトリクス案を残し、容量値が大きい方のマトリクス案を消去し、さらに第３のマトリクス案を構築して容量値を算出して比較し、‥‥という処理を、メモリ１４ａ，１４ｂを使いながら繰り返す。繰り返しの処理がいつ終了するかは、ＣＰＵからの指示によるものとする。
【００７４】
この実施の形態によれば、データ設定領域４００をマトリクス状に細分化し、データ設定領域４００の各データのアドレスで構成されるアドレスマトリクスを生成し、アドレスマトリクスを構成するマトリクスデータを最小単位の同一のデータに対応するもの毎にグループ分けし、グループ分けされたマトリクスデータと各グループ毎の最小単位のデータとを対にして出力することにより、データの圧縮を行うので、メモリに書き込まれたデータをそのまま転送するのに比べて転送データを少なく抑制し、かつ転送データを圧縮することで通信のスループット向上を可能とする。
【００７５】
さらに、複数のマトリクス構成のうちからデータ容量の少ないものを残すので、転送データの圧縮の程度をさらに高めることができ、通信のスループットのいっそうの向上を可能とする。
【００７６】
（第３の実施の形態）
図５は発明の第３の実施の形態の半導体装置におけるマトリクス差分算出制御部１１の具体的な構成と、通信フォーマット選択制御部１０とを示すブロック図である。マトリクス差分算出制御部１１は、マトリクス差分計算部１６と差分テーブルデータを格納するメモリ１５とで構成されている。
【００７７】
以下、マトリクス差分算出制御部１１と通信フォーマット選択制御部１０を構成する各素子の機能的役割および動作を図５と図８を用いて説明する。なお、メモリ１５の差分テーブルデータの初期値は、リセット時に初期化されて“０”であるものとする。
【００７８】
データメモリ７では、データ設定領域４００の同一データを基準にマトリクスデータを管理していたが、マトリクス差分計算部１６では、最小単位データごとにマトリクスデータの差分を計算する。
【００７９】
図５では、データＡの差分テーブルデータでは、デーブルメモリ７の１つ目のマトリクスデータ“００００”（左側に番号１を付している）と２つ目のマトリクスデータ“００１１”（左側に番号２を付している）の差分データがメモリ１５の差分テーブルデータにおけるデータＡの最初のデータ“００１１”（左側に番号２１を付している）となっている。
【００８０】
同様の計算を全マトリクスに実施していくと、データＡ、Ｂ、Ｃ、Ｄの各マトリクスの増加分は最上位ビットが“０”である。このことから、マトリクスデータの最下位データ（最も値の小さいデータ）を基準値（オフセット値）として、他のマトリクスデータは３ビットの差分情報で表現することができる。
【００８１】
データＡのマトリクスデータを例にとると、マトリクスデータ“００００”、“００１１”、“０１１０”、“１０１０”の各データを転送することは、最下位マトリクスデータ“００００”と差分である“０１１”、“０１１”、“１００”のデータを送信することと同様である。この差分情報１１３（図８（ｂ）の符号５０１で示す差分データビット指定に相当する）を通信フォーマット選択制御部１０に通知することで、通信フォーマット選択制御部１０は転送データが最小となる通信フォーマットを選択し、具体的には、マトリクスを直接送信するフォーマットと、マトリクスを差分形式で送信するフォーマットの何れかを選択し、その通信フォーマットで通信データを通信データ端子へ送る。
【００８２】
ここで、上記の差分情報１１３を用いたデータの転送について説明する。圧縮データの転送方式としては、差分データビット指定５０１が０１１（＝３）となっていることより、図８（ｂ）で示すデータ
０００００１１０１１１００
０１１１００１０１１０１０００１
０１００１０１０１１０１１
０００１００１０１１
について、以下のような処理が行われる。
【００８３】
１．オフセットが００００であることが示される。
【００８４】
２．差分データビット指定５０１が０１１（＝３）であることより、差分データの１つのビット長さが３ビットであることが示される（０１１、０１１、１００）。
【００８５】
３．差分データが終わることが示される。
【００８６】
４．次のオフセットが０１１１であることが示される。
【００８７】
５．差分データビット指定５０１が０１１（＝３）であることより、差分データの１つのビット長さが３ビットであることが示される（００１、０１１、０１０、００１）。
【００８８】
６．差分データが終わることが示される。
【００８９】
‥‥‥‥
という処理が繰り返される。
【００９０】
これを分かりやすく区切って示すと、
００００　０１１　０１１　１００
０１１１　００１　０１１　０１０　００１
０１００　１０１　０１１　０１１
０００１　００１　０１１
となる。
【００９１】
受信側では、送られてきた上記データを上記約束に従って復号して圧縮前のデータを生成する動作を行う。
【００９２】
図８は、マトリクスデータを直接送信する場合と、差分データ形式で送信する場合を表しており、差分データビット指定５０１で差分データのビット数を指定している。マトリクスを差分形式で送信するフォーマットの場合、データ受信側は、この差分データビット指定５０１とベースとなるマトリクスデータを用いてアドレス情報を復元する。なお、データ通信の流れは、図８（ａ），（ｂ）において、下向きの矢印で示すようになる。すなわち、図８（ａ）に示すデータを、Ａ（００００，００１１，０１１０，１０１０）、Ｂ（０１１１，１１００，‥‥）、‥‥と流す流れを下向きの矢印で示し、同様に図８（ｂ）に示すデータを、０１０、Ａ（００００，０１１，０１１，１００）、Ｂ（０１１１，００１，‥‥）、‥‥と流す流れを下向きの矢印で示している。
【００９３】
上記したように、マトリクス差分算出制御部１６は、データメモリ７から出力されるグループ分けされたマトリクスデータとグループ毎の最小単位のデータとに基づいて、グループ分けされたマトリクスデータの各々の差分を計算して差分情報として出力する機能を有する。
【００９４】
また、通信フォーマット選択制御部１０は、グループ分けされたマトリクスデータの各々の差分を計算して差分情報として出力するマトリクス差分算出制御部１６と、マトリクス差分算出制御部１６から出力される差分情報１１３に基づいて通信データ量を最小に抑える通信フォーマットを選択する機能を有する。
【００９５】
この実施の形態によれば、通信フォーマット選択制御部１０により通信データ量を最小に抑える通信フォーマットを選択するので、通信データ量をさらに削減することができ、通信のスループットのさらなる向上を可能とする。
【００９６】
【発明の効果】
本発明によれば、物理的な通信速度を変更せずに通信のスループットを向上することができるため、新規の通信エラー対策が不要である。したがって、低速通信しか対応できない廉価な半導体装置を用いる場合でも高速な通信を実現することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態における半導体装置の構成を示すブロック図である。
【図２】本発明の第１の実施の形態の半導体装置におけるアドレス比較回路の具体的な構成を示すブロック図である。
【図３】本発明の第２の実施の形態の半導体装置におけるマトリクス生成回路およびデータメモリの具体的な構成を示すブロック図である。
【図４】本発明の第２の実施の形態の半導体装置におけるマトリクス生成回路およびデータメモリの具体的な構成を示すブロック図である。
【図５】本発明の第３の実施の形態の半導体装置におけるマトリクス差分算出制御部の具体的な構成を示すブロック図である。
【図６】本発明の第１の実施の形態の半導体装置における最大アドレスおよび最小アドレスを取得する動作を示すタイミングチャートである。
【図７】本発明の第２の実施の形態の半導体装置における制御動作を示すフローチャートである。
【図８】本発明の第３の実施の形態の半導体装置における通信フォーマットを示す模式図である。
【符号の説明】
１　　半導体装置
２　　内部回路
４　　アドレス比較回路
５　　メモリ
６　　マトリクス生成回路
７　　データメモリ
８　　データ比較回路
１０　　通信フォーマット選択制御部
１１　　マトリクス差分算出制御部
１２　　アドレス演算回路
１３　　マトリクス演算制御部
１４ａ，１４ｂ　　メモリ
１５　　メモリ
１６　　マトリクス差分計算部
１０１　　アドレス線
１０２　　書き込み許可信号
１０３　　データ線
１１０　　マトリクスデータ
１１２　　メモリデータの出力
１１３　　マトリクスの差分情報
１１４　　マトリクス演算制御部の出力
１１５　　最小データ単位情報
２０１　　最大アドレス
２０２　　最小アドレス
２０１Ａ　　最大アドレス記憶レジスタ
２０２Ａ　　最小アドレス記憶レジスタ
４００　　データ設定領域
【図１】
2004096376.tif 000004
【図２】
2004096376.tif 000005
【図３】
2004096376.tif 000006
【図４】
2004096376.tif 000007
【図５】
2004096376.tif 000008
【図６】
2004096376.tif 000009
【図７】
2004096376.tif 000010
【図８】
2004096376.tif 000011