JPH047737A - 可変長10進減算装置 - Google Patents

可変長10進減算装置

Info

Publication number
JPH047737A
JPH047737A JP2108863A JP10886390A JPH047737A JP H047737 A JPH047737 A JP H047737A JP 2108863 A JP2108863 A JP 2108863A JP 10886390 A JP10886390 A JP 10886390A JP H047737 A JPH047737 A JP H047737A
Authority
JP
Japan
Prior art keywords
data
subtraction
digits
register
digit
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.)
Pending
Application number
JP2108863A
Other languages
English (en)
Inventor
Makoto Ito
信 伊藤
Shigeo Hiraoka
平岡 茂雄
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2108863A priority Critical patent/JPH047737A/ja
Publication of JPH047737A publication Critical patent/JPH047737A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、パーソナルコンピュータ等の電子式計算機に
搭載され、可変長データの10進減算処理を行なう可変
長10進減算装置に関する。
[発明の概要] 本発明の可変長10進減算装置は、被演算データ及び演
算データをそれぞれ下位桁から所定桁単位で分割して繰
返し減算処理することにより演算処理の高速化を図ると
共に、上記所定桁単位の減算処理毎に上位桁へのボロー
データの有無を記憶し、減算処理の終了時において上記
ボローデータかある場合にその減算結果に対し負の補正
演算を行なうことにより、新たな補正命令を与えること
なく、常に絶対値表現の減算結果か得られるようにする
ものである。
[従来の技術] 従来、一般に、パーソナルコンピュータ等の電子式計算
機における演算処理装置では、演算可能な桁数が予め固
定桁として与えられている。このため、固定桁数に満た
ない数値データの演算処理を行なう場合でも、不要桁に
対する演算処理も実行されるので、演算時間高速化の妨
げとなってL)る。
そこで、可変長データの演算処理を可能にすることで、
不要桁に対する演算処理をなくし、演算時間の高速化を
図った「可変長データ演算装置」(実願昭62−147
376号)か本出願人により考えられている。
[発明が解決しようとする課題] しかしながら、この「可変長データ演算装置」に記載さ
れた演算処理技術によっても、桁単位で演算処理を実行
するため、被演算データあるいは演算データの桁数が多
い場合には、演算時間か遅くなる欠点かある。
また、10進減算処理を行なった場合、その減算結果が
負であると補数表現されたままの状態になるので、これ
を改めて絶対値表現に補正する必要がある。この場合、
所定の減算命令に加えて新たに減算結果に対する補正命
令を与える必要があり、演算時間高速化を妨げる原因と
なる。
このような演算時間高速化妨げの原因は、上記「可変長
データ演算装置」を例にすれば、演算処理が桁単位で繰
返し実行されること、また、補数表現された減算結果に
対して新たに補正命令を与える必要が有ることにあると
考えられる。
してみれば、演算処理を複数桁単位で繰返し実行すると
共に、その演算結果か負であることの情報を得ておき、
この負情報の有無に応じて補正演算が実行されるように
すれば、演算データの桁数が多くても、また、減算結果
が負であっても、演算時間が遅くならなくなるのは明ら
かである。
本発明の課題は、桁単位での演算処理の実行、及び減算
結果が補数表現で得られる場合の新たな補正命令を行な
うことなく、演算処理速度の高速化が可能になる可変長
10進減算装置を提供することにある。
[課題を解決するための手段] 本発明の手段は次の通りである。
(1)所定桁単位で10進減算を行なう減算回路。
例えば論理演算装置で構成されたALU (演算処理装
置)であり、データバスが16ビツトである場合、1桁
4ビツトの4桁単位で減算処理を行なう。
(2)上記減算回路により得られた減算結果データの上
位桁へのボローの有無を記憶するボローメモリ。
例えばRAM等で構成されたフラグレジスタであり、上
記ALUからのボローフラグが書込まれる。
(3)10進の被演算データ及び演算データを互いに下
位桁から上記所定桁単位で順次分割する演算データ分割
手段。
例えば予め設定されたプログラムに応じて動作するCP
Uにより制御されるもので、可変長データ記憶部からの
被演算データ及び演算データの4桁毎のデータ読出し処
理である。
(4)上記演算データ分割手段における上記被演算デー
タ及び演算データの分割回数を記憶する分割数メモリ。
例えばRAM等で構成されたデータレジスタであり、上
記4桁毎の読出し処理に応じてデータ“1”が加算され
る。
(5)上記演算データ分割手段により所定桁単位で順次
分割された被演算データ及び演算データを上記減算回路
において上記ボローメモリにおけるボロー状態に応じて
上記分割数メモリに記憶される分割回数性繰返し減算処
理させる減算制御手段。
例えば予め設定されたプログラムに応して動作するCP
Uにより制御されるもので、上記データ読出し処理によ
り得られた4桁毎の被演算データ及び演算データを上記
ALUに順次転送し、その演算結果を出力させると共に
、この演算結果に応じたボローデータを上記フラグ1/
ジスタに書込む処理である。
(6)上記減算制御手段に応じた繰返し減算処理の後上
記ボローメモリにボローデータが有る場合には上記所定
桁単位の各減算結果データに対して負の補正演算を行な
う補正演算手段。
例えば予め設定されたプログラムに応して動作するCP
Uにより制御されるもので、上記フラグレジスタにボロ
ーフラグが有ることを判定し、上記ALUにより得られ
た減算結果をさらに負の補正データと共にALUに供給
し、絶対値による減算結果データを出力させる処理であ
る。
[作用コ 本発明の手段の作用は次の通りである。
演算データ分割手段により10進の被演算データ及び演
算データが互いに下位桁から所定桁単位で順次分割して
読出される。すると、この所定桁単位で分割された被演
算データ及び演算データは、減算制御手段により所定桁
単位で10進減算を行なう減算回路に順次供給され、ボ
ローメそりに記憶される上位桁へのボロー状態に応して
分割数メモリに記憶される上記被演算データ及び演算デ
ータの分割回数分繰返し減算処理される。そして、上記
減算制御手段に応じた繰返し減算処理の後上記ボローメ
そりにボローデータか有る場合には、補正演算手段によ
り上記所定桁単位の各減算結果データに対して負の補正
演算か行なわれる。
したがって、被演算データ及び演算データをそれぞれ下
位桁から所定桁単位で分割して繰返し減算処理すること
により演算処理の高速化か図れると共に、上記所定桁単
位の減算処理毎に上位桁へのボローデータの有無を記憶
し、減算処理の終了時において上記ボローデータかある
場合にはその減算結果に対し負の補正演算を行なうこと
により、新たな補正命令を与えることなく、常に絶対値
表現の減算結果が得られるようになる。
[実施例] 以下図面により本発明の一実施例について説明する。
第1図は可変長10進減算装置のシステム構成を示すも
ので、同図において、11はCPU (中央処理装置)
であり、このCPUI 1は予め設定されるプログラム
に応じて制御及びデータバス]2を介しシステム各部の
動作を制御する。
上記制御及びデータバス12には、ます、被演算データ
レジスタ(A)13及び演算データレジスタ(B)14
を通してALU (演算処理装置)15が接続される。
第2図は上記ALU (演算処理装置)15の内部構成
を示すもので、このALU15は、4つの減算回路15
a〜15dを並列にして備えている。
この減算回路15a〜15dは、それぞれ10進演算デ
ータの1桁を4ビツトにして減算処理を行なうもので、
つまり、減算回路15aには上記被演算データレジスタ
(A)1Bに格納された1桁目の被演算データと上記演
算データレジスタ(B)14に格納された]桁目の演算
データとが、それぞれ4ビツトデータA。−A3.Bo
−B3として与えられ、また、減算回路15bには2桁
目の被演算データと2桁目の演算データとか、それぞれ
4ビットデータA4〜A7.B4〜B7として与えられ
、また、減算回路15cには3桁目の被演算データと3
桁目の演算データとが、それぞれ4ビットデータA8〜
All、88〜Bl+として与えられ、さらに、減算回
路15dには4桁目の被演算データと4桁目の演算デー
タとか、それぞれ4ビツトデータA12〜A I5. 
812〜B15として与えられる。
すなわち、上記ALU (演算処理装W)15は、10
進データを4桁単位で減算処理するもので、上記各減算
回路15a〜15dには、そのそれぞれに上位桁へのボ
ローを指示するキャリ端子C6〜C9が備えられる。そ
して、4桁単位の減算処理毎に減算回路15dから出力
されるさらに上位桁へのボロー状態を示すキャリ信号は
、ボローフラグレジスタ16に書込まれる。このボロー
フラグレジスタ16におけるボローデータは上記減算回
路15aに与えられ次回4桁単位の減算処理に加味され
ると共に、制御及びデータバス12を介して上記CPU
、(中央処理装置)11に与えられる。また、上記AL
U (演算処理装W)15からの演算結果データも制御
及びデータバス12に出力される。
一方、予め被演算データや演算データとして入力された
10進の可変長データは、CPU (中央処理装置)1
4の制御により4折重位で分割してリードバッファ17
に読出され、デリミタ検出部17からデータ変換部19
を通して1桁4ビツトの16ビツトデータに変換され、
データバス12を介してデータRAM20に書込まれる
。このデータRAM20は、被演算データが格納される
第1アドレス領域と演算データが格納される第2アドレ
ス領域とを備えるもので、このデータRAM20の第1
アドレス領域に対するアドレス指示はリードアドレスレ
ジスタ(RA)21により行なわれ、第2アドレス領域
に対するアドレス指示はライトアドレスレジスタ(WA
)22により行なわれる。そして、リードアドレスレジ
スタ(RA)21及びライトアドレスレジスタ(WA)
22による指示アドレス値は、CPU11からの指令に
基づきアダー23により順次加算指定される。
ここで、リードアドレスレジスタ(RA)21における
初期アドレス値はリードレジスタ(R)24に格納され
、また、ライトアドレスレジスタ(WA)22における
初期アドレス値はライトレジスタ(W)25に格納され
る。
また、上記データRAM20に対する被演算データの分
割書込み回数はPレジスタ26により管理され、演算デ
ータの分割書込み回数はQレジスタ27により管理され
る。このPレジスタ26及びQレジスタ27に対するデ
ータ分割数の加算処理は、CPU11からの指令に基づ
きアダー28により行なわれる。ここで、上記Pレジス
タ26にて管理される被演算データの分割数PとQレジ
スタ27にて管理される演算データの分割数Qとは比較
器29により比較され、その比較データはCPUI 1
に出力される。
つまり、リードバッファ17を通しての被演算データ及
び演算データのそれぞれ4折重位の読出しに際し、デリ
ミタ検出部18において1デ一タ分の区切りを示すデリ
ミタ「、」か検出されると、被演算データ及び演算デー
タは何れも1デ一タ分データRAM20に書込まれたこ
とになる。ここで、デリミタの検出位置が4桁データの
途中にある場合には、このデリミタの検出位置から上位
桁に対しては強制的に“0”データか書込まれ、被演算
データ及び演算データは、それぞれ4の正数倍の桁数で
データRAM20に与えられる。そして、比較器29に
より比較される被演算データと演算データとの分割読出
し数が異なる場合には、被演算データまたは演算データ
何れか分割数が少ないほうのデータ、つまり短いほうの
データのさらに上位桁に対して上記比較分割数P:Qか
一致するまで強制的に4桁ずつの“0′データか与えら
れ、データRAM20における被演算データと演算デー
タとのデータ長が長いほうに合わされる。
さらに、制御及びデータ分割数2には、前記ALU (
演算処理装置)15における4折重位の減算処理回数を
管理する減算回数レジスタ(No)30、及び4折重位
の負の補正演算回数を管理する補正回数レジスタ(N、
)31か接続され、このレジスタ30及び31に対する
管理データの可変処理は、CPUI 1からの指令に基
づきアダー32により行なわれる。
次に、上記構成による可変長10進減算装置の可変長デ
ータに基づく減算処理動作について説明する。
第3図は被演算データ及び演算データが予め入力された
可変長データを示すもので、例えば被演算データを8X
105、演算データをlXl0”とする8X10’−I
XIO”の減算処理を行なう場合について説明する。
第4図(A)及び(B)は可変長データに基づく減算処
理動作を示すフローチャートであり、CPUI 1はこ
のフローチャートに応じたシステム制御を行ない、減算
処理が実行される。
まず、第1図において、被演算データ及び演算データの
分割数を管理するPレジスタ26及びQレジスタ27は
“Omにセットされる(ステップSl)。また、リード
レジスタ(R)24及びす−ドアドレスレジスタ(RA
)21には、データRAM20の第1アドレス領域に対
する先頭アドレスRA、が書込まれ、ライトレジスタ(
W)25及びライトアドレスレジスタ(WA)22には
、データRAM20の第2アドレス領域に対する先頭ア
ドレスWA、が書込まれる(ステップS2)。すると、
可変長データにおける被演算データの下位4桁r000
0Jがリードバッファ17に読出され、Pレジスタ26
に被演算データの分割数“1″がセットされる(ステッ
プS3゜S4)。ここで、デリミタ検出部18において
上記リードバッファ17に読出された4桁単位の被演算
データr0000jにデリミタ「、」が無いことが検出
されると、この下位4桁の被演算データr0000Jは
、データ変換部19を通して1桁4ビツトの16ビツト
データに変換され、上記リードアドレスレジスタ(RA
)21にて指示されるメモリアドレスRA、に対応して
データRAM20の第1アドレス領域に書込まれる(ス
テップS5.S6)。この時、リードアドレスレジスタ
(RA)21におけるデータRAM20の第1アドレス
領域に対する指示アドレスが、アダー23により「+I
J加算され、メモリアドレスRA2に更新される(ステ
ップS7)。
すると、再び上記ステップS3に戻り、可変長データに
おける被演算データの下位5桁〜8桁rob、80Jが
リードバッファ17に読出され、Pレジスタ26におけ
る被演算データの分割数かアダー28により“2′に加
算セットされる(ステップS4)。ここで、デリミタ検
出部18において上記リードバッファ17に読出された
4桁単位の被演算データroo、80Jにデリミタ「、
」が有ることか検出されると、CPUIIの制御により
デリミタから上位の桁が強制的にデータ“0″にセット
され、データ変換部19を通して上記リードアドレスレ
ジスタ(RA)21にて指示されるメモリアドレスRA
2に対応してデータRAM20の第1アドレス領域に書
込まれる(ステップ55−88)。こうして、被演算デ
ータ「8×105」は、データRAM20における第1
7ドレス領域のメモリアドレスRAI にro 00 
CIJ、RA2にro O80Jとして、下位桁から4
桁単位で2分割され読出されたことになる。
上記被演算データの読出しが終わると、次に、可変長デ
ータにおける演算データの下位4桁「0000」がリー
ドバッファ17に読出され、Qレジスタ27に演算デー
タの分割数“1′がセットされる(ステップS 9. 
 S 10)。ここて、デリミタ検出部18において上
記リードバッファ17に読出された4桁単位の演算デー
タro 000Jにデリミタ「、」が無いことが検出さ
れると、この下位4桁の演算データr0000Jは、ブ
タ変換部19を通して1桁4ビツトの16ビツトデータ
に変換され、上記ライトアドレスレジスタ(WA)22
にて指示されるメモリアドレスWA、に対応してデータ
RAM20の第2アドレス領域に書込まれる(ステップ
Sll、512)。
この時、ライトアドレスレジスタ(WA)221::お
けるデータRAM20の第2アドレス領域に対する指示
アドレスか、アダー23により「+1」加算され、メモ
リアドレスWA2に更新される(ステップ813)。
すると、再び上記ステップS9に戻り、可変長データに
おける演算データの下位5桁〜8桁r0000Jが上記
同様リードバッファ17に読出され、Qレジスタ27に
おける演算データの分割数がアダー28により“2”に
加算セットされる(ステップ510)。そして、デリミ
タ検出部18では、上記リードバッファ17に読出され
た演算データr0000Jにデリミタ「、」が無いこと
が検出され、この下位5桁〜8桁の演算データr000
0Jは、データ変換部19を通して上記ライトアドレス
レジスタ(WA)22にて指示されるメモリアドレスW
A2に対応してデータRAM20の第2アドレス領域に
書込まれる(ステップSll、512)  この時、ラ
イトアドレスレジスタ(WA)22におけるデータRA
M20の第2アドレス領域に対する指示アドレスが、ア
ダー23によりさらに「+1」加算され、メモリアドレ
スWA3に更新される(ステップ813)。
すると、再び上記ステップS9に戻り、可変長データに
おける演算データの下位9桁〜12桁r、1000jが
リードバッファ17に読出され、Qレジスタ27におけ
る演算データの分割数がアダー28により“3°に加算
セットされる(ステップ510)。ここで、デリミタ検
出部]8において上記リードバッファ17に読出された
4折重位の被演算データr、100OJにデリミタ「、
」が有ることが検出されると、CPUIIの制御により
デリミタから上位の桁(この場合無し)が強制的にデー
タ“0”にセットされ、データ変換部19を通して上記
ライトアドレスレジスタ(WA)22にて指示されるメ
モリアドレスWA、に対応してデータRAM20の第2
アドレス領域に書込まれる(ステップ5ll−814)
。こうして、演算データrlX10目」は、データRA
M20における第2アドレス領域のメモリアドレスWA
、にrooooJ 、WA2にro 000J、WA3
にrl、ooOJとして、下位桁から4折重位で3分割
され読出されたことになる。
ここで、CPU41は、比較器29によりPレジスタ2
6に管理される被演算データの分割数PとQレジスタ2
7に管理される演算データの分割数Qとを比較させ、r
P>QJかrP<QJかrP−QJかを判断するもので
、この場合、被演算データは2分割rP−2Jされた総
データ長8桁で、演算データは3分割rQ−3Jされた
総データ長12桁で読出されているので「P<QJと判
断される(ステップ515)。すると、リードアドレス
レジスタ(RA)21におけるデータRAM20の第1
アドレス領域(被演算データ記憶領域)に対する指示ア
ドレスが、アダー23によりさらに「+1」加算され、
メモリアドレスRA、に更新される(ステップ516)
。そして、上記メモリアドレスRA3に対応するデータ
RAM20の第1アドレス領域には、さらに4桁のデー
タ“0”が被演算データの下位9桁目から12桁目のデ
ータとして強制的に書込まれる(ステップ517)。す
ると、Pレジスタ26における被演算データの分割数が
アダー28により“3”に加算セットされ、比較器29
によるrP : QJの比較処理によりその分割数が等
しくなったか否かが判断される(ステップS18. 5
19)。すなわち、このステップS19においてrYe
sJ、つまり、上記比較器29においてrP−QJの判
定がなされると、被演算データの総データ長が上記演算
データに等しい3分割からなる12桁に合わされたこと
になる。
第5図(A)〜(C)はそれぞれデータRAM20にお
ける被演算データ及び演算データの減算前、減算後、補
正後における格納状態を示すもので、上記ステップS1
9での[P−QJの判断時には、同図(A)で示すデー
タ格納状態になる。
一方、上記ステップ515においてrP>QJ、つまり
、被演算データの分割数Pよりも演算データの分割数Q
の方か少なく、その総データ長が短いと判断されると、
ライトアドレスレジスタ(WA)22におけるメモリア
ドレスWA、の更新処理、演算データ上位4桁へのデー
タ“0°の追加書込み処理、Qレジスタ27における分
割数の更新処理が、それぞれ比較器29にてrP−QJ
と判定されるまで繰返され、演算データの総データ長が
被演算データに等しい分割数からなる桁数に合わされる
(ステップS20〜523)。
こうして、上記ステップS15又はステップS19又は
ステップ823の何れかにおいて「P−QJと判断され
、データRAM20に格納される被演算データと演算デ
ータとの総データ長が何れも4n桁として一致すると、
そのデータ分割数Pか減算回数レジスタ(No)30及
び補正回数レジスタ(N、)31にセットされ、前記ス
テップS2において予めリードレジスタ(R)24に書
込まれたデータRAM20の第1アドレス領域に対する
先頭メモリアドレスRA、が再びリードアドレスレジス
タ(RA)21に、また、第2アドレス領域に対する先
頭メモリアドレスWA、が再びライトアドレスレジスタ
(WA)22に転送セットされる(ステップS24,5
25)。
すると、まず、CPUI 1によりボローフラグレジス
タ16がリセットされる(ステップ826)。
そして、リードアドレスレジスタ(RA)21により指
示されるメモリアドレスRAIに対応して、データRA
M20の第1アドレス領域から下位4桁の被演算データ
ro 000Jが読出され、被演算データレジスタ(A
)13に転送セットされる(ステップ527)。また、
ライトアドレスレジスタ(WA)22により指示される
メモリアドレスWA、に対応して、データRAM20の
第2アドレス領域から下位4桁の演算データr0000
Jが読出され、演算データレジスタ(B)14に転送セ
ットされる(ステップ528) すると、第2図におけ
るALU15の各減算回路15a〜15dには、上記被
演算データレジスタ(A)13にセットされた下位4桁
の被演算データと演算データレジスタ(B)14にセッ
トされた下位4桁の演算データとか、それぞれ1桁ずつ
4ビツトデータA。−A3.A4〜A7.A8〜A11
A12〜A15及びB。−B、、B4〜B7,88〜B
1□、812〜B+5として与えられ、所定の減算処理
が実行される(ステップ529)。ここで、上記減算処
理に伴ない、最上位桁の減算回路15dのキャリ端子C
3からボローが得られると、ボローフラグレジスタ16
にボローフラグが立てられる。そして、ALU15から
出力される被演算データ及び演算データの下位4桁間士
の減算結果データr0000Jは、上記ライトアドレス
レジスタ(WA)22により指示されるメモリアドレス
WA、に対応して、データRAM20の第2アドレス領
域に書込まれる(ステップ530)。この時、減算回数
レジスタ(NO)30で管理される減算回数N。がアダ
ー32により「−1」され、N、−2に更新される(ス
テップ531)。
ここで、CPUI 1は上記減算回数レジスタ(No)
30で管理される減算回数N。か“0”に到達したか否
か、つまり、被演算データ及び演算データの下位桁から
4桁単位の減算処理が、そのデータ長(この場合12桁
)に相当する分割数分(この場合3分割)実行されたか
否かを判断するもので、この場合、減算回数N。−2で
あるのでrNoJと判断され、リードアドレスレジスタ
(RA)21で指示されるメモリアドレスRA、がRA
2に、また、ライトアドレスレジスタ(WA)22で指
示されるメモリアドレスWA、がWA2に、それぞれア
ダー23により加算更新される(ステップS32,83
3)。
すると、再び上記ステップS27に戻り、2分割目の減
算処理を行なうべく、リードアドレスレジスタ(RA)
21により指示されるメモリアドレスRA2に対応して
、データRAM20の第1アドレス領域から下位5桁目
から8桁目の被演算データr0080Jが読出され、被
演算データレジスタ(A)1Bに転送セットされ、また
、ステップ328において、ライトアドレスレジスタ(
WA)22により指示されるメモリアドレスWA2に対
応して、データRAM20の第2アドレス領域から下位
5桁目から8桁目の演算データr0000Jが読出され
、演算データレジスタ(B)14に転送セットされる。
すると、第2図におけるALU15の各減算回路1.5
 a〜15dには、前回同様4桁の被演算データと演算
データとが、それぞれ1桁ずつ4ビツトデータとして与
えられ、所定の減算処理が実行される(ステップ529
)。そして、ALU15から出力される被演算データ及
び演算データの下位5桁目から8桁目間士の減算結果デ
ータr9980Jは、上記ライトアドレスレジスタ(W
A)22により指示されるメモリアドレスWA2に対応
して、データRAM20の第2アドレス領域に書込まれ
る(ステップ530)。この時、減算回数レジスタ(N
o)30で管理される減算回数N0がアダー32により
「−1」され、No””1に更新される(ステップ53
1)。
ここで、CPU11により、上記N。−1に応じて、被
演算データ及び演算データの4桁減算処理が、そのデー
タ長に相当する分割数分未だ実行されてないと判断され
ると、リートアドレスレジスタ(RA)21で指示され
るメモリアドレスRA2がRA、に、また、ライトアド
レスレジ7!、夕(WA)22で指示されるメモリアド
レスWA2がWA、に、それぞれアダー23により加算
更新される(ステップS32,833)。
すると、再び上記ステップS27に戻り、3分割目の減
算処理を行なうべく、リードアドレスレジスタ(、RA
)21により指示されるメモリアドレスRA3に対応し
て、データRAM20の第1アドレス領域から下位9桁
目から12桁目の被演算データr0000Jが読出され
、被演算データレジスタ(A)13に転送セットされ、
また、ステップS28において、ライトアドレスレジス
タ(WA)22により指示されるメモリアドレスWA、
に対応して、データRAM20の第2アドレス領域から
下位9桁目から12桁目の演算データrlo00Jが読
出され、演算データレジスタ(B)14に転送セットさ
れる。すると、第2図におけるALUI5の各減算回路
15a〜15dには、前回向様4桁の被演算データと演
算データとか、それぞれ1桁ずつ4とットデータとして
与えられ、所定の減算処理が実行される(ステップ52
9)。そして、ALUI 5から出力される被演算デー
タ及び演算データの下位9桁目から12桁桁目上の減算
結果データr9999Jは、上記ライトアドレスレジス
タ(WA)22により指示されるメモリアドレスW A
 3に対応して、データRAM20の第2アドレス領域
に書込まれる(ステップ530)。この時、減算回数レ
ジスタ(No)30で管理される減算回数N。かアダー
32により「−1」され、No−0に更新される(ステ
ップ531)。
ここで、ステップS32においてrYesJ、つまり、
減算回数N。−〇になり被演算データ及び演算データの
下位桁から4桁単位の減算処理が、そのデータ長(この
場合12桁)に相当する分割数分(この場合3分割)繰
返し実行されたと判断されると、CPU11によりボロ
ーフラグレジスタ16にボローデータが有るか否か、つ
まり、減算結果データが補数状態で得られたか否かか判
断される(ステップ534)。
第6図(A)及び(B)はそれぞれ上記ALU15にお
ける演算処理に相当する実際の減算処理及びその減算結
果に対する負の補正演算処理を示すもので、上記ステッ
プS34でのボローフラグの有無判断時には、同図(A
)で示す減算処理か実行されたことになり、データRA
M20においては第5図(B)で示すように減算結果デ
ータか第2アドレス領域に格納されたデータ格納状態に
なる。
そして、上記ステップS34においてrYesJ、つま
り、減算結果データが補数状態で得られたと判断される
と、負の補正演算処理を行なうべく被演算データレジス
タ(A)1Bには補正データr9999Jがセットされ
、前記ステップS2において予めライトレジスタ(W)
25に書込まれたデータRAM20の第1アドレス領域
に対する先頭メモリアドレスWA、か再びライトアドレ
スレジスタ(WA)22に転送セットされる(ステップ
S35,536)。
そして、上記ライトアドレスレジスタ(WA)22によ
り指示されるメモリアドレスWA、に対応して、データ
RAM20の第2アドレス領域から下位4桁の減算結果
データr0000Jが読出され、演算データレジスタ(
B)14に転送セットされる(ステップ537)。する
と、第2図におけるALUI5の各減算回路15a〜1
5dには、上記被演算データレジスタ(A)13にセッ
トされた補正データと演算データレジスタ(B)14に
セットされた下位4桁の減算結果データとが、それぞれ
1桁ずつ4ビツトデータとして与えられ、所定の減算処
理が実行される(ステップ538)。ここで、上記負の
補正減算処理に伴ない、最上位桁の減算回路15dのキ
ャリ端子c3がらキャリか得られると、ボローフラグレ
ジスタ16にボローフラグは立てられない。そして、A
LUI5から出力される減算結果下位4桁分の負の補正
データr0000Jは、上記ライトアドレスレジスタ(
WA)22により指示されるメモリアドレスWA、に対
応して、データRAM20の第2アドレス領域に書込ま
れる(ステップ539)。
この時、補正回数レジスタ(N+)31で管理される補
正回数N1かアダー32により「−1」され、N1−2
に更新される(ステップ540)。
ここで、CPU11は上記補正回数レジスタ(N1)3
1で管理される補正回数N1か“0′に到達したか否か
、つまり、補数状態にある減算結果データの下位桁から
4桁単位の負の補正処理が、そのデータ長(この場合1
2桁)に相当する分割数分(この場合3分割)実行され
たか否かを判断するもので、この場合、補正回数N1−
2であるので「NO」と判断され、ライトアドレスレジ
スタ(WA)22で指示されるメモリアドレスWA、が
WA2にアダー23により加算更新される(ステップS
41. 542)。
すると、再び上記ステップS37に戻り、2分割目の補
正処理を行なうべく、被演算データレジスタ(A)13
に予め転送セットされた補正データr999’9Jはそ
のままにして、上記ライトアドレスレジスタ(WA)2
2により指示されるメモリアドレスWA2に対応して、
データRAM20の第2アドレス領域から下位5桁目か
ら8桁目の減算結果データr9980Jが読出され、演
算データレジスタ(B)14に転送セットされる。
すると、第2図におけるALU15の各減算回路15a
〜15dには、前回同様4桁の補正データと減算結果デ
ータとが、それぞれ1桁ずつ4ビツトデータとして与え
られ、所定の減算処理が実行される(ステップ538)
。そして、ALU15から出力される減算結果データ下
位5格目から8桁目の負の補正データr0020Jは、
上記ライトアドレスレジスタ(WA)22により指示さ
れるメモリアドレスWA2に対応して、データRAM2
0の第2アドレス領域に書込まれる(ステップ539)
。この時、補正回数レジスタ(N+)31で管理される
補正回数N1がアダー32により「−1」され、N1−
1に更新される(ステップ540)。
ここで、CPUI 1により、上記N、=1に応じて、
減算結果データの4桁補正処理が、そのデータ長に相当
する分割数分未だ実行されてないと判断されると、ライ
トアドレスレジスタ(WA)22で指示されるメモリア
ドレスWA2がWA3にアダー23により加算更新され
る(ステップS41..542)。
すると、再び上記ステップS37に戻り、3分割目の負
の補正処理を行なうべく、ライトアドレスレジスタ(W
A)22により指示されるメモリアドレスWA、に対応
して、データRAM20の第2アドレス領域から下位9
桁目から12桁目の減算結果データr9999Jが読出
され、演算データレジスタ(B)14に転送セットされ
る。すると、第2図におけるALU15の各減算回路1
5a〜15dには、前回同様4桁の補正データと演算デ
ータとか、それぞれ1桁ずつ4ビツトデータとして与え
られ、所定の減算処理が実行される(ステップ538)
。そして、ALU15から出力される減算結果データ下
位9柘目から12桁目の負の補正データr0000Jは
、上記ライトアドレスレジスタ(WA)22により指示
されるメモリアドレスWA3に対応して、データRAM
20の第2アドレス領域に書込まれる(ステップ539
)。この時、補正回数レジスタ(N1)31で管理され
る補正回数。N1がアダー32により「−1」され、N
1−0に更新される(ステップ540)。
ここで、ステップS41においてrYesJ、つまり、
補正回数N、−0になり補数状態で得られた減算結果デ
ータの下位桁から4桁単位の負の補正処理か、そのデー
タ長(この場合12桁)に相当する分割数分(この場合
3分割)繰返し実行されたと判断されると、データRA
M20の第2アドレス領域には、前記被演算データ「8
×105」及び演算データrlX10”Jの減算結果か
、絶対値状態で格納されたことになる。
すなわち、上記ステップS41での補正回数N1−0の
判断時には、第6図CB)で示す負の補正減算処理が実
行されたことになり、データRAM20においては第5
図(C)で示すように絶対値状態に補正された減算結果
データが第2アドレス領域に格納されたデータ格納状態
になる。
したがって、上記構成の可変長10進減算装置によれば
、可変長データとして得られる被演算デ−タ及び演算デ
ータをそれぞれ下位桁から4桁単位で分割して読出し、
ALU15において繰返し減算処理することにより、不
要桁に対する減算処理を少なくして演算処理の高速化を
図ると共に、上記4桁単位の減算処理毎に上位桁へのボ
ローデータの有無を記憶し、減算処理の終了時において
上記ボローデータがある場合にその減算結果に対し負の
補正演算を行なうことにより、新たな補正命令を与える
ことなく、より高速に絶対値表現の減算結果が得られる
ようになる。
[発明の効果] 以上のように本発明によれば、演算処理を所定桁単位で
繰返し実行すると共に、その演算結果が負であることの
情報を得ておき、この負情報の有無に応じて補正演算が
実行されるようにしたので、演算データの桁数が多くて
も、また、減算結果か負であっても、高速な演算処理を
行なうことが可能になる。
【図面の簡単な説明】
第1図は本発明の一実施例に係わる可変長10進減算装
置のシステム構成を示すブロック図、第2図は上記可変
長10進減算装置におけるALU(演算処理装置)の内
部構成を示すブロック図、第3図は被演算データ及び演
算データが予め入力された可変長データを示す図、第4
図(A)及び(B)は上記可変長10進減算装置による
可変長データに基づく減算処理動作を示すフローチャー
ト、第5図(A)〜(C)はそれぞれ上記可変長10進
減算装置のデータRAMにおける被演算データ及び演算
データの減算前、減算後、補正後における各データ格納
状態を示す図、第6図(A)及び(B)はそれぞれ上記
可変長10進減算装置のALU (演算処理装置)にお
ける演算処理に相当する実際の減算処理及びその減算結
果に対する負の補正演算処理を示す図である。 11・・・CPU (中央処理装置)、12・・・制御
及びデータバス、13・・・被演算データレジスタ、1
4・・・演算データレジスタ、15・・・ALU (演
算処理装置)、158〜15d・・・減算回路、16・
・・ボローフラグレジスタ、17・・・リードバッファ
、18・・・デリミタ検出部、19・・・データ変換部
、20・・・データRAM、21・・・リードアドレス
レジスタ(RA) 、22・・・ライトアドレスレジス
タ(WA) 、23.28.32・・・アダー 24・
・・リードレジスタ(R)、25・・・ライトレジスタ
(W)26・・・Pレジスタ、27・・・Qレジスタ、
29・・比較器、30・・・減算回数レジスタ(No)
、31・・・補正回数レジスタ(N、)。

