IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リコーの特許一覧

特許7516974電子機器用デバイス、電子機器用デバイスの制御方法および電子機器用デバイスの制御プログラム
<>
  • 特許-電子機器用デバイス、電子機器用デバイスの制御方法および電子機器用デバイスの制御プログラム 図1
  • 特許-電子機器用デバイス、電子機器用デバイスの制御方法および電子機器用デバイスの制御プログラム 図2
  • 特許-電子機器用デバイス、電子機器用デバイスの制御方法および電子機器用デバイスの制御プログラム 図3
  • 特許-電子機器用デバイス、電子機器用デバイスの制御方法および電子機器用デバイスの制御プログラム 図4
  • 特許-電子機器用デバイス、電子機器用デバイスの制御方法および電子機器用デバイスの制御プログラム 図5
  • 特許-電子機器用デバイス、電子機器用デバイスの制御方法および電子機器用デバイスの制御プログラム 図6
  • 特許-電子機器用デバイス、電子機器用デバイスの制御方法および電子機器用デバイスの制御プログラム 図7
  • 特許-電子機器用デバイス、電子機器用デバイスの制御方法および電子機器用デバイスの制御プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-08
(45)【発行日】2024-07-17
(54)【発明の名称】電子機器用デバイス、電子機器用デバイスの制御方法および電子機器用デバイスの制御プログラム
(51)【国際特許分類】
   G06F 11/30 20060101AFI20240709BHJP
   G06F 11/34 20060101ALI20240709BHJP
