JP2826927B2 - 演算処理装置および処理方法 - Google Patents

演算処理装置および処理方法

Info

Publication number
JP2826927B2
JP2826927B2 JP4275422A JP27542292A JP2826927B2 JP 2826927 B2 JP2826927 B2 JP 2826927B2 JP 4275422 A JP4275422 A JP 4275422A JP 27542292 A JP27542292 A JP 27542292A JP 2826927 B2 JP2826927 B2 JP 2826927B2
Authority
JP
Japan
Prior art keywords
data
read
byte
memory
valid
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 - Fee Related
Application number
JP4275422A
Other languages
English (en)
Other versions
JPH06103060A (ja
Inventor
一郎 福田
悟 荒木
吉彦 嶋田
茂 吉田
一仁 杉野
望 松原
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.)
PII EFU YUU KK
Original Assignee
PII EFU YUU KK
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 PII EFU YUU KK filed Critical PII EFU YUU KK
Priority to JP4275422A priority Critical patent/JP2826927B2/ja
Publication of JPH06103060A publication Critical patent/JPH06103060A/ja
Application granted granted Critical
Publication of JP2826927B2 publication Critical patent/JP2826927B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、Nバイト構成のリード
・バッファの各バイトの有効/無効を示すN個の有効/
無効ビットを有すると共に読み出すべき複数のデータの
内の最後のデータがリード・バッファの中に存在するか
否かを示す終了フラグを有するデータ・バリッド・レジ
スタを持つ演算処理装置及び処理方法に関するものであ
る。
【0002】
【従来の技術】従来、ストリング転送やストリング比
較,ストリング・サーチ,10進演算,データ・チェッ
ク,形変換などの命令を実現する計算機システムでは、
複数バイトにわたるメモリ・データをアクセスするとき
に、メモリの先頭アドレスのバウンダリやアクセス・バ
イト数などをマイクロプログラム内で意識してデータ処
理を行っているため、マイクロプログラムの処理が複雑
になり、且つ処理スピードが低下する大きな要因になっ
ている。
【0003】
【発明が解決しようとする課題】本発明は、この点に鑑
みて創作されたものであって、複数バイトにわたるデー
タの転送または演算を行うときに、演算の種類や演算
(または転送)バイト数などを最初に設定した後は、そ
れらを意識することなく、簡単なハードウェアを追加す
るだけで、複雑な演算または転送命令を高速かつ小容量
のマイクロプログラムによって実現する演算処理装置お
よび処理方法を提供することを目的としている。
【0004】
【課題を解決するための手段】そしてそのため、請求項
1の発明の演算処理装置は、メモリから読み出されたデ
ータを保持するNバイト構成の第1のリード・バッファ
(4-0) と、メモリから読み出されたデータを保持するN
バイト構成の第2のリード・バッファ(4-1) と、メモリ
読出し用のカウント値を保持する第1のリード・カウン
タ(7-0) と、メモリ読出し用のカウント値を保持する第
2のリード・カウンタ(7-1) と、第1のリード・バッフ
ァ(4-0) に対応してNバイト・データの有効/無効を示
すN個の有効/無効ビットを有すると共に、リード・カ
ウントの終了を示す終了フラグを有する第1のデータ・
バリッド・レジスタ(9-0) と、第2のリード・バッファ
(4-1) に対応してNバイト・データの有効/無効を示す
N個の有効/無効ビットを有すると共に、リード・カウ
ントの終了を示す終了フラグを有する第2のデータ・バ
リッド・レジスタ(9-1) と、第1のリード・カウンタ(7
-0) および第1のリード・バッファ(4-0) に書き込まれ
るメモリ読出しデータのバイト数に基づいて、第1のデ
ータ・バリッド・レジスタ(9-0) に書き込むデータを生
成すると共に、次のメモリ読出し時に、第1のリード・
カウンタ(7-0) の内容を上記バイト数だけ減算する第1
のデータ・バリッド・レジスタ制御回路(8-0) と、第2
のリード・カウンタ(7-1) および第2のリード・バッフ
ァ(4-1) に書き込まれるメモリ読出しデータのバイト数
に基づいて、第2のデータ・バリッド・レジスタ(9-1)
に書き込むデータを生成すると共に、次のメモリ読出し
時に、第2のリード・カウンタ(7-1) の内容を上記バイ
ト数だけ減算する第2のデータ・バリッド・レジスタ制
御回路(8-1) とを具備することを特徴とするものであ
る。
【0005】請求項2のストリング比較命令の処理方法
は、請求項1の演算処理装置において、 第1オペランド側のNバイトのデータをメモリから
読み出して第1のリード・バッファ(4-0) に書き込み、 第2オペランド側のNバイトのデータをメモリから
読み出して第2のリード・バッファ(4-1) に書き込み、 第1のリード・バッファ(4-0) の内容とN個のパデ
ィング・コード列を比較し、一致したデータ以降にパデ
ィング・コードを設定して内部バスに出力し、パディン
グ・コードが一致した場合には第1のデータ・バリッド
・レジスタ(9-0)の終了フラグを終了とすると共に一致
したバイトに対応するビットの次の有効/無効ビット以
降を無効にする処理を行い、 第2のリード・バッファ(4-1) の内容とN個のパデ
ィング・コード列を比較し、一致したデータ以降にパデ
ィング・コードを設定して内部バスに出力し、パディン
グ・コードが一致した場合には第2のデータ・バリッド
・レジスタ(9-1)の終了フラグを終了とすると共に一致
したバイトに対応するビットの次の有効/無効ビット以
降を無効にする処理を行い、 ,で出力したデータを比較し、 第1のデータ・バリッド・レジスタ(9-0) 又は第2
のデータ・バリッド・レジスタ(9-1) の終了フラグをチ
ェックし、終了を示している場合には終了とし、終了を
示していない場合にはに戻ることを特徴とするもので
ある。
【0006】請求項3のストリング・サーチ命令の処理
方法は、請求項1の演算処理装置において、 Nバイトのデータをメモリから読み出してリード・
バッファ(4-0または4-1)に書き込み、 リード・バッファ(4-0または4-1)の内容とN個のパ
ディング・コード列を比較し、一致したデータ以降にパ
ディング・コードを設定して内部バスに出力し、パディ
ング・コードが一致した場合には当該リード・バッファ
(4-0または4-1)に対応するデータ・バリッド・レジスタ
(9-0または9-1)の終了フラグを終了とすると共に一致し
たバイトに対応するビットの次の有効/無効ビット以降
を無効にする処理を行い、 で得たデータと指定データを比較し、両者が不一
致の場合は終了とし、両者が一致の場合にはに進み、 上記データ・バリッド・レジスタ(9-0または9-1)の
終了フラグをチェックし、終了を示している場合には終
了とし、終了を示していない場合にはに戻ることを特
徴とするものである。
【0007】請求項4のストリング転送命令の処理方法
は、請求項1の演算処理装置において、 Nバイトのデータをメモリから読み出してリード・
バッファ(4-0または4-1)に書き込み、 リード・バッファ(4-0または4-1)の内容とN個のパ
ディング・コード列を比較し、一致したデータ以降にパ
ディング・コードを設定して内部バスに出力し、パディ
ング・コードが一致した場合には当該リード・バッファ
(4-0または4-1)に対応するデータ・バリッド・レジスタ
(9-0または9-1)の終了フラグを終了とすると共に一致し
たバイトに対応するビットの次の有効/無効ビット以降
を無効にする処理を行い、 で得たデータを第2オペランド側に書き込み 上記データ・バリッド・レジスタ(9-0または9-1)の
終了フラグをチェックし、終了を示している場合には終
了のための処理を行い、終了を示していない場合には
の処理に戻ることを特徴とするものである。
【0008】請求項5のパック形式の10進データとゾ
ーン形式の10進データを比較する命令の処理方法は、
請求項1の演算処理装置において、 第1のリード・カウンタ(7-0) ,第2のリード・カ
ウンタ(7-1) にデータ数をセットし、 第1オペランド側の最下位1バイトのデータをメモ
リから読み出し、 第2オペランド側の最下位1バイトのデータをメモ
リから読み出し、 第1のデータ・バリッド・レジスタ(9-0) ,第2の
データ・バリッド・レジスタ(9-1) に従って第1のリー
ド・バッファ(4-0) ,第2のリード・バッファ(4-1) の
有効バイト・データの符号部データ及びデータ部データ
のチェックを行い、第1のリード・バッファ(4-0) ,第
2のリード・バッファ(4-1) の内容を比較し、 第1オペランド側からパック形式の2バイトのデー
タをメモリから読み出し、第1のリード・バッファ(4-
0) に書き込み、 第2オペランド側からゾーン形式の4バイトのデー
タをメモリから読み出し、第2のリード・バッファ(4-
1) に書き込み、 第1のデータ・バリッド・レジスタ(9-0) ,第2の
データ・バリッド・レジスタ(9-1) に従って第1のリー
ド・バッファ(4-0) ,第2のリード・バッファ(4-1) の
有効バイト・データのデータ部データのチェックを行
い、第1のリード・バッファ(4-0) ,第2のリード・バ
ッファ(4-1) の内容を比較し、 第1のデータ・バリッド・レジスタ(9-0) または第
2のデータ・バリッド・レジスタ(9-1) の終了フラグを
チェックし、終了を示している場合は終了とし、終了を
示していない場合はの処理に戻ることを特徴とするも
のである。
【0009】請求項6の10進データ演算命令の処理方法
は、請求項1の演算処理装置において、 第1のリード・カウンタ(7-0) および第2のリード
・カウンタ(7-1) にデータ数をセットし、 第1オペランド側の最下位1バイトのデータをメモ
リからリードし、 第2オペランド側の最下位1バイトのデータをメモ
リからリードし、 第1のデータ・バリッド・レジスタ(9-0) ,第2の
データ・バリッド・レジスタ(9-1) に従って、第1のリ
ード・バッファ(4-0) , 第2のリード・バッファ(4-1)
の有効バイト・データの符号部データ及びデータ部デー
タのチェックを行い、第1のリード・バッファ(4-0) ,
第2のリード・バッファ(4-1) の符号部の内容に基づい
て演算種を決定し、第1のリード・バッファ(4-0) ,第
2のリード・バッファ(4-1) のデータ部の内容を決定し
た演算種に従って演算し、演算結果をメモリに書き込
み、 第1オペランド側のNバイトのデータをメモリから
リードし、 第2オペランド側のNバイトのデータをメモリから
リードし、 第1のデータ・バリッド・レジスタ(9-0) ,第2の
データ・バリッド・レジスタ(9-1) に従って、第1のリ
ード・バッファ(4-0) , 第2のリード・バッファ(4-1)
の有効バイト・データのデータ部データのチェックを行
い、第1のリード・バッファ(4-0) ,第2のリード・バ
ッファ(4-1) のデータ部の内容をで決定された演算種
に従って演算し、演算結果をメモリに書き込み、 第1のデータ・バリッド・レジスタ(9-0) または第
2のデータ・バリッド・レジスタ(9-1) の終了フラグを
チェックし、終了を示している場合は終了とし、終了を
示していない場合はの処理に戻ることを特徴とするも
のである。
【0010】請求項7の10進数のゾーン形式からパッ
ク形式への変換の処理方法は、請求項1の演算処理装置
において、 第1のリード・カウンタ(7-0) ,第2のリード・カ
ウンタ(7-1) にデータ数をセットし、 第1オペランド側の最下位1バイトのデータをメモ
リから読み出し、 第1のデータ・バリッド・レジスタ(9-0) に従って
第1のリード・バッファ(4-0) の有効バイト・データの
符号部データ及びデータ部データのチェックを行い、第
1のリード・バッファの内容をパック形式に変換し、 で得られた1バイトのデータを第2オペランド側
に書き込み、 第1オペランド側のNバイトのデータをメモリから
読み出し、 第1のデータ・バリッド・レジスタ(9-0) に従って
第1のリード・バッファ(4-0) の有効バイト・データの
データ部データのチェックを行い、第1のリード・バッ
ファの内容をパック形式に変換し、 で得られたパック形式のN/2バイトのデータを
メモリに書き込み、 第1のデータ・バリッド・レジスタ(9-0) の終了フ
ラグをチェックし、終了を示している場合は終了とし、
終了を示していない場合はの処理に戻ることを特徴と
するものである。
【0011】請求項8の10進数のパック形式からゾー
ン形式への変換の処理方法は、請求項1の演算処理装置
において、 第1のリード・カウンタ(7-0) ,第2のリード・カ
ウンタ(7-1) にデータ数をセットし、 第1オペランド側の最下位1バイトのデータをメモ
リから読み出し、 第1のデータ・バリッド・レジスタ(9-0) に従って
第1のリード・バッファ(4-0) の有効バイト・データの
符号部データ及びデータ部データのチェックを行い、第
1のリード・バッファの内容をゾーン形式に変換し、 で得られた1バイトのデータを第2オペランド側
に書き込み、 第1オペランド側のN/2バイトのデータをメモリ
から読み出し、 第1のデータ・バリッド・レジスタ(9-0) に従って
第1のリード・バッファ(4-0) の有効バイト・データの
データ部データのチェックを行い、第1のリード・バッ
ファの内容をゾーン形式に変換し、 で得られたゾーン形式のNバイトのデータをメモ
リに書き込み、 第1のデータ・バリッド・レジスタ(9-0) の終了フ
ラグをチェックし、終了を示している場合は終了とし、
終了を示していない場合はの処理に戻ることを特徴と
するものである。
【0012】
【実施例】図1は本発明の演算処理装置のハード構成例
を示すブロック図である。同図において、1はパディン
グ・コード・レジスタ、2と3はセレクタ、4−0と4
−1はリード・バッファ(RDR0,RDR1)、5は
ワーク・レジスタ、6はライト・バッファ、7−0と7
−1はリード・カウンタ(R0CNT,R1CNT)、
8−0と8−1はDVRジェネレータ&コントローラ、
9−0と9−1はデータ・バリッド・レジスタ(DVR
0,DVR1)、10は演算実行ユニット、11はマイ
クロ・ステータス・レジスタ(MSR)をそれぞれ示し
ている。
【0013】パディング・コード・レジスタ1には、パ
ディング・コードが格納されている。パディング・コー
ドはnull値を示すために使用される。セレクタ2
は、メモリからのリード・データまたはパディング・コ
ードを選択するものである。セレクタ2によって選択さ
れたデータは、リード・バッファ4−0にセットされ
る。セレクタ3は、セレクタ2と同様な動作を行う。リ
ード・バッファ4−0は4バイト構成であり、リード・
バッファ4−1も4バイト構成である。ワーク・レジス
タ5には、一時的なデータがセットされる。ライト・バ
ッファ6には、メモリに書き込むべきデータがセットさ
れる。
【0014】リード・カウンタ7−0はリード・バッフ
ァ4−0 に対応するものであり、リード・カウンタ7−
1はリード・バッファ4−1に対応するものである。例
えば、アイウエオカキクケコと言う10バイトのデータ
を4バイト単位でメモリから読み出す場合、初期値とし
て10がリード・カウンタ7−0にセットされ、アイウ
エと言う4バイトのデータが読み出され、次にリード・
カウンタ7−0の内容が10−4=6とされ、オカキク
と言う4バイトのデータが読み出され、次にリード・カ
ウンタ7−0の内容が6−4=2とされ、ケコ××と言
う4バイトのデータが読み出される。なお、××と言う
2バイトのデータは無効なものとされる。リード・カウ
ンタ7−1は、リード・カウンタ7−0と同様な動作を
行う。
【0015】DVRジェネレータ&コントローラ8−0
は、リード・カウンタ7−0のカウント値の更新,デー
タ・バリッド・レジスタ9−0に書き込むべきデータの
生成を行う。DVRジェネレータ&コントローラ8−1
は、DVRジェネレータ&コントローラ8−0と同様な
動作を行う。データ・バリッド・レジスタ9−0は5ビ
ット構成であり、データ・バリッド・レジスタ9−1も
5ビット構成である。
【0016】演算実行ユニット10には、リード・バッ
ファ4−0,リード・バッファ4−1,ワーク・レジス
タ5,データ・バリッド・レジスタ9−0,データ・バ
リッド・レジスタ9−1の内容が入力される。演算実行
ユニット10は加算器や10進加算器,比較器,シフタ
などを有している。演算実行ユニット10の演算結果を
ライト・バッファ6を経由してメモリに書き込むことが
出来る。
【0017】演算実行ユニット10は、DVRジェネレ
ータ&コントローラ9−0,9−1に対して制御信号を
送ることが出来る。後述するように、ストリングの比較
/転送命令の処理において、RDR0またはRDR1の
内容を演算実行ユニット10内でチェックし、パディン
グ文字を検出した際に、DVR0またはDVR1の終了
フラグを‘1’にし、パディング文字以後のデータ位置
の有効/無効ビットを‘0’にするが、上記の制御信号
はこのための制御信号である。
【0018】図2及び図3はDVR(データ・バリッド
・レジスタ)の機能概略を説明する図である。図2に示
すように、データ・バリッド・レジスタ9−0の先頭ビ
ット(ビット0)は終了フラグであり、残りのビット
(ビット1ないし4)は有効/無効フラグである。デー
タ・バリッド・レジスタ9−0の終了フラグは、任意
(1,2,4バイト)のバイト数のデータをメモリ・リ
ードしてリード・バッファ4−0にセットした際、リー
ド・バッファ4−0内のデータで、リード・カウンタ7
−0で指定されたデータが全てリード出来たか否かを示
す。
【0019】データ・バリッド・レジスタ9−0のビッ
ト1はリード・バッファ4−0の0バイト目のデータ
(ビット0ないし7)が有効か無効かを示し、ビット2
はリード・バッファ4−0の1バイト目のデータ(ビッ
ト8ないし15)が有効か無効かを示し、ビット3はリ
ード・バッファ4−0の2バイト目のデータ(ビット1
6ないし23)が有効か無効かを示し、ビット4はリー
ド・バッファ4−0の3バイト目のデータ(ビット24
ないし31)が有効か無効かを示す。有効/無効ビット
は‘1’で有効、‘0’で無効を示す。
【0020】図3はメモリから4バイト単位でデータを
読み取った場合のリード・バッファ4−0およびデータ
・バリッド・レジスタ9−0の内容を示すものである。
なお、図示の例ではメモリから読み出されたデータは、
ABCDとされている。リード・カウンタ7−0の値が
4以上で且つ4バイト・リードの場合は、データ・バリ
ッド・レジスタ9−0の終了フラグ(ビット0)は
‘0’であり、データ・バリッド・レジスタ9−0のビ
ット1ないし4は全て‘1’である。終了フラグは
‘1’で終了、‘0’で未終了を示す。
【0021】リード・カウンタ7−0の値が4で4バイ
ト・リードの場合は、データ・バリッド・レジスタ9−
0の終了フラグ(ビット0)は‘1’であり、データ・
バリッド・レジスタ9−0のビット1ないし4は全て
‘1’である。リード・カウンタ7−0の値が3で4バ
イト・リードの場合は、データ・バリッド・レジスタ9
−0の終了フラグ(ビット0)は‘1’であり、データ
・バリッド・レジスタ9−0のビット1ないし3は
‘1’、データ・バリッド・レジスタ9−0のビット4
は‘0’である。
【0022】リード・カウンタ7−0の値が2で4バイ
ト・リードの場合は、データ・バリッド・レジスタ9−
0の終了フラグ(ビット0)は‘1’であり、データ・
バリッド・レジスタ9−0のビット1と2は‘1’、デ
ータ・バリッド・レジスタ9−0のビット3と4は
‘0’である。リード・カウンタ7−0の値が1で4バ
イト・リードの場合は、データ・バリッド・レジスタ9
−0の終了フラグ(ビット0)は‘1’であり、データ
・バリッド・レジスタ9−0のビット1は‘1’、デー
タ・バリッド・レジスタ9−0のビット1ないし4は
‘0’である。
【0023】◎はリード時に設定されるパディング文字
を示す。ストリング転送命令などの仕様として、ソース
側(読み出し元)バイト数<ディスチネーション(書き
込み側)バイト数の場合には、ディスチネーション側の
指定バイト数分,必ずライトしなければならない。ま
た、ソース側のバイト数以上のデータ内容は、指定され
るパディング文字の内容が書かれる仕様であるため、R
DR0の内容にも指定カウント数以上のデータ内容に
は、指定されたパディング文字の内容が入っている必要
がある。データ長を揃えるために、パディング文字が設
定される。
【0024】図4はDVRジェネレータ&コントローラ
の構成例を示すブロック図である。同図において、12
はデコーダ、13は組合せ回路、14はマイクロ指示の
メモリ・リード・カウント値をそれぞれ示している。リ
ード・カウンタ7−0の内容をデコーダ12によってデ
コードして、リード・カウンタ7−0の内容が0か,1
か,2か,3か,4か,4以上かを判別する。デコーダ
12の出力とマイクロ指示によるメモリ・リード・カウ
ント値14とを組合せ回路13で組み合わせ、メモリ・
リードしたデータが入っているリード・バッファ4−0
の各バイトの有効/無効および終了フラグのオン/オフ
を示すデータ・バリッド・レジスタ9−0の内容を生成
する。
【0025】例えば、リード・カウンタ7−0の内容が
3で、マイクロ指示のメモリ・リード・カウント値が2
の場合には、リード・バリッド・レジスタ9−0の終了
フラグは‘0’とされ、リード・バリッド・レジスタ9
−0のビット1,2が‘1’、リード・バリッド・レジ
スタ9−0のビット3,4が‘0’とされる。但し、デ
ータの読出しは、アドレスi(iは先頭アドレス),i
+1,i+2,…の順に行われるものと仮定している。
【0026】組合わせ回路13からリード・カウンタ7
−0に向こう線は、指定されるメモリ・リード・カウン
ト値と残りR0CNT値に従って、次にR0CNTを減
算する値を指示する制御信号を意味している。R0CN
Tの内容は、メモリ・リードした後に減算される。R0
CNTはあくまでリード・カウント数であるので、メモ
リ・リード指示が出された後に減算される。
【0027】図5はEXU(演算実行ユニット)の内部
詳細の1例を示す図である。同図において、15は比較
器、16はセレクタ群、17ないし19はセレクタをそ
れぞれ示している。セレクタ19は、リード・バッファ
4−0と4−1の何れかを選択し、選択したデータを出
力する。比較器15には、セレクタ19の出力とワーク
・レジスタ5の出力とが入力される。セレクタ群16に
は、データ・バリッド・レジスタ9−0の出力,データ
・バリッド・レジスタ9−1の出力,マイクロ・ステー
タス・レジスタ11の出力,比較器15の出力,セレク
タ19の出力,ワーク・レジスタ5の出力が入力され
る。セレクタ群16の出力は、Zバス上に出力される。
セレクタ17には、データ・バリッド・レジスタ9−0
の出力と比較器15の出力とが入力される。セレクタ1
7の出力はDVR0更新データとなる。セレクタ18に
は、データ・バリッド・レジスタ9−1の出力と比較器
15の出力とが入力される。セレクタ17の出力はDV
R1更新データとなる。
【0028】図示のEXUの動作を以下に簡単に説明す
る。ストリング比較/転送の場合、MSRによってスト
リング・データであることが指示され、それに従ってR
0CNTの値に従って設定されたDVR0とRDR0の
内容がチェックされる。先ず、パディング・コード(ワ
ークレジスタに入っている)がRDR0に入っているか
がチェックされ、パディング・コードが入っていない場
合には、RDR0の内容がそのままZバスに出力され
る。この場合は、DVR0の更新はされない。パディン
グ・コードがRDR0の中に検出されたときは、検出さ
れたバイト数以降にパディング・コードが設定され、そ
の値がZバスに出力される。また、DVRの終了ビット
を‘1’にし、設定されたパディング・コード位置のデ
ータの有効/無効ビットを‘0’にするように、DVR
0更新データを送出する。以上がSCHK0命令の機能
である。DVR1の場合も同様に行われる。
【0029】10進データの符号部チェックの場合、第
1オペランドが符号付きデータ/符号無しデータ,パッ
ク形式/ゾーン形式,第2オペランドが符号付きデータ
/符号なしデータ,パック形式/ゾーン形式とMSRに
設定された値に従って、RDR0とRDR1の下位1バ
イトの内容が、それぞれのデータ形式に従って符号チェ
ック,データ・チェックし、その結果を、それぞれの符
号値をMSRに設定する。その後、 ・DCMPS命令の場合、RDR0とRDR1の内容を
比較し、その結果をMSRに設定する。 ・DMDFYS命令の場合、RDR0またはRDR1の
内容をMSRで指定された形式に従って形変換し、その
内容をZバスに出力する。 ・DECS命令の場合、RDR0 ,RDR1の符号値に
よってMSRで指定された演算を行い、その演算結果を
Zバスに出力する。
【0030】10進データ比較の場合(DCMP命
令)、第1オペランド・データがパック形式/ゾーン形
式,第2オペランド・データがパック形式/ゾーン形式
とMSRで指定された内容に従って、RDR0,RDR
1の内容のデータ・チェックを行い、その後で比較を行
い、その結果をMSRに設定する。
【0031】10進データの変換の場合(DMDF
Y)、元のデータ形式がパック形式/ゾーン形式、変換
後の形式がパック形式/ゾーン形式とMSRで指定され
た内容に従い、RDR0またはRDR1の内容のデータ
・チェックを行い、その後で形変換を行い、その結果を
Zバスに出力する。
【0032】10進データの演算の場合(DEC命
令)、パック形式のデータとしてRDR0またはRDR
1の内容のデータ・チェックを行い、その後で指定演算
を実現するために、MSRで指定された第1オペラン
ド,第2オペランドの符号値に従い加減算の種類を決定
し、DVR0/DVR1の内容に従い、パック形式の1
0進演算(加算または減算)を行い、その結果をZバス
に出力する。また、演算結果にしたがいMSRを更新す
る。
【0033】図6はMSRレジスタの詳細を示す図であ
る。 L2LG CNTSET命令によって、L1<L2の場合に‘1’
にセットされる。 LB1 CNTSET,DSRI命令によって、第1オペランド
がPACK奇数桁指定時のみ、‘1’にセットされる。 LB2 CNTSET,DSRI命令によって、第2オペランド
がPACK奇数桁指定時のみ、‘1’にセットされる。
(条件によって、第1オペランドのPACK奇数桁指定
時に設定されることもある。)
【0034】DLRG DCMP命令によって、10進比較を行った場合に、S
1>S2の大小関係があった時、‘1’にセットされ
る。また、以後のDCMP命令によって、S1≠S2の
条件の時で、S1>S2の場合、‘1’にセットされ
る。S1<S2の場合、‘0’にセットされる。 DNEQ DCMP命令によって、10進比較を行った場合に、S
1≠S2の大小関係があった時、‘1’にセットされ
る。一度‘1’にセットされると、以後のDCMPの命
令によって、S1=S2の条件の時にリセットされるこ
とはない。
【0035】DER 10データ・チェック関係の命令を行った場合に、デー
タ例外があった時に、‘1’にセットされる。一度
‘1’にセットされると、以後の10データ・チェック
関係の命令によって、リセットされることはない。 DOVR AP,SP命令において、加算処理でDCRYビットが
‘1’の場合、‘1’にセットされる。 DNZ データ・チェックおよび10進比較を行った場合に、デ
ータ≠0であった時、‘1’にセットされる。一度
‘1’にセットされると、以後の命令によって、リセッ
トされることはない。
【0036】PO1 SSET命令によって、S1が‘1’でS1の符号桁が
正の場合またはS1が‘0’の場合に、‘1’にセット
される。S1データを正と見做すフラグである。 PO2 SSET命令によって、S2が‘1’でS2の符号桁が
正の場合またはS2が‘0’の場合に、‘1’にセット
される。S2データを正と見做すフラグである。 P1 DSRI命令によって設定する。第1オペランドがUN
PKデータの場合、‘1’にセットしなければならな
い。このビットの設定によって、10進演算系の命令
が、第1オペランドをUNPKデータと見做して処理を
行う。 P2 DSRI命令によって設定する。第2オペランドがUN
PKデータの場合、‘1’にセットしなければならな
い。このビットの設定によって、10進演算系の命令
が、第2オペランドをUNPKデータと見做して処理を
行う。
【0037】S1 DSRI命令によって設定する。第1オペランドを符号
付き10進数として処理を行いたい場合、‘1’にセッ
トしなければならない。このビットが‘0’の場合に
は、第1オペランドの符号は正と見做される。 S2 DSRI命令によって設定する。第2オペランドを符号
付き10進数として処理を行いたい場合、‘1’にセッ
トしなければならない。このビットが‘0’の場合に
は、第1オペランドの符号は正と見做される。 SI10,SI01 このビットは、MVD,CD命令のSIビットのシフト
情報に対応するビットである。
【0038】図7,図8および図9は本発明で使用され
る命令を示す図である。SCHK0命令は、RDR0の
内容とSパートで指定するレジスタ(パディング・キャ
ラクタ)を比較し、一致したデータ以降にパディング・
キャラクタを設定してZバスに出力し、DVR0の内容
を更新するものである。詳細に説明すると、下記のよう
になる。 a)RDR0の内容とSパートで指定するレジスタの内
容(パディング・キャラクタ)を1バイト単位に先頭か
ら比較し、一致したデータ以降にパディング・キャラク
タを設定してZバスに出力する。この比較はDVR0の
内容に従って行われる。 b)パディング・キャラクタが一致した場合は、DVR
0の終了フラグを‘1’とし、一致したバイトの次の有
効ビット以降を‘0’(無効)にする。 c)また、一致したバイトがある場合には、MSRの#
7ビット(SCHK0)を‘0’とし、無い場合は
‘1’とする。
【0039】DCMP命令は、S1パートで指定したレ
ジスタの内容と、S2パートで指定したレジスタの内容
を、PACK/ZONE形式のデータとして比較を行う
ものである。詳細に説明すると、下記のようになる。 a)S1パートで指定したレジスタの内容と、S2パー
トで指定したレジスタの内容を、MSRレジスタのP
1,P2ビットの設定に従って比較およびデータ・チェ
ックを行い、MSRを更新する。 b)S1パートで指定されるレジスタの内容をP1ビッ
トの設定に従いデータ・チェックを行い、その結果をD
ERビットに反映する。 P1=0の場合、PACK形式のデータ・チェック P1=1の場合、UNPK形式のデータ・チェック c)S2パートで指定されるレジスタの内容をP2ビッ
トの設定に従いデータ・チェックを行い、その結果をD
ERビットに反映させる。 P2=0の場合、PACK形式のデータ・チェック P2=1の場合、UNPK形式のデータ・チェック d)S1パートで指定されるレジスタの内容と、S2パ
ートで指定されるレジスタの内容をP1,P2ビットの
設定に従い、数値の大小比較を行う。
【0040】DCMPS命令は、S1パートで指定した
レジスタの内容と、S2パートで指定したレジスタの内
容を、PACK/ZONE形式の符号バイトとして比較
を行うものである。詳細に説明すると、下記のようにな
る。 a)S1パートで指定したレジスタの内容と、S2パー
トで指定したレジスタの内容をMSRレジスタのP1,
P2,S1,S2ビットの設定に従って比較,符号チェ
ック及びデータ・チェックを行い、MSRを更新する。 b)符号チェックは、S1,S2ビットにかかわらず常
に行い、符号エラーがあった場合、DERビットに
‘1’が設定される。 c)MSRのS1(S2)ビットが‘1’の場合、符号
が正であれば、PO1(PO2)ビットに‘1’が設定
される。また、S1(S2)ビットが‘0’の場合は、
データの符号にかかわらず、PO1(PO2)ビットは
‘1’が設定される。 d)データ・チェックで、データ例外があった場合、D
ERビットに‘1’が設定される。 e)また、S1またはS2パートのデータが‘0’以外
であった場合、DNZビットは‘1’が設定される。 f)S1パートで指定したレジスタのデータ1桁と、S
2パートで指定したレジスタのデータ1桁の比較は再開
の1桁に対してのみ行い、比較の結果、大小関係があっ
た場合、DNEQビットに‘1’が設定され、S1>S
2であった場合には、DLRGビットに‘1’が設定さ
れる。S1<S2であった場合には、DLRGビットに
‘0’が設定される。
【0041】DMDFY命令は、Sパートで指定したレ
ジスタの内容をPACK/ZONE形式からZONE/
PACK形式へ変換を行いZバスへ出力するものであ
る。詳細に説明すると、下記のようになる。 a)Sパートで指定したレジスタの内容を、MSRレジ
スタのP1,P2フラグに従って変換を行い、Zバスへ
出力する。 b)Sパートで指定したレジスタの内容を、MSRレジ
スタのP2ビットの設定に従いデータ・チェックを行
い、結果をMSRレジスタのDERビットに設定する。 c)データ・チェックは、DVR情報およびLB2に従
って行われ、データ例外があった場合、DERビットに
‘1’が設定される。PACK指定で、桁数が偶数桁指
定の場合、有効桁しかデータ・チェックは行われない。 d)変換処理を行う場合、P2=0でDVR情報の終了
フラグが‘1’の場合で、LB2ビットが‘0’である
時に、Sパートで指定されるレジスタの有効最上位1バ
イトの上位桁を‘0’と見做して変換処理が行われる。
つまり、リード・データの有効最上位桁が偶数であった
場合に、上位桁を‘0’と見做して変換処理を行う。 e)データ(数値部)をゼロ・チェックし、ゼロでない
場合は、DNZビットに‘1’が設定される。
【0042】DMDFYS命令は、Sパートで指定した
レジスタの内容をPACK/ZONE形式の符号バイト
からPACK/ZONE形式の符号バイトへ変換を行
い、Zバスへ出力するものである。詳細に説明すると、
下記のようになる。 a)Sパートで指定したレジスタの内容を、MSRビッ
トのP1,P2,S1,S2フラグに従って変換を行
い、Zバスへ出力する。 b)Sパートで指定したレジスタの内容を、MSRレジ
スタのP2ビットの設定に従い符号チェックおよびデー
タ・チェックを行い、結果をMSRレジスタのDERビ
ットに設定する。 c)符号チェックは、S2ビットにかかわらず常に行
い、符号エラーがあった場合、DERビットに‘1’が
設定される。 d)最下位桁(数値部)をゼロ・チェックし、ゼロでな
い場合はDNZビットに‘1’が設定される。 e)データ・チェックは最下位1桁に対してのみ行われ
る。
【0043】DEC命令は、S1パートで指定したレジ
スタの内容とS2パートで指定したレジスタの内容をP
ACK形式の4バイトとして、MSRレジスタにしたが
って10進演算し、Zバスに出力するものである。詳細
に説明すると、下記のようになる。 a)S1パートで指定するレジスタの内容と、S2パー
トで指定するレジスタの内容をPACK形式の10進数
として加減算を行い、Zバスに出力する。 b)S1をオペランド1のPACK形式のデータとし
て、DVR情報にしたがいデータ・チェックを行い、D
ERに設定する。データ・チェックはバイト単位で行
う。 c)S2をオペランド2のPACK形式のデータとし
て、DVR情報にしたがいデータ・チェックを行い、D
ERに設定する。データ・チェックはバイト単位で行
う。 d)S1,S2をPACK形式の10進数として、S1
パートで指定するDVR情報に従い加減算(DCRYを
考慮)を行い、Zバスに出力する。 e)演算結果が≠0の場合はDNZを‘1’とする。 f)加減算を行う場合の演算はAPSPF,PO1,P
O2により決定する。
【0044】DECS命令は、S1パートで指定したレ
ジスタの内容とS2パートで指定したレジスタの内容を
PACK形式の符号バイトとして、MSRおよびソース
・データの符号にしたがって10進演算しZバスに出力
するものである。詳細に説明すると、下記のようにな
る。 a)S1パートで指定するレジスタの内容と、S2パー
トで指定するレジスタの内容をPACK形式の10進数
として加減算を行い、Zバスに出力する。符号桁は
‘C’とする。 b)S1の下位8ビットをオペランド1のPACK形式
の符号桁としデータ・チェックを行い、MSRのPO
1,DERに設定する。(PO1は正の場合‘1’、負
の場合‘0’にする) c)S2の下位8ビットをオペランド2のPACK形式
の符号桁としデータ・チェックを行い、MSRのPO
2,DERに設定する。(PO2は正の場合‘1’、負
の場合‘0’にする) d)MSRのS1(S2)が‘0’のときはPO1(P
O2)を無条件に‘1’とする。 e)数値部の演算結果が≠0の場合はMSRのDNZを
‘1’とする。 f)演算を行う場合DCRYは考慮しない。但し演算結
果はDCRYに反映される。(ビット24からのキャリ
ーがDCRYにセットされる) g)10進加算時のオーバフローの検出はビット24か
らのキャリーによる。 h)Zバス出力の上位24ビットはオールゼロとなる。
【0045】SCHK0命令やSCHK1命令,DCM
PS命令,DCMP命令,DECS命令,DEC命令は
マイクロ命令のマクロ命令とも称されるものであって、
これらの命令は実行時にはアセンブルされ、複数のマイ
クロ命令よりなるマイクロ命令列に展開される。
【0046】図10は本発明によるストリング比較命令
のデータフローを示す図である。 RDR0にS1側の4バイトのデータが格納され
る。このとき、R0CNTが4バイト以下となった時、
DVR0の終了ビットが‘1’になり、RDR0の有効
/無効バイトもDVR0に反映される。 RDR1にS2側の4バイトのデータが格納され
る。このとき、R1CNTが4バイト以下となった時、
DVR1の終了ビットが‘1’になり、RDR1の有効
/無効バイトもDVR1に反映される。 SCHK0命令により、RDR0の内容と、指定さ
れたパディング・コード(ワーク・レジスタ5にセット
されている)とを1バイト単位で上位側から比較し、一
致したらそのデータ以降にパディング・コードを設定し
て、内部バスに出力する。また、一致した場合には、D
VR0の終了フラグを‘1’にし、一致したバイトの次
の有効/無効ビットを‘0'にする。
【0047】 SCHK1命令により、RDR1の内
容と、指定されたパディング・コードとを1バイト単位
で上位側から比較し、一致したらそのデータ以降にパデ
ィング・コードを設定して、内部バスに出力する。ま
た、一致した場合には、DVR1の終了フラグを‘1’
にし、一致したバイトの次の有効/無効ビットを‘0'に
する。なお、SCHK1命令は1側に対するものであ
り、その処理はSCHK0命令と同じである。 ,でそれぞれデータ・バスに出力したデータ同
士を比較する。不一致の場合は終了する。 DVR0またはDVR1の終了フラグをチェックす
る。‘1’のとき、全てのバイト数を比較したか或いは
パディング・コードを検出したかなので、これで終了と
する。‘0’のとき、それぞれ次のデータをリードし、
比較する。(ループする)
【0048】図11は本発明によるストリング・サーチ
命令のデータ・フローを示す図である。 RDR0に4バイトのデータが格納される。このと
き、R0CNTが4バイト以下になった時、DVR0の
終了フラグが‘1’になり、RDR0の有効/無効バイ
トもDVR0に反映される。 SCHK0命令により、RDR0の内容と指定され
たパディング・コードを1バイト単位で上位側から比較
し、一致したらそのデータ以降にパディング・コードを
設定して内部データ・バスに出力する。また、一致した
場合には、DVR0の終了フラグを‘1’にし、一致し
たバイトの次の有効/無効ビットを‘0’にする。 で得たデータ・バスに出力したメモリ・データと
指定データを比較する。不一致の場合は終了する。 DVR0の終了フラグをチェックする。‘1’のと
き、全てのバイト数をリードしたか或いはパディング・
コードを検出したかなので、これで終了とする。‘0’
のとき、それぞれ次のデータをリードし、比較する(ル
ープする)。
【0049】図12は本発明によるストリング転送命令
のデータ・フローを示す図である。 RDR1に4バイトのデータが格納される。このと
き、R1CNTが4バイト以下になった時、DVR1の
終了フラグが‘1’になり、RDR1の有効/無効バイ
トもDVR1に反映される。 SCHK1命令により、RDR1の内容と、指定さ
れたパディング・コードを1バイト単位で上位側から比
較し、一致したらそのデータ以降にパディング・コード
を設定して、内部データ・バスに出力する。また、一致
した場合には、DVR1の終了フラグを‘1’にし、一
致した次のバイトの有効/無効ビットを‘0’にする。 で得たデータ・バスに出力したメモリ・データを
メモリS2側にライトする。ライト・カウンタはR1C
NTを共有する。 DVR1の終了フラグをチェックする。‘1’のと
き、全てのバイト数をリードしたか或いはパディング・
コードを検出したかなので、これで終了とする。‘0’
のとき、次のデータをリードし、ライトするループに入
る。
【0050】図13は本発明による10進データ比較命
令のデータ・フローを示す図である。なお、S1側がパ
ック形式データ、S2側がゾーン形式データとし、メモ
リ・データの比較を行うものとする。 10進の桁数はパック形式,ゾーン形式によって異
なるが、MSRの内容にしたがって、DVR制御回路が
MSRのデータ形式を参照して、R0CNT,R1CN
Tにそれぞれのバイト数に応じた値が設定できる。 パック形式の符号部を含む1バイトをリードする。
RDR0の下位1バイトにデータ部4ビットおよび符号
部4ビットが入る。DVR0の最下位ビットのみが
‘1’になる。 ゾーン形式の符号部も含む1バイトをリードする。
RDR1の下位1バイトに符号部4ビットおよびデータ
部4ビットが入る。DVR1の最下位ビットのみが
‘1’になる。
【0051】 DCMPS命令によって、DVR0,
DVR1に従ってRDR0,RDR1の有効バイト・デ
ータが、MSRで設定されたデータ形式にしたがって、
符号部データがX‘A’〜‘F’か、データ部データが
X‘0’〜‘9’かがチェックされる。RDR0,RD
R1のデータ部の内容が比較され、MSRに結果が格納
される。 パック形式のデータ部のデータを2バイト・リード
する(10進数4桁分に相当)。RDR0の下位2バイ
トにデータ部のデータが入る。 ゾーン形式のデータ部のデータを4バイト・リード
する(10進数4桁分に相当)。RDR1の4バイトに
データ部のデータが入る。 DCMP命令によって、DVR0,DVR1にした
がって、RDR0,RDR1の有効バイト・データが、
MSRで設定されたデータ形式にしたがって、データ部
のデータがX‘0’〜‘9’かがチェックされる。RD
R0,RDR1のデータ部の内容が比較され、MSRに
結果が格納される。 DVR0,DVR1の終了フラグをチェックする。
‘1’のとき、全てのデータを比較したので、これで終
了する。‘0’のとき、それぞれ次のデータをリード
し、比較するループに入る。
【0052】S1側がパック形式データ、S2側もパッ
ク形式データの場合には、図13のデータフローにおい
て、S1がパック形式、S2もパック形式であることを
MSRにセットし、でS1側を4バイト・リードすれ
ば良い。S1側がゾーン形式データ、S2側もゾーン形
式データの場合には、図13のデータフローにおいて、
S1がゾーン形式、S2もゾーン形式であることをMS
Rにセットし、でS1側を4バイト・リードすれば良
い。
【0053】図14は本発明による10進データ演算命
令のデータ・フローを示す図である。なお、S1側,S
2側がパック形式データとし、メモリ・データの加算を
行うものとする。 10進数の桁数はパック形式,ゾーン形式によって
異なるが、MSRの内容にしたがって、DVR制御回路
がMSRのデータ形式を参照して、R0CNT,R1C
NTにそれぞれのバイト数に応じた値が設定できる。 パック形式の符号部を含む1バイトをリードする。
RDR0の下位1バイトに、データ部4ビットおよび符
号部4ビットが入る。DVR0の最下位ビットのみが
‘1'になる。 パック形式の符号部を含む1バイトをリードする。
RDR1の下位1バイトに、データ部4ビットおよび符
号部4ビットが入る。DVR1の最下位ビットのみが
‘1'になる。 DECS命令によって、DVR0,DVR1にした
がってRDR0,RDR1の有効バイト・データが、M
SRで設定されたデータ形式にしたがって、符号部デー
タがX‘A’〜‘F’か、データ部データがX‘0’〜
‘9’かがチェックされる。RDR0,RDR1の符号
部の内容が比較され、同符号のとき内部演算は加算、異
符号のときは内部演算が減算と、MSRにセットされ
る。RDR0,RDR1のデータ部の内容が、MSRの
演算種にしたがって、演算される。
【0054】 パック形式のS1側メモリ・データを
4バイト・リードする(10進数4桁分)。DVR0に
は、R0CNTのバイト数にしたがい、RDR0の有効
/無効ビット,終了フラグがセットされる。 パック形式のS2側メモリ・データを4バイト・リ
ードする(10進数4桁分)。DVR1には、R1CN
Tのバイト数にしたがい、RDR1の有効/無効ビッ
ト,終了フラグがセットされる。 DEC命令によって、DVR0,DVR1に従って
RDR0,RDR1の有効バイト・データが、MSRで
設定されたデータ形式にしたがって、データ部データが
X‘0’〜‘9’かがチェックされる。MSRの演算種
類にしたがい、RDR0,RDR1のデータ部の内容が
演算される。 DVR0またはDVR1の終了フラグをチェックす
る。‘1’のとき、全てのデータを演算したので、これ
で終了とする。‘0’のとき、それぞれ次のデータをリ
ードし、演算するループに入る。
【0055】図15は10進数の形変換のデータフロー
(その1)を示す図である。なお、S1側のゾーン形式
のデータをパック形式に変換し、S2側に書き込むもの
とする。 10進数の桁数はパック形式,ゾーン形式によって
異なるが、MSRの内容にしたがって、DVR制御回路
がMSRのデータ形式を参照して、R0CNT,R1C
NTにそれぞれのバイト数に応じた値が設定できる。 ゾーン形式の符号部を含む1バイトをリードする。
RDR0の下位1バイトに、符号部4ビットおよびデー
タ部4ビットが入る。DVR0の最下位ビットのみが
‘1’になる。 DMDFYS命令によって、DVR0に従ってRD
R0の有効バイト・データが、MSRで設定されたデー
タ形式にしたがって、符号部データがX‘A’〜
‘F’、データ部データがX‘0’〜‘9’かがチェッ
クされる。また、RDR0の内容がパック形式に変換さ
れる(上下4ビットを入れ替える)。
【0056】 の変換データを1バイト・ライトす
る。 ゾーン形式のデータ部のデータを4バイト・リード
する(10進数4桁分)。RDR0の4バイトにデータ
部のデータが入る。 DMDFY命令によって、DVR0に従ってRDR
0の有効バイト・データが、MSRで設定されたデータ
形式にしたがって、データ部データがX‘0’〜‘9’
かがチェックされる。RDR0の内容がパック形式に変
換される(ゾーン部のX‘F’が削除され、データ部が
下位に詰められる)。 で得られたパック形式のデータ2バイトをメモリ
・ライトする(10進数4桁分)。 DVR0の終了フラグをチェックする。‘1’のと
き、全てのデータを変換したので、これで終了とする。
0のとき、それぞれ次のデータをリードし、変換するル
ープに入る。
【0057】図16は10進数の形変換のデータフロー
(その2)を示す図である。なお、S1側のパック形式
のデータをゾーン形式に変換し、S2側に書き込むもの
とする。 10進数の桁数はパック形式,ゾーン形式によって
異なるが、MSRの内容にしたがって、DVR制御回路
がMSRのデータ形式を参照して、R0CNT,R1C
NTにそれぞれのバイト数に応じた値が設定できる。 パック形式の符号部を含む1バイトをリードする。
RDR0の下位1バイトに、データ部4ビット(上位)
および符号部4ビット(下位)が入る。DVR0の最下
位ビットのみが‘1’になる。 DMDFYS命令によって、DVR0に従ってRD
R0の有効バイト・データが、MSRで設定されたデー
タ形式にしたがって、符号部データがX‘A’〜
‘F’、データ部データがX‘0’〜‘9’かがチェッ
クされる。また、RDR0の内容がゾーン形式に変換さ
れる(上下4ビットを入れ替える)。
【0058】 の変換データを1バイト・ライトす
る。 パック形式のデータ部のデータを2バイト・リード
する(10進数4桁分)。RDR0の2バイトにデータ
部のデータが入る。 DMDFY命令によって、DVR0に従ってRDR
0の有効バイト・データが、MSRで設定されたデータ
形式にしたがって、データ部データがX‘0’〜‘9’
かがチェックされる。RDR0の内容がゾーン形式に変
換される(ゾーン部にX‘F’が追加され、データ部が
下位に詰められる)。 で得られたゾーン形式のデータ4バイトをメモリ
・ライトする(10進数4桁分)。 DVR0の終了フラグをチェックする。‘1’のと
き、全てのデータを変換したので、これで終了とする。
0のとき、それぞれ次のデータをリードし、変換するル
ープに入る。
【0059】図17は本発明による10進数のデータ・
チェックのデータ・フローを示す図である。 パック形式,ゾーン形式とも最下位の1バイト・デ
ータに符号部とデータ部1桁が入っているので、マイク
ロプログラムでデータの形式を意識することなく、命令
を1ステップ実行させるだけで、最初にMSRで設定し
たS1,S2それぞれのデータ形式にしたがったデータ
位置でのデータ・チェックを、演算動作と同時に行うこ
とが出来る。DVR0,DVR1の有効ビットは最下位
ビットのみが‘1’になる。DVR0に従ってRDR0
の有効バイト・データが、MSRに設定されたデータ形
式にしたがって、符号部データがX‘A’〜‘F’か、
データ部データがX‘0’〜‘9’かがチェックされ
る。 パック形式,ゾーン形式で、データ部のデータ・チ
ェック位置が異なるが、本マイクロ命令を実行すること
により、MSRに設定したデータ形式によってそれぞれ
のデータの形式の違いをマイクロ側で意識することな
く、演算と同時にデータ・チェックが行える。DVR0
に従ってRDR0の有効バイト・データが、DVR1に
従ってRDR1の有効バイト・データが、MSRで設定
されたそれぞれのデータ形式にしたがって、データ部デ
ータがX‘0’〜‘9’かがチェックされる。また、演
算動作も同時に行える。
【0060】
【発明の効果】従来、複数バイトからなるメモリ間のデ
ータ転送あるいは演算を行う場合、マイクロプログラム
内で、そのバイト数分のリード・リクエストを指示し、
それを演算し、ライト・リクエストを指示するループの
プログラムになり、そこで指示する1回のリードあるい
はライトは高速化のために普通は4バイトなどとなる
が、指定バイト数(転送あるいは演算しなければならな
いバイト数)がそのリードあるいはライトで指示するバ
イト数と異なる場合、その端数バイト・データの検出方
法あるいはデータの演算処理が複雑になる。
【0061】本発明では、マイクロプログラムで最初に
演算の種類,バイト数を指示することにより、その演算
の終了を指示するフラグ,端数バイト・データの有効デ
ータ数を指示するデータ・バリッド・レジスタと、それ
を制御する回路を持つことにより、複雑な演算あるいは
転送命令を高速に実行できる。また、その付加したデー
タ・バリッド・レジスタを演算実行ユニットが参照する
ことにより、パック10進演算,アンパック10進演算
も高速に実行でき、10進命令に必要なデータ・チェッ
ク(データ部,符号部のそれぞれについて)を行う位置
も、データ・バリッド・レジスタを参照することにより
行える。
【図面の簡単な説明】
【図1】本発明の演算処理装置のハード構成図である。
【図2】DVRの機能概略を示す図である。
【図3】DVRの機能概略(続き)を示す図である。
【図4】DVRジェネレータ&コントローラの構成例を
示す図である。
【図5】EXUの内部詳細の1例を示す図である。
【図6】MSRレジスタの詳細を示す図である。
【図7】本発明で使用される命令(その1)を示す図で
ある。
【図8】本発明で使用される命令(その2)を示す図で
ある。
【図9】本発明で使用される命令(その3)を示す図で
ある。
【図10】本発明によるストリング比較命令のデータ・
フローを示す図である。
【図11】本発明によるストリング・サーチ命令のデー
タ・フローを示す図である。
【図12】本発明によるストリング転送命令のデータ・
フローを示す図である。
【図13】本発明による10進比較命令のデータ・フロ
ーを示す図である。
【図14】本発明による10進データ演算命令のデータ
・フローを示す図である。
【図15】本発明による10進数の形変換のデータ・フ
ロー(その1)を示す図である。
【図16】本発明による10進数の形変換のデータ・フ
ロー(その2)を示す図である。
【図17】本発明による10進数のデータ・チェックの
データ・フローを示す図である。
【符号の説明】
1 パディング・コード・レジスタ 2 セレクタ 3 セレクタ 4−0 リード・バッファ 4−1 リード・バッファ 5 ワーク・レジスタ 6 ライト・バッファ 7−0 リード・カウンタ 7−1 リード・カウンタ 8−0 DVRジェネレータ&コントローラ 8−1 DVRジェネレータ&コントローラ 9−0 データ・バリッド・レジスタ 9−1 データ・バリッド・レジスタ 10 演算実行ユニット 11 マイクロ・ステータス・レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 吉田 茂 石川県河北郡宇ノ気町字宇野気ヌ98番地 の2 株式会社 ピーエフユー内 (72)発明者 杉野 一仁 石川県河北郡宇ノ気町字宇野気ヌ98番地 の2 株式会社 ピーエフユー内 (72)発明者 松原 望 石川県河北郡宇ノ気町字宇野気ヌ98番地 の2 株式会社 ピーエフユー内 (56)参考文献 特開 平3−37722(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/30 G06F 9/34

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 メモリから読み出されたデータを保持す
    るNバイト構成の第1のリード・バッファ(4-0) と、 メモリから読み出されたデータを保持するNバイト構成
    の第2のリード・バッファ(4-1) と、 メモリ読出し用のカウント値を保持する第1のリード・
    カウンタ(7-0) と、 メモリ読出し用のカウント値を保持する第2のリード・
    カウンタ(7-1) と、 第1のリード・バッファ(4-0) に対応してNバイト・デ
    ータの有効/無効を示すN個の有効/無効ビットを有す
    ると共に、リード・カウントの終了を示す終了フラグを
    有する第1のデータ・バリッド・レジスタ(9-0) と、 第2のリード・バッファ(4-1) に対応してNバイト・デ
    ータの有効/無効を示すN個の有効/無効ビットを有す
    ると共に、リード・カウントの終了を示す終了フラグを
    有する第2のデータ・バリッド・レジスタ(9-1) と、 第1のリード・カウンタ(7-0) および第1のリード・バ
    ッファ(4-0) に書き込まれるメモリ読出しデータのバイ
    ト数に基づいて、第1のデータ・バリッド・レジスタ(9
    -0) に書き込むデータを生成すると共に、次のメモリ読
    出し時に、第1のリード・カウンタ(7-0) の内容を上記
    バイト数だけ減算する第1のデータ・バリッド・レジス
    タ制御回路(8-0) と、 第2のリード・カウンタ(7-1) および第2のリード・バ
    ッファ(4-1) に書き込まれるメモリ読出しデータのバイ
    ト数に基づいて、第2のデータ・バリッド・レジスタ(9
    -1) に書き込むデータを生成すると共に、次のメモリ読
    出し時に、第2のリード・カウンタ(7-1) の内容を上記
    バイト数だけ減算する第2のデータ・バリッド・レジス
    タ制御回路(8-1) とを具備することを特徴とする演算処
    理装置。
  2. 【請求項2】 請求項1の演算処理装置において、 第1オペランド側のNバイトのデータをメモリから
    読み出して第1のリード・バッファ(4-0) に書き込み、 第2オペランド側のNバイトのデータをメモリから
    読み出して第2のリード・バッファ(4-1) に書き込み、 第1のリード・バッファ(4-0) の内容とN個のパデ
    ィング・コード列を比較し、一致したデータ以降にパデ
    ィング・コードを設定して内部バスに出力し、パディン
    グ・コードが一致した場合には第1のデータ・バリッド
    ・レジスタ(9-0)の終了フラグを終了とすると共に一致
    したバイトに対応するビットの次の有効/無効ビット以
    降を無効にする処理を行い、 第2のリード・バッファ(4-1) の内容とN個のパデ
    ィング・コード列を比較し、一致したデータ以降にパデ
    ィング・コードを設定して内部バスに出力し、パディン
    グ・コードが一致した場合には第2のデータ・バリッド
    ・レジスタ(9-1)の終了フラグを終了とすると共に一致
    したバイトに対応するビットの次の有効/無効ビット以
    降を無効にする処理を行い、 ,で出力したデータを比較し、 第1のデータ・バリッド・レジスタ(9-0) 又は第2
    のデータ・バリッド・レジスタ(9-1) の終了フラグをチ
    ェックし、終了を示している場合には終了とし、終了を
    示していない場合にはに戻ることを特徴とするストリ
    ング比較命令の処理方法。
  3. 【請求項3】 請求項1の演算処理装置において、 Nバイトのデータをメモリから読み出してリード・
    バッファ(4-0または4-1)に書き込み、 リード・バッファ(4-0または4-1)の内容とN個のパ
    ディング・コード列を比較し、一致したデータ以降にパ
    ディング・コードを設定して内部バスに出力し、パディ
    ング・コードが一致した場合には当該リード・バッファ
    (4-0または4-1)に対応するデータ・バリッド・レジスタ
    (9-0または9-1)の終了フラグを終了とすると共に一致し
    たバイトに対応するビットの次の有効/無効ビット以降
    を無効にする処理を行い、 で得たデータと指定データを比較し、両者が不一
    致の場合は終了とし、両者が一致の場合にはに進み、 上記データ・バリッド・レジスタ(9-0または9-1)の
    終了フラグをチェックし、終了を示している場合には終
    了とし、終了を示していない場合にはに戻ることを特
    徴とするストリング・サーチ命令の処理方法。
  4. 【請求項4】 請求項1の演算処理装置において、 Nバイトのデータをメモリから読み出してリード・
    バッファ(4-0または4-1)に書き込み、 リード・バッファ(4-0または4-1)の内容とN個のパ
    ディング・コード列を比較し、一致したデータ以降にパ
    ディング・コードを設定して内部バスに出力し、パディ
    ング・コードが一致した場合には当該リード・バッファ
    (4-0または4-1)に対応するデータ・バリッド・レジスタ
    (9-0または9-1)の終了フラグを終了とすると共に一致し
    たバイトに対応するビットの次の有効/無効ビット以降
    を無効にする処理を行い、 で得たデータを第2オペランド側に書き込み 上記データ・バリッド・レジスタ(9-0または9-1)の
    終了フラグをチェックし、終了を示している場合には終
    了のための処理を行い、終了を示していない場合には
    の処理に戻ることを特徴とするストリング転送命令の処
    理方法。
  5. 【請求項5】 請求項1の演算処理装置において、 第1のリード・カウンタ(7-0) ,第2のリード・カ
    ウンタ(7-1) にデータ数をセットし、 第1オペランド側の最下位1バイトのデータをメモ
    リから読み出し、 第2オペランド側の最下位1バイトのデータをメモ
    リから読み出し、 第1のデータ・バリッド・レジスタ(9-0) ,第2の
    データ・バリッド・レジスタ(9-1) に従って第1のリー
    ド・バッファ(4-0) ,第2のリード・バッファ(4-1) の
    有効バイト・データの符号部データ及びデータ部データ
    のチェックを行い、第1のリード・バッファ(4-0) ,第
    2のリード・バッファ(4-1) の内容を比較し、 第1オペランド側からパック形式の2バイトのデー
    タをメモリから読み出し、第1のリード・バッファ(4-
    0) に書き込み、 第2オペランド側からゾーン形式の4バイトのデー
    タをメモリから読み出し、第2のリード・バッファ(4-
    1) に書き込み、 第1のデータ・バリッド・レジスタ(9-0) ,第2の
    データ・バリッド・レジスタ(9-1) に従って第1のリー
    ド・バッファ(4-0) ,第2のリード・バッファ(4-1) の
    有効バイト・データのデータ部データのチェックを行
    い、第1のリード・バッファ(4-0) ,第2のリード・バ
    ッファ(4-1) の内容を比較し、 第1のデータ・バリッド・レジスタ(9-0) または第
    2のデータ・バリッド・レジスタ(9-1) の終了フラグを
    チェックし、終了を示している場合は終了とし、終了を
    示していない場合はの処理に戻ることを特徴とするパ
    ック形式の10進データとゾーン形式の10進データを
    比較する命令の処理方法。
  6. 【請求項6】 請求項1の演算処理装置において、 第1のリード・カウンタ(7-0) および第2のリード
    ・カウンタ(7-1) にデータ数をセットし、 第1オペランド側の最下位1バイトのデータをメモ
    リからリードし、 第2オペランド側の最下位1バイトのデータをメモ
    リからリードし、 第1のデータ・バリッド・レジスタ(9-0) ,第2の
    データ・バリッド・レジスタ(9-1) に従って、第1のリ
    ード・バッファ(4-0) ,第2のリード・バッファ(4-1)
    の有効バイト・データの符号部データ及びデータ部デー
    タのチェックを行い、第1のリード・バッファ(4-0) ,
    第2のリード・バッファ(4-1) の符号部の内容に基づい
    て演算種を決定し、第1のリード・バッファ(4-0) ,第
    2のリード・バッファ(4-1) のデータ部の内容を決定し
    た演算種に従って演算し、演算結果をメモリに書き込
    み、 第1オペランド側のNバイトのデータをメモリから
    リードし、 第2オペランド側のNバイトのデータをメモリから
    リードし、 第1のデータ・バリッド・レジスタ(9-0) ,第2の
    データ・バリッド・レジスタ(9-1) に従って、第1のリ
    ード・バッファ(4-0) ,第2のリード・バッファ(4-1)
    の有効バイト・データのデータ部データのチェックを行
    い、第1のリード・バッファ(4-0) ,第2のリード・バ
    ッファ(4-1) のデータ部の内容をで決定された演算種
    に従って演算し、演算結果をメモリに書き込み、 第1のデータ・バリッド・レジスタ(9-0) または第
    2のデータ・バリッド・レジスタ(9-1) の終了フラグを
    チェックし、終了を示している場合は終了とし、終了を
    示していない場合はの処理に戻ることを特徴とする1
    0進データ演算命令の処理方法。
  7. 【請求項7】 請求項1の演算処理装置において、 第1のリード・カウンタ(7-0) ,第2のリード・カ
    ウンタ(7-1) にデータ数をセットし、 第1オペランド側の最下位1バイトのデータをメモ
    リから読み出し、 第1のデータ・バリッド・レジスタ(9-0) に従って
    第1のリード・バッファ(4-0) の有効バイト・データの
    符号部データ及びデータ部データのチェックを行い、第
    1のリード・バッファの内容をパック形式に変換し、 で得られた1バイトのデータを第2オペランド側
    に書き込み、 第1オペランド側のNバイトのデータをメモリから
    読み出し、 第1のデータ・バリッド・レジスタ(9-0) に従って
    第1のリード・バッファ(4-0) の有効バイト・データの
    データ部データのチェックを行い、第1のリード・バッ
    ファの内容をパック形式に変換し、 で得られたパック形式のN/2バイトのデータを
    メモリに書き込み、 第1のデータ・バリッド・レジスタ(9-0) の終了フ
    ラグをチェックし、終了を示している場合は終了とし、
    終了を示していない場合はの処理に戻ることを特徴と
    する10進数のゾーン形式からパック形式への変換処理
    方法。
  8. 【請求項8】 請求項1の演算処理装置において、 第1のリード・カウンタ(7-0) ,第2のリード・カ
    ウンタ(7-1) にデータ数をセットし、 第1オペランド側の最下位1バイトのデータをメモ
    リから読み出し、 第1のデータ・バリッド・レジスタ(9-0) に従って
    第1のリード・バッファ(4-0) の有効バイト・データの
    符号部データ及びデータ部データのチェックを行い、第
    1のリード・バッファの内容をゾーン形式に変換し、 で得られた1バイトのデータを第2オペランド側
    に書き込み、 第1オペランド側のN/2バイトのデータをメモリ
    から読み出し、 第1のデータ・バリッド・レジスタ(9-0) に従って
    第1のリード・バッファ(4-0) の有効バイト・データの
    データ部データのチェックを行い、第1のリード・バッ
    ファの内容をゾーン形式に変換し、 で得られたゾーン形式のNバイトのデータをメモ
    リに書き込み、 第1のデータ・バリッド・レジスタ(9-0) の終了フ
    ラグをチェックし、終了を示している場合は終了とし、
    終了を示していない場合はの処理に戻ることを特徴と
    する10進数のパック形式からゾーン形式への変換処理
    方法。
JP4275422A 1992-09-19 1992-09-19 演算処理装置および処理方法 Expired - Fee Related JP2826927B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4275422A JP2826927B2 (ja) 1992-09-19 1992-09-19 演算処理装置および処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4275422A JP2826927B2 (ja) 1992-09-19 1992-09-19 演算処理装置および処理方法

Publications (2)

Publication Number Publication Date
JPH06103060A JPH06103060A (ja) 1994-04-15
JP2826927B2 true JP2826927B2 (ja) 1998-11-18

Family

ID=17555296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4275422A Expired - Fee Related JP2826927B2 (ja) 1992-09-19 1992-09-19 演算処理装置および処理方法

Country Status (1)

Country Link
JP (1) JP2826927B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10175946B2 (en) * 2016-09-30 2019-01-08 International Business Machines Corporation Perform sign operation decimal instruction
CN113157626A (zh) * 2021-04-28 2021-07-23 雄狮汽车科技(南京)有限公司 数据缓存区、基于数据缓存区的串口通信数据帧解析方法及汽车

Also Published As

Publication number Publication date
JPH06103060A (ja) 1994-04-15

Similar Documents

Publication Publication Date Title
US3646522A (en) General purpose optimized microprogrammed miniprocessor
US5155817A (en) Microprocessor
JPH04296937A (ja) ハードウエアデータストリング演算コントローラ及び主記憶ストリング動作を行わせる方法
JPH0157817B2 (ja)
JPS6398739A (ja) ソース命令実行をエミュレートする装置
JPH0545985B2 (ja)
JP2667849B2 (ja) 情報処理装置
JPH0348537B2 (ja)
US6055623A (en) Specialized millicode instruction for editing functions
JPS6124729B2 (ja)
US6067617A (en) Specialized millicode instructions for packed decimal division
US6058470A (en) Specialized millicode instruction for translate and test
JP2826927B2 (ja) 演算処理装置および処理方法
JPH034936B2 (ja)
US6055624A (en) Millicode flags with specialized update and branch instructions
JPS6160459B2 (ja)
US4288850A (en) Apparatus for identification and removal of a sign signal character superimposed
JPS63113634A (ja) プログラムカウンタ相対アドレス計算方式
JPS5931733B2 (ja) 可変長さの命令を実行する中央処理装置
JP2764947B2 (ja) 命令制御方式
JPS60134937A (ja) アドレス拡張装置
JP3014701B2 (ja) 情報処理装置
JP2671325B2 (ja) データ処理装置
JPS5955546A (ja) フア−ムウエア処理装置
JPS6149692B2 (ja)

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees