(57)【要約】  本発明は、データ暗号化／復号化処理を含む無線通信ディジタルベースバンド処理装置の改良に関し、近年のデータレート増大による処理破綻を防止するため、データ暗号化／復号化処理などMAC処理の高速化と処理装置内の負荷分散化を実現することを目的とし、データ暗号化／復号化処理を含む通信処理を行うデータ処理装置において、MAC処理パラメータの計算を行う制御プロセッサと、データ暗号化／復号化処理を含むMACデータ処理を行うMAC処理手段を備え、前記制御プロセッサが、コマンドとそれに付随するパラメータの組合せを連続して記載するコマンドスクリプトによって前記MAC処理手段を制御する。
2009005089.tif 000002
【特許請求の範囲】
【請求項１】
データ暗号化／復号化処理を含む通信処理を行うデータ処理装置において、
MAC処理パラメータの計算を行う制御プロセッサと、
データ暗号化／復号化処理を含むMACデータ処理を行うMAC処理手段を備え、
前記制御プロセッサが、コマンドとそれに付随するパラメータの組合せを連続して記載するコマンドスクリプトによって前記MAC処理手段を制御することを特徴とするデータ処理装置。
【請求項２】
請求項１記載のデータ処理装置において、
前記MAC処理手段が、
処理するデータを暗号化／復号化処理単位ごとに自律的にメモリから読み出し転送するためのデータ入力手段と、
暗号化／復号化処理単位ごとにデータを暗号化／復号化処理するデータ暗号化／復号化処理手段、暗号化／復号化した結果データを暗号化／復号化処理単位ごとに自律的にメモリへ書き込み転送するためのデータ出力手段と、
前記データ入力手段と前記暗号化／復号化処理手段、前記データ出力手段とをパイプライン処理させるためのシーケンサを備えることを特徴とするデータ処理装置。
【請求項３】
請求項２記載のデータ処理装置において、
前記データ入力手段及び前記データ出力手段が、サイクルオーバヘッドなしにビットシフト処理やスワップ処理など任意のビット処理を行うビット処理手段を備えることを特徴とするデータ処理装置。
【請求項４】
請求項２または請求項３記載のデータ処理装置において、
前記データ入力手段及び前記データ出力手段が、同一アドレスに対する複数回の読み出しアクセスや書き込みアクセスを防止するためのデータ格納レジスタを備えることを特徴とする処理装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載のデータ処理装置において、
前記MAC処理手段が、前記コマンドスクリプト及びMAC処理データを格納するためのローカルメモリを備え、コマンドスクリプト内のパラメータによって処理データの読み出し元メモリと結果データの書き込み先メモリを前記ローカルメモリとMAC処理手段外部のメモリから選択するためのバスセレクタ手段を備えることを特徴とするデータ処理装置。
【請求項６】
請求項１ないし請求項５のいずれかに記載のデータ処理装置において、
前記MAC処理手段が、複数のプロセスを連続して処理するためのFIFO制御手段を備えることを特徴とするデータ処理装置。
【請求項７】
請求項１ないし請求項６のいずれかに記載のデータ処理装置において、
前記MAC処理手段が、前記コマンドスクリプトを解釈し、解釈したコマンドに従って前記シーケンサにパラメータを設定及び前記シーケンサを起動するためのインタープリタ手段を備えることを特徴とするデータ処理装置。
【請求項８】
請求項１ないし請求項７のいずれかに記載のデータ処理装置において、
前記MAC処理手段が、プロセスを投入するまでは動作する必要のない手段に対してクロックを停止するクロックゲーティング手段を備えることを特徴とするデータ処理装置。
【請求項９】
MAC処理パラメータの計算を行う制御プロセッサと、データ暗号化／復号化処理を含むMACデータ処理を行うMAC処理手段を備え、データ暗号化／復号化処理を含む通信処理を行うデータ処理装置で行われるデータ暗号化／復号化処理方法であって、
前記制御プロセッサが、コマンドとそれに付随するパラメータの組合せを連続して記載するコマンドスクリプトによって前記MAC処理手段を制御することを特徴とするデータ暗号化／復号化処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ暗号化／復号化処理を含む無線通信ディジタルベースバンド処理装置の改良に関し、特に、データ暗号化／復号化処理などMAC処理の高速化と処理装置内の負荷分散化の技術に関する。
【背景技術】
【０００２】
無線通信ディジタルベースバンド処理のLayer2  MAC(Medium  Access  Control)処理は、主にヘッダ部の付加／削除処理、データ部の暗号化／復号化処理から構成される。このMAC処理については、装置内の制御プロセッサが、暗号化／復号化処理用ハードウェアを一部使用しながら、主にソフトウェア処理することによって実現される。これは、MAC処理の内容がデータストリーム内のデータユニット数、各データユニットのビット長、暗号化／復号化パラメータなど状況に応じて可変であるため、制御プロセッサのソフトウェアで処理した方が柔軟に対応しやすいという利点があったためである。【０００３】
ここで、暗号化／復号化処理用ハードウェアに対しては、暗号化／復号化処理単位(例えば64bit)ごとに処理前データの書き込みと暗号化／復号化処理後データの読み出しを繰り返す処理を実施していた。しかしながら、今後、無線通信における送受信データのビットレートが増大することに伴い、制御プロセッサの処理負荷が増大し、MAC処理の実行にこの手法を用いると処理が破綻するという問題がある。【０００４】
特許文献１（特開2006-238214号公報）に示される技術では、暗号化データの復号計算をメインプロセッサから複数のサブプロセッサに負荷分散する技術が提案されている。【０００５】
図１は、特許文献１に開示される、メインプロセッサがベースステーションにおける認証計算や暗号鍵の復号計算をサブプロセッサに負荷分散する際の動作を示す図である。メインプロセッサが負荷の小さいサブプロセッサに対して計算要求を指示し、サブプロセッサが認証計算、暗号鍵の復号計算を行うことでメインプロセッサがその処理から解放されるという利点がある。【０００６】
しかしながら、本技術をMAC処理に適用した場合、暗号化／復号化処理自体は高速化されないため、今後のビットレート増大に対して処理が間に合わなくなる可能性があるという問題と、携帯端末などには面積や消費電力の観点から、いくつもサブプロセッサを実装できないという問題もある。【０００７】
特許文献２（特表平11-505678号公報）には、暗号化処理専用の集積回路モジュールを備えることで制御プロセッサによるデータ転送を必要とせずに音声データのコーデック処理及び暗号化処理を実施する技術が開示されている。【０００８】
図２は、特許文献２に開示される、従来技術の音声コーデック処理や暗号化／暗号解読処理を単一の集積回路モジュールに統合した例を示す図である。集積回路モジュール化した音声コーデック処理と暗号化／暗号解読処理の間ではデータ転送を必要としないため、無線制御プロセッサのオーバヘッドが減少するという利点がある。【０００９】
しかしながら、本技術を適用してMAC処理をハードウェアモジュール化した場合、制御プロセッサからMAC処理モジュールに処理データを転送する時間は結局必要であるという問題や、一度に複数のデータ暗号化／復号化処理を投入できない(制御プロセッサが待たされる)という問題もある。また、比較的複雑なMAC処理パラメータ(暗号化／復号化パラメータ、ヘッダ部やデータ部のビット位置やビット数など)の計算をハードウェアによって実現すると、高速で複雑なハードウェアが必要となるという問題もある。
特許文献１  特開2006-238214号公報
特許文献２  特表平11-505678号公報
【発明の開示】
【００１０】
第１の課題は、MAC処理を制御プロセッサによるソフトウェア処理だけで実現すると、送受信データのビットレート増大に伴って制御プロセッサの処理負荷が増大し、処理が破綻することである。特に、処理前データの読み出しや処理後データの書き込みなどデータの転送処理をソフトウェア処理にて行うとデータの転送に時間がかかるという問題がある。
【００１１】
また、この課題を解決するために、特許文献１や特許文献２に開示されているように、MAC処理全体を行う専用のハードウェアやサブプロセッサを導入すると、MAC処理の特徴から高速で複雑なハードウェアやサブプロセッサが必要となり、省面積化、低消費電力化の観点で効率が悪いという問題もある。
【００１２】
第２の課題は、MAC処理には暗号化／復号化パラメータや処理するデータのブロック数、１つのデータユニット内のビット数、ヘッダ部／データ部のビット位置など様々なMAC処理パラメータが存在するが、単純なハードウェアや処理手段を導入した場合には、各MAC処理パラメータに応じた柔軟な処理に対応できないことである。
【００１３】
また、複数データ分のMAC処理にも柔軟に対応できないことである。複数データ分のMAC処理に柔軟に対応できない場合、細かいデータブロック単位で制御プロセッサは制御を繰り返さなければいけないという問題も生じる。
【００１４】
本発明は、上述した各課題に鑑みてなされたものであって、無線通信処理におけるMAC処理を、制御プロセッサによるソフトウェア処理に適した部分と専用ハードウェアによるハードウェア処理に適した部分に分け、高速化、省面積化、低消費電力化の観点からMAC処理全体の最適化、負荷分散化を実現することを目的とする。
【００１５】
また、本発明は、特に高速化の観点で、制御プロセッサによるデータ転送をできる限り減らしたり、データ転送時間をできる限り少なくしたりすることや、省面積化及び低消費電力化の観点で、導入する専用ハードウェアの回路規模やクロック周波数を必要最小限のものにすることや、柔軟性の観点で、様々なMAC処理パラメータや複数データ分のMAC処理に対して柔軟に対応することなども目的とする。
【００１６】
本発明のデータ処理装置は、データ暗号化／復号化処理を含む通信処理を行うデータ処理装置において、
MAC処理パラメータの計算を行う制御プロセッサと、
データ暗号化／復号化処理を含むMACデータ処理を行うMAC処理手段を備え、
前記制御プロセッサが、コマンドとそれに付随するパラメータの組合せを連続して記載するコマンドスクリプトによって前記MAC処理手段を制御することを特徴とする。
【００１７】
本発明のデータ処理方法は、MAC処理パラメータの計算を行う制御プロセッサと、データ暗号化／復号化処理を含むMACデータ処理を行うMAC処理手段を備え、データ暗号化／復号化処理を含む通信処理を行うデータ処理装置で行われるデータ暗号化／復号化処理方法であって、
前記制御プロセッサが、コマンドとそれに付随するパラメータの組合せを連続して記載するコマンドスクリプトによって前記MAC処理手段を制御することを特徴とする。
【図面の簡単な説明】
【００１８】
【図１】図１は、サブプロセッサに処理を負荷分散するフローを示す図である。
【図２】図２は、音声コーデックと暗号化処理の集積回路モジュール化を示す図である。
【図３】図３は、本発明の第1の実施の形態におけるデータ処理装置の構成を示す図である。
【図４】図４は、本発明で想定しているMACデータ処理の一般的な例を示す図である。
【図５】図５は、本発明におけるMAC処理ハードウェアの構成と制御機構を示す図である。
【図６】図６は、本発明におけるMAC処理ハードウェアのFIFOによる遅延実行の例を示す図である。
【図７】図７は、本発明におけるコマンドスクリプトの基本構成を示す図である。
【図８】図８は、本発明におけるストリームコントローラの内部構成を示す図である。
【図９】図９は、本発明におけるストリームコントローラのパイプライン処理を示す図である。
【図１０】図１０は、本発明におけるデータ入力コントローラの回路構成を示す図である。
【図１１】図１１は、本発明におけるデータ出力コントローラの回路構成を示す図である。
【図１２】図１２は、本発明におけるデータ入力コントローラの回路構成を示  図１２は、本発明の実施例１における送信データの暗号化処理シーケンスを示す図である。
【図１３】図１３は、本発明の実施例１における受信データの復号化処理シーケンスを示す図である。
【図１４】図１４は、本発明の実施例１における処理データの暗号化／復号化処理シーケンスを示す図である。
【図１５】図１５は、本発明の実施例１におけるクロック制御機構を示す図である。
【図１６】図１６は、本発明の第２の実施の形態におけるデータ処理装置の構成を示す図である。
【符号の説明】
【００１９】
１０    制御プロセッサ(CPU)
１１    割り込みコントローラ(INTC、  WINTC)
１２    DMAコントローラ(DMAC)
１３    外部メモリコントローラ
１４    外部メモリ
２０    MAC処理ハードウェア(MAC  HW)
２１    ローカルメモリ
２２    FIFOコントローラ
２３    インタープリタ
２４    ストリームコントローラ
２５    シーケンサ
２６    データ入力コントローラ
２７    暗号化／復号化部
２８    データ出力コントローラ
２９    データメモリセレクタ
３０    DBB(Layer1)ブロック
３１    DBB内メモリ
４０    DBB(ディジタルベースバンド)コア
４１    バス
５０    データストリーム
５１    オリジナルデータストリーム
６０    コマンドスクリプト
【発明を実施するための最良の形態】
【００２０】
次に、図３から図１６を参照して、本発明の実施の形態について詳細に説明する。【００２１】
第１の実施の形態では、本発明におけるデータ処理装置として、MAC処理ハードウェアを無線通信用データ処理装置のベースバンドコア部(Layer1処理部)に実装した場合の例を用いてその基本構成と特徴、動作について詳説する。また、第２の実施の形態では、MAC処理ハードウェアを制御プロセッサのペリフェラルブロック(周辺ブロック)として実装し、MAC処理ハードウェアが外部メモリに直接アクセス可能な場合の例について詳説する。【００２２】
第１の実施の形態
図３は、本発明の第１の実施の形態であるデータ処理装置の例として、MAC処理ハードウェアを無線通信用LSIのベースバンドコア部(Layer1処理部)に実装した場合の全体構成を示す図である。本発明を用いて無線通信ディジタルベースバンドLSIを構成した例である。【００２３】
本実施形態における無線通信用LSIは、無線通信処理のLayer2及びLayer3処理を行う制御プロセッサ(CPU)10とその周辺ブロック(ペリフェラル)として割り込みコントローラ(INTC)11、DMAコントローラ(DMAC)12、外部メモリコントローラ13、無線通信処理のLayer1処理を行うディジタルベースバンドコア40が存在するような基本的な構成を想定している。【００２４】
制御プロセッサ(CPU)10またはDMAコントローラ12は外部メモリコントローラ13を介してLSI外部の外部メモリ14に対するアクセスを行う。DMAコントローラ12は、外部メモリ14から外部メモリ14へのデータ転送、及び、外部メモリ14からディジタルベースバンドコア40内へのデータ転送、ディジタルベースバンドコア40内から外部メモリ14へのデータ転送などを実施できる。【００２５】
本実施形態では、無線通信処理のLayer1処理を行うディジタルベースバンドコア40内に、本発明であるLayer2  MACデータ処理をアクセラレートするためのMAC処理ハードウェア(MAC  HW)20を実装する。したがって、ディジタルベースバンドコア40内にはLayer1処理を行うディジタルベースバンド部(DBB)30とMAC処理ハードウェア20が存在する構成となる。【００２６】
MAC処理ハードウェア20は、バス41及びSlave  I／Fを通じて制御プロセッサ10やDMAコントローラ12に接続され、専用のMaster  I／Fを通じてDBB内メモリ31と接続される。また、MAC処理ハードウェア20は、後述するコマンドスクリプト及び処理データを格納するローカルメモリ21と複数プロセスに対するFIFO処理を行うFIFOコントローラ22、ローカルメモリに格納されたコマンドスクリプトを解釈するインタープリタ23、暗号化／復号化処理及びデータ転送処理を実施するストリームコントローラ24などから構成される。【００２７】
本実施形態の動作について図３から図１１を用いて説明する。【００２８】
本実施形態では、MAC処理のうち、比較的仕様が複雑でハードウェアでの実現に適さないMAC処理パラメータ(種々の暗号化／復号化パラメータやヘッダ部／データ部のビット数、処理データユニット数など)の計算は、高速かつ高機能な制御プロセッサ(CPU)10で実行し、比較的規則性が高くハードウェアでの実現に適したMACデータ処理(ヘッダ部の付加／削除のためのビットシフト処理や暗号化／復号化処理、入出力データの転送処理など)については、MAC処理ハードウェア20によってアクセラレートして実行することを特徴とする。【００２９】
図４は、本実施形態で想定しているMACデータ処理の一般的な例を示した図である。送信データの場合は、オリジナルのデータストリーム51に対して、各々のデータ部にヘッダ部を付加してデータユニットを形成し、必要に応じてデータ部の暗号化を実施し、個々のデータユニットを連結することによって暗号化データストリーム50を生成するような処理である。【００３０】
また、受信データの場合は逆に、暗号化されたデータストリーム50に対して、個々のデータユニットからヘッダ部を除去し、必要に応じてデータ部の復号化を行うことによってオリジナルのデータストリーム50を生成するような処理である。ここで、各データストリーム内のデータユニット数、及び個々のデータユニット内のヘッダ部及びデータ部のビット数等は任意である。また、場合によっては、データ部を暗号化／復号化しない場合や、ヘッダ部の付加／削除を行わない場合も存在する。【００３１】
図３に示した制御プロセッサ10は、図４に示したMACデータ処理を行うためのMAC処理パラメータ(暗号化／復号化用パラメータや各データユニットのヘッダ部／データ部のビット数など)の計算を行い、アクセラレータであるMAC処理ハードウェア20を制御するためのコマンドスクリプトを生成する処理を行う。【００３２】
MAC処理パラメータは、一般的に、送信データストリームの場合は主に上位Layerからの指示により、受信データストリームの場合は上位レイヤからの指示と受信データの各ヘッダ部を解析することによって求められる。このMAC処理パラメータの計算処理は、一般的に条件分岐が多く比較的複雑な処理となるため、本発明では制御プロセッサ10によるソフトウェア処理にマッピングする。【００３３】
MAC処理ハードウェア20は送受信データのMACデータ処理を行うために用いられる。MAC処理ハードウェア20は制御プロセッサ10からのコマンドに従って、MAC処理ハードウェア20内のローカルメモリ21またはDBB内メモリ31から処理データを読み出し、暗号化／復号化処理して、MAC処理ハードウェア20内のローカルメモリ21またはDBB内メモリ31に処理後のデータを書き込む処理を自律的に行うことを特徴とする。【００３４】
（MAC処理ハードウェアの制御機構についての説明）
図５は、図３で示したMAC処理ハードウェア20の内部構成を示す図であり、その制御機構を説明するために詳細化した図である。【００３５】
MAC処理ハードウェア20は複数の処理プロセス投入に対応するためのFIFO機能を備え、投入した順にプロセスを実行する。このFIFO機構を備えることにより、制御プロセッサ10は他のプロセスが終了する前に次のプロセスを投入することができる。例えば、送信データのMAC処理と受信データのMAC処理など複数のMACデータ処理が競合した場合でも制御プロセッサ10を待たせることなく処理を実行できる。【００３６】
MAC処理ハードウェア20の制御方法の例としては、
(1)  まず、ローカルメモリ21の任意のアドレスにコマンドスクリプト(詳細は後述)をセットし、FIFOコントローラ22にそのコマンドスクリプトの先頭アドレスを指示し、プロセスを投入する。【００３７】
(2)  実行中のプロセスが存在しないか、実行中のプロセスが終了した場合、FIFOコントローラ22は現在投入されているプロセスの中で最も優先順位の高いプロセス(例えば投入されているプロセスの中で最も早く投入されたプロセス)を選択し、そのプロセスを実行するようにインタープリタ23に指示する。【００３８】
(3)  インタープリタ23は、ローカルメモリ21から該当するコマンドスクリプトを読み出し、そのスクリプトを解析し、実際に暗号化／復号化処理及びデータ転送処理を行うストリームコントローラ24にパラメータやコマンドをセットする。【００３９】
(4)  ストリームコントローラ24は、前述のパラメータやコマンドに従い暗号化／復号化部(Cipher／Decipher  Core)に処理データを供給し、暗号化／復号化部は暗号化／復号化処理を行う。【００４０】
(5)  インタープリタ23は、コマンドスクリプトを順に解釈処理し、スクリプトの最後まで実行すると、FIFOコントローラ22に処理の終了を知らせる。【００４１】
(6)  FIFOコントローラ21は実行したスクリプトに対応する割り込み信号、またはDMAリクエスト信号をアクティブにする、といった手順となる。【００４２】
図６は、FIFOによる遅延実行の例を示した図である。この例では、制御プロセッサ10はまずプロセス0を投入し、MAC処理ハードウェア20がこの処理を実行中の間に、制御プロセッサ10は次のプロセス1を投入している。この場合、MAC処理ハードウェア20ではプロセス0の処理が終了した直後にプロセス1が自動的に開始される。これにより制御プロセッサ10はプロセス0の処理終了を待つ必要がなくなる。【００４３】
（コマンドスクリプトについての説明）
一般的なMAC処理においては、ある時間単位ごとのデータストリーム内に複数のデータユニットが含まれる可能性が高い。制御プロセッサ10がデータユニットごとにコマンドを発行し、データユニットごとに割り込み信号を受け付けていたりすると、制御プロセッサ10側の処理オーバヘッドが大きくなる。【００４４】
上記の問題を解決するために、制御プロセッサ10はMAC処理ハードウェア20にプロセスを投入する際に、コマンドスクリプトを用いる。コマンドスクリプトとは実行する暗号化／復号化処理の手順、暗号化／復号化パラメータ、処理データの先頭ビット位置、ビット数等を記載した一種のプログラムであり、複数回分のMAC処理を１つのコマンドスクリプトに連続して記載した上で、プロセスを投入することができる。【００４５】
また、このコマンドスクリプトを用いることにより、制御プロセッサ10は、((ヘッダ部転送処理＋データ部暗号化処理)×データユニット数)のような様々なMACデータ処理をMAC処理ハードウェア20に投入することができる。また、制御プロセッサ10への割り込み信号の入力回数も減らすことができ、制御プロセッサ10の割り込み処理オーバヘッドも削減できる。【００４６】
図７は、コマンドスクリプトの基本構成の例を示した図である。コマンドスクリプト60は、例えば、コマンドとそれに付随するパラメータを並べて記述することで実現する。コマンド及びパラメータは、例えば、全て１ハーフワード(16bit)のコードで表現され、コマンドと組み合わせるパラメータの個数はコマンドによって異なる。【００４７】
例えば、ある暗号化／復号化処理を行う場合、最初に暗号化／復号化処理パラメータ設定コマンドで該当する暗号化／復号化処理用のパラメータ(読み出し元と書き込み先のメモリ選択、そのデータ先頭アドレスと先頭ビット位置、メモリのビットフォーマット、処理するデータのビット長、種々の暗号化／復号化処理パラメータなど)を全てセットし、暗号化／復号化処理実行コマンドで暗号化／復号化処理の実行を開始させる。実行が終了したら終了コマンドでこのコマンドスクリプトの処理を終了させる。【００４８】
ここで、図４に示したように、MACデータ処理を行うデータストリームには複数のデータユニットが存在し、各データユニットの中に更にヘッダ部とデータ部が存在するような構成であり、データユニットごとにヘッダ部及びデータ部のビット長やデータ部の暗号化／復号化処理パラメータが変化する可能性もある。【００４９】
本実施形態におけるコマンドスクリプトは、コマンド及びそれに付随するパラメータの組合せで実現しているため、これらのMAC処理データストリームを処理するために最適な構成であるという特徴もある。例えば、送信データのMACデータ処理については、ヘッダ部転送パラメータ設定コマンド、ヘッダ部転送実行コマンド、データ部暗号化パラメータ設定コマンド、データ部暗号化実行コマンドなどをデータユニット数分繰り返し記載することにより、パラメータやビット長が途中で変化するような任意のMAC処理データストリームを一回のコマンドスクリプトで処理することが可能である。【００５０】
また、設定コマンドには、暗号化／復号化処理用の全てのパラメータを設定するコマンドに加えて、一部のパラメータのみを変更できる個別設定コマンドなどを定義しても何ら問題はない。ただし、図７に示したコマンドスクリプトの構成は例であるため、例えば、コマンド及びパラメータが1ハーフワード(16bit)のコードでなくても何ら問題はない。また、コマンドスクリプトの解釈は、前述したインタープリタ23が行う。インタープリタ23はコマンドスクリプトを解釈し、暗号化／復号化部を含むストリームコントローラ24を順次動作させる処理を行う。インタープリタ23は、例えば機能限定版DSPのような簡易的なプロセッサまたはハードウェアで実現する。【００５１】
（ストリームコントローラ24の構成と動作の説明）
図８は、MAC処理ハードウェア20内にてデータ暗号化／復号化処理及びデータ転送処理を実施するストリームコントローラ24の内部構成を示した図である。【００５２】
ストリームコントローラ24は、インタープリタ23から制御されるパラメータレジスタを持ち、処理ビット長(LENGTH)などを管理しながらMACデータ処理(ストリームコントローラ全体)のシーケンスを管理するシーケンサ25と、ビットシフトやビット／バイトスワップを行いながら暗号化／復号化単位(例：64bit)ごとに処理データの入力処理を自律的に行うデータ入力コントローラ26、暗号化／復号化単位ごとに暗号化／復号化処理を行う暗号化／復号化部27、ビットシフトやビット／バイトスワップを行いながら暗号化／復号化単位ごとに処理後データの出力処理を自律的に行うデータ出力コントローラ28、入力データの読み出し元および出力データの書き込み先をローカルメモリと外部メモリ(DBB内メモリ)から選択するデータメモリセレクタ(バスセレクタ)29などから構成される。【００５３】
ただし、ヘッダ部の転送など暗号化／復号化処理が不要な場合に対応するため、暗号化／復号化部27は入力データコントローラ26からの処理データを、そのまま、データ出力コントローラ28に転送する機能も実装する。コマンドスクリプトのコマンドやパラメータによって、どの暗号化／復号化処理を実施するか、または、暗号化／復号化せずにそのまま転送するか、などを選択することができる。【００５４】
図９は、ストリームコントローラ24の動作として、処理データの入力処理、暗号化／復号化処理、処理後データの出力処理をパイプライン処理することを示した図である。【００５５】
図９に示されるように、データ入力コントローラ26における入力データの転送処理、暗号化／復号化部27によるデータ暗号化／復号化処理、データ出力コントローラ28による出力データの転送処理を暗号化／復号化単位ごとにパイプライン処理することによって、処理スループットとして入出力データ転送時間のほとんどを隠蔽することが可能である。【００５６】
パイプライン処理の管理はストリームコントローラ内のシーケンサ25が行う。例えば、暗号化／復号化処理単位ごとに、データ入力コントローラ26及び暗号化／復号化部27、データ出力コントローラ28に必要な処理を開始させ、１パイプラインステージ分の全てのブロックのBUSYが解除されたら処理ビット長を更新して次のパイプラインステージの処理を開始する。この処理をパラメータによって与えられた処理ビット長まで繰り返すことによって、1実行コマンド分のMACデータ処理を実現する。【００５７】
（入出力データのビットシフト処理及びスワップ処理の説明）
暗号化／復号化処理は、例えば64bitの暗号化／復号化処理ブロック単位でビットストリーム処理を行うが、メモリに格納してある状態では、メモリのアドレス単位の境界と暗号化／復号化処理のブロック単位の境界は必ずしも一致しないため、ビットシフト処理を行いながらデータを転送する必要がある。【００５８】
本実施形態では、ストリームコントローラ24内のデータ入力コントローラ26及びデータ出力コントローラ28内でビットシフト処理を実現することを特徴としており、読み出し元のメモリのビットシフト量と、書き込み先のメモリのビットシフト量を独立にコマンドスクリプト内で指定することができる。【００５９】
また、ビットストリームの保存に用いるローカルメモリ21及び外部メモリ14、DBB内メモリ31は、例えば8bitや16bit、32bit、64bit単位でのデータ転送を行うことが可能であるが、それぞれのビットフォーマットが、データ転送単位(8bit、  16bit、  32bit、  64bit)、エンディアン(リトルエンディアンまたはビッグエンディアン)、ビット方向(MSB-first、  LSB-first)等によって、暗号化／復号化処理データストリームのビットフォーマット(ビットストリームのビット順)とは異なってくる。【００６０】
本実施形態では、コマンドスクリプトにて読み出し元メモリ、書き込み先メモリのビットフォーマットを指定することが可能である。例えば、ビットスワップ、バイトスワップ、ハーフワードスワップなどを組み合わせて指定することが可能であり、このスワップ処理についてもデータ入力コントローラ26及びデータ出力コントローラ28にてハードウェアで実現する。【００６１】
図１０及び図１１は、それぞれデータ入力コントローラ26及びデータ出力コントローラ28の内部回路の構成例を示した図である。【００６２】
図１０に示したデータ入力コントローラでは、読み出した処理データに対して、まずは読み出し元メモリのビットフォーマット(FORMAT)に応じて所望のスワップ処理(SWAP)を実施してビット順を正しく整える。その後、先頭ビット位置(BITP)に応じて所望のビットシフト(SHIFT)を実施する。このような動作を行うことで、必要な暗号化／復号化処理単位ブロックを構築して暗号化／復号化コアに転送するような回路構成である。【００６３】
ここで、読み出しを実施したが暗号化／復号化処理単位ブロックには入らず余ったビットについては、次のパイプラインステージにて再利用されるため、レジスタ(DI)に格納したままにしておく。これにより、同じメモリアドレスに対して複数回の読み出しアクセスを行うことを防止している。【００６４】
また、図１１に示したデータ出力コントローラでは、暗号化／復号化コアから入力した暗号化／復号化処理単位ブロック分の結果データに対して、まずは先頭ビット位置(BITP)に応じて所望のビットシフト(SHIFT)を実施することによってビットストリームにおけるビット位置を調整する。その後、書き換える必要のあるビット部分だけを更新し(MASK、  OR)、その後、書き込み先メモリのビットフォーマット(FORMAT)に従って所望のスワップ処理(SWAP)を実施して出力データ転送するような回路構成である。【００６５】
ここで、ビットストリームの先頭ビットに相当する書き込み先メモリアドレスについては最初に読み出しを実施し、上書きしてはいけないビット部分をレジスタ(DI)に格納後に出力データの転送処理を行う。また、該当ビットストリームにおいて最後のパイプラインステージ以外の場合は、次のパイプラインステージにてビットを書き換える可能性があるメモリアドレスに対しては出力データ転送を実施せずデータをレジスタ(DI)に格納しておき、次のパイプラインステージにてビット連結後に書き込み転送を実施する。【００６６】
上記の動作を行うことにより、ビットストリームの途中のアドレスに対する読み出しアクセスが不要となり、また、同じアドレスに対して複数回の書き込みアクセスを行うことを防止している。【００６７】
データ入出力コントローラを上記のような回路構成で実現することにより、付加／削除するヘッダ部のビット長や暗号化／復号化処理するデータ部のビット長を１ビット単位で指定することが可能である。また、データ転送処理回路の中に各種ビット処理を組合せ回路で実現したことにより、データ入力サイクル、データ出力サイクルの中でサイクルオーバヘッドなく任意のビット処理(シフト、スワップなど)を実現することができる。【００６８】
実施例1
図１２から図１４は、上述した第1の実施の形態を、無線通信ベースバンド処理装置の具体的な例の1つであるW-CDMAディジタルベースバンドLSIシステムに適用した場合の例を示した図である。【００６９】
実施例１におけるW-CDMAディジタルベースバンドLSIは、W-CDMA通信処理のLayer2及びLayer3処理を行う制御プロセッサ(CPU)10とその周辺ブロック(ペリフェラル)として割り込みコントローラ(INTC)11、DMAコントローラ(DMAC)12、外部メモリコントローラ13、W-CDMA通信処理のLayer1処理を行うW-CDMAコア40などから構成される。【００７０】
制御プロセッサ10及びDMAコントローラ12は外部メモリコントローラ13を介してLSI外部の外部メモリ14にアクセスできる。また、W-CDMAコア40'内に、Layer2  MACデータ処理をアクセラレートするためのMAC処理ハードウェア20を実装する。このMAC処理ハードウェア20は、基本的には図３で示したものと同じ構成であるが、暗号化／復号化処理としてW-CDMA処理向けのKASUMIアルゴリズム(KASUMI  f8、  KASUMI  f9、  GSM／GPRS／EDGE処理向けのGEA3など)に対応したものである。MAC処理ハードウェア20はバス41及びSlave  I／Fを通じて制御プロセッサ10やDMAコントローラ12に接続され、専用のDBUSC  I／Fおよびセレクタ32を介してデータバスコントローラ30'内のDBUSC(Data-Bus  Controller)内メモリ31'と接続される。【００７１】
図１２は、外部メモリ14上に存在する送信データを、MAC処理ハードウェア20を用いて暗号化しながら、DBB(Layer1)ブロック内の送信処理コアにデータ転送するシーケンスを示した図である。【００７２】
(1)  外部メモリ14に保存されている暗号化前の送信データをDMAコントローラ12を用いてMAC処理ハードウェア20内のローカルメモリ21へ転送する。転送が終了すると制御プロセッサ10に対して割り込みが発生する。【００７３】
(2)  制御プロセッサ10は暗号化用のコマンド及びパラメータ情報をコマンドスクリプトとしてMAC処理ハードウェア20内に設定し、MAC処理ハードウェア20を起動する。【００７４】
(3)  MAC処理ハードウェア20は、MAC処理ハードウェア20内のローカルメモリ21から送信データを読み出し、暗号化(KASUMI  f8)処理、および、必要に応じてヘッダ付加処理を行い、その結果をDBUSC内メモリ31'に書き込む。暗号化処理が終了するとMAC処理ハードウェア20は制御プロセッサ10へ割り込みをかける。【００７５】
(4)  制御プロセッサ10はDBUSC内メモリ31'に転送された暗号化処理された送信データに必要に応じて更なるヘッダ情報等を付加し、データバスコントローラ30'を起動する。【００７６】
(5)  データバスコントローラ30'は図３に示したディジタルベースバンド部30との間に設けられたデータバスを通じて、暗号化処理された送信データをディジタルベースバンド部30内の送信処理コアに転送する。【００７７】
図１３は、DBB(Layer1)ブロック内の受信処理コアから転送されてきた受信データを、MAC処理ハードウェア20を用いて復号化しながら、外部メモリ14にデータ転送するシーケンスを示した図である。【００７８】
(1)  DBB(Layer1)ブロックの受信処理コアによってデコードされた受信データがデータバスを通じてDBUSC内メモリ31'に転送される。転送が終了すると制御プロセッサ10への割り込みが発生する。【００７９】
(2)  割り込みによって制御プロセッサ10が起動されると、制御プロセッサ10はDBUSC内メモリ31'にアクセスし、受信データのヘッダ解析を行う。【００８０】
(3)  制御プロセッサ10はヘッダ解析を行った結果得られるパラメータ情報をコマンドスクリプトとしてMAC処理ハードウェア20内に設定し、MAC処理ハードウェア20を起動する。同時にDMAコントローラ12への設定も行う。【００８１】
(4)  MAC処理ハードウェア20は、DBUSC内メモリ31'から受信データを読み出し、復号化(KASUMI  f8)処理、及び必要に応じてヘッダの削除処理を行い、その結果をMAC処理ハードウェア20内のローカルメモリ21に書き込む。復号化処理が終了すると、DMAREQ信号がアクティブになる。【００８２】
(5)  DMAREQ信号がアクティブになるとDMAコントローラ12はMAC処理ハードウェア20内のローカルメモリ21から復号化された受信データを読み出して外部メモリ14に転送する。転送が終了すると、DMAコントローラ12は制御プロセッサ10に割り込みをかける。【００８３】
図１４は、外部メモリ14に存在する送受信データを、MAC処理ハードウェア20を用いて暗号化または復号化した後、再び外部メモリ14に転送するシーケンスを示した図である。【００８４】
(1)  外部メモリ14に保存されている暗号化／復号化処理用のデータを、DMAコントローラ12を用いて、MAC処理ハードウェア20内のローカルメモリ21へ転送する。転送が終了すると制御プロセッサ10に対して割り込みが発生する。【００８５】
(2)  制御プロセッサ10はデータ暗号化／復号化処理用のパラメータ情報をコマンドスクリプトとしてMAC処理ハードウェア20内に設定し、MAC処理ハードウェア20を起動する。同時にDMAコントローラ12への設定も行う。【００８６】
(3)  MAC処理ハードウェア20は、MAC処理ハードウェア20内のメモリから処理元データを読み出し、設定された暗号化／復号化処理を行い、その結果をMAC処理ハードウェア20内のメモリに書き込む。暗号化／復号化処理が終了するとDMAREQ信号がアクティブになる。【００８７】
(4)  DMAREQ信号がアクティブになるとDMAコントローラ12はDMAコントローラ12内のローカルメモリ21から暗号化／復号化処理されたデータを読み出して外部メモリ14に転送する。転送が終了すると、DMAコントローラ12は制御プロセッサ10に割り込みをかける。【００８８】
図１２から図１４に示したように、外部メモリ14とDBB(Layer1)ブロック30の間における送受信データの暗号化／復号化処理及びデータ転送処理において、制御プロセッサ10は主にMAC処理ハードウェア20制御用のコマンドスクリプトの生成と設定、DMAコントローラ12の設定を実施するのみで、直接データ転送を実施する必要がないため、処理負荷が減り、処理の負荷分散化が可能となる。【００８９】
また、MAC処理ハードウェア20では前述した入出力データ転送と暗号化／復号化処理のパイプライン処理、サイクルオーバヘッドのないビット処理等によってMAC処理の高速化も可能となる。【００９０】
（クロック制御機構による低消費電力化）
実施例１におけるMAC処理ハードウェア20では、使用していない内部ブロックにはできるだけクロックが供給されないようにクロック制御機構を実装する。【００９１】
図１５は、MAC処理ハードウェア20内のクロック制御機構を示した図である。外部からのクロックが常に供給されている内部ブロックはFIFOコントローラ22とローカルメモリ21のみで、他の内部ブロックは、少なくとも１つのプロセスが動作中の場合(処理中を示す(START)レジスタのいずれかが1になっている時)、またはクロック強制ON(CLKON)レジスタが１になっている時のみクロックが供給される。【００９２】
ここで、図１５においては、FIFO処理するプロセス数は４個の場合の例を示している。このように、内部の動作クロックを動的に制御することにより、不要な消費電力を削減することができる。【００９３】
第2の実施の形態
図１６は、本発明の第２の実施の形態の構成を示す図である。本実施形態は、MAC処理ハードウェアを制御プロセッサのペリフェラルブロック(周辺ブロック)として実装し、MAC処理ハードウェアが外部メモリに直接アクセス可能な形態である。【００９４】
本実施形態における無線通信用データ処理LSIは、無線通信処理のLayer2及びLayer3処理を行う制御プロセッサ(CPU)110とその周辺ブロック(ペリフェラル)として割り込みコントローラ(INTC)111、外部メモリコントローラ113、無線通信処理のLayer1処理を行うディジタルベースバンド(DBB)コア140が存在するような基本的な構成を想定している。【００９５】
また、第２の実施形態に特有の構成として、MAC処理アクセラレータ(MAC  HW)120を制御プロセッサの周辺ブロック(ペリフェラル)として実装している。制御プロセッサ110に加えてMAC処理ハードウェア120も外部メモリコントローラ113を介してLSI外部の外部メモリ114にアクセスすることができる。すなわち、第１の実施の形態におけるDMAコントローラ12の役割を、MAC処理ハードウェア120の自律的な入出力データ転送機能を活用することにより、MAC処理ハードウェア120が担うことが可能である。【００９６】
MAC処理ハードウェア120は、例えば、１本または２本のMaster  I／Fを利用して、外部メモリ114から外部メモリ114へのデータ転送、及び、外部メモリ114からディジタルベースバンドコア140内へのデータ転送、ディジタルベースバンドコア140内から外部メモリ114へのデータ転送などを実現できる。【００９７】
MAC処理ハードウェア120内の構成も、基本的には第１の実施の形態で示した構成と同様である。ただし、MAC処理ハードウェア120を第２の実施形態のような位置付けにした場合は、MAC処理ハードウェア120内のローカルメモリ121はコマンドスクリプトの設定、格納用のみに用いられ、必要に応じて処理データを格納するためのメモリ領域を削減することができる。【００９８】
また、データ転送及び暗号化／復号化処理を行うストリームコントローラ124がローカルメモリ121にアクセスする必要がない場合、図１６に示したように、必要に応じてストリームコントローラからローカルメモリ121へのアクセスパスを削除したり、Master  I／Fの本数を増やす(読み出し用のバスと書き込み用のバスを分ける)ことで高速化したりすることも可能である。【００９９】
次に、本実施形態の動作について図１６を用いて説明する。【０１００】
MAC処理ハードウェア120内部の機能及び動作については第１の実施の形態とほぼ同様である。ここでは、第2の実施形態に特有の制御プロセッサ120からの制御方法やデータ処理装置全体の動作シーケンスについて以下に説明する。【０１０１】
まず、外部メモリ114上に存在する送信データを、MAC処理ハードウェア120を用いて暗号化処理しながら、ディジタルベースバンド(DBB(Layer1))130内にデータ転送する場合(図１２の処理シーケンスに相当)について説明する。【０１０２】
(1)  制御プロセッサ110は暗号化処理用のコマンド及びパラメータ情報をコマンドスクリプトとしてMAC処理ハードウェア120内に設定し、MAC処理ハードウェア120を起動する。【０１０３】
(2)  MAC処理ハードウェア120は、Master  I／Fを介して外部メモリ114から送信データを読み出し、暗号化処理および必要に応じてヘッダ付加処理を行い、その結果をMaster  I／Fを介してDBB内メモリ131に書き込む。暗号化処理が終了するとMAC処理ハードウェア120は制御プロセッサ110へ割り込みをかける。【０１０４】
(3)  制御プロセッサ(CPU)はDBB内のメモリに転送された暗号化処理された送信データに対して必要に応じて更なるヘッダ情報等を付加し、DBB(Layer1)ブロックに送信完了を通知する。【０１０５】
次に、DBB(Layer1)ブロック内の受信データを、MAC処理ハードウェア120を用いて復号化しながら、外部メモリ14にデータ転送する場合(図１３の処理シーケンスに相当)について説明する。【０１０６】
(1)  DBB(Layer1)ブロックの受信処理コアによってデコードされた受信データがDBB内メモリ31に格納される。格納が終了すると制御プロセッサ110への割り込みが発生する。【０１０７】
(2)  割り込みによって制御プロセッサ110が起動されると、制御プロセッサ110はDBB内メモリ131にアクセスし、受信データのヘッダ解析を行う。【０１０８】
(3)  制御プロセッサ110はヘッダ解析を行った結果得られるパラメータ情報をコマンドスクリプトとしてMAC処理ハードウェア120内に設定し、MAC処理ハードウェア120を起動する。【０１０９】
(4)  MAC処理ハードウェア120は、Master  I／Fを介してDBB内メモリ131から受信データを読み出し、復号化処理及び必要に応じてヘッダの削除処理を行い、その結果をMaster  I／Fを介して外部メモリ114に転送する。転送が終了すると、DMAコントローラ112は制御プロセッサ110に割り込みをかける。【０１１０】
さらに、外部メモリ114に存在する送受信データを、MAC処理ハードウェア120を用いて暗号化または復号化処理後、再び外部メモリ114に転送する場合(図１４の処理シーケンスに相当)について説明する。【０１１１】
(1)  制御プロセッサ110は、データ暗号化／復号化処理用のパラメータ情報をコマンドスクリプトとしてMAC処理ハードウェア120内に設定し、MAC処理ハードウェア120を起動する。【０１１２】
(2)  MAC処理ハードウェア120は、Master  I／Fを介して外部メモリ114から処理元データを読み出し、設定された暗号化／復号化処理を行い、その結果をMaster  I／Fを介して再度外部メモリ114に書き込む。暗号化／復号化処理が終了するとMAC処理ハードウェア120は制御プロセッサ110に割り込みをかける。【０１１３】
このように、MAC処理ハードウェア120を図１６に示した第2の実施形態のように実装した場合は、MAC処理ハードウェア120がDMAコントローラ112に相当する機能も実現することができるため、第１の実施形態(実施例１)と同等の処理シーケンスを、第１の実施の形態(実施例１)より少ない処理手順で実行することが可能である。【０１１４】
上述したように、本発明の実施形態では、比較的複雑なMAC処理パラメータ(暗号化／復号化パラメータ、ヘッダ部／データ部のビット数など)の計算は高速かつ高機能な制御プロセッサによるソフトウェア処理によって行い、比較的規則的でハードウェアでの実現に適したMACデータ処理(ヘッダ部の付加／削除のためのビットシフト処理や暗号化／復号化処理、データ転送処理など)のみを、専用ハードウェア(データ転送機能付きMAC処理ハードウェア：以降「MAC処理ハードウェア」)によってアクセラレートする手段を用いる。【０１１５】
MAC処理ハードウェアは、制御プロセッサからのコマンドに従って自律的に処理データの入出力、ビットシフト処理／スワップ処理および暗号化／復号化処理できることを特徴とする。処理前データの入力、暗号化／復号化処理、処理後データの出力をパイプライン処理することでデータの入出力時間を隠蔽し、高速化する。また、ハードウェアで実現するデータ入力回路、データ出力回路にはデータのビットシフト機能、ビット／バイトスワップ機能も備え、データ入力サイクル、データ出力サイクルの中でサイクルオーバヘッドなしに任意のビット処理を実現する。【０１１６】
制御プロセッサからのコマンドは、((ヘッダ部転送処理＋データ部暗号化／復号化処理)×データユニット数)のような様々なMACデータ処理に対応するため、一連のコマンドシーケンスをスクリプト化して設定できるコマンドスクリプトを用いる。また、MAC処理ハードウェア内にはそのスクリプトを解釈し、暗号化／復号化処理回路部を順次動作させるインタープリタ部を備える。インタープリタ部は例えば機能限定版DSPのような簡易的なプロセッサまたはハードウェアで実現する。【０１１７】
送受信データストリームの種々のMAC処理に対して、制御プロセッサを待たせることなく複数のMACデータ処理を投入できるよう、MAC処理ハードウェアは制御部に複数の処理プロセスを投入できる機構を備え、投入された各処理プロセスに対してはFIFO(First  In  First  Out)処理を実現する。【０１１８】
制御プロセッサはMAC処理パラメータの計算のみを行い、MACデータ処理についてはMAC処理ハードウェアを備えてアクセラレートすることにより、MAC処理を高速化することができる。特に、MAC処理ハードウェアが自律的に処理データを入出力できる機構を備えることと、MAC処理ハードウェア内でのパイプライン処理により、制御プロセッサによるデータ転送が不要となることや、データ入出力時間も隠蔽できるという利点がある。また、データの入出力処理をMAC処理ハードウェア内のプロセッサではなくハードウェアで実現することにより、入出力データのビット処理(シフト、スワップ等)をサイクルオーバヘッドなく行うことができる。【０１１９】
MAC処理ハードウェアがコマンドスクリプトによる制御方法を備えることにより、ヘッダ部の付加／削除を含めた様々なデータ暗号化／復号化シーケンスを自律的にプログラム処理できるため、MAC処理ハードウェアを制御する制御プロセッサ側の処理負荷が削減される。また、MAC処理ハードウェアが複数プロセスを処理するためのFIFO制御機構も備えることにより、制御プロセッサは1つ１つのプロセス完了を待つ必要はなく、複数の暗号化／復号化シーケンス(プロセス)を一度に投入することができる。【０１２０】
MAC処理ハードウェアは、比較的規則性が高くハードウェアでの実現に適したMACデータ処理のみに特化しているため、各種パラメータ計算や算術演算のための高速かつ複雑な回路を必要とすることなく比較的簡単なハードウェア構成で実現できるという利点がある。また、コマンドスクリプトの解釈処理(インタープリタ)を簡単なプロセッサ等で実現することにより、コマンドの追加や変更が容易であるという利点もある。【０１２１】
以上説明した各実施形態では、以下のような効果が期待できる。【０１２２】
第１の効果は、制御プロセッサのMAC処理における処理負荷を削減できることである。特に、その処理量がデータレートに比例するMACデータ処理については大幅に削減できる。【０１２３】
その理由は、各実施形態では、MAC処理におけるMAC処理パラメータの計算およびそのパラメータに基づいてのコマンドスクリプトの生成などソフトウェア処理に適した処理のみを制御プロセッサにて行い、複数のメモリ間におけるデータ転送処理や暗号化／復号化処理、ビットシフト処理やスワップ処理などソフトウェア処理に向かないMACデータ処理については全てMAC処理ハードウェアによってアクセラレートしているためである。【０１２４】
また、コマンドスクリプトを利用することにより、１つのコマンドスクリプトで１つのデータストリーム分を処理でき、かつ複数のデータストリーム分の処理を続けて処理させることもできるため、データユニットごとなど細かい完了タイミングでの割り込みオーバヘッドを減らすことができるという利点もある。【０１２５】
さらに、第２の実施形態のようにMAC処理ハードウェアを制御プロセッサの周辺ブロック(ペリフェラル)として位置付けすることにより、DMAコントローラの設定や割り込み信号の受け付け回数も削減することができるため、第１の実施形態にて示した構成に比べて更なる処理負荷の削減が期待できる。【０１２６】
第２の効果は、MACデータ処理における処理の高速化を実現できることである。【０１２７】
その理由は、本実施形態では、MACデータ処理については専用のMAC処理ハードウェアを実装することによってアクセラレートし、その内部での処理方法も、図９に示したように、処理前データの入力転送処理、暗号化／復号化処理、結果データの出力転送処理を暗号化／復号化処理単位(例えば64bit)ごとにパイプライン処理することによって、データ入出力サイクル(転送時間)を隠蔽しているためである。【０１２８】
また、処理前データ入力のためのデータ入力コントローラ及び結果データ出力のためのデータ出力コントローラを専用ハードウェアで実現していることによって、DMAコントローラ(DMAC)のような高いデータ転送能力を実現することが可能となる。【０１２９】
さらに、MACデータ処理の特徴として、メモリアドレス境界に対するビットストリームの先頭ビット位置の調整および入出力メモリとのビットフォーマットの調整などのために各種ビット処理(ビットシフト、スワップなど)が必要であるが、前記データ入力コントローラ及びデータ出力コントローラ内にて設定レジスタ及び組み合わせ回路でビット処理を実現することにより、入出力データの転送中にサイクルオーバヘッドなく任意のビット処理を実現できることも利点である。【０１３０】
第３の効果は、MAC処理において、面積、消費電力、性能の観点から処理の最適化に貢献できることである。【０１３１】
その理由は、本発明では、データ暗号化／復号化処理及びデータ転送処理、各種ビット処理など比較的規則的でハードウェアでの実現に適したMACデータ処理のみをハードウェアアクセラレートすることを特徴としており、必要最小限の回路追加で効率的な性能向上を実現しているためである。【０１３２】
また、比較的複雑なMAC処理パラメータの計算をハードウェア化した場合は高速かつ高機能なハードウェアが必要となるが、本発明では、MAC処理パラメータの計算は制御プロセッサによるソフトウェア処理で実現していることにより、MAC処理ハードウェアは規則的な処理に特化して比較的簡単に構成でき、要求性能を満たす程度の低速なクロック周波数で動作させることができる。【０１３３】
これは、比較的面積の小さい簡単なハードウェアで高い性能向上に貢献できるとともにMAC処理全体における低消費電力化にも貢献できる。【０１３４】
また、MAC処理ハードウェアの構成の大部分を占めるインタープリタ及びストリームコントローラに対しては、プロセスを処理してしない時はクロックを停止するクロックゲーティング機構を備えているため、MAC処理ハードウェア内の更なる低消費電力化にも効果がある。【０１３５】
第４の効果は、MAC処理ハードウェアが様々な組み合わせのMACデータ処理に容易に対応できることである。【０１３６】
その理由は、本実施形態では、MAC処理ハードウェアの制御方法としてMAC処理に適した一種の制御プログラムであるコマンドスクリプトを使用し、MAC処理ハードウェア内のインタープリタによりその解釈を実行できるためである。【０１３７】
すなわち、コマンドスクリプトを各種コマンドとそれに付随するパラメータの組み合わせによって構成することにより、MACデータ処理の内容(読み出し元と書き込み先のメモリ選択、そのデータ先頭アドレスと先頭ビット位置、メモリのビットフォーマット、処理するデータのビット長、種々の暗号化／復号化処理パラメータなど)を任意にセットでき、実行コマンドによりそれらのパラメータに従った種々の暗号化／復号化処理を実行できるためである。【０１３８】
また、スクリプト化によってコマンドを連続して記載できることで、ビット長やパラメータが異なる複数のデータユニットが含まれる様々なビットストリーム処理に対応できることや、暗号化／復号化を行わないデータ転送だけのコマンドと組み合わせることでヘッダ部を転送／付加／削除しながらデータ部を暗号化／復号化する処理などにも対応できる(MAC処理向けに最適化されている)という利点がある。【０１３９】
さらに、コマンドスクリプトの解釈処理はMAC処理ハードウェア内のインタープリタが実施するが、その処理内容は順々に読み出したコマンドに従って付随する各種パラメータをストリームコントローラにセットする、もしくはストリームコントローラを起動する、といった簡単な処理であるため、簡易的なプロセッサまたはハードウェアで簡単に実装することができる。【０１４０】
インタープリタを簡易的なプロセッサで実現した場合は、種々のMACデータ処理に対応するためのコマンドの追加、変更などにも比較的容易に対応できるという利点もある。【０１４１】
上記のように構成される本発明においては、MAC処理におけるMAC処理パラメータの計算およびそのパラメータに基づいてのコマンドスクリプトの生成などソフトウェア処理に適した処理のみを制御プロセッサにて行い、複数のメモリ間におけるデータ転送処理や暗号化／復号化処理、ビットシフト処理やスワップ処理などソフトウェア処理に向かないMACデータ処理については全てMAC処理ハードウェアによってアクセラレートすることが可能となり、これにより、制御プロセッサのMAC処理における処理負荷を削減できる効果がある。【０１４２】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。第一の実施の形態において一例を示したのと同様に、本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１４３】
この出願は２００７年７月３日に出願された日本出願特願２００７−１７５０７２号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2009005089.tif 000003
【図２】
2009005089.tif 000004
【図３】
2009005089.tif 000005
【図４】
2009005089.tif 000006
【図５】
2009005089.tif 000007
【図６】
2009005089.tif 000008
【図７】
2009005089.tif 000009
【図８】
2009005089.tif 000010
【図９】
2009005089.tif 000011
【図１０】
2009005089.tif 000012
【図１１】
2009005089.tif 000013
【図１２】
2009005089.tif 000014
【図１３】
2009005089.tif 000015
【図１４】
2009005089.tif 000016
【図１５】
2009005089.tif 000017
【図１６】
2009005089.tif 000018
【国際調査報告】
2009005089.tif 000019
2009005089.tif 000020
2009005089.tif 000021