(57)【要約】【課題】複数のレジスタへのアクセスを高速に行う。【解決手段】制御装置は、複数のレジスタのアドレスをそれぞれ保持し、前記複数のレジスタのアドレスとは異なる第１のアドレスの指定に応答して前記複数のレジスタのアドレスを出力するアドレス設定部と、前記アドレス設定部から前記複数のレジスタのアドレスが入力され、当該複数のレジスタを選択する選択信号を同じタイミングで出力する第１のデコーダと、前記第１のアドレスに対する書込みデータを前記選択信号により選択される複数のレジスタに並行して書き込み、また、前記選択信号により選択される複数のレジスタから並行して読み出したデータを前記第１のアドレスからの読出しデータとして出力するデータ入出力部とを有する。複数のレジスタへ同時にアクセスでき、レジスタアクセスが高速化される。【選択図】    図５
2012256299.tif 000002
【特許請求の範囲】
【請求項１】
複数のレジスタのアドレスをそれぞれ保持し、前記複数のレジスタのアドレスとは異なる第１のアドレスの指定に応答して前記複数のレジスタのアドレスを出力するアドレス設定部と、
前記アドレス設定部から前記複数のレジスタのアドレスが入力され、当該複数のレジスタを選択する選択信号を同じタイミングで出力する第１のデコーダと、
前記第１のアドレスに対する書込みデータを前記選択信号により選択される複数のレジスタに並行して書き込み、また、前記選択信号により選択される複数のレジスタから並行して読み出したデータを前記第１のアドレスからの読出しデータとして出力するデータ入出力部と、
を有する制御装置。
【請求項２】
請求項１において、
指定されたアドレスのレジスタを選択する選択信号を出力する第２のデコーダをさらに有し、
前記複数のレジスタのアドレスが前記アドレス設定部に保持された状態で当該複数のレジスタ以外のレジスタのアドレスが指定されたときに、前記アドレス設定部は前記複数のレジスタを選択する選択信号を出力せず、前記第２のデコーダは前記複数のレジスタ以外の指定されたアドレスのレジスタを選択する選択信号を出力する、
制御装置。
【請求項３】
請求項１または２において、
前記第１のアドレスは、架空のレジスタのアドレスである、
制御装置。
【請求項４】
複数のレジスタのアドレスをアドレス設定部にそれぞれ保持した状態で、前記複数のレジスタのアドレスとは異なる第１のアドレスが指定されたときに、第１のデコーダが、当該複数のレジスタを選択する選択信号を同じタイミングで出力し、
データ入出力部が、前記第１のアドレスに対する書込みデータを前記選択信号により選択される複数のレジスタに並行して書き込み、また、前記選択信号により選択される複数のレジスタから並行して読み出したデータを前記第１のアドレスからの読出しデータとして出力する、
制御方法。
【請求項５】
請求項４において、
前記複数のレジスタのアドレスが前記アドレス設定部に保持された状態で当該複数のレジスタ以外のレジスタのアドレスが指定されたときに、前記第１のデコーダが、前記複数のレジスタを選択する選択信号を出力せず、第２のデコーダが、前記複数のレジスタ以外の指定されたアドレスのレジスタを選択する選択信号を出力する、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レジスタへのアクセスを制御する制御装置、及び制御方法に関する。
【背景技術】
【０００２】
電子機器に搭載されるマイクロコンピュータシステムなどでは、ＣＰＵ（Central Processing Unit）による演算結果や、センサによる各種計測値をレジスタが、メモリやレジスタといった記憶手段に保持される。記憶手段へのアクセスは、アドレスを指定することで行われる（特許文献１、２）。たとえば、ＣＰＵなどからバス経由でアドレスが伝送され、そのアドレスのレジスタにアクセスする制御装置（以下、レジスタ制御装置）が知られている。かかるレジスタ制御装置は、指定されたアドレスに対しバス経由で伝送されるデータを書き込み、また、指定されたアドレスのレジスタからデータを読み出してデータバスに出力する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６１−７９５５号公報
【特許文献２】特開昭５９−９８３８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
システムの処理が高度化し、処理するデータ量が増大することで、複数のレジスタへのアクセスが必要となる場合がある。しかし、たとえば、１アクセスでデータの読み書きが可能なレジスタの数は、共通のベースアドレスを有するレジスタの数に制約される。すると、ベースアドレスが異なる複数のレジスタへのアクセスが頻繁に行われるような場合、アクセス回数が増大し、バスウエイトが生じるなど、処理が遅延するおそれがある。
【０００５】
そこで、本発明の目的は、複数のレジスタへのアクセスを高速に行うことができる、レジスタ制御装置等を提供することにある。
【課題を解決するための手段】
【０００６】
上記の目的を達成するための、一側面における制御装置は、複数のレジスタのアドレスをそれぞれ保持し、前記複数のレジスタのアドレスとは異なる第１のアドレスの指定に応答して前記複数のレジスタのアドレスを出力するアドレス設定部と、前記アドレス設定部から前記複数のレジスタのアドレスが入力され、当該複数のレジスタを選択する選択信号を同じタイミングで出力する第１のデコーダと、前記第１のアドレスに対する書込みデータを前記選択信号により選択される複数のレジスタに並行して書き込み、また、前記選択信号により選択される複数のレジスタから並行して読み出したデータを前記第１のアドレスからの読出しデータとして出力するデータ入出力部とを有する。
【発明の効果】
【０００７】
以下に説明する実施形態によれば、複数のレジスタへのアクセスを高速に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】レジスタへの書込み制御を行うレジスタ制御装置の例を示す図である。
【図２】データレジスタＲ０〜Ｒ１５の構成例を示す図である。
【図３】アクセスサイズ信号ＡＳと選択信号ＣＳ０〜ＣＳ３の対応を示す図である。
【図４】レジスタへの読出し制御を行うレジスタ制御装置の例を示す図である。
【図５】同時アクセスでデータ書込みを制御するレジスタ制御装置の構成例を示す図である。
【図６】同時アクセスアドレス設定部８の詳細な構成例を示す図である。
【図７】デコード部１０ａの詳細な構成例を示す図である。
【図８】データ入出力部１２の詳細な構成例を示す図である。
【図９】同時アクセスで読出しを制御するレジスタ制御装置の構成例を示す図である。
【図１０】データ入出力部１２´の詳細な構成例を示す図である。
【図１１】データアクセスプログラムの例を示す図である。
【図１２】同時アクセスによるデータ書込みの具体例を示す図である。
【図１３】同時アクセスによるデータ書込みの具体例を示す図である。
【図１４】同時アクセスによるデータ書込みの具体例を示す図である。
【図１５】同時アクセスによるデータ書込みの具体例を示す図である。
【図１６】逐次アクセスによるデータ書込みの具体例を示す図である。
【図１７】逐次アクセスによるデータ書込みの具体例を示す図である。
【図１８】逐次アクセスによるデータ書込みの具体例を示す図である。
【図１９】逐次アクセスによるデータ書込みの具体例を示す図である。
【図２０】同時アクセスによるデータ読出しの具体例を示す図である。
【図２１】同時アクセスによるデータ読出しの具体例を示す図である。
【図２２】逐次アクセスによるデータ読出しの具体例を示す図である。
【図２３】逐次アクセスによるデータ読出しの具体例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面にしたがって本発明の実施の形態について説明する。但し、適用される技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１０】
まず、本実施形態の説明の前に、図１〜図４を用いて、レジスタ制御装置の一例について説明する。
【００１１】
図１は、レジスタへの書込み制御を行うレジスタ制御装置の例を示す。図１には、図示されないＣＰＵに接続されるバス２と、これに接続されるアドレスデコーダ４、及びレジスタ（以下、データレジスタという）Ｒ０〜Ｒ１５が示される。ここでは、アドレスデコーダ４が、レジスタ制御装置の例である。このレジスタ制御装置は、たとえば、車両に搭載されたシステムに適用される。たとえば、センサにより継続的かつ反復して取得される各種の計測値（たとえば各種モータの回転数）がバスを介して伝送され、データレジスタＲ０〜Ｒ１５に書き込まれる。また、書き込まれたデータが読み出され、バスを介して伝送される。
【００１２】
バス２は、それぞれたとえば３２ビット幅の、アドレスバスとデータバスとを有する。データが書き込まれるデータレジスタＲ０〜Ｒ１５のアドレスを指定するたとえば３２ビットのアドレス信号Ａｄｄが、たとえば図示されないＣＰＵからデータバス経由でアドレスデコーダ４に伝送される。アドレスデコーダ４は、データレジスタＲ０〜Ｒ１５のうちアドレス信号Ａｄｄが示すアドレスのデータレジスタに、選択信号ＣＳ０〜ＣＳ１５を選択的に出力する。また、３２ビットの書込みデータＷＤが、ＣＰＵからデータバス経由でレジスタＲ０〜Ｒ１５に伝送される。さらに、ＣＰＵからデータレジスタＲ０〜Ｒ１５に、書込み／読出し動作の種別を指定するモード信号ＭＤがバス経由で伝送される。ここでは、モード信号ＭＤは書込み動作を示す。データレジスタＲ０〜Ｒ１５は、モード信号ＭＤと選択信号とに応答して、書込みデータＷＤの入力を行う。
【００１３】
データレジスタＲ０〜Ｒ１５の構成例が、図２（Ａ）に示される。データレジスタＲ０〜Ｒ１５は、それぞれ８ビット幅を有し、４個ずつ１つのベースアドレスが割り当てられる。そして、各データレジスタには、ベースアドレスを基準とするアドレスが割り当てられる。たとえば、データレジスタＲ０〜Ｒ３のアドレスは、ベースアドレス「0x00」にそれぞれ「０」、「１」、「２」、「３」を加えたアドレスである。また、データレジスタＲ４〜Ｒ７のアドレスは、ベースアドレス「0x04」にそれぞれ「０」、「１」、「２」、「３」を加えたアドレスである。さらに、データレジスタＲ８〜Ｒ１１のアドレスは、ベースアドレス「0x08」にそれぞれ「０」、「１」、「２」、「３」を加えたアドレスである。そして、データレジスタＲ１２〜Ｒ１５のアドレスは、ベースアドレス「0x0C」にそれぞれ「０」、「１」、「２」、「３」を加えたアドレスである。
【００１４】
図１に戻る。アドレスデコーダ４は、たとえば、データレジスタＲ０〜Ｒ３、Ｒ４〜Ｒ７、Ｒ８〜Ｒ１１、Ｒ１２〜Ｒ１５にそれぞれ対応するアドレス比較器４ａ、４ｂ、４ｃ、４ｄを有する。アドレス比較器４ａ〜４ｄには、アドレス信号Ａｄｄが入力される。アドレス比較器４ａは、データレジスタＲ０〜Ｒ３のアドレスＡ０〜Ａ３をアドレス信号Ａｄｄと比較し、アドレスＡ０〜Ａ３のいずれかとアドレス信号Ａｄｄが一致するときに、そのアドレスのデータレジスタに選択信号を出力する。同様に、アドレス比較器４ｂは、データレジスタＲ４〜Ｒ７のアドレスＡ４〜Ａ７のいずれかがアドレス信号Ａｄｄと一致するときに、そのアドレスのデータレジスタに選択信号を出力する。また、アドレス比較器４ｃは、データレジスタＲ８〜Ｒ１１のアドレスＡ８〜Ａ１１のいずれかがアドレス信号Ａｄｄと一致するときに、そのアドレスのデータレジスタに選択信号を出力する。そして、アドレス比較器４ｄは、データレジスタＲ１２〜Ｒ１５のアドレスＡ１２〜Ａ１５のいずれかがアドレス信号Ａｄｄと一致するときに、そのアドレスのデータレジスタに選択信号を出力する。
【００１５】
アドレス比較器４ａの詳細な構成が、図３（Ａ）に示される。アドレス比較器４ｂ〜４ｄも、ここに示される構成と同等の構成を有する。アドレス比較器４ａは、比較器４０、４１、４２、４３と、セレクタ４４とを有する。比較器４０は、データレジスタＲ０のアドレス「0x00」とアドレス信号Ａｄｄと比較し、両者が一致するとき、選択信号ＣＳ０をセレクタ４４に出力する。同様に、比較器４１は、データレジスタＲ１のアドレス「0x01」とアドレス信号Ａｄｄとが一致するとき、選択信号ＣＳ１をセレクタ４４に出力する。また、比較器４２は、データレジスタＲ２のアドレス「0x02」とアドレス信号Ａｄｄとが一致するとき、選択信号ＣＳ２をセレクタ４４に出力する。そして、比較器４３は、データレジスタＲ３のアドレス「0x03」とアドレス信号Ａｄｄとが一致するとき、選択信号ＣＳ３をセレクタ４４に出力する。
【００１６】
一方、セレクタ４４には、アクセスサイズ信号ＡＳが入力される。アクセスサイズ信号ＡＳは、図示されないＣＰＵから、バス２経由で伝送されるたとえば２ビットの信号である。アクセスサイズ信号ＡＳは、共通のベースアドレスが割り当てられたデータレジスタＲ０〜Ｒ３のうち、同時にアクセスするデータレジスタの個数、たとえば、１個、２個、または４個を示す。セレクタ４４は、アクセスサイズ信号ＡＳに基づきデータレジスタＲ０〜Ｒ３から１個、２個、または４個のデータレジスタを選択し、選択したデータレジスタへの選択信号を出力する。これにより、データレジスタＲ０〜Ｒ３に、選択信号ＣＳ０〜ＣＳ３が選択的に出力される。
【００１７】
アクセスサイズ信号ＡＳと選択信号ＣＳ０〜ＣＳ３の対応が、図３（Ｂ）に示される。ここでの説明は、アドレス比較器４ｂ〜４ｄにおける選択信号ＣＳ４〜ＣＳ１５についても適用される。アクセスサイズ信号ＡＳが「00」の場合、データレジスタＲ０〜Ｒ３のうちいずれか１つがアクセスされる。この場合において、アドレス信号ＡｄｄがデータレジスタＲ０のアドレス「0x00」と一致するときにはデータレジスタＲ０に対する値「１」の選択信号ＣＳ０が、アドレス信号ＡｄｄがデータレジスタＲ１のアドレス「0x01」と一致するときにはデータレジスタＲ１に対する値「１」の選択信号ＣＳ１が、アドレス信号ＡｄｄがデータレジスタＲ２のアドレス「0x02」と一致するときにはデータレジスタＲ２に対する値「１」の選択信号ＣＳ２が、そして、アドレス信号ＡｄｄがデータレジスタＲ３のアドレス「0x03」と一致するときにはデータレジスタＲ３に対する値「１」の選択信号ＣＳ３が、それぞれセレクタ４４から出力される。
【００１８】
次に、アクセスサイズ信号ＡＳが「01」の場合、データレジスタＲ０〜Ｒ３のうち２個が同時にアクセスされる。この場合において、アドレス信号ＡｄｄがデータレジスタＲ０のアドレス「0x00」と一致するときには、データレジスタＲ０とＲ１に対する値「１」の選択信号ＣＳ０とＣＳ１がセレクタ４４から出力される。このとき、データレジスタＲ０とＲ１が同時にアクセスされる。また、アドレス信号ＡｄｄがデータレジスタＲ２のアドレス「0x02」と一致するときには、データレジスタＲ２とＲ３に対する値「１」の選択信号ＣＳ２とＣＳ３がセレクタ４４から出力される。このとき、データレジスタＲ２とＲ３が同時にアクセスされる。そして、アクセスサイズ信号ＡＳが「10」であり、かつアドレス信号ＡｄｄがデータレジスタＲ０のアドレス「0x00」と一致するときに、データレジスタＲ０〜Ｒ３に対する値「１」の選択信号ＣＳ０〜ＣＳ３がセレクタ４４から出力され、データレジスタＲ０〜Ｒ３のすべてが同時にアクセスされる。なお、アドレス信号Ａｄｄがアドレス「0x00」、「0x01」、「0x02」、「0x03」のいずれとも一致しない場合には、アクセスサイズ信号ＡＳの値にかかわらず、選択信号ＣＳ０〜ＣＳ３は出力されない。
【００１９】
図１に戻る。データレジスタＲ０〜Ｒ１５のいずれかには、対応する選択信号ＣＳ０〜ＣＳ１５が上記のようにして入力される。そして、選択信号が入力されたデータレジスタに、書込みデータＷＤが書き込まれる。たとえば、各レジスタには、３２ビットの書込データＷＤのうちの８ビットが書き込まれる。
【００２０】
図４は、データレジスタからの読出し制御を行うレジスタ制御装置の例を示す。図４には、図１で示した構成に加え、データレジスタＲ０〜Ｒ３、Ｒ４〜Ｒ７、Ｒ８〜Ｒ１１、Ｒ１２〜Ｒ１５から読み出される読出しデータＲＤ０〜ＲＤ３のいずれかを選択して出力するセレクタ６が示される。ここでは、たとえば、アドレスデコーダ４とセレクタ６を含む構成が、レジスタ制御装置の例である。アドレスデコーダ４は、データを読み出すデータレジスタを指定するアドレス信号Ａｄｄが、図示されないＣＰＵからバス２のアドレスバスを介して入力される。アドレスデコーダ４は、アドレス信号Ａｄｄと一致するアドレスのデータレジスタに選択信号を出力する。アドレスデコーダ４におけるアドレス比較器４ａ〜４ｄの動作は、図１、３と同じである。選択信号ＣＳ０〜ＣＳ１５は、それぞれデータレジスタＲ０〜Ｒ１５に出力される。また、データレジスタＲ０〜Ｒ１５には、図示されないＣＰＵから、読出し動作を指定するモード信号ＭＤが伝送される。データレジスタＲ０〜Ｒ１５は、モード信号ＭＤと選択信号とに応答して、データを出力する。読み出されたデータは、共通のベースアドレスを有する４個ずつのレジスタＲ０〜Ｒ３、Ｒ４〜Ｒ７、Ｒ８〜Ｒ１１、Ｒ１２〜Ｒ１５からの３２ビットの読出しデータＲＤ０、ＲＤ１、ＲＤ２、ＲＤ３に含まれる。
【００２１】
読出しデータＲＤ０〜ＲＤ３は、セレクタ６に入力される。一方で、セレクタ６には、バス２から選択信号ＳＳが入力される。選択信号ＳＳは、読出しデータＲＤ０〜ＲＤ３のいずれかを示す２ビットの信号である。セレクタ６は、選択信号ＳＳが示す読出しデータを選択して出力する。選択された読出しデータは、バス２のデータバスに出力され、ＣＰＵに伝送される。  
【００２２】
図１〜４の例では、図２、３で示したように、共通のベースアドレスを有する４個のデータレジスタのうち、いずれか１個、２個（たとえば、データレジスタＲ０とＲ１、またはＲ２とＲ３）、または４個すべてのデータレジスタに対し、同時に選択信号が出力される。よって、共通のベースアドレスを有する１個、２個、または４個のデータレジスタが同時にアクセスされる。しかしながら、ベースアドレスが共通でありながら同時にアクセスされないデータレジスタ（たとえば、データレジスタＲ０とＲ２、またはＲ０とＲ３）の間、あるいはベースアドレスを異にするデータレジスタ間では、排他的なアクセスが行われる。かかるアクセスを以下では、便宜上、逐次アクセスという。たとえば、図２（Ａ）に示されるデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に対しデータを書き込んだり読出したりする場合、データレジスタごとに逐次アクセスが行われる。つまり、合計４回の逐次アクセスが行われる。これに対し以下に示す実施形態では、複数のデータレジスタが同じタイミングでアクセスされる。かかるアクセスを、同時アクセスという。たとえば、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３が同時アクセスされ、データの書き込み、または読出しが行われる。よって、データレジスタのアクセス速度が向上する。このことは、たとえば、反復して同じデータレジスタにデータが読み書きされるような場合に有利である。以下では、本実施形態における同時アクセスによるデータ書込制御、データ読出制御に分けて説明がなされる。
【００２３】
［同時アクセスでのデータ書込制御］  
図５は、本実施形態において、同時アクセスでデータ書込みを制御するレジスタ制御装置の構成例を示す。図５には、図１で示した構成に加え、同時アクセスアドレス設定部８、同時アクセスアドレスデコーダ１０、データ入出力部１２、及びＯＲ回路群１４ａ〜１４ｄが示される。ここでは、同時アクセスアドレス設定部８、同時アクセスアドレスデコーダ１０、及びデータ入出力部１２を含む構成が、レジスタ制御装置の例である。なお、ここでは、モード信号ＭＤは図示を省略し、データレジスタＲ０〜Ｒ１５において書込み動作が指定されたものとして説明がなされる。
【００２４】
このレジスタ制御装置は、逐次アクセスの場合、データレジスタＲ０〜Ｒ１５のうち２以上のデータレジスタ、たとえば、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３にアクセスが行われ、異なるタイミングでデータの書込みが行われる。たとえば、ＣＰＵから、順次、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスを指定するアドレス信号Ａｄｄが伝送され、図１〜３で説明したように、アドレスデコーダ４から選択信号ＣＳ１、ＣＳ３、ＣＳ６、ＣＳ１３が、順次データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３へ出力される。各選択信号は、ＯＲ回路群１４ａ〜１４ｄを介してデータレジスタに入力される。また、アドレス信号Ａｄｄと同期して書込データＷＤが順次データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に、後に詳述するようにデータ入出力部１２を介して伝送される。そして、各データレジスタに書込みデータが書き込まれる。なお、以下の説明において、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に書きこまれる書込みデータは、それぞれたとえば「0x11」「0x33」「0x66」「0xDD」である。
【００２５】
次に、同時アクセスの場合、同時アクセスアドレス設定部８は、データの書込みが行われるデータレジスタのアドレスをそれぞれ保持する。たとえば、同時アクセスアドレス設定部８は、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスをそれぞれ保持する。そして、同時アクセスアドレス設定部８は、同時アクセス時に、前記複数のデータレジスタのアドレスＲ０〜Ｒ１５とは異なる同時アクセス用アドレスの指定に応答して、保持したアドレスｉＡＲ０〜ｉＡＲ３、つまりデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスを出力する。
【００２６】
図６は、同時アクセスアドレス設定部８の詳細な構成例を示す。同時アクセスアドレス設定部８は、データの書込みが行われるデータレジスタのアドレスをそれぞれ保持するための、レジスタＡＲ０、ＡＲ１、ＡＲ２、ＡＲ３を有する。以下では、アドレスが書き込まれるレジスタを、データレジスタと区別するために、便宜上アドレスレジスタという。ここでは、４個のデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に対する同時アクセスを行うことに対応して、４個のアドレスレジスタＡＲ０〜ＡＲ３が示される。アドレスレジスタＡＲ０〜ＡＲ３のアドレス割当の例は、図２（Ｂ）に示される。たとえば、アドレスレジスタＡＲ０のアドレスは「0x10」、アドレスレジスタＡＲ１のアドレスは「0x14」、アドレスレジスタＡＲ０のアドレスは「0x18」、そして、アドレスレジスタＡＲ０のアドレスは「0x1C」である。
【００２７】
同時アクセスアドレス設定部８は、さらに、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスをアドレスレジスタＡＲ０〜ＡＲ３に書き込むための構成として、アドレス比較器８０ａ、８０ｂ、８０ｃ、８０ｄを有する。アドレス比較器８０ａ〜８０ｄは、アドレスレジスタＡＲ０〜ＡＲ３にそれぞれ対応する。アドレス比較器８０ａ〜８０ｄには、アドレスレジスタＡＲ０〜ＡＲ３のアドレスを指定するアドレス信号Ａｄｄが入力される。アドレス信号Ａｄｄは、アドレスバス経由でＣＰＵから伝送される。アドレス比較器８０ａは、アドレスレジスタＡＲ０のアドレス「0x10」とアドレス信号Ａｄｄを比較し、両者が一致するときに、選択信号ＣＳ＿ＡＲ０をアドレスレジスタＡＲ０に出力する。
【００２８】
このとき一方で、アドレスレジスタＡＲ０〜ＡＲ３には、データレジスタＲ１のアドレス「0x01」が書込みデータＷＤとしてＣＰＵから伝送される。よって、このとき選択信号ＣＳ＿ＡＲ０が入力されるアドレスレジスタＡＲ０に、データレジスタＲ１のアドレス「0x01」が書き込まれる。同様に、アドレス比較器８０ｂは、アドレスレジスタＡＲ１のアドレス「0x14」とアドレス信号Ａｄｄが一致するときに、選択信号ＣＳ＿ＡＲ１をアドレスレジスタＡＲ１に出力する。このとき伝送されるデータレジスタＲ３のアドレス「0x03」が、アドレスレジスタＡＲ１に書き込まれる。また、アドレス比較器８０ｃは、アドレスレジスタＡＲ２のアドレス「0x18」とアドレス信号Ａｄｄが一致するときに、選択信号ＣＳ＿ＡＲ２をアドレスレジスタＡＲ２に出力する。このとき伝送されるデータレジスタＲ６のアドレス「0x06」が、アドレスレジスタＡＲ２に書き込まれる。そして、アドレス比較器８０ｄは、アドレスレジスタＡＲ３のアドレス「0x1C」とアドレス信号Ａｄｄが一致するときに、選択信号ＣＳ＿ＡＲ３をアドレスレジスタＡＲ３に出力する。このとき伝送されるデータレジスタＲ１３のアドレス「0x0D」が、アドレスレジスタＡＲ３に書き込まれる。こうして、アドレスレジスタＡＲ０〜ＡＲ３には、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスがそれぞれ書き込まれる。
【００２９】
同時アクセスアドレス設定部８は、同時アクセス用のアドレスを指定するアドレス信号Ａｄｄが入力されたときにアドレスレジスタＡＲ０〜Ａ３に書き込まれたデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスを出力するための構成として、アドレス比較器８０と、セレクタ８２ａ〜８２ｄとを有する。同時アクセス用のアドレスの例は、図３（Ｃ）に示される。たとえば、同時アクセス用アドレスとして、ベースアドレス「0x20」が割り当てられる。ただし、このアドレスに対応する同時アクセス用データレジスタｖＲは、後述するように、ＣＰＵが実行するための命令に記述される架空のデータレジスタである。また、この架空のレジスタは、「0x20」をベースアドレスとする架空のデータレジスタｖＲ０、ｖＲ１、ｖＲ２、ｖＲ３を含む。ＣＰＵが実行する命令では、架空のデータレジスタｖＲ０〜ｖＲ３に対するアクセスを規定することで、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３への同時アクセスが実行される。架空のレジスタを想定することで、回路規模の増大を回避できる。それとともに、ＣＰＵが実行する命令のコーディングの書法を統一することができる。
【００３０】
アドレス比較器８０に、同時アクセス用のアドレスを指定するアドレス信号Ａｄｄが入力される。アドレス信号Ａｄｄは、ＣＰＵからアドレスバス経由で伝送される。アドレス比較器８０は、同時アクセス用のアドレス「0x20」とアドレス信号Ａｄｄを比較し、両者が一致するときに、同時アクセス検出信号ＳＡを出力する。同時アクセス検出信号ＳＡは、セレクタ８２ａ〜８２ｄに入力され、また、同時アクセスアドレスデコーダ１０へ出力される。一方で、セレクタ８２ａ〜８２ｄにはアドレスレジスタＡＲ０〜ＡＲ３から、それぞれに書き込まれたアドレスｉＡｒ０〜ｉＡＲ３がそれぞれ入力される。セレクタ８２ａ〜８２ｄは、さらに、アドレス信号Ａｄｄの第３〜２ビットに「0x00」、「0x01」、「0x02」、「0x03」がそれぞれ加えられた値が入力される。セレクタ８２ａ〜８２ｄは、同時アクセス検出信号ＳＡが「１」のときに、アドレスｉＡｒ０〜ｉＡＲ３、つまりデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」をそれぞれ選択して出力する。一方、セレクタ８２ａ〜８２ｄは、同時アクセス検出信号ＳＡが「０」のときに、アドレス信号Ａｄｄの第３〜２ビットに「0x00」、「0x01」、「0x02」、「0x03」がそれぞれ加算された値、つまりアドレス信号Ａｄｄが示すアドレスを選択して出力する。このようにすることで、同時アクセスが検出されたときにはデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に同時に選択信号が出力され、その一方で、同時アクセスが検出されないとき、つまり逐次アクセスのときには、アドレス信号Ａｄｄが示すアドレスのデータレジスタに選択信号が出力される。
【００３１】
図５に戻る。同時アクセスアドレス設定部８から出力される同時アクセス検出信号ＳＡと、アドレスレジスタＡＲ０〜ＡＲ３にそれぞれ書き込まれたアドレスｉＡＲ０〜ｉＡＲ３は、同時アクセスアドレスデコーダ１０に入力される。たとえばデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」が、同時アクセスアドレスデコーダ１０に入力される。そして、同時アクセスアドレスデコーダ１０は、対応する複数のデータレジスタを選択する選択信号を同時に出力する。同時アクセスアドレスデコーダ１０は、同時アクセス用の選択信号ＳＣＳ０〜ＳＣＳ１５をデータレジスタＲ０〜Ｒ１５に選択的に出力するための構成として、デコード部１０ａ〜１０ｄを有する。デコード部１０ａ〜１０ｄは、それぞれ、データレジスタＲ０〜Ｒ３、Ｒ４〜Ｒ７、Ｒ８〜Ｒ１１、Ｒ１２〜Ｒ１５への同時アクセス用の選択信号ＳＣＳ０〜ＳＣＳ３、ＳＣＳ４〜ＳＣＳ７、ＳＣＳ８〜ＳＣＳ１１、ＳＣＳ１２〜ＳＣＳ１５を出力する。そして、選択信号ＳＣＳ０〜ＳＣＳ３、ＳＣＳ４〜ＳＣＳ７、ＳＣＳ８〜ＳＣＳ１１、ＳＣＳ１２〜ＳＣＳ１５は、それぞれ、ＯＲ回路群１４ａ〜１４ｄを介してデータレジスタＲ０〜Ｒ３、Ｒ４〜Ｒ７、Ｒ８〜Ｒ１１、Ｒ１２〜Ｒ１５に入力される。たとえば、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に同時に書込みが行われるときには、選択信号ＳＣＳ１、ＳＣＳ３、ＳＣＳ６、ＳＣＳ１３がデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３へそれぞれ出力される。
【００３２】
図７は、同時アクセスアドレスデコード部１０内のデコード部１０ａの詳細な構成例を示す。デコード部１０ｂ〜１０ｄも、ここに示す構成と同様の構成を有する。デコード部１０ａは、１組４個で構成される４組のアドレス比較器１００＿０〜１００＿３、１００＿４〜１００＿７、１００＿８〜１００＿１１、１００＿１２〜１００＿１５と、ＯＲ回路１０２ａ〜１０２ｄと、ＡＮＤ回路１０４ａ〜１０４ｄとを有する。
【００３３】
アドレス比較器１００＿０〜１００＿１５に、同時アクセスアドレス設定部８でアドレスレジスタＡＲ０〜ＡＲ３に書き込まれたデータレジスタのアドレスｉＡＲ０〜ｉＡＲ３が入力される。また、アドレス比較器１００＿０〜１００＿３には、データレジスタＲ０のアドレス「0x00」が入力される。アドレス比較器１００＿０〜１００＿３は、それぞれ２つの入力を比較し、２つの入力が一致する場合には「１」、一致しない場合には「０」を示す比較結果をＯＲ回路１０２ａに出力する。そして、ＯＲ回路１０２ａは、アドレス比較器１００＿０〜１００＿３からの比較結果の論理和を、ＡＮＤ回路１０４ａに出力する。また、一方で、同時アクセスアドレス設定回路８から入力される同時アクセス検出信号ＳＡが、ＡＮＤ回路１０４ａに入力される。ＡＮＤ回路１０４ａは、ＯＲ回路１０２ａの出力と同時アクセス検出信号ＳＡの論理積を出力する。たとえば、アドレスレジスタＡＲ０〜ＡＲ３に書き込まれたアドレスｉＡＲ０〜ｉＡＲ３のいずれかと、データレジスタＲ０のアドレス「0x00」が一致するときには、ＯＲ回路１０２ａには「１」が入力されるので、ＯＲ回路１０２ａからは「１」がＡＮＤ回路１０４ａに出力される。また、このとき、同時アクセスが検出されて同時アクセス検出信号ＳＡが「１」になると、ＡＮＤ回路１０４ａからは「１」の選択信号ＳＣＳ０が、データレジスタＲ０に出力される。
【００３４】
同様に、アドレス比較器１００＿４〜１００＿７が、アドレスレジスタＡＲ０〜ＡＲ３に書き込まれたデータレジスタのアドレスｉＡＲ０〜ｉＡＲ３と、データレジスタＲ１のアドレス「0x01」を比較し、比較結果をＯＲ回路１０２ｂに出力する。そして、比較結果の論理和が、ＯＲ回路１０２ｂからＡＮＤ回路１０４ｂに出力される。ＡＮＤ回路１０４ｂは、入力されるＯＲ回路１０２ｂの出力と同時アクセス検出信号ＳＡの論理積を出力する。たとえば、アドレスレジスタＡＲ０〜ＡＲ３に書き込まれたアドレスｉＡＲ０〜ｉＡＲ３のいずれかとデータレジスタＲ１のアドレス「0x01」が一致してＯＲ回路１０２ｂの出力が「１」になり、かつ同時アクセス検出信号ＳＡが「１」のとき、ＡＮＤ回路１０４ｂからは「１」の選択信号ＳＣＳ１が、データレジスタＲ１に出力される。
【００３５】
またアドレス比較器１００＿８〜１００＿１１が、アドレスレジスタＡＲ０〜ＡＲ３に書き込まれたデータレジスタのアドレスｉＡＲ０〜ｉＡＲ３と、データレジスタＲ２のアドレス「0x02」を比較し、比較結果をＯＲ回路１０２ｃに出力する。そして、比較結果の論理和が、ＯＲ回路１０２ｃからＡＮＤ回路１０４ｃに出力される。ＡＮＤ回路１０４ｃは、入力されるＯＲ回路１０２ｃの出力と同時アクセス検出信号ＳＡの論理積を出力する。たとえば、アドレスレジスタＡＲ０〜ＡＲ３に書き込まれたアドレスｉＡＲ０〜ｉＡＲ３のいずれかとデータレジスタＲ２のアドレス「0x02」が一致してＯＲ回路１０２ｃの出力が「１」になり、かつ同時アクセス検出信号ＳＡが「１」のとき、ＡＮＤ回路１０４ｃからは「１」の選択信号ＳＣＳ２が、データレジスタＲ２に出力される。
【００３６】
そしてアドレス比較器１００＿１２〜１００＿１５が、アドレスレジスタＡＲ０〜ＡＲ３に書き込まれたデータレジスタのアドレスｉＡＲ０〜ｉＡＲ３と、データレジスタＲ３のアドレス「0x03」を比較し、比較結果をＯＲ回路１０２ｄに出力する。そして、比較結果の論理和が、ＯＲ回路１０２ｄからＡＮＤ回路１０４ｄに出力される。ＡＮＤ回路１０４ｄは、入力されるＯＲ回路１０２ｄの出力と同時アクセス検出信号ＳＡの論理積を出力する。たとえば、アドレスレジスタＡＲ０〜ＡＲ３に書き込まれたアドレスｉＡＲ０〜ｉＡＲ３のいずれかとデータレジスタＲ３のアドレス「0x03」が一致してＯＲ回路１０２ｄの出力が「１」になり、かつ同時アクセス検出信号ＳＡが「１」のとき、ＡＮＤ回路１０４ｄからは「１」の選択信号ＳＣＳ３が、データレジスタＲ３に出力される。
【００３７】
上記と同様にして、デコード部１０ｂからはデータレジスタＲ４〜Ｒ７に同時アクセス用の選択信号ＳＣＳ４〜ＳＣＳ７が、デコード部１０ｃからはデータレジスタＲ８〜Ｒ１１に同時アクセス用の選択信号ＳＣＳ８〜ＳＣＳ１１が、そしてデコード部１０ｄからはデータレジスタＲ１２〜Ｒ１５に同時アクセス用の選択信号ＳＣＳ１２〜ＳＣＳ１５がそれぞれ選択的に出力される。よって、たとえば、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に同時にデータを書き込むとき、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に選択信号ＳＣＳ１、ＳＣＳ３、ＳＣＳ６、ＳＣＳ１３が同時に出力される。
【００３８】
図５に戻る。上記のようにして同時アクセスアドレスデコーダ１０から選択的に出力される同時アクセス用の選択信号ＳＣＳ０〜ＳＣＳ３、ＳＣＳ４〜ＳＣＳ７、ＳＣＳ８〜ＳＣＳ１１、ＳＣＳ１２〜ＳＣＳ１５は、それぞれ、ＯＲ回路群１４ａ〜１４ｄを介してデータレジスタＲ０〜Ｒ３、Ｒ４〜Ｒ７、Ｒ８〜Ｒ１１、Ｒ１２〜Ｒ１５に入力される。
【００３９】
データ入出力部１２は、同時アクセス用のアドレスに対する書込みデータを前記複数のレジスタに並行して書き込む。同時アクセス用のアドレス「0x20」が図示されないＣＰＵからバス２を介して同時アクセスアドレス設定部８に伝送されるのと同期して、同時アクセス用のアドレスに対する３２ビットの書込みデータＷＤが、バス２を介して書込みデータ入出力部１２に伝送される。そして、データ入出力部１２は、３２ビットの書込みデータを拡張した１２８ビットの拡張書込みデータＥＷＤをデータレジスタＲ０〜Ｒ１５に出力する。
【００４０】
図８は、データ入出力部１２の詳細な構成例を示す。データ入出力部１２は、データ拡張・選択部１２ａ、１２ｂ、１２ｃ、１２ｄを有する。データ拡張・選択部１２ａ〜１２ｄは、アドレスレジスタＡＲ０〜ＡＲ３に書き込まれたアドレスのレジスタに書き込むためのデータを同時書込み用の書込データＷＤからそれぞれ選択する。そして、データ拡張・選択部１２ａ〜１２ｄは、選択したデータを含む書込みデータＥＷＤ＿ａ〜ＥＷＤ＿ｄをそれぞれ生成する。選択される書込みデータは、たとえば、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に書き込むためのそれぞれ８ビットのデータである。書込みデータＥＷＤ＿ａ〜ＥＷＤ＿ｄは、データレジスタＲ０〜Ｒ３、Ｒ４〜Ｒ７、Ｒ８〜Ｒ１１、Ｒ１２〜Ｒ１５に書き込まれるそれぞれ３２ビットのデータである。データ入出力部１２は、書込みデータＥＷＤ＿ａ〜ＥＷＤ＿ｄが第０〜３１ビット、第３２〜６３ビット、第６４〜９５ビット、第９６〜１２７ビットにそれぞれ対応する１２８ビットの拡張書込みデータＥＷＤを出力する。
【００４１】
図８では、データ拡張・選択部１２ａの詳細な構成が示される。なお、データ拡張・選択部１２ｂ〜１２ｄも、同等の構成を有する。データ拡張・選択部１２ａは、書込みデータＷＤが入力されるセレクタ１２０ａ、１２０ｂ、１２０ｃ、１２０ｄと、アドレスレジスタＡＲ０〜ＡＲ３に書き込まれたアドレスｉＡＲ０〜ｉＡＲ３に基づいてセレクタ１２０ａ〜１２０ｄに制御信号を出力する比較器１２２ａ、１２２ｂ、１２２ｃ、１２２ｄとを有する。セレクタ１２０ａ〜１２０ｄは、３２ビットの書込みデータＷＤから、８ビットずつ選択して出力する。ここで選択されるデータは、３２ビットの書込みデータＥＷＤ＿ａ〜ＥＷＤ＿ｄの一部として出力される。一方、比較器１２２ａ〜１２２ｄは、入力されるアドレスを、データレジスタＲ０〜Ｒ３のアドレス「0x00」、「0x01」、「0x02」、「0x03」と比較し、一致する場合には「１」を、一致しない場合には「０」をそれぞれセレクタ１２０ａ〜１２０ｄに出力する。こうして、セレクタ１２０ａ〜１２０ｄからは、３２ビットの書込みデータＷＤから、「１」の制御信号に対応した８ビットのデータが選択される。そして、選択された８ビットデータを含む、データレジスタＲ０〜Ｒ３に書き込むための３２ビットの書込みデータＥＷＤ＿ａが出力される。
【００４２】
同様にして、データ拡張・選択部１２ｂからは、選択された８ビットのデータを含む（または含まない）、データレジスタＲ４〜Ｒ７に書き込むための３２ビットの書込みデータＥＷＤ＿ｂが出力される。また、データ拡張・選択部１２ｃからは、選択された８ビットのデータを含む（または含まない）、データレジスタＲ８〜Ｒ１１に書き込むための３２ビットの書込みデータＥＷＤ＿ｃが出力される。そして、データ拡張・選択部１２ｄからは、選択された８ビットのデータを含む（または含まない）、データレジスタＲ１２〜Ｒ１５に書き込むためのそれぞれ８ビットのデータからなる３２ビットの書込みデータＥＷＤ＿ｄが出力される。
【００４３】
図５に戻る。上記のようにして生成される書込みデータＥＷＤ＿ａ〜ＥＷＤ＿ｄは、拡張書込みデータＥＷＤとして、データレジスタＲ０〜Ｒ３、Ｒ４〜Ｒ７、Ｒ８〜Ｒ１１、Ｒ１２〜Ｒ１５に伝送される。よって、同時アクセスアドレスデコーダ１０から出力される選択信号ＳＣＳ０〜ＳＣＳ３、ＳＣＳ４〜ＳＣＳ７、ＳＣＳ８〜ＳＣＳ１１、ＳＣＳ１２〜ＳＣＳ１５のいずれかが入力されるデータレジスタに、書込みデータＥＷＤ＿ａ〜ＥＷＤ＿ｄ内の対応するデータが書き込まれる。たとえば、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３は、選択信号ＳＣＳ１、ＳＣＳ３、ＳＣＳ６、ＳＣＳ１３が入力されるので、書込みデータＥＷＤ＿ａ〜ＥＷＤ＿ｄ内のデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に対応するデータがそれぞれ書き込まれる。
【００４４】
上記のように、本実施形態によれば、複数のデータレジスタに対し同時に書込みデータを書き込むことができる。よって、データレジスタのアクセス速度が向上する。
【００４５】
［データ読出制御］
図９は、本実施形態においてデータレジスタからの読み出しを制御するレジスタ制御装置の構成例を示す。図９において、アドレスデコーダ４、同時アクセスアドレス設置部８、同時アクセスアドレスデコーダ１０、ＯＲ回路群１４ａ〜１４ｄ、及びデータレジスタＲ０〜Ｒ１５は、図５で示したデータ書込制御の構成と共通する。図９では、データ入出力部１２の代わりにデータ入出力部１２´が設けられる。ただし、ここでは説明の便宜上データ入出力部１２、１２´を区別するが、これらは一体であってもよい。なお、ここでは、モード信号ＭＤは図示を省略し、データレジスタＲ０〜Ｒ１５において読出し動作が指定されたものとして説明がなされる。
【００４６】
まず、逐次アクセスの場合、図５における説明と同様に、たとえば、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３にアクセスが行われ、異なるタイミングでデータの読み出しが行われる。
【００４７】
次に、同時アクセスの場合、同時アクセスアドレス設定部８は、アドレスレジスタＡＲ０〜ＡＲ３にデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスを保持した状態で、同時アクセス用アドレスの指定に応答して複数のデータレジスタのアドレスを出力する。たとえば、データが書き込まれたデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスが出力される。このとき、同時アクセスアドレス設定部８の動作は、図６と同じである。
【００４８】
同時アクセスアドレスデコーダ１０は、同時アクセスアドレス設定部８から複数のデータレジスタのアドレスが入力され、当該複数のデータレジスタへ、同時アクセス用の選択信号を同時に出力する。同時アクセス用の選択信号ＳＣＳ０〜ＳＣＳ１５は、ＯＲ回路群１４ａ〜１４ｄを介してデータレジスタＲ０〜Ｒ１５に入力される。同時アクセスアドレスデコーダ１０の動作は、図７と同じである。
【００４９】
選択信号が入力されたデータレジスタからは、そこに書き込まれたデータが読み出される。データレジスタＲ０〜Ｒ１５から読み出されるデータは、読出しデータＲＤ０〜ＲＤ１５である。たとえば、同時アクセスアドレスデコーダ１０から、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に選択信号ＳＣＳ１、ＳＣＳ３、ＳＣＳ６、ＳＣＳ１３が入力されると、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３から読出しデータＲＤ１、ＲＤ３、ＲＤ６、ＲＤ１３がそれぞれ並行して読み出される。  
【００５０】
データ入出力部１２´は、前記複数のレジスタから並行して読み出されたデータを同時アクセス用のアドレスからの読出しデータＲＤとして出力する。たとえば、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３からそれぞれ並行して読み出される読出しデータＲＤ１、ＲＤ３、ＲＤ６、ＲＤ１３が、読出し用アドレスからの読出しデータＲＤとして、バス２のデータバスに出力される。読出しデータＲＤは、バス２を介して図示されないＣＰＵに伝送される。
【００５１】
図１０は、データ入出力部１２´の詳細な構成例を示す。データ入出力部１２´は、セレクタ１２０ａ´、１２０ｂ´、１２０ｃ´、１２０ｄ´を有する。セレクタ１２０ａ´〜１２０ｄ´には、データレジスタＲ０〜Ｒ１５から読みだされた読出しデータＲＤ０〜ＲＤ１５が入力される。また一方、セレクタ１２０ａ´〜１２０ｄ´には、アドレスレジスタＡＲ０〜ＡＲ３に書き込まれたアドレスｉＡＲ０〜ｉＡＲ３、たとえばデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスがそれぞれ入力される。セレクタ１２０ａ´〜１２０ｄ´は、読出しデータＲＤ０〜ＲＤ１５のうち、入力されたアドレスのデータレジスタから読み出された読出しデータを、それぞれ選択して出力する。読出しデータは、それぞれ８ビットである。セレクタ１２０ａ´〜１２０ｄ´から出力された読出しデータは、それぞれ第２４〜３１ビット、第１２〜２３ビット、第８〜１５ビット、第０〜７ビットのデータとして、合計３２ビットの読出しデータＲＤを形成する。こうして、たとえばデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３から並行して読み出された読出しデータＲＤ１、ＲＤ３、ＲＤ６、ＲＤ１３が、読出しデータＲＤとして出力される。
【００５２】
上記のように、本実施形態によれば、複数のデータレジスタから同時に読出しデータを読み出すことができる。よって、データレジスタのアクセス速度が向上する。
【００５３】
［プログラム例］
本実施形態では、上述のようにして、複数のデータレジスタのアドレスを同時アクセスアドレス設定部に保持させた後は、これらのデータレジスタに同時にアクセスすることが可能になる。このことを、ＣＰＵで実行されるプログラム例で示す。
【００５４】
図１１は、データアクセスプログラムの例を示す。図１１（Ａ）の第１〜第１２行は、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３にアクセスしてデータを書込むためのプログラムを示し、第１３〜第１５行目は、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に同時にデータを書き込むためのプログラムを示す。ここでは、即値ロード命令「ｌｄｉ」によりＣＰＵレジスタｒ０、ｒ１にデータとアドレスがそれぞれロードされ、ワードストア命令「ｓｔ」によりＣＰＵレジスタｒ０にロードされた値がｒ１にロードされたアドレスに書き込まれる。
【００５５】
たとえば、第１行でアドレスレジスタＡＲ０のアドレス「#0x10」がｒ０にロードされ、第２行でデータレジスタＲ１のアドレス「#0x01」がｒ１にロードされる。すると、第３行でアドレス「#0x10」のアドレスレジスタＡＲ０にデータレジスタＲ１のアドレス「#0x01」が書き込まれる。また、第４行でアドレスレジスタＡＲ１のアドレス「#0x14」がｒ０にロードされ、第５行でデータレジスタＲ３のアドレス「#0x03」がｒ１にロードされる。すると、第６行でアドレス「#0x14」のアドレスレジスタＡＲ１にデータレジスタＲ３のアドレス「#0x03」が書き込まれる。さらに、第７行でアドレスレジスタＡＲ２のアドレス「#0x18」がｒ０にロードされ、第８行でデータレジスタＲ６のアドレス「#0x06」がｒ１にロードされる。すると、第９行でアドレス「#0x18」のアドレスレジスタＡＲ２にデータレジスタＲ６のアドレス「#0x06」が書き込まれる。そして、第１０行でアドレスレジスタＡＲ３のアドレス「#0x1C」がｒ０にロードされ、第１１行でデータレジスタＲ１３のアドレス「#0x0D」がｒ１にロードされる。すると、第１２行でアドレス「#0x1C」のアドレスレジスタＡＲ３にデータレジスタＲ６のアドレス「#0x0D」が書き込まれる。
【００５６】
次いで、第１３行で同時アクセス用アドレス「#0x20」がｒ０にロードされ、第１４行でデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に書き込む書込みデータ「#0x113366DD」がｒ１にロードされると、第１５行でアドレス「#0x20」の同時アクセス用アドレスレジスタにｒ１の値が書き込むワードストア命令が実行される。すると、図５〜８で説明したように、書込みデータ「#0x113366DD」のうち「11」、「33」、「66」、「DD」がそれぞれデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に同時に書き込まれる。
【００５７】
本実施形態では、図１１（Ａ）の第１〜第１２行までを一回実行することで、同時アクセスアドレス設定部８にデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスが保持される。よって、以降、第１３〜１５行に対応する命令群を実行することで、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に逐次アクセスすることなく、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に対し同時アクセスしてデータの書込み、またはデータの読出しを行うことができる。たとえば、図１１（Ｂ）に示すように、第１６〜１８行の命令では、第１６行で同時アクセス用レジスタのアドレス「#0x20」がｒ０にロードされ、第１７行でデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に書き込む書込みデータ「#0x00FF55AA」がｒ１にロードされる。第１８行でアドレス「#0x20」の同時アクセス用アドレスレジスタにｒ１の値を書き込むワードストア命令が実行される。これにより、「00」、「FF」、「55」、「AA」がそれぞれデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に同時に書き込まれる。
【００５８】
このように、本実施形態によれば、複数のデータレジスタのアドレスを同時アクセスアドレス設定部に保持させた後は、これらのデータレジスタに対するアクセスが同時に可能になるので、バスウェイト時間が軽減され、レジスタアクセス速度が向上する。また、ＣＰＵに実行させるプログラムのコーディング量も減少させることができる。また、本実施形態によれば、たとえば、複数の計測値を同じレジスタに頻繁に読み書きしたり、レジスタ値により起動する複数のペリフェラル（たとえば、タイマや通信回路）を同時起動したりすることができる。
【実施例】
【００５９】
以下、本実施形態のレジスタ制御装置の具体的な動作を示す。まず、同時アクセスによるデータの書込みと、逐次アクセスによるデータの書込みを示す。次いで、同時アクセスによるデータの読出しと、逐次アクセスによるデータの読出しを示す。
【００６０】
［同時アクセスによるデータ書込み］
図１２〜図１５は、同時アクセスによるデータ書込みの具体例を示す。図１２〜図１５は、図５〜８で示した構成に具体的なデータの値を対応付けた図である。図１２に示すように、同時アクセスアドレス設定部８は、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスをそれぞれ保持した状態で同時アクセス用アドレス「0x20」を示すアドレス信号Ａｄｄが入力されると、これに応答して、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」を同時アクセスアドレスデコーダ１０に出力する。
【００６１】
具体的には、図１３に示すように、同時アクセスアドレス設定部８では、アドレス比較器８０が、同時アクセス用アドレス「0x20」が入力されることで、「１」の同時アクセス検知信号ＳＡをセレクタ８２ａ〜８２ｄに出力する。また、セレクタ８２ａ〜８２ｄには、アドレスレジスタＡＲ０〜ＡＲ３から、レジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」がそれぞれ入力される。よって、セレクタ８２ａ〜８２ｄは、「１」の同時アクセス検知信号ＳＡに応答して、レジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」をそれぞれ同時アクセスアドレスデコーダ１０に出力する。
【００６２】
図１２に戻ると、同時アクセスアドレスデコーダ１０は、同時アクセス用の選択信号ＳＣＳ０〜１５をＯＲ回路群１４ａ〜１４ｄを介してデータレジスタＲ０〜Ｒ１５に出力する。このとき、選択信号ＳＣＳ１、ＳＣＳ３、ＳＣＳ６、ＳＣＳ１３は「１」であり、他は「０」である。ここで、デコード部１０ａについて具体的に図１４に示す。図示するように、アドレス比較器１００＿０〜１５には、レジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」がそれぞれ入力される。すると、アドレス比較器１００＿４、１００＿１３から一致を示す比較結果「１」が、他のアドレス比較器からは不一致を示す比較結果「０」がＯＲ回路１０２ａ〜１０２ｄに出力される。一方、このとき、同時アクセス検知信号ＳＡは「１」である。よって、ＡＮＤ回路１０４ａ〜１０４ｄからは、「０」の選択信号ＳＣＳ０、「１」の選択信号ＳＣＳ１、「０」の選択信号ＳＣＳ２、「１」の選択信号ＳＣＳ３がそれぞれデータレジスタＲ０〜Ｒ３に出力される。
【００６３】
図１２に戻る。デコード部１０ａの上記の動作と同様に、デコード部１０ｂからは、「０」の選択信号ＳＣＳ４、「０」の選択信号ＳＣＳ５、「１」の選択信号ＳＣＳ６、「０」の選択信号ＳＣＳ７がそれぞれデータレジスタＲ４〜Ｒ７に出力される。また、デコード部１０ｃからは、「０」の選択信号ＳＣＳ８〜ＳＣＳ１１がそれぞれデータレジスタＲ８〜Ｒ１１に出力される。そして、デコード部１０ｄからは、「０」の選択信号ＳＣＳ１２、「１」の選択信号ＳＣＳ１３、「０」の選択信号ＳＣＳ１４、「０」の選択信号ＳＣＳ１５がそれぞれデータレジスタＲ１２〜Ｒ１５に出力される。
【００６４】
データ入出力部１２は、「0x113366DD」の書込みデータＷＤが入力される。すると、データレジスタＲ０〜Ｒ３に書込みデータ「0xXX11XX33」が、データレジスタＲ４〜Ｒ７に書込みデータ「0xXXXX66XX」が、データレジスタＲ８〜Ｒ１１に書込みデータ「0xXXXXXXXX」が、データレジスタＲ１２〜Ｒ１５に書込みデータ「0xXXDDXXXX」がそれぞれ出力される。具体的には、図１５に示すように、データ入出力部１２のデータ拡張・選択部１２ａでは、書込みデータＷＤの値「0x113366DD」が、「0x11」、「0x33」、「0x66」、「0xDD」ごとにセレクタ１２０ａ〜１２０ｄに入力される。一方、同時アクセスアドレス設定部８から、レジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」が比較器１２２ａ〜１２２ｄに入力される。すると、比較器１２２ａは、アドレス「0x01」、「0x03」、「0x06」、「0x0D」のそれぞれと「0x00」の比較結果「０」、「０」、「０」、「０」をセレクタ１２０ａに出力する。セレクタ１２０ａは、これに応答して、無効な書込みデータ「0xXX」を出力する。また、比較器１２２ｂは、アドレス「0x01」、「0x03」、「0x06」、「0x0D」のそれぞれと「0x01」の比較結果「１」、「０」、「０」、「０」をセレクタ１２０ｂに出力する。セレクタ１２０ｂは、これに応答して、有効な書込みデータ「0x11」を出力する。さらに、比較器１２２ｃは、アドレス「0x01」、「0x03」、「0x06」、「0x0D」のそれぞれと「0x02」の比較結果「０」、「０」、「０」、「０」をセレクタ１２０ｃに出力する。セレクタ１２０ｃは、これに応答して、無効な書込みデータ「0xXX」を出力する。そして、比較器１２２ｄは、アドレス「0x01」、「0x03」、「0x06」、「0x0D」のそれぞれと「0x03」の比較結果「０」、「１」、「０」、「０」をセレクタ１２０ｄに出力する。セレクタ１２０ｄは、これに応答して、有効な書込みデータ「0x33」を出力する。こうして、データ拡張・選択部１２ａからは、「0xXX11XX33」の書込みデータＥＷＤ＿ａが出力される。同様にして、データ拡張・選択部１２ｂからは、「0xXXXX66XX」の書込みデータＥＷＤ＿ｂが、データ拡張・選択部１２ｃからは、「0xXXXXXXXX」の書込みデータＥＷＤ＿ｃが、そしてデータ拡張・選択部１２ｄからは、「0xXXDDXXXX」の書込みデータＥＷＤ＿ｄがそれぞれ出力される。
【００６５】
図１２に戻る。データレジスタＲ０〜Ｒ３では、「0xXX11XX33」の書込みデータＥＷＤ＿ａのうち「0x11」がデータレジスタＲ１に、「0x33」がデータレジスタＲ３に書き込まれる。また、データレジスタＲ４〜Ｒ７では、「0xXXXX66XX」の書込みデータＥＷＤ＿ｂのうち「0x66」がデータレジスタＲ６に書き込まれる。また、データレジスタＲ１２〜Ｒ１５では、「0xXXDDXXXX」の書込みデータＥＷＤ＿ｄのうち「0xDD」がデータレジスタＲ１３に書き込まれる。こうして、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３に、同時にデータが書き込まれる。
【００６６】
［逐次アクセスによるデータ書込み］
図１６〜図１９は、逐次アクセスによるデータ書込みの具体例を示す。図１６〜図１９は、図５〜８で示した構成に具体的なデータの値を対応付けた図である。図１６〜図１９では、同時アクセスアドレス設定部８がデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスをそれぞれ保持した状態で、データレジスタＲ４、Ｒ５、Ｒ６、Ｒ７にデータ「0x44」、「0x55」、「0x66」、「0x77」がそれぞれ書き込まれる場合が示される。
【００６７】
図１６に示すように、同時アクセスアドレス設定部８は、データレジスタＲ４のアドレス「0x04」を示すアドレス信号Ａｄｄが入力されると、これに応答して、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」ではなく、データレジスタＲ４、Ｒ５、Ｒ６、Ｒ７のアドレス「0x04」、「0x05」、「0x06」、「0x07」を同時アクセスアドレスデコーダ１０に出力する。
【００６８】
具体的には、図１７に示すように、同時アクセスアドレス設定部８では、アドレス比較器８０が、同時アクセス用アドレス「0x04」が入力されることで、「０」の同時アクセス検知信号ＳＡをセレクタ８２ａ〜８２ｄに出力する。また、セレクタ８２ａ〜８２ｄには、アドレスレジスタＡＲ０〜ＡＲ３から、レジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」がそれぞれ入力される。一方、セレクタ８２ａ〜８２ｄには、アドレス「0x04」の第２〜３ビットに「0x00」、「0x01」、「0x02」、「0x03」を加えたアドレス、つまりデータレジスタＲ４〜Ｒ７のアドレス「0x04」、「0x05」、「0x06」、「0x07」が入力される。この場合、セレクタ８２ａ〜８２ｄは、「０」の同時アクセス検知信号ＳＡに応答して、レジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」ではなく、データレジスタＲ４〜Ｒ７のアドレス「0x04」、「0x05」、「0x06」、「0x07」をそれぞれ同時アクセスアドレスデコーダ１０に出力する。
【００６９】
図１６に戻る。同時アクセスアドレスデコーダ１０は、同時アクセス用の選択信号ＳＣＳ０〜１５をＯＲ回路群１４ａ〜１４ｄを介してデータレジスタＲ０〜Ｒ１５に出力する。このとき、選択信号ＳＣＳ０〜ＳＣＳ１５は「０」である。ここで、デコード部１０ｂについて具体的に図１８に示す。データレジスタＲ４〜Ｒ７に対応するデコード部１０ｂは、図７で示したデコード部１０ａと同等の構成を有する。図示するように、デコード部１０ｂのアドレス比較器１００＿０〜１５には、レジスタＲ４〜Ｒ７のアドレス「0x04」、「0x05」、「0x06」、「0x07」がそれぞれ入力される。すると、アドレス比較器１００＿０、１００＿５、１００＿１０、１００＿１５から一致を示す比較結果「１」が、他のアドレス比較器からは不一致を示す比較結果「０」がＯＲ回路１０２ａ〜１０２ｄに出力される。一方、このとき、同時アクセス検知信号ＳＡは「０」である。よって、ＡＮＤ回路１０４ａ〜１０４ｄからは、「０」の選択信号ＳＣＳ４〜ＳＣＳ７がそれぞれデータレジスタＲ４〜Ｒ７に出力される。同様にして、デコード部１０ａからは、「０」の選択信号ＳＣＳ０〜ＳＣＳ３がそれぞれデータレジスタＲ０〜Ｒ３に出力される。また、デコード部１０ｃからは、「０」の選択信号ＳＣＳ８〜ＳＣＳ１１がそれぞれデータレジスタＲ８〜Ｒ１１に出力される。そして、デコード部１０ｄからは、「０」の選択信号ＳＣＳ１２〜ＳＣＳ１５がそれぞれデータレジスタＲ１２〜Ｒ１５に出力される。
【００７０】
図１６に戻る。同時アクセスアドレスデコーダ１０からの同時アクセス用の選択信号ＳＣＳ０〜１５がすべて「０」である一方、アドレスデコーダ４からは、図１で説明した動作により、「０」の選択信号ＳＣ０〜ＳＣ３、ＳＣ８〜ＳＣ１５と、「１」の選択信号ＳＣ４〜ＳＣ７が出力される。よって、ＯＲ回路群１４ａ、１４ｃ、１４ｄにより「０」の選択信号がデータレジスタＲ０〜Ｒ３、Ｒ８〜Ｒ１５に出力され、ＯＲ回路群１４ｂにより「１」の選択信号がデータレジスタＲ４〜Ｒ６に出力される。
【００７１】
また、データ入出力部１２には、「0x44556677」の書込みデータＷＤが入力される。すると、データレジスタＲ０〜Ｒ３に書込みデータ「0xXXXXXXXX」が、データレジスタＲ４〜Ｒ７に書込みデータ「0x44556677」が、データレジスタＲ８〜Ｒ１１に書込みデータ「0xXXXXXXXX」が、データレジスタＲ１２〜Ｒ１５に書込みデータ「0xXXXXXXXX」がそれぞれ出力される。
【００７２】
具体的には、図１９に示すように、データ入出力部１２のデータ拡張・選択部１２ａでは、書込みデータＷＤの値「0x44556677」が、「0x44」、「0x55」、「0x66」、「0x77」ごとにセレクタ１２０ａ〜１２０ｄに入力される。一方、同時アクセスアドレス設定部８から、レジスタＲ４〜Ｒ７のアドレス「0x04」、「0x05」、「0x06」、「0x07」が比較器１２２ａ〜１２２ｄに入力される。すると、比較器１２２ａは、アドレス「0x04」、「0x05」、「0x06」、「0x07」のそれぞれと「0x00」の比較結果「０」、「０」、「０」、「０」をセレクタ１２０ａに出力する。セレクタ１２０ａは、これに応答して、無効な書込みデータ「0xXX」を出力する。また、比較器１２２ｂは、アドレス「0x04」、「0x05」、「0x06」、「0x07」のそれぞれと「0x01」の比較結果「０」、「０」、「０」、「０」をセレクタ１２０ｂに出力する。セレクタ１２０ｂは、これに応答して、無効な書込みデータ「0xXX」を出力する。さらに、比較器１２２ｃは、アドレス「0x04」、「0x05」、「0x06」、「0x07」のそれぞれと「0x02」の比較結果「０」、「０」、「０」、「０」をセレクタ１２０ｃに出力する。セレクタ１２０ｃは、これに応答して、無効な書込みデータ「0xXX」を出力する。そして、比較器１２２ｄは、アドレス「0x04」、「0x05」、「0x06」、「0x07」のそれぞれと「0x03」の比較結果「０」、「０」、「０」、「０」をセレクタ１２０ｄに出力する。セレクタ１２０ｄは、これに応答して、無効な書込みデータ「0xXX」を出力する。こうして、データ拡張・選択部１２ａからは、「0xXXXXXXXX」の書込みデータＥＷＤ＿ａが出力される。
【００７３】
データ拡張・選択部１２ｂでは、比較器１２２ａの出力が「１」、「０」、「０」、「０」であり、比較器１２２ｂの出力が「０」、「１」、「０」、「０」であり、比較器１２２ｃの出力が「０」、「０」、「１」、「０」であり、比較器１２２ｄの出力が「０」、「０」、「０」、「１」である。よって、セレクタ１２０ａ〜１２０ｄからは、それぞれ「0x44」、「0x55」、「0x66」、「0x77」が出力される。よって、データ拡張・選択部１２ｂからは、「0x44556677」の書込みデータＥＷＤ＿ｂが出力される。また、データ拡張・選択部１２ｃからは、「0xXXXXXXXX」の書込みデータＥＷＤ＿ｃが、そしてデータ拡張・選択部１２ｄからは、「0xXXXXXXXX」の書込みデータＥＷＤ＿ｄがそれぞれ出力される。
【００７４】
図１６に戻る。データレジスタＲ４〜Ｒ７では、「0x44556677」の書込みデータＥＷＤ＿ｂのうち「0x44」がデータレジスタＲ４に、「0x55」がデータレジスタＲ５に、「0x66」がデータレジスタＲ６に、「0x77」がデータレジスタＲ７にそれぞれ書き込まれる。一方、データレジスタＲ０〜Ｒ３、Ｒ８〜Ｒ１５では、「0xXXXXXXXX」の書込みデータＥＷＤ＿ａ、ＥＷＤ＿ｃ、ＥＷＤ＿ｄが伝送されるが、選択信号ＣＳ０〜ＣＳ３、ＣＳ１１〜ＣＳ１５が「０」であるので、書込みは行われない。こうして、同時アクセスアドレス設定部に保持されるデータレジスタのアドレスを用いることなく、データレジスタＲ４〜Ｒ７にデータが書き込まれる。
【００７５】
［同時アクセスによるデータ読出し］
図２０、２１は、同時アクセスによるデータ読出しの具体例を示す。図２０、図２１は、図９、１０で示した構成に具体的なデータの値を対応付けた図である。図２０に示すように、同時アクセスアドレス設定部８は、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスをそれぞれ保持した状態で同時アクセス用アドレス「0x20」を示すアドレス信号Ａｄｄが入力されると、これに応答して、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」を同時アクセスアドレスデコーダ１０に出力する。同時アクセスレコーダ１０の具体的な動作は、図１３と同じであるので、ここでは説明を省略する。
【００７６】
同時アクセスアドレスデコーダ１０は、同時アクセス用の選択信号ＳＣＳ０〜ＳＣＳ１５をＯＲ回路群１４ａ〜１４ｄを介してデータレジスタＲ０〜Ｒ１５に出力する。このとき、選択信号ＳＣＳ１、ＳＣＳ３、ＳＣＳ６、ＳＣＳ１３は「１」であり、他は「０」である。このときのデコード部１０ａ〜１０ｄは、図１４と同じ動作を行うことで選択信号を出力する。
【００７７】
データレジスタＲ０〜Ｒ１５において、データレジスタＲ１から「0x11」が、データレジスタＲ３から「0x33」が、データレジスタＲ６から「0x66」が、データレジスタＲ１３から「0xDD」が読み出され、データ入出力部１２´に入力される。データ入出力部１２´は、これらのデータを連結して「0x113366DD」の読出データＲＤとして出力する。具体的には、図２１に示すように、データレジスタＲ０〜Ｒ１５からの読出しデータＲＤ０〜ＲＤ１５が、セレクタ１２０ａ´〜１２０ｄ´に入力される。ここで、読出しデータＲＤ０は「0x00」、読出しデータＲＤ１は「0x11」、読出しデータＲＤ２は「0x22」、読出しデータＲＤ３は「0x33」、・・・、読出しデータＲＤ１５は「0xFF」であるとする。一方、セレクタ１２０ａ´〜１２０ｄ´には、アドレスレジスタＡＲ０〜ＡＲ３からデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」がそれぞれ入力される。セレクタ１２０ａ´〜１２０ｄ´は、読出しデータＲＤ０〜ＲＤ１５のうち、入力されたアドレスのデータレジスタから読み出された読出しデータをそれぞれ選択して出力する。たとえば、セレクタ１２０ａ´は、データレジスタＲ１のアドレス「0x01」が入力されるので、データレジスタＲ１からの読出しデータＲＤ１、つまり「0x11」を出力する。また、セレクタ１２０ｂ´は、データレジスタＲ３のアドレス「0x03」が入力されるので、データレジスタＲ３からの読出しデータＲＤ３、つまり「0x33」を出力する。さらに、セレクタ１２０ｃ´は、データレジスタＲ６のアドレス「0x06」が入力されるので、データレジスタＲ６からの読出しデータＲＤ６、つまり「0x66」を出力する。そして、セレクタ１２０ｄ´は、データレジスタＲ１３のアドレス「0x0D」が入力されるので、データレジスタＲ１３からの読出しデータＲＤ１３、つまり「0xDD」を出力する。そして、これらの読出しデータが連結され、「0x113366DD」の読出しデータＲＤとして出力される。こうして、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３から、同時にデータが読み出される。
【００７８】
［逐次アクセスによるデータ読出し］
図２２、２３は、逐次アクセスによるデータ読出しの具体例を示す。図２２、図２３は、図９、１０で示した構成に具体的なデータの値を対応付けた図である。図２２、２３では、同時アクセスアドレス設定部８がデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレスをそれぞれ保持した状態で、データレジスタＲ４、Ｒ５、Ｒ６、Ｒ７からデータ「0x44」、「0x55」、「0x66」、「0x77」がそれぞれ読み出される場合が示される。図２２に示すように、同時アクセスアドレス設定部８は、データレジスタＲ４のアドレス「0x04」を示すアドレス信号Ａｄｄが入力されると、これに応答して、データレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」ではなく、データレジスタＲ４、Ｒ５、Ｒ６、Ｒ７のアドレス「0x04」、「0x05」、「0x06」、「0x07」を同時アクセスアドレスデコーダ１０に出力する。このときの同時アクセスアドレス設定部８の動作は、図１７で示した動作と同じであるので、ここでは説明を省略する。
【００７９】
同時アクセスアドレスデコーダ１０は、同時アクセス用の選択信号ＳＣＳ０〜１５をＯＲ回路群１４ａ〜１４ｄを介してデータレジスタＲ０〜Ｒ１５に出力する。このとき、選択信号ＳＣＳ０〜ＳＣＳ１５はすべて「０」である。このときのデコード部１０ａ〜１０ｄの動作は、図１８で説明した動作と同じなので、ここでは説明を省略する。一方、アドレスデコーダ４からは、図１で説明した動作により、「０」の選択信号ＳＣ０〜ＳＣ３、ＳＣ８〜ＳＣ１５と、「１」の選択信号ＳＣ４〜ＳＣ７が出力される。よって、ＯＲ回路群１４ａ、１４ｃ、１４ｄにより「０」の選択信号がデータレジスタＲ０〜Ｒ３、Ｒ８〜Ｒ１５に出力され、ＯＲ回路群１４ｂにより「１」の選択信号がデータレジスタＲ４〜Ｒ７に出力される。
【００８０】
データレジスタＲ０〜Ｒ１５では、データレジスタＲ４から「0x44」が、データレジスタＲ５から「0x55」が、データレジスタＲ６から「0x66」が、データレジスタＲ７から「0x77」が読み出され、データ入出力部１２´に入力される。データ入出力部１２´は、これらのデータを連結して「0x44556677」の読出データＲＤとして出力する。具体的には、図２３に示すように、データレジスタＲ０〜Ｒ１５からの読出しデータＲＤ０〜ＲＤ１５が、セレクタ１２０ａ´〜１２０ｄ´に入力される。ここで、読出しデータＲＤ０は「0x00」、読出しデータＲＤ１は「0x11」、読出しデータＲＤ２は「0x22」、読出しデータＲＤ３は「0x33」、・・・、読出しデータＲＤ１５は「0xFF」であるとする。一方、セレクタ１２０ａ´〜１２０ｄ´には、アドレスレジスタＡＲ０〜ＡＲ３から読み出されたデータレジスタＲ１、Ｒ３、Ｒ６、Ｒ１３のアドレス「0x01」、「0x03」、「0x06」、「0x0D」ではなく、データレジスタＲ４〜Ｒ７のアドレス「0x04」、「0x05」、「0x06」、「0x07」がそれぞれ入力される。セレクタ１２０ａ´〜１２０ｄ´は、読出しデータＲＤ０〜ＲＤ１５のうち、入力されたアドレスのデータレジスタから読み出された読出しデータをそれぞれ選択して出力する。たとえば、セレクタ１２０ａ´は、データレジスタＲ４のアドレス「0x04」が入力されるので、データレジスタＲ４からの読出しデータＲＤ４、つまり「0x44」を出力する。また、セレクタ１２０ｂ´は、データレジスタＲ５のアドレス「0x05」が入力されるので、データレジスタＲ５からの読出しデータＲＤ５、つまり「0x55」を出力する。さらに、セレクタ１２０ｃ´は、データレジスタＲ６のアドレス「0x06」が入力されるので、データレジスタＲ６からの読出しデータＲＤ６、つまり「0x66」を出力する。そして、セレクタ１２０ｄ´は、データレジスタＲ７のアドレス「0x07」が入力されるので、データレジスタＲ７からの読出しデータＲＤ７、つまり「0x77」を出力する。そして、これらの読出しデータが連結され、「0x44556677」の読出しデータＲＤとして出力される。こうして、データレジスタＲ４〜Ｒ７から、データが読み出される。
【００８１】
上述したように、同時アクセスアドレス設定部８に同時アクセス用のアドレスが設定されることで、そのアドレスのレジスタに同時にアクセスすることが可能になる。そして、同時アクセス用のアドレスが設定された場合であっても、逐次アクセスも可能である。よって、たとえば、同時アクセスが必要なときには同時アクセス用のアドレスを指定してデータの読み書きを行い、それ以外の場合には逐次アクセスを行うことで、任意のレジスタにアクセスすることができる。このように、データレジスタへの柔軟なアクセスが可能となる。
【符号の説明】
【００８２】
２：バス、４：アドレスデコーダ、８：同時アクセスアドレス設定部、
１０：同時アクセスアドレスデコーダ、１２：データ入出力部、
Ｒ０〜Ｒ１５：データレジスタ、  ＡＲ０〜ＡＲ３：アドレスレジスタ
【図１】
2012256299.tif 000003
【図２】
2012256299.tif 000004
【図３】
2012256299.tif 000005
【図４】
2012256299.tif 000006
【図５】
2012256299.tif 000007
【図６】
2012256299.tif 000008
【図７】
2012256299.tif 000009
【図８】
2012256299.tif 000010
【図９】
2012256299.tif 000011
【図１０】
2012256299.tif 000012
【図１１】
2012256299.tif 000013
【図１２】
2012256299.tif 000014
【図１３】
2012256299.tif 000015
【図１４】
2012256299.tif 000016
【図１５】
2012256299.tif 000017
【図１６】
2012256299.tif 000018
【図１７】
2012256299.tif 000019
【図１８】
2012256299.tif 000020
【図１９】
2012256299.tif 000021
【図２０】
2012256299.tif 000022
【図２１】
2012256299.tif 000023
【図２２】
2012256299.tif 000024
【図２３】
2012256299.tif 000025