JPS6229818B2 - - Google Patents

Info

Publication number
JPS6229818B2
JPS6229818B2 JP15644881A JP15644881A JPS6229818B2 JP S6229818 B2 JPS6229818 B2 JP S6229818B2 JP 15644881 A JP15644881 A JP 15644881A JP 15644881 A JP15644881 A JP 15644881A JP S6229818 B2 JPS6229818 B2 JP S6229818B2
Authority
JP
Japan
Prior art keywords
value
displacement
register
array
contents
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
JP15644881A
Other languages
English (en)
Other versions
JPS5858652A (ja
Inventor
Masao Kikuchi
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP15644881A priority Critical patent/JPS5858652A/ja
Publication of JPS5858652A publication Critical patent/JPS5858652A/ja
Publication of JPS6229818B2 publication Critical patent/JPS6229818B2/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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing

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)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 本発明は、配列の要素の主記憶装置上の番地を
計算するためのオブジエクト・プログラムの命令
の数を減少できると共に、インデツクス・レジス
タをも共通化できるようにした最適な変位の決定
方法に関するものである。
計算機の主記憶装置上の番地をアクセスするた
めの命令である、PX型式の命令は という形式を有している。こゝで、OPはオペレ
ーシヨン・コード、Rは汎用レジスタの番号、X
はインデツクス・レジスタの番号、Bはベース・
レジスタの番号、Dは変位(デイスプレースメン
ト又はオフセント)を示している。主記憶上の番
地は、インデツクス・レジスタの内容、ベース・
レジスタの内容およびデイスプレースメントの和
で表わされる。配列は同じ特性をもつ要素を所定
の規制にしたがつて並べたものであるが、配列は
主記憶上の連続した領域に格納されている。
第1図は配列アクセスの基本を示すものであつ
て、Aは配列名、(1),(2)…(i)は配列の要素の順番
を示している。なお、図示の例では配列の要素の
大きさは“4”としている。ベース・レジスタに
は一要素分だけ前の番地(小さい番地)を設定す
る。これによつてインデツクス・レジスタ12は
(i−1)×4ではなくてi×4を設定するだけで
済む。配列の要素A(2)の番地を示す場合にはイン
デツクス・レジスタは使用せず変位を2×4とす
る。配列の要素A(i)を表わす場合にはインデツク
ス・レジスタの内容をi×4とし、変位を“0”
とする。配列の要素A(i+3)を表わす場合に
は、インデツクス・レジスタの内容をi×4と
し、変位3×4とする。
第2図は配列のアクセスの一般的方法を示すも
のであり、第2図においてBおよびCも配列を示
している。計算機におけるレジスタの個数は有限
であるので、異なる複数の配列で1つのベース・
レジスタを使用することが望まれる。このため、
ベース・レジスタには、1要素分ではなくて(m
+4)だけ前の番地を設定する。第2図の例にお
いては、配列の要素A(2)の番地を示す場合、イン
デツクス・レジスタは使用せず。変位は2×4+
mとされる。配列の要素A(i)を表わす場合、イン
デツクス・レジスタの内容はi×4とされ、変位
はmとされる。配列の要素A(i+3)を表わす
場合、インデツクス・レジスタの内容はi×4と
され、変位は3×4+mとされる。
変位が例えば12ビツト構成であるとすると、変
位は“0”ないし“4095”の範囲の値を取ること
が出来る。変位のとり得る最大値が決つているの
で、配列の要素数が多い場合や配列の要素の寸法
が大きい場合には、上記のようにして計算された
変位の値が最大値を越えてしまう場合がある。例
えば配列の要素A(i+1200)の変位を前記した
方法で計算すると、1200×4+mとなり、最大値
“4095”を越えてしまう。計算の結果得られた変
位が“4095”の値を越えた場合、従来技術におい
ては、計算によつて得られたインデツクス・レジ
スタの内容に1200×4+mを加えたものを新たに
インデツクス・レジスタに設定し、変位の値を
“0”にしていた。このような従来方式による
と、さらに配列に要素A(i+1500)の主記憶上
の番地を求める場合、1500×4+mを計算し、別
のインデツクス・レジスタにi×4+1500×4+
mを設定する必要があつた。即ち、オブジエク
ト・プログラム上で配列の要素A(i+1200)と
A(i+1500)の主記憶装置上の番地を求める場
合、i×4+1200×4+mを求める命令と、i×
4+1500×4+mを求める命令とを余分に必要と
し、さらに、これらの計算結果を設定する2個の
インデツクス・レジスタを必要とした。
本発明は、上記の考察に基づくものであつて、
配列の要素の主記憶上の番地を求める場合、主記
憶上の番地を計算するための命令とインデツク
ス・レジスタの個数を減少できるようになつた最
適な変位の決定方法を提供することを目的として
いる。そしてそのため、本発明の最適な変位の決
定方法は、ソース・プログラム上の配列Aの要素
A(i+k)(ただし、iは変数、kは定数)の
番地を、配列Aの先頭番地を0番地と仮定したと
き、中間段階においてm+D(たかび、Dは配列
の要素の大きさ)の内容を持つベース・レジス
タ、i×Dの内容を持つインデツクス・レジス
タ、k×D+mの値をもつデイスプレースメント
で表し、デイスプレスメントの値が所定値を越え
ている場合、上記ベース・レジスタ又はインデツ
クス・レジスタの内容を調節して上記配列の要素
(i+k)の番地をオブジエクト・コードで表わ
すようにしたコンパイラにいて、中間段階におい
て、上記デイスプレースメントの値dispが所定値
dispmを越えている場合、値dispを値dispmで除
算したときに生ずる余りdisp′をデイスプレース
メントの値とし、dispからdisp′を減算した値
disptを上記ベース・レジスタ又はインデツク
ス・レジスタの内容に加算したことを特徴とする
ものである。以下、本発明を図面を参照しつつ説
明する。
第3図はコンパイラ処理の一部を説明するため
の図である。ソース・プログラムが図示のような
配列の要素とDO文を含んでいるものとすると、
中間テキストの段階でテーブルT1とT2が作成
される。テーブルT1は配列の要素A(i+
1200)に対応するものであり、A部はベース・レ
ジスタをポイントとしており、i部は制御変数i
の格納されているレジスタをポイントしてあり、
disp1部には1200×4+mが格納されている。テ
ーブルT2は配列の要素A(i+1500)に対応す
るものであつて、disp2部には1500×4+mが格
納されている。テーブルT2のA部およびi部は
テーブルT1のそれと同じである。中間テキスト
から機械語を生成する最適化の段階において、コ
ンパイラは変位disp1とdisp2が4095を越えている
か否かを調べ、越えている場合には変位が4095以
内になるように調整すると共に、インデツクス・
レジスタの内容(又はベース・レジスタの内容)
に或る値を加算するための命令を追加する。
第4図は本発明の原理を説明する図であつて、
この第4図においては、中間テキストの段階で配
列の要素A(i+1200)のメモリ・アドレスがイ
ンデツクス・レジスタの内容と変位disp1で表わ
され、配列の要素A(i+1500)がインデツク
ス・レジスタの内容と変位disp2で表わされるも
のとしている。第4図では説明の簡単なためベー
ス・レジスタは省略されている。変位disp1およ
びdisp2が“4096”以上の場合 disp1=dispt+disp1′ disp2=dispt+disp2′ とすることができるなら、値disptをインデツク
ス・レジスタに加算し、値dispt′を配列の要素A
(i+1200)のメモリ・アドレスを示す場合に用
いられる変位とし、値disp2′を配列の要素A(i
+1500)のメモリ・アドレスを示す場合に用いら
れる変位とする。このようにすれば、オブジエク
ト・プログラムにindex+disptを計算する命令を
新たに追加するだけで良く、また、インデツク
ス・レジスタは1個だけで良い。
第5図は中間テキスト段階で変位dispが
“4095”を越える場合におけるインデツクス・レ
ジスタに加える値disptおよび最終的に変位の値
となるdispdを求める方法を説明するものであ
る。値dispbを値dispを最大値“4095”で割つた
ときの余りとすれば良く、値disptを値dispから
値dispdを引算した結果とすれば良い。
以上の説明から明らかなように、本発明によれ
ば、配列の要素のメモリ上のアドレスを求めるた
めの命令数を従来例に比して減少できると共に、
インデツクス・レジスタを共通化できるという効
果が得られる。
【図面の簡単な説明】
第1図は配列のアクセスの基本を示す図、第2
図は配列のアクセスの一般を示す図、第3図はコ
ンパイラ処理の一部を示す図、第4図は本発明の
原理を示す図、第5図はインデツクス・レジスタ
の内容の修正およびデイスプレースメントの修正
の方法を説明する図である。

