JPH08161169A - Vliw方式の計算機システム及びvliwの解釈・実行方法 - Google Patents

Vliw方式の計算機システム及びvliwの解釈・実行方法

Info

Publication number
JPH08161169A
JPH08161169A JP30590794A JP30590794A JPH08161169A JP H08161169 A JPH08161169 A JP H08161169A JP 30590794 A JP30590794 A JP 30590794A JP 30590794 A JP30590794 A JP 30590794A JP H08161169 A JPH08161169 A JP H08161169A
Authority
JP
Japan
Prior art keywords
instruction
vliw
field
invalid
command
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
JP30590794A
Other languages
English (en)
Inventor
Yoichiro Takeuchi
陽一郎 竹内
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP30590794A priority Critical patent/JPH08161169A/ja
Publication of JPH08161169A publication Critical patent/JPH08161169A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】従来VLIW上のnop命令で占められていた
コード部分に起因する記憶領域の無駄を減らすことがで
きるようにする。 【構成】4つの命令フィールドを持つVLIWの先頭フ
ィールドの一部に、2番目以降の命令フィールドのう
ち、解釈・実行の必要のない命令フィールド(無効命令
フィールド)がどれであるかを示すビットa2 〜a4 か
らなる命令有効化情報aを設け、当該VLIWが命令レ
ジスタ12にフェッチされた際には、1番目の命令フィ
ールドの(命令有効化情報aを除く)内容を無条件でデ
コーダ13-1により解釈して演算器14-1を制御すると
共に、2番目〜4番目の命令フィールドの内容を命令有
効化情報a中のビットa2 〜a4 の状態に応じてデコー
ダ13-2〜13-4により解釈して演算器14-2〜14-4
を制御することで、無効命令フィールド部分を変数/定
数領域として利用可能な構成とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、並列動作可能な複数の
演算器を独立した複数の命令(命令フィールド)の集ま
りであるVLIW(Very Long Instruction Word)と称
される1個の長い命令語により制御するVLIW方式の
計算機システム及びVLIWの解釈・実行方法に関す
る。
【0002】
【従来の技術】近年、処理の高速化のために、VLIW
方式の計算機システムが開発されている。この種の計算
機システムは、並列動作可能な複数の演算器を備えてお
り、VLIW上の独立した各命令により、当該各演算器
を同期をとって個々に且つ並列に制御するようになって
いる。
【0003】図13は、VLIW方式の計算機システム
の要部の基本構成を示すものである。この図13のシス
テムでは、命令#1〜#4の4命令を1組とするVLI
W131により、4つの演算器132-1〜132-4が制
御される構成となっている。即ち、図13のシステムに
おいて、VLIW131中の各命令#1〜#4は、それ
ぞれデコーダ(DEC)133-1〜133-4により同時
に且つ並列に解釈され、それぞれ対応する演算器132
-1〜132-4の動作を制御する。
【0004】このように、VLIW方式の計算機システ
ムでは、VLIWにより複数の演算器を並列動作させる
ことができる。したがって、プログラマまたはコンパイ
ラが、並列に実行可能な演算を調べ、これらの実行をV
LIW上の対応する命令にプログラミングすることで、
命令語レベルの並列処理が実現され、処理の高速化が図
れる。
【0005】さて、この種の計算機システムで使用され
るVLIW方式のプログラム(オブジェクトプログラ
ム)では、実行する計算アルゴリズムの因果関係(各命
令間の依存関係)によっては、本来並列動作可能な複数
の演算器の全てを演算に使用することができないケース
が発生する。
【0006】このような場合、使用しない演算器に対応
するVLIW中の命令フィールドには、演算を行わない
ことを明示するノーオペレーション命令(nop命令)
が配置される。このnop命令の配置により、誤動作防
止が図られる。
【0007】
【発明が解決しようとする課題】上記したように、VL
IW方式の計算機システムでは、各命令間の依存関係に
より同時に実行できる命令が所定数揃わない場合、VL
IW中の一部の命令フィールドに誤動作防止のためにn
op命令が配置されるようになっていた。
【0008】このため、演算器の数を増やし、それに合
わせてVLIWの命令語長を極端に長くした場合や、も
ともと並列動作しにくい処理をプログラミングした場合
などには、実行コードの大半がnop命令となってしま
い。オブジェクトプログラムサイズ(実行オブジェクト
サイズ)が著しく大きくなって、そのプログラムの占め
る主記憶領域も大きくなるという問題があった。このこ
とは、ディスク(補助記憶)上の実行ロードモジュール
についても同様であった。
【0009】この問題を解決するのに、VLIWの命令
形式を可変長としてnop命令の部分を削除すること
で、コードサイズを削減し、VLIWを解釈(デコー
ド)・実行する際に、ハードウェア的に本来の形式に復
元する方式が考えられる。しかし、この方式はハードウ
ェア構成が極めて複雑になり、また性能も悪くなるた
め、実用的でない。しかも、分岐先の計算など、プログ
ラムの制御構造の実現が極めて複雑になる。
【0010】本発明は上記事情を考慮してなされたもの
でその目的は、従来VLIW上のnop命令で占められ
ていたコード部分に起因する記憶領域の無駄を減らすこ
とができるVLIW方式の計算機システム及びVLIW
の解釈・実行方法を提供することにある。
【0011】本発明の他の目的は、従来VLIW上のn
op命令で占められていたコード部分を変数または定数
領域として利用でき、もって実行オブジェクトが使用す
る主記憶領域を削減できるようにすることにある。本発
明の更に他の目的は、ロードモジュールファイルのサイ
ズを小さくできるようにすることにある。
【0012】
【課題を解決するための手段及び作用】本発明の第1の
観点に係る構成は、並列動作可能な複数の演算器と、こ
れら各演算器を個々に制御するための同数の独立した命
令フィールドを持つVLIWであって、その一部に解釈
・実行の必要のない無効命令フィールドがいずれである
かを示す命令有効化情報を有し、次に解釈・実行すべき
VLIWを保持するための命令レジスタと、この命令レ
ジスタに保持されているVLIWの各命令フィールドに
対応してそれぞれ設けられ、対応する命令フィールドの
内容を解釈して当該フィールドに対応する演算器を制御
するデコード手段であって、当該フィールドが上記命令
有効化情報により無効命令フィールドであることが示さ
れている場合には、当該フィールドの内容に従う対応す
る演算器の動作を禁止するデコード手段と、上記命令有
効化情報により無効であることが示されているVLIW
上の命令フィールドに対して、演算オペランドとしてア
クセスすることを許すメモリ管理手段とを備えたことを
特徴とするものである。
【0013】上記第1の観点に係る構成において、命令
レジスタに次に実行すべきVLIWがフェッチされた場
合には、デコード手段は、そのVLIWの一部をなす命
令有効化情報により有効命令フィールドであることが示
されているフィールドの内容については、解釈(デコー
ド)を行って、その解釈結果に従って対応する演算器の
動作を制御する。また、命令有効化情報により無効命令
フィールドであることが示されているフィールドの内容
については、解釈を行わず、対応する演算器を動作させ
ない。なお、解釈自体は行うものの、その解釈結果を無
視し、対応する演算器を動作させないようにしても構わ
ない。
【0014】このように、VLIW中の無効命令フィー
ルドに対応する演算器は、当該VLIWの命令有効化情
報に基づくデコード手段の制御により、その無効命令フ
ィールドの内容に従って動作することが禁止される。こ
のため、その無効命令フィールドに従来とは異なってn
op命令を配置せずに、その無効命令フィールドを演算
オペランドの領域として用いるようにしても、誤動作を
招くことはない。この場合、従来VLIW上のnop命
令で占められていたコード部分に起因する記憶領域の無
駄を減らすことができる。ここでVLIW中の無効命令
フィールドを演算オペランドの領域として利用するに
は、ソースプログラムをコンパイルしてVLIWの列か
らなるオブジェクトプログラムを生成する際に、VLI
W中の解釈・実行が不要な無効命令フィールドに定数ま
たは変数を割り当てるようにすればよい。
【0015】本発明の第2の観点に係る構成は、並列動
作可能な複数の演算器を同数の独立した命令フィールド
を持つVLIWにより制御するVLIW方式の計算機シ
ステムにおいて、VLIWの列からなるオブジェクト群
をリンクしてロードモジュールを生成するリンク手段で
あって、当該ロードモジュールの生成時に、上記演算器
を動作させる有効命令フィールドを除く無効命令フィー
ルド部分を削除するリンク手段と、上記ロードモジュー
ルから指定ページのVLIWの列を主記憶上にロードす
るためのデマンドページアクセス要求が発生した場合
に、上記無効命令フィールド部分を含むVLIWの列を
復元するデマンドページアクセス手段とを備えたことを
特徴とするものである。
【0016】上記第2の観点に係る構成において、リン
ク手段によるリンク対象となるオブジェクト群を構成す
る各VLIWには、従来とは異なって、その一部に、解
釈・実行の必要のない無効命令フィールドがいずれであ
るかを示す命令有効化情報が設けられている。
【0017】リンク手段は、各VLIW毎に、そのVL
IWの命令有効化情報をもとに無効命令フィールドの位
置を確認して、当該フィールドを取り除くことにより、
無効命令フィールドが削除されたロードモジュールを生
成する。これにより、ロードモジュールが置かれるファ
イルのサイズを削減することが可能となる。
【0018】一方、デマンドページアクセス手段は、デ
マンドページアクセス要求が発生すると、上記ロードモ
ジュールから指定ページのVLIWの列を主記憶上にロ
ードする。但し、当該ロードモジュールには無効命令フ
ィールド部分は含まれていない。
【0019】そこでデマンドページアクセス手段は、指
定ページのVLIWの列を主記憶上にロードする際に
は、対応するVLIWの命令有効化情報を参照して、当
該VLIW上の前記無効命令フィールドの位置を検出
し、その位置を飛ばして当該VLIW上の有効命令フィ
ールドの内容を主記憶に配置する。これにより、VLI
Wが主記憶上に復元・配置される。
【0020】この他、命令有効化情報を持たない従来と
同様の形式のVLIW、即ち無効命令フィールドにno
p命令が設定されるVLIWについても、無効命令フィ
ールド(nop命令)の削除によるロードモジュールの
サイズの削減と、デマンドページアクセス時のVLIW
の復元を実現することが可能である。
【0021】このためには、まずリンク手段によるリン
ク時には、各VLIW毎に、そのVLIW中のnop命
令を検出して、そのnop命令を除くことにより、no
p命令が削除されたロードモジュールを生成すればよ
い。また、デマンドページアクセス時のVLIWの復元
のために、リンク手段によるリンク時に、VLIWの列
におけるnop命令(が設定される無効命令フィール
ド)とそれ以外の命令(が設定される有効命令フィール
ド)の配置を示す命令マップを生成してロードモジュー
ルに付加しておく。
【0022】この場合、デマンドページアクセス手段
は、ロードモジュールから指定ページのVLIWの列を
主記憶上にロードする際に、当該ロードモジュールに付
されている命令マップに従って、nop命令の位置を検
出し、その位置にnop命令を配置することで、元のV
LIWを主記憶上に復元・配置できる。
【0023】
【実施例】以下、本発明の実施例につき図面を参照して
説明する。 [第1の実施例]図1は本発明の第1の実施例に係るV
LIW方式の計算機システムの構成を示すブロック図、
図2は同実施例で適用されるVLIWの命令フォーマッ
トを示す図である。
【0024】まず、本実施例で適用されるVLIWの命
令語長は128ビットである。この128ビットのVL
IWは、図2に示すように、4つの32ビットの命令フ
ィールドに分割される。
【0025】VLIWの1番目の命令フィールド(図面
上で最も左側の命令フィールド)のうちの上位3ビット
(図面上で最も左側の3ビット)はビットa2 〜a4 か
らなる命令有効化情報aの設定フィールド(命令有効化
フィールド)として用いられ、残りの29ビットはVL
IWの1番目の命令(命令#1)を配置するのに用いら
れる。また、VLIWの2番目〜4番目の命令フィール
ドは、VLIWの2番目〜4番目の命令(命令#2〜#
4)を配置するのに用いられる。
【0026】命令有効化情報aを構成するビットa2 〜
a4 は、VLIW中のそれぞれ2番目〜4番目の命令フ
ィールドの設定内容が解釈・実行の必要のある有効な命
令である(“1”の場合)か否か(“0”の場合)を示
す。本実施例において、命令有効化情報aのビットai
(i=2〜4)が“0”の場合、VLIW中のi番目の
命令フィールドは、変数または定数が設定される演算オ
ペランド領域(以下、変数/定数領域と称する)として
利用可能である。
【0027】図1の計算機システムにおいて、10はシ
ステムの中枢をなすCPU、20はVLIW方式のプロ
グラム(オブジェクトプログラム)、オペランド等が格
納される主記憶である。
【0028】CPU10は、主記憶20上の命令語群
(VLIW群)の一部の写しが置かれる命令キャッシュ
11と、この命令キャッシュ11からフェッチされたV
LIWが保持される命令レジスタ12と、この命令レジ
スタ12に保持されたVLIW中の1番目〜4番目の命
令フィールドの設定内容の解釈(デコード)を行うデコ
ーダ(DEC)13-1〜13-4とを備えている。
【0029】デコーダ13-1は、VLIW中の1番目の
命令フィールドの(命令有効化情報aを除く部分の)設
定内容の解釈を無条件で行うものである。一方、他のデ
コーダ13-2〜13-4は、VLIW中の2番目〜4番目
の命令フィールドの設定内容の解釈を、VLIW中の命
令有効化情報aのビットa2 〜a4 の状態(“1”であ
るか否か)に応じて行うものである。
【0030】CPU10はまた、デコーダ13-1〜13
-4の解釈結果に応じて演算を行う演算器14-1〜14-4
を持ち、命令実行と実行結果の書き込みを司る実行・書
き込み部15と、主記憶20上のオペランド群の一部の
写しが置かれるオペランドキャッシュ16とを備えてい
る。このオペランドキャッシュ16のキャッシュライン
長はVLIW長と同じ(ここでは128ビット)である
ものとする。そして、一部の命令フィールドが変数/定
数領域として利用されているVLIWがオペランドデー
タとして当該オペランドキャッシュ16に保持される場
合、そのVLIWは、複数のキャッシュラインにまたが
ることなく、128ビットアラインに配置されるるもの
とする。
【0031】CPU10は更に、主記憶20のページ管
理、(論理アドレスから物理アドレスへの)アドレス変
換等を司るメモリ管理部17を備えている。メモリ管理
部17は、論理アドレスを物理アドレスに高速に変換す
るためのアドレス変換バッファ機構であるTLB(tran
slation lookaside buffer)171と、アクセス権の制
御等を行うアクセス制御回路172とを備えている。
【0032】TLB171は、メモリ保護のためのアク
セス権情報、論理アドレス(ここでは論理ページアドレ
ス)をもとに生成されるタグ情報(アドレスタグ)、及
び当該論理アドレスに対応する物理アドレス(ここでは
物理ページアドレス)を含む情報を保持するための複数
のエントリを有している。アクセス権情報は、対応する
ページに対してリードのみ許可するアクセス権RO、リ
ードとライトの両方を許可するアクセス権RW及びアク
セス権E等のいずれかを示すものである。アクセス権E
は、対応するページがVLIWの格納領域として用いら
れており、アクセス先となるVLIW中の領域に有効な
命令がないならば、その領域を通常のオペランドアクセ
スと同様にアクセスできるという“実行可”を示す。
【0033】主記憶20は、メモリ管理部17によりペ
ージ単位で管理される。主記憶20内の領域は、例えば
VLIWが格納されるページと、オペランドデータが格
納されるページ等に分けられる。但し、本実施例におい
ては、後述するようにオペランドを含むVLIWが存在
する。
【0034】次に、本発明の第1の実施例の動作を説明
する。まず、CPU10において命令フェッチ要求が発
生したものとする。もし、要求した命令語(VLIW)
が命令キャッシュ11に存在するキャッシュヒット時に
は、その命令語(VLIW)が命令キャッシュ11から
命令レジスタ12に高速に読み込まれる。
【0035】一方、要求した命令語(VLIW)が命令
キャッシュ11に存在しないミスヒット時には、その命
令語(VLIW)はメモリ管理部17を通して主記憶2
0からフェッチされ、命令キャッシュ11に保持された
後、当該命令キャッシュ11から命令レジスタ12にフ
ェッチされる。
【0036】なお、キャッシュヒット/ミスヒットの判
定アルゴリズムや、命令キャッシュ11への命令語(V
LIW)の登録処理等については、従来からよく知られ
ており、しかも本発明に直接関係しないため説明を省略
する。
【0037】命令レジスタ12に読み込まれたVLIW
中の(1番目の命令フィールドの上位部分に設定され
た)3ビット命令有効化情報aのビットa2 〜a4 は、
デコーダ13-2〜13-4に導かれる。また、当該VLI
W中の1番目の命令フィールドの(命令有効化情報aを
除く部分の)設定内容(命令#1)はデコーダ13-1に
導かれ、2番目の命令フィールドの設定内容(命令#2
または変数/定数)はデコーダ13-2に導かれる。更
に、当該VLIW中の3番目の命令フィールドの設定内
容(命令#3または変数/定数)はデコーダ13-3に導
かれ、4番目の命令フィールドの設定内容(命令#4ま
たは変数/定数)はデコーダ13-4に導かれる。
【0038】デコーダ13-1は、命令レジスタ12から
導かれたVLIWの1番目の命令フィールドの設定内容
(命令#1)を無条件で解釈(デコード)し、その解釈
結果に応じて実行・書き込み部15の演算器14-1を制
御する。
【0039】一方、デコーダ13-2〜13-4は、命令レ
ジスタ12から導かれた命令有効化情報aのビットa2
〜a4 に応じて、次のように動作する。まず、命令有効
化情報aのビットa2 〜a4 が“1”の場合には、デコ
ーダ13-2〜13-4は、命令レジスタ12から導かれた
VLIWの2番目〜4番目の命令フィールドに解釈・実
行の必要な有効な命令(命令#2〜#4)が設定されて
いるものとして、その命令フィールドの設定内容(命令
#2〜#4)を解釈(デコード)し、その解釈結果に応
じて実行・書き込み部15の演算器14-2〜14-4を制
御する。
【0040】次に、命令有効化情報aのビットa2 〜a
4 が“0”の場合には、デコーダ13-2〜13-4は、命
令レジスタ12から導かれたVLIWの2番目〜4番目
の命令フィールドには解釈・実行の必要な有効な命令は
設定されておらず、代わりに変数/定数が設定されてい
る可能性があるものとして、その命令フィールドを無効
扱い(無効命令フィールド、不要命令フィールド)と
し、その命令フィールドの設定内容の解釈を控えて、演
算器14-2〜14-4を動作させない。なお、解釈(デコ
ード)動作自体は行っても、その解釈結果を無視するこ
とで、対応する演算機を動作させないようにしても構わ
ない。
【0041】以上のデコーダ13-2〜13-4の動作によ
り、VLIWの一部(ここでは1番目の命令フィールド
の先頭部分)に設けられた命令有効化情報aのビットa
2 〜a4 で命令の無効化が指定されているならば、VL
IWの対応する2番目〜4番目の命令フィールドには、
どのような32ヒットデータを配置しても、そのフィー
ルドに対応する演算器14-2〜14-4が誤動作すること
はない。
【0042】したがって、従来であればnop命令を配
置する必要のあるVLIW中の命令フィールドを変数ま
たは定数の設定領域(変数/定数領域)として利用する
ことができる。但し、1番目の命令フィールドの設定内
容は、デコーダ13-1により常時解釈されて、実行され
るため、実行が不要な場合には、当該フィールドに従来
通りnop命令を配置する必要がある。
【0043】なお、本実施例においては、1つのVLI
W中に配置される命令の長さが、29ビットと32ビッ
トの2種類ある(図2参照)。しかし、VLIW自体は
固定長であり、しかも29ビット長の命令(命令#1)
は常にVLIWの1番目の命令フィールドに設定され、
32ビット長の命令(命令#2〜#4)は常にVLIW
の2番目〜4番目の命令フィールドに設定されることか
ら、何ら問題とはならず、ハードウェア構成も(nop
命令を削除してVLIWを可変長とする方式とは異なっ
て)図1に示したように簡単である。また、VLIWの
1番目の命令フィールドに対応する演算器14-1で実行
可能な命令の種類は、他の命令フィールドに対応する演
算器14-2〜14-4で実行可能な命令の種類より少なく
なるが、演算器14-1で実行できない命令をVLIWの
2番目以降の命令フィールドに配置して演算器14-2〜
14-4で実行させることで対処できる。
【0044】さて、デコーダ13-1〜13-4の少なくと
も1つで命令の解釈が行われて、実行・書き込み部15
内の対応する演算器が動作する際に、その動作に必要な
オペランド(変数/定数)を(例えばオペランドキャッ
シュ16から)リードする必要がある、或いは演算器の
動作が行われた後、その演算結果を(例えばオペランド
キャッシュ16に)ライトする必要があるものとする。
この場合、実行・書き込み部15からメモリ管理部17
に対してオペランドアクセス(オペランドデータアクセ
ス)要求が発生する。
【0045】するとメモリ管理部17では、図3のフロ
ーチャートに従って以下に述べるオペランドアクセス処
理が行われる。まず、メモリ管理部17内のアクセス制
御回路172は、実行・書き込み部15からのオペラン
ドアクセス要求を受け取ると、TLB171を参照し、
その要求先のアドレス(論理ページアドレス)に対応す
る物理ページアドレスが登録されているエントリを検索
する。
【0046】もし、TLB171に目的とするエントリ
が存在するヒット時であれば、アクセス制御回路172
は当該エントリ中の物理ページアドレスを用いて論理ア
ドレスから物理アドレスへの周知のアドレス変換を高速
に行うと共に、当該エントリ中のアクセス権情報を得
る。
【0047】一方、TLB171に目的とするエントリ
が存在しないミスヒット時であれば、アクセス制御回路
172は、主記憶20の所定領域に置かれているページ
テーブル(図示せず)をアクセスし、当該ページテーブ
ルを用いて論理アドレスから物理アドレスへの周知のア
ドレス変換を行う。このページテーブルには、OS(オ
ペレーティングシステム)の管理により、各ページ毎の
アクセス権情報が設定されている。このアクセス権情報
としては、リードのみ許可するアクセス権RO、リード
とライトの両方を許可するアクセス権RWなど従来から
よく知られているメモリ保護のためのアクセス権の他
に、本実施例特有のアクセス権Eが用意されている。こ
のアクセス権Eは、前記したように、対応するページが
VLIWの格納領域として用いられており、アクセス先
となるVLIW中の領域に有効な命令がないならば、そ
の領域を通常のオペランドアクセスと同様にアクセスで
きるという“実行可”を示すものである。本実施例にお
いて、RO=0,RW=1,E=2である。
【0048】アクセス制御回路172は、ページテーブ
ルを用いたアドレス変換を行うと、当該テーブルから得
られる該当ページのアクセス権情報、要求先の論理アド
レス(ここでは論理ページアドレス)をもとに生成され
るタグ情報(アドレスタグ)、及びアドレス変換結果で
ある物理ページアドレスを含む情報をTLB171内の
エントリに登録する周知の登録動作を行う。
【0049】さてアクセス制御回路172は、TLB1
71またはページテーブルを用いたアドレス変換によ
り、要求先アドレス(論理アドレス)に対応する物理ア
ドレスとアクセス権情報を得ると(ステップS1)、オ
ペランドのリード時であれば、アクセス権情報の示すア
クセス権がRO或いはRWの場合、オペランドのライト
時であればアクセス権情報の示すアクセス権がRWの場
合に、取得した物理アドレスをもとにオペランドキャッ
シュ16を対象とするオペランドアクセスを実行し、リ
ード時であればリードしたオペランドを実行・書き込み
部15に渡す。この場合の動作は、従来と何ら変わらな
い。なお、オペランドキャッシュ16に目的とするデー
タが存在しないミスヒット時には、主記憶20がアクセ
スされることはいうまでもない。
【0050】これに対し、アクセス権情報の示すアクセ
ス権がEの場合、即ち実行可の場合には(ステップS
2)、アクセス制御回路172は、取得した物理アドレ
スをもとにオペランドキャッシュ16の該当するキャッ
シュラインをリードアクセスする(ステップS3)。ア
クセス権がE(実行可)の場合、アクセスしたキャッシ
ュラインの情報はVLIWである。
【0051】アクセス制御回路172は、アクセスした
キャッシュラインの情報(VLIW)の先頭の32ビッ
ト、即ちVLIWの1番目の命令フィールドから命令有
効化情報aを取り出す(ステップS4)。なお、ミスヒ
ット時には、命令有効化情報aの取り出しは、主記憶2
0を対象に行われる。
【0052】アクセス制御回路172は、命令有効化情
報aの取り出しを行うと、オペランドアクセスすべきフ
ィールド(データ語部分)に有効な命令が存在するか否
かを、当該命令有効化情報aの対応ビット(の状態)を
もとに調べる(ステップS5)。
【0053】もし、有効な命令が存在するならば、アク
セス制御回路172は、不正アクセス(アクセスエラ
ー)として、要求されたオペランドアクセスを行わずに
当該命令を保護し、オペランドキャッシュ16にその旨
を通知する(ステップS6)。
【0054】これに対し、有効な命令が存在しないなら
ば、アクセス制御回路172は、通常のオペランドデー
タと同様に、オペランドアクセスすべきフィールド(デ
ータ語部分)を対象とするアクセスを行う(ステップS
7)。
【0055】このように、VLIW中2番目〜4番目の
命令フィールドのうち、命令の依存関係で従来であれば
nop命令を配置しなければならない命令フィールドを
変数/定数領域として利用することで、従来VLIW上
のnop命令で占められていたコード部分に起因する記
憶領域の無駄を減らすことができる。しかも、変数/定
数領域として利用する命令フィールドの設定内容は、命
令有効化情報aの対応ビットの無効化指定により、対応
するデコーダ13-i(iは2〜4のいずれか)で解釈さ
れず、無効化扱いされるため、演算器14-iが誤動作す
る虞はない。
【0056】図4は図1の計算機システムで適用され
る、図2に示したような形式のVLIW群を含むオブジ
ェクトプログラムをソースプログラムから生成するコン
パイラの構成を示す。
【0057】図4のコンパイラは、ソースプログラム3
1をコンパイルして従来と同様の形式のVLIW群を含
む第1のオブジェクトプログラム32を生成する第1の
コンパイル部41と、この第1のオブジェクトプログラ
ム32から図2の形式の第2のオブジェクトプログラム
33を生成する第2のコンパイル部42とから構成され
る。
【0058】次に、図4の構成のコンパイラの動作を、
図5及び図6のフローチャートを参照して説明する。ま
ず、第1のコンパイル部41は、ソースプログラム31
のソースコード列から、各ソースコード毎に、逐次実行
型の命令または命令群を作成し、VLIWへの再配置前
の命令列(オブジェクトコード列)を生成する(ステッ
プS11)。
【0059】次に第1のコンパイル部41は、生成した
再配置前の命令列を4つの32ビット命令フィールドを
持つVLIW型に最適化、再配置し、各命令間の依存関
係により演算器を動作させる命令を配置できない命令フ
ィールドにはnop命令を配置することで、従来と同様
の形式のVLIW群を含む第1のオブジェクトプログラ
ム32を生成する(ステップS12)。但し、VLIW
の1番目の命令フィールドには、先頭の3ビットを除く
領域に29ビット命令またはnop命令が配置される点
で、従来と少し異なる。なお、29ビット命令は、上位
の3ビットに無関係に演算指定可能な32ビット命令と
等価である。
【0060】上記のようにして第1のコンパイル部41
により生成される第1のオブジェクトプログラム32
は、(従来と同様の形式の)VLIW群からなるコード
部321と、コード部321上の命令から参照されるデ
ータ(変数/定数)の集合であるデータ部322から構
成される。このデータ部322のデータは、そのデータ
が置かれる論理的な位置を示す情報(ラベル)と関連付
けられている。
【0061】第1のコンパイル部41により第1のオブ
ジェクトプログラム32が生成されると、第2のコンパ
イル部42が起動される。すると第2のコンパイル部4
2は、第1のオブジェクトプログラム32のコード部3
21の先頭VLIWの2番目の命令フィールドを参照し
て(ステップS13)、そこにnop命令が配置されて
いるか否かをチェックする(ステップS14)。
【0062】第2のコンパイル部42は、nop命令が
配置されている命令フィールドを検出した場合、そのフ
ィールドを変数/定数領域として利用するならば(ステ
ップS15)、そのフィールドに第1のオブジェクトプ
ログラム32のデータ部322上の任意のデータを(n
op命令に代えて)配置する(ステップS16)。
【0063】次に第2のコンパイル部42は、コード部
321をスキャンして、配置したデータを参照する命令
を全て探し、これら各命令に設定されている当該データ
の参照先を示すラベルを、ステップS16で配置した命
令フィールドの位置を示すラベルにそれぞれ書き換える
(ステップS17)。なお、第1のコンパイル部41に
より第1のオブジェクトプログラム32を生成する際
に、コード部321上の各命令のうち、データ部322
上のデータを参照する命令の位置情報を、当該データと
対応させてテーブル等に保持しておくならば、上記のス
テップS17でのラベル書き換えの対象となる命令を簡
単に探すことができる。
【0064】第2のコンパイル部42は、ステップS1
7を実行すると、現在注目しているVLIW(現VLI
W)の最後の命令フィールドまで終了したか否かをチェ
ックする(ステップS18)。このステップS18のチ
ェックは、参照した命令フィールドにnop命令が配置
されていない場合と、参照した命令フィールドを変数/
定数領域として利用しない場合にも行われる。
【0065】もし、現VLIWの最後の命令フィールド
まで終了していなければ、第2のコンパイル部42は、
現VLIWの次の命令フィールドを参照して(ステップ
S19)、ステップS14に戻る。
【0066】一方、現VLIWの最後の命令フィールド
まで終了しているならば、第2のコンパイル部42は、
そのVLIWの1番目の命令フィールドの上位3ビット
部分に、2番目〜4番目の命令フィールドの内容に応じ
た命令有効化情報aを設定する(ステップS20)。
【0067】第2のコンパイル部42は、命令有効化情
報aの設定処理を行うと、コード部321の最後のVL
IWまで終了したか否かをチェックする(ステップS2
1)。
【0068】もし、コード部321の最後のVLIWま
で終了していなければ、第2のコンパイル部42は、コ
ード部321上の次のVLIWの2番目の命令フィール
ドを参照して(ステップS22)、ステップS14に戻
る。
【0069】一方、コード部321の最後のVLIWま
で終了しているならば、第2のコンパイル部42はコン
パイル処理を終了する。これにより、図2の形式のVL
IWの群からなるコード部33と、コード部321上の
命令から参照されるデータ(変数/定数)の集合である
データ部322から構成される、第2のオブジェクトプ
ログラム33が生成される。この第2のオブジェクトプ
ログラム33が、図1の計算機システムで用いられる。
【0070】以上、従来であればnop命令を配置する
必要のあるVLIW中の命令フィールドを変数/定数領
域として利用できるようにすることで、実行オブジェク
トが使用する主記憶20の領域の削減を図った第1の実
施例につき説明した。
【0071】なお、上記第1の実施例では、128ビッ
ト長のVLIWの1番目の32ビット長命令フィールド
の一部を命令有効化情報aとして用いているが、4つの
32ビット長の命令フィールドと命令有効化情報aから
なる131ビット長のVLIWを用いるようにしても構
わない。いずれの場合も、VLIWの一部を命令有効化
情報aとして用いることに変わりはない。また、命令フ
ィールドの長さ、命令フィールドの数も、上記第1の実
施例に限るものでないことは勿論である。
【0072】また、上記第1の実施例では、図4のフロ
ーチャートに従うコンパイル処理のステップS12にお
いて、従来と同様の形式のVLIWの列を含む第1のオ
ブジェクトプログラム32を生成し、命令有効化情報a
の設定はステップS20で行うものとしたが、ステップ
S12の段階で、無効命令フィールドにnop命令とは
別の無意味なコードを配置するとか、或いは当該フィー
ルドを空きフィールドとし、VLIWの先頭命令フィー
ルドに命令有効化情報aを配置するようにしてもよい。 [第2の実施例]次に、VLIW方式のロードモジュー
ルファイルのサイズを小さくできるようにすることで、
当該ファイルの占める補助記憶領域(ディスク領域)の
削減を図るようにした第2の実施例につき、図面を参照
して説明する。
【0073】図7はロードモジュールを生成して補助記
憶に格納しておき、テマンドページアクセス要求が発生
した場合に、要求されたロードモジュールのページを主
記憶に展開するための構成を示す。
【0074】同図において、51はリンク手段としての
リンケージエディタ、52はオペレーティングシステム
(OS)の仮想記憶管理部、53は主記憶である。リン
ケージエディタ51は、VLIW方式のオブジェクト群
(オブジェクトプログラム群)61をリンクして計算機
システム(内のCPU)で実行可能な圧縮されたロード
モジュール62を生成するものである。本実施例で適用
されるオブジェクト群61は、前記第1の実施例で適用
した図2の形式のVLIWの列、即ち4つの4バイト命
令フィールドから構成され(VLIW長=16バイ
ト)、1番目の命令フィールドの先頭部分に命令有効化
情報aを持つVLIWの列からなるものとする。但し、
命令有効化情報a内のビットai (i=2〜4)により
(解釈・実行の必要がないものとして)無効(不要)指
定される命令フィールドは、前記第1の実施例とは異な
って、変数/定数領域として用いられず空き領域として
位置付けられるものとする。
【0075】ロードモジュール62は、補助記憶、例え
ばディスク装置に置かれるロードモジュールファイル6
3に格納されるもので、ページ数分のコード部621
と、ページ数分のインデックス部622とから構成され
る。
【0076】各コード部621は、対応するページのV
LIW列を圧縮した命令群(具体的にはVLIW列から
無効命令フィールド部分が削除された残りの命令群)が
格納される圧縮コード領域として用いられるものであ
る。
【0077】各インデックス部622は、対応するペー
ジのコード部621の先頭位置を(ロードモジュールフ
ァイル63内の相対位置で)示す情報(以下、ページイ
ンデックスと称する)を格納しておくためのものであ
る。
【0078】仮想記憶管理部52は、デマンドページア
クセス要求が発生した場合に、ロードモジュールファイ
ル63内のロードモジュール62から対応するページの
VLIW列を復元して主記憶53に配置するものであ
る。
【0079】次に、図7の構成の動作を、(1)リンク
処理と(2)デマンドページアクセス処理に分けて、図
8乃至図10のフローチャートを参照して順に説明す
る。 (1)リンク処理 まず、リンケージエディタ51によるリンク処理につい
て説明する。
【0080】リンケージエディタ51は、オブジェクト
群61をリンクしてロードモジュール62を生成する際
には、必要とするページ数分のインデックス部622を
ロードモジュールファイル62内に確保する(ステップ
S31)。
【0081】次にリンケージエディタ51は、ロードモ
ジュール62の先頭ページ用のコード部621をロード
モジュールファイル62内に確保し、そのコード部62
1の先頭のロードモジュールファイル63内相対位置を
示すページインデックスを、対象ページに固有のインデ
ックス部622に設定する(ステップS32)。
【0082】次にリンケージエディタ51は、オブジェ
クト群61から対象ページの先頭VLIWを取り出す
(ステップS33)。そしてリンケージエディタ51
は、取り出したVLIWの1番目の命令フィールドの先
頭部分に設定されている命令有効化情報aを参照し、解
釈・実行の必要のない無効(不要)フィールドであるこ
とが示されている命令フィールド部分を当該VLIWか
ら取り除いて、コード部621に例えば1命令フィール
ド単位で格納する(ステップS34)。
【0083】これにより、命令有効化情報a(中のビッ
トa2 〜a4 )が例えば“010”であるVLIWの場
合には、当該VLIW中の2番目と4番目の命令フィー
ルド部分が削除され、コード部621には、残りの1番
目と3番目の命令フィールドの内容だけが格納される。
同様に、命令有効化情報a(中のビットa2 〜a4 )が
例えば“101”であるVLIWの場合には、当該VL
IW中の3番目の命令フィールド部分が削除され、コー
ド部621には、残りの1番目と2番目と4番目の命令
フィールドの内容だけが格納される。この様子を図11
(a)に示す。
【0084】次にリンケージエディタ51は、対象ペー
ジの最後のVLIWまで終了したか否か、即ちページエ
ンドとなったか否かをチェックする(ステップS3
5)。ここで、ページサイズを16Kバイトとすると、
1VLIWが4つの4バイト命令フィールドから構成さ
れていることから(VLIW長=16バイト)、1ペー
ジのVLIW数は1024である。したがってリンケー
ジエディタ51は、1024個のVLIWを処理する毎
に、ページエンドを判断する。
【0085】もし、ページエンドとなっていないなら
ば、リンケージエディタ51は、オブジェクト群61か
ら同じページの次のVLIWを取り出して(ステップS
36)、ステップS34に戻る。
【0086】一方、ページエンドとなっているならば、
リンケージエディタ51は、必要なページ数分の処理を
終了したか否かをチェックする(ステップS37)。も
し、必要なページ数分の処理を終了していないならば、
リンケージエディタ51は、次のページ用のコード部6
21をロードモジュールファイル62内に確保し、その
コード部621の先頭のロードモジュールファイル63
内相対位置を示すページインデックスを、対象ページに
固有のインデックス部622に設定する(ステップS3
8)。そしてリンケージエディタ51は、ステップS3
3に戻る。
【0087】一方、必要なページ数分の処理を終了して
いるならば、リンケージエディタ51はリンク処理を終
了する。このようにして、ロードモジュールファイル6
3には、各VLIWから解釈・実行の必要のない無効命
令フィールド部分が取り除かれた命令群(圧縮されたV
LIW列)が格納されたコード部621と、当該コード
部621の先頭のロードモジュールファイル63内相対
位置を示すインデックス部622とをページ数分持つロ
ードモジュール62が生成される。このロードモジュー
ル62は、VLIW中の無効命令フィールド部分を含ま
ないことから、ロードモジュールファイル63のサイズ
は従来に比べて小さくて済む。 (2)デマンドページアクセス処理 次に、仮想記憶管理部52によるデマンドページアクセ
ス処理について説明する。
【0088】計算機システムの動作中にデマンドページ
アクセス要求が発生すると、ロードモジュールファイル
63をアクセスして要求されたページのVLIW列を主
記憶53上の指定領域に配置(ロード)する動作が、仮
想記憶管理部52により次のように行われる。
【0089】まず仮想記憶管理部52は、主記憶53上
の命令配置先を指し示すポインタ(配置先ポインタ)の
値として、上記指定領域の先頭位置を設定する(ステッ
プS41)。
【0090】次に仮想記憶管理部52は、ロードモジュ
ール62中の要求されたページに固有のインデックス部
622を参照し、当該ページの(命令群が格納されてい
る)コード部621の先頭位置を認識する(ステップS
42)。
【0091】次に仮想記憶管理部52は、そのコード部
621から先頭の命令、即ちVLIWの1番目のフィー
ルドの内容を取り出す(ステップS43)。次に仮想記
憶管理部52は、取り出した命令(VLIWの1番目の
フィールドの内容)を配置先ポインタの指す主記憶53
の4バイト領域に配置(ロード)して(ステップS4
4)、当該ポインタを4バイト分進める(ステップS4
5)。
【0092】次に仮想記憶管理部52は、命令有効化情
報a中のビットai を指定するための変数iを初期値2
に設定した後(ステップS46)、上記取り出した命令
の先頭部分に設定されている命令有効化情報a中のビッ
トai を参照して(ステップS47)、当該ai が
“1”であるか否かをチェックする(ステップS4
8)。
【0093】もし、ai =1であれば、仮想記憶管理部
52はコード部621から次の命令を取り出して(ステ
ップS49)、配置先ポインタの指す主記憶53の4バ
イト領域に配置し(ステップS50)、しかる後に当該
ポインタを4バイト分進めると共にiを+1する(ステ
ップS51,S52)。
【0094】一方、ai =0であれば、仮想記憶管理部
52は、ステップS49,S50をスキップして、配置
先ポインタを4バイト分進めると共にiを+1する(ス
テップS51,S52)。これにより、主記憶53上
に、無効命令フィールドの領域が確保されることにな
る。
【0095】仮想記憶管理部52は、ステップS51,
S52を実行すると、iの値が4を越したか否かをチェ
ックする(ステップS53)。もし、iが4を越してい
ないならば、仮想記憶管理部52はステップS47に戻
って、命令有効化情報a中の次のビット(ビットai )
を参照し、その値により、ステップS48〜S53また
はステップS48,S51,S53を実行する。
【0096】一方、iが4を越しているならば、仮想記
憶管理部52は、主記憶53上に1VLIWが復元・配
置できたものと判断し、要求されたページの最後のVL
IWまで配置できたか否か、即ちページエンドとなった
か否かをチェックする(ステップS54)。
【0097】もし、ページエンドとなっていないなら
ば、仮想記憶管理部52は、コード部621から次の命
令、即ち次のVLIWの1番目のフィールドの内容を取
り出して(ステップS55)、ステップS44に戻る。
【0098】一方、ページエンドとなっているならば、
仮想記憶管理部52は、要求されたページのVLIW列
が全て主記憶53に復元・配置できたものとして、デマ
ンドページアクセス処理を終了する。
【0099】以上のデマンドページアクセス処理によれ
ば、VLIWの無効フィールドの内容が削除されて格納
されているコード部621の内容から、ステップS43
またはステップS55で取り出される命令(VLIWの
1番目の命令フィールドの内容)の先頭部分にある命令
有効化情報aに応じて、元のVLIWが正しく復元され
て主記憶53に配置(ロード)される。
【0100】例えば、ステップS43またはステップS
55で取り出される命令の先頭部分にある命令有効化情
報a(中のビットa2 〜a4 )が“010”の場合に
は、主記憶53上で当該命令(命令#1)から1命令分
スキップして無効命令フィールドを確保した状態で、コ
ード部621上の次の命令(命令#3)を配置し、しか
る後に更に1命令分スキップして無効命令フィールドを
確保することで、元のVLIWが復元・配置される。同
様に、VLIWの先頭命令の先頭部分にある命令有効化
情報a(中のビットa2 〜a4 )が“101”の場合に
は、主記憶53上で当該命令(命令#1)の後続位置
に、コード部621上の次の命令(命令#2)を配置
し、しかる後に1命令分スキップして無効命令フィール
ドを確保した状態で、コード部621上の更に次の命令
(命令#4)を配置することで、元のVLIWが復元・
配置される。この様子を図11(b)に示す。
【0101】以上、リンク処理時に無効(不要)命令部
分(命令フィールド)が取り除かれたロードモジュール
を生成することで、ロードモジュールファイルの占める
補助記憶領域(ディスク領域)を削減でき、しかもデマ
ンドページアクセス要求に従うプログラムロード時に元
のVLIW列に復元することで、正常なプログラム処理
が行えるようにした第2の実施例につき説明した。 [第3の実施例]次に、前記第2の実施例で述べたロー
ドモジュールサイズを削減する技術を、従来と同様の形
式のVLIWの列、即ち無効命令フィールドにnop命
令が設定されるVLIWの列を扱う計算機システムに応
用した第3の実施例につき、図12を参照して説明す
る。
【0102】図12において、71はリンケージエディ
タ、72は仮想記憶管理部、73は主記憶である。リン
ケージエディタ71は、VLIW方式のオブジェクト群
(オブジェクトプログラム群)81をリンクして計算機
システム(内のCPU)で実行可能な圧縮されたロード
モジュール82を生成するものである。本実施例で適用
されるオブジェクト群81は、従来と同様の形式のVL
IW列からなるものとする。
【0103】ロードモジュール82は、補助記憶、例え
ばディスク装置に置かれるロードモジュールファイル8
3に格納されるもので、ページ数分のコード部821
と、ページ数分のインデックス部822とから構成され
る。
【0104】各コード部821は、対応するページのV
LIW列を圧縮した命令群(具体的にはVLIW列から
nop命令が削除された残りの命令群)が格納される圧
縮コード領域821aと、圧縮前のVLIW列における
nop命令とそれ以外の命令の配置を示すマップ(命令
マップ)が格納される命令マップ領域821bとから構
成される。
【0105】各インデックス部822は、対応するペー
ジのコード部821の先頭位置を(ロードモジュール8
内の相対位置で)示す情報(ページインデックス)を格
納しておくためのものである。
【0106】仮想記憶管理部72は、デマンドページア
クセス要求が発生した場合に、ロードモジュールファイ
ル83内のロードモジュール82から対応するページの
VLIW列を復元して主記憶73に配置するものであ
る。
【0107】次に、図12の構成の動作を説明する。ま
ず、リンケージエディタ71は、オブジェクト群81を
リンクしてロードモジュール82を生成する際には、先
頭ページから順に、そのページに割り当てるロードモジ
ュールファイル83内のコード部821を確保する。
【0108】リンケージエディタ71は、1ページ分の
コード部821を確保する毎に、オブジェクト群81に
おける、そのページのVLIW列について、先頭VLI
Wから順にnop命令を取り除きながら、当該コード部
821の圧縮コード領域821aの先頭から格納してい
く。
【0109】リンケージエディタ71はまた、上記した
コード部821の圧縮コード領域821aへのnop命
令を除く命令格納と並行して、該当するページのVLI
W毎に、先頭VLIWから順に、VLIW上のnop命
令とそれ以外の命令の配置を示す情報を、当該コード部
821の先頭に設けられた命令マップ領域821bに格
納していく。
【0110】この命令マップ領域821bのサイズは、
1VLIWが4つの4バイト命令フィールドから構成さ
れ(VLIW長=16バイト)、ページサイズを16K
バイトとすると、1ページのVLIW数は1024であ
ることから、VLIW上のnop命令とそれ以外の命令
の配置を1命令(1命令フィールド)当り1ビットで示
すならば、1024×4ビットの固定サイズとなる。
【0111】リンケージエディタ71は更に、上記確保
したコード部821の先頭のロードモジュールファイル
83内相対位置を示すページインデックスを、対象とな
っているページに固有のインデックス部822に格納す
る。
【0112】このようにして、ロードモジュールファイ
ル83には、nop命令が取り除かれた命令群が格納さ
れたコード部821と、当該コード部821の先頭のロ
ードモジュールファイル83内相対位置を示すインデッ
クス部822とをページ数分持つロードモジュール82
が生成される。このロードモジュール82は、nop命
令が取り除かれていることから、ロードモジュールファ
イル83のサイズは従来に比べて小さくて済む。
【0113】さて、計算機システムの動作中にデマンド
ページアクセス要求が発生すると、ロードモジュールフ
ァイル83をアクセスして要求されたページのVLIW
列を主記憶73に配置する動作が、仮想記憶管理部72
により次のように行われる。
【0114】まず仮想記憶管理部72は、ロードモジュ
ール82中の要求されたページに固有のインデックス部
822を参照し、当該ページの(命令群が格納されてい
る)コード部821の先頭位置を認識する。
【0115】次に仮想記憶管理部72は、そのコード部
821の先頭位置から始まる命令マップ領域821bに
格納されている命令マップを先頭ビットから順に参照し
ながら、その命令マップ領域821bと対をなす圧縮コ
ード領域821aの先頭から順に命令を取り出して主記
憶73に配置(ロード)する。このとき、参照したビッ
トが“0”のときは、仮想記憶管理部72はnop命令
が取り除かれているものと判断し、圧縮コード領域82
1aから取り出した命令に先行して、nop命令を主記
憶73に配置する。そして、参照したビットが“0”か
ら“1”に変わったところで、圧縮コード領域821a
から取り出した命令をnop命令に後続して主記憶73
に配置する。
【0116】このようにして、要求されたページのVL
IW列が正しく復元されて主記憶73に配置される。以
上、従来と同様の形式のVLIW列を適用していても、
リンク処理時にnop命令が取り除かれたロードモジュ
ールを生成することで、ロードモジュールファイルの占
める補助記憶領域(ディスク領域)を削減でき、しかも
デマンドページアクセス要求に従うプログラムロード時
に元のVLIW列に復元することで、正常なプログラム
処理が行えるようにした第3の実施例につき説明した。
【0117】
【発明の効果】以上詳述したように本発明によれば、従
来VLIW上のnop命令で占められていたコード部分
を変数または定数領域として利用できるようになり、こ
れにより実行オブジェクトが使用する主記憶領域を削減
することができる。
【0118】また、本発明によれば、従来VLIW上の
nop命令で占められていた無効(不要)命令部分(命
令フィールド)が取り除かれたロードモジュールを生成
することで、ロードモジュールファイルの占める補助記
憶領域を削減でき、しかもデマンドページアクセス要求
に従うプログラムロード時に元のVLIW列に復元する
ことで、正常なプログラム処理が行える。このよう本発
明によれば、従来VLIW上のnop命令で占められて
いたコード部分に起因する記憶領域の無駄を減らすこと
ができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例に係るVLIW方式の計
算機システムの構成を示すブロック図。
【図2】同実施例で適用されるVLIWの命令フォーマ
ットを示す図。
【図3】図1中のメモリ管理部17によるオペランドア
クセス処理を説明するためのフローチャート。
【図4】図1の計算機システムで適用される、図2に示
す形式のVLIW群を含むオブジェクトプログラムをソ
ースプログラムから生成するコンパイラの構成を示す
図。
【図5】図4の構成のコンパイラによるコンパイル処理
を説明するためのフローチャートの一部を示す図。
【図6】図4の構成のコンパイラによるコンパイル処理
を説明するためのフローチャートの残りを示す図。
【図7】VLIW方式のロードモジュールファイルのサ
イズを小さくできるようにすることで、当該ファイルの
占める補助記憶領域の削減を図るようにした第2の実施
例を示す図。
【図8】図7中のリンケージエディタ51によるリンク
処理を説明するためのフローチャート。
【図9】図7中の仮想記憶管理部52によるデマンドペ
ージアクセス処理を説明するためのフローチャートの一
部を示す図。
【図10】図7中の仮想記憶管理部52によるデマンド
ページアクセス処理を説明するためのフローチャートの
残りを示す図。
【図11】図7の構成の動作を説明するための図であ
り、図11(a)はリンク処理時のVLIWからの無効
命令フィールド削除の様子を、図11(b)はデマンド
ページアクセス処理時のVLIW復元の様子を示す図。
【図12】VLIW方式のロードモジュールファイルの
サイズを小さくできるようにすることで、当該ファイル
の占める補助記憶領域の削減を図るようにした第3の実
施例を示す図。
【図13】従来のVLIW方式の計算機システムの要部
構成を示す図。
【符号の説明】
10…CPU、11…命令キャッシュ、12…命令レジ
スタ、13-1〜13-4…デコーダ(DEC)、14-1〜
14-4…演算器、15…実行・書き込み部、16…オペ
ランドキャッシュ、17…メモリ管理部、171…TL
B、172…アクセス制御回路、20…主記憶、31…
ソースプログラム、32…第1のオブジェクトプログラ
ム、33…第2のオブジェクトプログラム、41…第1
のコンパイル部、42…第2のコンパイル部、321,
331…コード部、322,332…データ部、51,
71…リンケージエディタ(リンク手段)、52,72
…仮想記憶管理部(デマンドページアクセス手段)、5
3,73…主記憶、61,81…オブジェクト群、6
2,82…ロードモジュール、63,83…ロードモジ
ュールファイル、621,821…コード部、622,
822…インデックス部、821a…圧縮コード領域、
821b…命令マップ領域。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 並列動作可能な複数の演算器と、 これら各演算器を個々に制御するための同数の独立した
    命令フィールドを持つ1個の長い命令語VLIWであっ
    て、その一部に解釈・実行の必要のない無効命令フィー
    ルドがいずれであるかを示す命令有効化情報を有し、次
    に解釈・実行すべき命令語VLIWを保持するための命
    令レジスタと、 この命令レジスタに保持されている前記命令語VLIW
    の各命令フィールドに対応してそれぞれ設けられ、対応
    する命令フィールドの内容を解釈して当該フィールドに
    対応する前記演算器を制御するデコード手段であって、
    当該フィールドが前記命令有効化情報により無効命令フ
    ィールドであることが示されている場合には、当該フィ
    ールドの内容に従う対応する前記演算器の動作を禁止す
    るデコード手段と、 前記命令有効化情報により無効であることが示されてい
    る前記命令語VLIW上の命令フィールドに対して、演
    算オペランドとしてアクセスすることを許すメモリ管理
    手段とを具備することを特徴とするVLIW方式の計算
    機システム。
  2. 【請求項2】 ソースプログラムをコンパイルして前記
    計算機システム内で実行される命令語VLIWの列から
    なるオブジェクトプログラムを生成するコンパイル手段
    であって、前記命令語VLIW中の解釈・実行が不要な
    無効命令フィールドを演算オペランド領域として、当該
    フィールドに定数または変数を割り当てるコンパイル手
    段を更に具備することを特徴とする請求項1記載のVL
    IW方式の計算機システム。
  3. 【請求項3】 並列動作可能な複数の演算器を同数の独
    立した命令フィールドを持つ1個の長い命令語VLIW
    により制御するVLIW方式の計算機システムにおい
    て、 前記命令語VLIWの列からなるオブジェクト群をリン
    クしてロードモジュールを生成するリンク手段であっ
    て、当該ロードモジュールの生成時に、前記演算器を動
    作させる有効命令フィールドを除く無効命令フィールド
    部分を削除するリンク手段と、 前記ロードモジュールから指定ページの命令語VLIW
    の列を主記憶上にロードするためのデマンドページアク
    セス要求が発生した場合に、前記無効命令フィールド部
    分を含む命令語VLIWの列を復元するデマンドページ
    アクセス手段とを具備することを特徴とするVLIW方
    式の計算機システム。
  4. 【請求項4】 前記命令語VLIWは、その一部に解釈
    ・実行の必要のない無効命令フィールドがいずれである
    かを示す命令有効化情報を有しており、 前記リンク手段は、前記各命令語VLIW毎に、そのV
    LIWの命令有効化情報をもとに前記無効命令フィール
    ドの位置を確認して、当該フィールドを取り除き、 前記デマンドページアクセス手段は、前記ロードモジュ
    ールから指定ページの命令語VLIWの列を主記憶上に
    ロードする際に、対応する前記命令語VLIWの命令有
    効化情報を参照して、当該VLIW上の前記無効命令フ
    ィールドの位置を検出し、その位置を飛ばして当該VL
    IW上の有効命令フィールドの内容を前記主記憶に配置
    することを特徴とする請求項3記載のVLIW方式の計
    算機システム。
  5. 【請求項5】 前記リンク手段は、前記リンク時に、リ
    ンク前の前記命令語VLIWの列における前記有効命令
    フィールドと無効命令フィールドの配置を示す命令マッ
    プを生成して前記ロードモジュールに付加し、 前記デマンドページアクセス手段は、前記ロードモジュ
    ールから指定ページの命令語VLIWの列を主記憶上に
    ロードする際に、当該ロードモジュールに付されている
    前記命令マップに従って、前記無効命令フィールドの位
    置を検出し、その位置にノーオペレーション命令nop
    を配置することを特徴とする請求項3記載のVLIW方
    式の計算機システム。
  6. 【請求項6】 並列動作可能な複数の演算器を同数の独
    立した命令フィールドを持つ1個の長い命令語VLIW
    により制御するVLIW方式の計算機システムに適用さ
    れるVLIWの解釈・実行方法において、 前記命令語VLIWの一部に、解釈・実行の必要のない
    無効命令フィールドがいずれであるかを示す命令有効化
    情報を設け、 解釈・実行すべき前記命令語VLIW上に、当該VLI
    Wの前記命令有効化情報により無効であることが示され
    ている命令フィールドが存在する場合には、その命令フ
    ィールドの内容に従う対応する前記演算器の動作を禁止
    し、 前記命令有効化情報により無効であることが示されてい
    る前記VLIW上の命令フィールドに対して、演算オペ
    ランドとしてアクセスすることを許すことにより、 当該フィールドの演算オペランド領域としての利用を許
    すようにしたことを特徴とするVLIWの解釈・実行方
    法。
JP30590794A 1994-12-09 1994-12-09 Vliw方式の計算機システム及びvliwの解釈・実行方法 Pending JPH08161169A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30590794A JPH08161169A (ja) 1994-12-09 1994-12-09 Vliw方式の計算機システム及びvliwの解釈・実行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30590794A JPH08161169A (ja) 1994-12-09 1994-12-09 Vliw方式の計算機システム及びvliwの解釈・実行方法

Publications (1)

Publication Number Publication Date
JPH08161169A true JPH08161169A (ja) 1996-06-21

Family

ID=17950741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30590794A Pending JPH08161169A (ja) 1994-12-09 1994-12-09 Vliw方式の計算機システム及びvliwの解釈・実行方法

Country Status (1)

Country Link
JP (1) JPH08161169A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0897147A2 (en) 1997-06-16 1999-02-17 Matsushita Electric Industrial Co., Ltd. Constant reconstructing processor which supports reductions in code size
JP2000284970A (ja) * 1999-03-29 2000-10-13 Matsushita Electric Ind Co Ltd プログラム変換装置及びプロセッサ
US6826676B2 (en) * 2001-11-19 2004-11-30 Intel Corporation Extending immediate operands across plural computer instructions with indication of how many instructions are used to store the immediate operand
EP1628213A3 (en) * 1997-08-29 2009-01-07 Panasonic Corporation VLIW processor
JP2009059354A (ja) * 2007-08-15 2009-03-19 Nvidia Corp 超長命令語から即値を調達する方法
US8521800B1 (en) 2007-08-15 2013-08-27 Nvidia Corporation Interconnected arithmetic logic units
JP2014524097A (ja) * 2011-07-28 2014-09-18 クアルコム,インコーポレイテッド エントロピ符号化命令シーケンスの記憶および実行可能な形式への変換のための方法および装置
KR20150106752A (ko) * 2014-03-12 2015-09-22 삼성전자주식회사 Vliw 명령어를 처리하는 방법 및 장치와 vliw 명령어를 처리하기 위한 명령어를 생성하는 방법 및 장치
US9201652B2 (en) 2011-05-03 2015-12-01 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0897147A2 (en) 1997-06-16 1999-02-17 Matsushita Electric Industrial Co., Ltd. Constant reconstructing processor which supports reductions in code size
EP0897147A3 (en) * 1997-06-16 2001-10-10 Matsushita Electric Industrial Co., Ltd. Constant reconstructing processor which supports reductions in code size
KR100618247B1 (ko) * 1997-06-16 2006-10-24 마츠시타 덴끼 산교 가부시키가이샤 코드크기의축소화를지원하는정수복원형프로세서
EP1628213A3 (en) * 1997-08-29 2009-01-07 Panasonic Corporation VLIW processor
JP2000284970A (ja) * 1999-03-29 2000-10-13 Matsushita Electric Ind Co Ltd プログラム変換装置及びプロセッサ
US6826676B2 (en) * 2001-11-19 2004-11-30 Intel Corporation Extending immediate operands across plural computer instructions with indication of how many instructions are used to store the immediate operand
JP2009059354A (ja) * 2007-08-15 2009-03-19 Nvidia Corp 超長命令語から即値を調達する方法
US8521800B1 (en) 2007-08-15 2013-08-27 Nvidia Corporation Interconnected arithmetic logic units
US9448766B2 (en) 2007-08-15 2016-09-20 Nvidia Corporation Interconnected arithmetic logic units
US9201652B2 (en) 2011-05-03 2015-12-01 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy
US10754653B2 (en) 2011-05-03 2020-08-25 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy
JP2014524097A (ja) * 2011-07-28 2014-09-18 クアルコム,インコーポレイテッド エントロピ符号化命令シーケンスの記憶および実行可能な形式への変換のための方法および装置
US10120692B2 (en) 2011-07-28 2018-11-06 Qualcomm Incorporated Methods and apparatus for storage and translation of an entropy encoded instruction sequence to executable form
KR20150106752A (ko) * 2014-03-12 2015-09-22 삼성전자주식회사 Vliw 명령어를 처리하는 방법 및 장치와 vliw 명령어를 처리하기 위한 명령어를 생성하는 방법 및 장치

Similar Documents

Publication Publication Date Title
US10042643B2 (en) Guest instruction to native instruction range based mapping using a conversion look aside buffer of a processor
US5721865A (en) Information processing apparatus with prefetch control for prefetching data structure from memory through cache memory
JP3488162B2 (ja) コンピュータ処理システムにおけるロード動作を順序変更する方法および装置
KR100230105B1 (ko) 간략화된 명령 세트 프로세서의 성능 개선 방법 및 그 프로세서 시스템
US8010953B2 (en) Method for compiling scalar code for a single instruction multiple data (SIMD) execution engine
KR101086801B1 (ko) 외부 및 내부 명령 세트를 갖는 데이터 처리 시스템
US20170024212A1 (en) Hardware acceleration components for translating guest instructions to native instructions
US7574588B2 (en) Time-multiplexed speculative multi-threading to support single-threaded applications
US20180129607A1 (en) Variable caching structure for managing physical storage
US20170161074A1 (en) Multilevel conversion table cache for translating guest instructions to native instructions
JP3745819B2 (ja) ノン・フォルティング・ロード命令をインプリメントする方法及び装置
US6240506B1 (en) Expanding instructions with variable-length operands to a fixed length
JPH09171461A (ja) プロセッサ・システム
US7168076B2 (en) Facilitating efficient join operations between a head thread and a speculative thread
KR100368166B1 (ko) 컴퓨터 처리 시스템에서 스택 레퍼런스를 변경하는 방법
KR20170139659A (ko) 메모리를 어드레싱하기 위한 별개의 레지스터들을 가진 컴퓨터 프로세서
JP2002251321A (ja) キャッシュメモリシステム装置
US6382846B1 (en) Intermediate instruction execution processor which resolves symbolic references without modifying intermediate instruction code
US6260191B1 (en) User controlled relaxation of optimization constraints related to volatile memory references
JPH08161169A (ja) Vliw方式の計算機システム及びvliwの解釈・実行方法
US6820254B2 (en) Method and system for optimizing code using an optimizing coprocessor
JP3973129B2 (ja) キャッシュメモリ装置及びそれを用いた中央演算処理装置
CN115104095A (zh) 用于基于能力的处理的装置和方法
US5117491A (en) Ring reduction logic using parallel determination of ring numbers in a plurality of functional units and forced ring numbers by instruction decoding
JPH0651982A (ja) 演算処理装置