Claims (1)

  1. 【特許請求の範囲】 所定桁単位で10進減算を行なう減算回路と、この減算
    回路により得られた減算結果データの上位桁へのボロー
    の有無を記憶するボローメモリと、 10進の被演算データ及び演算データを互いに下位桁か
    ら上記所定桁単位で順次分割する演算データ分割手段と
    、 この演算データ分割手段における上記被演算データ及び
    演算データの分割回数を記憶する分割数メモリと、 上記演算データ分割手段により所定桁単位で順次分割さ
    れた被演算データ及び演算データを上記減算回路におい
    て上記ボローメモリにおけるボロー状態に応じて上記分
    割数メモリに記憶される分割回数分繰返し減算処理させ
    る減算制御手段と、この減算制御手段に応じた繰返し減
    算処理の後上記ボローメモリにボローデータが有る場合
    には上記所定桁単位の各減算結果データに対して負の補
    正演算を行なう補正演算手段と、 を具備したことを特徴とする可変長10進減算装置。
JP2108863A 1990-04-26 1990-04-26 可変長10進減算装置 Pending JPH047737A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2108863A JPH047737A (ja) 1990-04-26 1990-04-26 可変長10進減算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2108863A JPH047737A (ja) 1990-04-26 1990-04-26 可変長10進減算装置

