JPH04365133A - プレロード命令実行装置及びプログラム修正装置 - Google Patents

プレロード命令実行装置及びプログラム修正装置

Info

Publication number
JPH04365133A
JPH04365133A JP3140572A JP14057291A JPH04365133A JP H04365133 A JPH04365133 A JP H04365133A JP 3140572 A JP3140572 A JP 3140572A JP 14057291 A JP14057291 A JP 14057291A JP H04365133 A JPH04365133 A JP H04365133A
Authority
JP
Japan
Prior art keywords
instruction
data
preload
buffer memory
program
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.)
Withdrawn
Application number
JP3140572A
Other languages
English (en)
Inventor
Masakazu Hayashi
正和 林
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 JP3140572A priority Critical patent/JPH04365133A/ja
Publication of JPH04365133A publication Critical patent/JPH04365133A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)
  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は計算機において、主記憶
装置のデータの複写をバッファメモリに保持して、命令
実行の高速化のために使用する場合に、バッファメモリ
の有効性を高めるための新命令を実行する装置、及びそ
の命令を利用するようにプログラムに自動配置するため
のプログラム修正装置に関する。
【0002】
【従来の技術と発明が解決しようとする課題】計算機に
おいて、中央処理装置に比較的高速で小容量のバッファ
メモリを設けて、一旦アクセスした主記憶装置上のデー
タについて、そのデータを含むある一定長のデータのブ
ロックを保持するようにし、主記憶装置上のデータをオ
ペランドとして参照するように指定した命令を実行する
場合に、そのバッファメモリに必要なデータの複写が有
れば、主記憶装置にアクセスすること無く、その複写を
参照して命令を実行し、複写が無い場合のみ主記憶装置
にアクセスする方式はよく知られている。このバッファ
メモリはキャッシュメモリ等とも呼ばれる。
【0003】公知のように、バッファメモリは処理装置
の命令実行機構の近傍に、主記憶装置より十分高速なメ
モリ素子を使用して構成することができるので、バッフ
ァメモリのデータには主記憶装置のデータより十分高速
のアクセスが可能であり、従ってバッファメモリのデー
タを利用できる場合の命令実行時間は、主記憶装置から
データを取り出す場合に比較して非常に短縮できる。
【0004】従って、そのようなバッファメモリの効果
を有効に利用するためには、各命令の実行に必要なデー
タが、実行時までにバッファメモリに保持されている機
会ができるだけ多くなるようにしなければならない。
【0005】そのために、主記憶装置からバッファメモ
リにデータを取り込んだ後には、そのデータを必要とす
る命令を、取込み後の近い期間になるべく実行してしま
うようにする等の原理でプログラムを修正する方法等に
より、バッファメモリの効果を高めることが考えられて
いる。
【0006】しかし、特別の命令によって命令実行時ま
でに、積極的に必要なデータをバッファメモリに準備し
ておくことは従来行われていない。本発明は、本来のプ
ログラムで必要な命令の実行に与える影響を少なくして
、事前に必要なデータをバッファメモリに準備すること
ができる命令を実行するプレロード命令実行装置、及び
プログラムの適切な位置にプレロード命令を自動挿入す
ることのできるプログラム修正装置を目的とする。
【0007】
【課題を解決するための手段】図1は、本発明の構成を
示すブロック図である。図1(a)はプレロード命令実
行装置の構成であって、主記憶装置1と、バッファメモ
リ2とを有し、主記憶装置1上のデータをオペランドと
して参照するように指定した命令を実行する場合に、該
バッファメモリに該データの複写が有れば、該複写を参
照し、該複写が無ければ、該データを含む所定長のデー
タを主記憶装置1から読み出してバッファメモリ2に保
持すると共に該データを参照するようにした計算機にお
いて、プレロード命令3を設け、プレロード命令3に、
所定の命令形式に従って主記憶装置1上のアドレスをオ
ペランドに指定する情報を設ける。
【0008】該プレロード命令の実行手段4は、バッフ
ァメモリ2について該アドレスのデータの複写の有無を
識別する処理と、該複写が無い場合に、該データを含む
所定長のデータを、主記憶装置1から無条件に読み出し
てバッファメモリ2に保持する処理とのみを実行して当
該プレロード命令の実行を完了する。
【0009】図1(b)はプログラム修正装置5の構成
であって、前記計算機で実行するように構成されたプロ
グラム6の、該計算機の命令からなる命令列について、
オペランド識別部10で識別して各該命令で参照するオ
ペランドが前記主記憶装置上のデータである場合に、当
該命令列中の該命令に先行して実行されるべき所定位置
が所定の条件を満足する場合には、命令生成部11によ
り、該データをオペランドに指定する前記プレロード命
令を生成し、挿入処理部12該プレロード命令を該所定
位置に挿入して、修正プログラム13を生成する。
【0010】又、前記計算機が、並列に実行可能な複数
の命令実行機構を有し、前記命令列は、該命令実行機構
の個数までの、並列に実行する命令の群ごとを命令組と
して、該命令組の列からなる場合には、挿入処理部12
は前記所定位置を、該命令実行機構の個数に満たない個
数の命令からなる該命令組に設ける。
【0011】
【作用】本発明のプレロード命令により、指定された主
記憶装置上のデータがバッファメモリに無ければ、主記
憶装置からそのデータを含むブロックを、記憶保護等の
チェック無しに無条件に読み出して、バッファメモリに
保持する処理のみを実行することができるようになる。 この命令仕様により、プレロード命令は比較的高速に実
行できる命令とすることが容易である。
【0012】このようなプレロード命令をプログラム中
の適当な個所に置くことにより、実際にデータを必要と
する命令の実行に先行して、プレロード命令によってそ
のデータをバッファメモリに持って来るようにすれば、
バッファメモリの効果を有効に利用して命令実行の高速
化が計れるので、本発明のプログラム修正装置は、プロ
グラムの命令のオペランドを調べて、必要なオペランド
のデータを、プレロード命令で予め主記憶装置から取り
出しておけるように、プレロード命令を自動挿入する修
正を行う。
【0013】その場合に、計算機が並列に実行する複数
の命令実行機構を持つ場合には、プログラム論理上のデ
ータ依存関係等や命令実行機構の機能的制約等から、す
べての命令実行機構に命令を割り当てることができず、
命令実行機構の遊びの出るステップを探して、そこにプ
レロード命令を挿入するようにすれば、プレロード命令
の実行時間が隠蔽されるので、プレロード命令の機能を
最も効率よく利用することができる。
【0014】
【実施例】本発明のプレロード命令は、主記憶装置のデ
ータを処理装置の汎用レジスタや浮動小数点レジスタに
ロードする、通常のいわゆるロード命令と同様に動作す
るが、但しレジスタへのロードは実行しない命令である
【0015】又、プログラム論理上で必要になる前に、
主記憶装置にアクセスするように使用されるので、記憶
保護等の条件が整えられる前に実行される可能性がある
ので、記憶保護等のいわゆる命令例外のチェック無しに
、無条件でアクセスを実行できるようにする必要があり
、このような命令仕様にすることは、又命令実行時間を
短縮する効果ももたらす。
【0016】以上のような命令仕様のプレロード命令を
全く新しい命令として設ければよいが、可能な場合には
例えば特定のレジスタ(例えば汎用レジスタ#0(GR
0) 、及び必要なら浮動小数点レジスタ#0(FR0
))を書込み不可の特殊なレジスタとする仕様として、
特別のオペレーションコードを新設すること無しに実現
することもできる。
【0017】その場合には、上記の特定のレジスタへの
書込み入力バスを切断しておくことにより容易に制御で
き、又その場合の無条件アクセスの制御は、オペレーテ
ィングシステムによる例外発生時の割り込み処理におい
て、例外を無視するようにして対処してもよい。
【0018】このような態様でプレロード命令を実現す
ると、例えばアセンブラ言語風に命令を表現した場合に
、浮動小数点ロード命令が「floadd  x<i>
,fpr2 」と表して、主記憶装置上の倍精度浮動小
数点データx<i>を、浮動小数点レジスタfpr2に
ロードする命令とすると、「floadd  x<i>
,fpr0 」とした場合にはプレロード命令となる。
【0019】従って、プレロード命令「floadd 
 x<i>,fpr0 」が実行されると、主記憶装置
上の倍精度浮動小数点データx<i>がバッファメモリ
に無ければ、主記憶装置からそのデータを含むブロック
を無条件に読み出してバッファメモリへ格納する処理の
みが実行され、浮動小数点レジスタfpr0の内容は変
わらない。
【0020】次に、プレロード命令をプログラムに自動
挿入するプログラム修正処理について説明する。計算機
は例えば3組の命令実行機構を持ち、2個までの整数型
演算命令又は浮動小数点演算命令と、1個の分岐命令、
浮動小数点演算命令又は整数型演算命令との組合せで、
3個までの命令を並行して実行できるものとする。
【0021】このような計算機の並行実行機能を有効に
利用できるプログラムを生成するようにしたコンパイラ
はよく知られているとおりである。即ち、通常のコンパ
イラのように所定の言語の原始プログラムを解析して、
目的の計算機のアセンブラ表現の命令のコードを通常の
ように生成すると、各命令におけるデータの定義と他の
命令におけるそのデータの参照との関係である、いわゆ
る命令間のデータ依存関係を解析し、データ依存関係か
ら見て矛盾を生じないような命令の順序付けを行う。
【0022】この順序付けに基づいて、並行実行の可能
な命令を順次1組の命令に詰めることにより、例えば図
2(a)の原始プログラムから図2(b)に示す目的プ
ログラムを生成する。図2(b)の各行が各命令組を示
し、各命令組に並ぶ3個の命令が並列に実行される命令
である。
【0023】図2(b)で「nop 」はダミーの無効
命令、「brc 」は分岐命令であり、その他は演算命
令であって、オペランドの「gpr4」等は汎用レジス
タ#4等、「fpr5」等は浮動小数点レジスタ#5等
を表し、「x<i>」等はデータ名で、主記憶装置上の
データを指示するアドレス情報に相当する。
【0024】この例に見るように、3個の命令実行機構
があっても、それをすべて埋めることができないでno
p 命令を詰める場合ができるので、その位置でnop
 命令に代えて適当なプレロード命令を実行すれば、プ
レロード命令を実行するための元のプログラムへの影響
が無くて効率がよい。
【0025】図3は、プログラム修正装置による、プレ
ロード命令挿入処理の一例を示す処理の流れ図である。 ロード命令のみを対象にして、プレロード命令を前置す
る場合を考えて、プログラム修正装置は、コンパイラか
らロード命令を受け取って次のように処理する。
【0026】先ず処理ステップ20で、そのロード命令
の置かれた命令組に先行する命令組でnop 命令を持
つ組を探す。これは例えばロード命令の命令組に先行す
る一定個数の命令組を、先頭からロード命令の命令組の
前まで走査して行う。
【0027】処理ステップ21で識別して、nop 命
令のある先行命令組が有った場合には、処理ステップ2
2で、その命令組のnop 命令の1個をロード命令に
置き換え、但しそのロード命令のロード先レジスタの番
号を#0にすることによって、プレロード命令に変更す
る。
【0028】処理ステップ20で、該当する命令組が無
かった場合には、例えばこのロード命令については、プ
レロード命令の挿入をしないことにして、処理を終わる
。 図2(b)のプログラムに、以上の処理によってプレロ
ード命令を挿入した結果を(c)に示す。図2(c)で
網かけをした命令が、挿入されたプレロード命令であっ
て、命令組4に挿入されたプレロード命令は、命令組6
の浮動小数点ロード命令に対応し、命令組7に挿入され
たプレロード命令は、命令組10の浮動小数点ロード命
令に対応する。
【0029】
【発明の効果】以上の説明から明らかなように本発明に
よれば、主記憶装置のデータの複写をバッファメモリに
保持する計算機において、本来のプログラムで必要な命
令の実行に与える影響を少なくして、事前に必要なデー
タをバッファメモリに準備することができる命令が設け
られ、プログラムの適切な位置にプレロード命令を自動
挿入することができるという著しい工業的効果がある。
【図面の簡単な説明】
【図1】  本発明の構成を示すブロック図
【図2】 
 プログラム例を示す図
【図3】  プレロード命令挿入処理の流れ図
【符号の
説明】 1  主記憶装置 2  バッファメモリ 3  プレロード命令 4  プレロード命令の実行手段 5  プログラム修正装置 6  プログラム 10  オペランド識別部 11  命令生成部 12  挿入処理部 13  修正したプログラム 20〜22  処理ステップ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】  主記憶装置(1)と、バッファメモリ
    (2)とを有し、該主記憶装置上のデータをオペランド
    として参照するように指定した命令を実行する場合に、
    該バッファメモリに該データの複写が有れば、該複写を
    参照し、該複写が無ければ、該データを含む所定長のデ
    ータを該主記憶装置から読み出して該バッファメモリに
    保持すると共に該データを参照するようにした計算機に
    おいて、プレロード命令(3)を設け、該プレロード命
    令に、所定の命令形式に従って該主記憶装置上のアドレ
    スをオペランドに指定する情報を設け、該プレロード命
    令を実行する手段(4)は、該バッファメモリ(2)に
    ついて該アドレスのデータの複写の有無を識別する処理
    と、該複写が無い場合に、該データを含む所定長のデー
    タを、該主記憶装置から無条件に読み出して該バッファ
    メモリに保持する処理とのみを実行して当該プレロード
    命令の実行を完了するように構成されていることを特徴
    とするプレロード命令実行装置。
  2. 【請求項2】  請求項1記載の計算機で実行するよう
    に構成されたプログラム(6)の、該計算機の命令から
    なる命令列について、各該命令で参照するオペランドが
    請求項1記載の主記憶装置上のデータである場合に、当
    該命令列中の該命令に先行して実行されるべき所定位置
    が所定の条件を満足する場合には、該データをオペラン
    ドに指定する請求項1記載のプレロード命令を生成し、
    該プレロード命令を該所定位置に挿入するように構成さ
    れている(5)ことを特徴とするプログラム修正装置。
  3. 【請求項3】  前記計算機は、並列に実行可能な複数
    の命令実行機構を有し、前記命令列は、該命令実行機構
    の個数までの、並列に実行する命令の群ごとを命令組と
    して、該命令組の列からなり、前記所定位置を、該命令
    実行機構の個数に満たない個数の命令からなる該命令組
    に設ける、請求項2記載のプログラム修正装置。
