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

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

▶ シノプシス, インコーポレイテッドの特許一覧

特許7596364ニューラルネットワークに基づく集積回路用のマスク合成
<>
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図1
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図2
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図3
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図4
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図5
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図6
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図7
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図8
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図9
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図10
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図11
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図12
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図13
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図14
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図15
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図16
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図17
  • 特許-ニューラルネットワークに基づく集積回路用のマスク合成 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-29
(45)【発行日】2024-12-09
(54)【発明の名称】ニューラルネットワークに基づく集積回路用のマスク合成
(51)【国際特許分類】
   G06F 30/398 20200101AFI20241202BHJP
   G06F 30/27 20200101ALI20241202BHJP
   G03F 1/70 20120101ALI20241202BHJP
【FI】
G06F30/398
G06F30/27
G03F1/70
【請求項の数】 16
(21)【出願番号】P 2022513227
(86)(22)【出願日】2020-08-28
(65)【公表番号】
(43)【公表日】2022-11-14
(86)【国際出願番号】 US2020048607
(87)【国際公開番号】W WO2021041963
(87)【国際公開日】2021-03-04
【審査請求日】2023-08-24
(31)【優先権主張番号】62/893,214
(32)【優先日】2019-08-29
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/003,870
(32)【優先日】2020-08-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】597035274
【氏名又は名称】シノプシス, インコーポレイテッド
【氏名又は名称原語表記】SYN0PSYS, INC.
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(72)【発明者】
【氏名】セシル トーマス クリストファー
(72)【発明者】
【氏名】フッカー ケヴィン
(72)【発明者】
【氏名】グアハルド マルコ
【審査官】松浦 功
(56)【参考文献】
【文献】国際公開第2018/235669(WO,A1)
【文献】米国特許出願公開第2013/0159943(US,A1)
【文献】特開2005-092212(JP,A)
【文献】特開2003-315973(JP,A)
【文献】特開2010-156866(JP,A)
【文献】特開2010-044101(JP,A)
【文献】特開2009-294440(JP,A)
【文献】特開2019-139008(JP,A)
【文献】米国特許出願公開第2018/0095359(US,A1)
【文献】国際公開第2019/048506(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/30 -30/398
G03F 1/00 - 1/92
(57)【特許請求の範囲】
【請求項1】
機械学習に基づく回路設計用のマスク合成を行うための方法であって、
処理デバイスによって回路の物理的レイアウトを表す前記回路設計を受信することであって、前記回路設計は複数の回路設計ポリゴンを含む、受信することと、
前記処理デバイスによって、前記複数の回路設計ポリゴンの各々に対して、
前記回路設計ポリゴンと関連付けられた位置を選択すること、
前記位置の閾値距離内の複数のサンプル点でサンプリングされた特徴値であって、機械学習に基づくモデルの訓練の間に使用された順序付けの方法を使用して前記サンプル点を移動させることによって順序付けされる前記特徴値を含む特徴のセットを決定すること、
前記特徴のセットを前記機械学習に基づくモデルへの入力として提供すること、
前記機械学習に基づくモデルを実行して、前記回路設計ポリゴンのエッジからのオフセット距離を決定すること、および
前記オフセット距離に基づいて、前記回路設計ポリゴンに対応するマスク設計ポリゴンを生成すること、を繰り返すことと、
前記処理デバイスによって、前記生成されたマスク設計ポリゴンを使用して、前記回路設計用のマスク設計を生成することと、を含む、方法。
【請求項2】
前記機械学習に基づくモデルは、
特定の回路設計ポリゴンと関連付けられた入力位置の閾値距離内の前記回路設計を記述する特徴を入力として受信し、
前記特定の回路設計ポリゴンの前記エッジからの前記オフセット距離を出力するように構成されているニューラルネットワークであり、
前記ニューラルネットワークは、前記ニューラルネットワークへの入力として提供される前記特徴のセットを用いて実行される、請求項1に記載の方法。
【請求項3】
前記ニューラルネットワークは多層パーセプトロンである、請求項2に記載の方法。
【請求項4】
前記特徴のセットは、前記位置の近隣における前記回路設計ポリゴンの幅を表す特徴をさらに含む、請求項1に記載の方法。
【請求項5】
前記特徴のセットは、前記位置の近隣における前記回路設計ポリゴンの曲率を表す特徴をさらに含む、請求項1に記載の方法。
【請求項6】
各サンプル点においてサンプリングされた前記特徴は、前記回路設計形状のエッジからの前記サンプル点の距離を表す、請求項に記載の方法。
【請求項7】
各サンプル点においてサンプリングされた前記特徴は、前記回路設計の中心軸からの前記サンプル点の距離を表す、請求項に記載の方法。
【請求項8】
前記特徴のセットを決定することは、
レジスト像を生成するために前記回路設計のリソグラフィシミュレーションを行うことと、
各サンプル点における前記レジスト像の特徴を使用することと、を含み、前記レジスト像の前記特徴は、最大値、最小値、または傾きのうちの1つである、請求項に記載の方法。
【請求項9】
前記回路設計ポリゴンに対応する前記マスク設計ポリゴンを生成することは、
前記回路設計ポリゴンの位置からオフセット距離のところに各点がある、複数の点を識別することと、
前記複数の点を接続する補助特徴を表すマスク設計ポリゴンを決定することと、を含む、請求項1に記載の方法。
【請求項10】
前記オフセット距離は前記回路設計ポリゴンのエッジからの法線に沿って決定される距離である、請求項1に記載の方法。
【請求項11】
前記位置は前記回路設計ポリゴンのエッジ上の点である、請求項1に記載の方法。
【請求項12】
前記オフセット距離は、前記マスク設計のポリゴンのエッジと前記回路設計の対応するポリゴンの対応するエッジとの間の距離を表す、請求項1に記載の方法。
【請求項13】
回路設計ポリゴンに対応する前記マスク設計ポリゴンは前記マスク設計の主特徴を表し、前記マスク設計ポリゴンの1つまたは複数のエッジは、前記回路設計ポリゴンの対応するエッジからオフセット距離のところにある、請求項1に記載の方法。
【請求項14】
前記回路設計ポリゴンに対応する前記マスク設計ポリゴンを生成することは、
前記マスク設計ポリゴンを生成するために更に使用される標的回路設計ポリゴンを得るために、前記オフセット距離に従って前記回路設計ポリゴンを修正することによって目標最適化を行うことを含む、請求項1に記載の方法。
【請求項15】
プロセッサによって実行されると前記プロセッサに機械学習に基づく回路設計用のマスク合成を行うための動作を実行させる命令を記憶している、非一時的記憶媒体であって、前記動作は、
回路の物理的レイアウトを表す前記回路設計を受信することであって、前記回路設計は回路設計ポリゴンを含む、受信することと、
複数の回路設計ポリゴンの各々に対して、
前記回路設計ポリゴンと関連付けられた位置を選択すること、
前記位置の閾値距離内の複数のサンプル点でサンプリングされた特徴値であって、機械学習に基づくモデルの訓練の間に使用された順序付けの方法を使用して前記サンプル点を移動させることによって順序付けされる前記特徴値を含む特徴のセットを決定すること、
前記特徴のセットを前記機械学習に基づくモデルへの入力として提供すること、
前記機械学習に基づくモデルを実行して、前記回路設計ポリゴンのエッジからのオフセット距離を決定すること、および
前記オフセット距離に基づいて、前記回路設計ポリゴンに対応するマスク設計ポリゴンを生成すること、を繰り返すことと、
前記生成されたマスク設計ポリゴンを使用して、前記回路設計用のマスク設計を生成することと、を含む、非一時的記憶媒体。
【請求項16】
プロセッサと、
前記プロセッサによって実行されると前記プロセッサに機械学習に基づく回路設計用のマスク合成を行うための動作を実行させる命令を記憶している、非一時的記憶媒体であって、前記動作は、
回路の物理的レイアウトを表す前記回路設計を受信することであって、前記回路設計は複数の回路設計ポリゴンを含む、受信すること、
前記複数の回路設計ポリゴンの各々に対して、
前記回路設計ポリゴンと関連付けられた位置を選択すること、
前記位置の閾値距離内の複数のサンプル点でサンプリングされた特徴値であって、機械学習に基づくモデルの訓練の間に使用された順序付けの方法を使用して前記サンプル点を移動させることによって順序付けされる前記特徴値を含む特徴のセットを決定すること、
前記特徴のセットを前記機械学習に基づくモデルへの入力として提供すること、
前記機械学習に基づくモデルを実行して、前記回路設計ポリゴンのエッジからのオフセット距離を決定すること、および
前記オフセット距離に基づいて、前記回路設計ポリゴンに対応するマスク設計ポリゴンを生成すること、を繰り返すこと、ならびに、
前記生成されたマスク設計ポリゴンを使用して、前記回路設計用のマスク設計を生成すること、を含む、非一時的記憶媒体と、
を備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は2019年8月29日出願の米国特許出願第62/893,214号の利益を主張するものであり、当該出願の内容を本明細書に援用するものである。
【0002】
本開示は一般に電子設計自動化(electronic design automation)の分野に関し、より詳細にはニューラルネットワークなどの機械学習に基づくモデルに基づく集積回路用のマスク合成に関する。
【背景技術】
【0003】
半導体加工では、半導体デバイスの様々な層のパターンを画定するためにフォトレジストマスクが使用される。フォトレジストマスクは、半導体構造の上に感光材料(すなわちフォトレジスト)の層を堆積させ、フォトレジスト層をパターン形成されたフォトリソグラフィマスク(「フォトマスク」)を通して照射源に曝露し、次いでフォトレジスト層の曝露されなかった(または曝露された)部分を除去することによって形成される。フォトマスク(例えば金属)を通して曝露された材料をエッチングすることができ、このことによってフォトマスク上のパターンを半導体デバイスに転写することができる。干渉および他のプロセス効果によって、所望のパターンとフォトレジスト材料に転写された実際のパターンとの間に、望まれない乖離がもたらされる場合がある。これらの望まれない乖離は、結果的な半導体デバイスの性能に大きく影響し得る。これらの乖離を最小化するために、フォトマスク上に付与されたパターンを光近接効果補正(OPC)法を使用して修正することを含む、様々な補償スキームが実施されている。マスク合成OPCに関与する様々なプロセスは計算コストが高く、このため設計プロセスは時間がかかり高価なものになる。
【発明の概要】
【0004】
開示されるのは、回路設計用のマスク設計を生成するための構成(例えば、システム、方法、プロセッサによって実行可能な命令を記憶している非一時的コンピュータ可読記憶媒体)である。システムは回路設計ポリゴンを含む回路設計を受信する。システムは、入力位置の近隣内の回路設計を記述する特徴を入力として受信し、回路設計ポリゴンのエッジからのオフセット距離を出力するように構成されている、ニューラルネットワークにアクセスする。システムはニューラルネットワークを使用して、回路設計ポリゴンと関連付けられた位置に関するオフセット距離を決定する。例えば、システムは、回路設計ポリゴンのエッジに沿った位置を選択し、ポリゴンのエッジからのオフセット距離を生成してもよい。システムは、オフセット距離に基づいてマスク設計ポリゴンを生成する。マスク設計ポリゴンは、回路設計ポリゴンに対応する特徴、例えば、主特徴(main feature)または補助特徴(assist feature)を表し得る。システムは、生成されたマスク設計ポリゴンを使用して回路設計用のマスク設計を生成する。
【0005】
回路設計のある位置に対応する特徴は、その位置の近隣にある回路設計ポリゴンの幅、その位置の近隣にある回路設計ポリゴンの曲率、ポリゴンと隣のポリゴンの間の間隔の深さ、などを含み得る。システムはその位置の近隣にあるサンプル点を選択し、そのサンプル点における回路設計を記述する値を使用する。例えば、システムは、設計エッジまでの距離をサンプリングしてもよいか、または、回路設計のリソグラフィシミュレーションを行ってレジスト像を生成し、様々なサンプル点におけるそのレジスト像の特徴、例えば、レジスト像の最大値、最小値、もしくは傾きを使用してもよい。
【0006】
ニューラルネットワークは、事前に生成されたマスク設計に基づいて、ラベル付けされたデータセットを使用して訓練される。
【0007】
この概要および続く詳細な説明に記載する特徴および利点は、全てを網羅したものではない。本願の図面、明細書、および特許請求の範囲を検討すれば、当業者には多くの追加の特徴および利点が明らかになるであろう。
【0008】
本開示は、以下に示す詳細な説明から、および本開示の実施形態の添付の図から、より十分に理解されるであろう。これらの図は本開示の実施形態の知識および理解をもたらすように使用されており、本開示の範囲をこれらの特定の実施形態に限定するものではない。また更に、これらの図は必ずしも縮尺通りに描かれていない。
【図面の簡単な説明】
【0009】
図1】ある実施形態に係る、回路設計用のマスク合成の全体プロセスを示す図である。
図2】ある実施形態に係る、マスクの特徴に関して回路設計からのオフセットのある例示のマスク設計を示す図である。
図3】ある実施形態に係る、マスク合成における目標最適化の例を示す図である。
図4】ある実施形態に係る、マスク合成システムのシステムアーキテクチャのブロック図である。
図5】ある実施形態に係る、回路設計のマスク合成を行うためのプロセスのフローチャートである。
図6】ある実施形態に係る、ある位置の近隣にあるサンプル点を使用する特徴抽出を示す図である。
図7】ある実施形態に係る、レイアウトのレベルセット変換に基づく特徴抽出を示す図である。
図8】ある実施形態に係る、レイアウトのレジスト像に基づく特徴抽出を示す図である。
図9】ある実施形態に係る、レイアウトの中心軸に基づく特徴抽出を示す図である。
図10】ある実施形態に係る、標的位置のセットに関するニューラルネットワークの出力を示す図である。
図11】ある実施形態に係る、オフセット距離に基づく補助特徴の生成を示す図である。
図12】ある実施形態に係る、オフセット距離に基づくマスク設計ポリゴンの生成を示す図である。
図13】ある実施形態に係る、オフセット距離に基づく目標最適化を示す図である。
図14】ある実施形態に係る、マスク設計に使用されるニューラルネットワークのアーキテクチャを示す図である。
図15】ある実施形態に係る、マスク設計に使用される複数の出力を有するニューラルネットワークのアーキテクチャを示す図である。
図16】ある実施形態に係る、マスク設計に使用される別のニューラルネットワークへの入力を提供するニューラルネットワークのアーキテクチャを示す図である。
図17】いくつかの実施形態に係る、集積回路の設計および製造中に使用される様々なプロセスのフローチャートである。
図18】実施形態が動作し得る例示のコンピュータシステムの抽象的な図である。
【発明を実施するための形態】
【0010】
電子設計自動化(EDA)プロセスは、リソグラフィマスクの製作に使用されることになるデータを生成するテープアウト段を含む。マスクデータ合成中に、「テープアウト」データを使用してリソグラフィマスクが製作され、これを使用して完成した集積回路が製作される。超大規模集積回路(VLSI)設計フローでは、リソグラフィシステムと縮小を続ける特徴サイズとの間のミスマッチに起因して、マスク最適化は重要な課題である。光近接効果補正(OPC)は、マスクのプリント適性の改善のために使用される分解能向上技術(RET)である。しかしながら、チップ寸法の縮小および回路の複雑さの増大に起因して、マスク最適化プロセスが消費する演算リソースはますます大きくなっている。
【0011】
マスク設計のためのいくつかの手法は、マスクおよび回路設計をピクセル化像として表す畳み込みニューラルネットワークを利用する。マスク合成の光近接効果補正(OPC)問題は、ピクセル化像の観点からは定式化されない。マスク合成OPC問題は、主特徴については設計レイアウトからのエッジオフセットの漸増の、および補助特徴(AF)配置についてはより大きいエッジオフセットの観点から、定式化される。このため、ピクセルベースの畳み込みニューラルネットワークマスク合成には、グリッドとポリゴンの間のデータ変換を行う演算集約的なステップが必要になるが、この結果ランタイム性能が低下し、結果の品質が悪くなる。
【0012】
対照的に、様々な実施形態に従って開示されているニューラルネットワークは、ピクセル化表現間の変換を必要としない。開示されているニューラルネットワークは、ある位置の近隣における回路設計を記述する特徴を入力として受信し、オフセット距離値を出力する。オフセット距離値は、マスク設計の特徴を表すマスク設計ポリゴンを生成するために使用される。開示されるモデルは、エッジベースのOPCフレームワークに自然にフィットし、このことによりランタイム実行におけるこのフレームワークとの統合を容易かつ効率的にする。
【0013】
ピクセルベースの特定のソリューションは別の問題に行き当たるが、その理由は、設計ピッチがピクセル間隔と揃っていない場合に、設計のエッジに対するピクセルグリッドの配置が一貫しないためである。そのようになる理由は、設計ピッチが1つのピクセルの寸法よりも小さいからである。その結果、ピクセル表現へのおよびその逆のデータの変換によって正確度が損なわれることになり、このため得られる結果の品質が悪くなる。対照的に、開示される実施形態はピクセルベースの表現との間の変換を必要としないポリゴンエッジを処理するものであり、したがってこの問題は生じない。
【0014】
また更に、本明細書に開示する技法はピクセルベースのソリューションの代わりに回路設計ポリゴンを使用し、このことにより、問題は二次元グリッドからエッジの一次元セットに変わる。このことにより、最終マスクソリューションまたは中間マスクソリューションのいずれかを効率的に得ることで、回路設計用のマスクを生成するプロセスのランタイムが改善される。また更に、これらの技法は、反復的目標最適化または逆リソグラフィ(ILT)技術などの演算コストの高い技法を、より演算コストの低い技法と置き換えることによって、使用される所与の量の演算リソースに対する結果の品質を改善する。
【0015】
全体的なシステム環境
図1は、ある実施形態に係る、回路設計用のマスク設計の全体プロセスを示す。マスク設計システム100は回路設計110を入力として受信し、マスク設計を生成する。マスク設計システム100は、マスク設計の対応する幾何学的形状を生成するために、機械学習モデルを使用して、回路設計の幾何学的形状のエッジからのオフセットを決定する。マスク設計システムは、機械学習モデルによって出力されたオフセットに基づいてマスク設計の特徴を生成する。マスク設計システム100の詳細が図2に示され、図2に関連させて説明される。
【0016】
図2は、ある実施形態に係る、マスクの特徴に関して回路設計からのオフセットのある例示のマスク設計を示す。ポリゴン210は、回路設計の幾何学的形状を表す。ポリゴン220は、回路設計からマスク設計システム100によって生成されたマスクの主特徴を表す。主特徴を表すポリゴン220のエッジは、回路設計のポリゴン210の対応するエッジからのオフセット240に基づいて決定される。ポリゴン230によって表される補助特徴の位置は、回路設計を表すポリゴン210のエッジからのオフセット250を使用して決定される。
【0017】
マスク合成に使用される目標最適化と呼ばれる技法によって、回路設計を修正することが可能になる。この技法は、描かれたように(as drawn)製造するのは困難であり得るが、擾乱を与えることによって製造が容易になり得る、過剰拘束の(overly constrained)ケースに使用される。OPCマスク最適化と同様に、目標最適化は回路設計からのエッジオフセットを求めるものとして定式化され、目標エッジごとの局所的な幾何学的環境に依存する。
【0018】
図3は、ある実施形態に係る、マスク合成における目標最適化の例を示す。ポリゴン310は、回路設計の幾何学的形状を表す。これらのポリゴンは、ポリゴン320が得られるように目標最適化に従って修正される。例えば、ポリゴン310aを修正してポリゴン320aが得られ、ポリゴン310bを修正してポリゴン320bが得られ、ポリゴン310cを修正してポリゴン320cが得られる。修正されたポリゴンを得るためのポリゴン310の修正は、オフセット330を使用して決定される。
【0019】
したがって、主特徴および補助特徴を含む特徴の仕様、ならびに目標最適化のための回路設計の修正は、回路設計のポリゴンのエッジからのオフセットを使用して決定される。マスク設計システム100は機械学習に基づくモデルを使用して、これらの技法に使用されるオフセットを決定する。
【0020】
本明細書に開示する機械学習に基づく手法は、機械学習モデルによって提供される結果に対する追加のOPC補正を可能にし、このことにより、機械学習モデルの出力を最終的なマスクソリューションの生成のために更に改善することが可能になる。したがって、機械学習に基づくマスク生成は、マスクを最終的なソリューションにより近づけ、OPCに補正をより容易に完了させるための近道として機能する。このことによって設計プロセス全体が加速される。いくつかの実施形態は、機械学習に基づくモデルを適用して回路設計ポリゴンを調整するためのオフセットを決定することによって目標最適化を行い、次いで標準的なOPC法を使用してこの新しい標的に基づいてOPCを実行してマスクを補正する。結果的に得られるマスクソリューションはランタイム効率が改善されており、また従来の技法と比較してより高い正確度を有する。
【0021】
マスク合成システム
図4は、ある実施形態に係る、マスク合成システムのシステムアーキテクチャのブロック図を示す。マスク設計システム100は、ニューラルネットワーク410と、訓練コンポーネント420と、特徴抽出コンポーネント430と、マスク合成コンポーネント440と、回路設計データベース450と、マスク設計データベース460と、を含む。他の実施形態は、本明細書に示すものよりも多いかまたは少ないコンポーネントを含み得る。本明細書で特定のモジュールによって実施されるものとして示されている機能性は、本明細書に示されている以外のモジュールによって実施されてもよい。
【0022】
回路設計データベース460は、マスクを生成するためにマスク設計システム100によって処理される回路設計を記憶する。ある実施形態では、マスク設計システム100によって処理される回路設計の表現は、グラフィック設計システム(GDS)フォーマット、例えば、GDSIIフォーマットまたはOpen Artwork System Interchange Standard(OASIS)フォーマットに基づく。他の実施形態は、他のフォーマットを使用して回路設計を表し得る。生成されたマスクは、マスク設計データベース460に記憶される。
【0023】
ニューラルネットワーク410は、回路設計を記述する特徴を入力として受信するように構成される。特徴は、特定の回路設計ポリゴンと関連付けられた位置の近隣にある回路設計を記述する。例えば、位置は、ポリゴンのエッジ上の点、ポリゴンの内側の点、またはポリゴンの外側の点を表し得る。ニューラルネットワーク410は、回路設計ポリゴンから1つまたは複数のオフセット距離を生成する。オフセット距離は、回路設計ポリゴンのエッジの法線に沿った距離であり得る。オフセット距離は、マスク設計の主特徴、マスク設計に関する補助特徴、または目標最適化のために回路設計を修正することによって得られる標的回路設計を生成するために使用され得る。オフセット距離は主特徴および補助特徴の両方について正または負であり得、このことは外部および内部の補助特徴ポリゴン生成に対応している。標的設定に関するオフセットも出力され得る。ある実施形態では、ニューラルネットワーク410は多層パーセプトロンに基づく。本明細書に記載する実施形態はニューラルネットワークに基づいているが、本明細書で開示される技法は他のタイプの機械学習に基づくモデルにも適合する。
【0024】
訓練コンポーネント420は、事前に生成された回路設計用のマスク設計、例えば従来の設計ツールを使用して生成されたマスク設計から生成された、ラベル付けされた訓練データセットを使用して、ニューラルネットワークを訓練する。訓練コンポーネント420は、訓練データセットにニューラルネットワークを適用し、ニューラルネットワークの予測される出力とラベル付けされたデータの間の差を測定する損失関数に基づいて、ニューラルネットワークの重みを調整する。訓練コンポーネント420は逆伝播を適用して、例えば最急降下法を使用して、損失関数に基づいてニューラルネットワークの重みを調整する。
【0025】
特徴抽出コンポーネント430は、回路設計の様々な特徴を抽出して、ニューラルネットワーク410に入力として提供する。特徴抽出コンポーネント430は、回路設計におけるポリゴンの幾何学的測定値、例えば、ある位置の近くの幅、空間、曲率などに基づいて、特徴を抽出する。特徴は、レベルセットフィールド値、ボロノイ図、ラスタ化された設計ポリゴンの畳み込み、および他の変換などの、局所幾何の関数を使用して決定され得る。特徴抽出コンポーネント430はまた、ある位置の近くの空間像値またはレジスト像値などのリソグラフィシミュレーションに基づく測定値、例えば、例えば傾き、最小値、最大値などについての、リソグラフィシミュレーションに基づく測定値に基づく値の関数に基づいて、特徴を抽出する。本明細書に開示する実施形態はポリゴンに関する特徴について記載しているが、開示される技法は他のタイプの幾何学的形状、例えば湾曲形状にも適合する。
【0026】
マスク合成コンポーネント440は、マスク設計システム100の様々なコンポーネントを起動して、回路設計用のマスクを生成する。この場合、マスク合成コンポーネント440は、回路設計データベース450から回路設計をロードし、回路設計から回路設計の一部、例えばポリゴンを選択し、各ポリゴンと関連付けられた位置を選択し、特徴抽出コンポーネントを使用して特徴を抽出し、抽出された特徴にニューラルネットワーク410を適用してオフセット距離を生成し、オフセット距離に基づいてマスクを生成する。
【0027】
いくつかの実施形態では、マスク設計システム100は、回路設計の異なる部分を並列に処理する複数のコンピュータプロセッサを有する、分散型システムとして実装される。例えば、マスク合成コンポーネント230は、回路設計の異なる部分を並列に処理し、回路設計の異なる部分用のマスクを並列に生成してもよい。
【0028】
マスク設計システム100のコンポーネントによって実行されるプロセスについて、以下に詳細に記載する。
【0029】
マスク合成の全体プロセス
図5には、ある実施形態に係る、回路設計のマスク合成を行うためのプロセスのフローチャートが描かれている。図5のフローチャートに示されているステップは、フローチャートに示されているものとは異なる順序で実行されてもよい。例えば、特定のステップを他のステップと並列に実行してもよい。また更に、フローチャートに示す様々なステップは、並列または分散型システムを使用して実行されてもよい。
【0030】
マスク設計システム100は、回路の物理的レイアウトを表す回路設計を受信する510。マスク設計システム100は、ニューラルネットワーク410にアクセスする。マスク設計システム100は、回路設計から得られた回路設計ポリゴンのセットの各々について、以下のステップを繰り返す。回路設計ポリゴンごとに、マスク設計システム100は、回路設計ポリゴンと関連付けられた1つまたは複数の位置を識別する。位置は、ポリゴンのエッジ上の点、またはポリゴンの内側もしくはポリゴンの外側にある点を表し得る。
【0031】
マスク設計システム100は、各位置についてステップ520、530、540、および550を繰り返す。マスク設計システム100は、処理のために回路設計ポリゴンと関連付けられた位置を選択する520。マスク設計システム100は、選択された位置の近隣内の回路設計を記述する特徴のセットを決定する530。近隣は、位置の閾値距離内にある回路設計の部分として定義され得る。マスク設計システム100は、ニューラルネットワーク410への入力として特徴のセットを提供する540。マスク設計システム100は、回路設計ポリゴンのエッジからのオフセット距離を決定するために、ニューラルネットワーク410を実行する550。
【0032】
マスク設計システム100は、オフセット距離に基づいて、回路設計ポリゴンに対応するマスク設計ポリゴンを生成する560。マスク設計ポリゴンは、マスク設計の主特徴または補助特徴を表し得る。例えば、マスク設計システム100は、主特徴のエッジを得るために、回路設計ポリゴンのエッジをオフセット距離だけ移動させることができる。別法として、マスク設計システムは、回路設計ポリゴンのエッジからオフセット距離のところにある補助特徴を表すマスク設計ポリゴンを生成し得る。ある実施形態では、マスク設計システム100は、マスクを生成するのに使用される新しい標的ポリゴンを得るために、オフセット距離を使用して回路設計ポリゴンを修正する。
【0033】
マスク設計システム100は、生成されたマスク設計ポリゴンを使用して回路設計用のマスク設計を生成する570。例えば、マスク設計システム100は得られた様々なマスク設計ポリゴンを組み合わせて、全体的なマスク設計を生成する。
【0034】
図5に示すプロセスの様々なステップは、複数のプロセッサを使用して、例えば分散型アーキテクチャを使用して実行され得る。例えば、回路設計の異なる部分が並列で処理されて、マスク設計の対応する部分が生成され得る。この場合、プロセスの実行を速くするために、大きな回路設計が多数のプロセッサにまたがって分割され得る。
【0035】
特徴抽出
特徴抽出コンポーネント430は、位置Xごとに様々な特徴を抽出して、ニューラルネットワーク410に入力として提供する。位置Xは、回路設計ポリゴンCのエッジEと関連付けられたものと想定される。例えば、エッジEは、位置Xが所在するエッジ、または、位置XがCの内側もしくは外側にある場合に位置Xに最も近いエッジであり得る。特徴抽出コンポーネントは、位置Xの近隣にある点Piのセットをサンプリングする。
【0036】
図6は、ある実施形態に係る、ある位置の近隣にあるサンプル点を使用する特徴抽出を示す。マスク設計システム100は、位置Xの近隣にある点Piのセットを選択する。近隣は、位置Xの閾値距離内にある回路設計の領域を表し得る。マスク設計システム100はこれらの点を、ニューラルネットワークの訓練中に、および推論時間において、すなわち新しい回路設計に対してニューラルネットワークが実行されるランタイムにおいて、サンプル点に対して同じ順序付けが使用されるように順序付ける。
【0037】
ある実施形態によれば、マスク設計システム100は、回路設計ポリゴンCのエッジEの法線に沿って距離D1だけ移動する。エッジEから距離D1にある点から開始して、マスク設計システム100は円を描いて(時計回り方向または反時計回り方向のいずれかで)移動し、同じ距離にある点をサンプリングする。図6は、反時計回り方向に移動して点P1、P2、P3、…、以下同様をサンプリングする、マスク設計システム100を示す。マスク設計システム100が距離D1において円を一周すると、マスク設計システム100はエッジEの法線方向のより長い距離D2に移動する。マスク設計システム100は距離D2において反時計回りの回転を繰り返し、距離D2において円をもう一周し同じ距離にある点をサンプリングする。マスク設計システムは、このプロセスを近隣を定める閾値距離に達するまで繰り返す。これは位置Xの近隣にある点を一貫して順序付けるための例示の機構であり、マスク設計システム100はサンプル点を順序付けるための他の機構を使用し得る。
【0038】
特徴抽出コンポーネント430は、位置Xを表し得る点Pまたはサンプル点Piと関連付けられたポリゴンの幅を表す特徴を抽出する。特徴抽出コンポーネント430は、法線がポリゴンの内側に向けられてポリゴンCの他方のエッジが決定されるように、エッジEの法線方向に移動してもよい。特徴抽出コンポーネント430は、ポリゴンの幅として延びている距離を使用する。特徴抽出コンポーネント430は、例えば、点Pが2つのエッジが交わるポリゴンの隅角または隅角の近くにある場合に、ある角度における幅を決定するために、エッジEの法線とは異なる方向に移動(traverse)し得る。
【0039】
特徴抽出コンポーネント430は、最も近い隣のポリゴンを見付けるために、ポリゴンCの外側を向いているエッジEの法線に沿って移動(traverse)することによって、ポリゴン同士の間の空間を表す特徴を抽出し得る。最も近いポリゴンに到達するために移動(traverse)する距離は、ポリゴンの周囲の空間の幅を表す。特徴抽出コンポーネント430は、例えば、回路設計ポリゴンCの2つのエッジの交点の近くの点に到達するように、法線とは異なる方向に沿って移動(traverse)し得る。
【0040】
特徴抽出コンポーネント430は、点Pの近隣におけるポリゴンの曲率を表す特徴を抽出し得る。特徴抽出コンポーネント430は、ポリゴンCのエッジのセットを通る円を適用し、この円の半径の逆数を曲率の尺度として使用することができる。
【0041】
図7は、ある実施形態に係る、レイアウトのレベルセット変換に基づく特徴抽出を示す。図6に示すように、特徴抽出コンポーネント430は、位置Xの近隣にある点Piのセットをサンプリングする。ある実施形態では、レベルセットは距離関数を用いて生成され、各ピクセルの値は、そのピクセルから回路設計ポリゴンのエッジ上の点までの最短距離を表す。特徴抽出コンポーネント430は、各サンプル点におけるレベルセット値を特徴として使用する。したがって、サンプル点に対応する特徴値は、その点から回路設計ポリゴンの最も近いエッジまでの距離を表す。図7は、閾値未満のレベルセット値を有するサンプル点が回路設計ポリゴンの内側にあり、閾値を超えるレベルセット値を有するサンプル点が回路設計ポリゴンの外側にあり、閾値に等しい値を有するサンプル点が回路設計ポリゴンのエッジ上にあるような、閾値710を示す。他の実施形態は、任意の技法に基づいて、例えば幾何学的探索を使用して、サンプル点から回路設計形状のエッジまでの距離を決定する特徴を使用し得る。
【0042】
図8は、ある実施形態に係る、レイアウトのレジスト像に基づく特徴抽出を示す。特徴抽出コンポーネント430は、様々なサンプル点におけるレジスト像の値を特徴として使用し得る。ある実施形態では、特徴抽出コンポーネント430は、リソグラフィシミュレーションに基づく測定値を特徴として使用する。特徴抽出コンポーネント430は、初期マスク、例えば回路設計ポリゴンを、マスクの初期近似として使用する。初期マスクは、回路設計ポリゴンを、回路設計ポリゴンに基づいて決定されるいくつかの補助特徴と共に含み得る。
【0043】
特徴抽出コンポーネント430は、初期マスクを使用してリソグラフィシミュレーションを行って、空間像値またはレジスト像値を生成する。特徴抽出コンポーネント430は、位置Xの近くの空間像値またはレジスト像値を使用する。例えば、特徴抽出コンポーネント430は、図6に示すような位置Xの近くのサンプル点を生成し、サンプル点における像の値を特徴として決定してもよい。特徴抽出コンポーネント430は、サンプル点における像の傾きを特徴として使用し得る。特徴抽出コンポーネント430は、像の他の属性、例えば、ある点の近くの像の最大値または最小値を、特徴として使用し得る。
【0044】
ある実施形態では、特徴抽出コンポーネント430は、回路設計の一部をラスタ化してピクセル化表現を生成し、ピクセル化像に対して畳み込み、例えばガウスカーネルを使用した畳み込みを行う。特徴抽出コンポーネント430は、畳み込みの結果を特徴として使用する。
【0045】
図9は、ある実施形態に係る、レイアウトの中心軸910に基づく特徴抽出を示す。中心軸は、少なくとも2つの最も近い点が回路設計の1つまたは複数のポリゴンの境界線上にある、回路設計における点を表し、例えば、中心軸の部分910aに示すように、同じポリゴン上に両方の点があるか、または、中心軸の部分910bに示すように、あるポリゴン上に1つの点があり、別のポリゴン上の第2の点がある。したがって、中心軸上の各点は、その点に最も近いポリゴン上に各々存在する少なくとも2つの点から等距離にある。特徴抽出コンポーネント430は回路設計に関する中心軸を決定し、中心軸と回路設計ポリゴンの最も近いエッジとの間の距離を特徴として使用する。特徴抽出コンポーネント430は、様々なサンプル点において決定された中心軸からの距離を表す特徴を抽出する。例えば、特徴抽出コンポーネント430は、例えば、領域内のあらゆるピクセルにおいて中心軸までの距離を演算することによって、中心軸をピクセル化表現に変換することができる。特徴抽出コンポーネント430は、中心軸のピクセル化表現からの、サンプル点における距離値を、特徴として使用する。
【0046】
オフセット距離に基づくマスク生成
図10は、ある実施形態に係る、標的位置のセットに関するニューラルネットワークの出力を示す。図10に示すように、ニューラルネットワーク410の出力は、点のセット、例えば図10に示すx0、x1、x2に関してパラメータ化され得る。マスク合成コンポーネント440は、回路設計ポリゴンのエッジ1010の法線方向に垂直半直線1020を延ばす。マスク合成コンポーネント440は、ニューラルネットワーク410によって半直線1020に沿って出力されるオフセット距離d1およびd2にある点1040を識別する。マスク合成コンポーネント440は、これらの点1040に基づいて主特徴および補助特徴を生成し、またこれらの点を目標最適化のためにも使用する。
【0047】
図11は、ある実施形態に係る、オフセット距離に基づく補助特徴の生成を示す。マスク合成コンポーネント440は、対応する点1040を接続して、主特徴または補助特徴のエッジを画定し得る。例えば、マスク合成コンポーネント440は、エッジ1010から同じ距離d1にある点同士を接続することによってエッジを生成して、主特徴に関するエッジを生成することができる。マスク合成コンポーネント440は、距離d1にある点を接続することによるエッジを、距離d2にある点を接続することによって形成されるエッジと組み合わせて、補助特徴を生成することができる。図11に示すように形成されるエッジは、ポリゴンを後処理するツールに入力として提供される。
【0048】
図12は、ある実施形態に係る、オフセット距離に基づくマスク設計ポリゴンの生成を示す。回路設計エッジの下位セグメントごとにオフセットが記憶される従来のOPC出力のために、マスク合成コンポーネント440は、ニューラルネットワーク410によって出力されるオフセット距離dを、オフセット距離d1を使用して回路設計ポリゴン1210からマスクポリゴン1220を生成するOPCツールに提供する。このOPCツールは、回路設計ポリゴン1210から補助特徴ポリゴン1230を生成するために、オフセット距離d2を使用し得る。OPCツールは、回路設計ポリゴン1210のエッジのセグメントをオフセット距離だけ移動させることで得られるエッジを組み合わせることによって、マスク設計ポリゴン1220および1230を得ることができる。
【0049】
図13は、ある実施形態に係る、オフセット距離に基づく目標最適化を示す。同じく設計エッジの下位セグメントごとにオフセットが記憶される目標最適化のために、マスク合成コンポーネント440は、ニューラルネットワーク410によって出力されるオフセット距離dを、入力回路設計ポリゴン1310を修正することによって標的ポリゴン1320を作り出すOPCツールに提供する。このOPCツールは、回路設計ポリゴン1310のエッジのセグメントをオフセット距離だけ移動させることで得られるエッジを組み合わせることによって、標的回路設計ポリゴン1320を得ることができる。
【0050】
ニューラルネットワークアーキテクチャ
図14は、ある実施形態に係る、マスク設計に使用されるニューラルネットワークのアーキテクチャを示す。図14に示すように、ニューラルネットワーク410は多層接続ニューラルネットワーク、例えば多層パーセプトロンである。ニューラルネットワークは、入力層1410と、1つまたは複数の隠れ層1420と、出力層1430とを含む。この実施形態は、生成されるマスク設計の幾何形状タイプごとに異なるニューラルネットワークを使用する。例えば、あるニューラルネットワークは、主特徴を生成するために使用されるオフセット距離を出力してもよく、別のニューラルネットワークは補助特徴を生成するために使用されるオフセット距離を出力し、別のニューラルネットワークは目標最適化に使用されるオフセット距離を出力する。
【0051】
図15は、ある実施形態に係る、マスク設計に使用される複数の出力1510を有するニューラルネットワークのアーキテクチャを示す。この実施形態では、同じニューラルネットワークが、生成されるマスク設計の幾何形状タイプごとに1つの、複数の出力1510を生成する。したがって、ニューラルネットワークは、主特徴を生成するために使用されるオフセット距離を表すある出力、補助特徴を生成するために使用されるオフセット距離を表す別の出力、および目標最適化に使用されるオフセット距離を表す別の出力を生成し得る。
【0052】
図16は、ある実施形態に係る、マスク設計に使用される別のニューラルネットワークへの入力を提供するニューラルネットワークのアーキテクチャを示す。例えば、ニューラルネットワーク1610は、目標最適化に使用されるオフセット距離を出力する。目標最適化の結果は、主特徴および補助特徴を生成するために使用されるオフセット距離を更に生成するニューラルネットワーク1620に入力として提供される。
【0053】
電子設計自動化プロセス
図17は、集積回路などの製品の設計、検証、および製造中に使用される、集積回路を表す設計データおよび命令を変換および検証するための、例示のプロセスのセット1700を示す。これらのプロセスの各々は、複数のモジュールまたは動作として構築され実現され得る。用語「EDA」は用語「電子設計自動化(Electronic Design Automation)」を意味する。これらのプロセスは、設計者が提供する情報を用いた製品アイデア1710の創出から始まり、情報はEDAプロセス1712のセットを使用する製品を作り出すように変換される。設計が最終決定されると設計はテープアウトされ1734、このとき集積回路用のアートワーク(例えば幾何学的パターン)がマスクセット製造用の製造設備に送られ、次いでこのマスクセットを使用して集積回路が製造される。テープアウト後、半導体ダイが製造され1736、パッケージングおよびアセンブリプロセス1738が実行されて、完成した集積回路1740が作り出される。
【0054】
回路または電子的構造の仕様は、低レベルのトランジスタ材料レイアウトから高レベルの記述言語にまでわたり得る。回路およびシステムを設計するために、VHDL、Verilog、SystemVerilog、SystemC、MyHDL、またはOpenVeraなどのハードウェア記述言語(「HDL」)を使用する高レベルの抽象化が使用され得る。HDL記述は、論理レベルのレジスタ転送レベル(「RTL」)記述、ゲートレベル記述、レイアウトレベル記述、またはマスクレベル記述に変換することができる。より抽象度の低い記述である低位抽象化レベルはそれぞれ、設計説明により有用な詳細を、例えば、その説明を含むモジュールに関するより多くの詳細を追加する。より抽象度の低い記述である低位抽象化レベルは、コンピュータによって生成できるか、設計ライブラリから導出できるか、または別の設計自動化プロセスによって作り出すことができる。より詳細な説明を記述するための低位抽象化レベル言語における仕様記述言語の例はSPICEであり、これは多くのアナログコンポーネントを有する回路の詳細な説明のために使用される。抽象化の各レベルにおける記述は、その層の対応するツール(例えば形式検証ツール)によって使用することが可能になる。設計プロセスは、図17に描かれているシークエンスを使用し得る。記載されるプロセスは、EDA製品(またはツール)によって実現され得る。
【0055】
システム設計1714において、製造される集積回路の機能性が記述される。設計は、例えば、電力消費、処理能力、面積(物理的面積および/またはコード行数)、ならびにコストの削減、等の、所望の特性に関して最適化され得る。タイプの異なるモジュールまたはコンポーネントへの設計のパーティショニングは、この段階で行うことができる。
【0056】
論理設計および機能検証1716において、回路中のモジュールまたはコンポーネントが1つまたは複数の記述言語で指定され、その仕様の機能正確度がチェックされる。例えば、回路のコンポーネントは、設計中の回路またはシステムの仕様の要件に適合する出力を生成するように検証され得る。機能検証は、シミュレータ、ならびにテストベンチ生成器、静的HDLチェッカ、および形式検証器(formal verifier)などの他のプログラムを使用し得る。いくつかの実施形態では、機能検証を速くするために、「エミュレータ」または「プロトタイピングシステム」と呼ばれる、コンポーネントの特別のシステムが使用される。
【0057】
試験用の合成および設計1718において、HDLコードがネットリストに変換される。いくつかの実施形態では、ネットリストはグラフ構造であってもよく、この場合、グラフ構造のエッジは回路のコンポーネントを表し、またこの場合、グラフ構造のノードはコンポーネントの相互接続の様式を表す。HDLコードおよびネットリストはいずれも、集積回路が指定された設計に準じた性能を発揮することを製造時に検証するためにEDA製品が使用できる、階層的な製品である。ネットリストは標的半導体製造技術に最適化され得る。更に、完成した集積回路を試験して、集積回路が仕様の要件を満たすことを検証してもよい。
【0058】
ネットリスト検証1720において、ネットリストは、タイミング制約への準拠に関して、およびHDLコードとの対応に関してチェックされる。設計計画1722において、集積回路用の全体フロアプランが構築され、タイミングおよびトップレベルルーティングについて分析が行われる。
【0059】
レイアウトまたは物理的実装1724において、物理的配置(トランジスタまたはコンデンサなどの回路コンポーネントの位置決め)およびルーティング(複数の導体による回路コンポーネントの接続)が行われ、ライブラリから、特定の論理機能が実現されるようにセルの選択を行うことができる。本明細書で使用する場合、用語「セル」は、ブール論理機能(例えば、AND、OR、NOT、XOR)または記憶機能(例えば、フリップフロップもしくはラッチ)を提供する、トランジスタ、他のコンポーネント、および相互接続部のセットを指す。本明細書で使用する場合、回路「ブロック」は2つ以上のセルを指す場合がある。セルおよび回路ブロックの両方をモジュールまたはコンポーネントと呼ぶことができ、それらは物理的構造としておよびシミュレーションとしての両方で実現することができる。選択されたセルについてサイズなどのパラメータが(「標準セル」に基づいて)指定され、EDA製品が使用できるようにデータベースにおいてアクセス可能となる。
【0060】
分析および抽出1726において、回路機能がレイアウトレベルで検証され、このことによりレイアウト設計の改良が可能になる。物理的検証1728中に、DRC制約、電気的制約、リソグラフィ制約などの製造制約が適正であること、および、回路機能がHDL設計仕様に適合することを保証するために、レイアウト設計がチェックされる。分解能向上1730において、どのように回路設計が製造されるかを改善するべく、レイアウトの幾何形状が変形される。
【0061】
テープアウトにおいて、(可能であればリソグラフィの改善を適用してから)リソグラフィマスクの製作に使用されるデータが作り出される。マスクデータ準備1732中に、「テープアウト」データを使用してリソグラフィマスクが作り出され、これを使用して完成した集積回路が作り出される。
【0062】
本明細書に記載する一部または全てのEDA製品、ならびに、ライブラリ用のセルの開発のためにならびにそのライブラリを使用する物理および論理設計のために使用される製品によって使用される、プログラムおよびデータ構造を記憶するために、コンピュータシステム(例えば図1のマスク設計システム100)のストレージサブシステムが使用され得る。
【0063】
実施形態は、回路レイアウトを記憶する電子設計自動化プロセスの様々な段、例えば、レイアウトまたは物理的実装1724、分析および抽出1726、マスクデータ準備1732などにおいて、回路設計を処理するために使用できる。
【0064】
コンピュータアーキテクチャ
図18はコンピュータシステム1800の例示の機械を示し、ここにおいて、機械に本明細書で検討する方法論のうちのいずれか1つまたは複数を実行させるための命令のセットが実行され得る。代替の実装形態では、機械は、LAN、イントラネット、エクストラネット、および/またはインターネットにおいて、他の機械と接続(例えばネットワーク化)され得る。機械は、クライアントサーバネットワーク環境内のサーバまたはクライアントマシンの処理能力内で、ピアツーピア(もしくは分散型)ネットワーク環境内のピアマシンとして、またはクラウドコンピューティングインフラストラクチャもしくは環境内のサーバもしくはクライアントマシンとして、動作し得る。
【0065】
機械は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、ウェブ機器、サーバ、ネットワークルータ、スイッチもしくはブリッジ、または機械が行うべきアクションを指定する(連続的なもしくはそれ以外の)命令のセットを実行できる任意の機械であり得る。更に、単一の機械が示されているが、用語「機械」は、本明細書で検討する方法論のいずれか1つまたは複数を実行するための命令の1つのセット(または複数のセット)を個々にまたは連結されて実行する、機械の任意の集合を含むようにも解釈されるものとする。
【0066】
例示のコンピュータシステム1800は、処理デバイス1802と、メインメモリ1804(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ、同期DRAM(SDRAM)などのダイナミックランダムアクセスメモリ(DRAM)と、スタティックメモリ1806(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)、等)と、データ記憶デバイス1818と、を含み、これらはバス1830を介して互いに通信する。
【0067】
処理デバイス1802は、マイクロプロセッサ、中央処理装置、または類似のものなどの、1つまたは複数のプロセッサを表す。より詳細には、処理デバイスは、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実装するプロセッサ、または命令セットの組合せを実装するプロセッサであり得る。処理デバイス1802はまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、または類似のものなどの、1つまたは複数の専用処理デバイスであってもよい。処理デバイス1802は、本明細書に記載する動作およびステップを実行するための命令1826を実行するように構成され得る。
【0068】
コンピュータシステム1800は、ネットワーク1820を介して通信するためのネットワークインターフェースデバイス1808を更に含み得る。コンピュータシステム1800はまた、ビデオディスプレイユニット1810(例えば、液晶ディスプレイ(LCD)または陰極線管(CRT))、英数字入力デバイス1812(例えばキーボード)、カーソル制御デバイス1814(例えばマウス)、グラフィック処理ユニット1822、信号生成デバイス1816(例えばスピーカ)、グラフィック処理ユニット1822、ビデオ処理ユニット1828、およびオーディオ処理ユニット1832も含み得る。
【0069】
データ記憶デバイス1818は、1つもしくは複数の命令セット1826または本明細書に記載する方法論または機能のうちのいずれか1つもしくは複数を具現化するソフトウェアが記憶される、機械可読記憶媒体1824(非一時的コンピュータ可読媒体としても知られる)を含み得る。命令1826はまた、コンピュータシステム1800によるその実行中に、全部または少なくとも一部がメインメモリ1804内および/または処理デバイス1802内に存在してもよく、メインメモリ1804および処理デバイス1802は機械可読記憶媒体も構成している。
【0070】
いくつかの実装形態では、命令1826は、本開示に対応する機能性を実装するための命令を含む。機械可読記憶媒体1824は、ある例示の実装形態では単一の媒体であるものとして示されているが、用語「機械可読記憶媒体」は、1つまたは複数の命令セットを記憶する単一の媒体または複数の媒体(例えば、集中もしくは分散データベース、ならびに/または関連付けられたキャッシュおよびサーバ)を含むように解釈されるべきである。用語「機械可読記憶媒体」は、機械によって実行される命令のセットの記憶または符号化が可能であり、機械および処理デバイス1802に本開示の方法論のうちのいずれか1つまたは複数を実行させる、任意の媒体を含むようにも解釈されるものとする。用語「機械可読媒体」はしたがって、限定するものではないが、ソリッドステートメモリ、光学媒体、および磁気媒体を含むように解釈されるものとする。
【0071】
前述した詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する動作のアルゴリズムおよびシンボル表現の観点から提示されている。アルゴリズムに基づくこれらの記述および表現は、データ処理技術の当業者が自身の取り組みの本質を他の当業者に最も効果的に伝えるために使用する方法である。アルゴリズムとは所望の結果をもたらす一連の動作であり得る。動作は物理量の物理的操作を要求するものである。そのような量は、記憶、結合、比較、およびそれ以外の操作が可能な電気または磁気信号の形態をとり得る。そのような信号は、ビット、値、要素、シンボル、文字、項、数字などと呼ばれる場合がある。
【0072】
これらの用語および類似の用語は、適切な物理量と関連付けられることになるが、これらの量に適用される便宜上のラベルに過ぎないことを念頭におくべきである。そうではないと明確に述べられていない限り、本開示から明らかなように、説明の全体を通して、特定の用語は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表現されるデータおよびメモリを、コンピュータシステムのメモリまたはレジスタまたは他のそのような情報記憶デバイス内の物理量として同様に表現される他のデータへと操作および変換する、コンピュータシステムまたは類似の電子演算デバイスのアクションおよびプロセスに言及していることが諒解される。
【0073】
本開示はまた、本明細書中の動作を実行するための装置にも関する。この装置は、意図する目的に合わせて特別に構築されてもよく、または、コンピュータに保存されたコンピュータプログラムによって選択的に起動もしくは構成変更されるコンピュータを含み得る。かかるコンピュータプログラムは、限定するものではないが、フロッピーディスク、光学ディスク、CD-ROM、および磁気光学ディスクを含む、任意のタイプのディスク、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カードもしくは光学カード、または電子的命令を保存するのに好適な任意のタイプの媒体などの、コンピュータ可読記憶媒体に保存することができ、いずれもコンピュータシステムのバスに結合される。
【0074】
本明細書に提示するアルゴリズムおよびディスプレイは、どのような特定のコンピュータまたは他の装置とも本来的な関連を有さない。本明細書の教示に従って様々な他のシステムをプログラムと一緒に使用してもよく、または、方法の実行により特化した装置を構築するのが便利な場合もある。更に、本開示は、記載にあたってどのような特定のプログラミング言語にも準拠していない。本明細書に記載する開示の教示を実装するために、様々なプログラム原語を使用できることが諒解されるであろう。
【0075】
本開示は、コンピュータシステム(または他の電子デバイス)を本開示に係るプロセスを実行するようプログラムするために使用され得る命令を記憶している機械可読媒体を含み得る、コンピュータプログラム製品またはソフトウェアとして提供され得る。機械可読媒体は、機械(例えばコンピュータ)によって読み取り可能な形態で情報を記憶するための任意の機構を含む。例えば、機械可読(例えばコンピュータ可読)媒体は、例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、等の、機械(例えばコンピュータ)可読記憶媒体を含む。
【0076】
上記の開示においては、当該開示の実装についてその具体的な例示の実装形態を参照して記載されている。ただしそれらに対して、以下の特許請求の範囲に記載されている本開示の実装のより広い趣旨および範囲から逸脱することなく、様々な修正を行えることは明白であろう。本開示が一部の単数時制(singular tense)の要素に言及するとき、図には2つ以上の要素が描かれている場合があり、同様の要素には同様の数字が標示される。本開示および図面はしたがって、限定的な意味ではなく例示的な意味において検討されるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18