JPS5949616B2 - 演算方式 - Google Patents
演算方式Info
- Publication number
- JPS5949616B2 JPS5949616B2 JP51122871A JP12287176A JPS5949616B2 JP S5949616 B2 JPS5949616 B2 JP S5949616B2 JP 51122871 A JP51122871 A JP 51122871A JP 12287176 A JP12287176 A JP 12287176A JP S5949616 B2 JPS5949616 B2 JP S5949616B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- register
- arithmetic
- executed
- 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
- 238000000034 method Methods 0.000 title claims description 8
- 238000004364 calculation method Methods 0.000 description 13
- 230000000295 complement effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 241000270730 Alligator mississippiensis Species 0.000 description 1
- 101100524644 Toxoplasma gondii ROM4 gene Proteins 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Description
【発明の詳細な説明】
本発明は演算結果を得るために同一演算命令を複数回繰
わ返し実行する必要があるような演算(例えば乗算)の
演算方式に関するものである。
わ返し実行する必要があるような演算(例えば乗算)の
演算方式に関するものである。
従来、このような演算の演算方式としては、同一演算命
令を繰り返し実行させるべき回数をデータとして与え、
上記演算命令を1回実行する毎に該データから1を減じ
、この値が0になつた時点で演算終了とする方式が最も
一般的である。第1図にこの演算方式のフローチャート
を示す。この演算方式の場合、第1図のごと<、まずス
テップaでデータがoかどうか判断し、0でなければ、
ステップをでデータから1を減じステップcで演算命令
を実行し、再びステップaに戻るループが形成されてお
わ、データがNであればN回ループして3×N個のステ
ップの演算時間を費す。本発明の目的は上述のループで
費すステップ数を削減し演算時間の短縮化を図ることに
ある。以下、演算結果を得るために同一演算命令を複数
回繰り返し実行する必要がある演算として乗算を例にと
り図面を参照して本発明を詳細に説明する。第2図は従
来のROMおよびレジスタによる演算方式の乗算ルーチ
ンのフローチャートである。
令を繰り返し実行させるべき回数をデータとして与え、
上記演算命令を1回実行する毎に該データから1を減じ
、この値が0になつた時点で演算終了とする方式が最も
一般的である。第1図にこの演算方式のフローチャート
を示す。この演算方式の場合、第1図のごと<、まずス
テップaでデータがoかどうか判断し、0でなければ、
ステップをでデータから1を減じステップcで演算命令
を実行し、再びステップaに戻るループが形成されてお
わ、データがNであればN回ループして3×N個のステ
ップの演算時間を費す。本発明の目的は上述のループで
費すステップ数を削減し演算時間の短縮化を図ることに
ある。以下、演算結果を得るために同一演算命令を複数
回繰り返し実行する必要がある演算として乗算を例にと
り図面を参照して本発明を詳細に説明する。第2図は従
来のROMおよびレジスタによる演算方式の乗算ルーチ
ンのフローチャートである。
図中、Xは演算結果を格納するレジスタ、Yは被演算数
を格納するレジスタ、zは演算数を格納するレジスタで
ある。まず同図ステップ1でZレジスタの最下位桁ZL
が0であるか判断をし、次に\0であればZLから1を
減じ(同図ステップ2)、次に加算命令X + Y−−
Xを実行し同図ステップ1へ戻る。
を格納するレジスタ、zは演算数を格納するレジスタで
ある。まず同図ステップ1でZレジスタの最下位桁ZL
が0であるか判断をし、次に\0であればZLから1を
減じ(同図ステップ2)、次に加算命令X + Y−−
Xを実行し同図ステップ1へ戻る。
もしステップ1でZL=0となればステップ4、5を実
行しXおよびZのレジスタを1桁右シフト(RS)する
。ステップ5でzレジスタがすべてoすなわちZ=0な
らば演算を終了し、z\0ならば再びステップ1へ移り
Z=0になるまで同様のループをくわかえす。上記乗算
ルーチン中最も演算時間のかかるのはステップ1−2−
3のループである。
行しXおよびZのレジスタを1桁右シフト(RS)する
。ステップ5でzレジスタがすべてoすなわちZ=0な
らば演算を終了し、z\0ならば再びステップ1へ移り
Z=0になるまで同様のループをくわかえす。上記乗算
ルーチン中最も演算時間のかかるのはステップ1−2−
3のループである。
すなわちzレジスタがN桁で各桁の内容がすべて9であ
れば3×9×N=27Nステップをついやすことになる
。また第2図においては、ステップ3からステップ1へ
自由にアドレスが移れるハードウェアを想定したが、ア
ドレス指定を逐次カウンターにより+1して行なう方式
に訃いては、ステツプ3からステツプ1へシーケンスを
制御する場合アドレスジヤンプ命令(JUMP)が必要
となり、前述のループは4×9XN=36Nステツプに
なる。
れば3×9×N=27Nステップをついやすことになる
。また第2図においては、ステップ3からステップ1へ
自由にアドレスが移れるハードウェアを想定したが、ア
ドレス指定を逐次カウンターにより+1して行なう方式
に訃いては、ステツプ3からステツプ1へシーケンスを
制御する場合アドレスジヤンプ命令(JUMP)が必要
となり、前述のループは4×9XN=36Nステツプに
なる。
一方、ステツプ1−4−5−6−1のループは処理桁に
つき1度しかないので4×N=4Nステツプをついやす
にすぎない。すなわち、本発朋は上記1−2−3のルー
プが上記1−4−5−6−1のループに比べて費すステ
ツプ数が多いことに着目し該1−2−3のループがつい
やすステツプ数を削減することにより演算時間の短縮を
図つたものである。
つき1度しかないので4×N=4Nステツプをついやす
にすぎない。すなわち、本発朋は上記1−2−3のルー
プが上記1−4−5−6−1のループに比べて費すステ
ツプ数が多いことに着目し該1−2−3のループがつい
やすステツプ数を削減することにより演算時間の短縮を
図つたものである。
次に、第3図、第4図を用い本発明の乗算に対する一実
施例を説明する。
施例を説明する。
第3図は本発明の一実施例のハードウエアを示したもの
である。
である。
図において、1aと1bとを含む部分が演算結果を格納
するXレジスタ、2が被演算数を格納するYレジスタ、
3aと3bとを含む部分が演算数(すなわち加算命令X
+Y−Xを繰り返し実行すべき回数データ)を格納する
zレジスタであb1いずれも循環保持型のレジスタであ
る。なお、1b1 3bはそれぞれXレジスタ、Zレジ
スタの4ビツトからなる最下位桁格納部である。4は読
み出し専用メモリ(以下ROMと称す)、5はROM4
のアドレスを指定するアドレス指定レジスタ(以下AR
と称す)、6はインストラクシヨンデコーダ(以下1D
と称す)、7は10進加算機能を有するフル・アダー(
以下FAと称す)、8は指定された桁に相当するタイミ
ング信号を発生するカウンタ、9は4ビツトのラツチ、
10は判定回路、11〜18はID6のインストラクシ
ヨンにより開閉するゲータ、19〜29は信号線である
。
するXレジスタ、2が被演算数を格納するYレジスタ、
3aと3bとを含む部分が演算数(すなわち加算命令X
+Y−Xを繰り返し実行すべき回数データ)を格納する
zレジスタであb1いずれも循環保持型のレジスタであ
る。なお、1b1 3bはそれぞれXレジスタ、Zレジ
スタの4ビツトからなる最下位桁格納部である。4は読
み出し専用メモリ(以下ROMと称す)、5はROM4
のアドレスを指定するアドレス指定レジスタ(以下AR
と称す)、6はインストラクシヨンデコーダ(以下1D
と称す)、7は10進加算機能を有するフル・アダー(
以下FAと称す)、8は指定された桁に相当するタイミ
ング信号を発生するカウンタ、9は4ビツトのラツチ、
10は判定回路、11〜18はID6のインストラクシ
ヨンにより開閉するゲータ、19〜29は信号線である
。
第4図は本発明の一実施例である乗算ルーチンのフロー
チヤートを示した図である。
チヤートを示した図である。
第4図において、各命令ステツプの右肩の数字はステツ
プ番号、左側のARL=0〜9はROM4における各命
令ステツプのアドレスの下位番地(ARL)が0〜9で
あることを示す。ステツプ1のZL−→ARLなる命令
がROM4より読み出されると、まずインストラクシヨ
ン19eによりzレジスタの内容を信号線23に出力さ
せるべくゲート16を開かせる。次に、インストラクシ
ヨン19jによりカウンタ8にZ1に相当するタイミン
グ信号を発生させ、同時にインストラクシヨン19hに
よりゲート17を上記タイミング信号期間開かせる。こ
れによつて、信号線24にZLの内容を出力し9にラツ
チさせる。次に実行すべき命令のアドレスはROM出力
の一部28、29によつて指定されるのであるが、ZL
−ARL実行時にはインストラクシヨン191が29の
替りにラツチ7の出力を信号線25を介してAR5の下
位4ビツト5bに入力させる。このようにカウンタ8と
ゲート17とラツチ9とはZレジスタの最下位桁ZLを
AR5に転送する手段を構成している。従つてZLの内
容が9ならばステツプ2へ移行し、上から1番目の加算
命令X+Y−Xを実行する。この時はインストラクシヨ
ン19cによりゲート13がFA7へXレジスタの内容
を出力し、Yレジスタの内容はインストラクシヨン19
eによりゲート14が開かれることによりFA7に入る
。FA7は10進加算をしその結果は信号線26を通じ
インストラクシヨン19aによつて開かれたゲート11
を介し再びXレジスタに入る。ステツプ2の命令を実行
する時、ROM4は信号線28、29を介して次に実行
すべきアドレスとしてステツプ3(ARL=8)を指定
する。X+Y−Xの命令はステツプ10の上から9番目
まで同様にして9回実行され、zL=m(mは0から9
までの整数)ならば上から9−m+1番目目の加算命令
までm回X+Y−Xの命令を実行する。ステツプ11の
zレジスタ右シフト命令(Z→RS)がROM4より読
み出させると、インストラクシヨン19fによりゲート
15が開き、信号線22を通じて信号が循環する。ステ
ツプ12においても、インストラクシヨン19bにより
開いたゲート12と、信号線26と、インストラクシヨ
ン19aにより開いたゲート11とにより右シフトパス
を形成し、Xレジスタ右シフト命令(X−RS)を実行
する。続いてステツプ13ではインストラクシヨン19
gにより判定回路10へzレジスタの内容が出力され、
ZX0ならば信号線27へアドレス修飾信号を出し、次
実行アドレスをステツプ1に戻す。上述の様に各ステツ
プを実行すると、第2図のループ1−2−3に相当する
ステツプ数はzの各桁の内容がすべて9であつても(9
+1)×N=10Nステツプで済ませられる。
プ番号、左側のARL=0〜9はROM4における各命
令ステツプのアドレスの下位番地(ARL)が0〜9で
あることを示す。ステツプ1のZL−→ARLなる命令
がROM4より読み出されると、まずインストラクシヨ
ン19eによりzレジスタの内容を信号線23に出力さ
せるべくゲート16を開かせる。次に、インストラクシ
ヨン19jによりカウンタ8にZ1に相当するタイミン
グ信号を発生させ、同時にインストラクシヨン19hに
よりゲート17を上記タイミング信号期間開かせる。こ
れによつて、信号線24にZLの内容を出力し9にラツ
チさせる。次に実行すべき命令のアドレスはROM出力
の一部28、29によつて指定されるのであるが、ZL
−ARL実行時にはインストラクシヨン191が29の
替りにラツチ7の出力を信号線25を介してAR5の下
位4ビツト5bに入力させる。このようにカウンタ8と
ゲート17とラツチ9とはZレジスタの最下位桁ZLを
AR5に転送する手段を構成している。従つてZLの内
容が9ならばステツプ2へ移行し、上から1番目の加算
命令X+Y−Xを実行する。この時はインストラクシヨ
ン19cによりゲート13がFA7へXレジスタの内容
を出力し、Yレジスタの内容はインストラクシヨン19
eによりゲート14が開かれることによりFA7に入る
。FA7は10進加算をしその結果は信号線26を通じ
インストラクシヨン19aによつて開かれたゲート11
を介し再びXレジスタに入る。ステツプ2の命令を実行
する時、ROM4は信号線28、29を介して次に実行
すべきアドレスとしてステツプ3(ARL=8)を指定
する。X+Y−Xの命令はステツプ10の上から9番目
まで同様にして9回実行され、zL=m(mは0から9
までの整数)ならば上から9−m+1番目目の加算命令
までm回X+Y−Xの命令を実行する。ステツプ11の
zレジスタ右シフト命令(Z→RS)がROM4より読
み出させると、インストラクシヨン19fによりゲート
15が開き、信号線22を通じて信号が循環する。ステ
ツプ12においても、インストラクシヨン19bにより
開いたゲート12と、信号線26と、インストラクシヨ
ン19aにより開いたゲート11とにより右シフトパス
を形成し、Xレジスタ右シフト命令(X−RS)を実行
する。続いてステツプ13ではインストラクシヨン19
gにより判定回路10へzレジスタの内容が出力され、
ZX0ならば信号線27へアドレス修飾信号を出し、次
実行アドレスをステツプ1に戻す。上述の様に各ステツ
プを実行すると、第2図のループ1−2−3に相当する
ステツプ数はzの各桁の内容がすべて9であつても(9
+1)×N=10Nステツプで済ませられる。
これは第2図のZL−1−ZL及びZL\0の命令をN
回実行する代りに、Z,−ARLの命令と連続して実行
される様にアドレスを割6つけた9ステツプのX+Y−
X命令とを用いたからである。なお、ZL−ARLの機
能は通常データによつてアドレスを制御される手段とし
て多くの電卓のハードウエアに備えられている。
回実行する代りに、Z,−ARLの命令と連続して実行
される様にアドレスを割6つけた9ステツプのX+Y−
X命令とを用いたからである。なお、ZL−ARLの機
能は通常データによつてアドレスを制御される手段とし
て多くの電卓のハードウエアに備えられている。
本発明によれば演算に使用されるROMのステツプ数を
わずか増加させるのみで簡単に演算時間の短縮を図るこ
とが可能になる。
わずか増加させるのみで簡単に演算時間の短縮を図るこ
とが可能になる。
次にシステムが逐次カウンターによりアドレスを+1し
て指定する場合を考えると、筆4図の様に次に実行すべ
きアドレスを9番地から直接8番地に指定することは不
可能である。
て指定する場合を考えると、筆4図の様に次に実行すべ
きアドレスを9番地から直接8番地に指定することは不
可能である。
しかし計算機に補数命令ZL−ZLがあれば、第5図の
ごとくZL−ARLの命令の直前スアツプとしてZL一
Z1なる命令ステツプを設け9個の加算命令の番地AR
Lを06〜14に割り付けることにより本発明により本
発明を実施できる。何故ならば、2進4ビツトで考える
なら9の補数は6でありARL=06番地から逐次14
番地までX+Y−Xが実行されるからである。以上に乗
算を例にとり本発明を説明したが、本発明はそれに限定
されるものではなく、演算結果を得るために同一演算命
令を複数回繰b返し実行する必要があるその他の演算に
も本発明が適用可能であることは勿論である。
ごとくZL−ARLの命令の直前スアツプとしてZL一
Z1なる命令ステツプを設け9個の加算命令の番地AR
Lを06〜14に割り付けることにより本発明により本
発明を実施できる。何故ならば、2進4ビツトで考える
なら9の補数は6でありARL=06番地から逐次14
番地までX+Y−Xが実行されるからである。以上に乗
算を例にとり本発明を説明したが、本発明はそれに限定
されるものではなく、演算結果を得るために同一演算命
令を複数回繰b返し実行する必要があるその他の演算に
も本発明が適用可能であることは勿論である。
筆1図は従来の演算方式のフローチヤートを示した図、
填2図は従来の乗算の演算方式のフローチヤートを示し
た図、第3図は本発明の一実施例のハードウエアを示し
たブロツク図、第4図は本発明の一実施例のフローチヤ
ートを示した図、第5図は本発明の他の実施例のフロー
チヤートを示した図である。
填2図は従来の乗算の演算方式のフローチヤートを示し
た図、第3図は本発明の一実施例のハードウエアを示し
たブロツク図、第4図は本発明の一実施例のフローチヤ
ートを示した図、第5図は本発明の他の実施例のフロー
チヤートを示した図である。
Claims (1)
- 1 同一演算を複数回連続して実行する演算方式におい
て、演算命令が格納されているメモリと、このメモリへ
アドレスを供給して前記演算命令を読み出すアドレス手
段と、同一演算を繰り返し実行すべき回数を指定する回
数データを格納する手段と、前記回数データを前記アド
レス手段に送る手段とを有し、前記回数データを前記ア
ドレスの一部として用い、該アドレスによつて指定され
る回数分連続して前記演算命令を読み出し、それによつ
て連続して演算を実行するようにしたことを特徴とする
演算方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP51122871A JPS5949616B2 (ja) | 1976-10-15 | 1976-10-15 | 演算方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP51122871A JPS5949616B2 (ja) | 1976-10-15 | 1976-10-15 | 演算方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS5348631A JPS5348631A (en) | 1978-05-02 |
| JPS5949616B2 true JPS5949616B2 (ja) | 1984-12-04 |
Family
ID=14846685
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP51122871A Expired JPS5949616B2 (ja) | 1976-10-15 | 1976-10-15 | 演算方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS5949616B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| USD603346S1 (en) | 2008-12-11 | 2009-11-03 | Black & Decker Inc. | Automatic light switch |
-
1976
- 1976-10-15 JP JP51122871A patent/JPS5949616B2/ja not_active Expired
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| USD603346S1 (en) | 2008-12-11 | 2009-11-03 | Black & Decker Inc. | Automatic light switch |
Also Published As
| Publication number | Publication date |
|---|---|
| JPS5348631A (en) | 1978-05-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4635292A (en) | Image processor | |
| US4539635A (en) | Pipelined digital processor arranged for conditional operation | |
| JPS6351287B2 (ja) | ||
| JPH03286332A (ja) | デジタルデータ処理装置 | |
| US3234367A (en) | Quotient guess divider | |
| US4598358A (en) | Pipelined digital signal processor using a common data and control bus | |
| US5349671A (en) | Microprocessor system generating instruction fetch addresses at high speed | |
| US3001708A (en) | Central control circuit for computers | |
| JPS6051733B2 (ja) | 指数関数演算装置 | |
| US5390306A (en) | Pipeline processing system and microprocessor using the system | |
| US5014233A (en) | Divider for carrying out high speed arithmetic operation | |
| US4878191A (en) | Multiplication circuit capable of operating at a high speed with a small amount of hardware | |
| JPH034936B2 (ja) | ||
| RU2066067C1 (ru) | Центральный процессор для многопроцессорной вычислительной системы | |
| US4723258A (en) | Counter circuit | |
| US5650952A (en) | Circuit arrangement for forming the sum of products | |
| JPH0222413B2 (ja) | ||
| JPS63111535A (ja) | デ−タ処理装置 | |
| JP3166781B2 (ja) | 加算回路 | |
| JPS6115233A (ja) | 乗算器 | |
| JPS6236255B2 (ja) | ||
| JP2605792B2 (ja) | 演算処理装置 | |
| SU1200280A1 (ru) | Устройство дл умножени | |
| GB857511A (en) | Improvements in or relating to dividing multiplying arrangements for electronic digital computing machines | |
| JPH06162067A (ja) | ベクトル命令制御装置および制御方法 |