理解を容易にするために、可能な場合、図に共通する同一の要素を示すために同一の参照番号が使用されてきた。一実施形態で開示される要素は、特定の記述なしに他の実施形態で有益に利用され得ることが企図される。
製造プロセスは複雑であり得、最終製品が製造されるまで異なるプロセスステーション(または「ステーション」)によって処理される原材料を含むことができる。いくつかの実施形態では、各プロセスステーションは、処理のための入力を受け取り、追加の処理のために次の(下流の)プロセスステーションに渡され得る中間出力を出力し得る。いくつかの実施形態では、最終プロセスステーションは、処理のための入力を受け取り、最終製品、またはより一般的には最終出力を出力することができる。
いくつかの実施形態では、各ステーションは、一連のプロセス工程を実行することができる1つまたは複数のツール/機器を含むことができる。例示的なプロセスステーションは、以下に限定されないが、コンベヤベルト、射出成形プレス、切断機、ダイスタンピングマシン、押出機、コンピュータ数値制御(CNC)ミル、グラインダ、組立ステーション、3次元プリンタ、品質管理ステーション、検証ステーションなどを含み得る。
いくつかの実施形態では、各プロセスステーションの動作は、1つまたは複数のプロセスコントローラによって制御され得る。いくつかの実施形態では、各プロセスステーションは、プロセスステーションの動作を制御するようにプログラムされ得る1つまたは複数のプロセスコントローラを含み得る。いくつかの実施形態では、オペレータまたは制御アルゴリズムは、各制御値について、所望の値または値の範囲を表すことができるステーションコントローラ設定値をステーションコントローラに提供することができる。いくつかの実施形態では、製造プロセスにおけるフィードバックまたはフィードフォワードに使用される値は、制御値と呼ばれることがある。例示的な制御値には、速度、温度、圧力、真空、回転、電流、電圧、電力、粘度、ステーションで使用される材料/資源、スループット率、停止時間、有害ガスなどが含まれ得るが、これらに限定されない。
本明細書で説明される1つまたは複数の技術は、一般に、多工程製造プロセスの各工程を監視するように構成された監視プラットフォームに関する。多工程製造プロセスの各工程について、監視プラットフォームは製品の進捗状況を監視し、製品の現在の状態が最終製品に関連付けられた最終品質基準にどのように影響するかを決定できる。一般に、最終品質基準は、多工程製造プロセスの各工程で測定できない測定基準である。例示的な最終品質基準には、引張強度、硬度、最終製品の熱特性などが含まれ得るが、これらに限定されない。引張強度などの特定の最終品質基準では、破壊試験を使用してそのような測定基準を測定する。
本明細書で説明される1つまたは複数の技術は、1つまたは複数の人工知能技術を使用して、多工程製造プロセスの各工程で最終品質基準を予測することができる。例えば、本明細書で説明される1つまたは複数の技術は、1つまたは複数の強化アルゴリズムを活用して、多工程製造プロセスの特定の工程での製品の状態に基づいて最終品質基準を予測することができる。
物理的環境への強化学習の適用は、些細な作業ではない。一般に、強化学習は、他のタイプの機械学習技術ほど、実際の物理的な環境を助長するものではない。これは、予測モデルをトレーニングするために通常必要とされる多数のトレーニング例に起因し得る。物理的な環境では、物理的な製品の製造にかかるコストと時間のために、必要な数のトレーニング例を生成することが難しい場合がある。この制限を説明するために、本明細書で提供される1つまたは複数の技術は、モデルフリー強化学習技術を活用することができ、これにより、予測モデルは、通過するときに環境を学習することができる。これは、最適なアクションを予測するために必要な測定が少ないため、物理的な測定に適している。
図1は、例示的な実施形態による、製造環境100を示すブロック図である。製造環境100は、製造システム102、監視プラットフォーム104、および制御モジュール106を含み得る。製造システム102は、多工程製造システムを広く表すことができる。いくつかの実施形態では、製造システム102は、積層製造で使用するための製造システム(例えば、3D印刷システム)を表すことができる。いくつかの実施形態では、製造システム102は、減算製造(例えば、CNC機械加工)で使用するための製造システムを表すことができる。いくつかの実施形態では、製造システム102は、積層製造と減算製造の組み合わせで使用するための製造システムを表すことができる。より一般的には、いくつかの実施形態では、製造システム102は、一般的な製造プロセスで使用するための製造システムを表すことができる。
製造システム102は、1つまたは複数のステーション1081~108n(一般に、「ステーション108」)を含み得る。各ステーション108は、多工程製造プロセスにおける工程および/またはステーションを表すことができる。例えば、各ステーション108は、3D印刷プロセスにおける層堆積動作を表すことができる(例えば、ステーション1081は、層1に対応し得、ステーション1082は、層2に対応し得る、等々)。別の例では、各ステーション108は、特定の処理ステーションに対応することができる。
各ステーション108は、プロセスコントローラ114および制御論理116を含み得る。各プロセスコントローラ1411~114nは、各々それぞれのステーション108の動作を制御するようにプログラムされ得る。いくつかの実施形態では、制御モジュール106は、各制御値について、所望の値または値の範囲を表すことができるステーションコントローラ設定値を各プロセスコントローラ114に提供することができる。制御論理116は、ステーション108のプロセス工程に関連する属性/パラメータを参照することができる。動作中、各ステーション108の制御論理116は、最終品質基準の現在の軌道に応じて、制御モジュール106によって製造プロセス全体を通して動的に更新され得る。
監視プラットフォーム104は、製造システム102の各ステーション108を監視するように構成され得る。いくつかの実施形態では、監視プラットフォーム104は、製造システム102の構成要素であり得る。例えば、監視プラットフォーム104は、3D印刷システムの構成要素であり得る。いくつかの実施形態では、監視プラットフォーム104は、製造システム102から独立していてもよい。例えば、監視プラットフォーム104は、既存の製造システム102に後付けすることができる。いくつかの実施形態では、監視プラットフォーム104は、多工程プロセスの各工程で製品の画像を取得するように構成された画像化デバイスを表すことができる。例えば、監視プラットフォーム104は、各ステーション108で製品の画像を取得するように構成され得る。一般に、監視プラットフォーム104は、製品の製造に関連する情報(例えば、画像、電圧読み取り、速度読み取りなど)を取得し、その情報を入力として、評価のために制御モジュール106に提供するように構成され得る。
制御モジュール106は、1つまたは複数の通信チャネルを介して製造システム102および監視プラットフォーム104と通信することができる。いくつかの実施形態では、1つまたは複数の通信チャネルは、セルラーネットワークまたはWi-Fiネットワークなどのインターネットを介した個々の接続を表すことができる。いくつかの実施形態では、1つまたは複数の通信チャネルは、直接接続を使用して端末、サービス、およびモバイルデバイスを接続することができ、例えば、無線周波数識別(RFID)、近距離無線通信(NFC)、ブルートゥース(商標)、低エネルギーブルートゥース(商標)(BLE)、Wi-Fi(商標)、ZigBee(商標)、周囲後方散乱通信(ABC)プロトコル、USB、WAN、またはLANなどである。
制御モジュール106は、製造システム102の各プロセスコントローラを制御するように構成され得る。例えば、監視プラットフォーム104によって取得された情報に基づいて、制御モジュール106は、特定のステーション108に関連するプロセス制御を調整するように構成され得る。いくつかの実施形態では、制御モジュール106は、予測される最終品質基準に基づいて特定のステーション108のプロセス制御を調整するように構成され得る。
制御モジュール106は、予測エンジン112を含み得る。予測エンジン112は、多工程製造プロセスの個々の工程ごとの測定データに基づいて製品の最終品質基準を予測するようにトレーニングされた1つまたは複数の機械学習モジュールを表すことができる。動作中、制御モジュール106は、監視プラットフォーム104からの入力を受け取ることができる。いくつかの実施形態では、そのような入力は、多工程製造プロセスの工程に続く製品の現在の状態の画像の形を取ることができる。入力に基づいて、制御モジュール106は、製品の最終品質基準を予測することができる。製品の予測される最終品質基準に応じて、制御モジュール106は、次の製造工程で取るべき1つまたは複数のアクションを決定することができる。例えば、予測される最終品質基準が許容値の範囲外にある場合、制御モジュール106は、製造プロセスを修正するために1つまたは複数のアクションを実行することができる。いくつかの実施形態では、制御モジュール106は、次のステーション108のステーションコントローラとインターフェースして、それぞれの制御および/またはステーションパラメータを調整することができる。これらの調整は、最終品質基準が許容可能な品質基準の範囲内になるように、製造プロセスの修正に役立ち得る。
図2は、例示的な実施形態による、予測エンジン112を示すブロック図である。図示のように、予測エンジン112は、故障分類器202、状態オートエンコーダ204、および修正エージェント206を含み得る。故障分類器202、状態オートエンコーダ204、および修正エージェント206のそれぞれは、1つまたは複数のソフトウェアモジュールを含むことができる。1つまたは複数のソフトウェアモジュールは、1つまたは複数のアルゴリズム工程を実装する一連の機械命令(例えば、プログラムコード)を表す、媒体(例えば、制御モジュール106に関連するコンピューティングシステムのメモリ)に記憶されたコードまたは命令のコレクションであり得る。そのような機械命令は、プロセッサが命令を実装するために解釈する実際のコンピュータコードであり得るか、あるいは、実際のコンピュータコードを取得するために解釈される命令のより高いレベルのコーディングであり得る。1つまたは複数のソフトウェアモジュールはまた、1つまたは複数のハードウェア構成要素を含み得る。例示的なアルゴリズムの1つまたは複数の態様は、命令の結果としてではなく、ハードウェア構成要素(例えば、回路)自体によって実行され得る。さらに、いくつかの実施形態では、故障分類器202、状態オートエンコーダ204、および修正エージェント206のそれぞれは、構成要素間で1つまたは複数の信号を送信するように構成され得る。そのような実施形態では、そのような信号は、コンピューティングデバイスによって実行される機械命令に限定されない場合がある。
いくつかの実施形態では、故障分類器202、状態オートエンコーダ204、および修正エージェント206は、1つまたは複数のローカルネットワーク205を介して通信することができる。ネットワーク205は、セルラーネットワークまたはWi-Fiネットワークなどのインターネットを介した個々の接続を含む、任意の適切なタイプのものであり得る。いくつかの実施形態では、ネットワーク205は、無線周波数識別(RFID)、近距離無線通信(NFC)、ブルートゥース(商標)、低エネルギーブルートゥース(BLE)、Wi-Fi(商標)、ZigBee(商標)、周囲後方散乱通信(ABC)プロトコル、USB、WAN、またはLANなどの直接接続を使用して端末、サービス、およびモバイルデバイスを接続することができる。送信される情報は個人情報または機密情報である可能性があるため、セキュリティ上の懸念から、これらのタイプの接続の1つまたは複数を暗号化またはその他の方法で保護する必要がある。しかしながら、いくつかの実施形態では、送信される情報は個人的ではない可能性があり、したがって、ネットワーク接続は、セキュリティよりも利便性のために選択され得る。
故障分類器202は、製造技術に対する修正措置が可能であるかどうかを決定するように構成され得る。例えば、故障分類器202は、入力として、監視プラットフォーム104からの入力を受け取ることができる。入力に基づいて、故障分類器202は、回復不能な故障が存在するかどうかを決定することができる。3D印刷の分野で特定の例を使用すると、3Dプリンタのヒートベッドから部品が外れたり、フィーダーギアが表面をつかむことができないほどフィラメントが削られたりすると、層は本質的に誤って印刷される。次の層にプラスチックをいくらでも堆積しても、印刷の最終形状に影響を与えないため、これは通常、回復不可能な故障である。このように、故障は、現在の活性層が印刷できない標本として分類される。これらの状況を修正するための1つのアプローチは、故障が検出された領域の印刷を停止して、追加の未溶融プラスチックが他の標本に影響を与えず、故障がバッチ故障にカスケードされないようにすることである。
いくつかの実施形態では、故障分類器202は、回復不能な故障がいつ存在するかを識別するようにトレーニングされた畳み込みニューラルネットワーク(CNN)212を含み得る。いくつかの実施形態では、CNN212は、特徴学習のための3つの畳み込み/最大プーリング層、続いてドロップアウトを伴う完全接続ネットワーク、および二項分類を実行するソフト最大活性化を含み得る。いくつかの実施形態では、CNN212は、監視プラットフォーム104からの入力として、製造工程の開始前に製品の画像を受信することができる。画像に基づいて、CNN212は、回復不能な故障が存在するかどうかを示すバイナリ出力(例えば、故障したか故障していないか)を生成するように構成することができる。
いくつかの実施形態では、CNN212は、以下のクラスでトレーニングされ得る-故障した、または故障しなかった。トレーニングセットには、故障した製品の機能と故障していない製品の機能を含む製品の様々な画像が含まれ得る。いくつかの実施形態では、トレーニングセットは、各クラスの数千の例を含み得る。3D印刷の分野で特定の例を使用して、Y(例えば、500)層を含むファイルされた印刷には、印刷可能な層を表すNの例と、失敗のY-Nの例が含まれ得るため、トレーニングセットには、各分類の適切な数のインスタンスが含まれ得、Nは印刷不良の層を表し得る。いくつかの実施形態では、所与のバッチは、印刷された12個の標本を含み得、バッチあたり合計6000枚の画像を含む。トレーニング画像の大規模なセットは、関心のある個々の領域で印刷不良の層を視覚的に識別し、それに応じてデータセットを分割することを含むラベル付けで収集できる。
状態オートエンコーダ204は、製品が故障していないと故障分類器202によって決定されると、特定の製品の状態符号化(a state encoding)を生成するように構成され得る。例えば、状態オートエンコーダ204は、エージェントが行動するための状態を生成するように構成され得る。いくつかの実施形態では、状態オートエンコーダ204は、エージェントが行動するための状態を生成するために、トレーニングされたユーザの教師なし方法であり得る。
図3は、例示的な実施形態による、状態オートエンコーダ204のアーキテクチャを示すブロック図である。示されるように、状態オートエンコーダ204は、エンコーダ部分302およびデコーダ部分304を含み得る。エンコーダ部分302およびデコーダ部分304は、それら自体のミラードバージョンであり得る。これにより、画像のコア構成要素を表すことができる任意の次元に情報を減らすように重みをトレーニングすることができる。
示されるように、エンコーダ部分302は、画像306、1つまたは複数の畳み込み層308、プーリング層310、および1つまたは複数の完全に接続された層312を含み得る。いくつかの実施形態では、画像306は、標的製品または標本の監視プラットフォーム104から受信された入力画像を表すことができる。いくつかの実施形態では、1つまたは複数の畳み込み層308は、いくつかの畳み込み層を表すことができ、各畳み込み層は、入力画像に存在する特定の特徴を識別するように構成される。1つまたは複数の畳み込み層308を通過した後、1つまたは複数の畳み込み層308からの出力は、プーリング層310に提供され得る。プーリング層310は、画像の全体的なサイズを縮小するように構成することができる。プーリング層310の出力は、1つまたは複数の完全に接続された層312に提供され得る。いくつかの実施形態では、1つまたは複数の完全に接続された層312は、いくつかの完全に接続された層312を表し得る。1つまたは複数の完全に接続された層312は、出力として、修正エージェント206の状態定義として使用され得る特徴ベクトル314を生成することができる。特徴ベクトル314は、標的標本(例えば、標本の画像)の1つまたは複数の高次元特徴の符号化された低次元表現であり得る。符号化された特徴ベクトル314は、固定次元の潜在変数であり得る。特徴ベクトル314の次元は、符号化された潜在空間における高次元の特徴を最もよく表すために、ニューラルネットワーク設計プロセスの一部として選択され得る。
デコーダ部分304は、エンコーダ部分302によって生成された出力から入力画像を再構成するように構成され得る。デコーダ部分304は、1つまたは複数の完全に接続された層316、1つまたは複数のアップサンプリング層318、1つまたは複数のデコンボリューション層320、および1つまたは複数の画像322を含み得る。1つまたは複数の完全に接続された層316は、1つまたは複数の完全に接続された層312からの入力を受け取ることができる。例えば、1つまたは複数の完全に接続された層316は、エンコーダ部分302から、入力としてスケール除去された画像データを受け取ることができる。完全に接続された層316は、1つまたは複数のアップサンプリング層318への入力を提供することができる。アップサンプリング層318は、完全に接続された層316によって提供される入力の寸法をアップサンプリングまたは増加させるように構成され得る。アップサンプリング層318は、アップサンプリングされた画像を1つまたは複数のデコンボリューション層320に提供して、1つまたは複数の画像322を生成することができる。
図2に戻り参照すると、状態オートエンコーダ204によって生成された特徴ベクトルは、修正エージェント206への入力として提供され得る。修正エージェント206は、製品の現在の状態に基づいて製品の最終品質基準を予測し、予測された最終品質基準が許容値の範囲内にないと仮定して、取るべき1つまたは複数の修正措置(corrective actions)を識別するように構成され得る。
図4は、例示的な実施形態による、修正エージェント206のアクタークリティックパラダイムのアーキテクチャを示すブロック図である。示されるように、修正エージェント206は、現在の状態402、アクターネットワーク(「アクター」)404、およびクリティックネットワーク(「クリティック」)406を含み得る。現在の状態402は、状態オートエンコーダ204によって生成された特徴ベクトル314を表すことができる。例えば、修正エージェント206は、特徴ベクトル314を受信し、並行して、それを2つの別個のネットワーク(アクター404およびクリティック406)への入力として使用することができる。
アクター404は、所与の状態定義に基づいて取られるべき修正措置の予測を生成するように構成され得る。例えば、特徴ベクトル314に基づいて、アクター404は、最終品質基準に基づいて取られるべき1つまたは複数の修正措置を生成するように構成され得る。いくつかの実施形態では、取られる許容可能なアクションのセットは、ユーザによって事前に設定され得る。例えば、3D印刷の場合、取られる許容可能なアクションのセットには、押し出されたプラスチックの長さの変更や、押出機ヘッドの速度の変更が含まれ得る。これらのアクションが選択されたのは、通常、3D印刷プロセスのすべての印刷移動に含まれ、命令ごとに押し出されるプラスチックの量と、印刷ヘッドの移動速度を決定するためである。両方の変数は、押し出しプロセスの精度に関連している。
示されるように、アクター404は、1つまたは複数の完全に接続された層408、412、および1つまたは複数の活性化関数410、414を含み得る。いくつかの実施形態では、活性化関数410および414は、双曲線tan(tanh)活性化関数であり得る。出力として、アクター404は、特徴ベクトル314によって定義されるように、製品の現在の状態に基づいて取られるアクションのセット(例えば、報酬セット416)を生成するように構成され得る。
クリティック406は、アクター404と同様のアーキテクチャを含み得る。例えば、クリティック406は、同様の1つまたは複数の完全に接続された層418、422、および同様の1つまたは複数の活性化関数420、424を含み得る。アクター404とクリティック406の同一の入力の性質は、適切な変換に、連結までアクター404とクリティック406の両方の同一のネットワークアーキテクチャが含まれることを示唆している可能性がある。アクター404とクリティック406の両方のアーキテクチャはそれに応じて設計することができる。アクター404とクリティック406の両方に同様のアーキテクチャを採用することで、設計プロセスを単純、高速、およびデバッグしやすくすることができる。いくつかの実施形態では、次のネットワーク層のサイズおよび形状は、その連結に依存し得る。1つまたは複数の完全に接続された層418、422からの出力は、アクター404によって生成されたアクションのセット(例えば、報酬セット416)とマージされ得る(例えば、マージ426)。クリティック406は、アクションのセットを使用して、完全に接続された層428および活性化関数430を使用して、アクションの軌道にわたって品質の予測(例えば、予測432)を行うことができる。
図2に戻ると、予測エンジン112はデータベース208と通信し得る。データベース208は、1つまたは複数の以前の経験210を記憶することができる。以前の経験210は、所与の状態ベクトルに対して取られた推奨されるアクション、およびそれらの推奨されるアクションの結果としての対応する最終品質基準を表すことができる。このようにして、予測エンジン112は、許容可能な最終品質基準の範囲内にある最終品質基準をもたらす、製品の所与の状態に対して取るべきアクションを学習するために、そのパラメータを絶えず調整することができる。
図5は、例示的な実施形態による、実行中の多工程製造プロセスを修正する方法500を示す流れ図である。方法500は、工程502で開始することができる。
工程502において、標準的な命令セットが製造システム102に提供され得る。標準的な命令セットは、製造プロセスの命令のセットを表し得る。いくつかの実施形態では、標準的な命令セットが各ステーション108に提供され得る。そのような実施形態では、各標準的な命令セットは、それぞれのステーション108に対応する特定の製造工程の処理パラメータを指示することができる。
工程504において、制御モジュール106は、製造システム102が最終状態にあるかどうかを決定することができる。言い換えれば、制御モジュール106は、製造システム102が目標製品の完成を完了したかどうかを決定することができる。制御モジュール106が、製造システム102が最終状態にある(すなわち、製品が製造された)と決定した場合、方法500は終了し得る。しかしながら、制御モジュール106が、製造システム102が最終状態にないと決定した場合、方法500は、工程506に進むことができる。
工程506において、修正措置が所与の製造工程に適用され得る。例えば、修正エージェント206によって生成された予測に基づいて、制御モジュール106は、適用される修正措置に対応する1つまたは複数の処理パラメータを調整するように所与のステーション108に指示することができる。いくつかの実施形態では、工程506は、製品が第1の処理工程を受けている状況、または修正エージェント206が修正されたアクションが必要でないと決定した場合など、任意選択であり得る。
工程508で、予測エンジン112は、処理工程の終わりに製品を検査することができる。例えば、予測エンジン112は、監視プラットフォーム104からの特定の処理工程の終わりに、製品の入力(例えば、1つまたは複数の画像)を受け取ることができる。入力を使用して、故障分類器202は、回復不能な故障が存在するかどうかを決定することができる。例えば、故障分類器202は、回復不能な故障が存在するかどうかを決定するために画像の様々な特徴を識別するようにトレーニングされたCNN212に画像を提供することができる。
工程510において、予測エンジン112は、故障が存在するかどうかを決定することができる。工程510で、予測エンジン112が回復不能な故障が存在すると決定した場合、製造プロセスは終了し得る。しかしながら、工程510で、予測エンジン112が回復不能な故障が存在しないと決定した場合、方法500は工程514に進むことができる。
工程514で、予測エンジン112は、特定の処理工程のための状態符号化を生成することができる。例えば、状態オートエンコーダ204は、製品が故障していないと故障分類器202によって決定されると、製造工程のための状態符号化を生成するように構成され得る。状態オートエンコーダ204は、監視プラットフォーム104によって取得された受信入力(例えば、製品の1つまたは複数の画像)に基づいて状態符号化を生成することができる。
工程516で、予測エンジン112は、入力および状態符号化に基づいて、次のステーションで取られるべき修正措置を決定することができる。例えば、修正エージェント206は、製品の現在の状態に基づいて製品の最終品質基準を予測し、予測された最終品質基準が許容値の範囲内にないと仮定して、取るべき1つまたは複数の修正措置を識別するように構成され得る。予測エンジン112は、次の処理工程に対応するそれぞれのプロセスコントローラ114に修正措置を送信することができる。
工程516に続いて、方法500は工程504に戻ることができ、制御モジュール106は、製造システム102が最終状態にあるかどうかを決定することができる。制御モジュール106が、製造システム102が最終状態にある(すなわち、製品が製造された)と決定した場合、方法500は終了する。しかしながら、制御モジュール106が、製造システム102が最終状態にないと決定した場合、方法500は、工程506に進むことができる。
工程506において、修正措置が所与の製造工程に適用され得る。例えば、工程516で修正エージェント206によって生成された予測に基づいて、制御モジュール106は、適用される修正措置に対応する1つまたは複数の処理パラメータを調整するように所与のステーション108に指示することができる。
以下のプロセスは、制御モジュール106が製造システム102が最終状態にあると決定するまで繰り返され得る。
図6Aは、例示的な実施形態による、システムバスコンピューティングシステムアーキテクチャ600を示している。システム600の1つまたは複数の構成要素は、バス605を使用して互いに電気的に通信していてもよい。システム600は、プロセッサ(例えば、1つまたは複数のCPU、GPUまたは他のタイプのプロセッサ)610と、読み取り専用メモリ(ROM)620およびランダムアクセスメモリ(RAM)625などのシステムメモリ615を含む様々なシステム構成要素をプロセッサ610に結合するシステムバス605とを含み得る。システム600は、プロセッサ610に直接接続されているか、近接しているか、またはプロセッサ610の一部として統合されている高速メモリのキャッシュを含むことができる。システム600は、プロセッサ610による迅速なアクセスのために、メモリ615および/またはストレージデバイス630からキャッシュ612にデータをコピーすることができる。このようにして、キャッシュ612は、データを待機している間のプロセッサ610の遅延を回避する性能の向上を提供することができる。これらおよび他のモジュールは、プロセッサ610を制御するか、または制御して様々なアクションを実行するように構成することができる。他のシステムメモリ615も同様に使用可能であり得る。メモリ615は、異なる性能特性を備えた複数の異なるタイプのメモリを含み得る。プロセッサ610は、単一のプロセッサまたは複数のプロセッサを表すことができる。プロセッサ610は、プロセッサ610およびソフトウェア命令が実際のプロセッサ設計に組み込まれている専用プロセッサを制御するように構成された、ストレージデバイス630に記憶されたサービス1 632、サービス2 634、およびサービス3 636などの汎用プロセッサまたはハードウェアモジュールまたはソフトウェアモジュールのうちの1つまたは複数を含むことができる。プロセッサ610は、本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全に自己完結型のコンピューティングシステムであり得る。マルチコアプロセッサは、対称または非対称であり得る。
コンピューティングデバイス600とのユーザ相互作用を可能にするために、入力デバイス645は、音声用のマイクロフォン、ジェスチャまたはグラフィック入力用のタッチセンシティブスクリーン、キーボード、マウス、モーション入力、音声などの任意の数の入力メカニズムであり得る。出力デバイス635はまた、当業者に知られているいくつかの出力機構のうちの1つまたは複数であり得る。場合によっては、マルチモーダルシステムは、ユーザがコンピューティングデバイス600と通信するために複数のタイプの入力を提供することを可能にすることができる。通信インターフェース640は、一般に、ユーザ入力およびシステム出力を運営および管理することができる。特定のハードウェア構成での動作に制限はない。したがって、ここでの基本機能は、開発時に改善されたハードウェアまたはファームウェア構成に簡単に置き換えることができる。
ストレージデバイス630は、不揮発性メモリであり得るか、ハードディスクまたは、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)625、読み取り専用メモリ(ROM)620、およびそれらのハイブリッドなどの、コンピュータによってアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体であり得る。
ストレージデバイス630は、プロセッサ610を制御するためのサービス632、634、および636を含むことができる。他のハードウェアまたはソフトウェアモジュールが企図されている。ストレージデバイス630は、システムバス605に接続することができる。一態様では、特定の機能を実行するハードウェアモジュールは、機能を実行するために必要なハードウェア構成要素(プロセッサ610、バス605、ディスプレイ635など)に関連してコンピュータ可読媒体に記憶されたソフトウェア構成要素を含むことができる。
図6Bは、例示的な実施形態による、チップセットアーキテクチャを有するコンピュータシステム650を示している。コンピュータシステム650は、開示された技術を実装するために使用することができるコンピュータハードウェア、ソフトウェア、およびファームウェアの一例であり得る。システム650は、識別された計算を実行するように構成されたソフトウェア、ファームウェア、およびハードウェアを実行することができる任意の数の物理的および/または論理的に異なるリソースを表す1つまたは複数のプロセッサ655を含むことができる。1つまたは複数のプロセッサ655は、1つまたは複数のプロセッサ655への入力および1つまたは複数のプロセッサ655からの出力を制御することができるチップセット660と通信することができる。この例では、チップセット660は、情報をディスプレイなどの出力665に出力し、例えば、磁気媒体および固体媒体を含むことができるストレージデバイス670に対して情報を読み書きすることができる。チップセット660は、RAM675との間でデータの読み取りと書き込みを行うこともできる。チップセット660とインターフェースするために、様々なユーザインターフェース構成要素685とインターフェースするためのブリッジ680を提供することができる。そのようなユーザインターフェース構成要素685は、キーボード、マイクロフォン、タッチ検出および処理回路、マウスなどのポインティングデバイスなどを含むことができる。一般に、システム650への入力は、機械によって生成された、および/または人間によって生成された、様々なソースのいずれかから来ることができる。
チップセット660はまた、異なる物理的インターフェースを有することができる1つまたは複数の通信インターフェース690とインターフェースすることができる。このような通信インターフェースには、有線および無線のローカルエリアネットワーク、ブロードバンドワイヤレスネットワーク、およびパーソナルエリアネットワークのインターフェースを含めることができる。本明細書に開示されるGUIを生成、表示、および使用するための方法のいくつかの用途は、物理インターフェースを介して順序付けられたデータセットを受信することを含むことができ、またはストレージ670もしくは675に記憶されたデータを分析する1つもしくは複数のプロセッサ655によってマシン自体によって生成され得る。さらに、マシンは、ユーザインターフェース構成要素685を介してユーザから入力を受け取り、1つまたは複数のプロセッサ655を使用してこれらの入力を解釈することによってブラウジング機能などの適切な機能を実行することができる。
例示的なシステム600および650は、複数のプロセッサ610を有することができるか、またはより大きな処理能力を提供するために一緒にネットワーク化されたコンピューティングデバイスのグループまたはクラスタの一部であり得ることが理解され得る。
上記は本明細書に記載の実施形態に向けられているが、他のさらなる実施形態は、その基本的な範囲から逸脱することなく考案され得る。例えば、本開示の態様は、ハードウェアまたはソフトウェア、あるいはハードウェアとソフトウェアの組み合わせで実装され得る。本明細書で説明される一実施形態は、コンピュータシステムで使用するためのプログラム製品として実装され得る。プログラム製品のプログラムは、実施形態の機能(本明細書に記載の方法を含む)を定義し、様々なコンピュータ可読記憶媒体に含めることができる。例示的なコンピュータ可読記憶媒体には、以下が含まれるが、これらに限定されない。(i)情報が永続的に保存される書き込み不可能な記憶媒体(例えば、CD-ROMドライブによって読み取り可能なCD-ROMディスク、フラッシュメモリ、ROMチップ、または任意のタイプのソリッドステート不揮発性メモリなどのコンピュータ内の読み取り専用メモリ(ROM)デバイス)、(ii)変更可能な情報が記憶される書き込み可能な記憶媒体(例えば、ディスケットドライブもしくはハードディスクドライブ内のフロッピーディスク、または任意のタイプのソリッドステートランダムアクセスメモリ)。そのようなコンピュータ可読記憶媒体は、開示された実施形態の機能を指示するコンピュータ可読命令を運ぶ場合、本開示の実施形態である。
前述の実施例は例示的なものであり、限定的ではないことが当業者には理解されよう。明細書を読み、図面を研究すると、それらに対するすべての順列、拡張、同等物、および改善が当業者に明らかであり、本開示の真の趣旨および範囲に含まれることが意図されている。したがって、以下の添付の特許請求の範囲には、これらの教示の真の趣旨と範囲に含まれるすべてのそのような修正、順列、および同等物が含まれることが意図されている。