JPH04263323A - 機械語命令列並べ換え方式 - Google Patents

機械語命令列並べ換え方式

Info

Publication number
JPH04263323A
JPH04263323A JP3043987A JP4398791A JPH04263323A JP H04263323 A JPH04263323 A JP H04263323A JP 3043987 A JP3043987 A JP 3043987A JP 4398791 A JP4398791 A JP 4398791A JP H04263323 A JPH04263323 A JP H04263323A
Authority
JP
Japan
Prior art keywords
instruction
information
input
instructions
output
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
JP3043987A
Other languages
English (en)
Inventor
Yuji Ogawa
雄司 小川
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 JP3043987A priority Critical patent/JPH04263323A/ja
Publication of JPH04263323A publication Critical patent/JPH04263323A/ja
Priority to US08/387,393 priority patent/US5568623A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はRISCシステムのよう
に機械語原始プログラム中の命令列の組み合わせにいく
つかの制約を有する計算機システムに関する。
【0002】
【従来の技術】近年、より高性能な計算機に対する需要
から縮小命令セット計算機(ReducedInstr
uction set computer,以下RIS
Cと称する)システムが出現してきた。このようなシス
テムは今までの計算機の中央処理装置(Centora
l Processing Unit, 以下CPUと
称する)の中で定義されていた命令の種類を削減したり
、各機械命令資源の制御を取り除いたりして、CPUの
処理負担を緩和することによって高性能なシステムを実
現している。このため、言語処理系等、RISCシステ
ムを機械語レベルで使用するためにはいくつかのCPU
から欠落した機能の肩代わりをしなくてはならなかった
。たとえば、ある命令の結果をそのすぐ次の命令で利用
することができない、分岐命令の次の命令はその分岐の
正否に関わらず実行されるといったことである。そのた
め命令の同期をとるための無動作命令(No−OPer
ation  命令、以下NOP命令と称する)を挿入
したり、別の命令をNOP命令の代わりに移動したりし
て使用しなければならなかった。
【0003】
【発明が解決しようとする課題】上述したようにRIS
CシステムにはCPUの単純化により機械語を利用する
ためには従来の計算機システムと同様に処理の流れを設
計どおりに逐次的に記述することができず、命令を移動
したりNOP命令を挿入したりしなくてはならないため
、言語処理系等、機械語命令を生成するシステムにとっ
て大きな負担となっていた。
【0004】
【課題を解決するための手段】本発明の機械語命令列並
べ換え方式は、予め各機械語命令の入力資源、出力資源
および出力結果が利用可能になるまでの遅延の有無の情
報を定義し、ブロック命令列の各命令の入力資源と出力
資源の情報を抽出する入出力資源抽出手段、入出力資源
の情報から命令列内の各命令間の依存性の情報を作成す
る命令依存情報作成手段、および命令間の依存性に適し
た考えられ得るすべての命令列を抽出する適正命令列抽
出手段とを有している。
【0005】
【実施例】次に、本発明について図面を参照して説明す
る。
【0006】図1は、本発明の構成を表す図である。入
出力資源抽出手段1ではブロック命令列4で使用してい
る命令に対する情報を機械語命令定義5より得て、入出
力資源検索部6によって入出力資源情報7を得る。命令
依存情報作成手段2では入出力資源抽出手段1によって
得られた入出力資源情報7により、命令依存情報作成部
8が命令依存情報9を出力する。さらに、適正命令列抽
出手段3は命令依存情報作成手段2によって得られた命
令依存情報9から、適正命令列抽出部10が適正命令列
11を出力する。
【0007】今、図2のような命令列を考える。該命令
列は制御の入口が第1命令で、以下最終命令まで制御が
抜け出さないブロック命令列である。該命令列は「LA
BEL1によって位置付けられるメモリの内容を1減じ
、その結果とLABEL2によって位置付けられるメモ
リの内容とが等しければLABEL3へ分岐する。」こ
とを意味している。該命令列の第1命令LD201はロ
ード命令であり、第一オペランドが示すレジスタに第二
オペランドが示すメモリの内容を転送する。第二命令S
UB202は減算命令であり、第一オペランドによって
示されるレジスタの内容から第二オペランドで示される
即値を減ずる。第三命令ST203はストア命令であり
、第一オペランドによって示されるレジスタの内容を第
二オペランドによって示されるメモリに転送する。第四
命令は第一命令と同様ロード命令である。第五命令BE
Q205は第一オペランドおよび第二オペランドで示さ
れる2つのレジスタの内容を比較し、それらが等しけれ
ば、第三オペランドで示されるプログラム位置に分岐す
る。
【0008】ここで、これらの命令に対して図5で示す
ような特性が定義されていることとする。LD命令は第
二オペランドが入力資源、第一オペランドが出力資源で
あり、結果の第一オペランドの内容はLD命令のすぐ次
の命令では参照できない。SUB命令は第一、第二オペ
ランドが入力資源であり、第一オペランドは出力資源で
もある。ST命令は第一オペランドが入力資源で、第二
オペランドが出力資源である。BEQ命令は第一、第二
オペランドが入力資源で、出力資源はない。ただし、分
岐命令であるためBEQ命令のすぐ次の命令は分岐の正
否にかかわらず実行されるため、どちらに制御が渡って
も問題の無い命令を割り当てなくてはならない。
【0009】これらの命令特性により図2の命令列の順
序を換えないで正しく動作をさせるためには入力資源の
待ち合わせや分岐命令の次の命令にNOP命令を挿入し
なくてはならない(図3)。しかし、これらの命令の中
には特に依存関係を持たない命令があり、いくつかの並
べ換えが可能であるため、図4のように並べるとブロッ
ク命令列の機能を損なうことなくNOP命令を取り除く
ことができる。この命令列は次の手順にしたがって求め
る。
【0010】図2のブロック命令列と図5の機械語命令
定義より、入出力資源検索部6は図6に示す入出力資源
情報を作成する。ここで、簡単のため図2に示した各命
令に対して出現順に命令番号を割り当て、以降命令番号
によって各命令を示す。図6は命令番号1から5までの
各命令の入力資源および出力資源を表している。この情
報より、命令依存情報作成部8は各命令の入力資源を作
成している命令と入力資源を破壊する可能性のある命令
とを抽出して図7に示す命令依存情報を作成する。図7
は各命令に対するブロック命令列内の入力資源を作成し
ている命令と並べ換えによって入力資源を破壊する可能
性がある命令とを列挙している。さらに、この情報から
適正命令列抽出部10は各命令において、「該命令より
も前に入力資源作成命令がなくてはいけない。」「該命
令と入力資源作成命令との間に該命令に対する入力資源
破壊命令がきてはいけない。」「分岐命令は最終命令も
しくはその1つ前の命令位置にこなくてはならない。」
の制限に従うものとして図8に示す命令列の候補を抽出
する。図8で‘N’はNOP命令を意味する。最後に図
8の中から最も命令数の少ない(NOP命令が少ない)
命令列を選ぶことによって図4の命令列が求められる。
【0011】
【発明の効果】以上説明したように、本発明の機械語命
令列並べ換え方式はRISCシステムの制約にとらわれ
ず従来どおりの機械語命令記述を可能にするとともにR
ISCシステムの性能を十分発揮することが可能となる
という効果がある。
【図面の簡単な説明】
【図1】本発明の全体構成図である。
【図2】ブロック命令列の一例である。
【図3】ブロック命令列の一例である。
【図4】ブロック命令列の一例である。
【図5】機械語命令定義の一例である。
【図6】ブロック命令列の入出力資源情報の一例である
【図7】ブロック命令列の命令依存情報の一例である。
【図8】ブロック命令列の適正命令列の一例である。
【符号の説明】 1  入出力資源抽出手段 2  命令依存情報作成手段 3  適正命令列抽出手段

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  機械語で記述された原始プログラム中
    の命令列で、ある命令の結果をそのすぐ次の命令で利用
    できない、もしくは分岐命令のすぐ次の命令が分岐の正
    否に関わらず実行されるといった特徴を持つ計算機シス
    テムで、このような特徴を意識せずに記述された機械語
    原始プログラムの命令列の制御の入口と出口がただ一つ
    となるブロック命令列において、予め各機械語命令の入
    力資源、出力資源および出力結果が利用可能になるまで
    の遅延の有無の情報を定義し、ブロック命令列の各命令
    の入力資源と出力資源の情報を抽出する入出力資源抽出
    手段、入出力資源の情報から命令列内の各命令間の依存
    性の情報を作成する命令依存情報作成手段、および命令
    間の依存性に適した考えられ得るすべての命令列を抽出
    する適正命令列抽出手段とを有することを特徴とする機
    械語命令列並べ換え方式。
