JPH02127726A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH02127726A JPH02127726A JP63281969A JP28196988A JPH02127726A JP H02127726 A JPH02127726 A JP H02127726A JP 63281969 A JP63281969 A JP 63281969A JP 28196988 A JP28196988 A JP 28196988A JP H02127726 A JPH02127726 A JP H02127726A
- Authority
- JP
- Japan
- Prior art keywords
- operand
- digit
- digits
- zero
- data
- 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
- 238000001514 detection method Methods 0.000 claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 7
- 230000010365 information processing Effects 0.000 claims description 14
- 230000000873 masking effect Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- BLRPTPMANUNPDV-UHFFFAOYSA-N Silane Chemical compound [SiH4] BLRPTPMANUNPDV-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はメモリ上のパック形式の10進数の第2オペラ
ンドを値が命令語で指定される数だけゼロの桁を上位に
挿入して第1オペランド位置に転送する命令の処理を行
う情報処理装置に関し、特にlO進オーバーフロー例外
の検出を行う情報処理装置に関する。
ンドを値が命令語で指定される数だけゼロの桁を上位に
挿入して第1オペランド位置に転送する命令の処理を行
う情報処理装置に関し、特にlO進オーバーフロー例外
の検出を行う情報処理装置に関する。
(従来の技術)
ある種の汎用計算機には、第4図(b)に示すように、
メモリ上のCAR+1)バイトのバック形式の10進数
の第2オペランドを上位にvt個のゼロの桁を挿入して
メモリ上の(j++1)バイトの第1オペランド位置に
転送する命令(以下、ZAVL命令と記す)がある、こ
のZAVL命令によるデータ転送の際、第2オペランド
の符号は第1オペランドの最下位の桁に転送される。数
字の転送において第2オペランドの桁が不足した場合に
は、符号桁を除く第1オペランドの下位に値がゼロの桁
が詰められ、第2オペランドの桁が多かった場合には余
った第2オペランドの数字は転送されずに切り捨てられ
る。このとき、切り捨てられた数字に有効数字がある場
合、プログラム状態語(PSW)内の10進オーバーフ
ローマスクピントが1であれば10進オーバーフロー例
外となり、プログラム割込みを起す。
メモリ上のCAR+1)バイトのバック形式の10進数
の第2オペランドを上位にvt個のゼロの桁を挿入して
メモリ上の(j++1)バイトの第1オペランド位置に
転送する命令(以下、ZAVL命令と記す)がある、こ
のZAVL命令によるデータ転送の際、第2オペランド
の符号は第1オペランドの最下位の桁に転送される。数
字の転送において第2オペランドの桁が不足した場合に
は、符号桁を除く第1オペランドの下位に値がゼロの桁
が詰められ、第2オペランドの桁が多かった場合には余
った第2オペランドの数字は転送されずに切り捨てられ
る。このとき、切り捨てられた数字に有効数字がある場
合、プログラム状態語(PSW)内の10進オーバーフ
ローマスクピントが1であれば10進オーバーフロー例
外となり、プログラム割込みを起す。
従来、この種のZAVL命令の実行は、性能が要求され
ない場合には1バイト単位に処理されていた。詳しくは
、まず1バイト単位にV1桁のゼロを第1オペランドの
上位に転送し、次にメモリから1バイト単位に第2オペ
ランドを上位から順次読み出し、先にゼロを転送した第
1オペランド位置の下位に転送する。この転送において
、第2オペランドが不足した場合には、後にゼロの桁を
補って転送する。逆に、第2オペランドが余った場合に
は、余った桁は第1オペランド位置には転送されず、有
効数字を含んでいるかどうかが順次検査される。有効数
字を含んでいれば、10進オーバーフローマスクピント
が1のときにIO進オーバーフロー例外が検出される。
ない場合には1バイト単位に処理されていた。詳しくは
、まず1バイト単位にV1桁のゼロを第1オペランドの
上位に転送し、次にメモリから1バイト単位に第2オペ
ランドを上位から順次読み出し、先にゼロを転送した第
1オペランド位置の下位に転送する。この転送において
、第2オペランドが不足した場合には、後にゼロの桁を
補って転送する。逆に、第2オペランドが余った場合に
は、余った桁は第1オペランド位置には転送されず、有
効数字を含んでいるかどうかが順次検査される。有効数
字を含んでいれば、10進オーバーフローマスクピント
が1のときにIO進オーバーフロー例外が検出される。
転送の最後のバイトの下位桁には第2オペランドの符号
が入れられ、第1オペランドの符号として転送される。
が入れられ、第1オペランドの符号として転送される。
一方、性能が要求される場合には、複数バイト、例えば
8バイト単位で第2オペランドの全てをメモリから読み
出し、演算回路内で右詰めになるように整列(シフト)
シて演算回路に供給し、演算回路ではこれを(Vt
+21* 2L)桁だけ右シフトし第1オペランド
として演算回路内で右詰めされたデータを得る。ここで
、vl+’lおよびj!8は、それぞれ第4図(a)に
示すZAVL命令の命令語で与えられるオフセット、
(第1オペランドのバイト長−1)および(第2オペラ
ンドのバイト長−1)である、なお、(vt +2ra
t −2zt )が負の場合には、−(vt +2J!
−2x、)桁の左シフトが行われるa (Vt ”2
11 2j+)が1以上の場合には、上記右シフトによ
って有効桁が切り捨てられる可能性があるため、シフト
に先だって第2オペランドの下位(Vt +27x
21+ )指向に有効数字が含まれるかどうかをチエツ
クする。このために、演算回路内には、各桁の値のゼロ
を検出する回路と、この回路の出力に基づいて下位に連
なるゼロの桁の数mを数える回路と、この数mと前記(
v、+2j、−2g、)とを比較する回路とをもつ、こ
の比較回路による比較において、m< (v、+’ll
。
8バイト単位で第2オペランドの全てをメモリから読み
出し、演算回路内で右詰めになるように整列(シフト)
シて演算回路に供給し、演算回路ではこれを(Vt
+21* 2L)桁だけ右シフトし第1オペランド
として演算回路内で右詰めされたデータを得る。ここで
、vl+’lおよびj!8は、それぞれ第4図(a)に
示すZAVL命令の命令語で与えられるオフセット、
(第1オペランドのバイト長−1)および(第2オペラ
ンドのバイト長−1)である、なお、(vt +2ra
t −2zt )が負の場合には、−(vt +2J!
−2x、)桁の左シフトが行われるa (Vt ”2
11 2j+)が1以上の場合には、上記右シフトによ
って有効桁が切り捨てられる可能性があるため、シフト
に先だって第2オペランドの下位(Vt +27x
21+ )指向に有効数字が含まれるかどうかをチエツ
クする。このために、演算回路内には、各桁の値のゼロ
を検出する回路と、この回路の出力に基づいて下位に連
なるゼロの桁の数mを数える回路と、この数mと前記(
v、+2j、−2g、)とを比較する回路とをもつ、こ
の比較回路による比較において、m< (v、+’ll
。
−27!、)ならば切り捨てられる有効桁があることを
示し、10進オーバーフローマスクビットが1ならば1
0進オーバーフロー例外となる。上記右シフトされたデ
ータは、最下位桁に第2オペランドの符号に相当する符
号(ただし、有効桁の切捨てが発生せずに第1オペラン
ドの値がゼロのときには正符号)が埋め込まれ、第1オ
ペランドのアドレスに合わせて整列されてメモリにスト
アされる。
示し、10進オーバーフローマスクビットが1ならば1
0進オーバーフロー例外となる。上記右シフトされたデ
ータは、最下位桁に第2オペランドの符号に相当する符
号(ただし、有効桁の切捨てが発生せずに第1オペラン
ドの値がゼロのときには正符号)が埋め込まれ、第1オ
ペランドのアドレスに合わせて整列されてメモリにスト
アされる。
〔発明が解決しようとする課題〕
上述した従来の情報処理装置では、前者のバイト単位に
処理する場合には、1バイト単位に処理が実行されるの
で、処理の高速化が望めないという欠点がある。
処理する場合には、1バイト単位に処理が実行されるの
で、処理の高速化が望めないという欠点がある。
また、後者の複数バイト同時に処理する場合には、ZA
VL命令専用に第2オペランドの下位に連なる値がゼロ
の桁の数を検出するための回路が必要になって金物量が
増加するか、または別にシフト回路により切り捨てられ
る桁のみのデータを求めてそれがゼロかどうかをチエツ
クする必要があるので、そのための処理時間が増加する
という欠点がある。
VL命令専用に第2オペランドの下位に連なる値がゼロ
の桁の数を検出するための回路が必要になって金物量が
増加するか、または別にシフト回路により切り捨てられ
る桁のみのデータを求めてそれがゼロかどうかをチエツ
クする必要があるので、そのための処理時間が増加する
という欠点がある。
本発明の目的は、上述の点に鑑み、ZAVL命令のオー
バフローの検出を他の10進命令のオーバフローの検出
と同様に処理することにより、ZAVL命令を少ない金
物量で高速に処理することができるようにした情報処理
装置を提供することにある。
バフローの検出を他の10進命令のオーバフローの検出
と同様に処理することにより、ZAVL命令を少ない金
物量で高速に処理することができるようにした情報処理
装置を提供することにある。
(JBを解決するための手段〕
本発明の情報処理装置は、最下位桁に符号桁を有するパ
ック形式の10進数の第2オペランドを命令語で指定さ
れた数だけ値がゼロの桁を上位に挿入して第1オペラン
ド位置に転送する命令の処理を行う情報処理装置におい
て、メモリから読み出した第2オペランドを演算回路内
で右詰めになるように整列する整列手段と、この整列手
段により整列された第2オペランドの符号桁をゼロにマ
スクするマスク手段と、このマスク手段によりマスクさ
れたデータを命令語で指定する桁数と第1オペランドお
よび第2オペランドの桁数とに応じて第1オペランドと
して演算回路内で右詰めになるようにローテーションシ
フトするローテーションシフト手段と、このローテーシ
ョンシフト手段によりローテーションシフトされたデー
タの各桁の値がゼロかどうかを検出する桁ゼロ検出手段
と、この桁ゼロ検出手段の出力から上位に連なる値がゼ
ロの桁の数を求め前記ローテーションシフト手段により
ローテーションシフトされたデータの有効桁数を得る有
効桁数取得手段と、この有効桁数取得手段により得られ
た有効桁数と第1オペランドの桁数とを比較する比較手
段と、この比較手段の出力と前記桁ゼロ検出手段の出力
と第2オペランドの符号と10進オーバーフローマスク
ビットとに応答して条件コードを生成し10進オーバー
フロー例外を検出するオーバーフロー例外検出手段と、
前記ローテーションシフト手段によりローテーションシ
フトされたデータの最下位桁に結果符号を埋め込む結果
符号埋込み手段と、この結果符号埋込み手段により結果
符号が埋め込まれたデータを第1オペランドのアドレス
に合わせて整列し第1オペランドの長さだけメモリに格
納する格納手段とを有する。
ック形式の10進数の第2オペランドを命令語で指定さ
れた数だけ値がゼロの桁を上位に挿入して第1オペラン
ド位置に転送する命令の処理を行う情報処理装置におい
て、メモリから読み出した第2オペランドを演算回路内
で右詰めになるように整列する整列手段と、この整列手
段により整列された第2オペランドの符号桁をゼロにマ
スクするマスク手段と、このマスク手段によりマスクさ
れたデータを命令語で指定する桁数と第1オペランドお
よび第2オペランドの桁数とに応じて第1オペランドと
して演算回路内で右詰めになるようにローテーションシ
フトするローテーションシフト手段と、このローテーシ
ョンシフト手段によりローテーションシフトされたデー
タの各桁の値がゼロかどうかを検出する桁ゼロ検出手段
と、この桁ゼロ検出手段の出力から上位に連なる値がゼ
ロの桁の数を求め前記ローテーションシフト手段により
ローテーションシフトされたデータの有効桁数を得る有
効桁数取得手段と、この有効桁数取得手段により得られ
た有効桁数と第1オペランドの桁数とを比較する比較手
段と、この比較手段の出力と前記桁ゼロ検出手段の出力
と第2オペランドの符号と10進オーバーフローマスク
ビットとに応答して条件コードを生成し10進オーバー
フロー例外を検出するオーバーフロー例外検出手段と、
前記ローテーションシフト手段によりローテーションシ
フトされたデータの最下位桁に結果符号を埋め込む結果
符号埋込み手段と、この結果符号埋込み手段により結果
符号が埋め込まれたデータを第1オペランドのアドレス
に合わせて整列し第1オペランドの長さだけメモリに格
納する格納手段とを有する。
本発明の情報処理装置では、整列手段がメモリから読み
出した第2オペランドを演算回路内で右詰めになるよう
に整列し、マスク手段が整列手段により整列された第2
オペランドの符号桁をゼロにマスクし、ローテーション
シフト手段がマスク手段によりマスクされたデータを命
令語で指定する桁数と第1オペランドおよび第2オペラ
ンドの桁数とに応じて第1オペランドとして演算回路内
で右詰めになるようにローテーションシフトし、桁ゼロ
検出手段がローテーションシフト手段によりローテーシ
ョンシフトされたデータの各桁の値がゼロかどうかを検
出し、有効桁数取得手段が桁ゼロ検出手段の出力から上
位に連なる値がゼロの桁の数を求めローテーションシフ
ト手段によりローテーションシフトされたデータの有効
桁数を得、比較手段が有効桁数取得手段により得られた
有効桁数と第1オペランドの桁数とを比較し、オーバー
フロー例外検出手段が比較手段の出力と桁ゼロ検出手段
の出力と第2オペランドの符号と10進オーバーフロー
マスクビットとに応答して条件コードを生成しIO進オ
ーバーフロー例外を検出し、結果符号埋込み手段がロー
テーションシフト手段によりローテーションシフトされ
たデータの最下位桁に結果符号を埋め込み、格納手段が
結果符号埋込み手段により結果符号が埋め込まれたデー
タを第1オペランドのアドレスに合わせて整列し第1オ
ペランドの長さだけメモリに格納する。
出した第2オペランドを演算回路内で右詰めになるよう
に整列し、マスク手段が整列手段により整列された第2
オペランドの符号桁をゼロにマスクし、ローテーション
シフト手段がマスク手段によりマスクされたデータを命
令語で指定する桁数と第1オペランドおよび第2オペラ
ンドの桁数とに応じて第1オペランドとして演算回路内
で右詰めになるようにローテーションシフトし、桁ゼロ
検出手段がローテーションシフト手段によりローテーシ
ョンシフトされたデータの各桁の値がゼロかどうかを検
出し、有効桁数取得手段が桁ゼロ検出手段の出力から上
位に連なる値がゼロの桁の数を求めローテーションシフ
ト手段によりローテーションシフトされたデータの有効
桁数を得、比較手段が有効桁数取得手段により得られた
有効桁数と第1オペランドの桁数とを比較し、オーバー
フロー例外検出手段が比較手段の出力と桁ゼロ検出手段
の出力と第2オペランドの符号と10進オーバーフロー
マスクビットとに応答して条件コードを生成しIO進オ
ーバーフロー例外を検出し、結果符号埋込み手段がロー
テーションシフト手段によりローテーションシフトされ
たデータの最下位桁に結果符号を埋め込み、格納手段が
結果符号埋込み手段により結果符号が埋め込まれたデー
タを第1オペランドのアドレスに合わせて整列し第1オ
ペランドの長さだけメモリに格納する。
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明の一実施例の情報処理装置における演
算回路の構成を示す回路ブロック図である。この演算回
路は、メモリ1と、制御回路2と、アライナ3と、レン
グスレジスタ4と、符号レジスタ5と、データレジスタ
6〜8と、シフト量レジスタ9と、レングスデコーダ1
0と、桁ゼロ検出回路11および12と、加算器13と
、桁シフタ14と、比較回路15と、書込みマスクレジ
スタ16と、論理和回路17と、データレジスタ18と
、シフト回路19と、条件コード生成回路20と、アラ
イナ21と、結果符号埋込み回路22とから構成されて
いる。
算回路の構成を示す回路ブロック図である。この演算回
路は、メモリ1と、制御回路2と、アライナ3と、レン
グスレジスタ4と、符号レジスタ5と、データレジスタ
6〜8と、シフト量レジスタ9と、レングスデコーダ1
0と、桁ゼロ検出回路11および12と、加算器13と
、桁シフタ14と、比較回路15と、書込みマスクレジ
スタ16と、論理和回路17と、データレジスタ18と
、シフト回路19と、条件コード生成回路20と、アラ
イナ21と、結果符号埋込み回路22とから構成されて
いる。
メモリ1は、プログラムを構成する命令語とオペランド
とを格納する。
とを格納する。
制御回路2は、ZAVL命令等に基づいて演算回路全体
を制御する。
を制御する。
アライナ3は、メモリlから読み出したオペランドをオ
ペランドアドレスに応じて以後の演算に都合のいい位置
に整列するとともに演算に不要な部分をゼロにマスクす
る。ZAVL命令の場合、メモリ1から読み出された8
バイトの第2オペランドはアライナ3によって右詰めに
シフトされるとともに、8バイトのデータのうちの第2
オペランドでない部分(符号桁を含む)にゼロが埋め込
まれる。
ペランドアドレスに応じて以後の演算に都合のいい位置
に整列するとともに演算に不要な部分をゼロにマスクす
る。ZAVL命令の場合、メモリ1から読み出された8
バイトの第2オペランドはアライナ3によって右詰めに
シフトされるとともに、8バイトのデータのうちの第2
オペランドでない部分(符号桁を含む)にゼロが埋め込
まれる。
レングスレジスタ4は、オペランドのバイト長を保持す
るレジスタである。バイト長は制御回路2から供給され
る。
るレジスタである。バイト長は制御回路2から供給され
る。
符号レジスタ5は、10進データの符号を保持し、演算
の符号や条件コードの作成に使用される。ZAv−L命
令の場合は、第2オペランドがアライナ3からデータレ
ジスタ6および7に転送されるタイミングでその符号が
符号レジスタ5に取り込まれると同時に、符号桁をゼロ
に置き換えたデータがデータレジスタ6および7に転送
される。
の符号や条件コードの作成に使用される。ZAv−L命
令の場合は、第2オペランドがアライナ3からデータレ
ジスタ6および7に転送されるタイミングでその符号が
符号レジスタ5に取り込まれると同時に、符号桁をゼロ
に置き換えたデータがデータレジスタ6および7に転送
される。
データレジスタ6〜8は、演算用の8バイトのデータレ
ジスタであり、加算!S13および桁シフタ14の入力
レジスタである。
ジスタであり、加算!S13および桁シフタ14の入力
レジスタである。
シフト量レジスタ9は、桁シフタ14のシフト量を保持
する。ZAVL命令の場合は、桁シフタ14のシフト量
として(2j+ 2j!t −V+ )の値が制御
回路2からシフト量レジスタ9に供給される。
する。ZAVL命令の場合は、桁シフタ14のシフト量
として(2j+ 2j!t −V+ )の値が制御
回路2からシフト量レジスタ9に供給される。
加算器13は、データレジスタ6および7の内容を10
進加算する加算回路である。
進加算する加算回路である。
桁シフタ14は、データレジスタ8の内容をシフト量レ
ジスタ9に指示される桁数(21H2jetv+)だけ
シフトするシフト回路である。シフト書(21+
21!x −V+ )が正のときは左シフトを、負のと
きは右シフトを行い、出力は8バイトである。また、桁
シフタ14は、制御回路2からの指示に応じてローテー
ションシフトと単純シフトとを選択的に実行可能である
。ローテーションシフトの場合、シフトによってこぼれ
た桁は反対側からのシフトインデータとなる。単純シフ
トの場合、シフトインデータはゼロである。ZAVL命
令に限らず、lO進命令は、演算回路内で右詰めされた
演算データを桁シフタ14と加算器13とによって演算
し、同じく右詰めされた演算結果を得る。ZAVL命令
の場合、第2図に示すように、(オペランドのバイト長
−1)it 、ItおよびオフセットV、の値により処
理が異なる。第2図において、8バイトのローテーショ
ンシフト/単純シフトとは、桁シフタ14によってけう
ローテーションシフト/単純シフトであり、16バイト
のローチーシランシフト/単純シフトとは、16バイト
の第2オペランド(第2オペランドが16バイトに満た
ない場合は上位にゼロを補って16バイトにしたもの)
を桁シフタ14と加算器13とを使って行う16バイト
のローチーシランシフト/単純シフトである。第2図に
おいて、(2j+ 21z V+)く0でかつz、
>7およびJ 、’ > 7のときには、オーバーフロ
ーの検出のために従来技術のやり方と同じように右シフ
トによって切り捨てられる部分のデータを別に求め、そ
の値がゼロかどうかをチエツクしなければならない。
ジスタ9に指示される桁数(21H2jetv+)だけ
シフトするシフト回路である。シフト書(21+
21!x −V+ )が正のときは左シフトを、負のと
きは右シフトを行い、出力は8バイトである。また、桁
シフタ14は、制御回路2からの指示に応じてローテー
ションシフトと単純シフトとを選択的に実行可能である
。ローテーションシフトの場合、シフトによってこぼれ
た桁は反対側からのシフトインデータとなる。単純シフ
トの場合、シフトインデータはゼロである。ZAVL命
令に限らず、lO進命令は、演算回路内で右詰めされた
演算データを桁シフタ14と加算器13とによって演算
し、同じく右詰めされた演算結果を得る。ZAVL命令
の場合、第2図に示すように、(オペランドのバイト長
−1)it 、ItおよびオフセットV、の値により処
理が異なる。第2図において、8バイトのローテーショ
ンシフト/単純シフトとは、桁シフタ14によってけう
ローテーションシフト/単純シフトであり、16バイト
のローチーシランシフト/単純シフトとは、16バイト
の第2オペランド(第2オペランドが16バイトに満た
ない場合は上位にゼロを補って16バイトにしたもの)
を桁シフタ14と加算器13とを使って行う16バイト
のローチーシランシフト/単純シフトである。第2図に
おいて、(2j+ 21z V+)く0でかつz、
>7およびJ 、’ > 7のときには、オーバーフロ
ーの検出のために従来技術のやり方と同じように右シフ
トによって切り捨てられる部分のデータを別に求め、そ
の値がゼロかどうかをチエツクしなければならない。
桁ゼロ検出回路11は、データレジスタ6および7にそ
れぞれ保持された8バイトの10進データを連結した1
6バイトの10進データの各桁毎にその値がゼロかどう
かを示す桁ゼロ信号Z+(i=o〜31)を検出する。
れぞれ保持された8バイトの10進データを連結した1
6バイトの10進データの各桁毎にその値がゼロかどう
かを示す桁ゼロ信号Z+(i=o〜31)を検出する。
さらに、桁ゼロ信号2.から始まり上位に連なる値が1
の桁ゼロ信号Ztの数を数えて出力する0例えば、Z+
+ Zt Zt・・・Zl−11110・・・1とする
とZ、から始まる連続する1の数は4であるから4を出
力する。
の桁ゼロ信号Ztの数を数えて出力する0例えば、Z+
+ Zt Zt・・・Zl−11110・・・1とする
とZ、から始まる連続する1の数は4であるから4を出
力する。
桁ゼロ検出回路12は、データレジスタフの最下位の桁
ゼロを検出する。桁ゼロ検出回路12の出力は、上記の
桁ゼロ信号Zl+と一敗する。
ゼロを検出する。桁ゼロ検出回路12の出力は、上記の
桁ゼロ信号Zl+と一敗する。
比較回路15は、レングスレジスタ4内の第1オペラン
ドのバイト長を2倍したもの、すなわち第1オペランド
の桁数(L+1)と、32から桁ゼロ検出回路11の出
力を引いたもの、すなわちデータレジスタ6および7内
の16バイトのデータの有効桁数とを比較する。第1オ
ペランドの桁数の方が16バイトのデータの有効桁数よ
り小さいときには、ストアの際に切り捨てられる有効桁
がありlO進オーバーフロー例外を発生する可能性があ
るので、比較回路15は1を出力し、それ以外のときに
はOを出力する。
ドのバイト長を2倍したもの、すなわち第1オペランド
の桁数(L+1)と、32から桁ゼロ検出回路11の出
力を引いたもの、すなわちデータレジスタ6および7内
の16バイトのデータの有効桁数とを比較する。第1オ
ペランドの桁数の方が16バイトのデータの有効桁数よ
り小さいときには、ストアの際に切り捨てられる有効桁
がありlO進オーバーフロー例外を発生する可能性があ
るので、比較回路15は1を出力し、それ以外のときに
はOを出力する。
論理和回路17は、比較回路15の出力と桁ゼロ検出回
路12の出力との論理和をとる。ZAVL命令の場合、
右方向のローテーションシフトを行ったときに最下位の
符号桁にも切り捨てられるべき有効数字が入る可能性が
あるため、最下位桁の桁ゼロ信号もオーバーフロー発生
の条件として見る必要がある。
路12の出力との論理和をとる。ZAVL命令の場合、
右方向のローテーションシフトを行ったときに最下位の
符号桁にも切り捨てられるべき有効数字が入る可能性が
あるため、最下位桁の桁ゼロ信号もオーバーフロー発生
の条件として見る必要がある。
条件コード生成回路20は、比較回路15.論理和回路
17.符号レジスタ51桁ゼロ検出回路11および10
進オーバーフローマスクピントからデータレジスタ6お
よび7に得られた演算結果を第1オペランドとしてメモ
リlにストアするときの条件コードの生成と例外の検出
とを行う。すなわち、桁ゼロ検出回路11の出力である
桁ゼロ信号Zi(i=0〜31)が全て1のときには演
算結果はゼロであるから、それを示す条件コードOを生
成する。
17.符号レジスタ51桁ゼロ検出回路11および10
進オーバーフローマスクピントからデータレジスタ6お
よび7に得られた演算結果を第1オペランドとしてメモ
リlにストアするときの条件コードの生成と例外の検出
とを行う。すなわち、桁ゼロ検出回路11の出力である
桁ゼロ信号Zi(i=0〜31)が全て1のときには演
算結果はゼロであるから、それを示す条件コードOを生
成する。
一方、オーバーフローが発生しない場合で少なくとも1
つの桁ゼロ信号Z+が1でないときには、符号レジスタ
5で示される正負に応じて条件コードを生成する(正の
場合は2、負の場合はl)。
つの桁ゼロ信号Z+が1でないときには、符号レジスタ
5で示される正負に応じて条件コードを生成する(正の
場合は2、負の場合はl)。
さらに、比較回路15または論理和回路17によってオ
ーバーフローの発生が検知される場合には、条件コード
3を生成し、10進オーバーフローマスクビットが1の
ときには、さらに10進オーバーフロー例外を発生させ
る。論理和回路17の出力は、ZAVL命令の場合にの
み使用され、それ以外の10進命令のときには比較回路
15の出力のみがオーバーフローの検出に用いられる。
ーバーフローの発生が検知される場合には、条件コード
3を生成し、10進オーバーフローマスクビットが1の
ときには、さらに10進オーバーフロー例外を発生させ
る。論理和回路17の出力は、ZAVL命令の場合にの
み使用され、それ以外の10進命令のときには比較回路
15の出力のみがオーバーフローの検出に用いられる。
レングスデコーダ10は、レングスレジスタ4の内容(
オペランドのバイト長)をデコードし、右端からレング
スレジスタ4の内容の数だけlが連続した16ビツトの
データを出力する0例えば、レングスレジスタ4の内容
が3のときには“0OO0000000000111”
を出力する。これは、演算回路の内部で演算結果は上位
にゼロを拡張して16バイトとして扱われ、そのために
演算結果が8バイト以内でデータレジスタフに入りきる
場合にもデータレジスタ6にゼロのデータを入れ、合わ
せて16バイトの演算結果としてオーバーフローの検出
を行うためである。レングスデコーダ10の出力は、演
算によって得られた右詰めデータのうちの第1オペラン
ドとしてメモリ1にストアされるバイト位置を示してい
る0例えば、前記の“000000000000011
1”のケースでは、右端の3バイトがストアされること
を示している。
オペランドのバイト長)をデコードし、右端からレング
スレジスタ4の内容の数だけlが連続した16ビツトの
データを出力する0例えば、レングスレジスタ4の内容
が3のときには“0OO0000000000111”
を出力する。これは、演算回路の内部で演算結果は上位
にゼロを拡張して16バイトとして扱われ、そのために
演算結果が8バイト以内でデータレジスタフに入りきる
場合にもデータレジスタ6にゼロのデータを入れ、合わ
せて16バイトの演算結果としてオーバーフローの検出
を行うためである。レングスデコーダ10の出力は、演
算によって得られた右詰めデータのうちの第1オペラン
ドとしてメモリ1にストアされるバイト位置を示してい
る0例えば、前記の“000000000000011
1”のケースでは、右端の3バイトがストアされること
を示している。
書込みマスクレジスタ16は、レングスデコーダ10の
出力を保持する。
出力を保持する。
結果符号埋込み回路22は、桁シフタ14によりローテ
ーションシフトされ加算器13から出力されたストアデ
ータの最下位桁に結果符号を埋め込む回路である。
ーションシフトされ加算器13から出力されたストアデ
ータの最下位桁に結果符号を埋め込む回路である。
データレジスタ18は、演算によって得られたストアデ
ータを保持するレジスタである。
ータを保持するレジスタである。
アライナ21は、データレジスタ18内の右詰めされた
第1オペランドであるストアデータを第1オペランドア
ドレスに合わせるために左シフトする回路である。これ
は、制御回路2によってシフト量が与えられて制御され
る。
第1オペランドであるストアデータを第1オペランドア
ドレスに合わせるために左シフトする回路である。これ
は、制御回路2によってシフト量が与えられて制御され
る。
シフト回路19は、アライナ21と同じように制御され
、アライナ21によってシフトされるデータに合わせて
書込みマスクレジスタ16の内容をシフトすることによ
って、メモリlに送られる8バイトのデータのうちの実
際にメモリ1に書き込むべきバイト位置を示す。そのた
めに、メモリ1に送られる8バイトのデータが演算結果
の下位の8バイトのときには、シフト回路19の出力の
下位の8ビツトが書込みマスク情報としてメモリ1に送
られ、一方、演算結果の上位の8バイトのときには、シ
フト回路19の出力の上位の8ビツトが書込みマスク情
報としてメモリ1に送られる。
、アライナ21によってシフトされるデータに合わせて
書込みマスクレジスタ16の内容をシフトすることによ
って、メモリlに送られる8バイトのデータのうちの実
際にメモリ1に書き込むべきバイト位置を示す。そのた
めに、メモリ1に送られる8バイトのデータが演算結果
の下位の8バイトのときには、シフト回路19の出力の
下位の8ビツトが書込みマスク情報としてメモリ1に送
られ、一方、演算結果の上位の8バイトのときには、シ
フト回路19の出力の上位の8ビツトが書込みマスク情
報としてメモリ1に送られる。
メモリlは、8バイトのストアデータと8ビツトの書込
みマスク情報とを受は取り、書込みマスク情報に1が立
っているビットに対応するバイトのみをその記憶素子内
に格納する。
みマスク情報とを受は取り、書込みマスク情報に1が立
っているビットに対応するバイトのみをその記憶素子内
に格納する。
次に、このように構成された本実施例の情報処理装置の
動作について、第3図に示す具体例を用いて説明する。
動作について、第3図に示す具体例を用いて説明する。
第3図に示す具体例では、ZAVL命令は、4バイトの
第2オペランド(1t=3)を上位に8桁のゼロの桁(
v、=8)を挿入して6バイトの第1オペランド位yl
(1,=5)に転送する。また、第2および第1オペラ
ンドアドレスの下3ビットの値(有効数字を格納する先
頭のバイト位置(ゼロオリジン)を示す)は、それぞれ
1および2とする。’I+’!およびv、の値から、こ
のケースは第2図に示す1.■、 (i)のケースに相
当する。
第2オペランド(1t=3)を上位に8桁のゼロの桁(
v、=8)を挿入して6バイトの第1オペランド位yl
(1,=5)に転送する。また、第2および第1オペラ
ンドアドレスの下3ビットの値(有効数字を格納する先
頭のバイト位置(ゼロオリジン)を示す)は、それぞれ
1および2とする。’I+’!およびv、の値から、こ
のケースは第2図に示す1.■、 (i)のケースに相
当する。
メモリ1から読み出される第2オペランドは、第3図(
i)に示すように、8バイトのデータのうちの2バイト
目から始まる4バイトである。最下位桁のSは符号を表
す、この第2オペランドは、アライナ3によって右詰め
されるとともに符号桁にはゼロが埋め込まれて、第3図
(ii )に示すようになる。
i)に示すように、8バイトのデータのうちの2バイト
目から始まる4バイトである。最下位桁のSは符号を表
す、この第2オペランドは、アライナ3によって右詰め
されるとともに符号桁にはゼロが埋め込まれて、第3図
(ii )に示すようになる。
次に、制御回路2によって<2111−21zvl)の
値が計算され、この場合には−4(=2X5−2X3−
8)が得られる。これが桁シフタ14のシフト量となり
、第3図(ii )のデータを右に4桁ローテーシッン
シフトすると、第3図(1ii)に示すようになる。
値が計算され、この場合には−4(=2X5−2X3−
8)が得られる。これが桁シフタ14のシフト量となり
、第3図(ii )のデータを右に4桁ローテーシッン
シフトすると、第3図(1ii)に示すようになる。
比較回路15は、このデータの有効桁数(=16)とレ
ングスレジスタ4内の第1オペランドのバイト長(−6
)を2倍した値とを比較する。この場合、前者の方が大
きいためにオーバーフローの可能性があり、10進オー
バーフローマスクビットが1のときには10進オーバー
フロー例外を発生する。
ングスレジスタ4内の第1オペランドのバイト長(−6
)を2倍した値とを比較する。この場合、前者の方が大
きいためにオーバーフローの可能性があり、10進オー
バーフローマスクビットが1のときには10進オーバー
フロー例外を発生する。
次に、結果符号埋込み回路22は、第3図(iv )に
示すように、データの最下位の指に結果符号Sを埋め込
む、この場合、データがゼロでないために、第2オペラ
ンドの符号に相当する符号が埋め込まれる。
示すように、データの最下位の指に結果符号Sを埋め込
む、この場合、データがゼロでないために、第2オペラ
ンドの符号に相当する符号が埋め込まれる。
一方、書込みバイトを指定するために、レングスデコー
ダ10は、レングスレジスタ4の内容である第1オペラ
ンドのバイト長(−6)をデコードした16ビツトのパ
ターンを書込みマスクレジスタ16に設定する(第3図
(iv )参照)。
ダ10は、レングスレジスタ4の内容である第1オペラ
ンドのバイト長(−6)をデコードした16ビツトのパ
ターンを書込みマスクレジスタ16に設定する(第3図
(iv )参照)。
続いて、アライナ21およびシフト回路19によって右
詰めされた演算結果および書込みマスク情報が、第3図
(V)に示すように、第1オペランドのアドレス位置に
シフトされる。
詰めされた演算結果および書込みマスク情報が、第3図
(V)に示すように、第1オペランドのアドレス位置に
シフトされる。
このようにしてシフトされたデータおよび書込みマスク
情報はメモリ1に送られ、書込みマスク情報が1のピッ
トに対応したバイトのみが第1オペランドとしてメモリ
1に格納される。
情報はメモリ1に送られ、書込みマスク情報が1のピッ
トに対応したバイトのみが第1オペランドとしてメモリ
1に格納される。
以上説明したように本発明は、ZAVL命令の処理にお
いて、演算回路内で右詰めに整列された第2オペランド
から同じく右詰めされた第1オペランドを得るために右
シフトが行われる際に右ローテーシッンシフトを行い、
ローテーションシフトしたデータの有効桁数とストアさ
れる第1オペランドの桁数とを比較することによって有
効数字の切捨てによるオーバーフローの発生の検出を行
うことにより、ZAVL命令をそれ以外の10進命令の
オーバーフローの検出と同じように処理でき、ZAVL
命令のオーバーフローの検出を少ない金物量の増加で高
速に行うことができる効果がある。
いて、演算回路内で右詰めに整列された第2オペランド
から同じく右詰めされた第1オペランドを得るために右
シフトが行われる際に右ローテーシッンシフトを行い、
ローテーションシフトしたデータの有効桁数とストアさ
れる第1オペランドの桁数とを比較することによって有
効数字の切捨てによるオーバーフローの発生の検出を行
うことにより、ZAVL命令をそれ以外の10進命令の
オーバーフローの検出と同じように処理でき、ZAVL
命令のオーバーフローの検出を少ない金物量の増加で高
速に行うことができる効果がある。
第1図は本発明の一実施例の情報処理装置における演算
回路の構成を示すブロック図、第2図は本実施例の情報
処理装置←よるZAVL命令の処理のケース分けを説明
するための図、第3図は本実施例の情報処理装置による
ZAVL命令の処理を説明する図、 第4図(a)および(b)はZAVL命令のフォーマン
トおよび動作を説明する図である。 図において、 1・・・・・メモリ、 2・・・・・制御回路、 3.21・・・アライナ、 4・・・・・レングスレジスタ、 5・・・・・符号レジスタ、 6〜8,18・データレジスタ、 9・・・・・シフト量レジスタ、 10・・・・・レングスデコーダ、 11、12・・・桁ゼロ検出回路、 13・・・・・加算回路、 14・・・・・桁シフタ、 15・・・・・比較回路、 16・・・・・書込みマスクレジスタ、17・・・・・
論理和回路、 19・・・・・シフト回路、 20・・・・・条件コード生成回路、 22・ ・結果符号埋込み回路である。
回路の構成を示すブロック図、第2図は本実施例の情報
処理装置←よるZAVL命令の処理のケース分けを説明
するための図、第3図は本実施例の情報処理装置による
ZAVL命令の処理を説明する図、 第4図(a)および(b)はZAVL命令のフォーマン
トおよび動作を説明する図である。 図において、 1・・・・・メモリ、 2・・・・・制御回路、 3.21・・・アライナ、 4・・・・・レングスレジスタ、 5・・・・・符号レジスタ、 6〜8,18・データレジスタ、 9・・・・・シフト量レジスタ、 10・・・・・レングスデコーダ、 11、12・・・桁ゼロ検出回路、 13・・・・・加算回路、 14・・・・・桁シフタ、 15・・・・・比較回路、 16・・・・・書込みマスクレジスタ、17・・・・・
論理和回路、 19・・・・・シフト回路、 20・・・・・条件コード生成回路、 22・ ・結果符号埋込み回路である。
Claims (1)
- 【特許請求の範囲】 最下位桁に符号桁を有するパック形式の10進数の第2
オペランドを命令語で指定された数だけ値がゼロの桁を
上位に挿入して第1オペランド位置に転送する命令の処
理を行う情報処理装置において、 メモリから読み出した第2オペランドを演算回路内で右
詰めになるように整列する整列手段と、この整列手段に
より整列された第2オペランドの符号桁をゼロにマスク
するマスク手段と、このマスク手段によりマスクされた
データを命令語で指定する桁数と第1オペランドおよび
第2オペランドの桁数とに応じて第1オペランドとして
演算回路内で右詰めになるようにローテーションシフト
するローテーションシフト手段と、このローテーション
シフト手段によりローテーションシフトされたデータの
各桁の値がゼロかどうかを検出する桁ゼロ検出手段と、 この桁ゼロ検出手段の出力から上位に連なる値がゼロの
桁の数を求め前記ローテーションシフト手段によりロー
テーションシフトされたデータの有効桁数を得る有効桁
数取得手段と、 この有効桁数取得手段により得られた有効桁数と第1オ
ペランドの桁数とを比較する比較手段と、この比較手段
の出力と前記桁ゼロ検出手段の出力と第2オペランドの
符号と10進オーバーフローマスクビットとに応答して
条件コードを生成し10進オーバーフロー例外を検出す
るオーバーフロー例外検出手段と、 前記ローテーションシフト手段によりローテーションシ
フトされたデータの最下位桁に結果符号を埋め込む結果
符号埋込み手段と、 この結果符号埋込み手段により結果符号が埋め込まれた
データを第1オペランドのアドレスに合わせて整列し第
1オペランドの長さだけメモリに格納する格納手段と を有することを特徴とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63281969A JPH0778723B2 (ja) | 1988-11-08 | 1988-11-08 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63281969A JPH0778723B2 (ja) | 1988-11-08 | 1988-11-08 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02127726A true JPH02127726A (ja) | 1990-05-16 |
JPH0778723B2 JPH0778723B2 (ja) | 1995-08-23 |
Family
ID=17646424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63281969A Expired - Lifetime JPH0778723B2 (ja) | 1988-11-08 | 1988-11-08 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0778723B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007048317A (ja) * | 2002-06-28 | 2007-02-22 | Renesas Technology Corp | データ処理装置 |
US9670815B2 (en) | 2013-01-11 | 2017-06-06 | Futaba Industrial Co., Ltd | Catalytic converter |
JP2019530093A (ja) * | 2016-09-30 | 2019-10-17 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 10進ロード即値命令 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57197659A (en) * | 1981-05-29 | 1982-12-03 | Mitsubishi Electric Corp | Data processing device |
JPS6148036A (ja) * | 1984-08-15 | 1986-03-08 | Hitachi Ltd | 演算処理装置 |
-
1988
- 1988-11-08 JP JP63281969A patent/JPH0778723B2/ja not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57197659A (en) * | 1981-05-29 | 1982-12-03 | Mitsubishi Electric Corp | Data processing device |
JPS6148036A (ja) * | 1984-08-15 | 1986-03-08 | Hitachi Ltd | 演算処理装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007048317A (ja) * | 2002-06-28 | 2007-02-22 | Renesas Technology Corp | データ処理装置 |
US9670815B2 (en) | 2013-01-11 | 2017-06-06 | Futaba Industrial Co., Ltd | Catalytic converter |
JP2019530093A (ja) * | 2016-09-30 | 2019-10-17 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 10進ロード即値命令 |
US10990390B2 (en) | 2016-09-30 | 2021-04-27 | International Business Machines Corporation | Decimal load immediate instruction |
Also Published As
Publication number | Publication date |
---|---|
JPH0778723B2 (ja) | 1995-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6351804B1 (en) | Control bit vector storage for a microprocessor | |
US6061783A (en) | Method and apparatus for manipulation of bit fields directly in a memory source | |
KR920008280B1 (ko) | 집적 프로세서 | |
EP0205692B1 (en) | Improvements in microprocessors | |
US5187783A (en) | Controller for direct memory access | |
US6978359B2 (en) | Microprocessor and method of aligning unaligned data loaded from memory using a set shift amount register instruction | |
EP1650648B1 (en) | Method of processing signed displacement computer instruction | |
US4422143A (en) | Microprocessor ALU with absolute value function | |
US6036350A (en) | Method of sorting signed numbers and solving absolute differences using packed instructions | |
JPH0145649B2 (ja) | ||
US4631672A (en) | Arithmetic control apparatus for a pipeline processing system | |
US5974432A (en) | On-the-fly one-hot encoding of leading zero count | |
JP2617974B2 (ja) | データ処理装置 | |
CA1170773A (en) | Data processor using a read only memory for selecting a part of a register into which data is written | |
JPH02127726A (ja) | 情報処理装置 | |
JPH034936B2 (ja) | ||
JP2690406B2 (ja) | プロセッサおよびデータ処理システム | |
JPH03142533A (ja) | 10進データのチェック回路 | |
JPS6236575B2 (ja) | ||
JPH02230320A (ja) | データ処理装置 | |
JP2878250B2 (ja) | データ処理装置 | |
JPS62212833A (ja) | 演算処理装置 | |
JPH0462631A (ja) | 演算制御装置 | |
EP0401745A2 (en) | Data processor for high-speed access to stack area data | |
JPH0833821B2 (ja) | データ処理装置 |