JP3140572A 1991-06-13 1991-06-13 プレロード命令実行装置及びプログラム修正装置 Withdrawn JPH04365133A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3140572A JPH04365133A (ja) 1991-06-13 1991-06-13 プレロード命令実行装置及びプログラム修正装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3140572A JPH04365133A (ja) 1991-06-13 1991-06-13 プレロード命令実行装置及びプログラム修正装置

Publications (1)

Publication Number Publication Date
JPH04365133A true JPH04365133A (ja) 1992-12-17

Family

ID=15271809

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3140572A Withdrawn JPH04365133A (ja) 1991-06-13 1991-06-13 プレロード命令実行装置及びプログラム修正装置

Country Status (1)

Country Link
JP (1) JPH04365133A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002251321A (ja) * 2001-02-21 2002-09-06 Handotai Rikougaku Kenkyu Center:Kk キャッシュメモリシステム装置
JP2005122506A (ja) * 2003-10-17 2005-05-12 Matsushita Electric Ind Co Ltd コンパイラ装置
JP2011076314A (ja) * 2009-09-30 2011-04-14 Nec Corp ハードウェアプロセッサおよびハードウェアプロセッサ制御方法並びに情報処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002251321A (ja) * 2001-02-21 2002-09-06 Handotai Rikougaku Kenkyu Center:Kk キャッシュメモリシステム装置
JP2005122506A (ja) * 2003-10-17 2005-05-12 Matsushita Electric Ind Co Ltd コンパイラ装置
JP2011076314A (ja) * 2009-09-30 2011-04-14 Nec Corp ハードウェアプロセッサおよびハードウェアプロセッサ制御方法並びに情報処理装置

Similar Documents

Publication Publication Date Title
CA2082408C (en) System and method for preserving source instruction atomicity in translated program code
US5692169A (en) Method and system for deferring exceptions generated during speculative execution
US7337439B1 (en) Method for increasing the speed of speculative execution
US5778219A (en) Method and system for propagating exception status in data registers and for detecting exceptions from speculative operations with non-speculative operations
US7458069B2 (en) System and method for fusing instructions
JP3093624B2 (ja) 投機例外を処理する方法及び装置
JPH0429093B2 (ja)
JPH05143332A (ja) 命令スケジユーラを備えたコンピユータ・システム及び入力命令シーケンスを再スケジユールする方法
JP2000112758A (ja) 投機的実行中に発生する例外を遅延させるシステム及び方法
US6539471B2 (en) Method and apparatus for pre-processing instructions for a processor
US6728865B1 (en) Pipeline replay support for unaligned memory operations
US10338926B2 (en) Processor with conditional instructions
US6295601B1 (en) System and method using partial trap barrier instruction to provide trap barrier class-based selective stall of instruction processing pipeline
KR950012118B1 (ko) 병렬 파이프라인 명령 처리 장치
JPH04365133A (ja) プレロード命令実行装置及びプログラム修正装置
JPH08161169A (ja) Vliw方式の計算機システム及びvliwの解釈・実行方法
JPH04506878A (ja) データ処理装置
JP2814683B2 (ja) 命令処理装置
JPH0954694A (ja) パイプラインプロセッサおよびその処理方法
US11347506B1 (en) Memory copy size determining instruction and data transfer instruction
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JP2883488B2 (ja) 命令処理装置
JP2806093B2 (ja) ロード・ストア処理装置
JP3853309B2 (ja) マイクロプロセッサおよび該マイクロプロセッサで実行されるプログラムのためのコンパイル装置
JP3743155B2 (ja) パイプライン制御型計算機

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19980903