【解決手段】半導体装置は、データの書き込みと読み出しとが非同期で行われる記憶部と、記憶部からデータの読み出しを行う場合に制御信号の信号レベルを第1のレベルに遷移させ、解除信号の信号レベルが所定のレベルに遷移した場合に制御信号の信号レベルを第2のレベルに遷移させる制御信号出力部と、制御信号の信号レベルが第1のレベルに遷移した後に、出力信号の信号レベルを順次所定のレベルに遷移させる縦続接続された複数のレジスタを含み、複数のレジスタのうちのいずれかの出力信号を解除信号として出力する解除信号出力部と、制御信号の信号レベルが第1のレベルの場合に記憶部に記憶されたデータの更新を禁止し、制御信号の信号レベルが第2のレベルの場合に記憶部に記憶されたデータの更新を許可するデータ更新制御部と、を含む。
前記記憶部に対するデータの書き込みは第1のクロック信号に同期して行われ、前記記憶部からのデータの読み出しは、前記第1のクロック信号とは非同期の第2のクロック信号に基づいて行われ、
前記複数のレジスタのうち前記解除信号を出力するレジスタは、前記第1のクロック信号に同期して出力信号の信号レベルを前記所定のレベルに遷移させる
請求項1に記載の半導体装置。
前記解除信号出力部は、選択信号に基づいて、前記複数のレジスタのうちのいずれかの出力信号を選択し、選択した出力信号を前記解除信号として出力し、前記リセット入力端子に供給する選択部を更に含む
請求項1から請求項5のいずれか1項に記載の半導体装置。
第1のクロック信号に同期してデータの書き込みが行われ、前記第1のクロック信号とは非同期の第2のクロック信号に同期してデータの読み出しが行われる記憶部からデータの読出しを行う場合に、信号レベルが第1のレベルに遷移する制御信号を生成し、
前記制御信号の信号レベルが前記第1のレベルの場合に前記記憶部に記憶されたデータの更新を禁止し、
前記制御信号の信号レベルが前記第1のレベルに遷移した後の前記第1のクロック信号に同期したタイミングで信号レベルが所定のレベルに遷移する解除信号を生成し、
前記解除信号の信号レベルが前記所定のレベルに遷移した場合に前記制御信号の信号レベルを第2のレベルに遷移させ、
前記制御信号が前記第2のレベルの場合に前記記憶部に記憶されたデータの更新を許可する
データ書き込み制御方法。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態の一例を図面を参照しつつ説明する。なお、各図面において、同一または対応する構成要素および部分には、同一の参照符号を付与している。
【0018】
[第1の実施形態]
図1は、本発明の実施形態に係るデータ通信システム100の構成の一例を示すブロック図である。本実施形態に係るデータ通信システム100は、メインコンピュータ10、サブコンピュータ20およびセンサ12a、12bを含む。メインコンピュータ10、サブコンピュータ20およびセンサ12a、12bは、それぞれ、独立した半導体装置として構成されており、単一の配線基板上に搭載されている。なお、サブコンピュータ20は本発明における半導体装置の一例であり、メインコンピュータ10は本発明における他の半導体装置の一例である。データ通信システム100は、本発明におけるデータ通信システムの一例である。
【0019】
センサ12aおよび12bは、例えば、温度センサ、湿度センサ、加速度センサ、地磁気センサ、赤外線センサ、圧力センサ、近接センサ、照度センサ等である。センサ12aと12bは互いに異種のセンサであってもよい。なお、本実施形態に係るデータ通信システム100においては、2つのセンサを備えた構成としているが、1つまたは3つ以上のセンサを含む構成としてもよい。
【0020】
本実施形態に係るデータ通信システム100において、メインコンピュータ10は、例えば、アプリケーションプロセッサであり、サブコンピュータ20は、センサ12a、12bを制御するマイクロコントローラである。サブコンピュータ20がセンサ制御を担うことで、メインコンピュータ10がセンサ制御を行う構成と比較してメインコンピュータ10の負荷を軽減することができる。すなわち、サブコンピュータ20がセンサ12a、12bにアクセスしている間、メインコンピュータ10は、スタンバイ状態となり得る。これにより、システム全体の消費電力を抑制することが可能となる。
【0021】
メインコンピュータ10とサブコンピュータ20はSPI(Serial Peripheral Interface)バス301およびI2C(I-squared-C)バス302によって接続されている。メインコンピュータ10とサブコンピュータ20は、SPIバス301およびI2Cバス302の一方または双方を介してデータのシリアル通信を行う。
【0022】
SPIバス301は、メインコンピュータ10の端子101〜104と、サブコンピュータ20の対応する端子201〜204との間に伝送路を形成する。サブコンピュータ20の端子201には、メインコンピュータ10から出力されるチップセレクト信号SCSが供給される。チップセレクト信号SCSは、メインコンピュータ10とサブコンピュータ20との間で行われるSPIバス301を介して行われるデータ通信の開始および終了を通知する。メインコンピュータ10は、サブコンピュータ20との間でデータ通信を開始する際にチップセレクト信号SCSをハイレベルに遷移させ、通信を終了する際にチップセレクト信号SCSをローレベルに遷移させる。また、チップセレクト信号SCSは、例えば、サブコンピュータが複数存在するシステムにおいて、メインコンピュータ10とデータ通信を行うサブコンピュータをメインコンピュータ10が選択するために使用することもできる。
【0023】
サブコンピュータ20の端子202には、メインコンピュータ10から出力される通信クロック信号SCLKが供給される。SPIバス301を介して行われるメインコンピュータ10とサブコンピュータ20との間のデータ通信は、通信クロック信号SCLKに同期して行われる。
【0024】
サブコンピュータ20の端子203には、メインコンピュータ10から出力される入力信号SDIが供給される。入力信号SDIには、サブコンピュータ20が実行すべき処理を示すコマンドが含まれ、サブコンピュータ20が備えるレジスタからデータの読み出しを行う場合には、データの読出し開始位置を示すアドレス情報などが含まれる。
【0025】
サブコンピュータ20の端子204から出力される出力信号SDOは、SPIバス301を介してメインコンピュータ10に供給される。本実施形態に係るデータ通信システム100においては、サブコンピュータ20がセンサ12aおよび12bから取得したセンシングデータD
AおよびD
Bが、出力信号SDOとしてメインコンピュータ10に供給され得る。
【0026】
I2Cバス302は、メインコンピュータ10の端子105および106とサブコンピュータ20の対応する端子205および206との間に伝送路を形成する。サブコンピュータ20の端子205には、メインコンピュータ10から出力される通信クロック信号SCLが供給される。I2Cバス302を介して行われるメインコンピュータ10とサブコンピュータ20との間のデータ通信は、通信クロック信号SCLに同期して行われる。サブコンピュータ20の端子206は、メインコンピュータ10との間で入出力されるデータ信号SDAを入出力するための端子である。すなわち、データ信号SDAは、双方向の信号である。
【0027】
センサ12a、12bからそれぞれ出力されるセンシングデータD
A、D
Bは、それぞれ、端子207、208を介してサブコンピュータ20に供給される。
【0028】
図2は、サブコンピュータ20の構成を示すブロック図である。なお、
図2において、I2Cバス302に接続される構成部分については図示が省略されている。
【0029】
サブコンピュータ20は、インターフェース部21および機能部22を含んでいる。機能部22は、データ更新制御部30aおよび30b、入力段レジスタ31aおよび31b、クロック生成部32およびCPU(Central Processing Unit)40を含む。
【0030】
入力段レジスタ31aはセンサ12aから出力されるセンシングデータD
Aを記憶する記憶部であり、入力段レジスタ31bはセンサ12bから出力されるセンシングデータD
Bを記憶する記憶部である。入力段レジスタ31aおよび31bは、それぞれ、複数のビットからなるセンシングデータD
AおよびD
Bの各ビットの値を保持する複数のフリップフロップを含んで構成されている。なお、本実施形態では、入力段レジスタ31aおよび31bをそれぞれ、センサ12aおよび12bに対応させているが、入力段レジスタ31aおよび31bは、センサ12aおよび12bとの間で対応関係を有していなくてもよい。また、本実施形態では、サブコンピュータ20が2つの入力段レジスタ31aおよび31bを備える場合を例示しているが、入力段レジスタの数は、1つまたは3つ以上であってもよい。入力段レジスタ31aおよび31bは、本発明における記憶部の一例である。
【0031】
入力段レジスタ31aおよび31bは、それぞれ、センサ12aおよび12bからデータ更新制御部30aおよび30bを介して供給されるセンシングデータD
AおよびD
Bをクロック生成部32によって生成される内部クロック信号C
Xに同期して取り込んで保持する。内部クロック信号C
Xは、メインコンピュータ10から供給される通信クロック信号SCLKとは非同期である。すなわち、入力段レジスタ31aおよび31bに対する、内部クロック信号C
Xに基づくデータの書き込みと、通信クロック信号SCLKに基づくデータの読出しは非同期で行われる。なお、本実施形態において、内部クロック信号Cxの周期は、通信クロック信号SCLKの周期よりも短いものとされている。
【0032】
データ更新制御部30aは、CPU40から供給される書き込みアドレス信号WAによって示される書き込みアドレスが自身に対応する入力段レジスタ31aのアドレスである場合に、センサ12aから受信したセンシングデータD
Aを入力段レジスタ31aに供給する。データ更新制御部30aは、後述する更新禁止信号S
Fおよび読出しアドレス信号RAに基づいて、入力段レジスタ31aに記憶されたデータの更新禁止および更新許可を判定する。データ更新制御部30aは、入力段レジスタ31aに記憶されたデータの更新を禁止する場合、更新禁止直前のセンシングデータD
Aを継続して入力段レジスタ31aに供給する。すなわち、入力段レジスタ31aは、データの更新が禁止されている期間においては、更新禁止直前から保持しているセンシングデータD
Aを継続して保持する。一方、データ更新制御部30aは、入力段レジスタ31aに記憶されたデータの更新を許可する場合、センサ12aから受信したセンシングデータD
Aを逐次更新しながら出力する。すなわち、データ更新が許可されている期間において、入力段レジスタ31aに記憶されたセンシングデータD
Aは逐次更新される。
【0033】
データ更新制御部30aは、更新禁止信号S
Fがデータの更新禁止を示す信号レベル(本実施形態ではローレベル)を呈し且つ読出しアドレス信号RAによって示される読出しアドレスが自身に対応する入力段レジスタ31aのアドレスである場合、入力段レジスタ31aに記憶されたデータの更新を禁止し、それ以外の場合は入力段レジスタ31aに記憶されたデータの更新を許可する。
【0034】
同様に、データ更新制御部30bは、CPU40から供給される書き込みアドレス信号WAによって示される書き込みアドレスが自身に対応する入力段レジスタ31bのアドレスである場合に、センサ12bから受信したセンシングデータD
Bを入力段レジスタ31bに供給する。データ更新制御部30bは、更新禁止信号S
Fおよび読出しアドレス信号RAに基づいて、入力段レジスタ31bに記憶されたデータの更新禁止および更新許可を判定する。データ更新制御部30bは、入力段レジスタ31bに記憶されたデータの更新を禁止する場合、更新禁止直前のセンシングデータD
Bを継続して入力段レジスタ31bに供給する。すなわち、入力段レジスタ31bは、データの更新が禁止されている期間においては、更新禁止直前から保持しているセンシングデータD
Bを継続して保持する。一方、データ更新制御部30bは、入力段レジスタ31bにおける記憶データの更新を許可する場合、センサ12bから受信したセンシングデータD
Bを逐次更新しながら出力する。すなわち、データ更新が許可されている期間において、入力段レジスタ31bに記憶されたセンシングデータD
Bは逐次更新される。
【0035】
データ更新制御部30bは、更新禁止信号S
Fがデータの更新禁止を示す信号レベル(本実施形態ではローレベル)を呈し且つ読出しアドレス信号RAによって示される読出しアドレスが自身に対応する入力段レジスタ31bのアドレスである場合、入力段レジスタ31bに記憶されたデータの更新を禁止し、それ以外の場合は入力段レジスタ31bに記憶されたデータの更新を許可する。なお、データ更新制御部30aおよび30bは、本発明におけるデータ更新制御部の一例である。
【0036】
一方、サブコンピュータ20のインターフェース部21は、シリアル/パラレル変換部23、アドレス生成部24、判定部25、更新禁止レジスタ26、セレクタ27、出力段レジスタ28およびパラレル/シリアル変換部29を含む。
【0037】
セレクタ27は、アドレス生成部24によって生成された読出しアドレス信号RAに基づいて、入力段レジスタ31aおよび31bのいずれか一方を選択し、選択した入力段レジスタ31aまたは31bに記憶されたセンシングデータD
AまたはD
Bを出力段レジスタ28に供給する。セレクタ27は、アドレス信号RAによって示される読出しアドレスが入力段レジスタ31aのアドレスである場合には入力段レジスタ31aを選択し、アドレス信号RAによって示される読出しアドレスが入力段レジスタ31bのアドレスである場合には入力段レジスタ31bを選択する。
【0038】
出力段レジスタ28は、セレクタ27から供給されるセンシングデータD
AまたはD
Bを、通信クロック信号SCLKに同期して記憶する記憶部である。出力段レジスタ28は、入力段レジスタ31aおよび31bを構成する複数のフリップフロップの各々に対応する複数のフリップフロップを含んでいる。入力段レジスタ31aおよび31bと出力段レジスタ28との間のデータ通信はパラレル通信となっており、センシングデータD
AおよびD
Bの各ビットの値は、通信クロック信号SCLKに同期して入力段レジスタ31aまたは31bから出力段レジスタ28に一括して転送される。
【0039】
パラレル/シリアル変換部29は、出力段レジスタ28からパラレルデータとして与えられるセンシングデータD
AまたはD
Bをシリアルデータに変換する。パラレル/シリアル変換部29は、シリアルデータに変換したセンシングデータD
AまたはD
Bを出力信号SDOとして端子204から出力してメインコンピュータ10に供給する。
【0040】
シリアル/パラレル変換部23は、端子203に入力されるメインコンピュータ10からのシリアルデータである入力信号SDIをパラレルデータに変換してアドレス生成部24に供給する。入力段レジスタ31aおよび31bからデータの読み出しを行う場合には、入力信号SDIにはデータの読出し開始位置を示すアドレス情報などが含まれる。
【0041】
アドレス生成部24は、シリアルデータに変換された入力信号SDIに含まれるアドレス情報に基づいて読み出しアドレス信号RAを生成することによって読み出しアドレスを指定する。アドレス生成部24は、通信クロック信号SCLKに同期した所定のタイミングで読み出しアドレスを順次インクリメントする機能を有する。読み出しアドレス信号RAは、データ更新制御部30a、30b、セレクタ27および判定部25にそれぞれ供給される。
【0042】
判定部25は、読み出しアドレス信号RAによって示される読み出しアドレスと、書き込みアドレス信号WAによって示される書き込みアドレスとが一致するか否かを判定する。判定部25は、読み出しアドレスと書き込みアドレスとが一致すると判定した場合には、ローレベルの判定信号S
Dを出力し、一致しないと判定した場合にはハイレベルの判定信号S
Dを出力する。また、判定部25はローレベルの判定信号S
Dを出力した後に通信クロック信号SCLKの立ち上がりエッジを検出した場合には判定信号S
Dを、初期状態であるハイレベルにリセットする。
【0043】
更新禁止レジスタ26は、フリップフロップを含んで構成され、通信クロック信号SCLKの立ち上がりエッジが生じるタイミングで判定信号S
Dの値を取り込んで保持し、保持している値を更新禁止信号S
Fとして出力する。更新禁止レジスタ26は、判定信号S
Dの入力を受け付ける入力端子Dと、通信クロック信号SCLKの入力を受け付けるクロック入力端子Cと、保持している値を更新禁止信号S
Fとして出力する出力端子Qと、更新禁止信号を初期状態であるハイレベルにリセットするためのリセット信号S
Rの入力を受け付けるリセット入力端子Rとを有する。更新禁止レジスタ26の出力端子Qは、データ更新制御部30aおよび30bにそれぞれ接続されるとともに、後述する遅延回路70を構成するレジスタ71の入力端子Dに接続されている。
【0044】
更新禁止信号S
Fは、入力段レジスタ31aおよび31bに記憶されたデータの更新禁止および更新許可を制御する制御信号である。上記したように、本実施形態においては、更新禁止信号S
Fがローレベルを呈する場合、入力段レジスタ31aおよび31bのいずれかにおいてデータの更新が禁止される。本実施形態に係るサブコンピュータ20の構成によれば、読み出しアドレス信号RAによって示される読み出しアドレスと、書き込みアドレス信号WAによって示される書き込みアドレスとが一致する場合、つまり、同一の入力段レジスタにおいてデータの書き込みと読み出しとが略同時に行われようとしている場合に当該入力段レジスタにおいてデータの更新が禁止される。
【0045】
更新禁止レジスタ26は、更新禁止信号S
Fがローレベルを呈している場合において、リセット入力端子Rに入力されるリセット信号S
Rがローレベルに遷移すると、更新禁止信号S
Fを初期状態であるハイレベルにリセットする。更新禁止信号S
Fがリセットされることにより入力段レジスタ31aまたは31bにおけるデータの更新禁止が解除される。なお、更新禁止レジスタ26は、本発明における制御信号出力部の一例であり、更新禁止信号S
Fは、本発明における制御信号の一例である。
【0046】
サブコンピュータ20においては、入力段レジスタ31aおよび31bに対するデータの書き込みとデータの読み出しとが非同期で行われるので、同一の入力段レジスタに対してデータの書き込みタイミングと読み出しタイミングとが重なるおそれがある。同一の入力段レジスタに対してデータの書き込みと読み出しとを略同時に行った場合には、読み出しデータにおいてビット間の不整合が生じるおそれがある。
【0047】
図3は、上記した読出しデータにおけるビット間の不整合を説明するための図である。
図3には、入力段レジスタ31aまたは31bの第1〜第3ビットにそれぞれ対応する各フリップフロップにおけるデータの書き込みと読み出しとが略同時に生じた場合が例示されている。各フリップフロップに対する内部クロック信号C
Xの入力タイミングは、配線長差等に起因して互いにずれる場合があり、これによって、各フリップフロップにおいてデータの書き込みタイミングが互いにずれる場合がある。また、
図3に示すように、第1ビットおよび第2ビットのデータの書き込み完了後であって第3ビットのデータの書き込み前にデータの読み出しが行われる場合がある。この場合、第1ビットおよび第2ビットにおいて更新後のデータが読み出され、第3ビットにおいては更新前のデータが読み出されることとなる。このように、同一の入力段レジスタに対してデータの書き込みと読み出しとを略同時に行った場合には、読み出しデータにおいてビット間の不整合が生じるおそれがある。
【0048】
本実施形態に係るサブコンピュータ20によれば、同一の入力段レジスタにおいてデータの書き込みと読み出しとが同時に行われようとしている場合に、当該入力段レジスタにおいてデータの更新が禁止される。従って、上記した読み出しデータにおけるビット間の不整合が生じることを防止できる。
【0049】
再び
図2を参照する。サブコンピュータ20は、更新禁止レジスタ26の出力端子Qとリセット入力端子Rとの間に設けられた遅延回路70を有する。遅延回路70は、更新禁止信号S
Fがローレベルに遷移してから所定期間の経過後にローレベルに遷移するリセット信号S
Rを出力する回路である。本実施形態において、遅延回路70は、縦続接続された3つのレジスタ71、72および73を含んで構成されている。なお、遅延回路70は、本発明における解除信号出力部の一例である。
【0050】
レジスタ71は、更新禁止レジスタ26の出力端子Qに接続され、更新禁止信号S
Fの入力を受け付ける入力端子Dと、後段のレジスタ72の入力端子Dに接続された出力端子Qと、通信クロック信号SCLKの入力を受け付けるクロック入力端子Cと、リセット信号S
Rの入力を受け付けるリセット入力端子Rと、を有する。レジスタ71は、通信クロック信号SCLKの立ち下がりエッジが生じるタイミングで更新禁止レジスタ26から出力される更新禁止信号S
Fの値を取り込んで保持し、保持している値を出力信号S
D1として出力する。
【0051】
レジスタ72は、前段のレジスタ71の出力信号S
D1の入力を受け付ける入力端子Dと、後段のレジスタ73の入力端子Dに接続された出力端子Qと、内部クロック信号C
Xの入力を受け付けるクロック入力端子Cと、を有する。レジスタ72は、内部クロック信号C
Xの立ち上がりエッジが生じるタイミングでレジスタ71の出力信号S
D1の値を取り込んで保持し、保持している値を出力信号S
D2として出力する。
【0052】
レジスタ73は、前段のレジスタ72の出力信号S
D2の入力を受け付ける入力端子Dと、更新禁止レジスタ26のリセット入力端子Rおよびレジスタ71のリセット入力端子Rに接続された出力端子Qと、内部クロック信号C
Xの入力を受け付けるクロック入力端子Cと、を有する。レジスタ73は、内部クロック信号C
Xの立ち上がりエッジが生じるタイミングでレジスタ72の出力信号S
D2の値を取り込んで保持し、保持している値をリセット信号S
Rとして出力する。
【0053】
このように、更新禁止レジスタ26の出力端子Qとリセット入力端子Rとの間に遅延回路70を設けることで、更新禁止信号S
Fがローレベルに遷移してから所定期間の経過後に信号レベルをローレベルに遷移させたリセット信号S
Rが生成される。これにより、更新禁止信号S
Fがローレベルに遷移してから所定期間の経過後に更新禁止信号S
Fを初期状態であるハイレベルにリセットすることが可能となる。すなわち、入力段レジスタ31aまたは31bにおいて、データの更新が禁止された場合に、所定時間が経過すれば、チップセレクト信号SCSや通信クロック信号SCLKの状態にかかわらず当該入力段レジスタにおいてデータの更新禁止を解除することが可能となる。これにより、入力段レジスタ31aまたは31bが長時間に亘り解放されず、処理が停滞してしまうことを防止することができる。
【0054】
以下において、サブコンピュータ20の動作について説明する。
図4は、サブコンピュータ20の動作の一例を示すタイミングチャートである。サブコンピュータ20は、メインコンピュータ10から端子201を介して供給されるチップセレクト信号SCSがハイレベルとなると、メインコンピュータ10との間で通信を開始する。
【0055】
チップセレクト信号SCSがハイレベルとなった後、通信クロック信号SCLKおよび入力信号SDIがメインコンピュータ10からサブコンピュータ20に供給される。メインコンピュータ10とサブコンピュータ20との間の通信は、通信クロック信号SCLKに同期して行われる。
【0056】
入力信号SDIは、端子203から入力され、シリアル/パラレル変換部23に供給される。シリアル/パラレル変換部23は、シリアルデータとして供給される入力信号SDIをパラレルデータに変換して出力する。入力信号SDIには、サブコンピュータ20が実行すべき処理を示すコマンドが含まれ、入力段レジスタ31aおよび31bからデータの読み出しを行う場合には、データの読出し開始位置を示すアドレス情報などが含まれる。ここでは、入力段レジスタ31aおよび31bに記憶されたセンシングデータD
AおよびD
Bの読み出しを指示するコマンドとともに読み出し開始アドレスとして入力段レジスタ31aのアドレス情報が入力信号SDIに含まれているものとする。
【0057】
アドレス生成部24は、入力信号SDIに含まれるアドレス情報に基づいて読み出しアドレス信号RAを生成する。ここでは、入力段レジスタ31aのアドレスを示す読み出しアドレス信号RAが生成されるものとする。アドレス生成部24は、生成した読み出しアドレス信号RAを判定部25、セレクタ27およびデータ更新制御部30a、30bに供給する。
【0058】
判定部25は、読み出しアドレス信号RAによって読み出しアドレスが指定されると、当該指定された読み出しアドレスと、CPU40から供給される書き込みアドレス信号WAによって示される書き込みアドレスとが一致するか否かを判定する。すなわち、判定部25は、入力段レジスタ31aまたは31bのいずれかにおいて、データの書き込みと読み出しが同時に行われようとしているか否かを判定する。判定部25は、読み出しアドレスと書き込みアドレスとが一致していると判定した場合、ローレベルの判定信号S
Dを出力する。一方、判定部25は、読み出しアドレスと書き込みアドレスとが一致していないと判定した場合または書き込みアドレスが指定されていない場合、ハイレベルの判定信号S
Dを出力する。ここでは、読み出しアドレスと書き込みアドレスの双方において、入力段レジスタ31aのアドレスが指定されており、判定部25は、ローレベルの判定信号S
Dを出力するものとする。
【0059】
更新禁止レジスタ26は、判定信号S
Dがローレベルとなると、通信クロック信号SCLKに同期してローレベルの更新禁止信号S
Fを出力端子Qから出力する。更新禁止レジスタ26は、更新禁止信号S
Fをデータ更新制御部30aおよび30bに供給する。
【0060】
データ更新制御部30aは、更新禁止信号S
Fがローレベルを呈し且つ読み出しアドレス信号RAによって示される読み出しアドレスが自身に対応する入力段レジスタ31aのアドレスであるので、入力段レジスタ31aに記憶されたデータの更新を禁止する。入力段レジスタ31aは、データの更新が禁止されている間、更新禁止直前から保持しているセンシングデータD
Aを継続して保持する。一方、データ更新制御部30bは、読み出しアドレス信号RAによって示される読み出しアドレスが自身に対応する入力段レジスタ31bのアドレスではないので、入力段レジスタ31bにおけるデータの更新を許可する。
【0061】
セレクタ27は、読み出しアドレス信号RAによって示される読み出しアドレスが入力段レジスタ31aのアドレスであるので、入力段レジスタ31aを選択する。セレクタ27は、入力段レジスタ31aにおいてデータの更新が禁止されている期間内において、入力段レジスタ31aに記憶されたセンシングデータD
Aを出力段レジスタ28に供給する。このように、入力段レジスタ31aからデータの読み出しを行う際に、入力段レジスタ31aにおいてデータの更新を禁止することで、読み出しデータにおけるビット間の不整合が防止される。
【0062】
判定部25は、ローレベルの判定信号S
Dを出力した後に通信クロック信号SCLKの立ち上がりエッジを検出すると、判定信号S
Dを初期状態であるハイレベルにリセットする。すなわち、更新禁止信号S
Fは、入力段レジスタ31aから出力段レジスタ28へのデータ転送の完了後にハイレベルに遷移する。これにより入力段レジスタ31aにおいてデータの更新禁止が解除される。
【0063】
出力段レジスタ28に記憶されたセンシングデータD
Aは、パラレル/シリアル変換部29に供給される。パラレル/シリアル変換部29は、パラレルデータとして供給されるセンシングデータD
Aをシリアルデータに変換する。パラレル/シリアル変換部29は、シリアルデータに変換したセンシングデータD
Aを出力信号SDOをとして通信クロック信号SCLKに同期して端子204から順次出力し、メインコンピュータ10に供給する。
【0064】
アドレス生成部24は、シリアルデータに変換されたセンシングデータD
Aのメインコンピュータ10への転送が完了すると、通信クロック信号SCLKに同期して読み出しアドレスの値を1つインクリメントして新たな読出しアドレス信号RAを生成する。これにより、入力段レジスタ31bのアドレスが読み出しアドレスとして指定されるものとする。
【0065】
判定部25は、読み出しアドレスが新たに指定されると、新たに指定された読み出しアドレスと、書き込みアドレスとが一致するか否かを判定する。判定部25は、読み出しアドレスと書き込みアドレスとが一致していると判定した場合、ローレベルの判定信号S
Dを出力する。ここでは、読み出しアドレスと書き込みアドレスの双方において、入力段レジスタ31bのアドレスが指定されており、判定部25は、ローレベルの判定信号S
Dを出力するものとする。
【0066】
更新禁止レジスタ26は、判定信号S
Dがローレベルとなると、通信クロック信号SCLKに同期してローレベルの更新禁止信号S
Fを出力端子Qから出力する。更新禁止レジスタ26は、更新禁止信号S
Fをデータ更新制御部30aおよび30bに供給する。
【0067】
データ更新制御部30bは、更新禁止信号S
Fがローレベルを呈し且つ読み出しアドレス信号RAによって示される読み出しアドレスが自身に対応する入力段レジスタ31bのアドレスであるので、入力段レジスタ31bに記憶されたデータの更新を禁止する。入力段レジスタ31bは、データの更新が禁止されている間、更新禁止直前から保持しているセンシングデータD
Bを継続して保持する。一方、データ更新制御部30aは、読み出しアドレス信号RAによって示される読み出しアドレスが自身に対応する入力段レジスタ31aのアドレスではないので、入力段レジスタ31aにおけるデータの更新を許可する。
【0068】
セレクタ27は、読み出しアドレスRAによって示される読み出しアドレスが入力段レジスタ31bのアドレスであるので、入力段レジスタ31bを選択する。セレクタ27は、入力段レジスタ31bにおいてデータの更新が禁止されている期間内において、入力段レジスタ31bに記憶されたセンシングデータD
Bを出力段レジスタ28に供給する。このように、入力段レジスタ31bからデータの読み出しを行う際に、入力段レジスタ31bにおいてデータの更新を禁止することで、読み出しデータにおけるビット間の不整合が防止される。
【0069】
判定部25は、ローレベルの判定信号S
Dを出力した後に通信クロック信号SCLKの立ち上がりエッジを検出すると、判定信号S
Dを初期状態であるハイレベルにリセットする。すなわち、更新禁止信号S
Fは、入力段レジスタ31bから出力段レジスタ28へのデータ転送の完了後にハイレベルに遷移する。これにより入力段レジスタ31bにおいてデータの更新禁止が解除される。
【0070】
図5は、入力段レジスタ31aに記憶されたセンシングデータD
Aのメインコンピュータ10への送信が完了した段階で通信クロック信号SCLKの供給が停止され且つチップセレクト信号SCSがハイレベルの状態に維持された場合における、サブコンピュータ20の動作を示すタイミングチャートである。
図5に示すような通信クロック信号SCLKおよびチップセレクト信号SCSの状態は、例えば、メインコンピュータ10が入力段レジスタ31aに記憶されたセンシングデータD
Aの読み出しのみを要求し、入力段レジスタ31bに記憶されたセンシングデータD
Bについては読み出しを要求しない場合に起こり得る。
【0071】
本実施形態に係るサブコンピュータ20によれば、メインコンピュータ10がセンシングデータD
Bの読み出しを要求しない場合でも、アドレス生成部24が有するアドレス値の自動インクリメント機能により、センシングデータD
Aのメインコンピュータ10への送信が完了した段階で、入力段レジスタ31bのアドレスが読み出しアドレスとして指定される。新たに読み出しアドレス指定されると、判定部25における判定処理の結果に応じて、更新禁止信号S
Fがローレベルに遷移して入力段レジスタ31bにおいてデータの更新が禁止される。本実施形態において、更新禁止信号S
Fは、通信クロック信号SCLKの立ち上がりエッジが生じるタイミングでローレベルに遷移する。
【0072】
遅延回路70を構成するレジスタ71は、更新禁止信号S
Fがローレベルに遷移した直後における通信クロックの立ち下りエッジが生じるタイミングでローレベルに遷移する出力信号S
D1を出力し、出力信号S
D1を後段のレジスタ72に供給する。レジスタ72は、レジスタ71の出力信号S
D1がローレベルに遷移した直後における内部クロック信号C
Xの立ち上がりエッジが生じるタイミングでローレベルに遷移する出力信号S
D2を出力し、出力信号S
D2を後段のレジスタ73に供給する。レジスタ73は、レジスタ72の出力信号S
D2がローレベルに遷移した直後における内部クロック信号C
Xの立ち上がりエッジが生じるタイミングでローレベルに遷移する出力信号をリセット信号S
Rとして出力し、リセット信号S
Rを更新禁止レジスタ26のリセット入力端子Rおよびレジスタ71のリセット入力端子Rに供給する。
【0073】
更新禁止レジスタ26は、リセット入力端子Rにローレベルのリセット信号S
Rが入力されると、更新禁止信号S
Fを初期状態であるハイレベルにリセットする。これにより入力段レジスタ31bにおいてデータの更新禁止が解除される。
【0074】
このように、本実施形態に係るサブコンピュータ20によれば、更新禁止信号S
Fはローレベルに遷移してから遅延回路70によって定まる遅延時間が経過することによってハイレベルに遷移する。すなわち、サブコンピュータ20は、入力段レジスタ31aおよび31bにおけるデータの更新禁止の解除を自律的に行うことが可能である。
【0075】
ここで、
図7は、比較例に係るサブコンピュータ20Xの構成を示すブロック図である。
図6において、本発明の実施形態に係るサブコンピュータ20の構成要素と同一または対応する構成要素については、同一の参照符号を付与し、重複する説明は省略する。比較例に係るサブコンピュータ20Xは、本発明の実施形態に係るサブコンピュータ20が有する遅延回路70を有しておらず、更新禁止レジスタ26のリセット入力端子Rには、チップセレクト信号SCSが入力される構成を有する。
【0076】
図8は、入力段レジスタ31aに記憶されたセンシングデータD
Aのメインコンピュータ10への供給が完了した段階で通信クロック信号SCLKの供給が停止され、且つチップセレクト信号SCSがハイレベルの状態に維持された場合における、サブコンピュータ20Xの動作を示すタイミングチャートである。
【0077】
比較例に係るサブコンピュータ20Xによれば、本実施形態に係るサブコンピュータ20と同様、メインコンピュータ10がセンシングデータD
Bの読み出しを要求しない場合でも、アドレス生成部24が有するアドレス値の自動インクリメント機能により、センシングデータD
Aのメインコンピュータ10への送信が完了した段階で、入力段レジスタ31bのアドレスが読み出しアドレスとして指定される。新たに読み出しアドレスが指定されると、判定部25における判定処理の結果に応じて、更新禁止信号S
Fがローレベルに遷移して入力段レジスタ31bにおいてデータの更新が禁止される。
【0078】
比較例に係るサブコンピュータ20Xによれば、
図7に示すように、センシングデータD
Aのメインコンピュータ10への供給が完了した段階で通信クロック信号SCLKの供給が停止され、且つチップセレクト信号SCSがハイレベルの状態に維持された場合には、更新禁止レジスタ26がリセットされないので、更新禁止信号S
Fがローレベルを維持したままとなる。その結果、入力段レジスタ31bにおいてデータの更新が禁止された状態が継続する。これにより、サブコンピュータ20Xにおいて処理が停滞してしまうおそれがある。このように、入力段レジスタ31aおよび31bにおけるデータの更新禁止の解除を、メインコンピュータ10から供給される信号のみに基づいて行う構成とした場合には、データの更新禁止の解除を適切なタイミングで行うことができない場合がある。
【0079】
一方、本発明の実施形態に係るサブコンピュータ20によれば、更新禁止信号S
Fは、ローレベルに遷移してから遅延回路70によって定まる遅延時間が経過することによってハイレベルに遷移するので、通信クロック信号SCLKおよびチップセレクト信号SCSの状態にかかわらずデータの更新禁止を解除することが可能となる。
【0080】
また、本実施形態に係るサブコンピュータ20によれば、レジスタ73は、内部クロック信号C
Xに同期したタイミングでローレベルに遷移するリセット信号S
Rを出力する。これにより、入力段レジスタ31aおよび31bにおけるデータの更新禁止の解除は、
入力段レジスタ31aおよび31bにおけるデータの書き込みと同様、内部クロック信号C
Xに同期したタイミングで行われる。
【0081】
仮に、入力段レジスタ31aおよび31bにおけるデータの更新禁止の解除のタイミングが、内部クロック信号C
Xとは非同期である場合、入力段レジスタ31aおよび31bにおけるデータの更新禁止の解除のタイミングと、入力段レジスタ31aおよび31bにおけるデータの書き込みタイミングとが重なるおそれがある。この場合、入力段レジスタ31aおよび31bにおいて、あるビットに対応するフリップフロップに対して更新されたデータが書き込まれ、他のビットに対応するフリップフロップに対して更新前のデータが書き込まれ、ビット間に不整合が生じるおそれがある。
【0082】
本実施形態に係るサブコンピュータ20によれば、レジスタ73が、内部クロック信号C
Xに同期したタイミングで信号レベルがローレベルに遷移するリセット信号S
Rを出力するので、内部クロック信号C
Xに同期したタイミングで入力段レジスタ31aおよび31bにおけるデータの更新禁止の解除が行われる。これにより、入力段レジスタ31aおよび31bにおけるデータの更新禁止の解除のタイミングと、入力段レジスタ31aおよび31bにおけるデータの書き込みタイミングとが重なることを防止できる。従って、データの更新禁止を解除した直後に、入力段レジスタ31aおよび31bに書き込まれるデータにおいて、上記のビット間の不整合が生じることを防止することが可能となる。
【0083】
また、本実施形態に係る遅延回路70は、通信クロック信号SCLKに同期して動作するレジスタ71と、通信クロック信号SCLKとは非同期の内部クロック信号C
Xに同期して動作するレジスタ72とが縦続接続されている。このため、前段のレジスタ71の出力信号S
D1が変化している期間に、後段のレジスタ72において、出力信号S
D1のサンプリングが行われるおそれがある。この場合、後段のレジスタ72の出力信号S
D2が不安定な状態(メタステーブル)となるおそれがある。しかしながら、本実施形態に係る遅延回路70は、レジスタ72の後段に、内部クロック信号C
Xに同期して動作するレジスタ73を更に含み、レジスタ73の出力信号がリセット信号S
Rとされている。このように通信クロック信号SCLKに同期して動作するレジスタ71の出力信号S
D1を内部クロック信号C
Xに同期して動作する2段のレジスタ72および73で受けることで、リセット信号S
Rが不安定な状態となることを防止できる。
【0084】
なお、本実施形態においては、従属接続された3つのレジスタ71、72および73を用いて遅延回路70を構成する場合を例示したが、遅延回路70を構成するレジスタの段数を増減することにより、遅延時間(すなわち、更新禁止信号S
Fがローレベルに遷移してからリセット信号S
Rがローレベルに遷移するまでの時間)を調整することが可能である。すなわち、所望の遅延時間を得るために、遅延回路70を構成するレジスタの段数を例えば2つ以下としてもよいし、4つ以上としてもよい。しかしながら、更新禁止信号S
Fが、通信クロック信号SCLKに同期してローレベルに遷移した後、通信クロック信号SCLKの1周期に相当する期間が経過する前に更新禁止レジスタ26のリセットを行うことが好ましい。これにより、更新禁止レジスタ26のリセットのタイミングと、通信クロック信号SCLKの信号レベルが遷移するタイミングとが重なることを防止でき、更新禁止信号S
Fが不安定な状態となることを防止することが可能となる。
【0085】
また、本実施形態においては、縦続接続された複数のレジスタのうち、最後段のレジスタの出力信号をリセット信号S
Rとして用いる場合を例示したが、最後段のレジスタ以外の他のレジスタの出力信号をリセット信号S
Rとして使用してもよい。
【0086】
[第2の実施形態]
図6は、本発明の第2の実施形態に係る半導体装置に適用される遅延回路70Aの構成を示す図である。第2の実施形態に係る遅延回路70Aは、レジスタ73の後段に縦続接続されたレジスタ74およびレジスタ7Xを含むレジスタ群並びにセレクタ80を更に含む点において、第1の実施形態に係る遅延回路70とは異なる。なお、
図6においては、図示が省略されているが、遅延回路70Aは、レジスタ74とレジスタ7Xとの間に、縦続接続された複数のレジスタを有する。
【0087】
遅延回路70Aにおいて、レジスタ71は、通信クロック信号SCLKに同期して動作し、レジスタ72、73、74、・・・および7xは、内部クロック信号C
Xに同期して動作する。セレクタ80は、内部クロック信号C
Xに同期して動作するレジスタ72、73、74、・・・および7Xの各々から出力される出力信号S
D2、S
D3、S
D4、・・・およびS
DXのいずれかを選択信号SELに応じて選択し、選択した信号をリセット信号S
Rとして出力する。セレクタ80から出力されたリセット信号SRは、レジスタ71のリセット入力端子Rに供給されるとともに、更新禁止レジスタ26(
図6において図示せず)のリセット入力端子Rに入力される。選択信号SELは、例えば、サブコンピュータ20の外部から供給可能であってもよく、ユーザが選択信号SELをプログラミングできるように構成されていてもよい。なお、セレクタ80は、本発明における選択部の一例である。
【0088】
第2の実施形態に係る遅延回路70Aによれば、レジスタ72、73、74、・・・および7Xの各々から出力される出力信号S
D2、S
D3、S
D4、・・・およびS
DXの選択に応じて、更新禁止レジスタ26のリセットのタイミングを変更することが可能となる。これにより、通信クロック信号SCLKの周波数等に応じて、更新禁止レジスタ26のリセットのタイミングを最適化することが可能となる。
【0089】
なお、上記した各実施形態においては、判定部25において読み出しアドレスと書き込みアドレスとが一致すると判定された場合に更新禁止信号S
Fをローレベルとする構成としているが、この態様に限定されるものではない。例えば、アドレス生成部24において読み出しアドレスが指定された場合には、当該読み出しアドレスが書き込みアドレスと一致するか否かにかかわらず、更新禁止信号S
Fをローレベルとしてもよい。すなわち、入力段レジスタ31aまたは31bに対してデータの読み出しが行われる場合には、同一の入力段レジスタに対してデータの書き込みが行われるか否かにかかわらず更新禁止信号S
Fがローレベルに遷移する。
【0090】
また、上記した実施形態においては、データ更新制御部30aおよび30bは、更新禁止信号S
Fがデータの更新禁止を示すローレベルを呈し且つ読み出しアドレスが自身に対応する入力段レジスタのアドレスである場合に当該入力段レジスタにおけるデータの更新を禁止する場合を例示したが、この態様に限定されるものではない。例えば、データ更新制御部30aおよび30bは、更新禁止信号S
Fがデータの更新禁止を示すローレベルを呈する場合には、読み出しアドレスが自身に対応する入力段レジスタのアドレスであるか否かにかかわらず、自身に対応する入力段レジスタにおけるデータの更新を禁止するように構成されていてもよい。この場合、更新禁止信号S
Fが、データの更新禁止を示すローレベルを呈する場合には、入力段レジスタ31aおよび31bの双方においてデータの更新が禁止される。
【0091】
また、上記した実施形態においては、更新禁止信号S
Fがローレベルを呈する場合に入力段レジスタ31aおよび31bにおけるデータの更新を禁止し、更新禁止信号S
Fがハイレベルを呈する場合に入力段レジスタ31aおよび31bにおけるデータの更新を許可する場合を例示したが、この態様に限定されるものではない。すなわち、更新禁止信号S
Fの信号レベルに対する機能の割り当てを上記とは逆にしてもよい。
【0092】
また、上記した実施形態においては、リセット信号S
Rがローレベルに遷移した場合に更新禁止レジスタ26をリセットする場合を例示したが、リセット信号S
Rがハイレベルに遷移した場合に更新禁止レジスタ26をリセットしてもよい。
【0093】
また、上記した実施形態においては、入力段レジスタ31aおよび31bにおけるデータの更新を禁止する場合に、データ更新制御部30aおよび30bが更新禁止直前のセンシングデータD
AおよびD
Bを継続して入力段レジスタ31aおよび31bに供給する場合を例示したが、この態様に限定されるものではない。入力段レジスタ31aおよび31bにおけるデータの更新を禁止する場合に、センサ12a、12bの出力を停止させるように制御してもよいし、入力段レジスタ31aおよび31bに対する内部クロック信号C
Xの供給を停止させてもよい。