JPH05324313A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH05324313A
JPH05324313A JP4134877A JP13487792A JPH05324313A JP H05324313 A JPH05324313 A JP H05324313A JP 4134877 A JP4134877 A JP 4134877A JP 13487792 A JP13487792 A JP 13487792A JP H05324313 A JPH05324313 A JP H05324313A
Authority
JP
Japan
Prior art keywords
data
decimal
fixed
binary
point
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.)
Pending
Application number
JP4134877A
Other languages
English (en)
Inventor
Nobuhito Miyauchi
信仁 宮内
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP4134877A priority Critical patent/JPH05324313A/ja
Publication of JPH05324313A publication Critical patent/JPH05324313A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 10進数演算命令を実行可能なデータ処理装
置において、多バイトに及ぶ可変長の10進数データに
対するメモリアクセスやアラインメントやデータ形式の
変換のコストをできるだけ減らす。 【構成】 10進数データを固定小数点数の2進数デー
タに変換する10進2進変換部と、固定小数点数の2進
数データをデータ形式を識別するタグ部を持った擬似的
な固定小数点数の2進数データに変換する擬似的2進変
換部と、データ形式を判別するタグ判別部と、データを
アンパック形式の10進数データに変換して出力制御装
置に出力する出力用アンパック変換部を備え、メモリ上
の10進数データを可能なかぎり擬似的な固定小数点数
の2進数データに変換して、10進数演算処理をこの擬
似的なデータから固定小数点数の2進データを抽出して
演算処理が行えるようにしたデータ処理装置を得る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、プログラミング言語
COBOLなどによる事務処理用計算機によく使用され
る10進数演算機械命令の動作が可能なデータ処理装置
に関するものである。
【0002】
【従来の技術】データ処理装置が処理の対象としている
情報は極めて多岐にわたり、整数、実数、複素数、ベク
トル、行列、グラフ、トリー、図形、イメージなどが扱
われている。このような情報は全て2進数のデータとし
て表現されるが、一般によく使用される種類の情報につ
いては特定の表現形式を定義し、その表現形式について
演算や変換の命令が用意されている。データの表現方法
としては、入出力装置と中央処理装置との間でデータの
やりとりに使用される論理(文字)データ、中央処理装
置にて比較的高速な演算処理の対象となる固定小数点数
データ、浮動小数点数データが一般的なものである。
【0003】10進数のデータ形式と演算は特にCOB
OL言語などのプログラミング言語を意識して設計され
ており、10進数データは通常の固定小数点数や浮動小
数点数の2進数データとお互いに変換される。10進数
データは、アンパック形式(ゾーン形式)またはパック
形式のいずれかで表現され、どちらも長さは可変であ
る。アンパック形式の10進数データは、アルファベッ
トの文字または特殊文字のようなより大きな文字セット
を表すコードデータの一部分に相当し、人間が読む形の
数値データを入力、編集、出力するのに適している。仮
にアンパック形式の10進数データに直接働きかける1
0進数演算の命令がない場合、このアンパック形式はま
ずパック形式に変換する必要がある。この代表的な例と
して、IBM System/370のアーキテクチャ
がある。
【0004】このように、10進数データの長さは、数
バイトから200バイト以上に及ぶものまであり、固定
小数点数データや浮動小数点数データの長さが4、8バ
イト程度で済むのに対し、メモリアクセスのコストは増
えるし、メモリ使用領域の消費も増える。同時に10進
数データそのものの演算処理のコストも当然増えてく
る。したがって、2進数データとしての固定小数点数や
浮動小数点数だけでの処理で済ませることができないか
ぎり、10進数データ演算処理のコストを極力抑えるよ
うに従来から様々な努力が行われてきた。
【0005】例えば、公開特許公報平2−128223
号の演算処理装置もその1例である。この特許では、1
0進数演算命令のそれぞれで使用するオペランドデータ
を演算処理装置内に蓄えておき、10進数演算命令が連
続しているときにこの蓄えてあるオペランドデータが使
用可能かどうかをチェックし、使用可能ならばメモリか
らリードせずに蓄えてあるものを利用するというもので
ある。これによると、演算処理時間で大きなウェイトを
占めるメモリリード時間、データのアラインメント時
間、データ形式変換(パック形式←→アンパック形式)
時間を節約することができる。
【0006】一方では、ソフトウェアによる処理系の都
合で、不必要なデータ形式変換(パック形式←→アンパ
ック形式)操作が実際に行われているという傾向もあ
る。つまり、COBOL等の高級言語の処理系では、プ
ログラムのソース上には10進数データがアンパック形
式で書かれているので、容易さの観点からプログラム実
行時においてもそのままメモリ上にアンパック形式で保
持しておくことが多い。そして、実際にこのアンパック
形式のデータに対して演算を行う時点でパック形式に変
換しその結果をアンパック形式に変換して格納するとい
う安易な手法がとられている。
【0007】本来、計算機がデータそのものについて演
算処理を行うときには、2進数データが存在するだけで
必要な処理が可能であり、10進数データは入出力時に
おいて初めて必要になる。データの表現形式を計算機の
処理のコストの軽い順に並べると、2進数データ、パッ
ク形式の10進数データ、アンパック形式の10進数デ
ータとなる。これに対して、多くの局面でソースコード
上からそのまま得られるアンパック形式の10進数デー
タがそのままメモリ上に保持され、演算処理もパック形
式に変換して10進数演算命令によって行われているの
が現状である。
【0008】
【発明が解決しようとする課題】従来の10進数演算を
行う計算機では2進数データに比べて冗長な10進数デ
ータをメモリ上に文字データに近いアンパック形式のま
ま保持しておくことが多く、その10進数データの演算
処理にあたってはパック形式に変換されて行われ、結果
の格納もアンパック形式に戻されることが多かった。つ
まり、2進数演算処理よりもコストの大きい10進数演
算処理が多く行われ、10進数演算のたびにデータ形式
変換処理が行われていた。これらの10進数データに関
する命令処理により2進数データだけを取り扱う計算機
に比べて大幅に性能が劣化する。
【0009】この発明は上記のような問題点を解消する
ためになされたもので、10進数データの演算や変換の
命令処理の大きなコストが中央処理装置の負担となるの
を避け、計算機の全体実行性能に与えるオーバヘッドを
軽減するデータ処理装置を得ることを目的としている。
【0010】
【課題を解決するための手段】請求の範囲第1項の発明
に係るデータ処理装置では、10進数演算命令が実行可
能なデータ処理装置において、中央処理装置の命令実行
時に、アンパック形式とパック形式の10進数データを
固定小数点数の2進数データに変換する10進2進変換
部と、固定小数点数の2進数データを入力とし、データ
形式を識別するタグ部を固定小数点数の2進数データに
付加した擬似的な固定小数点数の2進数データを生成す
る擬似的2進変換部と、入力されたデータ形式を判別す
るタグ判別部と、主記憶制御装置から出力制御装置への
データ出力時に、データをアンパック形式の10進数デ
ータに変換し、出力制御装置への伝達系に出力する出力
用アンパック変換部を備え、アンパック形式の10進数
データをパック形式の10進数データに変換する命令の
実行の際、入力として読み込んだアンパック形式の10
進数データを擬似的な固定小数点数の2進数データに変
換し、出力位置のメモリ上へ格納し、入力として読み込
んだ時点で、既に擬似的な固定小数点数の2進数データ
が入力位置のメモリ上に存在する場合は、そのデータを
出力位置のメモリに格納し、10進数演算命令の実行の
際に、入力にパック形式の10進数データがきた場合は
擬似的な固定小数点数の2進数データに変換して演算
し、結果を擬似的な固定小数点数の2進数データとして
格納し、パック形式の10進数データをアンパック形式
の10進数データに変換する命令の実行の際は、入力さ
れたデータがパック形式の10進数データ、または擬似
的な2進数データの場合はそのまま出力位置のメモリに
格納するようにしたものである。
【0011】請求の範囲第2項の発明に係るデータ処理
装置では、さらにパック形式の10進数データから固定
小数点数の2進数データに変換する命令の実行の際は、
入力データとしてパック形式の10進数データ、または
擬似的な固定小数点数の2進数データがきた場合は固定
小数点数の2進数データに変換して出力位置のメモリに
格納し、固定小数点数の2進数データからパック形式の
10進数データに変換する命令の実行の際は、固定小数
点数の2進数データから擬似的な固定小数点数の2進数
データに変換して出力位置のメモリに格納するようにし
たものである。
【0012】請求の範囲第3項の発明に係るデータ処理
装置では、10進数演算命令が実行可能なデータ処理装
置において、中央処理装置の命令実行時に、アンパック
形式とパック形式の10進数データを固定小数点数の2
進数データに変換する10進2進変換部と、固定小数点
数の2進数データを入力とし、データ形式を識別するタ
グ部を固定小数点数の2進数データに付加した擬似的な
固定小数点数の2進数データを生成する擬似的2進変換
部と、入力されたデータ形式を判別するタグ判別部と、
主記憶制御装置から出力制御装置へのデータ出力時に、
データをアンパック形式の10進数データに変換し、出
力制御装置への伝達系に出力する出力用アンパック変換
部を備え、コンパイラにより、パック形式とアンパック
形式の10進数データを相互に変換する変換命令には、
アセンブラコードを出力せず、前記変換命令に後続する
命令に対しては、前記変換命令に対応する入力位置のデ
ータを参照するようにアセンブラコードを出力し、10
進数演算命令の実行に関して、入力データにアンパック
形式の10進数、またはパック形式の10進数データが
きた場合は、擬似的な固定小数点数の2進数に変換して
演算し、結果を擬似的な固定小数点数の2進数データと
して格納するようにしたものである。
【0013】請求の範囲第4項の発明に係るデータ処理
装置では、10進数演算命令が実行可能なデータ処理装
置において、中央処理装置の命令実行時に、アンパック
形式とパック形式の10進数データを固定小数点数の2
進数データに変換する10進2進変換部と、固定小数点
数の2進数データを入力とし、データ形式を識別するタ
グ部を固定小数点数の2進数データに付加した擬似的な
固定小数点数の2進数データを生成する擬似的2進変換
部と、入力されたデータ形式を判別するタグ判別部と、
主記憶制御装置から出力制御装置へのデータ出力時に、
そのデータをアンパック形式の10進数データに変換す
る作業を中央処理装置とは独立して行う出力用アンパッ
ク変換部を備えるようにしたものである。
【0014】
【作用】この発明に係るデータ処理装置は、アンパック
形式からパック形式の10進数データの変換命令では擬
似的な固定小数点数の2進数データに変換し、10進数
演算命令の実行は、パック形式の10進数データを擬似
的な固定小数点数の2進数データに変換して演算し、結
果を擬似的な固定小数点数の2進数データとして格納
し、パック形式からアンパック形式の10進数データの
変換命令では、何も行わず出力位置のメモリに格納する
ので、10進数データの演算命令を擬似的な固定小数点
数の2進数データに変換して行う、出力の際は出力用ア
ンパック変換装置で擬似的な固定小数点数の2進数デー
タやパック形式の10進数データをアンパック形式の1
0進数データに変換して出力制御装置に出力する。
【0015】また、パック形式の10進数データから固
定小数点数の2進数データへの変換命令には固定小数点
数の2進数データに変換し、固定小数点数の2進数デー
タからパック形式の10進数データへの変換命令では擬
似的な固定小数点数の2進数データに変換して出力位置
のメモリに格納するので、さらに10進数データの処理
を2進数データに置き換えて行う。
【0016】また、コンパイラにより、パック形式とア
ンパック形式の10進数データを相互に変換する変換命
令には、アセンブラコードを出力せず、前記変換命令に
後続する命令に対しては、前記変換命令に対応する入力
位置のデータを参照するようにアセンブラコードを出力
し、10進数演算命令の実行に関しては、入力に10進
数データがきた場合は擬似的な固定小数点数の2進数デ
ータに変換して演算し、結果を擬似的な固定小数点数の
2進数データに変換して格納するので、パック形式とア
ンパック形式の10進数データの変換を行う命令語をア
センブラコード上から実質的に取り去り、コンパイラに
よるアセンブラコードの最適化処理となる。
【0017】さらに、主記憶制御装置から出力制御装置
へのデータ出力時に、そのデータをアンパック形式の1
0進数データに変換する作業を中央処理装置とは独立し
て行うので、中央処理装置の性能を上げることができ
る。
【0018】
【実施例】実施例1.以下、この発明の一実施例を図に
ついて説明する。以下で実現するデータ処理装置は、I
BMのSystem/370のアーキテクチャに基づい
ている。図1はこの発明によるデータ処理装置の一実施
例の概略構成を示すブロック図である。図2は従来のデ
ータ処理装置の概略構成を示すブロック図である。図に
おいて、1A、1BはSystem/370アーキテク
チャで定義される一般命令、浮動小数点命令、制御命令
などの中枢処理を行う中央処理装置である。中央処理装
置1Aは中央処理装置1Bのように算術論理演算装置
(ALU)に付加される10進数演算を直接行うための
機能は持たない。この発明の中央処理装置1Aは2進数
データの演算処理機能を中心にもつ算術論理演算装置、
ワークレジスタや制御レジスタなどのレジスタ群、機械
命令各種を実行するために各部を制御する制御装置など
から構成される。5はタグ判別装置であり、入力される
データの最初の1バイトのデータを取り込みそのビット
パターンにより、入力データがパック形式の10進数デ
ータか、アンパック形式の10進数データか、後述する
擬似的な固定小数点数の2進数データかを判定する機能
を持つ。6は固定小数点数の2進数データを入力とし、
これを2進数データの長さを調べて、データの長さを定
義するタグ部を先頭に置き擬似的な固定小数点数の2進
データに変換する擬似的2進変換装置である。7はアン
パック形式やパック形式の10進数データを固定小数点
数の2進数データに変換する10進2進変換装置であ
る。中央処理装置1Aには10進数データのかわりに、
擬似的な2進数データで効率よく演算処理を行う上記の
新たな機能を制御する装置が組込まれている。2は主記
憶制御装置であり、従来のものと同様に主記憶3を高速
にアクセスできるようにキャッシュメモリやTLBなど
を内蔵し、中央処理装置1A、1Bがデータの読み書き
を効率よく行うことを可能にする。4は入出力制御装置
であり、主記憶制御装置2と入出力データのやりとりが
行えるようになっている。8は出力用アンパック変換装
置であり、擬似的な固定小数点数の2進データと固定小
数点数の2進データとパック形式の10進数データを、
主記憶制御装置2から入出力制御装置4に出力する際
に、アンパック形式の10進数データに変換する機能を
有し、主記憶制御装置2に組込まれている。
【0019】図3(a)は固定小数点数の2進データと
パック形式及びアンパック形式の10進数のデータフォ
ーマットを示す図である。図3(b)は10進数データ
で使用される4ビットのコードの10進数の数字と符号
への対応を示す図である。図において21は固定小数点
数の2進データフォーマット、22はパック形式の10
進数データフォーマット、23はアンパック形式の10
進数データフォーマット、24は4ビットのデータ部、
25、26は4ビットの符号部である。図4は固定小数
点数の2進数と擬似的な固定小数点数の2進数データの
フォーマットを示す図である。本発明で行うとしている
主要ポイントは10進数データを入力とする命令で擬似
的な固定小数点数の2進数データをかわりに入力させよ
うとするものである。したがって、擬似的な2進数デー
タはパック形式及びアンパック形式の10進数データと
すぐに区別ができる必要がある。ここで、図3をみると
わかるように、パック形式もアンパック形式も最初の1
バイトを構成する前半及び後半の各4ビットは、同時に
それぞれ1010以上になることはない。そこで、擬似
的な2進数のフォーマットとして、最初の1バイトをデ
ータ形式の種別を定義するタグ領域とする図4に示すよ
うなものを本実施例では採用する。32ビット計算機が
もっとも効率よくアクセスしやすいデータの大きさは4
バイトであるから、高速にアクセスできる基本的な固定
小数点数の2進数データとしては24ビット分を使用す
ることができる。これから、ほとんどの数値データは
4、8バイト程度の領域で使用できることになる。
【0020】また、System/370アーキテクチ
ャにおけるパック形式の10進数データのサポートする
数値の範囲は、データの最大長が16バイトなので、数
字31桁及び符号となる。これをカバーする固定小数点
数データのビット長としては、107ビットであり14
バイトで十分となる。また、擬似的な固定小数点数の2
進数データのタグの種類としては、36通り選択できる
のでこれから14種類の擬似的な固定小数点数の2進数
データを定義できる。
【0021】次に10進数データの演算処理がどのよう
になされるのか順を追って述べる。作成されたプログラ
ムの実行可能なモジュールがメモリ上に置かれている場
合に、数値データも基本的に文字データなので、アンパ
ック形式の10進データとなっていることが多く、パッ
ク形式での演算処理後にまたアンパック形式として戻さ
れる傾向がある。
【0022】まず、アンパック形式の10進数データを
パック形式の10進数データに変換する命令についての
処理は図5のようになる。10進データが演算の対象と
される前に、アンパック形式からパック形式に変換する
命令(System/370の命令ではPACK命令)
の実行時に、入力がアンパック形式の10進数データで
あった場合、この10進数データを10進2進変換装置
7が固定小数点数の2進データに変換し、つづいて、擬
似的2進変換装置がその2進データの長さを調べ、タグ
部をその2進数データの前に付加して、擬似的な固定小
数点数の2進数データに変換して、入力及び出力の各デ
ータ位置に格納する。ここで重要な点は擬似的な固定小
数点数の2進数データは最小データが2バイトとなるの
で、入力データが1バイト分しかない場合は隣接領域を
破壊してしまうので擬似的な2進数データで上書きして
はいけないということである。ただし、後の演算処理で
も0〜9の4ビットの数字と符号だけのデータなので、
1バイト長のアンパック形式は上書きを行われない。こ
の場合再アクセスの度に擬似的な固定小数点数の2進デ
ータへの変換が伴うが、1バイトのアンパック形式の1
0進数データは符号と4ビットの固定小数点数の2進数
データなので、他のデータ長の処理と比べて以後取り扱
うコストは大きくない。この変換命令で結果として得ら
れる擬似的な2進数データは大半は4バイト程度である
ことが予測されるので、キャッシュメモリ上に置かれ後
続の演算命令でレジスタ上のデータと同様に高速なアク
セスを行えると期待できる。
【0023】同様にアンパック形式からパック形式に変
換する命令の実行時に、入力が既に擬似的な固定小数点
数の2進数データであった場合、出力位置のデータ位置
にそのままの擬似的な固定小数点数の2進数データを格
納する。
【0024】次に上記の変換命令によって得られた擬似
的な固定小数点数の2進数データに対して10進数の演
算命令を実行することになるが、もし、万が一入力にパ
ック形式の10進数データがきたら、前処理として擬似
的な固定小数点数の2進数データに変換して演算処理を
行う。ここで重要な点はパック形式の10進数データで
は、1〜4と1/2のバイトの長さのものは、上書きで
きないことである。同じデータの長さで表現できる整数
の範囲は図6に示すように、5バイト以上でないと、擬
似的な固定小数点数の2進数データがカバーできないの
で、この場合は入力データの位置に上書きはしない。通
常の場合は、入出力オペランドを擬似的な固定小数点数
の2進数データとして演算処理を行う。大抵は32ビッ
トの固定小数点数の2進数データとして通常の算術論理
演算装置がマスク、シフト処理を付加する程度でかなり
そのまま使用できる。メモリ上の出力位置には当然擬似
的な固定小数点数の2進数データとして演算結果を格納
する。
【0025】またパック形式の10進数データをアンパ
ック形式の10進数データに変換する命令(Syste
m/370の命令ではUNPACK命令)については、
出力時とも限らないのであえてパック形式の10進数デ
ータをアンパック形式の10進数データに変換するよう
なことはしない。また、入力として擬似的な固定小数点
数の2進数データがきた場合もそのままにしておく。し
たがって、この変換命令の実行は入力されたデータをそ
のまま出力位置に格納することになる。この動作は図7
に示すようなものとなる。実際のアンパック形式への変
換は入出力制御装置4にデータが送り出されるときに、
出力用アンパック変換装置8で行われる。
【0026】次に、パック形式の10進数データを固定
小数点数の2進数データに変換する命令(System
/370の命令ではCVB命令)については、特に頻繁
に使用される傾向はないが、入力としてパック形式の1
0進数データがきても、擬似的な固定小数点数の2進数
データがきても、32ビットの固定小数点数の2進数デ
ータに変換して、出力位置に格納する。入力が擬似的な
固定小数点数の2進数データであった場合、そのデータ
フォーマットからデータをマスクしシフトするだけで3
2ビットの固定小数点数の2進数データが得られる。こ
の動作は図7に示すようなものとなる。
【0027】逆に、固定小数点数の2進数データをパッ
ク形式の10進数データに変換する命令(System
/370の命令ではCVD命令)についても、同様に頻
繁に使用されることはないが、上記と逆の変換となる固
定小数点数の2進数データから擬似的な固定小数点数の
2進数データへの変換を行い、出力位置に格納する。こ
ちらも、やはり同様に入力の固定小数点数の2進数デー
タを下位側にシフトして空いた上位側に論理演算のOR
で擬似的な固定小数点数の2進数データが得られる。
【0028】ただし、この擬似的な固定小数点数の2進
数データの生成方法には、いくつかの方式が考えられ
る。もっとも簡単な方式は、完成した固定小数点数の2
進数データの4バイト分のデータ部にそのままデータ部
の4バイト長を示す擬似的な固定小数点数の2進数デー
タのタグ部を付加するものである。さらに、完成した擬
似的な固定小数点数の2進数データをメモリアクセスの
効率のよい4バイト長にするために、4バイトの固定小
数点数の上位1バイトつまりタグ部に相当する部分が全
て0になっているかどうかを調べて、全て0になってい
ない場合は上記のように処理し、全て0になっている場
合は上位1バイトにデータ部の3バイト長を示す擬似的
な固定小数点数の2進数データのタグ部を埋込み全体で
4バイト長の擬似的な固定小数点数の2進数データを完
成するというような方式も考えられる。この方式を図9
に示す。
【0029】上記のアンパック形式及びパック形式の1
0進数の演算処理は擬似的な固定小数点数の2進数デー
タとして通常出力によって、出力する。この出力処理の
段階で初めてアンパック形式の10進数データは実質的
に必要となる。この出力処理で中央処理装置1Aが入出
力制御装置4へデータを送出した後で、その出力データ
そのものについて中央処理装置1Aがアクセスすること
は通常はない。よって、実質的なアンパック形式への変
換は中央処理装置と独立して行うことができ、アンパッ
ク形式のデータは入出力装置に近いところで生成されれ
ばよいので、入出力制御装置4へデータを送出する主記
憶制御装置2の送出口にこのアンパック形式への変換装
置を設ければよい。出力しようとするメモリ上のデータ
が既にアンパック形式の10進数データであったなら、
そのまま送出すればよいし、擬似的な固定小数点数の2
進数データであったなら、このアンパック形式への変換
装置により変換しながら、入出力制御装置4へ送出す
る。この動作を図10に示す。
【0030】実施例2.これまで述べてきた実施例は、
従来の計算機のコンパイラやリンカ等で生成された実行
形式のロードモジュールをそのまま実行できるものであ
った。この新しい擬似的な固定小数点数の2進数の導入
によって、わざわざアセンブラコードで明示的にアンパ
ック形式とパック形式との間の変換を示す必要はなくな
った。そこで、本実施例のデータ処理装置で作成された
プログラムについては、コンパイラであえてこのアンパ
ック形式の10進数データとパック形式の10進数デー
タとの間の変換命令を出力することはせずに、この変換
命令の出力データを参照する後続命令からは、変換後の
データ位置、すなわち、出力の位置には何もデータが置
かれていないので変換命令の入力データを参照するよう
に変更したアセンブラコードを出力するようにする。こ
のようにすると、10進数演算命令では、アンパック形
式の10進数データも入力としてくる場合もあるが、こ
のときも演算の前処理として擬似的な固定小数点数の2
進数データに変換する。以上のようにすることで、アン
パック形式の10進数データとパック形式の10進数デ
ータとの間での変換命令は全て削除でき、最適化された
アセンブラコードを得ることができる。この新旧の両実
行形式のロードモジュールを本実施例は実行することが
できる。具体的なアセンブラコード生成の最適化処理の
例を図11に示す。
【0031】
【発明の効果】以上のようにこの発明によれば、通常の
2進数データの演算よりコストの大きい10進数データ
の演算を擬似的な2進数データを導入することによっ
て、2進数データの演算にかなり近いコストで演算処理
を行うことができ、32ビット長より長い場合が多い可
変長の10進数データを処理することにより生じる不要
なメモリアクセス、アラインメント、データ形式の変換
処理をできるだけ避けることが可能であり、中央処理装
置の全体の性能を向上させる。
【0032】また、10進数演算処理の結果をアンパッ
ク形式の10進数データに戻すことを出力時点まで可能
なかぎり遅らせ、その変換処理も中央処理装置とは異な
る処理装置で行うことで、さらに中央処理装置の性能を
上げることができる。
【0033】さらには、コンパイラの工夫も加味するこ
とで、アセンブラコードの最適化もでき、コード量の削
減となるので、不要な命令のためのメモリアクセスをも
減らすことができる。
【図面の簡単な説明】
【図1】この発明の一実施例による10進数データに関
する演算や変換の命令の処理の実行が可能なデータ処理
装置の概略構成を示すブロック図である。
【図2】従来の10進数データに関する演算や変換の命
令の処理の実行が可能なデータ処理装置の概略構成を示
すブロック図である。
【図3】2進数データとパック形式及びアンパック形式
(ゾーン形式)の10進数データのフォーマットを示す
図である。
【図4】擬似的な固定小数点数の2進数データのフォー
マットを示す図である。
【図5】アンパック形式の10進数データをパック形式
の10進数データに変換する命令での処理について示す
図である。
【図6】パック形式の10進数データと擬似的な固定小
数点数の2進数データのバイト長さと表現できる整数の
範囲を示す図である。
【図7】パック形式の10進数データをアンパック形式
の10進数データに変換する命令での処理について示す
図である。
【図8】パック形式の10進数データを固定小数点数の
2進数データに変換する命令での処理について示す図で
ある。
【図9】固定小数点数の2進数データをパック形式の1
0進数データに変換する命令での処理について示す図で
ある。
【図10】メモリ上のデータを出力装置へ出力する命令
での処理について示す図である。
【図11】コンパイラによる最適なアセンブラコードを
生成する最適化処理について示す図である。
【符号の説明】
1A、1B 中央処理装置 2 主記憶制御装置 3 主記憶 4 入出力制御装置 5 タグ判別装置 6 擬似的2進変換装置 7 10進2進変換装置 8 出力用アンパック変換装置 10 キャッシュデータバス 11 メモリデータバス 12 入出力データバス

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 10進数演算命令が実行可能なデータ処
    理装置において、中央処理装置の命令実行時に、アンパ
    ック形式とパック形式の10進数データを固定小数点数
    の2進数データに変換する10進2進変換部と、固定小
    数点数の2進数データを入力とし、データ形式を識別す
    るタグ部を固定小数点数の2進数データに付加した擬似
    的な固定小数点数の2進数データを生成する擬似的2進
    変換部と、入力されたデータ形式を判別するタグ判別部
    と、主記憶制御装置から出力制御装置へのデータ出力時
    に、データをアンパック形式の10進数データに変換
    し、出力制御装置への伝達系に出力する出力用アンパッ
    ク変換部を備え、 アンパック形式の10進数データをパック形式の10進
    数データに変換する命令の実行の際は、入力として読み
    込んだアンパック形式の10進数データを擬似的な固定
    小数点数の2進数データに変換し出力位置のメモリ上へ
    格納し、入力として読み込んだ時点で、既に擬似的な固
    定小数点数の2進数データが入力位置のメモリ上に存在
    する場合は、そのデータを出力位置のメモリに格納し、 10進数演算命令の実行の際に、入力にパック形式の1
    0進数データがきた場合は擬似的な固定小数点数の2進
    数データに変換して演算し、結果を擬似的な固定小数点
    数の2進数データとして格納し、 パック形式の10進数データをアンパック形式の10進
    数データに変換する命令の実行の際は、入力されたデー
    タがパック形式の10進数データ、または擬似的な2進
    数データの場合はそのまま出力位置のメモリに格納する
    ことを特徴とするデータ処理装置。
  2. 【請求項2】 パック形式の10進数データから固定小
    数点数の2進数データに変換する命令の実行の際は、入
    力データとしてパック形式の10進数データ、または擬
    似的な固定小数点数の2進数データがきた場合は固定小
    数点数の2進数データに変換して出力位置のメモリに格
    納し、 固定小数点数の2進数データからパック形式の10進数
    データに変換する命令の実行の際は、固定小数点数の2
    進数データから擬似的な固定小数点数の2進数データに
    変換して出力位置のメモリに格納することを特徴とする
    請求項第1項に記載のデータ処理装置。
  3. 【請求項3】 10進数演算命令が実行可能なデータ処
    理装置において、中央処理装置の命令実行時に、アンパ
    ック形式とパック形式の10進数データを固定小数点数
    の2進数データに変換する10進2進変換部と、固定小
    数点数の2進数データを入力とし、データ形式を識別す
    るタグ部を固定小数点数の2進数データに付加した擬似
    的な固定小数点数の2進数データを生成する擬似的2進
    変換部と、入力されたデータ形式を判別するタグ判別部
    と、主記憶制御装置から出力制御装置へのデータ出力時
    に、データをアンパック形式の10進数データに変換
    し、出力制御装置への伝達系に出力する出力用アンパッ
    ク変換部を備え、 コンパイラにより、パック形式とアンパック形式の10
    進数データを相互に変換する変換命令には、アセンブラ
    コードを出力せず、前記変換命令に後続する命令に対し
    ては、前記変換命令に対応する入力位置のデータを参照
    するようにアセンブラコードを出力し、 10進数演算命令の実行に関して、入力データにアンパ
    ック形式の10進数、またはパック形式の10進数デー
    タがきた場合は、擬似的な固定小数点数の2進数データ
    に変換して演算し、結果を擬似的な固定小数点数の2進
    数データとして格納することを特徴とするデータ処理装
    置。
  4. 【請求項4】 10進数演算命令が実行可能なデータ処
    理装置において、中央処理装置の命令実行時に、アンパ
    ック形式とパック形式の10進数データを固定小数点数
    の2進数データに変換する10進2進変換部と、固定小
    数点数の2進数データを入力とし、データ形式を識別す
    るタグ部を固定小数点数の2進数データに付加した擬似
    的な固定小数点数の2進数データを生成する擬似的2進
    変換部と、入力されたデータ形式を判別するタグ判別部
    と、主記憶制御装置から出力制御装置へのデータ出力時
    に、そのデータをアンパック形式の10進数データに変
    換する作業を中央処理装置とは独立して行う出力用アン
    パック変換部を備えたことを特徴とするデータ処理装
    置。
