(57)【要約】【課題】半導体デバイスのレジスタの構成を動的に変更する。【解決手段】半導体デバイス１のレジスタ１００を、半導体デバイス１が使用するアドレス領域である通常エリア１０１と、通常エリア１０１のアドレスに対応する仮想アドレスを複数定義するアドレス領域である変換エリア１０２と、仮想アドレスのビット毎に対応する通常エリア１０１のアドレスとビット位置を定義したデータ列を複数含む変換テーブル１０３と、に分け、仮想アドレスのレジスタには、仮想アドレスに対応するデータ列のアドレスが設定され、外部から入力されたアドレス値とデータを含む命令コードに対し、アドレス値が変換エリアのアドレス領域に含まれる場合、アドレス値が示すレジスタに設定された変換テーブルのアドレスのデータ列に基づき、データをビット毎に対応する通常エリアのアドレスのビット位置に書き込む。【選択図】図１
2009020644.tif 000002
【特許請求の範囲】
【請求項１】
レジスタを含む半導体デバイスであって、
前記レジスタは、前記半導体デバイスが使用するアドレス領域である通常エリアと、前記通常エリアのアドレスに対応する仮想アドレスを定義するアドレス領域である変換エリアと、前記仮想アドレスのビット毎に対応する前記通常エリアのアドレスとビット位置を定義したデータ列を複数含む変換テーブルと、を含み、
前記仮想アドレスの前記レジスタには、前記仮想アドレスに対応する前記データ列のアドレスが設定され、
前記半導体デバイスは、
外部から入力されたアドレス値とデータを含む命令コードに対し、前記アドレス値が前記変換エリアのアドレス領域に含まれる場合、前記アドレス値が示す前記レジスタに設定された前記変換テーブルのアドレスの前記データ列に基づき、前記データをビット毎に対応する前記通常エリアのアドレスの前記ビット位置に書き込む、アドレスデコード部を含む、
ことを特徴とする半導体デバイス。
【請求項２】
請求項１に記載の半導体デバイスにおいて、前記変換テーブルは、外部から書き換え可能であることを特徴とする半導体デバイス。
【請求項３】
半導体デバイスのレジスタの動的変更方法であって、
前記レジスタは、前記半導体デバイスが使用するアドレス領域である通常エリアと、前記通常エリアのアドレスに対応する仮想アドレスを複数定義するアドレス領域である変換エリアと、前記仮想アドレスのビット毎に対応する前記通常エリアのアドレスとビット位置を定義したデータ列を複数含む変換テーブルと、を含み、
前記仮想アドレスの前記レジスタには、前記仮想アドレスに対応する前記データ列のアドレスが設定され、
外部から入力されたアドレス値とデータを含む命令コードに対し、前記アドレス値が前記変換エリアのアドレス領域に含まれる場合、前記アドレス値が示す前記レジスタに設定された前記変換テーブルのアドレスの前記データ列に基づき、前記データをビット毎に対応する前記通常エリアのアドレスの前記ビット位置に書き込む、
ことを特徴とする半導体デバイスのレジスタの動的変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスを制御するための複数のレジスタを含む半導体デバイス及び半導体デバイスのレジスタの動的変更方法に関する。
【背景技術】
【０００２】
デバイスを制御するための複数のレジスタを搭載した半導体デバイスでは、レジスタの特定ビットのみを書き換えるには、レジスタの全ビットのデータを読み込み、特定のビットの値を設定し、再びレジスタに全ビットのデータを書き込む必要がある。また、同一の設定値がアドレスが異なる複数のレジスタの所定のビットに設定されている場合、それぞれのレジスタに対して書き換えを行う必要がある。また、従来の半導体デバイスでは、デバイスを制御するためのレジスタの構成は設計時に決定され、その後レジスタの構成を変更することはできなかった。
【０００３】
【特許文献１】特開平５−６１８０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
例えば特許文献１には、ハードウェア構成を動的に変化させる方法が記載されているが、レジスタの構成を換える方法は記載されていない。また、上述した複数のレジスタの所定のビットを書き換えるための工数を減らすことができない。
【課題を解決するための手段】
【０００５】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００６】
［適用例１］
レジスタを含む半導体デバイスであって、前記レジスタは、前記半導体デバイスが使用するアドレス領域である通常エリアと、前記通常エリアのアドレスに対応する仮想アドレスを定義するアドレス領域である変換エリアと、前記仮想アドレスのビット毎に対応する前記通常エリアのアドレスとビット位置を定義したデータ列を複数含む変換テーブルと、を含み、前記仮想アドレスの前記レジスタには、前記仮想アドレスに対応する前記データ列のアドレスが設定され、前記半導体デバイスは、外部から入力されたアドレス値とデータを含む命令コードに対し、前記アドレス値が前記変換エリアのアドレス領域に含まれる場合、前記アドレス値が示す前記レジスタに設定された前記変換テーブルのアドレスの前記データ列に基づき、前記データをビット毎に対応する前記通常エリアのアドレスの前記ビット位置に書き込む、アドレスデコード部を含む、ことを特徴とする半導体デバイス。
【０００７】
この構成によれば、通常エリアの複数のアドレスのビットのデータに対し仮想アドレスと変換テーブルを設定することにより、外部からは仮想アドレスに対してデータを書き込むことにより、対応する通常エリアの複数のアドレスのビットのデータを一度に書き換えることができる。
【０００８】
［適用例２］
上記記載の半導体デバイスにおいて、前記変換テーブルは、外部から書き換え可能であることを特徴とする半導体デバイス。
【０００９】
この構成によれば、半導体デバイスのレジスタの構成を動的に変更することができる。
【００１０】
［適用例３］
半導体デバイスのレジスタの動的変更方法であって、前記レジスタは、前記半導体デバイスが使用するアドレス領域である通常エリアと、前記通常エリアのアドレスに対応する仮想アドレスを複数定義するアドレス領域である変換エリアと、前記仮想アドレスのビット毎に対応する前記通常エリアのアドレスとビット位置を定義したデータ列を複数含む変換テーブルと、を含み、前記仮想アドレスの前記レジスタには、前記仮想アドレスに対応する前記データ列のアドレスが設定され、外部から入力されたアドレス値とデータを含む命令コードに対し、前記アドレス値が前記変換エリアのアドレス領域に含まれる場合、前記アドレス値が示す前記レジスタに設定された前記変換テーブルのアドレスの前記データ列に基づき、前記データをビット毎に対応する前記通常エリアのアドレスの前記ビット位置に書き込む、ことを特徴とする半導体デバイスのレジスタの動的変更方法。
【００１１】
この構成によれば、通常エリアの複数のアドレスのビットのデータに対し仮想アドレスと変換テーブルを設定することにより、外部からは仮想アドレスに対してデータを書き込むことにより、対応する通常エリアの複数のアドレスのビットのデータを一度に書き換えることができる。
【発明を実施するための最良の形態】
【００１２】
以下、半導体デバイスの実施形態について図面に従って説明する。
【００１３】
（第１実施形態）
＜半導体デバイスの構成＞
まず、第１実施形態に係る半導体デバイスの構成について、図１を参照して説明する。図１は、第１実施形態に係る半導体デバイスの構成を示すブロック図である。
【００１４】
図１に示すように、半導体デバイス１は、複数のアドレスを有するレジスタ１００と、外部のＣＰＵ２００とのインターフェースであるＣＰＵインターフェース１１０と、アドレスデコード部１２０と、を少なくとも含んで構成されている。レジスタ１００は、半導体デバイス１が使用するアドレス領域である通常エリア１０１と、通常エリア１０１のアドレスに対応する仮想アドレスを定義するアドレス領域である変換エリア１０２と、仮想アドレスのビット毎に対応する通常エリア１０１のアドレスとビット位置を定義したデータ列を複数含む変換テーブル１０３と、を含む。例えば、図１のレジスタ１００では、アドレス０ｘ００〜０ｘ８ｆの範囲が通常エリア１０１で、アドレス０ｘ９０〜０ｘ９ｆの範囲が変換エリア１０２で、アドレス０ｘａ０以降の範囲に変換テーブル１０３が設定されている場合を示しているが、これに限定するものではない。
【００１５】
ＣＰＵ２００は、ＣＰＵインターフェース１１０を介してアドレスデコード部１２０にアドレス値ａｄとデータｄｔを含む命令コードＣＭＤ（ａｄ，ｄｔ）を入力する。
【００１６】
アドレスデコード部１２０は、入力された命令コードＣＭＤ（ａｄ，ｄｔ）に基づき、レジスタ１００を操作する。
【００１７】
＜変換エリアと変換テーブルの構成＞
次に、変換エリアと変換テーブルの構成について図２を参照して説明する。図２は、変換エリアと変換テーブルの構成を示すブロック図である。図２では、通常エリア１０１のレジスタと変換エリア１０２のレジスタが共に８ビットで構成されている場合について示しているが、これに限定するものではない。
【００１８】
図２に示すように、変換エリア１０２のレジスタには、アドレス０ｘ９０〜０ｘ９ｆの範囲の仮想アドレスに対応する変換テーブル１０３のアドレスが設定されている。例えば、アドレスａｄ（１）のレジスタには、変換テーブル１０３のアドレスＴＢＬ（１：０）が設定され、アドレスａｄ（２）のレジスタには、変換テーブル１０３のアドレスＴＢＬ（２：０）が設定されている。
【００１９】
変換テーブル１０３は、仮想アドレスのビット毎に通常エリア１０１のアドレスｒａｄとビット位置ｂｉｔのデータ列が設定されている。例えば、アドレスａｄ（１）のデータ列は、変換テーブル１０３のアドレスＴＢＬ（１：０）〜ＴＢＬ（１：７）で構成され、アドレスａｄ（２）のデータ列は、変換テーブル１０３のアドレスＴＢＬ（２：０）〜ＴＢＬ（２：７）で構成されている。変換テーブル１０３のアドレスＴＢＬ（１：０）には、通常エリア１０１のアドレスｒａｄ（１：０）とビット位置ｂｉｔ（１：０）が設定され、変換テーブル１０３のアドレスＴＢＬ（１：１）には、通常エリア１０１のアドレスｒａｄ（１：１）とビット位置ｂｉｔ（１：１）が設定され、変換テーブル１０３のアドレスＴＢＬ（１：２）以降についても同様に設定されている。
【００２０】
＜アドレスデコード部の動作＞
次に、アドレスデコード部の動作について図３を参照して説明する。図３は、アドレスデコード部の動作を示すフローチャートである。
【００２１】
先ず、ステップＳ１００では、入力された命令コードＣＭＤ（ａｄ，ｄｔ）を読み込む。
【００２２】
次に、ステップＳ１０２では、アドレスａｄが変換エリア１０２のアドレス範囲に含まれるか否かを判定し、含まれる場合、ステップＳ１０４に移行し、含まれない場合、ステップＳ１０６に移行する。
【００２３】
次に、ステップＳ１０４では、アドレスａｄのレジスタに書かれた変換テーブル１０３のアドレスのデータ列に従い、通常エリア１０１の該当するアドレスとビット位置のビット値をデータｄｔの該当するビット値に書き換え、ステップＳ１００に移行する。
【００２４】
一方、ステップＳ１０６では、アドレスａｄが変換テーブル１０３のアドレス範囲に含まれるか否かを判定し、含まれる場合、ステップＳ１０８に移行し、含まれない場合、ステップＳ１１０に移行する。
【００２５】
次に、ステップＳ１０８では、変換テーブル１０３のアドレスａｄのレジスタにデータｄｔを書き込み、ステップＳ１００に移行する。
【００２６】
一方、ステップＳ１１０では、通常エリア１０１のアドレスａｄのレジスタにデータｄｔを書き込み、ステップＳ１００に移行する。
【００２７】
＜アドレスデコード部の動作例＞
次に、アドレスデコード部の動作例について図４を参照して説明する。図４は、アドレスデコード部の動作例を示すブロック図である。
【００２８】
例えば、レジスタ１００の通常エリア１０１のアドレス０ｘ２０の０ビット目と、アドレス０ｘ３５の６ビット目と、アドレス０ｘ４２の４ビット目とを、各々、仮想アドレス０ｘ９３の０ビット目と、１ビット目と、７ビット目とに設定し、１つの命令コードＣＭＤ（０ｘ９３，０ｘ８３）で同時に設定したい場合について説明する。
【００２９】
この場合、図４に示すように、変換エリア１０２のアドレス（ａｄ（１）＝）０ｘ９３に変換テーブル１０３のアドレス（ＴＢＬ（１：０）＝）０ｘｂ０を設定し、変換テーブル１０３のアドレス（ＴＢＬ（１：０）＝）０ｘｂ０に仮想アドレス０ｘ９３の０ビット目に対応する通常エリア１０１のアドレス（ｒａｄ（１：０）＝）０ｘ２０とビット位置（ｂｉｔ（１：０）＝）０とを０ｘ２０：０で設定し、アドレス（ＴＢＬ（１：１）＝）０ｘｂ１に仮想アドレス０ｘ９３の１ビット目に対応する通常エリア１０１のアドレス（ｒａｄ（１：１）＝）０ｘ３５とビット位置（ｂｉｔ（１：１）＝）６とを０ｘ３５：６で設定し、アドレス（ＴＢＬ（１：７）＝）０ｘｂ７に仮想アドレス０ｘ９３の７ビット目に対応する通常エリア１０１のアドレス（ｒａｄ（１：７）＝）０ｘ４２とビット位置（ｂｉｔ（１：７）＝）４とを０ｘ４２：４で設定しておく。なお、書き換え対象ではない２〜６ビット目に対応するアドレスＴＢＬ（１：２）〜ＴＢＬ（１：６）には、例えば、変換テーブル１０３の使われていないアドレス０ｘｆｆ：０などを設定しておけばよい。
【００３０】
このように変換テーブル１０３を設定することにより、アドレスデコード部１２０は、命令コードＣＭＤ（０ｘ９３，０ｘ８３）を入力すると、通常エリア１０１のアドレス０ｘ２０の０ビット目にデータ０ｘ８３（２進数では１０００００１１）の０ビット目のビット値１を、アドレス０ｘ３５の６ビット目にデータ０ｘ８３の１ビット目のビット値１を、アドレス０ｘ４２の４ビット目にデータ０ｘ８３の１ビット目のビット値１を、各々同時に書き込むことができる。
【００３１】
以上に述べた本実施形態によれば、以下の効果が得られる。
【００３２】
本実施形態では、通常エリア１０１の複数のアドレスのビット位置に対し変換エリア１０２の仮想アドレスと変換テーブル１０３を設定することにより、外部からは仮想アドレスに対してデータを書き込むだけで、対応する通常エリア１０１の複数のアドレスのビット位置のビット値を一度に書き換えることができ、さらに、レジスタをソフトウェア構成に合わせて動的に変化させることができるので自由度が増す。
【００３３】
以上、半導体デバイスの実施形態を説明したが、こうした実施の形態に何ら限定されるものではなく、趣旨を逸脱しない範囲内において様々な形態で実施し得ることができる。以下、変形例を挙げて説明する。
【００３４】
（変形例１）半導体デバイスの変形例１について説明する。前記第１実施形態では、変換エリア１０２のレジスタに変換テーブル１０３のアドレスを設定する場合について説明したが、変換エリア１０２のレジスタに通常エリア１０１のアドレスを設定すれば、通常エリア１０１のアドレスを仮想アドレスに単純に置き換えることもできる。この場合、変換エリア１０２を通常エリア１０１に対応させているので、通常エリア１０１のすべてのアドレスを仮想アドレスで置き換えることも可能になる。このことは、物理的に作り込まれたレジスタ１００のすべてのアドレスをソフトウェア構成に合わせて入れ替えることも可能であることを示す。
【図面の簡単な説明】
【００３５】
【図１】第１実施形態に係る半導体デバイスの構成を示すブロック図。
【図２】変換エリアと変換テーブルの構成を示すブロック図。
【図３】アドレスデコード部の動作を示すフローチャート。
【図４】アドレスデコード部の動作例を示すブロック図。
【符号の説明】
【００３６】
１…半導体デバイス、１００…レジスタ、１０１…通常エリア、１０２…変換エリア、１０３…変換テーブル、１１０…ＣＰＵインターフェース、１２０…アドレスデコード部。
【図１】
2009020644.tif 000003
【図２】
2009020644.tif 000004
【図３】
2009020644.tif 000005
【図４】
2009020644.tif 000006