(57)【要約】【課題】コンピュータの周辺デバイスに備えるレジスタに対して、より効率良くアドレス空間を利用して書き込み制御を行う。【解決手段】複数の書き込みモードとして、値が１である書き込みデータのみ書き込みを有効とするモードと、値が０である書き込みデータのみ書き込みを有効とするモードと、全ての書き込みデータの書き込みを有効とするモードとが設定されている。与えられるｎビット（ｎは３以上の整数）のデータのうち、２ビットはマスクデータとして設定され、（ｎ−２）ビットは書き込みデータとして設定されている。複数の書き込みモードのうち、２ビットのマスクデータによって選択される書き込みモードに応じて、（ｎ−２）ビットの書き込みデータのビットごとに、書き込みの有効または無効を選別する。選別された結果に基づいて、書き込みを有効とする書き込みデータに対応するレジスタのビットに対してのみ書き込み処理を実行する。【選択図】　　　　図３
2004046483.tif 000002
【特許請求の範囲】
【請求項１】
単一のアドレスで指定されるレジスタに対してデータを書き込むためのレジスタ書き込み制御方法であって、
あらかじめ、複数の書き込みモードとして、値が１である書き込みデータのみ書き込みを有効とするモードと、値が０である書き込みデータのみ書き込みを有効とするモードと、全ての書き込みデータの書き込みを有効とするモードとが設定されており、
与えられるｎビット（ｎは３以上の整数）のデータのうち、２ビットはマスクデータとして設定され、（ｎ−２）ビットは書き込みデータとして設定されており、
前記複数の書き込みモードのうち、前記２ビットのマスクデータによって選択される書き込みモードに応じて、前記（ｎ−２）ビットの書き込みデータのビットごとに、書き込みの有効または無効を選別し、
選別された結果に基づいて、書き込みを有効とする前記書き込みデータに対応する前記レジスタのビットに対してのみ書き込み処理を実行する、
レジスタ書き込み制御方法。
【請求項２】
単一のアドレスで指定されるレジスタに対してデータを書き込むためのレジスタ書き込み制御方法であって、
あらかじめ、複数の書き込みモードとして、値が１である書き込みデータのみ書き込みを有効とするモードと、値が０である書き込みデータのみ書き込みを有効とするモードとが設定されており、
与えられるｎビット（ｎは２以上の整数）のデータのうち、１ビットはマスクデータとして設定され、（ｎ−１）ビットは書き込みデータとして設定されており、
前記複数の書き込みモードのうち、前記１ビットのマスクデータによって選択される書き込みモードに応じて、前記（ｎ−１）ビットの書き込みデータのビットごとに、書き込みの有効または無効を選別し、
選別された結果に基づいて、書き込みを有効とする前記書き込みデータに対応する前記レジスタのビットに対してのみ書き込み処理を実行する、
レジスタ書き込み制御方法。
【請求項３】
単一のアドレスで指定されるレジスタに対してデータを書き込むためのレジスタ書き込み制御装置であって、
あらかじめ、複数の書き込みモードとして、値が１である書き込みデータのみ書き込みを有効とするモードと、値が０である書き込みデータのみ書き込みを有効とするモードと、全ての書き込みデータの書き込みを有効とするモードとが設定されており、
与えられるｎビット（ｎは３以上の整数）のデータのうち、２ビットはマスクデータとして設定され、（ｎ−２）ビットは書き込みデータとして設定されており、
前記複数の書き込みモードのうち、前記２ビットのマスクデータによって選択される書き込みモードに応じて、前記（ｎ−２）ビットの書き込みデータのビットごとに、書き込みの有効または無効を選別するデータ選別部と、
選別された結果に基づいて、書き込みを有効とする前記書き込みデータに対応する前記レジスタのビットに対してのみ書き込み処理を実行する書き込み処理部と、を備える、
レジスタ書き込み制御装置。
【請求項４】
単一のアドレスで指定されるレジスタに対してデータを書き込むためのレジスタ書き込み制御装置であって、
あらかじめ、複数の書き込みモードとして、値が１である書き込みデータのみ書き込みを有効とするモードと、値が０である書き込みデータのみ書き込みを有効とするモードとが設定されており、
与えられるｎビット（ｎは２以上の整数）のデータのうち、１ビットはマスクデータとして設定され、（ｎ−１）ビットは書き込みデータとして設定されており、
前記複数の書き込みモードのうち、前記１ビットのマスクデータによって選択される書き込みモードに応じて、前記（ｎ−１）ビットの書き込みデータのビットごとに、書き込みの有効または無効を選別するデータ選別部と、
選別された結果に基づいて、書き込みを有効とする前記書き込みデータに対応する前記レジスタのビットに対してのみ書き込み処理を実行する書き込み処理部と、を備える、
レジスタ書き込み制御装置。
【請求項５】
コンピュータにバスを介して接続可能であり、前記バスを介して供給されるアドレス信号とデータ信号と制御信号とに応じて制御可能な電子デバイスであって、
単一のアドレスで指定されるレジスタと、
前記レジスタに対してデータを書き込むためのレジスタ書き込み制御装置と、を備え、
あらかじめ、複数の書き込みモードとして、値が１である書き込みデータのみ書き込みを有効とするモードと、値が０である書き込みデータのみ書き込みを有効とするモードと、全ての書き込みデータの書き込みを有効とするモードとが設定されており、
与えられるｎビット（ｎは３以上の整数）のデータのうち、２ビットはマスクデータとして設定され、（ｎ−２）ビットは書き込みデータとして設定されており、
前記レジスタ書き込み制御装置は、
前記複数の書き込みモードのうち、前記２ビットのマスクデータによって選択される書き込みモードに応じて、前記（ｎ−２）ビットの書き込みデータのビットごとに、書き込みの有効または無効を選別するデータ選別部と、
選別された結果に基づいて、書き込みを有効とする前記書き込みデータに対応する前記レジスタのビットに対してのみ書き込み処理を実行する書き込み処理部と、を備える、
電子デバイス。
【請求項６】
コンピュータにバスを介して接続可能であり、前記バスを介して供給されるアドレス信号とデータ信号と制御信号とに応じて制御可能な電子デバイスであって、
単一のアドレスで指定されるレジスタと、
前記レジスタに対してデータを書き込むためのレジスタ書き込み制御装置と、を備え、
あらかじめ、複数の書き込みモードとして、値が１である書き込みデータのみ書き込みを有効とするモードと、値が０である書き込みデータのみ書き込みを有効とするモードとが設定されており、
与えられるｎビット（ｎは２以上の整数）のデータのうち、１ビットはマスクデータとして設定され、（ｎ−１）ビットは書き込みデータとして設定されており、
前記レジスタ書き込み制御装置は、
前記複数の書き込みモードのうち、前記１ビットのマスクデータによって選択される書き込みモードに応じて、前記（ｎ−１）ビットの書き込みデータのビットごとに、書き込みの有効または無効を選別するデータ選別部と、
選別された結果に基づいて、書き込みを有効とする前記書き込みデータに対応する前記レジスタのビットに対してのみ書き込み処理を実行する書き込み処理部と、を備える、
電子デバイス。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、単一のアドレスで指定されるｎビット（ｎは２以上の整数）のレジスタに対してデータを書き込むためのレジスタ書き込み制御方法および装置に関する。
【０００２】
【従来の技術】
種々の電子機器内において、コンピュータによって制御される周辺デバイス（電子デバイス）は、通常、コンピュータから供給されるアドレス信号とデータ信号と制御信号とを供給するためのバスを介してコンピュータと接続されている。この周辺デバイスは、コンピュータからの情報を記憶するレジスタを備えており、レジスタに記憶された情報に基づいて動作する。コンピュータから供給される情報を記憶するレジスタには、一般に、アドレス信号によって管理されるアドレス（番地）が割り当てられており、メモリと同様に管理されている。
【０００３】
【発明が解決しようとする課題】
アドレス信号によって指定することができるアドレスの総数（アドレス空間）は限られているため、限られたアドレス空間内で効率よく周辺デバイスを制御するには、単一のアドレスで指定されるレジスタに複数種類の制御機能を割り当てる手法がとられる。例えば、１６ビット幅のレジスタの１ビットごとに異なった制御機能が割り当てられるとする。このとき、単一のアドレスで指定されるレジスタの各ビットは、原則、同時に操作されるため、任意の１ビットのみを操作（変更や更新等）することができず、制御したい機能のみを操作することはできない。
【０００４】
なお、例えば、１つの制御機能に対応する１ビットのレジスタごとに、異なる単一アドレスを割り当てる手法によれば、任意の１ビットのみを操作することは可能であるが、この場合、複数のビット、すなわち、複数の制御機能を同時に操作することができない。また、それぞれの制御機能に対応するレジスタに割り当てられるアドレス空間が多くなり、コンピュータによって操作可能なアドレス空間が小さい場合や、周辺デバイスに対して大きなアドレス空間を割り当てることができない場合等には、この手法を適用することはできない。
【０００５】
上記課題を解決するために、コンピュータからバスを介して供給される複数ビット幅のデータに対して、レジスタのビット幅に対応する数の機能ビットと、１ビットの機能ビットごとに設けられ、機能ビットの数に等しい数のマスクビットとを割り当てる手法が広く用いられている。
【０００６】
しかしながら、この手法の場合、例えば、８ビットのバスの場合、機能ビットの数が４でマスクビットの数が４、１６ビットバスの場合、機能ビットの数が８でマスクビットの数が８、３２ビットバスの場合、機能ビットの数が１６でマスクビットの数が１６のように、同時に操作可能なビット数、すなわち、バスを介して供給されるデータのビット幅に対して、機能を割り当てることができるビット数を最大２分の１までしか設定することができないという問題がある。
【０００７】
このため、単一のアドレスでより多くのビットに対して同時操作を可能とするとともに、各ビットに対して個々別操作も可能とし、より効率良くアドレス空間を利用して書き込み制御を行うことが望まれている。
【０００８】
この発明は、従来技術における上述の課題を解決するためになされたものであり、コンピュータとバスを介して接続された周辺デバイスに備えるレジスタに対して、より効率良くアドレス空間を利用して書き込み制御を行うことが可能な技術を提供することを目的とする。
【０００９】
【課題を解決するための手段およびその作用・効果】
上述の課題の少なくとも一部を解決するため、本発明の第１の方法は、単一のアドレスで指定されるレジスタに対してデータを書き込むためのレジスタ書き込み制御方法であって、
あらかじめ、複数の書き込みモードとして、値が１である書き込みデータのみ書き込みを有効とするモードと、値が０である書き込みデータのみ書き込みを有効とするモードと、全ての書き込みデータの書き込みを有効とするモードとが設定されており、
与えられるｎビット（ｎは３以上以上の整数）のデータのうち、２ビットはマスクデータとして設定され、（ｎ−２）ビットは書き込みデータとして設定されており、
前記複数の書き込みモードのうち、前記２ビットのマスクデータによって選択される書き込みモードに応じて、前記（ｎ−２）ビットの書き込みデータのビットごとに、書き込みの有効または無効を選別し、
選別された結果に基づいて、書き込みを有効とする前記書き込みデータに対応する前記レジスタのビットに対してのみ書き込み処理を実行することを特徴とする。
【００１０】
上記第１の方法によれば、２ビットのマスクビットによって選択される書き込みモードに応じて、１ビットの書き込みデータごとに個別に書き込み処理を実行することができる。また、複数ビットの書き込みデータを同時に書き込み処理することも可能である。従って、従来においてはｎビットの書き込みデータに対してｎビットのマスクビットが必要であったが、本発明の第１の方法によれば、書き込みデータのビット数に関係なく２ビットのマスクビットによって各ビットの個別操作が可能となる。このため、単一のアドレスで同時に操作することが可能なビット数の割合を従来よりも増加させることが可能となり、レジスタに対して、より効率良くアドレス空間を利用して書き込み制御を行うことが可能である。
【００１１】
本発明の第２の方法は、単一のアドレスで指定されるレジスタに対してデータを書き込むためのレジスタ書き込み制御方法であって、
あらかじめ、複数の書き込みモードとして、値が１である書き込みデータのみ書き込みを有効とするモードと、値が０である書き込みデータのみ書き込みを有効とするモードとが設定されており、
与えられるｎビット（ｎは２以上の整数）のデータのうち、１ビットはマスクデータとして設定され、（ｎ−１）ビットは書き込みデータとして設定されており、
前記複数の書き込みモードのうち、前記１ビットのマスクデータによって選択される書き込みモードに応じて、前記（ｎ−１）ビットの書き込みデータのビットごとに、書き込みの有効または無効を選別し、
選別された結果に基づいて、書き込みを有効とする前記書き込みデータに対応する前記レジスタのビットに対してのみ書き込み処理を実行することを特徴とする。
【００１２】
上記第２の方法によっても、第１の方法と同様に、書き込みデータのビット数に関係なく１ビットのマスクビットによってビットの個別操作が可能となるので、レジスタに対して、より効率良くアドレス空間を利用して書き込み制御を行うことが可能である。
【００１３】
本発明の第１の装置は、単一のアドレスで指定されるレジスタに対してデータを書き込むためのレジスタ書き込み制御装置であって、
あらかじめ、複数の書き込みモードとして、値が１である書き込みデータのみ書き込みを有効とするモードと、値が０である書き込みデータのみ書き込みを有効とするモードと、全ての書き込みデータの書き込みを有効とするモードとが設定されており、
与えられるｎビット（ｎは３以上の整数）のデータのうち、２ビットはマスクデータとして設定され、（ｎ−２）ビットは書き込みデータとして設定されており、
前記複数の書き込みモードのうち、前記２ビットのマスクデータによって選択される書き込みモードに応じて、前記（ｎ−２）ビットの書き込みデータのビットごとに、書き込みの有効または無効を選別するデータ選別部と、
選別された結果に基づいて、書き込みを有効とする前記書き込みデータに対応する前記レジスタのビットに対してのみ書き込み処理を実行する書き込み処理部と、を備えることを特徴とする。
【００１４】
上記第１の装置では、上記第１の方法を実行することができるので、レジスタに対して、より効率良くアドレス空間を利用して書き込み制御を行うことが可能である。
【００１５】
本発明の第２の装置は、単一のアドレスで指定されるレジスタに対してデータを書き込むためのレジスタ書き込み制御装置であって、
あらかじめ、複数の書き込みモードとして、値が１である書き込みデータのみ書き込みを有効とするモードと、値が０である書き込みデータのみ書き込みを有効とするモードとが設定されており、
与えられるｎビット（ｎは２以上の整数）のデータのうち、１ビットはマスクデータとして設定され、（ｎ−１）ビットは書き込みデータとして設定されており、
前記複数の書き込みモードのうち、前記１ビットのマスクデータによって選択される書き込みモードに応じて、前記（ｎ−１）ビットの書き込みデータのビットごとに、書き込みの有効または無効を選別するデータ選別部と、
選別された結果に基づいて、書き込みを有効とする前記書き込みデータに対応する前記レジスタのビットに対してのみ書き込み処理を実行する書き込み処理部と、を備えることを特徴とする。
【００１６】
上記第２の装置では、上記第２の方法を実行することができるので、レジスタに対して、より効率良くアドレス空間を利用して書き込み制御を行うことが可能である。
【００１７】
本発明の第３の装置は、コンピュータにバスを介して接続可能であり、前記バスを介して供給されるアドレス信号とデータ信号と制御信号とに応じて制御可能な電子デバイスであって、
単一のアドレスで指定されるレジスタと、
前記レジスタに対してデータを書き込むためのレジスタ書き込み制御装置と、を備え、
あらかじめ、複数の書き込みモードとして、値が１である書き込みデータのみ書き込みを有効とするモードと、値が０である書き込みデータのみ書き込みを有効とするモードと、全ての書き込みデータの書き込みを有効とするモードとが設定されており、
与えられるｎビット（ｎは３以上の整数）のデータのうち、２ビットはマスクデータとして設定され、（ｎ−２）ビットは書き込みデータとして設定されており、
前記レジスタ書き込み制御装置は、
前記複数の書き込みモードのうち、前記２ビットのマスクデータによって選択される書き込みモードに応じて、前記（ｎ−２）ビットの書き込みデータのビットごとに、書き込みの有効または無効を選別するデータ選別部と、
選別された結果に基づいて、書き込みを有効とする前記書き込みデータに対応する前記レジスタのビットに対してのみ書き込み処理を実行する書き込み処理部と、を備えることを特徴とする。
【００１８】
上記第３の装置は、第１の装置であるレジスタ書き込み制御装置により、レジスタの書き込みが実行される。従って、第１の装置と同様に、上記第１の方法を実行することができるので、レジスタに対して、より効率良くアドレス空間を利用して書き込み制御を行うことが可能である。
【００１９】
本発明の第４の装置は、コンピュータにバスを介して接続可能であり、前記バスを介して供給されるアドレス信号とデータ信号と制御信号とに応じて制御可能な電子デバイスであって、
単一のアドレスで指定されるレジスタと、
前記レジスタに対してデータを書き込むためのレジスタ書き込み制御装置と、を備え、
あらかじめ、複数の書き込みモードとして、値が１である書き込みデータのみ書き込みを有効とするモードと、値が０である書き込みデータのみ書き込みを有効とするモードとが設定されており、
与えられるｎビット（ｎは２以上の整数）のデータのうち、１ビットはマスクデータとして設定され、（ｎ−１）ビットは書き込みデータとして設定されており、
前記レジスタ書き込み制御装置は、
前記複数の書き込みモードのうち、前記１ビットのマスクデータによって選択される書き込みモードに応じて、前記（ｎ−１）ビットの書き込みデータのビットごとに、書き込みの有効または無効を選別するデータ選別部と、
選別された結果に基づいて、書き込みを有効とする前記書き込みデータに対応する前記レジスタのビットに対してのみ書き込み処理を実行する書き込み処理部と、を備えることを特徴とする。
【００２０】
上記第４の装置は、第２の装置であるレジスタ書き込み制御装置により、レジスタの書き込みが実行される。従って、第２の装置と同様に、上記第２の方法を実行することができるので、レジスタに対して、より効率良くアドレス空間を利用して書き込み制御を行うことが可能である。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態について、実施例に基づき以下の手順で説明する。Ａ．第１実施例：
Ａ１．レジスタ書き込み制御装置の構成：
Ａ２．レジスタ書き込み制御動作：
Ｂ．第２実施例：
Ｃ．変形例：
【００２２】
Ａ．第１実施例：
Ａ１．レジスタ書き込み制御装置の構成：
図１は、第１実施例としての本発明のレジスタ書き込み制御装置を備える電子デバイスを示すブロック図である。図１の電子デバイスは、レジスタ２０と、このレジスタ２０への書き込みを制御する書き込み制御部１０（レジスタ書き込み制御装置）と、この書き込み制御部１０の動作に関連するブロック、すなわち、アドレスバッファ３０と、デコーダ４０と、データ入力バッファ５０と、コントロールバッファ６０のみを図示している。なお、レジスタの読み出し制御部等の他の構成要素は、本発明の説明上特に必要がないため省略している。
【００２３】
この電子デバイス１００は、アドレスバスと、データバスと、コントロールバスとを介して、図示しないコンピュータに接続されている。なお、この実施例においては、アドレスバスおよびデータバスのビット幅が８ビットである場合を例として示している。
【００２４】
アドレスバスを介して供給されるアドレス信号に含まれるアドレスデータは、アドレスバッファ３０に入力される。データバスを介して供給されるデータ信号に含まれる書き込みデータは、データ入力バッファ５０に入力される。データ入力バッファ５０に入力された書き込みデータは下位ビットから順にＤＢ０，ＤＢ１，ＤＢ２，ＤＢ３，ＤＢ４，ＤＢ５，ＤＢ６，ＤＢ７と符号をつけることとする。コントロールバスを介して供給されるコントロール信号は、コントロールバッファ６０に入力される。コントロール信号には、書き込み制御信号ＷＲや読み出し制御信号ＲＤ等の種々の制御のための制御信号が含まれており、種々のブロックにおける動作のタイミング信号となる。
【００２５】
デコーダ４０は、レジスタ２０を操作可能状態とするためのセレクト信号ＲＳＥＬをレジスタ２０に対して供給している。また、デコーダ４０は、書き込み制御部１０を動作可能状態とするイネーブル信号ＷＣＥを書き込み制御部１０に対して供給している。
【００２６】
アドレスバッファ３０に入力されたアドレスデータがレジスタ２０に対応するアドレス（番地）である場合に、イネーブル信号ＷＣＥはアクティブ状態となり、書き込み制御部１０は動作可能状態となる。また、セレクト信号ＲＳＥＬもアクティブ状態となり、レジスタ２０は書き込み制御部１０によって操作可能状態となる。書き込み制御部１０は、データ入力バッファ５０に入力された書き込みデータおよびコントロールバッファ６０に入力された書き込み制御信号ＷＲに基づいて後述する処理動作が実行され、レジスタ２０の操作（内容の変更あるいは内容の更新）がなされる。
【００２７】
図２は、書き込み制御部１０の構成例を示すブロック図である。この書き込み制御部１０は、本発明のデータ選別部に相当するモード判定部１２およびデータ選別部１４と、書き込み処理部１６とを備えている。
【００２８】
モード判定部１２には、上位２ビットのデータＤＢ７，ＤＢ６が入力されている。モード判定部１２は、後述するように、上位２ビットのデータＤＢ７，ＤＢ６に基づいて書き込み動作のモードを判定し、モード判定信号ＭＤＥをデータ選別部１４に供給する。
【００２９】
データ選別部１４には、下位６ビットのデータＤＢ５〜ＤＢ０と、モード判定データＭＤＥが供給されている。下位６ビットのデータＤＢ５〜ＤＢ０は、レジスタ２０の対応するビットレジスタＲＢ５〜ＲＢ０への書き込みデータである。データ選別部１４は、６ビットの書き込みデータＤＢ５〜ＤＢ０のそれぞれに対応する選別ブロックＳＢ５〜ＳＢ０を備えている。各選別ブロックＳＢ５〜ＳＢ０は、レジスタ２０のビットレジスタＲＢ５〜ＲＢ０（図１）に対応する書き込みデータＤＢ５〜ＤＢ０の書き込みの有効または無効を、モード判定信号ＭＤＥに応じて選別する。
【００３０】
書き込み処理部１６は、レジスタ２０のビットレジスタＲＢ５〜ＲＢ０に対してそれぞれ書き込み処理ブロックＷＢ５〜ＷＢ０を備えている。各書き込み処理ブロックＷＢ５〜ＷＢ０は、データ選別部１４の各選別ブロックＳＢ５〜ＳＢ０から与えられる選別結果ＤＳ５〜ＤＳ０および書き込み制御信号ＷＲに基づいて、それぞれ書き込み処理信号ＷＣ５〜ＷＣ０（以下、単に「ＷＣ」とする場合もある。）を出力する。ビットレジスタＲＢ５〜ＲＢ０（以下、単に「ＲＢ」とする場合もある。）は、それぞれ対応する書き込み処理信号ＷＣ５〜ＷＣ０に基づいてデータの書き込みが実行される。
【００３１】
なお、書き込み処理信号ＷＣは、ビットレジスタＲＢを構成する回路に応じた信号が生成される。例えば、１つのビットレジスタＲＢがＲＳフリップフロップで構成されている場合には、書き込み処理信号ＷＣには、セット信号とリセット信号とが含まれる。なお、このようにレジスタを構成する回路に応じた書き込み処理部１６およびデータ選別部１４の回路構成の対応は、当業者であれば容易であるので、ここではその説明を省略する。
【００３２】
Ａ２．レジスタ書き込み制御動作：
以下では、レジスタ２０への書き込み処理について、具体的な例示をあげて説明する。図３ないし図５は、レジスタ２０への書き込み処理動作を示す説明図である。
【００３３】
モード判定部１２では、図３ないし図５に示すように、２ビットのマスクビットＭＡ，ＭＢのデータに応じて、後述する４つのモードのうち１つのモードが選択される。なお、データバスを介して供給される８ビットのデータのうち上位２ビットが、書き込みモードを表すマスクビットＭＡ，ＭＢとして割リ当てられている。具体的には、上位１ビット目のデータＤＢ７はマスクビットＭＡのデータとして利用され、また、上位２ビット目のデータはマスクビットＭＢのデータとして利用されている。
【００３４】
マスクビットＭＡは、書き込みデータのうち、”１”である値について、書き込みの有効または無効を示すビットである。マスクビットＭＢは、”０”である値について、書き込みの有効または無効を示すビットである。マスクビットＭＡ，ＭＢの有効または無効の論理は、”１”が有効で”０”が無効、または、”１”が無効で”０”が有効のどちらを採用してもよい。また、マスクビットＭＡとマスクビットＭＢとで異なった論理を採用するようにしてもよい。ただし、マスクビットＭＡとマスクビットＭＢとで論理を統一したほうが回路やソフトウェアの設計等が容易である。なお、本例では、”０”が有効で”１”が無効の論理を採用している。
【００３５】
なお、２ビットのマスクビットＭＡ，ＭＢのデータに応じて以下の第１ないし第４のモードのうち１つのモードが選択される。モード１は、全てのデータの書き込みを有効とするモードであり、モード４は、全てのデータの書き込みを無効とするモードである。モード２は、値が”１”であるデータのビットのみの書き込みを有効とするモードであり、モード３は、値が”０”であるデータのビットのみの書き込みを有効とするモードである。
【００３６】
モード１はマスクビットＭＡ，ＭＢに対応する上位２ビットのデータＤＢ７，ＤＢ６が両方とも”０”の場合に選択され、モード４は、上位２ビットのデータＤＢ７，ＤＢ６が両方とも”１”の場合に選択される。モード２は上位１ビット目のデータＤＢ７が”０”でマスクビットＭＢ上位２ビット目のデータＤＢ６が”１”の場合に選択され、モード３は上位１ビット目のデータＤＢ７が”１”で上位２ビット目のデータが”０”の場合に選択される。
【００３７】
なお、モード４は、必ずしも必要ではなく、モード４が選択されたときは、モード１ないしモード３のいずれかが選択されるようにしてもよい。
【００３８】
（データ”１”の一部ビット書き込み）
まず、図３を用いて複数ビットのビットレジスタのうち、一部のビットレジスタにデータ”１”を書き込む場合を説明する。レジスタ２０の各ビットレジスタＲＢ５〜ＲＢ０には、”０１１１００”（左から右に順に、上位ビットから下位ビットのデータを示している。以下同様である。）が書き込まれているとする。そして、レジスタ２０の下位２ビットのビットレジスタＲＢ１，ＲＢ０のデータを”０”から”１”に変更することとする。
【００３９】
この場合、データバスを介してデータ入力バッファ５０（図１）に、８ビットのデータＤＢ７〜ＤＢ０として”０１００００１１”を入力する。
【００４０】
マスクビットＭＡに対応する上位１ビット目のデータＤＢ７が”０”でマスクビットＭＢに対応する上位２ビット目のデータＤＢ６が”１”であるので、モード判定部１２では、モード２、すなわち、値が”１”であるビットのデータのみ書き込みを有効とするモードが選択される。この判定結果は、モード判定信号ＭＤＥとしてデータ選別部１４に与えられる。
【００４１】
データ選別部１４の各選別ブロックＳＢ５〜ＳＢ０は、それぞれ対応するデータＤＢ５〜ＤＢ０の値に基づいてデータの書き込みの有効または無効を選別する。具体的には、上位３ビット目のデータＤＢ５〜上位６ビット目のデータＤＢ２は”０”であるので、対応する選別ブロックＳＢ５〜ＳＢ２は、「データ”０”の書き込み無効」と選別する。また、下位２ビットのデータＤＢ１，ＤＢ０は”１”であるので、対応する選別ブロックＳＢ１，ＳＢ０は、「データ”１”の書き込み有効」と選別する。
【００４２】
こうして得られた選別結果ＤＳ５〜ＤＳ０は、それぞれ対応する書き込み処理ブロックＷＢ５〜ＷＢ０に与えられる。各書き込み処理ブロックＷＢ５〜ＷＢ０は、得られた選別結果ＤＳ５〜ＤＳ０に応じて書き込み処理信号ＷＣ５〜ＷＣ０を生成する。具体的には、上位３ビット目の書き込み処理ブロックＷＢ５〜上位６ビット目の書き込み処理ブロックＷＢ２は、対応する選別ブロックＳＢ５〜ＳＢ２において「データ”０”の書き込み無効」と選別されているので、それぞれの書き込み処理信号ＷＣ５〜ＷＣ２として”０”を書き込むための信号を生成せず、書き込みができない状態を示す信号を生成する。また、下位２ビットの書き込み処理ブロックＷＢ１，ＷＢ０は、対応する選別ブロックＳＢ１，ＳＢ０において「データ”１”の書き込み有効」と選別されているので、それぞれの書き込み処理信号ＷＣ１，ＷＣ０としてデータ”１”を書き込むための信号を生成する。
【００４３】
この結果、下位２ビットのビットレジスタＲＢ１，ＲＢ０のデータのみが”０”から”１”に書き換えられる。すなわち、データバスを介して入力する８ビットのデータＤＢ７〜ＤＢ０のうち、データ”１”のマスクビットＭＡに対応するする上位１ビット目のデータＤＢ７を”０”（データ”１”の書き込み有効）とし、データ”０”のマスクビットＭＢに対応する上位２ビット目のデータＤＢ６を”１”（データ”０”の書き込み無効）とするとともに、６ビットのビットレジスタＲＢ５〜ＲＢ０に対応する下位６ビットのデータＤＢ５〜ＤＢ０のうち、データ”１”を書き込みたいビットのデータを”１”とし、他のビットのデータを”０”とすることにより、データ”１”を書き込みたいビットレジスタにのみデータ”１”を書き込みことができる。
【００４４】
なお、上記説明では、一部のビットレジスタに”１”を書き込む場合を示しているが、６ビット全てのデータＤＢ５〜ＤＢ０を”１”とすれば、全ビットのビットレジスタＲＢ５〜ＲＢ０にデータ”１”を書き込むことも可能である。
【００４５】
（データ”０”の一部ビット書き込み）
次に、図４を用いて複数ビットのビットレジスタのうち、一部のビットレジスタにデータ”０”を書き込む場合を説明する。レジスタ２０の各ビットレジスタＲＢ５〜ＲＢ０には、上述の（データ”１”書き込み）が実行された後の状態、すなわち、”０１１１１１”が書き込まれているとする。そして、レジスタ２０の上位２ビット目および上位４ビット目のビットレジスタＲＢ４，ＲＢ２のデータを”１”から”０”に変更することとする。
【００４６】
この場合、データバスを介してデータ入力バッファ５０には、８ビットのデータＤＢ７〜ＤＢ０として”１０１０１０１１”を入力する。
【００４７】
マスクビットＭＡに対応する上位１ビット目のデータＤＢ７が”１”でマスクビットＭＢに対応する上位２ビット目のデータＤＢ６が”０”であるので、モード判定部１２では、モード３、すなわち、値が”０”であるビットのデータのみ書き込みを有効とするモードが選択される。この判定結果は、モード判定信号ＭＤＥとしてデータ選別部１４に与えられる。
【００４８】
データ選別部１４の各選別ブロックＳＢ５〜ＳＢ０では、それぞれ対応するデータＤＢ５〜ＤＢ０の値に基づいてデータの書き込みの有効または無効を選別する。具体的には、上位３ビット目のデータＤＢ５、上位５ビット目のデータＤＢ３、上位７ビット目のデータＤＢ１、および上位８ビット目のデータＤＢ０は”１”であるので、対応する選別ブロックＳＢ５，ＳＢ３，ＳＢ１，ＳＢ０は、「データ”１”の書き込み無効」と選別する。また、上位４ビット目のデータＤＢ４および上位６ビット目のデータＤＢ２は”０”であるので、対応する選別ブロックＳＢ４，ＳＢ２は、「データ”０”の書き込み有効」と選別する。
【００４９】
こうして得られた選別結果ＤＳ５〜ＤＳ０は、それぞれ対応する書き込み処理ブロックＷＢ５〜ＷＢ０に与えられる。各書き込み処理ブロックＷＢ５〜ＷＢ０は、得られた選別結果ＤＳ５〜ＤＳ０に応じて書き込み処理信号ＷＣ５〜ＷＣ０を生成する。具体的には、上位３ビット目の書き込み処理ブロックＷＢ５、上位５ビット目の書き込み処理ブロックＷＢ３、上位７ビット目の書き込み処理ブロックＷＢ１、および上位８ビット目の書き込み処理ブロックＷＢ０は、対応する選別ブロックＳＢ５，ＳＢ３，ＳＢ１，ＳＢ０において「データ”１”の書き込み無効」と選別されているので、それぞれの書き込み処理信号ＷＣ５，ＷＣ３，ＷＣ１，ＷＣ０として”１”を書き込むための信号を生成せず、書き込みができない状態を示す信号を生成する。また、上位４ビット目の書き込み処理ブロックＷＢ４および上位６ビット目の書き込み処理ブロックＷＢ２は、対応する選別ブロックＳＢ４，ＳＢ２において「データ”０”の書き込み有効」と選別されているので、それぞれの書き込み処理信号ＷＣ４，ＷＣ２としてデータ”０”を書き込むための信号を生成する。
【００５０】
この結果、上位４ビット目のビットレジスタＲＢ４および上位６ビット目のビットレジスタＲＢ２のデータのみが”１”から”０”に書き換えられる。すなわち、データバスを介して入力する８ビットのデータＤＢ７〜ＤＢ０のうち、データ”１”のマスクビットに対応する上位１ビット目のデータＤＢ７を”１”（データ”１”の書き込み無効）とし、データ”０”のマスクビットに対応する上位２ビット目のデータＤＢ６を”０”（データ”０”の書き込み有効）とするとともに、６ビットのビットレジスタＲＢ５〜ＲＢ０に対応する下位６ビットのデータＤＢ５〜ＤＢ０のうち、データ”０”を書き込みたいビットのデータを”０”とし、他のビットのデータを”１”とすることにより、データ”０”を書き込みたいビットレジスタにのみデータ”０”を書き込むことができる。
【００５１】
なお、上記説明では、一部のビットレジスタに”０”を書き込む場合を示しているが、６ビット全てのデータＤＢ５〜ＤＢ０を”０”とすれば、全ビットのビットレジスタＲＢ５〜ＲＢ０にデータ”０”を書き込むことも可能である。
【００５２】
（データ”１”および”０”の一部ビット書き込み）
複数ビットのビットレジスタのうち、一部のビットレジスタに”１”を書き込み、他の一部のビットレジスタに”０”を書き込む場合には、上記の（データ”１”の一部ビット書き込み）および（データ”０”の一部ビット書き込み）を連続して行うことにより可能となる。なお、（データ”１”の書き込み）と（データ”０”の書き込み）はどちらを先に実行してもかまわない。
【００５３】
（データ”０”および”１”の全ビット書き込み）
次に、図５を用いてデータ”０”および”１”である全データ、すなわち、すべてのビットにデータを書き込む場合について説明する。レジスタ２０の各ビットレジスタＲＢ５〜ＲＢ０には、”０１１１００”が書き込まれているとする。そして、レジスタ２０の下位１ビット目のビットレジスタＲＢ０、３ビット目のビットレジスタＲＢ２、および６ビット目のビットレジスタＲＢ５にデータ”１”を書き込み、他のビットレジスタＲＢ１，ＲＢ３，ＲＢ４にデータ”０”を書き込むこととする。
【００５４】
この場合、データバスを介してデータ入力バッファ５０には、８ビットのデータＤＢ７〜ＤＢ０として”００１００１０１”を入力する。
【００５５】
マスクビットＭＡに対応する上位１ビット目のデータＤＢ７が”０”でマスクビットＭＢに対応する上位２ビット目のデータＤＢ６も”０”であるので、モード判定部１２では、モード１、すなわち、全てのデータの書き込みを有効とするモードが選択される。この判定結果は、モード判定信号ＭＤＥとしてデータ選別部１４に与えられる。
【００５６】
データ選別部１４の各選別ブロックＳＢ５〜ＳＢ０では、それぞれ対応するデータＤＢ５〜ＤＢ０の値に基づいてデータの書き込みの有効を選別する。具体的には、下位１ビット目のデータＤＢ０、３ビット目のデータＤＢ２、および６ビット目のデータＤＢ５は、”１”であるので、対応する選別ブロックＳＢ０，ＳＢ２，ＳＢ５は、「データ”１”の書き込み有効」と選別する。また、下位２ビット目のデータＤＢ１、４ビット目のデータＤＢ３、および５ビット目のデータＤＢ４は、”０”であるので、対応する選別ブロックＳＢ１，ＳＢ３，ＳＢ４は、「データ”０”の書き込み有効」と選別する。
【００５７】
こうして得られた選別結果ＤＳ５〜ＤＳ０は、それぞれ対応する書き込み処理ブロックＷＢ５〜ＷＢ０に与えられる。各書き込み処理ブロックＷＢ５〜ＷＢ０は、得られた選別結果ＤＳ５〜ＤＳ０に応じて書き込み処理信号ＷＣ５〜ＷＣ０を生成する。具体的には、下位１ビット目の書き込み処理ブロックＷＢ０、３ビット目の書き込み処理ブロックＷＢ２、および６ビット目の書き込み処理ブロックＷＢ５は、対応する選別ブロックＳＢ０，ＳＢ２，ＳＢ５において「データ”１”の書き込み有効」と選別されているので、それぞれの書き込み処理信号ＷＣ０，ＷＣ２，ＷＣ５として”１”を書き込むための信号を生成する。また、下位２ビット目の書き込み処理ブロックＷＢ１、４ビット目の書き込み処理ブロックＷＢ３、および５ビットの書き込み処理ブロックＷＢ４は、対応する選別ブロックＳＢ１，ＳＢ３，ＳＢ４において「データ”０”の書き込み有効」と選別されているので、それぞれの書き込み処理信号ＷＣ１，ＷＣ３，ＷＣ４としてデータ”０”を書き込むための信号を生成する。
【００５８】
この結果、全ビットのビットレジスタＲＢ５〜ＲＢ０が、入力される下位６ビットのデータＤＢ５〜ＤＢ０の値に書き換えられる。
【００５９】
以上、説明したように、本実施例においては、複数ビットの書き込みデータを同時に書き込み処理することが可能であるとともに、２ビットのマスクビットによって選択される書き込みモードに応じて、１ビットの書き込みデータごとに個別に書き込み処理をすることが可能となる。従って、従来においてはｎビットの書き込みデータに対してｎビットのマスクビットが必要であったが、本実施例では、書き込みデータのビット数に関係なく２ビットのマスクビットによって各ビットの個別操作が可能となる。このため、単一のアドレスで同時に操作することが可能なビット数の割合を従来よりも増加させることが可能となる。また、従来例においては、奇数のビット幅を有するバスが利用される場合、１ビットのあまりが発生する。しかしながら、本例の場合、２ビットのマスクビットに割り当てられたビット以外の全てのビットを有効に利用することができる。従って、従来よりも、さらにアドレス空間の利用効率の向上を図ることが可能であり、より効率良くアドレス空間を利用して書き込み制御を行うことが可能である。
【００６０】
なお、従来例とは別の手法であって、複数ビットのビットレジスタに対して個別に書き込み制御可能とする手法として、指定されたアドレスに対応するレジスタ（複数ビットのビットレジスタ）に書き込まれている複数ビットのデータを一旦読み出し、読み出されたデータと書き込みデータとの論理積あるいは論理和を求めて、求められたデータを実際の書き込みデータとする手法が、一般に知られている。しかしながら、この別の従来手法の場合、書き込みを実行する前に、レジスタに書き込まれているデータを読み出す操作が必要となり、この読み出し操作の分だけ書き込み処理効率が悪くなる。一方、本実施例は、レジスタに実際に書き込まれているデータを読み出す必要がないので、上記別の従来手法に比べて処理効率が良いという利点がある。また、本実施例では、上記別の従来手法においてレジスタに書き込まれているデータと論理積または論理和される書き込みデータを、そのまま実際の書き込みデータとして流用することができるので、ソフトウェア設計者にとって、別の従来手法からの変更が容易であるという利点もある。
【００６１】
Ｂ．第２実施例：
図６は、第２実施例としての本発明のレジスタ書き込み制御装置を示すブロック図である。書き込み制御部１０Ａ（レジスタ書き込み制御装置）は、モード判定部１２Ａが上位１ビットのデータＤＢ７のみをマスクビットとし、これに基づいて書き込み動作のモードを判定する構成を有している。また、この書き込み制御部１０Ａは、上記構成に伴い、データ選別部１４に７つの選別ブロックＳＢ６〜ＳＢ０を備え、書き込み処理部１６に７つの書き込み処理ブロックＷＢ７〜ＷＢ６を備えている。なお、書き込み制御部１０Ａは、以上の２点を除いて、第１実施例の書き込み制御部１０と基本的に同じである。
【００６２】
モード判定部１２Ａにおける書き込み動作のモード判定では、第１実施例におけるモード２またはモード３、すなわち、値が”１”であるデータのビットのみの書き込みを有効とするモード、または、値が”０”であるデータのビットのみの書き込みを有効とするモードの選択が行われる。
【００６３】
本例においても、第１実施例と同様に、複数ビットの書き込みデータを同時に書き込み処理することが可能であるとともに、１ビットのマスクビットによって選択される書き込みモードに応じて、１ビットの書き込みデータごとに個別に書き込み処理をすることが可能となる。従って、従来においてはｎビットの書き込みデータに対してｎビットのマスクビットが必要であったが、本実施例では、書き込みデータのビット数に関係なく１ビットのマスクビットによって各ビットの個別操作が可能となる。このため、単一のアドレスで同時に操作することが可能なビット数の割合を従来よりも増加させることが可能となる。また、従来においては、奇数のビット幅を有するバスが利用される場合、１ビットのあまりが発生する。しかしながら、本例の場合、１ビットのマスクビットに割り当てられたビット以外の全てのビットを有効に利用することができる。従って、同じアドレス空間に対してより多くの制御機能を割り当てることができ、利用効率の向上を図ることができる。また、レジスタの書き込み開始前に、レジスタの読み出しを実行する必要がないので、レジスタの書き込みに要する処理効率の向上を図ることができる。
【００６４】
なお、本例の場合、値が”１”であるデータのビットのみの書き込みを有効とするモード、または、値が”０”であるデータのビットのみの書き込みを有効とするモードの２つの選択しかできないため、第１実施例のように、１度の書き込み操作で”０”と”１”とが混在する書き込みを全ビットで実行することができないという制限がある。
【００６５】
Ｃ．変形例：
なお、本発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００６６】
（１）上記実施例の電子デバイスでは、アドレスバスと、データバスと、コントロールバスとを介して、図示しないコンピュータに接続されているが、これに限定されるものではなく、他のビット数のバスであってもよい。また、アドレスバス、データバス、コントロールバス等の区別のないバスを介してコンピュータに接続されるようにしてもよい。また、パラレルのバスではなく、シリアルバスによりコンピュータと接続されるようにしてもよい。ただし、これらの場合には、それぞれに対応するインタフェース回路を備える必要がある。
【００６７】
（２）上記実施例では、レジスタを１つ備える場合を例に示しているが、複数のレジスタを備えるようにしてもよい。複数のレジスタを備える場合には、それぞれに対応するセレクト信号がデコーダ４０から対応するレジスタにそれぞれ供給され、アクティブ状態となったセレクト信号に対応するレジスタにのみが、書き込み制御部１０によって操作される。
【００６８】
（３）上記実施例では、上位２ビットあるいは上位１ビットをマスクビットとして割り当てる場合を例に説明しているが、これに限定されるものではない。データバスを介して供給される複数ビットのデータのうち任意の２ビットあるいは１ビットをマスクビットとして割り当てるようにしてもよい。
【００６９】
（４）上記本実施例では，モード判定部とデータ選別部とが別ブロックである構成を例に説明したが、モード判定部をデータ選別部の各選別ブロックにそれぞれ備えて、モード判定と選別を行う構成とするようにしてもよい。
【図面の簡単な説明】
【図１】第１実施例としての本発明のレジスタ書き込み制御装置を備える電子デバイスを示すブロック図である。
【図２】書き込み制御部１０の構成例を示すブロック図である。
【図３】レジスタ２０への書き込み処理動作を示す説明図である。
【図４】レジスタ２０への別の書き込み処理動作を示す説明図である。
【図５】レジスタ２０へのさらに別の書き込み処理動作を示す説明図である。
【図６】第２実施例としての本発明のレジスタ書き込み制御装置を示すブロック図である。
【符号の説明】
１００…電子デバイス
１０…書き込み制御部
１２…モード判定部
１２Ａ…モード判定部
１４…データ選別部
１４Ａ…データ選別部
ＳＢ０〜ＳＢ６…選別ブロック
１６…書き込み処理部
１６Ａ…書き込み処理部
ＷＢ０〜ＷＢ６…書き込み処理ブロック
２０…レジスタ
ＲＢ０〜ＲＢ６…ビットレジスタ
３０…アドレスバッファ
４０…デコーダ
５０…データ入力バッファ
６０…コントロールバッファ
【図１】
2004046483.tif 000003
【図２】
2004046483.tif 000004
【図３】
2004046483.tif 000005
【図４】
2004046483.tif 000006
【図５】
2004046483.tif 000007
【図６】
2004046483.tif 000008