JP3043987A 1991-02-18 1991-02-18 機械語命令列並べ換え方式 Pending JPH04263323A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3043987A JPH04263323A (ja) 1991-02-18 1991-02-18 機械語命令列並べ換え方式
US08/387,393 US5568623A (en) 1991-02-18 1995-02-13 Method for rearranging instruction sequence in risc architecture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3043987A JPH04263323A (ja) 1991-02-18 1991-02-18 機械語命令列並べ換え方式

Publications (1)

Publication Number Publication Date
JPH04263323A true JPH04263323A (ja) 1992-09-18

Family

ID=12679074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3043987A Pending JPH04263323A (ja) 1991-02-18 1991-02-18 機械語命令列並べ換え方式

Country Status (2)

Country Link
US (1) US5568623A (ja)
JP (1) JPH04263323A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877021A (ja) * 1994-09-01 1996-03-22 Fujitsu Ltd 割込処理装置および方法
US5721893A (en) * 1996-05-14 1998-02-24 Hewlett-Packard Company Exploiting untagged branch prediction cache by relocating branches
US6351822B1 (en) * 1999-03-05 2002-02-26 Seagate Technology Llc Method and apparatus for remapping read only memory locations
IL160891A0 (en) 2004-03-16 2004-08-31 Auto-mix needle
US8364751B2 (en) * 2008-06-25 2013-01-29 Microsoft Corporation Automated client/server operation partitioning
CN107871194B (zh) 2016-09-28 2020-10-16 北京北方华创微电子装备有限公司 一种生产线设备的调度方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4486830A (en) * 1982-03-30 1984-12-04 Cincinnati Milacron Inc. Programmable control apparatus and method
JPH0754461B2 (ja) * 1985-02-08 1995-06-07 株式会社日立製作所 情報処理装置
US4789925A (en) * 1985-07-31 1988-12-06 Unisys Corporation Vector data logical usage conflict detection
US4814976C1 (en) * 1986-12-23 2002-06-04 Mips Tech Inc Risc computer with unaligned reference handling and method for the same
US4891754A (en) * 1987-07-02 1990-01-02 General Datacomm Inc. Microinstruction sequencer for instructing arithmetic, logical and data move operations in a conditional manner
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
US5185868A (en) * 1990-01-16 1993-02-09 Advanced Micro Devices, Inc. Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
US5303377A (en) * 1990-03-27 1994-04-12 North American Philips Corporation Method for compiling computer instructions for increasing instruction cache efficiency