JP4134877A 1992-05-27 1992-05-27 データ処理装置 Pending JPH05324313A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4134877A JPH05324313A (ja) 1992-05-27 1992-05-27 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4134877A JPH05324313A (ja) 1992-05-27 1992-05-27 データ処理装置

Publications (1)

Publication Number Publication Date
JPH05324313A true JPH05324313A (ja) 1993-12-07

Family

ID=15138585

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4134877A Pending JPH05324313A (ja) 1992-05-27 1992-05-27 データ処理装置

Country Status (1)

Country Link
JP (1) JPH05324313A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6460135B1 (en) 1998-10-02 2002-10-01 Nec Corporation Data type conversion based on comparison of type information of registers and execution result
US20140317608A1 (en) * 2013-04-17 2014-10-23 International Business Machines Corporation Method for optimizing binary code in language having access to binary coded decimal variable, and computer and computer program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6460135B1 (en) 1998-10-02 2002-10-01 Nec Corporation Data type conversion based on comparison of type information of registers and execution result
US20140317608A1 (en) * 2013-04-17 2014-10-23 International Business Machines Corporation Method for optimizing binary code in language having access to binary coded decimal variable, and computer and computer program
US9280328B2 (en) 2013-04-17 2016-03-08 International Business Machines Corporation Method for optimizing binary code in language having access to binary coded decimal variable, and computer and computer program
US20160154635A1 (en) * 2013-04-17 2016-06-02 International Business Machines Corporation Method for optimizing binary code in language having access to binary coded decimal variable, and computer and computer program
US9858054B2 (en) * 2013-04-17 2018-01-02 International Business Machines Corporation Method for optimizing binary code in language having access to binary coded decimal variable, and computer and computer program