Publications (1)

Publication Number Publication Date
JPH047737A true JPH047737A (ja) 1992-01-13

Family

ID=14495499

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2108863A Pending JPH047737A (ja) 1990-04-26 1990-04-26 可変長10進減算装置

Country Status (1)

Country Link
JP (1) JPH047737A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716267B2 (en) 2004-08-30 2010-05-11 Casio Computer Co., Ltd. Decimal computing apparatus, electronic device connectable decimal computing apparatus, arithmetic operation apparatus, arithmetic operation control apparatus, and program-recorded recording medium
JP2015143949A (ja) * 2014-01-31 2015-08-06 富士通株式会社 演算プログラム、演算装置および演算方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716267B2 (en) 2004-08-30 2010-05-11 Casio Computer Co., Ltd. Decimal computing apparatus, electronic device connectable decimal computing apparatus, arithmetic operation apparatus, arithmetic operation control apparatus, and program-recorded recording medium
US8316067B2 (en) 2004-08-30 2012-11-20 Casio Computer Co., Ltd. Decimal computing apparatus, electronic device connectable decimal computing apparatus, arithmetic operation apparatus, arithmetic operation control apparatus, and program-recorded recording medium
JP2015143949A (ja) * 2014-01-31 2015-08-06 富士通株式会社 演算プログラム、演算装置および演算方法

