JPH0476731A - パイプライン型マイクロプロセッサのアセンブラ処理方式 - Google Patents

パイプライン型マイクロプロセッサのアセンブラ処理方式

Info

Publication number
JPH0476731A
JPH0476731A JP19026690A JP19026690A JPH0476731A JP H0476731 A JPH0476731 A JP H0476731A JP 19026690 A JP19026690 A JP 19026690A JP 19026690 A JP19026690 A JP 19026690A JP H0476731 A JPH0476731 A JP H0476731A
Authority
JP
Japan
Prior art keywords
assembler
instructions
instruction
data dependency
memory
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
JP19026690A
Other languages
English (en)
Inventor
Tetsuo Ohama
大濱 哲夫
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP19026690A priority Critical patent/JPH0476731A/ja
Publication of JPH0476731A publication Critical patent/JPH0476731A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、パイプライン方式のマイクロプロセッサ用ア
センブラの処理方式に間し、特にアセンブラ命令のスケ
ジューリング方式に関する。
〔従来の技術〕
パイプライン方式のマイクロプロセッサでは、ハードウ
ェアがインタロック機構を持たない場合、パイプライン
が正常に動作するように、アセンブラがスケジューリン
グを行わなければならない。またインタロック機構を持
つ場合も、インタロックを最小限に抑えてオブジェクプ
ログラムの実行効率を上げるために、スケジューリング
を行う必要がある。
従来のインタロック機構を持たないマイクロプロセッサ
のアセンブラの処理方式を第2図により説明する。第2
図は、従来のアセンブラの処理方式による処理構成図を
示し、ユーザによって書かれ、またはコンパイラによっ
て出力されたアセンブラ命令列1は、基本ブロック検出
部2で、途中に分岐命令を含まず外から分岐してくるこ
ともないアセンブラ命令列である、基本ブロック3に分
割される。データ依存関係解析部4は、この基本ブロッ
ク3のアセンブラ命令の間のデータ依存関係を解析し、
その結果をデータ依存関係情報5として出力する。スケ
ジューリング部7は、このデータ依存関係情報5を参照
して基本ブロック3のアセンブラ命令列をスケジューリ
ングし、アセンブラ命令列8を出力する。オブジェクト
出力部9は、スケジュールされたアセンブラ命令列8を
読込み、オブジェクトモジュール10として出力する。
次に、データ依存関係解析部4の処理を説明する。第1
表は、5つのアセンブラ命令からなる基本ブロックの一
例を示す。
第1表 ここで、1d命令の実行に2クロツク、add、st、
jr命令の実行に1クロツクかかるものとする。データ
依存関係解析部4は、アセンブラ命令の間にデータ依存
関係があるか解析し、データ依存関係があるアセンブラ
命令の組をデータ依存ノ 関係情報5として出力する。ここでは、2つのアセンブ
ラ命令について次のいずれかが成り立つとき、または、
成り立つ可能性のあるとき、データ依存関係があるとす
る。
(1)第1のアセンブラ命令がレジスタかメモリに書き
込んだデータを第2のアセンブラ命令が使用している。
(2)第1のアセンブラ命令がデータを使用しなレジス
タかメモリに第2のアセンブラ命令を書込んでいる。
(3)第1のアセンブラ命令がデータをレジスタからメ
モリに書込んだ後、第2のアセンブラ命令が同じレジス
タかメモリにデータを書込んでいる6デ一タ依存関係解
析部4は、各アセンブラ命令の組に対して次のような解
析を行う6 (1)アセンブラ命令■でレジスタr1に入れた内容を
アセンブラ命令■で使用しているので、2つのアセンブ
ラ命令の間にはデータ依存関係かある。
(2)アセンブラ命令■は、メモリからデータを読込ん
でおり、アセンブラ命令■はメモリにデータを書込んで
いる。2つの命令が同じアドレスのメモリをアクセスす
る可能性はないが、それを知るためには、2つの命令の
間の命令でレジスタspの内容が変っていないことと、
2つの命令のディスプレイスメントの値が異なることを
調べなければならない。しかし、これを行う手段を持た
ない従来のアセンブラは、2つの命令が同じアドレスの
メモリをアクセスする可能性を否定できず、2つの命令
の間にはデータ依存関係があるとする。
(3)アセンブラ命令■とアセンブラ命令■は、どちら
もメモリからデータを読込んでいるので、データ依存関
係はない。
(4)アセンブラ命令■とアセンブラ命令■、アセンブ
ラ命令■と一アセンブラ命令■、アセンブラ命令■とア
センブラ命令■、アセンブラ命令■とアセンブラ命令■
の間には、3つの条件のうちどれも成り立たないので、
データ依存関係はない。
(5〉アセンブラ命令■でレジスタr2に入れた内容を
アセンブラ命令■で使用しているので、2つのアセンブ
ラ命令の間にはデータ依存関係がある。
(6)アセンブラ命令■はメモリにデータを書込んでお
り、アセンブラ命令■はメモリからデータを読込んでい
る。2つの命令が同じアドレスのメモリをアクセスする
可能性はないが、それを知るには、2つの命令の間の命
令でレジスタspの内容が変っていないことと、2つの
命令のディスプレイスメントの値が異なることを調べな
ければならない。しかし、これを行う手段を持たない従
来のアセンブラは、2つの命令が同じアドレスのメモリ
をアクセスする可能性を否定できず、2つの命令の間に
はデータ依存関係があるとする。
(7)アセンブラ命令■でレジスタr3に入れた内容を
アセンブラ命令■で使用しているので、2つのアセンブ
ラ命令の間にはデータ依存関係がある。
データ依存関係解析部4は、以上の解析の結果を、次の
第2表に示すように、データ依存関係情報5として出力
する。データ依存関係情報5は、データ依存関係のある
2つのアセンブラ命令の番号の組を、番号の小さいもの
を左にして並べたものである。
第2表 スケジューリング部7は、データ依存関係情報5を参照
してスジューリングを行い、スケジューリングされたア
センブラ命令列8を出力する。第1表の基板ブロックは
、命令の並替えが行えないので、作用のない命令である
nop命令が必要な場所に挿入され、対応するアセンブ
ラ命令列8は、第3表のようになる。このアセンブラ命
令列の実行には7クロツクを必要とする。
〔以下余白〕
第3表 このアセンブラの処理方式では、同じアドレスのメモリ
をアクセスする可能性のない2つのアセンブラ命令の順
序を変えられないため命令の並替えが制限され、最終的
に得られるオブジェクトモジュール10の実行効率が悪
くなってしまう。
〔発明が解決しようとする課題〕
上述したように従来のアセンブラの処理方式では、メモ
リアクセスのアドレスを解析する手段がないため、アセ
ンブラ命令の並べ替えが制限され、その結果、最終的に
得られるオブジェクトモジュール10の実行効率が悪く
なってしまうという問題点がある。
本発明の目的は、このような問題を解決し、メモリをア
クセスするアセンブラ命令に対してそのアドレスを解析
する手段を設けることにより、その解析結果をスケジュ
ーリングに用いることができ、オブジェクトモジュール
の実行効率を改善したパイプライン型マイクロプロセッ
サのアセンブラ処理方式を提供することにある。
〔課題を解決するための手段〕
本発明のパイプライン型マイクロプロセッサのアセンブ
ラ処理方式の構成は、パイプライン方式のマイクロプロ
セッサに用いられるアセンブラ処理方式において、メモ
リをアクセスする複数のアセンブラ命令が同じアドレス
をアクセスする可能性を解析するメモリアクセス解析手
段と、このメモリアクセス解析手段の解析結果を用いて
前記アセンブラ命令の間のデータ依存関係情報を出力す
るデータ依存関係解析手段と、前記データ依存関係情報
を用いて前記アセンブラ命令の並びかえとなるスケジュ
ーリングを行うスケジューリング手段とを備えることを
特徴とする。
本発明において、メモリアクセス解析手段が、2つの命
令の間の命令でレジスタの内容が変えられていないこと
と、これら2つの命令のディスプレイスメントの値の異
なることを調べるものであることができる。
〔実施例〕
次に、本発明の実施例を図面を参照して説明する。
第1図は本発明の一実施例の処理方式を説明するフロー
図である。ユーザによって書かれ、またはコンパイラに
よって出力されたアセンブラ命令列1は、基本ブロック
検出部2で、途中に分岐命令を含まず外から分岐してく
ることもないアセンブラ命令列である基本ブロック3に
分割される。
データ依存関係解析部4は、この基本プロ・ンク3のア
センブラ命令の間のデータ依存関係を解析し、その結果
をデータ依存関係情報5として出力する。このときメモ
リをアクセスするアセンブラ命令の組に対しては、デー
タ依存関係解析部4は2つの命令が同じアドレスをアク
セスする可能性があるかどうかをメモリアクセス解析部
6に問い合せを行い、メモリアクセス解析部6が2つの
命令が同じアドレスをアクセスする可能性があるかどう
かを判断し、データ依存関係解析部4はこの結果を用い
てデータ依存関係情報らを出力する。
スケジューリング部7は、データ依存関係情報5を参照
して基本ブロック3のアセンブラ命令列をスケジューリ
ングし、アセンブラ命令列8を出力する。オブジェクト
出力部9は、スケジュールされたアセンブラ命令列8を
読込み、オブジェクトモジュール10を出力する。
次に、前述の第1表を参照して、データ依存関係解析部
4とメモリアクセス解析部6の処理を説明する。第1表
では、1d命令の実行に2クロツク、add、st、j
r命令の実行に1クロツクかかるものとする。データ依
存関係解析部4は、アセンブラ命令の間にデータ依存関
係があるか解析し、データ依存関係があるアセンブラ命
令の組をデータ依存関係情報5として出力する。データ
依存関係解析部4とメモリアクセス解析部6は、各アセ
ンブラ命令の組に対して次のような解析を行う。
まず、次のアセンブラ命令の組に対しては、従来例と全
く同じ解析が行われる。
■と■、■と■、■と■、■と■、■と■、■と■、■
と■、■と■、 このほかの組(■と■、■と■)に対しては、次のよな
解析が行われる。
(1)アセンブラ命令■とアセンブラ命令■は、共にメ
モリをアクセスしている。この場合、データ依存関係解
析部4は、メモリアクセス解析部6に2つの命令が同じ
アドレスをアクセスする可能性があるか問い合わせる。
メモリアクセス解析部6は、2つの命令の間の命令でレ
ジスタspの内容が変えられていないことと、2つの命
令のディスプレイスメントの値が異なることから、2つ
の命令が同じアドレスのメモリをアクセスする可能性は
ないと判断する。データ依存関係解析部4は、この結果
から2つのアセンブラ命令の間にデータ依存関係はない
と判断する。
(2)アセンブラ命令■とアセンブラ命令■はともにメ
モリをアクセスしている。この場合、データ依存関係解
析部4は、メモリアクセス解析部6に2つの命令が同じ
アドレスをアクセスする可能性があるか問い合わせる。
メモリアクセス解析部6は、2つの命令の間の命令でレ
ジスタspの内容が変えられていないことと、2つの命
令のディスプレイスメントの値が異なることから、2つ
の命令が同じアドレスのメモリをアクセスする可能性は
ないと判断する。データ依存関係解析部4は、この結果
から2つのアセンブラ命令の間にデータ依存関係はない
と判断する。
データ依存関係解析部4は以上の解析の結果を、第4表
に示すような、データ依存関係情報5として出力する。
第4表 第5表 スケジューリング部7は、データ依存関係情報5を参照
してスケジューリングを行い、スケジューリングされた
アセンブラ命令列8を出力する。
第1表の基本ブロックに対しては、アセンブラ命令■が
アセンブラ命令■の前に移動され、対応するアセンブラ
命令列8は第5表のようになる。このアセンブラ命令列
の実行に必要なりロック数は5であり、従来例に示した
アセンブラ命令列に比べて2クロツク短縮されている。
〔以下余白〕
〔発明の効果〕 以上説明したように、本発明のアセンブラの処理方式は
、メモリをアクセスするアセンブラ命令に対してそのア
ドレスを解析し、その結果を用いてスケジューリングを
行うことができるなめ、より実行効率の良いオブジェク
トプログラムを生成することができるという効果がある
【図面の簡単な説明】
第1図は本発明の実施例を示すアセンブラの処理方式の
処理フロー図、第2図は従来のアセンブラの処理方式の
一例の処理フロー図である。 1・・・アセンブラ命令列、2・・・基本ブロック検出
部、3・・・基本ブロック、4・・・データ依存関係解
析部、5・・・データ依存関係情報、6・・・メモリア
クセス解析部、7・・・スケジューリング部、8・・・
アセンブラ命令列、9・・・オブジェクト出力部、1o
・・・オブジェクトモジュール。

Claims (1)

  1. 【特許請求の範囲】  1、パイプライン方式のマイクロプロセッサに用いら
    れるアセンブラ処理方式において、メモリをアクセスす
    る複数のアセンブラ命令が同じアドレスをアクセスする
    可能性を解析するメモリアクセス解析手段と、このメモ
    リアクセス解析手段の解析結果を用いて前記アセンブラ
    命令の間のデータ依存関係情報を出力するデータ依存関
    係解析手段と、前記データ依存関係情報を用いて前記ア
    センブラ命令の並びかえとなるスケジューリングを行う
    スケジューリング手段とを備えることを特徴とするパイ
    プライン型マイクロプロセッサのアセンブラ処理方式。 2、メモリアクセス解析手段が、2つの命令の問の命令
    でレジスタの内容が変えられていないことと、これら2
    つの命令のディスプレイスメントの値の異なることを調
    べるものである請求項1記載のパイプライン型マイクロ
    プロセッサのアセンブラ処理方式。
JP19026690A 1990-07-18 1990-07-18 パイプライン型マイクロプロセッサのアセンブラ処理方式 Pending JPH0476731A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19026690A JPH0476731A (ja) 1990-07-18 1990-07-18 パイプライン型マイクロプロセッサのアセンブラ処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19026690A JPH0476731A (ja) 1990-07-18 1990-07-18 パイプライン型マイクロプロセッサのアセンブラ処理方式

Publications (1)

Publication Number Publication Date
JPH0476731A true JPH0476731A (ja) 1992-03-11

Family

ID=16255288

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19026690A Pending JPH0476731A (ja) 1990-07-18 1990-07-18 パイプライン型マイクロプロセッサのアセンブラ処理方式

Country Status (1)

Country Link
JP (1) JPH0476731A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628182A (ja) * 1992-04-16 1994-02-04 Matsushita Electric Ind Co Ltd 情報処理装置
JPH06208462A (ja) * 1991-02-27 1994-07-26 Sun Microsyst Inc パイプラインプロセッサ用のコストを基にしてヒューリスティックに命令をスケージューリングする方法および装置
WO2001086467A1 (fr) * 2000-05-12 2001-11-15 Fujitsu Limited Controleur de donnees et controleur atm

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
EFFICIENT INSTRUCTION SCHEDULING FOR A PIPELINED ARCHITECTURE=1986 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06208462A (ja) * 1991-02-27 1994-07-26 Sun Microsyst Inc パイプラインプロセッサ用のコストを基にしてヒューリスティックに命令をスケージューリングする方法および装置
JPH0628182A (ja) * 1992-04-16 1994-02-04 Matsushita Electric Ind Co Ltd 情報処理装置
WO2001086467A1 (fr) * 2000-05-12 2001-11-15 Fujitsu Limited Controleur de donnees et controleur atm
US6895473B2 (en) 2000-05-12 2005-05-17 Fujitsu Limited Data control device and an ATM control device

Similar Documents

Publication Publication Date Title
JP2818249B2 (ja) 電子計算機
US6557095B1 (en) Scheduling operations using a dependency matrix
US5710902A (en) Instruction dependency chain indentifier
US6334182B2 (en) Scheduling operations using a dependency matrix
US5404469A (en) Multi-threaded microprocessor architecture utilizing static interleaving
Mosberger Memory consistency models
EP1124182A2 (en) Communicating instruction results in processors and compiling methods for processors
Postiff et al. The Limits of Instruction Level Parallelism in ĖPEC95 Applications
US6175910B1 (en) Speculative instructions exection in VLIW processors
Kohli et al. A characterization of scalable shared memories
US7673294B2 (en) Mechanism for pipelining loops with irregular loop control
US5642523A (en) Microprocessor with variable size register windowing
JP2006523883A (ja) Ilp及びtlpを利用する再構成可能なプロセッサアレイ
JPH0476731A (ja) パイプライン型マイクロプロセッサのアセンブラ処理方式
US5542079A (en) Data driven processor for reading data from storage to apply prescribed operation in response to operation updating instruction and updating the contents of the storage
Kawano et al. Fine-grain multi-thread processor architecture for massively parallel processing
KR20150051083A (ko) 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
US20040034858A1 (en) Programming a multi-threaded processor
Thorelli The EDA multiprocessing model
US7024664B2 (en) Symbolic assembly language
JP2883465B2 (ja) 電子計算機
JPH03135630A (ja) 命令スケジューリング方式
Feuerhahn A data-flow driven resource allocation in a retargetable microcode compiler
JP4006887B2 (ja) コンパイラ、プロセッサおよび記録媒体
JP3327598B2 (ja) データ処理方法およびデータ処理装置