(57)【特許請求の範囲】
【請求項１】
プロセッサ内の機能単位を制御する命令語を生成する方法にあって、これらの命令語は、複数の命令語部分から成り、各命令語部分は、各機能単位を制御し、プログラムコードをコンパイルして生成された一連の主命令語が、プログラムの実行前に複数のプログラム語に分割され、そして前記プログラムの実行時に、１つの命令語部分の幅に少なくとも相当する１つの情報部分を有する１つのプログラム語によって制御され、１つの命令語が、行ごとに書込み可能な１つの命令語記憶器の読取り行番号によって特定された１つの行から取り出され、そして１つの命令語部分をそれぞれのプログラム語の情報部分で置き換えることによって変更され、そして前記命令語記憶器の１つの書込み行番号によって特定された１つの行内に再書き込みされ、処理すべき前記主命令語に相当する１つの命令語の当該方法で実施された生成後に、この命令語は、前記機能単位を制御するために出力される方法において、
前記読取り行番号は、１つの読取り指標レジスタ（１８）によって記憶され、前記書込み行番号は、１つの書込み指標レジスタ（１９）によって記憶され、１つの読取り行番号及び１つの書込み行番号が、１つのプログラム語（１７）ごとに出力され、連続する読取り行番号及び書込み行番号の個数が、１つのブロック長レジスタ（２０）の内容によって決定され、
前記プログラム語（１７）は、１つのセットビット（２１）を有し、命令語の生成（１０）が、セットされた活動状態時のこのセットビット（２１）によって停止され、前記読取り指標レジスタ（１８）及び／又は前記書込み指標レジスタ（１９）及び／又は前記ブロック長レジスタ（２０）のレジスタ内容が、このプログラム語の情報部分の内容によってセットされ、前記命令語（１５）が、このセットビット（２１）のセットされた不活動状態時に生成されることを特徴とする方法。
【請求項２】
前記セットビット（２１）のセットされた活動状態を伴う１つのプログラム語（１７）で、当該情報部分の内容が、前記読取り指標レジスタ（１８）、前記書込み指標レジスタ（１９）及び前記ブロック長レジスタ（２０）内に記憶されることを特徴とする請求項１に記載の方法。
【請求項３】
前記命令語記憶器（２４）は、それぞれ同じ行番号を有する第１命令語記憶器ページ（６）と第２命令語記憶器ページ（７）とに分割され、番地付けすべき命令語記憶器ページが、前記命令語（１５）を前記置き換えのために１つのページレジスタ（２７）の内容によって決定されることを特徴とする請求項１又は２に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プロセッサ内の機能単位を制御する命令語を生成する方法にあって、これらの命令語は、複数の命令語部分から成り、各命令語部分は、各機能単位を制御し、プログラムコードをコンパイルして生成された一連の主命令語が、プログラムの実行前に複数のプログラム語に分割され、そして前記プログラムの実行時に、１つの命令語部分の幅に少なくとも相当する１つの情報部分を有する１つのプログラム語によって制御され、１つの命令語が、行ごとに書込み可能な１つの命令語記憶器の読取り行番号によって特定された１つの行から取り出され、そして１つの命令語部分をそれぞれのプログラム語の情報部分で置き換えることによって変更され、そして前記命令語記憶器の１つの書込み行番号によって特定された１つの行内に再書き込みされ、処理すべき前記主命令語に相当する１つの命令語の当該方法で実施された生成後に、この命令語は、前記機能単位を制御するために出力される方法に関する。
【０００２】
さらに、本発明は、上述した方法を実行する装置に関する。
【０００３】
【従来の技術】
ドイツ連邦共和国特許発明第１９８  ５９  ３８９号明細書中には、冒頭で述べた種類の方法及びプロセッサ内で機能単位を制御する装置が記されている。
【０００４】
この公知の解決手段では、情報部分のほかに少なくとも書込み行番号と読取り行番号に関する情報も、プログラム語内に含まれている。このことは、プログラム語の幅を決定する。これらのプログラム語は、一方では制御情報に対して必要な処理と復号化によって読取りに関するデータの処理速度を制限する。他方では、プログラム語を処理するときの長いデータ幅が、プロセッサを実現する際に多大なハードウェア経費をもたらす。
【０００５】
【発明が解決しようとする課題】
本発明の課題は、処理すべきプログラム語のデータ幅を減らして、ハードウェア経費とプロセッサを実現するためのコストを少なく維持することにある。
【０００６】
【課題を解決するための手段】
この課題は、読取り行番号が、１つの読取り指標レジスタ１８によって記憶され、書込み行番号が、１つの書込み指標レジスタ１９によって記憶され、１つの読取り行番号及び１つの書込み行番号が、１つのプログラム語１７ごとに出力され、連続する読取り行番号及び書込み行番号の個数が、１つのブロック長レジスタ２０の内容によって決定され、前記プログラム語１７が、１つのセットビット２１を有し、命令語の生成１０が、セットされた活動状態時のこのセットビット２１によって停止され、前記読取り指標レジスタ１８及び／又は前記書込み指標レジスタ１９及び／又は前記ブロック長レジスタ２０のレジスタ内容が、このプログラム語の情報部分の内容によってセットされ、前記命令語１５が、このセットビット２１のセットされた不活動状態時に生成されることによって解決される。
【０００７】
この場合、必要とする読取り／書込み制御情報が、読取り行番号を記憶した１つの読取り指標レジスタと書込み行番号を記憶した１つの書込み指標レジスタとによって１つのプログラム語の処理ごとに準備される。
【０００８】
好ましくは、可能な限り多数の処理すべき命令語が、命令語記憶器内で連続的に一緒に配置されてファイルされる。その結果、これらの命令語は、ブロックにまとめられる。したがって、読取り指標レジスタと書込み指標レジスタは、連続する読取り行番号及び書込み行番号の個数によってリング計数状（Ｒｉｎｇ−Ｚａｅｈｌｗｅｉｓｅ）  にセットされる。当該行番号の個数は、１つのブロック長レジスタの内容によって準備される。
【０００９】
本発明の方法の好適な構成では、プログラム語が１つのセットビットを有し、命令語の生成が、セットされた活動状態時のこのセットビットによって停止され、読取り指標レジスタ及び／又は書込み指標レジスタ及び／又はブロック長レジスタのレジスタ内容が、このプログラム語の情報部分の内容によってセットされ、命令語が、このセットビットのセットされた不活動状態時に生成されることが提唱されている。
【００１０】
この解決手段では、命令語のもう１つ別のブロックを実行するために読取り指標レジスタ，書込み指標レジスタ及びブロック長レジスタに対して必要な情報が、認識され、デコードされ、そしてプログラム語とは違って再処理される。
【００１１】
それと同時に、命令語記憶器の行が、主命令語に対応する命令語を生成するために、可能な限り変化してはならないこの命令語を含む一連のプログラム語によってその都度要求され得る。
【００１２】
また、その他の一連の命令語に対して適した書込みが選択され得る。例えば、主命令語に対応する命令語を生成するための多数のプログラム語、すなわち多数の中間ステップが必要である場合は、中間ステップごとに同一の行から読取って、同一の行内に書き込むことが好ましい。したがって、読取り指標レジスタと書込み指標レジスタが停止される。このことは、これらのレジスタをセットすることによってセットされ得る。
【００１３】
引続き、書込み行番号と読取り行番号をそれぞれの所定の番号から出発して所定の繰り返し速度で降順又は昇順に進行させることが好ましい。このことは、新たにセットすることによっても実行され得る。
【００１４】
本発明の方法の補足された構成では、１つのプログラム語が、セットされた活動状態にある時に、当該情報部分の内容が、読取り指標レジスタ、書込み指標レジスタ及びブロック長レジスタ内に記憶されることが提唱されている。
【００１５】
本発明の方法の好適な構成は、命令語記憶器がそれぞれ同じ行番号を有する第１命令語記憶器ページと第２命令語記憶器ページとに分割され、番地付けすべき命令語記憶器ページが、前記命令語を上記の置き換えのために１つのページレジスタの内容によって決定されることを提唱する。
【００１６】
この構成では、命令語記憶器である命令語記憶器ページのいろいろなグループ分けが、ページレジスタの内容によって番地付けされる。この場合、行の番地付けが、同時に進行する読取りレジスタのポインタと書込みレジスタのポインタによってこれらの命令語記憶器ページ内で実行される。
【００１７】
すなわち、複数の命令語が、それぞれの命令語記憶器ページ内でブロックごとに構成されて処理される。これらの命令語は、僅かなビット幅を有するページ記憶器の内容のステートメントによって選び出されるだけで、より大きなビット幅が必要である読取りポインタと書込みポインタの初期値をアドレス付けすることによっては選び出されない。
【００１８】
本発明の別の実施の形態では、書込み行番号と読取り行番号がプログラム語内に含まれている構成でも、プログラム語の幅を小さくすることが可能になる。何故なら、特に命令語記憶器内の行数が大きい場合、これらの行番号がページの分割によってより小さく保持でき、その結果プログラム語中のそれに対応する情報がより少なく保持できるからである。
【００１９】
本発明のその他の好適な構成は、プロセッサの割込み信号が、１つの命令語記憶器ページ上で最初のタスクを処理する間にこの最初のタスクの残された処理状態を大域記憶器上で即座に中間記憶し、次いで２番目のタスクをこの処理されなかった第１命令語記憶器ページ上か又は第２命令語記憶器ページ上で即座に処理すること、及び、この２番目のタスクの終了後のこの大域記憶器からの再記憶後に、この最初のタスクが、この最初のタスクのその残された処理状態に対して引き継いで続行されることを提唱する。
【００２０】
プロセッサによって迅速に実行されなければならないより高い優先性のタスクが、時間の遅れなしに最も僅かな中間記憶器の経費と番地付けの経費でプログラム語の処理の全ての実行に取り入れられることが、この発明の解決手段によって保証される。
【００２１】
本発明の方法のもう１つの構成は、プリフェッチユニットが、命令語記憶器の構成を制御すること、及び、新しい命令語がその時のタスクの実行時に生成されないときに、このプリフェッチユニットが、付加的な命令語をその時のタスクの処理状態に関係なくこの命令語記憶器の利用されなかった行内で又は付加的な命令語記憶器内で準備することを提唱する。
【００２２】
この解決手段は、新しい命令語を命令語記憶器内に記憶する待ち時間中に、この待ち時間がプリフェッチユニットによって使用されて、処理するために待機状態にある後続する命令語を処理し、そして新しく生成された命令語をこの命令語の処理をする命令語記憶器の個々の領域内で準備することによって、新しい命令語を準備する際の遅れが、これらの命令語の実行時に最小限にされることを保証する。
【００２３】
本発明の装置の構成は、生成ユニットが命令語記憶器に割当てられていることを提唱する。
【００２４】
本発明の装置のその他の構成は、ブロック長レジスタ，読取り指標レジスタ及び書込み指標レジスタが生成ユニット内に配置されていることを提唱する。この場合、読取りポインターアップ／ダウン計数器が、読取り指標レジスタに割当てられていて、書込みポインターアップ／ダウン計数器が、書込み指標レジスタに割当てられている。これらの計数器のモジューロ計数特性が、ブロック長レジスタの内容と一致する。
【００２５】
【発明の実施の形態】
以下に、本発明を実施の形態に基づいて詳しく説明する。
【００２６】
図１中に示された命令語を生成する方法の場合、プロセッサ１３の機能単位１２を制御するときに、多数の命令語部分４から成る一連の主命令語２が、プログラムの実行前にコンパイルすることによってプログラムコード１から公知の方式で生成される。さらに、一連の主命令語２が、プログラム語生成部８内で分割され、一連の付随する複数のプログラム語１７として実行記憶器９内に記憶される。
【００２７】
１つのプログラム実行では、プログラム語１７が、実行記憶器９からの出力にこのプログラム語１７内に含まれるセットビット２１によってその活動状態に関して検査される。この活動状態が確認されると、命令語処理部１０内のさらなるプログラム語の処理が停止される。そして、このプログラム語１７の情報部分が、読取り指標レジスタ１８、書込み指標レジスタ１９及びブロック長レジスタ２０を割当てるために準備され、これらのレジスタ内に記憶される。
【００２８】
これらのレジスタの内容中に新たに書き込まれるこれらの情報によって、読取り指標レジスタ１８と書込み指標レジスタ１９のモジューロ計数値（ｍｏｄｕｌｏ−Ｚａｅｈｌｗｅｉｓｅ）  が、一方ではブロック長レジスタ２０の内容にセットされる。他方では、次の命令語処理時に読取るべき読取りポインタ３５と書込みポインタ３６とのそれぞれの初期値が、読取り指標レジスタ１８と書込み指標レジスタ１９の内容にプリセットされる。
【００２９】
後続する命令語が、ページレジスタ２７の内容によって選出された第１又は第２命令語記憶器ページ６，７を有する命令語記憶器２４内で処理されると、その時の読取り行番号が、読取られる読取りポインタ３５によって指し示され、そして命令語の処理すべきブロックのその時の書込み行番号が、読取られる書込みポインタ３６によって指し示される。このブロックは、ブロック長レジスタ２０の内容によって決定されるブロック長を有する。この命令語処理ステップは、命令語出力部１１への必要な読取り処理に結びつく読取り／書込み／ＮＯＰ（無演算），演算によってプログラムにしたがって実行され得る。
【００３０】
読取り指標レジスタ１８と書込み指標レジスタ１９が、１回の命令語処理ステップ後に１だけさらに指標付けされる。そして、さらなる命令語処理ステップが実行できる。
【００３１】
割込み信号２５がプロセッサ１３によって起動される場合、それに関連するタスクがより高い優先性で即座に実行されなければならない。ページレジスタを含めた全てのレジスタの直前の内容が中間記憶される。そして、これらのレジスタは、割込み処理の間に新たに割当てられる。この割込みに関連するこの命令語処理は、このために設けられた命令語記憶器２４内で実行される。全ての中間記憶されたレジスタの内容が、この割込み処理の終了後に再記憶される。そして、命令語処理が、この割込み信号２５によって中断された地点でプログラムにしたがって続行され得る。
【００３２】
新しい命令語１５が、命令語記憶器２４内に記憶させるための命令語生成部１０によって１回の命令語処理の間に要求されると、プログラム語の後続語１６が、プリフェッチユニット２８によって実行記憶器９から読取られ、その時に命令語記憶器２４から読取られる命令語１５が読取られ、そして追加命令語２９が生成される。
【００３３】
この追加命令語２９は、命令語記憶器２４の空いている行内か又は付加命令語記憶器３０内で準備され、新しい命令語１５が命令語処理の新たな進行中に即座に再ロードされる。こうして、命令語生成部１０内で新しい命令語１５を準備するときにそこで生じる処理時間によって引き起こされる遅れが阻止される。
【００３４】
プロセッサ１３に対応する機能単位１２内で処理するために必要な機能が、命令語１５を命令語出力部１１内に記憶させることによって起動される。
【００３５】
図２中には、生成ユニット３１が示されている。この生成ユニット３１内には、
ブロック長レジスタ２０，敷設された読取りポインターアップ／ダウン計数器３２を伴う読取り指標レジスタ１８及び敷設された書込みポインターアップ／ダウン計数器３３を伴う書込み指標レジスタ１９が配置されている。
【００３６】
情報部分バス２６が、ブロック長レジスタ２０，読取り指標レジスタ１８及び書込み指標レジスタ１９の入力部にそれぞれ接続されている。この情報部分バス２６は、これらのレジスタに対する入力値を準備する。これらのレジスタの入力部に同様に入力するセットビット信号３４によって、記憶器の処理が、これらの入力値に対して実行される。
【００３７】
ブロック長レジスタ２０の出力が、読取りポインターアップ／ダウン計数器３２と書込み指標レジスタ１９用のモジューロ計数値のために準備される。読取りポインターアップ／ダウン計数器３２内に入力するための読取りポインタ３５の初期値が、読取り指標レジスタ１８の出力部で準備される。この読取りポインターアップ／ダウン計数器３２の出力が、読取りポインタ３５のその時の（モジューロ計数）値を読取り指標レジスタ１８の入力部に入力する。これによって、読取りポインタ３５が、読取り指標レジスタ１８の第２出力部によって準備される。
【００３８】
書込みポインターアップ／ダウン計数器３３内に入力するための書込みポインタ３６の初期値が、書込み指標レジスタ１９の出力部で準備される。この書込みポインターアップ／ダウン計数器３３の出力が、書込みポインタ３６のその時の（モジューロ計数）値を書込み指標レジスタ１９の入力部に入力する。これによって、書込みポインタ３６が、書込み指標レジスタ１９の第２出力部によって準備される。
【図面の簡単な説明】
【図１】  方法の機能ブロックと経過を示す。
【図２】  生成ユニットのブロック図である。
【符号の説明】
１    プログラムコード
２    主命令語
３    命令語記憶器
４    命令語部分
６    第１命令語記憶器ページ
７    第２命令語記憶器ページ
８    プログラム語生成部
９    実行記憶器
１０    命令語生成部
１１    命令語出力部
１２    機能単位
１３    プロセッサ
１５    命令語
１６    プログラム語の後続語
１７    プログラム語
１８    読取り指標レジスタ
１９    書込み指標レジスタ
２０    ブロック長レジスタ
２１    セットビット
２４    命令語記憶器
２５    割込み信号
２６    命令部分バス
２７    ページレジスタ
２８    プリフェッチユニット
２９    追加命令語
３０    付加命令語記憶器
３１    生成ユニット
３２    読取りポインターアップ／ダウン計数器
３３    書込みポインターアップ／ダウン計数器
３４    セットビット信号
３５    読取りポインタ
３６    書込みポインタ
【図１】
0004494701.tif 000002
【図２】
0004494701.tif 000003