JP5487966B2 - データ暗号化/復号化処理方法およびデータ処理装置 - Google Patents

データ暗号化/復号化処理方法およびデータ処理装置 Download PDF

Info

Publication number
JP5487966B2
JP5487966B2 JP2009521652A JP2009521652A JP5487966B2 JP 5487966 B2 JP5487966 B2 JP 5487966B2 JP 2009521652 A JP2009521652 A JP 2009521652A JP 2009521652 A JP2009521652 A JP 2009521652A JP 5487966 B2 JP5487966 B2 JP 5487966B2
Authority
JP
Japan
Prior art keywords
processing
data
mac
encryption
decryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009521652A
Other languages
English (en)
Other versions
JPWO2009005089A1 (ja
Inventor
俊樹 竹内
裕之 井倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009521652A priority Critical patent/JP5487966B2/ja
Publication of JPWO2009005089A1 publication Critical patent/JPWO2009005089A1/ja
Application granted granted Critical
Publication of JP5487966B2 publication Critical patent/JP5487966B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Description

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

Claims (9)

  1. データ暗号化/復号化処理を含む通信処理を行うデータ処理装置において、
    MAC処理パラメータの計算を行う制御プロセッサと、
    データ暗号化/復号化処理を含むMACデータ処理を行うMAC処理手段を備え、
    前記制御プロセッサが、コマンドとそれに付随するパラメータの組合せを連続して記載するコマンドスクリプトによって前記MAC処理手段を制御し、
    前記コマンドは、ヘッダ部の転送処理に関するコマンドおよびデータ部の暗号化/復号化処理に関するコマンドを含むことを特徴とするデータ処理装置。
  2. 請求項1記載のデータ処理装置において、
    前記MAC処理手段が、
    処理するデータを暗号化/復号化処理単位ごとに自律的にメモリから読み出し転送するためのデータ入力手段と、
    暗号化/復号化処理単位ごとにデータを暗号化/復号化処理するデータ暗号化/復号化処理手段、暗号化/復号化した結果データを暗号化/復号化処理単位ごとに自律的にメモリへ書き込み転送するためのデータ出力手段と、
    前記データ入力手段と前記暗号化/復号化処理手段、前記データ出力手段とをパイプライン処理させるためのシーケンサを備えることを特徴とするデータ処理装置。
  3. 請求項2記載のデータ処理装置において、
    前記パラメータは、ビット単位での先頭位置やビット長の指定と、ビットフォーマットの指定を含み、
    前記データ入力手段及び前記データ出力手段が、サイクルオーバヘッドなしにビットシフト処理やスワップ処理など任意のビット処理を行うビット処理手段を備えることを特徴とするデータ処理装置。
  4. 請求項2または請求項3記載のデータ処理装置において、
    前記データ入力手段及び前記データ出力手段が、同一アドレスに対する複数回の読み出しアクセスや書き込みアクセスを防止するためのデータ格納レジスタを備えることを特徴とする処理装置。
  5. 請求項1ないし請求項4のいずれかに記載のデータ処理装置において、
    前記MAC処理手段が、前記コマンドスクリプト及びMAC処理データを格納するためのローカルメモリを備え、コマンドスクリプト内のパラメータによって処理データの読み出し元メモリと結果データの書き込み先メモリを前記ローカルメモリとMAC処理手段外部のメモリから選択するためのバスセレクタ手段を備えることを特徴とするデータ処理装置。
  6. 請求項1ないし請求項5のいずれかに記載のデータ処理装置において、
    前記MAC処理手段が、複数のプロセスを連続して処理するためのFIFO制御手段を備えることを特徴とするデータ処理装置。
  7. 請求項1ないし請求項6のいずれかに記載のデータ処理装置において、
    前記MAC処理手段が、前記コマンドスクリプトを解釈し、解釈したコマンドに従って前記シーケンサにパラメータを設定及び前記シーケンサを起動するためのインタープリタ手段を備えることを特徴とするデータ処理装置。
  8. 請求項1ないし請求項7のいずれかに記載のデータ処理装置において、
    前記MAC処理手段が、プロセスを投入するまでは動作する必要のない手段に対してクロックを停止するクロックゲーティング手段を備えることを特徴とするデータ処理装置。
  9. MAC処理パラメータの計算を行う制御プロセッサと、データ暗号化/復号化処理を含むMACデータ処理を行うMAC処理手段を備え、データ暗号化/復号化処理を含む通信処理を行うデータ処理装置で行われるデータ暗号化/復号化処理方法であって、
    前記制御プロセッサが、コマンドとそれに付随するパラメータの組合せを連続して記載するコマンドスクリプトによって前記MAC処理手段を制御し、
    前記コマンドは、ヘッダ部の転送処理に関するコマンドおよびデータ部の暗号化/復号化処理に関するコマンドを含むことを特徴とするデータ暗号化/復号化処理方法。
JP2009521652A 2007-07-03 2008-07-02 データ暗号化/復号化処理方法およびデータ処理装置 Expired - Fee Related JP5487966B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009521652A JP5487966B2 (ja) 2007-07-03 2008-07-02 データ暗号化/復号化処理方法およびデータ処理装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007175072 2007-07-03
JP2007175072 2007-07-03
JP2009521652A JP5487966B2 (ja) 2007-07-03 2008-07-02 データ暗号化/復号化処理方法およびデータ処理装置
PCT/JP2008/061991 WO2009005089A1 (ja) 2007-07-03 2008-07-02 データ暗号化/復号化処理方法およびデータ処理装置

Publications (2)

Publication Number Publication Date
JPWO2009005089A1 JPWO2009005089A1 (ja) 2010-08-26
JP5487966B2 true JP5487966B2 (ja) 2014-05-14

Family

ID=40226132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009521652A Expired - Fee Related JP5487966B2 (ja) 2007-07-03 2008-07-02 データ暗号化/復号化処理方法およびデータ処理装置

Country Status (3)

Country Link
US (1) US8341394B2 (ja)
JP (1) JP5487966B2 (ja)
WO (1) WO2009005089A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004078268A (ja) * 2002-08-09 2004-03-11 Fujitsu Ltd 情報処理装置、情報処理方法、およびプログラム
JP5235764B2 (ja) * 2009-04-16 2013-07-10 株式会社日立製作所 Icチップおよびこれを搭載した情報処理装置
JP5483642B1 (ja) * 2012-10-31 2014-05-07 株式会社ユニバーサルエンターテインメント 通信システム、通信用lsi及び遊技機
JP2014241654A (ja) * 2014-10-02 2014-12-25 株式会社ユニバーサルエンターテインメント 通信用システム
KR102407917B1 (ko) * 2015-11-12 2022-06-10 삼성전자주식회사 멀티 프로세서에 의해 공유되는 메모리를 포함하는 멀티 프로세서 시스템 및 상기 시스템의 동작 방법
US20210141911A1 (en) * 2017-06-05 2021-05-13 Sony Semiconductor Solutions Corporation Communication device and control method
US11063772B2 (en) 2017-11-24 2021-07-13 Ememory Technology Inc. Multi-cell per bit nonvolatile memory unit

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04140810A (ja) * 1990-10-02 1992-05-14 Nec Corp 情報処理装置
WO2003023602A1 (fr) * 2001-09-07 2003-03-20 Ip Flex Inc. Systeme de traitement de donnees et procede de commande
JP2005167870A (ja) * 2003-12-05 2005-06-23 Sony Corp データ処理方法およびデータ処理装置
JP2007074507A (ja) * 2005-09-08 2007-03-22 Seiko Epson Corp 暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法
JP2007086608A (ja) * 2005-09-26 2007-04-05 Oki Electric Ind Co Ltd ネットワーク終端装置の改ざん防止処理装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5161193A (en) * 1990-06-29 1992-11-03 Digital Equipment Corporation Pipelined cryptography processor and method for its use in communication networks
JPH04127210A (ja) 1990-09-19 1992-04-28 Hitachi Ltd 低消費電力プロセッサ
JP3162365B2 (ja) 1990-10-19 2001-04-25 富士通株式会社 データ処理装置
US5319712A (en) * 1993-08-26 1994-06-07 Motorola, Inc. Method and apparatus for providing cryptographic protection of a data stream in a communication system
US5592556A (en) 1994-08-09 1997-01-07 Ericsson Ge Mobile Communications Inc. Digital radio with vocoding encrypting codec
JPH09311784A (ja) 1996-05-22 1997-12-02 Canon Inc プロセッサ
US6920562B1 (en) * 1998-12-18 2005-07-19 Cisco Technology, Inc. Tightly coupled software protocol decode with hardware data encryption
US6483918B2 (en) 1999-06-09 2002-11-19 Microsoft Corporation Technique for producing a parameter, such as a checksum, through a primitive that uses elementary register operations
US6839345B2 (en) * 1999-12-17 2005-01-04 Texas Instruments Incorporated MAC/PHY interface
US6847654B2 (en) * 2000-11-06 2005-01-25 Symbol Technologies, Inc. Wireless device which uses an upper MAC and lower MAC interface
US7453899B1 (en) * 2001-05-08 2008-11-18 Lsi Corporation Field programmable network application specific integrated circuit and a method of operation thereof
WO2003028304A1 (en) * 2001-09-27 2003-04-03 Broadcom Corporation Highly integrated media access control
US20030105830A1 (en) * 2001-12-03 2003-06-05 Duc Pham Scalable network media access controller and methods
US7461164B2 (en) * 2002-02-08 2008-12-02 Dsp Group Inc. Medium access control with software -and hardware- based components in a wireless network
JP2003244128A (ja) * 2002-02-21 2003-08-29 Hitachi Ltd 暗号復号通信用半導体装置および記録再生機器
WO2005006702A1 (ja) * 2003-07-11 2005-01-20 Matsushita Electric Industrial Co., Ltd. 双方向通信制御装置,端末装置及び双方向通信制御方法
US7512945B2 (en) * 2003-12-29 2009-03-31 Intel Corporation Method and apparatus for scheduling the processing of commands for execution by cryptographic algorithm cores in a programmable network processor
US7698412B2 (en) * 2003-12-31 2010-04-13 Alcatel Lucent Parallel data link layer controllers in a network switching device
US7805535B2 (en) * 2003-12-31 2010-09-28 Alcatel Lucent Parallel data link layer controllers in a network switching device
US7385985B2 (en) * 2003-12-31 2008-06-10 Alcatel Lucent Parallel data link layer controllers in a network switching device
US7649879B2 (en) * 2004-03-30 2010-01-19 Extreme Networks, Inc. Pipelined packet processor
US20060126841A1 (en) * 2004-12-14 2006-06-15 Tata Consultancy Services Ltd. Method and apparatus for a security system for wireless networks
US7797745B2 (en) * 2004-12-22 2010-09-14 Electronics And Telecommunications Research Institute MAC security entity for link security entity and transmitting and receiving method therefor
JP4570986B2 (ja) 2005-02-25 2010-10-27 京セラ株式会社 基地局装置、基地局装置の制御方法および通信制御プログラム
JP4028555B2 (ja) 2005-02-28 2007-12-26 日本電信電話株式会社 通信方法および通信装置
JP2007074429A (ja) 2005-09-07 2007-03-22 Matsushita Electric Ind Co Ltd 双方向通信制御装置
US7886143B2 (en) * 2006-11-30 2011-02-08 Broadcom Corporation Multi-data rate cryptography architecture for network security
US20090080660A1 (en) * 2007-09-20 2009-03-26 Shih Mo Processorless media access control architecture for wireless communication

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04140810A (ja) * 1990-10-02 1992-05-14 Nec Corp 情報処理装置
WO2003023602A1 (fr) * 2001-09-07 2003-03-20 Ip Flex Inc. Systeme de traitement de donnees et procede de commande
JP2005167870A (ja) * 2003-12-05 2005-06-23 Sony Corp データ処理方法およびデータ処理装置
JP2007074507A (ja) * 2005-09-08 2007-03-22 Seiko Epson Corp 暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法
JP2007086608A (ja) * 2005-09-26 2007-04-05 Oki Electric Ind Co Ltd ネットワーク終端装置の改ざん防止処理装置

Also Published As

Publication number Publication date
US20100322419A1 (en) 2010-12-23
JPWO2009005089A1 (ja) 2010-08-26
WO2009005089A1 (ja) 2009-01-08
US8341394B2 (en) 2012-12-25

Similar Documents

Publication Publication Date Title
JP5487966B2 (ja) データ暗号化/復号化処理方法およびデータ処理装置
US20140040909A1 (en) Data processing systems
US20150143073A1 (en) Data processing systems
US7724984B2 (en) Image processing apparatus
US9285793B2 (en) Data processing unit including a scalar processing unit and a heterogeneous processor unit
JP2007251329A (ja) プログラマブルロジックデバイス
JP2011187039A (ja) 同時データ操作が可能なdmaエンジン
JP2006338538A (ja) ストリームプロセッサ
US20090119491A1 (en) Data processing device
WO2000076119A1 (en) Cryptographic processing system
JP2007034392A (ja) 情報処理装置及びデータ処理方法
US9438414B2 (en) Virtualized SHA computational engine
JP2008152409A (ja) 半導体集積回路
US9792135B2 (en) Differential voltage and frequency scaling (DVFS) switch reduction
JP2003005957A (ja) データ処理装置およびその制御方法
JP5096923B2 (ja) 動的再構成論理回路を有するマルチスレッドプロセッサ
GB2484906A (en) Data processing unit with scalar processor and vector processor array
US11386029B2 (en) Direct memory access controller
KR101805866B1 (ko) 소프트웨어 디파인드 라디오를 위한 전자 장치 및 그 스케줄링 방법
JP2007200106A (ja) データ処理装置、制御方法、及びプログラム
US7984204B2 (en) Programmable direct memory access controller having pipelined and sequentially connected stages
JP2004040256A (ja) 無線信号処理装置および信号処理方法
CN117112466B (zh) 一种数据处理方法、装置、设备、存储介质及分布式集群
GB2484903A (en) Power saving in a data processing unit with scalar processor, vector processor array, parity and FFT accelerator units
US20090019268A1 (en) Processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131227

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140210

R150 Certificate of patent or registration of utility model

Ref document number: 5487966

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees