JP2000056972A - Vliw processor and its processing method - Google Patents

Vliw processor and its processing method

Info

Publication number
JP2000056972A
JP2000056972A JP10224406A JP22440698A JP2000056972A JP 2000056972 A JP2000056972 A JP 2000056972A JP 10224406 A JP10224406 A JP 10224406A JP 22440698 A JP22440698 A JP 22440698A JP 2000056972 A JP2000056972 A JP 2000056972A
Authority
JP
Japan
Prior art keywords
instruction
register
increment
stream
pointer
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
JP10224406A
Other languages
Japanese (ja)
Other versions
JP3601758B2 (en
Inventor
Shiro Oba
史朗 大庭
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 JP22440698A priority Critical patent/JP3601758B2/en
Publication of JP2000056972A publication Critical patent/JP2000056972A/en
Application granted granted Critical
Publication of JP3601758B2 publication Critical patent/JP3601758B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To dynamically change the number of instruction streams by a single processor. SOLUTION: Instruction pointers 120-123 which are installed in accordance with the respective instruction fields of 1VLIW and hold a memory address as a high-order bit and a field address in the memory address as a low-order bit, increment registers 180-183 which are installed for the pointers and add an increment value to the instruction pointers 120-123 whenever 1VLIW is held in instruction registers 140-143, a selection circuit 13 supplying the content of an instruction memory designated by the instruction pointers 120-123 to the instruction register corresponding to the content of the instruction pointer, a state update circuit 19 updating the content of the state register in response to a state shift instruction and an instruction stream termination instruction and a state/increment conversion circuit 21 converting the output of the state register 20 into the increment value and supplying it to the increment registers 180-183 are installed.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、複数命令フィール
ドからなる超長命令語(VLIW)を命令メモリから読
み出して命令レジスタに保持し、保持した該超長命令語
を解読実行するVLIWプロセッサ及びその処理方法に
関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a VLIW processor which reads a very long instruction word (VLIW) comprising a plurality of instruction fields from an instruction memory and holds it in an instruction register, decodes the held very long instruction word, and executes the VLIW processor. Regarding the processing method.

【0002】[0002]

【従来の技術】VLIWプロセッサでは、複数の演算ユ
ニット及び制御ユニットを備え、複数命令フィールドか
らなる64〜512ビットのVLIWを同時実行するの
で、高速処理が可能である。しかし、従来のVLIWプ
ロセッサは命令ストリームが単一であるので、例えば入
出力装置などのリソース制御を割り込み処理すると、必
要な高速データ処理を一時的に中断しなければならず、
高速化が妨げられる。そこで、従来では別個の複数のコ
ントローラ系プロセッサを用いて、このようなリソース
制御を行っていた。
2. Description of the Related Art A VLIW processor is provided with a plurality of operation units and control units, and simultaneously executes a 64- to 512-bit VLIW composed of a plurality of instruction fields, thereby enabling high-speed processing. However, since the conventional VLIW processor has a single instruction stream, if resource control such as an input / output device is interrupted, necessary high-speed data processing must be temporarily interrupted.
Speeding up is hindered. Therefore, conventionally, such resource control has been performed using a plurality of separate controller processors.

【0003】[0003]

【発明が解決しようとする課題】しかし、複数のマイク
ロプロセッサを備えたマルチプロセッサシステムを構築
し、マイクロプロセッサ間でコミニュケーションを取る
必要があるので、コスト高になるとともに、制御が複雑
になる。さらに、命令セットがVLIWプロセッサのそ
れと異なるリソース制御用プロセッサは、VLIWプロ
セッサ用のオペレーティングシステムを利用することが
できないので、複数のOSを備える必要がある。この場
合、例えば、マルチメディア系プロセッサに対応するO
Sが無かったり、また、コントローラ系プロセッサのO
Sとマルチメディア系プロッセサのOSとの親和性が乏
しくて、相互動作の調整に多大な手間と時間が費やされ
たりするという問題が生ずる。
However, since it is necessary to construct a multiprocessor system having a plurality of microprocessors and communicate among the microprocessors, the cost increases and the control becomes complicated. Further, a resource control processor having an instruction set different from that of the VLIW processor cannot use the operating system for the VLIW processor, and therefore needs to have a plurality of OSs. In this case, for example, an O corresponding to a multimedia processor
There is no S, and the O
There is a problem that the affinity between S and the OS of the multimedia processor is poor, and a great deal of effort and time is required for adjusting the mutual operation.

【0004】本発明の目的は、このような問題点に鑑
み、単一プロッセサで命令ストリーム数をダイナミック
に変更することが可能なVLIWプロセッサ及びその処
理方法を提供することにある。
An object of the present invention is to provide a VLIW processor capable of dynamically changing the number of instruction streams with a single processor and a processing method thereof in view of such a problem.

【0005】[0005]

【課題を解決するための手段及びその作用効果】請求項
1では、n命令フィールドからなる超長命令語を命令メ
モリから読み出して命令レジスタに保持し、保持した該
超長命令語を解読実行するVLIWプロセッサにおい
て、該n命令フィールドの各々に対して備えられ、メモ
リアドレスMAを上位ビットとしメモリアドレス内のフ
ィールドアドレスFAを下位ビットとして保持する命令
ポインタと、該命令ポインタの各々に対して備えられ、
i(1≦i≦n)命令フィールドを並列処理するために
値iが設定され、該超命令語を命令レジスタに保持させ
る毎に該値iを該命令ポインタに加算させるための増分
レジスタと、該命令ポインタで指定される該命令メモリ
の内容を該命令ポインタに対応した該命令レジスタに供
給する選択回路とを有し、値iが設定される該増分レジ
スタの個数がiである。
According to the present invention, a very long instruction word consisting of n instruction fields is read from an instruction memory and held in an instruction register, and the held very long instruction word is decoded and executed. In a VLIW processor, an instruction pointer is provided for each of the n instruction fields, the instruction pointer holding memory address MA as an upper bit and field address FA in the memory address as a lower bit, and an instruction pointer for each of the instruction pointers. ,
i (1 ≦ i ≦ n) a value i is set for parallel processing of the instruction field, and an increment register for adding the value i to the instruction pointer each time the super instruction word is held in the instruction register; A selection circuit for supplying the contents of the instruction memory specified by the instruction pointer to the instruction register corresponding to the instruction pointer, and the number of the increment registers to which the value i is set is i.

【0006】このVLIWプロセッサによれば、複数の
増分レジスタの内容の組に応じて命令ストリーム数をダ
イナミックに変更することができるので、次のような効
果を奏する。 (1)単一プロッセサで、主処理を高速に行うとともに
入出力装置などのリソース制御も行うことができ、マル
チプロセッサシステムを構築する必要がなくなり、シス
テムのハードウェア及びソフトウェア構成が簡単化され
る。
According to the VLIW processor, the number of instruction streams can be dynamically changed in accordance with a set of contents of a plurality of increment registers, so that the following effects are obtained. (1) With a single processor, main processing can be performed at high speed, and resources such as input / output devices can be controlled. Therefore, there is no need to construct a multiprocessor system, and hardware and software configurations of the system are simplified. .

【0007】(2)リソース制御においてもVLIWプ
ロセッサ用のオペレーティングシステムを利用すること
ができるので、ソフトウェア構成が簡単化される。 (3)ハードウェア上の相互動作調整を行う必要がない
ので、システムの設計及び開発が容易になる。 (4)従来ではVLIWプロセッサで割込処理を行うと
主処理を中断しなければならなかったが、本発明のVL
IWプロセッサによれば主処理を中断する必要がないの
で、安定したリアルタイム処理を行うことができる。
(2) Since the operating system for the VLIW processor can be used in resource control, the software configuration is simplified. (3) Since there is no need to adjust the mutual operation on the hardware, the design and development of the system are facilitated. (4) Conventionally, when interrupt processing was performed by a VLIW processor, the main processing had to be interrupted.
According to the IW processor, there is no need to interrupt the main processing, so that stable real-time processing can be performed.

【0008】(5)VLIWプロセッサでは、処理デー
タが関連した命令群に対しNOP命令を追加してVLI
W数を増やす必要があり、このような場合に本発明のマ
ルチ命令ストリームで他の処理を並列に行うことによ
り、処理効率が向上する。 以上のような効果を奏する本実施形態は、システムの安
価化、小型化及び短納期化に寄与するところが大きい。
(5) In a VLIW processor, a NOP instruction is added to an instruction group associated with processing data to
It is necessary to increase the number of W. In such a case, by performing other processing in parallel with the multi-instruction stream of the present invention, processing efficiency is improved. The present embodiment having the above effects greatly contributes to the cost reduction, size reduction, and short delivery time of the system.

【0009】請求項2のVLIWプロセッサでは、請求
項1において、状態移行命令に応答して上記増分レジス
タの内容を更新する増分更新回路をさらに有する。この
VLIWプロセッサによれば、従来のサブルーチン実行
又は他のプロセッサ起動に類似して、実行中に新たな命
令ストリームを容易に追加することが可能となる。
In the VLIW processor according to the present invention, the VLIW processor may further include an increment update circuit for updating the contents of the increment register in response to the state transition instruction. According to the VLIW processor, a new instruction stream can be easily added during execution, similar to the conventional execution of a subroutine or activation of another processor.

【0010】請求項3のVLIWプロセッサでは、請求
項1において、外部からの命令ストリーム追加要求に応
答して上記増分レジスタの内容を更新する増分更新回路
をさらに有する。このVLIWプロセッサによれば、従
来の割込処理又は他のプロセッサ起動に類似して、新た
な命令ストリームをハード的に容易に追加することがで
きる。
According to a third aspect of the present invention, the VLIW processor according to the first aspect further includes an incremental update circuit for updating the contents of the increment register in response to an external instruction stream addition request. According to this VLIW processor, a new instruction stream can be easily added in hardware, similar to conventional interrupt processing or other processor activation.

【0011】請求項4のVLIWプロセッサでは、請求
項2又は3において、上記増分更新回路は、上記状態移
行命令の内容に応答して更新される状態レジスタと、該
状態レジスタの出力を増分値に変換して上記増分レジス
タに供給する状態/増分変換回路とを有する。
According to a fourth aspect of the present invention, in the VLIW processor according to the second or third aspect, the increment updating circuit updates a status register updated in response to the content of the status transition instruction and an output of the status register to an increment value. And a state / increment conversion circuit for converting and supplying the result to the increment register.

【0012】このVLIWプロセッサによれば、状態レ
ジスタの出力値を増加又は減少させることにより、容易
に命令ストリーム数を変更することが可能となる。請求
項5のVLIWプロセッサでは、請求項4において、上
記増分更新回路は、上記状態レジスタの内容が変化して
新たに命令ストリームが追加された後、いずれかの命令
ストリームが終了した場合に、上記命令ポインタの値が
所定値になったことを検出してから、1つ以上の命令ス
トリーム幅を広げるために該状態レジスタの内容を更新
する状態更新回路をさらに有する。
According to the VLIW processor, the number of instruction streams can be easily changed by increasing or decreasing the output value of the status register. In the VLIW processor according to a fifth aspect, in the fourth aspect, the incremental update circuit is configured to, when the content of the status register is changed and a new instruction stream is added, terminate any one of the instruction streams. After detecting that the value of the instruction pointer has reached a predetermined value, the apparatus further includes a state update circuit that updates the contents of the state register to increase the width of one or more instruction streams.

【0013】このVLIWプロセッサによれば、命令メ
モリに対し指定すべきアドレス数を少なくして動作を高
速化することが可能となる。請求項6のVLIWプロセ
ッサでは、請求項5において、上記状態更新回路は、予
め定められた命令ストリームの幅が増加するように上記
状態レジスタの内容を更新する。
According to the VLIW processor, the number of addresses to be specified for the instruction memory can be reduced to speed up the operation. In the VLIW processor according to a sixth aspect, in the fifth aspect, the state updating circuit updates the contents of the state register so that the width of the predetermined instruction stream increases.

【0014】このVLIWプロセッサによれば、この予
め定められた命令ストリームが主ストリームとなるよう
にプログラムを作成することにより、主ストリームをよ
り高速処理することが可能となる。請求項7のVLIW
プロセッサでは、請求項5において、上記状態更新回路
は、命令ストリーム終了命令の解読に基づいて上記命令
ストリームが終了したと判断する。
According to the VLIW processor, the main stream can be processed at a higher speed by creating a program so that the predetermined instruction stream becomes the main stream. The VLIW of claim 7
In the processor, in claim 5, the state update circuit determines that the instruction stream has ended based on decoding of the instruction stream end instruction.

【0015】このVLIWプロセッサによれば、命令ス
トリーム幅増加処理が簡単になる。請求項8では、n命
令フィールドからなる超長命令語を命令メモリから読み
出して命令レジスタに保持し、保持した該超長命令語を
解読実行するVLIWプロセッサの処理方法において、
該n命令フィールドの各々に対して有し、メモリアドレ
スMAを上位ビットとしメモリアドレス内のフィールド
アドレスFAを下位ビットとして保持する命令ポインタ
と、該命令ポインタの各々に対して有し、該超命令語を
命令レジスタに保持させる毎に値i(1≦i≦n)を該
命令ポインタに加算させるための増分レジスタとを該V
LIWプロセッサに備えておき、該値iをi個の該増分
レジスタに設定し、該命令ポインタで指定される該命令
メモリの内容を該命令ポインタに対応した該命令レジス
タに供給することにより、n以下の命令ストリームを並
列処理する。
According to this VLIW processor, the process of increasing the instruction stream width is simplified. 9. The processing method of a VLIW processor according to claim 8, wherein a very long instruction word composed of n instruction fields is read from an instruction memory and held in an instruction register, and the held very long instruction word is decoded and executed.
An instruction pointer having for each of the n instruction fields, holding the memory address MA as the upper bits and holding the field address FA in the memory address as the lower bits, and for each of the instruction pointers, Each time a word is held in the instruction register, an increment register for adding a value i (1 ≦ i ≦ n) to the instruction pointer is stored in the V.
By providing the value i in the i number of increment registers and providing the contents of the instruction memory specified by the instruction pointer to the instruction register corresponding to the instruction pointer, n The following instruction streams are processed in parallel.

【0016】請求項9のVLIWプロセッサの処理方法
では、請求項8において、状態移行命令に応答して上記
増分レジスタの内容を更新することにより、命令ストリ
ームの並列数比を変更する。請求項10のVLIWプロ
セッサの処理方法では、請求項9において、新たに命令
ストリームが追加された後、いずれかの命令ストリーム
が終了した場合に、上記命令ポインタの値が所定値にな
るのを待って、上記増分レジスタの内容を更新すること
により該命令ストリームの1つの並列数を増加させる。
According to a ninth aspect of the present invention, the parallel number ratio of the instruction stream is changed by updating the contents of the increment register in response to the state transition instruction. According to a tenth aspect of the present invention, in the ninth aspect, when any of the instruction streams is terminated after a new instruction stream is added, the instruction pointer waits until the value of the instruction pointer becomes a predetermined value. Thus, by updating the contents of the increment register, the number of one parallel of the instruction stream is increased.

【0017】[0017]

【発明の実施の形態】以下、図面を参照して本発明の一
実施形態を説明する。図1は、VLIWプロセッサの概
略構成を示す。高速処理のために、命令メモリ10とデ
ータメモリ11とを備え、互いに独立なバスでアクセス
可能となっている。命令メモリ10及びデータメモリ1
1は、例えばキャッシュメモリである。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings. FIG. 1 shows a schematic configuration of the VLIW processor. An instruction memory 10 and a data memory 11 are provided for high-speed processing, and can be accessed by independent buses. Instruction memory 10 and data memory 1
1 is a cache memory, for example.

【0018】命令メモリ10が命令ポインタ処理部12
でアドレス指定されて命令メモリ10の内容が読み出さ
れ、選択回路13を介して命令レジスタ140〜143
に供給され、選択回路13から制御回路15へ供給され
るレディ信号RDYが活性化される。制御回路15は、
これに応答し命令レジスタ140〜143にラッチ信号
LCHのパルスを供給して、命令レジスタ140〜14
3にVLIWを保持させる。命令レジスタ140〜14
3の内容はそれぞれ命令デコーダ160〜163でデコ
ードされ、その結果に基づいてそれぞれ演算回路170
〜173が制御され、命令レジスタ140〜143のオ
ペランドのアドレス情報が命令デコーダ160〜163
を介し制御回路15に供給される。制御回路15は、演
算回路170〜173の各々に対応した制御ユニットを
備えており、オペランドの実アドレス計算が必要な場合
には演算回路170〜173にその計算をさせ、そのア
ドレスをデータメモリ11に供給する。演算回路170
〜173は、データメモリ11とデータバスで接続され
ており、データメモリ11との間で演算対象及び演算結
果のデータ授受を行う。
The instruction memory 10 includes an instruction pointer processing unit 12
And the contents of the instruction memory 10 are read out.
And the ready signal RDY supplied from the selection circuit 13 to the control circuit 15 is activated. The control circuit 15
In response to this, a pulse of the latch signal LCH is supplied to the instruction registers 140 to 143, and the instruction registers 140 to 143 are supplied.
3 holds VLIW. Instruction registers 140-14
3 are respectively decoded by the instruction decoders 160 to 163, and based on the results, the arithmetic circuits 170
To 173 are controlled, and the address information of the operands of the instruction registers 140 to 143 are stored in the instruction decoders 160 to 163.
Is supplied to the control circuit 15 via the The control circuit 15 includes a control unit corresponding to each of the arithmetic circuits 170 to 173. When the calculation of the real address of the operand is necessary, the control circuit 15 causes the arithmetic circuits 170 to 173 to perform the calculation, and stores the address in the data memory 11. To supply. Arithmetic circuit 170
173 are connected to the data memory 11 via a data bus, and exchange data with the data memory 11 on the operation target and the operation result.

【0019】このような処理が、パイプラインで行われ
る。命令レジスタ140〜143に保持された内容をそ
れぞれ#0〜#3と表す。従来では4並列シングル命令
ストリームであったので、#0〜#3のデータの流れは
図2(A)に示すようなものに限定されていた。これに
対し、本実施形態では、この4並列シングル命令ストリ
ームに加え、図2(B)に示すような1:3マルチ命令
ストリーム、図2(C)に示すような2:2マルチ命令
ストリーム、図2(D)に示すような1:1:2マルチ
命令ストリーム及び図2(E)に示すような1:1:
1:1マルチ命令ストリームを実行可能であり、しかも
並列状態をダイナミックに切換可能になっている。図2
(A)〜(E)の並列状態をそれぞれ状態0〜4と称
す。
Such processing is performed in a pipeline. The contents held in the instruction registers 140 to 143 are represented as # 0 to # 3, respectively. In the related art, since the stream is a 4-parallel single instruction stream, the data flow of # 0 to # 3 is limited to that shown in FIG. On the other hand, in the present embodiment, in addition to the 4-parallel single instruction stream, a 1: 3 multi-instruction stream as shown in FIG. 2B, a 2: 2 multi-instruction stream as shown in FIG. A 1: 1: 2 multi-instruction stream as shown in FIG. 2 (D) and a 1: 1: 2 as shown in FIG. 2 (E).
A 1: 1 multi-instruction stream can be executed, and the parallel state can be dynamically switched. FIG.
The parallel states of (A) to (E) are referred to as states 0 to 4, respectively.

【0020】図3は、このような状態がダイナミックに
切り換えられているマルチ命令ストリームを示してい
る。処理の流れは、図示矢印方向である。図3では1つ
の主命令ストリームと第1〜第3副命令ストリームとを
示している。線幅は並列数を表しており、線幅が広いほ
ど高速処理が可能である。第1〜第3副命令ストリーム
は、従来の割込処理やサブルーチン等の分岐処理に類似
しているが、1つの命令ストリームで割り込み処理に分
岐するのではなく、新たな命令ストリームが増えるので
実行中の命令ストリームは実行を継続でき、したがって
割込処理で行われる退避処理や復帰処理を行う必要がな
い。
FIG. 3 shows a multi-instruction stream in which such a state is dynamically switched. The flow of the process is in the direction of the arrow shown. FIG. 3 shows one main instruction stream and first to third sub-instruction streams. The line width indicates the number of parallel lines, and the wider the line width, the higher the speed of processing. The first to third sub-instruction streams are similar to the conventional branch processing such as interrupt processing and subroutines. However, instead of branching to interrupt processing with one instruction stream, a new instruction stream is added and execution is performed. The instruction stream in the middle can continue to be executed, so that there is no need to perform the save processing and the return processing performed in the interrupt processing.

【0021】図1に戻って、命令ストリーム数を可変に
するために、命令ポインタ処理部12は命令レジスタ1
40〜143に対応してそれぞれ命令ポインタ120〜
123を備えている。命令ポインタ120〜123の内
容は、いずれも図4(A)に示す如く、上位ビットのメ
モリアドレスMAと、下位ビットのフィールドアドレス
FAとからなる。本実施形態では、1VLIWが4命令
フィールドであるので、フィールドアドレスFAは2ビ
ットである。
Returning to FIG. 1, in order to make the number of instruction streams variable, the instruction pointer processing unit 12
The instruction pointers 120 to
123 is provided. As shown in FIG. 4A, the contents of the instruction pointers 120 to 123 each include an upper bit memory address MA and a lower bit field address FA. In the present embodiment, since 1 VLIW is a 4-instruction field, the field address FA is 2 bits.

【0022】命令メモリ10はメモリアドレスMAで指
定され、各メモリアドレスMAのデータに、図4(B)
に示す如くフィールドアドレスFAが例えば32ビット
毎に割り当てられる。メモリアドレスMAとフィールド
アドレスFAとの組を(MA,FA)で表す。例えば1
VLWIが128ビットで、命令メモリ10が32ビッ
トの命令メモリを4個備えている場合には、フィールド
アドレスが物理的な命令メモリと対応するが、このよう
な対応はなくてもよい。
The instruction memory 10 is specified by a memory address MA, and the data of each memory address MA is added to the data of FIG.
The field address FA is allocated, for example, every 32 bits as shown in FIG. A set of the memory address MA and the field address FA is represented by (MA, FA). For example, 1
If the VLWI is 128 bits and the instruction memory 10 has four 32-bit instruction memories, the field addresses correspond to the physical instruction memories, but such correspondence is not necessary.

【0023】分岐の無い通常のストリームにおいては、
1VLIWが命令レジスタ140〜143に保持される
毎に、命令ポインタ120〜123の内容にそれぞれ増
分レジスタ180〜183の出力値が加算される。分岐
命令の場合には、従来同様に、命令デコーダ及び制御回
路15を介し対応する命令ポインタに分岐先アドレスが
供給されて、命令ポインタの内容が更新される。
In a normal stream without branches,
Every time one VLIW is held in the instruction registers 140 to 143, the output values of the increment registers 180 to 183 are added to the contents of the instruction pointers 120 to 123, respectively. In the case of a branch instruction, the branch destination address is supplied to the corresponding instruction pointer via the instruction decoder and control circuit 15 as in the conventional case, and the content of the instruction pointer is updated.

【0024】従来のサブルーチン実行又は他のプロセッ
サ起動に類似して、実行中に新たな命令ストリームを追
加可能にするために、命令セットに状態移行命令を含ん
でいる。この状態移行命令は、新命令ストリーム先頭ア
ドレス(MA,FA)を含んでいる。この命令が命令デ
コーダでデコードされると、一方では制御回路15を介
して、新命令ストリーム先頭アドレス(MA,FA)が
命令ポインタ処理部12に供給され、他方では制御回路
15及び状態更新回路19を介して状態レジスタ20の
内容Sに、S=1であれば2が加算され、S≠1であれ
ば1が加算される。この場合、状態更新回路19は単な
る信号通過経路であってもよい。
Similar to conventional subroutine execution or other processor invocation, the instruction set includes a state transition instruction to allow a new instruction stream to be added during execution. This state transition instruction includes a new instruction stream start address (MA, FA). When this instruction is decoded by the instruction decoder, on the one hand, the new instruction stream head address (MA, FA) is supplied to the instruction pointer processing unit 12 via the control circuit 15, and on the other hand, the control circuit 15 and the state update circuit 19 Is added to the content S of the status register 20 if S = 1, and 1 if S ≠ 1. In this case, the state update circuit 19 may be a simple signal passage path.

【0025】命令ポインタ処理部12は簡単化のため例
えば、状態移行前の幅(並列数)が2以上の命令ストリ
ームかつ図1の最も左側の命令ストリームの幅を、1だ
け狭くし、これに新たな命令ストリームを割り当てる。
より具体的には、命令ポインタ処理部12は、状態移行
前の状態SがS=0、1、2又は3であればそれぞれ命
令ポインタ123、122、123又は121に、制御
回路15からの新命令ストリーム先頭アドレス(MA,
FA)を保持させる。
For the sake of simplicity, the instruction pointer processing unit 12 reduces, for example, the width of the instruction stream having a width (number of parallels) of 2 or more before the state transition and the width of the leftmost instruction stream in FIG. Allocate a new instruction stream.
More specifically, if the state S before the state transition is S = 0, 1, 2, or 3, the instruction pointer processing unit 12 assigns a new instruction pointer 123, 122, 123, or 121 from the control circuit 15 to the instruction pointer 123, 122, 123, or 121, respectively. Instruction stream start address (MA,
FA).

【0026】このようにすれば、状態移行処理が簡単に
なる。例外として、状態0から状態2への移行が可能な
ように状態移行命令を定めておく。この場合、例えば命
令ポインタ122及び123に新命令ストリーム先頭ア
ドレスを設定する。状態移行命令で状態を指定しないの
は、後述のハード的な命令ストリーム追加要求ISRQ
により、現在実行中の命令ストリーム状態をプログラム
作成段階で知得することができないことと、構成を簡単
化するためである。なお、割込マスクのようにハード的
な命令ストリーム追加要求ISRQを禁止し又はプログ
ラムで状態レジスタ20の内容Sを読んで命令ストリー
ム状態を確認して、状態移行命令で状態Sを指定するよ
うにしてもよい。
In this way, the state transition processing is simplified. As an exception, a state transition instruction is defined so that transition from state 0 to state 2 is possible. In this case, for example, the new instruction stream start address is set in the instruction pointers 122 and 123. The reason that the state is not designated by the state transition instruction is that a hardware instruction stream addition request ISRQ described later is used.
This makes it impossible to know the state of the instruction stream currently being executed at the program creation stage, and to simplify the configuration. It should be noted that the instruction stream addition request ISRQ like hardware such as an interrupt mask is prohibited or the content S of the status register 20 is read by a program to check the instruction stream state, and the state S is designated by the state transition instruction. You may.

【0027】状態/増分変換回路21は、状態レジスタ
20の出力Sを増分レジスタ180〜183に対する次
のような増分値ΔPC0〜ΔPC3に変換する。 S=0: ΔPC3=4、ΔPC2=4、ΔPC1=
4、ΔPC0=4 S=1: ΔPC3=1、ΔPC2=3、ΔPC1=
3、ΔPC0=3 S=2: ΔPC3=2、ΔPC2=2、ΔPC1=
2、ΔPC0=2 S=3: ΔPC3=1、ΔPC2=1、ΔPC1=
2、ΔPC0=2 S=4: ΔPC3=1、ΔPC2=1、ΔPC1=
1、ΔPC0=1 上述の状態更新回路19と状態レジスタ20と状態/増
分変換回路21とで、増分更新回路22が構成されてい
る。
The status / increment conversion circuit 21 converts the output S of the status register 20 into the following increment values ΔPC0 to ΔPC3 for the increment registers 180 to 183. S = 0: ΔPC3 = 4, ΔPC2 = 4, ΔPC1 =
4, ΔPC0 = 4 S = 1: ΔPC3 = 1, ΔPC2 = 3, ΔPC1 =
3, ΔPC0 = 3 S = 2: ΔPC3 = 2, ΔPC2 = 2, ΔPC1 =
2, ΔPC0 = 2 S = 3: ΔPC3 = 1, ΔPC2 = 1, ΔPC1 =
2, ΔPC0 = 2 S = 4: ΔPC3 = 1, ΔPC2 = 1, ΔPC1 =
1, ΔPC0 = 1 The above-mentioned state update circuit 19, state register 20, and state / increment conversion circuit 21 constitute an incremental update circuit 22.

【0028】従来の割込処理又は他のプロセッサ起動に
類似して、新たな命令ストリームをハード的に追加する
ことができるようにするために、制御回路15は外部か
らの命令ストリーム追加要求ISRQに対し、S<4で
あれば要求に応答して、予め定められたアドレス(M
A,FA)を命令ポインタ処理部12に供給し、状態更
新回路19を介し状態レジスタ20の内容に、S=1で
あれば2を加算し、S≠1であれば1を加算する。命令
ポインタ処理部12では、上記状態移行命令の場合と同
様にして選択した命令ポインタに、アドレス(MA,F
A)を保持させる。
The control circuit 15 responds to an external instruction stream addition request ISRQ so that a new instruction stream can be added in hardware, similar to the conventional interrupt processing or other processor activation. On the other hand, if S <4, in response to the request, a predetermined address (M
A, FA) is supplied to the instruction pointer processing unit 12, and 2 is added to the content of the status register 20 via the status update circuit 19 if S = 1, and 1 if S ≠ 1. The instruction pointer processing unit 12 assigns the address (MA, F) to the selected instruction pointer in the same manner as in the case of the state transition instruction.
A) is held.

【0029】命令ストリーム追加要求ISRQは、従来
の割込要求に類似しているが、命令ストリーム数が1つ
増えるので実行中の命令ストリームは実行を継続でき、
したがって割込処理で行われる退避処理や復帰処理を行
う必要がなく、この点でも有利である。図5は、状態0
の4並列シングル命令ストリームから、状態移行命令又
は命令ストリーム追加要求ISRQにより、状態2の
1:3マルチ命令ストリームへ移行する場合を示す。図
5では、命令レジスタ143〜140の値#3〜#0の
流れを、その値が格納されている命令メモリ10内の対
応するアドレス(MA,FA)の流れで示している。
The instruction stream addition request ISRQ is similar to the conventional interrupt request, except that the number of instruction streams is increased by one so that the instruction stream being executed can continue execution.
Therefore, it is not necessary to perform the saving process and the returning process performed in the interrupt process, and this is also advantageous. FIG. 5 shows the state 0
From the 4-parallel single instruction stream described above to the state 2 instruction stream or the instruction stream addition request ISRQ. In FIG. 5, the flow of the values # 3 to # 0 of the instruction registers 143 to 140 is shown by the flow of the corresponding addresses (MA, FA) in the instruction memory 10 where the values are stored.

【0030】最初、状態レジスタ20の内容が0、増分
ΔPC3〜ΔPC0がいずれも4になっている。命令メ
モリ10のアドレス0から命令が読み出され、選択回路
13によりアドレス(0,3)〜(0,0)の内容がそ
れぞれ命令レジスタ143〜140に保持される。この
場合、アドレスが1つであるので、選択回路13は単な
る配線として機能する。
First, the content of the status register 20 is 0, and the increments ΔPC3 to ΔPC0 are all 4. The instruction is read from the address 0 of the instruction memory 10 and the contents of the addresses (0, 3) to (0, 0) are held by the selection circuit 13 in the instruction registers 143 to 140, respectively. In this case, since there is one address, the selection circuit 13 functions simply as a wiring.

