(58)【調査した分野】(Int.Cl.,DB名)
コンピュータによって実行され、複数の実行可能なモジュールを有するツールにテクニカルサポートを提供する方法であって、各モジュールはステージを含み、前記方法は、
エラーメッセージを読取り、そこからエラーコードを取得することと、
プロジェクトディレクトリをサーチして、前記複数の実行可能なモジュールのうちの失敗したモジュールを示す第1のレポートを取得することとを含み、
前記第1のレポートは、前記エラーメッセージに関連付けられ、さらに、
前記第1のレポートから前記失敗したモジュールの前記ステージのうちの失敗したステージを識別することと、
前記エラーメッセージについてのケース照会を準備することとを含み、前記ケース照会は、前記失敗したステージを識別するエラーコードを含み、さらに、
前記失敗したステージおよび前記エラーコードと一致するエントリについてドキュメントをサーチすることを含み、前記ドキュメント内の各エントリは、前記エラーコードに関連付けられたステージ、エラーコード、データベースへのリンクを特定するデータを含み、さらに、
エントリが前記失敗したステージおよびエラーコードと一致した場合、一致するエントリをウィンドウに表示することと、
前記失敗したステージおよびエラーコードと一致するエントリがない場合、エラーコードおよびエラーが現在対処されていることを示す情報へのリンクを含むエントリを前記ドキュメント内に作成することとを含み、
読取ること、サーチすること、前記失敗したステージを識別すること、ケース照会を準備すること、サーチすること、表示すること、および作成することは、前記コンピュータによって行なわれる、方法。
前記作成されたエントリについてのタイトルを生成することをさらに含み、前記タイトルは、前記失敗したステージに関連付けられた前記失敗したモジュールの名前および位置を含み、さらに、
前記作成されたエントリに前記タイトルを付加することをさらに含む、請求項1〜4のうちいずれか1項に記載の方法。
前記作成されたエントリをネットワーク上でユーザフォーラムアドレスおよびテクニカルサポートアドレスの双方に提供することをさらに含む、請求項1〜4のうちいずれか1項に記載の方法。
前記webcaseは、前記複数のセクションのうちの1つのセクションと、前記複数のサブセクションのうちの1つのサブセクションと、前記1つ以上のエラーコードのうちの1つのエラーコードを有するエラーメッセージとを示す、請求項9に記載のシステム。
【発明を実施するための形態】
【0023】
詳細な説明
以下の記載では、具体的な例のより十分な説明を提供するために、多くの具体的な詳細を挙げる。しかし、以下に示されるすべての具体的な詳細なしに1つ以上の例を実施してもよいことは当業者には明らかであるはずである。他のインスタンスでは、1つ以上の例が不明瞭とならないよう周知の特徴については詳細に記載していない。例示を簡単にするため、同じ要素を指すために同じ符号を異なる図において用いる。しかし、代替的な実施形態では要素は異なり得る。
【0024】
以下の記載では、説明の目的で、本明細書に開示される様々な発明概念についての十分な理解を提供するために、具体的な名称を挙げる。しかし、本明細書に開示された様々な発明概念を実施するためにはこれらの具体的な詳細は必要とされないことは当業者にとって明らかであろう。
【0025】
以下の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する動作のアルゴリズムおよび記号表示に関して提示される。これらのアルゴリズムの記載および表示は、作業の本質を他の当業者に最も効果的に伝えるためにデータ処理技術の当業者によって用いられる手段である。アルゴリズムは、ここでは、かつ一般には、所望の結果に至る自己矛盾のない一連のステップであると考えられる。ステップは、物理量の物理的な操作を必要とするものである。必須ではないが通常は、これらの量は、格納すること、転送すること、組合せること、比較すること、およびその他の方法で操作することが可能な電気信号または磁気信号の形態を取る。これらの信号をビット、値、要素、記号、文字、用語、数等として参照することは、主に共通使用の理由により時には好都合であることが分かっている。
【0026】
しかし、これらおよび同様の用語はすべて適切な物理量と関連付けられ、これらの量に与えられる好都合な符号にすぎないことに留意すべきである。特に別記しない限り、以下の説明から明らかであるように、記載の全体にわたって、「処理する」または「計算する」または「算出する」または「判定する」または「表示する」などといった用語を利用した議論は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表わされるデータを操作し、コンピュータシステムメモリまたはレジスタまたは他のそのような情報記憶、送信または表示装置内の物理量として同様に表される他のデータに変形させるコンピュータシステムまたは同様の電子計算装置の動作およびプロセスを指すことが明らかである。
【0027】
本システムおよび方法は、本明細書の動作を行なうための装置にも関する。この装置は、必要とされる目的のために特別に構成されてもよいし、コンピュータに格納されたコンピュータプログラムによって選択的に起動されるかもしくは再構成される汎用コンピュータを含んでもよい。そのようなコンピュータプログラムは、限定はしないがフロッピー(登録商標)ディスク、光ディスク、CD−ROM、および光磁気ディスクを含む任意の種類のディスク、読取り専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、EPROM、EEPROM(登録商標)、磁気もしくは光カード、または電子命令を格納するのに好適な任意の種類の媒体などのコンピュータ読取り可能な記憶媒体に格納されてもよく、各媒体はコンピュータシステムバスに結合される。
【0028】
本明細書に提示されるアルゴリズムおよび表示装置は、いずれかの特定のコンピュータまたは他の装置に本質的には関連していない。本明細書の教示に係るプログラムと共に様々な汎用システムを用いてもよいし、必要とされる方法ステップを行なうためにより特殊化した装置を構成することが好都合であると分かる場合もある。様々なこれらのシステムのための構造が以下の説明から出現するであろう。その上、本明細書に含まれる例は、いずれかの特定のプログラミング言語に関して説明されない。様々なプログラミング言語を用いて、本明細書に記載される教示を実装してもよいと理解されるであろう。
【0029】
いくつかの図に例示的に表されている例について説明する前に、さらなる理解のために概説を提示する。下記のように、アプリケーションは、デバッガを含んで、またはデバッガにアクセスして、オンデマンド(「オンザフライ」)テクニカルサポートを提供し得る。これは、時間がかかる手作業のサーチを回避するために用いられ得る。そのようなデバッガは、エラーメッセージに応じて使用されるかまたは呼び出され、その後、そのようなエラーについて回答記録が存在するかどうかを判定するためにチェックし、存在しない場合は、ユーザのためにそのようなエラーに対処するべくテクニカルサポート(「webcase」)のリクエストおよび/またはユーザのコミュニティのためのポストを作成し得る。これらの方針に沿って、ユーザコンピュータに対してローカルであるか、ユーザのコンピュータによってアクセス可能なオンラインであるかに関わらず、エラーをデバッグするための関連情報が1つ以上の利用可能なデータベースから自動的にフェッチされ得る。
【0030】
上記の概略的な理解に留意して、オンザフライサポートのための様々な典型的なデバッガについて概略的に以下で説明する。これらの例の1つ以上は特定の種類のICを用いて例証されるため、そのようなICの詳細な説明を以下に提示する。しかし、他の種類のアプリケーションが本明細書に記載される例のうち1つ以上から利益を受け得ることが理解されるべきである。
【0031】
プログラマブルロジックデバイス(「PLD」)は、特定された論理関数を行なうようにプログラムすることができる周知の種類の集積回路である。PLDの一種であるフィールドプログラマブルゲートアレイ(「FPGA」))はプログラマブルタイルのアレイを典型的に含む。これらのプログラマブルタイルは、たとえば、入出力ブロック(「IOB」)、構成可能な論理ブロック(「CLB」)、専用のランダムアクセスメモリブロック(「BRAM」)、マルチプライヤ、デジタル信号処理ブロック(「DSP」)、プロセッサ、クロックマネージャ、遅延ロックループ(「DLL」)などを含むことができる。本明細書で用いられる限りにおいて、「含む」および「含み」は制限なしに含むことを意味する。
【0032】
各プログラマブルタイルは、プログラマブル相互接続およびプログラマブルロジックの双方を典型的に含む。プログラマブル相互接続は、プログラマブル相互接続点(「PIP」)によって相互接続された、長さが変動する多数の相互接続ラインを典型的に含む。プログラマブルロジックは、たとえば、関数発生器、レジスタ、演算ロジックなどを含むことができるプログラマブル要素を用いて、ユーザ設計のロジックを実装する。
【0033】
プログラマブル相互接続およびプログラマブルロジックは、プログラマブル要素がどのように構成されるかを規定する内部構成メモリセルに構成データのストリームをロードすることによって典型的にプログラムされる。構成データはメモリから(たとえば外部PROMから)読取ることができるか、または外部装置によってFPGAに書込むことができる。個々のメモリセルの集団状態がFPGAの機能を決定する。
【0034】
別の種類のPLDは、コンプレックスプログラマブルロジックデバイス、すなわちCPLDである。CPLDは、相互接続スイッチマトリクスによって互いに、かつ入出力(「I/O」)リソースに接続される2つ以上の「機能ブロック」を含む。CPLDの各機能ブロックは、プログラマブルロジックアレイ(「PLA」)およびプログラマブルアレイロジック(「PAL」)デバイスで用いられるものと同様の2レベルのAND/OR構造を含む。CPLDでは、構成データはオンチップで不揮発性メモリに典型的に格納される。いくつかのCPLDでは、構成データは、オンチップで不揮発性メモリに格納され、次いで初期設定(プログラミング)シーケンスの一部として揮発性メモリにダウンロードされる。
【0035】
これらのプログラマブルロジックデバイス(「PLD」)のすべてについて、装置の機能性は、当該目的のために装置に提供されるデータビットによって制御される。データビットは、揮発性メモリ(たとえばFPGAおよびいくつかのCPLDでのようなスタティックメモリセル)、不揮発性メモリ(たとえばいくつかのCPLDでのようなFLASHメモリ)、またはいずれかの他の種類のメモリセルに格納することができる。
【0036】
他のPLDは、装置上の様々な要素をプログラム可能に相互接続するメタル層などの処理層を適用することによってプログラムされる。これらのPLDは、マスクプログラマブルデバイスとして知られている。PLDは、他のやり方で、たとえばヒューズまたはアンチヒューズ技術を用いて実施することもできる。「PLD」および「プログラマブルロジックデバイス」という用語は、限定はしないがこれらの典型的な装置を含み、部分的にのみプログラム可能な装置を包含する。たとえば、PLDの一種は、ハードコード化されたトランジスタロジックと、ハードコード化されたトランジスタロジックをプログラム可能に相互接続するプログラマブルスイッチファブリックとの組合せを含む。
【0037】
上記のように、高度なFPGAは、いくつかの異なる種類のプログラマブルロジックブロックをアレイで含むことができる。たとえば
図1は、マルチギガビットトランシーバ(「MGT」)101、構成可能な論理ブロック(「CLB」)102、ランダムアクセスメモリブロック(「BRAM」)103、入出力ブロック(「IOB」)104、構成およびクロックロジック(「CONFIG/CLOCKS」)105、デジタル信号処理ブロック(「DSP」)106、特殊な入出力ブロック(「I/O」)107(たとえば構成ポートおよびクロックポート)、およびデジタルクロックマネージャ、アナログ/デジタル変換器、システム監視ロジックなどといった他のプログラマブルロジック108を含む多数の異なるプログラマブルタイルを含むFPGAアーキテクチャ100を例示する。いくつかのFPGAは、専用のプロセッサブロック(「PROC」)110も含む。
【0038】
いくつかのFPGAでは、各プログラマブルタイルは、各隣接タイルにおける対応する相互接続要素との標準化された接続を有するプログラマブル相互接続要素(「INT」)111を含む。したがって、プログラマブル相互接続要素は、例示されているFPGAのためのプログラマブル相互接続構造を共に実現する。
図1の上部に含まれる例によって示されるように、プログラマブル相互接続要素111は、同じタイル内のプログラマブルロジック要素との接続も含む。
【0039】
たとえば、CLB102は、単一のプログラマブル相互接続要素(「INT」)111を加えたユーザロジックを実現するようにプログラムすることができる構成可能な論理要素(「CLE」)112を含むことができる。BRAM103は、1つ以上のプログラマブル相互接続要素に加えて、BRAM論理要素(「BRL」)113を含むことができる。典型的に、タイルに含まれる相互接続要素の数は、タイルの高さに依存する。図示のFPGAでは、BRAMタイルは5つのCLBと同じ高さを有するが、他の数(たとえば4)を用いることもできる。DSPタイル106は、適切な数のプログラマブル相互接続要素に加えて、DSP論理要素(「DSPL」)114を含むことができる。IOB104は、たとえば、プログラマブル相互接続要素111の1つのインスタンスに加えて、入出力論理要素(「IOL」)115の2つのインスタンスを含むことができる。当業者には明らかとなるように、たとえばI/O論理要素115に接続される実際のI/Oパッドは、典型的に、入出力論理要素115の領域に限定されない。
【0040】
図示のFPGAにおいて、(
図1に示す)ダイの中心付近の水平領域は、構成、クロックおよび他の制御ロジックに用いられる。この水平領域または列から延在する縦列109は、クロックおよび構成信号をFPGAの幅を横切って分配するのに用いられる。
【0041】
図1に示されるアーキテクチャを利用したいくつかのFPGAは、FPGAの大部分を構築する規則的なカラム型構造を中断する追加的な論理ブロックを含む。追加的な論理ブロックは、プログラマブルブロックおよび/または専用のロジックであり得る。たとえばプロセッサブロック110は、いくつかの列のCLBおよびBRAMにまたがる。
【0042】
図1は典型的なFPGAアーキテクチャのみを例示することが意図されていることに注意すべきである。たとえば、1行の論理ブロックの数、行の相対的な幅、行の数および順序、行に含まれる論理ブロックの種類、論理ブロックの相対的なサイズ、ならびに
図1の上部に含まれる相互接続/ロジック実装例は典型的なものにすぎない。たとえば、実際のFPGAでは、ユーザロジックの効率的な実装を容易にするために、CLBがどこに出現しようと、2本以上の隣接する行のCLBが典型的に含まれるが、隣接するCLBの行の数はFPGAの全体的なサイズによって変動する。
【0043】
図2は、典型的な従来のデバッグフロー200を表すブロック/斜視図である。コンピュータ206を使用しているユーザ205は、ソフトウェアアプリケーション(「ツール」)210を実行する際にエラーに遭遇する場合がある。過去においては、ユーザ205は、インターネットクラウド204によって1つ以上のデータベース201〜203に個々に手作業で照会して、エラーを修復するための解決策情報を探すことになっていた。この例では、データベース201は、ユーザの質問に回答するテクニカルサポートなどからの回答記録のウェブアクセス可能なデータベースであり得る。テクニカルサポート要員によって処理されているオープンなユーザの質問は、「トラブルチケット」、「webcase」、または他の名前で称されることがある。データベース202は、ユーザの質問に回答するポストおよびそのスレッドを有する1つ以上のウェブアクセス可能なユーザコミュニティフォーラムであり得る。最後に、データベース203は、製品の製造によって提供され得るウェブアクセス可能なドキュメントであり得る。1つ以上のデータベース201〜203をサーチしても有用な解決策が得られなかった場合、ユーザ205は一般にユーザコミュニティのためのテクニカルサポートおよびフォーラムポストについてwebcaseを手作業で作成することになっていた。
【0044】
デバッグフロー200は、1つ以上のエラーを発生させ得る様々なツールのうちのいずれかについてのものであり得る。例によって明確にする目的で、限定ではなく、電子設計自動化(「EDA」)ツールについて記載するが、他のインスタンスでは他の種類のツールが用いられてもよい。EDAツールは、ユーザの回路デザインをFPGAを構成するための構成情報に変形するために、すなわち、限定なしにそのようなFPGAのプログラム可能なリソースを用いる具体例を含む、FPGAにおけるユーザの回路デザインを具体化するために使用され得る。
【0045】
EDAツール210がエラーを発生すると、回答記録データベース201においてオンラインで回答記録または解決策ステートメントをサーチする選択肢がユーザ205に与えられ得る。そのようなオンラインサーチを呼び出すには、ユーザ205はエラーメッセージをクリックするか、またはエラーメッセージを右クリックし、回答記録プションにおおいてサーチを選択してもよい。そのようなオンラインサーチが呼び出されると、キーワードサーチがユーザ205によって行なわれ得る。そのようなサーチの結果は、EDAツール210内のウェブページに、または別個のウィンドウに表示され得る。エラーを解決する際にこの回答記録のサーチがユーザ205にとって役立たない場合は、ユーザ205は1つ以上のユーザコミュニティフォーラムデータベース202および/またはドキュメントデータベース203において1回以上の他のサーチを行なってもよい。ユーザはさらに、Google(登録商標)、Bing(登録商標)、Yahoo(登録商標)、または何らかの他のサーチエンジンを用いて、ワールドワイドウェブサーチを行なってもよい。ユーザ205がそれらのエラーを解決するのにサーチが役立たなかった場合は、ユーザ205はテクニカルサポートチームのためのwebcaseを手作業で作成し、かつ/またはユーザコミュニティフォーラムにクエリーを投稿してもよい。
【0046】
あいにく、ユーザ205による異なるサーチ空間の手作業による照会には時間がかかる。そのような手作業のサーチは、ユーザによってサーチするために用いられるキーワードへの従属性により、一貫性のないサーチ結果をもたらし得る。さらに、懸案のエラーを修復することとは無関係かもしれない過剰な情報が返される場合がある。加えて、すべての関連情報を有するwebcaseおよび/またはフォーラムポストの手作業による作成はユーザごとに異なる場合があり、解決に一貫性がなく、かつ/または長引くことになり得る。
【0047】
図3は、典型的なオンザフライテクニカルサポートフロー300を表すブロック/斜視図である。テクニカルサポートフロー300は、情報取扱システムにより実行され得る。そのような情報取扱システムは、コンピュータ206、サーバ330、1つ以上のサーバ340、およびネットワーククラウド204を含み得る。この例では、ネットワーククラウド204はインターネットクラウドである。
【0048】
コンピュータ206を使用しているユーザ205は、ソフトウェアツール(「ツール」)310を実行している際にエラーに遭遇する場合がある。追加的に以下に詳細に記載するように、ツール310はテクニカルサポートアプリケーション(「デバッガ」)を呼び出すためのアイコン311を含み得る。再び、この例では、データベース201は、「webcase」としても知られているユーザの質問に回答するテクニカルサポートなどからの回答記録のウェブアクセス可能なデータベースであり得る。データベース202は、ユーザの質問に回答するポストスレッドを有する1つ以上のウェブアクセス可能なユーザコミュニティフォーラムであり得る。最後に、データベース203は、製品の製造によって提供され得るウェブアクセス可能なドキュメントであり得る。
【0049】
アイコン311または他のグラフィカルユーザインターフェイス(「GUI」)を用いて、デバッガ(以下「デバッガ311」)を呼び出して1つ以上のデータベースを自動的にサーチし得る。データベースは、コンピュータ206上のローカルであってもよいし、オンラインであってもよい。明確にする目的で、限定ではなく、オンラインデータベース201〜203が用いられると想定されるものとする。有用な解決策が見つからなければ、デバッガ311は、テクニカルサポートのためのwebcaseおよびユーザコミュニティのためのフォーラムポストを自動的に作成し得る。
【0050】
テクニカルサポートフロー300は、1つ以上のエラーに遭遇し得る様々なツール310のうちのいずれかについてのものであり得る。例によって明確にする目的で、限定ではなく、電子設計自動化(「EDA」)ツールについて記載するが、他のインスタンスでは他の種類のツールが用いられてもよい。それらの方針に沿って、テクニカルサポートモジュール311はデバッガであり得、テクニカルサポートフロー300はデバッグフローであり得る。
【0051】
EDAツール310がエラーに遭遇すると、ユーザ205は、追加的に以下に詳細に記載するように、そのアイコンを選択し、EDAツール310のデバッガ311を呼び出して、その後データベースを自動的にサーチし得る。別の実施形態では、EDAツール310は、追加的に以下に詳細に記載するように、エラーの発生に応じて自動的にデータベースを検索し得る。しかし、熟練したユーザ205は発生した各エラーに応じてデータベースを自動的に検索したくない場合があるため、熟練したユーザにとってはアイコンの方が有用であり得る。
【0052】
デバッガ311は、インターネットクラウド204上でサーバ330と通信して、ドキュメント320にアクセスし得る。サーバ330はセキュアサーバであり得る。サーバ330はドキュメント320をホストし得る。ドキュメント320は複数のセクション321に細分され得る。そのようなセクション321のうちの1つ以上は、複数のサブセクション322にさらに細分され得る。セクション321はEDAツール310の複数の実行可能なモジュールためのものであり得る。セクション−サブセクションに関連付けられる1つ以上のエラーコード323が、そのような関連付けられたサブセクションに位置し得る。
【0053】
EDAの例については、セクションまたはEDAプロセスは、とりわけ実装および合成を含み得る。サブセクションは、そのようなEDAプロセス内のステージであり得る。たとえば実装プロセスまたはセクションの、ステージまたはサブセクションは、変換ステージ、マップステージ、ならびに配置およびルートステージを含み得る。ハードウェア記述言語(「HDL」)は限定なしにVerilog、VHDLおよびSystemCを含み得る。合成プロセスまたはセクションの、ステージまたはサブセクションは、HDLパーシングおよびエラボレーションステージ、HDL合成ステージ、アドバンスト合成ステージ、ならびにローレベル合成ステージを含み得る。各ステージは、一般にステージを実行しているときの競合により、そのようなEDAツール310がそのようなステージについて生成することができるすべての既知のエラーコードを含み得る。
【0054】
各エラーコード323は、その下に埋め込まれた情報がそれと関連付けられてもよい。エラーコード323の下に埋め込まれたそのような情報は、エラーレコード327を提供するために、データベース201への1つ以上のオンライン回答記録リンク324、データベース202への1つ以上のユーザコミュニティフォーラムリンク325、および/またはデータベース203への1つ以上のドキュメンテーションリンク326を含み得る。追加的に以下に詳細に記載するように、サブセクション322は1つ以上のエラーレコード327と関連付けられてもよい。1つ以上のエラーレコード327は、関連付けられたサブセクションまたはステージ322下で生じ得る1つ以上のエラーと関連した1つ以上のエラーコードと関連付けられてもよい。
【0055】
たとえば、ドキュメント320のエラーレコード327は、ISE合成セクション321、HDLパーシングサブセクション322、HDLコンパイラエラーコード323、回答記録(「AR」)リンク324、ユーザコミュニティフォーラムリンク325、およびウェブアクセス可能なドキュメントリンク326についての一例として示される。したがって、たとえば、一致するオンライン回答記録へのリンクが提供されてもよく、そのような回答記録は、遭遇したエラーをデバッグするために十分な情報/代替手段を有する。回答記録は、そのようなEDAツール310の製造業者/製作者のプロダクトアプリケーションエンジニアによって作成されてもよく、そのような回答記録は、解決されたエラーとそれを実現するために行われたステップとをハイライト表示してもよい。一致するオンラインユーザコミュニティフォーラムリンクへのリンクが提供されてもよく、そのようなフォーラムポストおよびそのスレッドは、フォーラムメンバーによって提供された様々なガイダンス/デバッギングステップを含んでもよい。そのようなフォーラムは、ソーシャルネットワーキングテクノロジーを採用し得る。一致するオンラインドキュメンテーションレファレンスへのリンクが提供されてもよい。これは、そのようなオンラインレファレンスのうちの1つ以上の部分を参照することによってそのような遭遇したエラーをユーザがデバッグするのに役立ち得る。
【0056】
少なくとも1つのサーバ340は、データベース201〜203のホスティングに用いられ得る。エラーレコード327は、1つ以上のエラーを解決するための関連情報をそこからフェッチするために、データベース201〜203のうちの少なくとも1つへの少なくとも1つのリンクを有し得る。
【0057】
サーバ330は、ケース照会の受信に応じてドキュメント320をサーチするようにプログラムされ得る。ケース照会は、エラーに応答してデバッガ311からサーバ330に送信され得る。より特定的には、遭遇したエラーに応答してEDAツール310によって生成されるエラーメッセージは、デバッガ311がそのようなケース照会を送信する根拠となり得る。サーバ330は、そのようなケース照会に応じてドキュメント320のそのようなサブセクション322のうちの1つのサブセクション322のコピーを作成するようにプログラムされ得る。これらの方針に沿って、識別されたセクション−サブセクションにおけるエラーコード323がすべてコンピュータ206に送信され、コンピュータ206上にローカルコピー312が提供され得る。そのようなローカルコピー312はコンピュータ206上に格納されてもよく、EDAツール310のウィンドウ312に表示されてもよい。サーバ330は、そのようなケース照会を発信したコンピュータ206などのクライアントにドキュメント320の1つのサブセクション322のそのようなコピーを送信するようにプログラムされ得る。
【0058】
ケース照会に応答するためのエラーレコード327がドキュメント320に存在しない場合、またはユーザがそのようなローカルコピーにおいてエラーの解決策が見つけられない場合は、デバッガ311がwebcaseを開始してもよく、そのような未解決の問題、すなわちトラブルチケットまたはwebcaseについてドキュメント320にエントリが作成されてもよい。サーバ330は、ドキュメント320を更新してwebcaseについてのエントリを作成するようにプログラムされ得る。例によって明確にする目的で、限定ではなく、エラーレコード329はwebcaseの一例である。エラーレコード329は、セクション321のうちの1つのセクション、サブセクション322のうちの1つのサブセクション、およびエラーコード323のうちの1つのエラーコードを有するエラーメッセージを含んでもよい。エラーレコード329は、テクニカルサポートが包含されていることを示すwebcase番号および日付328をさらに含んでもよい。エラーレコード329は、そのようなエラーがコミュニティユーザフォーラムで現在対処されていることを他の人々に通知するために、データベース202におけるコミュニティフォーラムポストへのリンク325をさらに含んでもよい。エラーレコード329は、そのようなエラーがどこで生じたかに関連付けられた、データベース203におけるドキュメンテーションへのリンク326をさらに含んでもよい。例示されている例を継続して、合成を実行している間にデバッガ311がすでに識別しているエラーが生じたとすると、合成ユーザガイドへのリンクが提供され得る。webcaseがアプリケーションエンジニアによって解決されると、そのようなアプリケーションエンジニアは、回答記録においてそのような解決をドキュメント化し、対応するwebcase番号を新しい回答記録にリンクさせてもよい。
【0059】
図4は、情報取扱システムによって行なわれ得る典型的なデバッグフロー400を表すフローチャートである。デバッグフロー400は、
図3のオンザフライテクニカルサポートフロー300について用いられ得る。再び、例によって明確にする目的で、限定ではなく、デバッグフロー400はEDAツールのユーザのためのデバッグフローであると想定されるものとする。
図3および
図4を同時に参照して、デバッグフロー400についてさらに説明する。
【0060】
401において、遭遇したエラーがツール310のプロセスまたはモジュールを停止させ得る、すなわちそのようなツールのフローを停止させる。そのようなエラーに応答して、そのようなツール310はエラーメッセージ402を生成し得る。エラーメッセージ402に応答して、403においてデバッガ311が開始され得る。再び、限定ではなく、明確にする目的で、ユーザ205はツール310のGUIのデバッグアイコンをクリックしてもよい。
【0061】
動作404〜412は、コンピュータ206上で実行するデバッガ311によって行なわれ得る。デバッガ311は、本明細書に別記されるように、有形のコンピュータ読取り可能な記憶媒体上に格納されたコンピュータ読取り可能なプログラムであり得る。コンピュータ206またはコンピュータ206に動作404〜412を行なわせるための他の情報取扱システムによってデバッガ311を処理することができる。本明細書に記載される他の動作は、
図3を参照して説明した情報取扱システムの他のコンポーネントによって行なわれてもよい。
【0062】
404において、デバッガ311は、ツール310によって生成されたエラーメッセージ402を読取り、そのようなエラーメッセージからエラーコードを取得する。デバッガ311はさらに、そのようなエラーメッセージを読取り、そのようなエラーメッセージに関連付けられたエラーコンテンツを取得し得る。
【0063】
ツール310は、現在処理されている設計のための情報取扱システムプロジェクトディレクトリを有し得る。EDAツールは従属性フローを有してもよく、したがって、EDAツール310によって実行されている現在のプロセスは、現在の作業についての1つ以上の事前の完了したモジュールまたはプロセスからの1つ以上の入力に依存し得る。これは、デバッガ311が、失敗したモジュールを絞り込み、最後の完了したモジュールと、もしあればいずれかの他の完了したモジュールとを識別するのに役立ち得る。たとえば、マッピングプロセスにおいてエラーが生じた場合、デバッガ311は、合成および変換である現在の作業について過去の完了したモジュールを識別することが可能であり得る。
【0064】
405において、情報取扱システムプロジェクトディレクトリ413がサーチされ、レポートを取得し得る。EDAツール310が現在のEDA作業の終わりまで進行すると、そのようなEDAツール310は、完了したか否かに関わらず、各モジュールにつき1つ以上のレポート414のうちの1つのレポートを生成し得る。したがって、失敗したモジュールについてのレポート414のうちの1つのレポートと同様に、1つ以上の対応する完了したモジュールの1つ以上のレポート414が存在し得る。レポート以外のファイルがプロジェクトディレクトリ413内に存在してもよい。たとえば、デバッガ311は、現在のEDA作業についての上位モジュールのためのサマリxmlファイルを取出し得る。
【0065】
405において、レポート414のうちの1つのレポートは、EDAツール310の複数の実行可能なモジュールのうち失敗したモジュールを示し得る。したがって、取得されたそのようなレポートは、404で読取られたエラーメッセージと関連付けられ得る。完了したモジュールについてのレポートでさえ、1つ以上の潜在的なエラーの1つ以上の警告を示し得る。1つ以上のサマリーレポートから取得されたこれらの1つ以上の警告は、完了したモジュールについてか失敗したモジュールについてかに関わらず、エラーをデバッグする際に有用となり得る。
【0066】
406において、デバッガ311は、エラーメッセージ402を分類して、もしあればエラーに関連付けられた回路素子の1つ以上を識別し得る。そのような回路素子はたとえば1つ以上のネット、信号、ブロック、ポート、および/またはインスタンスであってもよく、エラーメッセージにおけるエラーコンテンツの一部であってもよい。そのような回路素子は、エラーの「発生元」と一般に称される。換言すると、「発生元」は、この例における回路系に関してエラーメッセージの中に何があるかを識別し得る。
【0067】
407において、405でフェッチした情報により、デバッガ311は、任意にすべての完了したモジュールについて連続してレポート414を開き、「発生元」情報を用いてそのようなレポートの各々においてキーワードサーチを行ない得る。そのようなキーワードサーチから取得される情報を用いて、ユーザが無視したがエラーメッセージ402に関連付けられたエラーの背後の原因であり得る警告を識別し得る。
【0068】
任意に、408において、限定はしないが407におけるそのようなキーワードサーチからの任意の警告を含むヒットは、たとえばタグをつけるなどして注目させ、たとえばキャッシュなどの記憶装置に格納され得る。たとえば、マップモジュールにおけるエラーがpcie_0という名の信号を識別した場合、デバッガ311はまず合成モジュールレポート(たとえば拡張子「syr」)を開き、pcie_0と関連する警告を探し得る。デバッガ311がいずれかの一致する警告を見つけた場合、デバッガ311はそのような警告の各々をデバッガ311のキャッシュに保存し得る。しかし、デバッガ311が合成モジュールにおける407でのサーチからいずれの一致も見つけなければ、デバッガ311は変換モジュールレポート(たとえば拡張子「bld」)を開き、従属性に従ってモジュールを順次処理し続け得る。
【0069】
409において、失敗したモジュールのレポートが開かれる。410において、そのような失敗したモジュールの失敗したサブセクション、フェーズまたはステージが、405で取得されたレポートから識別される。たとえばデバッガ311は、EDAツール310が失敗したモジュールについてのレポートファイルを開き、そのような失敗が生じたサブセクション、フェーズまたはステージ(「stage」))まで走査し得る。
【0070】
失敗が生じたステージによって、オンラインドキュメント320のケース照会415が作製され得る。そのようなケース照会415は、サーチされるべきセクション−サブセクション、すなわち、たとえばモジュールの失敗したステージを含む。任意に、ケース照会415は、追加的に以下に詳細に記載するように、サーバ330がオンラインドキュメント320のサーチを行なう構成のためのエラーメッセージ402からのエラーコードを含み得る。
【0071】
デバッガ311は、411においてネットワークサーバ330にアクセスし得る。そのようなネットワークサーバ330は、そのようなオンラインドキュメント320をホストし、412においてエラーメッセージ402についてそのようなネットワークサーバ330にケース照会が送信され、そのようなオンラインドキュメント320の対応するステージまたはサブセクション322をサーチし得る。そのようなオンラインドキュメント320は、前述したように、各セクション321の各サブセクション322について1つ以上の既知のエラーコード323が、関連付けられたリンクと共にリストされた状態で構成され得る。
【0072】
図5は、サーバ330のための典型的なウェブアクセス可能なサーバフロー(「サーバフロー」)500を表すフローチャートである。換言すると、サーバ330は、サーバフロー500の動作を行うための命令を実行するためのプログラムされたコンピュータであり得る。
図3〜
図5を同時に参照して、サーバフロー500についてさらに説明する。
【0073】
501において、サーバ330によってホストされたドキュメント320が供給される。再び、サーバ330はセキュアサーバであり得る。502において、412で送信されたケース照会において、モジュールおよびステージ、またはセクションおよびサブセクションを用いて、ドキュメント320のそのようなサブセクションのサーチが行なわれる。このサーチは、たとえばエラーコードについてサブセクションのみがサーチされ、後続のサーチはローカルコピーを用いてクライアントレベルで行われるため、相対的に速い。
【0074】
503において、そのようなサブセクションのコピーが作成される。サブセクション322のこのコピーは、そのようなサブセクションに関連付けられた1つ以上のエラーコード323のリストを含む。各エラーコード323はコンテンツを含み得る。コンテンツは、そのようなエラーコードに関連付けられた情報を有する1つ以上のデータベースへの1つ以上のリンクを含み得る。504において、そのようなコピーは、412で送信されたケース照会に応答して、たとえばコンピュータ206などのクライアントに送信され得る。換言すると、412で送信されたケース照会に応答して、サーバ330は、そのようなクライアントコンピュータ206のローカルコピー312として使用するためにドキュメント320のサブセクションをフェッチし、クライアントコンピュータに送信し得る。
【0075】
さらに、ユーザ205が行なうデバッギングは、ローカルコピーの多重アクセスを伴う反復作業であり得る。ローカルコピー312を有していることによって、ユーザ205は、同じエラーについて何度もサーバ330に戻らなくてよい。また、ローカルコピーのサーチによって、エラーコードのサーチがサーバ330からクライアントコンピュータ206にオフロードされ得る。加えて、前述のように、クライアントコンピュータ206にローカルコピー312を提供することによって、デバッガ311は、そのようなエラーがユーザ205によって再び調べられた場合にwebcase情報を迅速に表示し得る。開かれたwebcaseに関して、ユーザ205は、追加的に以下に詳細に記載するように、そのようなエラーが識別されたと通知されることになる。
【0076】
図3〜
図6を同時に参照する。
図6は典型的なデバッグフロー600を表すフローチャートであり、412で送信されたケース照会に応答してドキュメント320のサブセクション322のローカルコピー312を受信することに応答して情報取扱システムによって行なわれ得る。デバッグフロー600は、デバッグフロー400の延長部であり得る。それらの方針に沿って、追加的に以下に詳細に記載するように、デバッグフロー600の動作がデバッガ311によって実行され得る。
【0077】
601において、オンラインドキュメント320のサブセクション322または他の部分が、412で送信されローカルコピー312として格納されたケース照会に応答して、クライアントコンピュータ206によって受信される。そのようなサブセクション322はEDAツール310の失敗したステージに関連付けられ、そのようなサブセクション322はデバッガ311の実行に応じて提供される。
【0078】
602において、そのようなローカルコピー312をエラーメッセージ402から取得されたエラーコードを用いてサーチしてもよい。603において、エラーメッセージ402から取得されたそのようなエラーコードがそのようなローカルコピー312に存在するかどうか判定される。603において、そのようなローカルコピー312においてそのようなエラーコードとの一致が見つかった場合、604においてそのような一致するエントリがコピーされ格納され得る。そのような一致するエントリは、コンピュータ206のキャッシュメモリに格納され得る。2つ以上の一致するエントリがサブセクションにおいて見つけられる場合もある。そのような例では、そのような一致する各エントリがコピーされ、キャッシュメモリに格納され得る。
【0079】
例によって明確にする目的で、
図3に例示的に表したようにEDAツール310がエラーHDLコンパイラエラー718との合成に失敗した場合は、デバッガ311はそのためにa.syrファイルを開いてもよく、EDAツール310が失敗したフェーズを探してもよい。EDAツール310がHDLパーシングに失敗した場合、サーバ330はオンラインドキュメント320の同じセクション−サブセクションをサーチし、ローカルコピー312としてそのようなセクション−サブセクション下で完全なコンテンツを戻してもよい。デバッガ311は、そのようなローカルコピー312のエラーコード718をサーチし、そのようなエラーコード下のコンテンツ、たとえば一致する回答記録リンク324、フォーラムエントリリンク325、およびドキュメンテーションリンク326を戻してもよい。デバッガ311は、リンク324〜326のうちの1つ以上を自動的に実行して、関連付けられたデータベース201〜203の情報をコンソールウィンドウEDAツール310または他のウィンドウに表示してもよい。
【0080】
605において、ディレクトリ413内の完了したレポートから408において取得された警告はすべて、604で格納されたすべての一致するエントリと連結されるなどして組合せられてもグループ化されてもよく、そのような結果は、EDAツール310のコンソールウィンドウに表示されてもよい。この情報を用いて、ユーザ205は、エラーメッセージ402の呼出しをもたらすエラーをデバッグすることが可能であり得る。デバッギングは、何らかの試行錯誤を伴う反復作業であり得る。したがって、そのようなエラーを解決するためのすべての識別された関連情報をユーザ205に提供することによって、テクニカルサポートの代表者に連絡する必要なしに、そのようなエラーの原因をユーザ205が自分自身で修復する可能性がより高くなり得る。
【0081】
しかし、603において、エラーメッセージ402のエラーコードと一致するエントリが602でのサーチからローカルコピー312において見つけられない場合、動作606〜608を用いて、デバッガ311によって自動的にwebcaseが開始されてもよい。
【0082】
606において、エラーコードの一致するエントリがローカルコピー312において見つけられないことに応じて、EDAツール310の失敗したモジュールのIDは、408において格納されたすべての警告およびwebcaseを提供するためのエラーメッセージ402と連結されるなどして組合せられても、グループ化されてもよい。さらに、EDAの例については、関連付けられた設計ファイルを結合して、そのようなwebcaseを提供し得る。EDAツール310の失敗したモジュールのIDは、セクション321およびサブセクション322、すなわち、たとえばそのような失敗が生じたモジュールおよびステージを提供することによって提供され得る。
【0083】
したがって、エラーメッセージ402に関連付けられたすべての関連情報が、テクニカルサポートに提供するために取得され得る。たとえば、そのようなwebcaseに関連付けられた設計ファイルおよびレポートは、テクニカルサポートヘルプデスクのアプリケーションエンジニアのためにそのようなwebcaseに自動的に添付され得る。これにより、エラーの解決が高速化され、かつエラーを解決する際により高い一貫性がもたらされ得る。
【0084】
任意に、607において、606で提供されたそのようなwebcaseについてのタイトルが自動的に生成され、そのようなwebcaseに付加されてもよい。そのようなタイトルは、モジュール名およびそのステージによって識別された失敗したモジュールの名前および位置を含んでもよい。608において、そのようなwebcase609はインターネットクラウド204などのネットワーク上でサーバ330に送信されてもよい。
【0085】
図7は、典型的なwebcaseエントリ生成フロー700を表すフローチャートである。追加的に以下に詳細に記載するように、webcaseエントリ生成フロー700は、webcaseエントリおよびコミュニティユーザフォーラムポストの双方を生成することを含んでもよい。
【0086】
701において、サーバ330はwebcase609を受信し得る。702において、受信されたwebcase609がサーバ330によってテクニカルサポートに送信され、webcase番号をそこから生成し受信してもよい。703において、サーバ330は、webcase609を用いて、ユーザコミュニティフォーラムのためのポストを作成し、送信してもよい。webcase609の簡略版をユーザコミュニティフォーラムデータベース202に送信して、その中にポストを作成してもよい。したがって、webcase609は、インターネットクラウド204上でユーザコミュニティフォーラムアドレスおよびテクニカルサポートアドレスの双方に送信されてもよい。
【0087】
704において、サーバ330は、オンラインドキュメント320を更新して、webcase609についてのエントリを作成し得る。そのようなエントリは、webcase609についてのwebcase番号を用いたテクニカルサポートデータベース201へのリンク、ユーザコミュニティフォーラムデータベース202におけるwebcase609に関連付けられたポストへのリンク、および/またはwebcase609に関連付けられたドキュメンテーションへのリンクを含んでもよい。
【0088】
オンラインドキュメント320においてそのようなエントリを作成することによって、同じエラーに遭遇する一人以上の後続のユーザは、そのようなエラーが現在扱われている既知のエラーであることを認識し得る。これを用いて、他のユーザによるエラーサーチおよび/またはwebcase作成の重複を防ぎ得る。さらに、前述したように、デバッギング情報を提供するという自動化による一貫性を有することによって、より容易かつ正確にそのようなエラーの反復が将来対処され得る。
【0089】
図8は、典型的なドキュメント作成フロー800を表すフローチャートである。ドキュメント作成フロー800は、
図3のドキュメント320の作成のためのスクリプト820であり得る。そのようなスクリプトまたはコンピュータ読取り可能なプログラム820は、有形のコンピュータ読取り可能な記憶媒体に格納されてもよく、そのようなスクリプト820は、そのような情報取扱システムにスクリプト820の動作を行なわせるために情報取扱システムによって処理されることが可能である。ドキュメント作成フロー800について、
図3〜
図8を同時に参照してさらに説明する。
【0090】
801において、作成されるべきドキュメント320は、EDAツール310モジュールおよびそのステージに対応するセクション321およびそのサブセクション322と共に組織化され得る。802において、そのようなサブセクション322の各々に、関連付けられたエラーコード323をポピュレートしてもよい。803において、プライベートなwebcaseデータベース(図示せず)における再帰的なサーチがそのようなエラーコード323を用いて行なわれ、そのようなEDAツール310のためのエラーコード323を有する閉じた状態でwebcaseを識別し得る。見つかった閉じたwebcaseについて、webcase番号が取得され、対応するエラーコードセクション下でドキュメント320に追加され得る。
【0091】
804において、パブリックな回答記録データベース201とは別個のデータベースであり得るプライベートな回答記録データベース(図示せず)の再帰的なサーチが、そのようなwebcaseにリンクされた回答記録について803で取得されたwebcase番号を用いて行なわれてもよい。一致する回答記録は、そのような特定のエラーについてのベストマッチであり得る。
【0092】
805において、804のサーチからの一致する回答記録の回答記録番号がコピーされ、パブリックな回答記録データベース201においてサーチされ得る。これは、回答記録が公共消費のために解放されているかどうかを判定するためのチェックである。805におけるそのようなサーチについてのパブリックな回答記録データベース201内の一致する回答記録番号について、806において、そのような一致するパブリックな回答記録番号の対応するリンクを、対応するエラーコード下のドキュメント320にコピーしてもよい。807において、803でドキュメント320に追加された、対応するパブリックな回答記録を有するwebcase番号が除去され、対応するパブリックな回答記録番号と置換されてもよい。
【0093】
808において、スクリプト820は、1つ以上のユーザコミュニティフォーラムデータベース202においてサーチを行ない、そのようなエラーコード下のドキュメント320内の対応するエラーコードごとに、一致する各フォーラムエントリを追加してもよい。そのような各一致するフォーラムエントリは、そのようなエラーコード下で存在する場合は807において見つかった回答記録エントリの下に追加してもよい。
【0094】
809において、ツールのフェーズ/ステージに応じたエラーコードのための関連するドキュメンテーションへのリンクについてのウェブサーチが行なわれてもよく、いずれかの見つかったリンクが対応するエラーコード下でドキュメント320に追加されてもよい。
【0095】
前述したように、デバッガ311がEDAツール310において新しいエラーに遭遇すると常に、デバッガ311は新しいテクニカルサポートwebcaseを投入し、フォーラムエントリを作成し得る。この情報は、ドキュメンテーションリンクと共にドキュメント320において更新される。
【0096】
別個のスクリプトとして提供され得るスクリプト820の一部分は、閉じた解決ステータスと共に作成された関連付けられた新しいwebcaseを有する新しいエラーを探すことを慣例的に実行するように、すなわち、閉じたステータスを有するそのような新しいwebcaseについて803でサーチを行ない、回答記録番号を含む対応する回答記録詳細をフェッチするためにそのような新しいwebcaseについて取得されたそのようなwebcase番号を用いて804でサーチを行ない、かつ公に公表されているそのような対応する回答記録のステータスを確認し、パブリックな回答記録データベース201内のそのようなリリースされた回答記録を805においてサーチし、そのような回答記録へのリンクによってドキュメント320内のwebcaseエントリを更新するように予定され得る。スクリプト820のそのような部分は、関連付けられた回答記録を有さないドキュメント320内のすべてのエラーに対して行なわれ得る。
【0097】
図9は、サーバ330についての別の典型的なウェブアクセス可能なサーバフロー(「サーバフロー」)900を表すフローチャートである。
図3〜
図7を同時に参照して、サーバフロー900についてさらに説明する。
【0098】
501において、前述のようにサーバ330によってホストされた状態でドキュメント320がオンラインで提供され得る。902において、サーバ330は、412で送信されたケース照会415において提供されるエラーコードを有する識別されたセクション−サブセクションにおいてドキュメント320をサーチしてもよく、そのようなケース照会415は、サーチするべき識別されたセクション−サブセクションおよびエラーコードを含む。603において、クライアントコンピュータ206がデバッガ311を実行するためであるが、前述したように、一致するエントリがあるかどうかサーバ330によって判定され得る。903において、サーバ330は、ローカルコピー312として904においてクライアントコンピュータ206に送信するために、すべての一致するエントリのコピーを作成してもよい。したがって、この構成では、サーバ330は、エラーコードサーチを行ない、前述の構成とは対照的に、サブセクション全体ではなく、識別されたサブセクションにおける1つ以上の一致するエラーコードエントリのみのローカルコピーを提供する。
【0099】
この例について、ケース照会415は、408において格納されたすべての警告およびエラーメッセージ402をさらに含み得る。したがって、603において一致するエントリがない場合、サーバ330は、クライアントコンピュータ206によってであるが、動作606と、任意に前述したように607とを行なってもよい。前述したように、サーバ330はさらに動作702〜704を行なってもよい。908において、サーバ330によって準備されたドキュメント320内のwebcaseエントリがコピーされ、ローカルコピー312として提供するべきクライアントコンピュータ206に送信され得る。したがって、ユーザ205は、ドキュメント320がエラーメッセージ402に応じた関連情報を有していないことと、webcaseが開始されて、エラーメッセージ402内のエラーコードを解決するためにデバッグするための関連情報を取得したこととを通知され得る。
【0100】
図10は、
図9のサーバフロー900のためのデバッガ311の典型的なwebcaseフロー1000を表すフローチャートである。1001において、サーバフロー900からのローカルコピー312がクライアントコンピュータ206によって受信され得る。そのようなローカルコピー312は、オンラインドキュメント320内のwebcaseエントリ329のコピーであり得る。1001においてそのようなローカルコピー312を受信した後、webcaseエントリのそのようなローカルコピーを用いて、前述したように動作605が行なわれ得る。
【0101】
図11は、典型的なコンピュータシステム1100を表すブロック図である。コンピュータシステム1100は、陰極線管(「CRT」)ディスプレイ、プラズマディスプレイ、液晶ディスプレイ(「LCD」)、プロジェタなどの1つ以上の表示装置1101と、キーボードおよびカーソルポインティングデバイスなどの1つ以上の入力装置1106とに結合された、プログラムされたコンピュータ1110を含み得る。コンピュータシステムの他の既知の構造が用いられてもよい。コンピュータシステム1100は独力で、または1つ以上の他のコンピュータシステム1100とネットワーク化され、情報取扱システムを提供し得る。
【0102】
プログラムされたコンピュータ1110は、他の既知のプラットフォームのうち、MacOS(登録商標)、Java(登録商標)バーチャルマシン、リアルタイムOS Linux(登録商標)、Solaris(登録商標)、iOS(登録商標)、Android(登録商標)Linux(登録商標)ベースのOS、Unix(登録商標)、またはWindows(登録商標)オペレーティングシステムであり得る既知のオペレーティングシステムでプログラムされ得る。プログラムされたコンピュータ1110は、中央処理装置(CPU)1104、メモリ1105、および入出力(「I/O」)インターフェイス1102を含む。CPU1104は、たとえばIBM(登録商標)、インテル(登録商標)、ARM(登録商標)、およびアドバンストマイクロデバイスから入手可能なものなどの、当該分野において既知のマイクロプロセッサの一種であり得る。サポート回路(図示せず)は、キャッシュ、電源、クロック回路、データレジスタ等を含み得る。メモリ1105は、CPU1104に直接結合されても、I/Oインターフェイス1102を介して結合されてもよい。オペレーティングシステムの少なくとも一部分は、メモリ1105に配置され得る。メモリ1105は、フラッシュメモリ、ランダムアクセスメモリ、読取り専用メモリ、磁気抵抗読取り/書込みメモリ、光学読取り/書込みメモリ、キャッシュメモリ、磁気読取り/書込みメモリ等、および以下に記載するような非一時的な信号伝達媒体のうち1つ以上を含んでもよい。
【0103】
I/Oインターフェイス1102は、他の既知の回路のうち、チップセットチップ、グラフィックスプロセッサ、および/またはドータカードを含んでもよい。ドータカードの一例は、他の既知の回路のうち、ネットワークインターフェイスカード(「NIC」)、ディスプレイインターフェイスカード、モデムカード、およびユニバーサルシリアルバス(「USB」)インターフェイスカードを含み得る。したがって、I/Oインターフェイス1102は、従来のキーボード、ネットワーク、マウス、ディスプレイプリンタ、およびデータファイルなどのデータを送受信するように適合されたインターフェイス回路などに結合されてもよい。プログラムされたコンピュータ1110は、インターフェイス生成のための分散型使用を可能にするたとえば企業のイントラネットおよび/またはインターネットなどの従来のネットワークインフラストラクチャによって、多くのクライアントコンピュータ、サーバコンピュータ、またはその任意の組合せに結合されてもよい。
【0104】
メモリ1105は、プログラムプロダクト1120を提供するためのプロセスを実施するための1つ以上のプログラムまたはデータのすべてもしくは一部分を格納してもよい。加えて、当業者は、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組合せにおいて1つ以上の実施形態が実施され得ることを認識するであろう。そのような実装例は、様々なプログラムおよび専用ハードウェアまたはプログラム可能なハードウェアを独立して実行する多くのプロセッサまたはプロセッサコアを含んでもよい。
【0105】
プログラムプロダクト1120の1つ以上のプログラムおよびそのドキュメントは、本明細書に記載される機能を定義し得、コードを有するコンピュータ読取り可能な媒体などの多様な非一時的な信号伝達媒体上に含まれることができ、限定はしないが、(i)非書き込み可能な記憶媒体(たとえばCD−ROMドライブまたはDVDドライブによって読取り可能なCD−ROMまたはDVD−ROMディスクなどの、コンピュータ内の読取り専用メモリ装置)上に永続的に格納された情報、または(ii)書き込み可能な記憶媒体(たとえば、ディスクドライブもしくはフラッシュドライブもしくはハードディスクドライブ内のフロッピー(登録商標)ディスク、または読取り/書込み可能なCD、または読取り/書込み可能なDVD)上に格納された変更可能な情報を含む。上記の例は、具体的には、インターネットおよび他のネットワークからダウンロードされた情報を含む。その機能を命令するコンピュータ読取り可能な命令を伝送する際に、そのような非一時的な信号伝達媒体を用いて、本明細書に記載される機能を実施することもできる。
【0106】
EDAツールのためのデバッガについて記載したが、そのようなオンザフライテクニカルサポートは、他のアプリケーションおよびしたがって他の産業に用いられてもよい。そのようなオンザフライテクニカルサポートは、ユーザに提供される一貫した結果および関連情報により与えられ得る、アプリケーションを用いる際の全体的な消費者経験を向上させるのに有用であり得る。さらに、ユーザによる手作業のサーチは、より時間効率的かつより正確な自動サーチを優先して不要とされ得る。加えて、重複エントリを減少または不要とし得る。これは、すでに解決されたエラーの取扱いに浪費される時間を減少させ得る。これらの方針に沿って、アプリケーションエンジニアおよび/またはユーザのコミュニティの双方にエラー解決が要請されてもよい。
【0107】
上記は典型的な方法およびシステムについて記載しているが、添付の請求項およびその均等物によって決定されるその範囲から逸脱することなく、1つ以上の局面に係る他のおよびさらなる実施形態が工夫され得る。ステップを挙げている請求項は、ステップのいずれの順序も示唆していない。商標権は、それぞれの所有者の所有物である。