Also Published As

Publication number Publication date
US5568623A (en) 1996-10-22

Similar Documents

Publication Publication Date Title
US10810010B2 (en) Enhanced security computer processor with mentor circuits
US5710902A (en) Instruction dependency chain indentifier
US6243864B1 (en) Compiler for optimizing memory instruction sequences by marking instructions not having multiple memory address paths
EP1050808B1 (en) Computer instruction scheduling
US10061511B2 (en) Computing device with frames/bins structure, mentor layer and plural operand processing
JPH0773036A (ja) 命令シーケンスを識別してタグを付加する方法
US20170083464A1 (en) Processor with frames/bins structure in local high speed memory
US9977693B2 (en) Processor that uses plural form information
US10067878B2 (en) Processor with logical mentor
TW201721410A (zh) 用於執行疊接操作的裝置和方法
KR100316078B1 (ko) 파이프라인방식프로세서
US6272676B1 (en) Method and apparatus for finding loop— lever parallelism in a pointer based application
JPH0738158B2 (ja) コード最適化方法およびコンパイラ・システム
US6862676B1 (en) Superscalar processor having content addressable memory structures for determining dependencies
Golumbic et al. Instruction scheduling beyond basic blocks
US7844799B2 (en) Method and system for pipeline reduction
JPH04263323A (ja) 機械語命令列並べ換え方式
US6564372B1 (en) Critical path optimization-unzipping
JPH06236272A (ja) スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム
JP2008523523A (ja) プログラム内のループ用のコンパイル方法、コンパイル装置およびコンピュータシステム
US6704855B1 (en) Method and apparatus for reducing encoding needs and ports to shared resources in a processor
JPH04365133A (ja) プレロード命令実行装置及びプログラム修正装置
JP2729795B2 (ja) 並列計算機及びその制御方法
KR20030017982A (ko) 브이.엘.아이.더블유. 프로세서에서 부분적으로파이프라인으로 연결된 명령을 동기시키는 방법
JP3743155B2 (ja) パイプライン制御型計算機