JPS6138493B2 - - Google Patents

Info

Publication number
JPS6138493B2
JPS6138493B2 JP56080363A JP8036381A JPS6138493B2 JP S6138493 B2 JPS6138493 B2 JP S6138493B2 JP 56080363 A JP56080363 A JP 56080363A JP 8036381 A JP8036381 A JP 8036381A JP S6138493 B2 JPS6138493 B2 JP S6138493B2
Authority
JP
Japan
Prior art keywords
register
bits
output
held
selector
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
JP56080363A
Other languages
English (en)
Other versions
JPS57196355A (en
Inventor
Kazutoshi Eguchi
Hidemi Yamamoto
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.)
Toshiba Corp
Original Assignee
Tokyo Shibaura Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tokyo Shibaura Electric Co Ltd filed Critical Tokyo Shibaura Electric Co Ltd
Priority to JP56080363A priority Critical patent/JPS57196355A/ja
Publication of JPS57196355A publication Critical patent/JPS57196355A/ja
Publication of JPS6138493B2 publication Critical patent/JPS6138493B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 本発明は10進数値列を扱うデータ処理装置に関
する。
データ処理装置において10進数値列を扱う場
合、SS型命令が用いられる。このSS型命令は事
務用命令として多用されるもので、第1図に示さ
れるように通常64ビツトで構成されている。図
中、OPは命令コード、L1は第1オペランドの
データ長、L2は第2オペランドのデータ長を表
わしている。この場合、第1、第2オペランドの
データ長はそれぞれL1+1(バイト)、L2+
1(バイト)である。また、X1,D1は第1オ
ペランドのアドレス、X2,D2は第2オペラン
ドのアドレスを表わしている。SS型命令は一般
に記憶装置内のオペランド同士で演算を行なう場
合に用いられる命令である。この命令において第
1オペランドはレジスタX1の内容X1とデイス
プレースメントD1との和で生成されるアドレス
より始まるL1+1(バイト)である。また、第
2オペランドはレジスタX2の内容とデイスプレ
ースメントD2との和で生成されるアドレスより
始まるL2+1(バイト)である。これら第1、
第2オペランド同士の演算結果は上記第1オペラ
ンドのアドレスより始まるL1+1(バイト)に
格納される。このようなSS型命令は特にCOBOL
等の10進演算主体のプログラムに挿入されて使用
されるが、当該プログラムの走行に当り、10進数
値列の表現形式に起因する問題があつた。
以下、この問題について説明する。一般に10進
数値列の表現形式には、第2図イ〜ニに示される
ゾーン形式10進数と、第3図に示されるパツク形
式10進数とがある。図中、Sは符号(Sign)、Zi
はゾーン(Zone)、Diは1桁の数値(Digit)を示
している。第2図イ〜ニから明らかなように、ゾ
ーン形式10進数には、符号Sの前置きであるもの
(第2図ハ,ニ)、同じく後置きであるもの(第2
図イ,ロ)、符号Sが分離型であるもの(第2図
ロ,ニ)、同じく組み込み型であるもの(第2図
イ,ハ)のそれぞれの組み合わせで4種の表現形
式(後置きで組み込み型、後置きで分離型、前置
きで組み込み型、前置きで分離型)がある。この
ためこれらの符号処理が難かしく、ソフトウエア
による煩雑な処理が必要であつた。一方、パツク
形式10進数では、第3図に示されるように1バイ
トで符号および1桁(最下位桁)の数値、または
2桁の数値を表わすようになつている。このた
め、隅数桁のデータの場合、最左端(最上位桁)
の4ビツトの取り扱いが難しく(偶数桁指定の場
合に限つて最左端の4ビツトを演算に用いないよ
うにしなければならないため)、やはりソフトウ
エアによる煩雑な処理が必要であつた。また、演
算結果の絶対値化が必要な場合にもソフトウエア
で処理しなければならなかつた。このため従来の
データ処理装置では言語処理系の負担が極めて大
きく、これに伴なつて演算速度の高速化が図れな
い欠点があつた。
本発明は上記事情に鑑みてなされたものでその
目的は、ソフトウエアによる煩雑な処理を行なう
ことなしに10進数値列を取り扱うパツク命令が効
果的に実行でき、もつて言語処理系の負担の軽減
化および実行速度の高速化が図れるとともにプロ
グラムの実行効率が著しく向上するデータ処理装
置を提供することにある。
以下、本発明の一実施例を図面を参照して説明
する。第4図はデータ処理装置の要部構成を示す
もので、10はクロツク信号TFOPによつて第1
オペランドのたとえば8ビツトデータが保持され
るレジスタ(第1レジスタ)である。レジスタ1
0の出力をRFOP*で示す、20はクロツク信号
TSOPによつて第2オペランドのたとえば8ビツ
トデータが保持されるレジスタ(第2レジスタ)
である。レジスタ20の出力をRSOP*で示す。
30,40はそれぞれレジスタ10,20に接続
され、第1オペランド、第2オペランドの符号部
を4ビツトの数値データに変換する符号/数値変
換器で、たとえばROM(Read Only Memory)
で構成される。50は後述する信号C1SELに応
じてレジスタ10の出力または符号/数値変換器
30の出力のいずれか一方を選択出力するセレク
タ(第1セレクタ)である。本実施例においてセ
レクタ50はC1SEL=“0”でレジスタ10の
出力を選択し、C1SEL=“1”で符号/数値変
換器30の出力を選択する。60は後述する信号
C2SELに応じてレジスタ20の出力または符
号/数値変換器40の出力のいずれか一方を選択
出力するセレクタ(第2セレクタ)である。本実
施例においてセレクタ60はC2SEL=“0”で
レジスタ20の出力を選択し、C2SEL=“1”
で符号/数値変換器40の出力を選択する。これ
らの各セレクタ50,60の出力をそれぞれ
DRSA*,DRSB*で示す。
70はセレクタ50,60の各出力DRSA*,
DRSB*をそれぞれ入力とする演算回路である。
演算回路70は加算、減算、垂算、除算、シフト
などの演算を行なう。演算回路70の出力(8ビ
ツト)の上位4ビツトをDAOU*で示し、下位
4ビツトをDAOL*で示す。80は演算回路70
の出力DAOL*、16進数値「C」、または16進数
値「D」のいずれか一方を後述する信号
CSING,CSGNPに応じて選択出力するセレクタ
(第3セレクタ)である。セレクタ80はCSIGN
=“0”で出力DAOL*を選択し、CSIGN=
“1”、CSGNP=“1”で16進数値「C」を選択
し、CSIGN=“1”、CSGNP=“0”で16進数値
「D」を選択する。90は演算回路70の出力
DAOU*、または16進数値「0」のいずれか一
方を後述する信号CDIGTに応じて選択出力する
セレクタ(第4セレクタ)である。セレクタ90
はCDIGT=“0”で出力DAOU*を選択し、
CDIGT=“1”で16進数値「0」を選択する。こ
れらの各セレクタ80,90の出力をそれぞれ
DRLL*,DRLU*で示す。100,110はセ
レクタ90の出力DRLU*が入力されるレジス
タ、120,130はセレクタ80の出力DRLL
*が入力されるレジスタである。上記出力DRLU
*は、それぞれ信号CERSA,CERSCが論理
“1”であるときに、クロツク信号TRSLによつ
て対応するレジスタ100,110に保持され
る。同じく上記出力DRLL*は、それぞれ信号
CERSB,CERSDが論理“1”であるときに、ク
ロツク信号TRSLによつて対応するレジスタ12
0,130に保持される。これらの各レジスタ1
00,110,120,130の出力をそれぞれ
RSLA*,RSLC*,RSLB*,RSLD*で示す。
140はSS型命令のL1部の内容が初期設定さ
れるカウンタ、150は同じくL2部の内容が初
期設定されるカウンタである。これらカウンタ1
40,150はそれぞれ信号T1REG,T2
REGによつてカウントダウンされる。カウンタ
140,150の出力をそれぞれR1RG*,R
2RG*で示し、カウンタ140,150のキヤ
リー出力をそれぞれR1CRY,R2CRYで示
す。
ここで、本実施例で適用される事務用命令とし
て新期なSS型命令について第5図を参照して説
明する。図から明らかなように当該命令の基本的
なフオーマツトは第1図のそれとほぼ同じである
が、従来用いられていなかつた8ビツト(ビツト
32〜39)のうちの4ビツト(ビツト32〜3
5)が4種の制御ビツトSEPARATE(ビツト3
5)、LEADING(ビツト34)、DIGIT(ビツト
33)、ABSOLUTE(ビツト32)として用い
られている点で異なつている。本実施例におい
て、制御ビツトSEPARATEはゾーン形式10進数
の符号部が組み込み型であるか分離型であるかを
示すもので、論理“0”で組み込み型(第2図
イ,ハ参照)、論理“1”で分離型(第2図ロ,
ニ参照)であることを示す。また、制御ビツト
LEADINGは符号部が後置であるか前置きである
かを示すもので、論理“0”で後置き(第2図
イ,ロ参照)、論理“1”で前置き(第2図ハ,
ニ)であることを示す。また、制御ビツトDIGIT
は当該ビツトが論理“0”の場合、第1オペラン
ドで示されている領域中の最左端の4ビツトに結
果を格納して良いことを示し、論理“1”の場合
その4ビツトに結果を格納してはならない(0を
格納する)ことを示す。更に制御ビツト
ABSOLUTEは結果を格納するときに絶対値化を
するか否かを示すもので、論理“1”で絶対値化
をし、論理“0”で絶対値化をしないことを示
す。
再び第4図を参照すると、160は第5図に示
されるSS型命令中の4ビツトの制御ビツト(ビ
ツト32〜35)が保持されるレジスタ(第3レ
ジスタ)である。このレジスタ160の上記制御
ビツトSEPARATE,LEADING,DIGIT,
ABSOLUTEに対応する各出力をそれぞれ
RSPRT,RLEAD,RDIGT,RABSで示す。1
70は上記信号RLEADとR1CRYとのアンドを
とり、このアンド出力と信号CSGNAとのオアを
とるゲート、180は上記信号RLEADとR2
CRYとのアンドをとり、このアンド出力と信号
CSGNAとのオアをとるゲートである。これらゲ
ート170,180の出力をそれぞれC1SEL,
C2SELで示す。190は上記信号RDIGTとR
1CRYとのアンドをとるゲート、200は上記
信号RABSと信号CFLGNのレベル反転信号
()とのオアをとるゲートである。これ
らゲート190,200の出力をそれぞれ
CDIGT,CSGNPで示す。なお、本実施例のデー
タ処理装置はナノプログラム制御方式をとるもの
で、クロツク信号TFOP,TSOP、更には信号T
1REG,T2REG,CERSA,CERSB,
CERSC,CERSD,CSGNA,CSIGNはナノプロ
グラミングに基づいて図示せぬ制御部よりそれぞ
れ適当なタイミングで出力される。また、信号
CFLGNは演算結果が負となる場合に有効(論理
“1”)となるものである。
次に第4図の構成の動作をPACK(パツク)命
令を例にとつて説明する。PACK命令は図示せぬ
記憶装置のアドレス(X2)+D2より始まる〜
L2+1(バイト)のゾーン形式10進数表現の第
2オペランドをパツク形式10進数に変換して第1
オペランドを得、アドレス(X1)+D1より始
まるL1+1(バイト)の領域に格納する命令で
ある。第6図イ〜第8図イはPACK命令の一例を
示すもので、L1=1、L2=2の場合が示され
ている。また、第6図ロ〜第8図ロは第2オペラ
ンドのデータ内容を示すもので、10進数値−321
の場合が示されている。図から明らかなように、
本実施例における第2オペランドのデータは、第
2図イと同様に符号部が後置きで組み込み型のゾ
ーン形式10進数である。なお、図中符号部
「4A」は、値が「1」で符号が「−」であること
を示すものである。第6図ハ〜第8図ハは第6図
イ〜第8図イのPACK命令実行によつて得られる
第1オペランドのデータ内容を示すもので、第6
図ロ〜第8図ロに示されているように第2オペラ
ンドのデータ内容が同一であるにもかかわらず異
なつている。これは第6図イ〜第8図イに示され
るPACK命令の制御ビツト(ビツト32〜35)
の内容が図示の如く異なつていることによる。す
なわち第6図イのPACK命令は第1オペランドで
示されている領域中の最左端の4ビツトに結果を
格納してもよい(DIGIT=“0”)が、結果の絶対
値化はしない(ABSOLUTE=“0”)場合であ
り、第7図イのPACK命令は第1オペランドで示
されている領域中の最左端の4ビツトに結果を格
納してはならず、すなわち「0」を格納し
(DIGIT=“1”)、かつ結果の絶対値化はしない
(ABSOLUTE=“0”)場合であり、第8図イの
PACK命令は第1オペランドで示されている領域
中の最左端の4ビツトに結果を格納する(DIGIT
=“0”)とともに、結果を絶対値化する
(ABSOLUTE=“1”)場合である。なお、第6
図ハ〜第8図ハに示される第1オペランドの最右
端は符号部であり、Dは符号が「−」(負符号)
であることを示し、Cは符号が「+」(正符号)
であることを示すものである。
まず、第6図イのPACK命令の実行について第
9図aのタイミングチヤートを参照して具体的に
説明する。いま、第6図イのPACK命令が図示せ
ぬ記憶装置から命令レジスタ(図示せず)に読出
され、命令語中のL1の内容(ビツト8〜1
1)、L2の内容(ビツト40〜43)、制御ビツ
トの内容(ビツト32〜35)がそれぞれカウン
タ140、カウンタ150、レジスタ160に保
持されているものとする。また、第6図ロで示さ
れる第2オペランドのデータは記憶装置の(X
2)+D2で示されるアドレスより始まるL2+
1=3(バイト)の領域から取り出され、データ
の右端(下位桁)から8ビツト(1バイト)ずつ
クロツク信号TSOPに同期してレジスタ20に保
持される。はじめに、第2オペランドのデータの
右端の8ビツトがレジスタ20に保持される。こ
のとき、ナノプログラムの実行により、第2オペ
ランドのデータの右端の8ビツトが符号部のデー
タであるか否か、すなわち制御ビツトLEADING
が論理“0”であるか論理“1”であるかに応じ
て信号CSGNAの論理状態が決定される。本実施
例では、LEADING=“0”(RLEAD=“0”)で
あり、したがつて第2オペランドのデータの右端
の8ビツト(符号部のデータ「4A」)がレジスタ
20に保持されている期間中、信号CSGNAは論
理“1”となつている。このCSGNA=“1”に
よりゲート180の出力信号C2SELも論理
“1”となる。この結果、セレクタ60は符号/
数値変換器40の出力を選択する。この符号/数
値変換器40の出力は、符号部のデータ「4A」
の数値変換データ(4ビツト)であり、数値
「1」である。セレクタ60の選択出力は演算回
路70に入力される。演算回路70は上記数値
「1」の数値変換データをDAOU*として出力す
る。このとき演算回路70の出力の下位4ビツト
(DAOL*)はデータとして意味を持つていな
い。第9図aの出力データ(DAOU*,DAOL
*,DRLU*,DRLL*)のタイミングチヤート
内に付されている記号*は対応する部分のデータ
が意味を持たないことを示すものである。これは
後述する第9図b,cおよび第12図についても
同様である。演算回路70の出力DAOU*(=
「1」)はセレクタ90に入力される。セレクタ9
0は信号CDIGTの論理状態に応じてDAOU*
(=「1」)または16進数値「0」のいずれか一方
を選択する。本実施例では第6図イに示されるよ
うに制御ビツトDIGIT(ビツト33)が論理
“0”すなわちRDIGT=“0”であるため、信号
R1CRYの論理状態に無関係にCDIGT=“0”で
あり、セレクタ90は常に出力DAOU*を出力
DRLU*として出力する。この場合、DRLU*=
「1」となることは明らかである。一方、セレク
タ80は信号CSIGN,CSGNPの論理状態に応じ
てDAOL*、16進数値「C」、または16進数値
「D」のいずれか一方を選択する。PACK命令に
よつて得られるパツク形式10進数の最右端(最下
位桁)の4ビツトは、第3図で示したように符号
となる。そこで本実施例では、PACK命令の実行
において、第2オペランドのデータの右端(下位
桁)の8ビツトがレジスタ20に保持されている
期間中、ナノプログラムの実行によりCSIGN=
“1”となるように制御される。また、本実施例
では第6図イに示されるように制御ビツト
ABSOLUTE(ビツト32)が論理“0”、すな
わちRABS=“0”である。更にCFLGN=“1”
である。したがつてゲート200の出力信号
CSGNPは論理“0”となり、セレクタ80は16
進数値「D」を出力DRLL*として選択出力す
る。これらセレクタ90,80の出力DRLU*
(=「1」)、DRLL*(=「D」)はそれぞれレジス
タ100,110、レジスタ120,130に入
力される。このとき(第2オペランドのデータの
右端の8ビツトの処理時)、第9図aに示される
ように信号CERSC,CERSDだけ論理“1”とな
つており、クロツク信号TRSLに同期してDRLU
*(=「1」)がレジスタ110に保持され、
DRLL*(=「D」)がレジスタ130に保持され
る。また、これと同時に、クロツク信号TSOPに
同期して第2オペランドのデータの次の桁の8ビ
ツト(「32」)がレジスタ20に保持される。この
とき、信号CSGNAは論理“0”状態となり、し
たがつてセレクタ60はレジスタ20の保持内容
(RSOP*=「32」)を選択出力する。セレクタ6
0の選択出力は演算回路70に入力される。演算
回路70はデータ「32」を処理し、数値「2」を
前回と異なりDAOL*として出力する。演算回路
70の出力DAOL*(=「2」)はセレクタ80に
入力される。第2オペランドのデータの右端(下
位桁)の8ビツトがレジスタ20に保持されてい
る期間中を除いて信号CSIGNは論理“0”とな
つており、したがつてセレクタ80は信号
CSGNPの論理状態に無関係に演算回路70の出
力DAOL*(=「2」)を出力DRLL*として選択
出力する。セレクタ80の出力DRLL*(=
「2」)はレジスタ120,130に入力される。
このとき、第9図aに示されるように信号
CERSBだけが論理“1”となつており、クロツ
ク信号TRSLに同期してDRLL*(=「2」)がレ
ジスタ120に保持される。また、これと同時に
第2オペランドのデータの更に後続する桁の8ビ
ツト(左端の8ビツト「33」)がレジスタ20に
保持される。このレジスタ20の保持内容
(RSOP*=「33」)も前述した場合と同様に処理
され、演算回路70に入力される。演算回路70
はデータ「33」を処理し、数値「3」を前回と異
なりDAOU*として出力する。この出力DAOU
*(=「3」)はセレクタ90に入力される。セレ
クタ90は信号CDIGTの論理状態に応じて
DAOU*(=「3」)または16進数値「0」のい
ずれか一方を選択する。本実施例では、前述した
ように、信号R1CRYの論理状態に無関係に
CDIGT=“0”であるため、セレクタ90は出力
DAOU*(=「3」)を出力DRLU*(=「3」)と
して出力する。このセレクタ90の出力DRLU*
(=「3」)はレジスタ100,110に入力され
る。このとき、第9図aに示されるように信号
CERSAだけが論理“1”となつており、クロツ
ク信号TRSLに同期してDRLU*(=「3」)がレ
ジスタ100に保持される。このようにして、10
進数値−321を示すゾーン形式10進数(第6図ロ
参照)が、第6図イで示されるPACK命令の実行
により第6図ハに示されるようにパツク形式10進
数「321D」に効率的に変換される。
次に、第7図イのPACK命令の実行について第
9図bのタイミングチヤートを参照して説明す
る。このPACK命令は、第7図イから明らかなよ
うに制御ビツトDIGITが論理“1”の場合であ
り、第1オペランドで示されている領域中の最左
端の4ビツトに結果を格納してはならない(0を
格納する)ことを指定する点だけが前記実施例
(第6図イのPACK命令)と異なつている。第2
オペランドのデータ(本実施例では第7図ロに示
されているように第6図ロと同じである)は、前
記実施例と同様に右端(下位桁)から8ビツト
(1バイト)ずつ順にクロツク信号TSOPに同期
してレジスタ20に保持される(第9図b参
照)。第2オペランドのデータの最初の2バイト
「4A」、「32」については、前記実施例と全く同様
に処理が施される。そして、データ「32」の処理
によつて数値「3」(セレクタ80の出力DRLL
*)がレジスタ120に保持されるとともに、第
2オペランドのデータの最後の1バイト「33」が
レジスタ20に保持されたものとする。このレジ
スタ20の出力(RSOP*=「33」)は前記実施例
同様演算回路70にて処理が施され、DAOU*
=「3」としてセレクタ90に入力される。
ところで、カウンタ140は第1オペランドに
対応するデータを1バイト処理するごとに信号T
1REGによつてカウントダウンされる。本実施
例では、カウンタ140にはL1=1(第7図イ
参照)が初期設定されており、したがつてカウン
タ140の出力R1RG*は、レジスタ110,
130にそれぞれDRLU*=「1」、DRLL*=
「D」が保持された際に信号T1REGによつて0
となる。このとき、カウンタ140から論理
“1”のキヤリー出力R1CRYが出力される。前
述したように本実施例ではDIGIT=“1”すなわ
ちRDIGT=“1”であり、したがつてレジスタ1
10,130にDRLU*=「1」、DRLL*=
「D」が保持された以降、ゲート190のアンド
条件が成立し、信号CDIGTは論理“1”となつ
ている。
セレクタ90は信号CDIGTの論理状態に応じ
て演算回路70の出力DAOU*(=「3」)また
は16進数値「0」のいずれか一方を選択する。こ
の場合、上述の如くCDIGT=“1”のため、セレ
クタ90は数値「0」を選択し、出力DRLU*
(=「0」)として出力する。このセレクタ90の
出力DRLU*(=「0」)はレジスタ100,11
0に入力される。このとき、第9図aに示される
ように信号CERSAだけが論理“1”となつてお
り、クロツク信号TRSLに同期してDRLU*(=
「0」)がレジスタ100に保持される。このよう
にして、10進数値−321を示すゾーン形式10進数
(第7図ロ参照)が、第7図イで示されるPACK
命令の実行により第7図ハに示されるように偶数
桁のパツク形式10進数「021D」に効率的に変換
される。
次に、第8図イのPACK命令の実行について第
9図cのタイミングチヤートを参照して説明す
る。このPACK命令は、第8図イから明らかなよ
うに制御ビツトABSOLUTEが論理“1”の場合
であり、結果の絶対値化を指定する点だけが第6
図イのPACK命令と異なつている。第2オペラン
ドのデータ(本実施例では第8図ロに示されてい
るように第6図ロ、第7図ロと同じである)は、
前記実施例と同様に右端(下位桁)から8ビツト
(1バイト)ずつ順にクロツク信号TSOPに同期
してレジスタ20に保持される(第9図c参
照)。このようにしてレジスタ20に最初に保持
される第2オペランドの右端の1バイトのデータ
「4A」は、前記実施例と同様に符号/数値変換器
40によつて数値「1」に変換された後セレクタ
60を経て演算回路70に入力され、演算回路7
0からDAOU*=「1」として出力される。この
出力DAOU*=「1」は、第6図イのPACK命令
の場合と同様に(CDIGT=“0”のため)セレク
タ90によつて出力DRLU*として選択される。
一方、セレクタ80は信号CSIGN,CSGNPの論
理状態に応じてDAOL*、16進数値「C」、また
は16進数値「D」のいずれか一方を選択する。こ
の場合、前記実施例同様CSIGN=“1”である。
また、第8図イに示されるように制御ビツト
ABSOLUTE(ビツト32)が論理“1”すなわ
ちRABS=“1”であるため、ゲート200の出
力信号CSGNPは論理“1”となつている。この
ため、セレクタ80はCSIGN=“1”、CSGNP=
“1”に応じて16進数値「C」を出力DRLL*と
して選択出力する。これらセレクタ90,80の
各出力DRLU*(=「1」)、DRLL*(=「C」)
はそれぞれレジスタ100,110、レジスタ1
20,130に入力される。このとき(第2オペ
ランドのデータの右端の1バイトの処理時)、第
9図cに示されるように信号CERSC,CERSDだ
けが論理“1”となつており、クロツク信号
TRSLに同期してDRLU*(=「1」)がレジスタ
110に保持され、DRLL*(=「C」)がレジス
タ130に保持される。以下、第2オペランドの
データの後続する2バイト「32」、「33」が第6図
イのPACK命令の場合と同様に処理され、10進数
値−321示すゾーン形式10進数(第8図ロ参照)
が、第8図イで示されるPACK命令の実行によ
り、第8図ハに示されるように絶対値化されたパ
ツク形式10進数「321C」に効率的に変換され
る。
次に、第10図イのPACK命令の実行について
説明する。このPACK命令は制御ビツト
LEADING、SEPARATEがそれぞれ論理“0”、
“1”の場合であり、SEPARATE=“1”を除い
て第6図イのPACK命令と同じである。(ただし
L2=3である)。本実施例における第2オペラ
ンドのデータは値−321であり、第10図ロに示
されるように符号部が後置でき、前記実施例(第
6図ロ〜第8図ロ参照)と異なり分離型のゾーン
形式10進数である。なお、図中符号部「2D」は
負符号「−」であることを示すものである。
SEPARATE=“1”すなわちRSPRT=“1”
で、LEADING=“0”(RLEAD=“0”)の場
合、ナノプログラムの実行により第2オペランド
のデータの右端の1バイト(「2D」)を除くデー
タが下位桁から1バイトずつ順にクロツク信号
TSOPに同期してレジスタ20に保持される。す
なわち、本実施例では前記実施例と異なり、第2
オペランドのデータの右端の1バイト「2D」か
ら処理が開始されず、次のデータ「31」から処理
が開始され、以後のデータ「32」、「33」の順で処
理が行なわれる。このように本実施例では、前記
実施例(第6図イのPACK命令)と第2オペラン
ドのデータの処理対象となる最初のバイト位置が
異なつている。しかし、その処理対象バイト
「31」、「32」、「33」に対する取り扱いは、第6図
イのPACK命令における処理対象バイト「4A」、
「32」、「33」と同様であり、10進数値−321を示す
ゾーン形式10進数(第10図ロ参照)は、第10
図ハに示されるパック形式10進数「321D」に変
換される。これが、第6図イのPACK命令の実行
結果と一致することは明らかである。
最後に第11図イのPACK命令の実行について
第12図のタイミングチヤートを参照して説明す
る。このPACK命令は制御ビツトLEADING、
SEPARATEがそれぞれ論理“1”、“0”の場合
であり、LEADING=“1”を除いて第6図イの
PACK命令と同じである。本実施例における第2
オペランドのデータは値−321であり、第11図
ロに示されるように符号部が前置きで組み込み型
のゾーン形式10進数である。なお、図中符号部
「4C」は値が「3」で符号が「−」であることを
示すものである。この場合、前記実施例同様、第
11図イの命令語中のL1の内容、L2の内容、
制御ビツトの内容がそれぞれカウンタ140、カ
ウンタ150、レジスタ160に保持されている
状態で、第2オペランドのデータが、右端から1
バイトずつ順にクロツク信号TSOPによりレジス
タ20に保持される。まず右端の1バイト「31」
がレジスタ20に保持される。本実施例では、
LEADING=“1”すなわちRLEAD=“1”(符号
部が前置き)であるため、ナノプログラムの実行
により、信号CSGNAが前記実施例のように論理
“1”となることはない。このため、ゲート18
0の出力信号C2SELは、カウンタ150からキ
ヤリー出力R2CRYが出力されるまでの期間中
論理“0”となる。セレクタ60は、C2SEL=
“0”に応じてレジスタ20の保持内容すなわち
出力RSOP*(=「31」)を選択し、出力DRSB*
として演算回路70に出力する。演算回路70は
上記DRSB*(=「31」)を処理し、数値「1」を
DAOU*として出力する。このDAOU*(=
「1」)はセレクタ90に入力される。セレクタ9
0はCDIGT=“0”に応じてDAOU*(=「1」)
を出力DRLU*として選択出力する。一方、セレ
クタ80はCSIGN=“1”、CSGNP=“0”(第6
図イのPACK命令の場合と同様)に応じて16進数
値「D」をDRLL*として選択出力する。これら
セレクタ90,80の出力DRLU*(=「1」)、
DRLL*(=「D」)は前記実施例同様にそれぞれ
レジスタ110,130に保持される。また、こ
れと同時に、信号T1REG,T2REGがそれぞ
れカウンタ140,150に入力される。これに
よりカウンタ140,150はカウントダウンさ
れ、その出力R1RG*,R2RG*はそれぞれ
0、1となる。このときカウンタ140からキヤ
リー出力R1CRYが出力される。DIGIT=“0”
すなわちRDIGT=“0”であるために信号
CDIGTは論理“0”のままである。また、第2
オペランドのデータの次の1バイト「32」がレジ
スタ20に保持される。このレジスタ20の保持
内容(RSOP*=「32」はセレクタ60を経由し
て演算回路70に出力される。演算回路70は上
記データ「32」を処理し、数値「2」を出力
DAOL*として出力する。この出力DAOL*(=
「2」)はセレクタ80に入力される。セレクタ8
0はCSIGN=“0”CSGNP=“0”に応じて出力
DAOL*(=「2」)を出力DRLL*として出力す
る。このセレクタ80の出力DRLL*(=「2」)
は前記実施例同様にレジスタ120に保持され
る。また、これと同時に信号T2REGがカウン
タ150に入力される。この結果、カウンタ15
0はカウントダウンされ、その出力R2RG*が
0となるとともに、カウンタ150よりキヤリー
出力R2CRYが出力される。本実施例では
RLEAD=“1”であり、R2CRYの出力によつ
てゲート180の出力信号C2SELは論理“1”
となる。また、このとき第2オペランドのデータ
の最後の1バイト「4C」がレジスタ20に保持
される。このレジスタ20の保持内容(RSOP*
=「4C」)は符号/数値変換器40によつて数値
「3」に変換され、(C2SEL=“1”のために)
セレクタ60によつて演算回路70に選択出力さ
れる。演算回路70は上記数値「3」の数値変換
データを出力DAOU*として出力する。この出
力DAOU*(=「3」)はセレクタ90に入力さ
れる。セレクタ90はCDIGT、=“0”に応じて
出力DAOU*(=「3」)を出力DRLU*として出
力する。このセレクタの出力DRLU*(=「3」)
はレジスタ100に保持される。このようにし
て、符号部が前置き型で組み込み型の、10進数値
−321を示すゾーン形式10進数(第11図ロ参
照)が、第11図イで示されるようにPACK命令
の実行により、第11図ハに示されるようにパツ
ク形式10進数「321D」に効率的に変換される。
以上詳述したように本発明のデータ処理装置に
よれば、ソフトウエアによる煩雑な処理を行なう
ことなしに10進数値列を取り扱うパツク命令が効
率的に実行できる。したがつて本発明によれば言
語処理系の負担の軽減化が図れるとともに実行速
度の高速化が図れる。更に本発明によればプログ
ラムの実行効率が著しく向上し、記憶装置に占め
るプログラム領域を減少することができる。
【図面の簡単な説明】
第1図はSS型命令の一般的なフオーマツトを
示す図、第2図イ〜ニはゾーン形式10進数の4種
の表現形式を示す図、第3図はパツク形式10進数
の表現形式を示す図、第4図は本発明のデータ処
理装置の一実施例を示すブロツク図、第5図は本
発明で適用される新規なSS型命令のフオーマツ
トを示す図、第6図〜第8図、第10図、および
第11図の各イ〜ハはPACK命令の具体例を示す
もので、それぞれイは命令フオーマツト、ロは第
2オペランドデータ、ハは第1オペランドデータ
(PACK命令の実行結果)、第9図a〜cおよび第
12図はそれぞれ上記第6図〜第8図および第1
1図のPACK命令の実行動作を説明するためのタ
イミングチヤートである。 10,20,100,110,120,13
0,160……レジスタ、30,40……符号/
数値変換器、50,60,80,90……セレク
タ、70……演算回路、140,150……カウ
ンタ、170,180,190,200……ゲー
ト。

Claims (1)

  1. 【特許請求の範囲】 1 記憶装置から取り出されたユーザ命令の実行
    を行なうデータ処理装置において、上記ユーザ命
    令で指定される第1、第2オペランドがそれぞれ
    下位桁よりNビツト単位で順に保持される第1、
    第2レジスタと、この第1、第2レジスタの保持
    内容が符号部である場合にそれぞれ数値に変換す
    る第1、第2符号/数値変換器と、この第1符
    号/数値変換器の変換出力または上記第1レジス
    タの保持内容のいずれか一方を当該保持内容が符
    号部であるか否かに応じて選択出力する第1セレ
    クタと、上記第2符号/数値変換器の変換出力ま
    たは上記第2レジスタの保持内容のいずれか一方
    を当該保持内容が符号部であるか否かに応じて選
    択出力する第2セレクタと、これら第1、第2セ
    レクタの選択出力を入力とし、各種演算を行なう
    演算回路とこの演算回路の出力の下位N/2ビツ
    ト、負符号を示す16進数値、または正符号を示す
    16進数値のいずれか一方を、少なくとも結果の正
    負および結果が最下位桁となるものであるか否か
    に応じて選択出力する第3セレクタと、上記ユー
    ザ命令がSS型命令である場合に、第1オペラン
    ドで示されている領域中の上位N/2ビツトに結
    果を格納するか否かを指定する当該SS型命令中
    の制御ビツトDIGITが少なくとも保持される第3
    レジスタと、上記演算回路の出力の上位N/2ビ
    ツトまたは16進数値「0」のいずれか一方を、上
    記第3レジスタに保持されている制御ビツト
    DIGITの論理値および結果が第1オペランドで示
    されている領域中の上位N/2ビツトとなるもの
    であるか否かに応じて選択出力する第4セレクタ
    とを具備し、上記SS型命令がゾーン形式10進数
    をパツク形式10進数に変換するパツク命令である
    場合に、上記演算回路は上記第2セレクタの選択
    出力を処理するごとにその処理結果を上記第3ま
    たは第4セレクタに、第4セレクタ、第3セレク
    タの順で交互に切換え出力するように構成されて
    いることを特徴とするデータ処理装置。 2 上記第3レジスタにはゾーン形式10進数の符
    号部が前置きであるか後置きであるかを指定する
    上記SS型命令中の制御ビツトLEADINGが保持さ
    れることを特徴とする特許請求の範囲第1項記載
    のデータ処理装置。 3 上記第2レジスタの保持内容が符号部である
    か否かは、上記第3レジスタに保持されている制
    御ビツトLEADINGの論理値、および当該保持内
    容が第2オペランドの下位Nビツト、上位Nビツ
    ト、またはそれ以外のいずれであるかによつて決
    定されることを特徴とする特許請求の範囲第2項
    記載のデータ処理装置。 4 上記第3レジスタにはゾーン形式10進数が分
    離型であるか組み込み型であるかを指定する上記
    SS型命令中の制御ビツトSEPARATEが保持され
    ることを特徴とする特許請求の範囲第1項または
    第3項記載のデータ処理装置。 5 上記第3レジスタに保持されている制御ビツ
    トSEPARATEによつて分離型が指定されている
    場合、第2オペランドの上位Nビツトまたは下位
    Nビツトのいずれか一方が処理対象から外され、
    上記第2レジスタに保持されないことを特徴とす
    る特許請求の範囲第4項記載のデータ処理装置。 6 第2オペランドの上位Nビツトまたは下位N
    ビツトのいずれを処理対象から外すか否かは、上
    記制御ビツトLEADINGの論理値に応じて決定さ
    れることを特徴とする特許請求の範囲第5項記載
    のデータ処理装置。 7 上記第3レジスタには結果の絶対値化を指定
    する上記SS型命令中の制御ビツトABSOLUTEが
    保持されることを特徴とする特許請求の範囲第1
    項、第3項、第5項、または第6項記載のデータ
    処理装置。 8 上記第3セレクタは結果が最下位桁となるも
    のである場合に、結果の正負または上記第3レジ
    スタに保持されている制御ビツトABSOLUTEの
    論理値に応じて負符号を示す16進数値または正符
    号を示す16進数値を選択し、結果が最下位桁とな
    らない場合に上記演算回路の出力の下位N/2ビ
    ツトを選択することを特徴とする特許請求の範囲
    第7項記載のデータ処理装置。
JP56080363A 1981-05-27 1981-05-27 Data processor Granted JPS57196355A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56080363A JPS57196355A (en) 1981-05-27 1981-05-27 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56080363A JPS57196355A (en) 1981-05-27 1981-05-27 Data processor

Publications (2)

Publication Number Publication Date
JPS57196355A JPS57196355A (en) 1982-12-02
JPS6138493B2 true JPS6138493B2 (ja) 1986-08-29

Family

ID=13716170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56080363A Granted JPS57196355A (en) 1981-05-27 1981-05-27 Data processor

Country Status (1)

Country Link
JP (1) JPS57196355A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4815021A (en) * 1986-01-30 1989-03-21 Star Technologies, Inc. Multifunction arithmetic logic unit circuit
JPH0766340B2 (ja) * 1987-12-25 1995-07-19 松下電器産業株式会社 演算装置

Also Published As

Publication number Publication date
JPS57196355A (en) 1982-12-02

Similar Documents

Publication Publication Date Title
US5132898A (en) System for processing data having different formats
US4038643A (en) Microprogramming control system
EP0149213B1 (en) Vector processor
EP0823085B1 (en) Method and apparatus for improved branch prediction accuracy in a superscaler microprocessor
JPS6097435A (ja) 演算処理装置
US5669012A (en) Data processor and control circuit for inserting/extracting data to/from an optional byte position of a register
JPH1049369A (ja) データ処理装置
JPH04260927A (ja) データ処理装置
JP2551167B2 (ja) マイクロコンピュータ
JPH034936B2 (ja)
JPS6138493B2 (ja)
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
US3735364A (en) Data handling system for handling data in compliance with normal and special descriptors
US6240540B1 (en) Cyclic redundancy check in a computer system
US4644489A (en) Multi-format binary coded decimal processor with selective output formatting
JPH04260926A (ja) ビット検索回路及びそれを備えたデータ処理装置
JP3901670B2 (ja) データ処理装置
JP3182497B2 (ja) 演算処理装置および命令変換装置
JP3055558B2 (ja) nビット演算装置
SU894715A1 (ru) Микропроцессор
JPH04260928A (ja) データ処理装置
GB1593136A (en) Data processing
JP2564318B2 (ja) 通信処理装置
JPS642970B2 (ja)
JPH0522935B2 (ja)