Claims (1)

    【特許請求の範囲】
  1. 1 ソース・プログラム上の配列Aの要素A(i
    +k)(ただし、iは変数、kは定数)の番地
    を、配列Aの先頭を0番地と仮定したとき、中間
    段階において−(m+D)(ただし、Dは配列の要
    素の大きさ)の内容を持つベース・レジスタ、i
    ×Dの内容を持つインデツクス・レジスタ、k×
    D+mの値をもつデイスプレースメントで表し、
    デイスプレースメントの値が所定値を越えている
    場合、上記ベース・レジスタ又はインデツクス・
    レジスタの内容を調節して上記配列の要素A(i
    +k)の番地をオブジエクト・コードで表わすよ
    うにしたコンパイラにおいて、中間段階において
    上記デイスプレースメントの値disPが所定値
    dispmを越えている場合、値dispを値dispmで除
    算したときに生ずる余りdisp′をデイスプレース
    メントの値とし、dispからdisp′を減算した値
    disptを上記ベース・レジスタ又はインデツク
    ス・レジスタの内容に加算したことを特徴とする
    最適な変位の決定方法。
JP15644881A 1981-09-30 1981-09-30 最適な変位の決定方法 Granted JPS5858652A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15644881A JPS5858652A (ja) 1981-09-30 1981-09-30 最適な変位の決定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15644881A JPS5858652A (ja) 1981-09-30 1981-09-30 最適な変位の決定方法

