JP3338466B2 - 主記憶アクセス最適化処理装置 - Google Patents

主記憶アクセス最適化処理装置

Info

Publication number
JP3338466B2
JP3338466B2 JP28819891A JP28819891A JP3338466B2 JP 3338466 B2 JP3338466 B2 JP 3338466B2 JP 28819891 A JP28819891 A JP 28819891A JP 28819891 A JP28819891 A JP 28819891A JP 3338466 B2 JP3338466 B2 JP 3338466B2
Authority
JP
Japan
Prior art keywords
instructions
data
instruction
processing
memory access
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
JP28819891A
Other languages
English (en)
Other versions
JPH05127920A (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.)
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 JP28819891A priority Critical patent/JP3338466B2/ja
Publication of JPH05127920A publication Critical patent/JPH05127920A/ja
Application granted granted Critical
Publication of JP3338466B2 publication Critical patent/JP3338466B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は計算機におけるコンパイ
ラの処理において、目的プログラムによる主記憶アクセ
スを効率よくするための主記憶アクセス最適化処理方法
に関する。
【0002】
【従来の技術と発明が解決しようとする課題】図3に示
すように、公知のコンパイラ1は所与の原始プログラム
2を入力として、構文解析部3、意味解析部4により原
始プログラムを解析し翻訳して、中間テキスト5を生成
し、コード生成部6が中間テキストの命令を、必要な機
種の計算機で実行される命令に変換して、目的プログラ
ム7を生成する。
【0003】その場合にコンパイラ1は、原始プログラ
ム2に記述されている各変数等のデータに、主記憶領域
を割り当て、原始プログラムで指定する処理の必要に応
じて、それらの主記憶領域上のデータを参照及び更新す
る命令を生成する。
【0004】公知のように、計算機には一般に、その制
御方式によって定まるデータの語形式があり、中央処理
装置の汎用レジスタ等のデータ長、即ちレジスタ長、や
主記憶領域のアクセス単位、データを主記憶領域からレ
ジスタに読み出し、又はレジスタから主記憶領域に書き
込む場合の、主記憶領域のアドレス境界等が、その語形
式に対応するように定められている。
【0005】例えば、8ビットのバイトをデータの単位
として、4バイトを1語とする計算機において、各汎用
レジスタのレジスタ長を1語長(32ビット)とし、1語
のアクセスをする場合に主記憶領域のアドレスについて
は、例えばバイトアドレスで2進表現のXX...X00で表さ
れるアドレスで始まることがアドレス境界条件とされる
等である。
【0006】コンパイラはアドレスの配分において、境
界アドレスを考慮する必要があるが、例えば前記の例の
場合として、バイト単位でデータを扱う場合には、境界
を考慮する必要がない。
【0007】その結果、図4に例示するような配置で、
境界アドレスA+1とA+3の各バイト(図に網かけで
示す)が参照される場合に、コンパイラは2個のバイト
参照の命令を個別に生成し、それらの関連は特に考慮し
ない。
【0008】しかし、もしそのような場合に、1命令に
よって境界アドレスA+0によって、A+0からA+3
までの4バイトの1語を一括して読み出すようにすれ
ば、主記憶領域へのアクセス回数を減少して、システム
の処理効率を改善できる。
【0009】本発明は、主記憶領域への複数のアクセス
を、できるだけ1命令のアクセスにまとめることによ
り、処理効率を改善するよう最適化する主記憶アクセス
最適化処理方法を目的とする。
【0010】
【課題を解決するための手段】図1は、本発明の構成を
示す処理の流れ図である。図は主記憶アクセス最適化処
理方法の構成であって、計算機の原始プログラムを翻訳
して目的プログラムを生成する処理の過程における処理
方法である。
【0011】第1の処理10では、該翻訳の結果の中間コ
ードを該目的プログラムに変換するに先立って、該中間
テキストの命令について、主記憶領域へアクセスする各
該命令のアクセス先データのアドレスとデータ長とに基
づいて、所定の各アクセス境界アドレスから、所定のレ
ジスタ長の長さの範囲ごとに分類する。
【0012】第2の処理11では、2以上の該命令の該オ
ペランドが同一の該範囲に分類される場合には、当該2
以上の命令のうち所定の条件を満足する2以上の該命令
の群ごとに、当該範囲をアクセス先データとしてアクセ
スする1命令によって該命令群を置き換える。
【0013】以上のために、前記目的プログラムがアク
セスするように、主記憶領域に割り当てるデータ領域
は、前記範囲の集まりとなるように定められる。
【0014】
【作用】本発明の最適化処理方法により、処理論理上の
必要の都度、個別に主記憶領域へアクセスするように生
成される命令を、アドレスの関係と処理論理上の無矛盾
性等条件とを考慮して可能な限り、境界アドレスからレ
ジスタ長の長さのデータ長の範囲をアクセス先とする1
命令にまとめるので、主記憶へのアクセスを減少するこ
とができる。
【0015】なお、以上により、実際に必要なデータを
越えて前記の範囲の末尾までアクセス先が拡張されるこ
とが起きる場合があるので、主記憶に割り当てるデータ
領域は、前記の範囲の集まり(即ち境界アドレスから始
まり、レジスタ長の整数倍の長さの領域)にする。
【0016】このようにしないと、アクセス先が拡張さ
れる結果、実行時に記憶保護侵害のような、いわゆる命
令例外事象を発生する可能性があるからである。
【0017】
【実施例】図2は本発明を適用したコンパイラ20の構成
例を示し、図3によって説明したコンパイラ1の構成
に、メモリアクセス操作部21が追加され、意味解析部4
が生成する中間テキスト23をメモリアクセス操作部21が
処理して本発明による最適化を行い、コード生成部22が
処理して、目的プログラム24を生成する。
【0018】図5はメモリアクセス操作部21による、本
発明の処理の流れの一例を示し、処理ステップ30で、中
間テキストのメモリアクセス命令、例えばいわゆるロー
ド命令とストア命令に相当する命令をすべて処理対象と
して列挙する。
【0019】処理ステップ31で、それらの各命令のアク
セス先データのアドレス及びデータ長を識別し、各境界
アドレスからレジスタ長の長さの範囲ごとに、同じ範囲
をアクセス先とする命令を、ロード命令とストア命令の
別にグループ分けして分類する。
【0020】処理ステップ32で処理の終了を識別しなが
ら、グループ分けした各命令群ごとを取り上げて、その
群について、処理ステップ33でそれらの命令を当該範囲
を一括して読み出し、又は書き込む1命令にまとめて
も、処理上に矛盾を生じないか判定する。
【0021】一例として、データa、b、cをそれぞれ
参照するための命令が、1群に分類されている場合に、
例えばそれらのデータに関する参照、更新のプログラム
が、データa参照、データc更新、データb参照、デー
タc参照のような順序になっていた場合を考える。
【0022】その場合には、データaとデータbとの参
照は元のデータa参照の位置にまとめることができる
が、データc参照までを含めると、処理結果に矛盾を生
じ得ることは明らかであり、データc参照を別にする必
要がある。
【0023】処理ステップ34で識別して、以上の処理の
結果1命令にまとめられる命令が残れば、処理ステップ
35で該当するアクセス命令を1命令にまとめ、且つ1命
令化に対応して必要になる場合は、レジスタ上でそれら
のデータを扱う演算関係のプログラムを補正する。
【0024】以上の処理を繰り返して、処理ステップ31
で分類された、2以上の命令を含む命令群を、すべて処
理したことを処理ステップ32で識別すると処理を終わ
る。以上の処理により、例えば前記図4の例で、前記の
ようにAとBを境界アドレスとして、アドレスA+1、
A+3、B+1の各バイトデータを参照する3ロード命
令があった場合には、アドレスA+1とA+3は1命令
でロードするように変更され、3命令が2命令に減少す
る。
【0025】
【発明の効果】以上の説明から明らかなように本発明に
よれば、計算機のプログラム生成処理において、主記憶
領域への複数のアクセスを、できるだけ1命令のアクセ
スにまとめるように最適化して、処理効率を改善するこ
とができるという著しい工業的効果がある。
【図面の簡単な説明】
【図1】 本発明の構成を示す処理の流れ図
【図2】 本発明のコンパイラの構成例を示すブロック
【図3】 従来のコンパイラの構成例を示すブロック図
【図4】 データの配列例を説明する図
【図5】 本発明の処理の流れ図
【符号の説明】
1、20 コンパイラ 2 原始プログラム 3 構文解析部 4 意味解析部 5、23 中間テキスト 6、22 コード生成部 7、24 目的プログラム 10 第1の処理 11 第2の処理 30〜35 処理ステップ

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 計算機の原始プログラムを中間テキスト
    を介して目的プログラムに翻訳するコンパイル処理にお
    ける主記憶アクセス最適化処理装置であって、 主記憶領域に配置・記憶されたデータをアクセスする各
    中間テキストの命令を、アクセス境界アドレスから開始
    してレジスタ長の長さで終了する範囲ごとに、ロード命
    令とストア命令の別にグループ分けして分類する手段
    と、 グループ分けした命令群ごとに複数の命令を一つの命令
    に集約した場合に処理に矛盾が生じるか否かを判定する
    手段と、 複数の命令を一つの命令に集約しても処理に矛盾が生じ
    ない命令群について、複数の命令を一つの命令に集約す
    る手段と を備えたことを特徴とする主記憶アクセス最適
    化処理装置。
JP28819891A 1991-11-05 1991-11-05 主記憶アクセス最適化処理装置 Expired - Fee Related JP3338466B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28819891A JP3338466B2 (ja) 1991-11-05 1991-11-05 主記憶アクセス最適化処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28819891A JP3338466B2 (ja) 1991-11-05 1991-11-05 主記憶アクセス最適化処理装置

Publications (2)

Publication Number Publication Date
JPH05127920A JPH05127920A (ja) 1993-05-25
JP3338466B2 true JP3338466B2 (ja) 2002-10-28

Family

ID=17727084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28819891A Expired - Fee Related JP3338466B2 (ja) 1991-11-05 1991-11-05 主記憶アクセス最適化処理装置

Country Status (1)

Country Link
JP (1) JP3338466B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7457936B2 (en) * 2003-11-19 2008-11-25 Intel Corporation Memory access instruction vectorization
CN109426503B (zh) * 2017-07-21 2022-05-31 华为技术有限公司 提供仿真激励的方法及装置

Also Published As

Publication number Publication date
JPH05127920A (ja) 1993-05-25

Similar Documents

Publication Publication Date Title
US4991088A (en) Method for optimizing utilization of a cache memory
JP5118745B2 (ja) メモリアクセス命令のベクトル化
US6925639B2 (en) Method and system for register allocation
JP2003114816A (ja) コンピュータメモリにインデックスを記憶するデータ構造
US7949848B2 (en) Data processing apparatus, method and computer program product for reducing memory usage of an object oriented program
KR20200031150A (ko) 데이터 처리장치의 데이터 항목들 내의 성분들의 계수
US6334212B1 (en) Compiler
US6175935B1 (en) Software debugging method and recording medium to which debugging program has been recorded
US20090019266A1 (en) Information processing apparatus and information processing system
US5519860A (en) Central processor index sort followed by direct record sort and write by an intelligent control unit
JP3338466B2 (ja) 主記憶アクセス最適化処理装置
US6275984B1 (en) System and method for delaying indirect register offset resolution
US6883080B1 (en) Program executing apparatus and program development supporting apparatus
US6862675B1 (en) Microprocessor and device including memory units with different physical addresses
US6233732B1 (en) Compiling system using intermediate codes to store a plurality of values
US20090019225A1 (en) Information processing apparatus and information processing system
US3735364A (en) Data handling system for handling data in compliance with normal and special descriptors
JP3264901B2 (ja) コンパイル装置及びコンパイル方法
JP2023540456A (ja) ガベージ・コレクションのための3色ビットマップ・アレイ
JP2000020318A (ja) メモリアクセス命令削減装置および記録媒体
US5748965A (en) Language processing method for calculating optimum address of array
JPH086797A (ja) 定数参照最適化処理装置
JPH0877118A (ja) 分散処理装置及びプロセス実行方法
JP4260895B2 (ja) マイクロコントローラにおける複数フォーマットアドレス指定
KR20010085562A (ko) 데이터 랜덤 액세스 메모리를 사용하는 다양한 사이즈의마이크로컨트롤러를 위한 강제 페이지 페이징 방법

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010213

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080809

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090809

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees