(57)【要約】【課題】  小規模な回路構成で高速なデータ変換を行うデータ変換装置を提供する。【解決手段】  ＤＡＴＡ１〜ＤＡＴＡｎについてｕビットごとに分割されたＤＡＴＡ１（ｉ）〜ＤＡＴＡｎ（ｉ）を可変巡回シフト回路１０１が連続して入力し、シフト数を順次変化させながらＤＡＴＡ１（ｉ）〜ＤＡＴＡｎ（ｉ）に対して巡回シフトを行ってＤｕａｌ−Ａｃｃｅｓｓ  ＬＵＴ−Ｂａｓｅｄ  ＲＡＭ１０２に出力し、Ｄｕａｌ−Ａｃｃｅｓｓ  ＬＵＴ−Ｂａｓｅｄ  ＲＡＭ１０２は深さｎ、データ幅ｕビットのｎ個の記憶ブロックを備え、入力の度にＤＡＴＡ１（ｉ）〜ＤＡＴＡｎ（ｉ）を各記憶ブロックに分散させて記憶し、読み出し時に、各記憶ブロックから同じ分割元のｕビットのデータを抽出してｎ個のｕビットのデータを可変巡回シフト回路１０３に出力し、可変巡回シフト回路１０３がｎ個のｕビットのデータに対して巡回シフトを行い、ｕ×ｎビットのデータとして出力する。【選択図】        図１
2005084766.tif 000002
【特許請求の範囲】
【請求項１】
ｕ（ｕ≧１）ビットのｕビットデータをｎ（ｎ≧２）個ずつ連続して入力するとともに、ｕビットデータの入力の度に、入力したｎ個のｕビットデータに対して所定の巡回シフト処理を行ってｎ個のｕビットデータを出力する第１の入出力部と、
ｎ個の記憶ブロックを有し、各記憶ブロックにｎ個のｕビットデータを記憶することが可能であり、前記第１の入出力部からｎ個のｕビットデータが出力される度に各記憶ブロックにｕビットデータを１個ずつ記憶して各記憶ブロックにｎ個のｕビットデータを記憶し、データ出力時に、共通のデータ属性を有するｕビットデータを各記憶ブロックから１個ずつ抽出してデータ属性が共通するｎ個のｕビットデータを出力する記憶部と、
前記記憶部から出力されたデータ属性が共通するｎ個のｕビットデータを入力し、入力したｎ個のｕビットデータに対して所定の巡回シフト処理を行ってｎ個のｕビットデータを結合し、データ属性が共通するｎ個のｕビットデータからなるｕ×ｎビットのデータを出力する第２の入出力部とを有することを特徴とするデータ変換装置。
【請求項２】
前記記憶部は、
記憶ブロックからのｕビットデータの抽出及び抽出されたｎ個のｕビットデータの出力を一定周期ごとに行い、各周期において共通のデータ属性を有するｕビットデータを各記憶ブロックから１個ずつ抽出するとともに抽出の対象にするデータ属性を周期ごとに変化させ、各周期において、周期ごとにデータ属性が相違しているｎ個のｕビットデータを前記第２の入出力部に出力し、
前記第２の入出力部は、
ｎ個のｕビットデータの入力及びｕ×ｎビットのデータの出力を一定周期ごとに行い、各周期において、周期ごとにデータ属性が相違しているｎ個のｕビットデータを前記記憶部から入力するとともに周期ごとにデータ属性が相違しているｕ×ｎビットのデータを出力することを特徴とする請求項１に記載のデータ変換装置。
【請求項３】
前記第１の入出力部は、
ｎ個のデータから分割されたｎ個のｕビットデータを連続して入力し、
前記記憶部は、
データ出力時に、共通のデータから分割されたｕビットデータを各記憶ブロックから１個ずつ抽出して共通のデータから分割されたｎ個のｕビットデータを前記第２の入出力部に出力し、
前記第２の入出力部は、
共通のデータから分割されたｎ個のｕビットデータを前記記憶部から入力し、共通のデータから分割されたｎ個のｕビットデータからなるｕ×ｎビットのデータを出力することを特徴とする請求項１に記載のデータ変換装置。
【請求項４】
前記記憶部は、
記憶ブロックからのｕビットデータの抽出及び抽出されたｎ個のｕビットデータの出力を一定周期ごとに行い、各周期において共通のデータから分割されたｕビットデータを各記憶ブロックから１個ずつ抽出するとともに抽出の対象にする分割元のデータを周期ごとに変化させ、各周期において、周期ごとに分割元のデータが相違しているｎ個のｕビットデータを前記第２の入出力部に出力し、
前記第２の入出力部は、
ｎ個のｕビットデータの入力及びｕ×ｎビットのデータの出力を一定周期ごとに行い、各周期において、周期ごとに分割元のデータが相違しているｎ個のｕビットデータを前記記憶部から入力するとともに周期ごとに分割元のデータが相違しているｕ×ｎビットのデータを出力することを特徴とする請求項３に記載のデータ変換装置。
【請求項５】
前記第１の入出力部及び前記第２の入出力部の少なくともいずれかは、
ｎ個のｕビットデータに対する巡回シフト処理の度にシフト数を変化させて巡回シフト処理を行うことを特徴とする請求項１に記載のデータ変換装置。
【請求項６】
前記第１の入出力部は、
前記記憶部の各記憶ブロックが毎回異なるデータ属性のｕビットデータを入力できるようにｎ個のｕビットデータに対する巡回シフト処理を行うことを特徴とする請求項１に記載のデータ変換装置。
【請求項７】
前記第２の入出力部は、
入力したｎ個のｕビットデータが所定の順序で並ぶようにｎ個のｕビットデータに対する巡回シフト処理を行うことを特徴とする請求項１に記載のデータ変換装置。
【請求項８】
前記第１の入出力部及び前記第２の入出力部の少なくともいずれかは、
入力がｕ×ｎビット、出力が２×（ｕ×ｎ）ビットのバレルシフタと、
前記バレルシフタから出力された２×（ｕ×ｎ）ビットのデータについて上位ｕ×ｎビットのデータと下位ｕ×ｎビットのデータとのいずれかを選択して出力する２−１セレクタとから構成されていることを特徴とする請求項１に記載のデータ変換装置。
【請求項９】
前記第１の入出力部及び前記第２の入出力部の少なくともいずれかは、
巡回シフト数が相互に異なる複数の固定巡回シフタと、
固定巡回シフタにより巡回シフト処理が行われたデータと巡回シフト処理の行われていないデータとのいずれかを選択して出力する複数の２−１セレクタと、
２−１セレクタから出力されたデータを保持し、所定の場合に、保持しているデータを固定巡回シフタに出力するとともに、保持しているデータを固定巡回シフタを介さずに他の２−１セレクタに出力する複数の記憶素子から構成されたことを特徴とする請求項１に記載のデータ変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ変換装置に関し、メモリに分割されて格納された多倍長データを、効率よく連結する装置に関する。
【背景技術】
【０００２】
図１７は従来のデータ変換回路の一例のブロック図を示す。図１７の場合、メモリのバス幅であるｕｂｉｔ毎にデータを入力用メモリ部１７０１から読み出し、逐次シフトレジスタ１７０２へ入力する。初段のレジスタへ格納されたデータは、次のクロックで右隣のレジスタへ順次シフトしながら入力する。ｎクロック後に分割されたデータに対して読み出しを完了し、この時点で各レジスタ１７０２からデータを読み出すことで結合した多倍長データを得ることができる。次に複数種類のデータに対して連続して多倍長データを得るためには、上記の構成をｎ個用意し、出力側をｎ−１セレクタ１７０３で選択して出力する構成をとる。次に各シフトレジスタへの入力をそれぞれ異なるデータ毎に１クロック毎ずらして入力する。この場合、出力がそそろうタイミングも１クロックずつずれるため、そろったものから出力し、再び別のデータを入力することで、複数の異なる多倍長データの結合が可能となる。
【０００３】
次に図１３に従来の可変シフト回路の構成例を示す。図に示すように可変シフトは、２つの入出力のデータ幅が同じであるバレルシフタと、１つのＸＯＲで実現できる。
【０００４】
また、関連する技術として、特開２００１−１３６０７６号公報に開示された「シリアルパラレル変換器」がある。この「シリアルパラレル変換器」は、直列接続したフリップフロップＦＦＡ１〜ＦＦＭからなるシフトレジスタの出力の一部のデータを保持する保持回路を、そのスイッチ端子ＳＷのＨ／Ｌの信号レベルによって入力信号を選択できるスイッチ付フリップフロップＦＦＳ１〜ＦＦＳＮで構成し、スイッチ端子ＳＷには、シフトレジスタを構成するフリップフロップＦＦＡ１〜ＦＦＭのうち第１のＮビットデータを反映させるかあるいは第２のＮビットデータを反映させるかを決定するビットに対応する位置を構成するフリップフロップＦＦＣの出力端子Ｑを接続する。スイッチ付フリップフロップＦＦＳ１〜ＦＦＳＮの第１および第２のデータ入力端子Ｄ、ＤＴを、第１および第２のＮビットデータに対応する位置のフリップフロップの出力端子Ｑに接続する。
【特許文献１】特開２００１−１３６０７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
図１７のシフトレジスタは各レジスタの値を同時に読み出し可能な構成である必要がある。このように、同時に読み出しが必要なシフトレジスタは、ハードウェア実装を行う場合において回路コストが大きい（必要素子数、配線数が大きい）。また、図１７中のｎ−１セレクタは多倍長データの大きさに対して指数関数的に回路コストが増大するため、従来の実装方法では実装効率が悪く、多倍長データサイズによっては連続して結合することができないという問題点があった。
【０００６】
本発明は上述した従来技術の問題点を解決し、小規模な回路構成で所望のデータ変換を高速に行うデータ変換装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るデータ変換装置は、
ｕ（ｕ≧１）ビットのｕビットデータをｎ（ｎ≧２）個ずつ連続して入力するとともに、ｕビットデータの入力の度に、入力したｎ個のｕビットデータに対して所定の巡回シフト処理を行ってｎ個のｕビットデータを出力する第１の入出力部と、
ｎ個の記憶ブロックを有し、各記憶ブロックにｎ個のｕビットデータを記憶することが可能であり、前記第１の入出力部からｎ個のｕビットデータが出力される度に各記憶ブロックにｕビットデータを１個ずつ記憶して各記憶ブロックにｎ個のｕビットデータを記憶し、データ出力時に、共通のデータ属性を有するｕビットデータを各記憶ブロックから１個ずつ抽出してデータ属性が共通するｎ個のｕビットデータを出力する記憶部と、
前記記憶部から出力されたデータ属性が共通するｎ個のｕビットデータを入力し、入力したｎ個のｕビットデータに対して所定の巡回シフト処理を行ってｎ個のｕビットデータを結合し、データ属性が共通するｎ個のｕビットデータからなるｕ×ｎビットのデータを出力する第２の入出力部とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、小規模な回路構成で高速なデータ変換が可能となるため、従来に比べてより大きなサイズの多倍長データに対応することができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、本実施の形態に係るデータ変換装置を含む回路構成図である。図において、データ変換装置１は、それぞれｕ（ｕ≧１）ビットのデータであるＤＡＴＡ１（ｉ）〜ＤＡＴＡｎ（ｉ）をクロックごとにバッファ用メモリ部２から連続して入力するとともに、ｎ（ｎ≧２）個のｕビットのデータからなるｕ×ｎビットのデータを出力する。バッファ用メモリ部２は、ＤＡＴＡ１〜ＤＡＴＡｎをそれぞれｕビットのデータに分割し、ｕビットデータであるＤＡＴＡ１（ｉ）〜ＤＡＴＡｎ（ｉ）をクロックごとにデータ変換装置１に連続して出力する。
【００１０】
データ変換装置１は、可変巡回シフト回路１０１、データ変換用メモリ１０２、可変巡回シフト回路１０３から構成される。可変巡回シフト回路１０１は第１の入出力部の例に相当し、データ変換用メモリ１０２は記憶部の例に相当し、可変巡回シフト回路１０３は第２の入出力部の例に相当する。また、データ変換用メモリ１０２は、例えばＤｕａｌ−Ａｃｃｅｓｓ  ＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）−Ｂａｓｅｄ  ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００１１】
可変巡回シフト回路１０１は、ｕビットのデータであるＤＡＴＡ１（ｉ）〜ＤＡＴＡｎ（ｉ）（ｎ個のｕビットデータ）をクロックごとにバッファ用メモリ部２から連続して入力するとともに、ＤＡＴＡ１（ｉ）〜ＤＡＴＡｎ（ｉ）の入力の度に、ＤＡＴＡ１（ｉ）〜ＤＡＴＡｎ（ｉ）に対して所定の巡回シフト処理を行ってＤＡＴＡ１（ｉ）〜ＤＡＴＡｎ（ｉ）をデータ変換用メモリ１０２に出力する。また、可変巡回シフト回路１０１は、巡回シフト処理の度にシフト数を変化させて巡回シフト処理を行う。
【００１２】
データ変換用メモリ１０２は  ２ｐｏｒｔの（Ｒｅａｄ非同期、  Ｗｒｉｔｅ同期）データ幅ｕビット、深さｎのメモリをｎ個備える。つまり、データ変換用メモリ１０２は、ｎ個の記憶ブロックを有し、各記憶ブロックに計ｎ個のｕビットデータを記憶することが可能である。ｕビットデータの書き込み時には、可変巡回シフト回路１０１の巡回シフトにより、ＤＡＴＡ１（ｉ）〜ＤＡＴＡｎ（ｉ）を各記憶ブロックに分散させて記憶する。また、データ変換用メモリ１０２は、１クロックに１つのアドレスに対応するデータを読み出すことが可能である。つまり、データ読み出し時には、ｎ個の記憶ブロックのそれぞれからｕビットデータを１個ずつ抽出して計ｎ個のｕビットデータを可変巡回シフト回路１０３に出力する。また、アドレスが異なればリードライトは同時に可能である。
【００１３】
可変巡回シフト回路１０３は、データ変換用メモリ１０２から出力されたｎ個のｕビットデータを入力し、所定の巡回シフト処理を行ってｎ個のｕビットデータを結合し、ｕ×ｎビットデータを出力する。また、可変巡回シフト回路１０３は、巡回シフト処理の度にシフト数を変化させて巡回シフト処理を行う。
【００１４】
つぎに、動作について説明する。
【００１５】
まず、可変巡回シフト回路１０１は、バッファ用メモリ部２からシーケンシャルに入力されるｎ個のｕビットデータＤＡＴＡ１（ｉ）〜ＤＡＴＡｎ（ｉ）に対して巡回シフト処理を行って、ＤＡＴＡ１（ｉ）〜ＤＡＴＡｎ（ｉ）をデータ変換用メモリ１０２の各記憶ブロックに分散して書き込む。データ変換用メモリ１０２では、可変巡回シフト回路１０１により分散されたＤＡＴＡ１（ｉ）〜ＤＡＴＡｎ（ｉ）を各記憶ブロックに記憶する。出力時にはｎ個の各記憶ブロックから同時にＤＡＴＡｉに属するデータを読み出し、可変巡回シフト回路１０３に出力し、可変巡回シフト回路１０３では、入力したｎ個のｕビットデータに対して巡回シフト処理を行ってｕ×ｎビットのデータを出力する。データ変換用メモリ１０２に連続してデータを入力することで、連続してｕ×ｎビットの出力を得ることができる。
【００１６】
例として、ｕ＝８、ｎ＝６４の場合における回路の挙動について説明する。まず、図２に示すように各データの１バイト目をデータ変換用メモリ１０２に書き込む。ここで、図２は、データ変換用メモリ１０２へのｕビットデータの書き込み状況を示しており、図２の各行はｎ＝６４個の記憶ブロックを示し、各列は各記憶ブロックの深さ、つまり各記憶ブロックがｎ＝６４個のｕビットデータ（ここでは、８ビットデータ）を記憶可能なことを示している。また、添字ｉは各ｕビットデータの分割元のデータを示し、添字ｊは当該分割元のデータからのｊ番目のバイトデータであることを示す。例えば、図２のＭ00は、図１のＤＡＴＡ１から分割された１バイト目のデータであり、１番目の記憶ブロックに記憶されたことを示しており、Ｍ630は、図１のＤＡＴＡｎ（＝６４）から分割された１バイト目のデータであり、ｎ（＝６４）番目の記憶ブロックに記憶されたことを示している。図３以降も同様である。なお、図２の場合は、可変巡回シフト回路１０１は、巡回シフトを行っていない（０バイトシフト）。
【００１７】
次に、各データの２バイト目を図３のように１バイトシフトしてメモリに書き込む。１バイトシフトする巡回シフト処理は可変巡回シフト回路１０１により実施される。なお、図４以降に示すように、可変巡回シフト回路１０１は、各記憶ブロックが毎回異なるデータ属性のｕビットデータを入力できるように（各記憶ブロックが毎回分割元のデータが異なるｕビットデータを入力できるように）順次シフト回数を増やしながら巡回シフト処理を行う。図３に示す状態の後は、巡回シフトのシフト回数を順次増やしながら、図４のように全てのｕビットデータをデータ変換用メモリ１０２に書き込む。次に図４に示すように、ｉ＝０のデータ、すなわちＭ00〜Ｍ063のｎ個のｕビットデータを同時に各ブロックから読み出すとともに、図５に示すように、読み出された領域に次のデータＭ640〜Ｍ1270を書き込む。また同様にして、次のＭ10〜Ｍ163を読み出すとともに、読み出した領域に次のデータＭ641〜Ｍ1271を書き込む（図６）。そして、図６の動作を繰り返すことで図４と図７の状態が繰り替えされる。図４の状態では図中斜め方向にＲ／Ｗを行い、図７の状態では縦方向にＲ／Ｗを行う。それぞれリードしたデータは可変巡回シフト回路１０３で巡回シフトすることでｎ個のｕビットデータを所定の順序に並び替えてｕ×ｎビットのデータに変換することができる。例えば、図８に示すようにＭ163、Ｍ10・・・Ｍ161、Ｍ162という順序でデータ変換用メモリ１０２から出力された場合に、可変巡回シフト回路１０３がこれらのデータを１バイトシフトすることによりＭ10、Ｍ11・・・Ｍ162、Ｍ163の順序に並び替えることができ、正しい順序でｕ×ｎビットのデータを出力することができる。
【００１８】
このように本実施の形態に係るデータ変換装置では、可変巡回シフト回路１０１（第１の入出力部）がｕビットのｕビットデータをｎ個ずつ連続して入力するとともに、ｕビットデータの入力の度に、入力したｎ個のｕビットデータに対して所定の巡回シフト処理を行ってｎ個のｕビットデータを出力し、データ変換用メモリ１０２（記憶部）はｎ個の記憶ブロックを有し、各記憶ブロックにｎ個のｕビットデータを記憶することが可能であり、可変巡回シフト回路１０１からｎ個のｕビットデータが出力される度に各記憶ブロックにｕビットデータを１個ずつ記憶して各記憶ブロックにｎ個のｕビットデータを記憶し、データ出力時に、共通のデータ属性を有する（共通のデータから分割された）ｕビットデータを各記憶ブロックから１個ずつ抽出してデータ属性が共通する（共通のデータから分割された）ｎ個のｕビットデータを出力し、可変巡回シフト回路１０３（第２の入出力部）がデータ変換用メモリ１０２から出力されたデータ属性が共通するｎ個のｕビットデータを入力し、入力したｎ個のｕビットデータに対して所定の巡回シフト処理を行ってｎ個のｕビットデータを結合し、データ属性が共通するｎ個のｕビットデータからなるｕ×ｎビットのデータを出力する。
【００１９】
また、本実施の形態に係るデータ変換装置では、データ変換用メモリ１０２が、記憶ブロックからのｕビットデータの抽出及び抽出されたｎ個のｕビットデータの出力を一定周期ごとに行い、各周期において共通のデータ属性を有する（共通のデータから分割された）ｕビットデータを各記憶ブロックから１個ずつ抽出するとともに抽出の対象にするデータ属性（分割元のデータ）を周期ごとに変化させ、各周期において、周期ごとにデータ属性（分割元のデータ）が相違しているｎ個のｕビットデータを可変巡回シフト回路１０３に出力し、可変巡回シフト回路１０３は、ｎ個のｕビットデータの入力及びｕ×ｎビットのデータの出力を一定周期ごとに行い、各周期において、周期ごとにデータ属性が相違しているｎ個のｕビットデータをデータ変換用メモリ１０２から入力するとともに周期ごとにデータ属性が相違しているｕ×ｎビットのデータを出力する。
【００２０】
本実施の形態に係るデータ変換装置によれば、従来技術において同時に読み出しが必要なシフトレジスタで構成する必要があった部分を１クロックあたり１アドレスのみ読み出し可能なレジスタで構成することが可能になる。同時に読み出しが必要な場合、レジスタはラッチもしくはフリップフロップで構成する必要があるが、１クロックあたり１アドレスのみ読み出し可能なレジスタはＳＲＡＭもしくはＤＲＡＭで構成可能となる。この場合、同一の記憶容量を実現するために、ラッチもしくはフリップフロップと比較して、ＳＲＡＭもしくはＤＲＡＭは１／５以下の素子数で構成することが可能となる。また、読み出しに必要な配線数は従来技術の場合、各レジスタから読み出すため、ｎ本必要であったが、本実施の形態に係るデータ変換装置の場合、１クロックあたり１アドレスのみの読み出しであるため１本となり、配線コストは１／ｎになる。また、従来技術で必要であったｎ−１セレクタが不必要となり、本実施の形態に係るデータ変換装置においては２つの巡回シフト回路が必要となる。回路コストを比較すると、ｎ−１セレクタはＯ（ｎ）の個数の２−１セレクタが必要であるのに対して、巡回シフト回路はＯ（ｌｏｇ  ｎ）個の２−１セレクタで構成可能なため、従来技術よりも回路コストが減少し、より大きな多倍長データのサイズに対応可能となる。このよに、本実施の形態に係るデータ変換装置によれば、小規模な回路構成で高速なデータ変換が可能となるため、従来に比べてより大きなサイズの多倍長データに対応することができる。
【００２１】
実施の形態２．
本実施の形態では、実施の形態１のデータ変換装置１を用いた応用例を図９を参照して説明する。図中ハッシュ関数（ＳＨＡ―１）処理部３は暗号化通信や認証等に用いられるアルゴリズムを処理する手段であり、多倍長のデータ（５１２ｂｉｔ）を処理することを特徴とする。ハッシュ関数を高速に処理する際のボトルネックとして、アルゴリズム自体の処理の他に、多倍長のデータを連続して供給するインターフェースが挙げられる。実施の形態１に示したデータ変換装置１を利用することで高速処理が可能となる。図９中外部からバースト転送等で連続して同一メモリ内に複数の多倍長データが分割して格納される。このとき処理するデータが５１２ｂｉｔの倍数とは限らないため、その場合はパディング処理が必要となる。ＳＨＡ−１のパディング処理は仕様上ｂｙｔｅ単位もしくはｗｏｒｄ単位等の少ないデータ長単位での処理が望ましいため、バッファ用メモリ部２からの読み出し直後に行う。このデータをデータ変換装置１にて連続して結合し、ハッシュ関数（ＳＨＡ−１）処理部３へ入力することが可能となる。
【００２２】
実施の形態３．
本実施の形態では、実施の形態１の変換装置を用いた暗号化装置を図１０を参照して説明する。図中ブロック暗号処理部４は、ＡＥＳ、Ｃａｍｅｌｌｉａ等のブロック暗号処理を行う。一般的なブロック暗号は１２８ｂｉｔ単位で処理を行う。一方、暗号化の対象となるデータは文字コード（８ｂｉｔ等）や画像データ（１６ｂｉｔ、３２ｂｉｔ）であり、１２８ｂｉｔよりも小さい単位で表されることが多い。そのため、暗号化前にパディング処理、圧縮処理、符号化等を行う場合は、そのデータ幅で処理することが望ましい。パディング処理等と暗号化処理を並列に処理する場合、メモリから小さいデータ幅（図１０の場合８ｂｉｔ）で読み出されたデータを、連続して１２８ｂｉｔのデータに結合する必要がある。パディング処理後のデータに対してデータ変換装置１を用いることで上述の問題点を解決することが可能となる。
【００２３】
実施の形態４．
図１１、図１２に外部入力バスとしてシリアルバスを用いた場合の例を示す。図中シリアル転送を行うクロックＣＬＫ１とデータ変換を行うクロックＣＬＫ２の関係はＣＬＫ１＞＞ＣＬＫ２であるものとする。この場合、外部からシリアル転送で入力されるデータは、その属するデータ（ＤＡＴＡ１〜ＤＡＴＡｎ）毎にバッファ用２ｐｏｒｔメモリ５に格納する。例えばＤＡＴＡ１に属するデータの場合、一番上に表記されているバッファ用２ｐｏｒｔメモリ内に格納され（図中○で囲まれた部分の一番上）、他のメモリには書き込まれない。○で囲まれた部分内においても書き込み制御を行い、転送されるデータのビットに対応するメモリに書き込みを行う。データ変換装置１はバッファ用２ｐｏｒｔメモリ５から所望のデータを読み出し、変換を行う。それと同時に、外部からは読み出しに使用しているアドレス以外の番地に対して新規データを格納する。これを各アドレスに対して交互に行うことで、連続して所望の多倍長データを得ることが可能となる。
【００２４】
ＣＬＫ１＜ＣＬＫ２においても、一度転送したデータに対して複数回処理を行う場合、もしくは外部からの転送速度と比較して処理が遅い場合は上記の方式は有効になる。
【００２５】
また、上記の方式は、入力データ幅が処理データ幅と比較して小さければ（例えば入力データ幅３２ｂｉｔ、処理データ幅５１２ｂｉｔ）有効性が保たれ、転送方式をシリアル転送に限定する必要はない（ＰＣＩ等でも有効）。
【００２６】
実施の形態５．
次に、データ変換装置１内の可変巡回シフト回路１０１、可変巡回シフト回路１０３の構成例を図１４、図１６に示す。図１５は図１４の詳細説明図である。従来例では、図１３に示すようにバレルシフタを２つ必要としたが、図１４では出力を入力の２倍に拡張し、セレクタを用いることで、バレルシフタを１つだけ用いることで実現可能としてる。つまり、入力がｘ（＝ｕ×ｎ）ビット、出力が２ｘ（＝２×（ｕ×ｎ））ビットのバレルシフタと、バレルシフタから出力された２ｘビットのデータについて上位ｘビットのデータと下位ｘビットのデータのいずれかを選択して出力するセレクタとを用いて可変巡回シフト回路１０１、可変巡回シフト回路１０３を構成することとしている。
【００２７】
図１６は１段毎に２i回巡回シフトしたデータとシフトしないデータを選択し、最終的に可変巡回シフトデータを得る方式による回路構成例である。つまり、巡回シフト数が相互に異なる複数の固定巡回シフタと、固定巡回シフタにより巡回シフト処理が行われたデータと巡回シフト処理の行われていないデータとのいずれかを選択して出力する複数の２−１セレクタと、２−１セレクタから出力されたデータを保持し、所定の場合に、保持しているデータを固定巡回シフタに出力するとともに、保持しているデータを固定巡回シフタを介さずに他の２−１セレクタに出力する複数の記憶素子（フリップフロップ：ＦＦ）とを用いて可変巡回シフト回路１０１、可変巡回シフト回路１０３を構成することとしている。図１６の構成では、２iシフト実施後のデータとシフトなしのデータとを２−１セレクタで選択し、２−１セレクタを通過毎にフリップフロップに格納し、所望のシフト回数まで繰り返すことで実施の形態１に示した巡回シフト処理を実現する。１回（もしくは数回）の選択毎にフリップフロップに格納するパイプライン方式により、図１３と比較して回路コストは増加するが、高速に動作可能となる。
【００２８】
ここで、以上の実施の形態１〜５に示したデータ変換装置の特徴を以下にて再言する。
【００２９】
実施の形態１〜４に示すデータ変換装置は、ｕｂｉｔ毎にメモリ内に分割して格納された複数種類の異なる多倍長データをそれぞれｕ×ｎｂｉｔに結合するデータ変換装置であって、可変巡回シフト回路を用いて前記の入力データをｕｂｉｔ単位で巡回シフトするデータの拡散手段と、前記の拡散手段による出力データを記憶するｎ個の深さｎ、データ幅ｕｂｉｔの記憶手段を有し、前記ｎ個の記憶手段から各記憶手段毎に読み出しアドレスの制御を行い、記憶手段からの出力データを得る手段と、前記記憶手段からの出力データを可変巡回シフト回路を用いてデータを所望のデータに成形する手段を有することを特徴とする。
【００３０】
実施の形態５に示すデータ変換装置は、２つの可変巡回シフト回路を、それぞれｎ×ｕ  ｂｉｔ入力、２×（ｎ×ｕ）ｂｉｔ出力のバレルシフタと、ｎ×ｕ  ｂｉｔの２−１セレクタで構成することを特徴とする。
【００３１】
実施の形態５に示すデータ変換装置は、２つの可変巡回シフト回路を２iシフトとシフトなしを２−１セレクタで選択し、２−１セレクタを通過毎に記憶素子に格納し、所望のシフト回数まで繰り返すことで実現する構成としたことを特徴とする。
【図面の簡単な説明】
【００３２】
【図１】実施の形態１に係るデータ変換装置を含む回路構成図。
【図２】データ変換用メモリへのｕビットデータの書き込み状況を示す図。
【図３】データ変換用メモリへのｕビットデータの書き込み状況を示す図。
【図４】データ変換用メモリへのｕビットデータの書き込み及び読み出し状況を示す図。
【図５】データ変換用メモリへのｕビットデータの書き込み及び読み出し状況を示す図。
【図６】データ変換用メモリへのｕビットデータの書き込み及び読み出し状況を示す図。
【図７】データ変換用メモリへのｕビットデータの書き込み及び読み出し状況を示す図。
【図８】巡回シフトの例を示す図。
【図９】実施の形態２に係るデータ変換装置をハッシュ関数処理に応用した例を示す図。
【図１０】実施の形態３に係るデータ変換装置をブロック暗号処理に応用した例を示す図。
【図１１】実施の形態４に係るデータ変換装置を高速シリアルバスに接続した例を示す図。
【図１２】実施の形態４に係るデータ変換装置を高速シリアルバスに接続した例を示す図。
【図１３】従来の可変シフト回路の構成を示す図。
【図１４】実施の形態５に係る可変巡回シフト回路の構成例を示す図。
【図１５】実施の形態５に係る可変巡回シフト回路の処理例を示す図。
【図１６】実施の形態５に係る可変巡回シフト回路の構成例を示す図。
【図１７】従来のデータ変換回路の構成を示す図。
【符号の説明】
【００３３】
１  データ変換装置、２  バッファ用メモリ部、３  ハッシュ関数（ＳＨＡ−１）処理部、４  ブロック暗号処理部、５  バッファ用２ｐｏｒｔメモリ、１０１  可変巡回シフト回路、１０２  データ変換用メモリ、１０３  可変巡回シフト回路。
【図１】
2005084766.tif 000003
【図２】
2005084766.tif 000004
【図３】
2005084766.tif 000005
【図４】
2005084766.tif 000006
【図５】
2005084766.tif 000007
【図６】
2005084766.tif 000008
【図７】
2005084766.tif 000009
【図８】
2005084766.tif 000010
【図９】
2005084766.tif 000011
【図１０】
2005084766.tif 000012
【図１１】
2005084766.tif 000013
【図１２】
2005084766.tif 000014
【図１３】
2005084766.tif 000015
【図１４】
2005084766.tif 000016
【図１５】
2005084766.tif 000017
【図１６】
2005084766.tif 000018
【図１７】
2005084766.tif 000019