JPS6016650B2 - 除算装置 - Google Patents
除算装置Info
- Publication number
- JPS6016650B2 JPS6016650B2 JP54087825A JP8782579A JPS6016650B2 JP S6016650 B2 JPS6016650 B2 JP S6016650B2 JP 54087825 A JP54087825 A JP 54087825A JP 8782579 A JP8782579 A JP 8782579A JP S6016650 B2 JPS6016650 B2 JP S6016650B2
- Authority
- JP
- Japan
- Prior art keywords
- carry
- transfer line
- addition
- remainder
- contents
- 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
Links
Description
【発明の詳細な説明】
本発明は、2n−1による割り算装置に係る。
具体的には、並列プロセッサにおけるアドレ計算装置に
応用される。並列プロセッサでは、メモリコンフリクト
(競合)をなくすため、メモリバンク数を素数から選ば
れることがある。メモリバンク数を素数とすれば、並列
プロセッサを構成している各プロセッサが連続あるいは
等距離離れたアドレスに格納されている変数を参照する
限りメモリ競合が発生しない。この際、各プロセッサは
参照する変数のアドレスを素数で割り、剰余でメモリモ
ジュールを選び、商でもモジュール内アドレスを生成し
なければならない。一般に、素数による割り算は非常に
計算時間を要する。
応用される。並列プロセッサでは、メモリコンフリクト
(競合)をなくすため、メモリバンク数を素数から選ば
れることがある。メモリバンク数を素数とすれば、並列
プロセッサを構成している各プロセッサが連続あるいは
等距離離れたアドレスに格納されている変数を参照する
限りメモリ競合が発生しない。この際、各プロセッサは
参照する変数のアドレスを素数で割り、剰余でメモリモ
ジュールを選び、商でもモジュール内アドレスを生成し
なければならない。一般に、素数による割り算は非常に
計算時間を要する。
引き算による実現では、mビットの情報をnビットの素
数で割るとすれば、(m−n)回のシフトと引き算が必
要となる。m−nがある程度大きいと計算時間がかかり
、特に、上記のように、メモリバンク決定のために使用
すると、計算時間の速さが問題にされる。2n一1はあ
るnについて素数になる。
数で割るとすれば、(m−n)回のシフトと引き算が必
要となる。m−nがある程度大きいと計算時間がかかり
、特に、上記のように、メモリバンク決定のために使用
すると、計算時間の速さが問題にされる。2n一1はあ
るnについて素数になる。
この素数はメルセンヌ素数としてよく知られている。例
えば、n=2,3,5,7……でそれぞれ3,7,31
,127というように素数である。本発明の目的は、2
n一1による除算を高速に実行し、商と剰余を得る装置
を提供することにある。まず、本発明の原理について説
明する。与えられた2進数を一般性を失うことなく次の
ように2n進表現で表わす。但し、2n進でK桁である
とする。ax−,2(k‐1)n+ak−22(k‐2
)n+……十もまず、e2nを2n−1で割ると次のよ
うに計算される。
えば、n=2,3,5,7……でそれぞれ3,7,31
,127というように素数である。本発明の目的は、2
n一1による除算を高速に実行し、商と剰余を得る装置
を提供することにある。まず、本発明の原理について説
明する。与えられた2進数を一般性を失うことなく次の
ように2n進表現で表わす。但し、2n進でK桁である
とする。ax−,2(k‐1)n+ak−22(k‐2
)n+……十もまず、e2nを2n−1で割ると次のよ
うに計算される。
したがって、与えられた2n進数の各桁を2n一1で割
るととなる。
るととなる。
この加算を行えば、仮りの商と剰余が得られるが、剰余
の加算を行うと2nを超えた結果が得られることがある
。
の加算を行うと2nを超えた結果が得られることがある
。
ak‐,十ak‐2十……十を=bm‐,2(m‐1)
m十bm−22(m‐2)十……十b。
m十bm−22(m‐2)十……十b。
と書くと再びbm‐,2(m‐1)n十bm−22(m
‐2)n十……十ムを2n−1で割ることになる。
‐2)n十……十ムを2n−1で割ることになる。
同じようにして係数bm‐,,…,boについて再び仮
りのと剰余を求めるすこの処理を?の係数(例えば、b
′o)以外の係数がすべて0になる、すなわち結果がn
桁に等しいか以下になるまで繰り返す。最終的に得られ
たn桁に等しいか以下の結果が2n−1よりも小さけれ
ば剰余である。そうでなければ、桁あがりも1として剰
余を0にする。また商への桁上りはこの処理の間で生成
された仮りの液をすべて加算したものに剰余が2n−1
に等しかったときの桁上りを加算したものである。商は
、次のように、仮りの商と桁上りを使用して計算される
。
りのと剰余を求めるすこの処理を?の係数(例えば、b
′o)以外の係数がすべて0になる、すなわち結果がn
桁に等しいか以下になるまで繰り返す。最終的に得られ
たn桁に等しいか以下の結果が2n−1よりも小さけれ
ば剰余である。そうでなければ、桁あがりも1として剰
余を0にする。また商への桁上りはこの処理の間で生成
された仮りの液をすべて加算したものに剰余が2n−1
に等しかったときの桁上りを加算したものである。商は
、次のように、仮りの商と桁上りを使用して計算される
。
(ak‐,2(k‐2)n+ak‐,2(k‐8)n+
・・・・・・十ak‐,)十(ak−22(k‐3)n
+ak‐22(k‐4)n十.・・…十ak−2)十(
ak−32(k‐4)n+ak‐32(k‐5)n十・
・・・・・十ak‐3)十・・・・・・十(a2かり2
)十(a,)十(桁上り)桁上りを除いた計算は桁をそ
ろえて加算を行うことでも実行できる。
・・・・・・十ak‐,)十(ak−22(k‐3)n
+ak‐22(k‐4)n十.・・…十ak−2)十(
ak−32(k‐4)n+ak‐32(k‐5)n十・
・・・・・十ak‐3)十・・・・・・十(a2かり2
)十(a,)十(桁上り)桁上りを除いた計算は桁をそ
ろえて加算を行うことでも実行できる。
なお、剰余計算を行うために繰り返される回数はkとn
‘こより静的に決めることができる。この回数は「k/
が」十1回のオーダである。(ここで「−は「一内の値
よりも小さい技大の整数を表わす)。以上説明したよう
に2n一1になる除算は加算を中心にした処理で行うこ
とができる。
‘こより静的に決めることができる。この回数は「k/
が」十1回のオーダである。(ここで「−は「一内の値
よりも小さい技大の整数を表わす)。以上説明したよう
に2n一1になる除算は加算を中心にした処理で行うこ
とができる。
もう少し問題を簡単に説明するために、k<nの場合に
ついて説明する。
ついて説明する。
この場合ak‐,十ak‐2十・・・十もの結果は2桁
を超えない。それをb,十2n+boと書く。仮りの剰
余はb,十boであり、結果をc,〆+coと書くと、
剰余はco+c,(ここでc,は0か1)となり、この
剰余が2n−1に等しければ桁上りc2を1とし剰余を
0にする。等しくなければco+c,が剰余であり桁上
りc2を0とする。一方、仮りの商は、
Z(ak−,2(k‐2)n+ak‐,2
(k‐3)n+…..・十ak‐,)十(ak‐22(
k‐3)n+ak−22(k‐4)n+・・・・・・十
ak−2)十……十(a2?十a2)十(a,)であり
、この結果にb,十c.十c2が加算され、商が求まる
。
を超えない。それをb,十2n+boと書く。仮りの剰
余はb,十boであり、結果をc,〆+coと書くと、
剰余はco+c,(ここでc,は0か1)となり、この
剰余が2n−1に等しければ桁上りc2を1とし剰余を
0にする。等しくなければco+c,が剰余であり桁上
りc2を0とする。一方、仮りの商は、
Z(ak−,2(k‐2)n+ak‐,2
(k‐3)n+…..・十ak‐,)十(ak‐22(
k‐3)n+ak−22(k‐4)n+・・・・・・十
ak−2)十……十(a2?十a2)十(a,)であり
、この結果にb,十c.十c2が加算され、商が求まる
。
次に説明する図面では仮りの商を計算するために、次の
ような計算を行っている。
ような計算を行っている。
最下位桁=ak‐,十ak‐2十ak‐3十.・・.・
・十a・下2桁目=ak‐,十ak‐2十ar3十……
十&・:最上位桁=ak‐1 計算は通常の加算であり、2nよりも大きな結果がでる
と上位桁へのキヤリーを生ずる。
・十a・下2桁目=ak‐,十ak‐2十ar3十……
十&・:最上位桁=ak‐1 計算は通常の加算であり、2nよりも大きな結果がでる
と上位桁へのキヤリーを生ずる。
次に図面を用いて詳細に説明する。
図は、本発明の・一実施例を示すブロック図である。
説明を簡単にするためぞ−1、すなわち31による割り
算を考え、割られる2進数をla行、すなわち、亥8−
1以下の値とする。この値を最下位から順に5桁づつの
ブロックに分け、順にブロックー,2,3,4と呼ぶ。
この2進数はあらかじめレジスタREG格納されている
ものとする。ブロック1,2,3,4はそれぞれ、転送
線B1,B2,B3,B4を介して、除算装置DIVに
送られる。5桁加算回路AO1,A02,A03,A0
4とオール1検出回路DOCは剰余を求めるために用意
されている。
算を考え、割られる2進数をla行、すなわち、亥8−
1以下の値とする。この値を最下位から順に5桁づつの
ブロックに分け、順にブロックー,2,3,4と呼ぶ。
この2進数はあらかじめレジスタREG格納されている
ものとする。ブロック1,2,3,4はそれぞれ、転送
線B1,B2,B3,B4を介して、除算装置DIVに
送られる。5桁加算回路AO1,A02,A03,A0
4とオール1検出回路DOCは剰余を求めるために用意
されている。
加算回路AOIは転伝送線BIとB2の内容を加算し、
5桁の出力を転送線ROIを介して加算回路A02へキ
ャリー(桁上り)を転送線COIを介して加算回路A0
2に送る。加算回路A02は転送線B3とROIの内容
と転送線COIのキャリーを加算する。同様に加算回路
AD3は転送線R02とBIの内容と転民鑑線C02の
内容を加算し、加算回路A04は、転送線R03とC0
3を加算し、結果を転送線R04を介してオール1検出
回路DOCに送る。オール1検出回路DOCは、転送線
F04の内容がすべて1、この場合5桁がすべて1、な
らば、転送線DDDにキャリーを送るとともに転送線D
Iにすべて0、5桁がすべて1でなければそのまま転送
線R04の内容を転送線D1に送る。このDIが剰余で
ある。一方、加算回路AO1,A02,A03,A04
およびオール1検出回路DOCからのキヤリー転送線C
O1,C02,C03,C04,ODDは加算回路A0
5,A06,A07,A08により加算され、転送線R
08にその結果が送られる。
5桁の出力を転送線ROIを介して加算回路A02へキ
ャリー(桁上り)を転送線COIを介して加算回路A0
2に送る。加算回路A02は転送線B3とROIの内容
と転送線COIのキャリーを加算する。同様に加算回路
AD3は転送線R02とBIの内容と転民鑑線C02の
内容を加算し、加算回路A04は、転送線R03とC0
3を加算し、結果を転送線R04を介してオール1検出
回路DOCに送る。オール1検出回路DOCは、転送線
F04の内容がすべて1、この場合5桁がすべて1、な
らば、転送線DDDにキャリーを送るとともに転送線D
Iにすべて0、5桁がすべて1でなければそのまま転送
線R04の内容を転送線D1に送る。このDIが剰余で
ある。一方、加算回路AO1,A02,A03,A04
およびオール1検出回路DOCからのキヤリー転送線C
O1,C02,C03,C04,ODDは加算回路A0
5,A06,A07,A08により加算され、転送線R
08にその結果が送られる。
加算回路AI1,AI2,AI3は商の最下位桁を決定
するものである。
するものである。
加算回路AI Iは転送線B2,B3を介してブロック
2とブロック3の内容を加算し結果を転送線RIIへキ
ャリーを転送線CIIへ送る。
2とブロック3の内容を加算し結果を転送線RIIへキ
ャリーを転送線CIIへ送る。
加算回路AI2は転送線RIIの内容と転送線B4を介
して送られてくるブロック4の内容とを加算し、結果を
転送線R12へキャリーを転送線C12に送る。加算回
路AI3は、転送線R12の内容と、加算回路A08か
らの加算されたキャリ−が転送される転送線R08の内
容を加算し、キャリを転送線C13に送り、結果を転送
線○2に置く、この転送線D2の内容が商の最下位桁で
ある。転送線CI1,C12,C13の内容は加算回路
AI4とAI5により加算され、転送線R15を介して
上位桁に送られる。次の上位桁の計算は加算回路A21
とA22により行われる。
して送られてくるブロック4の内容とを加算し、結果を
転送線R12へキャリーを転送線C12に送る。加算回
路AI3は、転送線R12の内容と、加算回路A08か
らの加算されたキャリ−が転送される転送線R08の内
容を加算し、キャリを転送線C13に送り、結果を転送
線○2に置く、この転送線D2の内容が商の最下位桁で
ある。転送線CI1,C12,C13の内容は加算回路
AI4とAI5により加算され、転送線R15を介して
上位桁に送られる。次の上位桁の計算は加算回路A21
とA22により行われる。
加算回路A21は、転送線B3とB4の内容を加算し、
結果を転送線R21へ、キャリーをC21へ送る。加算
回路A22は転送線R21と加算回路A15からの転送
線R15の内容を加算し、キャリーを転送線C22へ、
結果を転恥送線D3に送る。転送線○3の内容が下位2
桁の内容を示す。
結果を転送線R21へ、キャリーをC21へ送る。加算
回路A22は転送線R21と加算回路A15からの転送
線R15の内容を加算し、キャリーを転送線C22へ、
結果を転恥送線D3に送る。転送線○3の内容が下位2
桁の内容を示す。
加算回路A23とA24は技上位桁の計算を行う。加算
回路A23は転送線B4と転送線C21の内容を加算し
、結果を転送線R23に送り、加算回路A24は転送線
R23と転送線C22を加算し、結果を転送線D4に送
る。この転送線D4の内容が欧上位桁の内容である。こ
の装置の実際の動きを説明するため、2622をジー1
で割り算する場合を例にとる。
回路A23は転送線B4と転送線C21の内容を加算し
、結果を転送線R23に送り、加算回路A24は転送線
R23と転送線C22を加算し、結果を転送線D4に送
る。この転送線D4の内容が欧上位桁の内容である。こ
の装置の実際の動きを説明するため、2622をジー1
で割り算する場合を例にとる。
2622=母鞍。
皆皆(2進表現)B十B2十B3十&=10010(1
0はキヤ1」−)剰余=010十10=100=4(I
Q隼)B+B2十B3十10=1110(1はキヤIJ
−)B+B2十1=110(キヤリーはなし)B=10
1 商=101110110=374(IG隼)となり、普
通に計算した結果と一致する。
0はキヤ1」−)剰余=010十10=100=4(I
Q隼)B+B2十B3十10=1110(1はキヤIJ
−)B+B2十1=110(キヤリーはなし)B=10
1 商=101110110=374(IG隼)となり、普
通に計算した結果と一致する。
以上説明したように本発明によれば、2n−1による割
り算は、簡単な加算により実現でき、高速に計算できる
とともにより少ないハードウェア量で実現できる。
り算は、簡単な加算により実現でき、高速に計算できる
とともにより少ないハードウェア量で実現できる。
なお、以上の説明では、グー1やグー1といったように
nの値として具体的な整数を使用しているが、任意の整
数の場合に対する拡張を束縛するものではない。
nの値として具体的な整数を使用しているが、任意の整
数の場合に対する拡張を束縛するものではない。
また、図は、説明を簡単にするため、わかりやすい回路
構成を採用しているが、キャリールックアヘッドを使用
した高速化が考えられるが、本発明と既存の高速化手段
の組合せにすぎない。
構成を採用しているが、キャリールックアヘッドを使用
した高速化が考えられるが、本発明と既存の高速化手段
の組合せにすぎない。
図は本発明の一実施例を示す除算装置のブロック図を示
す。 図において、REGは割られる2進数が格納されるレジ
スタ、DWは除算装置、AO1,A02,A03,A0
4,A05,A06,A07,A08,AIl,AI2
,AI3,AI4,AI5,A21,A22,A23,
A24は5桁加算回路、DOCはオール1検出装置をそ
れぞれ示す。
す。 図において、REGは割られる2進数が格納されるレジ
スタ、DWは除算装置、AO1,A02,A03,A0
4,A05,A06,A07,A08,AIl,AI2
,AI3,AI4,AI5,A21,A22,A23,
A24は5桁加算回路、DOCはオール1検出装置をそ
れぞれ示す。
Claims (1)
- 【特許請求の範囲】 1 与えられたK桁の2^n進数(但し、nは正の整数
)であるa_k_−_12^(^k^−^1^)^n+
a_k_−_22^(^k^−^2^)^n+……+a
_0(但し、0≦a_i<2^n,i∈〔0,k−1〕
を2^n−1で割り、商と剰余を求める除算装置におい
て、前記2_n進数のすべての係数(a_k_−_1,
a_k_−_2,……,a.)を加算し、加算結果の下
n桁を超える内容(キヤリーと呼ぶ)が0でなければ、
加算結果のキヤリーが0になるまで繰り返し加算結果の
キヤリーと下n桁の内容を加算する第1の加算手段と、
前記第1の加算手段の出力であるn桁の内容が2^n−
1に等しければ、キヤリーを1にするとともに剰余を0
にし、等しくなければ、キヤリーを0にするとともに前
記第1の加算手段の出力を剰余とするオール1検出手段
と、(a_k_−_12^(^k^−^2^)^n+a
_k_−_12^(^k^−^3^)^n+……+a_
k_−_1)+(a_k_−_22^(^k^−^3^
)^n+a_k_−_22^(^k^−^4^)^n+
……+a_k_−_2)+(a_k_−_32^(^k
^−^4^)^n+a_k_−_32^(^k^−^5
^)^n+……+a_k_−_3)+……+(a_22
^n+a_2)+a_1を計算し計算結果に第1の加算
手段で生成されたすべてのキヤリーとオール1検出手段
で生成されたキヤリーを加算し、加算結果を商とする第
2の加算手段により構成されることを特徴とする除算装
置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP54087825A JPS6016650B2 (ja) | 1979-07-11 | 1979-07-11 | 除算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP54087825A JPS6016650B2 (ja) | 1979-07-11 | 1979-07-11 | 除算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5611548A JPS5611548A (en) | 1981-02-04 |
JPS6016650B2 true JPS6016650B2 (ja) | 1985-04-26 |
Family
ID=13925721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP54087825A Expired JPS6016650B2 (ja) | 1979-07-11 | 1979-07-11 | 除算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6016650B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5938850A (ja) * | 1982-08-27 | 1984-03-02 | Toshiba Corp | 割算回路 |
JPS5952234U (ja) * | 1982-09-30 | 1984-04-06 | リズム自動車部品製造株式会社 | ブレ−キ用ドラム |
JPH05184205A (ja) * | 1992-06-29 | 1993-07-27 | Isao Minagawa | 整畦機における畦叩き装置 |
-
1979
- 1979-07-11 JP JP54087825A patent/JPS6016650B2/ja not_active Expired
Also Published As
Publication number | Publication date |
---|---|
JPS5611548A (en) | 1981-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3599352B2 (ja) | フレキシブルなn−ウェイ・メモリ・インターリーブ方式 | |
US20050256917A1 (en) | Address generators integrated with parallel FFT for mapping arrays in bit reversed order | |
JPH04216588A (ja) | Rsa符号化法を実施する方法及び装置 | |
JPS6256536B2 (ja) | ||
US4916649A (en) | Method and apparatus for transforming a bit-reversed order vector into a natural order vector | |
JPH022171B2 (ja) | ||
US20030120887A1 (en) | Memory allocation method using multi-level partition | |
KR100423893B1 (ko) | 컴퓨터 산술 연산을 위한 부분 일치 부분 출력 캐쉬 | |
JP2502836B2 (ja) | 除算回路の前処理装置 | |
EP0483454A2 (en) | Fast fourier transform using balanced coefficients | |
US4991132A (en) | Apparatus for executing division by high-speed convergence processing | |
JPS6016650B2 (ja) | 除算装置 | |
Muscedere et al. | On efficient techniques for difficult operations in one and two-digit DBNS index calculus | |
US4723258A (en) | Counter circuit | |
US5381380A (en) | Divide circuit having high-speed operating capability | |
JP3435744B2 (ja) | 乗算回路 | |
JP2605792B2 (ja) | 演算処理装置 | |
JP2972326B2 (ja) | 平方根計算装置 | |
RU2113010C1 (ru) | Многопроцессорная векторная эвм | |
SU752335A1 (ru) | Множительное устройство | |
JPH0434191B2 (ja) | ||
SU1809438A1 (en) | Divider | |
JPH04314126A (ja) | 逆数発生装置 | |
SU754415A1 (ru) | Устройство для деления двоичных чисел 1 | |
JP2835366B2 (ja) | 高速フーリエ変換用アドレス情報発生装置 |