(57)【要約】【課題】マイクロプログラム制御において、最大ステップ数の実行に要するクロック総数の制限を受けないように、コンディション入力のビット数が多くなっても最小ステップで分岐条件の内容を確認できるようにする。【解決手段】加算コード生成部３１a〜３１mは、分岐条件(a)〜(m)のコンディション入力のパラレルなビット列に対応させて加算コードを生成し、分岐条件セレクタ３２へ出力する。分岐条件セレクタ３２は、インストラクションデコーダ３０からの命令で分岐条件(a)を選択した場合には、加算コード生成部３１aの加算コードＢをジャンプアドレス生成部３３へ出力させ、現行アドレスに＋１を加えたものに前記加算コードを加えてジャンプアドレスを生成する。ジャンプアドレスはデータセレクタ３４で選択されてプログラムカウンタ１８からマルチプレクサ１５を介してμ-ＲＯＭ１１へ供給される。【選択図】図１
2006251940.tif 000002
【特許請求の範囲】
【請求項１】
制御メモリに格納されたマイクロ命令を１命令ずつ読み出して実行するマイクロプログラム制御装置において、
複数の分岐条件についてそれぞれ設けられており、分岐条件をパラレルなビット列として示すコンディション入力に対応させてそれぞれ異なるコードを生成するコード生成手段と、
各分岐条件に係る前記コード生成手段が生成するコードが入力されており、インストラクションデコーダがデコードした命令で選択されている分岐条件に対応した前記コード生成手段のコードを出力させる分岐条件セレクト手段と、
現行アドレスに対して＋１インクリメントしたアドレスに前記分岐条件セレクト手段が出力しているコードを加算して、前記制御メモリにおける前記分岐条件での実行プログラムのジャンプアドレスを生成させるジャンプアドレス生成手段と、
順次アドレス生成手段が生成するアドレスと前記ジャンプアドレス生成手段が生成するジャンプアドレスとが入力されており、前記インストラクションデコーダがデコードした命令が分岐条件を選択している場合には、前記ジャンプアドレス生成手段が生成しているアドレスを出力させるアドレス情報選択手段と
を備え、前記アドレス情報選択手段が選択したアドレスを前記制御メモリに供給してマイクロ命令を読み出すことを特徴とするマイクロプログラム制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロプログラム制御装置に係り、特に、処理中の任意ステップにおけるジャンプアドレス生成に関する。
【背景技術】
【０００２】
ＣＰＵの内部動作の制御は、命令コードを解釈して様々な制御信号を生成し、それらの制御信号でゲートやフリップフロップ等を制御することによって行われるが、マイクロプログラム制御は、動作の最小単位に対応するマイクロ命令を用意しておき、そのマイクロ命令を組み合わせたコード列であるマイクロプログラムを呼び出して実行させる制御方式であり、ＣＩＳＣ（Complex Instruction Set Computer）型のプロセッサで用いられている。
【０００３】
例えば、図２は従来のマイクロプログラム制御装置のブロック図であり、制御メモリであるμ-ＲＯＭ１１に格納したマイクロ命令を１つずつ読み出して所定のデータ処理を実行するための構成を有している。このマイクロプログラム制御装置では、μ-ＲＯＭ１１からの出力を１クロック毎にパイプラインレジスタ１２でラッチして現アドレスに対応する命令を展開し、それがロード命令であった場合には実行ユニット１３へ供給して実行ユニット１３で各データ処理を実行するが、それ以外の命令の場合には所定ビット単位でインストラクションデコーダ１４とマルチプレクサ１５へ供給する。そして、インストラクションデコーダ１４では命令をデコードし、そのデコード情報に基づいてコンディション入力の確認を行う場合には、データセレクタ１６を制御してＮ本のコンディション入力(0)〜(N-1)を順次選択し、コンディション入力に対応した指示条件により次のようなアドレス指定動作が実行される。
【０００４】
先ず、μ-ＲＯＭ１１に格納されているジャンプアドレスを選択する指示条件である場合には、マルチプレクサ１５によってパイプラインレジスタ１２にラッチされている前記ジャンプアドレスのビット列部分を選択し、そのアドレスをμ-ＲＯＭ１１へ供給する。また、順次アドレス指定方式の指示条件である場合には、現行アドレスに対してインクリメンタ１７で１を加え、マイクロプログラムカウンタ１８に１クロック毎に格納され、それをマルチプレクサ１５で選択することにより＋１加えた次アドレスをμ-ＲＯＭ１１へ供給する。
【０００５】
一方、デコード情報がサブルーチンコールの指示条件である場合には、マルチプレクサ１５によってパイプラインレジスタ１２にラッチされているサブルーチンの先頭アドレスを選択してμ-ＲＯＭ１１へ供給すると共に、インクリメンタ１７で現行アドレスに１を加えてマイクロプログラムカウンタ１８に格納した次の戻り値アドレスをスタックレジスタ１９に格納し、更に次のサブルーチンコールに備えてスタックポインタ２０を１だけ加えて次の戻り値アドレスの格納場所を指定する。また、デコード情報がサブルーチンコールからのリターンに係る指示条件である場合には、マルチプレクサ１５がスタックレジスタ１９に格納させてある戻り値アドレスを選択してμ-ＲＯＭ１１へ供給すると共に、スタックポインタ２０を１だけ減じて次に発生するサブルーチンコール又はリターン命令に備える。
【０００６】
尚、このようなマイクロプログラム制御装置の仕様を紹介したものとして下記非特許文献１があり、また下記特許文献１,２,３においては一連の命令中に命令の順序を変更する命令が含まれている場合の分岐制御等に関する提案がなされている。
【特許文献１】特開平３−２５２８１３号公報
【特許文献２】特開平５−２００５４号公報
【特許文献３】特開平８−３２８８４７号公報
【非特許文献１】「2910A Microprogram Controller (C2910A)／Product Specification」  ＣＡＳＴ,Inc  2004年4月12日
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、マイクロプログラム制御装置では、前記のようにコンディション入力条件に応じて処理内容を変更する必要があり、図２に示すようにＮビットで表現されるコンディション入力(0)〜(N-1)が存在する場合には、インストラクションデコーダ１４がマイクロプログラムに基づいてデータセレクタ１６を制御することによりコンディション入力(0)〜(N-1)のＮ本のビット線を１本ずつ順次選択し、それぞれの選択時に“０”か“１”かの判別に基づくジャンプ命令を発行して次のビット線を選択するか又は指定されたアドレスにジャンプするかを決定する。例えば、コンディション入力が３ビットで表現されている場合のプログラムをアッセンブラ言語で記述すると次のようになる。
ＪＵＭＰＣ  ＬＡＢＥＬ１，コンディション入力ビット(0)選択
ＪＵＭＰＣ  ＬＡＢＥＬ２，コンディション入力ビット(1)選択
ＪＵＭＰＣ  ＬＡＢＥＬ４，コンディション入力ビット(2)選択
コンディション入力＝０００の時の処理命令群
ＪＵＭＰ    ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ１：ＪＵＭＰＣ  ＬＡＢＥＬ３，コンディション入力ビット(1)選択
ＪＵＭＰＣ  ＬＡＢＥＬ５，コンディション入力ビット(2)選択
コンディション入力＝００１の時の処理命令群
ＪＵＭＰ    ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ２：ＪＵＭＰＣ  ＬＡＢＥＬ６，コンディション入力ビット(2)選択
コンディション入力＝０１０の時の処理命令群
ＪＵＭＰ    ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ３：ＪＵＭＰＣ  ＬＡＢＥＬ７，コンディション入力ビット(2)選択
コンディション入力＝０１１の時の処理命令群
ＪＵＭＰ    ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ４：コンディション入力＝１００の時の処理命令群
ＪＵＭＰ    ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ５：コンディション入力＝１０１の時の処理命令群
ＪＵＭＰ    ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ６：コンディション入力＝１１０の時の処理命令群
ＪＵＭＰ    ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ７：コンディション入力＝１１１の時の処理命令群
ＬＡＢＥＬ＿ＮＥＸＴ                条件処理後、次の処理命令群
従って、この場合にコンディション入力(0)〜(2)による分岐条件を判別してジャンプアドレスを生成するまでの所要クロック数は３クロックであり、一般的に、Ｎ個のコンディション入力(0)〜(N-1)がある場合にはその条件判別にＮ個のジャンプ命令を発行するために、少なくともＮクロックを要することになる。
【０００８】
近年、ＪＰＥＧ（Joint Photographic Expert Group）２０００等のエンコードアルゴリズムにおいては多数の情報を基にして入力条件に依存した非算術的結果を演算する必要があるが、それら演算では多数の判定条件があるために条件ジャンプ命令に要するステップ数が大きくなる。一方、マイクロプログラム制御の場合、最大ステップ数の実行に要するクロック総数には制限があり、それを超えると制御動作を維持できなくなって致命的な問題を生じる。そこで、本発明は、最大ステップの実行に要するクロック数を小さくし、判定条件が多い場合にも前記不具合が生じないマイクロプログラム制御装置を提供することを目的として創作された。
【課題を解決するための手段】
【０００９】
本発明は、制御メモリに格納されたマイクロ命令を１命令ずつ読み出して実行するマイクロプログラム制御装置において、複数の分岐条件についてそれぞれ設けられており、分岐条件をパラレルなビット列として示すコンディション入力に対応させてそれぞれ異なるコードを生成するコード生成手段と、各分岐条件に係る前記コード生成手段が生成するコードが入力されており、インストラクションデコーダがデコードした命令で選択されている分岐条件に対応した前記コード生成手段のコードを出力させる分岐条件セレクト手段と、現行アドレスに対して＋１インクリメントしたアドレスに前記分岐条件セレクト手段が出力しているコードを加算して、前記制御メモリにおける前記分岐条件での実行プログラムのジャンプアドレスを生成させるジャンプアドレス生成手段と、順次アドレス生成手段が生成するアドレスと前記ジャンプアドレス生成手段が生成するジャンプアドレスとが入力されており、前記インストラクションデコーダがデコードした命令が分岐条件を選択している場合には、前記ジャンプアドレス生成手段が生成しているアドレスを出力させるアドレス情報選択手段とを備え、前記アドレス情報選択手段が選択したアドレスを前記制御メモリに供給してマイクロ命令を読み出すことを特徴とするマイクロプログラム制御装置に係る。
【００１０】
本発明のマイクロプログラム制御装置では、図２に示したように分岐条件を示すコンディション入力の各ビットをインストラクションデコーダで１ビットずつ確認するのではなく、コード生成手段がコンディション入力をパラレルなビット列として確認して対応コードを生成するようにし、ジャンプアドレス生成手段が現行アドレスに対して＋１インクリメントしたアドレスに前記コードを加算してジャンプアドレスを生成する。従って、分岐条件を示すコンディション入力のビット数が多くなっても常に２クロックでジャンプアドレスを生成させることができ、最大ステップ数の実行に要するクロック総数を低減化できる。
【発明の効果】
【００１１】
本発明のマイクロプログラム制御装置は、複数のコンディション入力をパラレルな入力条件で判定してジャンプ先アドレスを生成させることにより、最大ステップの実行に必要なクロック数を小さくし、クロック総数の制限に抵触して制御不能になることを防止する。
【発明を実施するための最良の形態】
【００１２】
以下、本発明のマイクロプログラム制御装置の実施形態を図１に基づいて説明する。同図において、従来技術に係る図２のマイクロプログラム制御装置と共通している各機能部分については同一符号で示されており、分岐条件に基づいたジャンプアドレス生成に関する動作以外は従来技術の欄で説明したとおりである。そして、このマイクロプログラム制御装置の特徴は次のような点にある。
(1) コンディション入力(0)〜(N-1)がインストラクションデコーダ３０ではなく加算コード生成部３１aへ入力されており、加算コード生成部３１aはパラレルな入力ビット列から所定の加算コードを出力させる。尚、複数の分岐条件(a)〜(m)についてそれぞれのコンディション入力を対象とした加算コード生成部３１a〜３１mが設けられている。
(2) 各加算コード生成部３１a〜３１mが生成する加算コードは分岐条件セレクタ３２へ入力されており、分岐条件セレクタ３２がインストラクションデコーダ１４の命令に基づいて加算コードを選択的にジャンプアドレス生成部３３へ出力させる。
(3) ジャンプアドレス生成部３３は、マルチプレクサ１５の現行アドレスに＋１を加えたアドレスに対して、更に分岐条件セレクタ３２で選択されている加算コードを加えてジャンプアドレスを作成する。
(4) データセレクタ３４は、インストラクションデコーダ３０の命令に基づいてインクリメンタ１７又はジャンプアドレス生成部３３のいずれかのアドレスを選択的にマイクロプログラムカウンタ１８へ出力させる。
【００１３】
ここで、加算コード生成部３１aにはコンディション入力(0)〜(N-1)がパラレルに入力されており、加算コード生成部３１aではそのパラレルな入力ビット列からジャンプアドレスを得るための加算コードを生成する機能を備えている。例えば、コンディション入力(0)〜(N-1)の各種ビット列に対応させて、そのビット列が示す分岐条件に際して指定されるべき相対的なジャンプアドレス値を生成するための加算コードをテーブル化しておき、コンディション入力(0)〜(N-1)の入力ビット列に基づいて対応した加算コードを出力させる方式が採用できる。
【００１４】
このマイクロプログラム制御装置では、以上の特徴に基づいて、μ-ＲＯＭ１１のマイクロプログラムに基づいて分岐条件(a)が選択されると、インストラクションデコーダ３０からの命令に基づいて、分岐条件セレクタ３２は加算コード生成部３１aの出力を選択し、データセレクタ３４がジャンプアドレス生成部３３側の出力を選択する。その場合、現行アドレスをＡ、分岐条件(a)の入力状態について加算コード生成部３１aが生成している加算コードをＢとすると、前記のように、ジャンプアドレス生成部３３はアドレスデータとして（Ａ＋Ｂ＋１）を出力し、それがマイクロプログラムカウンタ１８を介してマルチプレクサ１５へ供給される。そして、マルチプレクサ１５はインストラクションデコーダ３０からの命令に基づいてそのアドレスデータ（Ａ＋Ｂ＋１）をμ-ＲＯＭ１１へ出力させ、μ-ＲＯＭ１１の前記ジャンプアドレス（Ａ＋Ｂ＋１）に対応するプログラムがパイプラインレジスタ１２へ読み出されて、その処理命令群が実行されることになる。即ち、ロード命令の場合にはその処理命令群が実行ユニット１３へ出力されて一連の制御がなされ、それ以外の命令の場合にはインストラクションデコーダ３０でデコードされて、このマイクロプログラム制御装置内で次の命令が発行されることになる。
【００１５】
従って、このマイクロプログラム制御装置について、従来技術の場合と同様に、コンディション入力が３ビットで表現されているときのプログラムをアッセンブラ言語で記述すると次のようになる。
ＪＭＰＴＢＬ        分岐条件入力(a)の選択
ＪＵＭＰ            ＬＡＢＥＬ０
ＪＵＭＰ            ＬＡＢＥＬ１
ＪＵＭＰ            ＬＡＢＥＬ２
ＪＵＭＰ            ＬＡＢＥＬ３
ＪＵＭＰ            ＬＡＢＥＬ４
ＪＵＭＰ            ＬＡＢＥＬ５
ＪＵＭＰ            ＬＡＢＥＬ６
ＪＵＭＰ            ＬＡＢＥＬ７
ＬＡＢＥＬ０：コンディション入力＝０００の時の処理命令群
ＪＵＭＰ      ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ１：コンディション入力＝００１の時の処理命令群
ＪＵＭＰ      ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ２：コンディション入力＝０１０の時の処理命令群
ＪＵＭＰ      ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ３：コンディション入力＝０１１の時の処理命令群
ＪＵＭＰ      ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ４：コンディション入力＝１００の時の処理命令群
ＪＵＭＰ      ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ５：コンディション入力＝１０１の時の処理命令群
ＪＵＭＰ      ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ６：コンディション入力＝１１０の時の処理命令群
ＪＵＭＰ      ＬＡＢＥＬ＿ＮＥＸＴ
ＬＡＢＥＬ０：コンディション入力＝１１１の時の処理命令群
ＬＡＢＥＬ＿ＮＥＸＴ：              条件処理後、次の処理命令群
【００１６】
この場合、加算コード生成部３１aからはコンディション入力(0)〜(2)のパラレルな８種類の入力ビット列にそれぞれ対応した加算コードを生成し、そのいずれかがジャンプアドレス生成部３３へ出力されて、ジャンプアドレスがデータセレクタ３４・マイクロプログラムカウンタ１８・マルチプレクサ１５を介してμ-ＲＯＭ１１へ供給され、その際の所要クロックは２クロックに過ぎない。また、一般的に、Ｎビットのコンディション入力(0)〜(N-1)であってもジャンプアドレスのμ-ＲＯＭ１１への供給に要するクロック数は２クロックに過ぎない。従って、コンディション入力(0)〜(N-1)が多数である場合の判別に要していたクロック数が常に２クロックで足りることになり、多数のステップで処理を実行するマイクロプログラム制御において、最大クロック総数の制限に抵触しないようにできる。
【００１７】
尚、この実施形態では、加算コード生成部３１aでコンディション入力(0)〜(N-1)に対応したジャンプアドレスを生成するための加算コードを生成させているが、μ-ＲＯＭ１１に記述されているアドレス情報をコンディション入力(0)〜(N-1)のビット列自体を加算コードとしてジャンプアドレスが生成できるように設定することが可能であれば、加算コード生成部３１aを設ける必要はなく、分岐条件セレクタ３２に対してコンディション入力(0)〜(N-1)を直接入力させることができる。また、この実施形態では、インストラクションデコーダ３０にはコンディション入力(0)〜(N-1)が入力されない構成になっているが、小さいビット数（２ビットや３ビット）で表現されるコンディション入力については、図２に示したようにデータセレクタ１６を介して入力するようにしてもよく、双方のコンディション入力方式を並存させておくことも可能である。
【産業上の利用可能性】
【００１８】
本発明はマイクロプログラム制御装置におけるジャンプアドレス生成技術に適用できる。
【図面の簡単な説明】
【００１９】
【図１】本発明のマイクロプログラム制御装置の構成を示すブロック図である。
【図２】従来技術に係るマイクロプログラム制御装置の構成を示すブロック図である。
【符号の説明】
【００２０】
１１…μ-ＲＯＭ、１２…パイプラインレジスタ、１３…実行ユニット、１４,３０…インストラクションデコーダ、１５…マルチプレクサ、１６…データセレクタ、１７…インクリメンタ、１８…マイクロプログラムカウンタ、１９…スタックレジスタ、２０…スタックポインタ、３１a…加算コード生成部、３２…分岐条件セレクタ、３３…ジャンプアドレス生成部、３４…データセレクタ。
【図１】
2006251940.tif 000003
【図２】
2006251940.tif 000004