【0031】次に、命令メモリ10のアドレス1から命
令が読み出され、選択回路13によりアドレス(1,
3)〜(1,0)の内容がそれぞれ命令レジスタ143
〜140に保持される。状態移行命令又は命令ストリー
ム追加要求ISRQに応答してPC3=(100,0)
となり、これと並行して命令ポインタ値PC2〜PC0
がそれぞれ(2,2)〜(2,0)になる。状態レジス
タ20の内容が2に変化し、これにより増分ΔPC3〜
PC0がそれぞれ1、3、3及び3に変化する。命令メ
モリ10のアドレス100及び2から命令が読み出さ
れ、選択回路13によりアドレス(100,0)及び
(2,2)〜(2,0)の内容がそれぞれ命令レジスタ
143〜140に保持される。
Next, the instruction is read from the address 1 of the instruction memory 10, and the address (1,
3) to (1, 0) are stored in the instruction register 143, respectively.
~ 140. PC3 = (100,0) in response to a state transition instruction or instruction stream addition request ISRQ
In parallel with this, the instruction pointer values PC2 to PC0
Are (2, 2) to (2, 0), respectively. The content of the status register 20 changes to 2, which causes the increment ΔPC3 ~
PC0 changes to 1, 3, 3 and 3, respectively. Instructions are read from the addresses 100 and 2 of the instruction memory 10, and the contents of the addresses (100, 0) and (2, 2) to (2, 0) are held by the selection circuit 13 in the instruction registers 143 to 140, respectively. .

【0032】ここで、命令メモリ10がキャッシュメモ
リの場合には記憶容量が比較的少なく、かつ、プロセッ
サの集積度が益々向上しているので、同じ内容でバスが
互いに独立な命令メモリを複数備えて複数アドレス指定
を行うことにより、命令メモリからの1VLIW読出時
間を短縮してもよい。また、選択回路13にバッファレ
ジスタと命令フィールド単位でシフト可能なシフトレジ
スタとを備え、命令メモリ10から既に読み出されてバ
ッファレジスタに保持されている内容を、このバッファ
レジスタから取り出すようにしてもよい。
Here, when the instruction memory 10 is a cache memory, since the storage capacity is relatively small and the degree of integration of the processor is further improved, a plurality of instruction memories having the same contents and independent buses are provided. By specifying a plurality of addresses, the time required to read 1 VLIW from the instruction memory may be reduced. Further, the selection circuit 13 may be provided with a buffer register and a shift register capable of shifting in instruction field units, so that the contents already read from the instruction memory 10 and held in the buffer register are taken out from the buffer register. Good.

【0033】増分ΔPC3〜PC0の値がそれぞれ命令
ポインタ値PC3〜PC0に加算されて、PC3〜PC
0は次のよう変化する。 PC3:(100,1)←(100,0)+1 PC2:(3,1)←(2,2)+3 PC1:(3,0)←(2,1)+3 PC0:(2,3)←(2,0)+3 命令メモリ10のアドレス100、3及び2から命令が
読み出され、選択回路13によりアドレス(100,
1)、(3,1)、(3,0)及び(2,3)の内容が
それぞれ命令レジスタ143〜140に保持される。
The values of the increments ΔPC3 to PC0 are added to the instruction pointer values PC3 to PC0, respectively.
0 changes as follows. PC3: (100, 1) ← (100, 0) +1 PC2: (3, 1) ← (2, 2) +3 PC1: (3, 0) ← (2, 1) +3 PC0: (2, 3) ← (2, 0) +3 The instruction is read from addresses 100, 3 and 2 of the instruction memory 10, and the address (100,
The contents of 1), (3,1), (3,0) and (2,3) are held in the instruction registers 143 to 140, respectively.