Publications (2)

Publication Number Publication Date
JPS5858652A JPS5858652A (ja) 1983-04-07
JPS6229818B2 true JPS6229818B2 (ja) 1987-06-29

Family

ID=15627964

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15644881A Granted JPS5858652A (ja) 1981-09-30 1981-09-30 最適な変位の決定方法

Country Status (1)

Country Link
JP (1) JPS5858652A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02138013U (ja) * 1989-04-18 1990-11-19

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60200341A (ja) * 1984-03-23 1985-10-09 Fujitsu Ltd 文字デ−タの仮想先頭アドレツシング方式
JPS61224042A (ja) * 1985-03-29 1986-10-04 Nec Corp 仮想記憶システムにおける配列要素接近に関する最適化コ−ド生成方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02138013U (ja) * 1989-04-18 1990-11-19

Also Published As

Publication number Publication date
JPS5858652A (ja) 1983-04-07

Similar Documents

Publication Publication Date Title
JPS58501148A (ja) アドレス発生装置
JPS6229818B2 (ja)
JP3003156B2 (ja) 文字処理装置
JP2586479B2 (ja) 日本語ワ−ドプロセツサ
JPS58103039A (ja) デ−タベ−スシステム
JPH063468Y2 (ja) 小型電子式計算機
JPS61180283A (ja) ワ−ドプロセツサ
JPS6010336B2 (ja) アドレス比較方式
JPH0194483A (ja) 配置設計支援装置
JPH0667836A (ja) 指定エリア掲示機能を有する表示装置
JPH05225317A (ja) 座標データ指定制御方式
JPS63115228A (ja) 表示処理方式
JPH04163667A (ja) 画面レイアウト図同時修正方式
JPS5933542A (ja) デイスプレイ装置
JPH04239322A (ja) プログラムコピー句の管理方法
JPH0224726A (ja) 最適データ割付け方式
JPH08161155A (ja) マクロ作成方法および作成装置
JPS63126046A (ja) 外部記憶装置の管理方法
JPH0554058A (ja) 数値解析用要素生成システム
JPH07200562A (ja) 文書書式設定方法
JPH06175798A (ja) 可変画面表示制御方式
JPS6347846A (ja) 情報処理装置
JPS6339946B2 (ja)
JPS61161545A (ja) デ−タ処理システム
JPH03257626A (ja) 自動オペランド生成アドレッシング方法