JPH06274352A - コンパイラ、及びデータ処理装置 - Google Patents

コンパイラ、及びデータ処理装置

Info

Publication number
JPH06274352A
JPH06274352A JP5085508A JP8550893A JPH06274352A JP H06274352 A JPH06274352 A JP H06274352A JP 5085508 A JP5085508 A JP 5085508A JP 8550893 A JP8550893 A JP 8550893A JP H06274352 A JPH06274352 A JP H06274352A
Authority
JP
Japan
Prior art keywords
instruction
object code
branch
information
register
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.)
Granted
Application number
JP5085508A
Other languages
English (en)
Other versions
JP3499252B2 (ja
Inventor
Shinichi Yoshioka
真一 吉岡
Fumio Arakawa
文男 荒川
Hiroshi Yajima
宏 矢島
Yuugo Kashiwagi
有吾 柏木
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP08550893A priority Critical patent/JP3499252B2/ja
Priority to US08/207,785 priority patent/US5515519A/en
Priority to KR1019940005457A priority patent/KR940022253A/ko
Publication of JPH06274352A publication Critical patent/JPH06274352A/ja
Application granted granted Critical
Publication of JP3499252B2 publication Critical patent/JP3499252B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • 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/30181Instruction operation extension or modification
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Abstract

(57)【要約】 【目的】 コンパイラが把握している情報を、オブジェ
クトコードに取り込んだ形でコンパイラがデータ処理装
置に通知し、データ処理装置が命令実行に際してそれら
の情報を利用してデータ処理の高速化を図ることができ
るようにする。 【構成】 コンパイラは、それが得ているデータ処理装
置のハードウェア制御情報例えば分岐命令の分岐先の位
置やレジスタの使用状況などを、ノーオペレーションの
命令コードを含むオブジェクトコード(NOP命令)に
組み込んでデータ処理装置に通知するようにする。デー
タ処理装置は、ノーオペレーションの命令コードによっ
て実質的に利用されていないデータ処理装置のリソース
を活用して、当該オブジェクトコードに含まれているハ
ードウェア制御情報をデータ処理に反映するように構成
される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、高級言語で記述された
ソースプログラムを翻訳してオブジェクトコードを生成
するコンパイラ、及び該コンパイラで生成されたオブジ
ェクトプログラムを実行するデータ処理装置に関し、例
えば、RISC(Reduced InstructionSet Computer) ア
ーキテクチャに対応されたマイクロコンピュータ及びそ
のためのコンパイラに適用して有効な技術に関する。
【0002】
【従来の技術】ソースプログラムを翻訳してオブジェク
トコードを生成するコンパイラは、その最終段のコード
生成段階において、コンパイラが対象とするデータ処理
装置(ターゲットマシン)のレジスタ構成などのハード
ウェアに依存した情報が解釈されて、変数のレジスタア
ロケーション、命令の並び替えなどが行われる。その際
には、分岐テーブル、ループテーブル、レジスタ割付け
テーブルなどが作成される。これらの情報は、コンパイ
ラがその処理過程で得た、対象データ処理装置のハード
ウェアに依存した制御情報として位置付けることができ
る。
【0003】このとき、マイクロコンピュータなどのデ
ータ処理装置は今日パイプライン処理やキャッシュメモ
リ等の技術を取り入れて処理の高速化が図られており、
これに応じてコンパイラも対象データ処理装置のハード
ウェアに即してオブジェクトの実行効率の向上を図るた
めの各種最適化処理などを行うようになっている。例え
ば、特開平3−135630号や特開平3−28273
4号公報に記載されるようにコンパイラはデータ処理装
置のパイプライン処理やキャッシュメモリ等のハードウ
ェアを意識して命令のスケジューリングを行ったり、コ
ードの最適化や命令スケジューリングのために命令コー
ド列にノーオペレーション命令を挿入したりするものが
ある。このようにコンパイラが、高機能化された対象デ
ータ処理装置のハードウェアに即して実行効率の高いオ
ブジェクトコードを生成しようとすれば、コンパイラ
は、対象データ処理装置のハードウェアに即した各種情
報を受け取ってこれを駆使しなければならない。
【0004】
【発明が解決しようとする課題】しかしながら、従来に
おいては、対象データ処理装置のハードウェアに即した
各種情報がコンパイラに与えられることによって、コン
パイル処理の過程で得られる分岐テーブル、ループテー
ブル、レジスタ割付けテーブルなどの対象データ処理装
置のハードウェアに依存した有用な制御情報は、コンパ
イラ側で利用されるに留まり、オブジェクトコードの形
態を採ってデータ処理装置に与えられることはなかっ
た。分岐処理およびリソース競合といったパイプライン
ハザードの問題、および内蔵可能なキャッシュメモリ容
量の制限といった問題がデータ処理装置に存在すると
き、データ処理装置のハードウェアに即してコンパイラ
が把握している全体的な処理の流れの中で、それらを解
決するために有用な情報がコンパイラ側に有ることが本
発明者によって明らかにされた。
【0005】更に本発明者は、そのような新たな制御情
報をどのようにしてデータ処理装置に通知するかを検討
した。例えば、そのために新たな専用命令を追加しても
確かに必要な情報の伝達は可能であるが、そのための命
令実行サイクル数が増大してしまう。そこで本発明者
は、命令スケジューリングや最適化のために命令列のい
たる所に配置されているノーオペレーション命令に着目
し、ノーオペレーション命令によって実質的に何も行わ
れていないときデータ処理装置のリソースを有効に活用
して、所要の情報伝達に必要な処理を行わせることの有
用性を見い出した。
【0006】本発明の目的は、コンパイラが把握してい
る情報を、オブジェクトコードに取り込んだ形でコンパ
イラがデータ処理装置に通知し、データ処理装置が命令
実行に際してそれらの情報を利用してデータ処理の高速
化を図ることができるようにするものであり、それを実
現するコンパイラと、データ処理装置を提供することに
ある。
【0007】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0008】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0009】すなわち、コンパイラは、それが得ている
データ処理装置のハードウェア制御情報例えば分岐命令
の分岐先の位置やレジスタの使用状況などを、ノーオペ
レーションの命令コードを含むオブジェクトコード(N
OP命令)に組み込んでデータ処理装置に通知するよう
にする。データ処理装置は、ノーオペレーションの命令
コードによって実質的に利用されていないデータ処理装
置のリソースを活用して、当該オブジェクトコードに含
まれているハードウェア制御情報をデータ処理に反映す
るように構成される。上記NOP命令に新たに付加する
機能としては、ノーオペレーションのサイクル数指定機
能、次分岐命令の分岐先アドレス通知機能、サブルーチ
ン戻り番地格納用レジスタ割り付け通知機能、及び命令
ループを通知する機能とされる。データ処理装置は、コ
ンパイラにて生成された前記ノーオペレーションの命令
コードを含むオブジェクトコードを解読する解読手段
と、その解読結果に従って当該オブジェクトコードを実
行する実行手段とを備えて構成される。
【0010】
【作用】上記した手段によれば、対象データ処理装置固
有のハードウェア制御情報を組み込んだオブジェクトプ
ログラムを生成することは、実行効率を向上させたオブ
ジェクトプログラムの生成を可能にする。ノーオペレー
ションの命令コードを含むオブジェクトコードにハード
ウェア制御情報を組み込むことは、ノーオペレーション
の命令コードによって実質的に利用されていないデータ
処理装置のリソースを活用でき、データ処理を一層高速
化する。例えば、前記ノーオペレーションサイクル数通
知機能は、パイプラインピッチを小さくしたスーパーパ
イプラインのアーキテクチャに対応することを容易化す
る。前記分岐通知の機能は、分岐命令の分岐先アドレス
の演算結果を得る時間を待つことなく、分岐先の命令を
フェッチすることを可能にする。前記レジスタ割り付け
通知の機能は、メモリ上に展開されるスタック領域に戻
り番地を格納する代わりに、レジスタの使用を可能に
し、復帰時のための戻り番地取得に比較的低速なメモリ
サクセスを省くことができ、処理速度の向上に寄与す
る。前記ループ通知の機能は、ループ内の命令を保持す
る命令キャッシュメモリに対するエントリの入れ替え抑
止の制御を可能にし、記憶容量に制限のある内蔵キャッ
シュを有効に活用でき、アクセスに時間のかかる外部記
憶装置のアクセス回数を減らすことができ、データ処理
の高速化に寄与する。
【0011】
【実施例】
〔1〕高級言語コンパイラ 図1には本発明の一実施例に係る高級言語コンパイラの
論理構成が示される。図1に示されるコンパイラは、特
に制限されないが、字句解析手段1、構文解析手段2、
中間コード生成手段3、及びコード生成手段4を含み、
C言語などの高級言語によって記述されたソースプログ
ラム5を、オブジェクトプログラム6に翻訳する。
【0012】上記字句解析手段1は、ソースプログラム
5を入力し、その言語の解析を行う。すなわち、ソース
プログラム5を、言語として意味を有する最小単位(単
語またはトークンと称される)に構成する。単語には、
定数、ラベル、予約語、演算子、区切りなどがある。構
文解析手段2では、トークン列となったソースプログラ
ムを受け、文法との適合性を解析する。中間コード生成
手段3は、ソースプログラム5の構成要素である各種の
文、ブロック、手続きなどを認識して中間的な語表現で
ある中間コードに変換する。コード生成手段4は、中間
コードをオブジェクトコードに変換する。すなわち、タ
ーゲットマシン(オブジェクトプログラムを実行すべき
対象データ処理装置)のハードウェア構成に応じて、変
数のレジスタ割り付けなどを行って、オブジェクトプロ
グラム6を生成する。
【0013】最終段のコード生成手段4においては、対
象データ処理装置のレジスタ構成などのハードウェアに
依存した情報が解釈されて、変数のレジスタアロケーシ
ョン、命令の並び替えが行われる。その際には図2に示
す分岐テーブル10及びループテーブル11、そして図
3に示すレジスタ割付けテーブル13が作成される。前
記分岐テーブル10は、分岐命令、その分岐命令のアド
レスのラベル、及び分岐先アドレスのラベルから成る。
レジスタ割付けテーブル13は、命令のアドレスのラベ
ルと、それに対応する変数のレジスタ割付け状態とから
成る。ループテーブル11は、ある命令がプログラムの
ループ構造中にあるかどうかを示すテーブルとされ、命
令のアドレスのラベルと、それがループ構造中にあるか
どうかを示すフラグから成る。
【0014】コンパイラは、コード生成手段4において
命令列の並べ替えなどにより、オブジェクトプログラム
の最適化を行う。例えば分岐命令の高速化を目的に遅延
分岐の遅延スロットに前後の適当な命令を挿入し、適当
な命令がない場合にはノーオペレーションの命令コード
を含む命令(以下NOP命令とする)を挿入する。すな
わち、RISCアーキテクチャのコンピュータにおいて
は、分岐時のパイプラインの乱れを軽減するために、分
岐命令の直後に実行すべき命令の位置を遅延スロットと
し、遅延スロットに配置された命令を、分岐に先だって
実行する。全ての遅延スロットに無操作(ノーオペレー
ション)であるNOP命令を置くと、分岐が起こるたび
に無操作のNOP命令のサイクルが挿入され、実行速度
の面において不適当である。そのため、遅延スロットに
挿入しても支障の無い適当な命令があれば、これを遅延
スロットに挿入して命令を並びかえ、最適化を行う。ま
た最近のスーパスケーラアーキテクチャのようにパイプ
ラインを複数有するデータ処理装置の場合も、命令のス
ケジューリングのためにコンパイラは命令列の適当な箇
所に無操作のNOP命令を挿入する。
【0015】〔2〕NOP命令に対する制御情報の組み
込み コンパイラにおけるここまでの内容は従来と何等変わら
ない。本実施例においては、上記最適化処理などによっ
てオブジェクトプログラム中に多用される無操作のNO
P命令に、コード生成時に得られるデータ処理装置のハ
ードウェアの制御情報を組み込んで、これを該データ処
理装置に通知できるようにするものである。
【0016】図1にはNOP命令を挿入する際のコンパ
イラの処理が示される。コード生成の段階においては、
既に分岐テーブル10、レジスタ割付けテーブル13、
ループテーブル11などが作成されている。コンパイラ
は、それら情報を参照することによって、オブジェクト
プログラムで実現すべき処理がどのように進捗するかを
把握することができ、これに基づいて、NOP命令にハ
ードウェアの制御情報を組み込む。制御情報が組み込ま
れるNOP命令は、特に制限されないが、分岐用NO
P、リソースコンフリクト通知用NOP、ループ通知用
NOP、単なるNOPの4種類とされる。コンパイラ
は、それらテーブルの情報を参照して、NOP命令を挿
入する場合、何れの機能を持つNOP命令にするかを決
定し、各々のNOP命令を発行する。
【0017】図4には上記4種類の機能を持つNOP命
令の一例が示される。特に制限されないが、NOP命令
は32ビットから成り、ソフトウェアの動作上は従来の
無操作NOP命令と同様にノーオペレーションである
が、データ処理装置にコンパイラ情報を通知するための
フィールドを有する。すなわち、ビット0〜13は無操
作NOP命令であることを示す従来と同様のノーオペレ
ーションの命令コード(NOPコード)の指定フィール
ドとされる。そして、ビット14,15が上記機能を示
す指定フィールドであり、ビット16〜31はオフセッ
トフィールドとされる。 (1)ビット14,15=0,0のときは通常の無操作
NOPであるが、ビット16〜31のオフセットで何サ
イクル分のNOPを意味するかを示す。これは、パイプ
ラインピッチを小さくしたスーパーパイプラインのアー
キテクチャに対応したりするためのものである。 (2)ビット14,15=1,0のときは分岐通知を意
味する。そのNOP命令の実行後、最初に現れる分岐命
令の分岐先のアドレスを、そのNOP命令のアドレスか
らの相対アドレスの形でオフセットに組み込む。このと
き、コンパイラは、前記分岐テーブル10を用いる。こ
の機能によれば、データ処理装置は、分岐命令の分岐先
アドレスの演算結果を得る時間を待つことなく、分岐先
の命令をフェッチすることが可能になる。 (3)ビット14,15=1,1のときは使用可能レジ
スタ通知を意味する。このNOP命令の実行後、最初に
現れるサブルーチン分岐命令(以下BSR命令とする)
実行時に戻り番地格納用に使用可能なレジスタ番号をオ
フセットに組み込む。このときコンパイラは前記レジス
タ割付けテーブル13を用いる。この機能によればデー
タ処理装置は、メモリ上に展開されるスタック領域に戻
り番地を格納する代わりに、レジスタの使用が可能にな
るので、復帰のための戻り番地取得に比較的低速なメモ
リのアクセスを省くことができ、処理速度の向上に寄与
する。 (4)ビット14,15=0,1のときはループ通知を
意味する。そのNOP命令がループ構造中にあるかどう
かをオフセットで示す。ループ構造中にあるか否かの指
示を命令キャッシュメモリに対するエントリの入れ替え
抑止の制御に利用する。これにより、ループ部分の命令
をキャッシュに取り込んだ後で、ループ以外の部分の取
り込みによって、該ループ部分の命令が命令キャッシュ
内からパージされることを抑止でき、アクセスに時間の
かかる外部記憶装置のアクセス回数を減らすして、デー
タ処理の高速化に寄与する。
【0018】〔3〕データ処理装置 次に、上記機能が組み込まれたNOP命令を利用するに
最適なターゲットマシンとしてのデータ処理装置の一例
を説明する。
【0019】図5には本発明に係るデータ処理装置の一
実施例であるマイクロプロセッサのブロック図が示され
る。同図に示されるマイクロプロセッサ20は、次に実
行すべき命令アドレスを命令解釈部33のプログラムカ
ウンタ(PC)50が保持する。マイクロプロセッサ2
0が実行すべき命令は、プリフェッチアドレス発生回路
(PAG)51から出力される命令プリフェッチアドレ
スにより命令キャッシュ31が検索され、キャッシュヒ
ットのときは命令キャッシュ31から読み出される。キ
ャッシュミスのときは、プリフェッチアドレスが命令用
アドレス変換バッファ(命令TLB)30で物理アドレ
スに変換されてアドレスバス41に出力され、これを受
ける外部メモリからデータバス40を介して命令がプリ
フェッチされる。命令はプリフェッチキュー32でバッ
ファリングされ、命令解釈部33へ送られる。命令解釈
部33はその命令を命令デコーダ57にて解釈し、ま
た、その命令に対応するマイクロ命令の系列を順次マイ
クロプログラム56から読出して、命令実行に必要な制
御情報42を生成する。斯る制御情報42にて汎用レジ
スタ35や、算術論理演算器(ALU)36などが制御
され、これによって命令の実行を行う。命令実行になど
に必要なデータはデータキャッシュ38、データ用アド
レス変換バッファ(データTLB)37を介して入出力
される。このとき必要な外部バス制御は制御部34の外
部バス制御部60が行う。制御部34はその他に各種フ
ラグ61やキャッシュ制御レジスタ(CCW)62を有
する。
【0020】上記NOP命令の4通りの機能は、特に制
限されないが前記命令デコーダ57が当該命令をデコー
ドすることによって認識する。この時の全体的な処理フ
ローは図6に示される。以下図6をも参照しながら夫々
の機能を実現するための構成及び制御手順を順次説明す
る。
【0021】〔4〕NOPのみの機能実現手段 図4に示される「NOPのみ」の機能に対しては、命令
のオフセットフィールドで指定されるサイクル数分だけ
無操作のノーオペレーションを繰り返せばよい(図6の
ステップS1A)。すなわち、命令解釈部33がそれに
対応するデコード論理を若しくはマイクロプログラムの
制御論理をもてばよく、命令デコーダ57若しくはマイ
クロプログラム56によって実現される。
【0022】〔5〕分岐通知の機能実現手段 図4に示される「分岐通知」の機能に対しては、図5に
示されるように、分岐先アドレスレジスタ(BTAR)
52を設け、フラグ61の状態などに応じて、命令アド
レス発生回路(IAG)53の出力と当該分岐先アドレ
スレジスタ(BTAR)52の出力を選択してプログラ
ムカウンタ(PC)50に与えるようになっている。す
なわち、図7に示されるように分岐先アドレスレジスタ
BTARは32ビットのレジスタとされ、ビット0〜3
0の領域が分岐先アドレスBTAの格納領域とされ、そ
の最上位ビットは分岐先アドレスレジスタバリッド(B
TARV)とされ、当該ビットBTARVの”0”は分
岐先アドレスBTAの格納領域の無効を意味し、その”
1”は分岐先アドレスBTAの格納領域の有効を意味す
る。前記命令アドレス発生回路53はプログラムカウン
タPCに対して分岐通知機能以外で命令アドレスを生成
する。分岐先アドレスレジスタ52が保持する分岐先ア
ドレスBTAのプログラムカウンタ50に対する出力は
セレクタ58で行われる。セレクタ58には、分岐先ア
ドレスレジスタバリッド(BTARV)と、分岐条件成
立を意味するフラグ情報が前記フラグ61から供給され
る。BTARV=1で、且つ分岐条件成立を意味するフ
ラグ情報を受けることによって分岐先アドレスレジスタ
52からの分岐先アドレスをプログラムカウンタ50に
供給して分岐命令を実行する。
【0023】斯る分岐通知機能を持つNOP命令に対す
る処理手順を図6を参照しながら説明する。NOP命令
のビット14、15=1、0のときは、オフセットの値
とNOP命令のPC値(そのときのプログラムカウンタ
50の値)とから、次に処理する分岐命令の分岐先アド
レスを計算し、これを分岐先アドレスレジスタ(BTA
R)52にセットする。また分岐先アドレスレジスタバ
リッド(BTARV)を”1”にセットする(ステップ
S2A)。そして命令実行シーケンスに従って該分岐命
令がデコードされ(ステップS2B)、また、分岐条件
の成立がフラグ61に反映されると、斯る分岐命令の実
行時に分岐先アドレスが分岐先アドレスレジスタBTA
Rから読み出される。すなわち、BTARV=1でかつ
分岐条件が成立したときに分岐先アドレスBTAが読み
出されてプログラムカウンタ50にセットされる。その
後、分岐先レジスタバリッドBTARVがリセットされ
る(ステップS2C)。これによって、その分岐先アド
レスBTAによって指定されるアドレスの命令に処理が
移行される。
【0024】図8には前記分岐通知機能を持つNOP命
令を利用した具体例が示される。同図においては、CM
P命令で条件比較を行い、その結果にて条件成立を取得
するとBCC命令でラベルL0に条件分岐し、またその
後には、CMP命令で条件比較を行い、その結果にて条
件成立を取得すると(2)のBCC命令でラベルL1に
条件分岐する例が示される。BCCで示される条件分岐
命令は遅延分岐命令であって、その直後の遅延スロット
(1)にはNOP命令が配置されている。(1)のNO
P命令は分岐通知機能を有するNOP命令であり、当該
(1)のNOP命令には(2)のBCC命令の分岐先ア
ドレスL1のPC相対アドレスがオフセットに組み込ま
れている(コード生成時に組み込まれている)。(2)
のBCC命令は、(1)のNOP命令の後続で最初の分
岐命令とされる。(1)のNOP命令実行時には、該命
令のオフセットに基づいて分岐先アドレスの演算が算術
論理演算器(ALU)36で行われ、該アドレスは分岐
先アドレスレジスタ(BTAR)にセットされ、且つ、
分岐先アドレスレジスタバリッド(BTARV)が”
1”にセットされる。そして、(2)のBCC命令の直
前におけるCMP命令による分岐条件の成立がフラグ6
1に反映されると、前記分岐先アドレスレジスタバリッ
ド(BTARV)が有効になっているので、(2)のB
CC命令の命令デコードステージIDで分岐先アドレス
レジスタ(BTAR)から分岐先アドレスが読出され
る。読出し後、分岐先アドレスレジスタバリッド(BT
ARV)が”0”にリセットされる。条件不成立時にも
分岐先アドレスレジスタバリッド(BTARV)がリセ
ットされる。
【0025】ここで本実施例マイクロプロセッサのパイ
プライン構造を図8の(A),(B)に示されるように
5段パイプライン構造と仮定する。IFは命令フェッ
チ、IDは命令デコード、EXは命令実行、OAはオペ
ランドアクセス、OSはオペランドストアである。
(2)のBCC命令が分岐する場合、分岐先アドレスレ
ジスタ(BTAR)を使用しない(A)の場合、BCC
命令の実行によって分岐先アドレスを得るまでに最低で
も3サイクル(IF,ID,EX)かかる。命令実行ス
テージEXで分岐先アドレスを演算するからである。一
方、上記のように、分岐先アドレスレジスタ(BTA
R)を使用する(B)の場合には、分岐先アドレスの演
算サイクルは不要であって、命令デコードステージID
で分岐先アドレスをレジスタ(BTAR)から読み込む
ことができるので、分岐先アドレスを得る迄に2サイク
ルあれば済む。すなわち、(2)のBCC命令の分岐先
アドレス計算を(A)では(2)のBCC命令のEXス
テージで行なうのに対して、(B)では(1)のNOP
命令のEXステージで行ない、その結果を分岐先アドレ
スレジスタ(BTAR)に保持しておくためである。条
件分岐命令はパイプラインハザードの主原因の一つであ
り、その実行サイクルの短縮はデータ処理装置の性能向
上に大きく寄与する。
【0026】〔6〕レジスタ割り付け通知の機能実現手
段 図4に示される「レジスタ割り付け通知」の機能に対し
ては、図5に示されるように、リターンアドレスホール
ドレジスタワード(RAHW)54と、リターンアドレ
スホールド用制御レジスタ(RAHC)55と、セレク
タ59が設けられる。リターンアドレスホールドレジス
タワード(RAHW)54はサブルーチンからの戻り番
地を保持するレジスタ番号を示す。本実施例ではレジス
タ35に含まれるような16本の汎用レジスタ(パラメ
ータ割り付けされずに未使用状態になっている期間にお
ける当該レジスタ)を戻り番地保持用に流用することを
想定しており、図9に示されるように、リターンアドレ
スホールドレジスタワード(RAHW)54は4ビット
ずつの8バンクに分割して8個のレジスタを登録できる
ようになっている。換言すれば最大限ネスト数8までの
処理に対応できるようになっている。前記リターンアド
レスホールド用制御レジスタ(RAHC)55は、図9
に示されるように、32ビットのレジスタで、ビット0
がリターンアドレスホールドレジスタバリッドRAH
V,ビット21〜23が3ビットのカウンタ(CN
T)、ビット24〜31の8ビットが前記リターンアド
レスホールドレジスタワード(RAHW)54のそれぞ
れのバンクのバンクバリッド(BANKV)とされる。
【0027】斯るレジスタ割り付け通知機能を持つNO
P命令に対する処理手順の概要を図6を参照しながら説
明する。ビット14、15=1,1のときはリターンア
ドレスホールドレジスタワード(RAHW)に当該NO
P命令のオフセットに示されたレジスタ番号を登録しリ
ターンアドレスホールドレジスタバリッド(RAHV)
をセットする(ステップS3A)。その後で、例えばブ
ランチサブルーチン(BSR)命令処理(ステップS3
B)と、リターンフロムサブルーチン(RTS)命令処
理が行われる。
【0028】図10には前記BSR命令処理の一例が示
される。BSR命令のデコード後、CNT<8でかつR
AHV=1であるかが判定される(ステップS10)。
すなわち、汎用レジスタを戻り番地格納用に利用するか
が判定される。RAHV=1であるということは、その
前のNOP命令によってレジスタ割り付け機能にて利用
可能な空きレジスタが存在している可能性が有ることを
意味する。CNT<8ということはサブルーチンのネス
トレベルが最上限に到達されておらず、空きバンクが存
在していることを意味する。ステップS10において、
CNT<8でかつRAHV=1であると判定されると、
カウンタCNTの示すバンクバリッドBANKVを1に
セットし、戻り番地をカウンタCNTの示すバンクに登
録された番号のレジスタに格納し、カウンタCNTを+
1インクリメントし、さらに、RAHVをリセットし
て、分岐する(ステップS11)。それ以外の場合は、
戻り番地をメモリ上のスタック領域に格納し、カウンタ
CNTを+1インクリメントし分岐する(ステップS1
2)。
【0029】図11には前記RTS命令処理の一例が示
される。RTS命令のデコード後、CNT<8でかつカ
ウンタCNTの示すBANKV=1で有るかの判定が行
われる(ステップS20)。カウンタCNTの示すBA
NKV=1で有るかの判定は、当該サブルーチンのネス
トレベルとの整合性を判定していることになる。ステッ
プS20において、CNT<8でかつカウンタCNTの
示すBANKV=1で有ると判断されたときは、カウン
タCNTの示すバンクに登録されているレジスタから戻
り番地を読み出し、カウンタCNTを−1デクリメント
して、その戻り番地に復帰する(ステップS21)。そ
れ以外の場合は戻り番地をスタック領域から読み出し、
カウンタCNTを−1デクリメントして、その戻り番地
に復帰する(ステップS22)。
【0030】このようにメモリ上のスタック領域の代わ
りに、使用可能な空きレジスタを通知して、これを分岐
後の復帰のための戻り番地格納領域に流用することによ
り、BSR命令及びRTS命令の高速化を達成すること
ができる。すなわち、戻り番地の書込み、及び復帰時の
戻り番地の読み出しを、比較的アクセスに時間のかかる
メモリに代えてレジスタに対して行うことができるの
で、データ処理の高速化に寄与することができる。
【0031】〔7〕ループ通知の機能実現手段 図4に示される「ループ通知」の機能に対しては、当該
機能を有するNOP命令によって図5に示されるキャッ
シュ制御レジスタ(CCW)62を制御する。図12に
はキャッシュ制御レジスタ(CCW)62の一例が示さ
れる。これは、データキャッシュ38の動作を有効にす
るためのデータキャッシュイネーブルDCD、命令キャ
ッシュ31の動作を有効にするためのインストラクショ
ンキャッシュイネーブルICE、データキャッシュ38
への新たなエントリの登録を禁止するためのデータキャ
ッシュロックDCL、命令キャッシュ31への新たなエ
ントリの登録を禁止するためのインストラクションキャ
ッシュロックICL、データキャッシュ38の全エント
リをクリアするためのデータキャッシュクリアDCC、
命令キャッシュ31の全エントリをクリアするためのイ
ンストラクションキャッシュクリアICCの各制御ビッ
トを有し、これによって、データキャッシュ38と命令
キャッシュ31の動作態様が制御される。
【0032】斯るループ通知機能を持つNOP命令に対
する処理手順を図6を参照しながら説明する。ビット1
4、15=0,1のときはNOP命令が挿入されるアド
レスがループ内か外かがオフセットの値で示される。こ
のNOP命令の解読結果にて、ループ外である(オフセ
ット=***1)ことが判定されると、ステップS4A
に示されるように、キャッシュ制御レジスタ(CCW)
62のインストラクションキャッシュロックICLをセ
ットする。これにより命令キャッシュ31の更新が当該
NOP命令以降抑止される(読みだしは制限されな
い)。ループ内であると判定された時は、キャッシュ制
御レジスタ(CCW)62のインストラクションキャッ
シュロックICLをリセットし、命令キャッシュ31の
登録内容の更新を可能にする。ループ内の指示は例えば
ループに入る直前の位置で行い、ループ外の指示は例え
ばループから出た直後の位置で行うのが最適である。そ
れらの位置はコンパイラがループを判断して行う。
【0033】斯るループ通知機能により、命令キャッシ
ュの有効利用が可能となる。すなわち、命令キャッシュ
メモリに対するエントリの入れ替えが抑止されるので、
ループ部分で繰返し実行される命令はその間常に命令キ
ャッシュ31に存在する。すなわち、ループの部分をキ
ャッシュに取り込んだ後で、ループ以外の部分の取り込
みによって、ループ部分の命令が命令キャッシュ31内
からパージされることが抑止される。したがって、ルー
プ構造を認識しているコンパイラが、キャッシュの取り
込み制御を行なうような制御情報をNOP命令に組み込
むことによって、記憶容量に制限のある内蔵キャッシュ
を有効に活用でき、アクセスに時間のかかる外部記憶装
置のアクセス回数を減らすことができ、データ処理の高
速化に寄与する。
【0034】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。例えば、
制御情報を付加したNOP命令の実行制御はハードワイ
ヤードロジックの命令デコーダだけで行ったり、マイク
ロ命令だけで行ったりすることに限定されず、双方で行
うことも可能である。また、NOP命令に付加される制
御情報は上記実施例に限定されず、その他の情報を採用
することも可能である。
【0035】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0036】すなわち、コンパイラは、それが得ている
データ処理装置のハードウェア制御情報例えば分岐命令
の分岐先の位置やレジスタの使用状況などを、ノーオペ
レーションの命令コードを含むオブジェクトコードに組
み込んでデータ処理装置に通知するから、実行効率を向
上させたオブジェクトプログラムを生成することができ
る。データ処理装置は、ノーオペレーションの命令コー
ドによって実質的に利用されていないデータ処理装置の
リソースを活用して、当該オブジェクトコードに含まれ
ているハードウェア制御情報をデータ処理装置に反映す
るから、データ処理を高速化することができる。NOP
命令によるノーオペレーションサイクル数通知機能は、
パイプラインピッチを小さくしたスーパーパイプライン
のアーキテクチャに対応したりすることを容易化する。
NOP命令による分岐通知の機能は、分岐命令の分岐先
アドレスの演算結果を得る時間を待つことなく、分岐先
の命令をフェッチすることを可能にする。NOP命令に
よるレジスタ割り付け通知の機能は、メモリ上に展開さ
れるスタック領域に戻り番地を格納する代わりに、レジ
スタの使用を可能し、復帰時のための戻り番地取得に比
較的低速なメモリサクセスを省くことができ、処理速度
の向上に寄与する。NOP命令によるループ通知の機能
は、ループ内の命令を保持する命令キャッシュメモリに
対するエントリの入れ替え抑止の制御を可能にし、記憶
容量に制限のある内蔵キャッシュを有効に活用でき、ア
クセスに時間のかかる外部記憶装置のアクセス回数を減
らすことができ、データ処理の高速化に寄与する。
【図面の簡単な説明】
【図1】本発明の一実施例に係る高級言語コンパイラの
論理構成とNOP命令を挿入する際のコンパイラの処理
を示す説明図である。
【図2】コード生成時にコンパイラが作成する分岐テー
ブル及びループテーブルの一例説明図である。
【図3】コード生成時にコンパイラが作成するレジスタ
割り付けテーブルの一例説明図である。
【図4】4種類の機能を持つNOP命令の命令フォーマ
ット及び機能説明図である。
【図5】本発明に係るデータ処理装置の一実施例である
マイクロプロセッサのブロック図である。
【図6】4種類のNOP命令夫々に対する処理手順説明
図である。
【図7】分岐先アドレスレジスタ及びその読出し制御手
法の説明図である。
【図8】分岐通知機能を持つNOP命令を利用した具体
的な作用説明図である。
【図9】リターンアドレスホールドレジスタワード及び
リターンアドレスホールド制御レジスタの一例説明図で
ある。
【図10】レジスタ割り付け通知機能を有するNOP命
令を利用する時のBSR命令処理の一例フローチャート
である。
【図11】レジスタ割り付け通知機能を有するNOP命
令を利用する時のRTS命令処理の一例フローチャート
である。
【図12】キャッシュ制御レジスタの一例説明図であ
る。
【符号の説明】
4 コード生成手段 5 ソースプログラム 6 オブジェクトプログラム 10 分岐テーブル 11 ループテーブル 13 レジスタ割り付けテーブル 20 マイクロプロセッサ 31 命令キャッシュ 35 汎用レジスタ 36 算術論理演算器(ALU) 50 プログラムカウンタ(PC) 52 分岐先アドレスレジスタ(BTAR) BTA 分岐先アドレス BTARV 分岐先アドレスレジスタバリッド 54 リターンアドレスホールドレジスタワード(RA
HW) 55 リターンアドレスホールド用制御レジスタ(RA
HC) RAHV リターンアドレスホールドバリッド CNT カウンタ BANKV バンクバリッド 56 マイクロプログラム 57 命令デコーダ 61 フラグ 62 キャッシュ制御レジスタ ICL インストラクションキャッシュロック
───────────────────────────────────────────────────── フロントページの続き (72)発明者 柏木 有吾 東京都小平市上水本町5丁目20番1号 株 式会社日立製作所半導体事業部内

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 高級言語で記述されたソースプログラム
    を翻訳して、対象データ処理装置のオブジェクトコード
    を生成するコンパイラであって、 オブジェクトコード生成時に得られる前記データ処理装
    置のハードウェアの所定の制御情報を、該データ処理装
    置のノーオペレーションの命令コードを含むオブジェク
    トコードに組み込んで、出力するものであることを特徴
    とするコンパイラ。
  2. 【請求項2】 前記オブジェクトコードに組み込まれる
    制御情報は、ノーオペレーションの繰返しサイクル数と
    そのサイクル数分だけノーオペレーションの繰返しを指
    示する情報とを含むものであることを特徴とする請求項
    1記載のコンパイラ。
  3. 【請求項3】 前記オブジェクトコードに組み込まれる
    制御情報は、当該オブジェクトコードの後に現れる分岐
    命令の分岐先指示情報と、当該分岐先指示情報に基づい
    て分岐先アドレスを取得するための指示を行う情報とを
    含むものであることを特徴とする請求項1記載のコンパ
    イラ。
  4. 【請求項4】 前記オブジェクトコードに組み込まれる
    制御情報は、当該オブジェクトコードの後に現れるサブ
    ルーチンジャンプ後の戻り番地格納用レジスタを指定す
    るための情報と、この戻り番地格納用レジスタを指定す
    る情報を前記データ処理装置の記憶手段上に保持させる
    指示を行う情報とを含むものであることを特徴とする請
    求項1記載のコンパイラ。
  5. 【請求項5】 前記オブジェクトコードに組み込まれる
    制御情報は、キャッシュメモリの記憶内容更新の抑止及
    び許容を選択させるための制御情報と、当該制御情報を
    キャッシュメモリの制御手段に反映させる指示を行う情
    報とを含むものであることを特徴とする請求項1記載の
    コンパイラ。
  6. 【請求項6】 請求項1乃至5の何れか1項記載のコン
    パイラにて生成された前記ノーオペレーションの命令コ
    ードを含むオブジェクトコードを解読する解読手段と、
    その解読結果に従って当該オブジェクトコードを実行す
    る実行手段とを備えて成るものであることを特徴とする
    データ処理装置。
  7. 【請求項7】 請求項3に項記載のコンパイラにて生成
    された前記ノーオペレーションの命令コードを含むオブ
    ジェクトコードを解読する解読手段と、その解読結果に
    従って当該オブジェクトコードを実行する実行手段とを
    備え、 該実行手段は、前記オブジェクトコードに組み込まれて
    いる分岐命令の分岐先指示情報に基づいて分岐先アドレ
    スを取得する演算手段と、取得された分岐先アドレスを
    貯える分岐先アドレスレジスタと、そのオブジェクトコ
    ードの後に現れる分岐命令の実行時に前記分岐先アドレ
    スレジスタの出力をプログラムカウンタに出力するセレ
    クタとを含んで、成るものであることを特徴とするデー
    タ処理装置。
  8. 【請求項8】 請求項4に項記載のコンパイラにて生成
    された前記ノーオペレーションの命令コードを含むオブ
    ジェクトコードを解読する解読手段と、その解読結果に
    従って当該オブジェクトコードを実行する実行手段とを
    備え、 該実行手段は、前記オブジェクトコードに組み込まれて
    いるサブルーチンジャンプ後の戻り番地格納用レジスタ
    を指定するための情報を保持するリターンアドレスホー
    ルド制御レジスタと、サブルーチンジャンプ命令実行時
    に前記リターンアドレスホールド制御レジスタに保持さ
    れている情報で指定され、且つ、サブルーチン復帰命令
    実行時に前記リターンアドレスホールド制御レジスタに
    保持されている情報で指定される汎用レジスタとを含ん
    で、成るものであることを特徴とするデータ処理装置。
  9. 【請求項9】 請求項5に項記載のコンパイラにて生成
    された前記ノーオペレーションの命令コードを含むオブ
    ジェクトコードを解読する解読手段と、その解読結果に
    従って当該オブジェクトコードを実行する実行手段とを
    備え、 該実行手段は、命令キャッシュと、前記オブジェクトコ
    ードに組み込まれているキャッシュメモリの記憶内容更
    新の抑止及び許容を選択させるための制御情報によって
    セット又はリセット状態に制御される、該命令キャッシ
    ュの記憶内容更新を禁止するためのキャッシュロック制
    御ビットとを含んで、成るものであることを特徴とする
    データ処理装置。
JP08550893A 1993-03-19 1993-03-19 コンパイル装置及びデータ処理装置 Expired - Fee Related JP3499252B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP08550893A JP3499252B2 (ja) 1993-03-19 1993-03-19 コンパイル装置及びデータ処理装置
US08/207,785 US5515519A (en) 1993-03-19 1994-03-07 Data processor and method utilizing coded no-operation instructions
KR1019940005457A KR940022253A (ko) 1993-03-19 1994-03-18 컴파일러 및 데이타처리장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08550893A JP3499252B2 (ja) 1993-03-19 1993-03-19 コンパイル装置及びデータ処理装置

Publications (2)

Publication Number Publication Date
JPH06274352A true JPH06274352A (ja) 1994-09-30
JP3499252B2 JP3499252B2 (ja) 2004-02-23

Family

ID=13860880

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08550893A Expired - Fee Related JP3499252B2 (ja) 1993-03-19 1993-03-19 コンパイル装置及びデータ処理装置

Country Status (3)

Country Link
US (1) US5515519A (ja)
JP (1) JP3499252B2 (ja)
KR (1) KR940022253A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815698A (en) * 1996-08-01 1998-09-29 Mitsubishi Denki Kabushiki Kaisha Microprocessor having delayed instructions
JP2013500539A (ja) * 2009-09-09 2013-01-07 ボード オブ リージエンツ,ユニバーシテイ オブ テキサス システム 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体
JP2015069649A (ja) * 2013-09-26 2015-04-13 晶心科技股▲ふん▼有限公司Andes Technology Corporation マイクロプロセッサ及びその命令ループキャッシュの使用方法

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160585A (ja) * 1993-12-13 1995-06-23 Hitachi Ltd 低電力データ処理装置
JP3169511B2 (ja) * 1994-03-10 2001-05-28 三菱電機株式会社 メモリ装置及びメモリ管理方法
JPH08212075A (ja) * 1995-01-31 1996-08-20 Nec Corp 情報処理装置
US6023758A (en) * 1995-05-25 2000-02-08 Matsushita Electric Industrial Co., Ltd. Method and processor for changing program by replacing instruction stored in ROM with predetermined value to be interpreted as an instruction
US5949995A (en) * 1996-08-02 1999-09-07 Freeman; Jackie Andrew Programmable branch prediction system and method for inserting prediction operation which is independent of execution of program code
US5896538A (en) * 1996-11-26 1999-04-20 International Business Machines Corporation System and method for multi-phased performance profiling of single-processor and multi-processor systems
US5884080A (en) * 1996-11-26 1999-03-16 International Business Machines Corporation System and method for instruction burst performance profiling for single-processor and multi-processor systems
US5958044A (en) * 1997-01-24 1999-09-28 Texas Instruments Incorporated Multicycle NOP
US6317796B1 (en) * 1997-10-06 2001-11-13 Sun Microsystems, Inc. Inline database for receiver types in object-oriented systems
US6553426B2 (en) * 1997-10-06 2003-04-22 Sun Microsystems, Inc. Method apparatus for implementing multiple return sites
US6047358A (en) * 1997-10-31 2000-04-04 Philips Electronics North America Corporation Computer system, cache memory and process for cache entry replacement with selective locking of elements in different ways and groups
US6546479B1 (en) * 1998-02-10 2003-04-08 Koninklijke Philips Electronics N.V. Reduced instruction fetch latency in a system including a pipelined processor
DE19846676C1 (de) * 1998-10-09 2000-03-02 Siemens Ag Verfahren zur Absicherung von Einsprungsadressen
US6275929B1 (en) * 1999-05-26 2001-08-14 Infineon Technologies Ag L. Gr. Delay-slot control mechanism for microprocessors
EP1113356B1 (en) * 1999-12-30 2009-02-04 Texas Instruments Incorporated Method and apparatus for reducing the size of code in a processor with an exposed pipeline
US6799266B1 (en) 1999-12-30 2004-09-28 Texas Instruments Incorporated Methods and apparatus for reducing the size of code with an exposed pipeline by encoding NOP operations as instruction operands
JP2001344127A (ja) * 2000-05-31 2001-12-14 Hitachi Ltd システム開発方法、記憶媒体、情報処理装置、情報端末装置、情報処理システム及び情報処理方法
US6910119B1 (en) * 2000-06-21 2005-06-21 Intel Corporation Instruction pipe and stall therefor to accommodate shared access to return stack buffer
US6715062B1 (en) * 2000-07-26 2004-03-30 International Business Machines Corporation Processor and method for performing a hardware test during instruction execution in a normal mode
US6704860B1 (en) * 2000-07-26 2004-03-09 International Business Machines Corporation Data processing system and method for fetching instruction blocks in response to a detected block sequence
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US7249242B2 (en) 2002-10-28 2007-07-24 Nvidia Corporation Input pipeline registers for a node in an adaptive computing engine
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
US20030023830A1 (en) * 2001-07-25 2003-01-30 Hogenauer Eugene B. Method and system for encoding instructions for a VLIW that reduces instruction memory requirements
US7046635B2 (en) 2001-11-28 2006-05-16 Quicksilver Technology, Inc. System for authorizing functionality in adaptable hardware devices
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US7403981B2 (en) 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
JP3800533B2 (ja) * 2002-06-28 2006-07-26 富士通株式会社 プログラムカウンタ制御方法及びプロセッサ
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
JP2005149297A (ja) * 2003-11-18 2005-06-09 Renesas Technology Corp プロセッサおよびそのアセンブラ
US20060282821A1 (en) * 2005-06-10 2006-12-14 Renno Erik K Efficient subprogram return in microprocessors
US7765342B2 (en) * 2005-09-07 2010-07-27 Florida State University Research Foundation Systems, methods, and computer program products for packing instructions into register files
US7689402B2 (en) * 2006-11-17 2010-03-30 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for retrieving application-specific code using memory access capabilities of a host processor
US20080184019A1 (en) * 2007-01-30 2008-07-31 International Business Machines Corporation Method for embedding short rare code sequences in hot code without branch-arounds
KR101413682B1 (ko) * 2007-04-13 2014-07-01 삼성전자주식회사 분기 명령 검증부를 구비한 중앙 처리 장치
WO2011091323A1 (en) 2010-01-21 2011-07-28 Qst Holdings, Llc A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations
KR20180031266A (ko) 2016-09-19 2018-03-28 삼성전자주식회사 전자 장치, vliw 프로세서 및 그 제어 방법들
US11163577B2 (en) * 2018-11-26 2021-11-02 International Business Machines Corporation Selectively supporting static branch prediction settings only in association with processor-designated types of instructions

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4701842A (en) * 1985-10-04 1987-10-20 International Business Machines Corporation Method and apparatus for avoiding excessive delay in a pipelined processor during the execution of a microbranch instruction
US4937783A (en) * 1987-08-17 1990-06-26 Advanced Micro Devices, Inc. Peripheral controller for executing multiple event-count instructions and nonevent-count instructions in a prescribed parallel sequence
US5121498A (en) * 1988-05-11 1992-06-09 Massachusetts Institute Of Technology Translator for translating source code for selective unrolling of loops in the source code
JPH03135630A (ja) * 1989-10-20 1991-06-10 Nec Corp 命令スケジューリング方式
JPH03282734A (ja) * 1990-03-30 1991-12-12 Toshiba Corp コンパイラ装置及びコンパイル方法
US5396622A (en) * 1991-12-23 1995-03-07 International Business Machines Corporation Efficient radix sorting system employing a dynamic branch table

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815698A (en) * 1996-08-01 1998-09-29 Mitsubishi Denki Kabushiki Kaisha Microprocessor having delayed instructions
US6851045B2 (en) 1996-08-01 2005-02-01 Renesas Technology Corp. Microprocessor having delayed instructions with variable delay times for executing branch instructions
JP2013500539A (ja) * 2009-09-09 2013-01-07 ボード オブ リージエンツ,ユニバーシテイ オブ テキサス システム 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体
JP2015069649A (ja) * 2013-09-26 2015-04-13 晶心科技股▲ふん▼有限公司Andes Technology Corporation マイクロプロセッサ及びその命令ループキャッシュの使用方法

Also Published As

Publication number Publication date
JP3499252B2 (ja) 2004-02-23
KR940022253A (ko) 1994-10-20
US5515519A (en) 1996-05-07

Similar Documents

Publication Publication Date Title
JP3499252B2 (ja) コンパイル装置及びデータ処理装置
JP2550213B2 (ja) 並列処理装置および並列処理方法
EP0996057B1 (en) Data processor with an instruction unit having a cache and a ROM
US6842895B2 (en) Single instruction for multiple loops
KR100890244B1 (ko) 레지스터에의 스택 오퍼랜드의 저장
US5446849A (en) Electronic computer which executes squash branching
JP4230504B2 (ja) データプロセッサ
JP2002116908A (ja) ネイティブおよび非ネイティブの命令集合間相互呼び出し
US4954943A (en) Data processing system
US6950926B1 (en) Use of a neutral instruction as a dependency indicator for a set of instructions
JP2006313422A (ja) 演算処理装置及びデータ転送処理の実行方法
JP3146707B2 (ja) 並列演算機能を有する計算機
US6687808B2 (en) Data processor using indirect register addressing
JP3345787B2 (ja) データ処理装置
JPH03233630A (ja) 情報処理装置
JP2005234968A (ja) 演算処理装置
US5187782A (en) Data processing system
JP2003140910A (ja) Vliwプロセッサにおけるバイナリトランスレーション方法
JPH0679273B2 (ja) データ処理装置
JPH03158929A (ja) データ処理装置
JP2636821B2 (ja) 並列処理装置
JP3147884B2 (ja) 記憶装置及び情報処理装置
KR100300875B1 (ko) 캐쉬 미스 시 처리 방법
JP2835179B2 (ja) 並列処理計算機
JP2785820B2 (ja) 並列処理装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20031125

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

Free format text: PAYMENT UNTIL: 20071205

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081205

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20081205

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091205

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees