JPH0223429A - 平方根逆数の最適化処理方法 - Google Patents
平方根逆数の最適化処理方法Info
- Publication number
- JPH0223429A JPH0223429A JP17476688A JP17476688A JPH0223429A JP H0223429 A JPH0223429 A JP H0223429A JP 17476688 A JP17476688 A JP 17476688A JP 17476688 A JP17476688 A JP 17476688A JP H0223429 A JPH0223429 A JP H0223429A
- Authority
- JP
- Japan
- Prior art keywords
- function
- square root
- argument
- program
- calculates
- 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
Links
- 238000005457 optimization Methods 0.000 title description 7
- 238000003672 processing method Methods 0.000 title description 3
- 238000000034 method Methods 0.000 claims description 14
- 238000006467 substitution reaction Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 38
- 238000004364 calculation method Methods 0.000 description 13
- 238000003860 storage Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概 要〕
計算機における、原始プログラムの翻訳処理に関し、
平方根の逆数計算が記述されている原始プログラムから
、実行速度の速い目的プログラムを生成することのでき
る平方根逆数の最適化処理方法を目的とし、 引数の逆数の平方根を求める関数を有する計算機の、原
始プログラムを翻訳して目的プログラムを生成する処理
において、該原始プログラムに引数の平方根を求める関
数の指定が有った場合には、該引数の平方根を求める関
数の値を除数とする指定の有無を検査し、該除数とする
指定がある場合には、該引数の平方根を求める関数の値
を除数とする指定を、該引数の逆数の平方根を求める関
数の値を乗数とする指定に置き換えるように構成する。
、実行速度の速い目的プログラムを生成することのでき
る平方根逆数の最適化処理方法を目的とし、 引数の逆数の平方根を求める関数を有する計算機の、原
始プログラムを翻訳して目的プログラムを生成する処理
において、該原始プログラムに引数の平方根を求める関
数の指定が有った場合には、該引数の平方根を求める関
数の値を除数とする指定の有無を検査し、該除数とする
指定がある場合には、該引数の平方根を求める関数の値
を除数とする指定を、該引数の逆数の平方根を求める関
数の値を乗数とする指定に置き換えるように構成する。
本発明は、計算機における、原始プログラムの翻訳処理
、特に平方根の逆数計算が記述されている原始プログラ
ムの最適化処理方法に関する。
、特に平方根の逆数計算が記述されている原始プログラ
ムの最適化処理方法に関する。
公知のように例えばFORTRANプログラミング言語
の言語仕様には多種の組込み関数が規定されており、そ
の中に指定の引数の平方根を求める関数5QRTがある
。
の言語仕様には多種の組込み関数が規定されており、そ
の中に指定の引数の平方根を求める関数5QRTがある
。
〔従来の技術と発明が解決しようとする課題〕第2図(
alはFORTRAN言語で記述された原始プログラム
における、平方根の逆数演算式を含む代入文の例であり
、公知のように変数Aを変数Xの平方根で割った商を変
数Yに代入するプログラムを示す。
alはFORTRAN言語で記述された原始プログラム
における、平方根の逆数演算式を含む代入文の例であり
、公知のように変数Aを変数Xの平方根で割った商を変
数Yに代入するプログラムを示す。
こ\で5QRT (X)は、変数Xに本言語の組込み関
数である平方根の関数5QRTを適用した結果、即ち変
数Xの平方根の値を表す。
数である平方根の関数5QRTを適用した結果、即ち変
数Xの平方根の値を表す。
そこでコンパイラは、このような原始プログラムを翻訳
して、例えば第2図(b)に概念的構成を示すような目
的プログラムを生成する。図においてtl、t2等は作
業用のレジスタを示し、図のプログラムは第1の命令語
で組込み関数5QRTの演算ルーチンを呼んで変数Xを
処理させた結果(Xの平方根)をtlに受は取り、第2
の命令語で変数Aの値をLlの内容で除した商をt2に
置き、第3の命令語でt2を変数Yの記憶領域に格納す
る。
して、例えば第2図(b)に概念的構成を示すような目
的プログラムを生成する。図においてtl、t2等は作
業用のレジスタを示し、図のプログラムは第1の命令語
で組込み関数5QRTの演算ルーチンを呼んで変数Xを
処理させた結果(Xの平方根)をtlに受は取り、第2
の命令語で変数Aの値をLlの内容で除した商をt2に
置き、第3の命令語でt2を変数Yの記憶領域に格納す
る。
このような平方根の逆数計算は、天体力学を始めとして
科学技術計算分野で多用される例があり、又一般に計算
機の除算命令は乗算命令より実行時間が大きく、特に除
算の性能の低い計算機もしばしば見られる。そこで、例
えば引数の逆数の平方根を求めるニュートン法による公
知の近似計算法(参考文献:培風館発行「電子計算機の
ための数値計算法■」29頁)を用いることにより、除
算命令を必要としない平方根逆数の演算ルーチンで、平
方根逆数演算を高性能に処理する関数を設ければ、第2
図(a)の原始プログラムを例えば(C1のように書き
換えて、それから(d)のような目的プログラムが生成
でき、乗算によって実行性能を改善できる。
科学技術計算分野で多用される例があり、又一般に計算
機の除算命令は乗算命令より実行時間が大きく、特に除
算の性能の低い計算機もしばしば見られる。そこで、例
えば引数の逆数の平方根を求めるニュートン法による公
知の近似計算法(参考文献:培風館発行「電子計算機の
ための数値計算法■」29頁)を用いることにより、除
算命令を必要としない平方根逆数の演算ルーチンで、平
方根逆数演算を高性能に処理する関数を設ければ、第2
図(a)の原始プログラムを例えば(C1のように書き
換えて、それから(d)のような目的プログラムが生成
でき、乗算によって実行性能を改善できる。
第2図(C)及び(dlにおいて、I’1SQRTは前
記のようにして平方根逆数を求める関数の関数名とし、
図の目的プログラムは第1の命令語で関数R3QRTの
演算ルーチンを呼んで変数Xを処理させた結果(Xの逆
数の平方根)をtlに受は取り、第2の命令語で変数へ
の値とtlの内容との積をt2に置き、第3の命令語で
t2を変数Yの記憶領域に格納することを表す。
記のようにして平方根逆数を求める関数の関数名とし、
図の目的プログラムは第1の命令語で関数R3QRTの
演算ルーチンを呼んで変数Xを処理させた結果(Xの逆
数の平方根)をtlに受は取り、第2の命令語で変数へ
の値とtlの内容との積をt2に置き、第3の命令語で
t2を変数Yの記憶領域に格納することを表す。
しかし、前記の関数R5QRTはFORTRANの標準
化された言語仕様には組込み関数として規定されておら
ず、従って利用者は関数5QRTの逆数を記述した多数
の原始プログラムを所有するが、それらのプログラムで
関数RSQRTを利用しようとすれば、プログラムを書
き直さなければならないという問題がある。
化された言語仕様には組込み関数として規定されておら
ず、従って利用者は関数5QRTの逆数を記述した多数
の原始プログラムを所有するが、それらのプログラムで
関数RSQRTを利用しようとすれば、プログラムを書
き直さなければならないという問題がある。
本発明は、平方根の関数の逆数演算が記述されている原
始プログラムから、実行速度の速い目的プログラムを生
成することのできる平方根逆数の最適化処理方法を目的
とする。
始プログラムから、実行速度の速い目的プログラムを生
成することのできる平方根逆数の最適化処理方法を目的
とする。
第1図は、本発明の構成を示す処理の流れ図である。
図はコンパイラにおける平方根逆数演算の最適化処理の
流れを示し、1は平方根の関数の検出、2は平方根の関
数が除数に指定されていることの判定、3は平方根の関
数を逆数の平方根の関数に置き換える処理の各処理ステ
ップである。
流れを示し、1は平方根の関数の検出、2は平方根の関
数が除数に指定されていることの判定、3は平方根の関
数を逆数の平方根の関数に置き換える処理の各処理ステ
ップである。
引数の逆数の平方根を求める関数を有する計算機におけ
る、原始プログラムを翻訳して目的プログラムを生成す
る処理において、先ず処理ステップ1で原始プログラム
の式に引数の平方根を求める関数を検出した場合には、
処理ステップ2でその平方根を求める関数の値を除数と
する指定の有無を検査する。
る、原始プログラムを翻訳して目的プログラムを生成す
る処理において、先ず処理ステップ1で原始プログラム
の式に引数の平方根を求める関数を検出した場合には、
処理ステップ2でその平方根を求める関数の値を除数と
する指定の有無を検査する。
その結果除数とする指定がある場合には、処理ステップ
3でその引数の平方根を求める関数の値を除数とする指
定を、逆数の平方根を求める関数の値を乗数とする指定
に置き換える。
3でその引数の平方根を求める関数の値を除数とする指
定を、逆数の平方根を求める関数の値を乗数とする指定
に置き換える。
以上の処理方法により、平方根の逆数演算について従来
の原始プログラムを修正する必要無しに、逆数の平方根
を求める関数を利用した最適化がコンパイル時に自動的
に行われる。
の原始プログラムを修正する必要無しに、逆数の平方根
を求める関数を利用した最適化がコンパイル時に自動的
に行われる。
本発明のコンパイラは、引数の逆数の平方根を求める関
数R3QRTを組込み関数として保持するものとし、こ
の関数の演算ルーチンは前記の近偵演算法による高性能
の関数ルーチンとする。
数R3QRTを組込み関数として保持するものとし、こ
の関数の演算ルーチンは前記の近偵演算法による高性能
の関数ルーチンとする。
コンパイラは代入文等の弐の処理において、第1図の処
理ステップ1で弐を構成する項が平方根を求める関数5
QRTであることを検出すると、処理ステップ2でその
関数5QRTが除数になっているか識別するために、関
数の左が除算演算子「/」であるか否かを検査する。
理ステップ1で弐を構成する項が平方根を求める関数5
QRTであることを検出すると、処理ステップ2でその
関数5QRTが除数になっているか識別するために、関
数の左が除算演算子「/」であるか否かを検査する。
除算演算子である場合には、処理ステップ3でこの部分
を関数R5QRTによる乗算に置き換えるために、[/
関数5QRT Jを「*関数RSQRT Jに置換する
。なお「*」は乗算演算子である。
を関数R5QRTによる乗算に置き換えるために、[/
関数5QRT Jを「*関数RSQRT Jに置換する
。なお「*」は乗算演算子である。
以上の処理により、例えば第2図(a)の原始プログラ
ムは(c)のように変換され、従ってこれを通常の翻訳
処理によって処理することにより、(dlに示すイメー
ジの目的プログラムが生成され、結局利用者は第2図(
a)の原始プログラムから(d)の目的プログラムを自
動的に得ることができる。
ムは(c)のように変換され、従ってこれを通常の翻訳
処理によって処理することにより、(dlに示すイメー
ジの目的プログラムが生成され、結局利用者は第2図(
a)の原始プログラムから(d)の目的プログラムを自
動的に得ることができる。
以上の説明から明らかなように本発明によれば、計算機
における、原始プログラムの翻訳処理において、平方根
の逆数演算について従来の原始プログラムを修正する必
要無しに、逆数の平方根を求める関数を利用した最適化
がコンパイル時に自動的に行われるので、計算機の利用
効率を改善するという著しい工業的効果がある。
における、原始プログラムの翻訳処理において、平方根
の逆数演算について従来の原始プログラムを修正する必
要無しに、逆数の平方根を求める関数を利用した最適化
がコンパイル時に自動的に行われるので、計算機の利用
効率を改善するという著しい工業的効果がある。
第1図は本発明の構成を示す処理の流れ図、第2図はプ
ログラム例の説明図である。 図において、
ログラム例の説明図である。 図において、
Claims (1)
- 【特許請求の範囲】 引数の逆数の平方根を求める関数を有する計算機の、原
始プログラムを翻訳して目的プログラムを生成する処理
において、 該原始プログラムに引数の平方根を求める関数の指定が
有った場合には(1)、該引数の平方根を求める関数の
値を除数とする指定の有無を検査し(2)、該除数とす
る指定がある場合には、該引数の平方根を求める関数の
値を除数とする指定を、該引数の逆数の平方根を求める
関数の値を乗数とする指定に置き換える(3)ように構
成されていることを特徴とする平方根逆数の最適化処理
方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17476688A JPH0223429A (ja) | 1988-07-13 | 1988-07-13 | 平方根逆数の最適化処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17476688A JPH0223429A (ja) | 1988-07-13 | 1988-07-13 | 平方根逆数の最適化処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0223429A true JPH0223429A (ja) | 1990-01-25 |
Family
ID=15984301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17476688A Pending JPH0223429A (ja) | 1988-07-13 | 1988-07-13 | 平方根逆数の最適化処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0223429A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5699328A (en) * | 1991-09-30 | 1997-12-16 | Fujitsu Limited | Automatic vending machine for vending information transmitted from satellite |
KR100506470B1 (ko) * | 2001-05-31 | 2005-08-05 | 세미콘덕터 테크놀로지 아카데믹 리서치 센터 | 평방근의 역수 계산 방법, 계산 회로, 및 기록매체 |
-
1988
- 1988-07-13 JP JP17476688A patent/JPH0223429A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5699328A (en) * | 1991-09-30 | 1997-12-16 | Fujitsu Limited | Automatic vending machine for vending information transmitted from satellite |
KR100506470B1 (ko) * | 2001-05-31 | 2005-08-05 | 세미콘덕터 테크놀로지 아카데믹 리서치 센터 | 평방근의 역수 계산 방법, 계산 회로, 및 기록매체 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ramamoorthy et al. | A high-level language for horizontal microprogramming | |
KR910009116B1 (ko) | 레지스터 할당 및 지정 방법 | |
US6425124B1 (en) | Resource allocation device for reducing the size and run time of a machine language program | |
Metcalf | The seven ages of fortran | |
CN104965687A (zh) | 基于指令集生成的大数据处理方法及装置 | |
Lawson | Programming-language-oriented instruction streams | |
Nelson | A comparison of PASCAL intermediate languages | |
JPS6124729B2 (ja) | ||
Vasilev et al. | Loop-invariant optimization in the Pifagor language | |
Decyk et al. | Introduction to object-oriented concepts using Fortran90 | |
JPH0223429A (ja) | 平方根逆数の最適化処理方法 | |
Engelke et al. | Robust practical binary optimization at run-time using LLVM | |
JP3318051B2 (ja) | 翻訳処理方法 | |
US7574703B2 (en) | Method and apparatus for reducing instruction dependencies in extended SSA form instructions | |
Krohn | A parallel approach to code generation for Fortran like compilers | |
CN107402799A (zh) | 在x86电脑超高速解释执行tms320c25芯片汇编指令的方法 | |
Hunter et al. | Introduction to the NS16000 Architecture | |
JPH0379741B2 (ja) | ||
Mego et al. | A tool for VLIW processors code optimizing | |
McFarlin et al. | Library function selection in compiling Octave | |
JP2583599B2 (ja) | 2進整数乗算処理方法 | |
Kann | Implementing a one address cpu in logisim | |
Giloi | Advanced object oriented architectures | |
KR20140119619A (ko) | 벡터 코드 생성 장치 및 방법 | |
CN111651723A (zh) | 基于一般函数式识别赋值计算与Powell算法的非线性回归计算技术 |