(57)【要約】      （修正有）【課題】バスに接続した複数の機能モジュール間のデータ転送を高速に行う。【解決手段】データ転送に係るバス１０１と、バス１０１に接続された複数の機能モジュール５０、６０と、バス１０１に接続され、データの書き込み及び読み出し順序が規定された複数の一時記憶装置１０、２０と、を備え、複数の機能モジュール５０、６０及び複数の一時記憶装置１０、２０のそれぞれは、バス１０１に接続するためのバス接続インターフェース１１，１２，２１，２２，５２，５３，６２，６３を備え、それらのバス接続インターフェースは、当該バス接続インターフェースを固有に識別可能なバスアドレスが割り当てられる。そして複数の機能モジュールの内の一方及び複数の一時記憶装置の一方の間のデータの転送、及び複数の機能モジュールの他方及び複数の一時記憶装置の他方の間のデータの転送を同時に実行する。【選択図】図１
2015170293.tif 000002
【特許請求の範囲】
【請求項１】
データ転送に係るバスと、
前記バスに接続された複数の機能モジュールと、
前記バスに接続され、先に書き込んだデータから順に前記データを読み出す複数の一時記憶装置と、を備え、
前記複数の機能モジュール及び前記複数の一時記憶装置のそれぞれは、前記バスに接続するためのバス接続インターフェースを備え、前記複数の一時記憶装置のそれぞれに含まれるバス接続インターフェースには、前記バスから当該一時記憶装置へのデータの入力を受け付ける入力インターフェース及び当該一時記憶装置から前記バスへデータを出力する出力インターフェースが含まれ、
前記バス接続インターフェース、前記入力インターフェース、及び前記出力インターフェースは、それぞれを固有に識別可能なバスアドレスが割り当てられ、
前記複数の機能モジュールの一方及び前記複数の一時記憶装置の一方の間のデータの転送、及び前記複数の機能モジュールの他方及び前記複数の一時記憶装置の他方の間のデータの転送を同時に実行可能に形成される、
ことを特徴とするデータ処理装置。
【請求項２】
前記複数の一時記憶装置のうちの少なくとも１つの記憶容量は、前記複数の機能モジュールのうちの１回のバースト転送において転送するデータサイズが最大である機能モジュールの、１回のバースト転送サイズの２倍である、
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記複数の一時記憶装置のうちの少なくとも１つの記憶容量は、前記複数の機能モジュールのうち、当該一時記憶装置を使用するデータ転送頻度が最も高い機能モジュールの、１回のバースト転送サイズの２倍である、
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記複数の一時記憶装置のうちの少なくとも１つの記憶容量は、前記入力インターフェース及び前記出力インターフェースのデータバス幅の２倍である、
ことを特徴とする請求項１乃至３のいずれか一つに記載のデータ処理装置。
【請求項５】
データ転送に係るバスと、
前記バスに接続された複数の機能モジュールと、
前記バスに接続され、先に書き込んだデータから順に前記データを読み出す複数の一時記憶装置と、を備えたデータ処理装置において、
前記複数の機能モジュール及び前記複数の一時記憶装置のそれぞれは、前記バスに接続するためのバス接続インターフェースを備え、前記複数の一時記憶装置のそれぞれに含まれるバス接続インターフェースには、前記バスから当該一時記憶装置へのデータの入力を受け付ける入力インターフェース及び当該一時記憶装置から前記バスへデータを出力する出力インターフェースが含まれ、
前記バス接続インターフェース、前記入力インターフェース、及び前記出力インターフェースは、それぞれを固有に識別可能なバスアドレスが割り当てられ、
前記複数の機能モジュールの一方及び前記複数の一時記憶装置の一方の間のデータの転送、及び前記複数の機能モジュールの他方及び前記複数の一時記憶装置の他方の間のデータの転送を同時に実行する、
ことを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及びデータ転送方法に係り、特に同一のバスに接続された複数の機能モジュール間のデータ転送速度を向上させる技術に関する。
【背景技術】
【０００２】
周辺ＩＯデバイス、例えばＨＤＤ（Ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＳＤカード、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）等の高速化や、データ処理（画像処理、圧縮伸張、暗号復号等）の高速化に伴い、各機能モジュール毎にマスタ型のＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）を備えている場合が多くなっている。各機能モジュール及びメモリはバスに接続されるが、マスター型のＤＭＡＣ間でデータ転送を行う場合は、共有メモリを介してデータ転送を実行する必要がある。
【０００３】
また、データ処理順序が決まっている（逆転が許されない）場合はメモリへのライト完了を待った後に、メモリからのリードを実行する必要がある。若しくは、ライトＤＭＡＣとリードＤＭＡＣ間にサイドバンド信号を設け、それぞれのデータ転送の進捗を監視できるようにし、データ転送の進捗に従がって転送を待たせる処理が必要である。
【０００４】
メモリを介することなく、マスタ型ＤＭＡＣ間でデータ転送を実行する方法として、特許文献１には、マスタ型ＤＭＡＣ間及び転送に必要な容量を有する一つのＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）回路をバスに接続する構成が開示されている。特許文献１のＦＩＦＯは、データの入出力を行えることから明らかなように、２つのスレーブインターフェースを有し、それぞれのスレーブインターフェースがバスに接続されている。そして一方のスレーブインターフェースはＦＩＦＯへのデータ入力に使用され、もう一方のスレーブインターフェースはデータの出力に使用される。そして、データを送信する側のマスタ型ＤＭＡＣは、ＦＩＦＯのデータ入力用のスレーブインターフェースに対してデータを出力し、データを引き取る側のマスタ型ＤＭＡＣは、ＦＩＦＯのデータ出力用のスレーブインターフェースを通して、データを受信する。ＦＩＦＯを使用するため、自然と、データの転送順序（ライトしてからリードする）を守ることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に記載されているようにマスタ型ＤＭＡＣ間のデータ転送を、バス接続した１個のＦＩＦＯを介して実行する方法では、１組のマスタ型ＤＭＡＣ間のデータ転送にＦＩＦＯを使用している場合、他のマスタ型ＤＭＡＣ間のデータ転送はＦＩＦＯを使用することができない。この場合、ＦＩＦＯの代わりに共有メモリを介して転送を実行するため、共有メモリへのライト動作の完了を待ってから、リード動作が実行されることとなり、転送速度が低下する。また、共有メモリへのアクセスが混雑している場合にも転送速度が低下する。従って、特許文献１では、複数のマスタ型ＤＭＡＣを有する場合に、１組のマスタ型ＤＭＡＣ間のデータ転送にＦＩＦＯを使用中に他のマスタ型ＤＭＡＣ間のデータ転送速度が低下するという課題が解消できていない。
【０００６】
本発明は、上記課題に鑑みてなされたものであり、バスに接続した複数の機能モジュール間のデータ転送を高速に行えるデータ処理装置及びデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係るデータ処理装置は、データ転送に係るバスと、前記バスに接続された複数の機能モジュールと、前記バスに接続され、先に書き込んだデータから順に前記データを読み出す複数の一時記憶装置と、を備え、前記複数の機能モジュール及び前記複数の一時記憶装置のそれぞれは、前記バスに接続するためのバス接続インターフェースを備え、前記複数の一時記憶装置のそれぞれに含まれるバス接続インターフェースには、前記バスから当該一時記憶装置へのデータの入力を受け付ける入力インターフェース及び当該一時記憶装置から前記バスへデータを出力する出力インターフェースが含まれ、前記バス接続インターフェース、前記入力インターフェース、及び前記出力インターフェースは、それぞれを固有に識別可能なバスアドレスが割り当てられ、前記複数の機能モジュールの一方及び前記複数の一時記憶装置の一方の間のデータの転送、及び前記複数の機能モジュールの他方及び前記複数の一時記憶装置の他方の間のデータの転送を同時に実行可能に形成される、ことを特徴とする。
【０００８】
また、本発明に係るデータ転送方法は、データ転送に係るバスと、前記バスに接続された複数の機能モジュールと、前記バスに接続され、先に書き込んだデータから順に前記データを読み出す複数の一時記憶装置と、を備えたデータ処理装置において、前記複数の機能モジュール及び前記複数の一時記憶装置のそれぞれは、前記バスに接続するためのバス接続インターフェースを備え、前記複数の一時記憶装置のそれぞれに含まれるバス接続インターフェースには、前記バスから当該一時記憶装置へのデータの入力を受け付ける入力インターフェース及び当該一時記憶装置から前記バスへデータを出力する出力インターフェースが含まれ、前記バス接続インターフェース、前記入力インターフェース、及び前記出力インターフェースは、それぞれを固有に識別可能なバスアドレスが割り当てられ、前記複数の機能モジュールの一方及び前記複数の一時記憶装置の一方の間のデータの転送、及び前記複数の機能モジュールの他方及び前記複数の一時記憶装置の他方の間のデータの転送を同時に実行する、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、バスに接続した複数の機能モジュール間のデータ転送を高速に行えるデータ処理装置及びデータ転送方法を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明を適用したデータ処理装置の構成を示す図
【図２】図１に示す機能モジュールの構成をより詳しく示した図であり、（ａ）は圧縮／伸張処理部の構成を示し、（ｂ）は暗号／復号処理部の構成を示し、（ｃ）はＳＡＴＡ制御部の構成を示す。
【図３】バスアドレスの割り当ての例を示す説明図
【図４】圧縮、暗号化、及びＨＤＤへライトする場合のデータ転送動作におけるデータの流れを示す図
【図５】圧縮、暗号化、及びＨＤＤへライトする場合の時系列に沿った処理動作を示す図
【図６】復号化、伸張、及びメモリへライトする場合の時系列に沿った処理動作を示す図
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の実施形態を詳細に説明する。まず、図１及び図２を参照して本実施形態に係るデータ処理装置の構成について説明する。図１は、本発明を適用したデータ処理装置の構成を示す図である。図２は、図１に示す機能モジュールの構成をより詳しく示した図であり、（ａ）は圧縮／伸張処理部の構成を示し、（ｂ）は暗号／復号処理部の構成を示し、（ｃ）はＳＡＴＡ制御部の構成を示す。
【００１２】
図１に示すように、データ処理装置１は、データ転送速度が異なる二つのバスを有する。これらのバスのうち、データ転送速度が速いバスを高速バス１０１、低いバスを低速バス１０２という。
【００１３】
またデータ処理装置１は、一時記憶装置としてのＦＩＦＯ回路（以下、「ＦＩＦＯ」と略記する）を二つ含む。また、これらのＦＩＦＯは、ＦＩＦＯ＿Ａ（符号１０）、及びＦＩＦＯ＿Ｂ（符号２０）と称する。更にデータ処理装置１は、メモリ３０、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）制御部４０、暗号／復号器５０、圧縮／伸張器６０、汎用ＤＭＡＣ７０、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８０、フラッシュＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０、及びＨＤＤ１０３を含む。以下、メモリ３０、ＳＡＴＡ制御部４０、暗号／復号器５０、圧縮／伸張器６０、汎用ＤＭＡＣ７０、ＣＰＵ８０、及びフラッシュＲＯＭ９０を一般化して機能モジュールと称する。
【００１４】
各機能モジュールは、高速バス１０１又は低速バス１０２に接続するためのバス接続インターフェース（以下「インターフェース」と略記する）を有する。各インターフェースは、マスタスレーブ機能の区分けからマスタインターフェース又はスレーブインターフェースに分類される。また各インターフェースは、データ入力を受け付ける入力インターフェース及びデータ出力を受け付ける出力インターフェースに分類される。各インターフェースは、当該インターフェースを固有に識別可能なバスアドレスが割り当てられる。これらの詳細については後述する。
【００１５】
ＦＩＦＯ＿Ａ１０、ＦＩＦＯ＿Ｂ２０、メモリ３０、ＣＰＵ８０、及びフラッシュＲＯＭ９０は、高速バス１０１に接続される。
【００１６】
また、ＳＡＴＡ制御部４０、暗号／復号器５０、圧縮／伸張器６０、及び汎用ＤＭＡＣ７０は、高速バス１０１及び低速バス１０２にそれぞれ接続される。
【００１７】
ＦＩＦＯ＿Ａ１０は、先に記憶したデータから順番にデータを取り出すことができる一時記憶装置である。ＦＩＦＯ＿Ａ１０は、入力スレーブインターフェース１１及び出力スレーブインターフェース１２を有し、各スレーブインターフェースを介して高速バス１０１に接続している。そして、高速バス１０１に接続しているマスタインターフェースを備えた任意の機能モジュールからアクセスすることができる。
【００１８】
入力スレーブインターフェース１１は、送信機能を備えた任意のマスタインターフェースから送信されたデータを受信する。受信されたデータはＦＩＦＯ＿Ａ１０に記憶される。送信機能を備えたマスタインターフェースを持つ機能モジュールは、入力スレーブインターフェース１１に割り当てられたアドレスに対してライト動作を実行することで、ＦＩＦＯ＿Ａ１０へのデータ入力を実施することができる。
【００１９】
出力スレーブインターフェース１２は、ＦＩＦＯ＿Ａ１０に記憶してあるデータを、受信機能を備えた任意のマスタインターフェースへ送信する。受信機能を備えたマスタインターフェースを持つ機能モジュールは、出力スレーブインターフェース１２に割り当てられたアドレスに対してリード動作を実行することで、ＦＩＦＯ＿Ａ１０に記憶してあるデータを取得することができる。
【００２０】
本実施形態では、入力スレーブインターフェース１１、及び出力スレーブインターフェース１２は、データバス幅１２８ｂｉｔで高速バス１０１に接続する。また、ＦＩＦＯ＿Ａ１０の記憶容量は、８バースト動作×２回分＝８×１２８ｂｉｔ×２＝２０４８ｂｉｔ＝２５６Ｂｙｔｅとする。ここで、８バーストは、ＦＩＦＯ＿Ａ１０を最も高い頻度で使用するＳＡＴＡ制御部４０のバースト数である。
【００２１】
ＦＩＦＯ＿Ａ１０の記憶容量をデータ転送頻度が最も高い機能モジュールであるＳＡＴＡ制御部４０の１回のバースト転送サイズの２倍の記憶容量とすることで、ＦＩＦＯ＿Ａ１０を用いた転送の速度と回路規模のバランスをとることができる。
【００２２】
ＦＩＦＯ＿Ｂ２０は、ＦＩＦＯ＿Ａ１０と同じく、先に記憶したデータから順番にデータを取り出すことができる一時記憶装置である。ＦＩＦＯ＿Ｂ２０は、入力スレーブインターフェース２１及び出力スレーブインターフェース２２を有し、各スレーブインターフェースを介して高速バス１０１に接続している。そして、高速バス１０１に接続しているマスタインターフェースを備えた任意の機能モジュールからアクセスすることができる。
【００２３】
入力スレーブインターフェース２１は、送信機能を備えた任意のマスタインターフェースから送信されたデータを受信し、受信したデータはＦＩＦＯ＿Ｂ２０に記憶される。送信機能を備えたマスタインターフェースを持つ機能モジュールは、入力スレーブインターフェース２１に割り当てられたアドレスに対してライト動作を実行することで、ＦＩＦＯ＿Ｂ２０へのデータ入力を実施することができる。
【００２４】
出力スレーブインターフェース２２は、ＦＩＦＯ＿Ｂ２０に記憶してあるデータを、受信機能を備えた任意のマスタインターフェースへ送信する。受信機能を備えたマスタインターフェースを持つモジュールは、出力スレーブインターフェース２２に割り当てられたアドレスに対してリード動作を実行することで、ＦＩＦＯ＿Ｂ２０に記憶してあるデータを取得することができる。
【００２５】
本実施形態では、入力スレーブインターフェース２１及び出力スレーブインターフェース２２は、データバス幅１２８ｂｉｔで高速バス１０１に接続する。また、ＦＩＦＯ＿Ｂ２０の記憶容量は、１６バースト動作×２回分＝１６×１２８ｂｉｔ×２＝４０９６ｂｉｔ＝５１２Ｂｙｔｅとする。ここで、１６バーストは、高速バス１０１に接続された機能モジュールのうち、１回のバースト転送で行うバースト動作が最大の機能モジュールにおける動作数である。従って、１回のバースト転送で、１６バーストを行う機能モジュールは、１回のバースト転送で転送するデータサイズが最大である機能モジュールと言える。
【００２６】
ＦＩＦＯ＿Ｂ２０の記憶容量を１回のバースト転送で転送するデータサイズが最大である機能モジュールの、１回のバースト転送サイズの２倍とすることで、バスに接続した任意の機能モジュールのバースト転送性能を最大限発揮できるという効果がある。
【００２７】
ＦＩＦＯ＿Ａ１０、ＦＩＦＯ＿Ｂ２０のそれぞれの記憶容量は、上記した決定手法の他、ＦＩＦＯ＿Ａ１０、ＦＩＦＯ＿Ｂ２０のそれぞれのインタフェースのデータバス幅の２倍としてもよい。これにより、ＦＩＦＯ＿Ａ１０、ＦＩＦＯ＿Ｂ２０にデータを入力する速度と、ＦＩＦＯ＿Ａ１０、ＦＩＦＯ＿Ｂ２０からデータを出力する速度が同等である場合に、最小限の記憶容量で、データ転送速度を維持できる。
【００２８】
また、ＦＩＦＯ＿Ａ１０の記憶容量を、ＦＩＦＯ＿Ａ１０を使用するデータ転送頻度が最も高い機能モジュール（ＳＡＴＡ制御部４０）の、１回のバースト転送サイズの２倍の記憶容量とし、ＦＩＦＯ＿Ｂ２０の記憶容量をデータ転送頻度が２番目に高いモジュール、例えばメモリ３０の１回のバースト転送サイズの２倍の記憶容量としてもよい。これにより、ＦＩＦＯ＿Ａ１０、ＦＩＦＯ＿Ｂ２０のデータ転送の速度と回路規模のバランスをとることができる。
【００２９】
高速バス１０１は、任意のマスタインターフェースを備えた機能モジュールと、任意のスレーブインターフェースを備えた機能モジュール間のデータ転送を仲介し、複数組のマスタ／スレーブモジュール間のデータ転送を平行して実行することができる。本実施形態では、数ＧＢｙｔｅ／ｓの帯域を想定している。
【００３０】
低速バス１０２は、高速な転送を必要としないデータ（各機能モジュールの設定情報）の送受信で使用され、任意のマスタインターフェースを備えた機能モジュールと、任意のスレーブインターフェースを備えた機能モジュール間のデータ転送を仲介し、１組のマスタ／スレーブモジュール間でデータ転送中である場合には、他のマスタ／モジュール間のデータ転送を実行することはできない。本実施形態では、数十ＭＢｙｔｅ／ｓの帯域を想定している。
【００３１】
高速バス１０１及び低速バス１０２は、高速バス１０１が有するマスタインターフェース及び低速バス１０２が有するスレーブインターフェースを介して接続される。
【００３２】
ＣＰＵ８０は、各機能モジュールの動作を設定し、データ処理装置１のメイン制御を実行する。ＣＰＵ８０は、データ送受信用の入出力マスタインターフェース８１を有し、これを通してバスに接続された任意のスレーブインターフェースを持つモジュールにアクセスすることができる。各スレーブインターフェースには、スレーブモジュールの仕様に応じたアドレス範囲、または、特定アドレス値が割り当てられており、このアドレスを指定することで、所望のスレーブモジュールにアクセスすることができる。各モジュールに備えられたスレーブインターフェースのアドレスは、図３を参照して後述する。
【００３３】
フラッシュＲＯＭ９０は、ブートプログラムを格納しており、システムの起動時にＣＰＵ８０からアクセスされる。
【００３４】
入出力スレーブインターフェース９１には、フラッシュＲＯＭ９０の容量に応じたアドレス範囲が割り当てられており、バスに接続された任意のマスタインターフェースを持つ機能モジュールは、このアドレスを指定することで、フラッシュＲＯＭ９０にアクセスすることができる。
【００３５】
汎用ＤＭＡＣ７０は、入力マスタインターフェース７２、及び出力マスタインターフェース７３を有し、これらを介して高速バス１０１に接続しており、バスに接続しているスレーブインターフェースを備えた任意の機能モジュールに対してアクセスすることができる。
【００３６】
汎用ＤＭＡＣ７０は、入力マスタインターフェース７２を通して、任意の出力スレーブインターフェースを持つ機能モジュールからデータをリードし、出力マスタインターフェース７３を通して、任意の入力スレーブインターフェースを持つ機能モジュールにデータをライトすることができる。
【００３７】
汎用ＤＭＡＣ７０は更に入出力スレーブインターフェース７１を有し、これを介して低速バス１０２に接続される。汎用ＤＭＡＣ７０の設定（リード対象スレーブモジュール、ライト対象スレーブモジュール、転送データサイズ、等）は、低速バス１０２に接続した入出力スレーブインターフェース７１を通して、ＣＰＵ８０により実行される。
【００３８】
メモリ３０は、ＨＤＤ１０３からリードしたＣＰＵ８０の動作プログラムを記憶する、または、ＣＰＵ８０の処理したデータを記憶する等、各機能モジュールのワーク領域として使用される。
【００３９】
メモリ３０は、入出力スレーブインターフェース３１を有する。入出力スレーブインターフェース３１には、メモリ３０の容量に応じたアドレス範囲が割り当てられており、バスに接続された任意のマスタインターフェースを持つ機能モジュールは、このアドレスを指定することで、メモリ３０にアクセスすることができる。
【００４０】
圧縮／伸張器６０は、図２の（ａ）に示すように、低速バス１０２に接続される入出力スレーブインターフェース６１、高速バス１０１に接続される入力マスタインターフェース６２及び出力マスタインターフェース６３を備える。更に、圧縮／伸張器６０は、マスタ型の受信用ＤＭＡＣ６４、マスタ型の送信用ＤＭＡＣ６５、及び圧縮伸張処理部６６を内蔵する。
【００４１】
受信用ＤＭＡＣ６４は入力マスタインターフェース６２を通して高速バス１０１に接続される。送信用ＤＭＡＣ６５は出力マスタインターフェース６３を通して高速バス１０１に接続されている。そして受信用ＤＭＡＣ６４は、送信機能を備えた出力スレーブインターフェースを持つ任意の機能モジュールにアクセスすることができ、送信用ＤＭＡＣ６５は受信機能を備えた入力スレーブインターフェースを持つ任意の機能モジュールにアクセスすることができる。
【００４２】
圧縮伸張処理部６６は、入力マスタインターフェース６２及び受信用ＤＭＡＣ６４を介して入力されたデータの圧縮処理を行う圧縮動作モード、又は伸張処理を行う伸張動作モードを切替えてデータ処理を行う。
【００４３】
圧縮動作モードでは、圧縮したいデータを入力マスタインターフェース６２を通して取得し、圧縮済みのデータを出力マスタインターフェース６３を通して出力する。
【００４４】
圧縮伸張処理部６６の動作モードは、低速バス１０２に接続した入出力スレーブインターフェース６１を通して、ＣＰＵ８０により設定される。また、受信用ＤＭＡＣ６４、送信用ＤＭＡＣ６５の設定（リード対象スレーブモジュール、ライト対象スレーブモジュール、転送データサイズ、等）も、入出力スレーブインターフェース６１を通して、ＣＰＵ８０により設定される。
【００４５】
暗号／復号器５０は、図２の（ｂ）に示すように、低速バス１０２に接続される入出力スレーブインターフェース５１、高速バス１０１に接続される入力マスタインターフェース５２及び出力マスタインターフェース５３を備える。更に、暗号／復号器５０は、マスタ型の受信用ＤＭＡＣ５４、マスタ型の送信用ＤＭＡＣ５５、及び暗号復号処理部５６を内蔵する。
【００４６】
受信用ＤＭＡＣ５４は入力マスタインターフェース５２を通して高速バス１０１に接続される。送信用ＤＭＡＣ５５は出力マスタインターフェース５３を通して高速バス１０１に接続されている。そして受信用ＤＭＡＣ５４は、送信機能を備えた出力スレーブインターフェースを持つ任意の機能モジュールにアクセスすることができ、送信用ＤＭＡＣ５５は入力スレーブインターフェースを持つ任意の機能モジュールにアクセスすることができる。
【００４７】
暗号／復号器５０は、入力マスタインターフェース５２及び受信用ＤＭＡＣ５４を介して入力されたデータを暗号化する暗号動作モード、及び復号化する復号化モードを備え、いずれかの動作モードに切替えてデータ処理を行う。
【００４８】
暗号／復号器５０は、暗号動作モードにおいて暗号化したいデータを、入力マスタインターフェース５２を通して取得し、暗号化済みのデータを出力マスタインターフェース５３を通して出力する。
【００４９】
復号動作モードでは、暗号化済みデータを、入力マスタインターフェース５２を通して取得し、復号化済みのデータを、出力マスタインターフェース５３を通して出力する。
【００５０】
暗号／復号器５０の動作モードは、低速バス１０２に接続した入出力スレーブインターフェース５１を通してＣＰＵ８０が設定する。また、受信用ＤＭＡＣ５４、送信用ＤＭＡＣ５５の設定（リード対象スレーブモジュール、ライト対象スレーブモジュール、転送データサイズ、等）も、入出力スレーブインターフェース５１を通して、ＣＰＵ８０が設定する。
【００５１】
ＳＡＴＡ制御部４０は、図２の（ｃ）に示すように、低速バス１０２に接続される入出力スレーブインターフェース４１、高速バス１０１に接続される入出力マスタインターフェース４２を備える。更にＳＡＴＡ制御部４０は、送受信用のマスタ型ＤＭＡＣ（以下「送受信用ＤＭＡＣ」という）４４、及びＳＡＴＡ規格に準拠したデバイスを制御するためのＳＡＴＡホストコントローラ４６を内蔵する。
【００５２】
送受信用ＤＭＡＣ４４は入出力マスタインターフェース４２を通して高速バス１０１に接続される。送受信用ＤＭＡＣ４４は受信機能を備えた入力スレーブインターフェースを持つ任意の機能モジュールにアクセスすることができる。
【００５３】
ＳＡＴＡホストコントローラ４６は、ＨＤＤ１０３へのデータライト／データリードを実行する。ＳＡＴＡのコマンド設定や、ＨＤＤ１０３のステータス情報の取得は、低速バス１０２に接続した入出力スレーブインターフェース４１を通して、ＣＰＵ８０が実行する。また、送受信用ＤＭＡＣ４４の設定（リード対象スレーブモジュール、ライト対象スレーブモジュール、転送データサイズ、等）も、入出力スレーブインターフェース４１を通して、ＣＰＵ８０が実行する。
【００５４】
ＨＤＤ１０３は、ＳＡＴＡ規格に準拠したストレージデバイスで、ＯＳ、アプリケーションプログラム等の記憶、及び、処理データの一時待避領域等に使用する。
【００５５】
次に図３を参照して、本実施形態に係るデータ処理装置におけるバスアドレスの割り当て例を説明する。図３は、バスアドレスの割り当ての例を示す説明図である。
【００５６】
図３に示すフラッシュＲＯＭ領域９１０は、入出力スレーブインターフェース９１を通してアクセスできる領域で、アドレス０ｘ０００８＿００００〜０ｘ０００Ｆ＿ＦＦＦＦを割り当てている。
【００５７】
システム制御レジスタ領域８１０は、ＣＰＵ８０の動作モード等を設定する領域で、アドレス０ｘ００１０＿００００〜０ｘ００１０＿０ＦＦＦを割り当てている。
【００５８】
ＳＡＴＡ制御レジスタ領域４１０は、入出力スレーブインターフェース４１を通してアクセスできる領域で、アドレス０ｘ００１０＿１０００〜０ｘ００１０＿１ＦＦＦを割り当てている。
【００５９】
暗号／復号器制御レジスタ領域５１０は、入出力スレーブインターフェース５１を通してアクセスできる領域で、アドレス０ｘ００１０＿２０００〜０ｘ００１０＿２ＦＦＦを割り当てている。
【００６０】
圧縮／伸張器制御レジスタ領域６１０は、入出力スレーブインターフェース６１を通してアクセスできる領域で、アドレス０ｘ００１０＿３０００〜０ｘ００１０＿３ＦＦＦを割り当てている。
【００６１】
汎用ＤＭＡＣ制御レジスタ領域７１０は、入出力スレーブインターフェース７１を通してアクセスできる領域で、アドレス０ｘ００１０＿４０００〜０ｘ００１０＿４ＦＦＦを割り当てている。
【００６２】
ＦＩＦＯ＿Ａ（入力）領域１１０は、入力スレーブインターフェース１１を通してアクセスできる領域で、アドレス０ｘ００２０＿００００を割り当てている。
【００６３】
ＦＩＦＯ＿Ａ（出力）領域１２０は、出力スレーブインターフェース１２を通してアクセスできる領域で、アドレス０ｘ００２０＿１０００を割り当てている。
【００６４】
ＦＩＦＯ＿Ｂ（入力）領域２１０は、入力スレーブインターフェース２１を通してアクセスできる領域で、アドレス０ｘ００２０＿２０００を割り当てている。
【００６５】
ＦＩＦＯ＿Ｂ（出力）領域２２０は、出力スレーブインターフェース２２を通してアクセスできる領域で、アドレス０ｘ００２０＿３０００を割り当てている。
【００６６】
メモリ領域３１０は、入出力スレーブインターフェース３１を通してアクセスできる領域で、アドレス０ｘ８０００＿００００〜０ｘＦＦＦＦ＿ＦＦＦＦを割り当てている。
【００６７】
以下に、図４及び図５を参照してメモリ３０に記憶しているデータを、圧縮し、暗号化した後に、ＨＤＤ１０３へライトする場合のデータ転送動作例について述べる。図４は、圧縮、暗号化、及びＨＤＤへライトする場合のデータ転送動作におけるデータの流れを示す図である。図５は、圧縮、暗号化、及びＨＤＤへライトする場合の時系列に沿った処理動作を示す図であって、実線はあるタイミングにおいて同時に処理が実行されている状態を示し、点線はそのタイミングよりも前に行われた処理を示す。
【００６８】
メモリからのリード動作、圧縮、暗号化、及びＨＤＤ１０３へのライト動作では、図４に示すようにＣＰＵを介することなく、各機能モジュールが備えるＤＭＡＣの機能によってデータ転送が行われる。以下、図５の各ステップ順に沿って一連の処理動作について説明する。
【００６９】
圧縮／伸張器６０は、入力マスタインターフェース６２を使用して、メモリ３０の入出力スレーブインターフェース３１にアクセスし、メモリ３０に記憶しているデータをリードする（Ｓ５０１）。
【００７０】
リードしたデータを圧縮伸張処理部６６で圧縮処理した後（Ｓ５０２）、圧縮済みのデータを出力マスタインターフェース６３を使用して、ＦＩＦＯ＿Ｂ２０の入力スレーブインターフェース２１へ送信する（Ｓ５０３）。
【００７１】
ＦＩＦＯ＿Ｂ２０は、圧縮済みのデータを、入力スレーブインターフェース２１で受信し、ＦＩＦＯ＿Ｂ２０に記憶する（Ｓ５０４）。
【００７２】
入力スレーブインターフェース２１は、データ受信可能を示す信号を含み、ＦＩＦＯ＿Ｂ２０の記憶領域に空きがある場合に、データ受信可能信号をアサートする。圧縮／伸張器６０の出力マスタインターフェース６３は、入力スレーブインターフェース２１の受信可能信号がアサートするまで、現在送信しているデータを維持する、即ち次データの送信を実行しない。
【００７３】
出力スレーブインターフェース２２は、データ送信可能を示す信号を含み、ＦＩＦＯ＿Ｂ２０にデータが記憶されている場合に、データ送信可能信号をアサートする。暗号／復号器５０の入力マスタインターフェース５２は、出力スレーブインターフェース２２の送信可能信号がアサートするまで、データの取得を待つ。暗号／復号器５０は、入力マスタインターフェース５２を使用して、ＦＩＦＯ＿Ｂ２０の出力スレーブインターフェース２２にアクセスし、ＦＩＦＯ＿Ｂ２０に記憶されている圧縮済みデータをリードする（Ｓ５０５）。
【００７４】
暗号復号処理部５６においてリードしたデータを暗号化処理した後（Ｓ５０６）、暗号化済みのデータを出力マスタインターフェース５３を使用して、ＦＩＦＯ＿Ａ１０の入力スレーブインターフェース１１へ送信する（Ｓ５０７）。
【００７５】
ＦＩＦＯ＿Ａ１０は、暗号化済みのデータを、入力スレーブインターフェース１１で受信し、ＦＩＦＯ＿Ａ１０に記憶する（Ｓ５０８）。
【００７６】
入力スレーブインターフェース１１は、データ受信可能を示す信号を含み、ＦＩＦＯ＿Ａ１０の記憶領域に空きがある場合に、データ受信可能信号をアサートする。暗号／復号器５０の出力マスタインターフェース５３は、入力スレーブインターフェース１１の受信可能信号がアサートするまで、現在送信しているデータを維持する、即ち次データの送信を実行しない。
【００７７】
出力スレーブインターフェース１２は、データ送信可能を示す信号を含み、ＦＩＦＯ＿Ａ１０にデータが記憶されている場合に、データ送信可能信号をアサートする。ＳＡＴＡ制御部４０の入出力マスタインターフェース４２は、出力スレーブインターフェース１２の送信可能信号がアサートするまで、データの取得を待つ。
【００７８】
ＳＡＴＡ制御部４０は、入出力マスタインターフェース４２を使用して、ＦＩＦＯ＿Ａ１０の出力スレーブインターフェース１２にアクセスし、ＦＩＦＯ＿Ａ１０に記憶されている暗号化済みデータをリードし（Ｓ５０９）、ＨＤＤ１０３へ送信する（Ｓ５１０）。
【００７９】
上記において、メモリ３０からのデータのリード処理、圧縮処理、暗号化処理、ＨＤＤ１０３へのライト処理は、同時平行で行われる。図５はその同時平行の処理を表すために、あるタイミングにおいて圧縮／伸張器６０からＦＡＩＦＯ＿Ｂ２０へのデータ転送と暗号／復号器５０からＦＡＩＦＯ＿Ａ１０へのデータ転送と、ＨＤＤ１０３へのライト動作が同時に実行されていることを実線で示す
【００８０】
上記のごとく、ＦＩＦＯ＿Ａ１０とＦＩＦＯ＿Ｂ２０を使用することにより、圧縮／伸張器６０から暗号／復号器５０へのデータ転送（Ｓ５０２〜Ｓ５０６）と、暗号／復号器５０〜ＳＡＴＡ制御部４０へのデータ転送（Ｓ５０７〜Ｓ５０９）を平行して実行することができるため、メモリ３０を共有する場合に比べて、高速にデータ転送を実行することができる。
【００８１】
次に、図６を参照して、ＨＤＤ１０３に記憶しているデータを、復号化、伸張した後に、メモリ３０へライトする場合のデータ転送動作例について述べる。図６は、復号化、伸張、及びメモリへライトする場合の時系列に沿った処理動作を示す図であって、実線はあるタイミングにおいて同時に処理が実行されている状態を示し、点線はそのタイミングよりも前に行われた処理を示す。
【００８２】
ＳＡＴＡ制御部４０は、ＨＤＤ１０３からリードした（Ｓ６０１）データを、入出力マスタインターフェース４２を使用して、ＦＩＦＯ＿Ａ１０の入力スレーブインターフェース１１へ送信する（Ｓ６０２）。
【００８３】
ＦＩＦＯ＿Ａ１０は、ＨＤＤからリードしたデータを、入力スレーブインターフェース１１で受信し、ＦＩＦＯ＿Ａ１０に記憶する（Ｓ６０３）。
【００８４】
入力スレーブインターフェース１１は、データ受信可能を示す信号を含み、ＦＩＦＯ＿Ａ１０の記憶領域に空きがある場合に、データ受信可能信号をアサートする。ＳＡＴＡ制御部４０の入出力マスタインターフェース４２は、入力スレーブインターフェース１１の受信可能信号がアサートするまで、現在送信しているデータを維持する。（次データの送信を実行しない）
【００８５】
出力スレーブインターフェース１２は、データ送信可能を示す信号を含み、ＦＩＦＯ＿Ａ１０にデータが記憶されている場合に、データ送信可能信号をアサートする。暗号／復号器５０の入力マスタインターフェース５２は、出力スレーブインターフェース１２の送信可能信号がアサートするまで、データの取得を待つ。
【００８６】
暗号／復号器５０は、入力マスタインターフェース５２を使用して、ＦＩＦＯ＿Ａ１０の出力スレーブインターフェース１２にアクセスし、ＦＩＦＯ＿Ａ１０に記憶されているＨＤＤデータをリードする（Ｓ６０４）。
【００８７】
リードしたデータを暗号復号処理部５６が復号化処理（Ｓ６０５）した後、復号化済みのデータを、出力マスタインターフェース５３を使用して、ＦＩＦＯ＿Ｂ２０の入力スレーブインターフェース２１へ送信する（Ｓ６０６）。
【００８８】
ＦＩＦＯ＿Ｂ２０は、復号化済みのデータを、入力スレーブインターフェース２１で受信し、ＦＩＦＯ＿Ｂ２０に記憶する（Ｓ６０７）。
【００８９】
入力スレーブインターフェース２１は、データ受信可能を示す信号を含み、ＦＩＦＯ＿Ｂ２０の記憶領域に空きがある場合に、データ受信可能信号をアサートする。暗号／復号器５０の出力マスタインターフェース５３は、入力スレーブインターフェース２１の受信可能信号がアサートするまで、現在送信しているデータを維持する。
【００９０】
出力スレーブインターフェース２２は、データ送信可能を示す信号を含み、ＦＩＦＯ＿Ｂ２０にデータが記憶されている場合に、データ送信可能信号をアサートする。圧縮／伸張器６０の入力マスタインターフェース６２は、出力スレーブインターフェース２２の送信可能信号がアサートするまで、データの取得を待つ。
【００９１】
圧縮／伸張器６０は、入力マスタインターフェース６２を使用して、ＦＩＦＯ＿Ｂ２０の出力スレーブインターフェース２２にアクセスし、ＦＩＦＯ＿Ｂ２０に記憶されている復号化済みデータをリードする（Ｓ６０８）。
【００９２】
リードしたデータを圧縮伸張処理部６６が伸張処理（Ｓ６０９）した後、伸張済みのデータを出力マスタインターフェース６３を使用して、メモリ３０の入出力スレーブインターフェース３１へ送信し、メモリ３０へのライトを実行する（Ｓ６１０）。
【００９３】
上記において、ＨＤＤ１０３からのリード処理、伸張処理、復号化処理、メモリ３０へのライト処理は、同時平行で行われる。図６はその同時平行の処理を表すために、あるタイミングにおいてＨＤＤ１０３からＳＡＴＡ制御部４０への読み出し、ＦＡＩＦＯ＿Ａ１０から暗号／復号器５０へのデータ転送、ＦＡＩＦＯ＿Ｂ２０から圧縮／伸張器６０へのデータ転送とが同時に実行されていることを実線で示す。
【００９４】
上記のごとく、ＦＩＦＯ＿Ａ１０とＦＩＦＯ＿Ｂ２０を使用することにより、ＳＡＴＡ制御部４０から暗号／復号器５０へのデータ転送（Ｓ６０２〜Ｓ６０５）と、暗号／復号器５０から圧縮／伸張器６０へのデータ転送（Ｓ６０６〜Ｓ６０９）とを平行して実行することができるため、メモリ３０を共有する場合に比べて、高速にデータ転送を実行することができる。
【符号の説明】
【００９５】
１  データ処理装置
１０  ＦＩＦＯ＿Ａ
１１、２１  入力スレーブインターフェース
１２、２２  出力スレーブインターフェース
２０  ＦＩＦＯ＿Ｂ
３０  メモリ
３１、４１、５１、６１、７１、８１  入出力スレーブインターフェース
４０  ＳＡＴＡ制御部
４２、８１  入出力マスタインターフェース
４４  送受信用ＤＭＡＣ
４６  ＳＡＴＡホストコントローラ
５０  暗号／復号器
５２、６２、７２  入力マスタインターフェース
５３、６３、７３  出力マスタインターフェース
５４、６４  受信用ＤＭＡＣ
５５、６５  送信用ＤＭＡＣ
５６  暗号復号処理部
６０  圧縮／伸張器
６６  圧縮伸張処理部
７０  汎用ＤＭＡＣ
８０  ＣＰＵ
９０  フラッシュＲＯＭ
１０３  ＨＤＤ
１０１  高速バス
１０２  低速バス
【先行技術文献】
【特許文献】
【００９６】
【特許文献１】特開２００３−３３７８０５号公報
【図１】
2015170293.tif 000003
【図２】
2015170293.tif 000004
【図３】
2015170293.tif 000005
【図４】
2015170293.tif 000006
【図５】
2015170293.tif 000007
【図６】
2015170293.tif 000008