JPS6141014B2 - - Google Patents

Info

Publication number
JPS6141014B2
JPS6141014B2 JP56125179A JP12517981A JPS6141014B2 JP S6141014 B2 JPS6141014 B2 JP S6141014B2 JP 56125179 A JP56125179 A JP 56125179A JP 12517981 A JP12517981 A JP 12517981A JP S6141014 B2 JPS6141014 B2 JP S6141014B2
Authority
JP
Japan
Prior art keywords
operand
byte
bytes
input
sign
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
Application number
JP56125179A
Other languages
English (en)
Other versions
JPS5827241A (ja
Inventor
Tomoatsu Yanagida
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP56125179A priority Critical patent/JPS5827241A/ja
Priority to US06/403,330 priority patent/US4536854A/en
Priority to GB08222278A priority patent/GB2104694A/en
Priority to DE19823229764 priority patent/DE3229764A1/de
Publication of JPS5827241A publication Critical patent/JPS5827241A/ja
Publication of JPS6141014B2 publication Critical patent/JPS6141014B2/ja
Granted 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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/492Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
    • G06F7/493Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
    • 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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/492Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
    • G06F7/493Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
    • G06F7/494Adding; Subtracting
    • 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/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them
    • 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/492Indexing scheme relating to groups G06F7/492 - G06F7/496
    • G06F2207/4924Digit-parallel adding or subtracting

Landscapes

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

Description

【発明の詳細な説明】
本発明は、データ処理装置の十進演算装置に関
し、特に符号を含む十進データの加減算の高速処
理に関する。 データ処理装置において、可変オペランド長命
令である十進演算命令を処理する方法として、1
バイト巾の演算器で1バイトづつ処理する方法
と、4または8バイト巾の演算器で一度に複数バ
イト処理する方法とがある。前者は、オペランド
の符号部および数値データ部の処理をともに1つ
の1バイト巾の演算器で逐次処理する方法であ
り、技術的には問題が少ないが、命令の処理性能
が低い。 後者の方法として、次の2方式がある。 (i) 第1および第2オペランドの右端を、演算器
の右端に整合して演算する方式。 (ii) 第2オペランドの右端を第1オペランドの右
端に整合して演算する方式。 (i)の方式は、まず主記憶から読出した第1オペ
ランドを右シフトして第1のオペランドの右端を
演算器の右端に整合する。次に主記憶から読出し
た第2オペランドを第1オペランド同様、右シフ
トして第2オペランドの右端を演算器の右端に整
合する。整合の終了したオペランドを演算器に入
力し、演算結果を得る。最後に演算結果を左シフ
トして第1オペランド位置に再整合し、主記憶に
格納する。 オペランドの符号はオペランドの右端デイジツ
ト(4ビツトからなり、1バイトに2デイジツト
入る)にあるため、(i)の方式では符号処理機能は
演算器の右端バイトのみに持たせればよい。しか
し両オペランドを演算器の右端に整合するため
に、第1オペランドの右シフト、第2オペランド
の右シフト、演算結果の左シフトの合計3回にわ
たるオペランド位置の整合が必要である。この
為、実際の演算時間に対してオペランド位置の整
合に要する時間が長く、巾の広い演算器を用いる
割には命令実行時間が短かくならないという欠点
があつた。 (ii)の方式は特願昭55−118218号に示された方式
であり、可変オペランド長命令の処理を、4バイ
トまたは8バイト巾等の演算器を用いて一度に複
数バイト処理するに当り、第2オペランドの右端
位置を第1オペランドの右端位置に整合して演算
することにより、オペランド位置の整合回数を減
らして整合に要する時間を短縮し、命令の実行性
能を向上せしめるようにしたものである。 (ii)の方式では、オペランド位置の整合回数を1
回に削減でき、命令実行性能を向上することがで
きる反面、オペランドを第1オペランドの右端位
置に整合して演算するため、演算器の全てのバイ
トに符号処理機能を持たせる必要が生じる。これ
は演算器が複雑化し、ゲート数が増加することを
意味する。 本発明の目的はハードウエアの大きな増加な
く、かつ性能の低下なしに符号を含む十進データ
の演算を行なう十進演算装置を提供することにあ
る。 本発明は上記目的を達成するために、十進演算
を行なう演算手段と符号処理を行なう符号処理手
段とを並設し、第1および第2オペランドの符号
を除く数値部分のみを演算手段に入力し、第1お
よび第2オペランドの符号を符号処理手段に入力
し、演算手段の出力と符号処理手段の出力を結合
して演算結果とする。 これにより、第2オペランドの右端位置を第1
オペランドの右端位置に整合して演算するように
しても、演算手段は符号処理機能を備える必要な
い。 便宜上、以下の説明では、可変オペランド長十
進演算命令として第1図に示す形式の命令を考え
る。第1図で、OP部は加減乗除等のオペレーシ
ヨンの種類、L1,L2部はそれぞれ第1、第2
オペランド長、ADR1,ADR2部はそれぞれ主
記憶上の第1、第2オペランドの先頭アドレスを
示すためのフイールドである。なお、L1,L2
部はそれぞれ4ビツトで構成される(従つて最大
オペランド長は15バイト)ものとする。こゝでは
ADR1部で示す主記憶上のアドレスから長さL
1バイトの第1オペランドと、ADR2部で示す
主記憶上のアドレスから長さL2バイトの第2オ
ペランドを、それぞれのオペランドの右端(後
端)をそろえて加減算し、結果を主記憶上の第1
オペランドフイールドに格納するものとする。第
1、第2オペランドの右端デイジツトは符号デイ
ジツトであり、それぞれのオペランドの符号を表
す。なお、処理装置と主記憶装置間のデータ転送
は、8バイト単位に行なうものと仮定する。 まず本発明の理解を容易ならしめるために、前
述した(ii)の方式を簡単に説明する。 第2図は(ii)の方式の概要を説明するための図
で、主記憶の8バイト内アドレスでバイト位置1
から5バイトの第1オペランド“abcdefghiと符
号S1”と、同8バイト内アドレスでバイト位置2
から3バイトの第2オペランド“mnopと符号
S2”を加算する例を示す。第2図では、主記憶か
ら読出した第1オペランドイはそのまゝ加算器に
入力する。主記憶から読出した第2オペランドロ
は右端位置を8バイト内アドレスで見て第1オペ
ランドイの右端位置に整合する。すなわち第2オ
ペランドの右端(バイト位置4)を第1オペラン
ドの右端(バイト位置5)に整合するため、右1
バイトシフトを行い、整合データハを加算器に入
力する。この結果、加算結果ニ(“ABCDEFGHI
と符号S”)は第1オペランド位置に求めること
ができ、そのまゝ主記憶上に格納することが可能
である。 この方式により演算を行なうためには、第2図
の加算の場合は、第1および第2オペランドの右
端より右のバイト位置(すなわち、イおよびハの
バイト位置6,7)と左端より左のバイト位置
(すなわち、イのバイト位置0およびハのバイト
位置0〜2)にゼロが保証されていなければ正し
い結果を得ることができず、又、減算の場合は、
第1オペランドの右端より右のバイト位置(すな
わちイのバイト6,7)と左端より左のバイト位
置(すなわち、イのバイト位置0)にはゼロが、
第2オペランドの右端より右のバイト位置(すな
わち、ハのバイト位置6,7)と左端より左のバ
イト位置(すなわち、ハのバイト位置0〜2)に
はオール“1”が保証されなければ、正しい結果
を得ることができない。この第1および第2オペ
ランドの不要部分のゼロ保証あるいは1保証を高
速に行なうのが、第2図に1および2で示した高
速ゼロあるいは1保証回路である。即ち、第2図
の回路1は、第1オペランドの右端バイト位置と
第1オペランド長から、また、回路2は第1オペ
ランドの右端バイト位置と第2オペランド長か
ら、それぞれ第1および第2オペランドの不要部
分を決定し、その部分のゼロあるいは1を保証す
る回路である。 このようにオペランド位置の整合回数を1回に
削減できる反面、演算器の全てのバイトに符号処
理機能を持たせる必要がある。 第3図は、本発明の一実施例を示すブロツク図
である。同図で、11,12は演算器に入力する
第1および第2オペランドを格納するための8バ
イトのアドレス、13は第2オペランドの右端バ
イトを第1オペランドの右端バイト位置に整合す
るためのシフタ、14,15は第2図の1,2に
相当する回路であり、それぞれ第1、第2オペラ
ンドの不要部分のゼロあるいは1を保証するため
の回路、16は十進加減算機能を持つた8バイト
巾の主演算器、18はその出力レジスタである。
また17は、レジスタ11および12の任意の1
バイトを選択して入力し演算することが可能な1
バイト巾の補助演算器であり、十進加減算機能お
よび十進符号処理機能を有する。19は補助演算
器17の出力レジスタである。 主演算器16の出力はレジスタ18を介して、
レジスタ11および12に入力可能である。また
補助演算器17の出力はレジスタ19を介して、
レジスタ11の任意のバイトに入力可能である。 第3図において、L1,L2は前述した命令か
ら与えられる第1、第2オペランド長、CNT1
(0〜2)、CNT2(0〜2)は命令から与えら
れる第1、第2オペランドの先頭アドレス(右端
アドレス)の下3ビツトであり、8バイト内バイ
ト位置ポインタを示す。 8バイトのレジスタ11の第1オペランドの符
号デイジツトを含む1バイトはCNT1(0〜
2)で指定選択され、補助演算器17に入力され
る。また8バイトのレジスタ12の第2オペラン
ドの符号デイジツトを含む1バイトはCNT2
(0〜2)で指定選択され、補助演算器17に入
力される。補助演算器17の出力レジスタ19か
らの1バイトはCNT1(0〜2)で指定される
レジスタ11のバイト位置に格納される。 レジスタ11の8バイトはそのままゼロ保証回
路11に入力される。ゼロ保証回路11にはL1
と、CNT1(0〜2)が与えられ、ゼロ保証回
路11は演算に不要な部分、即ち第1オペランド
の右端より右側の不要バイト、左端より左側の不
要バイトおよび符号デイジツト位置にゼロを挿入
して主演算器16に入力する。 レジスタ12の8バイトはシフタ13に入力れ
る。シフタ13は衆知のシフタが利用され、シフ
タ13にはCNT1(0〜2)とCNT2(0〜
2)が与えられ、シフタ13はこのCNT1(0
〜2)とCNT2(0〜2)の差に応じて、入力
された8バイトを右あるいは左シフトし、第2オ
ペランドの右端を第1オペランドの右端位置に整
合する。即ち、CNT1(0〜2)からCNT2
(0〜2)を減算し、その結果が正の場合、右へ
その差分のバイト数だけシフトし、負の場合、左
へその差分のバイト数だけシフトする。 シフタ13の出力はゼロあるいは1保証回路1
5に入力される。ゼロあるいは1保証回路15に
はL2とCNT1(0〜2)が与えられ、ゼロあ
るいは1保証回路15は演算に不要な部分、即ち
シフトされた第2オペランドの右端より右側の不
要バイト、左端より左側の不要バイトおよび符号
デイジツト位置にゼロあるいは1を挿入して主演
算器16に入力する。 第4図および第5図は具体例をもつて第3図に
示す演算装置の動作を説明する図である。 これらの図において、イ、ロ、ハ、ニ、ホ、
チ、リはそれぞれ第4図の11,12,13,1
4,15,18,19の出力データ、ヘ、トは1
7の入力データ、又は演算結果をレジスタ11に
格納する際の入力データを示す。 この例では、主記憶上の8バイト境界内の第1
バイトから始まる5バイトの第1オペランド
“a,b,c,d,e,f,g,h,iと符号
S1”、および8バイト境界内の第2バイトから始
まる3バイトの第2オペランド“,m,n,
o,pと符号S2”を加減算して、演算結果“A,
B,C,D,E,F,G,H,Iと符号S”を得
る。a〜i,〜p,A〜1はそれぞれ4ビツト
の1デイジツトからなる十進数値デイジツト、
S1,S2,Sはそれぞれ1デイジツトからなる符号
デイジツトである。 第4図は加算の例である。本方式の特長は、主
演算器16に符号処理機能を持たすことを避ける
ため、符号を含むバイト(オペランドの右端バイ
ト)の演算は補助演算器17で、十進数値デイジ
ツトの演算は主演算器16で同時に実行し、両者
の出力をマージして最終結果を得るようにした点
である。 第4図において、第1オペランドイはゼロ保証
回路(第3図の14)に入力され、不要部分がゼ
ロ保証されニの形式になる。第2オペランドロは
シフタ(第3図の13)により右に1バイトシフ
トされ、右端バイト位置が第1オペランドの右端
バイト位置に整合されたハの形式になり、さらに
ゼロ/1保証回路(第3図の15)に入力されて
不要部分がゼロ保証されたホの形式になる。ニと
ホは主演算器16に入力され、加算結果チを得
る。一方、イ、ロの符号を含むバイトは補助演算
器17に入力され、データ部の演算(i+p→
I)と符号の処理を受け、演算結果リを得る。最
後にチの符号を含むバイト以外(0〜4および6
〜7バイト)とリをマージし、最終結果ヌを得
る。 ここで任意を要するのは、ゼロ/1保証回路
(第4図の14,15)の動作である。第1およ
び第2オペランドの領域以外の不要バイトのみゼ
ロ保証し、符号部はそのままの形で出力するよう
にすれば、主演算器16は符号処理機能を持たな
いため、第1および第2オペランドの符号を単純
に加算してしまい、正しい十進加算結果が得られ
ない。また不要部分と同時に、符号を含むバイト
全てをゼロ保証すると、主演算器16では最下位
桁の演算(i+p)が行なわれないため、この桁
からのキヤリが上位桁に伝わらない。従つて、補
助演算器17で行なつた最下位桁の演算のキヤリ
を主演算器で行なう上位桁の演算へ伝える手段が
必要になり、ハードウエアの複雑化、あるいは性
能の低下を来たす。 これを防ぐため、ゼロ/1保証回路に、不要バ
イトと同時に、符号を含むバイトの右側のデイジ
ツト(符号デイジツト)をゼロ/1保証する機能
を有している。すなわち第4図のニおよびホに示
すとうり第1および第2オペランドの数値部のみ
残し、他は符号デイジツトを含み全てゼロ保証し
たデータが主演算器16に入力される。この結
果、最下位桁からのキヤリを含む上位桁の正しい
演算結果が容易に得られる。ここで、主演算器1
6における最下位桁の演算は、上位桁にキヤリを
伝えるためだけであり、最終的な最下位桁の演算
結果は、符号を含めて補助演算器17からの出力
が使われる。 補助演算器17における符号処理は従来とられ
てきた符号処理と同じである。簡単に説明すれ
ば、主演算器で加算操作が行なわれる場合、結果
の符号は第1オペランドの符号に等しく、従つて
この符号処理は第1オペランドの符号をそのまま
出力することにより行なわれる。主演算器で加算
操作が行なわれる場合とは、命令で指示されるオ
ペレーシヨンが加算で第1および第2オペランド
が共に正(結果の符号も正)か負(結果の符号も
負)の場合と、命令で指示されるオペレーシヨン
が減算でオペランドの一方が正で他方が負(第1
オペランドが正の時、結果の符号も正、第1オペ
ランドが負の時、結果の符号も負)の場合であ
る。 第5図は十進減算の例であり、第1オペランド
のゼロ保証回路の出力ニは、オペランドの領域以
外の不要バイトおよびオペランドの右端バイトの
右側デイジツト(符号部)がゼロ保証されてい
る。一方第2オペランドのゼロ/1保証回路の出
力ホは、オペランドの領域以外の不要バイトおよ
びオペランドの右端バイトの右側デイジツトがオ
ール1(16進表示でF)保証されている。この結
果、減算時の初期キヤリは常に演算器の7バイト
位置に入力すればよく、演算結果の最上位桁から
のキヤリ(これにより第1、第2オペランドの大
小判断等を行なう)は演算器の0バイト位置から
のキヤリと一値するため、演算器の制御、大小比
較判定制御が簡略化される。 減算時の補助演算器17における符号処理も従
来とられてきた符号処理と同じである。減算時に
おいても、まず第1オペランドの符号をそのまま
結果の符号として出力する。しかし第2オペラン
ドの数値の方が大きい場合、結果の符号は第1オ
ペランドの符号と逆であり、補数をとつて演算が
再び行なわれる時に符号を反転する。 次にゼロあるいは1保証回路14,15につい
て説明する。 いま第1オペランドの右端アドレスの下3ビツ
トがCNT1(0),CNT1(1),CNT1(2)と呼ば
れる8バイト内バイト位置ポインタにセツトされ
ているものとする。 第1表はオペランドの右端より右側の不要バイ
ト位置を示している。例えばCNT1(0〜2)
が5の場合は、バイト位置6〜7が不要バイトで
ある。(第4図、第5図の第1オペランドニ、第
2オペランドホの例)
【表】 第2表はオペランドの左端より左側の不要バイ
ト位置を示している。例えばCNT1(0〜2)
が5であり、オペランド長が3バイトの場合は、
バイト位置0〜2が不要バイトである。(第4
図、第5図の第2オペランドホの例)
【表】 従つて、第1表と第2表で示される全ての不要
バイトおよび符号デイジツトについてゼロあるい
は1を保証した第1および第2オペランドを演算
器に入力すれば、正しい演算結果が得られる。な
お、第1表、第2表で記号「−」は不要バイトが
無いことを示す。 第3図のゼロあるいは1保証回路14,15の
構成例を第6図に示す。第6図で、20はゼロあ
るいは1保証回路の制御部であり、入力150〜
152、170〜173より第1および第2表に
従つて不要デイジツト抑止信号100〜115を
出力する。入力150〜152は第1オペランド
の右端バイト位置を示す信号であり、前述の
CNT1(0〜2)が接続される。170〜17
3はオペランド長を示す信号であり、第3図の保
証回路14においては第1図のL1部4ビツト
が、同第3図の保証回路15においては第1図の
L2部4ビツトが接続される。以後、第3図にお
ける第1オペランド側の保証回路14を例にして
説明するが、第3図の第2オペランド側の保証回
路15については、ゼロ保証の代りにゼロまたは
1保証がされることを除いて同じである。 第6図の21は8バイト巾のゲート回路であ
り、レジスタ11(第3図)から主演算器16へ
の第1オペランド入力200〜263のうち、第
0〜15デイジツトに対する制御信号100〜11
5で示される不要デイジツトをゼロ保証した信号
300〜363を出力する。ゲート回路21の出
力300〜363は第3図の主演算器16の第1
オペランド入力側に接続される。30はゲート回
路21の第0バイトであり、第7図にその回路図
の一例を示し、8個のANDゲートで構成され
る。第7図で、第0バイトを構成する8ビツトの
入力データ信号200〜207は不要デイジツト
抑止信号100および101でゲートされ、出力
データ信号300〜307に出力される。即ち、
第0デイジツトが不要デイジツトで、ゼロ保証を
する必要がある場合、不要デイジツト抑止信号1
00は論理“1”を示し、この時、出力データ信
号300〜303はオール“0”となる。 第8図から第13図は第6図の制御回路20の
一例を示したものである。 第8図は第1オペランドの右端バイト位置を示
す信号150〜152すなわちCNT1(0〜
2)のデコーダDEC1と、第1オペランドのバ
イト長を示す信号170〜173すなわち命令の
L1部のデコーダDEC2である。それぞれのデ
コーダDEC1とDEC2の入力と出力の関係は第
9図イとロに示す通りである。 第10図は第2表に示したオペランドの左端よ
り左側の不要バイトを決定するための論理回路の
一例で、第8図のデコーダ出力160〜167、
180〜187よりバイト0〜7の抑止信号12
0〜127を出力する。 第11図は第1表に示したオペランドの右端よ
り右側の不要バイトを決定するための論理回路の
一例で、第8図のデコーダ出力160〜166よ
りバイト1〜7の抑止信号131〜137を出力
する。 第12図はオペランドの符号デイジツトを決定
するための論理回路の一例で、第8図のデコーダ
出力160〜167、および符号デイジツトを含
むダブルワードの演算であることを示す信号19
0より、各バイトの右側のデイジツト、すなわち
第1,3,5,7,9,11,13,15デイジ
ツトの抑止信号140〜147を出力する。なお
符号デイジツトを含まないダブルワードの演算の
場合は信号190が“1”ならず、第12図の出
力信号140…147は常にゼロである。 第13図は第10図から第12図で示される不
要バイト抑止信号120〜127、131〜13
7および符号デイジツト抑止信号140〜147
のオア回路であり、本回路の出力100〜115
が第6図の制御回路20の出力すなわち、主演算
器への入力データの第0〜15デイジツトの抑止信
号100〜115となる。 以上、第3図の第1オペランド側に対応するゼ
ロ保証回路14について説明したが、同第2オペ
ランド側に対応するゼロまたは1保証回路15に
ついてもゼロ保証の場合は全く同様にして構成で
き、1保証の場合は、第6図の出力信号が1保証
された信号となること、同第6図の制御回路20
の出力信号100〜115が不要デイジツト1保
証信号となることゝ置き換えればよい。 なお、第5図の減算処理において、第1オペラ
ンド側不要デイジツトには0を保証し、第2オペ
ランド側不要デイジツトに1を保証することによ
り、初期キヤリを最下位ビツト(8バイト巾では
バイト7、ビツト7)位置に入力すれば減算器の
中でキヤリの伝播が行なわれ、有効デイジツトの
最下位ビツト(第5図ホではバイト位置5のビツ
ト3)に初期キヤリが伝播され、且つ、有効バイ
トの最上位(第5図チではバイト位置1のビツト
0)からの最終キヤリが1保証されたバイト(第
6図ホではバイト0)を伝播して、最上位(8バ
イト巾ではバイト0、ビツト0)に現われる。 これにより、有効デイジツトの最下位に初期キ
ヤリを入力し、有効デイジツトの最上位から最終
キヤリを取り出すということをなくして済むよう
になり、回路の簡単化が実現できる。すなわち、
第2オペランド不要デイジツトの1保証がなけれ
ば、演算器の各デイジツトの最下位(8バイト巾
なら16ケ所)に初期キヤリを入力する回路と、最
終キヤリを取り出す回路とが必要となり物量が増
加する。 次に本発明によるゼロあるいは1保証回路を具
備した演算器を用いて、オペランドが8バイト境
界をまたぐ場合の動作を説明する。例として、第
1オペランドの右端バイトが8バイト境界内でバ
イト位置4にあり、第1オペランド長が9バイト
の場合を考える。第1回目の演算は前述のとおり
CNT1(0〜2)=4で行ない、第1および第2
表により主演算器の入力の5〜7バイトおよび第
4バイトの右側デイジツトがゼロあるいは1にさ
れ、0〜4バイト位置に演算結果が得られる。第
1回目の演算終了後CNT1(0〜2)を7にセ
ツトするとともにオペランド長L1から、第1回
目の演算で処理したバイト数だけ減算する。すな
わち、この場合は第1回目の演算で5バイト処理
しているため、残りのオペランド長は9バイトか
ら5バイトを減じて4バイトとなる。なお、減算
処理の場合は、第1回目の減算結果の最終キヤリ
を記憶し、2回目減算の初期キヤリとする。この
状態で第2回目の演算を行なうと、第2表かな
CNT1(0〜2)は7、オペランド長は4バイ
トであり符号デイジツトを含まない演算であるか
ら、入力の0〜3バイトがゼロあるいは1にさ
れ、演算結果は4〜7バイト位置に求められる。
この2回の演算結果を主記憶上の第1オペランド
アドレスに格納することにより、演算を終了す
る。たゞし、減算結果、第2回目の最終キヤリが
ない場合は再補数化などの処理をして格納する。 第3図の例において、補助演算器17はバイト
巾で十進加減算機能と十進符号処理機能を有し、
符号デイジツトを含む1バイトが入力され、また
その出力の1バイトもレジスタ11のある1バイ
トに与えられるよう構成されている。これは一般
のデータ処理装置はバイト単位で扱つていること
に基づくものであるが、補助演算器17を4バイ
ト巾として符号処理機能のみを有し、符号デイジ
ツトのみを入力するようにしてもよい。この場
合、レジスタ11および12から補助演算器17
へはCNT1(0〜2),CNT2(0〜2)が示す
バイトの右側デイジツトを選択するようにし、レ
ジスタ19からレジスタ11への格納は、CNT
1(0〜2)が示すバイトの右側デイジツトへ行
なうようにする。その他には変更はない。 本発明によれば、複数バイト巾の主演算器によ
り、十進演算命令を一度に複数バイト処理するデ
ータ処理装置において、主演算器に符号処理機能
を持たせることなく、高速な十進演算処理が可能
になり、大巾なハードウエアの増加なく十進演算
性能を向上する効果がある。
【図面の簡単な説明】
第1図は十進演算命令の命令形式を示す図、第
2図は8バイト巾の演算器を用いて、第1図の命
令を一度に複数バイト処理する従来の方式を示す
図、第3図は本発明の一実施例を示すブロツク
図、第4図および第3図は第3図の実施例の動作
を説明するための図、第6図は第3図のゼロ保証
回路の詳細を示すブロツク図、第7図〜13図は
第6図のゲート回路およびその制御回路の詳細を
示すブロツク図である。 11…第1オペランドレジスタ、12…第2オ
ペランドレジスタ、13…シフタ、14,15…
ゼロ/1保証回路、16…主演算器、17…補助
演算器。

Claims (1)

    【特許請求の範囲】
  1. 1 主記憶上の任意のアドレスから始まり、任意
    のバイト数の長さを持ち、複数の十進数値デイジ
    ツトと1つの符号デイジツトからなる第1および
    第2オペランドを十進演算処理する十進演算装置
    において、1バイト巾の入力を持ち、第1および
    第2オペランドのうちの符号デイジツトを含む1
    バイトが入力され、十進加減算機能と符号処理機
    能を有する補助演算手段と、複数バイト巾の入力
    を持ち、複数バイトの入力データを同時に十進加
    減算可能な主演算手段と、該主演算手段に入力さ
    れるデータのうち、オペランドの領域以外の不要
    バイトおよびオペランドの符号デイジツトを抑止
    してゼロあるいは1保証するための回路手段と、
    上記主演算手段の出力のある1バイト位置に上記
    補助演算手段の出力をマージするための手段とか
    らなる十進演算装置。
JP56125179A 1981-08-12 1981-08-12 十進演算装置 Granted JPS5827241A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP56125179A JPS5827241A (ja) 1981-08-12 1981-08-12 十進演算装置
US06/403,330 US4536854A (en) 1981-08-12 1982-07-30 Decimal arithmetic unit
GB08222278A GB2104694A (en) 1981-08-12 1982-08-02 Decimal arithmetic unit
DE19823229764 DE3229764A1 (de) 1981-08-12 1982-08-10 Dezimalrecheneinheit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56125179A JPS5827241A (ja) 1981-08-12 1981-08-12 十進演算装置

Publications (2)

Publication Number Publication Date
JPS5827241A JPS5827241A (ja) 1983-02-17
JPS6141014B2 true JPS6141014B2 (ja) 1986-09-12

Family

ID=14903846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56125179A Granted JPS5827241A (ja) 1981-08-12 1981-08-12 十進演算装置

Country Status (4)

Country Link
US (1) US4536854A (ja)
JP (1) JPS5827241A (ja)
DE (1) DE3229764A1 (ja)
GB (1) GB2104694A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914617A (en) * 1987-06-26 1990-04-03 International Business Machines Corporation High performance parallel binary byte adder
JP2504847B2 (ja) * 1989-10-27 1996-06-05 甲府日本電気株式会社 10進デ―タのチェック回路
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

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253415A5 (ja) * 1973-12-04 1975-06-27 Cii
US3916388A (en) * 1974-05-30 1975-10-28 Ibm Shifting apparatus for automatic data alignment
US4001570A (en) * 1975-06-17 1977-01-04 International Business Machines Corporation Arithmetic unit for a digital data processor
US4021655A (en) * 1976-03-30 1977-05-03 International Business Machines Corporation Oversized data detection hardware for data processors which store data at variable length destinations
US4276596A (en) * 1979-01-02 1981-06-30 Honeywell Information Systems Inc. Short operand alignment and merge operation
US4224682A (en) * 1979-01-02 1980-09-23 Honeywell Information Systems Inc. Pointer for defining the data by controlling merge switches
US4384340A (en) * 1980-12-24 1983-05-17 Honeywell Information Systems Inc. Data processor having apparatus for controlling the selection of decimal digits of an operand when executing decimal arithmetic instructions

Also Published As

Publication number Publication date
GB2104694A (en) 1983-03-09
DE3229764C2 (ja) 1987-08-13
DE3229764A1 (de) 1983-03-03
US4536854A (en) 1985-08-20
JPS5827241A (ja) 1983-02-17
GB2104694B (ja)

Similar Documents

Publication Publication Date Title
US5991785A (en) Determining an extremum value and its index in an array using a dual-accumulation processor
US9690580B2 (en) Decomposition of decimal floating point data
KR100239029B1 (ko) 가산기와 함께 사용하기 위한 결과 정규화기 및 결과 정규화 방법과 그를 포함하는 데이터 프로세서
KR860000791B1 (ko) 데이터처리장치
JPS6097435A (ja) 演算処理装置
US4542476A (en) Arithmetic logic unit
US10416962B2 (en) Decimal and binary floating point arithmetic calculations
JPS6227412B2 (ja)
EP0551531A1 (en) Apparatus for executing ADD/SUB operations between IEEE standard floating-point numbers
JPS6141014B2 (ja)
JPH0479015B2 (ja)
JPS61141033A (ja) 演算処理装置
JPH01302425A (ja) 浮動小数点加減算回路
GB1006868A (en) Data processing machine
KR20010050804A (ko) 정수 명령 세트 아키텍쳐 및 구현
JPS6120134A (ja) 平方根計算装置
JPS5932038A (ja) 浮動小数点加算器
JP3638218B2 (ja) シフト機能付きalu命令を持つマイクロプロセッサ
JPH0330170B2 (ja)
JPS6198442A (ja) 演算装置
JP2615746B2 (ja) ビット操作回路
SU522497A1 (ru) Арифметическое устройство
SU1675897A1 (ru) Устройство дл обработки данных переменной длины
Gosling et al. Other Functions of the Arithmetic Unit
JPS60263230A (ja) 多重精度浮動小数点加算回路