【手続補正書】
【提出日】平成25年4月17日(2013.4.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力データを出力データとして出力するまでの処理をｐ個に分割したそれぞれの処理を並列に順次行う第１処理部から第ｐ処理部（ｐ≧２）を備え、
第ｉ処理部（ｐ≧ｉ≧１）は、
ｉ＝１の場合、前記入力データとしてそれぞれｍビットのデータを格納し、ｉ≧２の場合、第ｉ−１処理部の算出したそれぞれｍビットのデータを格納するＡレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタと、
ｉ＝１の場合、前記入力データとしてそれぞれｍビットのデータを格納し、ｉ≧２の場合、第ｉ−１処理部の算出したｍ×ｎビットのデータをｍビットずつに分割したｎ個のデータを格納する分割レジスタと、
所定のパラメータを記憶するパラメータレジスタと、
ｉ＝１の場合、前記入力データとしてｍビットのデータを記憶し、ｉ≧２の場合、第ｉ−１処理部の算出した所定のデータを前算出データとして記憶する前算出データレジスタと、
パラメータレジスタに記憶されたパラメータと前算出データレジスタに記憶された前算出データとを加算する第１加算器と、
分割レジスタに格納されているｎ個のデータの少なくともいずれかに基づいてＸＯＲ演算によりｍビットのデータを求める第１演算器と、
Ａレジスタのデータと、Ｂレジスタのデータと、Ｃレジスタのデータとに対して所定のハッシュアルゴリズムによる論理演算を行ってｍビットのデータを求める第２演算器と、
第１演算器によるｍビットのデータと第２演算器によるｍビットのデータとを加算して加算したデータを、ｐ−１≧ｉの場合は、第ｉ＋１処理部のための前算出データとして第ｉ＋１処理部の前算出データレジスタに記憶させ、ｉ＝ｐの場合は、出力データとして第ｐ処理部の前算出データレジスタに記憶させる第２加算器と、
ＡレジスタのデータとＥレジスタのデータとを加算する第３加算器と、
第１加算器の出力と第３加算器の出力とを加算したデータを、ｐ−１≧ｉの場合は、第ｉ＋１処理部のためのＡレジスタのデータとして第ｉ＋１処理部のＡレジスタに記憶させ、ｉ＝ｐの場合は、出力データとして第ｐ処理部のＡレジスタに記憶させる第４加算器とを備え、
第ｐ処理部は、
第ｐ処理部のＡレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタに記憶されたデータを出力データとして出力する
ことを特徴とする演算装置。
【請求項２】
複数のサイクルにより演算を行う演算装置において、
最初のサイクルの場合、入力データとしてそれぞれｍビットのデータを格納し、最初のサイクルでない場合、前のサイクルで算出したそれぞれｍビットのデータを格納するＡレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタと、
最初のサイクルの場合、入力データとしてそれぞれｍビットのデータを格納し、最初のサイクルでない場合、前のサイクルで算出したｍ×ｎビットのデータをｍビットずつに分割したｎ個のデータを格納する分割レジスタと、
所定のパラメータを記憶するパラメータレジスタと、
最初のサイクルの場合、入力データとしてｍビットのデータを記憶し、最初のサイクルでない場合、前のサイクルにおいて算出した所定のデータを前算出データとして記憶する前算出データレジスタと、
パラメータレジスタに記憶されたパラメータと前算出データレジスタに記憶された前算出データとを加算する第１加算器と、
分割レジスタに格納されているｎ個のデータの少なくともいずれかに基づいてＸＯＲ演算によりｍビットのデータを求める第１演算器と、
Ａレジスタのデータと、Ｂレジスタのデータと、Ｃレジスタのデータとに対して所定のハッシュアルゴリズムによる論理演算を行ってｍビットのデータを求める第２演算器と、
第１演算器によるｍビットのデータと第２演算器によるｍビットのデータとを加算して加算したデータを、最後のサイクルでない場合は、次のサイクルのための前算出データとして前算出データレジスタに記憶させ、最後のサイクルの場合は、出力データとして前算出データレジスタに記憶させる第２加算器と、
ＡレジスタのデータとＥレジスタのデータとを加算する第３加算器と、
第１加算器の出力と第３加算器の出力とを加算したデータを、最後のサイクルでない場合は、次のサイクルのためのＡレジスタのデータとしてＡレジスタに記憶させ、最後のサイクルの場合は、出力データとしてＡレジスタに記憶させる第４加算器とを備え、
最後のサイクルにおいて、
Ａレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタに記憶されたデータを出力データとして出力する
ことを特徴とする演算装置。
【請求項３】
入力データを出力データとして出力するまでの処理をｐ個に分割したそれぞれの処理を並列に順次行う第１処理部から第ｐ処理部（ｐ≧２）を備えるとともに、所定の処理部を示す第ｉ処理部（ただし、ｐ≧ｉ≧１）は、
データを格納する第ｉレジスタと、
第ｉレジスタが格納するデータを入力してデータ処理を行う第ｉ分割処理単位部と、
第ｉ分割処理単位部の処理を前処理と後処理とに分割して前処理の結果を前処理データとして入力して格納し後処理のために出力する中間レジスタと
を備える演算装置において、
第ｉレジスタは、
ｉ＝１の場合、前記入力データとしてそれぞれｍビットのデータを格納し、ｉ≧２の場合、第ｉ−１処理部の算出したそれぞれｍビットのデータを格納するＡレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタと、
ｉ＝１の場合、前記入力データとしてそれぞれｍビットのデータを格納し、ｉ≧２の場合、第ｉ−１処理部の算出したｍ×ｎビットのデータをｍビットずつに分割したｎ個のデータを格納する分割レジスタと、
所定のパラメータを記憶するパラメータレジスタと、
ｉ＝１の場合、前記入力データとしてｍビットのデータを記憶し、ｉ≧２の場合、第ｉ−１処理部の算出した所定のデータを前算出データとして記憶する前算出データレジスタと
を備え、
第ｉ分割処理単位部は、
前処理として、パラメータレジスタに記憶されたパラメータと前算出データレジスタに記憶された前算出データとを加算して、加算したデータを前処理データとして中間レジスタに出力する第１加算器と、
前処理として、分割レジスタに記憶されたｎ個のデータの少なくともいずれかに基づいてＸＯＲ演算によりｍビットのデータを求めて前処理データとして中間レジスタに出力する第１演算器と、
前処理として、Ａレジスタのデータと、Ｂレジスタのデータと、Ｃレジスタのデータとに対して所定のハッシュアルゴリズムによる論理演算を行ってｍビットのデータを求めて前処理データとして中間レジスタに出力する第２演算器と、
後処理として、中間レジスタが格納した第１演算器によるｍビットのデータと、第２演算器によるｍビットのデータとを加算して、加算したデータを、ｐ−１≧ｉの場合は、第ｉ＋１処理部のための前算出データとして第ｉ＋１処理部の前算出データレジスタに記憶させ、ｉ＝ｐの場合は、出力データとして第ｐ処理部の前算出データレジスタに記憶させる第２加算器と、
前処理として、ＡレジスタのデータとＥレジスタのデータとを加算して、加算したデータを前処理データとして中間レジスタに出力する第３加算器と、
後処理として、中間レジスタが格納した第１加算器の出力と第３加算器の出力とを加算したデータを、ｐ−１≧ｉの場合は、第ｉ＋１処理部のためのＡレジスタのデータとして第ｉ＋１処理部のＡレジスタに記憶させ、ｉ＝ｐの場合は、出力データとして第ｐ処理部のＡレジスタに記憶させる第４加算器とを備え、
第ｐ処理部は、
第ｐ処理部のＡレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタに記憶されたデータを出力データとして出力する
ことを特徴とする演算装置。
【請求項４】
データを格納する格納レジスタと、
格納レジスタが格納するデータを入力してデータ処理を行うデータ処理部と、
データ処理部の処理を前処理と後処理とに分割して前処理の結果を前処理データとして入力して格納し後処理のために出力する中間レジスタと
を備えた、複数のサイクルにより演算を行う演算装置において、
格納レジスタは、
最初のサイクルの場合、入力データとしてそれぞれｍビットのデータを格納し、最初のサイクルでない場合、前のサイクルで算出したそれぞれｍビットのデータを格納するＡレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタと、
最初のサイクルの場合、入力データとしてそれぞれｍビットのデータを格納し、最初のサイクルでない場合、前のサイクルで算出したｍ×ｎビットのデータをｍビットずつに分割したｎ個のデータを格納する分割レジスタと、
所定のパラメータを記憶するパラメータレジスタと、
最初のサイクルの場合、入力データとしてｍビットのデータを記憶し、最初のサイクルでない場合、前のサイクルにおいて算出した所定のデータを前算出データとして記憶する前算出データレジスタと、
を備え、
データ処理部は、
前処理として、パラメータレジスタに記憶されたパラメータと前算出データレジスタに記憶された前算出データとを加算して、加算したデータを前処理データとして中間レジスタに出力する第１加算器と、
前処理として、分割レジスタに記憶されたｎ個のデータの少なくともいずれかに基づいてＸＯＲ演算によりｍビットのデータを求めて前処理データとして中間レジスタに出力する第１演算器と、
前処理として、Ａレジスタのデータと、Ｂレジスタのデータと、Ｃレジスタのデータとに対して所定のハッシュアルゴリズムによる論理演算を行ってｍビットのデータを求めて前処理データとして中間レジスタに出力する第２演算器と、
後処理として、中間レジスタが格納した第１演算器によるｍビットのデータと、第２演算器によるｍビットのデータとを加算して、加算したデータを、最後のサイクルでない場合は、次のサイクルのための前算出データとして前記前算出データレジスタに記憶させ、最後のサイクルの場合は、出力データとして前算出データレジスタに記憶させる第２加算器と、
前処理として、ＡレジスタのデータとＥレジスタのデータとを加算して、加算したデータを前処理データとして中間レジスタに出力する第３加算器と、
後処理として、中間レジスタが格納した第１加算器の出力と第３加算器の出力とを加算したデータを、最後のサイクルでない場合は、次のサイクルのためのＡレジスタのデータとしてＡレジスタに記憶させ、最後のサイクルの場合は、出力データとしてＡレジスタに記憶させる第４加算器とを備え、
最後のサイクルにおいて、
Ａレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタに記憶されたデータを出力データとして出力する
ことを特徴とする演算装置。