【FI】
G06F11/30 155
G06F11/30 140T
G06F11/34 176
G06F11/30 140D
【請求項の数】 6
(21)【出願番号】P 2020137597
(22)【出願日】2020-08-17
(65)【公開番号】P2022033610
(43)【公開日】2022-03-02
【審査請求日】2023-06-05
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】市村 修士
【審査官】武田 広太郎
(56)【参考文献】
【文献】特開2018-163557(JP,A)
【文献】特開2014-182676(JP,A)
【文献】特開2016-136292(JP,A)
【文献】特開2011-248814(JP,A)
【文献】米国特許出願公開第2019/0361763(US,A1)
【文献】中国特許出願公開第110377469(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/30
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
プロセッサに接続され、複数の動作状態を有する通信インタフェースと、
前記複数の動作状態の遷移と、前記遷移の検出時の前記プロセッサと前記通信インタフェースとの接続状態を示すリンク情報とを検出する状態検出部と、
前記プロセッサによる記憶部のアクセスを検出するアクセス検出部と、
前記状態検出部が検出した前記遷移を示す遷移情報と前記リンク情報とを含むログを生成し、前記アクセス検出部が検出した前記アクセスを示すアクセス情報を含むログを生成するログ生成部と、
を有することを特徴とする電子機器用デバイス。
【請求項2】
前記状態検出部による前記遷移の検出と、前記アクセス検出部による前記アクセスの検出とが同時に発生した場合、前記ログ生成部が生成するログの生成順を決定する調停部と、
時間を示す時間情報を出力するタイマと、を有し、
前記調停部は、前記遷移の検出時の前記時間情報を前記遷移情報および前記リンク情報とともに前記ログ生成部に出力し、前記アクセスの検出時の前記時間情報を、前記アクセスを示す前記アクセス情報とともに前記ログ生成部に出力し、
前記ログ生成部は、前記遷移情報および前記リンク情報と、前記アクセス情報とに前記時間情報をそれぞれ付加したログを生成する
ことを特徴とする請求項1に記載の電子機器用デバイス。
【請求項3】
前記遷移情報および前記リンク情報と、前記アクセス情報とを格納可能な内蔵メモリと、
前記電子機器用デバイスの外部に接続され、前記ログ生成部が生成したログを格納可能な外部メモリと、を有し、
前記調停部は、
前記外部メモリがアクセスできない期間、前記遷移情報および前記リンク情報と、前記アクセス情報とを前記内蔵メモリに格納し、
前記外部メモリがアクセス可能になった場合、前記内蔵メモリから前記遷移情報および前記リンク情報と、前記アクセス情報とを読み出して、前記ログ生成部に出力し、
前記ログ生成部は、生成したログを前記外部メモリに向けて出力すること
を特徴とする請求項2に記載の電子機器用デバイス。
【請求項4】
前記通信インタフェースは、PCI Expressインタフェースであり、
前記状態検出部は、リンク・トレーニング・ステータス・ステート・マシンのステータスの遷移を検出すること
を特徴とする請求項1ないし請求項3のいずれか1項に記載の電子機器用デバイス。
【請求項5】
プロセッサに接続され、複数の動作状態を有する通信インタフェースを有する電子機器用デバイスの制御方法であって、
前記複数の動作状態の遷移と、前記遷移の検出時の前記プロセッサと前記通信インタフェースとの接続状態を示すリンク情報とを検出し、
前記プロセッサによる記憶部のアクセスを検出し、
検出した前記遷移を示す遷移情報と前記リンク情報とを含むログを生成し、検出した前記アクセスを示すアクセス情報を含むログを生成すること
を特徴とする電子機器用デバイスの制御方法。
【請求項6】
プロセッサに接続され、複数の動作状態を有する通信インタフェースを有する電子機器用デバイスの制御プログラムであって、
前記複数の動作状態の遷移と、前記遷移の検出時の前記プロセッサと前記通信インタフェースとの接続状態を示すリンク情報とを検出し、
前記プロセッサによる記憶部のアクセスを検出し、
検出した前記遷移を示す遷移情報と前記リンク情報とを含むログを生成し、検出した前記アクセスを示すアクセス情報を含むログを生成する
処理をコンピュータに実行させること
を特徴とする電子機器用デバイスの制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は電子機器用デバイス、電子機器用デバイスの制御方法および電子機器用デバイスの制御プログラムに関する。
【背景技術】
【0002】
近年、CPU(Central Processing Unit)インタフェースを有し、CPUがアクセス可能なモジュールを持つ半導体デバイスが様々な電子機器に使用されている。電子機器の一例として、例えば、コピー機等の画像形成装置が挙げられる。
【0003】
こうした電子機器に障害が発生した場合の解析において、従来行われている一般的な方法では、ICE(In Circuit Emulator)等のデバッグ装置が使用される。デバッグ装置により、CPUのアクセス内容をトレースし、あるいは、レジスタに所望の値を設定することで、障害の発生原因の究明が可能になる。
【0004】
ただし、デバッグ装置により障害の発生原因を究明する場合、デバッグ装置を解析場所に持ち込み、解析対象の電子機器に接続するため、解析するまでの準備に手間が掛かる。さらに、CPUが電子機器に搭載されるデバイスに内蔵されている場合、CPUインタフェースにデバッグ装置を接続できないため、デバッグ装置による解析ができなかった。
【0005】
このような問題の解決するため、CPUからレジスタへのアクセスをモニタし、検知されたレジスタアクセスのログ情報を作成し、作成したログを外部に出力可能に内蔵メモリへ保存する手法が知られている(例えば、特許文献1参照)。
【0006】
また、プロセッサと、プロセッサの動作ログを記憶する主記憶装置と、PCI(Peripheral Component Interconnect) Expressバスを介してプロセッサに接続されるログ採取装置とを有する演算装置が知られている。ログ採取装置は、プロセッサから所定の周期で出力される信号を監視するウォッチドッグタイマと、DMAC(Direct Memory Access Controller)と、記憶部とを有する。
【0007】
ログ採取装置は、プロセッサが動作不能であることをウォッチドッグタイマにより検出した場合、DMACを使用して主記憶装置に保持された動作ログを記憶部に高速に転送する。これにより、プロセッサが動作不能な場合にも動作ログを取得可能にする(例えば、特許文献2参照)。
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、ログ採取装置は、PCI Expressのリンク情報をログとして取得しない。このため、DMACが主記憶装置から動作ログを取得できない場合、ログ採取装置は、その原因がPCI Expressのリンクダウンによるものなのかを切り分けできなかった。PCI Expressのリンク情報をログとして取得するためには、リンク情報等を出力可能な外部端子にデバッグ装置を接続し、デバッグ装置が取得したリンク情報を解析する必要があり、非常に手間が掛かっていた。
【0009】
開示の技術は、上記の課題に鑑みてなされたものであり、プロセッサとの間で通信できない場合の原因が通信インタフェースであるかを、ログを参照して容易に判断することを目的とする。
【課題を解決するための手段】
【0010】
上記技術的課題を解決するため、本発明の一形態の電子機器用デバイスは、プロセッサに接続され、複数の動作状態を有する通信インタフェースと、前記複数の動作状態の遷移と、前記遷移の検出時の前記プロセッサと前記通信インタフェースとの接続状態を示すリンク情報とを検出する状態検出部と、前記プロセッサによる記憶部のアクセスを検出するアクセス検出部と、前記状態検出部が検出した前記遷移を示す遷移情報と前記リンク情報とを含むログを生成し、前記アクセス検出部が検出した前記アクセスを示すアクセス情報を含むログを生成するログ生成部と、を有することを特徴とする。
【発明の効果】
【0011】
プロセッサとの間で通信できない場合の原因が通信インタフェースであるかを、ログを参照して容易に判断することができる。
【図面の簡単な説明】
【0012】
図1】本発明の第1の実施形態における電子機器用デバイスの一例を示すブロック図である。
図2図1のデバッグコントローラの動作の一例を示すフロー図である。
図3図1のデバッグコントローラの動作の別の例を示すフロー図である。
図4】本発明の第2の実施形態における電子機器用デバイスの一例を示すブロック図である。
図5】PCIeのリンク状態のログのフォーマットの一例を示す説明図である。
図6】レジスタアクセスのログのフォーマットの一例を示すブロック図である。
図7】本発明の第3の実施形態における電子機器用デバイスの一例を示すブロック図である。
図8】本発明の第4の実施形態における電子機器用デバイスの一例を示すブロック図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して実施の形態の説明を行う。なお、各図面において、同一構成部分には同一符号を付し、重複した説明を省略する場合がある。以下では、信号を示す符号は、信号線を示す符号としても使用される。
【0014】
(第1の実施形態)
図1は、第1の実施形態における電子機器用デバイスの一例を示すブロック図である。図1に示す電子機器用デバイス100は、PCI ExpressバスおよびPCI Expressのルートコンプレックス300を介してCPU200に接続される。PCI Expressは、PCIeとも称される。CPU200と電子機器用デバイス100とのは、PCIeバスを介して通信を実施可能である。CPU200は、プロセッサの一例である。
【0015】
電子機器用デバイス100は、PCIeの物理層インタフェース(PHY)10、PCIeのエンドポイント20およびデバッグコントローラ30を有する。PHY10は、ルートコンプレックス300およびPCIeバスを介してCPU200から制御信号およびデータ信号等を受信し、受信した信号をエンドポイント20に転送する。なお、図1では、エンドポイント20は、デバッグコントローラ30のみに接続されているが、実際には、様々な機器と接続可能である。PHY10は、通信インタフェースの一例であり、PCI Expressインタフェースの一例である。
【0016】
エンドポイント20は、PCIeリンクの管理、エラーの検出等を行う。エンドポイント20は、LTSSM(Link Training and Status State Machine)のステートを示すLTSSM情報、PCIeリンクの状態を示すリンク情報、およびCPU200が発行したレジスタアクセス信号を出力する。リンク情報は、CPU200とPHY10との接続状態を示す情報である。LTSSM情報およびリンク情報は、デバッグコントローラ30に供給される。レジスタアクセス信号は、デバッグコントローラ30および電子機器用デバイス100の外部に供給される。
【0017】
CPU200から出力されるレジスタアクセス信号は、例えば、システムSYSに搭載される図示しない各種機能モジュールに含まれるレジスタにアクセスするために使用される。レジスタは、記憶部の一例である。なお、各種機能モジュールは、電子機器用デバイス100に搭載されてもよい。各種機能モジュールは、レジスタの設定値に応じて動作モード等が切り替わる。なお、CPU200は、レジスタアクセス信号により、レジスタへの値の設定だけでなく、レジスタに設定された値を読み出すことができる。
【0018】
デバッグコントローラ30は、状態検出部31、レジスタアクセス検出部32、調停部33、ログ生成部34およびログ保持部35を有する。状態検出部31、レジスタアクセス検出部32、調停部33およびログ生成部34は、ハードウェアにより実現されてもよく、ソフトウェアにより実現されてもよい。ソフトウェアにより実現される場合、状態検出部31、レジスタアクセス検出部32、調停部33およびログ生成部34は、デバッグコントローラ30に搭載される図示しないCPU等のコンピュータが実行する制御プログラムにより実現される。そして、制御プログラムの実行により、電子機器用デバイス100の制御方法が実現される。
【0019】
状態検出部31は、LTSSM情報に基づいて、LTSSMステートの遷移を検出し、検出した遷移を示す遷移情報とリンク情報とを含む変化情報を調停部33に出力する。LTSMMステートは、LTSSMが取り得る複数の動作状態の一例である。例えば、状態検出部31は、LTSSMステートおよびLTSSMサブステートの両方の変化を検出した場合、遷移前のステートの情報および遷移後のステートの情報を含む遷移情報とリンク情報とを含む変化情報を調停部33に出力する。
【0020】
レジスタアクセス検出部32は、エンドポイント20から出力されるレジスタアクセス信号に基づいてレジスタアクセスの発生を検出する。レジスタアクセス検出部32は、レジスタアクセスの発生を検出した場合、レジスタアクセス信号に含まれるアドレス、データおよびリードライト種別等を示すアクセス情報を調停部33に出力する。レジスタアクセス検出部32は、CPU200によるレジスタのアクセスを検出するアクセス検出部の一例である。
【0021】
調停部33は、受信した変化情報をログ生成部34に出力し、受信したアクセス情報をログ生成部34に出力する。調停部33は、変化情報とアクセス情報とを同時に受信した場合、ログ生成部34に出力する順序を決める調停処理を実施し、調停処理により決定した順序にしたがって、変化情報とアクセス情報とをログ生成部34に順次出力する。例えば、調停部33は、変化情報とアクセス情報とを同じ受信サイクルで受信した場合、同時受信を判定し、調停処理を実施する。
【0022】
ログ生成部34は、調停部33から受信する変化情報またはアクセス情報を記録したログを、調停部33からの受信順に生成する。したがって、調停部33が調停処理により決定する順序は、ログの生成順でもある。例えば、ログ生成部34は、調停部33から受信したLTSSMの遷移前後の各ステートとリンク情報とを含むログを生成する。また、ログ生成部34は、調停部33から受信したレジスタアクセスを示すアクセス情報を含むログを生成する。ログ生成部34は、生成したログをログ保持部35に格納する。
【0023】
例えば、ログ保持部35に格納された情報は、図示しないシリアルインタフェース等を介してデバッグコントローラ30の外部から読み出し可能である。ログ保持部35は、デバッグコントローラ30の外部に設けられてもよい。なお、デバッグコントローラ30を、デバッグ時のみ動作させ、デバッグ時以外で停止するために、デバッグコントローラ30の動作を有効にするイネーブル信号を電子機器用デバイス100の外部からデバッグコントローラ30に供給してもよい。
【0024】
電子機器用デバイス100にデバッグコントローラ30を設けることで、PCIeリンクのリンクアップ後だけでなく、リックアップ中のLTSSMのステートの変化と、PCIeリンクのリンク状態とをログとして記録することができる。この結果、PCIeリンクのリンクアップ中の挙動をログとして記録することができ、リンクアップ中の不具合をデバッグすることができる。例えば、PCIeのリンクがリンクアップしなかった場合の原因を特定しやすくすることができる。
【0025】
これにより、CPU200と電子機器用デバイス100との間で通信できない場合に、その原因がPCIeインタフェースにあるか否かを、ログを参照して容易に判断することができる。したがって、CPU200および電子機器用デバイス100を含むシステムSYSを開発する開発者等は、生成されたログに基づいて、PCIeリンクの動作が正常か否かをデバッグすることができる。
【0026】
さらに、LTSSMのステートの変化を常に監視するためのデバッグ装置を用意することなく、システムSYSの起動時(すなわち、PCIeリンクのリンクアップ時)のLTSSMのステートをチェックすることができる。この結果、システムSYSのデバッグを、従来に比べて容易にすることができる。
【0027】
図2は、図1のデバッグコントローラ30の動作の一例を示すフロー図である。図2に示すフローは、例えば、電子機器用デバイス100が起動され、PCIeがリンクアップを開始したことに基づいて開始される。なお、デバッグコントローラ30は、電子機器用デバイス100に搭載されているため、図3に示すフローは、電子機器用デバイス100の起動とともに開始されてもよい。
【0028】
まず、ステップS10において、デバッグコントローラ30は、状態検出部31により、LTSSMのステートの遷移が発生したか否かを検出する。デバッグコントローラ30は、LTSSMのステートの遷移が発生した場合、ステップS12を実施する。デバッグコントローラ30は、LTSSMのステートの遷移が発生するまで、ステップS10の判定を繰り返す。なお、デバッグコントローラ30は、ステップS10において、状態検出部31によりLTSSMステートおよびLTSSMサブステートの両方の遷移が検出された場合にステップS12を実施する。
【0029】
ステップS12において、デバッグコントローラ30は、ログ生成部34により、LTSSMの遷移前と遷移後のステートとリンク情報とを記録する。次に、ステップS14において、デバッグコントローラ30は、ログ生成部34により、記録した情報を含むログを生成し、図2に示す動作を終了する。例えば、ログ生成部34が生成したログは、ログ保持部35に保持される。
【0030】
図2に示すように、デバッグコントローラ30は、PCIeのリンクアップの開始直後からLTSSMステートの変化を検出して、リンク情報とともに記録できる。すなわち、デバッグコントローラ30は、リンクアップ中に発生する不具合等をログとして記録することができる。
【0031】
図3は、図2のデバッグコントローラ30の動作の別の例を示すフロー図である。図3に示すフローは、例えば、CPU200が起動されたことに基づいて開始される。なお、電子機器用デバイス100が、例えば、CPU200と同じ基板に搭載され、CPU200と同時に起動される場合、図3に示すフローは、電子機器用デバイス100の起動とともに開始されてもよい。
【0032】
まず、ステップS20において、デバッグコントローラ30は、CPU200がレジスタアクセスを実施したか否かを、レジスタアクセス信号に基づいて判定する。デバッグコントローラ30は、レジスタアクセスが実施された場合、ステップS22を実施する。デバッグコントローラ30は、レジスタアクセスが実施されるまで、ステップS20の判定を繰り返す。
【0033】
ステップS22において、デバッグコントローラ30は、CPU200が実施したレジスタアクセスのアドレス、データおよびリードライト種別を記録する。次に、ステップS24において、デバッグコントローラ30は、ログ生成部34により、記録した情報を含むログを生成し、図3に示す動作を終了する。例えば、ログ生成部34が生成したログは、ログ保持部35に保持される。
【0034】
以上、第1の実施形態では、電子機器用デバイス100にデバッグコントローラ30が設けられる。このため、PCIeリンクのリンクアップ後だけでなく、リックアップ中のLTSSMのステートの変化と、PCIeリンクのリンク状態とをログとして記録することができる。この結果、PCIeリンクのリンクアップ中の挙動をログとして記録することができ、リンクアップ中の不具合をデバッグすることができる。例えば、PCIeのリンクがリンクアップしなかった場合の原因を特定しやすくすることができる。
【0035】
これにより、CPU200と電子機器用デバイス100との間で通信できない場合に、その原因がPCIeインタフェースにあるか否かを、ログを参照して容易に判断することができる。したがって、CPU200および電子機器用デバイス100を含むシステムSYSを開発する開発者等は、生成されたログに基づいて、PCIeリンクの動作が正常か否かをデバッグすることができる。
【0036】
さらに、LTSSMのステートの変化を常に監視するためのデバッグ装置を用意することなく、システムSYSの起動時(すなわち、PCIeリンクのリンクアップ時)のLTSSMのステートをチェックすることができる。この結果、システムSYSのデバッグを、従来に比べて容易にすることができる。
【0037】
(第2の実施形態)
図4は、本発明の第2の実施形態における電子機器用デバイスの一例を示すブロック図である。図1と同様の要素については、同じ符号を付し、詳細な説明は省略する。図4に示す電子機器用デバイス100は、図1のデバッグコントローラ30の代わりにデバッグコントローラ30Aを有する。電子機器用デバイス100のその他の構成および機能は、図1と同様である。
【0038】
デバッグコントローラ30Aは、図1の調停部33の代わりに調停部33Aを有する。また、デバッグコントローラ30Aは、図1のデバッグコントローラ30にタイムカウント部36を追加している。タイムカウント部36は、カウント値CNTを調停部33Aに出力する。デバッグコントローラ30Aのその他の構成および機能は、図1のデバッグコントローラ30と同様である。状態検出部31、レジスタアクセス検出部32、調停部33Aおよびログ生成部34は、図1のデバッグコントローラ30と同様に、ハードウェアにより実現されてもよく、ソフトウェアにより実現されてもよい。
【0039】
タイムカウント部36は、電子機器用デバイス100の起動時に動作を開始して時間をカウントし、カウントした時間をカウント値CNTとして調停部33Aに出力する。例えば、タイムカウント部36は、電子機器用デバイス100の起動時に解除されるリセット信号に基づいて、図示しないクロック信号のクロック数を時間としてカウントする。タイムカウント部36に供給されるクロック信号は、電子機器用デバイス100を動作させるクロック信号でよく、電子機器用デバイス100を動作させるクロック信号の周波数を分周したクロック信号でもよい。タイムカウント部36は、タイマの一例である。タイムカウント部36が出力するカウント値CNTは、時間情報の一例である。
【0040】
調停部33Aは、遷移情報とリンク情報とを含む変化情報またはアクセス情報を受信した場合、変化情報またはアクセス情報にタイムカウント部36がカウント中のカウント値CNTを付加する。調停部33Aは、変化情報とアクセス情報とを同時に受信した場合、変化情報とアクセス情報とに同一のカウント値CNTを付加する。そして、調停部33Aは、カウント値CNTを付加した変化情報またはカウント値CNTを付加したアクセス情報をログ生成部34に出力する。
【0041】
例えば、ログ生成部34は、同一のカウント値CNTが付加された変化情報およびアクセス情報を、互いに異なるタイミングで受信し、それぞれのログを生成する。したがって、例えば、変化情報を含むログとアクセス情報を含むログとがこの順で生成された場合に、LTSSMステートの遷移とレジスタアクセスとが、ログの生成順通りに発生したのか、同時に発生したのかをカウント値CNTによって判別することができる。この結果、CPU200および電子機器用デバイス100を含むシステムSYSを開発する開発者等は、カウント値CNTを含むログに基づいて、PCIeリンクの動作を正確に把握することができ、デバッグ効率を向上することができる。
【0042】
図5は、PCIeのリンク状態のログのフォーマットの一例を示す説明図である。ログ生成部34は、調停部33Aから受信して記録した変化情報を、図5に示すフォーマットのログとして生成する。ログは、1つの変化情報毎に、8バイトの領域を有する(上位がバイト7で、下位がバイト0)。
【0043】
バイト7-バイト3の5バイトの領域には、図4のタイムカウント部36がカウントした40ビットのカウント値CNTがカウント情報time_cnt[39:0]として格納される。バイト2のビット5-ビット4には、電源管理情報Powerduwn[1:0]が格納される。バイト2のビット3には、伝送信号の振幅情報txswingが格納される。振幅情報txswingの"0"は、フルスイングを示し、振幅情報txswingの"1"は、ハーフスウィング(低電圧仕様)を示す。
【0044】
バイト2のビット2には、波形情報txdeemphが格納される。波形情報txdeemphの"1"は、ディエンファシスの選択を示し、波形情報txdeemphの"0"は、Coefficientの選択を示す。バイト2のビット1には、転送レート情報link_spdが格納される。
【0045】
転送レート情報link_spdの"0"は、GEN1(PCI Express 1.1)を示し、転送レート情報link_spdの"1"は、GEN2(PCI Express 2.0)を示す。バイト2のビット0には、リンクアップ情報dl_upが格納される。リンクアップ情報dl_upの"0"は、通信不可能状態を示し、リンクアップ情報dl_upの"1"は、通信可能状態(すなわち、リンクアップ状態)を示す。
【0046】
バイト1のビット7-ビット4には、LTSSMの遷移前のステート情報ltssm_beforeが格納される。バイト1のビット2-ビット0には、LTSSMの遷移前のサブステート情報ltssm_st_beforeが格納される。バイト0のビット7-ビット4には、LTSSMの遷移後のステート情報ltssm_afterが格納される。バイト0のビット2-ビット0には、LTSSMの遷移後のサブステート情報ltssm_st_afterが格納される。なお、上記のいずれの情報も格納されないビットには、"0"が格納される。
【0047】
図6は、レジスタアクセスのログのフォーマットの一例を示すブロック図である。ログ生成部34は、調停部33Aから受信して記録したアクセス情報を、図6に示すフォーマットのログとして生成する。ログは、1つのアクセス情報毎に、16バイト(上位バイト群と下位バイト群)の領域を有する。
【0048】
上位バイト群および下位バイト群の最上位ビットは、上位バイト群と下位バイト群とを識別するための識別情報num[0]が格納される。上位バイト群の識別情報numには、"1"が格納され、下位バイト群の識別情報numには、"0"が格納される。上位バイト群のバイト4-バイト0の5バイトの領域には、カウント値CNTが40ビットのカウント情報time_cnt[39:0]として格納される。
【0049】
下位バイト群のバイト7のビット6には、レジスタアクセスのリードライト情報rwが格納される。リードライト情報rwの"0"は、リードアクセスを示し、リードライト情報rwの"1"は、ライトアクセスを示す。下位バイト群のバイト7のビット5からバイト4のビット0は、アクセスアドレスを示す30ビットのアドレス情報addr[29:0]が格納される。下位バイト群のバイト3-バイト0は、データを示すデータ情報data[31:0]が格納される。上位バイト群および下位バイト群の他の領域には、"0"が格納される。
【0050】
以上、第2の実施形態においても、第1の実施形態と同様の効果を得ることができる。さらに、第2の実施形態では、調停部33Aは、変化情報またはアクセス情報を受信した場合、変化情報またはアクセス情報にカウント値CNTを付加、ログ生成部34は、変化情報およびアクセス情報のそれぞれにログを付加したログを生成する。これにより、LTSSMステートの遷移とレジスタアクセスとが、ログの生成順通りに発生したのか、同時に発生したのかをカウント値CNTによって判別することができる。この結果、システムSYSの開発者等は、システムSYSのデバッグにおいて、PCIeリンクの動作を正確に把握することができ、デバッグ効率を向上することができる。
【0051】
(第3の実施形態)
図7は、本発明の第3の実施形態における電子機器用デバイスの一例を示すブロック図である。図1および図4と同様の要素については、同じ符号を付し、詳細な説明は省略する。図7に示す電子機器用デバイス100は、図1のデバッグコントローラ30の代わりにデバッグコントローラ30Bを有する。電子機器用デバイス100のその他の構成および機能は、図1と同様である。
【0052】
また、この実施形態では、CPU200および電子機器用デバイス100を含むシステムSYSは、大容量メモリ400と、大容量メモリ400と電子機器用デバイス100とを接続するデータバスDBとを有する。また、エンドポイント20が出力するレジスタアクセス信号を伝送する信号線は、データバスDBに接続される。大容量メモリ400は、ログ生成部34が生成したログを格納可能な外部メモリの一例である。
【0053】
デバッグコントローラ30Bは、図1のデバッグコントローラ30に、タイムカウント部36、メモリインタフェース部37、内蔵メモリ38およびDMA転送部39を追加している。また、デバッグコントローラ30Bは、図1の調停部33の代わりに調停部33Bを有し、ログ生成部34の代わりにログ生成部34Bを有する。状態検出部31、レジスタアクセス検出部32、調停部33Bおよびログ生成部34Bは、図1のデバッグコントローラ30と同様に、ハードウェアにより実現されてもよく、ソフトウェアにより実現されてもよい。
【0054】
メモリインタフェース部37は、調停部33Bと内蔵メモリ38とログ生成部34Bとに接続される。ログ生成部34Bは、メモリインタフェース部37とDMA転送部39とに接続される。例えば、内蔵メモリ38は、ライトポートWPとリードポートRPとを有するデュアルポートメモリである。DMA転送部39は、データバスDBを介して大容量メモリ400に接続され、CPU200に負荷を掛けずに、大容量メモリ400にデータ等を高速に転送可能である。タイムカウント部36は、図4に示すタイムカウント部36と同様に、電子機器用デバイス100の起動時からの時間をカウントし、カウントした時間をカウント値CNTとして調停部33Bに出力する。
【0055】
調停部33Bは、変化情報およびアクセス情報を、メモリインタフェース部37を介して内蔵メモリ38に格納する機能を有する。例えば、システムSYSの起動時のフォーマット等の初期化処理により、データバスDBを介した大容量メモリ400へのアクセスがすぐにできない場合がある。大容量メモリ400がアクセスできない期間、調停部33Bは、状態検出部31から受信する変化情報とレジスタアクセス検出部32から受信するアクセス情報との少なくとも一方を内蔵メモリ38に書き込む書き込み要求をメモリインタフェース部37に出力する。
【0056】
メモリインタフェース部37は、受信した書き込み要求に基づいて、変化情報およびアクセス情報の少なくとも一方を含む書き込みコマンドを生成し、生成した書き込みコマンドを内蔵メモリ38のライトポートWPに出力する。そして、変化情報およびアクセス情報の少なくとも一方は、内蔵メモリ38に書き込まれる。これにより、システムSYSの起動時等で、大容量メモリ400に変化情報またはアクセス情報を格納できない場合にも、システムSYSの起動中に発生した変化情報またはアクセス情報を欠損することなく保持することができる。
【0057】
一方、システムSYSの起動が完了し、データバスDBが使用可能になり、DMA転送部39によるデバッグコントローラ30Bから大容量メモリ400への情報の書き込みが可能になったとする。この場合、ログ生成部34Bは、データバスDBに対するDMA転送が可能になったことを示す信号をDMA転送部39から受信する。また、ログ生成部34Bは、内蔵メモリ38に保持されている変化情報およびアクセス情報を内蔵メモリ38から読み出す読み出し要求をメモリインタフェース部37に出力する。
【0058】
メモリインタフェース部37は、受信した読み出し要求に基づいて読み出しコマンドを生成して内蔵メモリ38のリードポートRPに出力し、内蔵メモリ38から変化情報およびアクセス情報を読み出す。メモリインタフェース部37は、内蔵メモリ38から読み出した変化情報およびアクセス情報を、読み出し要求の応答としてログ生成部34Bに出力する。
【0059】
なお、調停部33Bは、システムSYSの起動が完了した後、状態検出部31から受信する変化情報およびレジスタアクセス検出部32から受信するアクセス情報を調停後、メモリインタフェース部37を介してログ生成部34Bに出力する機能を有する。ログ生成部34Bは、メモリインタフェース部37から受信した変化情報およびアクセス情報を、大容量メモリ400への転送要求とともにDMA転送部39に出力する。DMA転送部39は、受信した変化情報およびアクセス情報を、データバスDBを介して大容量メモリ400にDMA転送する。
【0060】
この実施形態では、システムSYSの起動中に発生する変化情報およびアクセス情報と、システムSYSの起動後に発生する変化情報およびアクセス情報とは、順不同で大容量メモリ400に転送される。しかしながら、調停部33Bにより変化情報およびアクセス情報に、カウント値CNTを付加されるため、カウント値CNTを参照することで、大容量メモリ400に順不同で書き込まれた変化情報およびアクセス情報の発生時間の順序を判定することができる。
【0061】
DMA転送により、大容量メモリ400に書き込まれた変化情報およびアクセス情報は、データバスDBにアクセス可能なシリアルインタフェース等を介して読み出し可能である。このため、システムSYSの開発者等は、システムSYSのデバッグ時に、カウント値CNTが付加された変化情報を含むログおよびカウント値CNTが付加されたアクセス情報を含むログを大容量メモリ400から読み出すことができる。大容量メモリ400から読み出される変化情報およびアクセス情報は、システムSYSの起動中に発生したものも含まれるため、開発者等は、PCIeリンクの動作を正確に把握することができ、デバッグ効率を向上することができる。
【0062】
以上、第3の実施形態においても、第1および第2の実施形態と同様の効果を得ることができる。さらに、第3の実施形態では、デバッグコントローラ30Bにメモリインタフェース部37と内蔵メモリ38とが設けられる。これにより、システムSYSの起動時等で、大容量メモリ400に変化情報またはアクセス情報が格納できない場合にも、システムSYSの起動中に発生した変化情報またはアクセス情報を欠損することなく内蔵メモリ38に保持することができる。
【0063】
大容量メモリ400がアクセス可能になった後に、内蔵メモリ38から大容量メモリ400に転送される変化情報およびアクセス情報は、カウント値CNTを含む。このため、大容量メモリ400に順不同で書き込まれたログに含まれるカウント値CNTを参照することで、変化情報が示すLTSSMステートの遷移の発生時間と、アクセス情報が示すレジスタアクセスの発生時間との順序を判定することができる。
【0064】
(第4の実施形態)
図8は、本発明の第4の実施形態における電子機器用デバイスの一例を示すブロック図である。図1図4および図7と同様の要素については、同じ符号を付し、詳細な説明は省略する。図8に示す電子機器用デバイス100は、図7のデバッグコントローラ30Bの代わりにデバッグコントローラ30Cを有する。電子機器用デバイス100のその他の構成および機能と、CPU200および電子機器用デバイス100を含むシステムSYSの構成とは、図7と同様である。
【0065】
デバッグコントローラ30Cは、図7のデバッグコントローラ30Bの調停部33Bの代わりに調停部33Cを有し、図7のデバッグコントローラ30Bのログ生成部34Bの代わりにログ生成部34Cを有する。また、デバッグコントローラ30Cは、図7のメモリインタフェース部37の代わりにメモリインタフェース部37Cを有する。状態検出部31、レジスタアクセス検出部32、調停部33Cおよびログ生成部34Cは、図1のデバッグコントローラ30と同様に、ハードウェアにより実現されてもよく、ソフトウェアにより実現されてもよい。なお、内蔵メモリ38は、シングルポートメモリでもよい。
【0066】
メモリインタフェース部37Cは、調停部33Cと内蔵メモリ38とに接続される。ログ生成部34Cは、調停部33CとDMA転送部39とに接続される。
【0067】
調停部33Cは、変化情報およびアクセス情報を、メモリインタフェース部37Cを介して内蔵メモリ38に格納する機能を有する。また、調停部33Cは、内蔵メモリ38に格納された変化情報およびアクセス情報を、メモリインタフェース部37Cを介して内蔵メモリ38から読み出す機能を有する。さらに、調停部33Cは、図1の調停部33と同様に、変化情報およびアクセス情報をログ生成部34に出力する機能を有する。
【0068】
調停部33Cは、図7に示した調停部33Bと同様に、変化情報とアクセス情報との少なくとも一方を内蔵メモリ38に書き込む書き込み要求をメモリインタフェース部37Cに出力する。メモリインタフェース部37Cは、受信した書き込み要求に基づいて、変化情報およびアクセス情報の少なくとも一方を含む書き込みコマンドを生成し、生成した書き込みコマンドを内蔵メモリ38のライトポートWPに出力する。そして、変化情報およびアクセス情報の少なくとも一方は、内蔵メモリ38に書き込まれる。
【0069】
一方、システムSYSの起動が完了し、大容量メモリ400がアクセス可能になった場合、調停部33Cは、内蔵メモリ38が保持する変化情報およびアクセス情報を内蔵メモリ38から読み出す読み出し要求をメモリインタフェース部37Cに出力する。メモリインタフェース部37Cは、受信した読み出し要求に基づいて読み出しコマンドを生成して内蔵メモリ38に出力し、内蔵メモリ38から変化情報およびアクセス情報を読み出す。メモリインタフェース部37Cは、内蔵メモリ38から読み出した変化情報およびアクセス情報を、読み出し要求の応答として調停部33Cに出力する。
【0070】
調停部33Cは、メモリインタフェース部37Cから受信した変化情報およびアクセス情報を、ログ生成部34Cに出力する。また、調停部33Cは、システムSYSの起動が完了した後、状態検出部31から受信する変化情報およびレジスタアクセス検出部32から受信するアクセス情報を調停後、ログ生成部34Cに出力する。
【0071】
ログ生成部34Cは、図7に示したログ生成部34Bと同様に、調停部33Cから受信した変化情報およびアクセス情報を、大容量メモリ400に向けてDMA転送部39に出力する。DMA転送部39は、受信した変化情報およびアクセス情報を、データバスDBを介して大容量メモリ400にDMA転送する。
【0072】
以上、第4の実施形態においても、第1から第3の実施形態と同様の効果を得ることができる。
【0073】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
【符号の説明】
【0074】
10 物理層インタフェース(PHY)
20 エンドポイント
30、30A、30B、30C デバッグコントローラ
31 状態検出部
32 レジスタアクセス検出部
33、33A、33B、33C 調停部
34、34B、34C ログ生成部
35 ログ保持部
36 タイムカウント部
37、37C メモリインタフェース部
38 内蔵メモリ
39 DMA転送部
100 電子機器用デバイス
200 CPU
300 ルートコンプレックス
CNT カウント値
DB データバス
SYS システム
【先行技術文献】
【特許文献】
【0075】
【文献】特許第6127766号公報
【文献】特開2014-182676号公報
図1
図2
図3
図4
図5
図6
図7
図8