Similar Documents

Publication Publication Date Title
US6061783A (en) Method and apparatus for manipulation of bit fields directly in a memory source
AU686358B2 (en) Computer system
EP0248436B1 (en) Method of and apparatus for processing data
EP0148478B1 (en) A data processor with control of the significant bit lenghts of general purpose registers
EP0471191B1 (en) Data processor capable of simultaneous execution of two instructions
RU2334268C2 (ru) Команды для поддержки обработки шифрованного сообщения
JPH09311786A (ja) データ処理装置
US5522053A (en) Branch target and next instruction address calculation in a pipeline processor
KR20000029005A (ko) 데이터 처리기 시스템 및 그룹화를 이용한 명령 시스템
JPS6014341A (ja) 基本命令セツト計算機システムにおけるトラツプ割込み方式
JP2847974B2 (ja) データ処理装置
JP2003044273A (ja) データ処理装置及びデータ処理方法
JPH1049369A (ja) データ処理装置
JPH0546383A (ja) データ処理装置
JPH04260927A (ja) データ処理装置
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
JP2002229778A (ja) 高速ディスプレースメント付きpc相対分岐方式
JP3630804B2 (ja) データ処理装置
JP2551167B2 (ja) マイクロコンピュータ
JPH05324313A (ja) データ処理装置
JPH04260929A (ja) データ処理装置
JPH034936B2 (ja)
CA1155231A (en) Pipelined digital processor arranged for conditional operation
JP2002014809A (ja) マイクロプロセッサ並びにアセンブラ、その方法およびそのプログラムを記録した記録媒体
JPH04260926A (ja) ビット検索回路及びそれを備えたデータ処理装置