Similar Documents

Publication Publication Date Title
US4144562A (en) System and method for increasing microprocessor output data rate
US4150434A (en) Matrix arithmetic apparatus
JPH04216588A (ja) Rsa符号化法を実施する方法及び装置
EP0351829B1 (en) Integer division circuit provided with a overflow detection circuit
EP0529101A1 (en) Floating-point dividing circuit
US5027309A (en) Digital division circuit using N/M-bit subtractor for N subtractions
JPH03105614A (ja) マトリツクス演算回路
US4598359A (en) Apparatus for forward or reverse reading of multiple variable length operands
JPH047737A (ja) 可変長10進減算装置
US4608633A (en) Method for decreasing execution time of numeric instructions
US3937941A (en) Method and apparatus for packed BCD sign arithmetic employing a two's complement binary adder
JP3332606B2 (ja) マイクロプロセッサ
GB975191A (en) Electronic data processing apparatus
JP3538512B2 (ja) データ変換装置
JP2801472B2 (ja) 浮動小数点演算装置
JPS58151644A (ja) デイジタル演算装置
JPH0435777B2 (ja)
JPH0434191B2 (ja)
JP3074910B2 (ja) 除算装置
JP3522387B2 (ja) パイプライン演算装置
JPS6118219B2 (ja)
JP2575856B2 (ja) 演算回路
GB2112976A (en) Floating point digital differential analyzer
JPS62145419A (ja) 10進加減算装置
JPH04336623A (ja) データ変換方法