JP3601758B2 - 情報処理装置及びその処理方法 - Google Patents
情報処理装置及びその処理方法 Download PDFInfo
- Publication number
- JP3601758B2 JP3601758B2 JP22440698A JP22440698A JP3601758B2 JP 3601758 B2 JP3601758 B2 JP 3601758B2 JP 22440698 A JP22440698 A JP 22440698A JP 22440698 A JP22440698 A JP 22440698A JP 3601758 B2 JP3601758 B2 JP 3601758B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- stream
- information processing
- memory
- instruction stream
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は、n個の命令(nは2以上の整数)を命令メモリから読み出して並列実行する情報処理装置及びその処理方法に関する。
【0002】
【従来の技術】
VLIWプロセッサでは、複数の演算ユニット及び制御ユニットを備え、複数命令フィールドからなる64〜512ビットのVLIWを同時実行するので、高速処理が可能である。しかし、従来のVLIWプロセッサは命令ストリームが単一であるので、例えば入出力装置などのリソース制御を割り込み処理すると、必要な高速データ処理を一時的に中断しなければならず、高速化が妨げられる。そこで、従来では別個の複数のコントローラ系プロセッサを用いて、このようなリソース制御を行っていた。
【0003】
【発明が解決しようとする課題】
しかし、複数のマイクロプロセッサを備えたマルチプロセッサシステムを構築し、マイクロプロセッサ間でコミニュケーションを取る必要があるので、コスト高になるとともに、制御が複雑になる。さらに、命令セットがVLIWプロセッサのそれと異なるリソース制御用プロセッサは、VLIWプロセッサ用のオペレーティングシステムを利用することができないので、複数のOSを備える必要がある。この場合、例えば、マルチメディア系プロセッサに対応するOSが無かったり、また、コントローラ系プロセッサのOSとマルチメディア系プロッセサのOSとの親和性が乏しくて、相互動作の調整に多大な手間と時間が費やされたりするという問題が生ずる。
【0004】
本発明の目的は、このような問題点に鑑み、単一の情報処理装置で複数の命令ストリームを並列実行することが可能な情報処理装置及びその処理方法を提供することにある。
【0005】
【課題を解決するための手段及びその作用効果】
本発明の一態様では、n命令フィールド(nは2以上の整数)からなるVLIW又はn個の命令を命令メモリから読み出して並列演算処理を実行する情報処理装置において、
該n命令フィールドの各々、該n個の命令の各々、又は、該n個の命令の一部及び他の一部に対して、該命令メモリのメモリアドレスを保持する命令ポインタと、
1つの命令ストリームの並列演算処理対象の命令に対応する該命令ポインタの数を変更し、該命令の並列演算処理数をnからi(iはn>i≧1となる整数)に変更する手段とを備えている。
この情報処理装置によれば、1つの命令ストリームの並列演算処理数を状況に応じて変更することが可能となる。
本発明の他の態様では、上記構成にさらに、
複数の命令レジスタと、
上記命令ポインタの内容に基づいて上記命令メモリから読み出された命令を該複数の命令レジスタに選択して供給する選択回路
を備えている。
【0006】
この情報処理装置によれば、該複数の命令レジスタの内容を並列実行することにより、複数の命令ストリームが並列実行される。また、該複数の命令レジスタの内容の組に応じて命令ストリーム数をダイナミックに変更することができるので、次のような効果を奏する。
(1)単一の情報処理装置で、主処理を高速に行うとともに入出力装置などのリソース制御も行うことができ、マルチプロセッサシステムを構築する必要がなくなり、システムのハードウェア及びソフトウェア構成が簡単化される。
【0007】
(2)リソース制御においても単一の情報処理装置のオペレーティングシステムを利用することができるので、ソフトウェア構成が簡単化される。
(3)ハードウェア上の相互動作調整を行う必要がないので、システムの設計及び開発が容易になる。
(4)従来ではVLIWプロセッサで割込処理を行うと主処理を中断しなければならなかったが、本発明の情報処理装置によれば主処理を中断する必要がないので、安定したリアルタイム処理を行うことができる。
【0008】
(5)VLIWプロセッサでは、処理データが関連した命令群に対しNOP命令を追加してVLIW数を増やす必要があり、このような場合に本発明のマルチ命令ストリームで他の処理を並列に行うことにより、処理効率が向上する。
以上のような効果を奏する本実施態様は、システムの安価化、小型化及び短納期化に寄与するところが大きい。
【0009】
本発明の他の態様では、上記構成にさらに、設定される並列実行状態に応じて、上記各命令ポインタに保持されているメモリアドレスの増分値を設定する状態/増分変換回路を備えている。
この情報処理装置によれば、従来のサブルーチン実行又は他のプロセッサ起動に類似して、実行中に新たな命令ストリームを容易に追加することが可能となる。
【0010】
本発明の他の態様では、上記状態/増分変換回路は、状態移行命令又は外部からの命令ストリーム追加要求に応答して上記状態を設定する。
この情報処理装置によれば、従来の割込処理又は他のプロセッサ起動に類似して、新たな命令ストリームを容易に追加することができる。
【0011】
本発明の他の態様では、複数の命令を命令メモリから読み出して並列実行する情報処理装置において、
複数の命令の少なくとも一部を実行する第1の命令ストリームに対応する第1の命令ポインタと、
他の複数の命令の少なくとも一部を実行する第2の命令ストリームに対応するとともに、該第1の命令ポインタとは独立した第2の命令ポインタと、
を備えている。
この情報処理装置によっても、単一の情報処理装置で複数の命令ストリームを並列実行することが可能となる。
本発明の他の態様では、上記構成において、上記第1の命令ストリームにおいては主処理が実行され、
上記第2の命令ストリームにおいては割込処理が実行される。
従来ではVLIWプロセッサで割込処理を行うと主処理を中断しなければならなかったが、この情報処理装置によれば主処理を中断する必要がないので、安定したリアルタイム処理を行うことができる。
【0012】
本発明の他の態様では、上記構成において、上記第1の命令ストリーム又は上記第2の命令ストリームの終了に基づいて、該第1の命令ストリームと該第2の命令ストリームとを併合させて命令ストリームを一つとする。
【0014】
この情報処理装置によれば、1つの命令ストリーム終了後に、残った命令ストリームをより高速処理することが可能となる。
本発明の他の態様では、上記構成において、上記第1の命令ストリーム又は上記第2の命令ストリームの終了は、命令ストリーム終了命令に基づく。
【0015】
この情報処理装置によれば、命令ストリーム幅増加処理が簡単になる。
【0016】
本発明の他の目的、構成及び効果は、以下の説明から明らかになる。
【0017】
【発明の実施の形態】
以下、図面を参照して本発明の一実施形態を説明する。
図1は、単一装置で複数の命令ストリームを並列実行することが可能な情報処理装置としてのVLIWプロセッサの概略構成を示す。
高速処理のために、命令メモリ10とデータメモリ11とを備え、互いに独立なバスでアクセス可能となっている。命令メモリ10及びデータメモリ11は、例えばキャッシュメモリである。
【0018】
命令メモリ10が命令ポインタ処理部12でアドレス指定されて命令メモリ10の内容が読み出され、選択回路13を介して命令レジスタ140〜143に供給され、選択回路13から制御回路15へ供給されるレディ信号RDYが活性化される。制御回路15は、これに応答し命令レジスタ140〜143にラッチ信号LCHのパルスを供給して、命令レジスタ140〜143にVLIWを保持させる。命令レジスタ140〜143の内容はそれぞれ命令デコーダ160〜163でデコードされ、その結果に基づいてそれぞれ演算回路170〜173が制御され、命令レジスタ140〜143のオペランドのアドレス情報が命令デコーダ160〜163を介し制御回路15に供給される。制御回路15は、演算回路170〜173の各々に対応した制御ユニットを備えており、オペランドの実アドレス計算が必要な場合には演算回路170〜173にその計算をさせ、そのアドレスをデータメモリ11に供給する。演算回路170〜173は、データメモリ11とデータバスで接続されており、データメモリ11との間で演算対象及び演算結果のデータ授受を行う。
【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と称す。
【0020】
図3は、このような状態がダイナミックに切り換えられているマルチ命令ストリームを示している。処理の流れは、図示矢印方向である。図3では1つの主命令ストリームと第1〜第3副命令ストリームとを示している。線幅は並列数を表しており、線幅が広いほど高速処理が可能である。
第1〜第3副命令ストリームは、従来の割込処理やサブルーチン等の分岐処理に類似しているが、1つの命令ストリームで割り込み処理に分岐するのではなく、新たな命令ストリームが増えるので実行中の命令ストリームは実行を継続でき、したがって割込処理で行われる退避処理や復帰処理を行う必要がない。
【0021】
図1に戻って、命令ストリーム数を可変にするために、命令ポインタ処理部12は命令レジスタ140〜143に対応してそれぞれ命令ポインタ120〜123を備えている。命令ポインタ120〜123の内容は、いずれも図4(A)に示す如く、上位ビットのメモリアドレスMAと、下位ビットのフィールドアドレスFAとからなる。本実施形態では、1VLIWが4命令フィールドであるので、フィールドアドレスFAは2ビットである。
【0022】
命令メモリ10はメモリアドレスMAで指定され、各メモリアドレスMAのデータに、図4(B)に示す如くフィールドアドレスFAが例えば32ビット毎に割り当てられる。メモリアドレスMAとフィールドアドレスFAとの組を(MA,FA)で表す。例えば1VLIWが128ビットで、命令メモリ10が32ビットの命令メモリを4個備えている場合には、フィールドアドレスが物理的な命令メモリと対応するが、このような対応はなくてもよい。
【0023】
分岐の無い通常のストリームにおいては、1VLIWが命令レジスタ140〜143に保持される毎に、命令ポインタ120〜123の内容にそれぞれ増分レジスタ180〜183の出力値が加算される。分岐命令の場合には、従来同様に、命令デコーダ及び制御回路15を介し対応する命令ポインタに分岐先アドレスが供給されて、命令ポインタの内容が更新される。
【0024】
従来のサブルーチン実行又は他のプロセッサ起動に類似して、実行中に新たな命令ストリームを追加可能にするために、命令セットに状態移行命令を含んでいる。この状態移行命令は、新命令ストリーム先頭アドレス(MA,FA)を含んでいる。この命令が命令デコーダでデコードされると、一方では制御回路15を介して、新命令ストリーム先頭アドレス(MA,FA)が命令ポインタ処理部12に供給され、他方では制御回路15及び状態更新回路19を介して状態レジスタ20の内容Sに、S=1であれば2が加算され、S≠1であれば1が加算される。この場合、状態更新回路19は単なる信号通過経路であってもよい。
【0025】
命令ポインタ処理部12は簡単化のため例えば、状態移行前の幅(並列数)が2以上の命令ストリームかつ図1の最も左側の命令ストリームの幅を、1だけ狭くし、これに新たな命令ストリームを割り当てる。より具体的には、命令ポインタ処理部12は、状態移行前の状態SがS=0、1、2又は3であればそれぞれ命令ポインタ123、122、123又は121に、制御回路15からの新命令ストリーム先頭アドレス(MA,FA)を保持させる。
【0026】
このようにすれば、状態移行処理が簡単になる。例外として、状態0から状態2への移行が可能なように状態移行命令を定めておく。この場合、例えば命令ポインタ122及び123に新命令ストリーム先頭アドレスを設定する。
状態移行命令で状態を指定しないのは、後述のハード的な命令ストリーム追加要求ISRQにより、現在実行中の命令ストリーム状態をプログラム作成段階で知得することができないことと、構成を簡単化するためである。なお、割込マスクのようにハード的な命令ストリーム追加要求ISRQを禁止し又はプログラムで状態レジスタ20の内容Sを読んで命令ストリーム状態を確認して、状態移行命令で状態Sを指定するようにしてもよい。
【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が構成されている。
【0028】
従来の割込処理又は他のプロセッサ起動に類似して、新たな命令ストリームをハード的に追加することができるようにするために、制御回路15は外部からの命令ストリーム追加要求ISRQに対し、S<4であれば要求に応答して、予め定められたアドレス(MA,FA)を命令ポインタ処理部12に供給し、状態更新回路19を介し状態レジスタ20の内容に、S=1であれば2を加算し、S≠1であれば1を加算する。命令ポインタ処理部12では、上記状態移行命令の場合と同様にして選択した命令ポインタに、アドレス(MA,FA)を保持させる。
【0029】
命令ストリーム追加要求ISRQは、従来の割込要求に類似しているが、命令ストリーム数が1つ増えるので実行中の命令ストリームは実行を継続でき、したがって割込処理で行われる退避処理や復帰処理を行う必要がなく、この点でも有利である。
図5は、状態0の4並列シングル命令ストリームから、状態移行命令又は命令ストリーム追加要求ISRQにより、状態2の1:3マルチ命令ストリームへ移行する場合を示す。図5では、命令レジスタ143〜140の値#3〜#0の流れを、その値が格納されている命令メモリ10内の対応するアドレス(MA,FA)の流れで示している。
【0030】
最初、状態レジスタ20の内容が0、増分ΔPC3〜ΔPC0がいずれも4になっている。
命令メモリ10のアドレス0から命令が読み出され、選択回路13によりアドレス(0,3)〜(0,0)の内容がそれぞれ命令レジスタ143〜140に保持される。この場合、アドレスが1つであるので、選択回路13は単なる配線として機能する。
【0031】
次に、命令メモリ10のアドレス1から命令が読み出され、選択回路13によりアドレス(1,3)〜(1,0)の内容がそれぞれ命令レジスタ143〜140に保持される。
状態移行命令又は命令ストリーム追加要求ISRQに応答してPC3=(100,0)となり、これと並行して命令ポインタ値PC2〜PC0がそれぞれ(2,2)〜(2,0)になる。状態レジスタ20の内容が1に変化し、これにより増分ΔPC3〜PC0がそれぞれ1、3、3及び3に変化する。命令メモリ10のアドレス100及び2から命令が読み出され、選択回路13によりアドレス(100,0)及び(2,2)〜(2,0)の内容がそれぞれ命令レジスタ143〜140に保持される。
【0032】
ここで、命令メモリ10がキャッシュメモリの場合には記憶容量が比較的少なく、かつ、プロセッサの集積度が益々向上しているので、同じ内容でバスが互いに独立な命令メモリを複数備えて複数アドレス指定を行うことにより、命令メモリからの1VLIW読出時間を短縮してもよい。また、選択回路13にバッファレジスタと命令フィールド単位でシフト可能なシフトレジスタとを備え、命令メモリ10から既に読み出されてバッファレジスタに保持されている内容を、このバッファレジスタから取り出すようにしてもよい。
【0033】
増分ΔPC3〜PC0の値がそれぞれ命令ポインタ値PC3〜PC0に加算されて、PC3〜PC0は次のよう変化する。
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に保持される。
【0034】
命令ストリーム追加要求ISRQの場合、この要求に応じて実行されるプログラム中で、割込原因フラグに類似の命令ストリーム追加要求原因を示す状態フラグを見て、要求原因、例えば要求元の入出力装置の種類が調べられ、原因に応じてサービスルーチンへジャンプする。なお、この処理中で、状態レジスタ20の内容を調べ、例えば、S=1であれば状態移行命令で状態2へ移行できるようにしてもよい。
【0035】
図6は、状態0の4並列シングル命令ストリームから状態2の2:2マルチ命令ストリームへの移行を示す。
図7は、状態1の1:3マルチ命令ストリームから状態3の1:1:2マルチ命令ストリームへの移行を示す。
図8は、状態3の1:1:2マルチ命令ストリームから状態4の1:1:1:1マルチ命令ストリームへの移行を示す。
【0036】
図7及び図8ではいずれも上述のように、状態移行前の幅が2以上の命令ストリームかつ図の最も左側の命令ストリームの幅を、1だけ狭くし、これに新たな命令ストリームを割り当てるという規則に従っている。
新規命令ストリームが以上のようにして追加された後、いずれかの命令ストリームが終了した場合には、並列数が4より小さくなるので、命令ストリーム幅を広げて並列数を4にすることにより、処理を高速化した方が好ましい。
【0037】
そこで、命令セットに命令ストリーム終了命令を含んで、命令ストリーム数を変えずに命令ストリーム幅を広げることができるようにしている。この命令が命令デコーダでデコードされると、一方ではこれをデコードした命令デコーダの識別コードが制御回路15を介して命令ポインタ処理部12に供給され、他方では制御回路15からの信号に応答して状態更新回路19により、状態レジスタ20の内容から、S=2であれば2が減算され、S≠2であれば1が減算される。
【0038】
どの命令ストリームを広げるかについては任意性があり、VLIWプロセッサの設計において、例えば以下のいずれかの規則を選択しておく。
(1)主命令ストリーム幅を広げるために、例えば図1の最も右側の命令ストリームの幅を広げる。
(2)最も規則を簡単にするために、終了した命令ストリームの隣側、例えば図1の右側(右側に無ければ左側)の命令ストリームの幅を広げる。
【0039】
(3)命令ストリーム終了命令に、どの命令ストリームの幅を広げるかの情報を含ませておき、これに基づいて決定する。
(4)主命令ストリームを示すレジスタを備えておき、プログラムで予めこのレジスタの内容を設定しておき、その内容を見て主命令ストリームを確認し、その幅を広げる。
【0040】
命令ポインタ処理部12は、制御回路15からの上記識別コード及び選択された上記規則に基づいて、所定の命令ストリームの幅が広がるように命令ポインタ120〜123の内容を変更する。この変更には、以下に示すように命令ストリームの移動を伴う場合がある。また、ストリーム幅拡大のタイミングは、拡大後に1VLIWに対応した命令メモリ指定アドレス数をできるだけ少なくするために、状態更新回路19により以下のようにして決定される。
【0041】
図9及び図10は、上記規則(1)又は(2)の場合を示し、図11は規則(2)の場合を示し、図12は規則(1)の場合を示している。図9〜図12はいずれも、規則(3)又は(4)の一例を示していると言うこともできる。
図9は、状態1の1:3マルチ命令ストリームから、状態0の4並列シングル命令ストリームへの移行を示す。
【0042】
図9中の#3の列の(160、1)は、命令ストリーム終了命令のアドレスである。この命令が命令デコーダ163でデコードされると、制御回路15は、一方では命令ポインタ処理部12へ命令デコーダ163の識別コードを供給し、他方では、状態更新回路19にストリーム幅拡大指令を供給する。次の1VLIWで状態Sを変更すると、命令メモリ10に対し指定すべきアドレスの数が2になるので、これを1にするために、状態更新回路19は、一方では制御回路15を介して、命令ポインタ120のフィールドアドレスFAが0になるまで、命令レジスタ143の内容をNOP命令(ノーオペレーション命令)にし又は命令デコーダ163及び演算回路173を停止状態にさせ、他方では状態レジスタ20の更新を禁止しかつ命令ポインタ処理部12に対し命令ポインタ123の更新を禁止させる。
【0043】
命令ポインタ120のフィールドアドレスFAが0になると、この禁止が解除されて、命令ポインタ処理部12により命令ポインタ122の内容が命令ポインタ123に複写され命令ポインタ123の内容に1が加算されて、PC3=(23,3)となり、これと並行して命令ポインタ値PC2〜PC0がそれぞれ(23,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)になる。
【0044】
図10は、状態2の2:2マルチ命令ストリームから状態0の4並列シングル命令ストリームへの移行を示す。#3の列の(160,1)は、命令ストリーム終了命令のアドレスである。なお、(160,0)が命令ストリーム終了命令のアドレスで(160,1)が無意味の命令のアドレスであってもよい。
図11は、状態3の1:1:2マルチ命令ストリームから状態2の2:2マルチ命令ストリームへの移行を示す。
【0045】
#3の列の(260,3)は、命令ストリーム終了命令のアドレスである。この次に#2の命令ストリーム幅が拡大すると、その次に、
(161,0)(160,3)となって指定すべきメモリアドレスが2つになる。そこで、幅を拡大すべき命令ストリームの最も右側に対応した命令ポインタ122のフィールドアドレスFAがいずれ0になるように、すなわちこのフィールドアドレスFAが2又は0になるまで、上記同様に状態レジスタ20及び命令ポインタ122の更新を禁止する。構成の簡単化のために、前記”2又は0”を”0”としても大差はない。
【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の命令ストリームが消失するので、命令ポインタ121の内容を、終了命令ストリームに対応した命令ポインタ123に移した後、この変更を行う。なお、命令ポインタ121及び122の内容をそれぞれ命令ポインタ122及び123にシフトさせた後にこの更新を行ってもよい。
【0047】
本実施形態によれば、命令ストリーム数をダイナミックに変更することができるので、次のような効果を奏する。
(1)単一プロッセサで、主処理を高速に行うとともに入出力装置などのリソース制御も行うことができ、マルチプロセッサシステムを構築する必要がなくなり、システムのハードウェア及びソフトウェア構成が簡単化される。
【0048】
(2)リソース制御においてもVLIWプロセッサ用のオペレーティングシステムを利用することができるので、ソフトウェア構成が簡単化される。
(3)ハードウェア上の相互動作調整を行う必要がないので、システムの設計及び開発が容易になる。
(4)従来ではVLIWプロセッサで割込処理を行うと主処理を中断しなければならなかったが、本実施形態のVLIWプロセッサによれば主処理を中断する必要がないので、安定したリアルタイム処理を行うことができる。
【0049】
(5)VLIWプロセッサでは、例えば、
ADD A,B SUB A,C MULT A,D INC A
のように処理結果を次のステップで使用する場合には1VLIWで処理することができず、この場合、プログラマ又はコンパイラによりNOP命令を追加して次のような4VLIWにする必要がある。
【0050】
ADD A,B NOP NOP NOP
SUB A,C NOP NOP NOP
MULT A,D NOP NOP NOP
INC A NOP NOP NOP
このような無駄が比較的多いプログラムでは、本実施形態のようにマルチ命令ストリームにして他の処理を並列に行うことにより、処理効率が向上する。
【0051】
以上のような効果を奏する本実施形態は、システムの安価化、小型化及び短納期化に寄与するところが大きい。
【図面の簡単な説明】
【図1】本発明の一実施形態のVLIWプロセッサを示す概略ブロック図である。
【図2】(A)〜(D)はそれぞれ状態0〜4の命令ストリームを示す説明図である。
【図3】マルチ命令ストリーム数の変化を示す図である。
【図4】(A)は命令ポインタのフォーマットを示す図であり、(B)は命令メモリ内のメモリアドレスとフィールドアドレスとの関係を示す図である。
【図5】状態0の4並列シングル命令ストリームから状態1の1:3マルチ命令ストリームへの移行を示す説明図である。
【図6】状態0の4並列シングル命令ストリームから状態2の2:2マルチ命令ストリームへの移行を示す説明図である。
【図7】状態1の1:3命令ストリームから状態3の1:1:2マルチ命令ストリームへの移行を示す説明図である。
【図8】状態3の1:1:2マルチ命令ストリームから状態4の1:1:1:1マルチ命令ストリームへの移行を示す説明図である。
【図9】状態1の1:3マルチ命令ストリームから状態0の4並列シングル命令ストリームへの移行を示す説明図である。
【図10】状態2の2:2マルチ命令ストリームから状態0の4並列シングル命令ストリームへの移行を示す説明図である。
【図11】状態3の1:1:2マルチ命令ストリームから状態2の2:2マルチ命令ストリームへの移行を示す説明図である。
【図12】状態4の1:1:1:1マルチ命令ストリームから状態3の1:1:2マルチ命令ストリームへの移行を示す説明図である。
【符号の説明】
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 状態
Claims (25)
- n命令フィールド(nは2以上の整数)からなるVLIWを命令メモリから読み出して該VLIWの並列演算処理を実行する情報処理装置において、
該n命令フィールドの各々に対して、該命令メモリのメモリアドレスを保持する命令ポインタと、
1つの命令ストリームの該並列演算処理対象の命令に対応する該命令ポインタの数を変更し、該命令の並列演算処理数をnからi(iはn>i≧1となる整数)に変更する手段と
を備えていることを特徴とする情報処理装置。 - n個の命令(nは2以上の整数)を命令メモリから読み出して並列演算処理を実行する情報処理装置において、
該n個の命令の各々に対して、該命令メモリのメモリアドレスを保持する命令ポインタと、
1つの命令ストリームの該並列演算処理対象の命令に対応する該命令ポインタの数を変更し、該命令の並列演算処理数をnからi(iはn>i≧1となる整数)に変更する手段と
を備えていることを特徴とする情報処理装置。 - n個の命令(nは2以上の整数)を命令メモリから読み出して並列実行する情報処理装置において、
該n個の命令の一部に対応する命令ポインタと、該n個の命令の他の一部に対応する命令ポインタとを互いに独立して設け、
1つの命令ストリームの該並列演算処理対象の命令に対応する該命令ポインタの数を変更し、該命令の並列演算処理数をnからi(iはn>i≧1となる整数)に変更する手段を更に有すること
を特徴とする情報処理装置。 - 複数の命令レジスタと、
上記命令ポインタの内容に基づいて上記命令メモリから読み出された命令を該複数の命令レジスタに選択して供給する選択回路と、
を備えていることを特徴とする請求項1乃至3のいずれかに記載の情報処理装置。 - 設定される並列実行状態に応じて、上記各命令ポインタに保持されているメモリアドレスの増分値を設定する状態/増分変換回路を備えていること
を特徴とする請求項1乃至4のいずれかに記載の情報処理装置。 - 上記状態/増分変換回路は、状態移行命令又は外部からの命令ストリーム追加要求に応答して上記状態を設定すること
を特徴とする請求項1乃至5のいずれかに記載の情報処理装置。 - 上記複数の命令ポインタの一部に対応する第1の命令ストリームと、
該複数の命令ポインタの他の一部に対応する第2の命令ストリームとをダイナミックに生成すること
を特徴とする請求項1乃至6のいずれかに記載の情報処理装置。 - 複数の命令を命令メモリから読み出して並列演算処理を実行する情報処理装置において、
複数の命令の少なくとも一部を実行する第1の命令ストリームに対応する第1の命令ポインタと、
1つの命令ストリームの該並列演算処理対象の命令に対応する該第1の命令ポインタの数を少なくなるように変更し、該命令の並列演算処理数が少なくなるように変更する変更手段と、
該変更手段の変更処理により、該1つの命令ストリームに対応しなくなったポインタであって、他の複数の命令の少なくとも一部を実行する第2の命令ストリームに対応するとともに、該第1の命令ポインタとは独立した第2の命令ポインタと
を備えていることを特徴とする情報処理装置。 - 上記第1の命令ストリームにおいては主処理が実行され、
上記第2の命令ストリームにおいては割込処理が実行されること
を特徴とする請求項7又は8記載の情報処理装置。 - 上記第1の命令ストリーム又は上記第2の命令ストリームの終了に基づいて、該第1の命令ストリームと該第2の命令ストリームとを併合させて命令ストリームを一つとすること
を特徴とする請求項7乃至9のいずれかに記載の情報処理装置。 - 上記第1の命令ストリーム又は上記第2の命令ストリームの終了は、命令ストリーム終了命令に基づくこと
を特徴とする請求項10に記載の情報処理装置。 - n命令フィールド(nは2以上の整数)からなるVLIWを命令メモリから読み出して該VLIWの並列演算処理を実行する情報処理方法において、
該n命令フィールドの各々に対して備えられた命令ポインタに保持される該命令メモリのメモリアドレスに基づいて該命令メモリからVLIWを読み出し、
1つの命令ストリームの該並列演算処理対象の命令に対応する該命令ポインタの数を変更し、該命令の並列演算処理数をnからi(iはn>i≧1となる整数)に変更すること
を特徴とする情報処理方法。 - n個の命令(nは2以上の整数)を命令メモリから読み出して並列演算処理を実行する情報処理方法において、
該n個の命令の各々に対して備えられた命令ポインタに保持される該命令メモリのメモリアドレスに基づいて該命令メモリからVLIWを読み出し、
1つの命令ストリームの該並列演算処理対象の命令に対応する該命令ポインタの数を変更し、該命令の並列演算処理数をnからi(iはn>i≧1となる整数)に変更すること
を特徴とする情報処理方法。 - n個の命令(nは2以上の整数)を命令メモリから読み出して並列演算処理を実行する情報処理方法において、
該n個の命令の一部に対応する命令ポインタと、該n個の命令の他の一部に対応する命令ポインタとが互いに独立して設定され、
1つの命令ストリームの該並列演算処理対象の命令に対応する該命令ポインタの数を変更し、該命令の並列演算処理数をnからi(iはn>i≧1となる整数)に変更すること
を特徴とする情報処理方法。 - 上記命令ポインタの内容に基づいて上記命令メモリから読み出された命令を該複数の命令レジスタに選択して供給する工程を更に備えていること
を特徴とする請求項12乃至14のいずれかに記載の情報処理方法。 - 上記命令ポインタに保持されているメモリアドレスを更新する工程を更に備えていること
を特徴とする請求項12乃至5のいずれかに記載の情報処理方法。 - 状態移行命令又は外部からの命令ストリーム追加要求に応答して上記命令ポインタに保持されているメモリアドレスを更新すること
を特徴とする請求項12乃至16のいずれかに記載の情報処理方法。 - 上記複数の命令ポインタの一部に対応する第1の命令ストリームと、
該複数の命令ポインタの他の一部に対応する第2の命令ストリームとをダイナミックに生成すること
を特徴とする請求項12乃至17のいずれかに記載の情報処理方法。 - 複数の命令を命令メモリから読み出して並列演算処理を実行する情報処理方法において、
複数の命令の少なくとも一部を実行する、1つの命令ストリームである第1の命令ストリームの該並列演算処理対象の命令に対応する第1の命令ポインタの数を少なくなるように変更し、該命令の並列演算処理数を少なくなるように変更し、
該変更処理により、該第1の命令ストリームに対応しなくなったポインタであって、他の複数の命令の少なくとも一部を実行する第2の命令ストリームに、該第1のポインタとは独立した第2のポインタを対応させること
を特徴とする情報処理方法。 - 上記第1の命令ストリームにおいては主処理が実行され、
上記第2の命令ストリームにおいては割込処理が実行されること
を特徴とする請求項18又は19記載の情報処理方法。 - 上記第1の命令ストリーム又は上記第2の命令ストリームの終了に基づいて、該第1の命令ストリームと該第2の命令ストリームとを併合させて命令ストリームを一つとすること
を特徴とする請求項18乃至20のいずれかに記載の情報処理方法。 - 上記第1の命令ストリーム又は上記第2の命令ストリームの終了は、命令ストリーム終了命令に基づくこと
を特徴とする請求項21に記載の情報処理方法。 - 単一プロセッサ内において、
第1の命令ポインタに基づいて命令メモリから読み出された第1の命令グループを実行して得られる第1の命令ストリームと、
第2の命令ポインタに基づいて命令メモリから読み出された第2の命令グループを実行して得られる第2の命令ストリームとを、
1つの命令ストリームである第1の命令ストリームに対応する該第1の命令ポインタの数を変更し、該第1の命令グループの並列演算処理数を変更するとともに、1つの命令ストリームである第2の命令ストリームに対応する該2の命令ポインタの数を変更し、該第2の命令グループの並列演算処理数を変更することを特徴とする情報処理方法。 - n命令フィールド(nは2以上の整数)からなるVLIWを命令メモリから読み出して該VLIWの並列演算処理を実行する情報処理装置において、
該n命令フィールドの各々に対して、該命令メモリのメモリアドレスを保持する命令ポインタと、
1つの命令ストリームの該並列演算処理対象の命令に対応する該命令ポインタの数を変更し、該命令の並列演算処理数をnからi(iはn>i≧1となる整数)に変更するとともに、該命令が保持される命令レジスタの数、該命令がデコードされる命令デコーダの数、該命令に基づいた演算が行われる演算回路の数をnからi(iはn>i≧1となる整数)に変更する手段と
を備えていることを特徴とする情報処理装置。 - n命令フィールド(nは2以上の整数)からなるVLIWを命令メモリから読み出して該VLIWの並列演算処理を実行する情報処理方法において、
該n命令フィールドの各々に対して備えられた命令ポインタに保持される該命令メモリのメモリアドレスに基づいて該命令メモリからVLIWを読み出し、
1つの命令ストリームの該並列演算処理対象の命令に対応する該命令ポインタの数を変更し、該命令の並列演算処理数をnからi(iはn>i≧1となる整数)に変更するとともに、該命令が保持される命令レジスタの数、該命令がデコードされる命令デコーダの数、該命令に基づいた演算が行われる演算回路の数をnからi(iはn>i≧1となる整数)に変更すること
を特徴とする情報処理装置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22440698A JP3601758B2 (ja) | 1998-08-07 | 1998-08-07 | 情報処理装置及びその処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22440698A JP3601758B2 (ja) | 1998-08-07 | 1998-08-07 | 情報処理装置及びその処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000056972A JP2000056972A (ja) | 2000-02-25 |
JP3601758B2 true JP3601758B2 (ja) | 2004-12-15 |
Family
ID=16813273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22440698A Expired - Fee Related JP3601758B2 (ja) | 1998-08-07 | 1998-08-07 | 情報処理装置及びその処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3601758B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4283131B2 (ja) * | 2004-02-12 | 2009-06-24 | パナソニック株式会社 | プロセッサ及びコンパイル方法 |
-
1998
- 1998-08-07 JP JP22440698A patent/JP3601758B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000056972A (ja) | 2000-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7424598B2 (en) | Data processor | |
JP3149348B2 (ja) | 代理命令を用いる並列処理システム及び方法 | |
KR100279784B1 (ko) | 연산처리장치 | |
CA1204516A (en) | Data flow type information processing stystem | |
CA1176757A (en) | Data processing system for parallel processings | |
US20040193837A1 (en) | CPU datapaths and local memory that executes either vector or superscalar instructions | |
JPH03129433A (ja) | 並列処理装置および並列処理方法 | |
KR20010023914A (ko) | 데이터 및 어드레스 명령을 병렬로 디코딩 및 실행하기위한 데이터 처리기 | |
US7343475B2 (en) | Supplying halt signal to data processing unit from integer unit upon single unit format instruction in system capable of executing double unit format instruction | |
JPH11249897A (ja) | Nウェイ分岐を有するスーパースカラまたは超長命令語コンピュータにおける次の命令を選択する方法および装置 | |
US5890009A (en) | VLIW architecture and method for expanding a parcel | |
KR20010072491A (ko) | 산술 논리 유닛 및 스택을 가지는 데이터 프로세서,멀티미디어 장치 및 컴퓨터 프로그램 제품 | |
JP2002063025A (ja) | 可変長データ処理用プロセッサ | |
US7337306B2 (en) | Executing conditional branch instructions in a data processor having a clustered architecture | |
JP3601758B2 (ja) | 情報処理装置及びその処理方法 | |
JPH0461390B2 (ja) | ||
KR19980018071A (ko) | 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리 | |
US5812845A (en) | Method for generating an object code for a pipeline computer process to reduce swapping instruction set | |
JP3640855B2 (ja) | プロセッサ | |
JP2007334819A (ja) | ベクトルリネーミング方式およびベクトル型計算機 | |
EP1050800A1 (en) | A pipelined execution unit | |
US6704855B1 (en) | Method and apparatus for reducing encoding needs and ports to shared resources in a processor | |
JP2636821B2 (ja) | 並列処理装置 | |
JPH06332700A (ja) | 情報処理装置 | |
JP3102399B2 (ja) | データ処理装置及び方法 |
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 |