(57)【特許請求の範囲】
【請求項１】
回路上の複数のコンポーネントの間の構成変更が不可能な相互接続を表現するためにコンピュータを利用する方法であって、
各々の相互接続は、複数のコンポーネントのそれぞれのペアの間で少なくとも１つの信号を伝達するように構成され、前記回路における各々の信号は、共通の性質であり、
当該方法は、
前記回路の前記複数のコンポーネントのうちの少なくとも１つを含む局所コンポーネントと、前記回路の前記複数のコンポーネントのうちの別のコンポーネントと、の間の各々の相互接続を、前記コンピュータにおいて特定するステップと、
前記局所コンポーネントと他の複数のコンポーネントのうちの１つとの間の相互接続を表し、前記局所コンポーネントと前記他の複数のコンポーネントのうちの１つとの間を飛ぶ最短経路線であるフライトラインをレンダリングするための少なくとも１つのルールであって、前記局所コンポーネントに関連して、フライトラインの表示属性の値を前記少なくとも１つの信号によって表わされる分類の値に関連付ける少なくとも１つのルールを、前記コンピュータにおいて特定するステップと、
特定された各々の相互接続についてのそれぞれのフライトラインを、前記特定された少なくとも１つのルールに従って前記コンピュータの表示装置に表示するステップと
を含み、
前記少なくとも１つのルールを特定するステップは、フライトラインによって表された前記相互接続へ接続するゲートの論理機能に基づいて、少なくとも１つのフライトラインのそれぞれの重要度を決定するステップを含み、
前記特定された各々の相互接続についてのそれぞれのフライトラインを表示するステップは、前記それぞれの重要度に従って前記フライトラインを選択的に表示することを含む、方法。
【請求項２】
フライトラインをレンダリングするための少なくとも１つの第２のルールを特定し、前記少なくとも１つの第２のルールに従って特定された各々の相互接続についてのそれぞれのフライトラインをレンダリングするように、表示を更新するステップ
をさらに含む、請求項１に記載の方法。
【請求項３】
前記複数のコンポーネントのうちの１つである第２のコンポーネントを局所コンポーネントとして特定し、少なくとも１つのルールに従って、前記第２のコンポーネントと前記回路の前記複数のコンポーネントのうちの別のコンポーネントとの間の各々の相互接続についてのそれぞれのフライトラインを表示するように、表示を更新するステップ
をさらに含む、請求項１に記載の方法。
【請求項４】
第１のコンポーネントを局所コンポーネントとして特定する行為が、前記回路の複数のコンポーネントを特定して、該複数のコンポーネントを前記局所コンポーネントとして指定される単一のコンポーネントとして取り扱うことを含む、請求項１に記載の方法。
【請求項５】
前記表示属性が、太さ、色、点描、パターン、塗り潰し、線種、およびユーザ指定のうちの任意の１つ以上を含む、請求項１に記載の方法。
【請求項６】
前記分類が、信号の方向、信号の種類、信号の数、およびユーザ指定のうちの任意の１つ以上を含んでおり、
前記信号の方向は、入力、出力、およびフィードバックのうちの任意の１つ以上を含み、
前記信号の種類は、クロック、リセット、選択、電源、接地、データ、およびアドレスのうちの任意の１つ以上を含む、請求項１に記載の方法。
【請求項７】
前記回路の各々の信号が、電気信号である、請求項１に記載の方法。
【請求項８】
前記フライトラインを表示する行為が、前記フライトラインを視覚的にレンダリングすることを含む、請求項１に記載の方法。
【請求項９】
前記フライトラインを視覚的に表示する行為が、前記フライトラインの外観的特徴を制御する変更可能な少なくとも１つのフライトライン表示設定を取得することを含む、請求項８に記載の方法。
【請求項１０】
前記少なくとも１つのフライトライン表示設定が、ユーザの入力から取得される、請求項９に記載の方法。
【請求項１１】
前記少なくとも１つのフライトライン表示設定が、前記回路からの回路情報から得られる、請求項９に記載の方法。
【請求項１２】
前記それぞれのフライトラインを表示する行為が、前記局所コンポーネントの第１のコンタクトに位置するフライトラインの第１の終点と、外部コンポーネントの第２のコンタクトに位置するフライトラインの第２の終点とを特定することを含む、請求項１に記載の方法。
【請求項１３】
前記表示におけるフライトラインの物理的な位置が、前記局所コンポーネントの物理的な位置に実質的に対応する、請求項１２記載の方法。
【請求項１４】
前記表示におけるフライトラインの物理的な位置が、前記外部コンポーネントの物理的な位置に実質的に対応する、請求項１２に記載の方法。
【請求項１５】
前記表示を変更するステップ
をさらに含む、請求項１２に記載の方法。
【請求項１６】
前記表示を変更する行為が、前記局所コンポーネントを表示することを含む、請求項１５に記載の方法。
【請求項１７】
前記表示を変更する行為が、前記外部コンポーネントを表示することを含む、請求項１５に記載の方法。
【請求項１８】
前記表示を変更する行為が、前記それぞれのフライトラインのうちの１つを表示することを含む、請求項１５に記載の方法。
【請求項１９】
前記表示を変更する行為が、前記表示をパンすること、および前記表示をズームすること、のいずれか一方または両方を含む、請求項１５に記載の方法。
【請求項２０】
前記フライトラインの分類の値が、前記局所コンポーネントおよび前記外部コンポーネント以外の少なくとも１つのコンポーネントを通る少なくとも１つの相互接続に対応する少なくとも１つの信号を辿ることによって割り出される、請求項１に記載の方法。
【請求項２１】
前記少なくとも１つのフライトラインを視覚的にレンダリングする行為が、前記少なくとも１つのフライトラインを表わすデータ表を表示することを含む、請求項１に記載の方法。
【請求項２２】
コンピュータインストラクションをコンピュータにとって読み取り可能な一時的でない媒体に保存してなるコンピュータプログラムであって、
前記コンピュータインストラクションが、回路上の複数のコンポーネントの間の構成変更が不可能な相互接続を表現するための方法を実行すべくコンピュータを制御するように構成され、各々の相互接続は、前記複数のコンポーネントのそれぞれのペアの間で少なくとも１つの信号を伝達するように構成され、前記回路における各々の信号は、共通の性質であり、
前記方法が、
前記回路の前記複数のコンポーネントのうちの少なくとも１つを含む局所コンポーネントと、前記回路の前記複数のコンポーネントのうちの別のコンポーネントと、の間の各々の相互接続を特定するステップと、
前記局所コンポーネントと他の複数のコンポーネントのうちの１つとの間の相互接続を表し、前記局所コンポーネントと前記他の複数のコンポーネントのうちの１つとの間を飛ぶ最短経路線であるフライトラインをレンダリングするための少なくとも１つのルールであって、前記局所コンポーネントに関して、フライトラインの表示属性の値を前記少なくとも１つの信号によって表わされる分類の値に関連付ける少なくとも１つのルールを特定するステップと、
特定された各々の相互接続についてのそれぞれのフライトラインを、前記特定された少なくとも１つのルールに従って前記コンピュータの表示装置に表示するステップと
を含み、
前記少なくとも１つのルールを特定するステップは、フライトラインによって表された前記相互接続の論理機能に基づいて、少なくとも１つのフライトラインのそれぞれの重要度を決定するステップを含み、
前記特定された各々の相互接続についてのそれぞれのフライトラインを表示するステップは、前記それぞれの重要度に従って前記フライトラインを選択的に表示することを含む、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の種々の実施形態は、電子回路に関し、さらに詳しくは、電子回路のコンポーネント間の相互接続を解析するためのツールに関する。
【背景技術】
【０００２】
電子回路は、主として、素子および素子間の接続で構成される。特定の回路がどのように動作するのかを、回路そのものの観察にもとづいて理解する必要が、多くの場合に存在する。これを、技術者が回路の種々の接続を１つずつ辿り、それらの接続にもとづいてコンポーネントを体系化することによって行なうことができる。技術者は、コンポーネントおよび接続の数が比較的少ない単純な回路においては、無理のない時間で回路全体の妥当な体系化に到達することができる。
【０００３】
しかしながら、素子および接続の数が多くなるにつれて、この伝統的な方法は、使用がどんどん難しくなる。あまり大きくないデジタル回路でも、数万個のコンポーネントならびに少なくとも同数のコンポーネント間の接続を含む可能性がある。一部の最新の回路アセンブリは、数十万個もの素子ならびに同程度の数の素子間の接続を有する可能性がある。これらの場合には、接続を１つずつ辿ることは、現実的でない。この不充分な従来からの手法を使用して些細な回路以外の何らかの回路を理解するためには、あまりにも時間がかかりすぎると考えられる。
【０００４】
Ｃａｄｅｎｃｅ社のＶｉｒｔｕｏｓｏ  Ｓｃｈｅｍａｔｉｃ  Ｅｄｉｔｏｒなど、従来からの図解によるエディタツールが、市場において入手可能である。しかしながら、従来からの図解によるエディタツールは、回路コンポーネントの分類、操作、および表示の能力がきわめて限られている。体系化されていない回路コンポーネントの体系化および表示のための改善されたシステムが、必要とされている。
【発明の概要】
【課題を解決するための手段】
【０００５】
複雑な回路がどのように機能するかを理解するために、回路を何らかのやり方で体系化する必要がある。
【０００６】
本明細書に開示の種々の実施形態は、技術者がコンポーネント間の接続を従来からの方法を用いて行なうことができるよりも高速かつ効率的なやり方で視覚化することを可能にする。種々の実施形態は、多数の接続を一度に、解析対象の回路上に直接、視覚的な形式で体系化された接続についての情報とともに表示する。
【０００７】
種々の実施形態のうちの少なくともいくつかによれば、回路のコンポーネント間の回路の相互接続の表示を提示する方法がもたらされる。
【０００８】
フライトライン表示設定が、例えばそれらをメモリから読み出すことによって取得される。フライトライン表示設定は、回路の所定のコンポーネントの間の接続を表わすフライトラインの外観的特徴を制御する。フライトライン表示設定は、システムのユーザによる設定変更が可能である。
【０００９】
システムは、一般的にはユーザによって示される回路の局所コンポーネントと、この局所コンポーネントにつながった外部コンポーネントとを表示する。さらにシステムは、局所コンポーネントと外部コンポーネントとの間の接続を表わすフライトラインも表示する。フライトラインの外観的特徴が、ユーザによる指定が可能なフライトライン表示設定によって制御される。
【００１０】
本明細書に取り入れられて本明細書の一部を構成する添付の図面が、本発明の種々の実施形態を示している。全体的な説明と併せ、図面は本発明の原理を説明する役目を果たす。
【図面の簡単な説明】
【００１１】
【図１】回路コンポーネントを相互接続するフライトラインを表示するための方法のフロー図である。
【図２】信号の流れに従った多数のコンポーネントの配置の例を示す。
【図３】データとして表わされたフライトラインの例を示す。
【図４】コンポーネント−コンポーネントモードにて回路コンポーネントを相互接続しているフライトラインを示す。
【図５】複数の着目コンポーネントにおいてコンポーネント−コンポーネントモードにおけるフライトラインを示す。
【図６】ピン−ピンモードにおけるフライトラインの詳細図を示す。
【図７Ａ】グループ化の前の２つの着目コンポーネントの概略図を示す。
【図７Ｂ】２つの着目コンポーネントを１つのコンポーネントへとグループ化した図７Ａからの回路を示す。
【図８Ａ】フライトラインの重要／非重要への分類および重要なフライトラインの選択的表示を示す。
【図８Ｂ】フライトラインの重要／非重要への分類および重要なフライトラインの選択的表示を示す。
【図９】本発明の種々の実施形態の実装に適したコンピュータシステムを示している。
【発明を実施するための形態】
【００１２】
図１は、回路コンポーネントを相互接続するフライトラインを表示するための方法のフロー図を示している。
【００１３】
いくつかの専門用語および表現が、種々の実施形態の以下の説明において使用される。それらの用語および表現の定義および意味は、この技術分野におけるそれらの用法に従う。
【００１４】
用語「フライトライン」が、本明細書の全体において使用される用語である（用語「フライトライン」は、２つの単語（ｆｌｉｇｈｔ  ｌｉｎｅ）によって知られているかもしれず、あるいはハイフンで結ばれている（ｆｌｉｇｈｔ−ｌｉｎｅ）かもしれない）。フライトラインは、回路の或るコンポーネントと別のコンポーネントとの間の接続の視覚的な体系的表示である。
【００１５】
各々のフライトラインは、局所端および外部端を特徴とする（局所端を、「ｉｎ  ｆｏｃｕｓ」または他の同様の用語で呼ぶこともできる）。局所端は、そのビューにおける着目コンポーネントを示す。外部端は、着目コンポーネントがつながるコンポーネントを示す。
【００１６】
局所コンポーネントが、ユーザがフライトラインの観察を希望する所与のビューにおける着目コンポーネントである（多数の他のビューが存在でき、その各々が自身の固有の着目コンポーネントを有することができる）。外部コンポーネントが、局所コンポーネントがフライトラインを介して接続されるコンポーネントである。
【００１７】
回路アセンブリまたは回路図が、いくつかのコンポーネントを含む。用語「コンポーネント」および「回路素子」を、入れ換え可能に使用することができる。コンポーネントを、回路アセンブリの図解または他の表現において、回路シンボルで表わすことができる。
【００１８】
コンポーネントの機能および動作特性は、多くの場合に既知である。しかしながら、場合によっては、コンポーネントの機能が未知であるかもしれない。コンポーネントを、内部を調べることによってさらなる洞察を集めることなく、ブラックボックスの実体として取り扱うことができる。
【００１９】
いくつかの一般的なコンポーネントとして、単独のアナログ素子（例えば、トランジスタ、抵抗、コンデンサ）または機能が既知であるデジタル論理ゲート（例えば、ＡＮＤ、ＮＯＲ、ＸＯＲ、バッファ、またはインバータの各ゲート）が挙げられる。
【００２０】
用語「レンダリング（ｒｅｎｄｅｒｉｎｇ）」が、コンピュータソフトウェアによるデータからの画像の生成または生成プロセスを指す。データは、一般的には、位置データ、コンポーネント形状データ、コンポーネント接続データ、テキスト説明データ、およびカラーデータなど、画像の生成に必要なすべての情報を含む。画像は、デジタル画像またはラスターグラフィックス画像であってよい。
【００２１】
図１に目を向けると、この方法は、ブロック１０１において始まり、回路コンポーネントおよび相互接続の表示の生成において使用するための回路情報を得るためのブロック１０３へと進む。
【００２２】
回路情報を、いくつかの異なるやり方で取得することができる。いくつかの場合には、写真技術が、種々の基板およびルーティングレベルの画像を取得するために使用され、次いで画像を分析してコンポーネントおよびコンポーネントを相互接続している回路配線の配置を割り出すことができる。他の場合には、回路情報を、入手可能であるかもしれない仕様、回路図、ネットリスト、または図面からのデータの形態で取得することができる。さらに他の場合には、回路を視覚的に調査して、ブロック１０３において取得すべき回路情報を生成または検証するために、１名以上の技術者に頼ることができる。
【００２３】
ひとたびブロック１０３において回路情報が取得されると、この方法は、回路素子またはコンポーネントのいずれかがＡＮＤ、ＯＲ、ＸＯＲ、またはＮＯＲ、あるいは他の論理ゲート、バッファ、インバータ、トランジスタ、フリップフロップ、または他のそのような回路素子などの既知の機能を有しているか否かを判断するためのブロック１０５へと進む。
【００２４】
いかなる回路コンポーネントまたは素子も既知の機能を有していない場合、この方法は、ブロック１０５から「ＮＯ」の経路に沿ってブロック１０９へと進む。しかしながら、ブロック１０５において、１つ以上のコンポーネントまたは素子について機能が既知であると判断される場合、この方法は、ブロック１０５から「ＹＥＳ」の経路に沿ってブロック１０７へと進む。
【００２５】
回路素子またはコンポーネントのいずれかが既知である場合、機能を、コンポーネント／素子の形状、図面に添えられる注記、または機能の他の視覚的なインジケータのいずれかによって、表示装置に示すことができる。いくつかの場合には、システムの機能を、コンポーネント上でのマウスの静止またはコンポーネントにおけるマウスの右クリックなどのユーザの入力に応答して見えるようになるポップアップウインドウにて、機能またはパラメータを表示するように設定することができる。
【００２６】
一般的には、コンポーネントの機能ならびに任意の既知の特徴またはパラメータが、将来の参照のためにデータベースまたは他のコンピュータファイルに記録される。ブロック１０７が完了すると、この方法はブロック１０９へと進む。
【００２７】
ブロック１０９において、システムは、データの取り扱いおよび表示のやり方を制御するシステムパラメータおよびフライトライン表示設定を読み出す。フライトライン視覚化システムを、いくつかの基本モードのいずれかで動作するように設定することができる。
【００２８】
コンポーネント−コンポーネントモードが、図４と併せてさらに詳しく後述される。図５に付随する文章が、複数の着目コンポーネントが指定されるモードを検討する。ピン−ピンモードが、図６と併せてさらに詳しく後述される。
【００２９】
種々の他の動作モードおよび表示の設定も、ブロック１０９において読み出すことが可能である。フライトライン表示設定が、フライトラインの色体系および線のデザイン／太さ、あるいはコンポーネント間の複数のフライトラインの表示方法などの他の外観的特徴、ユーザによる切り換えが可能な利用可能なモード／表示の選択肢、または他の同様のパラメータまたはセッティングを指定する。
【００３０】
種々の実施形態において、フライトライン表示設定は、設定変更可能である。例えば、ユーザが、（例えば、マウス、キーボード、または他のユーザ入力デバイスを使用して）フライトライン表示設定についての選択をフライトライン視覚化システムへと入力することによって、フライトラインの色、線の太さ、線の意匠、または他の外観的特徴を指定することができる。
【００３１】
フライトライン視覚化システムは、フライトライン表示設定を指定する１つ以上のユーザ入力を受け付け、フライトラインの外観を制御する。フライトライン表示設定は、フライトライン視覚化システムにとって容易に読み出し可能な場所にファイルまたは他の符号にて保存される。ひとたびブロック１０９において所定のシステムパラメータおよびフライトライン表示設定が読み出されたならば、この方法はブロック１１１へと進む。
【００３２】
ブロック１１１において、フライトライン視覚化システムは、ビューにおいて局所コンポーネント（着目コンポーネント）として取り扱われる回路コンポーネントを示すユーザからの入力を受け付ける。入力は、コンポーネント識別子のエントリであってよく、あるいは例えばコンポーネント上でのマウスクリックや、どのコンポーネントを着目コンポーネントとして取り扱うべきかを伝えるために適した任意の他の入力など、グラフィカルユーザ入力（ＧＵＩ）デバイスにてユーザによって行なわれてもよい。
【００３３】
ひとたびブロック１１１においてシステムが局所コンポーネントの選択の指示を受け取ると、この方法はブロック１１３へと進む。ブロック１１３において、フライトライン視覚化システムは、局所コンポーネントとその外部コンポーネントとの間の接続を決定し、あるいは他のやり方で取得する。これは、局所コンポーネントのフライトラインの表示の前段階として行なわれる。
【００３４】
回路コンポーネントをグラフィカルに表示する実施形態においては、一般的には、コンポーネントの接続情報ならびにコンポーネントの配置についての情報および他のコンポーネントパラメータを含む回路コンポーネントについての情報の関連のデータベースが存在する。そのような場合には、指定された局所コンポーネントとその外部コンポーネントとの間の接続を、データベースから読み出すことができる。
【００３５】
しかしながら、接続情報が不完全であり、あるいは他の理由で利用できない場合には、システムは、例えばブロック１０３に関して上述したように接続情報を取得（または、補完）する。ブロック１１３において接続情報が決定されると、この方法はブロック１１５へと進む。
【００３６】
ブロック１１５においては、フライトラインが、局所コンポーネントと、接続された外部コンポーネントと、おそらくは他の近傍のコンポーネントとを示す回路図上に視覚的にレンダリングされる。
【００３７】
回路図は、コンポーネント情報および接続情報を伝達するが、必ずしも実際の物理的な回路アセンブリにおいて見ることができる実際の回路配置、コンポーネントの位置、および回路配線を示す必要はない。むしろ、各々のフライトラインは、指定された局所コンポーネントと外部コンポーネントとの間の接続を表わす。
【００３８】
フライトラインは、必ずしも回路アセンブリ上で電気的接続を形成すべく種々のコンポーネントおよび他の配線の周囲を巡る可能性がある２つのコンポーネントを接続する導電性の回路配線と同じ経路を辿る必要はない。ブロック１１５において、フライトラインは、フライトラインの外観的特徴を制御するブロック１０９において読み出されたシステムパラメータおよびフライトライン表示設定に従ってレンダリングされる。これらの設定は、フライトラインの色または他の視覚的体系を決定する。
【００３９】
回路の解析の目的において、異なる設定および表示の選択肢の間の切り換えが可能であることが有用である。フライトライン視覚化システムは、ユーザが初期のデフォルトの表示設定状態と１つ以上の所定の随意による表示設定状態との間の切り換えを行なうことを可能にする。
【００４０】
例えば、或る表示状態は、所与のフライトライン論理状態またはコンポーネント入力において局所コンポーネントのどの出力が「ハイ」であるかを示すことができる。他の例では、ユーザが、接地および電源の接続を省略して信号経路の接続を強調するビューへの切り換えを所望することができる。他の切り換えの選択肢は、下方の回路を邪魔することがないようにすべてのフライトラインを画面から消去するという選択肢である。
【００４１】
ズームという特徴も、ユーザがいくつかのやり方のいずれかにて概略図を拡大することを可能にするもう１つの有用な選択肢である。ユーザが、或るズーム切り換えキー（例えば、キー「２」）により、選択された局所コンポーネントのすべての外部コンポーネントをビュー内に位置させることができる。多数の局所コンポーネントを有する実施形態においては、システムをすべての局所コンポーネントへとズームするように切り換える選択肢が存在する（例えば、キー「３」）。他のズームのやり方は、ユーザが選択されたフライトラインに関係する外部コンポーネントの場所を突き止め、それらのコンポーネントをビュー内に位置させるようにズームすることを可能にする（例えば、キー「４」）。
【００４２】
多数の他の表示の選択肢が、本明細書の各所で説明される。それらのさまざまな表示の選択肢を所定の切り換えキーに組み合わせ、切り換えキーを選択することによって表示状態の選択を実行するための好都合な手段をユーザに提供することができる。
【００４３】
ブロック１１７は、フライトライン視覚化システムにおいて表示状態を変更するためのユーザの入力が受信されたか否かを検出することを含む。所定の切り換えキーへのユーザの入力が検出された場合、この方法は、ブロック１１７から「ＹＥＳ」の経路に沿ってブロック１１９へと進み、所望された表示の選択肢を実行し、選択された切り換え状態についてのシステムパラメータおよびフライトライン表示設定に従ってフライトラインをレンダリングする。
【００４４】
しかしながら、ブロック１１７においてユーザによる表示状態の入力または切り換えキーの入力が検出されない場合には、この方法は、ブロック１１７から「ＮＯ」の経路に沿ってブロック１２１へと進み、ブロック１２１において、ユーザが視覚化された回路上のいずれかのフライトラインまたはコンポーネントを選択したか否かが判断される。
【００４５】
視覚化システムは、ユーザが表示の変更または他の変化を行なうためにフライトラインまたはコンポーネントの選択または選択解除を行なうことを可能にする。フライトラインのグループまたはコンポーネントのグループを選択することも可能である。
【００４６】
ユーザは、フライトラインまたはコンポーネントの選択を、それらの周囲に選択ボックスを描くことによって行なうことができ、それらをマウスで個別にクリックすることによって行なうことができ、あるいは選択すべきフライトラインまたはコンポーネントを示す他の同様のやり方によって行なうことができる。
【００４７】
所定のキー（例えば、シフトキーまたはコントロールキー）を押しながら選択を行なうことで、選択済みの組へと線を追加することができる。フライトライン（または、コンポーネント）のグループが選択された場合、特定のフライトラインの選択の解除を、そのフライトラインの上方において別の所定の選択解除キーを押すことによって行なうことができる。
【００４８】
また、視覚化システムは、ユーザがフライトラインをそれらの種類にもとづいて選択および／または選択解除することも可能にする。例えば、システムは、ユーザが所定の入力（例えば、「８」キーの押し下げ）をもたらすことによってすべての入力フライトラインを選択し、あるいは別の所定の入力（例えば、「９」キー）によってすべての出力フライトラインを選択することを可能にする。
【００４９】
１つ以上のコンポーネントまたはフライトラインを選択することで、ユーザは、それらのコンポーネント／フライトラインについてさまざまな操作を行なうことができる。例えば、ユーザは、選択されたコンポーネントまたはフライトラインのフライトライン表示設定、文字ラベル、または他の外観的特徴を変更することができる。
【００５０】
また、ユーザは、コンポーネントまたはコンポーネントのグループを、或る位置から他の位置へと移動させることができる。選択されたコンポーネントまたはコンポーネントのグループを、キャンバスに貼り付けることができる。このやり方で、ユーザは、貼り付けられたコンポーネントの近くの他のコンポーネントを、貼り付けられたコンポーネントの位置に影響を及ぼすことなく操作することができる。コンポーネントの配置変更または移動の際に、それらを接続しているフライトラインは、一般的には、ユーザからのさらなる入力を必要とせずにコンポーネントの移動に追従する。
【００５１】
キャンバスへのコンポーネントの貼り付け、すべての入力または出力フライトラインの自動選択、ならびに関係するフライトラインにもとづいたコンポーネントの自動配置および移動という上述の特徴を組み合わせることにより、視覚化システムを、多数のコンポーネントを論理的な順序に迅速に配置するために使用することができる。
【００５２】
図２は、信号の流れに従った多数のコンポーネントの配置の例を示している。実際の実施において、この配置の達成には、フライトライン視覚化システムの選択および配置の特徴を用いることにより、きわめてわずかな時間しか要さない。コンポーネントの選択という特徴により、ユーザがコンポーネントを管理可能な組へと選択的にグループ化することができる。この特徴は、図７ＡおよびＢに関連してさらに詳しく後述される。
【００５３】
フライトライン視覚化システムは、ユーザがフライトラインを選択し、バインドキーまたはＧＵＩ制御などによってフライトラインが表わすネットへとタグを割り当てることを可能にする。
【００５４】
フライトラインのレンダリングの一部として（あるいは、フライトラインのレンダリングの前に）、視覚化システムは、フライトラインが一つのダグを有するネットを表わしているか複数のタグを有するネットを表わしているか最初に調べ、タグの値にもとづいてフライトラインを異なるやり方でレンダリングすることができ、あるいはまったくレンダリングしなくてもよい。例えば、ユーザは、フライトラインを選択し、それを「制御」信号と特定するボタンを押すことができる。その時点以降、そのネットを表わすフライトラインを、それらが制御信号となることを示す異なる色またはタグでレンダリングすることができる。
【００５５】
さらに、視覚化システムは、ユーザによるタグの除去またはタグの値の変更を可能にする。いくつかの実施例では、フライトラインまたはコンポーネントが２つ以上の分類に属する場合に、そのフライトラインまたはコンポーネントに２つ以上のタグを組み合わせることができる（例えば、フライトラインが、一方が入力フライトライン用であり、他方がトランジスタフライトライン用である２つのタグを有することができる）。そのような場合、一般的には、複数のタグを有するフライトラインの表示の方法を制御するための決定ルールが実装される。
【００５６】
ブロック１２１〜１２３のコンポーネント／フライトラインの選択および変更の手順によって達成できる他の特徴は、ユーザが１つ以上のフライトラインへと既知の値を割り当てることを可能にする。
【００５７】
ユーザが最初にフライトラインを選択し、選択されたフライトラインが表わすネットへ、バインドキーまたはＧＵＩ制御などによって所定の値を割り当てる。値は、「論理１」、「論理０」、および「未知」（あるいは、「無関係」）である。異なる既知の値を有するネットを表わしているフライトラインを、例えば所与の値を表わすための所定の色または他の視覚的なインジケータを使用して、異なるやり方でレンダリングすることができる。少なくとも１つの実施例では、選択されたフライトラインへと値を割り当てるプロセスを、フライトラインを選択して以下のキーなどの所定のキーを押すことによって達成することができる。
【００５８】
Ａｌｔ−１キー：フライトラインによって表わされるネットに「論理１」を割り当てる。
Ａｌｔ−２キー：フライトラインによって表わされるネットに「論理０」を割り当てる。
Ａｌｔ−３キー：フライトラインによって表わされるネットに「無関係」の値を割り当てる。
Ａｌｔ−６キー：すべての割り当てを消去する。これは、すべてのネットを順に選択してＡｌｔ−３を押すことに相当する。
【００５９】
ひとたびユーザが論理値を割り当てるための一連のユーザ入力を終えると、フライトラインが、既知の値を有するネットを表わす。次いで、フライトライン視覚化システムが、フライトラインをそれらの値を表わすようにカラーで（あるいは、文字列タグまたは他の視覚的体系にて）レンダリングすることができる。
【００６０】
例えば、一実施例は、以下の色体系に従ってフライトラインをレンダリングする。すなわち、「論理１」を有するフライトラインがベージュで表示され、「論理０」を有するフライトラインが暗い灰色で表示され、「未知」（または、無関係）の論理を有するフライトラインが通常のやり方において入力についての青色または出力についての赤色で表示される。さらに、フライトラインを、ネットがクロック、リセット、制御、または他の既知の信号種として特定される場合に、他の所定の色で表示することができる。
【００６１】
システムは、図１のブロック１２１〜１２３において利用できる選択肢の一部としてなされる視覚的な変更が、それらを恒久的なものにする措置が行なわれない限りは一時的であるように構成される。例えば、ネットに「一時的」な値（「論理１」または「論理０」）を割り当てるための上述のキー操作の手順を、別の所定のキー操作（例えば、Ａｌｔ−６キー）を使用して一括にて取り消すことができる。
【００６２】
さらに、フライトライン視覚化システムは、ユーザが「半恒久的」な割り当てを行なうことを可能にする。一時的な割り当てと半恒久的な割り当てとの間の１つの相違は、半恒久的な割り当てが、Ａｌｔ−６などの所定のキーによって消去されない点にある。これは、スキャンモードまたは他の試験モードなどのチップ動作モードに属するネットへの割り当てに有用である。
【００６３】
ユーザは、チップをミッションモードにさせるためのスキャンモード制御信号を割り当て、この割り当てを半恒久的にすることができる。これは、スキャンモードに関係するゲートを効果的に強調し、多くの場合に、スキャンモードのデータの流れに関係するフライトラインの表示を取り除く。半恒久的な割り当ては、あまり一般的にはならない傾向にあるため、システムのいくつかの実施形態は、それらを制御するためのバインドキーを持たない。少なくとも１つの実施例においては、半恒久的な割り当てを行なうプロセスを、以下のように達成することができる。
１．すべての現在の一時的な割り当てを消去する（Ａｌｔ−６）。
２．Ａｌｔ−１〜Ａｌｔ−３を使用して必要な割り当てを行なう。
３．割り当てを半恒久的であると指定するコマンドを入力する。
４．現在の一時的な割り当てを消去する（Ａｌｔ−６）。
【００６４】
このキー操作の手順により、一時的な割り当てが半恒久的になる。
【００６５】
ユーザがネットとして定められたフライトラインのグループへと論理値を割り当てる場合、フライトライン視覚化システムは、回路の全体に矛盾しないネットの値をもたらそうと試みる。ネットの割り当て値の変化に応答して、フライトラインツールが、ネットによって駆動されるゲートの出力値の演算を試みる。
【００６６】
例えば、ＡＮＤゲートの入力がゼロに割り当てられる場合、そのＡＮＤゲートの出力は、他の入力値にかかわらずにゼロに拘束される。フライトラインツールが、ＡＮＤゲートの出力ネットへの「論理０」の一時的な割り当てを自動的に実行する。今やＡＮＤゲートの出力が既知であるため、フライトラインツールは、このＡＮＤゲートにつながったゲートの出力の演算を試み、矛盾のない結果を生成するために設計の全体を通してこれを続ける。
【００６７】
これらの演算を実行するために、フライトライン視覚化システムは、バッファ、インバータ、ＡＮＤゲート、ＯＲゲート、ＮＡＮＤゲート、ＮＯＲゲート、ＸＯＲゲート、さまざまな種類のマルチプレクサ、フリップフロップ、ならびに当業者にとって公知の多数の他の電子素子および論理素子などの、多数の一般的なゲートについてあらかじめプログラムされた真理値表を維持する。さらなるゲートおよび特注のコンポーネントの機能を、フライトライン視覚化システムに容易に追加することができる。
【００６８】
種々の実施形態において、フライトライン視覚化システムは、論理的な矛盾が回路において発見された場合に警告またはエラーメッセージを表示する。
【００６９】
図１に戻ると、ブロック１２１において、ユーザが１つ以上のフライトラインまたはコンポーネントを選択したと判断される場合、この方法は、ブロック１２１から「ＹＥＳ」の経路に沿ってブロック１２３へと進み、ブロック１２３において選択された要素への変更が行なわれる。ひとたびシステムが要素を所望のやり方でレンダリングすると、この方法は、ブロック１２３からブロック１２５へと進む。一方、ブロック１２１においてシステムがいかなる要素も変更のために選択されてはいないと判断すると、この方法は、ブロック１２１から「ＮＯ」の経路に沿ってブロック１２５へと進む。
【００７０】
システムが回路の表示を続けるべき場合、この方法は、ブロック１２５から「ＹＥＳ」の経路に沿ってブロック１１７へと戻り、フライトラインおよびコンポーネントの表示のやり方を変更するユーザからの入力が存在するか否かが再び判断される。しかしながら、ブロック１２５において回路をもはや表示しなくてもよいと判断される場合、この方法は、ブロック１２５から「ＮＯ」の経路に沿ってブロック１２７へと進み、この方法が終了する。
【００７１】
図３は、回路の画像にレンダリングされるのではなく、むしろデータとして表わされたフライトラインの例を示している。上述のフライトラインの説明は、局所コンポーネントと外部コンポーネントとの間の視覚的な接続に主として注目しているが、フライトラインを、単にデータに関してのみ表現することもできる。例えば、視覚化システムが、フライトラインをデータ表のエントリとして表わすことができる。そのような実施形態においては、着目コンポーネントにデータ表を組み合わせることができる。
【００７２】
一般的には、データ表における各々のフライトラインが、外部コンポーネントについてのエントリを有し、おそらくは信号の方向についてのエントリを有し、さらにはフライトラインについての他の任意の関心の情報のエントリを有すると考えられる。フライトラインを回路キャンバスへと直接、局所コンポーネントと種々の外部コンポーネントとの間にグラフィカルにレンダリングする代わりに、フライトラインのデータを保存することができる。
【００７３】
視覚化システムは、フライトラインにもとづいてデータ表を生成することができ、ユーザが、フライトラインを線としてグラフィカルに表示する代わりに、データ表の生成を選択することができる。データ表形式の中のフライトラインをコンピュータの表示画面に表示する行為を、フライトラインのレンダリングと称することができる。
【００７４】
図３のデータ表の実施例は、フライトラインの種類および外部コンポーネントのセル名を示している。例えば、フライトラインは、入力または出力のいずれかとして特徴付けられる。さらに、この実施形態は、着目コンポーネントの入力の数（すなわち、１２）および出力の数（すなわち、５３）も示している。この実施例では、データが、（「入力」タイプのフライトラインから作られた）入力部および（「出力」タイプのフライトラインから作られた）出力部という２つの部分にて示されている。さらにシステムは、すべての外部インスタンス（すなわち、各々のフライトラインの着目コンポーネントの反対側の他端に位置するコンポーネント）のセル名のリストを提供する。また、この実施形態は、各々の種類の外部コンポーネント（各々のコンポーネント名）への接続の数を数え、接続の数によって並べ替えられたこのデータのリストを提示する。
【００７５】
他の実施形態は、フライトラインに関連するさらなる情報を表示することを選択でき、情報の表をユーザにとって便利な任意の他のやり方で体系化し、並べ替え、あるいは提示することができる。
【００７６】
図４は、コンポーネント−コンポーネントモード（インスタンス−インスタンスモードとも称される）にて回路コンポーネントを相互接続するフライトラインを示している。本明細書に開示される種々の実施形態は、回路のコンポーネント間の接続を視覚化するためのシステムおよび方法を含む。以下の例において、フライトラインのいくつかの態様が検討される。
【００７７】
この例示の回路は、２つのコンポーネント「Ｂ」および「Ｃ」へとつながる「Ａ」という名前のコンポーネントを含んでいる。コンポーネント「Ｂ」および「Ｃ」は、互いに直接には接続されていない。この例において、ユーザがコンポーネント「Ａ」を選択して、着目コンポーネントとして指定し、フライトラインを生成するためにシステムを使用する。
【００７８】
この場合、「Ａ」が局所コンポーネントである。「Ａ」と「Ｂ」との間に接続が存在するため、システムは、「Ａ」と「Ｂ」との間にフライトラインを描く。コンポーネント「Ｂ」が、外部インスタンスになると考えられる。さらに、「Ａ」と「Ｃ」との間に接続が存在するため、ユーザは、この接続を表わすために「Ａ」から「Ｃ」へと引かれたフライトラインを見て取ることができる。この例において、コンポーネント「Ｃ」もまた、外部コンポーネントである。
【００７９】
しかしながら、ユーザがコンポーネント「Ｂ」を選択し、システムにフライトラインを描くように指示する場合、コンポーネント「Ｂ」は「Ｃ」に直接にはつながっていないため、「Ｂ」から「Ａ」へと引かれるただ１本の線しか見て取ることができない。「Ｂ」−「Ｃ」の接続が存在しないため、システムは、これら２つのコンポーネントの間にはフライトラインを描かない。
【００８０】
フライトラインについての別の考慮事項は、コンポーネント間の方向である。フライトラインが局所コンポーネント「から」外部コンポーネント「へと」引かれると考えることが便利であるが、実際には、フライトラインそのものは、いかなる固有の方向も有さない。フライトラインは、単に２つのコンポーネントの間に接続が存在することを示すだけである。
【００８１】
しかしながら、フライトラインにおける信号の流れには、方向が組み合わせられている可能性がある。システムのパラメータおよびフライトライン表示設定に応じて、システムを、信号の流れの方向を視覚的に示すようなやり方でフライトラインをレンダリングするように設定することができる。例えば、局所コンポーネントへのすべての入力を、或る所定の色で示すことができる一方で、出力が別の所定の色で表示される。さらに、フライトラインの線の太さ、線の意匠、または他の外観的特徴を、入力、出力、またはフライトラインの他の分類の間の区別に使用することも可能である。
【００８２】
通常は、各々の局所コンポーネントについて少なくとも２つの外部コンポーネントが存在するが、これは必須ではない。例えば、未接続の出力を有するバッファセルは、ただ１つの外部コンポーネント（バッファのドライバ）しか有さない。
【００８３】
基板上のいくつかのコンポーネントが、フライトラインを持たない可能性もある。例えば、冗長の非接続のトランジスタは、外部コンポーネントを持たなくてもよく、したがってフライトラインを有さないと考えられる。
【００８４】
フェライトビーズが、フライトラインを持たない可能性があるコンポーネントの別の例である。フェライトビーズは、信号経路を伝わることが知られている不要な信号を減衰させるために回路において信号配線を覆って配置され、あるいは電気配線の周囲に配置されることがある。
【００８５】
他方で、ただ１つのフライトラインが２つ以上の外部コンポーネントを有することも可能である。例えば、着目コンポーネントが、２つ以上の他のコンポーネントへとつながる回路配線への１つの出力を有することができる。
【００８６】
局所コンポーネントと外部コンポーネントとのペアが、実際には両者を接続する２つ以上の信号を有する可能性がある。これを、システムのパラメータおよびフライトライン表示設定に応じて、２つの異なるやり方で取り扱うことができる。
【００８７】
いくつかの実施例においては、視覚化システムが、信号ごとに１本のフライトラインを描き、したがって２つ以上の信号配線がコンポーネントを繋いでいる場合には、複数のフライトラインがコンポーネント間に示される。別の実施例では、システムを、コンポーネント間の接続を形成する信号の束を表わすためにフライトラインを１本だけ描くように設定することができる。視覚化システムは、一般的には、そのような束にされたフライトラインを、多数の信号を含んでいる束を強調するようなやり方でレンダリングするように設定され、すなわち束の信号の数を示すようにレンダリングを調節することによって設定される。
【００８８】
視覚化システムは、フライトラインをさまざまな条件に応じてさまざまな種類に分類することを可能にする。１つの一般的な条件は、信号の流れの方向である。上述のように、各々のフライトラインは、局所コンポーネントと外部コンポーネントとの間の１つ以上の接続を表わすが、フライトラインそのものには方向が組み合わせられていない。
【００８９】
しかしながら、フライトラインを移動する信号は、方向を有する可能性がある。信号が、外部コンポーネントの出力ピンから始まって局所インスタンスの入力ピンで終わる場合、そのフライトラインを、局所コンポーネントの観点から理解したとき、「入力」と分類することができる。反対に、信号が、局所コンポーネントの出力ピンから始まって外部インスタンスの入力ピンで終わる場合、そのフライトラインを、やはり局所コンポーネントの観点から、「出力」と分類することができる。
【００９０】
フライトラインの分類は、信号の方向に限られない。例えば信号がつながる外部インスタンスのピンの名称、信号の論理出力数、信号が電圧の供給または接地のどちらであるか、フライトラインの接続先または接続元のコンポーネントの種類（例えば、トランジスタ、フリップフロップ、論理ゲートの種類、など）、あるいはフライトラインを特徴付ける任意の他の同様の条件またはパラメータなど、任意の属性または条件を使用することができる。
【００９１】
フライトラインを、例えば配線のサイズ、信号線がシールドされているか否か、配線が回路基板の特定の平面、層、またはレベルにあるか否か、配線が或る層から別の層へと通過しているか否か、すなわち鉛直な配線（ヴィアホール）であるか否か、もしくは当業者にとって公知の他の同様の特徴など、信号線または回路基板の配線そのものの形状配置によって特徴付けることも可能である。
【００９２】
最後に、フライトラインを、ユーザが回路の解析の際にそのフライトラインに割り当てるべく選択した１つ以上のタグによって特徴付けることができる。
【００９３】
本明細書に開示される視覚化システムの種々の実施形態は、異なる種類のフライトラインを画面上に異なるやり方でレンダリングすることを可能にする。例えば、さまざまな種類のフライトラインを、色で体系化することができる。一実施形態においては、「入力」フライトラインが青緑色で描かれ、「出力」フライトラインが深紅で現れる。
【００９４】
色に加えて、システムは、フライトラインの種類を区別するために、例えば破線、点線、および／または太さが変化する線など、さまざまな線の様式、点描パターン、または線の太さを使用することもできる。
【００９５】
いくつかの実施例では、視覚化システムが、局所コンポーネントと外部コンポーネントとが接続されていることを示し、フライトラインの特徴についての任意の他の所望の情報を提供するために、線をまったく使用せず、代わりに文字ラベルまたは他の形状を使用し、あるいは単に表をユーザに提示する。
【００９６】
視覚化システムの種々の実施形態は、フライトラインを、ユーザによって指定される指示に従って視認可能または視認不可能にすることを可能にし、あるいは別の所定のやり方で表示することを可能にする。
【００９７】
いくつかの実施形態においては、システムを、ユーザにとっての関心の種々の態様を強調するために種々の表示状態の間で切り換わるように設定することができる。切り換えの状態は、一般的には、初期のシステムパラメータおよびフライトライン表示設定において設定される。或る表示状態から別の表示状態への切り換わりが、ユーザからの入力に応答して行なわれる。
【００９８】
例えば、一実施形態においては、ユーザの入力（例えば、ユーザが「７」キーなどの所定の切り換えキーを押す）に応答して、フライトラインの表示が、１）すべてのフライトラインが視認可能にされ、選択可能である状態と、２）入力フライトラインだけが視認可能にされ、選択可能である状態と、３）出力フライトラインだけが視認可能にされ、選択可能である状態と、を有する３状態のサイクルにて切り換わる。この例では、システムが３つの表示状態の間を切り換わる。実施においては、ユーザによってあらかじめ定められる任意の数の表示状態が存在してよい。システムの切り換わりの切り換えキーおよび表示状態を、ユーザがあらかじめ定めることができる。
【００９９】
種々の実施形態においては、表示状態の間の切り換えが順番に行なわれるのではなく、個々の表示状態を所定のキーに組み合わせることができ、例えば「７」キーが表示状態１に組み合わせられ、「８」キーが表示状態２に組み合わせられ、「９」キーが表示状態３に組み合わせられる。
【０１００】
フライトライン視覚化システムの種々の実施形態は、視覚化の特徴をオン／オフを動的に切り換える能力など、回路をいくつかの異なるやり方およびモードで動的に視覚化する能力を有する。これらの動的な視覚化の特徴のうちの１つは、回路のコンポーネントを表わすキャンバス上にシンボルを表示する能力である。別の動的な視覚化の特徴は、回路のシンボルを異なる位置へと選択的に移動させる能力である。他の実施例として、コンポーネントの階層（１つのシンボルが多数のコンポーネントを代表することができる）を生成するという動的な視覚化の特徴が挙げられる。これらの実施例を、種々の所定の詳しさのレベルの間で切り換えることができる。また、フライトライン視覚化システムは、コンポーネント間の接続の経過をデータベースに記録する能力も有する。他の動的な視覚化の特徴は、キャンバスの状態およびコンポーネントの階層の読み込みおよび保存の能力である。種々の実施形態を、キャンバス上でコンポーネントの傍らに注記の形状（例えば、線、矩形、または文字ラベル）を描く能力を有するように構成することができる。さらに、システムは、変更またはフォーマットのために１つ以上のコンポーネントまたは注記を選択するユーザの入力を受け付けることができる。
【０１０１】
再び図４を参照すると、図示のインスタンス−インスタンスのフライトラインの実施形態が、局所コンポーネントと外部コンポーネントとの間のフライトラインをレンダリングしている。図４のインスタンス−インスタンスモードにおいては、線が、局所および外部コンポーネントのシンボルの中心において開始および終了している。種々の実施形態における線の太さは、同じ局所および外部インスタンスを共有する信号の数に比例している。同じ局所および外部インスタンスを共有する信号の数を表わすために、フライトラインの単位長さ当たりのチェックマークまたは他の視覚的キューの数（例えば、１インチ辺りのチェックマークの数）など、他の視覚化体系の特徴を利用することもできる。
【０１０２】
図示の実施例では、フライトラインの一端のコンポーネントがコンピュータ画面のウインドウの外側にある場合、線はフライトライン４１７のように単に画面の縁まで延びる。いくつかの実施形態においては、ユーザが画面の外へと延びるフライトラインの上方にカーソルを保持するようにマウスを操作することで、画面外に位置する外部コンポーネントを示すポップアップウインドウが現れる。
【０１０３】
フライトラインを、コンポーネント間の接続の特徴または特性を示すために、いくつかの異なる視覚化キューを使用してレンダリングすることもできる。例えば、フライトライン４０５が、この場合にはコンポーネント４０１への入力であることを示す破線の形式で描かれている。線４０７〜４０９は、コンポーネント４０１（着目コンポーネント）の出力を消費するコンポーネントを示す所定のパターンで描かれている。
【０１０４】
２本の線４０７が、出力線４０９と比べてきわめて太く描かれていることに注目すべきである。この実施例において、線の太さは、コンポーネント４０１から２つのコンポーネント４１１へと出力される多数の信号が存在することを示している。コンポーネント４０１をコンポーネント４１３およびコンポーネント４１５に接続するフライトラインは、それほど太くなく、これらのコンポーネントへの出力が比較的少ないことを示している。例えば線の強さ（線の濃さまたは太さ）、線の色、線に組み合わせられる文字ボックスなど、線の太さ以外の他の視覚的キューも、接続の数を示すために使用可能である。
【０１０５】
種々の実施形態においては、所与の着目コンポーネントについてのスクリーンショットまたはビューが、表示されたフライトラインに関する視覚化体系の凡例を含むことができる。凡例は、常に視認可能であっても、ドロップダウンメニュー、ポップアップウインドウ、あるいはコンピュータ画面に表示された凡例アイコンまたはボタンを介してアクセス可能であってもよい。
【０１０６】
図４に示した例では、ユーザが、コンポーネント４０１を着目コンポーネントとして選択している。種々の実施形態において、着目コンポーネントは、表示装置上の視覚化キューによって示される。例えば、図４の実施形態においては、コンポーネント４０１が、周囲に描かれたクロスハッチの囲み４０３によって着目コンポーネントとして示されている。他の実施例においては、着目コンポーネントを示すために、例えば白色／着色された囲み、影付けされた部分、など、異なる着目コンポーネント視覚化キューを使用することができる。
【０１０７】
図５は、コンポーネント−コンポーネントモードにおける複数の着目コンポーネントについてのフライトラインを示している。解析対象の回路およびユーザの必要に応じて、ユーザは、２つ以上の局所コンポーネントを指定することができる。そのような場合、システムは、複数の局所インスタンスの各々についてフライトラインの演算およびレンダリングの手順を実行する。
【０１０８】
次いで、システムは、局所インスタンスおよび外部インスタンスの両方が着目コンポーネントであるフライトラインをレンダリングするか否かを選択することができる。これは、ユーザの制御のもとで行なわれても、あるいはシステムにおいて指定される所定の選択肢として行なわれてもよい。
【０１０９】
図５は、コンポーネント５０１、コンポーネント５０３、およびコンポーネント５０５という３つの着目コンポーネントのフライトラインのレンダリングを示している。この場合には、選択された着目コンポーネントへのフライトラインおよび選択された着目コンポーネントからのフライトラインの両方がレンダリングされている。ユーザの裁量にて、システムは、局所コンポーネントおよび外部コンポーネントが着目コンポーネントであるフライトラインのレンダリングを省略することができる。このモードにおいては、フライトライン５１１がレンダリングされないと考えられる。
【０１１０】
複数の着目コンポーネントを有する図５のコンポーネント−コンポーネントモードにおいて、視覚化システムは、３つの局所コンポーネントとそれらのそれぞれの外部コンポーネントとの間のフライトラインをレンダリングする。上述のように、信号の方向または他の特性を示すために、線を色によって体系化でき、あるいは線に何らかの他の視覚的キューを備えることができる。図においては、破線（例えば、５０７）が、着目コンポーネントへの入力を示している。クロスハッチ入りの線（例えば、５０９）は、着目コンポーネントからの出力を示している。
【０１１１】
いくつかのフライトラインは、コンポーネント５０１の出力かつコンポーネント５０５への入力であるフライトライン５１１など、或る着目コンポーネントへの出力かつ別の着目コンポーネントへの入力であってよい。そのような状況においては、フライトラインが入力または出力のどちらになるかを示す視覚的キューをもたらすために用いられる所定の決定ルールが使用される。
【０１１２】
ユーザは、コンポーネントの階層を指定することができる。そのような場合には、共通のフライトライン（例えば、５１１）が、階層において最上位にランクされるコンポーネントの観点から表示される。図５においては、コンポーネント５０１がコンポーネント５０５よりも上位にランクされている。したがって、フライトライン５１１は、着目コンポーネント５０１への出力として示される。
【０１１３】
他の単純な決定ルールは、コンポーネントが着目コンポーネントとして選択された順番（または、逆順）に従ってフライトラインを示すことである。最初（または、最後）に選択されたコンポーネントが、フライトラインの表示に関して、後に選択されたコンポーネントよりも優先される。
【０１１４】
二重の入力／出力のフライトラインを取り扱う他のやり方は、フライトラインの半分を或る着目コンポーネントへの入力として示し、フライトラインの半分を別の着目コンポーネントへの出力として示すことである。共通のフライトラインを取り扱うさらに別のやり方は、単純にそれらをまったくレンダリングしないことである。
【０１１５】
図６は、ピン−ピンモードにおけるフライトラインの詳細図を示している。ピン−ピンモードは、回路図においてフライトラインを表示するより精密かつ情報量の多いやり方をもたらす。ピン−ピンモードにおいては、各々のフライトラインが、或るコンポーネントのピンにおいて始まり、別のコンポーネントのピンにおいて終わる。このやり方で、ピン−ピンモードは、図４〜５のように単に各々のコンポーネントの中心へとつながるフライトラインと比べ、より高い詳細さのレベルを提供する。
【０１１６】
図６のピン−ピンの実施形態においては、各々のフライトラインが、どのコンポーネントが互いにつながるかだけでなく、局所コンポーネントのピンが外部コンポーネントの特定のピンにつながることも示している。このモードにおいて、フライトラインは、通常は同じ太さである。なぜならば、所与のフライトラインが、通常はそれぞれの端部において２つ以上のピンにつながることはないからである。
【０１１７】
しかしながら、一部の回路においては、着目コンポーネントの或るピンへとつながったフライトラインが分岐し、同じコンポーネントまたは他のコンポーネントの２つ以上の入力へとつながる可能性がある。そのような場合には、フライトラインを、複数の入力へとつながることを示すためにより太く、より濃く、あるいは他の視覚的キューを備えて示すことができる。
【０１１８】
図６のコンポーネント６０１は、局所インスタンスであることを示す視覚的キュー（すなわち、コンポーネント６０１の周囲のクロスハッチ入りの囲み）を備えて描かれている。この実施形態において、視覚化システムは、フライトラインをピンからピンへとレンダリングしている。破線６０７が、局所インスタンスであるコンポーネント６０１が、外部コンポーネント６０３のピンから入力を受け取ることを示している。
【０１１９】
クロスハッチ入りの線６０９は、コンポーネント６０１が外部コンポーネント６０５のための出力を生成することを示している。所与のフライトラインが特別な重要性を有する場合には、それを所定の色、線の種類、その回路への重要性を示す文字ボックスによるラベル、または他の視覚的キューによって表わすことができる。
【０１２０】
図７Ａは、グループ化される前の２つの着目コンポーネントについての概略図を示している。２つの着目コンポーネントは、ＮＡＮＤゲート７０１およびＮＡＮＤゲート７０３である。ＮＡＮＤゲート７０１は、７０５へのフライトラインによって示されるように、７０５を含むいくつかの入力を有している。ＮＡＮＤゲート７０３は、７０１の出力からのフライトラインおよび画面外のコンポーネントからのフライトライン７０９によって示される２つの入力を有している。
【０１２１】
コンポーネント７０１および７０３をグループ化するために、まずユーザは、例えばコンポーネント７０１および７０３の周囲に選択の囲みを描き、あるいは各々のコンポーネントをマウスでクリックすることによって、コンポーネント７０１および７０３を選択する。フライトライン視覚化システムは、ユーザが選択されたコンポーネントについてグループ化コマンドを実行することによってグループを形成することを可能にする。図７Ｂが、２つのコンポーネント７０１および７０３のグループ化の結果を示している。
【０１２２】
図７Ｂは、２つの着目コンポーネント７０１および７０３を１つのコンポーネント７１１になるようにグループ化した図７Ａからの回路を示している。コンポーネントがただ１つのコンポーネントで置き換えられているが、接続は保たれている。新たなグループコンポーネント７１１は、図７Ａからのコンポーネント７０１のすべての入力およびコンポーネント７０３からの入力７０９を有している。コンポーネント７１１は、コンポーネント７０７への出力も有している。
【０１２３】
図７Ａの７０１と７０３との間のフライトラインが、コンポーネント７１１を構成するグループの内部に位置するがゆえに、図７Ｂには反映されていないことに注意すべきである。種々の実施形態においては、グループの詳細を眺めるという選択肢が、例えばグループコンポーネント７１１上でのホバリングによってユーザへと提示される。
【０１２４】
コンポーネントの選択という特徴により、ユーザは、コンポーネントを管理可能な組へと選択的にグループ化できる。したがって、コンポーネントは、トランジスタまたは論理ゲートなどの単一の極小な回路素子であってよい。しかしながら、コンポーネントは、そのような素子のグループであってもよい。
【０１２５】
フライトライン視覚化システムは、そのような多素子のコンポーネントを主たる概略図においてシンボルを使用して表わすことができ、ユーザの要求により、ユーザが概略図においてグループの詳細をすべて眺めることを可能にする。この行為は、一般に、概略図の階層における「下降（ｄｅｓｃｅｎｄｉｎｇ）」として知られている。
【０１２６】
視覚化システムは、任意の概略図において、それが「最上位」の概略図であっても、あるいはこれらのグループ概略図のうちの１つであっても、フライトラインを描くことができる。しかしながら、最上位の概略図および任意の指定のグループが、別々の概略図であると考えられることに注意すべきである。
【０１２７】
本発明の発明者は、ユーザが、多くの場合に、グループ概略図の内部の部位がどのように最上位の概略図の残りの部分につながるかを知ることを望むことを発見した。このニーズに対応するために、視覚化システムは、素子からなるコンポーネントのグループ化を解除する機能を提供する。これを行なうために、システムは、最初にグループを表わしているシンボルを最上位の概略図から取り除く。次いで、グループの各構成部分を、コンポーネント−コンポーネントの接続を保つように注意しながら、最上位の概略図に配置する。この時点から、視覚化システムは、一般的には、これらの新たなコンポーネントを他のあらゆるコンポーネントと同様に取り扱う。
【０１２８】
コンポーネントのグループ化の解除が可能であるのとちょうど同じように、最上位の概略図におけるコンポーネントも、グループ化の解除またはさまざまな組み合わせでのグループ化が可能である。視覚化システムが、ユーザが最上位の概略図において１つ以上のコンポーネントを選択し、グループ化の機能を行使することを可能にする。グループ化の機能が、新たな概略図を生成し、グループに一意の名称を与える（あるいは、新たなグループ名についてユーザの入力を受け取る）。
【０１２９】
システムは、グループに選択されたコンポーネントを、最上位の概略図から新たに生成される概略図へと移動させる。フライトライン視覚化システムを、新たな概略図内のグループへと移されたコンポーネントと最上位の概略図に残る別のコンポーネントとの間の接続を示すために、グループ／コンポーネントのピンを生成するように構成することができる。
【０１３０】
システムは、一般的には、これらの新たなピンに、例えば入力、出力、電圧供給、または他の適切な分類など、適切な方向を割り当てるように構成される。コンポーネントまたは素子のグループ化の機能に、所定のキー（例えば、「Ｆ６」キー）あるいはドロップダウンメニューなどの他のユーザ入力を組み合わせることができる。
【０１３１】
図８Ａおよび図８Ｂは、フライトラインの重要／非重要としての分類および重要なフライトラインの選択的な表示を示している。図８Ａが、非重要と分類され、したがって図８Ｂに示した図からは取り除かれるいくつかのフライトラインを含む複数のフライトラインを示している。
【０１３２】
回路を機能または現在の状態に貢献する信号を除いてしまうことなく可能な範囲まで単純化することが、回路の動作を理解するうえで有用となりうる。フライトライン視覚化システムの種々の実施形態は、現在の割り当ておよび演算にもとづいて表示されるフライトラインの数を減らすための特徴を含む。
【０１３３】
例えば、２入力のＡＮＤゲートの一方の入力が「論理０」に設定される場合、このＡＮＤゲートの出力も「論理０」でなければならない。第２の入力が出力値を変化させる可能性はない。したがって、第２の入力は、第１の入力が「論理０」に設定されるならば重要でなく、フライトラインツールは、通常は第２の入力を表示しない。
【０１３４】
さらに、重要でない入力が或る別のゲートによってのみ駆動される場合、その別のゲートへの入力も重要でない。なぜならば、それらの値が、信号の伝播の経路において既知の値をさらに変化させる可能性がないからである。
【０１３５】
どのフライトラインが重要であるかを判断するために、種々の実施形態は、以下の２つの決定ルールにもとづいてゲートの「非重要性」を判断することができる。
・出力が既知であるゲートは、非重要であると考えられる。
・非重要なゲートだけを駆動するゲートも、やはり非重要であると考えられる。
【０１３６】
どのフライトラインをレンダリングすべきかを判断するために、種々の実施形態は、以下の決定ルールに従うことができる。
・既知の値（すなわち、「論理０」または「論理１」のいずれか）を有するネットを表わすフライトラインは、常に表示される。
・フライトラインは、包括的設定「ｉＦｏｒｃｅＤｉｓｐｌａｙＦｌｉｇｈｔＬｉｎｅｓ」が設定されている場合には常に表示される。
・非重要なゲートから始まりかつ非重要なゲートにおいて終わるフライトラインは、表示されない。
・上記条件のいずれも当てはまらない場合、フライトラインを表示するのが初期設定である。
【０１３７】
ユーザは、例えばＡｌｔ−７などの所定のキーを押すことによって「ｉＦｏｒｃｅＤｉｓｐｌａｙＦｌｉｇｈｔＬｉｎｅｓ」の設定を切り換えることができる。
【０１３８】
図８Ａに目を向けると、いくつかのフライトラインがＮＡＮＤゲート８０１について表示されている。フライトライン８０３に「論理０」という値が割り当てられている（あるいは、他の理由で「論理０」になることが既知である）場合、フライトライン８０５、８０７、および８０９の入力は機能に関係せず、すなわち「論理０」または「論理１」をどのような組み合わせでとろうとも、コンポーネント８０１の出力に影響しない。この理由で、フライトライン８０５、８０７、および８０９は、フライトライン８０３が「論理０」の値を有することが知られている場合、非重要と称される。
【０１３９】
図８Ｂは、図８Ａに対応するが、フライトライン８０５、８０７、および８０９が、フライトライン８０３が「論理０」になることが既知である場合に、非重要に分類されるがゆえに除去されている。ＮＡＮＤゲート８０１が「論理１」の値を有することに注意すべきである。しかしながら、この値はユーザによって割り当てられるのではなく、むしろフライトラインツールによって、フライトライン８０３が「論理０」という既知の値を有することに応答して計算されている。入力のうちの１つが「論理０」に設定されたＮＡＮＤゲートは、常に「論理１」の出力を有する。
【０１４０】
いくつかの実施形態においては、ＮＡＮＤゲート８０１への残りの入力ピンについて、図８Ｂのようにいかなるフライトラインも添えずに示す他に、別の表示の選択肢が存在する。例えば、いくつかの実施例においては、非重要と見なされるフライトラインを、弱められたやり方で表示することができ、すなわちユーザにとって無視が容易な細くて目立たない線または薄い色で表示することができる。
【０１４１】
図９は、本明細書に開示の種々の実施形態の実行に適したコンピュータシステム９００および種々の構成要素を示している。コンピュータシステム９００を、デスクトップコンピュータ、ラップトップコンピュータ、メインフレームコンピュータ、あるいはインストラクションを実行するようにプログラムまたは設定することができる任意の他のハードウェアまたは論理デバイスの形態に構成することができる。
【０１４２】
いくつかの実施形態においては、コンピュータシステム９００が、ローカル・エリア・ネットワーク（ＬＡＮ）９２７、インターネット９２９、またはイントラネット９３１を介して遠方のユーザからの入力を受け付けるサーバとして機能することができる。他の実施形態においては、コンピュータシステム９００が、ＬＡＮ９２７上またはインターネット９２９経由のサーバのためのスマート・ユーザ・インターフェイス・デバイスとして機能することができる。
【０１４３】
コンピュータシステム９００を、１つの場所に配置して相互接続することができ、あるいは種々の位置に分散させ、ＬＡＮ９２７またはワイド・エリア・ネットワーク（ＷＡＮ）などの通信リンク、インターネット９２９、公衆交換電話網（ＰＳＴＮ）、スイッチング回路網、携帯電話網、無線リンク、または他のそのような通信リンクを介して相互接続することができる。
【０１４４】
他の装置も、実施形態または実施形態の一部の実行または実施に適切であるかもしれない。そのような装置として、携帯情報端末（ＰＤＡ）、無線ハンドセット（例えば、携帯電話機またはポケットベル）、および好ましくはインストラクションまたはルーチンを実行するようにプログラムすることができる他のそのような電子デバイスが挙げられる。当業者であれば、図９には一般的なアーキテクチャが１つだけ示されているが、多数のさまざまなアーキテクチャがコンピュータシステム９００に好適でありうることを、理解できるであろう。
【０１４５】
コンピュータシステム９００は、マイクロプロセッサ、図９に示されているような２つ以上の並列プロセッサ、中央演算処理装置（ＣＰＵ）、あるいは他のそのような制御論理または回路として具現化できるプロセッサ９０１を備えることができる。
【０１４６】
プロセッサ９０１を、ローカル・キャッシュ・メモリ９０３にアクセスし、ローカル・キャッシュ・メモリ９０３においては見つけることができないデータの要求をキャッシュバスを介して２次キャッシュメモリ９０５へ送信するように構成することができる。いくつかの実施形態は、プロセッサ９０１およびローカル・キャッシュ・メモリ９０３を１つの集積回路へと統合でき、他の実施形態は、単一レベルのキャッシュメモリを利用でき、あるいはキャッシュメモリをまったく利用しなくてもよい。他の実施形態は、複数のプロセッサ９０１をただ１つのダイおよび／またはただ１つのパッケージに統合することができる。
【０１４７】
さらに別の実施形態は、２次キャッシュメモリ９０５を有する複数のローカル・キャッシュ・メモリ９０３を備える複数のプロセッサ９０１を、メモリ／バスコントローラ９１１への通信のためのフロントサイドバス９０７を有する単一のパッケージ９１０へと統合することができる。メモリ／バスコントローラ９１１は、プロセッサ９０１からのアクセスを受け付け、それらを内部メモリ９１３または種々の入力／出力（Ｉ／Ｏ）バス９０９へと案内することができる。
【０１４８】
コンピュータシステム９００のいくつかの実施形態は、メモリ／バスコントローラへのフロントサイドバス９０７を共有する複数のプロセッサパッケージ９１０を備えることができる。他の実施形態は、メモリ／バスコントローラへの個別のフロントサイドバス接続を備える複数のプロセッサパッケージ９１０を有することができる。メモリバスコントローラは、メモリバス９０９を使用して内部メモリ９１３と通信することができる。
【０１４９】
内部メモリ９１３は、シンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）、ダブル・データ・レート（ＤＤＲ）メモリ、または他の揮発性ランダム・アクセス・メモリなどのランダム・アクセス・メモリ（ＲＡＭ）素子のうちの１つ以上を含むことができる。さらに、内部メモリ９１３は、電気的に消去可能／プログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、プログラマブル読み出し専用メモリ（ＰＲＯＭ）、読み出し専用メモリ（ＲＯＭ）、バッテリバックアップ付きＲＡＭ、または他の不揮発性メモリなどの不揮発性メモリも含むことができる。
【０１５０】
いくつかの実施形態においては、コンピュータシステム９００が、３次キャッシュメモリ、またはこれらの組み合わせ、あるいは情報を読み出し可能な形式で保存するように構成された他の同様の種類の回路を、さらに備えることができる。いくつかの実施例では、内部メモリ９１３を、プロセッサ９０１の一部として構成することができ、あるいはプロセッサ９０１とは別であるが、同じパッケージ９１０内に位置するように構成することができる。プロセッサ９０１は、コンピュータシステム９００の他の構成要素へのアクセスに使用される配線とは異なるバスまたは制御配線を介して内部メモリ９１３にアクセス可能であってよい。
【０１５１】
さらに、コンピュータシステム９００は、１つ以上のハードディスクドライブ９１５（または、他の種類の記憶装置）および光ディスクドライブ９１７を備えることができ、あるいはそれらへのアクセスを有することができる。ハードディスクドライブ９１５および光ディスクドライブ９１７用の光ディスクは、種々の実施形態の最終または中間結果を保存するために適した機械による読み取りが可能（「コンピュータにとって読み取り可能」とも言う）な媒体の例である。
【０１５２】
光ディスクドライブ９１７は、リームーバブルストレージ媒体（例えば、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ、ＤＶＤ−Ｒ、ＤＶＤ−Ｗ、ＤＶＤ−ＲＷ、ＨＤ−ＤＶＤ、Ｂｌｕ−Ｒａｙ、など）の読み取り／書き込みが可能な種々の形式のいくつかのディスクドライブの組み合わせを含むことができる。
【０１５３】
コンピュータシステム９００のいくつかの実施形態に含まれうる他の形態またはコンピュータにとって読み取り可能な媒体として、これらに限られるわけではないが、フロッピー・ディスク・ドライブ、９トラック・テープ・ドライブ、テープ・カートリッジ・ドライブ、半導体メモリドライブ、カセット・テープ・レコーダ、紙テープ読み取り機、バブル・メモリ・デバイス、磁気片読み取り機、パンチカード読み取り機、あるいはコンピュータにとって使用可能または機械で読み取り可能な任意の他の種類の記憶媒体を挙げることができる。
【０１５４】
コンピュータシステム９００は、ハードディスクドライブ９１５および光ディスクドライブ９１７をコンピュータシステム９００の一体の一部分（例えば、同じキャビネットまたは筐体内に位置し、さらには／あるいは同じ電源を使用する）として接続された周辺機器として備えることができ、あるいはネットワークを介してハードディスクドライブ９１５および光ディスクドライブ９１７にアクセスすることができ、もしくはこれらの組み合わせであってよい。
【０１５５】
ハードディスクドライブ９１５は、多くの場合、データ、コンピュータプログラム、または他の情報の記憶および検索のために構成された回転磁気媒体を備えている。いくつかの実施形態においては、ハードディスクドライブ９１５が、半導体メモリを使用する半導体メモリドライブであってよい。他の実施形態においては、コンピュータにとって使用可能な何らかの他の種類の媒体を使用することができる。
【０１５６】
ハードディスクドライブ９１５は、必ずしもコンピュータシステム９００内に含まれる必要はない。例えば、いくつかの実施形態においては、ハードディスクドライブ９１５が、データ、コンピュータプログラム、または他の情報の記憶および検索のためのコンピュータシステム９００にとってアクセス可能なネットワーク内のサーバ記憶空間であってよい。いくつかの場合には、コンピュータシステム９００が、インターネット９２９または他の通信回線によってアクセスすることができるサーバ記憶ファームまたは同様の種類の記憶設備の記憶空間を使用することができる。
【０１５７】
ハードディスクドライブ９１５は、多くの場合、例えば種々の実施形態の活動を実行するためのコンピュータ・アプリケーション・プログラムのすべてまたは一部など、コンピュータシステム９００によって実行されるソフトウェア、インストラクション、およびプログラムを保存するために使用される。
【０１５８】
通信リンク９０９を、ハードディスクドライブ９１５および光ディスクドライブ９１７の中身にアクセスするために使用することができる。通信リンク９０９は、シリアル・アドバンスト・テクノロジ・アタッチメント（ＳＡＴＡ）などの点対点のリンクや、パラレル・アドバンスト・テクノロジ・アタッチメント（ＰＡＴＡ）またはスモール・コンピュータ・システム・インターフェイス（ＳＣＳＩ）などのバス方式の接続や、ＩＥＥＥ−１３９４などのデイジーチェーンの接続形態や、光ファイバーチャネルなどの種々の接続形態をサポートするリンクや、あるいはコンピュータにとって読み取り可能な媒体への通信に使用することができる任意の他のコンピュータ通信プロトコル、規格、または独自仕様であってよい。
【０１５９】
メモリ／バスコントローラ９１１は、他のＩ／Ｏ通信リンク９０９も提供することができる。いくつかの実施形態においては、リンク９０９が、ペリフェラル・コンポーネント・インターフェイス（ＰＣＩ）、マイクロチャネル、インダストリ・スタンダード・アーキテクチャ（ＩＳＡ）バス、拡張インダストリ・スタンダード・アーキテクチャ（ＥＩＳＡ）バス、ＶＥＲＳＡｍｏｄｕｌｅＥｕｒｏｃａｒｄ（ＶＭＥ）バス、または任意の他の共有コンピュータバスなど、共有バスアーキテクチャであってよい。
【０１６０】
他の実施形態においては、リンク９０９が、ＰＣＩ−Ｅｘｐｒｅｓｓ、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ、または任意の他の点対点のＩ／Ｏリンクなど、点対点のリンクであってよい。種々のＩ／Ｏデバイスを、コンピュータシステム９００の一部として構成することができる。
【０１６１】
多数の実施形態においては、コンピュータシステム９００をネットワーク９２７または９３１へと接続できるよう、ネットワークインターフェイス９１９を備えることができる。ネットワーク９２７および９３１はどちらも、ＩＥＥＥ  ８０２．３  イーサネット・ネットワーク、ＩＥＥＥ  ８０２．１１Ｗｉ−Ｆｉワイヤレスネットワーク、または任意の他の種類のコンピュータネットワーク（これらに限られるわけではないが、ＬＡＮ、ＷＡＮ、パーソナル・エリア・ネットワーク（ＰＡＮ）、優先ネットワーク、無線ネットワーク、電力線ネットワーク、および光ネットワーク）などの規格に従って動作することができる。
【０１６２】
コンピュータシステム９００とは別の構成要素であってよく、あるいはコンピュータシステム９００の一体の一部として含まれてもよいネットワークゲートウェイ９３３またはルータを、コンピュータシステム９００が非対称型デジタル加入者回線（ＡＤＳＬ）、データ・オーバ・ケーブル・サービス・インターフェイス・スペシフィケーション（ＤＯＣＳＩＳ）リンク、Ｔ１、または他のインターネット接続機構などのインターネット接続を介してインターネット９２９と通信できるように、ネットワーク９２７および／または９３１へと接続することができる。
【０１６３】
他の実施形態においては、コンピュータシステム９００が、インターネット９２９への直接接続を有することができる。コンピュータシステム９００を、インターネット９２９、イントラネット９３１、および／または無線ノード９４５を介してデスクトップコンピュータ９４１またはラップトップコンピュータ９４３などの１つ以上の他のコンピュータへと接続することができる。いくつかの実施形態においては、ユーザがコンピュータシステム９００にさらなる機能を追加できるよう、拡張スロット９２１を備えることができる。
【０１６４】
コンピュータシステム９００は、ユニバーサル・シリアル・バス（ＵＳＢ）接続、ＲＳ−２３２などのシリアルポート、パラレルポート、オーディオ入力およびオーディオ出力の接続、高性能シリアルバスＩＥＥＥ−１３９４、ならびに／あるいは他の通信リンクなどの外部の通信インターフェイスへのアクセスをもたらすＩ／Ｏコントローラ９２３を備えることができる。これらの接続は、いくつかの実施形態においては別の回路を有することもでき、あるいはＩ／Ｏコントローラ９２３によってもたらされる別のコンピュータ通信リンクへとブリッジを介して接続されてもよい。
【０１６５】
さらに、プロセッサ９０１上で動作するアプリケーションがユーザへと情報を表示できるよう、グラフィックスコントローラ９２５を設けることができる。グラフィックスコントローラ９２５は、アナログ・ビデオ・グラフィック・アレイ（ＶＧＡ）接続、デジタル・ビデオ・インターフェイス（ＤＶＩ）、デジタル・ハイ・デフィニション・マルチメディア・インターフェイス（ＨＤＭＩ）接続、または任意の他のビデオ接続などの規格または独自のフォーマットを利用することができるビデオポートを介してビデオを出力することができる。ビデオ接続は、ビデオ情報をユーザへと提示するために表示装置９３７へとつながることができる。
【０１６６】
表示装置９３７は、液晶表示装置（ＬＣＤ）、陰極管（ＣＲＴ）モニタ、または有機発光ダイオード（ＯＬＥＤ）アレイ、あるいはユーザへの情報の表示に適した他の種類の表示装置など、いくつかの種類の表示装置またはコンピュータモニタのいずれかであってよい。表示装置９３７は、１つ以上の発光ダイオード（ＬＥＤ）表示灯または他のそのような表示器を備えることができる。
【０１６７】
一般的には、コンピュータシステム９００は、キーボードおよびマウス９３９などの１つ以上のユーザ入力／出力（Ｉ／Ｏ）デバイスを備え、さらには／あるいは表示されるカーソルを制御する他の手段（これらに限られるわけではないが、タッチ式画面、タッチパッド、ジョイスティック、トラックボール、タブレット、または他のデバイス）を備える。ユーザＩ／Ｏデバイス９３５は、ＵＳＢインターフェイスを使用し、あるいはＲＳ−２３２、ＰＳ／２コネクタ、または他のインターフェイスなどの他の接続を使用して、コンピュータシステム９００につながることができる。
【０１６８】
種々の実施形態は、ユーザからの入力を受け付け、さらには／あるいはユーザへと出力をもたらすように構成された入力デバイスを備える。例えば、いくつかの実施形態は、ウェブカム（例えば、ＵＳＢでつながる）、マイクロホン（例えば、オーディオ入力接続へと接続される）、および／またはスピーカ（例えば、オーディオ出力接続へと接続される）を備えることができる。コンピュータシステム９００は、一般的には、キーボードおよびマウス９３９と、表示装置９３７とを有し、スピーカ、マイクロホン、およびウェブカムを備えるように構成することができる。
【０１６９】
これらの入力／出力デバイスを、ユーザへの情報の提示ならびに／あるいは種々のプログラムおよび演算の実行に使用されるユーザからの情報および他の入力の受信のための手段として、さまざまな組み合わせで使用することができ、あるいは別々に使用することができる。スピーチ認識ソフトウェアを、ユーザの言葉による指令を受け取って解釈するために、マイクロホンと組み合わせて使用することができる。
【０１７０】
コンピュータシステム９００は、重要なウェブサービスの特定および新たなサーバへの動的な再配置における使用に適することができる。例えば、プロセッサ９０１を、マイクロプロセッサ、マイクロコントローラ、ＤＳＰ、ＲＩＳＣプロセッサ、２つ以上の並列プロセッサ、または本明細書に記載の機能、工程、行為、および方法を実行または制御できると当業者であれば認識できる任意の他の種類の処理ユニットとして具現化することができる。
【０１７１】
種々の実施形態の少なくとも１つによる処理ユニットは、ディスクディスクドライブ９１５、光ディスクドライブ９１７、またはハードディスクドライブに互換の任意の他の種類の媒体、フロッピー・ディスク、フラッシュメモリ、ＲＡＭ、あるいは当業者であれば理解できる他のコンピュータにとって読み取り可能な媒体などのコンピュータにとって読み取り可能な一時的でない媒体上に保存（具現化）されたコンピュータ・ソフトウェア・プログラムを動作させることができる。
【０１７２】
当業者であれば理解できるとおり、種々の実施形態の態様を、システム、方法、またはコンピュータプログラム製品として具現化することが可能である。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード、などを含む）、またはソフトウェアおよびハードウェアの態様を組み合わせる実施形態のかたちをとることができ、本明細書においては、すべてを包括的に「回路」、「モジュール」、「ロジック」、または「システム」と称することができる。
【０１７３】
さらに、種々の実施形態の対象は、コンピュータにとって読み取り可能なプログラムコードが保存された１つ以上のコンピュータにとって読み取り可能な媒体に具現化されたコンピュータプログラム製品のかたちをとることができる。
【０１７４】
１つ以上のコンピュータにとって読み取り可能な一時的でない媒体の任意の組み合わせを、利用することが可能である。コンピュータにとって読み取り可能な媒体は、一般的には、コンピュータにとって読み取り可能な記憶媒体である。コンピュータにとって読み取り可能な記憶媒体を、例えば、電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、またはデバイス、あるいは当業者にとって公知の他の同様の記憶装置、もしくは以上の任意の適切な組み合わせとして具現化できる。
【０１７５】
そのようなコンピュータにとって読み取り可能な記憶媒体の例として、１つ以上の配線を有する電気的接続、可搬のコンピュータディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去およびプログラム可能な読み出し専用メモリ（ＥＰＲＯＭまたはＦｌａｓｈメモリ）、可搬のコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、磁気記憶装置、または以上の任意の適切な組み合わせが挙げられる。
【０１７６】
本明細書の文脈において、コンピュータにとって読み取り可能な記憶媒体は、インストラクション実行システム、装置、またはデバイスによって（あるいは、そのようなシステム、装置、またはデバイスに関連して）使用されるプログラムを収容または保存する任意の実体的な媒体であってよい。
【０１７７】
種々の実施形態の動作および態様を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋、などのオブジェクト指向のプログラミング言語、ならびに「Ｃ」プログラミング言語または同様のプログラミング言語などの従来からの手続プログラミング言語を含む１つ以上のプログラミング言語の任意の組み合わせで記述することができる。
【０１７８】
種々の実施例によれば、プログラムコードは、スタンドアロンのソフトウェアパッケージとして、全体がユーザのコンピュータにおいて実行されてよく、一部分がユーザのコンピュータにおいて実行されてよく、一部分がユーザのコンピュータにおいて実行され、一部分が遠方のコンピュータにおいて実行されてよく、あるいは全体が遠方のコンピュータまたはサーバにおいて実行されてよい。
【０１７９】
後者の筋書きの場合には、遠方のコンピュータを、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）などの任意の種類のネットワークを介してユーザのコンピュータへと接続することができ、あるいは接続を（例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて）外部のコンピュータへと行なうことができる。
【０１８０】
本発明の態様を、本明細書に開示の種々の実施形態による方法、装置、システム、およびコンピュータプログラム製品のフロー図および／またはブロック図を参照して説明した。
【０１８１】
フロー図および／またはブロック図の各ブロック、ならびにフロー図および／またはブロック図のブロックの組み合わせを、コンピュータ・プログラム・インストラクションによって実行できることを、理解できるであろう。これらのコンピュータ・プログラム・インストラクションを、汎用のコンピュータ、専用のコンピュータ、または他のプログラマブルなデータ処理装置のプロセッサへと提供することで、コンピュータまたは他のプログラマブルなデータ処理装置のプロセッサによって実行されるインストラクションによってフロー図および／またはブロック図のブロックに示された機能／行為を実行するための手段が生み出されるような装置を生成することができる。
【０１８２】
また、これらのコンピュータ・プログラム・インストラクションを、コンピュータ、プログラマブルなデータ処理装置、または他のそのような装置を特定のやり方で機能するように導くことができるコンピュータにとって読み取り可能な媒体に保存することができ、結果として、コンピュータにとって読み取り可能な媒体に保存されたインストラクションが、フロー図および／またはブロック図のブロックに示された機能／行為を実行するインストラクションを含む製品をもたらす。
【０１８３】
また、コンピュータ・プログラム・インストラクションをコンピュータ、他のプログラマブルなデータ処理装置、または他の装置へとロードして一連の動作段階をコンピュータ、他のプログラマブルなデータ処理装置、または他の装置において実行させることで、コンピュータまたは他のプログラマブルなデータ処理装置のプロセッサによって実行されるインストラクションによってフロー図および／またはブロック図のブロックに示された機能／行為を実行するためのプロセスがもたらされるように、コンピュータにおいて実行されるプロセスをもたらすことができる。
【０１８４】
図面のフロー図および／またはブロック図は、本発明の種々の実施形態によるシステム、方法、およびコンピュータプログラム製品について考えられる実施例のアーキテクチャ、機能、および動作を説明する役に立つ。この点に関し、フロー図またはブロック図の各ブロックは、指定の論理機能を実行するための１つ以上の実行可能なインストラクションを含むコードのモジュール、セグメント、または一部分を代表することができる。
【０１８５】
また、いくつかの代案の実施例において、ブロックに表わされる機能が、図に示された順序とは異なる順序で生じてもよいことに、注意すべきである。例えば、連続して示されている２つのブロックを、実際には実質的に同時に実行することができ、あるいは図のブロックおよび行為が、関係する機能に応じて逆順または異なる順序で実行されることもありうる。
【０１８６】
さらに、ブロック図および／またはフロー図の各ブロックならびにブロック図および／またはフロー図のブロックの組み合わせを、指定の機能または行為を実行する専用のハードウェアベースのシステムによっても、あるいは専用のハードウェアとコンピュータインストラクションとの組み合わせによっても実行できることに、注意すべきである。
【０１８７】
本明細書において使用される専門用語は、あくまでも特定の実施形態を説明する目的のためのものであり、本発明を限定しようとするものではない。本明細書において使用されるとき、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈がそのようでないことを明らかに示していない限り、複数形も包含する意図を有する。
【０１８８】
さらに、本明細書において使用される用語「・・・を備える（ｃｏｍｐｒｉｓｅｓ）」、「・・・を備えている（ｃｏｍｐｒｉｓｉｎｇ）」、「・・・を含む（ｉｎｃｌｕｄｅｓ）」、および／または「・・・を含んでいる（ｉｎｃｌｕｄｉｎｇ）」が、そこで述べられている特徴、インテジャー、段階、動作、要素、および／またはコンポーネントが存在することを明示する一方で、１つ以上の他の特徴、インテジャー、段階、動作、要素、コンポーネント、および／またはこれらの集まりの存在または追加を排除していないことを、理解できるであろう。
【０１８９】
本明細書および特許請求の範囲において使用されるとき、用語「取得／入手／得る（ｏｂｔａｉｎｉｎｇ）」は、コンピュータにとって読み取り可能な記憶媒体からの読み出し、他のコンピュータプログラムからの受信、ユーザからの受信、他の入力にもとづく演算、あるいはデータまたはデータセットを取得する任意の他の手段のいずれかを意味することができる。
【０１９０】
用語「複数」は、本明細書および特許請求の範囲において使用されるとき、挙げられた要素が２つ以上であることを意味する。しかしながら、必ずしも装置全体における挙げられた要素のすべての存在を指すわけではないことを、理解すべきである。とくには、「複数」の要素のうちの「各々」の要素への言及の場合に、「複数」に含まれず、したがって「各々」の対象でないさらなる要素が、装置全体のどこかに存在しうる。
【０１９１】
下記の特許請求の範囲において「・・・する手段」または「・・・するステップ」という表現で記載されたすべての構成要素に対応する構造、材料、行為、および均等物は、請求項に具体的に記載されたように他の請求項に記載の構成要素との組み合わせにおいて機能を実行するための任意の構造、材料、または行為を含むように意図されている。
【０１９２】
本発明の説明は、あくまでも例示および説明を目的として提示されており、すべてを述べ尽くすものでも、本発明を開示された形態に限定しようとするものでもない。多数の変更および変種が、本発明の範囲および趣旨から外れることなく、当業者にとって明らかであろう。本明細書に含まれている種々の実施形態は、本発明の原理および実際の応用を最も良く説明し、当業者が本発明を種々の実施形態について想定される個々の使用に適した種々の変更とともに理解することができるように、選択されて説明されている。
【符号の説明】
【０１９３】
４００  コンポーネント−コンポーネントモード
５００  コンポーネント−コンポーネントモード、複数の着目コンポーネント
６００  ピン−ピンモード
９０１  プロセッサ
９０３  ローカル・キャッシュ・メモリ
９０５  二次キャッシュメモリ
９１１  メモリ／バスコントローラ
９１３  内部メモリ
９１５  ハードディスクドライブ
９１７  光ディスクドライブ
９１９  ネットワークインターフェイス
９２１  拡張スロット
９２３  Ｉ／Ｏコントローラ
９２５  グラフィックスコントローラ
９２９  インターネット
９３１  イントラネット
９３３  ゲートウェイ
９３５  Ｉ／Ｏデバイス
９３７  表示装置
９３９  キーボードおよびマウス
９４１  デスクトップコンピュータ
９４３  ラップトップコンピュータ
９４５  無線ノード
【図１】
0005555815.tif 000002
【図２】
0005555815.tif 000003
【図３】
0005555815.tif 000004
【図４】
0005555815.tif 000005
【図５】
0005555815.tif 000006
【図６】
0005555815.tif 000007
【図７Ａ】
0005555815.tif 000008
【図７Ｂ】
0005555815.tif 000009
【図８Ａ】
0005555815.tif 000010
【図８Ｂ】
0005555815.tif 000011
【図９】
0005555815.tif 000012