JPS5824941A - 演算装置 - Google Patents
演算装置Info
- Publication number
- JPS5824941A JPS5824941A JP56122984A JP12298481A JPS5824941A JP S5824941 A JPS5824941 A JP S5824941A JP 56122984 A JP56122984 A JP 56122984A JP 12298481 A JP12298481 A JP 12298481A JP S5824941 A JPS5824941 A JP S5824941A
- Authority
- JP
- Japan
- Prior art keywords
- operand
- bytes
- byte
- input
- circuit
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/491—Computations with decimal numbers radix 12 or 20.
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/3816—Accepting numbers of variable word length
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
本発明は演算装置に関し、特に可変オペランド長命令の
高速処理に関する。
高速処理に関する。
データ処理装置において、十進演算命令などの可変オペ
ランド長命令を処理する方法として、1バイト巾の演算
器で1バイトづつ処理する方法と、4または8バイト巾
の演算器で一度に複数バイト処理する方法とがある。前
者は技術的には問題が少ないが、命令の処理性能が低い
。
ランド長命令を処理する方法として、1バイト巾の演算
器で1バイトづつ処理する方法と、4または8バイト巾
の演算器で一度に複数バイト処理する方法とがある。前
者は技術的には問題が少ないが、命令の処理性能が低い
。
後者の方法は高速処理が可能となるが1両オペランドの
長さが異なり、一方のオペランドが先に尽きた場合、特
殊な処理を必要としており。
長さが異なり、一方のオペランドが先に尽きた場合、特
殊な処理を必要としており。
制御が複雑となり、また処理時間が長くなるという欠点
がある。一方のオペランドが先に尽きた場合、特殊処理
として尽きた方のオペランドをシックによって演算器の
バイト申分全てゼロにして残っている方のオペランドと
複数バイト一度に演算する方法や、尽きた方のオペラン
ドをゼロとして1バイト巾の演算器で1バイト1つ処理
する方法がとられている。
がある。一方のオペランドが先に尽きた場合、特殊処理
として尽きた方のオペランドをシックによって演算器の
バイト申分全てゼロにして残っている方のオペランドと
複数バイト一度に演算する方法や、尽きた方のオペラン
ドをゼロとして1バイト巾の演算器で1バイト1つ処理
する方法がとられている。
本発明の目的は複数バイト巾の演算器を設けた効果を生
かす演算装置を提供することにある。
かす演算装置を提供することにある。
本発明において、演算手段は複数バイト巾の入力を持ち
、複数バイトの入力データを同時に演算する。この演算
手段に入力されるデータのうち、オペランドの領域以外
の不要バイトを抑止手段によって抑止する。この抑止手
段は一方のオペランドが尽きたとき、その一方の入力の
全バイトを抑止する手段を含んでいる。従って。
、複数バイトの入力データを同時に演算する。この演算
手段に入力されるデータのうち、オペランドの領域以外
の不要バイトを抑止手段によって抑止する。この抑止手
段は一方のオペランドが尽きたとき、その一方の入力の
全バイトを抑止する手段を含んでいる。従って。
一方のオペランドが尽きた場合にも複数バイトの同時演
算が可能となり、複数バイト巾の演算手段を設けた効果
を生かすことができる。
算が可能となり、複数バイト巾の演算手段を設けた効果
を生かすことができる。
以下の説明では、可変オペランド長命令として第1図−
に示す形式の命令を考える。第1図で、01部は加減乗
除等のオペレージ1ンの種類。
に示す形式の命令を考える。第1図で、01部は加減乗
除等のオペレージ1ンの種類。
Ll、L2部はそれぞれ第1.第2オペランドの有効長
マイナス1の値、 ADRl、 ADR2部はそれぞれ
主記憶上の第1.j12オペランドの先頭アドレスを示
すためのフィールドである。なお。
マイナス1の値、 ADRl、 ADR2部はそれぞれ
主記憶上の第1.j12オペランドの先頭アドレスを示
すためのフィールドである。なお。
Ll、 L2部はそれぞれ4ビツトで構成される(従っ
て最大オペランド有効長は16バイト)ものとする。こ
\ではADR1部で示す主記憶上のアドレスから長さL
1+1バイトの第1オペランドと。
て最大オペランド有効長は16バイト)ものとする。こ
\ではADR1部で示す主記憶上のアドレスから長さL
1+1バイトの第1オペランドと。
ADR2部で示す主記憶上のアドレスから長さL2+1
バイトの第2オペランドを、それぞれのオペランドの右
端(後端〕をそろえて加減算し。
バイトの第2オペランドを、それぞれのオペランドの右
端(後端〕をそろえて加減算し。
結果を主記憶上の第1オペランドフイールドに格納する
ものとする。なお、処理装置と主記憶装置間のデータ転
送は、8バイト単位に行なうものと仮定する。
ものとする。なお、処理装置と主記憶装置間のデータ転
送は、8バイト単位に行なうものと仮定する。
第2図は本発明の一実施例を示すブロック図である。同
図において、11.12は演算器に入力する第1および
第2オペランドを格納するための8バイトのレジスタ、
13は第2オペランドの右端バイトを第1オペランドの
右端バイト位置に整合するためのシフタ、14.15は
それ(’tt演算演算大忙入力るデータのうち、オペラ
ンド領域以外の不要バイトを抑止しゼロを保証する抑止
回路である。16は8バイト巾の演算器、17は結果レ
ジスタである。18 、21はそれぞれ上述した命令か
ら与えられる第1.第2オペランドの有効長L1.L2
を保持するレジスタで、内容は後述のごとく、演算が行
なわれるごとに更新される。19.22はそれぞれ上述
した命令のADR1部。
図において、11.12は演算器に入力する第1および
第2オペランドを格納するための8バイトのレジスタ、
13は第2オペランドの右端バイトを第1オペランドの
右端バイト位置に整合するためのシフタ、14.15は
それ(’tt演算演算大忙入力るデータのうち、オペラ
ンド領域以外の不要バイトを抑止しゼロを保証する抑止
回路である。16は8バイト巾の演算器、17は結果レ
ジスタである。18 、21はそれぞれ上述した命令か
ら与えられる第1.第2オペランドの有効長L1.L2
を保持するレジスタで、内容は後述のごとく、演算が行
なわれるごとに更新される。19.22はそれぞれ上述
した命令のADR1部。
ADR2部の下位3ビツトBC、ACを保持するレジス
タで、オペランドの右端バイトの8バイト境界内のバイ
ト位置を示している。20 、25はそれぞれ有効長レ
ジスタ18 、21の値がマイナスになったこと、即ち
対応のオペランドが尽きたことを示すフリツプフロツプ
L1C、L2Cテある。
タで、オペランドの右端バイトの8バイト境界内のバイ
ト位置を示している。20 、25はそれぞれ有効長レ
ジスタ18 、21の値がマイナスになったこと、即ち
対応のオペランドが尽きたことを示すフリツプフロツプ
L1C、L2Cテある。
レジスタ11の8バイトはそのまま抑止回路14に与え
られる。抑止回路14にはBC,LlおよびLlcが与
えられ、演算に不要な部分にゼロを挿入して演算器16
に入力する。第2図の例では第1バイトから第5バイト
まで第1オペランドが存在し、従ってBCが示すオペラ
ンドの右端より右側の第6.7バイト、BCとLlから
求められるオペランドの左端より左側の第Dバイトを抑
止し、ゼロを挿入して演算器16に入力する@L1Cが
セットされているとき、抑止回路14は°全8バイトを
抑止する。詳細については後述される。
られる。抑止回路14にはBC,LlおよびLlcが与
えられ、演算に不要な部分にゼロを挿入して演算器16
に入力する。第2図の例では第1バイトから第5バイト
まで第1オペランドが存在し、従ってBCが示すオペラ
ンドの右端より右側の第6.7バイト、BCとLlから
求められるオペランドの左端より左側の第Dバイトを抑
止し、ゼロを挿入して演算器16に入力する@L1Cが
セットされているとき、抑止回路14は°全8バイトを
抑止する。詳細については後述される。
レジスタ12の8バイトはシック15に入力される。シ
フタ13は衆知のシックが利用される。シフタ15には
ECとACが与えられ、シフタ13はこのECとACの
差に応じて入力された8バイトを右あるいは左シフトし
、第2オペランドの右端をjl!1オペランドの右端位
置に整合する。
フタ13は衆知のシックが利用される。シフタ15には
ECとACが与えられ、シフタ13はこのECとACの
差に応じて入力された8バイトを右あるいは左シフトし
、第2オペランドの右端をjl!1オペランドの右端位
置に整合する。
第2図の例では第2バイトからII4バイトまて第2オ
ペランドが存在し、従ってシフタ13は第2オペランド
を右に1バイトシフトし、その右端を第1オペランドの
右端位置に整合する。
ペランドが存在し、従ってシフタ13は第2オペランド
を右に1バイトシフトし、その右端を第1オペランドの
右端位置に整合する。
シフタ13の出力は抑止回路15に入力される。
抑止回路15にはBC、Ll 、 L2Cが入力される
が。
が。
動作は抑止回路14と同じである。
第5図はL’l (第2オペランドの有効長〕を更新す
る回路を示す。L2レジスタ21の内容はkDと示す遅
れレジスタ55を介して加算器32に入力される。セレ
クタ5oにはBc+1と8の値が与えられており、第1
回目のオペランド間の演算時にはBC+1が選択され、
2回目以降は8の値が選択され、1の補数−発生回路3
1を介して加算器52に入力される。結果的化減算結果
がL2レジスタ21にセットされる。加算時に生ずる最
終キャリは、 L2Dレジスタ35の値が8あるいはB
c+1よりも大きい場合にはキャリが発生し、小さい場
合には発生しない。最終キャリはNOT回路54を介し
てL2Cフリップフロップ25に与えられており、最終
キャリが発生しない時K L2Cフリップフロップ25
がセットされる。これはL2レジスタ21の値がマイナ
スになったとき、即ち、第2オペランドが尽きた時、
L2Cフリップフロッグ25がセットされることを意味
する。
る回路を示す。L2レジスタ21の内容はkDと示す遅
れレジスタ55を介して加算器32に入力される。セレ
クタ5oにはBc+1と8の値が与えられており、第1
回目のオペランド間の演算時にはBC+1が選択され、
2回目以降は8の値が選択され、1の補数−発生回路3
1を介して加算器52に入力される。結果的化減算結果
がL2レジスタ21にセットされる。加算時に生ずる最
終キャリは、 L2Dレジスタ35の値が8あるいはB
c+1よりも大きい場合にはキャリが発生し、小さい場
合には発生しない。最終キャリはNOT回路54を介し
てL2Cフリップフロップ25に与えられており、最終
キャリが発生しない時K L2Cフリップフロップ25
がセットされる。これはL2レジスタ21の値がマイナ
スになったとき、即ち、第2オペランドが尽きた時、
L2Cフリップフロッグ25がセットされることを意味
する。
#!4図の実例で説明する。IIIオペランドは8バイ
ト境界をまたぐgxiの9バイトで、Bc=a、L1=
8である。第2オペランドはl。
ト境界をまたぐgxiの9バイトで、Bc=a、L1=
8である。第2オペランドはl。
鴇の5バイトで、AC==A、L2=2である。簡単の
ためK BC= ACとしである。まず第1回目の演算
は第1オブランドの−fghiと第2オペランドの11
の演算が行なわれる。この時。
ためK BC= ACとしである。まず第1回目の演算
は第1オブランドの−fghiと第2オペランドの11
の演算が行なわれる。この時。
LlおよびL2Dは2であり、j11回目の演算時BC
+1即ち5減じられ、 Llは−3となる。従ってL2
Cフリップフロップ23はセットされ、第2回目以降の
演算時、第2オペランドは尽きてしまっていることを表
示する。
+1即ち5減じられ、 Llは−3となる。従ってL2
Cフリップフロップ23はセットされ、第2回目以降の
演算時、第2オペランドは尽きてしまっていることを表
示する。
第5図は第2オペランドに対応するL2更新回路につい
て示したが、5g1オペランドに対応するL111新回
路も全く同じである。
て示したが、5g1オペランドに対応するL111新回
路も全く同じである。
次に抑止回路14 、15について説明する。
ts1表はオペランドの右端より右側の不1[L /<
イト位置を示している。例えばECが5の場合は、バイ
ト位置6〜7が不要バイトである。
イト位置を示している。例えばECが5の場合は、バイ
ト位置6〜7が不要バイトである。
(第2図のレジスタ11の第1オペランドの例)第2表
はオペランドの左熾より左側の不要ノ・イト位置を示し
ている。例えばBCが5でLlが4の場合はバイト位置
0が不要バイトである。
はオペランドの左熾より左側の不要ノ・イト位置を示し
ている。例えばBCが5でLlが4の場合はバイト位置
0が不要バイトである。
(第2図のレジスタ11の第1オペランドの例)第
2 表 従って、第1表、第2表で示される全ての不要バイトお
よばLlC、L2Cによるオペランドが尽きてしまった
場合の全パイ)Kついてゼロを保証した第1オペランド
および第2オペランドを演算器に入力すれば、正しい演
算結果が得られる。なS、第1!l、第2表で記号「−
」は不要バイトがないことを示す。
2 表 従って、第1表、第2表で示される全ての不要バイトお
よばLlC、L2Cによるオペランドが尽きてしまった
場合の全パイ)Kついてゼロを保証した第1オペランド
および第2オペランドを演算器に入力すれば、正しい演
算結果が得られる。なS、第1!l、第2表で記号「−
」は不要バイトがないことを示す。
第2図の抑止回路15の構成例を第5図に示す。
抑止回路14も同じである。第5図で50は抑止回路1
50制御部であり、入力BC、Ll、 L2Cより、第
1表、第2表およびL2Cに従って不要バイト抑止信号
100、−107を出力する。51は8バイト巾のゲー
ト回路であり、シフタ15から演算器16P−の第2オ
ペランド人力200−265のうち。
50制御部であり、入力BC、Ll、 L2Cより、第
1表、第2表およびL2Cに従って不要バイト抑止信号
100、−107を出力する。51は8バイト巾のゲー
ト回路であり、シフタ15から演算器16P−の第2オ
ペランド人力200−265のうち。
第OS第7バイトに対する抑止信号100 P−107
で示される不要バイトをゼロ保証した信号50ロー56
5を出力する。ゲート回路51の出力30OS565は
演算器16の第2オペランド入力側に接続される。52
はゲート回路51のWJOバイトであグ。
で示される不要バイトをゼロ保証した信号50ロー56
5を出力する。ゲート回路51の出力30OS565は
演算器16の第2オペランド入力側に接続される。52
はゲート回路51のWJOバイトであグ。
第6図にその回路図の一例を示し、8個のANDゲート
で構成される。第6図で、第0バイトを構成する8ビツ
トの入力データ信号200−207は抑止信号10口で
ゲートされ、出力データ信号300〜307に出力され
る。即ち第0バイトが不要バイトでゼロ保証する必要が
ある場合、抑止信号100は論理1を示し、この時、出
力データ信号60口5507はオール0となる。
で構成される。第6図で、第0バイトを構成する8ビツ
トの入力データ信号200−207は抑止信号10口で
ゲートされ、出力データ信号300〜307に出力され
る。即ち第0バイトが不要バイトでゼロ保証する必要が
ある場合、抑止信号100は論理1を示し、この時、出
力データ信号60口5507はオール0となる。
第7図から第11図は第5図の制御回路50の−例を示
したものである。
したものである。
第7図は第1オペランドの右端バイト位置を。
示すBCもしくは数値7のデコーダDEC1と。
第2オペランドの有効長L2のデコーダDEC2である
。DEClの入力は、第1回目の演算時はBCが選択さ
れ、第2回目以降は′7′が選択される。それぞれのデ
コーダDEC1とDEC2の入力と出力の関係は第8図
ビ1.(OIK示す通りである。
。DEClの入力は、第1回目の演算時はBCが選択さ
れ、第2回目以降は′7′が選択される。それぞれのデ
コーダDEC1とDEC2の入力と出力の関係は第8図
ビ1.(OIK示す通りである。
第9図は第2表に示したオペランドの左熾より左側の不
要バイトを決定するだめの論理回路の一例で、第7図の
デコーダ出力1614167 。
要バイトを決定するだめの論理回路の一例で、第7図の
デコーダ出力1614167 。
180 M 1B6よりバイト0A−6の抑止信号11
05116を出力する。
05116を出力する。
第10図は第1表に示したオペラントノ右端より右側の
不要バイトを決定するだめの論理回路の一例で、第7図
のデコーダ出力160S166よりバイトI S7の抑
止信号121 M 127を出力する。
不要バイトを決定するだめの論理回路の一例で、第7図
のデコーダ出力160S166よりバイトI S7の抑
止信号121 M 127を出力する。
第11図は第9図および第10図で示される不要バイト
抑止信号11oS116.121P−127ヲオアする
と共に、 L2cフリップ70ツブの出力に基いて全バ
イト抑止する抑止信号をオアするオア回路であり1本回
路の出力100〜107が第5図の制御回路50の出力
、即ち、演算器への入力データの0〜7バイトの抑止信
号となる。なおANDゲートはL2(、’と10進8バ
イト演算指定信号とのANDをとるためのものである。
抑止信号11oS116.121P−127ヲオアする
と共に、 L2cフリップ70ツブの出力に基いて全バ
イト抑止する抑止信号をオアするオア回路であり1本回
路の出力100〜107が第5図の制御回路50の出力
、即ち、演算器への入力データの0〜7バイトの抑止信
号となる。なおANDゲートはL2(、’と10進8バ
イト演算指定信号とのANDをとるためのものである。
こうして1片方のオペランド長がマイナスになった場合
、そのオペランドの全バイトラ−斉に抑止することが可
能となる。このことによればもう一方のオペランドの残
り分を、−挙に8バイト演算器で処理することが可能で
ある。丁なわち1片方のオペランドがなくなった場合。
、そのオペランドの全バイトラ−斉に抑止することが可
能となる。このことによればもう一方のオペランドの残
り分を、−挙に8バイト演算器で処理することが可能で
ある。丁なわち1片方のオペランドがなくなった場合。
残りのオペランドをその残り有効長で示す分のバイトだ
け演算器に入力し、他のバイトを抑止してやれば、相手
オペランドは常に。であるため、前回の最上位キャリー
を当該オペランドに加える動作がなされることで、演算
が完全に実行される。
け演算器に入力し、他のバイトを抑止してやれば、相手
オペランドは常に。であるため、前回の最上位キャリー
を当該オペランドに加える動作がなされることで、演算
が完全に実行される。
実例Zとって、説明する。第12図に10進加算命令の
オペランドを示す。第1オペランド側が位置カウンタ(
B C)=1 に始まり有効長カウンタ(Ll)==1
1となっている。第2オペランド側は位置カウンタ(A
C)=1に始まり、有効長カウンタCL2)=6 と
なっている。簡単のため。
オペランドを示す。第1オペランド側が位置カウンタ(
B C)=1 に始まり有効長カウンタ(Ll)==1
1となっている。第2オペランド側は位置カウンタ(A
C)=1に始まり、有効長カウンタCL2)=6 と
なっている。簡単のため。
本例ではACとECが一致しているが、不一致の場合は
第2オペランドを整合させて使用する。
第2オペランドを整合させて使用する。
第12図かられかるように、第1オペランドが3つの8
バイト境界にわたっているので3回の8バイト演算を要
する。第1回目から第3回目までの演算に先立つ、第1
オペランド、第2オペランドの有効長カウンタ(Ll
、 L2で示す)の値を第14図(α1に示す。この値
は、8バイト境界毎に処理したバイト数を減算して求め
るもので。
バイト境界にわたっているので3回の8バイト演算を要
する。第1回目から第3回目までの演算に先立つ、第1
オペランド、第2オペランドの有効長カウンタ(Ll
、 L2で示す)の値を第14図(α1に示す。この値
は、8バイト境界毎に処理したバイト数を減算して求め
るもので。
第5図で既述のように1回目演算では2バイト処理され
るので、 Ll、 L20更新内容を示す第14図(b
lのごと(Ll−(BC+1 )=9が2回目に先立つ
Llの値となる。L2も同バイト処理されるため、 L
2−(BC+1)=4が第2回目に先立つ値である。2
回目には8バイト分処理されるので。
るので、 Ll、 L20更新内容を示す第14図(b
lのごと(Ll−(BC+1 )=9が2回目に先立つ
Llの値となる。L2も同バイト処理されるため、 L
2−(BC+1)=4が第2回目に先立つ値である。2
回目には8バイト分処理されるので。
第14図(blに示すようにLl−(BC+1)−8=
1 。
1 。
L2−(BC+1)−8==−4が5回目に先立つ値と
なる。この値はマイナスであるため第5図(α1のL2
の加算器、52のキャリー出力は0となり。
なる。この値はマイナスであるため第5図(α1のL2
の加算器、52のキャリー出力は0となり。
したがってL2Cフリップフロップが初めてゝ1#とな
る。先に説明したように、第2オペランド側全バイト抑
止信号が付勢され、演算器には第2オペランドはオール
0として入力される。第13図に第1回目から第3回目
の10進加算のための演算内容を示す。第1回目は最も
右端のバイトを含む2バイトの演算が8バイト単位で実
行される。BC+1から右のバイトは第1.第2オペラ
ンド側とも抑止されている。結果のキャリは1であり、
第2回目の初期キャリーとして最下位に加えられる。第
2回目は、第1オペランド長は9であり、第1オペラン
ド側は8バイト全部が演算器に入力され、第2オペラン
ド側はL2=4となっており、またBCは2回目以降の
演算で強制的に7とみなされ、右端から5バイト分が演
算器に入力され、バイト0〜2の上位5バイトは抑止さ
れている。この結果キャリーは10でありやはり次回初
期キャリーとなる。第3回目の第2オペランド側が本発
明の特徴ある動作となる。すなわちL2=−aと負にな
ったため。
る。先に説明したように、第2オペランド側全バイト抑
止信号が付勢され、演算器には第2オペランドはオール
0として入力される。第13図に第1回目から第3回目
の10進加算のための演算内容を示す。第1回目は最も
右端のバイトを含む2バイトの演算が8バイト単位で実
行される。BC+1から右のバイトは第1.第2オペラ
ンド側とも抑止されている。結果のキャリは1であり、
第2回目の初期キャリーとして最下位に加えられる。第
2回目は、第1オペランド長は9であり、第1オペラン
ド側は8バイト全部が演算器に入力され、第2オペラン
ド側はL2=4となっており、またBCは2回目以降の
演算で強制的に7とみなされ、右端から5バイト分が演
算器に入力され、バイト0〜2の上位5バイトは抑止さ
れている。この結果キャリーは10でありやはり次回初
期キャリーとなる。第3回目の第2オペランド側が本発
明の特徴ある動作となる。すなわちL2=−aと負にな
ったため。
#!2オペランド側は全バイト抑止され、第1オペラン
ド側は残り有効要分の入入力され他の上位バイトは抑止
される。こうして第5回目の加算結果が求められる。各
回の演算結果は適切なデータ転送手段を用いて、記憶装
置上に格納される。第14図(clは各回演算時の演算
器入力抑止位置を示す。第1回、第2@、第3回とも全
く同じマイクロファンクシ層ンを用いて10進加算が実
行でき、毎回演算器の最大幅8バイトの演算tやった訳
である。本発明によれば本例の第6回目の演算を従来の
ように1バイトづつ処理したり、別の演算系統〔例えば
シック〕を用いてtJ2オペランド側をゼロにして第2
オペ格納レジスタに入れ演算させるという余分な手間を
踏まずに済む。
ド側は残り有効要分の入入力され他の上位バイトは抑止
される。こうして第5回目の加算結果が求められる。各
回の演算結果は適切なデータ転送手段を用いて、記憶装
置上に格納される。第14図(clは各回演算時の演算
器入力抑止位置を示す。第1回、第2@、第3回とも全
く同じマイクロファンクシ層ンを用いて10進加算が実
行でき、毎回演算器の最大幅8バイトの演算tやった訳
である。本発明によれば本例の第6回目の演算を従来の
ように1バイトづつ処理したり、別の演算系統〔例えば
シック〕を用いてtJ2オペランド側をゼロにして第2
オペ格納レジスタに入れ演算させるという余分な手間を
踏まずに済む。
以上は10進加算命令の例であるが、論理演算の場合も
全く同様の方法により先に尽きてしまった方のオペラン
ド側の演算器入力をすべて抑止することができる。また
10進減算命令の例では以上の説明のうち第2オペラン
ド側のゼロ抑止を1セツトと置換すれば全く同様に高速
化回路を構成することができる。
全く同様の方法により先に尽きてしまった方のオペラン
ド側の演算器入力をすべて抑止することができる。また
10進減算命令の例では以上の説明のうち第2オペラン
ド側のゼロ抑止を1セツトと置換すれば全く同様に高速
化回路を構成することができる。
本発明によれば、第1オペランド、第2オペランドの処
理長の短い方が有効オペランドを使用後もなお同一のマ
イクロファンクシ躍ンにより他方の未処理オペランドの
演算を複数バイト幅で実行できるので、10進演算、論
理演算の高速化に効果がある。従来例で、一方のオペラ
ンドが先に尽きた場合、バイト処理に移行する例と比較
すると、平均的に残りオペランド長を4(1から8の中
間〕とすると、従来4サイクル本発明1サイクルで済み
平均3サイクル高速化されることになる。
理長の短い方が有効オペランドを使用後もなお同一のマ
イクロファンクシ躍ンにより他方の未処理オペランドの
演算を複数バイト幅で実行できるので、10進演算、論
理演算の高速化に効果がある。従来例で、一方のオペラ
ンドが先に尽きた場合、バイト処理に移行する例と比較
すると、平均的に残りオペランド長を4(1から8の中
間〕とすると、従来4サイクル本発明1サイクルで済み
平均3サイクル高速化されることになる。
第1図は可変オペランド長命令の命令形式を示す図、第
2図は本発明の一実施例を示すブロック図、第3図はオ
ペランド有効長レジスタの更新回路Y示すブロック図、
第4図は#!3図の説明に供する図、第5図は第2図の
抑止回路の詳細を示すブロック図、第6図^第11図は
第5図のゲート回路およびその制御回路の詳細を示すブ
ロック図、第12図〜第14図は本発明を説明するため
の異体例を示す図である。 11・・・第1オペランドレジスタ、12・・・第2オ
ペランドレジスタ、1′S・・・シック、14.15・
・・抑止回路、16・・・演算器、17・・・結果レジ
スタ。 代理人弁理士 薄 1)利&@ 蝉 1 図 口、20 ■ト23 0]lδ口下、。 319 区ト22 第 5 図 第 6 図 第 ′7 図 嘗 弓嘗旨 8 裾 ぺ覧 :量
2図は本発明の一実施例を示すブロック図、第3図はオ
ペランド有効長レジスタの更新回路Y示すブロック図、
第4図は#!3図の説明に供する図、第5図は第2図の
抑止回路の詳細を示すブロック図、第6図^第11図は
第5図のゲート回路およびその制御回路の詳細を示すブ
ロック図、第12図〜第14図は本発明を説明するため
の異体例を示す図である。 11・・・第1オペランドレジスタ、12・・・第2オ
ペランドレジスタ、1′S・・・シック、14.15・
・・抑止回路、16・・・演算器、17・・・結果レジ
スタ。 代理人弁理士 薄 1)利&@ 蝉 1 図 口、20 ■ト23 0]lδ口下、。 319 区ト22 第 5 図 第 6 図 第 ′7 図 嘗 弓嘗旨 8 裾 ぺ覧 :量
Claims (1)
- 【特許請求の範囲】 第1および第2オペランドの演算を行なう演算装置にお
いて、複数バイト巾の入力を持ち。 複数バイトの入力データを同時に演算する演算手段と、
#演算手段に入力されるデータのうち、オペランドの領
域以外の不要バイトを抑止する手段とを真値し、該抑止
手段は一方のオペランドが尽きた時、一方の入力の全バ
イトを抑止する手段を含むことを特徴とする演算装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56122984A JPS5824941A (ja) | 1981-08-07 | 1981-08-07 | 演算装置 |
GB08222279A GB2104260B (en) | 1981-08-07 | 1982-08-02 | Arithmatic logic unit |
US06/404,648 US4542476A (en) | 1981-08-07 | 1982-08-03 | Arithmetic logic unit |
DE3229452A DE3229452C2 (de) | 1981-08-07 | 1982-08-06 | Anordnung zur Durchführung von arithmetischen und logischen Operationen |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56122984A JPS5824941A (ja) | 1981-08-07 | 1981-08-07 | 演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5824941A true JPS5824941A (ja) | 1983-02-15 |
JPS6244292B2 JPS6244292B2 (ja) | 1987-09-19 |
Family
ID=14849413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP56122984A Granted JPS5824941A (ja) | 1981-08-07 | 1981-08-07 | 演算装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US4542476A (ja) |
JP (1) | JPS5824941A (ja) |
DE (1) | DE3229452C2 (ja) |
GB (1) | GB2104260B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6186838A (ja) * | 1984-10-05 | 1986-05-02 | Hitachi Ltd | ビツト演算処理装置 |
JPH03142533A (ja) * | 1989-10-27 | 1991-06-18 | Koufu Nippon Denki Kk | 10進データのチェック回路 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4893235A (en) * | 1983-10-03 | 1990-01-09 | Digital Equipment Corporation | Central processing unit for a digital computer |
US4761755A (en) * | 1984-07-11 | 1988-08-02 | Prime Computer, Inc. | Data processing system and method having an improved arithmetic unit |
DE3770353D1 (de) * | 1986-07-11 | 1991-07-04 | Siemens Ag | Verfahren und anordnung zur verknuepfung von operanden variabler laenge in datenverarbeitungsanlagen. |
US4914617A (en) * | 1987-06-26 | 1990-04-03 | International Business Machines Corporation | High performance parallel binary byte adder |
US4926355A (en) * | 1987-07-02 | 1990-05-15 | General Datacomm, Inc. | Digital signal processor architecture with an ALU and a serial processing section operating in parallel |
US4888722A (en) * | 1987-07-02 | 1989-12-19 | General Datacomm, Inc. | Parallel arithmetic-logic unit for as an element of digital signal processor |
US5307474A (en) * | 1987-09-30 | 1994-04-26 | Mitsubishi Denki Kabushiki Kaisha | Apparatus and method for processing literal operand computer instructions |
US5201056A (en) * | 1990-05-02 | 1993-04-06 | Motorola, Inc. | RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output |
US7395298B2 (en) | 1995-08-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed data |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
US6230253B1 (en) * | 1998-03-31 | 2001-05-08 | Intel Corporation | Executing partial-width packed data instructions |
US6230257B1 (en) | 1998-03-31 | 2001-05-08 | Intel Corporation | Method and apparatus for staggering execution of a single packed data instruction using the same circuit |
US6442676B1 (en) * | 1999-06-30 | 2002-08-27 | Bull Hn Information Systems Inc. | Processor with different width functional units ignoring extra bits of bus wider than instruction width |
US20030037085A1 (en) * | 2001-08-20 | 2003-02-20 | Sandbote Sam B. | Field processing unit |
US7430578B2 (en) | 2001-10-29 | 2008-09-30 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed byte data |
US7320013B2 (en) * | 2002-12-12 | 2008-01-15 | Adaptec, Inc. | Method and apparatus for aligning operands for a processor |
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 |
US20150378726A1 (en) * | 2014-06-27 | 2015-12-31 | Oracle International Corporation | Implementation for a high performance bcd divider |
Family Cites Families (8)
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 |
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 |
DE2806452C3 (de) * | 1978-02-15 | 1981-11-12 | Ščetinin, Jurij Ivanovič | Anordnung zur Verarbeitung von Mehrbytefeldern mit Daten veränderlicher Länge |
US4224682A (en) * | 1979-01-02 | 1980-09-23 | Honeywell Information Systems Inc. | Pointer for defining the data by controlling merge switches |
DE3040931C1 (de) * | 1980-10-30 | 1982-04-29 | Siemens AG, 1000 Berlin und 8000 München | Verfahren und Anordnung zur Verknuepfung von Operanden variabler Laenge in Datenverarbeitungsanlagen |
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 |
-
1981
- 1981-08-07 JP JP56122984A patent/JPS5824941A/ja active Granted
-
1982
- 1982-08-02 GB GB08222279A patent/GB2104260B/en not_active Expired
- 1982-08-03 US US06/404,648 patent/US4542476A/en not_active Expired - Lifetime
- 1982-08-06 DE DE3229452A patent/DE3229452C2/de not_active Expired
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6186838A (ja) * | 1984-10-05 | 1986-05-02 | Hitachi Ltd | ビツト演算処理装置 |
JPH03142533A (ja) * | 1989-10-27 | 1991-06-18 | Koufu Nippon Denki Kk | 10進データのチェック回路 |
Also Published As
Publication number | Publication date |
---|---|
GB2104260B (en) | 1985-12-11 |
DE3229452A1 (de) | 1983-06-01 |
JPS6244292B2 (ja) | 1987-09-19 |
GB2104260A (en) | 1983-03-02 |
DE3229452C2 (de) | 1989-11-02 |
US4542476A (en) | 1985-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS5824941A (ja) | 演算装置 | |
KR860000791B1 (ko) | 데이터처리장치 | |
US4413326A (en) | Floating point division control | |
US4677582A (en) | Operation processing apparatus | |
JPS60140429A (ja) | 10進乗算装置 | |
JP4402654B2 (ja) | Simdデータ処理システムにおける結果区分化 | |
JPH0479015B2 (ja) | ||
JPS6141014B2 (ja) | ||
JP3201097B2 (ja) | 乗算器における乗算処方方法 | |
JP3139011B2 (ja) | 固定小数点プロセッサ | |
JPH0215089B2 (ja) | ||
JPS607813B2 (ja) | 可変長演算方式 | |
JPS6320536A (ja) | 情報処理装置 | |
JPS6149234A (ja) | 浮動小数点乗算回路 | |
JP3638218B2 (ja) | シフト機能付きalu命令を持つマイクロプロセッサ | |
JPS61224036A (ja) | 演算装置 | |
JPH01156824A (ja) | マイクロプロセッサ | |
JP2555967B2 (ja) | 浮動小数点加減算器 | |
JPS6148036A (ja) | 演算処理装置 | |
JPH0415728A (ja) | 浮動小数点演算装置 | |
JPS6320532A (ja) | 浮動小数点演算装置 | |
JPS5985539A (ja) | 除算処理装置 | |
JPS59142646A (ja) | 計算処理装置 | |
JPS6051132B2 (ja) | オ−バラン補正方式 | |
JPH0449138B2 (ja) |