【0034】命令ストリーム追加要求ISRQの場合、
この要求に応じて実行されるプログラム中で、割込原因
フラグに類似の命令ストリーム追加要求原因を示す状態
フラグを見て、要求原因、例えば要求元の入出力装置の
種類が調べられ、原因に応じてサービスルーチンへジャ
ンプする。なお、この処理中で、状態レジスタ20の内
容を調べ、例えば、S=1であれば状態移行命令で状態
2へ移行できるようにしてもよい。
In the case of the instruction stream addition request ISRQ,
In the program executed in response to this request, the status flag indicating the cause of the instruction stream addition request similar to the interrupt cause flag is checked, and the cause of the request, for example, the type of the input / output device of the request source is checked. Jump to the service routine accordingly. During this process, the contents of the status register 20 may be checked, and if S = 1, for example, the status may be shifted to the status 2 by a status shift command.

【0035】図6は、状態0の4並列シングル命令スト
リームから状態2の1:3マルチ命令ストリームへの移
行を示す。図7は、状態1の1:3マルチ命令ストリー
ムから状態3の1:1:2マルチ命令ストリームへの移
行を示す。図8は、状態3の1:1:2マルチ命令スト
リームから状態4の1:1:1:1マルチ命令ストリー
ムへの移行を示す。
FIG. 6 illustrates the transition from a four parallel single instruction stream in state 0 to a 1: 3 multi-instruction stream in state two. FIG. 7 illustrates the transition from a 1: 3 multi-instruction stream in state 1 to a 1: 1: 2 multi-instruction stream in state 3. FIG. 8 shows the transition from the state 3: 1: 1: 2 multi-instruction stream to the state 4 1: 1: 1: 1 multi-instruction stream.

【0036】図7及び図8ではいずれも上述のように、
状態移行前の幅が2以上の命令ストリームかつ図の最も
左側の命令ストリームの幅を、1だけ狭くし、これに新
たな命令ストリームを割り当てるという規則に従ってい
る。新規命令ストリームが以上のようにして追加された
後、いずれかの命令ストリームが終了した場合には、並
列数が4より小さくなるので、命令ストリーム幅を広げ
て並列数を4にすることにより、処理を高速化した方が
好ましい。
7 and 8, as described above,
An instruction stream having a width of 2 or more before the state transition and the width of the leftmost instruction stream in the drawing is reduced by one, and a new instruction stream is allocated to this. After the new instruction stream is added as described above, if any of the instruction streams ends, the parallel number becomes smaller than four. Therefore, by increasing the instruction stream width and making the parallel number four, It is preferable to increase the processing speed.

【0037】そこで、命令セットに命令ストリーム終了
命令を含んで、命令ストリーム数を変えずに命令ストリ
ーム幅を広げることができるようにしている。この命令
が命令デコーダでデコードされると、一方ではこれをデ
コードした命令デコーダの識別コードが制御回路15を
介して命令ポインタ処理部12に供給され、他方では制
御回路15からの信号に応答して状態更新回路19によ
り、状態レジスタ20の内容から、S=2であれば2が
減算され、S≠2であれば1が減算される。
Therefore, an instruction stream end instruction is included in the instruction set so that the instruction stream width can be increased without changing the number of instruction streams. When this instruction is decoded by the instruction decoder, on the one hand, the identification code of the decoded instruction decoder is supplied to the instruction pointer processing unit 12 via the control circuit 15, and on the other hand, in response to the signal from the control circuit 15, The state updating circuit 19 subtracts 2 from the contents of the state register 20 if S = 2, and subtracts 1 if S ≠ 2.

【0038】どの命令ストリームを広げるかについては
任意性があり、VLIWプロセッサの設計において、例
えば以下のいずれかの規則を選択しておく。 (1)主命令ストリーム幅を広げるために、例えば図1
の最も右側の命令ストリームの幅を広げる。 (2)最も規則を簡単にするために、終了した命令スト
リームの隣側、例えば図1の右側(右側に無ければ左
側)の命令ストリームの幅を広げる。
There is an option as to which instruction stream is widened. In designing a VLIW processor, for example, one of the following rules is selected. (1) To increase the width of the main instruction stream, for example, FIG.
Widen the rightmost instruction stream of (2) In order to simplify the rule, the width of the instruction stream adjacent to the completed instruction stream, for example, the instruction stream on the right side of FIG.

【0039】(3)命令ストリーム終了命令に、どの命
令ストリームの幅を広げるかの情報を含ませておき、こ
れに基づいて決定する。 (4)主命令ストリームを示すレジスタを備えておき、
プログラムで予めこのレジスタの内容を設定しておき、
その内容を見て主命令ストリームを確認し、その幅を広
げる。
(3) The instruction stream end instruction includes information on which instruction stream is to be widened, and the instruction stream is determined based on the information. (4) having a register indicating the main instruction stream,
Set the contents of this register in advance in the program,
Look at its contents to identify the main instruction stream and expand its width.

【0040】命令ポインタ処理部12は、制御回路15
からの上記識別コード及び選択された上記規則に基づい
て、所定の命令ストリームの幅が広がるように命令ポイ
ンタ120〜123の内容を変更する。この変更には、
以下に示すように命令ストリームの移動を伴う場合があ
る。また、ストリーム幅拡大のタイミングは、拡大後に
1VLIWに対応した命令メモリ指定アドレス数をでき
るだけ少なくするために、状態更新回路19により以下
のようにして決定される。
The instruction pointer processing unit 12 includes a control circuit 15
The contents of the instruction pointers 120 to 123 are changed so that the width of the predetermined instruction stream is widened based on the identification code and the selected rule. This change includes:
It may involve moving the instruction stream as described below. The timing of stream width expansion is determined by the state update circuit 19 as follows in order to minimize the number of instruction memory designated addresses corresponding to 1 VLIW after expansion.

