JP2948921B2 - マイクロプロセッサ中央処理ユニットに結合される算術計算演算モジュール - Google Patents

マイクロプロセッサ中央処理ユニットに結合される算術計算演算モジュール

Info

Publication number
JP2948921B2
JP2948921B2 JP2414110A JP41411090A JP2948921B2 JP 2948921 B2 JP2948921 B2 JP 2948921B2 JP 2414110 A JP2414110 A JP 2414110A JP 41411090 A JP41411090 A JP 41411090A JP 2948921 B2 JP2948921 B2 JP 2948921B2
Authority
JP
Japan
Prior art keywords
input
output
bit
operand
multiplexer
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
JP2414110A
Other languages
English (en)
Other versions
JPH04133170A (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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JPH04133170A publication Critical patent/JPH04133170A/ja
Application granted granted Critical
Publication of JP2948921B2 publication Critical patent/JP2948921B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマイクロプロセッサ
中央処理装置と結合される算術計算演算モジュールに関
連する。この演算モジュールは1個のシーケンサーと1
個の読み書き可能な型のワーク・メモリーとを有し、下
記の一般式に対応する動作を行なう: B=a・X+T ただしここで、B,X及びTは多桁の整数で、aはmビ
ットの限定フォーマットをもつオペランドである。この
演算は、下記のような連続する計算ステップのシーケン
スの間に行なわれる、すなわち: i) 前記オペランドaと、オペランドxi 及びti とを
結合する演算を行う。ただしここで、オペランドxi
びti はそれぞれ、整数X及びTのi番目の有意ランク
(rank of significance,すなわち2進数字を構成する一
連のビットのうちでその一部の連続する複数ビット、例
えば8ビットの集まりを意味する。10進数字の桁に相
当)に属するビット群を取り出したもので、最大nビッ
トの限定フォーマットをもつ; ii) 同一ランクに関する部分結果bi を記憶する。この
部分結果は、最終演算結果Bに関する、nビット単位ご
との抜枠(extract) にも相当する; という連続する計算ステップのシーケンスの間に行なわ
れる。前記処理モジュールは以下の諸要素、すなわち: - オペランドa,xi 及びti に対する入力回路; - 結果bi の出力回路; - a・xi を求める乗算器(multiplier); - これに続く第1加算器と第2加算器; を含む。ここで、第2加算器の与える部分演算結果は、
最上位の有意ランク部分(most significant portino,す
なわち演算結果 2nビットの集まりのうち上位のnビッ
ト)と、最下位の有意ランク部分(least significant p
ortion,すなわち同じく下位のnビット)とに分けるこ
とができる(以下、これらを最上位部分、最下位部分と
略記する)。最下位部分は、結果bi として出力でき
る。また、オペランドti は1つの加算器の1つの入力
に加えられ、先行した計算ステップの最上位部分は、リ
サイクル記憶手段(recycling storage means) によって
他の加算器の入力の1つに加えられる。
【0002】本発明は、特にマイクロ・コントローラ型
の単一集積回路によってデジタル情報処理を行なう小型
システムの実現を目的とするが、目的はそれに限定され
るわけではない。この種の回路においては、製造コスト
の節約と処理時間の短縮という双方の要求を満足するた
め、処理実行速度と要素数の最小化の間で極めて厳しい
妥協を見出だす必要がある。この点に関し特に重要な代
表例は、例えば銀行データの交換、アクセス制御、署名
の認証など多種類の応用の可能な「スマート・カード」
(又は「チップ・カード」)型の小型装置などである。
【0003】データ処理が多数の類似した算術演算を含
む場合には、特別の演算モジュールを準備してこれを中
央処理ユニット(CPU) に結合し、一般的な管理機能は後
者に任せ、演算モジュール自体は、ある種の算術演算や
論理演算を高速で実行し、かつ、少なくとも一連の関連
演算の続く間は、それら演算を中央処理ユニットとは比
較的に独立して実行できるようにすると有利である。
【0004】
【従来の技術】この型の演算モジュールで、本明細書の
導入パラグラフで示した定義に合致するモジュールは、
フランス国特許第FR-A-2 613 861号に開示されている。
【0005】この装置は、主としてスマート・カード用
マイクロ・コントローラへの組込みを目的としているの
で、マイクロ・コントローラ・チップ上に集積化すべき
メモリーの容量を極力最小化し、かつ現行技術ではかな
り限界のあるクロック速度を最も有効に利用する必要が
ある。そのほか追求すべき目標として、処理時間はユー
ザの許容できる範囲であること、例えば演算結果を得る
ための待時間はできるだけ1秒以内かその近辺であるこ
とが要求される。
【0006】既知の演算モジュールを分析してみると、
モジュールの動作は、特に処理すべき新データを中央処
理ユニットの制御の下でロードしていることに起因し
て、頻繁に中断されることが判った。こうした中断は必
然的に全体の処理動作を著しく遅延させる原因となる。
【0007】
【発明が解決しようとする課題】本発明の目的は、マイ
クロ・コントローラ内に容易に集積化できる算術計算演
算モジュールを提供することであり、更に、前記演算モ
ジュールは最小の中断時間で動作し、かつこれに組み合
わせて用いるメモリーの容積も減少できることにある。
【0008】
【課題を解決するための手段】実際には、本発明によれ
ば、冒頭のパラグラフに記載の算術計算演算モジュール
は特に: - オペランドaの、連続するk込の有意ランク
〔1....k〕に対応するk個の入力を含み; - kステップから成る各(演算)サイクルにおいて、
前記オペランドa〔 〕のそれぞれを乗算器の1つの入
力に順次加えるための入力選択手段を含み; - 更に、リサイクル記憶手段とこれに附属する切替え
手段(switching means) とを含み;その働きによって1
個のサイクルのうち第1ステップ以外の計算ステップの
結果の最下位部分を(k−1)計算ステップだけ遅延させ、
1個のサイクルの第1計算ステップの結果の最上位部分
をk計算ステップだけ遅延させる; ことを特徴とする。
【0009】本発明の実施例のうちで特に有利な一変形
による処理モジュールは: - オペランドa〔 〕に対応するk個の入力回路を含
み; - これらの入力a〔 〕の選択手段であって、該選択
手段の目的は、オペランドa〔1....p〕のそれぞれの乗
算器の入力回路の1つへ、順次にかつpステップ・サイ
クルの間に加えることであり、この場合更に、オペラン
ドa〔1....p〕の個数pは、中央処理装置の制御の下
に、1つの演算シーケンスの継続期間として(p=k)と(p
<k)との間から選択することができる (ただし p>2)と
ころの選択手段を含み: - 追加のリサイクル記憶手段及びこれに附属する切替
え(switching) 手段であって、それらの手段の目的は、
1サイクルのうち、第1ステップ以外のすべての計算ス
テップの結果の最下位部分を(p−1)計算ステップだけ遅
延させ、1サイクルの第1ステップの結果の上位有意ラ
ンク(high significant)部分はpステップだけ遅延させ
ることであるところの追加のリサイクル記憶手段及びこ
れに付属する切替え(switching) 手段を含み;及び - リサイクル記憶手段の中の遅延ステップ数を、使用
したpの値の関数として(k−p)だけ減らす機能をもつ遅
延選択手段を含む; ことを特徴とする。
【0010】本発明に基づく算術計算演算モジュールは
既知の演算モジュールに比べて効率がよいが、これは、
1つの連続する演算シーケンスの中で、k(又はp)個のa
・Xの乗算を行なうための当然の結果である。
【0011】本発明の算術計算演算モジュールでは、x
の乗算を行なって同一の最終結果を得るための総計算ス
テップ数は変わらないが、各演算シーケンスを開始する
ために中央処理ユニットの行なう、演算モジュール呼び
出し回数はk(又はp)分の1となる。
【0012】詳細は後述するが、本発明によれば、1個
の基本乗算及び2個の関連加算を各クロック・サイクル
ごとに実行できるので、1つの演算シーケンスの全過程
にわたり無駄な時間が全くない。これと同時に、その次
のシーケンスの間に処理すべきデータに対応するアドレ
ス・ポインタは、中央処理ユニットによって独立にロー
ドできるので、1つのシーケンスとその次のシーケンス
との間における演算モジュールの動作の中断時間は最小
限ですむ。
【0013】このような結果が得られるようにし、かつ
演算モジュールと中央処理ユニットの間のインタフェイ
スに関連した特別の手段があり、この手段は、本出願人
の同時出願に係る「同種の演算シーケンスに分割し得る
多数の演算を迅速に実行するためのマイクロコントロー
ラ(Microcontroleur pour l'execution rapide d'ungra
nd nombre d'operations decomposable en sequences
d'operations de meme nature)」と題する、フランス国
特許出願の主題をなすものである。
【0014】本発明の別の実施例は、オペランドa
〔 〕に対する入力の数kとして3又は4の何れをも選
択できるという特徴をもつ。この場合、 k=3 とすれ
ば、演算モジュールをワーキング・メモリーに接続する
バスは、1個の3ステップ・サイクルの各ステップで使
われるという形で最適使用される。 k=4 とすれば、4
ステップ・サイクルのうち1サイクルの間は前記バスは
使用されない。
【0015】特にある種の用途に適した構成として、オ
ペランドa〔 〕に対する入力の数kを4に等しくし、
同時に、中央処理ユニットの制御の下でa〔 〕の入力
選択手段の働きによって、1つのシーケンスの間、4個
のオペランドへの演算を行なうか、3個の演算のみ行い
入力の1つ例えば入力a〔4〕を使わないか、の何れか
を選べるようにすることができる。こうすれば、所定の
演算時点で行なうべき特定の演算に応じて、演算モジュ
ールが極めて柔軟に使用できる。例えば、B=a・X+
T型の乗算をオペランドa〔1,2,3 〕に対しては3ステ
ップ・サイクルで行い、それに続くR=−q・N+T型
のモジュロNの減算は4ステップ・サイクルで行なう
(qは減算B/Nの整数の商、Tは以前の演算の累積剰
余)などである。
【0016】本発明の有利な1実施例によれば、演算モ
ジュールの中の前記リサイクル記憶手段が、入力に第2
加算器の出力の結果の最上位部分を受取る第1バッファ
・レジスタで構成される。その特徴として、前記の追加
(第2)リサイクル記憶手段は(k−1)のバッファ・レジ
スタで構成される1個のスタックを有し、記憶データは
それらレジスタの中で演算ステップごとに順次転送され
る。また、前記第2リサイクル記憶手段に付随する前記
切替え手段は、第1マルチプレクサと第2マルチプレク
サを含む。今一つの特徴として、第1バッファ・レジス
タの出力は、一方で第2出力がオペランド入力ti に接
続されている第1マルチプレクサの第1入力に接続し、
この第1マルチプレクサの出力は加算器の1つの入力に
接続し、更に第1バッファ・レジスタの出力は他方にお
いて、第2出力が第2加算器の最下位出力に接続され出
力が前記(k−1)個のバッファ・レジスタのスタックを経
由して他の加算器の入力に接続されている第2マルチプ
レクサの第1入力に接続される。
【0017】演算モジュールにk個の入力があり、1サ
イクルのステップ数をp個p<k)に減少して動作させた
い場合、前記遅延選択手段に「短絡(shortcircuit)マル
チプレクサ」と呼ばれ、バッファ・レジスタのスタック
内でのデータ転送中に(k−p)個のレジスタを回避する機
能をもつマルチプレクサを含ませると有利である。
【0018】本発明の1つの実施例では、シーケンサの
制御によって、第1マルチプレクサは、各演算サイクル
の第1ステップにおいてその出力としてオペランド入力
i を伝送し、また第2マルチプレクサは、その出力と
して第1バッファ・レジスタの出力におけるデータを伝
送するようそれぞれ設定する。更に、各演算サイクルの
第1以外のすべてのステップにおいては、前記のマルチ
プレクサ設定を反転せしめる構成とする。このような構
成により特に簡単で小型な機器が得られる。
【0019】本発明に基づく演算モジュールを一層広範
に使用するには、下記の特徴をもつ実施例による。すな
わち前記モジュールの中で、更に結果bi の出力の途中
に「排他的OR」回路を介在させることによって、結果
i をbi とxの排他的論理和に変換する。ここで、x
は前記排他的OR回路に附属するレジスタ内にロードさ
れるnビットの定数か、又はオペランドxi の何れかで
あり、その何れがロードされるは、xの前記値を入力と
して受信しその出力が結果bi のデータと共に前記排他
的OR回路の入力に加わるようにした1個の附加的マル
チプレクサの設定に支配されるようにする。
【0020】このようにすれば、乗算や加算以外の演
算、例えば任意の大きな整数に関する反転値(opposite)
すなわち0と1を反転した2進数、又は2補数を求める
ことも可能になる。
【0021】ワーキング・メモリーの所要スペースにつ
いて、本発明に基づく演算モジュールは、これを最小に
とどめることができる。というのは、リサイクル記憶手
段を設けることにより、データBとTの何れも同一記憶
位置に書き込めるからである。これは、一般に1つの演
算シーケンスの結果Bが(累積値として)次のシーケン
スのデータTになることによる。
【0022】
【実施例】図1は本発明に基づく演算モジュールの第1
実施例のブロック図である。演算モジュール1は破線の
枠内に示す。前記モジュールはオペランドa〔1,2,3 〕
に対する3つの入力11, 12, 13を有するほか、オペラン
ドxi 用の入力21, オペランドti 用入力22, 及び結果
i に対する入力23を有する。またこの演算モジュール
1は入出力ポート25を含み、これを介して演算モジュ
ールのシーケンス制御信号と状態信号が出入りする。
【0023】この演算モジュール1の組込まれるマイク
ロコントローラには、更に中央処理ユニット2(CPU),読
取り専用型のプログラム・メモリー3,及び読み書き型
ワーキング・メモリー4が含まれる。演算モジュール1
の動作は状態・制御レジスタ・ユニット5及びシーケン
サ6で管理され、これら2つのモジュールは中央処理ユ
ニット2によって制御される。
【0024】図では明確化のため、演算モジュール1の
動作に必要な接続のみ示してある。従って、中央処理ユ
ニット2に出入りするデータについては、常に内部デー
タ・バスを経由するので原則として省略し、その1つの
要素7のみを図示する。この要素7は状態・制御レジス
タ・ユニット5及びシーケンサ6に関連する。
【0025】アドレスに関しては、内部アドレス・バス
8と称するバスを用いるのが普通であり、このバスは特
に、中央処理ユニットをプログラム・メモリー3及びワ
ーキング・メモリー4と接続する。図1の場合、ワーキ
ング・メモリー4は、内部バス8に直結せず、アドレス
・スイッチング・マルチプレクサ9を介して接続されて
いることがわかる。このマルチプレクサ9の入力には1
組のアドレス・ポインタ・レジスタが含まれる。すなわ
ちオペランドti のアドレス用としてダブル・レジスタ
122-222,オペランドxi のアドレス用としてダブル・レ
ジスタ121-221,オペランドa〔1,,,,k〕用としてシング
ル・レジスタ211(この例ではオペランドa〔 〕の数k
は3である) 及び結果bi のアドレス用としてダブル・
レジスタ123-223 である。
【0026】ワーキング・メモリー4と演算モジュール
1の間でのデータ交換についても、図1の構成は特に有
利である。。すなわち「ローカル・バス」と称するバス
10を使用し、これによってデータをデータ入力11, 12,
13, 21及び22に分配し、結果データを出力23から受信す
る。このローカル・バス10への接続は、1組のデータ・
レジスタを介して行なわれる。すなわち、オペランドa
〔1〕, a〔2〕及びa〔3〕のデータについては、そ
れぞれレジスタ311,312,313 を介し、オペランドxi
ついてはダブル・レジスタ321,4121 を介し、オペラン
ドti についてはダブル・レジスタ322,422 を介し、結
果データbi についてはレジスタ323(1個又はそれ以
上) を介して接続が行なわれる。
【0027】図示を明確化するため、またモジュール1
の実際の動作に直接関係しないことから図1に示してい
ないが、中央処理ユニットからワーキング・メモリー4
へのアクセスは、ローカル・バス10経由でなく、1個の
マルチプレクサ(図示せず)経由で行なうこともでき
る。
【0028】ダブル・ポインタ・レジスタ122-222,121-
221,123-223 はそれぞれ前位レジスタ(leading registe
r)をもち、これら前位レジスタには中央処理ユニットに
よってワーキング・メモリー4の中の開始アドレスがロ
ードされる。ワーキング・メモリー4には演算シーケン
スの間に処理すべきデータが読み書きされる。同じダブ
ル・レジスタのイメージ・レジスタには、シーケンサ6
の制御により、それぞれ対応する前位レジスタから(開
始アドレスが)ロードされ、次いでシーケンサ6の制御
の下で自動的に減分(decrement) される。
【0029】オペランドti 及びオペランドxi 用とし
てそれぞれ設けられたダブル・レジスタ322-422 及び32
1-421 のうち、前位レジスタ322 及び321 には、クロッ
ク・サイクル2ステップの間にローカル・バスから次々
とロードされる。一方、次のステップではイメージ・レ
ジスタ422 及び421 に対してデータが同時に転送され、
同じステップで、レジスタ323 に前以て蓄積された結果
データbi がローカル・バス10を経由してワーキング・
メモリーに書き込まれる。こうして、ローカル・バス10
は1演算サイクル3ステップの間占有され、一方演算モ
ジュール1はオペランドti 及びxi を、オペランドa
〔1〕, a〔2〕及びa〔3〕に対して次々に組合わせ
て3つの演算動作を行なう。また後述のように、演算モ
ジュール1はサイクル記憶手段を含み、その働きによっ
て、前記の1サイクルを形成する3つの演算ステップの
結果得られた単一の結果データがワーキング・メモリー
4に書き込まれる。
【0030】図1に示した例では、演算モジュール1に
出入りするデータのフォーマットとして、一様に8ビッ
ト・フォーマットを選んでいる。しかし別の限定フォー
マット(例えば16ビット)を選ぶことも、もちろん可能
である。
【0031】演算モジュール1は、その必須の要素とし
て、積a〔 〕・xi を生成するための8×8ビット型
静的乗算器(static multiplier),16+8ビット型の第1
加算器31, 16+8ビット型の第2加算器32, 及びリサイ
クル記憶手段を含む。このリサイクル記憶手段は、中間
データに必要な遅延を与えてそれを適当な時点でリサイ
クルさせ、それによって3個の演算ステップから単一の
結果データを得るための手段である。
【0032】乗算器30は、1つの入力の上にデータ・レ
ジスタ421 から到来するオペランドxi を受信し、もう
1つの入力の上にはデータ選択マルチプレクサ33の出力
に現れるデータを受信する。この選択マルチプレクサ33
の働きによって、データ・レジスタ311,312,313 から到
来するオペランドa〔1〕, a〔2〕, a〔3〕を、1
サイクル3ステップの各ステップごとに1個ずつ逐次受
信することが可能になる。乗算器30の出力は16ビット・
フォーマットで第1加算器31の入力となるが、その一方
で第1加算器は、もう1つの入力34としてリサイクル記
憶手段から到来する8ビット・フォーマットのデータを
受信する。第1加算器31の16ビット出力は、第2加算器
32の入力に加わるが、この第2加算器はもう1つの入力
35として、3ステップ・サイクルの1個のステップにお
いて、オペランドti に対応する8ビット・フォーマッ
トの決められたデータをも受信する。第2加算器には2
つの8ビット出力37, 38がある。出力37に現れるところ
の結果の最下位のビット群、すなわち下位8ビットは出
力端子23を経由してデータ・レジスタ323 の中に、結果
データbi として蓄積できる。出力38は、第2加算器32
の出力結果の最上位8ビットで、バッファ・レジスタ41
に記憶される。このレジスタの本質的な機能は、このレ
ジスタに現れる結果データを1サイクル・ステップだけ
遅らせることである。第1バッファ・レジスタ41の出力
は、一方で第1マルチプレクサ42の第1入力に接続され
る。また第1マルチプレクサ42の第2入力はオペランド
i の入力端子22に接続され、また42の出力は第2加算
器の入力35に接続される。第1バッファ・レジスタ41の
出力は、他方で第2マルチプレクサ43の第1入力に接続
される。この第2マルチプレクサ43については、その第
2入力は第2加算器32の最下位出力37に接続され、その
出力は2個の8ビットバッファ・レジスタ44及び45から
成るスタックを経由して第1加算器31の入力に接続され
る。このスタックの中では、記憶されたデータが1ステ
ップごとに順次に(step by step)転送される。
【0033】このレジスタ44及び45から成るスタック
は、これまで「追加リサイクル手段」と呼んできたもの
に相当し、第1マルチプレクサ42と第2マルチプレクサ
43は、前述の「リサイクルに関連する切替え手段」に相
当する。
【0034】ある演算シーケンスの中で、演算モジュー
ル1が1つのサイクルiの間に行なう動作の要点は以下
の通りである: a) サイクルi - 第1ステップ - 各マルチプレクサの設定: マルチプレクサ33を入力11に設定する; マルチプレクサ42を入力22に設定する; マルチプレクサ43をバッファ・レジスタ41の出力に設定
する. - 第2加算器32の出力に現れる結果= xi ・a〔1〕+レジスタ45の現在の内容+オペランド
i . - 結果bi の最下位有意ランク・ビット(8ビット)
をレジスタ323 に記憶する. - データの転送: レジスタ44からレジスタ45へ転送する; レジスタ41からレジスタ44へ転送する. - 第2加算器32の出力38における結果の最上位ビット
群(8ビット)をレジスタ41に記憶する. - ポインタ・レジスタ222(At)の減分を行う(decreme
ntation),及びオペランドti +1 をレジスタ322にロ
ードする. b) サイクルi - 第2ステップ - 各マルチプレクサの設定: マルチプレクサ33を入力12に設定する; マルチプレクサ42をレジスタ41の出力に設定する;及び マルチプレクサ43を第2加算器32の最下位出力37に設定
する. - 第2加算器32の出力に現れる結果= xi ・a〔2〕+レジスタ45の現在の内容+レジスタ41
の現在の内容. - データの転送: レジスタ44からレジスタ45へ転送する. - 第2加算器32の出力37における結果の最下位ビット
群(8ビット)をレジスタ44に記憶する. - 第2加算器32の出力38における結果の最上位ビット
群(8ビット)をレジスタ41に記憶する. - ポインタ・レジスタ221(Ax)の減分を行う(decreme
ntation),及びオペランドxi +1 をレジスタ321 にロ-
ト゛する. c) サイクルi - 第3ステップ - 各マルチプレクサの設定: マルチプレクサ33を入力13に設定する; マルチプレクサ42をレジスタ41の出力に設定する;及び マルチプレクサ43を第2加算器32の最下位ビット出力37
に設定する. - 演算結果= xi ・a〔3〕+レジスタ45の現在の内容+レジスタ41
の現在の内容. - データの転送: レジスタ44からレジスタ45へ転送する. - 第2加算器32の出力37における結果の最下位ビット
群(8ビット)をレジスタ44に記憶する. - 第2加算器32の出力38における結果の最上位ビット
群(8ビット)をレジスタ41に記憶する. - ポインタ・レジスタ223(Ab)の減分を行う(decreme
ntation),及びレジスタ323 からワーキング・メモリー
に書き込む. - オペランド・レジスタからデータを同時転送: レジスタ322 からレジスタ422 へ(ti +1 を)転送す
る; レジスタ321 からレジスタ421 へ(xi +1 を)同時転
送する. - 演算モジュール1は、次のサイクル i+1 のステッ
プが実行可能な状態になる.
【0035】演算シーケンスの進行中、オペランドa
〔1,2,3 〕は一定値を保つが、オペランドti とxi
3ステップの各サイクルごとに変化する。サイクル(i+
1)の第1ステップでは、新しい結果データがレジスタ32
3 に記憶され、このサイクルの第3ステップでは、この
結果がワーキング・メモリーに書き込まれる。各データ
の転送、例えばレジスタ44, 45内でのデータのリサイク
ルのための転送は同期的に行なわれる必要がある。
【0036】上述した演算モジュール1の動作から分か
るように、サイクルの第1ステップ以外のすべての計算
ステップにおける、第2加算器32の出力結果の最下位部
分は、レジスタ44及びレジスタ45の効果により2ステッ
プ分だけ遅延する。また一方で、1サイクルの第1ステ
ップにおける、第2加算器32の出力結果の最上位部分
は、3ステップ分だけ遅延するが、これはレジスタ41を
通過することによる追加遅延効果に基づく。
【0037】当面予想される用途にあっては、データT
とXとは、連続する3ステップのサイクルで構成される
演算の1つのシーケンスが、演算モジュール1によって
準独立的(quasi-independent) に、すなわち途中CPU へ
の割込みによる中断がないように、実行される程度の大
きな整数(例てば512 ビット)である。この1つのシー
ケンスの間、中央処理ユニット2は、オペランドti
i ,及び結果bi の開始アドレス・ポインタを再ロー
ドするために十分な時間がある。
【0038】オペランドa〔1,2,3 〕は、各シーケンス
の開始時点で実行される特定の3ステップ・サイクルの
間にレジスタ311,312,313 からロードされ、ポインタ・
レジスタ211(Aa)は、シーケンサ6によって、中央処理
ユニットによりロードされる初期値から増分(incremen
t) される。
【0039】1つの演算シーケンスの終りに、オペラン
ドti とxi のデータが使い尽くされると、演算モジュ
ール1の中から、特にレジスタ41, 44, 45の中に蓄積さ
れたデータを「空にする」必要がある。これは同一の演
算方法を使いオペランドti とxi として0を入れれば
容易に達成される。
【0040】これら0の値は、ワーキング・メモリー4
の中でデータT及びXの後の位置へ記憶できることは明
らかである。しかし、データ・レジスタ321 と322 の中
身を強制的に0にするよう仕組んでおけば、上記に対応
するワーキング・メモリー4の記憶位置は節約でき有利
である。1つの演算シーケンスから次に移る場合、オペ
ランド群a〔1,2,3 〕は、それらの親データであるAに
関する有意ランクの下がる順序で取り入れると有利であ
る。こうすれば、アドレス・ポインタ・レジスタ211(A
a)は、次のシーケンスを開始するための正しい位置を与
えられ、従って中央制御ユニットは割込む必要がないか
らである。
【0041】図1では、簡単化のために制御リンクは一
般に図示していない。その例外として、また例示のた
め、制御ポート25を、状態・制御レジスタ・ユニット5
及びシーケンサ6へ行く鎖線で表わしたリンクとともに
示してある。一方、演算モジュール1の内部では、これ
らリンクはここでも鎖線で表わし、マルチプレクサ33,
42, 43の制御を行なうバス46として示してある。
【0042】演算モジュール1の外側にも制御リンク47
を示しておいたが、このリンクは、データ・レジスタ32
1-421 及び322-422 の中でのデータ転送のほか、前述の
レジスタ321 と322 に関する0値の強制設定を行なわせ
るものである。
【0043】シーケンサ6は、クロック周波数で同期し
た複数のフリップ・フロップ回路を中心に構成されてい
るが、詳細説明は省略する。演算モジュール1の動作順
序の条件は、上述の演算過程から純論理的に導かれるか
らである。
【0044】状態・制御レジスタ・ユニット5は数個の
レジスタを含み、それらの中には、演算モジュール1の
動作状態情報(休止か動作中か…)、1シーケンスの中
で実行されるサイクルの数、及び定まったシーケンスの
終りにデータ・レジスタの内容を強制的に0にすべきス
テップの数、が書き込まれる。この目的のため、状態・
制御レジスタ・ユニット5は、1個のサイクル・カウン
タと数個のレジスタを含み、後者には、特定条件(シー
ケンスの開始と終了)の下で実行すべきサイクル数の限
界が書き込まれる。状態・制御レジスタ・ユニット5は
周知の如何なる方法でも構成でき、またその構成論理は
簡単に定められるのでここで詳述する必要はない。
【0045】図2に示す演算モジュール100 は、原理的
に図1の演算モジュール1とほぼ同様であるが、幾つか
の変形処理を取り入れてある。図2の要素で図1の演算
モジュール1と同一の機能をもつものには同一参照記号
を付してある。
【0046】第1に、オペランド入力a〔 〕の数kが
4に増加しており、このため図1のデータ・レジスタ31
1-313 の数も1個増加し、増加分はオペランドa〔4〕
用として入力14で演算モジュール100 に接続される。同
様に、データ選択マルチプレクサ33は、入力11から14ま
での4個の選択が可能なように設定される。演算モジュ
ール100 は、1演算シーケンスの間、等価的に4個の同
時乗算「ライン」を実行する4ステップ・サイクルの機
能をもつことが可能になる。4ステップ・サイクルに適
したデータのリサイクル記憶を行なえるよう、バッファ
・レジスタのスタックには、3個のレジスタ44,445,45
を含むことになる(図1の演算モジュール1では2個だ
った)。従って、1個の4ステップ・サイクルにおい
て、第2加算器の出力37に現れる結果の最下位部分は、
サイクルの第1ステップ以外のすべての計算ステップで
3計算ステップ分の遅延が起こる。この遅延は、第2加
算器の出力38に現れる結果の最上位部分については、こ
のデータがバッファ・レジスタ41を通過する場合、4ス
テップ分に増加する。なお、この通過による遅延はサイ
クルの各第1ステップから始まる。
【0047】演算モジュール100 が4個のオペランドa
〔1,2,3,4 〕を用いて4ステップ・サイクルで動作し得
るなら、オペランドの数を減らして例えば3オペランド
で動作させることもでき、この場合、演算サイクルは図
1の演算モジュール1のように3ステップに減る。こう
するには、状態・制御レジスタ・ユニットとシーケンサ
に必要な手段をもたせてマルチプレクサ33のデータ選択
機能を制御し、この選択機能によって、1演算シーケン
スの間は終始、4個のオペランドa〔 〕か3個のみか
の何れかに定めて使うようにすれば充分である。同時
に、3ステップ・サイクルによりオペランドa〔 〕を
3個に減らして動作させる場合、バッファ・レジスタ44
-45 のスタックを1レジスタだけ減らして、中間データ
のリサイクルに適切な遅延を与える必要がある。これは
レジスタ・スタックの中のレジスタを1個、例えばレジ
スタ445 を、「短絡」マルチプレクサ446 を使って回避
することにより行なう。演算モジュール100 は、こうし
て用途に応じて極めて柔軟に利用でき、各シーケンス
で、実行すべき処理に最も相応しい演算モードが選択で
きる。4個のオペランドa〔1〜4〕と3個のオペラン
ドa〔1〜3〕のみの何れを使うかは、単に、データ選
択マルチプレクサ33の適切な制御、及びバッファ・レジ
スタ445 の回避の有無に関するマルチプレクサ446 の設
定の制御のみ行なえばよいので簡単である。
【0048】図2の演算モジュール100 には、図1に示
したモジュールに対する今一つの変形を含む。それは結
果の最下位出力37と出力端子23の間に排他的論理和回路
50を挿入するである。こうすると出力23は、第2加算器
の最下位出力と、8ビット・レジスタ52の内容から追加
マルチプレクサ51の選択した1個の値との間で、排他的
論理和演算を行なった結果になる。ここでレジスタ52の
上記内容は、オペランドxi ,又は例えば0値や16進数
のFF値(すなわち全ビットが1)など決められた定数と
して中央処理ユニットによりロードされた値,の何れか
である。この措置によって、予想される用途での演算モ
ジュール100 の処理能力は拡大し、例えば任意の長さの
数の反転値(opposite value)すなわち1と0とを反転し
た2進数とか、それに1を加えて上記数字の2の補数な
どを求めることが可能になる。実際の実施例では、図2
に示すように、演算モジュール100 はオペランド・デー
タをすべて8ビット・フォーマットとして構成できる
が、これは必ずしも必要なことではなく、他の如何なる
データ・フォーマットを選ぶことも同様に可能である。
また、オペランドa〔 〕の数kを増すこともできる。
この目的には、マルチプレクサ33に必要な入力数をもた
せ、スタック44-45 のレジスタ数を(k−1)レジスタまで
増加すれば充分である。
【0049】図3は本発明による演算モジュールのもう
1つの実施例のブロック図である。図3の演算モジュー
ル110 は、特にその用途として、オペランドa〔4〕の
最上位1ビットが、8ビット・フォーマットから溢れて
も対処できるように仕組まれている。この溢れビット(1
か0)の処理は、演算モジュール110 に1ビットの入力端
子24を追加して実行される。この溢れビットは、例えば
状態レジスタで受信でき、その中にそれまでの演算結果
として記憶される。その他のオペランド入力22 (ti )
や21 (xi ) 及び入力11ないし14(a〔1....4〕)は図
2の演算モジュール100 と同様8ビット・フォーマット
をもつ。結果出力23についても同様8ビットである。
【0050】この単一の溢れビットは、演算モジュール
110 が、出力が17ビットの 9×8 ビット・マルチプレク
サ60, 17+9ビットの第1加算器61, 及び17+8ビットの第
2加算器62, を使うことにより、1つの演算動作の中で
同時に処理する。溢れビットはオペランドa〔4〕とと
もに出現する筈なので、このビットは、それが1である
場合、各サイクルの第4ステップごとに計算に介入させ
ねばならない。このため、第2加算器62の最上位出力68
の9ビットは、9ビット・バッファ・レジスタ71に転送
され、一方次のサイクルの第1ステップでは、レジスタ
71に記憶されていたこの結果が、同じく9ビット・レジ
スタにより構成されたレジスタ74-75 のスタックに転送
される。各サイクルのうち、オペランドa〔1〕ないし
a〔3〕に関連する他のステップには溢れビットは存在
せず、入力24は0となるので、演算は8ビットで行なわ
れ、第2加算器62の最上位出力68の第9ビットは実際に
0となる。また、第1マルチプレクサ42の第9ビットも
不要となり、このマルチプレクサ42は図1又は2で相当
するそれと同じになる。
【0051】第2加算器62の出力67における最下位有意
ランクの計算結果についていえば、これらの結果は常に
8ビット・フォーマットをとるが、各サイクルの第1ス
テップ以外でこれらデータがレジスタ74-75 のスタック
の中をリサイクルされるとき、このレジスタ・スタック
の中で第9ビットとして0が加えられる。その手段とし
て用いるのが第2マルチプレクサ73の追加入力76で、こ
の入力は常時強制的に0とされている。また図から明ら
かなように、必要があれば1サイクルのステップ数を4
から3に減らしてオペランドa〔1,2,3 〕のみ使うこと
もできる。これは前図に示したと同様、データ選択マル
チプレクサ33に特別な制御を加え、かつ「短絡」マルチ
プレクサ446 の働きでバッファ・レジスタ74−75のスタ
ックのうち1個のレジスタ、例えば745 を回避すること
によって実行される。
【0052】こうして図3に示した演算モジュール110
は、図2の演算モジュール100 とほとんど同等の方法で
機能する。すなわち演算モジュール100 は4ステップ・
サイクルから成る演算シーケンスの間、4個のオペラン
ドa〔1〜4〕に関する演算と同時に、オペランドa
〔4〕に出現し得る溢れビットの処理をも実行できるの
で、この単一溢れビットについて特に処理シーケンスを
追加する必要がない。
【0053】これまで図3の演算モジュール110 につい
てはオペランドのフォーマットを、8ビットの場合を例
として述べてきたが、他の任意の値の限定フォーマット
をも使えることは明らかである。図3の実施例は次のよ
うに一般化できる。すなわち、この(一般化された)演
算モジュールは、nビット・オペランドの演算を行なう
ために、(n+1)×nビット演算を行なう乗算器60と、(2
n+1)+(n+1)ビット演算を行なう第1加算器61と,(2
n+1)+nビット演算を行なう第2加算器と,を備え
る。また第1バッファ・レジスタ71並びにレジスタ・ス
タックのバッファ・レジスタ74,745及び75は(n+1)ビッ
ト・フォーマットである。更に3個の入力をもつ第2マ
ルチプレクサ73を配備して、その第1入力には(n+1)ビ
ット・フォーマットの第1バッファ・レジスタ71の内容
を受信し、その第2入力には第2加算器62の出力の最下
位有意ランク出力67のnビットを受信し、更に追加した
1ビット入力76には、強制的に0を受信するが、この0
は、必要な場合には、レジスタ74,745,75 のスタックの
中を最上位有意ランクの(n+1)番目のビットとしてリサ
イクルする。
【0054】図4には、本発明による演算モジュールの
もう1つの実施例のブロック図を示す。この演算モジュ
ール120 は図1の演算モジュール1の変形実施例とみな
すことができるので、同一構成要素は図1と同一符号を
用いる。この演算モジュール120 は、オペランドa〔1
〜3〕に対応して3個の入力11, 12, 13を含み、従って
3ステップ・サイクルのシーケンスで機能する。しか
し、図1のブロック図に示す構成に数個のモジュールが
追加されているため、この演算モジュールではオペラン
ドa〔3〕の最上位ビットの直近上位に1個の溢れビッ
トが生じてもこれを同時に処理できる。
【0055】この実施例の原理は、実際に溢れビットが
出た場合には、演算a〔3〕・xi を実行した後で、x
i に有意ランク(significance)1個分のシフト、すなわ
ち8ビット分だけのシフトを加え、このシフト後のxi
をもう一度加算すれば結果が得られる、という考えに基
づく。この演算には、第3加算器81を必要とする。この
加算器81は (8+8+1)ビットで動作し、その第1の8ビッ
ト入力に第2加算器32の出力38における結果の最上位部
分を受信し、その第2の8ビット入力には、第3でマル
チプレクサ82の選択に基づいて、オペランドxi の値
か、8ビットすべて0値か、の何れかを受信する。前記
第3加算器81の第1の8ビット出力83は第1バッファ・
レジスタ41の入力に接続し、同じく81の第2の1ビット
出力は桁上げ出力と呼ばれ、その値は1ビット桁上げレ
ジスタ85に記憶され、「ゼロ・リセット」マルチプレク
サと呼ばれる第4マルチプレクサを介して、3ステップ
遅れで第3加算器81の第3入力87にリサイクルされる。
【0056】オペランドa〔3〕に溢れビットがでた場
合、そのビットは任意の適当な手段により、例えば状態
・制御レジスタ・ユニット5(図1)の中に記憶され
る。この溢れビットの処理は、第3サイクルにおいて、
図1で説明した下記の演算: a〔3〕・xi +レジスタ45の現在の内容+レジスタ41
の現在の内容 と同時に行なう必要がある。
【0057】今回は、オペランドxi が、第2加算器32
の出力38における結果の最上位部分に対して追加加算さ
れる。この加算は、第3マルチプレクサ82を設定してそ
の出力にオペランドxi を出現させる(transmit)ことに
より達成される。
【0058】この加算によって、桁上げビット(carry)
の発生する可能性があり、発生した場合これがレジスタ
85に記憶される。一方、最上位部分の残りの8ビットは
第1バッファ・レジスタ41に記憶され、次のサイクルの
第1ステップにおいてレジスタ・スタック44-45 でのリ
サイクルに入る。
【0059】それ以外の場合、すなわち換言すれば、溢
れビットが1ではない場合、又はオペランドa〔1〕若
しくはa〔2〕の演算実行中(サイクルの第1か第2ス
テップ)の場合,はすべて第3マルチプレクサ82が0値
を伝送するように設定する。こうすることにより、結果
の最上位部分を第1バッファ・レジスタ41へ転送するに
あたり、第3加算器81はもはや影響を与えることはな
い。
【0060】しかし、桁上げレジスタ85に記憶された桁
上げビットは、3ステップ遅れて、すなわち各サイクル
の第3ステップで、再び第3加算器81で加算されること
を忘れてはならない。
【0061】各サイクルの第1及び第2ステップにおい
ては、ゼロ・リセット・マルチプレクサ86はその出力が
ゼロになるよう設定される。
【0062】それ以外の点では、演算モジュール120 の
動作は演算モジュール1で前述した動作とほぼ同一であ
る。
【0063】図5は、本発明による演算モジュールのも
う1つの実施例130 に示す。ここに示す演算モジュール
130 は、図4の演算モジュール120 に対応して、オペラ
ンド入力a〔 〕の数を4にしたものである。従って、
図4の演算モジュール120 と同様の要素で構成される
が、相違する点は、データ選択マルチプレクサ33が4入
力であること、及び、リサイクル記憶手段を構成するス
タックが、バッファ・レジスタ44-45 のほか図2の場合
と同様に追加レジスタ445 を含み、それにより中間デー
タ・リサイクルに適切な遅延を与えることである。図2
のモジュール1100 について述べたように、ある種の決
まったシーケンスではオペランドa〔 〕の数を4から
3に減らすことができた。同様に図5の演算モジュール
でもこの能力を備えることができる。そのためには、短
絡マルチプレクサ446 を設置して、レジスタ44-45 のス
タックのうち1個のレジスタを回避し、こうして演算モ
ジュールが3ステップ・サイクルの演算を行なうべきと
きには適切なリサイクルを再確立できるようにすれば充
分である。演算モジュール130 のそれ以外の機能は図2
と図4を参照すれば自明である。
【0064】本発明は、本明細書に記載の実施例に限定
されるものではなく、代わりに等価の手段を用いること
により各種の変形による実施例が可能になるものと理解
する必要がある。更に、排他的論理和回路と結果データ
の組合せを出力に加えるなど、図2で述べたような補足
は他のすべての例についても適用することが可能であ
る。また、本発明の具体的実現にあたっては、種々の実
施例で示した通り、8ビット・フォーマットを使うのが
有利であるが、他の如何なるフォーマットも本発明に基
づく演算モジュールの構成には容易に用い得ることが明
らかである。
【0065】本発明に基づく演算モジュールは、既知の
型のマイクロコントローラの中央処理ユニットとともに
容易に集積化できる。特に INTEL社の設計に係る8051マ
イクロコントローラの場合には、その標準命令セットに
全く修正を必要としない。本発明の演算モジュールと組
合せて用いる状態・制御レジスタ・ユニットは、前記の
マイクロコントローラに含まれる通称「特殊機能」("sp
ecial functions") レジスタ(SFR) のセクションにより
構成される。
【図面の簡単な説明】
【図1】図1は、本発明の第1実施例に基づく演算モジ
ュールのブロック図であって、1個のマイクロコントロ
ーラとして集積化した場合に含まれる他のセクションと
の主要な接続をも合わせ示す図である。
【図2】図2は、図1に示したのと類似の演算モジュー
ルのブロック図であって、但し幾つかの実施上の変形を
含む図である。
【図3】図3は、本発明の第2実施例のブロック図であ
って、オペランドa〔k〕(の上位)に溢れビットが生
じても同時に処理する機能をもつものを示す図である。
【図4】図4は、本発明の第3実施例に基づく演算モジ
ュールのブロック図であって、特に追加の加算器を使用
しているものを示す図である。
【図5】図5は、本発明の第4実施例に基づく演算モジ
ュールのブロック図であって、追加加算器の使用という
点では図4に示すものに関連する。
【符号の説明】
1,100,110,120,130 演算モジュール 2 中央処理ユニット(CPU) 3 プログラム・メモリー 4 ワーキング・メモリー 5 状態・制御ユニット 6 シーケンサ 7,8,10 バス 9 アドレス切換えマルチプレクサ 11〜14,21,22,24,34,35,36 入力 23,37,38,67,68,83,84 出力 25 入力/出力ポート 30,60 乗算器 31,32,61,62,81 加算器 33,42,43,51,73,82,86 マルチプレクサ 41,44,45,52,74,75,445,745 レジスタ 46,47 制御リンク 50 排他的論理和回路 85 桁上げレジスタ 121-221,122-222,123-223,321-421,322-422 ダブル・
レジスタ 211,311,312,313,323 シングル・レジスタ 446 「短絡」マルチプレクサ
───────────────────────────────────────────────────── フロントページの続き (73)特許権者 590000248 Groenewoudseweg 1, 5621 BA Eindhoven, T he Netherlands (72)発明者 ジャン−ピエール ブルナ フランス国 92370 シャヴィル リュ ド ラ フォンテーヌ アンリ キャ トル 18 (72)発明者 ドミニク ド ヴァレフ ベルギー国 ベ−1170 ブリュッセル アブニュ デ クリケット 17/1 (58)調査した分野(Int.Cl.6,DB名) G06F 17/10 G06F 7/00 EPAT(QUESTEL) JICSTファイル(JOIS)

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】 マイクロプロセッサ中央処理ユニットと
    共に集積され、シーケンサと読出/書込ワーキング・メ
    モリとを有し、また、B,X及びTをマルチビット長の
    整数とし、かつaはこれらのマルチビット長に比較して
    小さいmビットフォーマットを有するオペランドである
    とするときに、次の一般式: B=a・X+T によって演算を行なうことを目的とする算術計算演算モ
    ジュールであって、 前記演算は連続する計算ステップのシーケンスによって
    実行され、各計算ステップは、オペランドaに対して、
    前記マルチビット長よりも小さいnビット長のフォーマ
    ットを有するオペランドxi とti とを組合せることを
    含み、これらオペランドxi ,ti は整数X,Tの隣接
    する排他的nビット部分であってそれぞれ増加順に有意
    ランクi番目に位置し、また前記演算は、同一有意ラン
    クiに対応しかつ最終演算結果Bについても相互に排他
    的部分を構成するnビットの部分結果bi を記憶するこ
    とを含み、 前記演算モジュールは、オペランドa,xi ,ti に対
    する入力と;結果bi に対する出力と;積a・xi を形
    成する乗算器及びそれに後続する第1加算器と第2加算
    器との直列接続と;を有し、第2加算器の与える部分演
    算結果は、その最上位部分(the most significant port
    ion)と;出力されて結果bi になる最下位部分(the lea
    st significant portion)と;に分割することができ、
    オペランドti は1つの加算器の1つの入力に加えら
    れ、1つの先行計算ステップの最上位部分は第1リサイ
    クル記憶手段によって他の加算器の1つの入力に加えら
    れるように構成されて成る算術計算演算モジュールにお
    いて、 - オペランドaに含まれる、相互に排他的なk個の
    連続ランクのオペランド部分a〔1....k〕に対応するk
    個の並列入力と; - k個の計算サブステップを1サイクルとする各計
    算ステップごとに、前記オペランド部分すなわちa
    〔1....k〕を、順次、乗算器の1つの入力に加える入力
    選択手段と; - 第2リサイクル記憶手段及びこれに附属する切替
    え手段によって、与えられた1つのサイクルの第1以外
    の任意の計算サブステップの結果の最下位部分を(k−1)
    計算サブステップだけ遅延させ、与えられた1つのサイ
    クルの第1計算サブステップの結果の最上位部分をk計
    算サブステップだけ遅延させる手段と; を含むことを特徴とする算術計算演算モジュール。
  2. 【請求項2】 マイクロプロセッサ中央処理ユニットと
    共に集積され、シーケンサと読出/書込ワーキング・メ
    モリとを有し、また、B,X及びTはマルチビット長の
    整数で、かつaはこれらのマルチビット長に比較して小
    さいmビットフォーマットを有するオペランドとすると
    きに、次の一般式: B=a・X+T によって演算を行なうことを目的とする算術計算演算モ
    ジュールであって、 前記演算は連続する計算ステップのシーケンスによって
    実行され、各計算ステップは、オペランドaに対して、
    前記マルチビット長よりも小さいnビット長のフォーマ
    ットを有するオペランドxi とti とを組合せることを
    含み、これらオペランドxi ,ti は整数X,Tの隣接
    する排他的nビット部分であってそれぞれ増加順に有意
    ランクi番目に位置し、また前記演算は、同一有意ラン
    クiに対応しかつ最終演算結果Bについても相互に排他
    的部分を構成するnビットの部分結果bi を記憶するこ
    とを含み、 前記演算モジュールは、オペランドa,xi ,ti に対
    する入力と;結果bi に対する出力と;積a・xi を形
    成する乗算器及びそれに後続する第1加算器と第2加算
    器との直列接続と;を有し、第2加算器の与える部分演
    算結果は、その最上位部分(the most significant por
    tion)と;出力されて結果bi になる最下位部分(the le
    ast significant portion)と;に分割することができ、
    オペランドti は1つの加算器の1つの入力に加えら
    れ、1つの先行計算ステップの最上位部分は第1リサイ
    クル記憶手段によって他の加算器の1つの入力に加えら
    れるように構成された算術計算演算モジュールにおい
    て、 - オペランドaに含まれる、相互に排他的なk個の
    連続ランクのオペランド部分a〔1....k〕に対応するk
    個の並列入力を含み、 - 1サイクルに含まれるp個の各計算サブステップ
    ごとに、前記オペランド部分a〔1....p〕を順次選択し
    て乗算器の入力の1つに加える手段を含み、この場合、
    前記中央処理ユニットは前記演算シーケンスを完全に実
    行するに要する継続期間(duration)を、間隔〔2....k〕
    の中から1個選択する手段を有し、 - 第2リサイクル記憶手段及びこれに附属する切替
    え手段として、与えられた1つのサイクルの第1以外の
    サブステップの結果の最下位部分は常に(p−1)計算サブ
    ステップだけ遅延させ、与えられた1つのサイクルの第
    1計算サブステップの結果の最上位部分は常にp計算サ
    ブステップだけ遅延させる手段を含み、 - 更に第2リサイクル記憶手段の中で、遅延ステッ
    プ数を、使用するpの値の関数として(k−p)だけ減少さ
    せ得る遅延選択手段を含むことを特徴とする算術計算演
    算モジュール。
  3. 【請求項3】 請求項1に記載の算術計算演算モジュー
    ルにおいて、オペランドa〔 〕に対する入力kの数値
    を3に等しくすることを特徴とする算術計算演算モジュ
    ール。
  4. 【請求項4】 請求項1に記載の算術計算演算モジュー
    ルにおいて、オペランドa〔 〕に対する入力kの数値
    を4に等しくすることを特徴とする算術計算演算モジュ
    ール。
  5. 【請求項5】 請求項2に記載の算術計算演算モジュー
    ルにおいて、オペランドa〔 〕に対する入力kの数値
    は4に等しくし、入力a〔 〕の選択手段は、その選択
    範囲をオペランドa〔 〕の個数p、すなわち3に減少
    して動作し得ることを特徴とする算術計算演算モジュー
    ル。
  6. 【請求項6】 請求項1,3,4のうちのいずれか1項
    に記載の、前記第1リサイクル記憶手段として、入力に
    第2加算器の出力の結果の最上位部分を受取る第1バッ
    ファ・レジスタを用いる算術計算演算モジュールにおい
    て、 前記第2リサイクル記憶手段は(k−1)個の更に別のバッ
    ファ・レジスタのスタックを有し、記憶データはそれら
    レジスタの中で1ステップごとに順次転送され; 前記第2リサイクル記憶手段に付随する前記切替え手段
    は、第1マルチプレクサと第2マルチプレクサを含み; 第1バッファ・レジスタの出力は、一方では第2出力が
    オペランド入力ti に接続されている第1マルチプレク
    サの第1入力に接続し、この第1マルチプレクサの出力
    は加算器の1つの入力に接続し、他方では更に第1バッ
    ファ・レジスタの出力は第2出力が第2加算器の最下位
    出力に接続され出力が前記(k−1)個のバッファ・レジス
    タのスタックを経由して他の加算器の入力に接続されて
    いる第2マルチプレクサの第1入力に接続されている; ことを特徴とする算術計算演算モジュール。
  7. 【請求項7】 請求項2又は5に記載の、前記第1リサ
    イクル記憶手段が、入力に第2加算器の出力結果の最上
    位部分を受取る第1バッファ・レジスタによって形成さ
    れる算術計算演算モジュールにおいて、 前記の追加リサイクル記憶手段は、(k−1)個のバッファ
    ・レジスタのスタックを含み、記憶データはその中で1
    ステップごとに順次に転送され; 前記遅延選択手段は、前記レジスタのスタック内でのデ
    ータ転送中に(k−p)個のレジスタを回避する機能をもつ
    「短絡(shortcircuit)」マルチプレクサと称するマルチ
    プレクサを含み; リサイクル機能に関連する前記切替え手段は第1マルチ
    プレクサと第2マルチプレクサを含み; 第1バッファ・レジスタの出力は、一方では第2入力が
    オペランド入力ti に接続されている第1マルチプレク
    サの第1入力に接続し、この第1マルチプレクサの出力
    は加算器の1つの入力に接続し、第1バッファ・レジス
    タの出力はまた、他方では第2入力が第2加算器の最下
    位出力に接続され、出力が前記(k−1)個のバッファ・レ
    ジスタのスタックを経由して他の加算器の入力に接続さ
    れている第2マルチプレクサの第1入力に接続する; ことを特徴とする算術計算演算モジュール。
  8. 【請求項8】 請求項6又は7に記載の算術計算演算モ
    ジュールにおいて、 オペランドa〔k〕の最上位に、1ビットの溢れ(overf
    low)ビットがある場合、この溢れビットを同時処理する
    目的で、nを前記減少フォーマットのビット数とすると
    きに、モジュールに前記オーバーフロー・ビット用の入
    力を追加して設け、これを(n+1)×(n) ビットの乗算が
    可能な乗算器の入力として追加接続し; 第1加算器には(2n+1)+(n+1)ビットの処理機能を、
    第2加算器には(2n+1)+nビットの処理機能をそれぞ
    れもたせ; 第1バッファ・レジスタ及びレジスタ・スタックのバッ
    ファ・レジスタを(n+1)ビットのフォーマットとし; 第2マルチプレクサは、第1入力に(n+1)ビット・フォ
    ーマットの第1バッファ・レジスタの内容を受信し、第
    2入力に、一方では第2加算器の出力の最下位nビット
    を、他方では前記マルチプレクサの附加的入力から、(n
    +1)番目の最上位ビットを強制的にゼロにするための1
    ビットをそれぞれ受信し、一方第1マルチプレクサは、
    その2つの入力及び出力が何れもnビット・フォーマッ
    トを有することから、第1バッファ・レジスタの(n+1)
    番目の出力ビットを無視し、結果bi の出力もnビット
    とする; ことを特徴とする算術計算演算モジュール。
  9. 【請求項9】 請求項6又は7に記載の算術計算演算モ
    ジュールにおいて、 オペランドa〔k〕の最上位に1ビットの溢れビットが
    ある場合、この溢れビットを同時処理する目的で、第3
    の加算器として1個の3入力加算器を設け、その第1の
    nビットの入力は第2加算器の出力結果の最上位部分を
    受信し、第2のnビット入力は、第3マルチプレクサの
    選択に従って、オペランドxi の値、又はnビットのゼ
    ロ値の何れかを受信し、この第3の3入力加算器は、前
    記1バッファ・レジスタの入力に接続された第1のnビ
    ット出力と、キャリー(桁上げ)出力と称される第2の
    1ビット出力とを有し、このキャリー出力の値はkステ
    ップにおけるキャリー・リサイクルのため1ビット・レ
    ジスタ内に記憶され、「ゼロ・リセット」と称する第4
    マルチプレクサを経て同じ前記第3加算器の第3入力に
    接続され、 前記第3マルチプレクサは、オペランドa〔k〕と同時
    にオーバーフロー・ビットも処理すべきときには、その
    出力としてオペランドxi を伝送し、それ以外のすべて
    の場合にはゼロ値を伝送することを特徴とする算術計算
    演算モジュール。
  10. 【請求項10】 請求項6ないし9のうちのいずれか1
    項に記載の算術計算演算モジュールにおいて、 シーケンサの制御によって、第1マルチプレクサはその
    出力としてオペランド入力ti を伝送し、また第2マル
    チプレクサはその出力として第1バッファ・レジスタの
    出力におけるデータを伝送し、前記各伝送は各演算サイ
    クルの第1ステップにおいてこれを行なうよう前記各マ
    ルチプレクサを設定し、一方各サイクルの第1以外のす
    べてのステップの間には、前記のマルチプレクサ設定を
    反転せしめることを特徴とする算術計算演算モジュー
    ル。
  11. 【請求項11】 請求項1ないし10のうちのいずれか1
    項に記載の算術計算演算モジュールにおいて、オペラン
    ドxi 及びti が8ビットのフォーマットを有すること
    を特徴とする算術計算演算モジュール。
  12. 【請求項12】 請求項1ないし11のうちのいずれか1
    項に記載の算術計算演算モジュールにおいて、 bi とxとの排他的論理和演算を行なう目的で結果bi
    の出力の途中に「排他的OR」回路が介在しており、こ
    こでxは前記排他的OR回路に附属するレジスタ内にロ
    ードされるnビットの定数か、又はオペランドxi かの
    何れかであり、その何れがロードされるかの決定は、x
    の前記値を入力として受信しその出力が結果bi のデー
    タと共に前記排他的OR回路の入力に加わるようにした
    1個の附加的マルチプレクサの設定に支配されることを
    特徴とする算術計算演算モジュール。
JP2414110A 1989-12-29 1990-12-26 マイクロプロセッサ中央処理ユニットに結合される算術計算演算モジュール Expired - Fee Related JP2948921B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR8917456A FR2656706A1 (fr) 1989-12-29 1989-12-29 Organe de traitement arithmetique a associer a une unite centrale de microprocesseur.
FR8917456 1989-12-29

Publications (2)

Publication Number Publication Date
JPH04133170A JPH04133170A (ja) 1992-05-07
JP2948921B2 true JP2948921B2 (ja) 1999-09-13

Family

ID=9389153

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2414110A Expired - Fee Related JP2948921B2 (ja) 1989-12-29 1990-12-26 マイクロプロセッサ中央処理ユニットに結合される算術計算演算モジュール

Country Status (4)

Country Link
EP (1) EP0435399B1 (ja)
JP (1) JP2948921B2 (ja)
DE (1) DE69030303T2 (ja)
FR (1) FR2656706A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2775368B1 (fr) * 1998-02-26 2000-04-14 Sgs Thomson Microelectronics Coprocesseur d'arithmetique modulaire permettant de realiser des operations non modulaires rapidement

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6284335A (ja) * 1985-10-09 1987-04-17 Hitachi Ltd 乗算回路
JPS6347874A (ja) * 1986-08-16 1988-02-29 Nec Corp 算術演算装置
FR2613861B1 (fr) * 1987-04-10 1990-11-30 Pailles Jean Claude Procede et controleur pour cryptographier un message selon un algorithme a cle publique
FR2627297B1 (fr) * 1988-02-15 1990-07-20 Gallay Philippe Multiplieur de nombres binaires a tres grand nombre de bits

Also Published As

Publication number Publication date
DE69030303T2 (de) 1997-09-25
EP0435399A1 (fr) 1991-07-03
FR2656706A1 (fr) 1991-07-05
JPH04133170A (ja) 1992-05-07
EP0435399B1 (fr) 1997-03-26
DE69030303D1 (de) 1997-04-30

Similar Documents

Publication Publication Date Title
US5166978A (en) Encoding system according to the so-called rsa method, by means of a microcontroller and arrangement implementing this system
US5473554A (en) CMOS multiplexor
US20020178196A1 (en) Modular arithmetic coprocessor comprising two multiplication circuits working in parallel
US5163154A (en) Microcontroller for the rapid execution of a large number of operations which can be broken down into sequences of operations of the same kind
JPS6135590B2 (ja)
US5285403A (en) Arithmetic processing module to be associated with a microprocessor central processing unit
JP3458518B2 (ja) 並列プロセッサ
US5363322A (en) Data processor with an integer multiplication function on a fractional multiplier
US5675527A (en) Multiplication device and sum of products calculation device
US5402368A (en) Computing unit and digital signal processor using the same
US5944775A (en) Sum-of-products arithmetic unit
JP2948921B2 (ja) マイクロプロセッサ中央処理ユニットに結合される算術計算演算モジュール
JPH1173408A (ja) 演算処理システム及び演算処理方法
JP7250953B2 (ja) データ処理装置、及び人工知能チップ
US5684731A (en) Booth multiplier using data path width adder for efficient carry save addition
CA1233905A (en) Decimal digit processing apparatus and method
US5650952A (en) Circuit arrangement for forming the sum of products
Bunyk et al. Design of an RSFQ microprocessor
EP0884676B1 (en) Data processing system for dynamically utilizing resources
JP3547309B2 (ja) 演算装置
US6643677B2 (en) Digital arithmetic integrated circuit
JP3394052B2 (ja) 多精度運算方法及び多精度運算装置
KR100337716B1 (ko) 곱의합을형성하는회로
US5018092A (en) Stack-type arithmetic circuit
US5142636A (en) Memory bank address calculation with reduced instruction execution cycles

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees