JP2012256299A - 制御装置、及び制御方法 - Google Patents
制御装置、及び制御方法 Download PDFInfo
- Publication number
- JP2012256299A JP2012256299A JP2011130329A JP2011130329A JP2012256299A JP 2012256299 A JP2012256299 A JP 2012256299A JP 2011130329 A JP2011130329 A JP 2011130329A JP 2011130329 A JP2011130329 A JP 2011130329A JP 2012256299 A JP2012256299 A JP 2012256299A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- registers
- register
- addresses
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
【課題】複数のレジスタへのアクセスを高速に行う。
【解決手段】制御装置は、複数のレジスタのアドレスをそれぞれ保持し、前記複数のレジスタのアドレスとは異なる第1のアドレスの指定に応答して前記複数のレジスタのアドレスを出力するアドレス設定部と、前記アドレス設定部から前記複数のレジスタのアドレスが入力され、当該複数のレジスタを選択する選択信号を同じタイミングで出力する第1のデコーダと、前記第1のアドレスに対する書込みデータを前記選択信号により選択される複数のレジスタに並行して書き込み、また、前記選択信号により選択される複数のレジスタから並行して読み出したデータを前記第1のアドレスからの読出しデータとして出力するデータ入出力部とを有する。複数のレジスタへ同時にアクセスでき、レジスタアクセスが高速化される。
【選択図】 図5
【解決手段】制御装置は、複数のレジスタのアドレスをそれぞれ保持し、前記複数のレジスタのアドレスとは異なる第1のアドレスの指定に応答して前記複数のレジスタのアドレスを出力するアドレス設定部と、前記アドレス設定部から前記複数のレジスタのアドレスが入力され、当該複数のレジスタを選択する選択信号を同じタイミングで出力する第1のデコーダと、前記第1のアドレスに対する書込みデータを前記選択信号により選択される複数のレジスタに並行して書き込み、また、前記選択信号により選択される複数のレジスタから並行して読み出したデータを前記第1のアドレスからの読出しデータとして出力するデータ入出力部とを有する。複数のレジスタへ同時にアクセスでき、レジスタアクセスが高速化される。
【選択図】 図5
Description
本発明は、レジスタへのアクセスを制御する制御装置、及び制御方法に関する。
電子機器に搭載されるマイクロコンピュータシステムなどでは、CPU(Central Processing Unit)による演算結果や、センサによる各種計測値をレジスタが、メモリやレジスタといった記憶手段に保持される。記憶手段へのアクセスは、アドレスを指定することで行われる(特許文献1、2)。たとえば、CPUなどからバス経由でアドレスが伝送され、そのアドレスのレジスタにアクセスする制御装置(以下、レジスタ制御装置)が知られている。かかるレジスタ制御装置は、指定されたアドレスに対しバス経由で伝送されるデータを書き込み、また、指定されたアドレスのレジスタからデータを読み出してデータバスに出力する。
システムの処理が高度化し、処理するデータ量が増大することで、複数のレジスタへのアクセスが必要となる場合がある。しかし、たとえば、1アクセスでデータの読み書きが可能なレジスタの数は、共通のベースアドレスを有するレジスタの数に制約される。すると、ベースアドレスが異なる複数のレジスタへのアクセスが頻繁に行われるような場合、アクセス回数が増大し、バスウエイトが生じるなど、処理が遅延するおそれがある。
そこで、本発明の目的は、複数のレジスタへのアクセスを高速に行うことができる、レジスタ制御装置等を提供することにある。
上記の目的を達成するための、一側面における制御装置は、複数のレジスタのアドレスをそれぞれ保持し、前記複数のレジスタのアドレスとは異なる第1のアドレスの指定に応答して前記複数のレジスタのアドレスを出力するアドレス設定部と、前記アドレス設定部から前記複数のレジスタのアドレスが入力され、当該複数のレジスタを選択する選択信号を同じタイミングで出力する第1のデコーダと、前記第1のアドレスに対する書込みデータを前記選択信号により選択される複数のレジスタに並行して書き込み、また、前記選択信号により選択される複数のレジスタから並行して読み出したデータを前記第1のアドレスからの読出しデータとして出力するデータ入出力部とを有する。
以下に説明する実施形態によれば、複数のレジスタへのアクセスを高速に行うことができる。
以下、図面にしたがって本発明の実施の形態について説明する。但し、適用される技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
まず、本実施形態の説明の前に、図1〜図4を用いて、レジスタ制御装置の一例について説明する。
図1は、レジスタへの書込み制御を行うレジスタ制御装置の例を示す。図1には、図示されないCPUに接続されるバス2と、これに接続されるアドレスデコーダ4、及びレジスタ(以下、データレジスタという)R0〜R15が示される。ここでは、アドレスデコーダ4が、レジスタ制御装置の例である。このレジスタ制御装置は、たとえば、車両に搭載されたシステムに適用される。たとえば、センサにより継続的かつ反復して取得される各種の計測値(たとえば各種モータの回転数)がバスを介して伝送され、データレジスタR0〜R15に書き込まれる。また、書き込まれたデータが読み出され、バスを介して伝送される。
バス2は、それぞれたとえば32ビット幅の、アドレスバスとデータバスとを有する。データが書き込まれるデータレジスタR0〜R15のアドレスを指定するたとえば32ビットのアドレス信号Addが、たとえば図示されないCPUからデータバス経由でアドレスデコーダ4に伝送される。アドレスデコーダ4は、データレジスタR0〜R15のうちアドレス信号Addが示すアドレスのデータレジスタに、選択信号CS0〜CS15を選択的に出力する。また、32ビットの書込みデータWDが、CPUからデータバス経由でレジスタR0〜R15に伝送される。さらに、CPUからデータレジスタR0〜R15に、書込み/読出し動作の種別を指定するモード信号MDがバス経由で伝送される。ここでは、モード信号MDは書込み動作を示す。データレジスタR0〜R15は、モード信号MDと選択信号とに応答して、書込みデータWDの入力を行う。
データレジスタR0〜R15の構成例が、図2(A)に示される。データレジスタR0〜R15は、それぞれ8ビット幅を有し、4個ずつ1つのベースアドレスが割り当てられる。そして、各データレジスタには、ベースアドレスを基準とするアドレスが割り当てられる。たとえば、データレジスタR0〜R3のアドレスは、ベースアドレス「0x00」にそれぞれ「0」、「1」、「2」、「3」を加えたアドレスである。また、データレジスタR4〜R7のアドレスは、ベースアドレス「0x04」にそれぞれ「0」、「1」、「2」、「3」を加えたアドレスである。さらに、データレジスタR8〜R11のアドレスは、ベースアドレス「0x08」にそれぞれ「0」、「1」、「2」、「3」を加えたアドレスである。そして、データレジスタR12〜R15のアドレスは、ベースアドレス「0x0C」にそれぞれ「0」、「1」、「2」、「3」を加えたアドレスである。
図1に戻る。アドレスデコーダ4は、たとえば、データレジスタR0〜R3、R4〜R7、R8〜R11、R12〜R15にそれぞれ対応するアドレス比較器4a、4b、4c、4dを有する。アドレス比較器4a〜4dには、アドレス信号Addが入力される。アドレス比較器4aは、データレジスタR0〜R3のアドレスA0〜A3をアドレス信号Addと比較し、アドレスA0〜A3のいずれかとアドレス信号Addが一致するときに、そのアドレスのデータレジスタに選択信号を出力する。同様に、アドレス比較器4bは、データレジスタR4〜R7のアドレスA4〜A7のいずれかがアドレス信号Addと一致するときに、そのアドレスのデータレジスタに選択信号を出力する。また、アドレス比較器4cは、データレジスタR8〜R11のアドレスA8〜A11のいずれかがアドレス信号Addと一致するときに、そのアドレスのデータレジスタに選択信号を出力する。そして、アドレス比較器4dは、データレジスタR12〜R15のアドレスA12〜A15のいずれかがアドレス信号Addと一致するときに、そのアドレスのデータレジスタに選択信号を出力する。
アドレス比較器4aの詳細な構成が、図3(A)に示される。アドレス比較器4b〜4dも、ここに示される構成と同等の構成を有する。アドレス比較器4aは、比較器40、41、42、43と、セレクタ44とを有する。比較器40は、データレジスタR0のアドレス「0x00」とアドレス信号Addと比較し、両者が一致するとき、選択信号CS0をセレクタ44に出力する。同様に、比較器41は、データレジスタR1のアドレス「0x01」とアドレス信号Addとが一致するとき、選択信号CS1をセレクタ44に出力する。また、比較器42は、データレジスタR2のアドレス「0x02」とアドレス信号Addとが一致するとき、選択信号CS2をセレクタ44に出力する。そして、比較器43は、データレジスタR3のアドレス「0x03」とアドレス信号Addとが一致するとき、選択信号CS3をセレクタ44に出力する。
一方、セレクタ44には、アクセスサイズ信号ASが入力される。アクセスサイズ信号ASは、図示されないCPUから、バス2経由で伝送されるたとえば2ビットの信号である。アクセスサイズ信号ASは、共通のベースアドレスが割り当てられたデータレジスタR0〜R3のうち、同時にアクセスするデータレジスタの個数、たとえば、1個、2個、または4個を示す。セレクタ44は、アクセスサイズ信号ASに基づきデータレジスタR0〜R3から1個、2個、または4個のデータレジスタを選択し、選択したデータレジスタへの選択信号を出力する。これにより、データレジスタR0〜R3に、選択信号CS0〜CS3が選択的に出力される。
アクセスサイズ信号ASと選択信号CS0〜CS3の対応が、図3(B)に示される。ここでの説明は、アドレス比較器4b〜4dにおける選択信号CS4〜CS15についても適用される。アクセスサイズ信号ASが「00」の場合、データレジスタR0〜R3のうちいずれか1つがアクセスされる。この場合において、アドレス信号AddがデータレジスタR0のアドレス「0x00」と一致するときにはデータレジスタR0に対する値「1」の選択信号CS0が、アドレス信号AddがデータレジスタR1のアドレス「0x01」と一致するときにはデータレジスタR1に対する値「1」の選択信号CS1が、アドレス信号AddがデータレジスタR2のアドレス「0x02」と一致するときにはデータレジスタR2に対する値「1」の選択信号CS2が、そして、アドレス信号AddがデータレジスタR3のアドレス「0x03」と一致するときにはデータレジスタR3に対する値「1」の選択信号CS3が、それぞれセレクタ44から出力される。
次に、アクセスサイズ信号ASが「01」の場合、データレジスタR0〜R3のうち2個が同時にアクセスされる。この場合において、アドレス信号AddがデータレジスタR0のアドレス「0x00」と一致するときには、データレジスタR0とR1に対する値「1」の選択信号CS0とCS1がセレクタ44から出力される。このとき、データレジスタR0とR1が同時にアクセスされる。また、アドレス信号AddがデータレジスタR2のアドレス「0x02」と一致するときには、データレジスタR2とR3に対する値「1」の選択信号CS2とCS3がセレクタ44から出力される。このとき、データレジスタR2とR3が同時にアクセスされる。そして、アクセスサイズ信号ASが「10」であり、かつアドレス信号AddがデータレジスタR0のアドレス「0x00」と一致するときに、データレジスタR0〜R3に対する値「1」の選択信号CS0〜CS3がセレクタ44から出力され、データレジスタR0〜R3のすべてが同時にアクセスされる。なお、アドレス信号Addがアドレス「0x00」、「0x01」、「0x02」、「0x03」のいずれとも一致しない場合には、アクセスサイズ信号ASの値にかかわらず、選択信号CS0〜CS3は出力されない。
図1に戻る。データレジスタR0〜R15のいずれかには、対応する選択信号CS0〜CS15が上記のようにして入力される。そして、選択信号が入力されたデータレジスタに、書込みデータWDが書き込まれる。たとえば、各レジスタには、32ビットの書込データWDのうちの8ビットが書き込まれる。
図4は、データレジスタからの読出し制御を行うレジスタ制御装置の例を示す。図4には、図1で示した構成に加え、データレジスタR0〜R3、R4〜R7、R8〜R11、R12〜R15から読み出される読出しデータRD0〜RD3のいずれかを選択して出力するセレクタ6が示される。ここでは、たとえば、アドレスデコーダ4とセレクタ6を含む構成が、レジスタ制御装置の例である。アドレスデコーダ4は、データを読み出すデータレジスタを指定するアドレス信号Addが、図示されないCPUからバス2のアドレスバスを介して入力される。アドレスデコーダ4は、アドレス信号Addと一致するアドレスのデータレジスタに選択信号を出力する。アドレスデコーダ4におけるアドレス比較器4a〜4dの動作は、図1、3と同じである。選択信号CS0〜CS15は、それぞれデータレジスタR0〜R15に出力される。また、データレジスタR0〜R15には、図示されないCPUから、読出し動作を指定するモード信号MDが伝送される。データレジスタR0〜R15は、モード信号MDと選択信号とに応答して、データを出力する。読み出されたデータは、共通のベースアドレスを有する4個ずつのレジスタR0〜R3、R4〜R7、R8〜R11、R12〜R15からの32ビットの読出しデータRD0、RD1、RD2、RD3に含まれる。
読出しデータRD0〜RD3は、セレクタ6に入力される。一方で、セレクタ6には、バス2から選択信号SSが入力される。選択信号SSは、読出しデータRD0〜RD3のいずれかを示す2ビットの信号である。セレクタ6は、選択信号SSが示す読出しデータを選択して出力する。選択された読出しデータは、バス2のデータバスに出力され、CPUに伝送される。
図1〜4の例では、図2、3で示したように、共通のベースアドレスを有する4個のデータレジスタのうち、いずれか1個、2個(たとえば、データレジスタR0とR1、またはR2とR3)、または4個すべてのデータレジスタに対し、同時に選択信号が出力される。よって、共通のベースアドレスを有する1個、2個、または4個のデータレジスタが同時にアクセスされる。しかしながら、ベースアドレスが共通でありながら同時にアクセスされないデータレジスタ(たとえば、データレジスタR0とR2、またはR0とR3)の間、あるいはベースアドレスを異にするデータレジスタ間では、排他的なアクセスが行われる。かかるアクセスを以下では、便宜上、逐次アクセスという。たとえば、図2(A)に示されるデータレジスタR1、R3、R6、R13に対しデータを書き込んだり読出したりする場合、データレジスタごとに逐次アクセスが行われる。つまり、合計4回の逐次アクセスが行われる。これに対し以下に示す実施形態では、複数のデータレジスタが同じタイミングでアクセスされる。かかるアクセスを、同時アクセスという。たとえば、データレジスタR1、R3、R6、R13が同時アクセスされ、データの書き込み、または読出しが行われる。よって、データレジスタのアクセス速度が向上する。このことは、たとえば、反復して同じデータレジスタにデータが読み書きされるような場合に有利である。以下では、本実施形態における同時アクセスによるデータ書込制御、データ読出制御に分けて説明がなされる。
[同時アクセスでのデータ書込制御]
図5は、本実施形態において、同時アクセスでデータ書込みを制御するレジスタ制御装置の構成例を示す。図5には、図1で示した構成に加え、同時アクセスアドレス設定部8、同時アクセスアドレスデコーダ10、データ入出力部12、及びOR回路群14a〜14dが示される。ここでは、同時アクセスアドレス設定部8、同時アクセスアドレスデコーダ10、及びデータ入出力部12を含む構成が、レジスタ制御装置の例である。なお、ここでは、モード信号MDは図示を省略し、データレジスタR0〜R15において書込み動作が指定されたものとして説明がなされる。
図5は、本実施形態において、同時アクセスでデータ書込みを制御するレジスタ制御装置の構成例を示す。図5には、図1で示した構成に加え、同時アクセスアドレス設定部8、同時アクセスアドレスデコーダ10、データ入出力部12、及びOR回路群14a〜14dが示される。ここでは、同時アクセスアドレス設定部8、同時アクセスアドレスデコーダ10、及びデータ入出力部12を含む構成が、レジスタ制御装置の例である。なお、ここでは、モード信号MDは図示を省略し、データレジスタR0〜R15において書込み動作が指定されたものとして説明がなされる。
このレジスタ制御装置は、逐次アクセスの場合、データレジスタR0〜R15のうち2以上のデータレジスタ、たとえば、データレジスタR1、R3、R6、R13にアクセスが行われ、異なるタイミングでデータの書込みが行われる。たとえば、CPUから、順次、データレジスタR1、R3、R6、R13のアドレスを指定するアドレス信号Addが伝送され、図1〜3で説明したように、アドレスデコーダ4から選択信号CS1、CS3、CS6、CS13が、順次データレジスタR1、R3、R6、R13へ出力される。各選択信号は、OR回路群14a〜14dを介してデータレジスタに入力される。また、アドレス信号Addと同期して書込データWDが順次データレジスタR1、R3、R6、R13に、後に詳述するようにデータ入出力部12を介して伝送される。そして、各データレジスタに書込みデータが書き込まれる。なお、以下の説明において、データレジスタR1、R3、R6、R13に書きこまれる書込みデータは、それぞれたとえば「0x11」「0x33」「0x66」「0xDD」である。
次に、同時アクセスの場合、同時アクセスアドレス設定部8は、データの書込みが行われるデータレジスタのアドレスをそれぞれ保持する。たとえば、同時アクセスアドレス設定部8は、データレジスタR1、R3、R6、R13のアドレスをそれぞれ保持する。そして、同時アクセスアドレス設定部8は、同時アクセス時に、前記複数のデータレジスタのアドレスR0〜R15とは異なる同時アクセス用アドレスの指定に応答して、保持したアドレスiAR0〜iAR3、つまりデータレジスタR1、R3、R6、R13のアドレスを出力する。
図6は、同時アクセスアドレス設定部8の詳細な構成例を示す。同時アクセスアドレス設定部8は、データの書込みが行われるデータレジスタのアドレスをそれぞれ保持するための、レジスタAR0、AR1、AR2、AR3を有する。以下では、アドレスが書き込まれるレジスタを、データレジスタと区別するために、便宜上アドレスレジスタという。ここでは、4個のデータレジスタR1、R3、R6、R13に対する同時アクセスを行うことに対応して、4個のアドレスレジスタAR0〜AR3が示される。アドレスレジスタAR0〜AR3のアドレス割当の例は、図2(B)に示される。たとえば、アドレスレジスタAR0のアドレスは「0x10」、アドレスレジスタAR1のアドレスは「0x14」、アドレスレジスタAR0のアドレスは「0x18」、そして、アドレスレジスタAR0のアドレスは「0x1C」である。
同時アクセスアドレス設定部8は、さらに、データレジスタR1、R3、R6、R13のアドレスをアドレスレジスタAR0〜AR3に書き込むための構成として、アドレス比較器80a、80b、80c、80dを有する。アドレス比較器80a〜80dは、アドレスレジスタAR0〜AR3にそれぞれ対応する。アドレス比較器80a〜80dには、アドレスレジスタAR0〜AR3のアドレスを指定するアドレス信号Addが入力される。アドレス信号Addは、アドレスバス経由でCPUから伝送される。アドレス比較器80aは、アドレスレジスタAR0のアドレス「0x10」とアドレス信号Addを比較し、両者が一致するときに、選択信号CS_AR0をアドレスレジスタAR0に出力する。
このとき一方で、アドレスレジスタAR0〜AR3には、データレジスタR1のアドレス「0x01」が書込みデータWDとしてCPUから伝送される。よって、このとき選択信号CS_AR0が入力されるアドレスレジスタAR0に、データレジスタR1のアドレス「0x01」が書き込まれる。同様に、アドレス比較器80bは、アドレスレジスタAR1のアドレス「0x14」とアドレス信号Addが一致するときに、選択信号CS_AR1をアドレスレジスタAR1に出力する。このとき伝送されるデータレジスタR3のアドレス「0x03」が、アドレスレジスタAR1に書き込まれる。また、アドレス比較器80cは、アドレスレジスタAR2のアドレス「0x18」とアドレス信号Addが一致するときに、選択信号CS_AR2をアドレスレジスタAR2に出力する。このとき伝送されるデータレジスタR6のアドレス「0x06」が、アドレスレジスタAR2に書き込まれる。そして、アドレス比較器80dは、アドレスレジスタAR3のアドレス「0x1C」とアドレス信号Addが一致するときに、選択信号CS_AR3をアドレスレジスタAR3に出力する。このとき伝送されるデータレジスタR13のアドレス「0x0D」が、アドレスレジスタAR3に書き込まれる。こうして、アドレスレジスタAR0〜AR3には、データレジスタR1、R3、R6、R13のアドレスがそれぞれ書き込まれる。
同時アクセスアドレス設定部8は、同時アクセス用のアドレスを指定するアドレス信号Addが入力されたときにアドレスレジスタAR0〜A3に書き込まれたデータレジスタR1、R3、R6、R13のアドレスを出力するための構成として、アドレス比較器80と、セレクタ82a〜82dとを有する。同時アクセス用のアドレスの例は、図3(C)に示される。たとえば、同時アクセス用アドレスとして、ベースアドレス「0x20」が割り当てられる。ただし、このアドレスに対応する同時アクセス用データレジスタvRは、後述するように、CPUが実行するための命令に記述される架空のデータレジスタである。また、この架空のレジスタは、「0x20」をベースアドレスとする架空のデータレジスタvR0、vR1、vR2、vR3を含む。CPUが実行する命令では、架空のデータレジスタvR0〜vR3に対するアクセスを規定することで、データレジスタR1、R3、R6、R13への同時アクセスが実行される。架空のレジスタを想定することで、回路規模の増大を回避できる。それとともに、CPUが実行する命令のコーディングの書法を統一することができる。
アドレス比較器80に、同時アクセス用のアドレスを指定するアドレス信号Addが入力される。アドレス信号Addは、CPUからアドレスバス経由で伝送される。アドレス比較器80は、同時アクセス用のアドレス「0x20」とアドレス信号Addを比較し、両者が一致するときに、同時アクセス検出信号SAを出力する。同時アクセス検出信号SAは、セレクタ82a〜82dに入力され、また、同時アクセスアドレスデコーダ10へ出力される。一方で、セレクタ82a〜82dにはアドレスレジスタAR0〜AR3から、それぞれに書き込まれたアドレスiAr0〜iAR3がそれぞれ入力される。セレクタ82a〜82dは、さらに、アドレス信号Addの第3〜2ビットに「0x00」、「0x01」、「0x02」、「0x03」がそれぞれ加えられた値が入力される。セレクタ82a〜82dは、同時アクセス検出信号SAが「1」のときに、アドレスiAr0〜iAR3、つまりデータレジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」をそれぞれ選択して出力する。一方、セレクタ82a〜82dは、同時アクセス検出信号SAが「0」のときに、アドレス信号Addの第3〜2ビットに「0x00」、「0x01」、「0x02」、「0x03」がそれぞれ加算された値、つまりアドレス信号Addが示すアドレスを選択して出力する。このようにすることで、同時アクセスが検出されたときにはデータレジスタR1、R3、R6、R13に同時に選択信号が出力され、その一方で、同時アクセスが検出されないとき、つまり逐次アクセスのときには、アドレス信号Addが示すアドレスのデータレジスタに選択信号が出力される。
図5に戻る。同時アクセスアドレス設定部8から出力される同時アクセス検出信号SAと、アドレスレジスタAR0〜AR3にそれぞれ書き込まれたアドレスiAR0〜iAR3は、同時アクセスアドレスデコーダ10に入力される。たとえばデータレジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」が、同時アクセスアドレスデコーダ10に入力される。そして、同時アクセスアドレスデコーダ10は、対応する複数のデータレジスタを選択する選択信号を同時に出力する。同時アクセスアドレスデコーダ10は、同時アクセス用の選択信号SCS0〜SCS15をデータレジスタR0〜R15に選択的に出力するための構成として、デコード部10a〜10dを有する。デコード部10a〜10dは、それぞれ、データレジスタR0〜R3、R4〜R7、R8〜R11、R12〜R15への同時アクセス用の選択信号SCS0〜SCS3、SCS4〜SCS7、SCS8〜SCS11、SCS12〜SCS15を出力する。そして、選択信号SCS0〜SCS3、SCS4〜SCS7、SCS8〜SCS11、SCS12〜SCS15は、それぞれ、OR回路群14a〜14dを介してデータレジスタR0〜R3、R4〜R7、R8〜R11、R12〜R15に入力される。たとえば、データレジスタR1、R3、R6、R13に同時に書込みが行われるときには、選択信号SCS1、SCS3、SCS6、SCS13がデータレジスタR1、R3、R6、R13へそれぞれ出力される。
図7は、同時アクセスアドレスデコード部10内のデコード部10aの詳細な構成例を示す。デコード部10b〜10dも、ここに示す構成と同様の構成を有する。デコード部10aは、1組4個で構成される4組のアドレス比較器100_0〜100_3、100_4〜100_7、100_8〜100_11、100_12〜100_15と、OR回路102a〜102dと、AND回路104a〜104dとを有する。
アドレス比較器100_0〜100_15に、同時アクセスアドレス設定部8でアドレスレジスタAR0〜AR3に書き込まれたデータレジスタのアドレスiAR0〜iAR3が入力される。また、アドレス比較器100_0〜100_3には、データレジスタR0のアドレス「0x00」が入力される。アドレス比較器100_0〜100_3は、それぞれ2つの入力を比較し、2つの入力が一致する場合には「1」、一致しない場合には「0」を示す比較結果をOR回路102aに出力する。そして、OR回路102aは、アドレス比較器100_0〜100_3からの比較結果の論理和を、AND回路104aに出力する。また、一方で、同時アクセスアドレス設定回路8から入力される同時アクセス検出信号SAが、AND回路104aに入力される。AND回路104aは、OR回路102aの出力と同時アクセス検出信号SAの論理積を出力する。たとえば、アドレスレジスタAR0〜AR3に書き込まれたアドレスiAR0〜iAR3のいずれかと、データレジスタR0のアドレス「0x00」が一致するときには、OR回路102aには「1」が入力されるので、OR回路102aからは「1」がAND回路104aに出力される。また、このとき、同時アクセスが検出されて同時アクセス検出信号SAが「1」になると、AND回路104aからは「1」の選択信号SCS0が、データレジスタR0に出力される。
同様に、アドレス比較器100_4〜100_7が、アドレスレジスタAR0〜AR3に書き込まれたデータレジスタのアドレスiAR0〜iAR3と、データレジスタR1のアドレス「0x01」を比較し、比較結果をOR回路102bに出力する。そして、比較結果の論理和が、OR回路102bからAND回路104bに出力される。AND回路104bは、入力されるOR回路102bの出力と同時アクセス検出信号SAの論理積を出力する。たとえば、アドレスレジスタAR0〜AR3に書き込まれたアドレスiAR0〜iAR3のいずれかとデータレジスタR1のアドレス「0x01」が一致してOR回路102bの出力が「1」になり、かつ同時アクセス検出信号SAが「1」のとき、AND回路104bからは「1」の選択信号SCS1が、データレジスタR1に出力される。
またアドレス比較器100_8〜100_11が、アドレスレジスタAR0〜AR3に書き込まれたデータレジスタのアドレスiAR0〜iAR3と、データレジスタR2のアドレス「0x02」を比較し、比較結果をOR回路102cに出力する。そして、比較結果の論理和が、OR回路102cからAND回路104cに出力される。AND回路104cは、入力されるOR回路102cの出力と同時アクセス検出信号SAの論理積を出力する。たとえば、アドレスレジスタAR0〜AR3に書き込まれたアドレスiAR0〜iAR3のいずれかとデータレジスタR2のアドレス「0x02」が一致してOR回路102cの出力が「1」になり、かつ同時アクセス検出信号SAが「1」のとき、AND回路104cからは「1」の選択信号SCS2が、データレジスタR2に出力される。
そしてアドレス比較器100_12〜100_15が、アドレスレジスタAR0〜AR3に書き込まれたデータレジスタのアドレスiAR0〜iAR3と、データレジスタR3のアドレス「0x03」を比較し、比較結果をOR回路102dに出力する。そして、比較結果の論理和が、OR回路102dからAND回路104dに出力される。AND回路104dは、入力されるOR回路102dの出力と同時アクセス検出信号SAの論理積を出力する。たとえば、アドレスレジスタAR0〜AR3に書き込まれたアドレスiAR0〜iAR3のいずれかとデータレジスタR3のアドレス「0x03」が一致してOR回路102dの出力が「1」になり、かつ同時アクセス検出信号SAが「1」のとき、AND回路104dからは「1」の選択信号SCS3が、データレジスタR3に出力される。
上記と同様にして、デコード部10bからはデータレジスタR4〜R7に同時アクセス用の選択信号SCS4〜SCS7が、デコード部10cからはデータレジスタR8〜R11に同時アクセス用の選択信号SCS8〜SCS11が、そしてデコード部10dからはデータレジスタR12〜R15に同時アクセス用の選択信号SCS12〜SCS15がそれぞれ選択的に出力される。よって、たとえば、データレジスタR1、R3、R6、R13に同時にデータを書き込むとき、データレジスタR1、R3、R6、R13に選択信号SCS1、SCS3、SCS6、SCS13が同時に出力される。
図5に戻る。上記のようにして同時アクセスアドレスデコーダ10から選択的に出力される同時アクセス用の選択信号SCS0〜SCS3、SCS4〜SCS7、SCS8〜SCS11、SCS12〜SCS15は、それぞれ、OR回路群14a〜14dを介してデータレジスタR0〜R3、R4〜R7、R8〜R11、R12〜R15に入力される。
データ入出力部12は、同時アクセス用のアドレスに対する書込みデータを前記複数のレジスタに並行して書き込む。同時アクセス用のアドレス「0x20」が図示されないCPUからバス2を介して同時アクセスアドレス設定部8に伝送されるのと同期して、同時アクセス用のアドレスに対する32ビットの書込みデータWDが、バス2を介して書込みデータ入出力部12に伝送される。そして、データ入出力部12は、32ビットの書込みデータを拡張した128ビットの拡張書込みデータEWDをデータレジスタR0〜R15に出力する。
図8は、データ入出力部12の詳細な構成例を示す。データ入出力部12は、データ拡張・選択部12a、12b、12c、12dを有する。データ拡張・選択部12a〜12dは、アドレスレジスタAR0〜AR3に書き込まれたアドレスのレジスタに書き込むためのデータを同時書込み用の書込データWDからそれぞれ選択する。そして、データ拡張・選択部12a〜12dは、選択したデータを含む書込みデータEWD_a〜EWD_dをそれぞれ生成する。選択される書込みデータは、たとえば、データレジスタR1、R3、R6、R13に書き込むためのそれぞれ8ビットのデータである。書込みデータEWD_a〜EWD_dは、データレジスタR0〜R3、R4〜R7、R8〜R11、R12〜R15に書き込まれるそれぞれ32ビットのデータである。データ入出力部12は、書込みデータEWD_a〜EWD_dが第0〜31ビット、第32〜63ビット、第64〜95ビット、第96〜127ビットにそれぞれ対応する128ビットの拡張書込みデータEWDを出力する。
図8では、データ拡張・選択部12aの詳細な構成が示される。なお、データ拡張・選択部12b〜12dも、同等の構成を有する。データ拡張・選択部12aは、書込みデータWDが入力されるセレクタ120a、120b、120c、120dと、アドレスレジスタAR0〜AR3に書き込まれたアドレスiAR0〜iAR3に基づいてセレクタ120a〜120dに制御信号を出力する比較器122a、122b、122c、122dとを有する。セレクタ120a〜120dは、32ビットの書込みデータWDから、8ビットずつ選択して出力する。ここで選択されるデータは、32ビットの書込みデータEWD_a〜EWD_dの一部として出力される。一方、比較器122a〜122dは、入力されるアドレスを、データレジスタR0〜R3のアドレス「0x00」、「0x01」、「0x02」、「0x03」と比較し、一致する場合には「1」を、一致しない場合には「0」をそれぞれセレクタ120a〜120dに出力する。こうして、セレクタ120a〜120dからは、32ビットの書込みデータWDから、「1」の制御信号に対応した8ビットのデータが選択される。そして、選択された8ビットデータを含む、データレジスタR0〜R3に書き込むための32ビットの書込みデータEWD_aが出力される。
同様にして、データ拡張・選択部12bからは、選択された8ビットのデータを含む(または含まない)、データレジスタR4〜R7に書き込むための32ビットの書込みデータEWD_bが出力される。また、データ拡張・選択部12cからは、選択された8ビットのデータを含む(または含まない)、データレジスタR8〜R11に書き込むための32ビットの書込みデータEWD_cが出力される。そして、データ拡張・選択部12dからは、選択された8ビットのデータを含む(または含まない)、データレジスタR12〜R15に書き込むためのそれぞれ8ビットのデータからなる32ビットの書込みデータEWD_dが出力される。
図5に戻る。上記のようにして生成される書込みデータEWD_a〜EWD_dは、拡張書込みデータEWDとして、データレジスタR0〜R3、R4〜R7、R8〜R11、R12〜R15に伝送される。よって、同時アクセスアドレスデコーダ10から出力される選択信号SCS0〜SCS3、SCS4〜SCS7、SCS8〜SCS11、SCS12〜SCS15のいずれかが入力されるデータレジスタに、書込みデータEWD_a〜EWD_d内の対応するデータが書き込まれる。たとえば、データレジスタR1、R3、R6、R13は、選択信号SCS1、SCS3、SCS6、SCS13が入力されるので、書込みデータEWD_a〜EWD_d内のデータレジスタR1、R3、R6、R13に対応するデータがそれぞれ書き込まれる。
上記のように、本実施形態によれば、複数のデータレジスタに対し同時に書込みデータを書き込むことができる。よって、データレジスタのアクセス速度が向上する。
[データ読出制御]
図9は、本実施形態においてデータレジスタからの読み出しを制御するレジスタ制御装置の構成例を示す。図9において、アドレスデコーダ4、同時アクセスアドレス設置部8、同時アクセスアドレスデコーダ10、OR回路群14a〜14d、及びデータレジスタR0〜R15は、図5で示したデータ書込制御の構成と共通する。図9では、データ入出力部12の代わりにデータ入出力部12´が設けられる。ただし、ここでは説明の便宜上データ入出力部12、12´を区別するが、これらは一体であってもよい。なお、ここでは、モード信号MDは図示を省略し、データレジスタR0〜R15において読出し動作が指定されたものとして説明がなされる。
図9は、本実施形態においてデータレジスタからの読み出しを制御するレジスタ制御装置の構成例を示す。図9において、アドレスデコーダ4、同時アクセスアドレス設置部8、同時アクセスアドレスデコーダ10、OR回路群14a〜14d、及びデータレジスタR0〜R15は、図5で示したデータ書込制御の構成と共通する。図9では、データ入出力部12の代わりにデータ入出力部12´が設けられる。ただし、ここでは説明の便宜上データ入出力部12、12´を区別するが、これらは一体であってもよい。なお、ここでは、モード信号MDは図示を省略し、データレジスタR0〜R15において読出し動作が指定されたものとして説明がなされる。
まず、逐次アクセスの場合、図5における説明と同様に、たとえば、データレジスタR1、R3、R6、R13にアクセスが行われ、異なるタイミングでデータの読み出しが行われる。
次に、同時アクセスの場合、同時アクセスアドレス設定部8は、アドレスレジスタAR0〜AR3にデータレジスタR1、R3、R6、R13のアドレスを保持した状態で、同時アクセス用アドレスの指定に応答して複数のデータレジスタのアドレスを出力する。たとえば、データが書き込まれたデータレジスタR1、R3、R6、R13のアドレスが出力される。このとき、同時アクセスアドレス設定部8の動作は、図6と同じである。
同時アクセスアドレスデコーダ10は、同時アクセスアドレス設定部8から複数のデータレジスタのアドレスが入力され、当該複数のデータレジスタへ、同時アクセス用の選択信号を同時に出力する。同時アクセス用の選択信号SCS0〜SCS15は、OR回路群14a〜14dを介してデータレジスタR0〜R15に入力される。同時アクセスアドレスデコーダ10の動作は、図7と同じである。
選択信号が入力されたデータレジスタからは、そこに書き込まれたデータが読み出される。データレジスタR0〜R15から読み出されるデータは、読出しデータRD0〜RD15である。たとえば、同時アクセスアドレスデコーダ10から、データレジスタR1、R3、R6、R13に選択信号SCS1、SCS3、SCS6、SCS13が入力されると、データレジスタR1、R3、R6、R13から読出しデータRD1、RD3、RD6、RD13がそれぞれ並行して読み出される。
データ入出力部12´は、前記複数のレジスタから並行して読み出されたデータを同時アクセス用のアドレスからの読出しデータRDとして出力する。たとえば、データレジスタR1、R3、R6、R13からそれぞれ並行して読み出される読出しデータRD1、RD3、RD6、RD13が、読出し用アドレスからの読出しデータRDとして、バス2のデータバスに出力される。読出しデータRDは、バス2を介して図示されないCPUに伝送される。
図10は、データ入出力部12´の詳細な構成例を示す。データ入出力部12´は、セレクタ120a´、120b´、120c´、120d´を有する。セレクタ120a´〜120d´には、データレジスタR0〜R15から読みだされた読出しデータRD0〜RD15が入力される。また一方、セレクタ120a´〜120d´には、アドレスレジスタAR0〜AR3に書き込まれたアドレスiAR0〜iAR3、たとえばデータレジスタR1、R3、R6、R13のアドレスがそれぞれ入力される。セレクタ120a´〜120d´は、読出しデータRD0〜RD15のうち、入力されたアドレスのデータレジスタから読み出された読出しデータを、それぞれ選択して出力する。読出しデータは、それぞれ8ビットである。セレクタ120a´〜120d´から出力された読出しデータは、それぞれ第24〜31ビット、第12〜23ビット、第8〜15ビット、第0〜7ビットのデータとして、合計32ビットの読出しデータRDを形成する。こうして、たとえばデータレジスタR1、R3、R6、R13から並行して読み出された読出しデータRD1、RD3、RD6、RD13が、読出しデータRDとして出力される。
上記のように、本実施形態によれば、複数のデータレジスタから同時に読出しデータを読み出すことができる。よって、データレジスタのアクセス速度が向上する。
[プログラム例]
本実施形態では、上述のようにして、複数のデータレジスタのアドレスを同時アクセスアドレス設定部に保持させた後は、これらのデータレジスタに同時にアクセスすることが可能になる。このことを、CPUで実行されるプログラム例で示す。
本実施形態では、上述のようにして、複数のデータレジスタのアドレスを同時アクセスアドレス設定部に保持させた後は、これらのデータレジスタに同時にアクセスすることが可能になる。このことを、CPUで実行されるプログラム例で示す。
図11は、データアクセスプログラムの例を示す。図11(A)の第1〜第12行は、データレジスタR1、R3、R6、R13にアクセスしてデータを書込むためのプログラムを示し、第13〜第15行目は、データレジスタR1、R3、R6、R13に同時にデータを書き込むためのプログラムを示す。ここでは、即値ロード命令「ldi」によりCPUレジスタr0、r1にデータとアドレスがそれぞれロードされ、ワードストア命令「st」によりCPUレジスタr0にロードされた値がr1にロードされたアドレスに書き込まれる。
たとえば、第1行でアドレスレジスタAR0のアドレス「#0x10」がr0にロードされ、第2行でデータレジスタR1のアドレス「#0x01」がr1にロードされる。すると、第3行でアドレス「#0x10」のアドレスレジスタAR0にデータレジスタR1のアドレス「#0x01」が書き込まれる。また、第4行でアドレスレジスタAR1のアドレス「#0x14」がr0にロードされ、第5行でデータレジスタR3のアドレス「#0x03」がr1にロードされる。すると、第6行でアドレス「#0x14」のアドレスレジスタAR1にデータレジスタR3のアドレス「#0x03」が書き込まれる。さらに、第7行でアドレスレジスタAR2のアドレス「#0x18」がr0にロードされ、第8行でデータレジスタR6のアドレス「#0x06」がr1にロードされる。すると、第9行でアドレス「#0x18」のアドレスレジスタAR2にデータレジスタR6のアドレス「#0x06」が書き込まれる。そして、第10行でアドレスレジスタAR3のアドレス「#0x1C」がr0にロードされ、第11行でデータレジスタR13のアドレス「#0x0D」がr1にロードされる。すると、第12行でアドレス「#0x1C」のアドレスレジスタAR3にデータレジスタR6のアドレス「#0x0D」が書き込まれる。
次いで、第13行で同時アクセス用アドレス「#0x20」がr0にロードされ、第14行でデータレジスタR1、R3、R6、R13に書き込む書込みデータ「#0x113366DD」がr1にロードされると、第15行でアドレス「#0x20」の同時アクセス用アドレスレジスタにr1の値が書き込むワードストア命令が実行される。すると、図5〜8で説明したように、書込みデータ「#0x113366DD」のうち「11」、「33」、「66」、「DD」がそれぞれデータレジスタR1、R3、R6、R13に同時に書き込まれる。
本実施形態では、図11(A)の第1〜第12行までを一回実行することで、同時アクセスアドレス設定部8にデータレジスタR1、R3、R6、R13のアドレスが保持される。よって、以降、第13〜15行に対応する命令群を実行することで、データレジスタR1、R3、R6、R13に逐次アクセスすることなく、データレジスタR1、R3、R6、R13に対し同時アクセスしてデータの書込み、またはデータの読出しを行うことができる。たとえば、図11(B)に示すように、第16〜18行の命令では、第16行で同時アクセス用レジスタのアドレス「#0x20」がr0にロードされ、第17行でデータレジスタR1、R3、R6、R13に書き込む書込みデータ「#0x00FF55AA」がr1にロードされる。第18行でアドレス「#0x20」の同時アクセス用アドレスレジスタにr1の値を書き込むワードストア命令が実行される。これにより、「00」、「FF」、「55」、「AA」がそれぞれデータレジスタR1、R3、R6、R13に同時に書き込まれる。
このように、本実施形態によれば、複数のデータレジスタのアドレスを同時アクセスアドレス設定部に保持させた後は、これらのデータレジスタに対するアクセスが同時に可能になるので、バスウェイト時間が軽減され、レジスタアクセス速度が向上する。また、CPUに実行させるプログラムのコーディング量も減少させることができる。また、本実施形態によれば、たとえば、複数の計測値を同じレジスタに頻繁に読み書きしたり、レジスタ値により起動する複数のペリフェラル(たとえば、タイマや通信回路)を同時起動したりすることができる。
以下、本実施形態のレジスタ制御装置の具体的な動作を示す。まず、同時アクセスによるデータの書込みと、逐次アクセスによるデータの書込みを示す。次いで、同時アクセスによるデータの読出しと、逐次アクセスによるデータの読出しを示す。
[同時アクセスによるデータ書込み]
図12〜図15は、同時アクセスによるデータ書込みの具体例を示す。図12〜図15は、図5〜8で示した構成に具体的なデータの値を対応付けた図である。図12に示すように、同時アクセスアドレス設定部8は、データレジスタR1、R3、R6、R13のアドレスをそれぞれ保持した状態で同時アクセス用アドレス「0x20」を示すアドレス信号Addが入力されると、これに応答して、データレジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」を同時アクセスアドレスデコーダ10に出力する。
図12〜図15は、同時アクセスによるデータ書込みの具体例を示す。図12〜図15は、図5〜8で示した構成に具体的なデータの値を対応付けた図である。図12に示すように、同時アクセスアドレス設定部8は、データレジスタR1、R3、R6、R13のアドレスをそれぞれ保持した状態で同時アクセス用アドレス「0x20」を示すアドレス信号Addが入力されると、これに応答して、データレジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」を同時アクセスアドレスデコーダ10に出力する。
具体的には、図13に示すように、同時アクセスアドレス設定部8では、アドレス比較器80が、同時アクセス用アドレス「0x20」が入力されることで、「1」の同時アクセス検知信号SAをセレクタ82a〜82dに出力する。また、セレクタ82a〜82dには、アドレスレジスタAR0〜AR3から、レジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」がそれぞれ入力される。よって、セレクタ82a〜82dは、「1」の同時アクセス検知信号SAに応答して、レジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」をそれぞれ同時アクセスアドレスデコーダ10に出力する。
図12に戻ると、同時アクセスアドレスデコーダ10は、同時アクセス用の選択信号SCS0〜15をOR回路群14a〜14dを介してデータレジスタR0〜R15に出力する。このとき、選択信号SCS1、SCS3、SCS6、SCS13は「1」であり、他は「0」である。ここで、デコード部10aについて具体的に図14に示す。図示するように、アドレス比較器100_0〜15には、レジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」がそれぞれ入力される。すると、アドレス比較器100_4、100_13から一致を示す比較結果「1」が、他のアドレス比較器からは不一致を示す比較結果「0」がOR回路102a〜102dに出力される。一方、このとき、同時アクセス検知信号SAは「1」である。よって、AND回路104a〜104dからは、「0」の選択信号SCS0、「1」の選択信号SCS1、「0」の選択信号SCS2、「1」の選択信号SCS3がそれぞれデータレジスタR0〜R3に出力される。
図12に戻る。デコード部10aの上記の動作と同様に、デコード部10bからは、「0」の選択信号SCS4、「0」の選択信号SCS5、「1」の選択信号SCS6、「0」の選択信号SCS7がそれぞれデータレジスタR4〜R7に出力される。また、デコード部10cからは、「0」の選択信号SCS8〜SCS11がそれぞれデータレジスタR8〜R11に出力される。そして、デコード部10dからは、「0」の選択信号SCS12、「1」の選択信号SCS13、「0」の選択信号SCS14、「0」の選択信号SCS15がそれぞれデータレジスタR12〜R15に出力される。
データ入出力部12は、「0x113366DD」の書込みデータWDが入力される。すると、データレジスタR0〜R3に書込みデータ「0xXX11XX33」が、データレジスタR4〜R7に書込みデータ「0xXXXX66XX」が、データレジスタR8〜R11に書込みデータ「0xXXXXXXXX」が、データレジスタR12〜R15に書込みデータ「0xXXDDXXXX」がそれぞれ出力される。具体的には、図15に示すように、データ入出力部12のデータ拡張・選択部12aでは、書込みデータWDの値「0x113366DD」が、「0x11」、「0x33」、「0x66」、「0xDD」ごとにセレクタ120a〜120dに入力される。一方、同時アクセスアドレス設定部8から、レジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」が比較器122a〜122dに入力される。すると、比較器122aは、アドレス「0x01」、「0x03」、「0x06」、「0x0D」のそれぞれと「0x00」の比較結果「0」、「0」、「0」、「0」をセレクタ120aに出力する。セレクタ120aは、これに応答して、無効な書込みデータ「0xXX」を出力する。また、比較器122bは、アドレス「0x01」、「0x03」、「0x06」、「0x0D」のそれぞれと「0x01」の比較結果「1」、「0」、「0」、「0」をセレクタ120bに出力する。セレクタ120bは、これに応答して、有効な書込みデータ「0x11」を出力する。さらに、比較器122cは、アドレス「0x01」、「0x03」、「0x06」、「0x0D」のそれぞれと「0x02」の比較結果「0」、「0」、「0」、「0」をセレクタ120cに出力する。セレクタ120cは、これに応答して、無効な書込みデータ「0xXX」を出力する。そして、比較器122dは、アドレス「0x01」、「0x03」、「0x06」、「0x0D」のそれぞれと「0x03」の比較結果「0」、「1」、「0」、「0」をセレクタ120dに出力する。セレクタ120dは、これに応答して、有効な書込みデータ「0x33」を出力する。こうして、データ拡張・選択部12aからは、「0xXX11XX33」の書込みデータEWD_aが出力される。同様にして、データ拡張・選択部12bからは、「0xXXXX66XX」の書込みデータEWD_bが、データ拡張・選択部12cからは、「0xXXXXXXXX」の書込みデータEWD_cが、そしてデータ拡張・選択部12dからは、「0xXXDDXXXX」の書込みデータEWD_dがそれぞれ出力される。
図12に戻る。データレジスタR0〜R3では、「0xXX11XX33」の書込みデータEWD_aのうち「0x11」がデータレジスタR1に、「0x33」がデータレジスタR3に書き込まれる。また、データレジスタR4〜R7では、「0xXXXX66XX」の書込みデータEWD_bのうち「0x66」がデータレジスタR6に書き込まれる。また、データレジスタR12〜R15では、「0xXXDDXXXX」の書込みデータEWD_dのうち「0xDD」がデータレジスタR13に書き込まれる。こうして、データレジスタR1、R3、R6、R13に、同時にデータが書き込まれる。
[逐次アクセスによるデータ書込み]
図16〜図19は、逐次アクセスによるデータ書込みの具体例を示す。図16〜図19は、図5〜8で示した構成に具体的なデータの値を対応付けた図である。図16〜図19では、同時アクセスアドレス設定部8がデータレジスタR1、R3、R6、R13のアドレスをそれぞれ保持した状態で、データレジスタR4、R5、R6、R7にデータ「0x44」、「0x55」、「0x66」、「0x77」がそれぞれ書き込まれる場合が示される。
図16〜図19は、逐次アクセスによるデータ書込みの具体例を示す。図16〜図19は、図5〜8で示した構成に具体的なデータの値を対応付けた図である。図16〜図19では、同時アクセスアドレス設定部8がデータレジスタR1、R3、R6、R13のアドレスをそれぞれ保持した状態で、データレジスタR4、R5、R6、R7にデータ「0x44」、「0x55」、「0x66」、「0x77」がそれぞれ書き込まれる場合が示される。
図16に示すように、同時アクセスアドレス設定部8は、データレジスタR4のアドレス「0x04」を示すアドレス信号Addが入力されると、これに応答して、データレジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」ではなく、データレジスタR4、R5、R6、R7のアドレス「0x04」、「0x05」、「0x06」、「0x07」を同時アクセスアドレスデコーダ10に出力する。
具体的には、図17に示すように、同時アクセスアドレス設定部8では、アドレス比較器80が、同時アクセス用アドレス「0x04」が入力されることで、「0」の同時アクセス検知信号SAをセレクタ82a〜82dに出力する。また、セレクタ82a〜82dには、アドレスレジスタAR0〜AR3から、レジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」がそれぞれ入力される。一方、セレクタ82a〜82dには、アドレス「0x04」の第2〜3ビットに「0x00」、「0x01」、「0x02」、「0x03」を加えたアドレス、つまりデータレジスタR4〜R7のアドレス「0x04」、「0x05」、「0x06」、「0x07」が入力される。この場合、セレクタ82a〜82dは、「0」の同時アクセス検知信号SAに応答して、レジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」ではなく、データレジスタR4〜R7のアドレス「0x04」、「0x05」、「0x06」、「0x07」をそれぞれ同時アクセスアドレスデコーダ10に出力する。
図16に戻る。同時アクセスアドレスデコーダ10は、同時アクセス用の選択信号SCS0〜15をOR回路群14a〜14dを介してデータレジスタR0〜R15に出力する。このとき、選択信号SCS0〜SCS15は「0」である。ここで、デコード部10bについて具体的に図18に示す。データレジスタR4〜R7に対応するデコード部10bは、図7で示したデコード部10aと同等の構成を有する。図示するように、デコード部10bのアドレス比較器100_0〜15には、レジスタR4〜R7のアドレス「0x04」、「0x05」、「0x06」、「0x07」がそれぞれ入力される。すると、アドレス比較器100_0、100_5、100_10、100_15から一致を示す比較結果「1」が、他のアドレス比較器からは不一致を示す比較結果「0」がOR回路102a〜102dに出力される。一方、このとき、同時アクセス検知信号SAは「0」である。よって、AND回路104a〜104dからは、「0」の選択信号SCS4〜SCS7がそれぞれデータレジスタR4〜R7に出力される。同様にして、デコード部10aからは、「0」の選択信号SCS0〜SCS3がそれぞれデータレジスタR0〜R3に出力される。また、デコード部10cからは、「0」の選択信号SCS8〜SCS11がそれぞれデータレジスタR8〜R11に出力される。そして、デコード部10dからは、「0」の選択信号SCS12〜SCS15がそれぞれデータレジスタR12〜R15に出力される。
図16に戻る。同時アクセスアドレスデコーダ10からの同時アクセス用の選択信号SCS0〜15がすべて「0」である一方、アドレスデコーダ4からは、図1で説明した動作により、「0」の選択信号SC0〜SC3、SC8〜SC15と、「1」の選択信号SC4〜SC7が出力される。よって、OR回路群14a、14c、14dにより「0」の選択信号がデータレジスタR0〜R3、R8〜R15に出力され、OR回路群14bにより「1」の選択信号がデータレジスタR4〜R6に出力される。
また、データ入出力部12には、「0x44556677」の書込みデータWDが入力される。すると、データレジスタR0〜R3に書込みデータ「0xXXXXXXXX」が、データレジスタR4〜R7に書込みデータ「0x44556677」が、データレジスタR8〜R11に書込みデータ「0xXXXXXXXX」が、データレジスタR12〜R15に書込みデータ「0xXXXXXXXX」がそれぞれ出力される。
具体的には、図19に示すように、データ入出力部12のデータ拡張・選択部12aでは、書込みデータWDの値「0x44556677」が、「0x44」、「0x55」、「0x66」、「0x77」ごとにセレクタ120a〜120dに入力される。一方、同時アクセスアドレス設定部8から、レジスタR4〜R7のアドレス「0x04」、「0x05」、「0x06」、「0x07」が比較器122a〜122dに入力される。すると、比較器122aは、アドレス「0x04」、「0x05」、「0x06」、「0x07」のそれぞれと「0x00」の比較結果「0」、「0」、「0」、「0」をセレクタ120aに出力する。セレクタ120aは、これに応答して、無効な書込みデータ「0xXX」を出力する。また、比較器122bは、アドレス「0x04」、「0x05」、「0x06」、「0x07」のそれぞれと「0x01」の比較結果「0」、「0」、「0」、「0」をセレクタ120bに出力する。セレクタ120bは、これに応答して、無効な書込みデータ「0xXX」を出力する。さらに、比較器122cは、アドレス「0x04」、「0x05」、「0x06」、「0x07」のそれぞれと「0x02」の比較結果「0」、「0」、「0」、「0」をセレクタ120cに出力する。セレクタ120cは、これに応答して、無効な書込みデータ「0xXX」を出力する。そして、比較器122dは、アドレス「0x04」、「0x05」、「0x06」、「0x07」のそれぞれと「0x03」の比較結果「0」、「0」、「0」、「0」をセレクタ120dに出力する。セレクタ120dは、これに応答して、無効な書込みデータ「0xXX」を出力する。こうして、データ拡張・選択部12aからは、「0xXXXXXXXX」の書込みデータEWD_aが出力される。
データ拡張・選択部12bでは、比較器122aの出力が「1」、「0」、「0」、「0」であり、比較器122bの出力が「0」、「1」、「0」、「0」であり、比較器122cの出力が「0」、「0」、「1」、「0」であり、比較器122dの出力が「0」、「0」、「0」、「1」である。よって、セレクタ120a〜120dからは、それぞれ「0x44」、「0x55」、「0x66」、「0x77」が出力される。よって、データ拡張・選択部12bからは、「0x44556677」の書込みデータEWD_bが出力される。また、データ拡張・選択部12cからは、「0xXXXXXXXX」の書込みデータEWD_cが、そしてデータ拡張・選択部12dからは、「0xXXXXXXXX」の書込みデータEWD_dがそれぞれ出力される。
図16に戻る。データレジスタR4〜R7では、「0x44556677」の書込みデータEWD_bのうち「0x44」がデータレジスタR4に、「0x55」がデータレジスタR5に、「0x66」がデータレジスタR6に、「0x77」がデータレジスタR7にそれぞれ書き込まれる。一方、データレジスタR0〜R3、R8〜R15では、「0xXXXXXXXX」の書込みデータEWD_a、EWD_c、EWD_dが伝送されるが、選択信号CS0〜CS3、CS11〜CS15が「0」であるので、書込みは行われない。こうして、同時アクセスアドレス設定部に保持されるデータレジスタのアドレスを用いることなく、データレジスタR4〜R7にデータが書き込まれる。
[同時アクセスによるデータ読出し]
図20、21は、同時アクセスによるデータ読出しの具体例を示す。図20、図21は、図9、10で示した構成に具体的なデータの値を対応付けた図である。図20に示すように、同時アクセスアドレス設定部8は、データレジスタR1、R3、R6、R13のアドレスをそれぞれ保持した状態で同時アクセス用アドレス「0x20」を示すアドレス信号Addが入力されると、これに応答して、データレジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」を同時アクセスアドレスデコーダ10に出力する。同時アクセスレコーダ10の具体的な動作は、図13と同じであるので、ここでは説明を省略する。
図20、21は、同時アクセスによるデータ読出しの具体例を示す。図20、図21は、図9、10で示した構成に具体的なデータの値を対応付けた図である。図20に示すように、同時アクセスアドレス設定部8は、データレジスタR1、R3、R6、R13のアドレスをそれぞれ保持した状態で同時アクセス用アドレス「0x20」を示すアドレス信号Addが入力されると、これに応答して、データレジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」を同時アクセスアドレスデコーダ10に出力する。同時アクセスレコーダ10の具体的な動作は、図13と同じであるので、ここでは説明を省略する。
同時アクセスアドレスデコーダ10は、同時アクセス用の選択信号SCS0〜SCS15をOR回路群14a〜14dを介してデータレジスタR0〜R15に出力する。このとき、選択信号SCS1、SCS3、SCS6、SCS13は「1」であり、他は「0」である。このときのデコード部10a〜10dは、図14と同じ動作を行うことで選択信号を出力する。
データレジスタR0〜R15において、データレジスタR1から「0x11」が、データレジスタR3から「0x33」が、データレジスタR6から「0x66」が、データレジスタR13から「0xDD」が読み出され、データ入出力部12´に入力される。データ入出力部12´は、これらのデータを連結して「0x113366DD」の読出データRDとして出力する。具体的には、図21に示すように、データレジスタR0〜R15からの読出しデータRD0〜RD15が、セレクタ120a´〜120d´に入力される。ここで、読出しデータRD0は「0x00」、読出しデータRD1は「0x11」、読出しデータRD2は「0x22」、読出しデータRD3は「0x33」、・・・、読出しデータRD15は「0xFF」であるとする。一方、セレクタ120a´〜120d´には、アドレスレジスタAR0〜AR3からデータレジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」がそれぞれ入力される。セレクタ120a´〜120d´は、読出しデータRD0〜RD15のうち、入力されたアドレスのデータレジスタから読み出された読出しデータをそれぞれ選択して出力する。たとえば、セレクタ120a´は、データレジスタR1のアドレス「0x01」が入力されるので、データレジスタR1からの読出しデータRD1、つまり「0x11」を出力する。また、セレクタ120b´は、データレジスタR3のアドレス「0x03」が入力されるので、データレジスタR3からの読出しデータRD3、つまり「0x33」を出力する。さらに、セレクタ120c´は、データレジスタR6のアドレス「0x06」が入力されるので、データレジスタR6からの読出しデータRD6、つまり「0x66」を出力する。そして、セレクタ120d´は、データレジスタR13のアドレス「0x0D」が入力されるので、データレジスタR13からの読出しデータRD13、つまり「0xDD」を出力する。そして、これらの読出しデータが連結され、「0x113366DD」の読出しデータRDとして出力される。こうして、データレジスタR1、R3、R6、R13から、同時にデータが読み出される。
[逐次アクセスによるデータ読出し]
図22、23は、逐次アクセスによるデータ読出しの具体例を示す。図22、図23は、図9、10で示した構成に具体的なデータの値を対応付けた図である。図22、23では、同時アクセスアドレス設定部8がデータレジスタR1、R3、R6、R13のアドレスをそれぞれ保持した状態で、データレジスタR4、R5、R6、R7からデータ「0x44」、「0x55」、「0x66」、「0x77」がそれぞれ読み出される場合が示される。図22に示すように、同時アクセスアドレス設定部8は、データレジスタR4のアドレス「0x04」を示すアドレス信号Addが入力されると、これに応答して、データレジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」ではなく、データレジスタR4、R5、R6、R7のアドレス「0x04」、「0x05」、「0x06」、「0x07」を同時アクセスアドレスデコーダ10に出力する。このときの同時アクセスアドレス設定部8の動作は、図17で示した動作と同じであるので、ここでは説明を省略する。
図22、23は、逐次アクセスによるデータ読出しの具体例を示す。図22、図23は、図9、10で示した構成に具体的なデータの値を対応付けた図である。図22、23では、同時アクセスアドレス設定部8がデータレジスタR1、R3、R6、R13のアドレスをそれぞれ保持した状態で、データレジスタR4、R5、R6、R7からデータ「0x44」、「0x55」、「0x66」、「0x77」がそれぞれ読み出される場合が示される。図22に示すように、同時アクセスアドレス設定部8は、データレジスタR4のアドレス「0x04」を示すアドレス信号Addが入力されると、これに応答して、データレジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」ではなく、データレジスタR4、R5、R6、R7のアドレス「0x04」、「0x05」、「0x06」、「0x07」を同時アクセスアドレスデコーダ10に出力する。このときの同時アクセスアドレス設定部8の動作は、図17で示した動作と同じであるので、ここでは説明を省略する。
同時アクセスアドレスデコーダ10は、同時アクセス用の選択信号SCS0〜15をOR回路群14a〜14dを介してデータレジスタR0〜R15に出力する。このとき、選択信号SCS0〜SCS15はすべて「0」である。このときのデコード部10a〜10dの動作は、図18で説明した動作と同じなので、ここでは説明を省略する。一方、アドレスデコーダ4からは、図1で説明した動作により、「0」の選択信号SC0〜SC3、SC8〜SC15と、「1」の選択信号SC4〜SC7が出力される。よって、OR回路群14a、14c、14dにより「0」の選択信号がデータレジスタR0〜R3、R8〜R15に出力され、OR回路群14bにより「1」の選択信号がデータレジスタR4〜R7に出力される。
データレジスタR0〜R15では、データレジスタR4から「0x44」が、データレジスタR5から「0x55」が、データレジスタR6から「0x66」が、データレジスタR7から「0x77」が読み出され、データ入出力部12´に入力される。データ入出力部12´は、これらのデータを連結して「0x44556677」の読出データRDとして出力する。具体的には、図23に示すように、データレジスタR0〜R15からの読出しデータRD0〜RD15が、セレクタ120a´〜120d´に入力される。ここで、読出しデータRD0は「0x00」、読出しデータRD1は「0x11」、読出しデータRD2は「0x22」、読出しデータRD3は「0x33」、・・・、読出しデータRD15は「0xFF」であるとする。一方、セレクタ120a´〜120d´には、アドレスレジスタAR0〜AR3から読み出されたデータレジスタR1、R3、R6、R13のアドレス「0x01」、「0x03」、「0x06」、「0x0D」ではなく、データレジスタR4〜R7のアドレス「0x04」、「0x05」、「0x06」、「0x07」がそれぞれ入力される。セレクタ120a´〜120d´は、読出しデータRD0〜RD15のうち、入力されたアドレスのデータレジスタから読み出された読出しデータをそれぞれ選択して出力する。たとえば、セレクタ120a´は、データレジスタR4のアドレス「0x04」が入力されるので、データレジスタR4からの読出しデータRD4、つまり「0x44」を出力する。また、セレクタ120b´は、データレジスタR5のアドレス「0x05」が入力されるので、データレジスタR5からの読出しデータRD5、つまり「0x55」を出力する。さらに、セレクタ120c´は、データレジスタR6のアドレス「0x06」が入力されるので、データレジスタR6からの読出しデータRD6、つまり「0x66」を出力する。そして、セレクタ120d´は、データレジスタR7のアドレス「0x07」が入力されるので、データレジスタR7からの読出しデータRD7、つまり「0x77」を出力する。そして、これらの読出しデータが連結され、「0x44556677」の読出しデータRDとして出力される。こうして、データレジスタR4〜R7から、データが読み出される。
上述したように、同時アクセスアドレス設定部8に同時アクセス用のアドレスが設定されることで、そのアドレスのレジスタに同時にアクセスすることが可能になる。そして、同時アクセス用のアドレスが設定された場合であっても、逐次アクセスも可能である。よって、たとえば、同時アクセスが必要なときには同時アクセス用のアドレスを指定してデータの読み書きを行い、それ以外の場合には逐次アクセスを行うことで、任意のレジスタにアクセスすることができる。このように、データレジスタへの柔軟なアクセスが可能となる。
2:バス、4:アドレスデコーダ、8:同時アクセスアドレス設定部、
10:同時アクセスアドレスデコーダ、12:データ入出力部、
R0〜R15:データレジスタ、 AR0〜AR3:アドレスレジスタ
10:同時アクセスアドレスデコーダ、12:データ入出力部、
R0〜R15:データレジスタ、 AR0〜AR3:アドレスレジスタ
Claims (5)
- 複数のレジスタのアドレスをそれぞれ保持し、前記複数のレジスタのアドレスとは異なる第1のアドレスの指定に応答して前記複数のレジスタのアドレスを出力するアドレス設定部と、
前記アドレス設定部から前記複数のレジスタのアドレスが入力され、当該複数のレジスタを選択する選択信号を同じタイミングで出力する第1のデコーダと、
前記第1のアドレスに対する書込みデータを前記選択信号により選択される複数のレジスタに並行して書き込み、また、前記選択信号により選択される複数のレジスタから並行して読み出したデータを前記第1のアドレスからの読出しデータとして出力するデータ入出力部と、
を有する制御装置。 - 請求項1において、
指定されたアドレスのレジスタを選択する選択信号を出力する第2のデコーダをさらに有し、
前記複数のレジスタのアドレスが前記アドレス設定部に保持された状態で当該複数のレジスタ以外のレジスタのアドレスが指定されたときに、前記アドレス設定部は前記複数のレジスタを選択する選択信号を出力せず、前記第2のデコーダは前記複数のレジスタ以外の指定されたアドレスのレジスタを選択する選択信号を出力する、
制御装置。 - 請求項1または2において、
前記第1のアドレスは、架空のレジスタのアドレスである、
制御装置。 - 複数のレジスタのアドレスをアドレス設定部にそれぞれ保持した状態で、前記複数のレジスタのアドレスとは異なる第1のアドレスが指定されたときに、第1のデコーダが、当該複数のレジスタを選択する選択信号を同じタイミングで出力し、
データ入出力部が、前記第1のアドレスに対する書込みデータを前記選択信号により選択される複数のレジスタに並行して書き込み、また、前記選択信号により選択される複数のレジスタから並行して読み出したデータを前記第1のアドレスからの読出しデータとして出力する、
制御方法。 - 請求項4において、
前記複数のレジスタのアドレスが前記アドレス設定部に保持された状態で当該複数のレジスタ以外のレジスタのアドレスが指定されたときに、前記第1のデコーダが、前記複数のレジスタを選択する選択信号を出力せず、第2のデコーダが、前記複数のレジスタ以外の指定されたアドレスのレジスタを選択する選択信号を出力する、
制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011130329A JP2012256299A (ja) | 2011-06-10 | 2011-06-10 | 制御装置、及び制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011130329A JP2012256299A (ja) | 2011-06-10 | 2011-06-10 | 制御装置、及び制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2012256299A true JP2012256299A (ja) | 2012-12-27 |
Family
ID=47527791
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011130329A Withdrawn JP2012256299A (ja) | 2011-06-10 | 2011-06-10 | 制御装置、及び制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2012256299A (ja) |
-
2011
- 2011-06-10 JP JP2011130329A patent/JP2012256299A/ja not_active Withdrawn
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8429337B2 (en) | Apparatus for controlling NAND flash memory | |
| WO2010077770A1 (en) | Device and method for configuring the same | |
| JP5832901B2 (ja) | シリアル不揮発性メモリに対する向上されたアドレス能力 | |
| JPH0664911B2 (ja) | 内容でアドレス指定可能なメモリ・アレイ | |
| JP2773471B2 (ja) | 情報処理装置 | |
| JPS61118850A (ja) | マイクロプロセツサ | |
| CN108959180B (zh) | 一种数据处理方法及系统 | |
| JP2012256299A (ja) | 制御装置、及び制御方法 | |
| US7702860B2 (en) | Memory access apparatus | |
| US7870348B2 (en) | Processing device | |
| JP5839632B2 (ja) | シリアル不揮発性メモリに対する向上されたアドレス能力 | |
| KR101555545B1 (ko) | 메모리 제어장치 및 정보처리장치 | |
| JP3923010B2 (ja) | メモリ制御回路 | |
| KR970012141A (ko) | 파이프라인 처리를 수행하는 데이터 처리 장치 | |
| US8484437B2 (en) | Data processing apparatus using pre-fetched data | |
| JPH04205448A (ja) | 情報処理装置 | |
| JP3588951B2 (ja) | マイクロコンピュータのプログラム変更装置 | |
| JPH07105171A (ja) | データ処理装置 | |
| JPH09305476A (ja) | データ処理装置 | |
| JPH0433059B2 (ja) | ||
| WO1995022110A1 (en) | Write-read data operation for microprocessor | |
| JPH0192862A (ja) | データ処理装置 | |
| JPS5975482A (ja) | バツフア・ストレ−ジ制御方式 | |
| JPH05127903A (ja) | 並列処理マイクロプロセツサ | |
| JP2009199258A (ja) | 情報処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140902 |