【0041】図9及び図10は、上記規則(1)又は
(2)の場合を示し、図11は規則(2)の場合を示
し、図12は規則(1)の場合を示している。図9〜図
12はいずれも、規則(3)又は(4)の一例を示して
いると言うこともできる。図9は、状態1の1:3マル
チ命令ストリームから、状態0の4並列シングル命令ス
トリームへの移行を示す。
FIGS. 9 and 10 show the case of rule (1) or (2), FIG. 11 shows the case of rule (2), and FIG. 12 shows the case of rule (1). 9 to 12 can be said to show an example of the rule (3) or (4). FIG. 9 illustrates the transition from a 1: 3 multi-instruction stream in state 1 to a 4-parallel single instruction stream in state 0.

【0042】図9中の#3の列の(160、1)は、命
令ストリーム終了命令のアドレスである。この命令が命
令デコーダ163でデコードされると、制御回路15
は、一方では命令ポインタ処理部12へ命令デコーダ1
63の識別コードを供給し、他方では、状態更新回路1
9にストリーム幅拡大指令を供給する。次の1VWLで
状態Sを変更すると、命令メモリ10に対し指定すべき
アドレスの数が2になるので、これを1にするために、
状態更新回路19は、一方では制御回路15を介して、
命令ポインタ120のフィールドアドレスFAが0にな
るまで、命令レジスタ143の内容をNOP命令(ノー
オペレーション命令)にし又は命令デコーダ163及び
演算回路173を停止状態にさせ、他方では状態レジス
タ20の更新を禁止しかつ命令ポインタ処理部12に対
し命令ポインタ123の更新を禁止させる。
(160, 1) in the column of # 3 in FIG. 9 is the address of the instruction stream end instruction. When this instruction is decoded by the instruction decoder 163, the control circuit 15
On the other hand, the instruction decoder 1
63, while the state update circuit 1
9 is supplied with a stream width expansion command. When the state S is changed in the next 1VWL, the number of addresses to be specified for the instruction memory 10 becomes two.
The state update circuit 19, on the other hand,
Until the field address FA of the instruction pointer 120 becomes 0, the content of the instruction register 143 is changed to a NOP instruction (no operation instruction) or the instruction decoder 163 and the arithmetic circuit 173 are stopped, while updating of the status register 20 is prohibited. And the instruction pointer processing unit 12 is prohibited from updating the instruction pointer 123.

【0043】命令ポインタ120のフィールドアドレス
FAが0になると、この禁止が解除されて、命令ポイン
タ処理部12により命令ポインタ122の内容が命令ポ
インタ123に複写され命令ポインタ123の内容に1
が加算されて、PC3=(23,3)となり、これと並
行して命令ポインタ値PC2〜PC0がそれぞれ(2
3,2)〜(23,0)になる。状態レジスタ20の内
容Sが1から0に更新され、これにより増分ΔPC3〜
PC0がいずれも4に変化する。命令メモリ10のアド
レス23から命令が読み出され、選択回路13を介し命
令レジスタ143〜140に保持される。増分ΔPC3
〜PC0の値がそれぞれ命令ポインタ値PC3〜PC0
に加算されてPC3〜PC0が(24,3)〜(24,
0)になる。
When the field address FA of the instruction pointer 120 becomes 0, the prohibition is released, and the instruction pointer processing section 12 copies the contents of the instruction pointer 122 to the instruction pointer 123, and the content of the instruction pointer 123 becomes 1
Is added, and PC3 = (23, 3). In parallel with this, the instruction pointer values PC2 to PC0 are respectively (2, 3).
3,2) to (23,0). The content S of the status register 20 is updated from 1 to 0, whereby the increment ΔPC3 to
PC0 changes to 4 in each case. The instruction is read from the address 23 of the instruction memory 10 and held in the instruction registers 143 to 140 via the selection circuit 13. Increment ΔPC3
To PC0 are instruction pointer values PC3 to PC0, respectively.
And PC3 to PC0 become (24,3) to (24,
0).

【0044】図10は、状態2の2:2マルチ命令スト
リームから状態0の4並列シングル命令ストリームへの
移行を示す。#3の列の(160,1)は、命令ストリ
ーム終了命令のアドレスである。なお、(160,0)
が命令ストリーム終了命令のアドレスで(160,1)
が無意味の命令のアドレスであってもよい。図11は、
状態3の1:1:2マルチ命令ストリームから状態2の
2:2マルチ命令ストリームへの移行を示す。
FIG. 10 shows the transition from the 2: 2 multi-instruction stream in state 2 to the 4-parallel single instruction stream in state 0. (160, 1) in the column of # 3 is the address of the instruction stream end instruction. Note that (160, 0)
Is the address of the instruction stream end instruction (160, 1)
May be the address of a meaningless instruction. FIG.
It shows the transition from the 1: 3 multi-instruction stream of state 3 to the 2: 2 multi-instruction stream of state 2.

【0045】#3の列の(260,3)は、命令ストリ
ーム終了命令のアドレスである。この次に#2の命令ス
トリーム幅が拡大すると、その次に、(161,0)
(160,3)となって指定すべきメモリアドレスが2
つになる。そこで、幅を拡大すべき命令ストリームの最
も右側に対応した命令ポインタ122のフィールドアド
レスFAがいずれ0になるように、すなわちこのフィー
ルドアドレスFAが2又は0になるまで、上記同様に状
態レジスタ20及び命令ポインタ122の更新を禁止す
る。構成の簡単化のために、前記”2又は0”を”0”
としても大差はない。
(260, 3) in the column of # 3 is the address of the instruction stream end instruction. Next, when the instruction stream width of # 2 expands, (161, 0)
The memory address to be designated as (160, 3) is 2
One. Therefore, until the field address FA of the instruction pointer 122 corresponding to the rightmost side of the instruction stream whose width is to be expanded becomes 0, that is, until the field address FA becomes 2 or 0, the status registers 20 and Update of the instruction pointer 122 is prohibited. In order to simplify the configuration, “2 or 0” is replaced with “0”.
There is no big difference.

【0046】図12は、状態4の1:1:1:1マルチ
命令ストリームから状態3の1:1:2マルチ命令スト
リームへの移行を示す。#3の列の(350、3)は、
命令ストリーム終了命令のアドレスである。上記同様
に、幅を拡大すべき命令ストリームの最も右側に対応し
た命令ポインタ120のフィールドアドレスFAが0に
なるまで状態レジスタ20及び命令ポインタ121の更
新を禁止する。また、#0の命令ストリーム幅を拡大す
るために命令ポインタ121を更新すると、すなわち命
令ポインタ120の内容を命令ポインタ121に複写し
て命令ポインタ121の内容に1に加算すると、元の#
1の命令ストリームが消失するので、命令ポインタ12
1の内容を、終了命令ストリームに対応した命令ポイン
タ123に移した後、この変更を行う。なお、命令ポイ
ンタ121及び122の内容をそれぞれ命令ポインタ1
22及び123にシフトさせた後にこの更新を行っても
よい。
FIG. 12 shows the transition from the state 4 1: 1: 1: 1 multi-instruction stream to the state 3 1: 1: 2 multi-instruction stream. (350, 3) in the column of # 3 is
Instruction stream end instruction address. Similarly to the above, updating of the status register 20 and the instruction pointer 121 is prohibited until the field address FA of the instruction pointer 120 corresponding to the rightmost side of the instruction stream whose width is to be enlarged becomes 0. When the instruction pointer 121 is updated to increase the instruction stream width of # 0, that is, when the contents of the instruction pointer 120 are copied to the instruction pointer 121 and added to the contents of the instruction pointer 121, the original #
1 is lost, the instruction pointer 12
This change is made after the content of 1 is transferred to the instruction pointer 123 corresponding to the end instruction stream. The contents of the instruction pointers 121 and 122 are stored in the instruction pointer 1 respectively.
This update may be performed after shifting to 22 and 123.

