(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-13
(45)【発行日】2023-09-22
(54)【発明の名称】異種データのためのスケーラブル変換処理ユニット
(51)【国際特許分類】
G06F 8/34 20180101AFI20230914BHJP
G06F 8/35 20180101ALI20230914BHJP
【FI】
G06F8/34
G06F8/35
(21)【出願番号】P 2020567656
(86)(22)【出願日】2019-02-27
(86)【国際出願番号】 IB2019051577
(87)【国際公開番号】W WO2019166967
(87)【国際公開日】2019-09-06
【審査請求日】2022-02-25
(32)【優先日】2018-02-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520326507
【氏名又は名称】ゼタン・システムズ・インコーポレイテッド
【氏名又は名称原語表記】ZETANE SYSTEMS INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】エス・テ-アマン,パトリック
【審査官】小林 秀和
(56)【参考文献】
【文献】特開2012-014279(JP,A)
【文献】特開2008-098911(JP,A)
【文献】特開2003-223428(JP,A)
【文献】特開2000-090290(JP,A)
【文献】米国特許第05339265(US,A)
【文献】米国特許第07333114(US,B2)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/34
G06F 8/35
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
処理ユニットデバイスであって、
前記処理ユニットデバイスの動作を制御する少なくとも1つの制御ユニットと、
前記少なくとも1つの制御ユニットによって実行される変換に関連付けられる少なくとも1つの変換ブロックを含む変換論理ユニットであり、前記変換は、出力ユニバースに含まれる出力サイトフォームを含む出力サイトに適用されるエフェクトを含み、前記出力ユニバースは階層データ構造を含み、前記エフェクトは所与の階層データ部分構造における特性の変更に関連付けられており、前記少なくとも1つの変換ブロックの各々は、エフェクトブロックおよび出力サイトブロックを含み、前記エフェクトブロックは、前記エフェクトに関する情報を記憶するための少なくとも1つの第1の記憶ユニットを含み、前記出力サイトブロックは、前記出力サイトに関する情報を記憶するための少なくとも1つの第2の記憶ユニットを含む、変換論理ユニットと、
ユーザグラフィカルインターフェースを含む表示ユニットとを備え、前記ユーザグラフィカルインターフェースは、
前記出力ユニバースと、前記出力ユニバースに含まれる前記出力サイトフォームを含む前記出力サイトに適用される前記エフェクトとを表現するための第1のセクションと、
前記変換のグラフィック表現を表示するための第2のセクションとを含む、処理ユニットデバイス。
【請求項2】
前記少なくとも1つの制御ユニットは、前記変換のためのパラメータを定義する変換データを含むフォーム変換命令セットを使用してさらに前記変換を実行するように構成されている、請求項1に記載の処理ユニットデバイス。
【請求項3】
前記少なくとも1つの制御ユニットは、前記変換論理ユニットに含まれる、請求項1に記載の処理ユニットデバイス。
【請求項4】
前記少なくとも1つの制御ユニットは、前記少なくとも1つの変換ブロックのうちの1つに含まれる、請求項3に記載の処理ユニットデバイス。
【請求項5】
前記少なくとも1つの制御ユニットは複数の制御ユニットを含み、前記少なくとも1つの変換ブロックは複数の変換ブロックを含み、前記複数の制御ユニットの各々は前記複数の変換ブロックのうちのそれぞれの変換ブロックに含まれる、請求項4に記載の処理ユニットデバイス。
【請求項6】
前記少なくとも1つの制御ユニットは、前記エフェクトブロックに含まれる少なくとも1つの第1の論理ユニットおよび前記出力サイトブロックに含まれる少なくとも1つの第2の論理ユニットを含む、請求項5に記載の処理ユニットデバイス。
【請求項7】
前記出力ユニバースに関する情報は、前記第1の記憶ユニットのいくつかおよび前記第2の記憶ユニットのいくつかのうちの少なくとも1つに記憶される、請求項1に記載の処理ユニットデバイス。
【請求項8】
前記少なくとも1つの第1の記憶ユニットおよび前記少なくとも1つの第2の記憶ユニットは、レジスタを含む、請求項1に記載の処理ユニットデバイス。
【請求項9】
前記少なくとも1つの変換ブロックの各々は、前記出力サイトブロックと、入力ユニバースに含まれる入力サイトに関する情報を記憶するための少なくとも1つの第3の記憶ユニットを含む入力サイトブロックの両方を含む、請求項1に記載の処理ユニットデバイス。
【請求項10】
前記少なくとも1つの変換ブロックの各々は、
前記入力ユニバースの部分空間を規定する入力範囲に関する情報を記憶するための少なくとも1つの第4の記憶ユニットを備える入力サイト範囲ブロックと、
前記出力ユニバースの部分空間を規定する出力範囲に関する情報を記憶するための少なくとも1つの第5の記憶ユニットを備える出力サイト範囲ブロックとをさらに備える、請求項9に記載の処理ユニットデバイス。
【請求項11】
プログラミングのためのコンピュータにより実行される方法であって、前記コンピュータにより実行される方法は、非一時的な記憶媒体に動作可能に接続された処理ユニットによって実行され、前記コンピュータにより実行される方法は、
(1)所与の階層データ部分構造を含む出力サイトフォームを含む出力サイトと、(2)前記所与の階層データ部分構造における特性の変更に関連付けられているエフェクトとを少なくとも含む変換を、前記非一時的な記憶媒体から受信することと、
前記出力サイトフォームと一致する出力ユニバース内の少なくとも1つのフォームを識別することにより、前記変換が適用される出力一致を得ることとを備え、前記出力ユニバースは階層データ構造を含み、前記コンピュータにより実行される方法はさらに、
前記出力一致に前記エフェクトを適用することにより、変更された出力一致を得ることを備え、前記変更された出力一致は、前記特性が変更された少なくとも1つの一致した所与の階層データ部分構造を含み、前記コンピュータにより実行される方法はさらに、
前記変更された出力一致を出力することと、
前記出力ユニバースを表現するための第1のセクションおよび前記変換のグラフィック表現を表示するための第2のセクションを含むユーザグラフィカルインターフェースを表示することとを備え、前記変更された出力一致を出力することは、前記ユーザグラフィカルインターフェースの前記第1のセクション内に前記変更された出力一致を表示することを含む、コンピュータにより実行される方法。
【請求項12】
前記出力することは、前記出力ユニバースおよび前記出力ユニバース内の前記変更された出力一致のグラフィック表示を表示することを含む、請求項11に記載のコンピュータにより実行される方法。
【請求項13】
前記変換は、前記変換のためのパラメータを定義する変換データをさらに含み、取り出された前記出力一致に前記エフェクトを適用することは、前記変換データを使用して実施される、請求項11に記載のコンピュータにより実行される方法。
【請求項14】
前記変換は、入力サイトフォームを含む入力サイトをさらに含み、前記入力サイトフォームは別の所与の階層データ部分構造を含み、前記方法は、前記入力サイトフォームと一致する入力ユニバース内の少なくとも別のフォームを識別することによって、前記入力サイトとの入力一致を得ることをさらに備え、前記入力ユニバースは別の階層データ構造を含み、取り出された前記出力一致に前記エフェクトを適用することは、取り出された前記入力一致に関連する情報を使用して実施される、請求項11に記載のコンピュータにより実行される方法。
【請求項15】
前記出力ユニバースを表現するための第1のセクション、前記エフェクトを規定するための第2のセクション、および前記入力ユニバースを表現するための第3のセクションを含むユーザグラフィカルインターフェースを表示することをさらに備える、請求項14に記載のコンピュータにより実行される方法。
【請求項16】
前記入力サイト
を前記ユーザグラフィカルインターフェースの前記第3のセクションに表示することと、
前記エフェクトのグラフィック表現
を前記ユーザグラフィカルインターフェースの前記第2のセクションに表示することと、
前記出力サイト
を前記ユーザグラフィカルインターフェースの前記第1のセクションに表示することとをさらに備える、請求項15に記載のコンピュータにより実行される方法。
【請求項17】
入力範囲および出力範囲のうちの少なくとも1つを受信することをさらに備え、前記入力範囲は、前記入力ユニバースの部分空間を規定し、前記出力範囲は、前記出力ユニバースの部分空間を規定し、前記入力一致は、前記入力ユニバースの前記部分空間から選択され、前記出力一致は、前記出力ユニバースの前記部分空間から選択される、請求項14に記載のコンピュータにより実行される方法。
【請求項18】
前記出力ユニバースを表現するための第1のセクション、前記エフェクトを規定するための第2のセクション、前記入力ユニバースを表現するための第3のセクション、前記出力範囲を表示するための第4のセクション、および前記入力範囲を表示するための第5のセクションを含むユーザグラフィカルインターフェースを表示することをさらに備える、請求項17に記載のコンピュータにより実行される方法。
【請求項19】
前記入力サイト
を前記ユーザグラフィカルインターフェースの前記第3のセクションに表示することと、
前記エフェクトのグラフィック表現
を前記ユーザグラフィカルインターフェースの前記第2のセクションに表示することと、
前記出力サイト
を前記ユーザグラフィカルインターフェースの前記第1のセクションに表示することと、
前記出力範囲のグラフィック表現
を前記ユーザグラフィカルインターフェースの第4のセクションに表示することと、
前記入力範囲のグラフィック表現
を前記ユーザグラフィカルインターフェースの第5のセクションに表示することとをさらに備える、請求項
17に記載のコンピュータにより実行される方法。
【請求項20】
前記変換は、入力ユニバースに含まれる入力サイトからの情報によって変更される第2のエフェクトをさらに含み、前記変換ブロックは入力サイトブロックをさらに含み、前記入力サイトブロックは、前記入力サイトに関する情報を記憶するための少なくとも1つの第2の記憶ユニットを含む、請求項1に記載の処理ユニットデバイス。
【請求項21】
少なくとも1つのコンピュータプロセッサによって実行可能なコンピュータ命令を備える非一時的なコンピュータ読取可能媒体であって、前記コンピュータ命令は、
(1)所与の階層データ部分構造を含む出力サイトフォームを含む出力サイトと、(2)前記所与の階層データ部分構造における特性の変更に関連付けられているエフェクトとを少なくとも含む変換を受信するコンピュータ命令と、
前記出力サイトフォームと一致する出力ユニバース内の少なくとも1つのフォームを識別することにより、前記変換が適用される出力一致を得るコンピュータ命令とを含み、前記出力ユニバースは階層データ構造を含み、前記コンピュータ命令はさらに、
前記出力一致に前記エフェクトを適用することにより、変更された出力一致を得るコンピュータ命令を含み、前記変更された出力一致は、前記特性が変更された少なくとも1つの一致した所与の階層データ部分構造を含み、前記コンピュータ命令はさらに、
前記変更された出力一致を出力するコンピュータ命令と、
前記出力ユニバースを表現するための第1のセクションおよび前記変換のグラフィック表現を表示するための第2のセクションを含むユーザグラフィカルインターフェースを表示するコンピュータ命令とを含み、前記変更された出力一致を出力することは、前記ユーザグラフィカルインターフェースの前記第1のセクション内に前記変更された出力一致を表示することを含む、非一時的なコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本発明は、コンピュータの分野に関し、より詳細には、異種データのための処理ユニットに関する。
【背景技術】
【0002】
背景
高性能コンピューティングおよびスーパーコンピューティングは、ヒッグス粒子の発見(CERN)およびヒトゲノムのシークエンシング(ヒトゲノムプロジェクト)など、多くの成果を支えてきた。高性能コンピューティング(HPC)およびスーパーコンピューティングは、医療および医薬、モデリングおよびシミュレーション、セキュリティ、フィンテック、工学および製造業などの分野に大きな影響を与えると期待されている。
【0003】
HPCおよびスーパーコンピューティングのコミュニティは、上記の産業にさらに深い影響を与えるために対処する必要がある課題に直面している。いくつかの課題は、ハードウェアレベルとソフトウェアレベルの両方においてスケーラビリティを処理し、マルチレベル階層を表現して処理し、異種データの融合を実現し、人間の認知の弱点を補う代替の方法を見つけることである人間のボトルネック問題に対処することである。従来技術のプロセッサとコンピュータシステムの機能は、エクサスケール以上のコンピューティングを処理するためにさらに発展する必要があり、研究者および業界がスーパーコンピュータを利用できるように、使いやすく理解しやすい機能的に完成した共通のツールも必要である。
【0004】
さらに、コンピュータモデルまたはシミュレーションを実行するために、多数のシステムが開発されている。これらのシステムは通常、いくつかのアプリケーションに制限されており、ほとんどの場合、1つの知識分野でのみ使用することができる。結果として、訓練および学習に相当の努力が費やされない限り、システムの専門家は他のシステムに堪能ではない。さらに、モデルおよびシミュレーションモデルは通常、プラットフォーム間で互換性がない。一部の企業は自社製品のエコシステム内で、ある程度の互換性を提供しているが、ユーザは多くの場合、各製品を知り、それぞれの方法、手法、およびモデリングパラダイムを理解する必要がある。これは重要な欠点である。
【0005】
一部のシミュレーションソフトウェアまたはソリューションは、ソフトウェア開発キット(SDK)またはスクリプト言語へのアクセスを提供する。これらのスクリプト言語は通常テキストであり、C++(登録商標)、C#(登録商標)、Java(登録商標)またはPython(登録商標)などのプログラミング言語に似ている。このようなソフトウェア言語の場合、ユーザはいわゆる「コーディング障壁」とも呼ばれ得るものにすぐにぶつかることになり、この影響として、ソフトウェアを使用することができるユーザのタイプが大幅に制限される。ソフトウェアをより広くアクセスできるようにするために、これらのソフトウェアの供給元は、2D視覚インターフェースに記号として表示されるブロック内のコード、関数、およびスクリプトを非表示にすることがある。複数のブロックを追加して相互接続することにより、ブロック図が作成され、ブロック図は、2Dで提示されるシミュレーションモデルを表す。シミュレーションを実行した後、出力を2Dグラフに表示して、分析に役立てることができる。このようなシステムでは、物理モデルの表現と物理モデルに関連するデータとの間にギャップがある。たとえば、自動車のホイールに作用する力にアクセスしてグラフ化することはできるが、ホイールが回転している自動車の3Dモデルはない。自動車産業では、種々の部品を相互接続してシミュレーションできるが、これらのシミュレーションは、自動車が設計されるときに破棄されることになる。このようなシミュレーションは、製品に関する抽象的な情報を研究することを意図しており、主に微分方程式に依拠している。ユーザは物理学および数学の高度な知識を必要とするため、このようなプログラミングシステムは、エンジニアまたは研究者などの訓練を受けた人間のみによって使用される。
【0006】
現代の科学および企業プロジェクトは、今や学際的、協調的、世界的かつ非常に複雑である。多数の企業および公共団体を再編成する多くの大規模な学際的プロジェクト構想が存在する(Virtual Physiological Human Project、ヒューマンブレインプロジェクト、ブレインイニシアティブ)。そのようなプロジェクトでは、参加者のほんの一部だけが、モデルおよびシミュレーションを作成する技能を有する。ほとんどの参加者は自身の専門性の高い分野の専門家であり、他の分野の専門家に自身の知識を伝えたり、自身の知識を大きなまとまりのあるモデルに統合したりすることは困難である。
【0007】
したがって、改善されたプログラミング方法を可能にする改善された処理ユニットアーキテクチャが必要とされている。
【発明の概要】
【課題を解決するための手段】
【0008】
概要
第1の広範な態様によれば、処理ユニットデバイスであって、処理ユニットデバイスの動作を制御する少なくとも1つの制御ユニットと、少なくとも1つの制御ユニットによって実行される変換に関連付けられる少なくとも1つの変換ブロックを含む変換論理ユニットであり、変換は、出力ユニバースに含まれる出力サイトに適用されるエフェクトを含み、少なくとも1つの変換ブロックの各々は、エフェクトブロックおよび出力サイトブロックを含み、エフェクトブロックは、エフェクトに関する情報を記憶するための少なくとも1つの第1の記憶ユニットを含み、出力サイトブロックは、出力サイトに関する情報を記憶するための少なくとも1つの第2の記憶ユニットを含む、変換論理ユニットとを備える、処理ユニットデバイスが提供される。
【0009】
1つの実施形態では、少なくとも1つの制御ユニットは、変換のためのパラメータを定義する変換データを含むフォーム変換命令セットを使用してさらに変換を実行するように構成される。
【0010】
1つの実施形態では、少なくとも1つの制御ユニットは、変換論理ユニットに含まれる。
【0011】
1つの実施形態では、少なくとも1つの制御ユニットは、少なくとも1つの変換ブロックのうちの1つに含まれる。
【0012】
1つの実施形態では、少なくとも1つの制御ユニットは複数の制御ユニットを含み、少なくとも1つの変換ブロックは複数の変換ブロックを含み、複数の制御ユニットの各々は複数の変換ブロックのうちのそれぞれの変換ブロックに含まれる。
【0013】
1つの実施形態では、少なくとも1つの制御ユニットは、エフェクトブロックに含まれる少なくとも1つの第1の論理ユニットおよび出力サイトブロックに含まれる少なくとも1つの第2の論理ユニットを含む。
【0014】
1つの実施形態では、少なくとも1つの第1の論理ユニットおよび少なくとも1つの第2の論理ユニットは、算術論理演算ユニットおよび論理ゲートのうちの1つを含む。
【0015】
1つの実施形態では、少なくとも1つの制御ユニットは、変換論理ユニットに含まれる中央ユニットをさらに備える。
【0016】
1つの実施形態では、少なくとも1つの制御ユニットは、外部メモリに接続可能である。
【0017】
1つの実施形態では、出力ユニバースに関する情報は、外部メモリに記憶される。
1つの実施形態では、処理ユニットデバイスは内部メモリをさらに備える。
【0018】
1つの実施形態では、出力ユニバースに関する情報は、内部メモリに記憶される。
1つの実施形態では、出力ユニバースに関する情報は、第1の記憶ユニットのいくつかおよび第2の記憶ユニットのいくつかのうちの少なくとも1つに記憶される。
【0019】
1つの実施形態では、少なくとも1つの第1の記憶ユニットおよび少なくとも1つの第2の記憶ユニットは、レジスタを含む。
【0020】
1つの実施形態では、少なくとも1つの変換ブロックの各々は、入力ユニバースに含まれる入力サイトに関する情報を記憶するための少なくとも1つの第3の記憶ユニットを含む入力サイトブロックをさらに備える。
【0021】
1つの実施形態では、少なくとも1つの制御ユニットは複数の制御ユニットを含み、入力サイトブロックは少なくとも1つの複数の制御ユニットを備える。
【0022】
1つの実施形態では、少なくとも1つの変換ブロックの各々は、
入力ユニバースの部分空間を規定する入力範囲に関する情報を記憶するための少なくとも1つの第4の記憶ユニットを備える入力サイト範囲ブロックと、
出力ユニバースの部分空間を規定する出力範囲に関する情報を記憶するための少なくとも1つの第5の記憶ユニットを備える出力サイト範囲ブロックとをさらに備える。
【0023】
別の広範な態様によれば、処理ユニットデバイスであって、処理ユニットデバイスの動作を制御する少なくとも1つの制御ユニットと、少なくとも1つの制御ユニットによって実行される変換に関連付けられる少なくとも1つの変換ブロックを含む変換論理ユニットであり、変換は、入力ユニバースに含まれる入力サイトからの情報によって変更されるエフェクトを含み、少なくとも1つの変換ブロックの各々は、エフェクトブロックおよび入力サイトブロックを含み、エフェクトブロックは、エフェクトに関する情報を記憶するための少なくとも1つの第1の記憶ユニットを含み、入力サイトブロックは、入力サイトに関する情報を記憶するための少なくとも1つの第2の記憶ユニットを含む、変換論理ユニットとを備える、処理ユニットデバイスが提供される。
【0024】
1つの実施形態では、少なくとも1つの制御ユニットは、変換のためのパラメータを定義する変換データを含むフォーム変換命令セットを使用してさらに変換を実行するように構成される。
【0025】
1つの実施形態では、少なくとも1つの制御ユニットは、変換論理ユニットに含まれる。
【0026】
1つの実施形態では、少なくとも1つの制御ユニットは、少なくとも1つの変換ブロックのうちの1つに含まれる。
【0027】
1つの実施形態では、少なくとも1つの制御ユニットは複数の制御ユニットを含み、少なくとも1つの変換ブロックは複数の変換ブロックを含み、複数の制御ユニットの各々は複数の変換ブロックのうちのそれぞれの変換ブロックに含まれる。
【0028】
1つの実施形態では、少なくとも1つの制御ユニットは、エフェクトブロックに含まれる少なくとも1つの第1の論理ユニットおよび入力サイトブロックに含まれる少なくとも1つの第2の論理ユニットを含む。
【0029】
1つの実施形態では、少なくとも1つの第1の論理ユニットおよび少なくとも1つの第2の論理ユニットは、算術論理演算ユニットおよび論理ゲートのうちの1つを含む。
【0030】
1つの実施形態では、少なくとも1つの制御ユニットは、変換論理ユニットに含まれる中央ユニットをさらに備える。
【0031】
1つの実施形態では、少なくとも1つの制御ユニットは、外部メモリに接続可能である。
【0032】
1つの実施形態では、入力ユニバースに関する情報は、外部メモリに記憶される。
1つの実施形態では、処理ユニットデバイスは内部メモリをさらに備える。
【0033】
1つの実施形態では、入力ユニバースに関する情報は、内部メモリに記憶される。
1つの実施形態では、入力ユニバースに関する情報は、第1の記憶ユニットのいくつかおよび第2の記憶ユニットのいくつかのうちの少なくとも1つに記憶される。
【0034】
1つの実施形態では、少なくとも1つの第1の記憶ユニットおよび少なくとも1つの第2の記憶ユニットは、レジスタを含む。
【0035】
1つの実施形態では、少なくとも1つの変換ブロックの各々は、出力ユニバースに含まれる出力サイトに関する情報を記憶するための少なくとも1つの第3の記憶ユニットを含む出力サイトブロックをさらに備える。
【0036】
1つの実施形態では、少なくとも1つの制御ユニットは複数の制御ユニットを含み、出力サイトブロックは少なくとも1つの複数の制御ユニットを備える。
【0037】
1つの実施形態では、少なくとも1つの変換ブロックの各々は、
入力ユニバースの部分空間を規定する入力範囲に関する情報を記憶するための少なくとも1つの第4の記憶ユニットを備える入力サイト範囲ブロックと、
出力ユニバースの部分空間を規定する出力範囲に関する情報を記憶するための少なくとも1つの第5の記憶ユニットを備える出力サイト範囲ブロックとをさらに備える。
【0038】
さらなる広範な態様によれば、プログラミングのためのコンピュータにより実行される方法であって、出力ユニバースに含まれるフォームを識別する1つの出力サイトおよびフォームに適用されるエフェクトを少なくとも含む変換を受信するステップと、出力ユニバースからの出力サイトとの出力一致を取り出すステップと、取り出された出力一致にエフェクトを適用するステップであり、結果、変更された出力一致を得る、適用するステップと、変更された出力一致を出力するステップとを含む、コンピュータにより実行される方法が提供される。
【0039】
1つの実施形態では、変更された出力一致を出力するステップは、出力ユニバースおよび出力ユニバース内の変更された出力一致のグラフィック表示を表示するステップを含む。
【0040】
1つの実施形態では、方法は、出力ユニバースを表現するための第1のセクションおよび変換のグラフィック表現を表示するための第2のセクションを含むユーザグラフィカルインターフェースを表示するステップをさらに含み、変更された出力一致を出力する上記ステップは、ユーザグラフィカルインターフェースの第1のセクション内に変更された出力一致を表示するステップを含む。
【0041】
1つの実施形態では、変換は、変換のパラメータを定義する変換データをさらに含み、取り出された出力一致にエフェクトを適用する上記ステップは、変換データを使用して実施される。
【0042】
1つの実施形態では、変換は、入力サイトをさらに含み、方法は、入力ユニバースから入力サイトとの入力一致を取り出すステップをさらに含み、取り出された出力一致にエフェクトを適用する上記ステップは、取り出された入力一致に関連する情報を使用して実施される。
【0043】
1つの実施形態では、方法は、出力ユニバースを表現するための第1のセクション、エフェクトを規定するための第2のセクション、および入力ユニバースを表現するための第3のセクションを含むユーザグラフィカルインターフェースを表示するステップをさらに含む。
【0044】
1つの実施形態では、方法は、
入力サイトをグラフィカルユーザインターフェースの第3のセクションに表示するステップと、
エフェクトのグラフィック表現をグラフィカルユーザインターフェースの第2のセクションに表示するステップと、
出力サイトをグラフィカルユーザインターフェースの第1のセクションに表示するステップとをさらに含む。
【0045】
1つの実施形態では、方法は、入力範囲および出力範囲のうちの少なくとも1つを受信するステップをさらに含み、入力範囲は、入力ユニバースの部分空間を規定し、出力範囲は、出力ユニバースの部分空間を規定し、入力一致は、入力ユニバースの部分空間から選択され、出力一致は、出力ユニバースの部分空間から選択される。
【0046】
1つの実施形態では、方法は、出力ユニバースを表現するための第1のセクション、エフェクトを規定するための第2のセクション、入力ユニバースを表現するための第3のセクション、出力範囲を表示するための第4のセクション、および入力範囲を表示するための第5のセクションを含むユーザグラフィカルインターフェースを表示するステップをさらに含む。
【0047】
1つの実施形態では、方法は、
入力サイトをグラフィカルユーザインターフェースの第3のセクションに表示するステップと、
エフェクトのグラフィック表現をグラフィカルユーザインターフェースの第2のセクションに表示するステップと、
出力サイトをグラフィカルユーザインターフェースの第1のセクションに表示するステップと、
出力範囲のグラフィック表現をグラフィカルユーザインターフェースの第4のセクションに表示するステップと、
入力範囲のグラフィック表現をグラフィカルユーザインターフェースの第5のセクションに表示するステップとをさらに含む。
【0048】
さらに別の広範な態様によれば、プログラミングのためのシステムであって、システムは、通信手段と、ステートメントおよび命令が記憶されているメモリと、上述の方法のステップを実行するように構成された処理ユニットとを備える、システムが提供される。
【0049】
さらに別の広範な態様によれば、コンピュータによって実行されるときに上記の方法のステップを実施するコンピュータ実行可能命令を記憶するコンピュータ可読メモリを備えるコンピュータプログラム製品が提供される。
【0050】
またさらなる広範な態様によれば、プログラミングのためのコンピュータにより実行される方法であって、フォームを識別する1つの入力サイトおよびフォームに適用されるエフェクトを少なくとも含む変換を受信するステップと、入力ユニバースからの入力サイトとの入力一致を取り出すステップと、入力一致と関連付けられる情報を使用してエフェクトを変更するステップであり、結果、変更されたエフェクトを得る、変更するステップと、変更されたエフェクトを出力するステップとを含む、コンピュータにより実行される方法が提供される。
【0051】
1つの実施形態では、変更されたエフェクトを出力するステップは、変更されたエフェクトのグラフィック表示を表示するステップを含む。
【0052】
1つの実施形態では、方法は、入力ユニバースを表現するための第1のセクションおよび変換のグラフィック表現を表示するための第2のセクションを含むユーザグラフィカルインターフェースを表示するステップをさらに含み、変更されたエフェクトを出力する上記ステップは、ユーザグラフィカルインターフェースの第2のセクション内に変更されたエフェクトを表示するステップを含む。
【0053】
1つの実施形態では、変換は、変換のパラメータを定義する変換データをさらに含み、エフェクトを変更する上記ステップは、変換データを使用して実施される。
【0054】
1つの実施形態では、変換は、出力ユニバース内に含まれる出力サイトをさらに含む。
1つの実施形態では、方法は、出力ユニバースを表現するための第1のセクション、変更されたエフェクトを表現するための第2のセクション、および入力ユニバースを表現するための第3のセクションを含むユーザグラフィカルインターフェースを表示するステップをさらに含む。
【0055】
1つの実施形態では、方法は、1つの実施形態では、方法は、
入力サイトをグラフィカルユーザインターフェースの第3のセクションに表示するステップと、
変更されたエフェクトのグラフィック表現をグラフィカルユーザインターフェースの第2のセクションに表示するステップと、
出力サイトをグラフィカルユーザインターフェースの第1のセクションに表示するステップとをさらに含む。
【0056】
1つの実施形態では、方法は、入力範囲および出力範囲のうちの少なくとも1つを受信するステップをさらに含み、入力範囲は、入力ユニバースの部分空間を規定し、出力範囲は、出力ユニバースの部分空間を規定し、入力一致は、入力ユニバースの部分空間から選択される。
【0057】
1つの実施形態では、方法は、出力ユニバースを表現するための第1のセクション、変更されたエフェクトを表現するための第2のセクション、入力ユニバースを表現するための第3のセクション、出力範囲を表示するための第4のセクション、および入力範囲を表示するための第5のセクションを含むユーザグラフィカルインターフェースを表示するステップをさらに含む。
【0058】
1つの実施形態では、方法は、
入力サイトをグラフィカルユーザインターフェースの第3のセクションに表示するステップと、
変更されたエフェクトのグラフィック表現をグラフィカルユーザインターフェースの第2のセクションに表示するステップと、
出力サイトをグラフィカルユーザインターフェースの第1のセクションに表示するステップと、
出力範囲のグラフィック表現をグラフィカルユーザインターフェースの第4のセクションに表示するステップと、
入力範囲のグラフィック表現をグラフィカルユーザインターフェースの第5のセクションに表示するステップとをさらに含む。
【0059】
さらに別の実施形態によれば、プログラミングのためのシステムであって、システムは、通信手段と、ステートメントおよび命令が記憶されているメモリと、上述の方法のステップを実行するように構成された処理ユニットとを備える、システムが提供される。
【0060】
さらに別の実施形態によれば、コンピュータによって実行されるときに上記の方法の方法ステップを実施するコンピュータ実行可能命令を記憶するコンピュータ可読メモリを備えるコンピュータプログラム製品が提供される。
【0061】
本明細書の目的のために、フォームとは、2Dオブジェクトまたは3Dオブジェクトなどのオブジェクト、テキスト、数式、変換、フォームのコレクション、変換のコレクション、フォームおよび変換のコレクション、オブジェクト表現、セット、セットのコレクション、アニメーションシーケンスなどであってもよい要素または要素のコレクションであるものとして理解されたい。フォームの例は、自動車、生物の猫、分子および原子、木のコレクション、記号、変換などの表現を含む。フォームのコレクションもフォームであることを理解されたい。フォームの他の例は、3Dまたは4D座標系内の3Dメッシュ、多次元ベクトル、テンソル、人工ニューラルネットワーク、2Dまたは3Dで表現された人工ニューラルネットワーク、テーブル、配列、3D座標系内のボクセル、形状および実線などの連続構造、物理オブジェクト、記号、ピクセルから構成される記号、単語、スクリプト、コード、数、関数、アルゴリズム、方程式、ニューラルネットワーク、任意のタイプのデータ(たとえば、グラフィック、視覚、音、デジタル、画像、テキスト、距離、測度、時間、...)、データ構造、ファイル名、zバッファコンテンツ、記憶内容、ストレージアドレス、トポロジ、メモリアドレス、フォームオブジェクト、フォームオブジェクト名、変数を有するタグまたは表現、フォームオブジェクトのセット、変換、変換名、その変数および変換のセットを有する表現などを含む。
【0062】
入力ユニバースは、入力サイトに関連付けられたフォームのコレクションとして理解されたい。入力サイトは、入力ユニバース内で選択される少なくとも1つのフォームとして理解されたい。入力範囲は、変換がデータを得ることができる入力ユニバースの部分空間として理解されたい。すなわち、これは情報の抽出を入力ユニバースの特定のサブセット/部分に限定する。入力ユニバースのこのサブセット/部分は、フォーム、セット(ユニオン演算子、否定演算子および論理積演算子を用いる)、コレクション、領域、区間、不等式および方程式として表現することができる。不等式および方程式の場合、それらの解のコレクションが入力ユニバースのサブセット/部分を構成することが理解される。
【0063】
出力ユニバースは、出力サイトに関連付けられたフォームのコレクションとして理解されたい。出力サイトは、出力ユニバース内で選択される必要がある少なくとも1つのフォームとして理解されたい。出力サイトは、変換に関連付けられたエフェクトを出力ユニバース内のどこに適用するかの指示、または、置換、追加、次に追加、または変更する必要がある出力ユニバースのフォーム(複数可)の識別として考えることができる。出力範囲は、変換を適用することができる出力ユニバースの部分空間として理解されたい。すなわち、これは変換の適用を出力ユニバースの特定のサブセット/部分に限定する。出力ユニバースのこのサブセット/部分は、フォーム、セット(ユニオン演算子、否定演算子および論理積演算子を用いる)、コレクション、領域、区間、不等式および方程式として表現することができる。不等式および方程式の場合、それらの解のコレクションが入力ユニバースのサブセット/部分を構成することが理解される。
【0064】
エフェクトは、まったく新しいフォーム、または入力サイト(複数可)、出力サイト、または入力サイトおよび出力サイトの一部のフォーム(複数可)から構成されるフォームとして理解されたい。たとえば、エフェクトは、フォームの形状の変更など、出力サイトで定義されたフォームの特性を変更することができる。別の例では、エフェクトは、出力サイトで定義されたフォームにフォームを追加することができる。
【0065】
変換データは、変換に関連付けられたエフェクトに使用される情報/パラメータ(回数、名前、フォームのコレクションなど)のセットを参照する。
【0066】
変換は、少なくともエフェクトならびに出力サイト(任意選択的に出力範囲を含むことができる)および/または入力サイト(任意選択的に入力範囲を含むことができる)から構成される。変換は、変換データをさらに含むことができる。1つの実施形態では、変換は、入力範囲、入力サイト、エフェクト、出力サイト、出力範囲、および変換データの6つの部分から構成される。
【0067】
入力サイトは入力ユニバースに接続され、出力サイトは出力ユニバースに接続されている。1つの実施形態では、単一のユニバースが存在し、入力サイトと出力サイトの両方が単一のユニバースに接続されるように、入力ユニバースは出力ユニバースに対応することができる。
【0068】
1つの実施形態では、本方法およびシステムは、変換のシーケンスおよび/または変換の並列シーケンスが適用されるフォームから構成される動的モデルを作成するために使用することができる。静的モデルまたは動的モデルは、変換のシーケンスを適用した結果と考えることができる。世界で観察されるあらゆる変化は、本システムおよび方法を使用してモデル化することができることを理解されたい。
【0069】
システムはフォームのコレクションであると理解されたい。ほとんどの場合、システムは、より正確には、フォームに適用される変換のコレクションを有するフォームのコレクションである。さらに、システムもフォームであると考えられる。
【0070】
1つの実施形態では、システムはタイムラインを含み、結果、変換の適用後、システムはタイムライン内で進む。タイムラインは必ずしも時間を参照するとは限らず、変換の適用において行われるステップとして理解することもできることを理解されたい。1つの実施形態では、タイムラインは、実世界の時計または仮想時計と同期させることができる。
【0071】
仮想マシン上で再現することができる本変換処理ユニットデバイスおよびそのアーキテクチャは、フォン・ノイマン処理装置などの従来技術の処理装置と比較して、以下の利点の少なくともいくつかを可能にする。これらの利点は、処理速度、エネルギー消費、ストレージサイズ、計算正確度、精度、忠実度および/またはスケーラビリティに関連している。さらに、本変換処理ユニットアーキテクチャは、高性能コンピューティングにおける複数の課題に対する新しい解決策をもたらす。
【0072】
興味深いことに、変換ブロックに基づく本変換処理ユニットアーキテクチャは、非決定性チューリングマシンのシミュレーションに使用することができる。たとえば、変換ブロックを変更すると、他の複数の変換ブロック(または分岐)がトリガされ得、その結果、他の分岐がトリガされる。これは、本変換処理ユニットアーキテクチャがマルチスレッドを実行し、各スレッドを他のスレッドにさらに分割することができる方法の例を提供する。
【0073】
均質な構造(ほぼ変換ブロックのみから構成される)に起因して、異種デバイスに関連する相互接続の問題に直面することなく、変換処理ユニットを他の複数の変換処理ユニットによって容易に拡張することができる。この変換処理ユニットアーキテクチャでは、コンピュータの計算能力を拡張することは、より多くの変換処理ユニットを接続することになる。
【0074】
1つの実施形態では、変換ブロックは、各変換ブロックがその環境に基づいて作用および反応してグローバルな計算結果に寄与する自律エージェントのように挙動すると理解されるエージェントベースのサブプロセッサの着想をもたらすように作成することができる。
【0075】
1つの実施形態では、変換処理ユニットデバイスの本アーキテクチャは、内部クロックによって実施することができる。
【0076】
非同期プロセッサの場合などの別の実施形態では、変換処理ユニットデバイスの本アーキテクチャは、クロックレス処理機能を提供し、これにより、電力効率、応答性、および堅牢性が提供される。
【0077】
変換処理ユニットデバイスの本アーキテクチャは、機械学習および人工ニューラルネットワークのコンテキストにおいて使用することができる。本変換処理ユニットアーキテクチャの仮想マシン実装態様において、訓練され、推論のために使用することができる人工ニューラルネットワークおよびニューラルネットワークのシステムを作成することが可能であることが示されている。すなわち、機械学習アルゴリズムは変換およびフォームを用いて設計および処理することができ、したがって、プロセッサ上で直接展開(または訓練)することができる。
【0078】
プロセッサ上の人工ニューラルネットワークを使用して、速度およびストレージスペースの複数の内部最適化を達成することができる。特に、プロセッサ上で、自動エンコーダを使用してデータを圧縮し、複雑な関数または動作を表現または近似するように訓練された事前訓練済みの人工ニューラルネットワークを展開することができる。変換処理ユニットの部分は、マッチングの処理および実行、または計算高速化を可能にする種々の計算パイプラインに動作をディスパッチする分類の達成のために使用することができる、人工ニューラルネットワークまたは機械学習アルゴリズム表現のために確保することができる。さらに、これにより、変換処理ユニットは、ニューラルネットワークのみに限定されないさまざまな機械学習アルゴリズムを通じて外部データを高速で処理することもできる。
【0079】
1つの実施形態では、フォームおよび変換のシステムは、シミュレーションを作成するように設計することができる。たとえば、本変換処理ユニットデバイスは、以下の変換を使用することにより、3Dの鼓動する心臓をシミュレートするために使用することができる。
-細胞を収縮させる変換(エフェクト:収縮した細胞、出力サイト:細胞)、および
-細胞に隣接する細胞に情報を送信する変換(エフェクト:収縮した細胞+収縮した隣接細胞、出力サイト:収縮した細胞+隣接する細胞)。
【0080】
細胞の収縮後、第2の変換は、収縮を他のすべての接続された細胞に継続的に伝播させ、結果として心拍を発生させる。心臓の磁気共鳴画像から生成される3Dデータをプロセッサにエンコードし、上記の原則に従ってエンコードされた変換によってプロセッサを実行すると、マイクロチップ上で3D心臓シミュレーションが提供される。
【0081】
本変換は、いくつかの問題に対するデータ異種性のソリューションを提供することができる。最近の多くのマイクロプロセッサには、通常、1つまたは複数の算術論理演算ユニットおよび浮動小数点ユニットが含まれている。これらは、数値の算術計算を効率的に実施することを目的としている。本変換処理ユニットは、プロセッサ上で直接、フォームおよび他のタイプの構造化データに対する計算を実施し、並列または非並列に算術演算を実施することを可能にする。これにより、プロセッサ速度において構造化データを処理することが可能になり、ユーザまたはソフトウェアがプロセッサ上で直接、実行する新しいデータ型を定義することが可能になる。
【0082】
それらの動的かつ均質な構造、変換、およびフォームのために、ジャストインタイムおよび事前のコンパイルを、本発明の実施形態の変換処理ユニットによって実施することができる。特に、フォーム変換命令セットの事前コンパイルにより、ターゲットマシン上でネイティブに実行することができる機械語を作成することが可能であり、したがって、実行速度が速くなり、ディスク容量が少なくなるなどの利点がもたらされる。動的言語の事前コンパイルは、大幅な高速化(16倍以上)をもたらすことが判明した。さらに、ジャストインタイムコンパイルは、コードの頻繁に使用される部分を機械語にコンパイルすることにより、最適化を実施することができる。変換およびフォームの普遍的な構造によって、そのような最適化の機会を、変換の実行中に頻繁に発生させることができる。
【0083】
変換およびフォームは任意のドメインにおいてモデル、メソッド、および計算を表現することができるため、異なるドメインの複数の異なるモデルを、フォームおよび変換の単一のシステムに変換することができる。このシステム内では、モデル間の情報(たとえば、異なる科学的領域に由来する)を高速で交換することができる。各モデルが本アーキテクチャの外部で実装されている場合、情報を交換する前に、モデル間で情報が交換されるたびに情報を変換する変換ステップが必要になり、結果、計算時間が大幅に増加する。他方、このような問題は、本変換処理ユニットアーキテクチャを使用している間は回避することができる。
【0084】
科学的プログラムの実行時間の主要部分は、通常、ループの処理に費やされる。ループ変換は、種々のタイプのループの実行速度を向上させることが知られている。本変換処理ユニット変換は、ループを表現するために使用することができる。他のプログラミング言語と比較して、変換の記述されたコードは、メモリまたはディスク上で必要なスペースが少ない。さらに、変換自体を他の変換によって変更することができ、したがって、命令セットがより高次のシステムにレンダリングされる。したがって、変換はループ変換と同様の方法で変更することができるが、多くの新しいタイプの最適化を可能にし、それらを制御する方法を提供するという利点がある。これは、一般的な現代のコンパイラによって通常提供される少量のループ最適化とは対照的である。
【0085】
1つの実施形態では、変換は、ローカル変換を使用することによって設計を実施し、実世界のシステムの直接観察に基づいてモデルを設計する機会を提供する。言い換えると、変換により、グローバルなエフェクトがローカライズされたルールから現れるエージェントベースのシミュレーションを効率的に行うことが可能である。これは、グローバルな(大域的)方程式を解いて解ならびにローカル情報および挙動を決定する方法とは対照的である。
【0086】
たとえば、仮想心臓を設計する場合、現行技術水準の技術は、高次の有限要素法および複雑な微分方程式を使用することに存する。グローバルな(大域的)微分方程式の解を求め、有限要素法を使用するには、費用のかかる計算が必要である。
【0087】
心臓の心筋細胞は現実においては複雑な方程式に依存せず、隣接する細胞が収縮したときに収縮するにすぎない。上で説明したように、変換のセットを使用して、隣接する細胞が収縮したときに細胞の収縮を表現することができ、したがって、現実をより正確にモデリングし、シミュレーションの精度および速度を向上させることができる。したがって、変換は、グローバルな微分方程式を解き、有限要素法を適用することに関連する膨大な計算および近似を回避することを可能にする。
【0088】
変換ブロックおよび変換ブロックとフォームデータ構造との相互作用は、本変換処理ユニットアーキテクチャの主要構成要素を表す。データのすべての処理は、単一のコマンドにおいてデータを取得、変更、移動することができる変換に依拠する。単一の変換によって、大量のデータを照合し、計算を行い、他の場所に持ち込むことができる。変換コマンドは同種のデータ構造のデータを自然に収集して処理するため、このデータは、仮想マシン構成のGPU、複数のGPU、複数のCPU、および処理コア上で容易に並列処理することができる。特に、n回適用されるようにマークされた変換は、1つのステップで並列に計算されるようにすることができる。変換は、計算を処理するキューに送信することができる。独立した変換は、それぞれ異なるキューに送信することができ、したがって、より高度な並列化が可能である。
【0089】
仮想マシン構成で本アーキテクチャを実行しているマシン上で、すべての異種データをフォームとして書き込むことができるため、通常はシングルスレッドで処理されるデータを、本明細書における変換処理ユニットの実施形態による変換の使用と並行して処理することができる。たとえば、仮想マシン構成において本アーキテクチャを使用しながら、CPUおよびGPUを備えたコンピュータ上で、変換処理ユニットを使用した変換によって処理されるデータは、従来のアーキテクチャを通じて処理される同じデータよりも15倍~100倍速く処理することができる。
【0090】
変換は入力サイトとの一致を収集し、各一致は並行して処理することができる。このとき、各一致(複数の入力サイト構成要素から構成され得る)を使用して、エフェクトおよび出力サイト(各々が複数の部分構成要素を含む)を計算することができる。次いで、出力サイト一致が収集され、同時に変更される。さらに、変換をn回並列に適用する必要がある場合、n個の同一の変換を並列に適用することができる。さらに、並行して適用することができる複数の異なる変換も、同時に適用される。
【0091】
したがって、単一の方法で記述されたフォームデータおよび変換コマンドにより、可能な限り多くの処理をGPU、並列デバイス、またはZetaneマシンに転送することができ、したがって、最大1000倍速い速度が可能になる。
【0092】
本アーキテクチャは、モジュール化を可能にする。フォームおよび変換として記述された各モデルは、モジュールとして保存/エクスポートすることができる。その後、モジュールを他のより大きいモデルにおいて使用および再使用することができ、したがって、データの交換および協調が容易になる。モジュールおよびモデルはメモリに記憶することができ、データコピーの代わりにメモリアドレスを使用することによって、他のモジュールによる処理のためにアクセスすることができる。これにより、アクセスおよび処理速度を向上させることができる。メモリアドレスを通じたモジュールの相互接続により、ストレージスペースの使用量を低減し、マシンのエネルギー消費量も低減することが可能になる。
【0093】
1つの実施形態では、変換を介して任意のドメインの概念をフォームとして表現し、変換を通じてフォームを(機械語として、並列または非並列に)処理することが可能であるため、設計および計算を合理化し、加速させることができる。
【0094】
フォームと変換を視覚的に表現することで、データの洞察が深まり、先進的なモデルの構築および設計が容易になる。変換およびデータを効率的に表現することが可能であるため、ユーザが計算およびデータとより深く直感的に相互作用することが可能である。特に、「人間参加型」にすることによって、変換およびフォームを視覚的に表現することなくしては発見できなかった重要な最適化を可能にすることができる。
【0095】
図面の簡単な説明
本発明のさらなる特徴および利点は、添付の図面と組み合わせて取り上げられる、以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0096】
【
図1】1つの実施形態による、変換制御ユニットおよび変換論理ユニットを備え、外部メモリに接続可能である変換処理ユニットを示すブロック図である。
【
図2】1つの実施形態による、変換制御ユニット、変換論理ユニット、内部メモリを備える変換処理ユニットを示すブロック図である。
【
図3】1つの実施形態による、複数の変換ブロックを備える変換論理ユニットを示すブロック図である。
【
図4】1つの実施形態による、複数の相互接続されている変換ブロックを備える変換論理ユニットを示すブロック図である。
【
図5】1つの実施形態による、入力サイトブロック、エフェクトブロックおよび出力サイトブロックを含む変換ブロックを示すブロック図である。
【
図6】1つの実施形態による、入力サイトブロック、入力サイト範囲ブロック、エフェクトブロック、出力サイト範囲ブロックおよび出力サイトブロックを含む変換ブロックを示すブロック図である。
【
図7】1つの実施形態による、複数の相互接続されている変換ブロックを備える変換論理ユニットによる入力の処理を示す図である。
【
図8】1つの実施形態による、複数の相互接続されている変換ブロックを備える変換論理ユニットによる入力の処理を示す図である。
【
図9】1つの実施形態による、複数の相互接続されている変換ブロックを備える変換論理ユニットによる入力の処理を示す図である。
【
図10】1つの実施形態による、複数の相互接続されている変換ブロックを備える変換論理ユニットによる入力の処理を示す図である。
【
図11】1つの実施形態による、複数の相互接続されている変換ブロックを備える変換論理ユニットによる入力の処理を示す図である。
【
図12】1つの実施形態による、変換を実行するための方法を示すフローチャートである。
【
図13】1つの実施形態による、
図12の方法を実行するためのシステムのブロック図である。
【
図14】1つの実施形態による、入力サイト、入力範囲、エフェクト、出力サイト、出力範囲および変換データを含む変換を示す図である。
【
図15a】1つの実施形態による、3D環境で方向付けられた三角形に続く長方形のボックスを示す図である。
【
図15b】1つの実施形態による、3D環境で方向付けられた三角形に続く長方形のボックスを示す図である。
【
図16】関連する変換データ内のフィードを与えられた変換の例示的なグラフィック表現を示す図である。
【
図17】3つの点を作成するための例示的な変換を示す図である。
【
図18】実線を作成するための例示的な変換を示す図である。
【
図19】変換の複数の適用の一般化の例示を示す図である。
【
図20】フィードに存在する複数の変数を与えられた例示的な変換を示す図である。
【
図21】ポイントを互いに積み重ねるように設計された例示的な変換を示す図である。
【
図22】中実の正方形を作成するように設計されている例示的な変換を示す図である。
【
図23】中実の三角形を作成するように設計されている例示的な変換を示す図である。
【
図24】加速しているロケットを作成するように設計されている例示的な変換を示す図である。
【
図25】ロケットの相対変位のために設計されている例示的な変換を示す図である。
【
図26】ロケットを7回動かすように設計されている例示的な変換を示す図である。
【
図27】補間を用いてロケットを7回動かすように設計されている例示的な変換を示す図である。
【
図28】補間が作成される方法の例示的なカスタマイズを示す図である。
【
図29】絶対位置についての例示的な連続的変換を示す図である。
【
図30】相対位置についての例示的な連続的変換を示す図である。
【
図31】ロケットの連続的な相対変位を作成するための例示的な変換を示す図である。
【
図32】n個の要素のベクトルを作成するための例示的な変換を示す図である。
【
図33】3×3行列を作成するための例示的な変換を示す図である。
【
図34】第1の例による、2部分エフェクトを含む変換を示す図である
【
図35】第2の例による、2部分エフェクトを含む変換を示す図である
【
図36】フィードおよび2部分エフェクトを含む例示的な変換を示す図である。
【
図38a】1つの例による、四面体の面への四面体の追加を示す図である。
【
図38b】1つの例による、四面体の面への四面体の追加を示す図である。
【
図38c】1つの例による、四面体の面への四面体の追加を示す図である。
【
図39】1つの例による、線分を三角形に置き換えるように設計された変換およびその適用を示す図である。
【
図40】1つの例による、線分を三角形に置き換えるように設計された変換およびその適用を示す図である。
【
図41】1つの例による、線分を三角形に置き換えるように設計された変換およびその適用を示す図である。
【
図42】第2の例による、線分を三角形に置き換えるように設計された変換の適用を示す図である。
【
図43】第2の例による、線分を三角形に置き換えるように設計された変換の適用を示す図である。
【
図44】1つの実施形態による、2つの相互接続されたニューロンを表現する変換のユニバースを示す図である。
【
図45】
図44に示されているユニバース内で適用される第1の例示的な変換を示す図である。
【
図46】
図44に示されているユニバース内で適用される第2の例示的な変換を示す図である。
【
図47】
図44に示されているユニバース内で適用される第3の例示的な変換を示す図である。
【
図48】
図44に示されているユニバース内で適用される第3の例示的な変換を示す図である。
【
図49】
図44に示されているユニバース内で適用される第3の例示的な変換を示す図である。
【
図50】
図44に示されているユニバース内で適用される第4の例示的な変換を示す図である。
【
図51】シナプス間隙の例示的なモデルを示す図である。
【
図52】
図51のシナプス間隙における10個の神経伝達物質の放出をモデル化するための例示的な変換を示す図である。
【
図53】1つの実施形態による、出力範囲を視覚的に表現する長方形のボックスが与えられた
図51のシナプス間隙のモデルを示す図である。
【
図54】シナプス間隙における神経伝達物質の放出および神経受容体によるそれらの吸収を示す図である。
【
図55】シナプス間隙における神経伝達物質の放出および神経受容体によるそれらの吸収を示す図である。
【
図56】シナプス間隙における神経伝達物質の放出および神経受容体によるそれらの吸収を示す図である。
【
図57】シナプス間隙における神経伝達物質の放出および神経受容体によるそれらの吸収を示す図である。
【
図58】1つの実施形態による、グラフェンシートを作成するための変換を示す図である。
【
図59】1つの実施形態による、グラフェンシートを作成するための変換の適用の結果を示す図である。
【
図60】1つの実施形態による、CO
2コレクタを作成するための変換の使用を示す図である。
【
図61】1つの実施形態による、CO
2コレクタを作成するための変換の使用を示す図である。
【
図62】1つの実施形態による、CO
2コレクタを作成するための変換の使用を示す図である。
【
図63】1つの実施形態による、衛星の手動回転を示す図である。
【
図64】1つの実施形態による、衛星の手動回転を示す図である。
【
図65】例示的な自動信号ファインダ変換を示す図である。
【
図66】衛星の例示的なキーボード作動回転を示す図である。
【
図67】ボタンを介して実施される衛星の例示的な回転を示す図である。
【
図68】自動車を動かすための第1の例示的な変換を示す図である。
【
図69】自動車を動かすための第2の例示的な変換を示す図である。
【
図70】1つの実施形態による、走行距離計の作成を示す図である。
【
図71】1つの実施形態による、走行距離計の作成を示す図である。
【
図72】1つの実施形態による、同じ変換の2つの異なる視覚的表現のうちの一方を示す図である。
【
図73】1つの実施形態による、同じ変換の2つの異なる視覚的表現のうちの一方を示す図である。
【
図74】1つの実施形態による、変換を作成するためのグラフィカルユーザインターフェースを示す図である。
【
図75】1つの実施形態による、四面体を作成するための
図74のグラフィカルユーザインターフェースの使用を示す図である。
【
図76】1つの実施形態による、四面体を作成するための
図74のグラフィカルユーザインターフェースの使用を示す図である。
【
図77】1つの実施形態による、四面体を作成するための
図74のグラフィカルユーザインターフェースの使用を示す図である。
【
図78】1つの実施形態による、四面体を作成するための
図74のグラフィカルユーザインターフェースの使用を示す図である。
【
図79】1つの実施形態による、四面体を作成するための
図74のグラフィカルユーザインターフェースの使用を示す図である。
【
図80】1つの実施形態による、
図75~
図79に示されるステップに従って得られる四面体を示す図である。
【
図81】1つの実施形態による、
図75~
図79に示されるステップに従って得られる複雑なフラクタルを示す図である。
【
図82】1つの実施形態による、入力サイト、エフェクト、および出力サイトを与えられた変換の使用を示す図である。
【
図83】1つの実施形態による、入力サイト、エフェクト、および出力サイトを与えられた変換の使用を示す図である。
【
図84】1つの実施形態による、入力サイト、エフェクト、および出力サイトを与えられた変換の使用を示す図である。
【
図85】1つの実施形態による、
図83に示される変換を連続して適用した後に得られるモデルを示す図である。
【
図86】1つの実施形態による、
図83に示される変換を連続して適用した後に得られるモデルを示す図である。
【
図87】1つの実施形態による、
図83に示される変換を連続して適用した後に得られるモデルを示す図である。
【
図88】1つの実施形態による、
図83に示される変換を連続して適用した後に得られるモデルを示す図である。
【
図89】1つの実施形態による、入力サイト一致を動的に変更する変換を示す図である。
【
図90】異なる範囲を与えられた例示的な変換を示す図である。
【
図91】異なる範囲を与えられた例示的な変換を示す図である。
【
図92】1つの実施形態による、
図91の変換を適用することによって得られる四面体を示す図である。
【
図93】1つの実施形態による線分を示す図である。
【
図94】1つの実施形態による、
図93の線分を回転させるための変換を示す図である。
【
図95】1つの実施形態による、変換がユーザグラフィカルインターフェース内で適用される回数の入力を示す図である。
【
図96】1つの実施形態による、
図95の変換を適用した結果を示す図である。
【
図97】1つの実施形態による、記録された変換のシーケンスを提示するインターフェースを示す図である。
【発明を実施するための形態】
【0097】
添付の図面全体を通して、同様の特徴は同様の参照符号によって識別されることに留意されたい。
【0098】
詳細な説明
本発明の実施形態は、異種データを処理するための変換処理ユニットを対象とする。1つの実施形態では、本アーキテクチャは、統一されたユニバーサルプロセッサの実装を可能にする。変換処理ユニットに入力および出力と直接対話させ、変換ブロックに直接記憶することによって、いくつかの利点が得られる。レジスタは、応答時間が最も速い記憶ユニットであり、変換ブロック内で直接アクセスすることができる。これにより、他の変換ブロックによって高速で処理される変換ブロックにも入力データが直接挿入されて、最終的にデータが出力デバイスにほぼ直接出力される、非常にパフォーマンスの高いコンピューティングパイプラインを合理化することができる。
【0099】
以下に、視覚的プログラミングならびに高性能コンピューティングおよびシミュレーションを可能にする変換処理ユニットのためのコンピュータアーキテクチャについて説明する。コンピュータアーキテクチャは、異種データを高速で処理するのに適した処理ユニットデバイスを表す。
【0100】
本変換処理ユニットデバイスを使用して、ユーザは、ユニバースに存在するフォームにエフェクト(効果)を適用することができる。フォームにエフェクトを適用するために、変換が作成される。変換は、少なくとも、フォームに適用されるエフェクト、エフェクトが適用されるべき場所を規定する出力サイト、および、任意選択的に変換データを含む。代替的に、変換は、少なくとも、エフェクト、エフェクトが情報を取得することができる場所を規定する入力サイト、および、任意選択的に変換データを含む。以下で説明する、変換を実行するように適合されたアーキテクチャを有する処理ユニットデバイスは、変換処理ユニットデバイスと呼ばれる。
【0101】
図1は、変換処理ユニット12およびフォーム変換命令セット14を備える変換処理ユニットデバイス10の1つの実施形態を示す。変換処理ユニットデバイス10は、データ、ステートメントおよび/または命令を記憶するための外部メモリまたは記憶ユニット
20と通信する。変換処理ユニット10は、データを受信および送信するための入力および出力機構も備えることを理解されたい。
【0102】
変換処理ユニット12は、互いに接続された変換制御ユニット16および変換論理ユニット18を備える。
【0103】
変換制御ユニット16は、変換処理ユニットデバイス10の構成要素および部分構成要素への、それらからの、およびそれらの間のデータ移動のシーケンスを調整するように構成される。
【0104】
変換論理ユニット18は、命令によって指定される基本算術演算、論理演算、制御動作、および入出力(I/O)動作を実施することによるコンピュータプログラムの命令を含む。
【0105】
変換論理ユニット18は、変換に関するすべての情報を記憶するように構成される。1つの実施形態では、変換論理ユニット18は、命令によって指定される基本算術演算、論理演算、制御動作、および入出力動作を実施することによって変換に関連する命令を指示する制御電子回路(すなわち、制御ユニット)を備える。
【0106】
フォーム変換命令セット14は、記憶されたすべての変換関連データを含み、変換処理ユニット12によってアクセスすることができる。フォーム変換命令セット14は、データ処理動作、変換動作、制御フロー動作および複雑な動作のための命令を含む。説明されている動作の一部は、照合、比較、変換適用、置換、取得、コピー、重ね合わせ、追加、命名、変換の並列および直列シーケンス、変換の順序および適用回数、フィードならびに補間である。フォーム変換命令は、変換処理ユニット12から分離する必要はなく、確保された変換ブロック、専用レジスタ、記憶ユニット、メモリまたはディスクにエンコードすることができる。さらに、フォーム変換命令は、電子回路から構築することもできる。
【0107】
変換処理ユニットデバイス10は外部メモリ20に接続可能であるが、
図2は、内部メモリ32を備える変換処理ユニットデバイス30の1つの実施形態を示している。変換処理ユニットデバイス30は、変換処理ユニット34およびフォーム変換命令セット14を備える。変換処理ユニット34は、変換制御ユニット16と、変換論理ユニット18と、データ、ステートメントおよび/または命令を記憶するための内部メモリまたは記憶ユニット32とを備える。
【0108】
以下に説明するように、変換論理ユニット18のアーキテクチャは、それが変換に関するすべての情報を含む限り、変化し得る。
【0109】
図3は、変換論理ユニット40のアーキテクチャの1つの実施形態を示す。変換論理ユニット40は、各々がそれぞれの変換に関連するすべての情報を記憶するための複数の変換ブロック42a、42b、...42nを備える。
【0110】
図示の実施形態では、各変換ブロック42a、42b、...42nは、それぞれのエフェクトブロック44a、44b、...44nおよびそれぞれの出力サイトまたは出力サイトブロック46a、46b、...46nを含む。各エフェクトブロック44a、44b、...44nは、エフェクトブロック44a、44b、...44nに関連するそれぞれのエフェクトに関するデータを記憶するための複数のメモリユニットまたはレジスタ48を含み、各出力サイトブロック46a、46b、...46nは、出力サイトブロック46a、46b、...46nに関連するそれぞれの出力サイトに関連するデータを記憶するための複数のメモリユニットまたはレジスタ48を含む。メモリユニット48は、データを記憶するように構成され、記憶される複数のビットによって規定され得ることを理解されたい。
【0111】
1つの実施形態では、一部の変換ブロック42a、42b、...42nのみが、他の一部の変換ブロック42a、42b、...42nのみと通信することができる。別の実施形態では、一部の変換ブロック42a、42b、...42nは、互いに独立しており、任意の他の変換ブロック42a、42b、...42nと通信しない場合がある。さらなる実施形態では、
図4に示すように、変換ブロック42a、42b、...42nはすべて相互接続され、結果、任意の変換ブロック42a、42b、...42nは任意の他の変換ブロック42a、42b、...42nと通信することができる。
【0112】
図4は、各々がそれぞれのエフェクトブロックおよびそれぞれの出力サイトブロックを含む複数の変換ブロック52a、52b、52c、52d、...52m、52nを含む変換論理ユニット50を示す。各変換ブロック52a、52b、52c、52d、...52m、52nはすべての変換ブロック52a、52b、52c、52d、...52m、52nに直接接続され、結果、任意の変換ブロック52a、52b、52c、52d、...52m、52nの出力は、任意の他の変換ブロック52a、52b、52c、52d、...52m、52nの入力とすることができる。
【0113】
1つの実施形態では、変換ブロックは、
図5に示すように、少なくとも1つの制御ユニットをさらに備えることができる。
【0114】
図5は、入力サイトまたは入力サイトブロック62、エフェクトブロック64、出力サイトまたは出力サイトブロック66、および命令に基づいて動作を指示する制御ユニット68を含む変換ブロック60の1つの実施形態を示す。入力サイトブロック62は、複数のメモリユニット70および複数の論理ユニット72を含む。エフェクトブロック64および出力サイトブロック66は、入力サイトブロック62と同様のアーキテクチャを有し、エフェクトブロック64は、複数のメモリユニット74および複数の論理ユニット76を含み、出力サイトブロック66は、複数のメモリユニット78および複数の論理ユニット80を含む。論理ユニット72、76、80は、算術論理演算ユニット、変換論理ユニット、変換論理ユニットの別の部分への参照などであってもよい。
【0115】
変換ブロック60は、入力サイトブロック62と出力サイトブロック66の両方を含むが、入力サイトブロック62を省略してもよく、結果、変換ブロック60はエフェクトブロック64および出力サイトブロック66のみを含んでもよいことを理解されたい。同様に、出力サイトブロック66を省略してもよく、結果、変換ブロック60はエフェクトブロック64および入力サイトブロック62のみを含んでもよい。
【0116】
1つの実施形態では、制御ユニット68を省略してもよい。同じまたは別の実施形態の変換ブロックにおいて、論理ユニット72、76および80を省略してもよい。
【0117】
図示の実施形態では、論理ユニット72、76、および80は、それぞれ、入力サイトブロック62、エフェクトブロック64、および出力サイトブロック66に含まれるが、論理ユニット72、76、および80を、変換ブロック60内の入力サイトブロック62、エフェクトブロック64および出力サイトブロック66の外側に配置することができることが、当業者には理解されたい。
【0118】
入力サイトブロック62、エフェクトブロック64および出力サイトブロック66の少なくとも1つは論理ユニットを含まなくてもよく、一方、入力サイトブロック62、エフェクトブロック64および出力サイトブロック66の少なくとも1つは論理ユニットを含むことも理解されたい。
【0119】
図6は、入力サイトまたは入力サイト範囲ブロック102、入力サイトまたは入力サイトブロック104、エフェクトブロック106、出力サイトまたは出力サイト範囲ブロック108、出力サイトまたは出力サイトブロック108、命令に基づいて動作を指示する制御ユニット112、およびメモリ114を含む変換ブロック100の1つの実施形態を示す。入力サイト範囲ブロック102は、複数のメモリユニット120および複数の論理ユニット122を含む。入力サイトブロック104は、複数のメモリユニット124および複数の論理ユニット126を含む。エフェクトブロック106は、複数のメモリユニット128および複数の論理ユニット130を含む。出力サイト範囲ブロック108は、複数のメモリユニット132および複数の論理ユニット134を含む。出力サイトブロック110は、複数のメモリユニット136および複数の論理ユニット138を含む。メモリ114は、複数の記憶ユニット140を備える。変換ブロック100は、入力サイト、入力範囲、エフェクト、および出力サイト、および出力範囲を含む変換を実行するのに適していることを理解されたい。
【0120】
論理ユニット122、126、130、134、138は、算術論理演算ユニット、変換論理ユニット、変換論理ユニットの別の部分への参照などであってもよい。
【0121】
図1および
図2を再び参照すると、フォーム変換命令セット14は、演算および複雑な命令などの変換データを記憶する。たとえば、フォーム変換命令セット14は、データおよびアドレスの読み出し、書き込みおよびコピーまたはデータ符号化などのデータ処理およびメモリ操作を可能にする。フォーム変換命令セット14はさらに、照合、比較、変換適用、置換、取得、コピー、重ね合わせ、追加、命名などの変換に対する動作を可能にすることができる。フォーム変換命令セット14は、並列および直列変換適用、変換適用の順序付け、適用回数の制御、変換優先順位付け、タイムライン作成などの制御フロー動作も可能にする。フォーム変換命令セット14はさらに、フィード、補間、変換存続期間(変換が適用され始め、適用が終了する時間または順序を与える)などの複雑な命令を担当する。
【0122】
変換ブロックがレジスタまたはメモリユニット48などのメモリユニットを含む実施形態では、変換処理ユニットデバイスは、変換論理ユニットの外部にメモリユニットを含まなくてもよい。たとえば、
図2に示されるメモリユニット32を省略してもよい。そのような実施形態では、変換ブロック自体を使用して、入力および出力ユニバースに関連するすべてのデータなどのデータを記憶することができ、それらを使用して高速アクセスメモリおよびストレージに使用することができる。この手法を使用して、変換論理ユニットを、変換ブロックを記憶ユニットとして使用することができる変換ブロックのみから構成されるようにすることができる。
【0123】
上述のように、データは、レジスタ、外部メモリ、内部メモリなどに記憶することができ、データは、種々の方法でフォーマットおよび符号化することができる。1つの実施形態では、データは、変換処理ユニットデバイス10のために最適化されたフォームおよび変換として符号化される。フォームは、あらゆるタイプのデータを表現するために使用することができ、高度に階層的な構造を表現することができる。これはたとえば、肝臓および心臓を含む体であり、心臓は心筋細胞から構成され、細胞はそれ自体が原子から構成される分子から構成されるDNAを含む。変換によってフォームが効率的に処理されることを可能にするデータとともに、フォームはそのような階層構造を正確に表現するようにすることができる。
【0124】
フォーム変換処理ユニットがメモリを含まない実施形態では、フォームなどのデータは、変換ブロックのレジスタに直接記憶される。この場合、一部の変換ブロックは記憶に使用することができ、空の入力サイトブロックおよび出力サイトブロックを有することができ、一方、エフェクトブロックはフォームなどのデータを含むことができる。代替的に、アクセス速度に応じて、入力サイト、出力サイトおよびエフェクトブロックが各々、フォームのコピーを含むことができる。
【0125】
1つの実施形態では、キーボード、マウス、および他の入力デバイスを、確保済みまたは事前に割り当てられた変換ブロックに接続することができる。モニタ、VRヘッドセットおよび他のデバイスなどの出力も、複数の変換ブロック、および変換ブロックの識別番号またはアドレスに接続することができる。
【0126】
1つの実施形態では、制御ユニットまたは制御ユニットの一部は、確保された変換ブロックのセットから構成されてもよい。これにより、プロセッサの内部プロセスを種々のタイプの最適化に合わせて変更することが可能になる。
【0127】
上述の変換処理ユニットデバイスは、変換を実行する、すなわち、以下で詳細に説明するように、外部サイトに従って、変換データを使用し、任意選択的に入力サイト、入力範囲、および出力範囲に含まれる情報を使用して、選択されたフォームにエフェクトを適用するように構成されていることを理解されたい。
【0128】
図7~
図11は、複数の変換ブロック152a、152b、152c、152d、...152m、152nのみを含む変換処理ユニットデバイス150を使用して、データを計算および処理するための例示的なプロセスを示す。各変換ブロック152a、152b、152c、152d、...152m、152nには、それぞれの制御ユニット154a、154b、154c、154d、...154m、154n、それぞれのエフェクトブロック156a、156b、156c、156d、...156m、156n、およびそれぞれの出力サイトブロック158a、158b、158c、158d、...158m、158nが与えられている。変換処理ユニットデバイス150のアーキテクチャはクロックレスであり、結果、デバイス150は非同期プロセッサデバイスに対応する。
【0129】
変換ブロック152a、152b、152c、152d、...152m、152nはすべて相互接続されており、結果、各変換ブロック152a、152b、152c、152d、...152m、152nは、他の変換ブロック152a、152b、152c、152d、...152m、152nのいずれか1つとデータを交換することができる。
【0130】
図7に示すように、変換処理ユニットデバイス150は、入力信号を受信し、出力信号を出力するように構成される。入力信号は、たとえば、キーボードのキーの押下を示すことができる。
【0131】
図8に示すように、変換ブロック152aなどのいくつかの変換ブロックは空であり、一方、変換ブロック152b、152d、および152mなどの他の変換ブロックは事前定義され、いくつかの変換に関する情報を含む。
【0132】
この例では、キー1が押され、変換ブロック152aが、キーボードからキー1が押されたという信号を受信する。変換ブロック152aの制御ユニット154aは、受信した入力信号に従って、エフェクトブロック156aおよび出力サイトブロック158aを更新する。本例では、制御ユニット154aは、
図9に示すように、エフェクトブロック156aのレジスタの1つを2進数1によって更新し、出力サイトブロック1
58aのレジスタの1つを、文字Kを表現する2進数によって更新する。
【0133】
変換ブロック152aの制御ユニット154aは、エフェクトおよび出力サイトの値を符号化する信号を他の変換ブロック152b、...152nに送ることにより、照合プロトコルを開始する。変換ブロック152aから信号を受信すると、変換ブロック152b、...、152nの制御ユニット154b、...、154nは、出力サイトの入来信号と、その記憶されている値との比較を開始し、一致がある場合、記憶されている値は、入来エフェクト値に変更される。一致がない場合、記憶されている値は置換も変更もされない。本例では、変換ブロック152dのエフェクトブロック156dに含まれる値は、変換ブロック152aの出力サイトブロック15
8aに含まれる値に対応する。したがって、エフェクトブロック156dに含まれる値は、
図10に示されるように1に変更される。デジタル回路のレベルでは、複数の論理ゲートから構成されるデジタルコンパレータを使用して照合を達成することができ、通常の制御ユニットなしで直接達成できる。論理ゲートは制御ユニットに対応する。さらに、データの送信、データの受信、ならびに命令および動作の開始は、制御ユニットを使用せずに変換ブロックレベルで直接実行することができる。
【0134】
次に、一致があった変換ブロック152dの制御ユニット154dは、その新しいエフェクト値を示す信号を他の変換ブロック152a、152b、152c、152n、152mに送り、当該他の変換ブロックは、各々がそれらの出力サイト値(すなわち、それらの出力サイトブロック158a、158b、158c、158n、158mに記憶されたそれらの出力サイト値)と、変換ブロック152dの新しいエフェクト値とを照合しようと試みる。本例では、エフェクト2(または2進フォームでは10)および出力サイト1による変換に関連付けられる変換ブロック152mに一致がある。次に、変換ブロック152mは、そのエフェクト値およびその出力サイト値を変換ブロック152dに送り、最近更新された値1を2に置き換える。このとき、変換ブロック152dに関連する変換は、出力サイトにおいて値2およびOを有するエフェクトに対応する。たとえば、新たに更新された変換152dは、次いで、数2を示すためにモニタピクセル値を更新することを担当する複数の変換に信号を送ることができる。別の例では、新たに更新された変換152dはまた、追加の内部プロセッサ計算をトリガするか、またはそれに関与することもできる。
【0135】
上記の例では、変換からの各照合試行におおいて1つの一致のみが可能であったが、各照合試行において複数の一致が発生する可能性があることを理解されたい。複数の一致がある場合、一致した各変換が更新され、他の複数の変換データの照合などの計算プロセスが続行される。これにより、変換処理ユニットデバイスのアーキテクチャがクロックレスであるだけでなく、本質的に高度な並列化も可能になる。さらに、一致するインスタンスの数が指数関数的に増加する可能性がある(5つの一致は各々、他の5つの変換を照合することができる5つの一致をトリガし、したがって、5、5*5、5*5*5の同時変換事象が与えられる)。
【0136】
1つの実施形態では、変換ブロックは、(入力範囲を記憶するための)入力サイト範囲および/または(出力範囲を記憶するための)出力サイト範囲を含むこともできる。この場合、上記の例に戻って参照すると、照合プロトコルは、照合を試行するすべての変換ブロックに照合信号を送信するのではなく、すべての変換ブロックのうちのサブセットのみに送信する。たとえば、エフェクト1および出力サイトKを与えられた変換ブロック152aからの信号は、変換ブロック152i~152kにのみ送信され得る。これは、変換ブロック152aの出力サイト範囲または入力サイト範囲が、照合信号が送信されることになるレジスタ/変換ブロック識別情報(またはレジスタのアドレス)のリストを含む場合に行われ得る。このような構成により、コンピュータアーキテクチャ(または変換ブロックを定義するユーザ)は、一致の検索の「範囲」を事前定義された変換ブロックのセットに制限することにより、照合時間またはエネルギー消費を低減することができる。
【0137】
さらに、入力サイト範囲および/または出力サイト範囲は、類似の変換ブロックを区別する方法を提供することができる。上記の例では、エフェクト1および出力サイトKを有する変換と一致する複数の変換ブロックが存在する可能性がある。[エフェクト1および出力サイトO]および[エフェクトKおよび出力サイトM]を有する変換がある可能性があるが、出力サイト範囲により、一致をたとえば、[エフェクト1および出力サイトO]など、そのうちの1つだけに制限することが可能である。これは、その識別情報が出力サイト範囲に含まれるためである。
【0138】
送信された信号または照合要求は、出力サイト一致のために送信されるように確保されるだけでなく、他の変換から開始することもできる。たとえば、入力サイトを有する変換ブロックが、信号を開始(または信号を受信)することができる。入力サイト照合は、入力サイト範囲にリストされているレジスタに対して入力サイト照合を可能にすることにより、出力サイトと同様に機能する。
【0139】
1つの実施形態では、変換ブロックは、制御ユニット(複数可)、変換自体、任意の数の他の変換または場合によっては任意の外部デバイスによって読み取りおよび書き込みが可能なデータ(限定ではないが、任意の数のフォームまたはレジスタへの参照など)を有するレジスタを含むデータセクションも有することができる。このようなデータの例は、変換ブロックがマッチングプロトコルを開始した回数、または、この変換ブロックによって実行することができる照合の回数を含むことができる。
【0140】
変換処理ユニットデバイスの上記のアーキテクチャは、仮想マシン上で再現することもできる。Cuda(登録商標)、OpenCL(登録商標)、OpenMP(登録商標)、OpenCV(登録商標)、Compute Shaders(登録商標)、マルチスレッドライブラリ、並列計算ライブラリおよび/または他のタイプのライブラリとともに、1つまたは複数のGPU、コア、CPU、処理デバイス、コンピューティングデバイスおよび/またはフィールドプログラマブルゲートアレイ(FPGA)を使用して、仮想マシン上でアーキテクチャの全体または一部を近似することが可能である。
【0141】
以下に示す結果は、CPUおよびGPUを備えた仮想マシン上に実装された上記のアーキテクチャを使用して達成された。このようにして得られた仮想マシンは、中でも、ニューラルネットワークのシステムである3Dの人工ニューラルネットワークを訓練し、DNA複製をシミュレートし、クラウドシミュレーションを作成するために使用された。
【0142】
以下では、上記のアーキテクチャによって可能になる、変換を適用する方法について説明する。
【0143】
図12は、視覚的プログラミングのための方法200の1つの実施形態を示す。方法200は、ハードウェアまたは仮想マシンのいずれかに実装された上記の変換処理設計によって実行することができる。
【0144】
ステップ202において、変換が受信される。本事例において、変換は、少なくとも、入力サイトの識別情報、出力サイト、エフェクトおよび変換データの識別情報を含む。ただし、前述のように、変換はエフェクトおよび入力サイト、または入力および出力サイトのみを含み得、変換データは任意選択である。
【0145】
ステップ204において、入力サイトが入力ユニバースから取り出される。入力サイトは、変換に関連する情報が取り出される入力ユニバースから少なくとも1つのフォームを識別する。ステップ206において、出力サイトが出力ユニバースから取り出される。1つの実施形態では、出力サイトは、入力サイトから取り出される情報を使用して出力ユニバースから取り出される。出力サイトは、変換に関連付けられるエフェクトが適用される出力ユニバースの部分空間(すなわち、出力ユニバースに含まれる所与のフォーム)を規定する。
【0146】
ステップ208において、変換において定義されるエフェクトが、変換データおよび入力サイトから取り出される情報を使用して、取り出された出力サイトに適用され、それにより、変更された出力サイトが得られる。
【0147】
ステップ210において、変更された出力サイトが出力される。1つの実施形態では、変更された出力サイトはメモリに記憶される。同じまたは別の実施形態では、以下で説明するように、変更された出力サイトのグラフィック表示が出力ユニバースの表現内に表示される。さらに別の実施形態では、変更された出力サイトは、第2の変換が実行されるための入力として使用されてもよい。たとえば、
図8~
図11を参照すると、変更された出力サイトは、その関連する変換ブロック152a、152b、152c、152d、...152m、152nから少なくとも別の変換ブロック152a、152b、152c、152d、...152m、152nに送信することができる。
【0148】
1つの実施形態では、入力サイトを使用して、変換の任意の部分を変更することができる。たとえば、入力サイトデータを使用して、出力サイト、変換データ、出力範囲およびエフェクトの任意の部分をインスタンス化、更新、計算、または変更することができる。
【0149】
1つの実施形態では、変換は、入力サイトの識別情報および/または変換データを含まない。この場合、入力ユニバースから入力サイトを取り出すステップ204が省略され、および/または、変換データを取り出すステップが省略され、入力サイトおよび/または変換データに関する情報を考慮せずに出力サイトにエフェクトが適用される。
【0150】
別の実施形態では、変換は、出力サイトの識別情報および/または変換データを含まない。この場合、出力ユニバースから出力サイトを取り出すステップ206が省略され、および/または、変換データを取り出すステップが省略され、出力サイトおよび/または変換データに関する情報を考慮せずにエフェクトが適用される。
【0151】
出力サイトおよび変換データの受信が省略される実施形態では、ステップ202は、エフェクトのみを受信することを含む。その後、エフェクトおよび入力サイトのみが受信される。次に、ステップ206は、入力ユニバース内の受信された入力サイトを取り出すこと、すなわち、受信された入力ユニバースの入力ユニバースへの一致を見つけ、取り出された入力サイトに関連する情報を取り出すことに存する。ステップ208は、変更されたエフェクトを得るために、入力一致に関連する取り出された情報を使用してエフェクトを変更することに存する。次に、ステップ210において変更されたエフェクトが出力される。変更されたエフェクトは、エフェクトブロック内など、メモリ内に記憶され、および/または表示されるために出力され得る。
【0152】
1つの実施形態では、ステップ204は、入力サイトに関連する入力範囲を取り出すこと、および/または出力サイトに関連する出力範囲を取り出すことをさらに含む。この場合、エフェクトは、取り出された入力範囲に関連する情報および/または取り出された出力範囲に関連する情報を使用して適用される。
【0153】
1つの実施形態では、方法200は、出力ユニバースを表現するための第1のセクションと、変換のグラフィック表現を表示するための第2のセクションとを含むユーザグラフィカルインターフェースを表示することをさらに含む。1つの実施形態では、第2のセクションは、入力サイトを規定するための第1のウィンドウ、エフェクトを規定するための第2のウィンドウ、出力サイトを規定するための第3のウィンドウ、および変換データを入力するための第4のウィンドウを含む。ユーザインターフェースは、出力ユニバースの視覚的表現、および変換の視覚的表示をディスプレイ上でユーザに表示することができる限り、変化してもよいことを理解されたい。
【0154】
1つの実施形態では、入力サイトは第1のウィンドウに表示され、エフェクトは第2のウィンドウに表示される一方、出力サイトは第3のウィンドウに表示される。
【0155】
以下でさらに詳細に説明するように、ユーザは、任意のウィンドウの内容を描画および編集することができる。
【0156】
上述の方法200は、コンピュータによって実行されるときに上記のステップを実施するコンピュータ実行可能命令を記憶するコンピュータ可読メモリを備えるコンピュータプログラム製品として実施することができる。
【0157】
図13は、視覚的プログラミングのためのシステム230の1つの実施形態を示す。システム230は、少なくとも1つのCPUおよび/または少なくとも1つのGPUなどの処理ユニット232と、通信ユニット234と、命令およびデータが記憶されるメモリ236とを少なくとも備える。処理ユニット232は、方法200の上述のステップを実行するように構成される。1つの実施形態では、システム230は、上述の変換処理ユニットアーキテクチャを再現するように構成された仮想マシンに対応する。
【0158】
上記のように、変換は、エフェクト、入力サイトおよび/または出力サイト、ならびに、任意選択的に変換データ、入力範囲および/または出力範囲から構成され得る。単純な例として、出力サイトは、出力ユニバース内でフォームが変化しているものと考えることができ、エフェクトは同じフォームを示すが、たとえば、新しい位置にあるかまたは新しい形状を有するなどの新しい状態にある。出力サイトにある1枚の紙(または1枚の紙の表現)を考えることができ、この1枚の紙がくしゃくしゃになってボールのようになっていることがエフェクトである。ここで、変換のエフェクトは、紙をくしゃくしゃにしてボールにする動作に対応する。この変換を100枚のスタックに100回適用して、くしゃくしゃになった100個の紙のボールを得ることができる。
【0159】
存在する場合、入力サイトは、入力ユニバースの部分空間から、すなわち入力ユニバース内で選択された少なくとも1つのフォームから情報を抽出するために使用される。次に、選択したフォーム(複数可)の情報、および、任意選択的に、変換の適用回数、変換のスタイルおよびタイプなどの情報を含むがこれらに限定されない変換データに基づいて、変換のエフェクトが適用される。
【0160】
入力または出力サイトを選択するための任意の適切な方法を使用することができることを理解されたい。たとえば、システムから選択したフォームをコピーすること、ドラッグアンドドロップ機能を使用すること、他のシステムまたは他のシステムの一部をインポートすること、他のソフトウェアまたはデバイスからファイルをインポートすること、描画ツール、変換、グラフィカルユーザインターフェースボタン、変換に接続されたグラフィカルユーザインターフェースボタン、フォームおよび変換によって規定されるグラフィカルユーザインターフェースボタンなどソフトウェア機能を用いて直接フォームを作成することによって、入力または出力フォームを挿入することができる。
【0161】
1つの実施形態では、フォームを変換の一部に自動的に、またはユーザの要求によって挿入すると、フォームのコピーが変換の他の部分に自動的に表示されてもよい。1つの実施形態では、自動的に生成されたコピーは、挿入されたフォームと同一であり得る。別の実施形態では、自動的に生成されたコピーは、挿入されたフォームと異なっていてもよい。たとえば、自動生成されたコピーの透過性は異なっていてもよい。次いで、ユーザは、コピーのいずれの要素を保持、削除、置換、編集、または変更するかを決定することができる。これにより、変換およびシステムの迅速な構築が可能になる。システムは、フォーム、変換、フォームのコレクション、変換のコレクション、またはフォームおよび変換のコレクションであると理解されたい。
【0162】
図14は、入力サイト252、入力範囲254、エフェクト256、出力サイト258、出力範囲260および変換データ262を含む変換の例示的なグラフィック表現250である。入力範囲は、入力サイト一致を選択することができる入力ユニバース264の一部を選択することを可能にし、一方、出力範囲は、中に存在する出力ユニバース266の出力サイトにエフェクトを適用することができる出力範囲の一部を規定することを可能にする。
【0163】
1つの実施形態では、以下のコマンド/言語を使用して、変換を定義することができる。
【0164】
記号「:=」またはテキスト入力セクションは、フォーム、変換、またはユニバースに名前を付けるために使用することができる。
【0165】
「コピー(Copy)/切り取り(Take)」は、入力サイト、すなわち、入力ユニバース内で選択されるフォームが、エフェクトの適用後に入力ユニバースに残る(コピー)か、または、変換が適用された後に入力ユニバースから消える(切り取り)かを指定するために使用することができる。
【0166】
「追加(Add)/置換(Replace)」は、出力サイト、すなわち、出力ユニバース内で選択されるフォームが、変換が適用された後、残る(追加)か、または、出力ユニバース内で置換される(置換)かを指定するために使用することができる。場合によっては、フォームが互いに重なり合い、したがって、同じ場所に同じフォームの複数のコピーがあることが許容される。
【0167】
「回数(#times)」は、変換が適用される回数を示すために使用することができる。
【0168】
「すべて(All)」は、変換が、その時点またはタイムラインの現在の位置における変換の入力サイトおよび出力サイトを満たすフォームの各々を1回変更することを示すために使用することができる。
【0169】
「常に(Always)」は、変換が常に適用される準備ができているか、または、無限回数適用することができるか(場合によっては、入力および出力の条件が満たされている限り)を示すために使用することができる。
【0170】
「Application#」は、さまざまな変換が適用される順序を示すために使用することができる。システム内にいくつかの変換が存在する場合、最も低い番号が割り当てられている変換が、次に適用される変換である。
【0171】
「Lifespan parameters(存続期間パラメータ)」(図示せず)は、変換がいくつのステップ内で適用され得るか、および、いくつのステップにわたって変換が適用され得るかを示すために使用され得る。これらのパラメータは、グローバルステップカウンタを参照し、変換を適用することができるステップ(整数または区間)を示すことができる。
【0172】
他のタイプの変換データ(図示せず)は、限定ではないが、変換が適用後に残るかまたは消えるかに関する指示、変換が属するグループ、変換が並列に、順次または同時に適用されるべきかに関する指示、変換のタイプ、変換のスタイル、変換の名前、制約、グローバル軸またはローカル軸などのデータを含んでもよい。
【0173】
変換のアクティブ化およびプロセス
1つの実施形態では、変換が入力サイトを含み、入力サイトが入力ユニバースで内に一致を有する場合、変換はアクティブ化され、実行することができる。入力サイト内に満たさなければならない不等式または条件がある場合、出力サイトが出力ユニバース内に一致を有する場合であっても、不等式が満たされるまで変換は適用されない。
【0174】
1つの実施形態では、変換の実行のプロセスは以下の通りである。
まず、入力サイト内で定義されたフォームと入力ユニバース内のフォームとの一致が検索される。一致が見つかると、識別されたフォームが入力ユニバース内で選択される。
【0175】
次に、入力ユニバース内で選択されたフォームに関連付けられた情報に基づいて、存在する場合、入力サイトまたは入力範囲内で定義された不等式、条件または方程式が満たされるか否かが判断される。1つの実施形態では、満たすべき不等式および方程式は、存在する場合、入力範囲または出力範囲内に含めることができる。
【0176】
エフェクト、出力サイトおよび変換データは、適切な変数(または*)を情報または変更された情報に置き換えることにより、選択された情報によって更新される。この場合、変換はアクティブ化されたと言われ、値は初期化されたと言われる。
【0177】
次に、出力サイト内で定義されたフォームと一致する出力ユニバースに含まれるフォームが選択される。
【0178】
次に、変換は、出力ユニバース内で選択されたフォームを、変換のエフェクト内で定義されたフォームに置き換える。1つの実施形態では、エフェクト内で定義されたフォームは、出力ユニバース内で選択されたフォームに重ね合わせることができる。
【0179】
1つの実施形態では、入力サイトが常に入力ユニバースの所与のフォームに接続されまたは一致する場合、入力ユニバース内の所定のフォームへの変更により、上記のプロセスの実行がトリガされる。この場合、変換は出力サイトを一切含まない場合があり、したがって出力範囲を一切含まない場合がある。常に接続されたフォームの例は、入力ユニバース内に1つのフォームがあり、同じフォームが入力サイト内で定義されており、結果、変換が切り取りではなくコピーに設定されるシナリオに対応する。この場合、入力ユニバース内に存在し、入力サイト内で定義されたフォームに加えられた変更が検出されると、変換が自動的に実行される。
【0180】
変換適用
変換は、入力範囲および出力範囲を含むとき、以下のように適用することができる。入力範囲および出力範囲は、システム全体、空、フォーム、フォームタイプ、システムのサブシステム、システムの多次元空間、またはシステムのフォームの周りの多次元空間(たとえば、3Dメッシュのエッジの周りのボリューム)などとすることができる。入力範囲は、変換が情報を抽出することを可能にされる場所に関する情報を提供する。すなわち、入力範囲は、入力サイト内で識別されたフォームを選択することができる入力ユニバースの部分空間を規定する。入力サイトは、入力範囲から選択することができるフォームを定義する。エフェクトは、入力範囲の選択されたフォームの情報に依拠するフォームから構成される。出力範囲は、出力ユニバース内の変換を適用することができる場所に関する情報を提供する。変換は、出力範囲から出力サイトに類似するかまたは等しいフォームを選択することによって適用される。次に、システムの選択されたフォームが変更され、追加され、横に追加され、近くの階層位置に追加され、またはエフェクトからの対応するフォームに置換される。出力サイトのフォームとエフェクトとの間の対応は、たとえば、それらの間に線を表示することによって、または、種々の場所に表示されるデータを用いてなど、種々の方法で示すことができる。
【0181】
入力サイトおよびエフェクトを与えられた変換は、入力ユニバース内のフォームのコレクションからフォームを取り上げ、それらを使用して「エフェクト」と呼ばれるオブジェクトを構築することとして理解することができる。選択されたフォームは、入力ユニバースから削除されるか、または変更されないままになる。出力サイトおよびエフェクトを有する変換は、出力ユニバースからフォームを選択し、その後、選択したフォームを追加、置換、および変更することとして理解することができる。特に選択したフォームに要素が追加される場合、出力サイトのフォームがエフェクト内に存在し得る。変換は、入力フォームと出力フォームの両方を有することができる。したがって、入力からエフェクトを作成し、次いで、システムからのフォームを変更するために適用することができる。
【0182】
1つの実施形態では、選択されたフォームは、オブジェクトの名前またはタイプタグであり得る。変換データは、タグ自体またはタグの内容が選択されるべきか否かに関する指示を含み得る。たとえば、これにより、タグ「分子」を選択し、使用または置換のためにタグ「分子」に関連付けられた分子を使用することが可能である。これは、特定のフォームに添付されているものをすべて選択または変更する必要があることを示す表記(記号または色)を使用して、タグまたは名前とは異なるオブジェクトに拡張することができる。さらに、表記によって識別される所定の構造を有しないすべてのフォームを変更するために選択される表記(記号または色)を定義することができる。たとえば、タグ分子を有するフォームを選択するが、炭素原子(C)を有しない変換を定義することができる。
【0183】
変換データ
変換が情報を抽出し、構築され、適用され、システム内で挙動する様式は、変換データによって調整することができる。このような変換データの例は、変換が適用される回数(有限または無限)、変換が適用される順序、変換が適用できなくなったときに変換が削除されるか、またはとどまるかに関する指示、特定のタイプのすべてのオブジェクトに変換が適用されるべきか否かに関する指示、変換が補間ステップを表現するか否かに関する指示、変換がオブジェクトをスケーリングまたは回転させる様式、変換が絶対または相対のいずれにおいて挙動するかに関する指示、変換が座標系にどのように影響するかの指標、変換の名前、変換が使用されるシステムの名前、変換の作成者および編集者の名前、変換の使用に関連するコメント、ローカルおよびリモートリポジトリ、レーティングなどを含む。変換データは変換全体に割り当てることができるが、変換の部分の異なるコレクションに異なるデータセットを割り当てることもできる。たとえば、データは、入力サイトとエフェクトとから構成されるカップル、または出力サイトとエフェクトとから構成されるカップルに割り当てることができる。これを使用して、たとえば、特定のタイプの多数のフォームに基づくエフェクトを作成し、次いで、変換を適用して、単一のオブジェクトを変更することができる。
【0184】
1つの実施形態では、有用なタイプの変換データは、「ポスト(post)」および「プレ(pre)」と呼ばれる。変換に「ポスト」を割り当てることは、この変換が非ポスト変換の各適用後に適用されることを示す。これを3Dアニメーションで使用すると、
図15aおよび
図15bに示すように、ポイントのメッシュを特定のフォームに追従させることができる。たとえば、三角形の上に3Dメッシュを追加するポスト変換によって、3Dメッシュ(または長方形のボックス)を三角形の位置および向きに追従させることができる。三角形を移動した後、ポスト変換があるため、船は三角形に続く位置に更新される。
【0185】
1つの実施形態では、フォームを別のフォームのサブセットとして挿入することができ、結果、サブセットのフォームの解釈はその親フォームに依存する。たとえば、3Dメッシュは三角形のサブセットとして挿入することができ、三角形が動くと、メッシュは三角形の位置に基づいて解釈されるため、メッシュはそれに追従する。
【0186】
同時および一連の変換
変換のシーケンスを構築することができ、この場合、前の変換がまだ存在するまで次の変換を適用することができないように、変換が順次適用されることになることを理解されたい。シーケンス自体もフォームであるため、データのコレクションを割り当てることができる。1つの実施形態では、変換の順序番号は、いずれの変換が次に適用されるべきかを示す。変換データに番号または等しい順序番号のない複数の同時シーケンスは、それぞれの優先順位に応じて、同時にまたは次々に適用することができる。代替的に、実行の順序は、各変換に割り当てられた確率を使用して、変換データ情報に基づいて、フレームワークのランダム関数から決定される。順序番号は、関数および演算によって与えることができる。たとえば、適用は、2つ以上の変換の間で交互に切り替わるようにすることができる。1つの実施形態では、シーケンスはアクティブである特性を有することができ、シーケンスが含む変換は、いくつかのまたはすべてのタイムラインステップにおいて適用される。1つの実施形態では、ユニバースまたはイベントの変化が、それらが含む変換を実行することによって処理されるシーケンスの取り出しをトリガする。
【0187】
自己および高次変換
変換がどこから情報を抽出することができるか、または変換をどこに適用することができるかについては制約がない場合があることを理解されたい。たとえば、変換を適用して、任意の他の変換の任意の部分、システムのデータ、または変換に関連付けられたデータを変更することができる。変換は、さらには情報を抽出し、または、それ自体の部分の所与の1つを変更することができる。これらの機能は、より高次のシステムへの機会、および、モデルにおける再現の組み込みを提供する。
【0188】
タイムラインアクセス
各ステップにおいて、またはシステムが変化するたびに、以前の状態をメモリに記録して、システムのタイムラインを構築することができる。タイムラインは、システムの履歴と考えることができる。同様に、システムの各要素またはフォームのタイムラインを記録することができる。たとえば、メッシュのエッジがあった位置を記録して、その後アクセスできるようにすることができる。この場合、エフェクトまたは出力サイトなどの変換の一部は、フォームだけでなく、タイムラインに記録されたフォームの以前の状態も含むことができる。これは、微分計算に関連するモデリングを作成するのに有用であり得る。たとえば、エッジが特定の位置にあり、さらに過去にある特定の位置にあった場合、エッジを削除する変換を構築することができる。タイムラインの未来を使用することも可能であるが、これにはシステムを複数回実行するか、または、複数のパスを実行する必要がある。たとえば、エッジが所与の実際の位置にあり、将来的にある特定の位置になる場合、この時点でエッジが削除され得る。この場合、これは、エッジを削除せずにシステムを1回実行した後で将来が決定されたと想定している。
【0189】
以下は、将来のタイムラインのアクセスに関連するより正確な例を示している。将来のステップにおいてシステム内に特定の将来のフォームが存在する(または必要な状態にある)場合、本ステップS0においてシステムに変換を適用することができる。このような変換を適用することができる場合、システムは変換を適用せずにシステムの実行を継続し、指定されたステップにおいてシステム内に将来のフォームがあるか否かを確認する。フォームが存在する場合、システムはステップS0に戻り、変換を適用してシステムを実行する。フォームが将来のステップにおいて存在しない場合、システムはそこから実行を継続する。この技法を使用して、システムを最適化し、または、システム内の悪影響を回避することができる。
【0190】
タイムラインへのアクセスを必要とする変換は、多くの異なるフォームの複数の過去、現在、未来のステップに同時にアクセスすることができる。
【0191】
非表示/表示、プライベート/公開、およびインターフェース
各システム、変換またはフォームは、表示もしくは非表示にすることができ、および/または、公開もしくはプライベートとして選択することができる。これは、システムの実行時に表示する必要のない、基礎となるデータを非表示にすることに役立つ。たとえば、3Dメッシュは面のみを表示することができ、頂点または辺は表示しなくてもよい。ただし、辺が公開されたままの場合でも、非表示のフォームには依然として変換が適用される。フレームワークの非表示/表示およびプライベート/公開機能に基づいて、一部の情報のみが露出され、編集することができるインターフェースを作成することができる。たとえば、色cおよび長さdの辺のn個の正三角形から構成されるシステムを有することができる。三角形[n,c,d]のように見えるインターフェースを作成することができる。
この場合、三角形[6,緑,1/2]は、長さが1/2の辺を有する6つの緑色の正三角形を表現する。インターフェースを作成するこの機能は、システムのネイティブ機能として組み込むこともできる。
【0192】
フレームワークのGUI機能
1つの実施形態では、システムは、それ自体をフレームワーク内で作成することができるか、またはフレームワーク自体を使用することによって追加することができるボタンを含むグラフィカルユーザインターフェース(GUI)を含むことができる。GUIボタン、キーボードボタン、マウスボタンをクリックするか、または、入力を開始すると、変換をシステムに適用することができる。これにより、ユーザはユーザインターフェースを完全にカスタマイズすることが可能である。初期GUIにはフレームワークが付属している場合があるが、ユーザは、種々の変換を開始しまたは種々のシステムを実行するボタンを追加することができる。興味深いことに、これによりユーザまたは開発者は、仮想現実および拡張現実アプリケーションの3D GUIを作成することが可能である。本変換処理ユニットおよび方法は、ウェブブラウザと同様の方法で動作するソフトウェアによってナビゲートされ得る対話型3Dウェブサイトを作成するために使用することができる。
【0193】
入来および発信データ
本システムは、入来フォームおよび発信フォームと呼ばれる特殊なフォームを備えた他のソフトウェアまたはハードウェアとリアルタイムで接続されてもよく、されなくてもよい。このタイプのフォームは、別のソフトウェアまたはハードウェアによってアクセス可能な公開データまたはプライベートデータであってもよい。ここでは発信データを例に挙げる。本システム内で移動するロボットの3Dメッシュモデルを構築した後、腕の関節角度を発信フォームデータとして選択することができる。現実世界のロボットのハードウェアは、発信フォームデータにアクセスして、サーボモータ角の角度を更新することができる。同様に、ユーザの身体上のさまざまなセンサから入来するデータを使用して、入来フォームデータを含むヒトの仮想生物学的モデルを更新できる。このとき、このモデルは、ユーザと同じ心拍数または呼吸数を有することができる。
【0194】
フォームは多くのフォームのコレクションであり得るため、発信データを使用して、入来データフォームから要求が来た後にシステムまたはシステムデータにサービスすることができる。これは、以下で説明する「プロジェクトのネットワーク」にとって有用な構成要素であり得る。
【0195】
1つの実施形態では、フレームワークは、種々のフォーマットの3Dメッシュ、データベースおよびテーブルからのデータ、またはHTML/CSS、C++(登録商標)、Java(登録商標)およびPython(登録商標)などの言語のコードなどの種々のタイプのファイルをインポートすることができる。これは、フォーム内のシステムまたはフォームとして構築されたソフトウェアまたはインタープリタのネイティブ機能であり得、言語間の翻訳のためにテキストまたはコンピュータファイルに変換が適用されるフレームワークを変換する。
【0196】
マルチスケール
本変換処理ユニットデバイスは、マルチスケール(空間および時間)ナビゲーションおよびプロセスを可能にすることができる。たとえば、心臓のモデルでは、細胞をクリックして細胞の内部システムを拡大することができる。細胞に向かって漸進的にズームすることもでき、細胞膜を透明にして細胞の内部モデルを明らかにすることにより、内部システムが明らかになる。メインシステムに別のシステムをインポートする場合、このシステムの組み込みに関連するシステムデータの種々のパラメータを指定することができる。このようなデータの例は、サイズスケールおよび時間スケールを含む。たとえば、心臓のシステムに心筋細胞をインポートする場合、心臓に対する細胞のサイズおよび時間スケールを指定する必要がある。細胞内の変換は、心臓のレベルでの変換よりもはるかに頻繁に適用されることになる。心臓の鼓動が秒スケールであるのに対して、細胞内の変換はナノ秒スケールである。
【0197】
1つの実施形態では、各システムまたはフォームは、それに関連付けられたティック数値(整数、浮動小数点数、ダブル、有理数または実数)を有し、ティック数値は更新および変更され得る。ティック数値は、システムのいずれの変換を次に適用することができるかを示すのに役立つ。これは、システムおよびサブシステムを通過する速度および時間を調整するために使用することができる。
【0198】
補間
変換の2回の適用の間に、少なくとも1回の中間変換を追加することができる。これは、2回の変換の間の補間と呼ばれる。また、変換は複数の変換に置き換えることができる。これは、変換の補間と呼ばれる。これは、変換のシーケンスを挿入するか、または、システムのネイティブ補間関数を使用することによって、システムを用いて手動で行うことができる。たとえば、点を1単位だけz方向に移動する変換は、シーケンスの各変換が点を0.01単位だけz方向に移動するように、補間関数を用いて変換のシーケンスに変更することができる。これにより、システムの精度を向上させることができる。
【0199】
変換の補間または2回の変換の間の補間を実行するとき、補間を生成するために使用される変換の回数は有限であり得る。代替的に、この回数は無限または連続的であってもよい。これにより、フレームワーク内での連続的な変換というより抽象的な概念の導入および使用が可能になる。これは、実線、実数、連続性および連続関数の古典的な数学的概念に関連している。補間は、以下で説明するフィードを用いることによって達成することができる。
【0200】
変換のフィード
以下では、
図16~
図31を参照して、変換のフィードについて説明する。変換のフィードは、変換に関連付けられた変換データの一部である。
【0201】
フィードは、変数およびその関連する順序付けられたフォームセットから構成される。フィードは、変換内に順次プッシュされて、適用されるこの変換のインスタンスを作成する数(またはオブジェクト)のリストとして理解することができる。関連するセットは、数の有限セット、無限セット数、実区間、フォームのセット、変換のセット、オブジェクトのシーケンス、記号のセット、データなど、任意のタイプのセットとすることができる。
【0202】
以下に、本セット例を挙げる。[0,1]、[0、無限大];[2,5];[n]={1,2,3,4,...};[0,1]U[4,12];M×N;{abd,a,cc,c,e,t,%};{1,2,3,4,5,...};{1,2,3,4.5,12.2、-15.2};{1,2,2,2,2,1,1,10、0.5、e};実数、複素数、有理数および/または整数のセット;{変換1,フォーム1,フォーム2,a,4.3,6,pi};など。
【0203】
1つの実施形態では、フィードは、複数の変数およびそれらのそれぞれのセットから構成される。変数が最初に使用される順序があり得る。また、変数が満たす必要のあるフィードの制約もあり得る。一部の実施形態では、制約は、変換の入力サイトに現れる。
【0204】
いくつかの実施形態では、フィードは以下への変換を可能にする。
-変換を拡張して、離散的だけでなく連続的にすること、
-連続的な形状を作成すること、
-離散変換間の補間を行い、補間が完全に制御されるようにすること、
-継続性の概念および強度の実数にアクセスすること、
-微分計算を行うこと、
-変換の適用回数の概念を一般化すること、
-forループもしくはwhileループとして使用されること、
-ベクトルおよび多次元配列、さらにはテンソルを表現すること、
-オブジェクト指向言語における複数のオブジェクトをインスタンス化するためのループに類似する、複数の変換をインスタンス化するループのように動作すること、ならびに/または
-フィードを用いて変換すること。
【0205】
動作中のフィード
1つの実施形態では、変換は、入力サイト、エフェクト、および出力サイト、ならびに、それぞれの順序付けられたセットを有する1つの変数のフィードから構成され得る。変数は、入力サイト、出力サイト、エフェクト、さらにはフィード自体を含む変換のデータ内など、変換のどこにでも、かつ何度でも(ゼロ、有限回数、または無限回数)現れることができる。
【0206】
変換を適用するために、変換に含まれる変数のインスタンスは、順序付けられたセットの第1の要素に置き換えられる。変換が適用されると、変数はセットの第2の要素によって第2の変数に置き換えられ、次いで、第2の変換が適用され、プロセスは、変数のセットの各要素に対してすべての変換が1回適用されるまで続行される。
【0207】
図17は、変換が値1、2、3に対して3回適用される第1の例を示している。変数tは1に置き換えられ、変換が適用され、したがって、黒い点から1単位の距離に白い点が追加される。次いで、tは2に置き換えられ、変換が適用され、したがって、黒い点から2単位の距離に白い点が追加される。最後に、tは3に置き換えられ、変換が適用され、したがって、黒い点から3単位の距離に白い点が追加される。
【0208】
図18は、実線を作成するように構成された変換の例を示す。
図17の例と同様に、長さ2の線が、区間[0,2]のすべての要素を変換に順次供給することによって作成される。
【0209】
有限数の点のみが表示ユニットに表示されることを理解されたい。ただし、2つの実線の交点またはオブジェクト間の衝突点を決定する必要がある場合など、必要に応じて非表示の実点にアクセスできる。
【0210】
図19は、適用回数の一般化を示している。この例では、変数tは変換に現れない。実際には、フィードを定義する代わりに、100回書き込んでもよい。変換内に変数tが発生せず、関連するセット内に100個の要素がある限り、セット内の記号のタイプは重要ではないことに留意されたい。特に、記号「@」を100回含むセットは、変換の100回の適用として作用する。
【0211】
図20は、フィード内の複数の変数の例を示している。フィード内に2つの変数があることによって、要素のグリッドを生成することが可能である。1つの実施形態では、フィード内の変数の数に制限はなく、テンソル係数と同様の多次元配列、行列、およびオブジェクトを作成することができる。本例では、t=1が選択され、次にh=1が選択されることを理解されたい。その後、t=1のままでh=2が選択され、次にt=1のままでh
=3が選択される。次に、考えられるすべての組み合わせが取得されるまで、t=1およびh=1を取得することによってプロセスが再び開始される。同じプロセスが3つ以上の変数について実行されることを理解する必要がある。1つの実施形態では、要素が選択される順序は、変換のデータにおいて詳細に示すことができる。
【0212】
図21は、複数の点が互いに積み重ねられる例を示している。
図22は、フィードがプレーンのまたは連続的な正方形を作成するための連続的なセットを含む例示的な変換を示し、一方、
図23は、フィードがプレーンのまたは連続的な三角形を作成するための連続的なセットを含む例示的な変換を示す。
【0213】
三角形の記述の場合、変換が適用される前に、変換の入力サイトにおける条件を満たす必要がある。この制約は、y=-x+1の下の点のみがユニバースに追加されることを示している。
【0214】
図24は、ロケットを加速させるための例示的な変換を示す。ロケットの加速は、フィード内の数に依存する。5tはまた、任意のタイプの関数f(t)であるように選択され得ることが理解されるべきである。
【0215】
図25は、ロケットの例示的な相対変位を示している。この例では、ロケットの相対変位は、フィード値1/7および関数2tに基づいて定義される。
【0216】
図26では、変換はロケットを14ユニットだけ移動し、ただし、7ステップにおいてロケットを補間するように要求する。補間は、
図27に示すフィードによって表現することができる。
【0217】
図28は、補間が実行される様式を、加速度などの挙動を反映するようにカスタマイズすることができることを示している。
【0218】
図29は、ロケットが除去されるときに別のロケットがグローバル軸に対して新しい位置に挿入される、絶対位置の例示的な連続的変換を示している。
【0219】
図30は、相対位置についての例示的な連続的変換を示す。この例では、変換は相対的に適用される。セット内で、一度に複数の値にアクセスすることができる。本事例において、t1=0、t2=0.25、t3=5、t4=0.75かつt5=1である。これにより、差を計算して1単位増分の変位を生成することが可能である。
【0220】
図31に示すように、デルタtの代わりとなるdtを使用して、連続的な相対変位を行うことができる。
【0221】
図32は、n個の要素のベクトルを作成するための例示的な変換を示す。たとえば、
図33に示すように、3×3行列を作成することができる。
【0222】
解決
変数記号を追加するか、または、フォームが変数であることを示すことによって、システムに変数を追加することができる。通常、変数が解決されるときに、システムがどのようになることが所望されるか、または何を実行することが所望されるかを示す必要がある。これは、等号「=」を用いた古典代数方程式においてxについて解くことに似ている。たとえば、複製を続けるがん細胞を取り上げると、がん細胞に適用される変数変換Tを取得し、システムがもはや複製しない細胞になることが所望されることを示すことができる。次に、Tについてこれを解くために、このシステムが使用される。フレームワーク内で作成される解決システムを使用すること、入来および発信データフォームを使用すること、外部解法を使用すること、または可能性のある変換を手動で入力することによって、Tについて解くこともできる。その結果、がん細胞の複製を停止するTの種々の可能なフォームのセットがもたらされる。複数のタイプの数学的およびプログラミング技法をモデル化してフレームワークに直接実装することができるため、困難なシステムを解くために複数の強力なツールを同時に使用することができる。フレームワークに実装することができるツールの例は、人工ニューラルネットワーク、方程式の解決、数学的最適化、および種々の機械学習アルゴリズムなどである。
【0223】
プロジェクトのネットワーク
プロジェクトまたはシステムを作成するとき、システムはリポジトリ内にあり、公開またはプライベートにすることができる。ウェブプラットフォーム、プライベートローカルサーバ、またはピアツーピアベースのネットワーク上で、達成する必要がある内容の記述によって新しいプロジェクトPを開始することができる。ユーザは、そのプロジェクトのシステムを提出し、または、他者がこのプロジェクトにおいて提出したシステムを改善することができる。ユーザは、最良のシステム、すなわち、プロジェクトの要件に最も近い最良のシステムに投票することができる。
【0224】
他のプロジェクトシステムは、システム(またはプロジェクト)に完全にインポートして、それに適合させることができる。たとえば、システムSysにシステムSub全体をインポートする代わりに、情報をSysからSubに送信して、SubにSysの戻り値を計算させるよう求めることができる。これにより、分散コンピューティングが可能になり、プロジェクトおよびシステムの重複が少なくなる。一部のプロジェクトは、プライベートまたは公開とすることができる。これにより、多数のユーザが大規模で有用なプロジェクトを開発および作成することができるプロジェクトの大規模なネットワークを作成することが可能になる。これらのプロジェクトの各々は、それ自体が他のプロジェクトに依拠する他の複数のプロジェクトから構成することができる。含まれる各プロジェクトは、C++などのスクリプトベースのプログラミング言語のライブラリに似ていると考えることができる。
【0225】
1つの実施形態では、変換内で定義されるエフェクトは、表現を助けるために複数の部分を含むことができる。たとえば、エフェクトは2つの部分を含むことができる。入力サイトが選択され、その値がエフェクトおよび出力サイト内で使用される場合、出力サイトによって選択される出力サイトフォームは、エフェクトの出力部分内のフォームによって変更され、入力サイトによって選択される入力サイトフォームは、エフェクトの入力部分内のフォームによって変更される。
【0226】
図34は、2部分エフェクトを有する例示的な変換を示す。ここでは、初期ユニバースの値12が変換にインポートされ、結果、K=12になる。次に、K=0はK=12に置き換えられ、H=12はH=1に置き換えられる。
【0227】
図35は、2部分エフェクトを有する変換のさらなる例を示す。この例では、初期ユニバースからの値12および
8が変換にインポートされ、結果、M=12+8=20になる。次に、H=12はH=0に置き換えられ、K=8はK=-8に置き換えられ、M=0はM=20に置き換えられる。次に、K=0はK=12に置き換えられ、H=12はH=1に置き換えられる。
【0228】
図36は、フィードおよび2部分エフェクトを含む例示的な変換を示す。
フィードは、フィードなしで3部分変換の構成要素のみを用いて、離散的なフィード向けにエミュレートすることができることを理解されたい。
図37に示す離散変換は、順序付けられた要素1、2、3を含む入力ユニバースからtの値を取得する。変換を適用した後、左の要素が右にシフトされる。これにより、次の変換の適用時に順序付けられたセットの第2の要素を選択することが可能になる。フィードが実数の区間または無限セットである場合、連続的な順序付けされたセットから要素を抽出するために、新しい手順を定義する必要がある。1つの実施形態では、フィードの定義をシステムに追加することができ、これは区間を処理するのに非常に適しており、多くの他の用途を有する。
【0229】
以下では、変換のさらなる例を説明する。
第1の例において、変換を作成するために、ユーザは出力ユニバースに存在する四面体の面を選択し(
図38aを参照)、それを変換の出力サイトに送信またはドラッグアンドドロップする(
図38bを参照)。自動的に、三角形の面がエフェクトおよび出力サイトに現れる。次に、ユーザは面上にメッシュを追加するか、三角形を縮小することにより、エフェクトを編集することができる。ユーザがより小さい四面体を面に追加し(
図38bを参照)、回数を3に設定することによって変換データを調整する場合、変換が適用されることになる。システムを実行すると、3つの面上に小さい四面体ができるまで(
図38cを参照)、より小さい四面体が面上に次々に追加される。
【0230】
ユーザは、小さい立方体が三角形に追加される別の変換を作成することもできる。2つの変換が別の変換と同時にシステムの四面体上に配置され、システムが実行されるとき、2つのうちの1つのみが適用される。この場合、ユーザは、立方体による変換を適用する可能性を80%、他の変換を適用する可能性を20%と決定することができる。
【0231】
別の例では、ユーザがシステム内に分子をインポートして選択し、出力サイトにこれを送信する。ユーザはDを入力サイト内に追加し、それをエフェクトに追加することもできる。エフェクト分子を右に移動すると、値または関数を挿入することができる場所が開く。Dをエフェクトからドラッグアンドドロップするか、または、Dをそのスペースに入力すると、それが入力サイトのDに接続される。次に、ユーザは1/Dを書き込むことによってDに関数を適用する。ここで、変換が分子に適用されるとき、分子の変位は、システム内の別の場所から、またはさらには入来データからのDの値に依存する。変換が適用される前に、Dの値が読み取られて、分子の変位が決定される。本事例では、D=100の場合、この変換が分子に7回適用されると、分子は1/100単位だけ7回左に移動される。
【0232】
変換がタイムラインを使用しアクセスすることができるように、分子の以前の位置はすべてタイムラインに保存することができる。たとえば、5ステップ前および現在からの平均速度を測定するために、ユーザは入力サイト内で現在の分子のグローバル位置(P0)および5ステップ前のフォームの分子のグローバル位置(P5)を書き込むかまたは選択することができる。エフェクトには、ユーザはS=(P0-P5)/5と書き込む。ここで、この変換が分子に適用されるたびに、平均速度が計算される。この変換はシステムの隅に残し、システムを変更するたびに適用することができる。その変換の入力サイトを非表示にすることによって、速度データのみが隅に表示される。
【0233】
図39は、入力サイト、エフェクト、および出力サイトを含む例示的な変換を示している(変換データは省略されている)。変換の適用は以下のように実施される。最初に、入力ユニバース内のフォームが選択される。選択されたフォームは入力サイトと一致し、ここで、スター(*)は、スターの周囲のフォームが一致している限り、何であってもよい。
【0234】
この例では、「A=」が一致しているため、また、スター記号は何を選択してもよく、したがって数3が選択されるため、A=3が選択されている。
【0235】
次に、変換の残りの部分にも現れる入力サイトの情報が識別され、識別された情報は、出現するたびに、関連する選択されたフォームからの情報に置き換えられる。
【0236】
本例では、スター記号が変換のエフェクトおよび出力サイト内に現れる。スターに関連付けられている、選択されたたフォームからの情報は「3」である。したがって、エフェクトおよび出力サイトのスターは、
図40に示すように3に置き換えられる。スターの数3への置き換えは、変換の適用のためにのみ行われる場合があるため、エフェクトおよび出力サイトで永続的ではない場合があることを理解されたい。
【0237】
次いで、出力サイトと一致する出力ユニバース内のフォームが選択され、エフェクトに置き換えられる。
【0238】
本例では、出力ユニバース内の三角形の長さ3の辺が選択され、同じ辺に置き換えられるが、
図41に示すように、別の三角形を作成する2つの線が追加される。
【0239】
変換の部分間の相対位置
1つの実施形態では、入力サイト、エフェクト、および出力サイト内部のフォームの相対位置が変換に影響を与える場合がある。たとえば、2つのオブジェクトが出力サイトおよびエフェクトについてそれぞれの長方形内の同じ位置にあることは、それらがともに接続されていることを意味し得る。たとえば、エフェクトのオブジェクトEが出力サイトのオブジェクトOと同じ場所にある場合、OはEに置き換えられる。オブジェクトの位置が異なる場合、以下の例に示すように異なる結果が得られる場合がある。
【0240】
たとえば、
図40に示す変換を
図42に示す変換に置き換えると、図
41のフォームではなく、
図43に示すフォームになる。
【0241】
ニューロン発火
この例では、入力ユニバースと出力ユニバースとは同じであり、一意のユニバースが
図44に示されている。
【0242】
図45に示す第1の変換は、入力サイトとして樹状突起d=xならびに閾値変数Tおよびその値yを選択する。エフェクトは、値xをyに追加することによって作成され、結果、この樹状突起の寄与が閾値に追加される。次いで、出力サイトによって選択されるとき、d=xおよびT=yはそれぞれ、d=0およびT=y+xに置き換えられる。
【0243】
「すべて(All)」は、各樹状突起が1回だけ寄与するまで、この場合は11回、すべてのd=xに変換が適用されることを示す。変換内の類似の記号は同じオブジェクトと考えられる。したがって、入力サイトおよび出力サイトのd=xおよびT=yは同じであると理解される。
【0244】
図46に示す次の変換は、閾値が6以上の場合にニューロン発火を引き起こす(ここで、6はこのニューロンの限界値である)。入力サイト内で定義される不等式は、この不等式が満たされると、hラベル付きの稲妻をiラベル付きの稲妻に変更することによって変換が適用されることを示している。
【0245】
図47に示す次の変換では、活動電位が軸索終末に向かって動くことを可能にする。この場合、入力サイトは空である。これは、変換を適用する前に満たすべき「条件がない」ことを意味する。変換を適用するために必要な唯一の条件は、出力ユニバースにおいて稲妻記号にiラベルを付け、とげのある円にhラベルを付けることである。
【0246】
ここで活動電位が軸索に近いため、
図48の変換によって示されているように、各軸索の値a=0が値a=1に変更される。
【0247】
次に、軸索に関連付けられた各値が1になった後、
図49の変換で示されているように、活動電位を表現する記号にhのラベルが付けられる。
【0248】
ニューロンのネットワークは、このニューロンの軸索を他のニューロンネットワークの樹状突起に接続することによって作成することができる。軸索a=xの値をそれに関連する樹状突起d=yの値に送信するおおまかな方法は、
図50に示す変換によって行うことができる。
【0249】
シナプス間隙
図51は、シナプス間隙のモデルを示している。
【0250】
図52に示す変換は、シナプス間隙における10個の神経伝達物質の放出をモデル化することを可能にする。
【0251】
入力範囲は、このニューロンのa=xである。a=1の場合、出力範囲内のランダムな位置が選択され、この位置に円形の神経伝達物質が挿入される。空白の出力サイトは特定の位置を指定せず、したがって、出力範囲内のランダムな位置として解釈される。出力範囲は、
図53に示す長方形のボックスによって区切られた領域を規定する。
【0252】
神経伝達物質が放出された後、
図54の変換を使用してa=1が0にされる。
図55の変換により、
図56に示す円柱によって区切られたシナプス間隙内で神経伝達物質が動かされることが可能になる。変換は神経伝達物質およびその周りの空間の境界球を必要とする。次に、変換は、境界球内のその場所が円柱によって区切られたシナプス間隙の外側にない限り、神経伝達物質を境界球内のランダムな場所に戻す。
【0253】
最後に、神経伝達物質が神経受容体に結合すると、
図57の変換によって表現されるように、その寄与が樹状突起の値d=yに追加される。この変換は常に存在し、条件が満たされるとき、すなわち神経伝達物質が神経受容体の1つと結合するときに機能する。
【0254】
グラフェンシートの構築
図58の変換は、グラフェンシートを組み立てるために必要な規則の1つを表している。この変換は4つのCO
2
分子を取得し、図59に示すグラフェンシートに追加する。
【0255】
CO
2
コレクタ
図60に示す変換は、関数「take」および「add」を使用することによりコレクタとして機能する。この例では、CO
2分子が収集され、CO
2コレクションに追加される。文字通り、これは入力ユニバースからCO
2分子を取得し、それらを二酸化炭素コレクションと呼ばれるグループに移動させる。入力ユニバースは、多数のCO
2分子を含む容器と考えられる。
【0256】
5つの分子を収集した後、
図61に示すシナリオが得られる。
CO
2分子を収集してグラフェンシートの一部を構築する、より複雑なシステムを
図62に示す。赤いボックス内の数字は、変換の適用順序を示している。最初にCO
2が収集され、次にグラフェンシートが拡張される。
【0257】
衛星回転
変換を使用して、3Dメッシュなどのオブジェクトを移動および回転させることができる。
【0258】
手動回転
図63に示す変換により、3D衛星を回転させることが可能である。
【0259】
この変換を衛星の3Dモデルに複数回適用すると、
図64に示す出力ユニバースの一連の状態が得られる。
【0260】
自動信号ファインダ変換
衛星自体を特定の信号に自動的に向ける衛星が必要である場合、
図65に示す変換のセットを使用することができ、この変換のセットは、衛星の中心z軸間の角度が、それぞれの平面内で信号源から20度を超えて異なるときに、衛星をそれぞれの平面内で回転させる。
【0261】
この変換セットに加えて、角度が180以上であるときに他の方向に回転すると、衛星が自律的にアンテナをその信号に向けることを可能にする変換のセットが得られる。回転を有効化し、また衛星回転増分を1度にするために20度の閾値の代わりに1度の閾値を使用することによって、より高い精度を実現することができる。
【0262】
キーボードによって有効化される回転
回転の適用は、
図66に示すように、キーボードの矢印キーを押すことによってトリガすることができる。
【0263】
衛星を回転させるためのユーザインターフェースまたは現実の物理ボタン
図67の変換の入力サイトに示されている線は、YZ平面内の線に接続されている。エフェクト内の衛星は絶対位置にあると考えられ、衛星が以前に方向付けられていた場所に関係なく、この方向に置き換えられることに留意されたい。
【0264】
自動車およびタイムライン
各ステップにおいて、またはシステムが変化するたびに、システムの状態を記録してメモリに保存することができる。これにより、上で説明したようにシステムのタイムラインが構築される。
【0265】
変換が適用されると、システムのステップ数が増加する。本例では、システム内で変換が適用されるたびに、ステップ数が1だけ増加すると仮定される。ステップ数は必ずしも整数である必要はなく、実数の増分によって増加する実数とすることもできることを理解されたい。実数ステップの例は、時間の経過をステップとして説明するためのものである。さらに、本発明の1つの実施形態では、変換は、離散的にではなく連続的に適用することができる。
【0266】
このシステムは、種々のタイプの変換に従って移動する自動車を記述する。
図68に示す変換を用いて、ステップ0とステップ50との間で、x方向における自動車の平均速度を計算することができる。入力サイトにおいて、ステップ0およびステップ50における自動車の状態に関する情報がアクセスされる。透明な自動車は、自動車が先行するステップからのものであることを示すために使用される。
【0267】
変換を用いてタイムラインにアクセスすることによって、速度、加速度、導関数および他の多くの概念のモデル化を求めることが可能である。
【0268】
自動車の実際の速度の測定値をモデル化して走行距離計に投影することは、
図69および
図70に示す変換を用いて行われる。本事例において、「実際の」とは、この変換が適用されようとしている瞬間のステップの値を意味する。現在の速度を得るために、最後の5つのステップの平均速度が計算されることに留意されたい。
図69の変換は、PresentSpeed(現在の速度)を出力ユニバースに挿入することを可能にする。
【0269】
図70の変換は、PresentSpeedを以前の出力ユニバースから取得し、速度の数を黒い四角形に青色で書き込む。次に、図
70に示すように、走行距離計の画像に青色の数字および正方形を重ねる。「追加」という語は、走行距離計が置き換えられず、数字を有する黒い四角が走行距離計の画像に追加されることを意味する。
【0270】
変換表記
上記の変換表記は単なる例示であることを理解されたい。
【0271】
たとえば、変換は、エフェクトおよび出力サイトから構成される2部分として記述することもできる。この場合、入力として機能するフォームを特定する必要がある。これは、変換のエフェクト、出力サイト、およびデータを初期化するためにフォームを使用する必要があるためである。
【0272】
変換および構造は、必要性およびモデル化コンテキストに応じて異なる方法で表示することができることも理解されたい。たとえば、
図72の変換は、よりコンパクトな記述を示す
図73に示す変換に置き換えることができる。
【0273】
向きおよび照合
変換が入力サイトを入力ユニバースのフォームと照合するとき、本発明の一部の実施形態では、一致はリテラルとすることができ、または回転および変換を可能にすることができる。
【0274】
上記の単純なシステムでは、出力ユニバースでの一致はリテラルであった。
上記の二酸化炭素コレクタでは、入力ユニバースでの一致はリテラルではない。異なる方向に向いている分子を選択することができる。
【0275】
相互接続
入力サイトは、複数の異なるエフェクトに接続することができる。エフェクトは複数の出力サイトに接続することができる。入力サイトは、複数の入力ユニバースに接続することができる。出力サイトは、複数の出力ユニバースに接続することができる。
【0276】
出力ユニバースは変換とすることができ、入力ユニバースを変換とすることもできる。
さらに、単一の入力サイトを、その入力サイト、エフェクト、出力サイト、およびデータから構成される完全な変換に接続することができる。入力サイトは、変換のセットまたはさらにはユニバースに接続することもできる。同様に、単一の出力サイトを3部分変換、変換のセット、またはユニバースに接続することができる。
【0277】
グラフィカルユーザインターフェース(GUI)
以下に、変換の定義に使用することができるグラフィカルユーザインターフェース(GUI)を示す。
図74に示すように、GUIは、変換を視覚的に作成することができる第1の部分と、出力ユニバースを表現することができる第2の部分とを備える。
【0278】
GUIの第1の部分は5つのウィンドウを備える。第1のウィンドウにおいて、入力サイトを視覚的にまたはグラフィックで表現することができる。第2のウィンドウはエフェクトを視覚的に定義するために使用され、一方、第3のウィンドウは出力サイトに含まれるフォームを視覚的に表現するために使用される。第4のウィンドウは出力範囲を視覚的に表現するために使用され、第5のウィンドウは変換データを入力するために使用される。
【0279】
1つの実施形態では、
図88に示すように、範囲なしの変換が左
側に表示され、ユニバースが
右側に表示される。
【0280】
1つの実施形態では、GUIは、入力ユニバースを視覚的に表現するための第3の部分を含むことができる。
【0281】
1つの実施形態では、変換および変換のシーケンスは、ユニバース内に直接表現することができる。
【0282】
1つの実施形態では、変換のシーケンスは、単一の表現の下でグループ化することができる。
【0283】
1つの実施形態では、変換のシーケンスは、それらがどのように適用されるかを示すために、2Dで、または変換表現間の線、矢印(または他の形状)を用いて表現することができる。
【0284】
1つの実施形態では、変換のシーケンスは、それらがどのように適用されるかを示すために、変換表現間の線、3D矢印(または他の形状)を用いて3D空間内に配置することができる。
【0285】
1つの実施形態では、出力範囲を表現するための第4のウィンドウは省略されてもよい。同じまたは別の実施形態では、GUIの第1の部分は、入力範囲を視覚的に表現するためのウィンドウを含むことができる。
【0286】
変換を作成するために、まず、ユーザはライブラリから出力ユニバース内の3Dモデルなどのフォームをインポートするか、または、GUIの左上にある「幾何形状タブ」の要素を使用することによって基本的な3Dモデルを作成する。この例では、
図75に示すように、ユーザはユニバース内に四面体を作成する。
【0287】
次に、ユーザは四面体から面を選択し、
図76に示すように、変換の出力サイトにドラッグアンドドロップする。
【0288】
図77に示すように、ユーザは出力サイトの内容全体をエフェクトにコピーする。
次に、ユーザは、フォームを追加することにより、または、幾何形状タブの要素を使用するかもしくは3Dモデルを手動で変更することによってエフェクトウィンドウに含まれるフォームの幾何形状を変更することにより、エフェクトウィンドウ内にエフェクトを作成する。代替的に、ユーザはライブラリから3Dモデルをインポートしてもよい。この例では、
図78に示すように、三角形上により小さい四面体が追加されている。
【0289】
図79に示すように、次いで、ユーザは変換データを入力する。たとえば、ユーザは変換のデータ内で「すべて」のラジオボタンをクリックし、「チェックマーク」を4回クリックして、この変換をユニバースに注入することができる。「すべて」ボタンは、変換が、出力サイトの三角形と一致するユニバースのすべての三角形に適用されることを示す。
【0290】
ユーザが「ステップ(Step)」ボタンを押すと、変換が1回適用される。四面体の各三角形は、より小さい四面体を有する三角形に置き換えられる。結果のフォームを
図80に示す。
【0291】
ユーザが「再生(Play)」を押すと、他の3つの変換が連続して適用されて、次の複雑なフラクタルが与えられて、
図81に示すフォームが得られる。
【0292】
変換の入力サイト、出力サイトおよびエフェクトの使用
ここで、入力サイトを有する変換を使用しながら、同じ例を説明する。この場合、テキスト、値、3Dモデル、またはデータをユニバースに追加することができる。本例では、
図82に示すように、「D=2」というテキストがユニバースに追加される。
【0293】
図83に示すように、ユーザはテキスト「D=x」を入力サイトに追加する。「x」は、出力サイトが「D=x」のフォームのオブジェクトに一致することを示す。「x」は何であってもよい。次に、ユーザはエフェクト(または任意選択的に出力サイト)内でその値「x」が使用される場所を示す。この例では、値「x」が三角形のより小さい四面体の高さに割り当てられる。
【0294】
ラジオボタン「すべて」を選択して変換を注入および適用した後、変換は入力サイトをユニバースからのテキスト「D=2」と照合する。次に、
図84に示すように、値「2」がエフェクト内の「x」に置き換わる。適用される変換のエフェクトおよび出力サイトが計算される。
【0295】
変換を4回適用した結果のユニバースを
図85~
図88に示す。
動的入力
前の例では、「D=2」というテキストはユニバース内で常に同じである。より動的で変化する入力を使用することができる。
【0296】
I)変換は、変換の各適用後に、値「D=2」を何らかのより大きい値に変更することができる。たとえば、
図89に示すように、変換は、「D=2」を「D=x+0.5」によって計算された「D=2.5」に変更しながら、三角形に四面体を追加することができる。
【0297】
変換の最初の適用は、追加されている四面体に2の高さ、2.5の第2の高さ、3の第3の高さなどを与える。言い換えれば、変換の高さは、ユニバース内の「D」の初期値、および、この変換が適用された回数に依存する。
【0298】
II)入力は、他の複数の変換の適用下でユニバースが変化するときにそれら自体変更される、ユニバース内の他の形状から抽出することができる。たとえば、「x」は、オブジェクト間の2点間の距離から取得することができる。
【0299】
変換の範囲
a)上記のステップを実行した後、ユーザは、
図90に示すように、変換の右下のメニューの適切なボタンをクリックすることにより変換の出力範囲を使用して、変換の出力範囲内のユニバースのすべてのデータをコピーすることを決定することができる。
【0300】
b)ユーザは、範囲の四面体のいくつかの面を選択することができる。削除ボタンを押すことによって、選択した面が削除される。
図91に示す例では、2つの面のみが保持されている。すなわち、変換は、範囲内にまだ存在する面に対応するユニバースの四面体の面にのみ適用される。
【0301】
この例では、
図92に示すように、変換の1回の適用後に、結果として得られるユニバースには、左面および底面により小さい四面体が配置された四面体を含む。
【0302】
変換の記録
ユニバース内で行われた手動の変更は、変換として記録することができる。
【0303】
たとえば、
図93に示すように、ユーザはユニバースに、一方の端に点のある線分を追加することができる。これは、「幾何形状タブ」構成要素を使用することによって行うことができる。
【0304】
ユーザは、ユーザインターフェースの下部にある「記録」ボタンを押す。記録ボタンが押されなくなるまで、変換が作成され、ユーザがユニバース内で行う手動の変更が記録される。
【0305】
ユーザが線分をクリックし、手動で約20度回転させる。次に、
図94に示すように、変換が作成され、左側に表示される。
【0306】
ユーザは、記録された変換に満足している場合、記録ボタンの選択を解除する。次に、変換のデータの「回数」ボックスに「12」を入力した後、
図95に示すように、記録された変換がユニバースに注入される。
【0307】
「再生」を押した後、
図96に示すように、ユニバースの線分が12回回転する。
注入された変換の編集
ユニバース(限定ではないが、2Dまたは3D空間であり得る)に注入された変換は、編集および変更することができる。
図97は、記録された変換のシーケンスを提示するインターフェースを示している。変換のシーケンスにおいて、ユーザは変換の1つをダブルクリックすることができる。
【0308】
ダブルクリックの結果、GUIに変換が表示される。次に、ユーザは変更のために特定の変換を編集することができる。変換を変更した後、ユーザは変換を保存することができ、変換が適用される番になると、変換は異なる動作をする。
【0309】
シーケンスでは、変換を上下にドラッグして並べ替えることができる。
1つの実施形態では、本方法およびシステムの目的は、モデル、シミュレーション、通信、および最適化を作成し、すべての領域の知識に対して実装することができる汎用システムを提供することである。本方法に基づいて、単一のシステムおよびパラダイムの下で、すべての知識および応用形態を統合することができる。ここで、以下では、汎用システムを「フレームワーク」と呼ぶ。
【0310】
上述した本発明の実施形態は、単なる例示であることが意図されている。したがって、本発明の範囲は、添付の特許請求の範囲によってのみ限定されることが意図されている。