(57)【特許請求の範囲】
【請求項１】
プロセッサ内の複数の機能単位を制御する方法にあって、この方法の場合、１つのプログラムコードをコンパイルして生成された多数の命令語要素から成る複数の一次命令語の列が、１つの実行フェーズで圧縮されて複数のプログラム語の列として記憶され、そして多数の命令語要素から成る連続する複数の二次命令語が、後続する１つの実行フェーズで複数のプログラム語の列から全ての機能単位の制御に必要な完全な命令語幅で生成される、プロセッサ配置によって実行される以下の方法において、
１つのプログラム語ＰＷｎが、第１グループ（１１）の先行する複数の一次命令語（５）のうちの１つの一次命令語ＶＬＩＷ３を指し示す第１符号ｎ＝３を含み、この一次命令語ＶＬＩＷ３は、このプログラム語ＰＷｎに対応する一次命令語ＶＬＩＷｎと一致する度合いが最も高いものであり、かつ、このプログラム語ＰＷｎは、複数の命令語要素（６）を有し、これらの命令語要素（６）は、前記プログラム語ＰＷｎに対応する前記一次命令語ＶＬＩＷｎと前記第１符号ｎ＝３によって指し示される前記一次命令語ＶＬＩＷ３とで相違する部分であり、
前記第１グループ（１１）の全ての一次命令語（５）に対応する第２グループ（１２）の二次命令語（９）がそれぞれ、１つの第２符号（１３）と共に記憶され、そして
前記プログラム語ＰＷｎ内に含まれている第１符号ｎを用いることによって、前記一次命令語ＶＬＩＷｎに対応する１つの二次命令語ＶＬＩＷ３が、第２符号ｎ＝３によって第２グループ（１２）から見つけ出され、前記プログラム語ＰＷｎ内に含まれている複数の命令語要素（６）が、前記第２グループ１２の前記二次命令語ＶＬＩＷ３内で入れ替えられることによって、前記プログラム語ＰＷｎに対応する二次命令語ＶＬＩＷ３＋ＰＷｎ＝ＶＬＩＷｎが生成されることを特徴とする方法。
【請求項２】
前記第１グループ（１１）は、その時の一次命令語ＶＬＩＷｎに先行する複数の一次命令語（５）の１番目の数から構成されること、及び
前記第２グループ（１２）は、複数の二次命令語（９）の２番目の数から構成されること、及び、この第２番目の数は、この１番目の数に少なくとも等しく、この場合、各二次命令語（９）は、前記第２グループ（１２）の後続する二次命令語（９）を生成する前に最後に付加され、そして、この２番目の数を超えた最初に付加された二次命令語（９）が、前記第２グループ（１２）から除かれることを特徴とする請求項１に記載の方法。
【請求項３】
前記第２グループ（１２）の新しく生成された二次命令語（９）が、その生成のために使用される二次命令語（９）の代わりに記憶されることによって、この新しく生成された二次命令語（９）が付加されることを特徴とする請求項１に記載の方法。
【請求項４】
前記プログラム語ＰＷｎは、その時の前記プログラム語ＰＷｎに対応する前記一次命令語ＶＬＩＷｎと一致する度合いが最も高い一次命令語ＶＬＩＷ３に対する前記一次命令語ＶＬＩＷｎの相違部分ＶＬＩＷ３−ＶＬＩＷｎ＝ＰＷｎとして生成されることを特徴とする請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記プログラム語（７）は、幾つかの命令語要素（６）から構成され、これらの命令語要素（６）の数は、区別すべき命令語要素（６）の最も頻繁に発生する数に一致すること、及び、１つのプログラム語（７）内に記憶された命令語要素（６）の数よりも多い数の命令語要素（６）を必要とする複数の二次命令語（９）の合成のために、多数のプログラム語（７）が使用されることを特徴とする請求項１〜４のいずれか１項に記載の方法。
【請求項６】
最も頻繁に発生する命令語要素（６）の表示が可能である程度に、ビット幅が低減されることによって、１つのプログラム語（７）内の命令語要素（６）が圧縮されること、及び、表示のために、より大きいビット幅を必要とする命令語要素（６）の発生時に、多数のプログラム語（７）が使用されることを特徴とする請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記プログラム語（７）内の前記命令語要素（６）の幅が半分にされ、１つ又は２つのプログラム語（７）が、これらの命令語要素（６）を表示するために設けられていることを特徴とする請求項６に記載の方法。
【発明の詳細な説明】
【０００１】
本発明は、プロセッサ内の複数の機能単位を制御する方法にあって、１つのプログラムコードをコンパイルして生成された多数の命令語要素から成る複数の一次命令語の列が、１つの実行フェーズで圧縮されて複数のプログラム語の列として記憶され、そして多数の命令語要素から成る連続する複数の二次命令語が、後続する１つの実行フェーズで複数のプログラム語の列から全ての機能単位の制御に必要な完全な命令語幅で生成される、プロセッサ配置によって実行される方法に関する。この方法では、１つのプログラムコードをコンパイルして生成された多数の命令語要素から成る複数の一次命令語の列が、或る配置で圧縮されて、複数のプログラム語の列として記憶される。この場合、多数の命令語要素から成る逐次的に実行される複数の二次命令語が、複数のプログラム語の列から成る後続する１回の実行フェーズ中に全ての機能単位の制御に必要な十分の命令語の幅で生成される。
【０００２】
さらに、本発明は、複数の機能単位，これらの機能単位に割当てられた１つの命令語記憶器，及び二次命令語のビット幅に少なくとも等しい幅を有し、既に生成された命令語を記憶する１つの命令語バッファから構成された、この方法を実行するためのプロセッサ配置に関する。
【０００３】
冒頭で述べた種類のプロセッサ配置は、複数の機能単位を有する。これらの機能単位は、互いにパラレルに作動する。そして、これらの機能単位は、各サイクルに対して１つの命令語によって制御される。それぞれの命令語は、１つのプログラム語から得られる。このプログラム語は、１つのプログラム記憶器から読取られる。
【０００４】
当該命令語は、それ自体多数の命令語要素から構成される。この場合、制御の命令語要素は１つずつ、各機能単位に対して使用される。
【０００５】
プロセッサ配置の性能を向上させるため、処理幅を拡大するための努力がなされている。このことは、機能単位の数の増大を余儀なくする。その結果、命令語のビット幅、及びひいてはプログラム語も一般に増大する。このことは、対応する記憶領域をプログラム記憶器内に用意することを伴う。この記憶領域は、半導体チップ上の著しく広い平面部分を占有する。
【０００６】
プログラム語の大きさがプログラム記憶器の大きさを決定するので、プログラム語の大きさを小さくして、必要な記憶領域を低減する努力がなされている。そのため、多数の圧縮方法が公知である。最も理解しやすい方法が、Ｗｅｉｓｓ  Ｈ．  Ｆｅｔｔｗｅｉｓ，  Ｇ．  による報告書“Ｄｙｎａｍｉｃ  Ｃｏｄｅｗｉｄｔｈ  Ｒｅｄｕｃｔｉｏｎ  ｆｏｒ  ＶＬＩＷ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ  ｉｎ  Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒｓ”（Ｓｉｇｎａｌ  ａｎ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ  ＩＷＳＩＰに関する第３回の国際研究集会の議事録，１９９６年第５１７〜５２０頁）中に記されている。この報告書では、一回生成された二次命令語（ＶＬＩＷ）が１つの命令語記憶器内に記録され、そして命令語要素だけが、交換されてその二次命令語を記憶すると同時にその次の二次命令語を生成することによって、複数の二次命令語が、順番に存在する複数の一次命令語から成るプログラム語から引続いて再び作成され得るように、これらの一次命令語から成るプログラム語は作成される。これらの命令語要素は、その記憶された二次命令語とその生成すべき二次命令語とで異なる。したがって、どの命令語要素が違うのか、そしてその命令語要素はどの内容によって区別がつくのかという情報だけがそのプログラム語内に入っていれば済む。その結果、プログラム語を非常に短く構成することが可能であり、ひいては記憶領域を節約することが可能である。
【０００７】
記憶された二次命令語と生成すべき二次命令語との間の違いがより大きい場合は、確かにプログラム語の幅を大きくする必要がある。これらのより大きな違いがよく発生する場合には、このことは，同時により大きな記憶領域の欠点をもたらすか、又は、これらの違いを多数のプログラム語にわたって分散させる必要がある。すなわち、多数のプログラム語から成る二次命令語を多数のサイクルにわたって生成する必要がある。その結果、より大きな時間の浪費という欠点がある。
【０００８】
したがって、本発明の課題は、プログラム語の幅を小さく保持しつつ、動作速度を用途固有的に高めることにある。
【０００９】
この課題は、１つのプログラム語ＰＷｎが、第１グループ１１の先行する複数の一次命令語５のうちの１つの一次命令語ＶＬＩＷ３を指し示す第１符号ｎ＝３を含み、この一次命令語ＶＬＩＷ３は、このプログラム語ＰＷｎに対応する一次命令語ＶＬＩＷｎと一致する度合いが最も高いものであり、かつ、このプログラム語ＰＷｎは、複数の命令語要素６を有し、これらの命令語要素６は、前記プログラム語ＰＷｎに対応する前記一次命令語ＶＬＩＷｎと前記第１符号ｎ＝３によって指し示される前記一次命令語ＶＬＩＷ３とで相違する部分であり、前記第１グループ１１の全ての一次命令語５に対応する第２グループ１２の二次命令語９がそれぞれ、１つの第２符号１３と共に記憶され、そして前記プログラム語ＰＷｎ内に含まれている第１符号ｎを用いることによって、前記一次命令語ＶＬＩＷｎに対応する１つの二次命令語ＶＬＩＷ３が、第２符号ｎ＝３によって第２グループ１２から見つけ出され、前記プログラム語ＰＷｎ内に含まれている複数の命令語要素６が、前記第２グループ１２の前記二次命令語ＶＬＩＷ３内で入れ替えられることによって、前記プログラム語ＰＷｎに対応する二次命令語ＶＬＩＷ３＋ＰＷｎ＝ＶＬＩＷｎが生成されることによって解決される。
【００１０】
複数のプログラム語が、後に実行フェーズ中で１つの二次命令語を生成するための可能な限り小さい情報しか含まないように、これらのプログラム語は、実行フェーズで既に構成され得る。すなわち、このことは、構成すべき一次命令語と一致する度合いが最も高いその前の一次命令語が得られることを実現する。二次命令語が実行フェーズ中に一次命令語のように同一の幅でかつ同一の順序で生成されなければならないので、この実行フェーズでは構成フェーズに対して事実上逆の順序で実行され、そして一次命令語に対応する既に生成された二次命令語がそれぞれ、新しい二次命令語を生成するために使用される。この一次命令語は、当該構成フェーズでその時の一次命令語と一致する度合いが最も高いものである。命令語が常にほぼ類似しているか又はほぼ一致しているので、１つの新しい二次命令語を生成するために必要な情報量が、可能なかぎり小さく維持することができる。したがって、プログラム記憶器の記憶領域が最小限にされ得る。
【００１１】
本発明の実施形では、第１グループ１１は、その時の一次命令語ＶＬＩＷｎに先行する複数の一次命令語５の１番目の数から構成される。第２グループ１２は、複数の二次命令語９の２番目の数から構成される。この第２番目の数は、この１番目の数に少なくとも等しい。この場合、各二次命令語９は、第２グループ１２の後続する二次命令語９を生成する前に付加され、そして、この２番目の数を超えた最初に付加された二次命令語９が、第２グループ１２から除かれる。その結果、グループは、常に直前の命令語から構成されている。これらの命令語が１つのグループ内で内容的に異なるときには、これらの命令語のうちの１つが著しく類似している。
【００１２】
本発明の方法の構成のもう１つの可能性は、第２グループ１２の新しく生成された二次命令語９が、その生成のために使用される二次命令語９の代わりに記憶されることによって、この新しく生成された二次命令語９が付加される点にある。
【００１３】
１つの機能と同一の機能を何回も実行するときでも、グループが内容的に同じ命令語で満たされることが、本発明のこの変形例によって排除される。
【００１４】
本発明の一構成では、プログラム語ＰＷｎは、その時の前記プログラム語ＰＷｎに対応する前記一次命令語ＶＬＩＷｎと一致する度合いが最も高い一次命令語ＶＬＩＷ３に対する前記一次命令語ＶＬＩＷｎの相違部分ＶＬＩＷ３−ＶＬＩＷｎ＝ＰＷｎとして生成されることが提唱されている。
【００１５】
当該構成は、特徴を特に簡単に表わしている。
【００１６】
プログラム語７は、幾つかの命令語要素６から構成され、これらの命令語要素６の数は、最も頻繁に発生する区別すべきこれらの命令語要素６の数に一致すること、及び、多数のプログラム語７が、複数の二次命令語９を合成するために使用され、この合成は、前記の生成のために使用する二次命令語９に対して１つのプログラム語７内に記憶された命令語要素６の数よりも多い数の命令語要素６を必要とすることによって実現され得る。したがって、プログラム記憶器の大きさは、通常使用される状態において十分である。この場合、二次命令語の生成中の遅れが、発生しない。変更すべき命令語要素の数が１つの命令語の幅を超える比較的希な場合にだけ、２つ又は多数のプログラム語が、２つ又は多数のサイクルで二次命令語を作成するために必要になる。
【００１７】
プログラム語の幅のさらなる低減は、最も頻繁に発生する命令語要素６の表示が可能である程度に、ビット幅が低減されることによって、１つのプログラム語内の命令語要素６が圧縮されること、及び、表示のために、より大きいビット幅を必要とする命令語要素（６）の発生時に、多数のプログラム語７が使用されることによって実行される。
【００１８】
プログラム語をこのように圧縮するためには、プログラム語７内の前記命令語要素６の幅が半分にされ、１つ又は２つのプログラム語７が、これらの命令語要素６を表示するために設けられていることが特に有益である。プログラム語の幅が例えば一般に８ビットである場合は、２５６通りの組合せが可能である。しかしながら、これらの組合せの大部分は、ほとんど必要ないか又は全く必要ない。すなわち、プログラム語は、表示のために最も頻繁に起きる１６通りの組合せに対して十分である４ビットの幅でよい。この組合せよりも大きい別の組合せが表示されなければならない場合には、２つ又は多数のプログラム語がこの目的のために使用される。このことは非常に希にしか起きないので、プログラム記憶器用の記憶領域で実現される節減の程度は、その希な組合せを生成するための可能な時間の浪費の程度よりも大きい。
【００１９】
説明した従来の技術に対する相違は、異なって記憶された命令語が新しい二次命令語を作成するために得られるという可能性にある。したがって、任意に記憶された命令語を新しい二次命令語を生成するために使用しなければならないのではなくて、生成すべき二次命令語と一致する度合いが最も高い記憶された命令語が使用され得る。その結果、変更の経費が比較的小さい。このことは、プログラム語の僅かなビット幅しか必要とせず、ひいては小さなプログラム記憶器しか必要としない。
【００２０】
以下に、本発明を図面に基づいて詳しく説明する。
【００２１】
１つのプロセッサ２内の複数の機能単位１を制御する図１中に示された方法では、多数の命令語要素６から成る複数の一次命令語５の列が、構成フェーズ中に１つのコンパイル４によって１つのプログラムコード３から生成される。複数の一次命令語５のこの列は、圧縮（ＶＬＩＷ３−ＶＬＩＷｎ＝ＰＷｎ）されて、複数のプログラム語７の列として１つのプログラム記憶器８内に記憶される。
【００２２】
これらのプログラム語７は、幾つかの命令語要素６から構成される。これらの命令語要素６の数は、構成内部で最も頻繁に発生する区別すべきこれらの命令語要素６の数に一致する。１つのプログラム語７内に記憶された命令語要素６の数よりも多い数の命令語要素６が、複数の二次命令語９を合成するために必要になる。そのために、多数のプログラム語７がこのときに使用される。
【００２３】
多数の命令語要素６から成る連続する複数の二次命令語９が、後続する実行フェーズで複数のプログラム語７の列から全ての機能単位１の制御に必要な完全な命令語幅で生成される。
【００２４】
１つのプログラム語ＰＷｎが、第１グループ１１の先行する複数の一次命令語５のうちの１つの一次命令語ＶＬＩＷ３を指し示す第１符号ｎ＝３を含み、この一次命令語ＶＬＩＷ３は、このプログラム語ＰＷｎに対応する一次命令語ＶＬＩＷｎと一致する度合いが最も高いものであり、かつ、このプログラム語ＰＷｎは、複数の命令語要素６を有し、これらの命令語要素６は、前記プログラム語ＰＷｎに対応する前記一次命令語ＶＬＩＷｎと前記第１符号ｎ＝３によって指し示される前記一次命令語ＶＬＩＷ３とで相違する部分である。プログラム語ＰＷｎは、その時の前記プログラム語ＰＷｎに対応する前記一次命令語ＶＬＩＷｎと一致する度合いが最も高い一次命令語ＶＬＩＷ３に対する前記一次命令語ＶＬＩＷｎの相違部分ＶＬＩＷ３−ＶＬＩＷｎ＝ＰＷｎとして生成される。
【００２５】
この実行フェーズでは、第１グループ１１の全ての一次命令語５に対応する第２グループ１２の二次命令語９がそれぞれ、１つの第２符号１３と共に記憶される。この第２符号１３は、この第２グループ１２を記憶するために使用される１つの記憶器１４の１つの行番号から生成される。
【００２６】
プログラム語ＰＷｎ内に含まれている第１符号ｎを用いることによって、一次命令語ＶＬＩＷｎに対応する１つの二次命令語ＶＬＩＷ３が、第２符号ｎ＝３によって第２グループ１２から見つけ出される。プログラム語ＰＷｎ内に含まれている複数の命令語要素６が、第２グループ１２の二次命令語ＶＬＩＷ３内で入れ替えられることによって、プログラム語ＰＷｎに対応する二次命令語ＶＬＩＷ３＋ＰＷｎ＝ＶＬＩＷｎが生成される。
【００２７】
第１グループ１１は、その時の一次命令語ＶＬＩＷｎに先行する複数の一次命令語（５）の１番目の数から構成される。第２グループ１２は、複数の二次命令語９の２番目の数から構成される。この第２番目の数は、この１番目の数に少なくとも等しい。この場合、各二次命令語９は、第２グループ１２の後続する二次命令語９を生成する前に付加される。そして、この２番目の数を超えた最初に付加された二次命令語９が、第２グループ１２から除かれる。
【図面の簡単な説明】
【図１】本発明の方法の流れ図である。
【図２】一次命令語及び二次命令語を本発明にしたがって生成する原理を示す。
【符号の説明】
１    機能単位
２    プロセッサ
３    プログラムコード
４    コンパイル
５    一次命令語
６    命令語要素
７    プログラム語
８    プログラム記憶器
９    二次命令語
１０    第１符号
１１    第１グループ
１２    第２グループ
１３    第２符号
１４    記憶器
【図１】
0004486754.tif 000002
【図２】
0004486754.tif 000003