【0047】本実施形態によれば、命令ストリーム数を
ダイナミックに変更することができるので、次のような
効果を奏する。 (1)単一プロッセサで、主処理を高速に行うとともに
入出力装置などのリソース制御も行うことができ、マル
チプロセッサシステムを構築する必要がなくなり、シス
テムのハードウェア及びソフトウェア構成が簡単化され
る。
According to the present embodiment, the number of instruction streams can be dynamically changed, so that the following effects can be obtained. (1) With a single processor, main processing can be performed at high speed, and resources such as input / output devices can be controlled. Therefore, there is no need to construct a multiprocessor system, and hardware and software configurations of the system are simplified. .

【0048】(2)リソース制御においてもVLIWプ
ロセッサ用のオペレーティングシステムを利用すること
ができるので、ソフトウェア構成が簡単化される。 (3)ハードウェア上の相互動作調整を行う必要がない
ので、システムの設計及び開発が容易になる。 (4)従来ではVLIWプロセッサで割込処理を行うと
主処理を中断しなければならなかったが、本実施形態の
VLIWプロセッサによれば主処理を中断する必要がな
いので、安定したリアルタイム処理を行うことができ
る。
(2) Since the operating system for the VLIW processor can be used in resource control, the software configuration is simplified. (3) Since there is no need to adjust the mutual operation on the hardware, the design and development of the system are facilitated. (4) Conventionally, when interrupt processing was performed by the VLIW processor, the main processing had to be interrupted. However, according to the VLIW processor of the present embodiment, there is no need to interrupt the main processing. It can be carried out.

【0049】(5)VLIWプロセッサでは、例えば、 ADD A,B SUB A,C MULT A,
D INC A のように処理結果を次のステップで使用する場合には1
VLIWで処理することができず、この場合、プログラ
マ又はコンパイラによりNOP命令を追加して次のよう
な4VLIWにする必要がある。
(5) In the VLIW processor, for example, ADD A, B SUB A, C MULT A,
When the processing result is used in the next step as in DINCA, 1
The processing cannot be performed by VLIW. In this case, it is necessary to add a NOP instruction by a programmer or a compiler to make the following 4 VLIW.

【0050】 ADD A,B NOP NOP NOP SUB A,C NOP NOP NOP MULT A,D NOP NOP NOP INC A NOP NOP NOP このような無駄が比較的多いプログラムでは、本実施形
態のようにマルチ命令ストリームにして他の処理を並列
に行うことにより、処理効率が向上する。
ADD A, B NOP NOP NOP SUB A, C NOP NOP NOP MULT A, D NOP NOP NOP INC A NOP NOP NOP In such a program with a relatively large amount of waste, a multi-instruction stream is used as in this embodiment. By performing other processing in parallel, the processing efficiency is improved.

【0051】以上のような効果を奏する本実施形態は、
システムの安価化、小型化及び短納期化に寄与するとこ
ろが大きい。
The present embodiment having the above effects is
It greatly contributes to the cost reduction, miniaturization and short delivery time of the system.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の一実施形態のVLIWプロセッサを示
す概略ブロック図である。
FIG. 1 is a schematic block diagram showing a VLIW processor according to an embodiment of the present invention.

【図2】(A)〜(D)はそれぞれ状態0〜4の命令ス
トリームを示す説明図である。
FIGS. 2A to 2D are explanatory diagrams showing instruction streams in states 0 to 4, respectively.

【図3】マルチ命令ストリーム数の変化を示す図であ
る。
FIG. 3 is a diagram showing a change in the number of multi-instruction streams.

【図4】(A)は命令ポインタのフォーマットを示す図
であり、(B)は命令メモリ内のメモリアドレスとフィ
ールドアドレスとの関係を示す図である。
FIG. 4A is a diagram showing a format of an instruction pointer, and FIG. 4B is a diagram showing a relationship between a memory address and a field address in an instruction memory.

【図5】状態0の4並列シングル命令ストリームから状
態1の1:3マルチ命令ストリームへの移行を示す説明
図である。
FIG. 5 is an explanatory diagram showing a transition from a 4-parallel single instruction stream in state 0 to a 1: 3 multi-instruction stream in state 1;

【図6】状態0の4並列シングル命令ストリームから状
態2の2:2マルチ命令ストリームへの移行を示す説明
図である。
FIG. 6 is an explanatory diagram showing a transition from a 4-parallel single instruction stream in state 0 to a 2: 2 multi-instruction stream in state 2;

【図7】状態1の1:3命令ストリームから状態3の
1:1:2マルチ命令ストリームへの移行を示す説明図
である。
FIG. 7 is an explanatory diagram showing a transition from a 1: 3 instruction stream in state 1 to a 1: 1: 2 multi-instruction stream in state 3;

【図8】状態3の1:1:2マルチ命令ストリームから
状態4の1:1:1:1マルチ命令ストリームへの移行
を示す説明図である。
FIG. 8 is an explanatory diagram showing a transition from a 1: 1: 2 multi-instruction stream in state 3 to a 1: 1: 1: 1 multi-instruction stream in state 4;

【図9】状態1の1:3マルチ命令ストリームから状態
0の4並列シングル命令ストリームへの移行を示す説明
図である。
FIG. 9 is an explanatory diagram showing a transition from a 1: 3 multi-instruction stream in state 1 to a 4-parallel single instruction stream in state 0;

【図10】状態2の2:2マルチ命令ストリームから状
態0の4並列シングル命令ストリームへの移行を示す説
明図である。
FIG. 10 is an explanatory diagram showing a transition from a 2: 2 multi-instruction stream in state 2 to a 4-parallel single instruction stream in state 0;

【図11】状態3の1:1:2マルチ命令ストリームか
ら状態2の2:2マルチ命令ストリームへの移行を示す
説明図である。
FIG. 11 is an explanatory diagram showing transition from a 1: 3 multi instruction stream in state 3 to a 2: 2 multi instruction stream in state 2;

【図12】状態4の1:1:1:1マルチ命令ストリー
ムから状態3の1:1:2マルチ命令ストリームへの移
行を示す説明図である。
FIG. 12 is an explanatory diagram showing a transition from a 1: 1: 1: 1 multi-instruction stream in state 4 to a 1: 1: 2 multi-instruction stream in state 3;

【符号の説明】[Explanation of symbols]

10 命令メモリ 11 データメモリ 12 命令ポインタ処理部 120〜123 命令ポインタ 13 選択回路 140〜143 命令レジスタ 15 制御回路 160〜163 命令デコーダ 170〜173 演算回路 180〜183 増分レジスタ 19 状態更新回路 20 状態レジスタ 21 状態/増分変換回路 22 増分更新回路 ISRQ 命令ストリーム追加要求 RDY レディ信号 LCH ラッチ信号 ΔPC0〜ΔPC3 増分 PC0〜PC3 命令ポインタ値 S 状態 Reference Signs List 10 instruction memory 11 data memory 12 instruction pointer processing unit 120 to 123 instruction pointer 13 selection circuit 140 to 143 instruction register 15 control circuit 160 to 163 instruction decoder 170 to 173 arithmetic circuit 180 to 183 increment register 19 state update circuit 20 state register 21 State / Increment conversion circuit 22 Increment update circuit ISRQ Instruction stream addition request RDY Ready signal LCH Latch signal ΔPC0 to ΔPC3 Increment PC0 to PC3 Instruction pointer value S state

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】 n命令フィールドからなる超長命令語を
命令メモリから読み出して命令レジスタに保持し、保持
した該超長命令語を解読実行するVLIWプロセッサに
おいて、 該n命令フィールドの各々に対して備えられ、メモリア
ドレスMAを上位ビットとしメモリアドレス内のフィー
ルドアドレスFAを下位ビットとして保持する命令ポイ
ンタと、 該命令ポインタの各々に対して備えられ、i命令フィー
ルドを並列処理するために値iが設定され、該超命令語
を命令レジスタに保持させる毎に該値iを該命令ポイン
タに加算させるための増分レジスタと、 該命令ポインタで指定される該命令メモリの内容を該命
令ポインタに対応した該命令レジスタに供給する選択回
路と、 を有し、値iが設定される該増分レジスタの個数がiで
あることを特徴とするVLIWプロセッサ。
1. A VLIW processor for reading an ultra-long instruction word consisting of n instruction fields from an instruction memory, holding the instruction in an instruction register, and decoding and executing the held ultra-long instruction word. An instruction pointer for holding the memory address MA as the upper bit and the field address FA in the memory address as the lower bit; and an instruction pointer provided for each of the instruction pointers. An increment register for setting and adding the value i to the instruction pointer each time the super instruction word is held in the instruction register, and a content of the instruction memory designated by the instruction pointer corresponding to the instruction pointer. A selection circuit for supplying the instruction register; and i being a number of the increment registers in which the value i is set. VLIW processor according to claim.
【請求項2】 状態移行命令に応答して上記増分レジス
タの内容を更新する増分更新回路をさらに有することを
特徴とする請求項1記載のVLIWプロセッサ。
2. The VLIW processor according to claim 1, further comprising an increment update circuit for updating the contents of said increment register in response to a state transition instruction.
【請求項3】 外部からの命令ストリーム追加要求に応
答して上記増分レジスタの内容を更新する増分更新回路
をさらに有することを特徴とする請求項1記載のVLI
Wプロセッサ。
3. The VLI according to claim 1, further comprising an increment update circuit for updating the contents of said increment register in response to an external instruction stream addition request.
W processor.
【請求項4】 上記増分更新回路は、 上記状態移行命令の内容に応答して更新される状態レジ
スタと、 該状態レジスタの出力を増分値に変換して上記増分レジ
スタに供給する状態/増分変換回路と、 を有することを特徴とする請求項2又は3記載のVLI
Wプロセッサ。
4. The status update circuit according to claim 1, wherein said status update command is a status register which is updated in response to the content of said status transition instruction. A VLI according to claim 2 or 3, comprising:
W processor.
【請求項5】 上記増分更新回路は、上記状態レジスタ
の内容が変化して新たに命令ストリームが追加された
後、いずれかの命令ストリームが終了した場合に、上記
命令ポインタの値が所定値になったことを検出してか
ら、1つ以上の命令ストリーム幅を広げるために該状態
レジスタの内容を更新する状態更新回路をさらに有する
ことを特徴とする請求項4記載のVLIWプロセッサ。
5. The method according to claim 1, wherein when the content of the status register is changed and a new instruction stream is added, when one of the instruction streams ends, the value of the instruction pointer becomes a predetermined value. 5. The VLIW processor according to claim 4, further comprising a status update circuit for updating the content of said status register in order to increase the width of one or more instruction streams after detecting the fact.
【請求項6】 上記状態更新回路は、予め定められた命
令ストリームの幅が増加するように上記状態レジスタの
内容を更新することを特徴とする請求項5記載のVLI
Wプロセッサ。
6. The VLI according to claim 5, wherein said status update circuit updates the contents of said status register so that the width of the predetermined instruction stream increases.
W processor.
【請求項7】 上記状態更新回路は、命令ストリーム終
了命令の解読に基づいて上記命令ストリームが終了した
と判断することを特徴とする請求項5記載のVLIWプ
ロセッサ。
7. The VLIW processor according to claim 5, wherein said state update circuit determines that said instruction stream has ended based on decoding of an instruction stream end instruction.
【請求項8】 n命令フィールドからなる超長命令語を
命令メモリから読み出して命令レジスタに保持し、保持
した該超長命令語を解読実行するVLIWプロセッサの
処理方法において、 該n命令フィールドの各々に対して有し、メモリアドレ
スMAを上位ビットとしメモリアドレス内のフィールド
アドレスFAを下位ビットとして保持する命令ポインタ
と、 該命令ポインタの各々に対して有し、該超命令語を命令
レジスタに保持させる毎に値iを該命令ポインタに加算
させるための増分レジスタとを該VLIWプロセッサに
備えておき、 該値iをi個の該増分レジスタに設定し、 該命令ポインタで指定される該命令メモリの内容を該命
令ポインタに対応した該命令レジスタに供給することに
より、 n以下の命令ストリームを並列処理することを特徴とす
るVLIWプロセッサの処理方法。
8. A processing method of a VLIW processor for reading an ultra-long instruction word consisting of n instruction fields from an instruction memory, storing the instruction in an instruction register, and decoding and executing the stored ultra-long instruction word, wherein each of the n instruction fields And an instruction pointer holding the memory address MA as the upper bit and the field address FA in the memory address as the lower bit, and holding each of the instruction pointers and holding the super instruction word in the instruction register The VLIW processor is provided with an increment register for adding a value i to the instruction pointer each time the instruction memory is operated, the value i is set in the i number of the increment registers, and the instruction memory specified by the instruction pointer is set. Is supplied to the instruction register corresponding to the instruction pointer, thereby processing n or less instruction streams in parallel. Method of processing VLIW processor, wherein and.
【請求項9】 状態移行命令に応答して上記増分レジス
タの内容を更新することにより、命令ストリームの並列
数比を変更することを特徴とする請求項8記載のVLI
Wプロセッサの処理方法。
9. The VLI according to claim 8, wherein the parallel number ratio of the instruction stream is changed by updating the contents of the increment register in response to a state transition instruction.
Processing method of W processor.
【請求項10】 新たに命令ストリームが追加された
後、いずれかの命令ストリームが終了した場合に、上記
命令ポインタの値が所定値になるのを待って、上記増分
レジスタの内容を更新することにより該命令ストリーム
の1つの並列数を増加させることを特徴とする請求項9
記載のVLIWプロセッサの処理方法。
10. When one of the instruction streams is terminated after a new instruction stream is added, the content of the increment register is updated after the value of the instruction pointer reaches a predetermined value. Increasing the parallel number of one of said instruction streams by:
A processing method of the VLIW processor described in the above.
JP22440698A 1998-08-07 1998-08-07 Information processing apparatus and processing method thereof Expired - Fee Related JP3601758B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22440698A JP3601758B2 (en) 1998-08-07 1998-08-07 Information processing apparatus and processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22440698A JP3601758B2 (en) 1998-08-07 1998-08-07 Information processing apparatus and processing method thereof

Publications (2)

Publication Number Publication Date
JP2000056972A true JP2000056972A (en) 2000-02-25
JP3601758B2 JP3601758B2 (en) 2004-12-15

Family

ID=16813273

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22440698A Expired - Fee Related JP3601758B2 (en) 1998-08-07 1998-08-07 Information processing apparatus and processing method thereof

Country Status (1)

Country Link
JP (1) JP3601758B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1327340C (en) * 2004-02-12 2007-07-18 松下电器产业株式会社 Processor and compiler

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1327340C (en) * 2004-02-12 2007-07-18 松下电器产业株式会社 Processor and compiler

Also Published As

Publication number Publication date
JP3601758B2 (en) 2004-12-15

Similar Documents

Publication Publication Date Title
JP4101659B2 (en) Multithreaded processor with input / output capability
US7424598B2 (en) Data processor
US9195786B2 (en) Hardware simulation controller, system and method for functional verification
JP2550213B2 (en) Parallel processing device and parallel processing method
JP2006012163A (en) Digital data processing apparatus having multi-level register file
JPH06230969A (en) Processor
JPH11249897A (en) Method and device for selecting super scholar provided with n-way branch or succeeding instruction in very long instruction word computer
EP0982655A2 (en) Data processing unit and method for executing instructions of variable lengths
KR100765567B1 (en) Data processor with an arithmetic logic unit and a stack
JP2002215387A (en) Data processor provided with instruction translator, and memory interface device
US5034879A (en) Programmable data path width in a programmable unit having plural levels of subinstruction sets
JP2002063025A (en) Variable length data processing processor
US20020087848A1 (en) System and method for executing conditional branch instructions in a data processor
US4975837A (en) Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets
JPH0461390B2 (en)
JP2000056972A (en) Vliw processor and its processing method
JP2000284964A (en) Efficient sub-instruction emulation in vliw processor
JP2636821B2 (en) Parallel processing unit
KR20010072490A (en) Data processor comprising a register stack
JP3102399B2 (en) Data processing apparatus and method
JP3147884B2 (en) Storage device and information processing device
JP2785820B2 (en) Parallel processing unit
JP2927281B2 (en) Parallel processing unit
JPH11175394A (en) Information processor and multi-port register file
JPH06332700A (en) Information processor

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20040527

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20040607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040823

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040914

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040916

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20071001

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081001

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20081001

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20081001

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091001

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091001

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101001

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101001

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111001

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111001

Year of fee payment: 7

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20111001

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20111001

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121001

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121001

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 9

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees