(57)【特許請求の範囲】
【請求項１】
１つ以上のレジスタを備える第１のデータ転送制御部と、
前記レジスタのデータ値を読みだす制御部と、を備える半導体集積回路であって、
前記第１のデータ転送制御部は、前記制御部が出力する期待値と前記レジスタのデータ値とを比較する比較回路を備え、
前記制御部は、前記レジスタのデータ値を読みだす際に、読み出し命令とともに前記期待値を前記第１のデータ転送制御部に送信し、
前記第１のデータ転送制御部は、前記比較回路の比較結果を参照して、前記期待値と前記レジスタのデータ値とが一致した場合に、前記レジスタのデータ値を前記制御部に送信する半導体集積回路。
【請求項２】
前記第１のデータ転送制御部は、前記制御部が出力する前記期待値を格納する期待値格納レジスタを備える請求項１に記載の半導体集積回路。
【請求項３】
前記制御部が出力する前記読み出し命令と前記期待値とを前記第１のデータ転送制御部に送信する第２のデータ転送制御部を備える請求項１又は請求項２に記載の半導体集積回路。
【請求項４】
前記第２のデータ転送制御部は、上位装置と接続され、
前記第１のデータ転送制御部は、周辺装置と接続され、
前記第１のデータ転送制御部及び前記第２のデータ転送制御部は、前記上位装置と前記周辺装置との間のデータの転送を制御する請求項３に記載の半導体集積回路。
【請求項５】
前記第１のデータ転送制御部と前記第２のデータ転送制御部とは、光インターフェースを用いて通信を行う請求項３又は請求項４に記載の半導体集積回路。
【請求項６】
１つ以上のレジスタを備える第１のデータ転送制御部と、
前記レジスタのデータ値を読みだす制御部と、を備える半導体集積回路におけるレジスタリード方法であって、
前記制御部は、前記レジスタのデータ値を読みだす際に、読み出し命令とともに期待値を前記第１のデータ転送制御部に送信し、
前記第１のデータ転送制御部は、前記期待値と前記レジスタのデータ値とを比較し、前記期待値と前記レジスタのデータ値とが一致した場合に、前記レジスタのデータ値を前記制御部に送信するレジスタリード方法。
【請求項７】
前記第１のデータ転送制御部は、前記制御部が出力する前記期待値を格納する請求項６に記載のレジスタリード方法。
【請求項８】
前記半導体集積回路は、前記制御部が出力する前記読み出し命令と前記期待値とを前記第１のデータ転送制御部に送信する第２のデータ転送制御部を備え、
前記第２のデータ転送制御部は、上位装置と接続され、
前記第１のデータ転送制御部は、周辺装置と接続され、
前記第１のデータ転送制御部及び前記第２のデータ転送制御部は、前記上位装置と前記周辺装置との間のデータの転送を制御する請求項６又は請求項７に記載のレジスタリード方法。
【請求項９】
前記第１のデータ転送制御部と前記第２のデータ転送制御部とは、光インターフェースを用いて通信を行う請求項８に記載のレジスタリード方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路及び当該半導体集積回路におけるレジスタリード方法に関する。
【背景技術】
【０００２】
大規模集積回路（ＬＳＩ；Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）において、プロセッサが、ＬＳＩ内のレジスタに対してポーリングして、当該レジスタをリードする場合、レジスタの出力が期待値と一致するまで、当該リード処理を繰り返すことがある。
例えば、特許文献１は、異常が発生した場合に、Ｉ／Ｏ制御部は、ステータスレジスタの内容を中央処理部へ報告することを開示している。また、特許文献１は、中央処理部では異常要因に応じた回復処理の指示をＩ／Ｏ制御部に出すことを開示している。
また、特許文献２は、制御部の期待値とレジスタの出力値を比較する比較器と、当該比較器の比較結果とレジスタの出力値を制御部に出力する連結部と、を備えるレジスタリード回路を開示している。
また、特許文献３は、半導体装置のポーリング部は、レジスタ部に対してリードして得られたリードデータと期待値とを比較し、リードデータと期待値とが一致した場合に、割込み要求信号を出力することを開示している。
また、特許文献４は、ホスト装置が状態レジスタ群の状態情報を得ることにより、各機能ユニットの起動状態を把握することを開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０７−０２８７１６号公報
【特許文献２】特開２００９−２８９０７１号公報
【特許文献３】特開２０１１−０３４３８５号公報
【特許文献４】特許第４６０２９０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の場合、レジスタの出力が期待値と一致するまで、プロセッサがレジスタに対するリード処理を繰り返すために、レイテンシ（プロセッサがレジスタに対してリード要求をしてから、レジスタが期待値と一致する値を出力するまでの遅延時間）が長くなってしまうという問題があった。
【課題を解決するための手段】
【０００５】
本発明の第１の態様にかかる半導体集積回路は、１つ以上のレジスタを備える第１のデータ転送制御部と、前記レジスタのデータ値を読みだす制御部と、を備える。また、前記第１のデータ転送制御部は、前記制御部が出力する期待値と前記レジスタのデータ値とを比較する比較回路を備える。また、前記制御部は、前記レジスタのデータ値を読みだす際に、読み出し命令とともに前記期待値を前記第１のデータ転送制御部に送信する。そして、前記第１のデータ転送制御部は、前記比較回路の比較結果を参照して、前記期待値と前記レジスタのデータ値とが一致した場合に、前記レジスタのデータ値を前記制御部に送信する。
【０００６】
本発明の第２の態様にかかるレジスタリード方法は、１つ以上のレジスタを備える第１のデータ転送制御部と、前記レジスタのデータ値を読みだす制御部と、を備える半導体集積回路におけるレジスタリード方法である。また、前記制御部は、前記レジスタのデータ値を読みだす際に、読み出し命令とともに期待値を前記第１のデータ転送制御部に送信する。そして、前記第１のデータ転送制御部は、前記期待値と前記レジスタのデータ値とを比較し、前記期待値と前記レジスタのデータ値とが一致した場合に、前記レジスタのデータ値を前記制御部に送信する。
【発明の効果】
【０００７】
本発明により、レジスタをリードする際のレイテンシをより向上した半導体集積回路及びレジスタリード方法を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明にかかる半導体集積回路の構成を示すブロック図である。
【図２】本発明の実施の形態１にかかる半導体集積回路の構成を示すブロック図である。
【図３】従来の半導体集積回路の構成を示すブロック図である。
【図４】本発明の実施の形態１にかかる半導体集積回路の動作と従来の半導体集積回路の動作とを説明する図である。
【発明を実施するための形態】
【０００９】
以下、本発明を適用可能な実施の形態について説明する。なお、本発明は、下記の実施の形態に限定されるものではない。
図１に、本発明にかかる半導体集積回路１００の構成を示す。図１に示すように、半導体集積回路１００は、プロセッサ１（制御部）、データ転送制御部２（第１のデータ転送制御部）等を備える。
また、データ転送制御部２は、レジスタ２１、比較回路２２等を備える。なお、データ転送制御部２は、１つ以上のレジスタ２１を備えていればよい。すなわち、データ転送制御部２が備えるレジスタ２１の数は、図１に限定されるものではない。
【００１０】
プロセッサ１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等である。プロセッサ１が各種プログラムを実行することにより、半導体集積回路１００の各種機能が実現する。
また、プロセッサ１は、レジスタ２１のデータ値をリードする。具体的には、プロセッサ１は、レジスタ２１のデータ値をリードする際に、リードコマンド（読み出し命令）とともに期待値をデータ転送制御部２に送信する。ここで、「データ値をリードする」とは、データ値を読み出すことを意味する。
【００１１】
レジスタ２１は、各種のデータ値を格納する。例えば、レジスタ２１は、半導体集積回路１００内に備えられる各種機能ブロックのうち、対応する機能ブロックの状態を表すデータ値を格納する。後述する実施の形態１にかかる半導体集積回路１０１においては、レジスタ２１は、例えば、周辺装置３００（後述）が上位装置２００に対して転送するデータの内容や状態等に対応するデータ値を格納する。
【００１２】
比較回路２２は、プロセッサ１が出力する期待値とレジスタ２１のデータ値とを比較する。具体的には、比較回路２２は、例えば、データ転送制御部２がプロセッサ１から期待値とリードコマンドとを受信してから、当該期待値とレジスタ２１のデータ値とが一致するまで、所定のクロックに従って、当該期待値とレジスタ２１のデータ値とを比較する。
【００１３】
データ転送制御部２は、比較回路２２の比較結果を参照して、当該期待値とレジスタ２１のデータ値とが一致した場合に、レジスタ２１のデータ値をプロセッサ１に送信する。
【００１４】
本発明にかかる半導体集積回路１００及び当該半導体集積回路１００におけるレジスタリード方法においては、１つ以上のレジスタ２１を備えるデータ転送制御部２と、レジスタ２１のデータ値を読みだすプロセッサ１と、を備える。また、データ転送制御部２は、プロセッサ１が出力する期待値とレジスタ２１のデータ値とを比較する比較回路２２を備える。また、プロセッサ１は、レジスタ２１のデータ値を読みだす際に、リードコマンド（読み出し命令）とともに当該期待値をデータ転送制御部２に送信する。そして、データ転送制御部２は、比較回路２２の比較結果を参照して、当該期待値とレジスタ２１のデータ値とが一致した場合に、レジスタ２１のデータ値をプロセッサ１に送信する。
【００１５】
すなわち、プロセッサ１がデータ転送制御部２に対して期待値及びリードコマンドを送信してから、当該期待値とレジスタ２１のデータ値とが一致するまで、プロセッサ１がデータ転送制御部２に対してリードコマンドを繰り返し送る必要がない。そのため、レイテンシ（プロセッサ１がレジスタ２１に対してリードコマンドを送信してから、レジスタ２１が期待値と一致する値を出力するまでの遅延時間）をより短くすることができる。換言すれば、レジスタ２１をリードする際のレイテンシをより向上した半導体集積回路１００及びレジスタリード方法を提供することができる。
【００１６】
実施の形態１．
図２は、本発明の実施の形態１にかかる半導体集積回路１０１の構成を示すブロック図である。実施の形態１にかかる半導体集積回路１０１は、上位装置２００と周辺装置３００との間に接続して設けられる点、データ転送制御部３、光Ｉ／Ｆ制御部４、光Ｉ／Ｆ制御部５を備える点、データ転送制御部２が期待値格納レジスタ２３を備える点のみが、上述の半導体集積回路１００と異なるため、同様の構成については、同様の符号を付すとともに、その説明を省略する。なお、説明簡単のため、実施の形態１では、半導体集積回路１０１は、１つの上位装置２００と１つの周辺装置３００との間に接続される例を示すが、半導体集積回路１０１は、１つの上位装置２００と複数の周辺装置３００との間に接続されてもよい。
【００１７】
図２に示すように、半導体集積回路１０１は、上位装置２００と周辺装置３００との間に接続される。そして、半導体集積回路１０１は、上位装置２００と周辺装置３００との間のデータの転送を制御する。
また、半導体集積回路１０１は、プロセッサ１（制御部）、データ転送制御部２（第１のデータ転送制御部）、データ転送制御部３（第２のデータ転送制御部）、光Ｉ／Ｆ制御部４、光Ｉ／Ｆ制御部５等を備える。
そして、プロセッサ１は、上位装置２００と周辺装置３００とのデータの転送の状態を監視する。具体的には、プロセッサ１は、レジスタ２１のデータ値をリードし、当該データ値を監視することにより、上位装置２００と周辺装置３００とのデータの転送の状態を監視する。
【００１８】
データ転送制御部２は、レジスタ２１、比較回路２２、期待値格納レジスタ２３等を備える。なお、データ転送制御部２は、１つ以上のレジスタ２１を備えていればよい。すなわち、データ転送制御部２が備えるレジスタ２１の数は、図２に限定されるものではない。具体的には、データ転送制御部２は、プロセッサ１が監視する周辺装置３００に対応する分だけレジスタ２１を備えていればよい。
また、データ転送制御部２は、周辺装置３００と通信可能に接続されている。
【００１９】
レジスタ２１は、対応する周辺装置３００（後述）が上位装置２００に対して転送するデータの内容や状態等に対応するデータ値を格納する。
【００２０】
比較回路２２は、例えば、データ転送制御部２がプロセッサ１から期待値とリードコマンドとを受信してから、当該期待値とレジスタ２１のデータ値とが一致するまで、所定のクロックに従って、当該期待値とレジスタ２１のデータ値とを比較する。
なお、データ転送制御部２が複数のレジスタ２１を備える場合、比較回路２２は、各レジスタに対する期待値と各レジスタ２１のデータ値とを比較する。また、データ転送制御部２が複数のレジスタ２１を備える場合、データ転送制御部２は、各レジスタ２１毎に比較回路２２を備えていてもよい。換言すれば、データ転送制御部２は、レジスタ２１と同数の比較回路２２を備えていてもよい。その場合には、各比較回路２２は、対応するレジスタ２１に対する期待値と当該レジスタ２１のデータ値とを比較すればよい。また、データ転送制御部２が複数のレジスタ２１を備える場合、データ転送制御部２に備えられるレジスタ２１と比較回路２２とは１：１対応でなくてもよい。例えば、データ転送制御部２は、３つのレジスタ２１に対して１つの比較回路２２を備えていてもよい。
【００２１】
期待値格納レジスタ２３は、プロセッサ１が出力する期待値を格納する。具体的には、データ転送制御部２がプロセッサ１から期待値とリードコマンドとを受信するたびに、当該期待値を格納する。
また、データ転送制御部２が複数のレジスタ２１を備える場合、期待値格納レジスタ２３は、各レジスタ２１に対する期待値をそれぞれ格納する。換言すれば、期待値格納レジスタ２３は、各レジスタ２１毎に、当該レジスタ２１に対応する期待値を格納する。
また、データ転送制御部２が複数のレジスタ２１を備える場合、データ転送制御部２は、各レジスタ２１毎に期待値格納レジスタ２３を備えていてもよい。換言すれば、データ転送制御部２は、レジスタ２１と同数の期待値格納レジスタ２３を備えていてもよい。
【００２２】
データ転送制御部３は、プロセッサ１が出力するリードコマンド（読み出し命令）と期待値とをデータ転送制御部２に送信する。
また、データ転送制御部３は、上位装置２００と通信可能に接続されている。また、上述の通り、データ転送制御部２は、周辺装置３００と通信可能に接続されている。そして、データ転送制御部２及びデータ転送制御部３は、上位装置２００と周辺装置３００との間のデータの転送を制御する。
【００２３】
具体的には、データ転送制御部２とデータ転送制御部３とは、光インターフェース（以下、「光Ｉ／Ｆ」と称する。）を用いて通信を行う。より具体的には、データ転送制御部３は、光Ｉ／Ｆ制御部４を介して光インターフェースに接続されている。また、データ転送制御部２は、光Ｉ／Ｆ制御部５を介して光インターフェースに接続されている。そして、光Ｉ／Ｆ制御部４と光Ｉ／Ｆ制御部５とは、光インターフェースを介して、通信可能に接続されている。
【００２４】
以上に説明した実施の形態１にかかる半導体集積回路１０１によれば、上述の半導体集積回路１００と同様の効果が得られることは勿論のこと、特に、上位装置２００と周辺装置３００との間のデータの転送を監視することができる。また、レジスタ２１をリードする際のレイテンシをより短くすることができるため、半導体集積回路１０１の当該監視処理の処理時間をより短くすることができる。
【００２５】
次に、従来の半導体集積回路４００と実施の形態１にかかる半導体集積回路１０１とを比較する。
まず、図３を用いて、従来の半導体集積回路４００について説明する。図３は、従来の半導体集積回路４００の構成を示すブロック図である。
図３に示すように、従来の半導体集積回路４００は、データ転送制御部２の代わりにデータ転送制御部４０１を備える点のみが、実施の形態１にかかる半導体集積回路１０１と異なるため、同様の構成については、同様の符号を付すとともに、その説明を省略する。
【００２６】
データ転送制御部４０１は、レジスタ４０２を備え、データ転送制御部２の比較回路２２及び期待値格納レジスタ２３に相当する構成を有していない。
また、データ転送制御部４０１は、周辺装置３００と通信可能に接続されている。
【００２７】
次に、図４を用いて、実施の形態１にかかる半導体集積回路１０１の動作及び従来の半導体集積回路４００の動作について説明する。図４の左側に従来の半導体集積回路４００の動作を示し、図４の右側に実施の形態１にかかる半導体集積回路１０１の動作を示す。
また、図４の上側から下側に向かって時間が経過したものとする。
また、図４の実線の矢印で示す時点において、レジスタ２１のデータ値が期待値に変化したものとする。換言すれば、図４の実線の矢印で示す時点になって初めて、レジスタ２１のデータ値は期待値と一致したものとする。
【００２８】
図４に示すように、従来の半導体集積回路４００においては、まず、プロセッサ１がデータ転送制御部４０１にリードコマンド（読み出し命令）を送信する（レジスタリード）。
次に、データ転送制御部４０１は、プロセッサ１からリードコマンドを受信した時点におけるレジスタ２１のデータ値をプロセッサ１に送信する（リード応答（不一致））。なお、当該データ値は、期待値と一致していない。
【００２９】
次に、プロセッサ１は、データ転送制御部４０１からレジスタ２１のデータ値を受信する。しかし、受信した当該データ値は期待値と一致していないため、プロセッサ１は、再度、データ転送制御部４０１にリードコマンドを送信する（レジスタリード）。
次に、データ転送制御部４０１は、上述と同様に、レジスタ２１のデータ値をプロセッサ１に送信する（リード応答（不一致））。なお、当該データ値は、期待値と一致していない。
【００３０】
次に、実線の矢印で示す時点において、レジスタ２１のデータ値が期待値に変化する。しかし、この時点において、データ転送制御部４０１は、プロセッサ１からリードコマンドを受信していないため、レジスタ２１のデータ値（期待値と一致しているデータ値）をプロセッサ１に送信することはできない。
【００３１】
次に、プロセッサ１は、上述と同様に、再度、データ転送制御部４０１にリードコマンドを送信する（レジスタリード）。
【００３２】
次に、データ転送制御部４０１は、上述と同様に、レジスタ２１のデータ値をプロセッサ１に送信する（リード応答（一致））。この際、当該データ値は、期待値と一致している。
【００３３】
以上、説明したように、従来の半導体集積回路４００においては、レジスタ２１のデータ値が期待値に変化した時点（図４の実線の矢印で示す時点）において、すぐに、データ転送制御部４０１は、当該データ値をプロセッサ１に送信することができない。具体的には、レジスタ２１のデータ値が期待値に変化した後、再度、プロセッサ１がデータ転送制御部４０１にリードコマンドを送信しなければ、データ転送制御部４０１は、当該データ値をプロセッサ１に送信することができない。そのため、レイテンシ（プロセッサ１がレジスタ２１に対してリードコマンドを送信してから、レジスタ２１が期待値と一致する値を出力するまでの遅延時間）が長くなってしまう。
【００３４】
一方、実施の形態１にかかる半導体集積回路１０１においては、まず、プロセッサ１がデータ転送制御部２にリードコマンド（読み出し命令）とともに期待値を送信する（レジスタリード）。
次に、データ転送制御部２が、プロセッサ１からリードコマンド及び期待値を受信する。次いで、期待値格納レジスタ２３は、当該期待値を格納する。また、比較回路２２は、当該期待値とレジスタ２１のデータ値とが一致するまで、当該期待値とレジスタ２１のデータ値とを比較する。
【００３５】
次に、実線の矢印で示す時点において、レジスタ２１のデータ値が期待値に変化する。次いで、比較回路２２は、当該期待値とレジスタ２１のデータ値とが一致したとの結果を出力し、データ転送制御部２は、レジスタ２１のデータ値をプロセッサ１に送信する（リード応答（一致））。この際、当該データ値は、期待値と一致している。
【００３６】
以上、説明したように、実施の形態１にかかる半導体集積回路１０１においては、レジスタ２１のデータ値が期待値に変化した時点（図４の実線の矢印で示す時点）において、すぐに、データ転送制御部２が、当該データ値をプロセッサ１に送信することができる。そのため、レイテンシ（プロセッサ１がレジスタ２１に対してリードコマンドを送信してから、レジスタ２１が期待値と一致する値を出力するまでの遅延時間）を従来に比べて短くすることができる。換言すれば、レジスタ２１リードする際のレイテンシをより向上した半導体集積回路１０１及びレジスタリード方法を提供することができる。
【００３７】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、レジスタ２１は、データ転送制御部２の外部に設けられていてもよい。また、データ転送制御部２は周辺装置３００の内部に設けられていてもよい。また、プロセッサ１、データ転送制御部３は上位装置２００の内部に設けられていてもよい。
【符号の説明】
【００３８】
１  プロセッサ（制御部）
２  データ転送制御部（第１のデータ転送制御部）
２１  レジスタ
２２  比較回路
２３  期待値格納レジスタ
３  データ転送制御部（第２のデータ転送制御部）
４  光Ｉ／Ｆ制御部
５  光Ｉ／Ｆ制御部
１００、１０１  半導体集積回路
２００  上位装置
３００  周辺装置
【要約】
【課題】レジスタをリードする際のレイテンシをより向上した半導体集積回路及びレジスタリード方法を提供する。
【解決手段】１つ以上のレジスタ２１を備えるデータ転送制御部２と、レジスタ２１のデータ値を読みだすプロセッサ１と、を備える半導体集積回路１００であって、データ転送制御部２は、プロセッサ１が出力する期待値とレジスタ２１のデータ値とを比較する比較回路２２を備え、プロセッサ１は、レジスタ２１のデータ値を読みだす際に、リードコマンドとともに期待値をデータ転送制御部２に送信し、データ転送制御部２は、比較回路２２の比較結果を参照して、期待値とレジスタ２１のデータ値とが一致した場合に、レジスタ２１のデータ値をプロセッサ１に送信する。
【選択図】図１【図１】
0005494854.tif 000002
【図２】
0005494854.tif 000003
【図３】
0005494854.tif 000004
【図４】
0005494854.tif 000005