JP4328905B2 - 集積回路およびその制御方法 - Google Patents

集積回路およびその制御方法 Download PDF

Info

Publication number
JP4328905B2
JP4328905B2 JP2000308512A JP2000308512A JP4328905B2 JP 4328905 B2 JP4328905 B2 JP 4328905B2 JP 2000308512 A JP2000308512 A JP 2000308512A JP 2000308512 A JP2000308512 A JP 2000308512A JP 4328905 B2 JP4328905 B2 JP 4328905B2
Authority
JP
Japan
Prior art keywords
modules
message
accuracy
calculation
integrated circuit
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
JP2000308512A
Other languages
English (en)
Other versions
JP2002117011A (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.)
Tokyo Denki University
Original Assignee
Tokyo Denki University
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 Tokyo Denki University filed Critical Tokyo Denki University
Priority to JP2000308512A priority Critical patent/JP4328905B2/ja
Publication of JP2002117011A publication Critical patent/JP2002117011A/ja
Application granted granted Critical
Publication of JP4328905B2 publication Critical patent/JP4328905B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)
  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、1以上のコアを1チップ上に備える集積回路およびその制御方法に関し、特に、オブジェクト指向技術を適用した集積回路およびその制御方法に関するものである。
【0002】
【従来の技術】
近年、集積回路技術が飛躍的に向上していることに伴い、より多数の回路ブロックをシングルチップ上に実現できるようになってきた。このような流れを受け、メモリ等のサブシステムをプリント基板上に配置してシステムを構築するシステムボードから、サブシステムを一つのチップ上に内蔵してシステムを構築するシステムオンチップ(System On Chip:SOC)への移行が加速されている。このようなSOCの応用範囲は、コンピュータ、ファックス、携帯電話、および、多目的機器等と広範囲に及んでおり、その重要性が益々高まっている。
【0003】
ここで、一つのチップ上に内蔵する多数の機能ブロックの各々を、最初から設計することは極めて困難である。このため、大規模マクロセル(コア、メガセル)の標準化を図ることにより、開発元の異なるそれぞれのコアを自由に選択して一つのチップ上に集積できるようにする、コアの新しい流通形態が注目されている。
【0004】
【発明が解決しようとする課題】
しかしながら、SOCの現状には次のような課題が指摘されている。
まず、SOCが益々高集積化する一方で、SOCの開発期間は益々短期化することが求められている。
また、複数のVC(Virtual Component)を接続したSOCを設計するためには、全てのVCの使用法を理解している必要がある。しかしながら、これらVCは複数の異なった開発元から提供されたものであるため、ASIC(Application Specified IC)の提供側は、多様なVCに関する専門知識を通常持っていない。
さらに、開発元の異なるVCの再利用法は、未だ定まっていない。
【0005】
このような課題を解決するためには、過去に開発されたVCのインタフェースを標準化し、このVCを再利用可能にすることが考えられるが、多様な環境下で開発されたVCのインタフェースを標準化することは、その知的財産権(Intellectual Property::IP)の保持を行なう必要性があることもあり、容易ではない。
また、特に、VSI(Virtual Socket Interface)のように用途が特定されないVCについては、その標準化が困難である。
【0006】
本発明は上記問題に鑑みてなされたもので、ソフトウェア分野において用いられているオブジェクト指向技術をハードウェアである集積回路に適用することにより、コアの再利用や機能拡張を容易に行なうことができる、集積回路およびその制御方法を提供することを目的としている。
【0007】
【課題を解決するための手段】
このような目的を達成するため、請求項1に記載の集積回路は、1以上のコアを1チップ上に備え、所定機能を起動するメッセージと、この機能に必要となる演算データと演算精度とを含むパラメータとを受けて上記機能を行なう集積回路であって、上記コアは複数のユニットを備えると共に、各ユニットは上記機能を実行する複数のモジュールを備え、上記複数のユニットおよび上記複数のモジュールは、それぞれカスケード接続され、上記各ユニットは、上記メッセージが自己宛てのメッセージであるか否かを判断し、上記メッセージが自己宛てであると判断した際、上記演算データを取り込んだ上記モジュールの数が上記演算精度に対応する迄、上記複数のモジュールにて所定順序で上記演算データを取り込むことにより、上記機能に必要となるモジュールの数を決定することを特徴とする。
【0008】
この集積回路によれば、送られたメッセージが自己宛てのメッセージであるか否かを判断し、自己宛てのメッセージである場合には、機能に必要となるモジュールの数を自動的に決定する。このことにより、各コアは、演算に必要となる制御を自律的に行なうことができる。したがって、コア(VC)の使用者は抽象的に部品化されたVCの内部を知る必要がなく、またVCが他のVCの動作によって破壊(変更)される危険性がない。したがって、コアの再利用や拡張を容易に行なうことができる。
【0009】
また、請求項2に記載の集積回路は、請求項1に記載の集積回路において、上記各ユニットは、演算データラッチ機構を備え、上記演算データラッチ機構は、上記演算データを取り込んだ上記モジュールの数が上記演算精度に対応する迄、上記複数のモジュールに対して所定順序でデータラッチ操作を行ない、上記モジュールの数が不足する場合には、他のユニットの演算データラッチ機構に対して、ラッチ操作のメッセージを伝送することを特徴とする。
【0010】
これは、モジュール数を決定するための構成を一層具体的に示すものである。この集積回路は、演算データを取り込んだモジュールの数が演算精度に対応する迄、データラッチ操作を行い、モジュールの数が不足する場合には、他のユニットにおいて、同様にデータラッチ操作を行なう。このようにデータラッチを動的に順次行なうことにより、演算精度に応じたモジュール数を決定することができる。
【0011】
また、請求項3に記載の集積回路は、請求項1または2に記載の集積回路において、上記各ユニットは、上記機能が減算または除算である場合、演算結果0を出力する上記モジュールの数を上位のモジュールから下位のモジュールに至り計数することにより、演算結果の精度範囲を算定することを特徴とする。
【0012】
これは、減算または除算を行なう際に演算結果の精度範囲を決定するための構成を一層具体的に示すものである。この集積回路は、演算結果0を出力するモジュールの数を計数することにより、演算結果の精度範囲を算定する。このように特定の演算結果を出力するモジュールの数を計数することにより、演算結果の精度範囲を算定することができる。
【0015】
また、本発明は集積回路の制御方法に関するものであり、請求項4に記載の集積回路の制御方法は、1以上のコアを1チップ上に備え、上記コアは複数のユニットを備えると共に、各ユニットは上記機能を実行する複数のモジュールを備え、上記複数のユニットおよび上記複数のモジュールは、それぞれカスケード接続されて構成され、所定機能を起動するメッセージと、この機能に必要となる演算データと演算精度とを含むパラメータとを受けて上記機能を行なう集積回路、に対する制御方法であって、上記各ユニットにおいて、上記送られたメッセージが自己宛てのメッセージであるか否かを判断するメッセージ判断工程と、上記メッセージ判断工程において自己宛てであると判断した際、上記演算データを取り込んだ上記モジュールの数が上記演算精度に対応する迄、上記複数のモジュールにて所定順序で上記演算データを取り込むことにより、上記機能に必要となるモジュールの数を決定するモジュール数決定工程とを備えることを特徴とする。
【0016】
この制御方法によれば、送られたメッセージが自己宛てのメッセージであるか否かが判断され、自己宛てのメッセージである場合には、機能に必要となるモジュールの数が自動的に決定される。このことにより、コアでは演算に必要となる制御を自律的に行なうことができる。したがって、コア(VC)の使用者は抽象的に部品化されたVCの内部を知る必要がなく、またVCが他のVCの動作によって破壊(変更)される危険性がない。したがって、コアの再利用や拡張を容易に行なうことができる。
【0017】
また、請求項5に記載の集積回路の制御方法は、請求項4に記載の集積回路の制御方法において、上記モジュール数決定工程において、上記演算データを取り込んだ上記モジュールの数が上記演算精度に対応する迄、上記複数のモジュールに対して所定順序でデータラッチ操作を行なうデータラッチ操作工程と、上記モジュールの数が不足する場合には、他のユニットの演算データラッチ機構に対して、ラッチ操作のメッセージを伝送するラッチメッセージ伝送工程とを備えることを特徴とする。
【0018】
これは、モジュール数を決定するための構成を一層具体的に示すものである。この制御方法によれば、演算データを取り込んだモジュールの数が演算精度に対応する迄、データラッチ操作が行なわれ、モジュールの数が不足する場合には、他のユニットにおいて、同様にデータラッチ操作が行なわれる。このようにデータラッチを動的に順次行なうことにより、演算精度に応じたモジュール数を決定することができる。
【0019】
また、請求項6に記載の集積回路の制御方法は、請求項4または5に記載の集積回路の制御方法において、上記モジュール数決定工程において、上記機能が減算または除算である場合、演算結果0を出力する上記モジュールの数を上位のモジュールから下位のモジュールに至り計数することにより、演算結果の精度範囲を決定する精度範囲決定工程を備えることを特徴とする。
【0020】
これは、減算または除算を行なう際に演算結果の精度範囲を決定するための構成を一層具体的に示すものである。この制御方法によれば、演算結果0を出力するモジュールの数を計数することにより、演算結果の精度範囲が算定される。このように特定の演算結果を出力するモジュールの数を計数することにより、演算結果の精度範囲を算定することができる。
【0023】
【発明の実施の形態】
以下に、本発明にかかる集積回路およびその制御方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
以下では、まず、実施の形態1において、本発明の概要と、本発明を算術演算機構に適用した例と、さらに算術演算機構のうちの加算/減算機構に適用した例を示す。また、実施の形態2において、本発明を除算器に適用した例を示す。そして、最後に、実施の形態3において、本発明をRSA暗号に組み込む乗除算機構に適用した例を示す。
【0024】
(実施の形態1)
(概要)
まず、実施の形態1について説明する。
最初に、本実施の形態1における集積回路およびモジュールの制御方法の概要について説明する。本集積回路およびモジュールの制御方法は、概略的に、ソフトウェアにおいて用いられているオブジェクト指向技術の考え方をハードウェアであるVCに適用し、あたかもオブジェクト指向技術でのオブジェクト内のデータ処理装置のように働かせられる機能を持ったVCを提供するものである。
【0025】
このオブジェクト指向技術は、機能毎の部品化を図り、内部を隠蔽してカプセル化するものであり、再利用性や拡張性などのメリットから普及してきている。これをVCに適用することにより、VCの使用者は抽象的に部品化されたVCの内部(後述するユニットや演算モジュールの数、演算精度、クロック数等)を知る必要がなく、またVCが他のVCの動作によって破壊(変更)される危険性がない。したがって、コアの再利用や拡張を容易に行なうことができる。また、オブジェクト化することにより、処理データの規模に左右されないソフトウェアのような柔軟性を持ったコアが実現できる。この結果、メッセージとパラメータに関することが主な標準化となり、様々な制約からなる項目から解放され、標準化がし易くなる。
【0026】
(概要−オブジェクト指向技術の適用の基本的概念)
このような利点を有するオブジェクト指向技術は、概略的に、下記のように集積回路に適用することができる。
図1は、オブジェクト指向技術を適用した複数のVCから構成されるSOCを示すブロック図である。この図1において、SOC1は、複数のVC2を備えて構成されており、これら各VC2はバス3を介して相互に接続されている。これら各VC2は、相互に同一または異なる各種の演算機能や制御機能を実現するコンポーネントである。
【0027】
ここで、使用者は、複数のVC2の全てに対して、必要なメッセージ(必要とするVC2の機能を特定するための情報であり、例えば、加減乗除算のいずれかを指示する情報)と、パラメータ(VC2が処理を行なう対象となるデータおよびその際に必要となるデータ)とをバス3を介して送る。このメッセージは、例えば、各VC2の実装時にアドレスコードのようなビットパターンを割り振り、コード変換表を介する等して、そのビットパターンを除算や暗号といったメッセージとして送ることができる。
そして、各VC2には、このメッセージを判断するための回路を付加しておき、この回路の判断結果に応じて、コアの起動を制御する。すなわち、各VC2は、メッセージを自己宛てのメッセージか否か判断し、自己宛てのメッセージであると判断した場合にはパラメータを取り込み、処理した結果をバス3を介して返す。これが、本集積回路におけるオブジェクト指向技術の基本概念である。
【0028】
次に、この基本概念を、より具体的に説明する。特に、図1に示した概念では各VC2がバス3を介してメッセージの通信を行なっているが、各VC2の機能によっては、各VC2が相互にメッセージを通信する必要が生じ、バス3の調停機構が必要になるため、このような場合を考慮した基本概念について説明する。
図2は、オブジェクト指向技術を適用した複数のVCから構成されるSOCを示すブロック図である。この図2において、SOC1は、相互にメッセージの通信を行なう必要がない複数のVC2aと、相互にメッセージの通信を行なう必要がある複数のVC2b(VC2b1〜VC2b4)とを備えて構成されている。ここで、VC2aについては、図1と同様に、バス3aを介してメッセージの通信を行なうことができる。
【0029】
一方、VC2bに関しては、やはりバス3aを介してメッセージの通信を行なうが、VC2bの相互間で通信を行なうためにバス3aの調停を行なう必要が生じる。このような調停機構としては公知のものを適用することもできるが、図2においては、新規な調停機構を用いている。この調停機構は、バス3aの使用権通知線3bと、バス3aの使用終了通知線3cとを備えて構成されている。
バス3aの使用権通知線3bは、複数のVC2bを、VC2b1、VC2b2...VC2d4の如く、順次的に巡回接続する。また、バス3aの使用終了通知線3cは、各VC2bの出力を当該VC2bの上流のVC2bに入力するものであり、例えば、VC2b2の出力はVC2b1、VC2b3の出力はVC2b2に入力される。
【0030】
このような構成において各VC2bは、自己の上流のVC2bから上記使用権通知線3bを介して行なわれた出力がLowである場合には、バス3aの使用が可能であると判断し、自己のバス3aの使用が終了した際には、自己の使用権通知線3bを介して行なう出力をLowとし、使用終了通知線3cを介してLowの出力が入力された場合には、自己の使用権通知線3bを介して行なう出力をHighとする(なお、LowとHighを逆転させてもよい)。
【0031】
例えば、図2の状態において、VC2b2は、自己の上流のVC2b1から上記使用権通知線3bを介して行なわれた出力がLowであるため、バス3aの使用が可能であると判断し、このバス3aを介してメッセージを受け渡す。そして、この受け渡しが終了することにより、バス3aの使用が終了した場合、VC2b2は、自己の出力をLowとする。
すると、このLow出力を使用終了通知線3cを介して受けたVC2b1は、自己の使用権通知線3bを介して行なう出力をHighとするので、これによってVC2b2のバス3aの使用権が失われる。また、同時に、VC2b2の出力がLowになることにより、その下流のVC2b3にバス3aの使用権が与えられ、バス3aの使用が可能となる。
以降、この制御を同様に繰り返すことにより、VC2b1〜VC2d4がバス3aを順次使用することができる。この制御では、使用権に関する情報が使用権通知線3bと使用終了通知線3cを用いて受け渡されており、バス3aを用いる必要がない。
【0032】
(概要−適用上の課題)
このようなオブジェクト指向技術を集積回路に具体的に適用するためには、新たな技術的課題が生ずる。すなわち、VC2内での処理に必要となる後述するユニット数やモジュール数(演算器やメモリ等の数)、演算精度、あるいは、クロック数を、このVC2自身で判断させる必要がある。
【0033】
(概要−課題解決のための手段)
このように任意精度に対応する必要があるという問題に対しては、VC2をチップスライス化することが有効である。このチップスライス化とは、乗算回路や除算回路等の演算部(モジュール)を1または複数単位でユニット化し、各ユニットを複数個設けて相互にカスケード接続することによって、各ユニットをチップ単位とする演算処理を行なうものである。この時、各ユニット内の制御回路により、演算精度に合わせて必要なモジュールおよびユニットが用いられて演算データが分散処理される。
【0034】
しかし、チップスライス化する場合においても、近年の高精度化傾向を考慮すると、必要なユニット数やモジュール数の選定等が問題となる。すなわち、予め必要と思われるチップ(ユニット)数をシステム内部に用意しておくが、それでも不足する場合はシステム外部に設置されたモジュールまでも制御する必要が生じる。このような場合、一つの制御部から全モジュールを制御する中央制御形では制御信号の追増加および信頼性に関して問題がある。
そこで、本願においては、各ユニット内に、演算に必要なモジュール数とクロック数の制御機能を持たせることによって、上記の問題を解決している。これにより、新たに回路を用意したり変更することなく、必要とされるユニット数、モジュール数、および、全クロック数を演算機構が判断し、結果を返すことが可能になる。
【0035】
(算術演算機構への適用例)
次に、上述のような課題解決手段の内容について一層具体的に説明する。ここでは、この課題解決手段を、各種の処理に不可欠な算術演算機構に適用した場合を例に挙げて説明する。チップスライス化された演算機構の概要を図3に示す。この図3において、システム内部4と、システム外部5には、それぞれ複数のユニットU1〜Unが設けられている。
【0036】
各ユニットU1〜Unは、オブジェクト指向技術を取り入れてチップスライス化したもので、その内部には、それぞれ1または複数のモジュールM1〜Mnがカスケード接続されている。
また、ユニットU1〜Unはカスケード接続されており、さらに、各々のユニットU1〜Unはバス3に接続された状態で演算機構を構成している。
ここで、各ユニットU1〜Unおよび各モジュールM1〜Mnは、そのカスケード接続の順序に対応して、最下位〜最上位まで処理順序が決定されている。図3においては、ユニットU1が最下位ユニット、ユニットUnが最上位ユニット、各ユニット内においてはモジュールM1が最下位モジュール、モジュールMnが最上位モジュールである。
【0037】
(算術演算機構への適用例−メッセージの判断)
このような演算機構に対して、使用者は、演算を指示するメッセージ(ここでは、加減乗除算のいずれかを指示する情報)と、パラメータ(演算精度および演算データ)とをバス3を介して順次送る。すると、各ユニットU1〜Unの各モジュールM1〜Mnは、まず、メッセージを自己宛てのメッセージか否か判断し、自己宛てのメッセージである場合には、パラメータを取り込んでその演算精度を記憶する。そして、最下位ユニットU1の最下位モジュールM1から、その場合に必要となる最も上位のユニットU2〜Unの最も上位のモジュールM1〜Mnに至るまで、順次、演算データを取り込む。
【0038】
(算術演算機構への適用例−モジュール数の判断)
このように演算データを取り込む際、各モジュールM1〜Mnは、演算に必要となるモジュール数を判断する。以下、このモジュール数の判断機構について説明する。
図4はモジュール数の判断と演算データのラッチ機構を示す図である。この図4において、ユニットUxと、このユニットに対する下位ユニットUx-1および上位ユニットUx+1とが示されており、各ユニットUx-1〜Ux+1には、それぞれ、演算データラッチ機構Rと、複数の演算モジュールM1〜Mnとが設けられている。そして、各ユニットUx-1〜Ux+1の演算データラッチ機構Rがカスケード接続され、各ユニットUx-1〜Ux+1の演算モジュールM1〜Mnがカスケード接続され、演算データラッチ機構Rと各演算モジュールM1〜Mnとが接続されている。
【0039】
このような構成において、まず最初に、ユニットUxは、下位のユニットUx-1の演算データラッチ機構Rからラッチ操作のメッセージを受けて、演算精度と比較しながら、自己のユニットUxの内部の演算モジュールM1〜Mnについてデータラッチ操作を繰り返す。そして、演算精度に対して演算モジュールM1〜Mnの数が不足する場合、演算データラッチ機構Rは、自己の直近上位のユニットUx+1の演算データラッチ機構Rにラッチ操作のメッセージを伝える。
【0040】
このようなラッチ操作を、図3の最下位ユニットU1から始めて、演算精度と演算モジュールの数とが対応する迄、順次、直近上位のユニットUにデータラッチ操作のメッセージを伝える。このようなラッチ操作を行なうことにより、任意の精度に対応した演算モジュール数を動的に決めることができる。
また、このラッチ操作と同時に、最下位モジュールから順に演算データを取り込む。そして、必要な演算データが全て取り込まれると、演算機構内では演算精度にあったクロックを用いて演算が実行され、演算結果がバスを介して返送される。
【0041】
(算術演算機構への適用例−モジュール数の判断−減算と除算機構の場合)
上記のように、演算モジュール数の判断は、各ユニットUに記憶された演算精度によって判断される。しかしながら、算術演算機構が減算機構である場合には、その演算結果である「差」の精度範囲が、「0」〜「減数データのビット数」と不定になる。あるいは、算術演算機構が除算機構である場合には、その演算結果である「商と剰余」の精度範囲が、やはり「0」〜「除数データのビット数」と不定になる。
この場合におけるモジュール数の判断は、上記判断とは逆に、最上位モジュールから下位モジュールに向かって、「0」がどのモジュールまで続いているかを知らせる同様な情報伝搬機構によって実現できる。
【0042】
(加算/減算機構への適用例)
次に、このようなオブジェクト技術指向について、さらに具体的に説明する。ここでは、算術演算機構のうち、加算/減算機構に適用した場合を例に挙げて説明する。
まず、ここで想定している加算/減算機構について説明する。この加算/減算機構は、ある演算精度の加算/減算器(モジュール)を複数備えて構成されている。そして、各モジュールはカスケード接続されており、使用するモジュール数を変更することで、1モジュールの演算精度の整数倍に演算精度を拡張することが可能である。また、各モジュールは、自己に送られた演算精度に基づいて、必要なモジュール数とクロック数およびクロック周波数等を判断し、演算結果を返す。この判断機構は中央制御形とならないよう、各モジュール間のメッセージ通信の伝搬により行なう自己判断機構とする。また、パラメータに演算精度を付加することにより、演算精度の制限を受けず、任意精度に対応可能となる。
【0043】
このような加算/減算機構におけるモジュールのブロック図を図5に示す。また、この際の各モジュールの処理のフローチャートを図6に示す。
この図5においてモジュールMは、nビット加/減算器10、分周器11、演算精度の記憶部12、および、演算の種類の記憶部13を備えて構成されており、これら各部は図示のようにバス14にて接続されている。
【0044】
(加算/減算機構への適用例−メッセージ判断の詳細)
このような構成においてモジュールMは、加減乗除演算を指示するメッセージをバス14を介して受け取る。このメッセージは、例えば、その上位2ビットが、加算であれば「00」、減算であれば「01」のように所定方法に従って構成されており、モジュールMは、このようなメッセージを記憶部13の記憶内容と比較することにより、メッセージが自己宛てか否かを判断する(ステップS−1)。
そして、モジュールMは、メッセージが自己宛てである場合には、その内容に応じて、nビット加/減算器10を加算器あるいは減算器に切り替える(ステップS−2)。
【0045】
その後、モジュールMは、メッセージに続けて送られてきたパラメータに含まれる演算精度を、記憶部12に記憶する(ステップS−3)。
そして、この記憶部12に記憶した演算精度を用いて、演算に最適なクロック周波数を分周器11を通して選定する(ステップS−4)。
次いで、モジュールMは、演算に必要な演算モジュール数の決定と、パラメータに含まれる演算データの取り込みとを、上述の図3と図4で示したように、記憶部12に記憶した演算精度と比較しながら行なう(ステップS−5)。また、このため、上位モジュールと下位モジュール伝搬用メッセージとして、図示のようにデータラッチ信号を設ける。また、nビット加/減算器10の接続は、図示のように桁上げ/桁借りデータを下位桁から入力して、上位桁へ出力することにより、容易に実現できる。
そして、全ての演算データを取り込んだ後で演算を実行し(ステップS−6)、この演算結果をバス14を介して返送して(ステップS−7)、演算処理を終了する。
【0046】
(加算/減算機構への適用例−クロック数の判断の詳細)
ここで、ステップS−4におけるクロック数の判断について、一層詳細に説明する。この判断は、記憶部12に記憶してある演算精度と比較しながら、分周器11の出力のクロック数をカウントし、必要なクロック数を制御する。例えば、演算精度がnビット×nビットである場合、分周器11の出力の必要なクロック数はnとなる。
【0047】
ここで、多精度演算時は、多くのモジュールのカスケード接続になる。従来の一系統クロックに同期した演算では多精度時のクロックスキューが問題になるが、本機構では各モジュールM分のクロック用として考えればよく、精度増に対するクロックスキューは問題とならない。一つ前の演算結果を半クロック間ラッチしておくことにより、各モジュールM間のクロックの位相差は半クロック以内であればよく、演算結果の更新(ラッチ)はその半クロック後であることによる。
【0048】
(加算/減算機構への適用例−減算時の演算結果の精度の判断の詳細)
次に、メッセージの内容が減算である場合の演算結果の精度判断について詳細に説明する。なお、除算の場合も同様である。
減算結果(あるいは除算結果)のビット数は最大、「減数(あるいは除数)のビット数」〜「0」と不定になる。そこで演算結果が上位モジュールからどのモジュールまで「0」が続いているかを伝えるデージーチェーンを構成することにより、演算結果の精度を判断することができる。そのための信号が、図5に示す、演算結果の精度判断信号(ARIとARO)である。
【0049】
図7に演算結果の精度判断機構を示す。この図7においては、複数のモジュール間の精度判断信号の接続関係と出力状態とを示す。この図7において、デージーチェーン用の精度判断信号ARIとAROの関係は、ARIがLowでかつ自モジュールの演算結果が「0」のときAROをLow出力する。
すなわち、
【数1】
Figure 0004328905
である。
したがって、図7のように、最上位モジュールMnのARIはプルダウンし、ARIがLowでAROをHigh出力しているモジュールMn-2以降の結果を有効桁数と判断することができる。
【0050】
(実施の形態2)
次に、実施の形態2について説明する。この実施の形態2は、概略的に、オブジェクト指向技術を除算器に適用した例を示すものである。
実施の形態1で示した内容は、チップスライス化が実現できることを前提にしている。したがって、除算器のように、チップスライス化が最も困難とされてきたものについても、このチップスライス化を行なった上で、オブジェクト指向技術を適用することが必要となる。
以下、除算器のチップスライス化について説明した後、オブジェクト指向技術を適用した除算器について説明する。
【0051】
本願出願人は、これまでに、特に演算に多くの時間を要する乗除算に関し、演算精度に応じて演算機構を構成することによって効率的な演算を実行する分散処理アーキテクチャの開発を行ってきた(1−中村次男、笠原宏:「任意精度の演算が可能な並列除算器のアーキテクチャ」、信学論(C-II)、Vol.J75-C-II、No.5、pp.185-192(1992-5)、2−中村次男、笠原宏:「任意の精度に被除数を拡張できる並列除算器の提案」、電学論(C)、Vol.111-C、No.7、pp.273-278(1991-7)、3−中村次男、笠原宏:「任意の精度に拡張容易な除算器の提案」、電学論(C)、Vol.111-C、No.3、pp.123-128(1991-3)、4−中村次男、笠原宏:「拡張容易な乗算器モジュールとそのワンチップ化の提案」、電学論(C)、Vol.110-C、No.2、pp.95−100(1990-2))。
【0052】
特に、除算器はこれまで演算桁数を越えた使用が不可能であったが、本願出願人は、数モジュールの除算器に除算データを振り分けて除算を分散処理するチップスライス化の実現に成功した。その結果、演算精度に対し、ダイナミックに除算モジュールの結合が行われ、要求された任意の精度で除算実行を容易に行なうことが可能となった。本方式は完全なハードウェア化で実現でき、ソフトウェアのような柔軟性と開発効率の問題が解決され、しかもチップスライス化により低コストでの実現が期待できる。
【0053】
ここで、並列形はクロックや制御回路を必要とせず高速演算向きであるが、多精度演算においては集積度とファンイン/ファンアウト増の問題が伴う。一方、順序回路形はクロックを用いる分、並列形よりは演算速度が低下するが構成ゲート数が少なく、多精度演算向きであるといえる。
【0054】
次に、本願出願人が開発した順序回路形チップスライス機構について述べる。
本除算器のアルゴリズムは減算シフト方式に基づいたものである。本除算モジュ−ルを図8に示す。自モジュール内nビットの除数Yn-1〜Y0と被除数との減算は、被除数が1ビットシフトされるごとに行われ、n回(ステップ)繰り返されて1除算モジュ−ル分の除算が終了する。このシフトされる被除数、減算結果および部分剰余の伝搬入出力をそれぞれ以下のような各記号で定義する。
データ伝搬の入出力
QI:被除数のシフト入力
QO:被除数のシフト出力
BI:減算結果の桁借り入力
BO:減算結果の桁借り出力
RI:部分剰余のシフト入力
RO:部分剰余のシフト出力
【0055】
ここで、あるステップ時の被除数をXn-1〜X0、その1ステップ前の部分剰余をDkn-1〜Dk0および減算抑止信号をPとしたとき、減算結果の差Dn-1〜D0は各減算時の桁借り出力をBn-1〜B0とすると、以下の論理式で示される。
【0056】
【数2】
Figure 0004328905
【数3】
Figure 0004328905
【0057】
以下、同様に、
【数4】
Figure 0004328905
【0058】
【数5】
Figure 0004328905
以上のDn-1〜D0が新部分剰余Dkn-1〜Dk0になる。また、各減算結果の桁借り出力は以下の論理式で示される。
【0059】
【数6】
Figure 0004328905
【0060】
【数7】
Figure 0004328905
【0061】
以下、同様に、
【数8】
Figure 0004328905
【0062】
【数9】
Figure 0004328905
【0063】
上式は、初段の入力RIには被除数のMSBが1ビットシフトした状態での演算操作開始を意味している。つまり、最上位モジュールの被除数はMSBから最下位モジュールのRIに伝搬し、1除算操作終了時にはRIにX0が与えられる。Dkn-1と最終段の減算結果のDn-1は減算抑止信号Pによって選択され、出力ROから上位モジュールの入力RIに自モジュールの部分剰余として伝搬する。
【0064】
【数10】
Figure 0004328905
また、モジュール内最上位桁借りBn-1は、出力BOから上位モジュールの入力BIに桁借り出力として伝搬する。
【0065】
最上位モジュールのBn-1が減算抑止信号Pとして、全モジュールにフィードバックされる(全モジュールを連結して減算した結果、負のときPは「1」)と同時に商としてQIに伝搬する。
例えば、4ビット除算器の場合、除算データの被除数と除数および除算結果の商と剰余はそれぞれ4ビットで、以下のように各記号を定義する。
被除数 X3、X2、X1、X0
除数 Y3、Y2、Y1、Y0
商 Q3、Q2、Q1、Q0
剰余 R3、R2、R1、R0
【0066】
1モジュールの各ステップを図9に示す。図9において、各ステップではBIも含めて除数Y3〜Y0との減算を行い、その結果の桁借り出力がBOになる。除算のオーバーフローを避け、すべての演算を可能とするため、被除数の上位4ビットX7〜X4は初期設定ですべて「0」にイニシャライズされる。従って、1モジュールの被除数は8ビットであるが、実際の演算は4ビット÷4ビットである。
【0067】
図9から、kステップにおけるi桁目の部分剰余Riは次式で示される。
【数11】
Figure 0004328905
各ステップにおいて最終桁借り出力が正(「0」も含む)で商は「1」(負で「0」)になり、Q3から順にQ0へと商が求まる。
【0068】
上述のチップスライス化理論によって、今まで不可能視されていた除算の分散処理が可能になり、nビット除算にはnクロックで効率的に除算を実行する分散処理アーキテクチャが実現できる。
図10は、8ビットの精度のm個の除算器(モジュール)M1〜Mmを設け、8〜8mビット精度の除算機構を示したものである。これらM1〜Mmは、その間に設けたSW1、SW2、SW3……によって、必要に応じて接続される。例えば、8ビット精度ではすべてのスイッチはオフ、16ビット精度ではSW1だけがオン、そして8mビット精度ではすべてのスイッチがオン状態になる。当然、被除数と除数は図10の下位8ビットから8ビット単位に、左側の除算器M1から順次それぞれの除算器M2〜Mmに与えられる。実際に8ビット除算器Mをワンチップ化し、ボード上に4チップ実装し、8〜32ビット除算の実験を行った。
【0069】
次に、図10の除算機構を内蔵した任意精度除算ユニットの試作について報告する。先に開発した除算器Mのチップスライス化とボード上での試作は、予め用意しておいたシステム内部で処理できる程度の演算精度を想定し、従来のような中央制御形によるものであった。しかし、前述したような超高精度化対応やVSIのVCを考慮し、これまでの中央制御形ではなく、各演算チップがオブジェクト指向手法を取り入れ、演算精度に合わせて複数の同一演算チップだけの動的な接続で任意の精度に対応可能な機構を本願出願人は新たに開発し、試作実験を行った。
【0070】
基本的には、上述のように、カスケード接続した数モジュールをメッセージとパラメータに応じて制御する処理機構組込形のユニット構成になる(図11)。1ユニットの処理能力を超えたパラメータに対しては、更にカスケード接続したユニット間のメッセージ通信により必要なユニット数が用いられて、処理結果を返す。
【0071】
(除算オブジェクトへの適用)
次に、本願出願人が提案するオブジェクト指向ハードウェア設計法について、試作を通してその動作確認を行ったので、この内容について以下説明する。
本除算オブジェクトは計算機(ホスト)の高速で任意精度対応補助除算機構としてのものである。ただ大きな障害としてはシステムへの実装の問題が挙げられる。優れた機能をPLDやFPGAなどでチップ化しても、例えば、計算機内に組み込んだり、システムバスに接続するにはハードウェアの知識は不可欠であり、だれにでも容易に行えるものではない。
【0072】
そのため、PCIバス接続用のインタフェース基板などが市販されているが、どの機種の計算機にも簡単に接続できる実装の容易性を考慮し、先ず演算速度よりもシステムの動作確認を目的に、RS−232C端子に直接接続するタイプの除算ユニットを試作した。1ユニットは順序回路形8ビット除算器4個構成とした。従って、本除算ユニットはひとつで8から32ビットの可変精度除算を効率よく行い、更に同除算ユニットをカスケード接続することにより、任意の精度に対応可能である。
【0073】
必要な可変長除算データをホスト側から入力し、精度に比例したクロック数で除算を実行後、結果をホスト側に返送する。本除算ユニットの構成図を図12に示す(遊佐敦史、笠原宏、中村次男:「RS−232Cで接続可能な任意精度補助除算ユニットの試作」、信学総全大、A-51(1995-3))。
【0074】
ここでは、RS−232C機能も含めた本除算ユ二ニットのワンチップ化を想定し、RS−232Cインタフェースは必要最小限の機能に限定した。図12に示すように、本除算ユニット20のRS−232Cコネクタ21を、ホストコンピュータ30のRS−232Cコネクタ31に直接差し込むことで、両者を接続する。なお、試作では動作確認を目的にRS−232Cインタフェースとしたが、SOCやシステム内部に実装する場合はバスインタフェースが適している。
【0075】
図12の可変精度除算機構22は、8〜32ビットの除算を、演算精度に比例したクロック数を用いて実行する。また、バッファ機構23には、ホストコンピュータ30からの演算精度を付加した、8〜32ビットの除算データを格納する。このバッファ機構23は、8除算データまで格納できるバッファとして試作したが、ホストコンピュータ30からの送信要求がなくなった場合か、バッファが満杯になった場合には、可変精度除算機構22で演算精度に合わせて順次除算を実行し、この除算結果をバッファに蓄えた後、演算精度を付加して全除算結果をホストコンピュータ30に返送する。
【0076】
ここで、可変精度除算機構22は任意精度対応可能であるため、この除算ユニット20を更にカスケード接続することによって、1ユニットの整数倍に精度を拡張することが可能である。このため、本願出願人は、1ユニットをFPGA(Xilinx社製、XC5210、84ピンPLCC)にワンチップ化し、それを4チップカスケード接続して、8から128ビットの可変精度除算を実験により検証した(大石博朗、杉山寿男、鈴木領、笠原宏、中村次男:「精度にあわせて効率的な除算を行なう補助ユニットの開発」、信学総全大、C-12-42(1997))。
【0077】
(実施の形態3)
最後に、本発明を、情報セキュリティ技術として公開鍵暗号システムの標準となっているRSA暗号に組み込む乗除算機構に適用した例を示す。
本願出願人は、オブジェクト指向手法を取り入れた乗除算機構組み込んでワンチップ化し、試作実験を行った。
ここで、RSA暗号では、暗号化と復号において
Am ≡ R mod n
の剰余演算を行なう。この鍵のnの精度は、容易に解読できないよう、現在では1、024ビットが必要とされ、コンピュータの性能向上により更なる高精度化が進むと考えられている。
【0078】
このような超高精度演算においては多くの演算時間を要するため、RSA暗号は主に秘密鍵の配送やディジタル署名といった短いデータ用に使われている。そこで、効率的なアルゴリズムあるいは専用ハードウェアでの高速化が重要課題となっており、実際にワンチップ化した例も報告されている(1−森田光:「暗号技術と高速算法」、情報処理、Vol.34、No.3、pp.336-342(1993-3) 、2−Brickel、E.F.:“A Survey of Hardware Implementations of RSA”、 Advances in Cryptology-CRYPTO'89、 Lecture Notes in Computer Science 435、 pp.368-370、 Springer-Verlag(1990)、3−石井晋司、大山勝一、山中喜義:「高速公開鍵暗号プロセッサ」、信学論、D-I、Vol.J80-D-I、No.8、pp.725- 735 (1997-8)、4−日本IBM(株)「1024ビットRSA暗号アクセラレータ」、NIKKEI BYTE (1999-2))。
【0079】
しかし、複雑な演算機構の分散処理化を実現するのは容易ではないため、チップスライス化を考慮したものはなく、更なる精度増には再開発が必要となり、またワンチップに実装するには極めて高集積なものとなる。
本願出願人が試作したRSA公開鍵暗号システム(中村次男、大石博朗、笠原宏:「RSA公開鍵暗号システム実装におけるビットスライス化の一方式」、電学論(C)、Vol.118-C、No.7/8、pp.1073−1081(1998-7/8))の1チップは16ビットと32ビット乗除算器をそれぞれ4モジュール内蔵(乗算16〜64ビット、除算32〜128ビットの可変精度)で、制御回路も含めてゲート規模は約1万6千ゲート(CMOSゲートアレイ、100ピンQFP)である。このRSA公開鍵暗号システムを適用したチップの概要を図13に示す。
【0080】
試作したチップをボード上に4個実装し、16〜256ビット長の鍵に対する暗号化/復号の実験を行いチップスライス化が正常に動作することを確認した。図14に示すように、実験用ボードはPCIバスインタフェースボード(GPIO-100MN)を介してホストコンピュータ(MMX Pentium、 233MHz)に接続される。例えば、暗号化ではホストコンピュータから、平文Aそして公開鍵n、mのデータが順に実験用ボードに送られる。実験用ボードでは精度に合わせたべき乗剰余演算が実行され、結果の暗号文Rがホストコンピュータに返送される。
1、024ビットのべき乗剰余演算時は16チップのカスケード接続になるが、これらの制御は完全ハードウェア化によって実行される。電子機器の性能向上により、要求される演算精度数も更に高くなるといわれているが、オブジェクト指向手法を取り入れることによりカスケード数の追加だけで容易に対応可能である。
【0081】
さて、これまで本発明の実施の形態について説明したが、本発明は、上述した実施の形態以外にも、上記特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施の形態にて実施されてよいものである。
例えば、上記実施の形態においては、本発明を主として加減乗除機構に適用した例を示したが、任意の演算を行なうための集積回路において同様に適用することができる。
【0082】
【発明の効果】
以上に説明したように、請求項1または5に記載の本発明によれば、送られたメッセージが自己宛てのメッセージであるか否かを判断し、自己宛てのメッセージである場合には、機能に必要となるモジュールの数が自動的に決定される。このことにより、コアでは演算に必要となる制御を自律的に行なうことができる。したがって、コア(VC)の使用者は抽象的に部品化されたVCの内部を知る必要がなく、またVCが他のVCの動作によって破壊(変更)される危険性がない。したがって、コアの再利用や拡張を容易に行なうことができる。
【0083】
また、請求項2または6に記載の本発明によれば、演算データを取り込んだモジュールの数が演算精度に対応する迄、データラッチ操作が行なわれ、モジュールの数が不足する場合には、他のユニットにおいて、同様にデータラッチ操作が行なわれる。このようにデータラッチを動的に順次行なうことにより、演算精度に応じたモジュール数を決定することができる。
【0084】
また、請求項3または7に記載の本発明によれば、演算結果0を出力するモジュールの数を計数することにより、演算結果の精度範囲が算定される。このように特定の演算結果を出力するモジュールの数を計数することにより、演算結果の精度範囲を算定することができる。
【0085】
また、請求項4または8に記載の本発明によれば、バスの使用権は使用権通知線を介して受け渡され、また、バスの使用終了通知は終了通知線を介して受け渡される。したがって、トークンリング方式のように使用権情報をバス自体を用いて受け渡す方式とは異なり、バスを用いることなく使用権情報を受け渡すことができるので、バスの使用効率を高めることができる。すなわち、複数コア間のバス調停機構をバスの使用権通知線とバスの使用終了通知線で構成することにより、トークンリング方式のようなバスの使用権情報をバスを介さずに行えるので、バスの使用効率を高めることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態における、オブジェクト指向技術を適用した複数のVCから構成されるSOCを示すブロック図である。
【図2】オブジェクト指向技術を適用した複数のVCから構成されるSOCを示すブロック図である。
【図3】チップスライス化された演算機構の概要を示す図である。
【図4】モジュール数の判断と演算データのラッチ機構を示す図である。
【図5】加算/減算機構におけるモジュールのブロック図である。
【図6】各モジュールの処理のフローチャートである。
【図7】演算結果の精度判断機構を示す図である。
【図8】本除算モジュ−ルを示す図である。
【図9】1モジュールの各ステップを示す図である。
【図10】除算機構を示す図である。
【図11】処理機構組込形のユニット構成を示す図である。
【図12】除算ユニットの構成図である。
【図13】 RSA公開鍵暗号システムを適用したチップの概要を示す図である。
【図14】実験用ボードの構成を示す図である。
【符号の説明】
1 SOC
2 VC(コア)
3、14 バス
10 nビット加/減算器
11 分周器
12 演算精度の記憶部
13 演算の種類の記憶部
U1〜Un、Ux-1〜Ux+1 ユニット
M1〜Mn、M1〜Mm モジュール
R 演算データラッチ機構

Claims (6)

  1. 1以上のコアを1チップ上に備え、所定機能を起動するメッセージと、この機能に必要となる演算データと演算精度とを含むパラメータとを受けて上記機能を行なう集積回路であって、
    上記コアは複数のユニットを備えると共に、各ユニットは上記機能を実行する複数のモジュールを備え、
    上記複数のユニットおよび上記複数のモジュールは、それぞれカスケード接続され、
    上記各ユニットは、
    上記メッセージが自己宛てのメッセージであるか否かを判断し、
    上記メッセージが自己宛てであると判断した際、上記演算データを取り込んだ上記モジュールの数が上記演算精度に対応する迄、上記複数のモジュールにて所定順序で上記演算データを取り込むことにより、上記機能に必要となるモジュールの数を決定すること、
    を特徴とする集積回路。
  2. 上記各ユニットは、演算データラッチ機構を備え、
    上記演算データラッチ機構は、
    上記演算データを取り込んだ上記モジュールの数が上記演算精度に対応する迄、上記複数のモジュールに対して所定順序でデータラッチ操作を行ない、
    上記モジュールの数が不足する場合には、他のユニットの演算データラッチ機構に対して、ラッチ操作のメッセージを伝送すること、
    を特徴とする請求項1に記載の集積回路。
  3. 上記各ユニットは、上記機能が減算または除算である場合、演算結果0を出力する上記モジュールの数を上位のモジュールから下位のモジュールに至り計数することにより、演算結果の精度範囲を算定すること、
    を特徴とする請求項1または2に記載の集積回路。
  4. 1以上のコアを1チップ上に備え、上記コアは複数のユニットを備えると共に、各ユニットは上記機能を実行する複数のモジュールを備え、上記複数のユニットおよび上記複数のモジュールは、それぞれカスケード接続されて構成され、所定機能を起動するメッセージと、この機能に必要となる演算データと演算精度とを含むパラメータとを受けて上記機能を行なう集積回路、に対する制御方法であって、
    上記各ユニットにおいて、上記送られたメッセージが自己宛てのメッセージであるか否かを判断するメッセージ判断工程と、
    上記メッセージ判断工程において自己宛てであると判断した際、上記演算データを取り込んだ上記モジュールの数が上記演算精度に対応する迄、上記複数のモジュールにて所定順序で上記演算データを取り込むことにより、上記機能に必要となるモジュールの数を決定するモジュール数決定工程と、
    を備えることを特徴とする集積回路の制御方法。
  5. 上記モジュール数決定工程において、
    上記演算データを取り込んだ上記モジュールの数が上記演算精度に対応する迄、上記複数のモジュールに対して所定順序でデータラッチ操作を行なうデータラッチ操作工程と、
    上記モジュールの数が不足する場合には、他のユニットの演算データラッチ機構に対して、ラッチ操作のメッセージを伝送するラッチメッセージ伝送工程と、
    を備えることを特徴とする請求項4に記載の集積回路の制御方法。
  6. 上記モジュール数決定工程において、上記機能が減算または除算である場合、演算結果0を出力する上記モジュールの数を上位のモジュールから下位のモジュールに至り計数することにより、演算結果の精度範囲を決定する精度範囲決定工程、
    を備えることを特徴とする請求項4または5に記載の集積回路の制御方法。
JP2000308512A 2000-10-06 2000-10-06 集積回路およびその制御方法 Expired - Fee Related JP4328905B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000308512A JP4328905B2 (ja) 2000-10-06 2000-10-06 集積回路およびその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000308512A JP4328905B2 (ja) 2000-10-06 2000-10-06 集積回路およびその制御方法

Publications (2)

Publication Number Publication Date
JP2002117011A JP2002117011A (ja) 2002-04-19
JP4328905B2 true JP4328905B2 (ja) 2009-09-09

Family

ID=18788807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000308512A Expired - Fee Related JP4328905B2 (ja) 2000-10-06 2000-10-06 集積回路およびその制御方法

Country Status (1)

Country Link
JP (1) JP4328905B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007037006A1 (ja) 2005-09-29 2007-04-05 Fujitsu Limited マルチコアプロセッサ
JP2007233976A (ja) * 2006-03-03 2007-09-13 Tokyo Denki Univ Ipコア間の通信方法及びそれを使用する集積回路
JP2008102681A (ja) * 2006-10-18 2008-05-01 Tokyo Denki Univ Ipコア及び複合ipコア
US7786996B2 (en) * 2006-10-24 2010-08-31 Sony Corporation System and method for object oriented hardware including cross-point switch interconnecting modules with I/O
JP5626724B2 (ja) * 2010-08-31 2014-11-19 国立大学法人 東京大学 アクセラレータ及びデータ処理方法

Also Published As

Publication number Publication date
JP2002117011A (ja) 2002-04-19

Similar Documents

Publication Publication Date Title
Blum et al. High-radix Montgomery modular exponentiation on reconfigurable hardware
US5742530A (en) Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
EP0801345B1 (en) Circuit for modulo multiplication and exponentiation arithmetic
US7895460B2 (en) Serially connected processing elements having forward and reverse processing time intervals
JP2002521720A (ja) モジューロ乗算のための回路および方法
US20020194237A1 (en) Circuit and method for performing multiple modulo mathematic operations
US8386802B2 (en) Method and apparatus for processing arbitrary key bit length encryption operations with similar efficiencies
US7024560B2 (en) Power-residue calculating unit using Montgomery algorithm
JP4328905B2 (ja) 集積回路およびその制御方法
JP2010134465A (ja) ハッシュ暗号装置及び方法
US5751620A (en) Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method
Orup et al. A high-radix hardware algorithm for calculating the exponential ME modulo N.
JP3302043B2 (ja) 暗号通信方法及びそのシステム
US7552163B2 (en) Montgomery modular multiplier and method thereof
US20040091105A1 (en) Apparatus for hyperelliptic-curve cryptography processing
JP2001034167A (ja) 演算装置及び暗号処理装置
JP2002358010A (ja) べき乗剰余演算器
CN115270155A (zh) 一种获取大数拓展最大公约数的方法及硬件架构
CN114594925A (zh) 适用于sm2加密运算的高效模乘电路及其运算方法
JP2000207387A (ja) 演算装置及び暗号処理装置
Lu et al. A programmable VLSI architecture for computing multiplication and polynomial evaluation modulo a positive integer
Wang et al. FPGA based unified architecture for public key and private key cryptosystems
EP1504338A1 (en) "emod" a fast modulus calculation for computer systems
US7403965B2 (en) Encryption/decryption system for calculating effective lower bits of a parameter for Montgomery modular multiplication
JP2008102681A (ja) Ipコア及び複合ipコア

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050511

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080819

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081006

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: 20090526

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090601

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120626

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120626

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees