JPH1185512A - 命令圧縮格納および命令復元機能を有するデータ処理装置 - Google Patents

命令圧縮格納および命令復元機能を有するデータ処理装置

Info

Publication number
JPH1185512A
JPH1185512A JP9238287A JP23828797A JPH1185512A JP H1185512 A JPH1185512 A JP H1185512A JP 9238287 A JP9238287 A JP 9238287A JP 23828797 A JP23828797 A JP 23828797A JP H1185512 A JPH1185512 A JP H1185512A
Authority
JP
Japan
Prior art keywords
instruction
nop
instruction code
instructions
vliw
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
JP9238287A
Other languages
English (en)
Inventor
Yasushi Iwata
靖 岩田
Akira Yasusato
彰 安里
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 JP9238287A priority Critical patent/JPH1185512A/ja
Priority to US09/045,117 priority patent/US6275921B1/en
Publication of JPH1185512A publication Critical patent/JPH1185512A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】VLIW方式計算機のロードモジュールに本質
的に挿入されてしまうNOP命令を排除することにより
ロードモジュール本体を圧縮させる方式を提供し、さら
に、圧縮されたロードモジュールを実行時にハードウェ
ア的に伸張させる装置を提供することを目的とする。 【解決手段】少なくとも特定の命令コード列に関して圧
縮した形で表現するとともに、その圧縮の形態を示す圧
縮形態指示情報を付加してメモリに格納し、メモリから
読み出したとき、その圧縮形態指示情報にもとづいて元
の命令コード列に復元する。また、各命令コード毎に本
来の格納位置を指示する格納位置指示情報を付加し、特
定の命令コードを省略した形でメモリに格納し、メモリ
から読み出したとき、その格納位置指示情報にもとづい
て元の命令コード列に復元する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、NOP(No O
peration)命令を含む命令列からNOP命令の
少なくとも一部を排除し、命令格納用メモリを効率的に
使用できるようにしたデータ処理装置に関する。特に、
本発明は、VLIW方式計算機への適用が主目的のもの
であり、VLIW方式計算機のロードモジュールに本質
的に挿入されてしまうNOP命令を排除することにより
ロードモジュールを圧縮しその容量を小さくし、圧縮さ
れたロードモジュールを命令実行時にハードウェア回路
により自動的に伸張するようにしたデータ処理装置に関
する。
【0002】
【従来の技術】近年のコンピュータシステムの高速化に
ともない、新しいCPUの動作方式であるVLIW方式
の計算機の実用化が要求されている。VLIW方式の計
算機を限られたメモリ空間に実装しなければならない場
合は、VLIW方式のロードモジュールは極力小さくし
なければならないという必要がある。
【0003】従来のVLIW方式計算機においては、そ
のロードモジュールにはNOP命令も含めてロードモジ
ュールを形成していた。ところが、VLIW方式の計算
機を専用処理モジュールなどのような少ないメモリ空間
しか有しない計算機システムに導入した場合、ロードモ
ジュールに本来は不要なNOP命令を含んでいるため、
ロードモジュール全体に対する実行命令の割合が低く、
命令格納用メモリにおける実行命令の占有率が低いとい
う問題がある。
【0004】
【発明が解決しようとする課題】したがって、VLIW
方式の計算機では、メモリの実効的な利用効率が悪く、
VLIW方式計算機の産業的な利用を困難にさせてい
る。本発明は、VLIW方式計算機のロードモジュール
に本質的に挿入されてしまうNOPを排除することによ
り、ロードモジュール本体を圧縮させる方式を提供し、
さらに、圧縮されたロードモジュールを実行時にハード
ウェア的に伸張させる装置を提供することを目的として
いる。
【0005】
【課題を解決するための手段】本発明の第1の主要な態
様は、以下の構成を有する。図1は、本発明の第1の主
要な態様を示す図であり、図1(a)は処理装置の構成
を示す図、図1(b)は命令コード列を示す図である。
図1(a)において、1は命令格納メモリ、2は命令コ
ード復元回路である。本発明の第1の主要な態様におい
て、命令格納メモリ1は、少なくとも特定の命令コード
列に関しては圧縮された形で表現される命令コード列
と、その命令コード列に関する圧縮の形態を示す圧縮形
態指示情報とを格納する。命令コード復元回路2は、命
令格納メモリ1から読み出された命令コード列を、その
命令コード列に付加された圧縮形態指示情報にもとづい
て、非圧縮の状態に復元する。また、図1(b)に示す
ように、複数の命令コード3−1〜3−nからなる命令
コード列に圧縮形態指示情報4が付加される。
【0006】本発明の第2の主要な態様は、以下の構成
を有する。図24は、本発明の第2の主要な態様を示す
図であり、図24(a)は処理装置の構成を示す図、図
24(b)は命令コード列を示す図である。図24
(a)において、51は命令格納メモリ、52は命令コ
ード復元回路である。本発明の第2の主要な態様におい
て、命令格納メモリ51は、所定数の命令コードからな
る命令コード列の単位で命令コードの格納および読み出
しが可能であり、各命令コード毎に本来の格納位置を指
示する格納位置指示情報が付加されるとともに、特定の
命令コードを省略して圧縮した形の命令コード列を格納
する。命令コード復元回路52は、命令格納メモリ51
から読み出された命令コード列を、各命令コードに付加
された格納位置指示情報にもとづいて、非圧縮の状態に
復元する。また、図24(b)に示すように、各命令コ
ード54−1〜54−nのそれぞれに格納位置指示情報
53−1〜53−nが付加される。
【0007】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態を説明する。図2は、本発明の1実施例
の命令フォーマットを示す図であり、4スロットVLI
W命令を圧縮して命令格納用メモリに格納する際の命令
フォーマットを示している。
【0008】4つの命令コードからなる1語のVLIW
命令において、NOP命令以外の有効命令が少なくとも
3個存在する場合(すなわち、NOP命令が存在しない
か、あるいは1個だけ存在する場合)は、図2(a)に
示す長形式命令でそのVLIW命令を表現する。この長
形式命令は命令圧縮を行わず、1語のVLIW命令にお
いて1つだけNOP命令が出現しても、そのNOP命令
を省略せずに他の有効命令と同様に取り扱ってメモリに
格納するものである。
【0009】また、4つの命令コードからなる1語のV
LIW命令において、NOP命令が2個あるいは3個存
在する場合は、図2(b)に示す短形式命令でそのVL
IW命令を表現する。本実施例では、4スロットの命令
で1VLIW命令を構成するため、有効命令が各スロッ
トに現れるパターンは、図3(a)に示す16パターン
である。図3(a)では、有効命令にはハッチングを施
して示している。図3(a)における、有効命令パター
ン番号が1から5までの5個のパターンでは、NOP命
令が0または1個、すなわち有効命令が4個または3個
であるため、図2(a)に示す長形式でそのVLIW命
令を表現する。
【0010】また、有効命令パターン番号が6から15
までの10個のパターンでは、1つのVLIW命令に含
まれる有効命令が2個または1個(すなわちNOP命令
が2個または3個)であるため、図2(b)に示す短形
式でそのVLIW命令を表現する。ここで、情報ビット
に書かれる情報は、どのスロットに有効命令が存在する
かを示す情報であり、図3(b)のように定義してい
る。
【0011】具体的に説明すると、有効命令パターン番
号6ではA,Bが有効命令であるため情報ビットパター
ン番号1の情報ビット形式が付加され、有効命令パター
ン番号7ではA,Cが有効命令であるため情報ビットパ
ターン番号2の情報ビット形式が付加され、有効命令パ
ターン番号8ではA,Dが有効命令であるため情報ビッ
トパターン番号3の情報ビット形式が付加され、有効命
令パターン番号9ではB,Cが有効命令であるため情報
ビットパターン番号4の情報ビット形式が付加され、有
効命令パターン番号10ではB,Dが有効命令であるた
め情報ビットパターン番号5の情報ビット形式が付加さ
れ、有効命令パターン番号11ではC,Dが有効命令で
あるため情報ビットパターン番号6の情報ビット形式が
付加される。
【0012】ここで、有効命令パターン番号12〜15
における有効命令が1個しか存在しないケースに関し
て、図3(b)の情報ビットパターン表には直接対応す
るパターンが示されていない。これらのケースでは、有
効命令以外の3個のNOP命令のうちのいずれか1個を
メモリに格納すべき命令として取り扱い、有効命令パタ
ーン6〜11のいずれかのパターンを適用して、情報ビ
ットを付加するようにする。
【0013】例えば、有効命令パターン番号12の場
合、命令BのNOP命令を省略せずにメモリに格納すべ
き命令とすると、前記した有効命令パターン番号6と同
一の情報ビット形式が付加され、命令CのNOP命令を
省略せずにメモリに格納すべき命令とすると、前記した
有効命令パターン番号7と同一の情報ビット形式が付加
され、命令DのNOP命令を省略せずにメモリに格納す
べき命令とすると、前記した有効命令パターン番号8と
同一の情報ビット形式が付加される。有効命令パターン
番号13〜15の場合も同様である。どのNOP命令と
対にして格納するかは、回路設計時に任意に決定するこ
とができる。
【0014】ここで、本実施例では、情報ビットを4ビ
ットとし、3ビットで情報パターンを表し、残りの1ビ
ットで後続するVLIW命令がすべてNOP命令で埋ま
っているかどうかを表すようにしている。図3(b)の
情報ビットパターン中の最上位の空白欄のビットが
「1」の場合は、後続するVLIW命令内の4個の命令
がすべてNOP命令であることを示す。
【0015】したがって、図3(a)の有効命令パター
ン番号16に示すケース(VLIW命令内の4個の命令
がすべてNOP命令のケース)では、直前に位置する命
令の情報ビットの最上位ビットを「1」とすることで、
メモリへの格納を省略することができる。さらに、図3
(b)の情報ビットパターン中の最上位の空白欄のビッ
ト数を増加すれば、すべてNOPで埋まっている複数個
の連続するVLIW命令が存在することを暗黙のうちに
指示することができ、それらを省略することができるよ
うになる。
【0016】図4は、短形式命令と長形式命令の具体例
を示す図である。VLIW命令を構成する各命令エレメ
ントはそれぞれ22ビットで表現される。短形式命令の
場合2つの命令エレメントと4ビットのTAG情報から
なる48ビット形式であり、、長形式命令の場合は2つ
の短形式命令を結合した形の96ビット形式である。T
AGの意味は、図3で示した情報ビットと同一であり、
次の通りである。
【0017】TAG[0:2] 000: 長形式(前半) 001: 短形式1(SlotA,SlotB) 010: 短形式2(SlotA,SlotC) 011: 短形式3(SlotA,SlotD) 100: 短形式4(SlotB,SlotC) 101: 短形式5(SlotB,SlotD) 110: 短形式6(SlotC,SlotD) 110: 長形式(後半) TAG[3] 0: CodeRAM上で直後にある命令が後続命令で
ある。
【0018】1: CodeRAM上で直後にある命令
の前に、全スロットがNOP命令であるVLIW命令が
存在する。 図5は、長短命令で圧縮された命令を展開する回路構成
例を示す。図5において、10は図4に示す短形式命令
および長形式命令を格納するCodeRAM、11は命
令バッファ、12は補助バッファ、13〜17はスイッ
チ回路(S0、S1、S2、S3、T)、18はアドレ
ス生成回路、19はコントロール回路、20はCode
RAM11から読み出されてスイッチ回路13、14
(S0、S1)に入力される上位スロット部分のデータ
形式を示すもの、21はCodeRAM11から読み出
されてスイッチ回路15、16(S2、S3)に入力さ
れる下位スロット部分のデータ形式を示すものである。
【0019】図6は、スイッチ回路(S0、S1、S
2、S3、T)13〜17の論理的なスイッチ構成を示
す図であり、図6(a)がスイッチ回路(S0、S1、
S2、S3)13〜16の構成を示し、図6(b)がス
イッチ回路(T)17の構成を示す。図5における○で
示す部分が図6における各スイッチ接点部分(部分スイ
ッチ)に対応している。
【0020】図5において命令の展開は、命令バッファ
11と補助バッファ12を接続する縦線(colum
n)と、CodeRAM11からの出力線である横線
(row)とを接続する各スイッチ回路を予め定められ
た規則により開閉することにより行われる。展開された
命令は各スロットに対応した命令バッファ11に書き込
まれ、ここからDステージに発行(issue)され
る。補助バッファ12は、展開過程にある命令の一部を
一時的に格納しておくために使用される。
【0021】各スイッチ回路群では、1つまたは複数の
スイッチが同時に開閉される。スイッチ群のスイッチン
グルールは入力スロットに入る長短命令の組合せにより
決定される。スイッチングルールを図7に示す。図7で
は、長形式命令と短形式命令の組合せごとに、各スイッ
チS0、S1、S2、S3、Tについて、どの部分スイ
ッチがオン(on)となるかを示している。一例につい
て説明すると、上位スロットが長形式(前半)、下位ス
ロットが長形式(後半)の場合(番号1)、スイッチS
0の部分スイッチ0、スイッチS1の部分スイッチ0、
スイッチTの部分スイッチ2と3、スイッチS2の部分
スイッチ2、スイッチS3の部分スイッチ2が同時にオ
ンとなる。この場合、上位スロットおよび下位スロット
の命令が命令バッファ11へストレートに入力されるこ
とが容易に理解されよう。
【0022】これらのスイッチングルールにより各スイ
ッチをオン/オフする制御は、コントロール回路19に
より実行される。コントロール回路19は各命令のTA
G部を解釈し、その情報にもとづいてスイッチ制御動作
を実行する。図7において、[ ]のように空白で示さ
れている箇所は、対応するスイッチの部分スイッチがす
べてオフ状態であることを示している。例えば、番号
2、3のスロット形式ではスイッチTが、番号4、5の
スロット形式ではスイッチS2、S3が、番号4’、
5’のスロット形式ではスイッチS0、S1、Tがそれ
ぞれオフ状態となる。なお、番号4、5のスロット形式
が読み出されたときは、次のサイクルで同一スロットの
再読み出しが行われ、再読み出しされたときのスイッチ
ング制御が番号4’、5’のスイッチングルールで実行
される。これらの制御の詳細は後述する。
【0023】また、上位スロットに短形式命令が入った
場合のスイッチS0、S1および下位スロットに短形式
命令が入った場合のスイッチS2、S3は、番号5の入
力スロット形式を除いて、それぞれスイッチングルール
F(i)で制御される。図8にスイッチングルールF
(i)の詳細を示す。短形式iは、図4に関連して前述
したTAG[0:2]の説明で述べた短形式番号と同一
である。また番号iは、図3(b)の情報ビットパター
ン番号と同一のものである。
【0024】以下に、圧縮前の命令シーケンス例、圧縮
後の命令シーケンス例、その圧縮命令シーケンスを図5
の回路により元の命令列に展開する動作例を図面により
詳細に説明する。図9(a)は、VLIW命令の命令シ
ーケンス例である。図9(a)において、InはNOP
命令、I0〜I9はNOP命令以外の有効命令である。
また、各VLIW命令の右側に、NOP命令の個数およ
びそのVLIW命令が長形式と短形式のいずれに変換さ
れるかが示されている。
【0025】図9(b)は、図9(a)に示す命令シー
ケンスを圧縮した結果の命令列を示す。図9(b)にお
いて、2つの命令毎に設けられている[XY]はTAG
を次のように表現している。 X := TAG[3]; Y := TAG[0:2] つまり、Yは短形式の番号を表していることに他ならな
い。また、長形式の場合、後半の命令のTAGは7(1
11)にしている。
【0026】図10〜図17は、図9(b)に示されて
いる圧縮された命令列を展開して復元する動作態様を説
明する図である。以下に展開動作を説明する。 (1)サイクル0(図10(a)) 1番目の命令、[00]I0 I1 [07]I2 I
3をフェッチする。TAGの下位ビットが「0」と
「7」であり、図7の1番目の「長形式(前半)、長形
式(後半)」の形であることが分かり、スイッチングル
ール[S0、S1、[T]、S2、S3]は[0、0、
[2、3]、2、2]が適用される。スイッチS0は部
分スイッチ0、スイッチS1は部分スイッチ0、スイッ
チTは部分スイッチ2と3、スイッチS2は部分スイッ
チ2、スイッチS3は部分スイッチ2がオンとなること
を指示するものであるから、図10(a)に示す黒丸印
の部分スイッチがオンとなる。この結果、入力スロット
の命令I0、I1、I2、I3がそのまま命令バッファ
A、B、C、Dへ入力される。 (2)サイクル1(図10(b)) 2番目の命令、[00]I4 I5 [07]I6 I
nをフェッチする。TAGの下位ビットが「0」と
「7」であり、1番目の命令と同じ「長形式(前半)、
長形式(後半)」の形であることから、1番目の命令と
同一のスイッチングルールが適用され、入力スロットの
命令I4、I5、I6、Inがそのまま命令バッファ
A、B、C、Dへ入力される。 (3)サイクル2(図11(a)) 3番目の命令、[00]I7 In [17]I8 I
9をフェッチする。TAGの下位ビットが「0」と
「7」であり、1番目および2番目の命令と同じ「長形
式(前半)、長形式(後半)」の形であることから、1
番目および2番目の命令と同一のスイッチングルールが
適用され、入力スロットの命令I7、In、I8、I9
がそのまま命令バッファA、B、C、Dへ入力される。
ここで下位スロットのTAGの上位ビットが「1」であ
ることから、直後のVLIW命令はすべてNOP命令か
らなることが指示され、後続命令NOPフラグがオンと
される。 (4)サイクル3(図11(b)) 直前のサイクル2において後続命令NOPフラグがオン
とされたことから、次の命令のフェッチは抑止され、命
令バッファのA、B、C、D部のすべてにNOP命令の
Inがセットされる。なお、図5において命令バッファ
11にNOP命令をセットする回路構成は図示を省略し
ている。 (5)サイクル4(図12(a)) 4番目の命令、[06]I0 I1 [05]I2 I
3をフェッチする。TAGの下位ビットが「6」と
「5」であり、図7の2番目の「短形式(形式i)、短
形式(形式i)」の形であることが分かり、スイッチン
グルール[S0、S1、[T]、S2、S3]は[F
(i)、[ ]、F(i)]が適用される。図8から、
[S0、S1]に対応するF(i)は[2、2](i=
6)、[S2、S3]に対応するF(i)は[1、2]
(i=5)であり、[S0、S1、[T]、S2、S
3]は[2、2、[ ]、1、2]となる。
【0027】前述したように、[T]が空白の[ ]の
形のときはスイッチTがすべてオフである。ここで、ス
イッチTがオフ状態となり、他のスイッチS0〜S3が
動作する形を採るときは、(a)命令バッファ中の命令
が入力されない残りの部分にはNOP命令Inがセット
され、(b)スイッチS2、S3により入力された下位
スロットの命令は補助バッファ12にセットされ、
(c)下位スロットのTAGの下位ビットが後続命令型
フラグにセットされるように制御が行われる。したがっ
て、上位スロットの命令I0、I1が命令バッファC、
Dへ入力され、命令バッファA、BにはNOP命令In
が入力される。そして下位スロットの命令I2、I3は
補助バッファB’、D’に入力される。後続命令型フラ
グには、下位スロットのTAGの下位ビット「5」がセ
ットされる。
【0028】なお、下位スロットのTAGの下位ビット
が「0」または「7」のとき、すなわち下位スロットが
長形式(前半)または長形式(後半)のときは、後続命
令型フラグへのセットは行われない。 (6)サイクル5(図12(b)) 直前のサイクルで後続命令型フラグに値5がセットされ
たことから、命令フェッチは実行されず、スイッチTの
部分スイッチ1、3がオンとされ、補助バッファB’、
D’の内容が命令バッファB、Dへ転送される。同時に
命令バッファA、CへNOP命令Inが入力される。そ
の後、後続命令型フラグはリセットされる。 (7)サイクル6(図13(a)) 5番目の命令、[02]I4 I5 [06]In I
6をフェッチする。TAGの下位ビットが「2」と
「6」であり、図7の2番目の「短形式(形式i)、短
形式(形式i)」の形であることが分かり、スイッチン
グルール[S0、S1、[T]、S2、S3]は[F
(i)、[ ]、F(i)]が適用される。図8から、
[S0、S1]に対応するF(i)は[0、1](i=
2)、[S2、S3]に対応するF(i)は[2、2]
(i=6)であり、[S0、S1、[T]、S2、S
3]は[0、1、[ ]、2、2]となる。
【0029】サイクル4と同様に「短形式(形式i)、
短形式(形式i)」の形であることから、サイクル4と
同様な動作が行われる。すなわち、上位スロットの命令
I4、I5が命令バッファA、Cへ入力され、命令バッ
ファB、DにはNOP命令Inが入力される。そして下
位スロットの命令In、I6は補助バッファC’、D’
に入力される。後続命令型フラグには、下位スロットの
TAGの下位ビット「6」がセットされる。 (8)サイクル7(図13(b)) 直前のサイクルで後続命令型フラグに値6がセットされ
たことから、命令フェッチは実行されず、スイッチTの
部分スイッチ2、3がオンとされ、補助バッファC’、
D’の内容が命令バッファC、Dへ転送される。同時に
命令バッファA、BへNOP命令Inが入力される。そ
の後、後続命令型フラグはリセットされる。 (9)サイクル8(図14(a)) 6番目の命令、[04]In I7 [11]In I
8 をフェッチする。TAGの下位ビットが「4」と「1」
であり、図7の2番目の「短形式(形式i)、短形式
(形式i)」の形であることが分かり、スイッチングル
ール[S0、S1、[T]、S2、S3]は[F
(i)、[ ]、F(i)]が適用される。図8から、
[S0、S1]に対応するF(i)は[1、1](i=
4)、[S2、S3]に対応するF(i)は[0、0]
(i=1)であり、[S0、S1、[T]、S2、S
3]は[1、1、[ ]、0、0]となる。
【0030】サイクル4、6と同様に「短形式(形式
i)、短形式(形式i)」の形であることから、サイク
ル4、6と同様な動作が行われる。すなわち、上位スロ
ットの命令In、I7が命令バッファB、Cへ入力さ
れ、命令バッファA、DにはNOP命令Inが入力され
る。そして下位スロットの命令In、I8は補助バッフ
ァA’、B’に入力される。後続命令型フラグには、下
位スロットのTAGの下位ビット「1」がセットされ
る。
【0031】ここで下位スロットのTAGの上位ビット
が「1」であることから、直後のVLIW命令はすべて
NOP命令からなることが指示され、後続命令NOPフ
ラグがオンとされる。 (10)サイクル9(図14(b)) 直前のサイクルで後続命令型フラグに値1がセットさ
れ、後続命令NOPフラグもオンにセットされている状
態である。
【0032】この場合、後続命令型フラグの値にもとづ
いて補助バッファの内容を命令バッファに転送する動作
が優先的に行われる。直前のサイクルで後続命令型フラ
グに値1がセットされたことから、命令フェッチは実行
されず、スイッチTの部分スイッチ0、1がオンとさ
れ、補助バッファA’、B’の内容が命令バッファA、
Bへ転送される。同時に命令バッファC、DへNOP命
令Inが入力される。その後、後続命令型フラグはリセ
ットされる。 (11)サイクル10(図15(a)) 後続命令NOPフラグがオンにセットされていることか
ら、次の命令のフェッチは抑止され、命令バッファの
A、B、C、D部のすべてにNOP命令Inがセットさ
れる。その後、後続命令NOPフラグはリセットされ
る。 (12)サイクル11(図15(b)) 7番目の命令、[03]I9 I0 [00]I1 I
2をフェッチする。TAGの下位ビットが「3」と
「0」であり、図7の3番目の「短形式(形式i)、長
形式(前半)」の形であることが分かり、スイッチング
ルール[S0、S1、[T]、S2、S3]は[F
(i)、[ ]、0、0]が適用される。図8から、
[S0、S1]に対応するF(i)は[0、2](i=
3)であり、[S0、S1、[T]、S2、S3]は
[0、2、[ ]、0、0]となる。
【0033】このスイックング条件により、上位スロッ
トの命令I9、I0が命令バッファA、Dへ入力され、
命令バッファB、CにはNOP命令Inが入力される。
そして下位スロットの命令I1、I2は補助バッファ
A’、B’へ入力される。 (13)サイクル12(図16(a)) 8番目の命令、[07]I3 I4 [01]I5 I
6をフェッチする。TAGの下位ビットが「7」と
「1」であり、図7の5番目の「長形式(後半)、短形
式(形式i)」の形であることが分かり、スイッチング
ルール[S0、S1、[T]、S2、S3]は[2、
2、[0、1]、[ ]]が適用される。これにより、
補助バッファA’、B’内の命令I1、I2が命令バッ
ファA、Bへ転送され、上位スロットの命令I3、I4
が命令バッファC、Dへ入力される。
【0034】前述したように、番号4、5のスロット形
式が読み出されたときは、次のサイクルで同一スロット
の再読み出しが行われ、再読み出しされたときのスイッ
チング制御が番号4’、5’のスイッチングルールで実
行される。そのため、番号4、5のスロット形式が読み
出されたときは、再読み込みフラグがセットされる。そ
のため、本サイクル12では、再読み込みフラグがセッ
トされる。 (14)サイクル13(図16(b)) 再読み込みフラグがセットされているため、8番目の命
令、[07]I3 I4 [01]I5 I6を再フェ
ッチする。再フェッチ動作では、番号5’のスイッチン
グルール[[]、[ ]、F(i)]が適用される。図
8から、[S2、S3]に対応するF(i)は[0、
0](i=1)であり、[S0、S1、[T]、S2、
S3]は[[ ]、[ ]、0、0]となる。後続命令
型フラグには、下位スロットのTAGの下位ビット
「1」がセットされる。
【0035】これにより、下位スロットの命令I5、I
6が補助バッファA’、B’へ入力される。その後、再
読み込みフラグがリセットされる。スイッチングルール
が番号4’、5’の場合は、下位スロットの命令が補助
バッファへ格納されるだけであり、命令バッファへの入
力は行われない。そのため、このサイクルではDステー
ジへの命令供給がスキップされることになる。 (15)サイクル14(図17) 直前のサイクルで後続命令型フラグに値1がセットされ
たことから、命令フェッチは実行されず、スイッチTの
部分スイッチ0、1がオンとされ、補助バッファA’、
B’の内容が命令バッファA、Bへ転送される。同時に
命令バッファC、DへNOP命令Inが入力される。そ
の後、後続命令型フラグはリセットされる。
【0036】以上の動作により、図9(b)に示す圧縮
した命令列から図9(a)に示す元の命令列が復元され
たことになる。本実施例では、補助バッファを一組しか
持たないため、下位スロットが長形式(前半)である命
令列の後で読み出される、上位スロットが長形式(後
半)の命令列については、これを2回続けて読み出す方
式を採っている。図18は、長形式(前半)を下位スロ
ットに含む入力スロットおよび長形式(後半)を含む入
力スロットの読み出し順序を示す状態遷移表である。図
中の番号は、図7の番号に対応している。
【0037】図19は、長短命令で圧縮された命令を展
開する他の回路構成例を示す。図19の構成例は、圧縮
された命令列の組合せがどのような形式であっても、D
ステージへの展開(復元)命令列の供給をスキップさせ
ることなく連続して行えるようにしたものである。図1
9において、10は図4に示す短形式命令および長形式
命令を格納するCodeRAM、11は命令バッファ、
12は補助バッファ、13〜17はスイッチ回路(S
0、S1、S2、S3、T)、18はアドレス生成回
路、19はコントロール回路、20はCodeRAM1
1から読み出されてスイッチ回路13、14(S0、S
1)に入力される上位スロット部分のデータ形式を示す
もの、21はCodeRAM11から読み出されてスイ
ッチ回路15、16(S2、S3)に入力される下位ス
ロット部分のデータ形式を示すもの、30、31はスイ
ッチ回路(S4、S5)、32、33は32、33は交
替バッファ、34、35はスイッチ、36は交替バッフ
ァ32、33から読み出されてスイッチ回路30、31
(S4、S5)に入力される下位スロット部分のデータ
形式を示すものである。
【0038】図19の構成例では、前述した図5の実施
例に対してさらに、スイッチ回路(S4、S5)30、
31、交替バッファ32、33、スイッチ34、35が
付加された構成となっている。交替バッファ32、3
3、スイッチ34、35からなる部分は、CodeRA
M11から読み出された下位スロット命令を、1サイク
ル遅れた後続サイクルにおいてスイッチ回路(S4、S
5)30、31に供給するための回路である。一方のス
イッチ34がバッファ32側に接続されRAM11から
読み出された下位スロット命令をバッファ32にセット
するとき、他方のスイッチ35はバッファ33側に接続
されバッファ33の出力をスイッチ回路(S4、S5)
30、31に供給する。反対に、一方のスイッチ34が
バッファ33側に接続されRAM11から読み出された
下位スロット命令をバッファ33にセットするとき、他
方のスイッチ35はバッファ32側に接続されバッファ
32の出力をスイッチ回路(S4、S5)30、31に
供給する。スイッチ34、35は、1サイクル毎に切り
替え動作が行われる。
【0039】スイッチ回路(S4、S5)30、31の
構成は、図6(a)の構成において部分スイッチ0だけ
が設けられているものに相当する。図19の回路構成例
におけるスイッチングルールを図20に示す。図5の回
路構成例に対応する図7のスイッチングルールとは一部
同一であり、一部異なっている。すなわち、上位スロッ
トが長形式(前半)、下位スロットが長形式(後半)の
場合、および上位スロットと下位スロットがともに短形
式(形式i)の場合は、両スイッチングルールは基本的
に同一である。その他の場合は、両スイッチングルール
に相違がある。
【0040】図19の回路構成例において、図9(b)
に示されている圧縮された命令列を展開して復元する動
作態様を以下に説明する。図9(b)の1番目の命令か
ら6番目の命令までにおける命令読み出し、展開(復
元)動作は、図5の回路構成例の場合と同一である。図
10(a)のサイクル0から図15(a)のサイクル1
0までの動作と同一の動作が行われる。この間、交替バ
ッファ32、33からは1サイクル前の下位スロットが
読み出され続けるが、スイッチS4、S5はオフ状態の
ままであるので、命令バッファ11への格納動作に影響
を与えることはない。
【0041】したがって、図9(b)の7番目の命令読
み出しから動作を説明する。 (12’)サイクル11’(図21) 7番目の命令、[03]I9 I0 [00]I1 I
2をフェッチする。TAGの下位ビットが「3」と
「0」であり、図20の番号13の「短形式(形式
i)、長形式(前半)」の形であることが分かり、スイ
ッチングルール[S0、S1、[T]、S2、S3]は
[F(i)、[ ]、[ ]]が適用される。図8か
ら、[S0、S1]に対応するF(i)は[0、2]
(i=3)であり、[S0、S1、[T]、S2、S
3]は[0、2、[ ]、[]]となる。また、[S
4、S5]は[ ]であり、オフ状態を示す。
【0042】このスイックング条件により、上位スロッ
トの命令I9、I0が命令バッファA、Dへ入力され、
命令バッファB、CにはNOP命令Inが入力される。
図5の構成例におけるサイクル11では、[S2、S
3]が[0、0]となり、下位スロットの命令I1、I
2が補助バッファA’、B’へ入力されたが、図21の
本構成例では[S2、S3]は[ ]であり、補助バッ
ファへの入力動作は行われない。この点が図21の本構
成例の大きな特徴である。 (13’)サイクル12’(図22) 8番目の命令、[07]I3 I4 [01]I5 I
6をフェッチする。TAGの下位ビットが「7」と
「1」であり、図20の番号15の「長形式(後半)、
短形式(形式i)」の形であることが分かり、スイッチ
ングルール[S0、S1、[T]、S2、S3]は
[2、2、[ ]、F(i)]が適用される。また、
[S4、S5]は[0、0]であり、オン状態を示す。
【0043】これにより、交替バッファ32、33に格
納されている前回サイクルの下位スロットの命令I1、
I2が命令バッファA、Bへ入力され、今回サイクルの
上位スロットの命令I3、I4が命令バッファC、Dへ
入力される。さらに今回サイクルの下位スロットの命令
I5、I6が補助バッファA’、B’に入力される。後
続命令型フラグには、今回サイクルの下位スロットのT
AGの下位ビット「1」がセットされる。
【0044】図5の構成例では再読み込みフラグが設け
られたが、図19の本構成例では同一スロットの再読み
出しが行われないため、再読み込みフラグは設けられて
いない。 (14’)サイクル13’(図23) 直前のサイクルで後続命令型フラグに値1がセットされ
たことから、命令フェッチは実行されず、スイッチTの
部分スイッチ0、1がオンとされ、補助バッファA’、
B’の内容が命令バッファA、Bへ転送される。同時に
命令バッファC、DへNOP命令Inが入力される。そ
の後、後続命令型フラグはリセットされる。
【0045】以上の動作により、図9(b)に示す圧縮
した命令列から図9(a)に示す元の命令列が復元され
たことになる。前述したように、図19の実施例では、
補助バッファ12とは別に交替バッファ22、23を設
け、下位スロットが長形式(前半)の命令は、後続する
サイクルにおいてこの交替バッファ22、23から取り
出すようにしたので、Dステージへの命令供給を連続し
て行うことができる。
【0046】図25は、本発明の他の1実施例の命令列
圧縮方式を示す図である。図25(a)は圧縮される前
の命令列を示し、図25(b)は圧縮された後の命令列
を示す。本実施例の方式は、各命令コードに情報ビット
としてフラグを付与し、このフラグにより当該命令コー
ドがどのスロットに入るべき命令かを示すようにしたも
のである。
【0047】図25(a)において、i0からi7は有
効命令(NOP命令以外の命令)であるとする。この命
令列は、命令の前にその命令がどのスロットに入るべき
命令かを示したフラグを付して、図25(b)に示すよ
うに命令メモリに格納される。図25に示されるよう
に、命令コードi0、i4はスロットAに入る命令であ
るため、それぞれフラグAが付与され、命令コードi
1、i5、i7はスロットBに入る命令であるため、そ
れぞれフラグBが付与され、命令コードi3はスロット
Cに入る命令であるため、フラグCが付与され、命令コ
ードi2、i6はスロットDに入る命令であるため、そ
れぞれフラグDが付与される。
【0048】ここで、注意すべきことは、NOP命令が
スロット数と同一の数またはそれ以上の数だけ連続する
ときは、NOP命令の内のあるものは省略しないで残す
ようにする。具体的には、有効命令および省略しないで
残すNOP命令のそれぞれの任意の命令の間において、
省略するNOP命令の数は最大でも、(スロット数−
1)個までとするように配慮する。図25に示すよう
に、1VLIW命令が4スロットで構成される場合は、
省略するNOP命令の数は最大でも3個とする。
【0049】この理由は、スロット数と同一の数または
それ以上の数だけ連続するNOP命令を省略して命令メ
モリに格納すると、命令メモリ中の先行する命令コード
と後続する命令コードの関係において、(1)圧縮前の
命令列において、後続する命令コードが先行する命令コ
ードと同一のVLIW命令内に存在したものか、それと
もその次のVLIW命令内に存在したものか、(2)圧
縮前の命令列において、後続する命令コードが先行する
命令コードの存在するVLIW命令の次のVLIW命令
内に存在したものか、それともさらにその次のVLIW
命令内に存在したものか、等の判定が不可能になってし
まうからである。すなわち、後続命令の位置を確定する
ことができなくなるからである。
【0050】図25の例では、省略するNOP命令の数
を最大でも3個とするように、スロットBのNOP命令
を適宜残すように配慮している。具体的には、サイクル
3、サイクル5およびサイクル6におけるスロットBの
NOP命令を省略せずに命令メモリに格納している。図
25の例では、省略せずに残すNOP命令のスロット位
置をBスロットに固定しているが、他のスロット位置に
固定してもよい。さらに、スロット位置を固定せずに、
前記した条件を満たす範囲内で任意のスロット位置のN
OP命令を残す方法をとることもできる。
【0051】なお、圧縮前の命令列において後続行がす
べてNOP命令であるということを明示的に指示する情
報をさらに付加して使用すれば、スロット数と同一の数
またはそれ以上の数だけ連続するNOP命令を省略する
ことが可能となる。図26は、図25に示す形式で圧縮
された命令を展開する1実施例の回路構成例を示す。図
26において、60は圧縮された命令を格納するCod
eRAM、61は分配回路、62−1〜62−4は命令
バッファ、63は補助バッファ、64は命令選択回路、
65−1〜65−4はマージ回路、66は制御回路、6
7は改行フラグ設定回路、68−1〜68−4は改行フ
ラグ判定回路、69はDスロットから読み出されたスロ
ット位置指定フラグを保持するDスロットフラグ保持回
路、70は命令バッファ62−1〜62−4および補助
バッファ63内の個々の命令コードバッファに付加され
る空きフラグ、71は補助バッファ63の内容がセット
される命令バッファの番号を保持するフラグ、72は改
行フラグ設定回路67と分配回路61の間の信号線にお
ける情報の形態を示すものである。
【0052】図26の回路では、CodeRAM60か
ら読み出した命令語を分配回路61で展開して、複数の
命令バッファ62−1〜62−4にセットする。命令選
択回路64はサイクリックに順次、命令バッファ62−
1〜62−4の内容を読み出して、Dステージへ供給し
ていく。分配回路61で展開して複数の命令バッファ6
2−1〜62−4にセットする際に、命令バッファに残
されているデータとの重複が生じる場合は、新規にセッ
トする重複部分のデータをいったん補助バッファ63に
格納する。該当する命令バッファが空き状態になった時
点で補助バッファ63の内容を該当命令バッファへ移
す。
【0053】改行フラグ設定回路67は、CodeRA
M60から読み出した圧縮命令コード列中での隣り合う
2つの命令コードに関して、(1)後続する命令語が先
行する命令語と同一VLIW命令に属するのか、(2)
それとも、後続する命令語は先行する命令語の属するV
LIW命令の次に位置するVLIW命令に属するのか、
を判定し、(1)の場合は改行フラグを0に設定し、
(2)の場合は改行フラグを1に設定する。この改行フ
ラグを判定することにより、制御回路66は、各命令語
を格納する命令バッファの位置に関して、先行する命令
語と同一命令バッファに格納するのか、あるいは先行す
る命令語を格納する命令バッファの次の位置の命令バッ
ファに格納するのかを判定して、分配回路の分配動作を
制御することが可能となる。改行フラグ判定回路68−
1〜68−4は、命令語とペアにして格納されているス
ロット位置指定フラグA〜Bをもとに、以下に示す判定
論理で改行フラグを設定する。
【0054】・スロット位置指定フラグがAのとき、→
無条件に改行フラグをオンにする。 ・スロット位置指定フラグがBのとき、→ 直前の命令
語のスロット位置指定フラグがB,C,Dを示している
とき改行フラグをオンにする。
【0055】・スロット位置指定フラグがCのとき、→
直前の命令語のスロット位置指定フラグがC,Dを示
しているとき改行フラグをオンにする。 ・スロット位置指定フラグがDのとき、→ 直前の命令
語のスロット位置指定フラグがDを示しているとき改行
フラグをオンにする。 なお、CodeRAM60から読み出した命令語列の先
頭位置の命令語に関しては、前回フェッチ時の命令語列
中の最終位置の命令語が直前の命令語となる。このた
め、Dスロットフラグ保持回路69は、CodeRAM
60から読み出した命令語列の最終位置の命令語に付加
されているスロット位置指定フラグを次のフェッチサイ
クルまで保持しておく。
【0056】Dステージへの命令供給は、命令選択回路
64がサイクリックに4個の命令バッファの内容を読み
出していくことにより行われる。また、CodeRAM
60からの命令フェッチタイミングについては、現在D
ステージへ命令を供給している命令バッファの後段の命
令バッファが空きの状態、および未完成の場合(途中ま
で命令語が入っている状態)のとき、次のサイクルは命
令フェッチサイクルとなる。現在Dステージへ命令を供
給している命令バッファの後段の命令バッファが完成状
態(確定命令語で埋まっている状態)のときは、次のサ
イクルは命令フェッチ中止のサイクルとなる。
【0057】図27〜図32は、図26の回路におい
て、図25(b)に示されている圧縮命令語を展開して
図25(a)の命令列に復元する動作を示す。 (1)サイクル1(図27) 1番目の命令、A:i0 B:i1 D:i2 C:i
3をフェッチする。命令A:i0とC:i3に改行フラ
グ1が設定され、命令B:i1とD:i2に改行フラグ
0が設定される。これにより、命令A:i0、B:i
1、D:i2は1番目の命令バッファに格納され、命令
C:i3は2番目の命令バッファに格納される。格納さ
れた命令語間の空き命令語にはNOP命令が埋め込まれ
る。Dステージへは、1番目の命令、 i0 i1
nop i2が送出される。 (2)サイクル2(図28) 2番目の命令、A:i4 B:nop B:i5 D:
i6をフェッチする。命令A:i4とB:i5に改行フ
ラグ1が設定され、命令B:nopとD:i6に改行フ
ラグ0が設定される。これにより、命令A:i4と命令
B:nopは3番目のバッファに格納され、命令B:i
5とD:i6は4番目の命令バッファに格納される。格
納された命令語間の空き命令語にはNOP命令が埋め込
まれる。Dステージへは、2番目の命令、 nop
nop i3 nopが送出される。 (3)サイクル3(図29) 命令バッファ中に完成した命令が存在するため、命令フ
ェッチは実行されない。Dステージへは、3番目の命
令、 i4 nop nop nopが送出され
る。 (4)サイクル4(図30) 命令バッファ中に完成した命令が存在するため、命令フ
ェッチは実行されない。Dステージへは、4番目の命
令、 nop i5 nop i6が送出され
る。 (5)サイクル5(図31) 3番目の命令、B:nop B:nop B:i7
(X)をフェッチする。図25(b)では、エントリa
+2の4番目の位置の命令語の内容を図示していない
が、図25(a)のサイクル7に示す形に復元するため
には、図示しないサイクル8のスロットAまたはスロッ
トBの少なくとも一方に有効命令が存在していることが
必要である。3個の命令、B:nop、B:nop、
B:i7に各々改行フラグが設定される。先頭のB:n
opは1番目の命令バッファに格納され、2番目の命令
B:nopは2番目の命令バッファに格納され、3番目
の命令B:i7は3番目の命令バッファに格納される。
Dステージへは、5番目の命令、 nop nop
nop nopが送出される。 (6)サイクル6(図32) 命令バッファ中に完成した命令が存在するため、命令フ
ェッチは実行されない。Dステージへは、6番目の命
令、 nop nop nop nopが送出さ
れる。 (7)図示しない次のサイクル7で、7番目の命令、
nop i7 nop nopがDステージへ送
出される。図26の構成例において、さらに、圧縮した
命令語に後続するVLIW命令がすべてNOP命令で構
成されていることを示すビットをスロット位置指定フラ
グとともに付加するように構成することもできる。
【0058】図33は、図25に示す形式で圧縮された
命令を展開する他の1実施例の回路構成例を示す。図3
3において、80は圧縮された命令を格納するCode
RAM、81は分配回路、82−1〜82−2は命令バ
ッファ、83は補助バッファ、84は命令選択回路、8
5は命令選択制御回路である。本実施例では、命令バッ
ファとして、交互に使用される2つのバッファのみもう
け、CodeRAM80から読み出され、展開された命
令コードであって2つの命令バッファに入りきらない部
分は補助バッファ83に格納するようにしている。さら
に、命令バッファ82−1〜82−2内の個々のバッフ
ァA0〜D0、A1〜D1にはそれぞれ、状態を示すビ
ットが付加されている。図34は、この状態ビットの内
容を示す図である。
【0059】状態Eは、当該スロットは空き状態であ
り、NOP命令を出力して入力待ちとなる状態である。
状態Vは、当該スロットに命令コードが存在する状態で
あり、その命令コードを出力して入力待ちとなる状態で
ある。状態Nは、当該スロットにNOP命令が存在し、
そのNOP命令を出力して入力待ちとなる状態である。
【0060】状態Dは、当該スロットに命令コードが存
在するが、その命令コードは保存した状態のまま、NO
P命令を出力して前記状態Vに遷移する状態である。図
35は、命令語に位置指定フラグを付加して圧縮した命
令コード列とその展開結果の命令コード列を示す図であ
る。図35(a)は、命令格納メモリからフェッチされ
るパターンの一例であり、図35(b)は、図35
(a)に示すパターンを展開した場合の命令発行の順序
を示すものである。
【0061】図36〜図38は、図35(a)に示すパ
ターンを図33の回路で展開していくときの展開態様を
示す図である。以下に、その展開動作を説明する。 (1)サイクル0(図36(a)) 1番目の圧縮命令、A0 B0 D0 B1をフェッチ
する。A0、B0、D0、は左側の命令バッファに格納
され、B1は右側のバッファに格納される。 (2)サイクル1(図36(b)) 1番目の圧縮命令、C0 C1 A1 A2をフェッチ
する。左側の命令バッファから命令A0、B0、no
p、D0が発行され、C1が左側命令バッファ、C0、
A1が右側命令バッファ、A2が補助バッファに格納さ
れる。 (3)サイクル2(図36(c)) フェッチは中止され、右側命令バッファから命令no
p、B1、C0、nopが発行され、補助バッファ内の
A2が左側命令バッファに格納される。 (4)サイクル3(図36(d)) フェッチは中止され、左側命令バッファから命令no
p、nop、C1、nopが発行される。 (5)サイクル4(図37(a)) 3番目の圧縮命令、D1 D2 B2 D3をフェッチ
する。 右側命令バッファから命令A1、nop、no
p、nopが発行され、D1が左側命令バッファ、D2
が右側命令バッファ、B2、D3が補助バッファに格納
される。 (6)サイクル5(図37(b)) フェッチは中止され、左側命令バッファから命令A2、
nop、nop、D1が発行され、補助バッファ内のB
2、D3が左側命令バッファに格納される。(7)サイ
クル6(図37(c)) 4番目の圧縮命令、C2 C3 C4 C5 をフェッチする。 右側命令バッファから命令nop、
nop、nop、D2が発行され、C2が右側命令バッ
ファ、C3が右側命令バッファ、C4、C5が補助バッ
ファに格納される。 (8)サイクル7(図37(d)) フェッチは中止され、左側命令バッファから命令no
p、B2、nop、D3が発行される。 (9)サイクル8(図38(a)) フェッチは中止され、右側命令バッファから命令no
p、nop、C2、nopが発行される。 (10)サイクル9(図38(b)) フェッチは中止され、左側命令バッファから命令no
p、nop、C3、nopが発行され、補助バッファ内
のC4が右側命令バッファに格納される。 (11)サイクル10(図38(c)) フェッチは中止され、右側命令バッファから命令no
p、nop、C4、nopが発行され、補助バッファ内
のC5が左側命令バッファに格納される。 (12)サイクル11(図38(d)) フェッチは中止され、左側命令バッファから命令no
p、nop、C5、nopが発行される。なお、図33
〜図38に示す実施例において、状態フラグDを設定す
る条件は、 1)メモリからフェッチして命令バッファに格納する場
合、および 2)補助バッファから命令バッファに格納する場合にお
いて、 その命令バッファ内において、該当格納スロットの右側
に既にVフラグの立っている他のスロットが存在する場
合である。また、補助バッファの数を十分に増やすこと
により、Dフラグを設けない方式をとることも可能であ
る。
【0062】図33の構成例において、さらに、圧縮し
た命令語に後続するVLIW命令がすべてNOP命令で
構成されていることを示すビットをスロット位置指定フ
ラグとともに付加するように構成することもできる。次
に、圧縮されてメモリに格納される命令へのプログラム
カウンタの与え方の1実施例を図39に示す。図39
は、NOP命令が省略されて圧縮された命令列におい
て、それをロードモジュールに格納した状況を示してい
る。図39に示すように、プログラムカウンタは、ロー
ドモジュール内の有効命令の先頭に付している。図39
において、i0〜i15は命令エレメントを表してい
る。
【0063】命令フェッチの単位は4命令エレメントで
あり、4命令エレメント毎に必ずフェッチ動作が行われ
る。プログラムカウンタは、VLIW命令の固有の番号
を指すものと考えられる。図39では、i0とi1は短
形式であり、NOP命令が2つどこかに省略されてい
る。そこで、このVLIW命令のプログラムカウンタを
「0」と定義している。つまり、i0の先頭である。i
2とi3も同時にフェッチされるが、これは次のタイミ
ングで実行されるべきVLIW命令ある。
【0064】i2とi3は長形式であるため、次のサイ
クルでフェッチが実行されるまで、このVLIW命令は
揃わない。プログラムカウンタは、命令エレメントアド
レス方式をとるものとする。すなわち、1個の命令エレ
メントを1と数える。したがって、図39に示すよう
に、命令エレメントi2から始まるVLIW命令のプロ
グラムカウンタは2となる。
【0065】同様に、i6から始まるVLIW命令のプ
ログラムカウンタは6となる。すなわち、圧縮のために
省略された命令コードにはプログラムカウンタを付与せ
ず、省略されずに命令格納メモリに格納される命令コー
ドにプログラムカウンタを付与するものである。そし
て、プログラムカウンタは、現在の命令が短形式なら
ば、次のプログラムカウンタは+2することによって得
られ、現在の命令が長形式ならば、次のプログラムカウ
ンタは+4することによって得られる。
【0066】図40は、本発明の1実施例のプログラム
カウンタ更新制御回路である。図40において、100
はプログラムカウンタを保持するレジスタ、101は命
令格納メモリ(CodeRAM)、102は長短命令形
式判定回路、103と104は選択回路、105は加算
回路、106は出力先選択回路、107はサブルーチン
コールの戻り番地を保持するレジスタ、108は+4を
指示する信号線、109は+2を指示する信号線、11
0は分岐先プログラムカウンタのオフセット値を指示す
る信号線、111はサブルーチンコールの戻り番地オフ
セット値(ROFF)を指示する信号線である。
【0067】PCレジスタ100の内容をアドレスとし
て命令RAM101の該当番地にアクセスして、その格
納内容をフェッチする。ここで、フェッチされる命令は
VLIW命令であり、前記した通り、フェッチした命令
が長形式の場合は次のプログラムカウンタを得るために
現在のプログラムカウンタに値4を加算する。フェッチ
した命令が短形式の場合は次のプログラムカウンタを得
るために現在のプログラムカウンタに値2を加算する。
この判断を行うのが、長短命令形式判定回路102であ
る。さらに、図40においては、フェッチした命令が分
岐先だった場合の分岐先アドレスを生成するデータパス
も示している。つまり、分岐先アドレスはフェッチした
VLIW命令に含まれる分岐命令の命令コード中に含ま
れている分岐先プログラムカウンタのオフセット値をも
って、これを現在のプログラムカウンタに加えることで
分岐先アドレスを制御する。
【0068】次に、サブルーチンコール命令のリターン
アドレスについて説明する。サブルーチンコール命令の
リターンアドレスは、サブルーチンコール命令を含むV
LIW命令が長形式か短形式かの2通りの各々に対し
て、さらに、遅延スロットの命令が長形式か短形式か暗
黙NOP命令かの3通りのバリエーションがある。した
がって、全部で6通りのバリエーションがある。
【0069】この6通りのバリエーションを図41と図
42に示す。図41、図42において、ターゲット命令
とはサブルーチンコール命令が発行されて、サブルーチ
ンコール命令が実行され、リターン命令が実行されたと
きに、戻るべき命令を意味している。ここで、遅延スロ
ットに含まれるVLIW命令はサブルーチンが実行され
る前に必ず実行されるVLIW命令であることに注意す
る。
【0070】図41、図42に示すバリエーションをす
べて表に書き下すと、図43のようになる。図43にお
いて、ROFFとは、サブルーチンコール命令が発行さ
れた場合、リターンアドレス(図41、図42ではP
C’として表現している)を算出するために必要なオフ
セット値である。このROFFは、図41、図42およ
び図43に示すように、サブルーチンコール命令を含む
VLIW命令が長形式なのか短形式なのか、さらに、遅
延スロットのVLIW命令が長形式なのか、短形式なの
か、暗黙NOP命令なのかでバリエーションがあり、計
算で求めることができない。そこで、本発明では、RO
FFの値をサブルーチンコール命令の命令フィールドに
即値として与えるようにしている。
【0071】すなわち、サブルーチンコール命令の命令
形式は図44に示す形式にしている。このROFFの値
は、アセンブラが自動的に挿入する。戻り番地は、RO
FFとサブルーチンコールを含む命令のブログラムカウ
ンタとの和を計算して、戻り番地を格納するレジスタに
確保する。すなわち、戻り番地は、戻り番地= サブル
ーチンコール命令を含むVLIW命令のPC + RO
FFのようにして計算される。このようにすることによ
り、命令圧縮を行っている場合でも、サブルーチンコー
ル命令に対応する正しい戻り番地を確保することができ
る。図40の回路で説明すると、PCレジスタ100の
内容と戻り番地オフセット信号線111の値とが加算回
路105で加算され、戻り番地保持レジスタ107に格
納されることで前記した動作が実現される。
【0072】前記したように、ROFFを命令中に埋め
込んでいるので、これを現在のプログラムカウンタの内
容と加算することでサブルーチンコールの戻り番地を決
定している。この値は、サブルーチンがコールされ、サ
ブルーチンが一連の命令を実行し終えた後に、プログラ
ムカウンタにセットされ、それによりサブルーチンから
の戻りが実現される。
【0073】
【発明の効果】以上説明したように、本発明によれば、
VLIW方式の計算機においてロードモジュールの容量
を増大させる原因となるNOP命令をロードモジュール
から排除することができ、ロードモジュールを圧縮する
ことが可能となるという顕著な効果が得られる。このよ
うに本発明は、VLIW方式の計算機を産業的に実現す
る技術に寄与するところが大きい。
【図面の簡単な説明】
【図1】本発明の第1の主要な態様を示す図である。
【図2】本発明の1実施例の命令フォーマットを示す図
である。
【図3】本発明の実施例における命令パターンおよび情
報ビットパターンを示す図である
【図4】短形式命令と長形式命令の具体例を示す図であ
る。
【図5】長短命令で圧縮された命令を展開する回路構成
例を示す図である。
【図6】スイッチ回路の論理的なスイッチ構成を示す図
である。
【図7】スイッチ回路群のスイッチングルールを示す図
である。
【図8】スイッチングルールF(i)の詳細を示す図で
ある。
【図9】VLIW命令の命令シーケンス例およびそれを
圧縮した結果の命令シーケンスを示す図である。
【図10】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図11】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図12】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図13】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図14】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図15】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図16】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図17】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図18】長形式(前半)を下位スロットに含む入力ス
ロットおよび長形式(後半)を含む入力スロットの読み
出し順序を示す状態遷移表を示す図である。
【図19】長短命令で圧縮された命令を展開する他の回
路構成例を示す図である。
【図20】図19の回路構成例におけるスイッチングル
ールを示す図である。
【図21】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図22】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図23】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図24】本発明の第2の主要な態様を示す図である。
【図25】本発明の他の1実施例の命令圧縮方式を示す
図である。
【図26】図25に示す形式で圧縮された命令を展開す
る1実施例の回路構成例を示す図である。
【図27】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図28】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図29】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図30】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図31】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図32】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図33】図25に示す形式で圧縮された命令を展開す
る他の1実施例の回路構成例を示す図である。
【図34】図33に示す実施例で使用される状態ビット
の内容を示す図である。
【図35】命令語に位置指定フラグを付加して圧縮した
命令コード列とその展開結果の命令コード列を示す図で
ある。
【図36】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図37】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図38】圧縮された命令列を展開して復元する動作態
様を示す図である。
【図39】圧縮されてメモリに格納される命令へのプロ
グラムカウンタの与え方の1実施例を示す図である。
【図40】本発明の1実施例のプログラムカウンタ更新
制御回路を示す図である。
【図41】サブルーチンコール命令のリターンアドレス
のバリエーションを示す図である。
【図42】サブルーチンコール命令のリターンアドレス
のバリエーションを示す図である。
【図43】サブルーチンコール命令のリターンアドレス
のバリエーションを表にして示した図である。
【図44】サブルーチンコール命令の命令形式を示す図
である。
【符号の説明】
1 命令格納メモリ 2 命令コード復元回路 3−1〜3−n 命令コード列 4 圧縮形態指示情報 51 命令格納メモリ 52 命令コード復元回路 53−1〜53−n 格納位置指示情報 54−1〜54−n 命令コード

Claims (44)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも特定の命令コード列に関して
    は圧縮された形で表現される命令コード列と、その命令
    コード列に関する圧縮の形態を示す圧縮形態指示情報と
    を格納する命令格納メモリと、 前記命令格納メモリから読み出された命令コード列を、
    その命令コード列に付加された圧縮形態指示情報にもと
    づいて、非圧縮の状態に復元する命令コード復元回路と
    をそなえたことを特徴とする命令圧縮格納および命令復
    元機能を有するデータ処理装置。
  2. 【請求項2】 前記命令コードはVLIW命令の構成要
    素であり、 圧縮前の状態のVLIW命令中のNOP命令の数が所定
    数以上のとき、複数のNOP命令の内の少なくとも一部
    を省略する形で命令コード列の圧縮が行われ、さらにN
    OP命令の数および位置にしたがって、圧縮の形態が決
    定されることを特徴とする請求項1に記載の命令圧縮格
    納および命令復元機能を有するデータ処理装置。
  3. 【請求項3】 VLIW命令を構成する命令スロット数
    より少ない数の命令コードにより構成される命令コード
    列に対応して、それぞれ圧縮形態指示情報が付加される
    ことを特徴とする請求項2に記載の命令圧縮格納および
    命令復元機能を有するデータ処理装置。
  4. 【請求項4】 後続するVLIW命令がすべてNOP命
    令で構成されていることを示す情報を先行する命令コー
    ド列に付加される圧縮形態指示情報に含ませることによ
    り、すべてNOP命令で構成されているVLIW命令を
    省略した形で命令格納メモリへの命令コード列の格納が
    行われ、 命令格納メモリから読み出した圧縮形態指示情報から、
    後続するVLIW命令がすべてNOP命令で構成されて
    いることを示す情報を検出したとき、命令コード復元回
    路において、すべてNOP命令で構成されているVLI
    W命令を復元することを特徴とする請求項3に記載の命
    令圧縮格納および命令復元機能を有するデータ処理装
    置。
  5. 【請求項5】 少なくとも特定の命令コード列に関して
    は圧縮された形で表現される命令コード列と、その命令
    コード列に関する圧縮の形態を示す圧縮形態指示情報と
    を格納する命令格納メモリと、 復元された命令を格納する命令バッファと、 復元過程にある命令の一部を一時的に格納する補助バッ
    ファと、 命令格納メモリから読み出された命令の上位スロット部
    分を構成する命令コード列を命令バッファに入力するた
    めの第1のスイッチング手段と、 命令格納メモリから読み出された命令の下位スロット部
    分を構成する命令コード列を命令バッファおよび補助バ
    ッファに入力するための第2のスイッチング手段と、 補助バッファの内容を命令バッファに転送するための第
    3のスイッチング手段と、 圧縮形態指示情報にもとづいて、第1のスイッチング手
    段、第2のスイッチング手段および第3のスイッチング
    手段を制御するための制御回路手段とをそなえたことを
    特徴とする命令圧縮格納および命令復元機能を有するデ
    ータ処理装置。
  6. 【請求項6】 前記命令コードはVLIW命令の構成要
    素であり、 圧縮前の状態のVLIW命令中のNOP命令の数が所定
    数以上のとき、複数のNOP命令の内の少なくとも一部
    を省略する形で命令コード列の圧縮が行われ、さらにN
    OP命令の数および位置にしたがって、圧縮の形態が決
    定されることを特徴とする請求項5に記載の命令圧縮格
    納および命令復元機能を有するデータ処理装置。
  7. 【請求項7】 VLIW命令を構成する命令スロット数
    より少ない数の命令コードにより構成される命令コード
    列に対応して、それぞれ圧縮形態指示情報が付加される
    ことを特徴とする請求項6に記載の命令圧縮格納および
    命令復元機能を有するデータ処理装置。
  8. 【請求項8】 後続するVLIW命令がすべてNOP命
    令で構成されていることを示す情報を先行する命令コー
    ド列に付加される圧縮形態指示情報に含ませることによ
    り、すべてNOP命令で構成されているVLIW命令を
    省略した形で命令格納メモリへの命令コード列の格納が
    行われ、 命令格納メモリから読み出した圧縮形態指示情報から、
    後続するVLIW命令がすべてNOP命令で構成されて
    いることを示す情報を検出したとき、命令コード復元回
    路において、すべてNOP命令で構成されているVLI
    W命令を復元することを特徴とする請求項7に記載の命
    令圧縮格納および命令復元機能を有するデータ処理装
    置。
  9. 【請求項9】 前記第1のスイッチング手段は、対応す
    る命令コード列内の各命令コード毎に第1の部分スイッ
    チング手段を個別にそなえ、各第1の部分スイッチング
    手段は対応する各命令コードを命令バッファ中の互いに
    異なる部分に1力させるように動作し、 前記第2のスイッチング手段は、対応する命令コード列
    内の各命令コード毎に第2の部分スイッチング手段を個
    別にそなえ、各第2の部分スイッチング手段は対応する
    各命令コードを命令バッファおよび補助バッファ中の互
    いに異なる部分に入力させるように動作することを特徴
    とする請求項5から請求項8のいずれかに記載の命令圧
    縮格納および命令復元機能を有するデータ処理装置。
  10. 【請求項10】 命令格納メモリから読み出された命令
    の下位スロット部分を遅延して出力する遅延出力バッフ
    ァと、 遅延出力バッファからの出力を命令バッファの上位部分
    に入力するための第4のスイッチング手段とをさらにそ
    なえたことを特徴とする請求項9に記載の命令圧縮格納
    および命令復元機能を有するデータ処理装置。
  11. 【請求項11】 所定数の命令コードからなる命令コー
    ド列の単位で命令コードの格納および読み出しが可能な
    命令格納メモリであって、各命令コード毎に本来の格納
    位置を指示する格納位置指示情報が付加されるととも
    に、特定の命令コードを省略して圧縮した形の命令コー
    ド列を格納する命令格納メモリと、 前記命令格納メモリから読み出された命令コード列を、
    各命令コードに付加された格納位置指示情報にもとづい
    て、非圧縮の状態に復元する命令コード復元回路とをそ
    なえたことを特徴とする命令圧縮格納および命令復元機
    能を有するデータ処理装置。
  12. 【請求項12】 前記命令コードはVLIW命令の構成
    要素であり、前記格納位置指示情報はVLIW命令のス
    ロット位置情報であり、前記特定の命令コードはNOP
    命令であることを特徴とする請求項11に記載の命令圧
    縮格納および命令復元機能を有するデータ処理装置。
  13. 【請求項13】 圧縮前の命令コード列中において存在
    するNOP命令列からNOP命令を省略するとき、連続
    して省略されるNOP命令の数が所定数を越えないよう
    にNOP命令を圧縮コード列中に存在させることを特徴
    とする請求項12に記載の命令圧縮格納および命令復元
    機能を有するデータ処理装置。
  14. 【請求項14】 省略せずに圧縮コード列中に存在させ
    るNOP命令の位置を、圧縮前のVLIW命令語の特定
    スロット位置に固定させることを特徴とする請求項13
    に記載の命令圧縮格納および命令復元機能を有するデー
    タ処理装置。
  15. 【請求項15】 後続するVLIW命令がすべてNOP
    命令で構成されていることを示す情報を命令コードに付
    加することにより、すべてNOP命令で構成されている
    VLIW命令を省略した形で命令格納メモリへの命令コ
    ード列の格納が行われ、 命令格納メモリから読み出した命令コードに、後続する
    VLIW命令がすべてNOP命令で構成されていること
    を示す情報が付加されていることを検出したとき、命令
    コード復元回路において、すべてNOP命令で構成され
    ているVLIW命令を復元することを特徴とする請求項
    12から請求項14のいずれかに記載の命令圧縮格納お
    よび命令復元機能を有するデータ処理装置。
  16. 【請求項16】 所定数の命令コードからなる命令コー
    ド列の単位で命令コードの格納および読み出しが可能な
    命令格納メモリであって、各命令コード毎に本来の格納
    位置を指示する格納位置指示情報が付加されるととも
    に、特定の命令コードを省略して圧縮した形の命令コー
    ド列を格納する命令格納メモリと、 それぞれ複数の命令コードが格納され、サイクリックに
    命令の取り出しが行われる複数の命令バッファと、 命令格納メモリから読み出された圧縮命令コード列を展
    開して前記複数の命令バッファに送出する命令コード分
    配手段と、 命令コードに付加されている格納位置指示情報および命
    令取り出し中の命令バッファを指示する情報にもとづい
    て、前記命令コード分配手段における圧縮命令コード列
    の展開動作を制御するための制御回路手段とをそなえた
    ことを特徴とする命令圧縮格納および命令復元機能を有
    するデータ処理装置。
  17. 【請求項17】 前記命令コードはVLIW命令の構成
    要素であり、前記格納位置指示情報はVLIW命令のス
    ロット位置情報であり、前記特定の命令コードはNOP
    命令であることを特徴とする請求項16に記載の命令圧
    縮格納および命令復元機能を有するデータ処理装置。
  18. 【請求項18】 圧縮前の命令コード列中において存在
    するNOP命令列からNOP命令を省略するとき、連続
    して省略されるNOP命令の数が所定数を越えないよう
    にNOP命令を圧縮コード列中に存在させることを特徴
    とする請求項17に記載の命令圧縮格納および命令復元
    機能を有するデータ処理装置。
  19. 【請求項19】 省略せずに圧縮コード列中に存在させ
    るNOP命令の位置を、圧縮前のVLIW命令語の特定
    スロット位置に固定させることを特徴とする請求項18
    に記載の命令圧縮格納および命令復元機能を有するデー
    タ処理装置。
  20. 【請求項20】 後続するVLIW命令がすべてNOP
    命令で構成されていることを示す情報を命令コードに付
    加することにより、すべてNOP命令で構成されている
    VLIW命令を省略した形で命令格納メモリへの命令コ
    ード列の格納が行われ、 命令格納メモリから読み出した命令コードに、後続する
    VLIW命令がすべてNOP命令で構成されていること
    を示す情報が付加されていることを検出したとき、命令
    コード復元回路において、すべてNOP命令で構成され
    ているVLIW命令を復元することを特徴とする請求項
    17から請求項19のいずれかに記載の命令圧縮格納お
    よび命令復元機能を有するデータ処理装置。
  21. 【請求項21】 圧縮した形の命令コード列中の隣り合
    う2つの命令コードにそれぞれ付加されている格納位置
    指示情報を比較することにより、復元後の命令コード列
    において、その2つの命令コード中の後続位置の命令コ
    ードが先行位置の命令コードと同一の命令語内に位置す
    るものであるか、あるいは後続位置の命令コードが先行
    する命令コードが属する命令語の次の位置の命令語内に
    位置するものであるかを指示するフラグ情報を抽出する
    フラグ情報抽出手段をそなえ、 前記制御回路手段は、前記フラグ情報抽出手段から出力
    されるフラグ情報を使用して各命令コードを複数の命令
    バッファのいずれかへ送出していくことを特徴とする請
    求項17から請求項20のいずれかに記載の命令圧縮格
    納および命令復元機能を有するデータ処理装置。
  22. 【請求項22】 命令バッファの各スロットに、そのス
    ロットの状態を指示するフラグをもうけ、前記制御回路
    手段は、フラグ情報を使用して各命令コードを複数の命
    令バッファのいずれかへ送出していくとともに、フラグ
    情報を更新していくことを特徴とする請求項17から請
    求項20のいずれかに記載の命令圧縮格納および命令復
    元機能を有するデータ処理装置。
  23. 【請求項23】 前記フラグは、(1)当該スロットは
    空き状態であり、NOP命令を出力して入力待ちとなる
    第1の状態と、(2)当該スロットに命令コードが存在
    する状態であり、その命令コードを出力して入力待ちと
    なる第2の状態と、(3)当該スロットにNOP命令が
    存在し、そのNOP命令を出力して入力待ちとなる第3
    の状態と、(4)当該スロットに命令コードが存在する
    が、その命令コードは保存した状態のまま、NOP命令
    を出力して前記第2の状態に遷移する第4の状態のいず
    れの状態にあるかを指示するものであることを特徴とす
    る請求項22に記載の命令圧縮格納および命令復元機能
    を有するデータ処理装置。
  24. 【請求項24】 命令格納メモリから読み出した命令コ
    ードを前記複数の命令バッファのいずれにも格納できな
    い場合に、その命令コードを一時的に保持する補助バッ
    ファをもうけたことを特徴とする請求項21から請求項
    23のいずれかに記載の命令圧縮格納および命令復元機
    能を有するデータ処理装置。
  25. 【請求項25】 少なくとも特定の命令コード列に関し
    ては圧縮された形で表現される命令コード列と、その命
    令コード列に関する圧縮の形態を示す圧縮形態指示情報
    とを格納する命令格納メモリと、 前記命令格納メモリから読み出された命令コード列を、
    その命令コード列に付加された圧縮形態指示情報にもと
    づいて、非圧縮の状態に復元する命令コード復元回路と
    をそなえ、さらに圧縮のために省略された命令コードに
    はプログラムカウンタを付与せず、省略されずに前記命
    令格納メモリに格納される命令コードにプログラムカウ
    ンタを付与したことを特徴とする命令圧縮格納および命
    令復元機能を有するデータ処理装置。
  26. 【請求項26】 サブルーチンコール命令の命令コード
    内にリターンオフセット値を即値として与え、サブルー
    チンコールを含む命令のプログラムカウンタにサブルー
    チンコール命令内に即値として与えているリターンオフ
    セット値を加えた値のプログラムカウンタがサブルーチ
    ンコールを終了した後の戻りプログラムカウンタとなる
    ように構成したことを特徴とする請求項25に記載の命
    令圧縮格納および命令復元機能を有するデータ処理装
    置。
  27. 【請求項27】 前記命令コードはVLIW命令の構成
    要素であり、 圧縮前の状態のVLIW命令中のNOP命令の数が所定
    数以上のとき、複数のNOP命令の内の少なくとも一部
    を省略する形で命令コード列の圧縮が行われ、さらにN
    OP命令の数および位置にしたがって、圧縮の形態が決
    定されることを特徴とする請求項26に記載の命令圧縮
    格納および命令復元機能を有するデータ処理装置。
  28. 【請求項28】 VLIW命令を構成する命令スロット
    数より少ない数の命令コードにより構成される命令コー
    ド列に対応して、それぞれ圧縮形態指示情報が付加され
    ることを特徴とする請求項27に記載の命令圧縮格納お
    よび命令復元機能を有するデータ処理装置。
  29. 【請求項29】 後続するVLIW命令がすべてNOP
    命令で構成されていることを示す情報を先行する命令コ
    ード列に付加される圧縮形態指示情報に含ませることに
    より、すべてNOP命令で構成されているVLIW命令
    を省略した形で命令格納メモリへの命令コード列の格納
    が行われ、 命令格納メモリから読み出した圧縮形態指示情報から、
    後続するVLIW命令がすべてNOP命令で構成されて
    いることを示す情報を検出したとき、命令コード復元回
    路において、すべてNOP命令で構成されているVLI
    W命令を復元することを特徴とする請求項28に記載の
    命令圧縮格納および命令復元機能を有するデータ処理装
    置。
  30. 【請求項30】 所定数の命令コードからなる命令コー
    ド列の単位で命令コードの格納および読み出しが可能な
    命令格納メモリであって、各命令コード毎に本来の格納
    位置を指示する格納位置指示情報が付加されるととも
    に、特定の命令コードを省略して圧縮した形の命令コー
    ド列を格納する命令格納メモリと、 前記命令格納メモリから読み出された命令コード列を、
    各命令コードに付加された格納位置指示情報にもとづい
    て、非圧縮の状態に復元する命令コード復元回路とをそ
    なえ、さらに圧縮のために省略された命令コードにはプ
    ログラムカウンタを付与せず、省略されずに前記命令格
    納メモリに格納される命令コードにプログラムカウンタ
    を付与したことを特徴とする命令圧縮格納および命令復
    元機能を有するデータ処理装置。
  31. 【請求項31】 サブルーチンコール命令の命令コード
    内にリターンオフセット値を即値として与え、サブルー
    チンコールを含む命令のプログラムカウンタにサブルー
    チンコール命令内に即値として与えているリターンオフ
    セット値を加えた値のプログラムカウンタがサブルーチ
    ンコールを終了した後の戻りプログラムカウンタとなる
    ように構成したことを特徴とする請求項30に記載の命
    令圧縮格納および命令復元機能を有するデータ処理装
    置。
  32. 【請求項32】 前記命令コードはVLIW命令の構成
    要素であり、前記格納位置指示情報はVLIW命令のス
    ロット位置情報であり、前記特定の命令コードはNOP
    命令であることを特徴とする請求項31に記載の命令圧
    縮格納および命令復元機能を有するデータ処理装置。
  33. 【請求項33】 圧縮前の命令コード列中において存在
    するNOP命令列からNOP命令を省略するとき、連続
    して省略されるNOP命令の数が所定数を越えないよう
    にNOP命令を圧縮コード列中に存在させることを特徴
    とする請求項32に記載の命令圧縮格納および命令復元
    機能を有するデータ処理装置。
  34. 【請求項34】 省略せずに圧縮コード列中に存在させ
    るNOP命令の位置を、圧縮前のVLIW命令語の特定
    スロット位置に固定させることを特徴とする請求項33
    に記載の命令圧縮格納および命令復元機能を有するデー
    タ処理装置。
  35. 【請求項35】 後続するVLIW命令がすべてNOP
    命令で構成されていることを示す情報を命令コードに付
    加することにより、すべてNOP命令で構成されている
    VLIW命令を省略した形で命令格納メモリへの命令コ
    ード列の格納が行われ、 命令格納メモリから読み出した命令コードに、後続する
    VLIW命令がすべてNOP命令で構成されていること
    を示す情報が付加されていることを検出したとき、命令
    コード復元回路において、すべてNOP命令で構成され
    ているVLIW命令を復元することを特徴とする請求項
    32から請求項34のいずれかに記載の命令圧縮格納お
    よび命令復元機能を有するデータ処理装置。
  36. 【請求項36】 少なくとも特定の命令コード列に関し
    ては圧縮された形で表現される命令コード列と、その命
    令コード列に関する圧縮の形態を示す圧縮形態指示情報
    とを格納する記憶媒体。
  37. 【請求項37】 前記命令コードはVLIW命令の構成
    要素であり、 圧縮前の状態のVLIW命令中のNOP命令の数が所定
    数以上のとき、複数のNOP命令の内の少なくとも一部
    を省略する形で命令コード列の圧縮が行われ、さらにN
    OP命令の数および位置にしたがって、圧縮の形態が決
    定されることを特徴とする請求項36に記載の記憶媒
    体。
  38. 【請求項38】 VLIW命令を構成する命令スロット
    数より少ない数の命令コードにより構成される命令コー
    ド列に対応して、それぞれ圧縮形態指示情報が付加され
    ることを特徴とする請求項37に記載の記憶媒体。
  39. 【請求項39】 後続するVLIW命令がすべてNOP
    命令で構成されていることを示す情報を先行する命令コ
    ード列に付加される圧縮形態指示情報に含ませることに
    より、すべてNOP命令で構成されているVLIW命令
    を省略した形命令コード列の格納が行われることを特徴
    とする請求項38に記載の記憶媒体。
  40. 【請求項40】 所定数の命令コードからなる命令コー
    ド列の単位で命令コードの格納および読み出しが可能な
    記憶媒体であって、各命令コード毎に本来の格納位置を
    指示する格納位置指示情報が付加されるとともに、特定
    の命令コードを省略して圧縮した形の命令コード列を格
    納する記憶媒体。
  41. 【請求項41】 前記命令コードはVLIW命令の構成
    要素であり、前記格納位置指示情報はVLIW命令のス
    ロット位置情報であり、前記特定の命令コードはNOP
    命令であることを特徴とする請求項40に記載の記憶媒
    体。
  42. 【請求項42】 圧縮前の命令コード列中において存在
    するNOP命令列からNOP命令を省略するとき、連続
    して省略されるNOP命令の数が所定数を越えないよう
    にNOP命令を圧縮コード列中に存在させることを特徴
    とする請求項41に記載の記憶媒体。
  43. 【請求項43】 省略せずに圧縮コード列中に存在させ
    るNOP命令の位置を、圧縮前のVLIW命令語の特定
    スロット位置に固定させることを特徴とする請求項42
    に記載の記憶媒体。
  44. 【請求項44】 後続するVLIW命令がすべてNOP
    命令で構成されていることを示す情報を命令コードに付
    加することにより、すべてNOP命令で構成されている
    VLIW命令を省略した形で命令コード列の格納が行わ
    れることを特徴とする請求項41から請求項43のいず
    れかに記載の記憶媒体。
JP9238287A 1997-09-03 1997-09-03 命令圧縮格納および命令復元機能を有するデータ処理装置 Withdrawn JPH1185512A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9238287A JPH1185512A (ja) 1997-09-03 1997-09-03 命令圧縮格納および命令復元機能を有するデータ処理装置
US09/045,117 US6275921B1 (en) 1997-09-03 1998-03-20 Data processing device to compress and decompress VLIW instructions by selectively storing non-branch NOP instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9238287A JPH1185512A (ja) 1997-09-03 1997-09-03 命令圧縮格納および命令復元機能を有するデータ処理装置

Publications (1)

Publication Number Publication Date
JPH1185512A true JPH1185512A (ja) 1999-03-30

Family

ID=17027955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9238287A Withdrawn JPH1185512A (ja) 1997-09-03 1997-09-03 命令圧縮格納および命令復元機能を有するデータ処理装置

Country Status (2)

Country Link
US (1) US6275921B1 (ja)
JP (1) JPH1185512A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774581B2 (en) 2007-03-23 2010-08-10 Samsung Electronics Co., Ltd. Apparatus for compressing instruction word for parallel processing VLIW computer and method for the same
JP2014524097A (ja) * 2011-07-28 2014-09-18 クアルコム,インコーポレイテッド エントロピ符号化命令シーケンスの記憶および実行可能な形式への変換のための方法および装置
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

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL131839A (en) * 1998-09-10 2004-12-15 Dsp Group Ltd Method for reducing code size using programmable delay slots
AU2001245720A1 (en) * 2000-03-15 2001-09-24 Arc International Plc Method and apparatus for processor code optimization using code compression
US6895463B2 (en) 2001-10-30 2005-05-17 Pioneer Digital Technologies, Inc. Method and apparatus for efficiently running an execution image using volatile and non-volatile memory
US7467139B1 (en) * 2001-11-13 2008-12-16 Unisys Corporation Library lock management
JP2003186668A (ja) * 2001-12-14 2003-07-04 Mitsubishi Electric Corp 命令コード変換ユニットおよび命令コード変換方法
JP2007514245A (ja) * 2003-12-16 2007-05-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリ効率に優れた命令処理方式
KR20080067711A (ko) * 2005-11-15 2008-07-21 엔엑스피 비 브이 인스트럭션 실행 방법, 프로세싱 시스템 및 데이터 프로세싱 시스템
US20070186210A1 (en) * 2006-02-06 2007-08-09 Via Technologies, Inc. Instruction set encoding in a dual-mode computer processing environment
US7688232B2 (en) * 2007-03-27 2010-03-30 Intel Corporation Optimal selection of compression entries for compressing program instructions
KR101603751B1 (ko) * 2010-02-18 2016-03-16 삼성전자주식회사 명령어 병렬 처리 컴퓨터를 위한 명령어 압축 장치 및 방법
KR101738938B1 (ko) * 2011-09-08 2017-05-23 삼성전자주식회사 명령어 압축 장치, 명령어 압축 방법 및 컴퓨터로 읽을 수 있는 저장 매체
KR101910934B1 (ko) 2012-03-26 2018-12-28 삼성전자 주식회사 루프의 프롤로그 또는 에필로그의 비유효 연산을 처리하는 장치 및 방법
GB2514397B (en) 2013-05-23 2017-10-11 Linear Algebra Tech Ltd Corner detection
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
US9910675B2 (en) 2013-08-08 2018-03-06 Linear Algebra Technologies Limited Apparatus, systems, and methods for low power computational imaging
US9146747B2 (en) 2013-08-08 2015-09-29 Linear Algebra Technologies Limited Apparatus, systems, and methods for providing configurable computational imaging pipeline
US9727113B2 (en) 2013-08-08 2017-08-08 Linear Algebra Technologies Limited Low power computational imaging
US10001993B2 (en) 2013-08-08 2018-06-19 Linear Algebra Technologies Limited Variable-length instruction buffer management
US9196017B2 (en) 2013-11-15 2015-11-24 Linear Algebra Technologies Limited Apparatus, systems, and methods for removing noise from an image
US9270872B2 (en) 2013-11-26 2016-02-23 Linear Algebra Technologies Limited Apparatus, systems, and methods for removing shading effect from image
US10460704B2 (en) 2016-04-01 2019-10-29 Movidius Limited Systems and methods for head-mounted display adapted to human visual mechanism
US10002010B2 (en) * 2016-05-13 2018-06-19 International Business Machines Corporation Multi-byte compressed string representation
US10949947B2 (en) 2017-12-29 2021-03-16 Intel Corporation Foveated image rendering for head-mounted display devices

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5057837A (en) * 1987-04-20 1991-10-15 Digital Equipment Corporation Instruction storage method with a compressed format using a mask word
JP3598589B2 (ja) * 1995-06-28 2004-12-08 株式会社日立製作所 プロセッサ
US5787302A (en) * 1996-05-15 1998-07-28 Philips Electronic North America Corporation Software for producing instructions in a compressed format for a VLIW processor
US5870576A (en) * 1996-12-16 1999-02-09 Hewlett-Packard Company Method and apparatus for storing and expanding variable-length program instructions upon detection of a miss condition within an instruction cache containing pointers to compressed instructions for wide instruction word processor architectures
US5881260A (en) * 1998-02-09 1999-03-09 Hewlett-Packard Company Method and apparatus for sequencing and decoding variable length instructions with an instruction boundary marker within each instruction

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774581B2 (en) 2007-03-23 2010-08-10 Samsung Electronics Co., Ltd. Apparatus for compressing instruction word for parallel processing VLIW computer and method for the same
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

Also Published As

Publication number Publication date
US6275921B1 (en) 2001-08-14

Similar Documents

Publication Publication Date Title
JPH1185512A (ja) 命令圧縮格納および命令復元機能を有するデータ処理装置
US4752873A (en) Data processor having a plurality of operating units, logical registers, and physical registers for parallel instructions execution
JPH04219859A (ja) 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ
US20050198471A1 (en) Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein
JPH0658631B2 (ja) デ−タ処理装置
JPH0545985B2 (ja)
WO1994016385A1 (en) System and method for assigning tags to instructions to control instruction execution
US20020111975A1 (en) Data processing system
US20030009652A1 (en) Data processing system and control method
JPH1091430A (ja) 命令解読装置
JP2007206924A (ja) 演算処理システム
JPH10116191A (ja) 圧縮命令用バッファを備えたプロセッサ
JP2933848B2 (ja) データ処理装置
JPH05189360A (ja) データ転送および記憶方式
JP2527814B2 (ja) 命令処理システム
JPS62232036A (ja) 情報処理装置
US20050114626A1 (en) Very long instruction word architecture
JP2583614B2 (ja) ベクトル演算装置
US5768554A (en) Central processing unit
JPH0290324A (ja) マイクロプログラム制御装置
JPS63141131A (ja) パイプライン制御方式
JPH1040165A (ja) データ読み出し方法およびリードバッファ
JP2000003279A (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体
SU1702367A1 (ru) Устройство дл распаковки команд
JPH07325805A (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: 20041207