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

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

▶ マスード,アフマドの特許一覧

特表2022-518752自己認識、自己修復及び自己防御データのための方法
<>
  • 特表-自己認識、自己修復及び自己防御データのための方法 図1
  • 特表-自己認識、自己修復及び自己防御データのための方法 図2
  • 特表-自己認識、自己修復及び自己防御データのための方法 図3
  • 特表-自己認識、自己修復及び自己防御データのための方法 図4
  • 特表-自己認識、自己修復及び自己防御データのための方法 図5
  • 特表-自己認識、自己修復及び自己防御データのための方法 図6
  • 特表-自己認識、自己修復及び自己防御データのための方法 図7
  • 特表-自己認識、自己修復及び自己防御データのための方法 図8
  • 特表-自己認識、自己修復及び自己防御データのための方法 図9
  • 特表-自己認識、自己修復及び自己防御データのための方法 図10
  • 特表-自己認識、自己修復及び自己防御データのための方法 図11
  • 特表-自己認識、自己修復及び自己防御データのための方法 図12
  • 特表-自己認識、自己修復及び自己防御データのための方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-03-16
(54)【発明の名称】自己認識、自己修復及び自己防御データのための方法
(51)【国際特許分類】
   G06F 21/56 20130101AFI20220309BHJP
   G06N 3/02 20060101ALI20220309BHJP
【FI】
G06F21/56
G06N3/02
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021542228
(86)(22)【出願日】2020-01-21
(85)【翻訳文提出日】2021-09-17
(86)【国際出願番号】 US2020014354
(87)【国際公開番号】W WO2020154256
(87)【国際公開日】2020-07-30
(31)【優先権主張番号】62/794,922
(32)【優先日】2019-01-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/747,359
(32)【優先日】2020-01-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
2.VISUAL BASIC
3.BLUETOOTH
4.ZIGBEE
5.FIREWIRE
6.THUNDERBOLT
7.SMALLTALK
8.JAVA
9.BLU―RAY DISC
(71)【出願人】
【識別番号】521320287
【氏名又は名称】マスード,アフマド
(74)【代理人】
【識別番号】110000408
【氏名又は名称】特許業務法人高橋・林アンドパートナーズ
(72)【発明者】
【氏名】マスード,アフマド
(57)【要約】
様々な実施形態は、データブロックをニューラルネットワークに対する重みに変換するための方法及びデバイスを含む。いくつかの実施形態は、データブロックを再生成するためにサイバネティックエングラムの第1のニューラルネットワークを訓練することと、データブロックを再生成するために第1のニューラルネットワークによって使用された重みでメモリ内のデータブロックを置き換えることとを含み得る。
【選択図】図2
【特許請求の範囲】
【請求項1】
データブロックをニューラルネットワークに対する重みに変換するための方法であって、
前記データブロックを再生成するためにサイバネティックエングラムの第1のニューラルネットワークを訓練することと、
前記データブロックを再生成するために前記第1のニューラルネットワークによって使用された重みでメモリ内の前記データブロックを置き換えることと
を含む、
データブロックをニューラルネットワークに対する重みに変換するための方法。
【請求項2】
前記データブロックに対する動作要求を受信することと、
前記データブロックを再生成するように前記第1のニューラルネットワークをトリガするように構成されたキー入力を受信することと、
前記動作要求を受信することに応答して、前記第1のニューラルネットワーク、前記重み及び前記キー入力を使用して前記データブロックを再生成することと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記第1のニューラルネットワークと、前記重みと、前記データブロックを再生成するように前記第1のニューラルネットワークをトリガするように構成されたキー入力とを使用して前記データブロックを再生成して、再生成済みのデータブロックを得ることと、
前記再生成済みのデータブロックにおいて前記データブロックに対する動作要求の動作を実行することと
をさらに含む、請求項1に記載の方法。
【請求項4】
サイバネティックエングラムの第2のニューラルネットワークによって、前記再生成済みのデータブロックに対する検証を実行することをさらに含み、
前記再生成済みのデータブロックにおいて前記データブロックに対する動作要求の動作を実行することが、前記再生成済みのデータブロックに対する検証に応答して起こる、請求項3に記載の方法。
【請求項5】
サイバネティックエングラムの第3のニューラルネットワークによって、前記再生成済みのデータブロックに対する認証を実行することをさらに含み、
前記再生成済みのデータブロックにおいて前記データブロックに対する動作要求の動作を実行することが、前記再生成済みのデータブロックに対する認証に応答して起こる、請求項3に記載の方法。
【請求項6】
前記第1のニューラルネットワークと、前記重みと、前記データブロックを再生成するように前記第1のニューラルネットワークをトリガするように構成されたキー入力とを使用して前記データブロックを再生成して、再生成済みのデータブロックを得ることと、
サイバネティックエングラムの第2のニューラルネットワークによって、前記再生成済みのデータブロックに対する検証を実行することと、
前記再生成済みのデータブロックの検証の失敗に応答して異なる重みを回収することと、
前記第1のニューラルネットワーク、前記異なる重み及び前記キー入力を使用して前記データブロックを再生成して、再生成済みのデータブロックを得ることと
をさらに含む、請求項1に記載の方法。
【請求項7】
前記データブロックを再生成するために前記第1のニューラルネットワークによって使用された重みでメモリ内の前記データブロックを置き換えることは、分散型台帳に前記重みを格納することを含む、請求項1に記載の方法。
【請求項8】
プロセッサを含むコンピューティングデバイスであって、前記プロセッサが、
データブロックを再生成するためにサイバネティックエングラムの第1のニューラルネットワークを訓練することと、
前記データブロックを再生成するために前記第1のニューラルネットワークによって使用された重みでメモリ内の前記データブロックを置き換えることと
を含む動作を前記プロセッサに実施させるためのプロセッサ実行可能命令で構成される、コンピューティングデバイス。
【請求項9】
前記プロセッサが、
前記データブロックに対する動作要求を受信することと、
前記データブロックを再生成するように前記第1のニューラルネットワークをトリガするように構成されたキー入力を受信することと、
前記動作要求を受信することに応答して、前記第1のニューラルネットワーク、前記重み及び前記キー入力を使用して前記データブロックを再生成することと
をさらに含む動作を前記プロセッサに実施させるためのプロセッサ実行可能命令で構成される、請求項8に記載のコンピューティングデバイス。
【請求項10】
前記プロセッサが、
前記第1のニューラルネットワークと、前記重みと、前記データブロックを再生成するように前記第1のニューラルネットワークをトリガするように構成されたキー入力とを使用して前記データブロックを再生成して、再生成済みのデータブロックを得ることと、
前記再生成済みのデータブロックにおいて前記データブロックに対する動作要求の動作を実行することと
をさらに含む動作を前記プロセッサに実施させるためのプロセッサ実行可能命令で構成される、請求項8に記載のコンピューティングデバイス。
【請求項11】
前記プロセッサが、サイバネティックエングラムの第2のニューラルネットワークによって、前記再生成済みのデータブロックに対する検証を実行することをさらに含む動作を前記プロセッサに実施させるためのプロセッサ実行可能命令で構成され、
前記再生成済みのデータブロックにおいて前記データブロックに対する動作要求の動作を実行することが、前記再生成済みのデータブロックに対する検証に応答して起こる、請求項10に記載のコンピューティングデバイス。
【請求項12】
前記プロセッサが、サイバネティックエングラムの第3のニューラルネットワークによって、前記再生成済みのデータブロックに対する認証を実行することをさらに含む動作を前記プロセッサに実施させるためのプロセッサ実行可能命令で構成され、
前記再生成済みのデータブロックにおいて前記データブロックに対する動作要求の動作を実行することが、前記再生成済みのデータブロックに対する認証に応答して起こる、請求項10に記載のコンピューティングデバイス。
【請求項13】
前記プロセッサが、
前記第1のニューラルネットワークと、前記重みと、前記データブロックを再生成するように前記第1のニューラルネットワークをトリガするように構成されたキー入力とを使用して前記データブロックを再生成して、再生成済みのデータブロックを得ることと、
サイバネティックエングラムの第2のニューラルネットワークによって、前記再生成済みのデータブロックに対する検証を実行することと、
前記再生成済みのデータブロックの検証の失敗に応答して異なる重みを回収することと、
前記第1のニューラルネットワーク、前記異なる重み及び前記キー入力を使用して前記データブロックを再生成して、再生成済みのデータブロックを得ることと
をさらに含む動作を前記プロセッサに実施させるためのプロセッサ実行可能命令で構成される、請求項8に記載のコンピューティングデバイス。
【請求項14】
前記プロセッサが、前記データブロックを再生成するために前記第1のニューラルネットワークによって使用された重みでメモリ内の前記データブロックを置き換えることが、分散型台帳に前記重みを格納することを含むように動作を前記プロセッサに実施させるためのプロセッサ実行可能命令で構成される、請求項8に記載のコンピューティングデバイス。
【請求項15】
プロセッサ実行可能命令が格納された非一時的なプロセッサ可読媒体であって、前記格納されたプロセッサ実行可能命令が、
データブロックを再生成するためにサイバネティックエングラムの第1のニューラルネットワークを訓練することと、
前記データブロックを再生成するために前記第1のニューラルネットワークによって使用された重みでメモリ内の前記データブロックを置き換えることと
を含む動作をプロセッサに実行させるように構成される、非一時的なプロセッサ可読媒体。
【請求項16】
前記格納されたプロセッサ実行可能命令が、
前記データブロックに対する動作要求を受信することと、
前記データブロックを再生成するように前記第1のニューラルネットワークをトリガするように構成されたキー入力を受信することと、
前記動作要求を受信することに応答して、前記第1のニューラルネットワーク、前記重み及び前記キー入力を使用して前記データブロックを再生成することと
をさらに含む動作を前記プロセッサに実行させるように構成される、請求項15に記載の非一時的なプロセッサ可読媒体。
【請求項17】
前記格納されたプロセッサ実行可能命令が、
前記第1のニューラルネットワークと、前記重みと、前記データブロックを再生成するように前記第1のニューラルネットワークをトリガするように構成されたキー入力とを使用して前記データブロックを再生成して、再生成済みのデータブロックを得ることと、
前記再生成済みのデータブロックにおいて前記データブロックに対する動作要求の動作を実行することと
をさらに含む動作を前記プロセッサに実行させるように構成される、請求項15に記載の非一時的なプロセッサ可読媒体。
【請求項18】
前記格納されたプロセッサ実行可能命令が、サイバネティックエングラムの第2のニューラルネットワークによって、前記再生成済みのデータブロックに対する検証を実行することをさらに含む動作を前記プロセッサに実行させるように構成され、
前記再生成済みのデータブロックにおいて前記データブロックに対する動作要求の動作を実行することが、前記再生成済みのデータブロックに対する検証に応答して起こる、請求項17に記載の非一時的なプロセッサ可読媒体。
【請求項19】
前記格納されたプロセッサ実行可能命令が、サイバネティックエングラムの第3のニューラルネットワークによって、前記再生成済みのデータブロックに対する認証を実行することをさらに含む動作を前記プロセッサに実行させるように構成される、
前記再生成済みのデータブロックにおいて前記データブロックに対する動作要求の動作を実行することが、前記再生成済みのデータブロックに対する認証に応答して起こる、請求項17に記載の非一時的なプロセッサ可読媒体。
【請求項20】
前記格納されたプロセッサ実行可能命令が、前記データブロックを再生成するために前記第1のニューラルネットワークによって使用された重みでメモリ内の前記データブロックを置き換えることが、分散型台帳に前記重みを格納することを含むように動作を前記プロセッサに実行させるように構成され、
前記格納されたプロセッサ実行可能命令が、
前記第1のニューラルネットワークと、前記重みと、前記データブロックを再生成するように前記第1のニューラルネットワークをトリガするように構成されたキー入力とを使用して前記データブロックを再生成して、再生成済みのデータブロックを得ることと、
サイバネティックエングラムの第2のニューラルネットワークによって、前記再生成済みのデータブロックに対する検証を実行することと、
前記再生成済みのデータブロックの検証の失敗に応答して異なる重みを回収することと、
前記第1のニューラルネットワーク、前記異なる重み及び前記キー入力を使用して前記データブロックを再生成して、再生成済みのデータブロックを得ることと
をさらに含む動作を前記プロセッサに実行させるように構成される、請求項15に記載の非一時的なプロセッサ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
この出願は、2019年1月21日に出願された「自己認識、自己修復及び自己防御データのための方法(Methods for Self-aware,Self-healing,and Self-Defending Data)」と称する米国仮特許出願第62/794,922号明細書及び2020年1月20日に出願された「自己認識、自己修復及び自己防御データのための方法(Methods for Self-aware,Self-healing,and Self-Defending Data)」と称する米国非仮特許出願第16/747,359号明細書への優先権の利益を主張する。これらの文献の全内容は、参照により本明細書に組み込まれる。
【背景技術】
【0002】
現在のサイバーセキュリティ製品、解決法及び手法は、サイバーセキュリティ保護の対象であるデータの外部の防御を適用する。データ保護は、一般に、無認可のアクセス、使用、開示、途絶、修正又は削除からデータを防御するために、データの周りの保護層として実施される。様々な保護層は、特定のタイプの脅威からデータを保護するように構成され、実装された層によって保護されていないデータを脅威から保護するために、層が更新されるか又は新しい層が追加される。
【発明の概要】
【課題を解決するための手段】
【0003】
開示される様々な実施形態は、データブロックをニューラルネットワークに対する重みに変換するための装置及び方法を含み得る。様々な実施形態は、データブロックを再生成するためにサイバネティックエングラム(cybernetic engram)の第1のニューラルネットワークを訓練することと、データブロックを再生成するために第1のニューラルネットワークによって使用された重みでメモリ内のデータブロックを置き換えることとを含み得る。
【0004】
いくつかの実施形態は、データブロックに対する動作要求を受信することと、データブロックを再生成するように第1のニューラルネットワークをトリガするように構成されたキー入力を受信することと、動作要求を受信することに応答して、第1のニューラルネットワーク、重み及びキー入力を使用してデータブロックを再生成することとをさらに含み得る。
【0005】
いくつかの実施形態は、第1のニューラルネットワークと、重みと、データブロックを再生成するように第1のニューラルネットワークをトリガするように構成されたキー入力とを使用してデータブロックを再生成して、再生成済みのデータブロックを得ることと、再生成済みのデータブロックにおいてデータブロックに対する動作要求の動作を実行することとをさらに含み得る。
【0006】
いくつかの実施形態は、サイバネティックエングラムの第2のニューラルネットワークによって、再生成済みのデータブロックに対する検証を実行することをさらに含み得、再生成済みのデータブロックにおいてデータブロックに対する動作要求の動作を実行することは、再生成済みのデータブロックに対する検証に応答して起こる。
【0007】
いくつかの実施形態は、サイバネティックエングラムの第3のニューラルネットワークによって、再生成済みのデータブロックに対する認証を実行することをさらに含み得、再生成済みのデータブロックにおいてデータブロックに対する動作要求の動作を実行することは、再生成済みのデータブロックに対する認証に応答して起こる。
【0008】
いくつかの実施形態は、第1のニューラルネットワークと、重みと、データブロックを再生成するように第1のニューラルネットワークをトリガするように構成されたキー入力とを使用してデータブロックを再生成して、再生成済みのデータブロックを得ることと、サイバネティックエングラムの第2のニューラルネットワークによって、再生成済みのデータブロックに対する検証を実行することと、再生成済みのデータブロックの検証の失敗に応答して異なる重みを回収することと、第1のニューラルネットワーク、異なる重み及びキー入力を使用してデータブロックを再生成して、再生成済みのデータブロックを得ることとをさらに含み得る。
【0009】
いくつかの実施形態では、データブロックを再生成するために第1のニューラルネットワークによって使用された重みでメモリ内のデータブロックを置き換えることは、分散型台帳に重みを格納することを含み得る。
【0010】
様々な実施形態は、上記で要約される方法のいずれかの動作を実行するように構成されたプロセッサを有するコンピューティングデバイスを含む。様々な態様は、プロセッサ実行可能命令が格納された非一時的なプロセッサ可読媒体を含み、プロセッサ実行可能命令は、上記で要約される方法のいずれかの動作をプロセッサに実行させるように構成される。
【図面の簡単な説明】
【0011】
本明細書に組み込まれ、この仕様の一部を構成する添付の図面は、様々な実施形態の例示的な実施形態を示し、上記で与えられる一般的な説明及び以下で与えられる詳細な説明と共に、請求項の特徴を説明する上で役立つ。
【0012】
図1】様々な実施形態を実装するための自己認識、自己修復及び自己防御データシステムの例を示すコンポーネントブロック図である。
図2】様々な実施形態を実装するためのサイバネティックエングラムの例を示すコンポーネントブロック図である。
図3】様々な実施形態を実装するためのキー入力とデータブロックの関係の例を示すチャート図である。
図4】様々な実施形態を実装するためのサイバネティックエングラム参照ポインタの生成の例を示す概略フロー図である。
図5】様々な実施形態を実装するためのサイバネティックエングラムによるデータブロックの表現の例を示す概略フロー図である。
図6】様々な実施形態の実装に適したコンピューティングデバイスの例を示すコンポーネントブロック図である。
図7】様々な実施形態の実装に適したマルチコアプロセッサの例を示すコンポーネントブロック図である。
図8】様々な実施形態での使用に適したモバイルコンピューティングデバイスの例を示すコンポーネントブロック図である。
図9】様々な実施形態での使用に適したモバイルコンピューティングデバイスの例を示すコンポーネントブロック図である。
図10】様々な実施形態での使用に適したサーバの例を示すコンポーネントブロック図である。
図11】実施形態による、サイバネティックエングラムを使用してデータブロックの学習及び格納を行うための方法を示すプロセスフロー図である。
図12】実施形態による、サイバネティックエングラムを使用してデータブロックの回収及び保護を行うための方法を示すプロセスフロー図である。
図13】実施形態による、サイバネティックエングラムを使用してデータブロックを修復するための方法を示すプロセスフロー図である。
【発明を実施するための形態】
【0013】
様々な実施形態は、自己認識、自己修復及び自己防御データを生成するためにデータを人工知能と融合させるための方法及びそのような方法を実施するコンピューティングデバイスを含む。いくつかの実施形態は、ニューラルネットワークの集合体としてデータの表現を格納するように構成されたファイルシステム、ファイルシステムオーバーレイ及び/又はデータストアを含み得、ファイルシステム、ファイルシステムオーバーレイ及び/又はデータストアは、本明細書でサイバネティックエングラムと呼ばれるものの一部であり得る。いくつかの実施形態は、ニューラルネットワークの集合体のノードに対する重みを格納するように構成されたファイルシステム、ファイルシステムオーバーレイ及び/又はデータストアを含み得る。いくつかの実施形態では、ファイルシステム、ファイルシステムオーバーレイ及び/又はデータストアは、集中化及び/又は分散化することができる。いくつかの実施形態は、ニューラルネットワークの集合体に入力キーを入力することを含み得、ニューラルネットワークの集合体は、関連する格納された重みを使用して、ニューラルネットワークの集合体が表現するデータを再構築する。いくつかの実施形態は、ニューラルネットワークの集合体に入力キーを入力することを含み得、ニューラルネットワークの集合体は、関連する格納された重みを使用して、データの変換、保護、回復及び/又は分析を行う。いくつかの実施形態は、ニューラルネットワークの集合体が、データ更新を検証し、データ更新の発生を許容するか又は防ぐことを含み得る。いくつかの実施形態は、ニューラルネットワークの集合体が、更新済みのデータを検証し、望ましくないデータ更新後のデータを回復することを含み得る。
【0014】
ファイルシステム、ファイルシステムオーバーレイ及び/又はデータストアは、ニューラルネットワークの集合体として及びニューラルネットワークの集合体のノードに対する重みとして個々のデータ単位を格納することができる。例えば、データの個々のブロックは、ニューラルネットワークの集合体として及びニューラルネットワークの集合体のノードに対する重みとして格納することができる。いくつかの実施形態では、ファイルシステム、ファイルシステムオーバーレイ及び/又はデータストアは、単一のコンピューティングデバイス又は複数のネットワーク接続コンピューティングデバイスなど、いかなる数のコンピューティングデバイスのいかなる数の一時的な及び/又は永続メモリデバイス上にも位置し得る。いくつかの実施形態では、ファイルシステム、ファイルシステムオーバーレイ及び/又はデータストア並びにニューラルネットワークの集合体のノードに対する重みは、同じ及び/又は異なるメモリデバイス上に格納することができる。いくつかの実施形態では、ニューラルネットワークの集合体のノードに対する重みは、ブロックチェーンなどの分散型台帳に格納することができる。
【0015】
各データ単位を表現するニューラルネットワークの集合体は、データの教師なし学習を実施することができる。データ単位を学習するニューラルネットワークの集合体は、メモリデバイス上のデータ単位を置き換える及び/又は表現することができる。ニューラルネットワークの集合体は、データ単位及び/又はデータ単位と関連付けられたメタデータのコンテンツを学習することができる。いくつかの実施形態では、データ単位と関連付けられたキー入力は、データ単位に対する格納された重みと関連付けることができる。ニューラルネットワークの集合体は、キー入力を受信し、次いで、データ単位を再構築するというニューラルネットワークの集合体の動作の際に重みを適用することができる。いくつかの実施形態では、ニューラルネットワークの集合体は、キー入力を受信し、次いで、データ単位における動作、データ単位における動作によるデータ及び/又はメタデータ変更、並びに/或いは、データ単位における動作のソースを検証するというニューラルネットワークの集合体の動作の際に重みを適用することができる。いくつかの実施形態では、ニューラルネットワークの集合体は、キー入力を受信し、次いで、データ単位のデータ及び/又はメタデータを検証するというニューラルネットワークの集合体の動作の際に重みを適用することや、データ及び/又はメタデータの検証の失敗に応答してデータ単位を回復するというニューラルネットワークの集合体の動作の際に以前の重みを使用することができる。
【0016】
データ単位は、データのファイルなどの複数のデータ単位の組合せの一部であり得る。いくつかの実施形態では、データ単位を表現するニューラルネットワークの集合体は、複数のデータ単位の組合せと関連付けることができる。ニューラルネットワークの集合体によって再構築されたデータ単位は、複数のデータ単位の組合せに含めることができる。データ単位に対するアクセス動作により、ニューラルネットワークの集合体によるデータ単位における動作へのアクセス及び/又はデータ単位における動作の実施の実行をトリガすることができる。
【0017】
「コンピューティングデバイス」という用語は、本明細書では、携帯電話、スマートフォン、パーソナル又はモバイルマルチメディアプレーヤ、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、コンバーチブルラップトップ/タブレット(1台2役のコンピュータ)、スマートブック、ウルトラブック、ネットブック、パームトップコンピュータ、ワイヤレス電子メールレシーバ、マルチメディアインターネット対応携帯電話、モバイルゲームコンソール、ワイヤレスゲームコントローラ並びに同様のパーソナル電子デバイス(メモリ及びプログラマブルプロセッサを含む)のいずれか1つ又はすべてを指すために使用される。「コンピューティングデバイス」という用語は、パーソナルコンピュータ、デスクトップコンピュータ、オールインワンコンピュータ、ワークステーション、スーパーコンピュータ、メインフレームコンピュータ、埋め込みコンピュータ、サーバ、ホームシアタコンピュータ及びゲームコンソールを含む据置型コンピューティングデバイスをさらに指し得る。
【0018】
図1、2、4及び5に示されるようなサイバネティックエングラムの集合体は、ファイルシステムとして、データストアとして及び/又はデータブロック記憶装置として実装することができ、本明細書では集合的に、データ記憶システムと呼ぶことができる。各データブロックは、図2に示されるように、ニューラルネットワークの集合体及びプリミティブ関数として構成された論理ゲートを含むサイバネティックエングラムによって置き換えることができる。ニューラルネットワークの集合体は、フィードフォワードニューラルネットワーク、放射基底関数ニューラルネットワーク、回帰型ニューラルネットワーク、機械学習フォレストなど、いかなる数及び組合せの様々なニューラルネットワークも含み得る。
【0019】
学習されていないデータブロックは、サイバネティックエングラムによって、サイバネティックエングラムのニューラルネットワークによる教師なし学習を使用して学習することができる。学習済みのデータブロックは、サイバネティックエングラムのニューラルネットワークによって置き換えることができる。サイバネティックエングラムのニューラルネットワークは、主要コンポーネント分析を行うなど、様々な目的のために構成することができる。しかし、サイバネティックエングラムの主要機能は、何らかの特別なタイプの入力を学習済みのデータブロックに変換することであり得る。従って、サイバネティックエングラムは、学習済みのデータブロックを記憶することができ、データブロックは、メモリ内で、サイバネティックエングラムのアルゴリズムネットワークで置き換えることができ、その出力は、そのデータブロックであることが保証され得る。キー入力は、サイバネティックエングラムのニューラルネットワークへの入力であり得、ニューラルネットワークは、データを複製し、複製されたデータを出力することができる。膨大なサイバネティックエングラムは、Wordドキュメント、Excelスプレッドシート、MP3、JPEG、PDFなどのようなデータファイルなど、より大きなデータ集合体を構成することができる。従って、膨大なフラットデータブロックであった学習済みのデータファイルは、ここでは、特定の順番で並べられた膨大なニューラルネットワークであり得る。ニューラルネットワークは、データの異なる表現である。さらに、ニューラルネットワークの隠れ層に対する重みは、1つのメモリデバイス上に集中的に格納することも、ブロックチェーンなど、複数のメモリデバイスにわたって分散して格納することもできる。
【0020】
また、学習済みのデータのメタデータの一部の学習及び検証を行うこともできる。原理コンテンツ分析は、データのタイプ(例えば、Wordドキュメントなどのファイルタイプ)を決定するために、ニューラルネットワークの再構築されたデータ出力において使用することができる。その結果、ニューラルネットワークによって決定されたファイルタイプが存在し得、メタデータから報告されたファイルタイプが存在し得る。これは、メタデータの拡張子解釈又はデータMIMEタイプの含み方と同様である。メタデータは、報告されているように、データ記憶システムに存在し得る。メタデータは、ファイルシステムに見られるようなデータとは別に、データ記憶システムに格納することができる。従って、データをニューラルネットワークによって置き換えることができる一方で、メタデータは、キャッシュデータとしてのみならずフラットデータとしても格納することができる。しかし、別個のニューラルネットワークとして格納できるほど十分なメタデータが存在しない場合がある。このメタデータの一部は、入力としてサイバネティックエングラムに供給することができる。検証済みのメタデータは、サイバネティックエングラムによって、関連データ及びメタデータの保護の際に使用することができる。例えば、サイバネティックエングラムによる主要コンポーネント分析における異なる結果を生み出し得る何かが注入された場合は、主要コンポーネント分析は、データがもはや単なるWordドキュメントではないと決定することができる。主要コンポーネント分析は、実行可能ファイル、JavaScript、visual basic scriptなど、Wordドキュメントで以前に見られたものとは異なる注入データをデータが含み得ると決定することができる。本質的には、サイバネティックエングラムは、同じデータの一次、二次、三次などの解釈を識別し、次いで、ユーザ又はアプリケーションにかかわらず、世界にデータが提示しているのは何なのか及びデータが実際に何なのかを決定することができる。データが提示していると思われるものと実際のものとの間に違いがある場合は、その違いをフラグ付けすることができる。
【0021】
学習済みのデータへのアクセス要求により、データを再生成するようにニューラルネットワークをトリガすることができる。サイバネティックエングラムは、ニューラルネットワークでデータを置き換えることができる。データを回収するため、ニューラルネットワークは、カーネルからでさえも、トリガすることができる。仮にニューラルネットワークによって学習された後に格納されたフラットデータをカーネルのファイルシステムドライバが読み取る場合、読み取られることになるすべてのデータは、ディスクに磁気記載されたニューラルネットワークの重みであり得る。データは、直接アクセスが可能ではない場合がある。データは、エンジンにおいて符号化することができ(すなわち、サイバネティックエングラムのニューラルネットワーク)、エンジンは、データを回収するために起動することができる。データの代わりに重みを格納することにより、別のシステムへの重みの入力及びデータへの逆変換を防ぐことができる。これは、ニューラルネットワークを使用する重みの変換がニューラルネットワークへの特定の入力によって左右されることを理由に、部分的に遂行することができる。
【0022】
特定の入力は、多くの異なる方法で構成することができるキー入力であり得る。キー入力は、ある種のデジタル信号シグネチャ(ただし、プレシグネチャ)のような完全性検証キーとして構成することができる。キー入力は、ユーザのデジタル検証よりも必須完全性コントロールワールドに分類され得る。キー入力の様々な実装形態は、秘密保持を実施するように構成することができる。秘密保持は、非対称パブリックキー/プライベートキーメカニズムを使用して実施することができる。キー入力は、必須完全性を実施するように構成することができる。キー入力は、より冗長なニューロンをニューラルネットワークに追加することによってワンタイムパッドに構成することができる。
【0023】
ニューラルネットワークに入力することができるメタデータは、現行のプロセスのユーザ(ユーザI.D.及びグループI.D.など)を含み得、それにより、下位のフィールドレベルでの組み込み式データアクセス制御を提供することができる。正しいユーザが追加されていない場合は、ニューラルネットワークは、データのある部分を出力しないことがあり得る。従って、許可能力は、アクセス制御能力に伴うキー入力に組み込むことができる。
【0024】
ファイルシステム動作は、開くこと、閉じること、読み取ること、書き込むこと及び実行することを含み得る。読み取りの場合、サイバネティックエングラムは、サイクルを繰り返すことができ、読み取りにおいて実施することができる異なるサイクルが定義され得る。同様に、書き込みの場合、類似したプロセスを実施することができる。例えば、サイバネティックエングラムの主要コンポーネント分析サブシステムは、データへの書き込みにより、主要コンポーネントがもはや同じタイプ(docx又はPDFなど)を生み出さないほど劇的に出力が変化したかどうかを判断することができる。例えば、感染するとすべてを暗号化するランサムウェア攻撃は、主要コンポーネント分析の結果に基づく更新として、サイバネティックエングラムのニューラルネットワークによって完全に拒絶することができる。書き込み動作は、新しいブロックを学習するようにニューラルネットワークをトリガすることができる。ニューラルネットワークは、長期記憶としてブロックチェーンの古いブロックにスタンプを付けることができる。新しいデータブロックの学習により、ニューラルネットワークに重みの変更を行わせることができる。以前に格納された重みから分かるように新しいデータブロックの原理コンポーネントがもはやWordドキュメントではない場合は、書き込みを拒絶することができる。事実上、何かがやってきて、その本質が変わるほど劇的にディスクコンテンツの変更を試みる場合は、一般的には、それが、実世界における一般原理として防ぐべき変更である。しかし、ニューラルネットワークは、データのいくつかの変異を許容し、他の変異を防ぐように訓練することができる。例えば、実行可能ファイルの変異及びPDFに埋め込まれたフラッシュは許容できない。しかし、ユーザは、どの変異を許容し、どの変異を許容しないかを実際に選ぶことができる。
【0025】
いくつかの実施形態では、サイバネティックエングラムの集合体は、例えば、データストア、ネットワーク、ソフトウェアが定義可能なブロックデバイス及び/又はファイルシステムとして開発することができる。サイバネティックエングラムは、フォーマットに依存しないものであり得る。
【0026】
いくつかの実施形態では、サイバネティックエングラムの集合体は、非集中化及び分散化されたファイルシステムであり得る。単にファイルシステムを起動するためのソフトウェアをインストールするだけでよい。ファイルシステムがインストールされた時点で又はその能力が1か所に集まった時点で、いつでもどのタイプでもデータが到着する場合、教師なし学習エンジンは、データを学習することができ、サイバネティックエングラムを管理するためのプロセスは、人間の介入なしで、データにおける動作を適切に開始することができる。
【0027】
サイバネティックエングラムは非集中化することができるため、ネットワーク上で遭遇し得るデータの多くは共通のものであり得る。共通のデータを表現するため、共有ニューラルネットワークを実装することができ、それらの重みを検証することができる。簡単な例を挙げてみよう。複数のニューラルネットワークによって学習された同じブロックは、同じハッシュを生成し得る。従って、複数の異なるニューラルネットワークは、同じフラットデータブロックに対して同じハッシュを生成し得る。ニューラルネットワークは、それらの隠れ層に対する重み付けスキームを報告し得る。ニューラルネットワークの1つに歪みが発生した際は、ブロックチェーンを使用した合意ネットワークを実装することができる。重みが何であるかを見出す上で大部分の作業を行ったニューロンは、信頼することができ、歪んだニューラルネットワーク上で使用することができる。現実世界では、ブロックチェーンを見ると、オラクルが唯一の弱点である。オラクルはすべて、ブロックチェーンへの外部入力である可能性があり、それらの入力は、検証済みであると考えられ得る。値は、そのまま受け入れられ得る。ここでは、サイバネティックエングラムのファイルシステムは、必ずしもオラクルが完全に信頼できるものであるとは限らないハイブリッドを実施することができる。従って、複数のオラクルは、それらの入力を検証するために合意メカニズムを使用することができる別の閉システムに対する異なる外部入力レポータであり得る。
【0028】
1つのニューラルネットワークでさえ、それ自体のタイプ、コンテンツ及び履歴を知っていることから、自己認識、自己修復及び自己保護であると言えるため、自己認識、自己修復、自己防御データの態様は、サイバネティックエングラムのニューラルネットワークを介して実装することができる。さらに、ニューラルネットワークは、データ及びメタデータが依然として検証されているかどうかについてそのピアに問い合わせを行うこともできる。ファイルシステムでは、データを得るために、ニューラルネットワーク起動を強制的に行うことができ、ニューラルネットワークは、フラットデータを読み取るというよりむしろ、出力としてそのデータをより興味深いものにするこれらの異なるこまごまとしたものすべてをその中に有することができる。ニューラルネットワークの強制起動は、データが読み取られると何が起こるか、データが書き込まれると何が起こるか及びデータが削除されると何が起こるかに影響をもたらし得る。データが削除される際は、データのインプレッションは依然として、ファイルシステムからブロックチェーンにあり、復元することができる。
【0029】
ニューラルネットワークの出力自体が実行可能ファイルである際は、実行可能ファイルは、修正抵抗性、リモート性、スマートコントラクト及び/又は自己破壊データ/ワンタイム使用データを維持するように構成することができ、それらは、認証及び認可のためのノンス及びワンタイムトークンに適用することができる。
【0030】
一般に、データはパッシブである。本明細書では、パッシブデータは、このデータコンテンツへのアクセスを試みているオペレーティングシステム又は他のアプリケーションがデータコンテンツにアクセスするために起動できるニューラルネットワークで置き換えることができる。キー値ストア300は、図3に示されるように、データブロック304値と関連付けられるキー入力302を含み得、キー入力302は、データへのアクセス及び/又はデータにおける動作を行うためのニューラルネットワークへの入力及びトリガとして使用することができ、データは、複数のデータブロック304で構成することができる。キー入力値は、読み取り又は書き込みなどの動作要求(図3に示される例の「要求」)と、関連付けられたデータブロック304の動作要求パラメータ及び/又はメタデータを含み得る他のパラメータ(集合的に、図3に示される例の「パラメータ」)とを含み得る。図3に示される例では、データブロック304は、キー値ストア302のキー値302とデータブロック304との関連付けを示す目的のために示されている。しかし、いくつかの実施形態では、データブロック304は、キー値ストア302から除くことができる。いくつかの実施形態はキー値ストア302を実装しているが、キー入力302は、必ずしもキー値ストア300を使用して格納しなくとも、全く格納しなくともよい。いくつかの実施形態では、キー入力302は、データブロックに対する動作要求のために生成することができ、例えば、データブロックへのアクセスを試みているプロセス又はプログラムによって、別のプロセス及び/又はプログラムからのデータブロックに対する動作要求に応答してサイバネティックエングラムに対するキー入力を生成するように構成されたプロセス又はプログラムによって、並びに/或いは、プロセス又はプログラムからの動作要求に応答してサイバネティックエングラムによって行うことができる。いくつかの実施形態では、キー入力302は、サイバネティックエングラムに対するキー入力値の以前の履歴を使用して生成することができる。いくつかの実施形態では、キー入力302は、時間的(離散時間又は連続時間であり得る)に順序付けられたキーを使用して生成することができる。いくつかの実施形態では、それらはキー入力302は、中断時系列及び/又は他の任意の時系列(入力のような)を通じて生成することができる。いくつかの実施形態では、キー入力302は、順序付けされたデータを使用して生成することができ、順序付けされたいかなるデータも、離散シーケンス又は連続シーケンスであり得る。いくつかの実施形態では、キー入力302は、ランダム配置又はランダムな割り当てを通じて生成することができる。
【0031】
サイバネティックエングラムは、データブロックへのアクセスが行われる度に起動することができるニューラルネットワークの形態の機能を含み得る。ニューラルネットワーク(多層パーセプトロンニューラルネットワーク、回帰型ニューラルネットワーク又は長・短期記憶ニューラルネットワークなど)に対する重みは異なるデータコンテンツに対するニューラルネットワーク機能の訓練に基づいて異なり得るため、機能の実行は、各サイバネティックエングラムと関連付けられたデータブロック304間で異なり得る。いくつかの実施形態では、キー入力302(要求及び/又は要求の対応するパラメータを含み得る)は、ニューラルネットワークへの入力であり得る。キー入力302(要求を含む)は、サイバネティックエングラムに入力することができ、サイバネティックエングラムのニューラルネットワークは、ニューラルネットワークに対するキー入力302及び重みと関連付けられたデータブロック304を再生成することができる。フラットデータを格納するというよりむしろ、任意の数のメモリデバイス上に格納できるものは、サイバネティックエングラム構造及びデータブロック304に対する対応する重みであり得る。要求及び/又はそのパラメータは、データブロック304を回収するため及び/又はデータブロック304において動作するために入力することができるため、要求は、データブロック304と絡み合わせることができる。ニューラルネットワークのニューロンのうちの1つへの入力としての要求は、データブロック304を回収するため及び/又はデータブロック304において動作するために、その要求に対するそのデータブロック304に対応する適切な重みを有する適切な要求が必要であることを保証することができる。この関連付けは、任意のタイプの要求及びその要求に対する対応するいかなるパラメータ値と、データブロック304とに対して行うことができる。
【0032】
データはメタデータを伴う。メタデータは、要求の一部としての入力でもあり得る。例えば、データブロック304は、ユーザ名、プロセスI.D.と一致するファイル所有者I.D.及び設定されている対応する許可ビットなど、あるパラメータの下でアクセスされることになっているものであり得る。また、メタデータは、このニューラルネットワークへの入力でもあり得る。従って、セキュリティ規則は、データに直接埋め込むことができる。一般に、いかなるタイプの任意のアクセス制御規則も、ニューラルネットワークに正しい量のニューロンを追加することによってデータに埋め込むことができる。埋め込まれるセキュリティは、キー入力に基づいて変化するデータと関連付けられる重みに基づき得る。入力と適切な重みが一致しない状態では、正しい出力データを回収することはできない。
【0033】
図1に示されるようなサイバネティックエングラム102のシックフォレスト100は、複数のデータブロック304で構成されるデータを表現するために使用することができる。いくつかの実施形態では、データがサイバネティックエングラム100のシックフォレストからたやすく抽出されないように、データにおいてワンタイムパッドタイプのスクランブリングを実施することができる。シックフォレスト100の各サイバネティックエングラム102は、図5に示されるように、キー入力302を受け入れ、関連付けられたデータブロック304(図5に示される例の「データブロック」)を出力することができる。集合的には、シックフォレスト100のサイバネティックエングラム102は、同じキー入力302を使用して様々な関連データブロック304を出力することができる。
【0034】
データにアクセスするため及び/又はデータにおいて動作するためにオペレーティングシステムが入るインタフェースは、キー入力302を受け入れることができ、キー入力302は、要求、要求パラメータに加えて、メタデータ及び他のこまごまとしたものを含み得る。サイバネティックエングラム104の出力は、実際には、データブロック304の値ではなく、図1及び4に示されるように、シックフォレスト100におけるデータブロック304への参照400(図4に示される例の「参照ポインタ」)であり得る。シックフォレスト100のサイバネティックエングラム102を参照することができるサイバネティックエングラム104の集合体は、サイバネティックエングラム104のシンフォレストであり得る。ニューラルネットワークは、実際には、シックフォレスト100においてデータブロック304が位置し得る場所に参照400を出力することができる。シンフォレストのサイバネティックエングラム104は、シックフォレスト100のサイバネティックエングラム102をトリガするためにキー入力302を出力することができる。最終的には、シックフォレスト100の出力を取り入れ、データブロック304からデータを再構築することができる別のニューラルネットワーク(図示せず)が存在し得る。サイバネティックエングラム120、104のリンクされたシンフォレスト及びシックフォレスト100は、データの圧縮及びデータの重複排除を可能にすることができる。また、リンクされたサイバネティックエングラム102、104は、深層データ分析及び/又は深層学習を可能にすることもできる。
【0035】
いくつかの実施形態では、キー入力302及び関連する重みを使用してデータブロック304を再構築するように構成されたニューラルネットワークに加えて、サイバネティックエングラム102、104は、図2に示されるように、データブロック304に対する他の機能用に構成されたニューラルネットワーク(図2に示される例の「順序付けニューラルネットワーク」202、「検証ニューラルネットワーク」208、「認可ニューラルネットワーク」210)をさらに含み得る。例えば、別のニューラルネットワークは、制御フィルタのように機能することができる。データブロック304に対する更新要求が到着すると、サイバネティックエングラム102、104は、その中に含まれる他のニューラルネットワークを介して、データブロック304に対する重みを変更することができるコンピューティングデバイスの唯一のコンポーネントであり得る。
【0036】
書き込み記録要求が発生する際は、例えば、主要コンポーネント分析を含む、データブロック304に対するアクセス制御を実施することができる。いくつかの実施形態では、主要コンポーネント分析は、書き込み記録要求がデータタイプの変更を試みているかどうかを判断することができる。例えば、データブロック304のメタデータは、docxとしてデータタイプを示し得るが、その理由は、それが最後尾であるか、MIMEタイプであるか又はヘッダ情報であるためである。サイバネティックエングラム102、104は、メタデータによって報告されるように、docxタイプとしてデータブロック304を認識することができる。しかし、主要コンポーネント分析を実施するように構成されたサイバネティックエングラムニューラルネットワークは、更新済みのデータブロック304の重みから、実行可能ファイルとしてデータブロック304のデータタイプを特定し得るか又は埋め込まれたJavaScript又は他の何らかの望まれていないオブジェクトをデータブロック304が含むと特定し得る。データブロック304の望ましくない変更の場合、サイバネティックエングラム102、104は、データブロック304に対するその更新を拒絶することができる。
【0037】
サイバネティックエングラム102、104のニューラルネットワークは、実行可能ファイル、JPEG、PDF、Wordドキュメント、Excelドキュメントなど、様々なタイプのデータブロック304を分類及び検証するように構成することができる。各タイプは、データブロック304間で、ヘッダ以外のタイプのいくつかの共通の特徴を有し得る。各タイプは、データブロック304のコンテンツへのフローを有し得る。
【0038】
ニューラルネットワークを訓練するため、データブロック304は、ニューラルネットワークを通じて実行することができる。例えば、2つの入力は、多層パーセプトロンニューラルネットワークの非常に膨大なパーセプトロンに拡大することができる。ニューラルネットワークを訓練するため、ランダム重みを選択することができる。ニューラルネットワーク動作が層を通じて進行するにつれて、各層のニューロンの数は、先の層からのニューロンの数と比べて低減し得る。次いで、ニューラルネットワークは、次の層におけるニューロンの数を先の層からのニューロンの数まで拡大して戻すことができる。重みは、ニューラルネットワークの出力がニューラルネットワークへの入力と同じになるまで調整することができる。従って、入力がx1及びx2である場合は、出力は、x1及びx2であると考えられる。ニューラルネットワークが複数のWordドキュメントに対して訓練されている場合は、Wordドキュメントとしてx1及びx2の入力がx1及びx2の出力を維持するかどうかを確認するために使用される重みは、WordドキュメントをWordドキュメントたらしめるものを含み得る。これが役立つ例は、データブロックが暗号化によって根本的に変更され得るランサムウェア攻撃であり得、サイバネティックエングラム102、104は、データブロック304に対する重みを更新しない可能性がある。
【0039】
また、アクセス制御は、データブロック304の重みに埋め込むこともでき、サイバネティックエングラム102、104のニューラルネットワークは、キー入力302において識別されたユーザ及び/又はプロセスに対してデータブロック304へのアクセスが認可されているかどうか、並びに/或いは、データブロック304に対してユーザ及び/又はプロセスが認可されている動作は何か(読み取り、書き込み、コピーなど)を判断するように構成することができる。データタイプを検証する場合のニューラルネットワークと同様に、アクセス制御用に構成されたニューラルネットワークは、入力を取り入れることができ、データブロック304の重みを適用する際、出力が入力と同じであると期待することができる。アクセスは、入力と出力が同じであることに応答して認められ、入力と出力との間の違いに応答して拒否される可能性がある。
【0040】
更新が起こる時でさえ、データブロック304に対する重みの履歴は、例えば、ブロックチェーン上に格納することができる。データブロック304に対する重みの履歴は、データブロック304に対するオリジナルの重みまで拡張することができる。重みの履歴は、各データブロック304に対して格納することができる。従って、データのコンテンツは、格納された重みに埋め込むことができる。それに加えて、更新が実施されたという事実や、更新を要求したのは誰かについても、格納された重みに埋め込むことができる。格納された重みの履歴により、更新の取り消し及びデータの以前のバージョンの読み取りが可能になり得る。データブロック304の重みの履歴の分散化格納により、重みのコピーを複数の場所に格納することができるため、記憶装置のネットワークの一部分が利用可能ではない場合でさえ、データへのアクセスが可能になり得る。
【0041】
いくつかの実施形態では、サイバネティックエングラム102、104によるデータブロック304の置換により、ネットワーク接続システムにおけるデータの重複排除が可能になり得る。データブロック304の重みは、複数のコンピューティングデバイスによって共有及びアクセスすることができ、複数のコンピューティングデバイスの各々は、それら自体で使用するために重みを使用してデータブロック304を再構築するようにサイバネティックエングラム102、104を実装することができる。この方法での重複排除は、複数のコンピューティングデバイス上で同じデータブロック304の複数のコピーを維持する必要がないように、複数のコンピューティングデバイスによってアクセスされる静的データに対して有利であり得る。例えば、複数のコンピューティングデバイスは、静的オペレーティングシステムイメージを使用して同じオペレーティングシステムの大部分を実行することができる。静的オペレーティングシステムイメージを各コンピューティングデバイス上に格納するというよりむしろ、コンピューティングデバイスは、実際のデータが存在する所であり得るサイバネティックエングラム102の共有シックフォレスト100を介して、データブロックにアクセスすることができる。各コンピューティングデバイスは、例えば、サイバネティックエングラム102のシックフォレスト100のストレージへの参照400を提供することができるコンピューティングデバイス上のサイバネティックエングラム104のシンフォレストからサイバネティックエングラム102、104を実行することができる。
【0042】
いくつかの実施形態では、サイバネティックエングラム102、104のニューラルネットワークは、並列で実行することができ、すべての検証、認証及び他の機能が完了し、データブロック304へのアクセスが許容可能であると見なされた時点で、要求側のソースにデータブロック304へのアクセスを提供すること及び/又はデータブロック304における動作(データブロック304に対する重みの更新)を格納することができる。データブロック304へのアクセスが拒否されると見なされた場合は、データブロック304へのアクセスを防ぐこと及び/又はデータブロック304における動作(データブロック304に対する重みの更新など)を放棄することができる。いくつかの実施形態では、サイバネティックエングラム102、104を実装する複数のプロセッサによる非同期要求処理を実施することができ、それは、データの処理性能に良い影響を及ぼすことができる。例えば、非集中化ファイルシステムとして設定される際は、数千のプロセッサがデータを要求することができ、すべての要求側のプロセッサに重みを提供することができる。
【0043】
いくつかの実施形態では、サイバネティックエングラム102、104は、キー値ストア300を有するファイルシステムに対して実装することができる。いくつかの実施形態では、サイバネティックエングラム102、104は、任意の記録のための任意のデータベース又は任意のリアルデータストレージタイプに対して実装することができる。サイバネティックエングラム102、104を実装できる環境は、特定のフォーマットである必要はない。サイバネティックエングラム102、104は、フォーマットに依存しない及びストレージタイプに依存しないものであり得る。
【0044】
いくつかの実施形態では、サイバネティックエングラム102、104は、シンプロビジョニングファイルシステムとして実装することができ、新しいファイルシステムドライバ又はオーバーレイファイルシステムとして機能し得る。例えば、データ及びデータの変更は、ファイルシステムの層に格納することができる。オリジナルのデータは、オリジナルのファイルシステム層に格納することができる。ファイルシステムは、オリジナルのデータを編集すること及び/又は新しいデータを異なる層に格納することができる。変更のないオリジナルのデータは、オリジナルの層からアクセスすることができ、オリジナルのデータの更新済みの部分又は新しいデータは、異なる層からアクセスすることができる。層は、様々な場所にデータへの編集を格納できるように追加することができる。層をマージして、層の組合せからデータを提供することができる。
【0045】
同様に、サイバネティックエングラム102、104は、オリジナルのデータに対する重みを格納するために使用することができ、オリジナルのデータのいかなる更新も、より新しい重みとして格納することができる。格納された重みと関連付けられていないデータにより、データの学習及びデータのオリジナルのバージョンに対する重みの格納を行うようにサイバネティックエングラム102、104がトリガされ得る。いくつかの実施形態では、すべてのデータに対する重みをファイルシステムに格納するというよりむしろ、オリジナルのデータへの更新のみが、サイバネティックエングラム102、104による重みの学習及び格納をトリガし得る。いくつかの実施形態では、オリジナルのデータの集合体の変更により、データの集合体に対する重みの学習及び格納を行うようにサイバネティックエングラム102、104がトリガされ得る一方で、サイバネティックエングラム102、104は、変わらないままのオリジナルのデータの学習は行わない。一例では、サイバネティックエングラム102、104が最初にファイルシステムの既存のデータに適用される際、又は、ファイルシステムのデータへの更新が行われる際は、サイバネティックエングラム102、104は、ファイルシステムのデータを学習し、学習済みのデータに対する重みを格納することができる。重みが格納されたデータブロック304の集合体から、オリジナルのデータブロック304への更新により、データブロック304の集合体に対する重みに加えて、更新済みのデータブロック304に対する新しい重みを格納することができる。データブロック304の履歴において様々な時間にデータブロック304に対する重みを回収するという要求を行うことができる。どの重みが要求及び回収されるかは、データブロック304のどのバージョンが再構築されるかを制御し得る。重みに対するアクセス制御は、ファイルシステム上に最初に格納されたデータに対するアクセス制御によって決定することができる。データブロック304の更新の場合、そのデータが属するデータの集合体を表現するサイバネティックエングラムシックフォレスト100は、データブロック304の更新が許容可能であるかどうかを判断する上で役立てるために、集合体の様々なデータブロック304における検証、認可及び他の機能チェックを実行することができる。例えば、単一のデータブロック304は、十分なデータを有さないか又はデータタイプが変更されていることを示すほど十分に変更されていない可能性があるため、単一のデータブロック304の更新は、それ自体では原理コンポーネント分析に失敗しない可能性がある。しかし、関連データブロック304と組み合わせると、データブロック304の変更は、関連データブロック304の変更と共に、望ましくない変更がデータブロック304において起こっていることをサイバネティックエングラムシックフォレスト100に示すことができる。さらに、サイバネティックエングラム活動は、ヒートマップを作成するデータを提供することができ、ヒートマップは、データが使用及び更新されているものである。使用も更新もされていないデータは、アーカイブされる可能性がある。
【0046】
サイバネティックエングラム102、104は、オペレーティングシステムカーネルにロードするか又はライブのFilesystem in Userspace (FUSE)としてロードすることができるファイルシステムドライバとして実装することができる。サイバネティックエングラム102、104は、オリジナルのデータベースの複製データベースとして実装することができる。データベースクエリは、複製データベースに誘導することができ、複製データベースがデータを有する際は、複製データベースは、データを提供することができる。複製データベースがデータを有さない際は、複製データベースは、オリジナルのデータベースへのクエリを行い、出力を作成することができる。
【0047】
いくつかの実施形態では、複数のコンピューティングデバイスにわたるサイバネティックエングラムの実装の場合、重みの非集中化された格納により、すべてのコンピューティングデバイスにおいてすべてのディスクの空き容量を利用可能にすることができ、そのディスクの空き容量は、共有するものとして提示される。ディスクの空き容量は、共有するものとして、データストアとして又はブロックデバイスとして提示することができる。
【0048】
いくつかの実施形態では、サイバネティックエングラム102、104は、単一のコンピューティングデバイスにおいて実装することができる。単一のコンピューティングデバイスの実装形態は、サイバネティックエングラム102、104のニューラルネットワークによって提供される人工知能のすべての利益を達成することができる。しかし、ブロックチェーンの重み格納の利益は実現することができない。
【0049】
データブロック304に対する重みは、複数のコンピューティングデバイスにわたって冗長的に格納することができ、その結果、いくつかのコンピューティングデバイスが利用できない際でも、データブロック304は依然としてアクセス可能である。従って、複数のコンピューティングデバイスにおけるサイバネティックエングラム102、104の実装により、各コンピューティングデバイスがデータのすべてを格納する必要はないため、データの重複排除が可能になる。しかし、データブロック304に対する重みは、消去コードのために冗長的に格納することができる。従って、消去コードと重複排除との間にはバランスがあり得る。データの更新は、分散化された重みメモリ上の差分を回復する際にバイナリ差分を渡すために、xdelta又はrsyncタイププロトコルを使用することができる。従って、データブロック304に対して格納されたすべての重みに対し、次のエントリは、単に、更新によって生じた重みの差を含み得る。重み及び重み差分の各例は、データブロック304を含むファイルの履歴を作成するためにタイムスタンプを付けることができる。
【0050】
データブロックに対するメタデータは、ファイルの統計に織り込むことができる。例えば、ファイルが最後に修正されたのはいつだったかなど。これは、そのメタデータがオペレーティングシステムカーネルに依存し得、いつも信頼できるとは限らないという理由のためにキー入力302に含めることができないメタデータの一部を含み得る。メタデータは、サイバネティックエングラム102、104のニューラルネットワークの動作によって生成することができ、そのメタデータは、ファイルのデータブロック304に対する重みに絡み合わせることができる。
【0051】
メタデータは、ファイルと関連付けられた任意のキー値の検証又は維持を行うために使用することができる。例えば、どのユーザが許可を有するかを指定する任意のホワイトリストラベリングを作成するため。或いは、例えば、注意事項において秘密ラベルを与えることによって機密のものにマーク付けするため。任意のキー値をファイルと関連付けるためのメタデータの使用により、ファイルにおいて決定性アクセス制御を実施するための能力を提供することができる。例えば、秘密ファイルのコンテンツは、常に秘密ファイルを作成することになる。別の例では、関連付けにより、書き込み・読み取りアクセス制御のエンフォースメントが可能になり得る。
【0052】
いくつかの実施形態では、サイバネティックエングラムは、ファイルシステムオーバーレイとして及び/又はファイルシステムフィルタとして実装することができる。
【0053】
いくつかの実施形態では、重みは、NILFSのようなログ構造ファイルシステム上など、集中化メモリデバイスに格納することができ、それにより、ジャーナリングを提供することができる。ログ構造ファイルシステムは、ブロックチェーンと同様の重みの履歴追跡の能力を提供することができる。
【0054】
いくつかの実施形態では、ヒューリスティクスを使用して、データブロック304の相対値は何であるか及びファイルの相対値は何であるかを評価することができる。ファイルの値情報を用いて、値に基づくアクセス制御を実施することができる。例えば、値は、トラストクレジットで測定することができる。データの集合体に対するトラストクレジットの総合値は「x」であり得、ユーザ又はプロセスには、一定の期間の間、「y」トラストクレジットを割り当てることができる。アクション及びデータには、トラストクレジットコストを個別に割り当てることができ、アクション又はデータアクセスの実施ごとに、ユーザ又はプロセスのトラストクレジットのバランスが低減し得る。トラストクレジットのバランスが不十分であることにより、ユーザ又はプロセスによるアクション又はデータアクセスの実施が妨げられ得る。いくつかの実施形態では、ユーザ又はプロセスには、より信頼性の高いユーザ又はプロセスによってトラストクレジットを与えることができる。しかし、トラストクレジットを与えることで、より信頼性の高いユーザ又はプロセスのトラストクレジットのバランスが損なわれ得る。経時的には、トラストクレジットバランスは、補充することができる。値に基づくアクセス制御のいくつかの適用は、外部のデバイス又はネットワーク接続を介する過度のデータダウンロードを防ぐため、又は、データの集合体に対するアクセス制限(どのデータというよりむしろ、一定の量のデータのみがアクセスできる)を提供するためのものであり得る。値に基づくアクセス制御は、個人レベルで又は企業に至るまでのレベルで(企業は、超えられないトラストクレジットバランスを有し得る)実施することができる。値に基づくアクセス制御により、任意の数のユーザ又はプロセスによる(個別又は共同での)データの集合体における不適切なアクションの定量化が可能になり得る。
【0055】
図2に示されるように、サイバネティックエングラム102、104は、それが表現するデータブロック304にアクセスするための正式な方法を用いて及びデータブロック304を変更するための変換プロセスを用いて構成することができる。データブロック304へのアクセス及び変更は、サイバネティックエングラム102、104のアクセス及び変換プロセスを使用せずに実施することはできない。また、サイバネティックエングラム102、104は、変換プロセス及び変換プロセスの結果をチェックするように構成された完全性検証プロセスを用いて構成することもできる。サイバネティックエングラム102、104のプロセスの実行を試みているユーザ及び/又はプロセスは、サイバネティックエングラム102、104による認可チェックの対象であり得る。
【0056】
サイバネティックエングラム102、104へのキー入力302は、ユーザの識別、要求された変換プロセス及び他のパラメータを含み得、それには、データブロック304のメタデータが含まれ得る。キー入力は、サイバネティックエングラム102、104に提供すること、サイバネティックエングラム102、104によって回収すること及び/又はサイバネティックエングラム102、104によって生成することができる。キー入力302は、変換プロセスの構成及びデータブロック304における変換プロセスの実行(例えば、図2に示されるような順序付けニューラルネットワーク202)が行われ、それにより、データブロックに対する重みが更新されるように、サイバネティックエングラム102、104のニューラルネットワークに提供することができる。キー入力302は、変換プロセスが正しいことを行ったことを確認して変換プロセスの有効性をチェックするために完全性検証プロセス(例えば、図2に示されるような検証ニューラルネットワーク208)が実行されるように、サイバネティックエングラム102、104のニューラルネットワークに提供することができる。キー入力304は、ユーザ及び/又はプロセスがデータブロック304に対する変換プロセスへのアクセス及び/又は変換プロセスの要求に対する許可を有するかどうかをチェックするためにユーザ及び/又はプロセス認可(例えば、図2に示されるような認可ニューラルネットワーク210)が実行されるように、サイバネティックエングラムのニューラルネットワークに提供することができる。
【0057】
サイバネティックエングラム102、104は、メモリ(例えば、図2に示されるようなニューラルネットワークメモリバンク206)として構成されたニューラルネットワークをさらに含み得る。いくつかの実施形態では、ニューラルネットワークメモリバンク206は、ニューラルプログラマインタプリタ(NPI)、ニューラルチューリングマシン(NTM)及び/又はNPIとNTMの組合せとして構成することができる。いくつかの実施形態では、ニューラルネットワークメモリバンク206は、マシンが2つのスタックが取り付けられたプッシュダウンオートマタである限り文脈依存言語を解析することができる任意のマシンとして構成することができる。メインメモリ又はキャッシュがプロセッサによるアクセスのために少量のデータを格納することができるのと同じように、ニューラルネットワークメモリバンク206は、少量のデータを格納するように構成することができる。ニューラルネットワークメモリバンク206に格納されるデータは、関連付けられたデータブロック304に対する重みを含み得る。ニューラルネットワークメモリバンク206は、図1及び4に示されるように、サイバネティックエングラム102と関連付けられたデータブロック304を表現するサイバネティックエングラムシックフォレスト100への参照400を格納するように構成することができる。
【0058】
順序付けニューラルネットワーク202は、長・短期記憶(LSTM)フォレスト及び回帰型ニューラルネットワーク(RNN)フォレストを含み得る。サイバネティックエングラム102、104によってどちらのニューラルネットワークフォレストが使用されるかは、動的選択であり得る。ある事例では、RNNは高速学習が可能であるため、RNNの方がうまく機能し得る。さらに、RNNは、LSTMほど優れたメモリ容量は有さないが、それは、サイバネティックエングラムシックフォレスト100に外部参照400を出力するように又はニューラルネットワークメモリバンク206内の場所に本明細書ではiノードと呼ばれるものを出力するように構成することができるサイバネティックエングラム102、104には必要ない場合がある。iノード又は外部参照400を出力するように構成されたサイバネティックエングラム104の場合、以前のiノード又は外部参照400を記憶しておく必要はない。しかし、LSTMは、変換される前から重みを記憶しておくことによってデータブロック304の以前のバージョンを記憶している際の使用に、より適しているものであり得る。
【0059】
サイバネティックエングラム102、104は、論理ゲート又は演算ゲートのプール(例えば、図2に示されるようなゲートのプール200)をさらに含み得る。ゲートのプール200は、プリミティブ関数(例えば、read、write、copy、go to、if、for、while、printなど)を含み得る。順序付けニューラルネットワーク202は、変換を実施するゲートの順序を作成することができる。順序付けは、学習することができ、変換されているデータ構造に適切な動作に依存し得る。例えば、変換対象のデータは、型なしデータであり得る。型なしデータの単純な読み取り及び書き込みは、ビット又はバイトレベルで読み取り及び書き込みを行う型なしデータ用のプリミティブを採用することができる。変換対象のデータは、型付きデータであり得る。プリミティブは依然として読み取り及び書き込みであるが、検証ニューラルネットワーク208は、タイプエンフォースメントがオンであることを確認する。例えば、要求が32ビット整数を読み取ることである場合は、検証ニューラルネットワーク208は、出力データが32ビットであることを確認することができる。検証ニューラルネットワーク209は、例えば、32ビット整数が返されることを保証するようになど、タイプ検証を行うように訓練することができる。それに加えて、順序付けニューラルネットワーク202が読み取り中のデータを返した際は、検証ニューラルネットワーク208は、返されたデータが適正に位置合わせされていること、正しいバイト数であることなどを確認することができる。検証ニューラルネットワーク208は、返されるデータのタイプに対する制限を課すことができる。検証ニューラルネットワーク208は、ゲートの順序を通じてループを繰り返して、順序が正しいこと及び期待される出力が生成されることを確認することによって、順序付けニューラルネットワークが、適正なゲートの順序を使用して正しいデータ量を出力することを確認することができる。サイバネティックエングラム102、104は、様々なデータタイプを通じてデータを自動的にソートし、さらに、データを内部で自動的に分類することによってして、データタイプをどのように検証するかを見出すために、教師なし訓練モデルを使用して、その検証ニューラルネットワーク208を組み立てることができる。
【0060】
サイバネティックエングラム102、104は、様々な機能用に構成されたいかなる数のニューラルネットワークも組み合わせることができる。いくつかの実施形態では、サイバネティックエングラム102、104は、可変サイズのプリミティブストレージとして構成することができる。ニューラルネットワークメモリバンク206の構成は、サイバネティックエングラム102、104を構成する選択の結果であり得る。サイバネティックエングラム102、104は、異なるタイプ間で変換することができる。例えば、タイプ1は、変換と格納であり得る。ニューラルネットワークメモリバンク206は、2つ以上の隠れ層を有するスパースオートエンコーダニューラルネットワークとして構成することができる。ニューラルネットワークメモリバンク206は、その出力が与えられた入力と同じであることを確認するように構成することができる。ニューラルネットワークメモリバンク206は、入力ニューラルネットワークより大きなニューラルネットワーク及び/又はフラットメモリバンクの集合体にわたる確率分布として、データを格納するように構成することができる。ニューロンの数は、柔軟であり、どんなものであれ出力が期待されるものが生成されるものであることを確認するために増加することができる。例えば、3ビットの情報は、隠れ層の20個のニューロンに格納することができる。スパースオートエンコーダニューラルネットワークは、非常によく似た入力が同じ出力又は互いの出力を生成しないことを保証する上で役立てることができ、ニューロンの使用数に応じて正確度を向上させることができる。
【0061】
別の例では、タイプ2は、検証と格納であり得る。主要コンポーネント分析は、検証のために使用することができ、入力ニューロンの数が隠れニューロンの数より大きいニューラルネットワークを使用することができる。しかし、スパースオートエンコーダニューラルネットワークと同様に、出力は、入力と同じであることが期待され得る。他の検証技法は、検証ニューラルネットワーク208(クラーク・ウィルソンモデル、ベル・ラパドゥラモデル、ビバ完全性モデルなど)によって学習することができる。
【0062】
ニューラルネットワークメモリバンク206は、学習済みであり得るフラグを含み得、フラグは、格納されたデータがiノードであるか(サイバネティックエングラム102、104の内部の参照400であることを意味する)又は別のサイバネティックエングラム102、104が表現し得る何らかのデータへの参照400であるかを示す。
【0063】
いくつかの実施形態では、データブロック304の集合体(ほんの1つのデータブロック304である場合がある)と関連付けられたすべてのデータは、サイバネティックエングラム102、104に格納された及び重みによって表現することができる。データに対するクエリにより、データが出力され得る。いくつかの実施形態では、データブロック304の集合体と関連付けられたすべてのデータは、サイバネティックエングラム102、104のサイズ制限により、1つのサイバネティックエングラム102、104にまとめて存在しない場合がある。初期のキー入力302は、クエリのデータを表現し得るサイバネティックエングラムシックフォレスト100などの1つ又は複数のサイバネティックエングラム102、104のメモリを有し得るサイバネティックエングラム102、104に対するものであり得る。クエリのデータを表現するサイバネティックエングラム102、104は、まとめてリンクすることができる。データは、1つのサイバネティックエングラムシックフォレスト100及び/又は1つ若しくは複数のサイバネティックエングラムシックフォレスト100の1つ又は複数のサイバネティックエングラム102、104によって表現することができる。単一のサイバネティックエングラム102、104及び/又はサイバネティックエングラムシックフォレスト100によって表現するには大き過ぎるデータの場合は、リンクされた複数のサイバネティックエングラム102、104及び/又はサイバネティックエングラムシックフォレスト100を使用してデータを表現することができる。いくつかの実施形態では、サイバネティックエングラムシックフォレスト100のリンクされるサイバネティックエングラム102、104は、直列にリンクすることができる。いくつかの実施形態では、サイバネティックエングラムシックフォレスト100のリンクされるサイバネティックエングラム102、104は、並列にリンクすることができる。いくつかの実施形態では、リンクされるサイバネティックエングラムシックフォレスト100は、直列にリンクすることができる。いくつかの実施形態では、リンクされるサイバネティックエングラムシックフォレスト100は、並列にリンクすることができる。
【0064】
読み取り及び書き込みは、任意のタイプのプリミティブゲートを取り入れ、次いで、順序付けニューラルネットワーク202のLSTM又はRNNフォレストに順序の作成及びその順序における動作を行わせることができる2つの動作例である。サイバネティックエングラム102、104を設定するためのタイプモード及びすべての制御機能の結果は何であるかを見出すため、順序付けニューラルネットワーク202とニューラルネットワークメモリバンク206との間には、決定に関する通信のやり取りがあり得る。例えば、決定に関する通信は、サイバネティックエングラム102、104が読み取りを許容できるかどうか、又は更新がいつ起こるべきか、又は動作がどのように起こり得るかなどを示し得る。
【0065】
ニューラルネットワークメモリバンク206は、LSTMニューラルネットワークゲート(例えば、図2に示されるようなニューラルネットワーク履歴ゲート204)をさらに含み得る。ニューラルネットワーク履歴ゲート204は、データに対する重みを更新する前に存在していたデータに対する以前の重みを記憶しておくように構成することができる。これは、ニューラルネットワーク履歴ゲート204はニューラルネットワーク履歴ゲート204内の以前の値を記憶しておけることを理由に、遂行することができる。LSTMニューラルネットワークメモリゲート204の格納された重みは、データの一貫性を維持する能力及びデータの以前のバージョンに逆戻りする能力を提供することができる。ニューラルネットワーク履歴ゲート204が記憶している値は、最終的には、メモリデバイスに行き着くことになり得る。ニューラルネットワーク履歴ゲート204が新しい値を受け入れると、古い重み値は、メモリデバイス(例えば、ブロックチェーン)に格納することができる。ニューラルネットワーク履歴ゲート204の深さは変えることができる。ニューラルネットワーク履歴ゲート204は、忘れてもよいものを正しく見出すことができる。ニューラルネットワーク履歴ゲート204は、フォゲットゲートを含み得、記憶しておくべきもの及び忘れてもよいものを見出すことができる。
【0066】
ニューラルネットワーク履歴ゲート204からのフィードバックは、順序付けニューラルネットワーク202に提供することができる。フィードバックは、次にトリガすべきプリミティブ関数を順序付けニューラルネットワーク202に知らせることができる。ニューラルネットワーク履歴ゲート204は、データブロック304の重みに格納されているものと、更新として要求されているものとの間に違いがあると特定することができる。その違いの特定により、検証ニューラルネットワーク208及び/又は他のニューラルネットワークによる原理コンポーネント分析がトリガされ、プリミティブ関数において符号化することができる。例えば、ニューラルネットワーク履歴ゲート204によって特定された違いにより、書き込み及び読み取りテストを実施するように、タイプの検証を行うように又はデータがどのように変化したかを特定するための他のテストを行うように順序付けニューラルネットワーク202がトリガされ得る。サイバネティックエングラム102、104は、データブロック304のバージョンの履歴を有し得る。従って、サイバネティックエングラム102、104が更新要求に関するテストを行う際、サイバネティックエングラム102、104は、更新要求結果とデータブロック304のバージョンの履歴(前のバージョンのみならずそれ以前のものを含み得る)とを比較することができる。サイバネティックエングラム102、104は、更新要求結果と全履歴とを比較することができ、全履歴は、履歴におけるデータ側面の持続性及び存在に応じて、より強い又はより弱いデータ側面を表し得る。
【0067】
データの履歴が深いほど、サイバネティックエングラム102、104のニューラルネットワークはより多くの訓練データ及びデータ側面のより強い感覚を有するため、データの自己保護が強くなり得る。従って、データブロック304のバージョンの履歴との比較の間、ニューラルネットワークは、データブロック304への変更(特に、データブロック304のより頻繁に経験するタイプ以外の変更)が望ましくない可能性が高いことを学習することができる。従って、データブロック304への見慣れない変更は、望ましくないと考えられ、許可されない可能性がある。
【0068】
例えば、ニューラルネットワークは、完全に微分可能なものであり得、それにより、訓練中のニューラルネットワーク出力における勾配降下の実行が可能になり得る。まともな勾配により、ニューラルネットワークは、データブロック304の重要な側面を強調し、データブロック304の重要ではない側面を忘れることができる。例えば、データブロック304の値は、データブロック304のバージョンの履歴を通じて持続し得るデータブロック304のサイズの重要な側面と比べて頻繁に変更され得るため、データブロック304の値は、重要ではない場合がある。
【0069】
図2に示されるようなサイバネティックエングラム102、104の各例は、少なくとも、ゲートのプール200の読み取り及び/又は書き込みプリミティブ関数、順序付けニューラルネットワーク202、ニューラルネットワークメモリバンク206、ニューラルネットワーク履歴ゲート204、検証ニューラルネットワーク208並びに認可ニューラルネットワーク210を含み得る。サイバネティックエングラム102、104には、サイバネティックエングラム102、104の実装のための所望の機能に応じて、追加のニューラルネットワークを含めることができる。LSTM、RNN、NPIのようなニューラルネットワークは、動作を実行するために利用可能なメモリに対するスタックが取り付けられたニューラルネットワークであり得る。
【0070】
サイバネティックエングラム102、104に対する重みのバージョンの履歴をローカルで格納することに加えて、ニューラルネットワーク履歴ゲート204は、使用された検証プロセス、使用されたニューラルネットワーク、変換がどのように実施されたか、データブロック304から読み取った及び/又はデータブロック304に書き込んだユーザ及び/又はプロセス、許容された及び/又は拒絶された要求、変換プロセスが検証されているかどうかなどについての履歴を維持することができる。
【0071】
いくつかの実施形態では、順序付けされたプリミティブ関数は、サイバネティックエングラム102、104間で転送可能であり得る。送信側のサイバネティックエングラム102、104は、プリミティブ関数を順序付けることができ、その結果、受信側のサイバネティックエングラム102、104は、順序付けされたプリミティブ関数を実施し、正しいキー入力302の入力に応答して意図される結果(特定の出力など)を達成することができる。例えば、順序付けされたプリミティブ関数により、順序付けされたプリミティブ関数を受信して正しいキー入力302で実施するサイバネティックエングラム102、104による1回限りの実行が許容され得る。1回限りのプリミティブ関数の順序は、例えば、1回限りのデータへのアクセスを提供するために使用することができ、データへのアクセスと同時に、順序付けされたプリミティブ関数はデータを削除することができる。使用例としては、クレジットカード番号が符号化されて送信され、その結果、符号化されたクレジットカード番号は、復号されたクレジットカード番号にアクセスすると同時に自己破壊することなどが挙げられる。
【0072】
いくつかの実施形態では、キー入力302の一部分を共有することができ、その結果、受信側のサイバネティックエングラム102、104は、順序付けされたプリミティブ関数を実行し、意図される結果を達成することができる。いくつかの実施形態では、例えば、受信者のパブリックキーを用いてキー入力302の共有部分を暗号化すること及び/又は出力を暗号化することができ、順序付けされたプリミティブ関数の実施を成功させるため、暗号化されたキー入力302及び/又は出力は、受信者のプライベートキーを使用して暗号解読することができる。いくつかの実施形態では、サイバネティックエングラム102、104は、暗号解読エンジンとして機能し得、キー入力302の暗号化された部分をキー入力302のプライベートキー部分と共に入力することができる。サイバネティックエングラム102、104は、キー入力の暗号解読と同時にキー入力の検証及び/又は認可を行い、順序付けされたプリミティブ関数を実行することができる。
【0073】
同様に、複数のサイバネティックエングラム102、104間では、様々な順序付けされたプリミティブ関数を送信することができ、順序付けされたプリミティブ関数の実行により、ブロックチェーンなどの分散化メモリからデータブロック304を回収すること及び分散化メモリにデータブロック304への更新を格納することができる。いくつかの実施形態では、データブロック304に関連して行われるアクションのアカウンティングもまた、分散化メモリから回収すること及び分散化メモリに格納することができる。いくつかの実施形態では、アクションのアカウンティングは、データブロック304に対する重みに格納することができる。いくつかの実施形態では、アクションのアカウンティングは、データブロック304に対する重みとは別に格納することができる。いくつかの実施形態では、データブロック304は、分散化メモリ上で共有しなくてもよく、アクションのアカウンティングは、分散化メモリ上で別々に格納することができる。実装形態の例は、ネットワークを介して共有されるスマートコントラクトであり得、スマートコントラクトを構成するデータは、安全に共有すること及び追跡することができる。
【0074】
様々な態様(これらに限定されないが、図1~5を参照して上記で説明される態様を含む)は、コンピューティングデバイスを含む多種多様なコンピューティングシステムにおいて実装することができる。図6は、様々な態様との使用に適したコンピューティングデバイス600を含むシステムを示す。コンピューティングデバイス600は、システムオンチップ(SoC)602を含み得、システムオンチップ(SoC)602は、プロセッサ604、メモリ606、通信インタフェース608、ストレージメモリインタフェース610、パワーマネージャ618及びクロックコントローラ620を有する。コンピューティングデバイス600は、有線又は無線モデムなどの通信コンポーネント612と、ストレージメモリ614と、ワイヤレス通信リンクを確立するためのアンテナ616とをさらに含み得る。プロセッサ604は、多様な処理デバイス(例えば、多くのプロセッサコア)のいずれかを含み得る。
【0075】
「システムオンチップ」(SoC)という用語は、本明細書では、典型的には、相互接続された電子回路のセットを指すために使用されるが、排他的ではなく、処理デバイス、メモリ及び通信インタフェースを含む。処理デバイスは、多様な異なるタイプのプロセッサ604及びプロセッサコアを含み得、汎用プロセッサ、中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)、加速処理ユニット(APU)、コンピューティングデバイスの特定のコンポーネントのサブシステムプロセッサ(カメラサブシステム用の画像プロセッサ又はディスプレイ用のディスプレイプロセッサなど)、補助プロセッサ、シングルコアプロセッサ及びマルチコアプロセッサなどが挙げられる。処理デバイスは、他のハードウェア及びハードウェア組合せをさらに具体化することができ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、他のプログラマブル論理デバイス、離散ゲート論理、トランジスタ論理、性能モニタリングハードウェア、ウォッチドッグハードウェア、時間基準などが挙げられる。集積回路は、集積回路のコンポーネントが単一の半導体材料(シリコンなど)上に存在するように構成することができる。
【0076】
SoC 602は、1つ又は複数のプロセッサ604を含み得る。コンピューティングデバイス600は、複数のSoC 602を含み得、それにより、プロセッサ604及びプロセッサコアの数が増加する。また、コンピューティングデバイス600は、SoC 602とは関連付けられないプロセッサ604も含み得る。個々のプロセッサ604は、以下で図7を参照して説明されるように、マルチコアプロセッサであり得る。プロセッサ604の各々は、コンピューティングデバイス600の他のプロセッサ604と同じ又は異なる特定の目的のために構成することができる。同じ又は異なる構成のプロセッサ604及びプロセッサコアの1つ又は複数は、グループにまとめることができる。プロセッサ604又はプロセッサコアのグループは、マルチプロセッサクラスタと呼ぶことができる。
【0077】
SoC 602のメモリ606は、プロセッサ604によるアクセスのためにデータ及びプロセッサ実行可能コードを格納するように構成された揮発性又は不揮発性メモリであり得る。コンピューティングデバイス600及び/又はSoC 602は、様々な目的のために構成された1つ又は複数のメモリ606を含み得る。1つ又は複数のメモリ606は、ランダムアクセスメモリ(RAM)若しくはメインメモリ又はキャッシュメモリなどの揮発性メモリを含み得る。これらのメモリ606は、データセンサ若しくはサブシステムから受信された限られた量のデータ、不揮発性メモリから要求されるデータ及び/又はプロセッサ実行可能コード命令(多様な要因に基づいて今後のアクセスを予測して不揮発性メモリからメモリ606にロードされる)並びに/或いはプロセッサ604によって生成された中間処理データ及び/又はプロセッサ実行可能コード命令(不揮発性メモリに格納することなく、今後の迅速なアクセスのために一時的に格納される)を一時的に保持するように構成することができる。
【0078】
メモリ606は、データ及びプロセッサ実行可能コードを少なくとも一時的に格納するように構成することができ、データ及びプロセッサ実行可能コードは、1つ又は複数のプロセッサ604によるアクセスのために、別のメモリデバイス(別のメモリ606又はストレージメモリ614など)からメモリ606にロードされる。メモリ606にロードされるデータ又はプロセッサ実行可能コードは、プロセッサ604による機能の実行に応答してロードすることができる。機能の実行に応答してデータ又はプロセッサ実行可能コードをメモリ606にロードすることは、要求されたデータ又はプロセッサ実行可能コードがメモリ606に位置していないことを理由に不成功に終わった又は「仕損じた」メモリ606へのメモリアクセス要求が原因で起こり得る。仕損じに応答して、別のメモリ606又はストレージメモリ614へのメモリアクセス要求は、要求されたデータ又はプロセッサ実行可能コードを他のメモリ606又はストレージメモリ614からメモリ606にロードさせることができる。機能の実行に応答してデータ又はプロセッサ実行可能コードをメモリ606にロードすることは、別のメモリ606又はストレージメモリ614へのメモリアクセス要求が原因で起こり得、データ又はプロセッサ実行可能コードは、後のアクセスのために、メモリ606にロードすることができる。
【0079】
ストレージメモリインタフェース610及びストレージメモリ614は、コンピューティングデバイス600がデータ及びプロセッサ実行可能コードを不揮発性記憶媒体上に格納できるように、一体となって動作することができる。ストレージメモリ614は、メモリ606の態様によく似せて構成することができ、ストレージメモリ614は、1つ又は複数のプロセッサ604によるアクセスのためにデータ又はプロセッサ実行可能コードを格納することができる。不揮発性であるストレージメモリ614は、コンピューティングデバイス600の電源が切られた後も情報を保持することができる。電源が入り、コンピューティングデバイス600が再起動すると、コンピューティングデバイス600は、ストレージメモリ614に格納された情報を利用することができる。ストレージメモリインタフェース610は、ストレージメモリ614へのアクセスを制御し、ストレージメモリ614からデータを読み取ること及びストレージメモリ614にデータを書き込むことをプロセッサ604が行えるようにする。
【0080】
パワーマネージャ618は、コンピューティングデバイス600のコンポーネント(プロセッサ604、メモリ606、通信インタフェース608、ストレージメモリインタフェース610、クロックコントローラ620、通信コンポーネント612、ストレージメモリ614及びアンテナ616を含む)のいずれかへの電力の分配及びその量を制御するように構成することができる。パワーマネージャ618は、コンピューティングデバイス600のコンポーネントのいずれか及びコンピューティングデバイス600自体の電力状態を制御するように構成することができる。いくつかの態様では、パワーマネージャ618は、SoC 602上の別個の回路コンポーネントとして実装することができ、特殊用途回路、ファームウェア及び/又はソフトウェアで構成された専用プロセッサ、或いは、専用回路構成とファームウェア及び/又はソフトウェアで構成された専用プロセッサの組合せなどが挙げられる。
【0081】
クロックコントローラ620は、コンピューティングデバイス600のリソースコンポーネント(プロセッサ604、通信インタフェース608、ストレージメモリインタフェース610、パワーマネージャ618及び通信コンポーネント612など)に提供されるクロックモード(水晶発振器の発振周波数及び/又はゲート信号)を制御するように構成することができる。クロックコントローラ620は、コンピューティングデバイス600のコンポーネントの回路による実行を調節するように構成された発振信号をコンピューティングデバイス600のコンポーネントに提供するように構成することができる。いくつかの態様では、クロックコントローラ620は、SoC 602上の別個の回路コンポーネントとして実装することができ、特殊用途回路、ファームウェア及び/又はソフトウェアで構成された専用プロセッサ、或いは、専用回路構成とファームウェア及び/又はソフトウェアで構成された専用プロセッサの組合せなどが挙げられる。
【0082】
コンピューティングデバイス600及び/又はSoC 602のコンポーネントのいくつか又はすべては、異なる方法で及び/又は組み合わせて配列しながら、様々な態様の機能を果たすことができる。コンピューティングデバイス600は、各コンポーネントの1つに限定されず、各コンポーネントの複数の例をコンピューティングデバイス600の様々な構成に含めることができる。
【0083】
様々な態様(これらに限定されないが、図1~6を参照して上記で説明される態様を含む)は、様々なプロセッサを含む多種多様なコンピューティングシステムにおいて実装することができる。図7は、態様の実装に適したコンピューティングデバイスのコンポーネントを示す。プロセッサ604は、複数のプロセッサタイプを含み得、例えば、CPU及び様々なハードウェアアクセラレータ(GPU、DSP、APU、サブシステムプロセッサなど)を含む。また、プロセッサ604は、カスタムハードウェアアクセラレータも含み得、カスタムハードウェアアクセラレータは、特殊な機能セットを実施するように構成されたカスタム処理ハードウェア及び/又は汎用ハードウェアを含み得る。プロセッサ604は、いかなる数のプロセッサコア700、701、702、703も含み得る。複数のプロセッサコア700、701、702、703を有するプロセッサ604は、マルチコアプロセッサと呼ぶことができる。
【0084】
プロセッサ604は、多数の同種又は異種プロセッサコア700、701、702、703を有し得る。同種プロセッサは、多数の同種プロセッサコアを含み得る。プロセッサ604のプロセッサコア700、701、702、703は同じ目的のために及び同じ又は同様の性能特性を有するように構成されるという点で、プロセッサコア700、701、702、703は、同種であり得る。例えば、プロセッサ604は、汎用プロセッサであり得、プロセッサコア700、701、702、703は、同種の汎用プロセッサコアであり得る。プロセッサ604は、GPU又はDSPであり得、プロセッサコア700、701、702、703は、同種グラフィックプロセッサコア又はデジタルの信号プロセッサコアのそれぞれであり得る。プロセッサ604は、同種プロセッサコア700、701、702、703を有するカスタムハードウェアアクセラレータであり得る。
【0085】
異種プロセッサは、多数の異種プロセッサコアを含み得る。プロセッサ604のプロセッサコア700、701、702、703は異なる目的のために及び/又は異なる性能特性を有するように構成されるという点で、プロセッサコア700、701、702、703は、異種であり得る。そのような異種プロセッサコアの異種性は、異なる命令セットアーキテクチャ、パイプライン、動作周波数などを含み得る。そのような異種プロセッサコアの例は、低速及び低電力プロセッサコアを強力で電力を大量消費するプロセッサコアと結合することができる「big.LITTLE」アーキテクチャとして知られているものを含み得る。同様の態様では、SoC(例えば、図6のSoC 602)は、いかなる数の同種又は異種プロセッサ604も含み得る。様々な態様では、異種プロセッサはプロセッサコア700、701、702、703の任意の組合せ(少なくとも1つの異種プロセッサコアを含む)を含み得るため、すべてのオフプロセッサコア700、701、702、703が異種プロセッサコアである必要はない。
【0086】
プロセッサ604のプロセッサコア700、701、702、703の各々には、指定プロセッサコア700、701、702、703による読み取り及び/又は書き込みアクセス専用であり得るプライベートプロセッサコアキャッシュ(PPCC)メモリ710、712、714、716を指定することができる。プライベートプロセッサコアキャッシュ710、712、714、716は、データ及び/又は命令を格納し、プロセッサコア700、701、702、703による実行における使用のため、プライベートプロセッサコアキャッシュ710、712、714、716を専用するプロセッサコア700、701、702、703が格納データ及び/又は命令を利用できるようにすることができる。プライベートプロセッサコアキャッシュ710、712、714、716は、図6のメモリ606を参照して本明細書で説明されるような揮発性メモリを含み得る。
【0087】
プロセッサ604のプロセッサコア700、701、702、703のグループには、プロセッサコア700、701、702、703の指定グループによる読み取り及び/又は書き込みアクセス専用であり得る共有プロセッサコアキャッシュ(SPCC)メモリ720、722を指定することができる。共有プロセッサコアキャッシュ720、722は、データ及び/又は命令を格納し、プロセッサコア700、701、702、703の指定グループによる実行における使用のため、共有プロセッサコアキャッシュ720、722を専用するグループプロセッサコア700、701、702、703が格納データ及び/又は命令を利用できるようにすることができる。共有プロセッサコアキャッシュ720、722は、図6のメモリ606を参照して本明細書で説明されるような揮発性メモリを含み得る。
【0088】
プロセッサ604は、プロセッサ604のプロセッサコア700、701、702、703による読み取り及び/又は書き込みアクセス専用であり得る共有プロセッサキャッシュメモリ730を含み得る。共有プロセッサキャッシュ730は、データ及び/又は命令を格納し、プロセッサコア700、701、702、703による実行における使用のため、プロセッサコア700、701、702、703が格納データ及び/又は命令を利用できるようにすることができる。また、共有プロセッサキャッシュ730は、プロセッサ604へのデータ及び/又は命令の入力並びに/或いはプロセッサ604からのデータ及び/又は命令の出力のためのバッファとしても機能し得る。共有キャッシュ730は、図6のメモリ606を参照して本明細書で説明されるような揮発性メモリを含み得る。
【0089】
複数のプロセッサ604は、複数のプロセッサ604のプロセッサコア700、701、702、703による読み取り及び/又は書き込みアクセス専用であり得る共有システムキャッシュメモリ740にアクセスすることができる。共有システムキャッシュ740は、データ及び/又は命令を格納し、プロセッサコア700、701、702、703による実行における使用のため、プロセッサコア700、701、702、703が格納データ及び/又は命令を利用できるようにすることができる。また、共有システムキャッシュ740は、複数のプロセッサ604へのデータ及び/又は命令の入力並びに/或いは複数のプロセッサ604からのデータ及び/又は命令の出力のためのバッファとしても機能し得る。共有システムキャッシュ740は、図6のメモリ606を参照して本明細書で説明されるような揮発性メモリを含み得る。
【0090】
図7に示される例では、プロセッサ604は、4つのプロセッサコア700、701、702、703(すなわち、プロセッサコア0、プロセッサコア1、プロセッサコア7及びプロセッサコア3)を含む。例では、各プロセッサコア700、701、702、703には、それぞれのプライベートプロセッサコアキャッシュ710、712、714、716が指定される(すなわち、プロセッサコア0とプライベートプロセッサコアキャッシュ0、プロセッサコア1とプライベートプロセッサコアキャッシュ1、プロセッサコア7とプライベートプロセッサコアキャッシュ7及びプロセッサコア3とプライベートプロセッサコアキャッシュ3)。プロセッサコア700、701、702、703は、グループに分類することができ、各グループには、共有プロセッサコアキャッシュ720、722を指定することができる(すなわち、プロセッサコア0とプロセッサコア7と共有プロセッサコアキャッシュ0のグループ、プロセッサコア1とプロセッサコア3と共有プロセッサコアキャッシュ1のグループ)。説明を簡単にするため、本明細書の例は、図7に示されるような、4つのプロセッサコア700、701、702、703と、4つのプライベートプロセッサコアキャッシュ710、712、714、716と、プロセッサコア700、701、702、703の2つのグループと、共有プロセッサコアキャッシュ720、722とについて言及し得る。しかし、図7に示される及び本明細書で説明されるような、4つのプロセッサコア700、701、702、703と、4つのプライベートプロセッサコアキャッシュ710、712、714、716と、プロセッサコア700、701、702、703の2つのグループと、共有プロセッサコアキャッシュ720、722は、単なる例として提供され、4つの指定プライベートプロセッサコアキャッシュ及び2つの指定共有プロセッサコアキャッシュ720を有する4つのコアプロセッサシステムに様々な態様を限定することは全く意図されない。コンピューティングデバイス600、SoC 602又はプロセッサ604は、本明細書で示される及び説明されるような4つのプロセッサコア700、701、702、703及びプライベートプロセッサコアキャッシュ710、712、714、716並びに2つの共有プロセッサコアキャッシュ720、722より少ない又は多い数を個別に又は組合せで含み得る。
【0091】
様々な態様では、プロセッサコア700、701、702、703は、低レベルのキャッシュメモリから高レベルのキャッシュメモリにロードされたデータ及び/又は命令へのアクセスを通じて間接的に、共有プロセッサコアキャッシュ720、722、共有プロセッサキャッシュ730及び/又は共有システムキャッシュ740に格納されたデータ及び/又は命令にアクセスすることができる。例えば、様々なキャッシュメモリ710、712、714、716、720、722、730、740のレベルを最高レベルのキャッシュメモリから最低レベルのキャッシュメモリへの降順に表すと、プライベートプロセッサコアキャッシュ710、712、714、716、共有プロセッサコアキャッシュ720、722、共有プロセッサキャッシュ730、共有システムキャッシュ740となり得る。様々な態様では、データ及び/又は命令は、メモリアクセス要求に対する仕損じキャッシュメモリ710、712、714、716、720、722、730、740への応答として、並びに/或いは、プロセッサコア700、701、702、703による今後の使用のためにデータ及び/又は命令を推測に基づいて回収するプリフェッチ動作への応答として、より低レベルのキャッシュメモリ及び/又は他のメモリ(例えば、図6のメモリ606、7 614)からキャッシュメモリ710、712、714、716、720、722、730、740にロードすることができる。様々な態様では、キャッシュメモリ710、712、714、716、720、722、730、740は、他のデータ及び/又は命令を格納できるように、キャッシュメモリ710、712、714、716、720、722、730、740に格納されたデータ及び/又は命令を置き換えるためのエビクションポリシを使用して管理することができる。データ及び/又は命令を追い出すことは、高レベルのキャッシュメモリ710、712、714、716、720、722、730から追い出されたデータ及び/又は命令を、より低レベルのキャッシュメモリ720、722、730、740及び/又は他のメモリに書き込むことを含み得る。
【0092】
参照し易いように、「ハードウェアアクセラレータ」、「カスタムハードウェアアクセラレータ」、「マルチコアプロセッサ」、「プロセッサ」及び「プロセッサコア」という用語は、本明細書では、交換可能に使用することができる。示されるコンピューティングデバイス及びその様々なコンポーネントの本明細書における説明は、例示的であることのみを意図し、限定することは全く意図しない。図に示されるコンピューティングデバイスの例のコンポーネントのいくつかは、可変的に構成すること、組み合わせること及び分離することができる。コンポーネントのいくつかは、より多い又は少ない数で含めることができ、SoC内で異なる方法で又はSoCから分離して位置すること及び接続することが可能である。
【0093】
様々な態様(これらに限定されないが、図1~7を参照して上記で説明される態様を含む)は、モバイルコンピューティングデバイスを含む多種多様なコンピューティングシステムにおいて実装することができ、様々な態様との使用に適したその例は、図8に示されている。モバイルコンピューティングデバイス800は、タッチスクリーンコントローラ804及び内部メモリ806に結合されたプロセッサ802を含み得る。プロセッサ802は、一般的な又は特定の処理タスク用に指定された1つ又は複数のマルチコア集積回路であり得る。内部メモリ806は、揮発性又は不揮発性メモリであり得、また、安全な及び/又は暗号化されたメモリ、安全ではない及び/又は暗号化されていないメモリ或いはそれらの任意の組合せでもあり得る。活用できるメモリタイプの例は、これらに限定されないが、DDR、LPDDR、GDDR、WIDEIO、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM及び埋め込みDRAMを含む。また、タッチスクリーンコントローラ804及びプロセッサ802は、抵抗検知タッチスクリーン、容量検知タッチスクリーン、赤外線検知タッチスクリーンなどのタッチスクリーンパネル812に結合することができる。それに加えて、コンピューティングデバイス800のディスプレイは、タッチスクリーン能力を有する必要はない。
【0094】
モバイルコンピューティングデバイス800は、通信を送受信するための1つ又は複数の無線信号トランシーバ808(例えば、Peanut、Bluetooth、ZigBee、Wi-Fi、RF無線)及びアンテナ810を有し得、1つ又は複数の無線信号トランシーバ808及びアンテナ810は、互いに及び/又はプロセッサ802に結合される。トランシーバ808及びアンテナ810は、様々なワイヤレス伝送プロトコルスタック及びインタフェースを実装するために、上記で言及される回路構成で使用することができる。モバイルコンピューティングデバイス800は、セルラネットワークワイヤレスモデムチップ816を含み得、セルラネットワークワイヤレスモデムチップ816は、セルラネットワークを介する通信を可能にし、プロセッサに結合される。
【0095】
モバイルコンピューティングデバイス800は、プロセッサ802に結合された周辺デバイス接続インタフェース818を含み得る。周辺デバイス接続インタフェース818は、1つのタイプの接続を受け入れるように特異的に構成することも、ユニバーサルシリアルバス(USB)、FireWire、Thunderbolt又はPCIeなどの共通又は専有の様々なタイプの物理及び通信接続を受け入れるように構成することもできる。また、周辺デバイス接続インタフェース818は、同様に構成された周辺デバイス接続ポート(図示せず)に結合することもできる。
【0096】
また、モバイルコンピューティングデバイス800は、オーディオ出力を提供するためのスピーカ814も含み得る。また、モバイルコンピューティングデバイス800は、ハウジング820も含み得、ハウジング820は、プラスチック、金属又は材料の組合せで構築され、本明細書で説明されるコンポーネントのすべて又はいくつかを内包するためのものである。モバイルコンピューティングデバイス800は、使い捨ての又は再充電可能な電池など、プロセッサ802に結合された電源822を含み得る。また、再充電可能な電池は、モバイルコンピューティングデバイス800の外部のソースから充電電流を受信するために、周辺デバイス接続ポートに結合することもできる。また、モバイルコンピューティングデバイス800は、ユーザ入力を受信するための物理ボタン824も含み得る。また、モバイルコンピューティングデバイス800は、モバイルコンピューティングデバイス800をオンとオフに切り替えるためのパワーボタン826も含み得る。
【0097】
様々な態様(これらに限定されないが、図1~7を参照して上記で説明される態様を含む)は、ラップトップコンピュータ900を含む多種多様なコンピューティングシステムにおいて実装することができ、その例は、図9に示されている。多くのラップトップコンピュータは、タッチパッドタッチ面917を含み、タッチパッドタッチ面917は、コンピュータのポインティングデバイスとしての役割を果たし、従って、タッチスクリーンディスプレイが装備されたコンピューティングデバイス及び上記で説明されるコンピューティングデバイス上で実装されるものと同様に、ドラッグ、スクロール及びフリックジェスチャを受信することができる。ラップトップコンピュータ900は、典型的には、揮発性メモリ912及び大容量不揮発性メモリ(フラッシュメモリのディスクドライブ913など)に結合されたプロセッサ911を含む。それに加えて、コンピュータ900は、プロセッサ911に結合されたワイヤレスデータリンク及び/又は携帯電話トランシーバ916に接続することができる電磁放射線を送受信するための1つ又は複数のアンテナ908を有し得る。また、コンピュータ900は、プロセッサ911に結合されたフロッピー(登録商標)ディスクドライブ914及びコンパクトディスク(CD)ドライブ915も含み得る。ノートブックの構成では、コンピュータハウジングは、タッチパッド917、キーボード918及びディスプレイ919を含み、それらはすべてプロセッサ911に結合される。コンピューティングデバイスの他の構成は、よく知られているように、プロセッサに結合された(例えば、USB入力を介して)コンピュータマウス又はトラックボールを含み得、コンピュータマウス又はトラックボールは、様々な態様と併用することもできる。
【0098】
また、様々な態様(これらに限定されないが、図1~7を参照して上記で説明される態様を含む)は、多様な市販のサーバのいずれかなどの固定されたコンピューティングシステムにおいて実装することもできる。サーバ1000の例は、図10に示されている。そのようなサーバ1000は、典型的には、揮発性メモリ1002及び大容量不揮発性メモリ(ディスクドライブ1004など)に結合された1つ又は複数のマルチコアプロセッサアセンブリ1001を含む。図10に示されるように、マルチコアプロセッサアセンブリ1001は、アセンブリのラックにそれらを挿入することによってサーバ1000に追加することができる。また、サーバ1000は、プロセッサ1001に結合されたフロッピーディスクドライブ、コンパクトディスク(CD)又はデジタル多用途ディスク(DVD)ディスクドライブ1006も含み得る。また、サーバ1000は、他の放送システムコンピュータ及びサーバに結合されたローカルエリアネットワーク、インターネット、公衆交換電話網及び/又はセルラデータネットワーク(例えば、CDMA、TDMA、GSM、PCS、3G、4G、LTE若しくは他の任意のタイプのセルラデータネットワーク)などのネットワーク1005とのネットワークインタフェース接続を確立するためにマルチコアプロセッサアセンブリ1001に結合されたネットワークアクセスポート1003も含み得る。
【0099】
図11は、実施形態による、サイバネティックエングラムを使用してデータブロックの学習及び格納を行うための方法を示す。図1~10を参照すると、方法1100は、コンピューティングデバイス(例えば、図6のコンピューティングデバイス600、図8のモバイルコンピューティングデバイス800、図9のコンピューティングシステム900、図10のサーバ1000)、プロセッサ(例えば、図1、2、4及び5のサイバネティックエングラム102、104、図6及び7のプロセッサ604、図8のプロセッサ802、図9のプロセッサ911、図19のプロセッサアセンブリ1001)で実行するソフトウェア、専用ハードウェア(例えば、図1、2、4及び5のサイバネティックエングラム102、104)、汎用ハードウェア、又は、ソフトウェア構成プロセッサと専用ハードウェアの組合せ(他の個々のコンポーネントを含むサイバネティックエングラム使用可能システム内のソフトウェアを実行するプロセッサ及び様々なメモリ/キャッシュコントローラなど)において実施することができる。様々な実施形態において使用可能な代替の構成を包含するため、方法1100を実施するハードウェアは、本明細書では、「サイバネティックエングラムデバイス」と呼ばれる。
【0100】
ブロック1102では、サイバネティックエングラムデバイスは、データブロック(例えば、図3及び5のデータブロック304)を受信することができる。いくつかの実施形態では、データブロックは、以前に学習されていないデータブロックであり得る。言い換えれば、データブロックは、データブロックを受信するサイバネティックエングラムによって以前に処理も学習も行われていないものであり得、サイバネティックエングラムが使用できるデータブロックに対する以前に格納されたキー入力(例えば、図3~5のキー入力304)又は重みが存在しない場合がある。いくつかの実施形態では、データブロックは、以前に学習されているデータブロックであり得る。言い換えれば、データブロックは、データブロックを受信するサイバネティックエングラムによって以前に処理及び学習が行われており、サイバネティックエングラムが使用できるデータブロックに対する以前に格納されたキー入力及び重みが存在し得る。
【0101】
ブロック1104では、サイバネティックエングラムデバイスは、データブロックを再生成するためにニューラルネットワークを訓練することできる。本明細書で説明されるように、サイバネティックエングラムは、データブロックの教師なし学習を実施することができる。データブロックを再生成するためにサイバネティックエングラムのニューラルネットワークを訓練することは、キー入力を含み得るいかなる数又は組合せの特定の入力からもサイバネティックエングラムがデータブロックを再生成できるように、サイバネティックエングラムのニューラルネットワークによる使用のための重みを決定することを伴い得る。データブロックを再生成するためにサイバネティックエングラムのニューラルネットワークを訓練することは、ニューラルネットワークによって、最初は既定の値であり得る重みを使用して入力を処理することと、再生成済みのデータブロックの出力を生成することと、再生成済みのデータブロックとデータブロックとを比較することと、再生成済みのデータブロックとデータブロックとの比較により、誤差閾値を超える誤差値が生み出されるかどうかを判断することと、誤差値を使用して重みを更新することと、誤差値が誤差閾値を超えるまでプロセスを繰り返すこととの再帰プロセスであり得る。いくつかの実施形態では、誤差閾値を超える誤差値は、再生成済みのデータブロックとデータブロックとの比較による誤差測定値がないほどわずかであることを表すことがある。本明細書では、データブロックを再生成するためにサイバネティックエングラムのニューラルネットワークを訓練することは、サイバネティックエングラムのニューラルネットワークがデータブロックを学習することを指し得、サイバネティックエングラムのニューラルネットワークが訓練を対象としていたデータブロックは、学習済みのデータブロックと呼ぶことができる。
【0102】
ブロック1106では、サイバネティックエングラムデバイスは、データブロックに対する重みを生成して格納することができる。重みは、ブロック1104においてデータブロックを再生成するためにサイバネティックエングラムのニューラルネットワークを訓練した結果得られた、誤差値が誤差閾値を超える際の重みであり得る。言い換えれば、生成された重みは、データブロックを再生成するためにサイバネティックエングラムのニューラルネットワークを訓練した際に使用された重みの最後の値であり得る。これらの重みは、サイバネティックエングラムのニューラルネットワークによって、誤差閾値によって制御される正確度にデータブロックを再生成するために使用することができる。いくつかの実施形態では、正確度は、最高で100%正確なものであり得る。生成された重みは、様々な手段によって格納することができる。いくつかの実施形態では、重みは、1つのコンピューティングデバイスにおいて集中化されるように格納することができる。例えば、重みは、いかなる数のコンピューティングデバイスのメモリデバイス(例えば、図6のメモリ606、ストレージメモリ614、図7のキャッシュメモリ710、712、714、716、720、722、730、740、図8の内部メモリ806、図9の揮発性メモリ912、不揮発性メモリ913、図10の揮発性メモリ1002、不揮発性メモリ1004)の組合せにおいても格納することができる。いくつかの実施形態では、重みは、複数のコンピューティングデバイスにわたって非集中化又は分散化されるように格納することができる。例えば、重みは、ブロックチェーンのような分散型台帳など、複数のコンピューティングデバイスにわたっていかなる数又は組合せのメモリデバイスにおいても格納することができる。いくつかの実施形態では、重みは、サイバネティックエングラムのメモリ(例えば、図2のニューラルネットワークメモリバンク206)に格納することができる。いくつかの実施形態では、重みの複数のコピーは、複数のローカル及び/又はリモートメモリデバイスに格納することができる。
【0103】
オプションのブロック1108では、サイバネティックエングラムデバイスは、データブロックに対するキー入力を生成して格納することができる。キー入力は、ブロック1104においてデータブロックを再生成するためにサイバネティックエングラムのニューラルネットワークを訓練している間に使用されたキー入力であり得る。キー入力は、読み取り又は書き込みなどの動作要求と、データブロックの動作要求パラメータ及び/又はメタデータを含み得る他のパラメータとを含み得る。いくつかの実施形態では、パラメータは、ユーザ名、プロセスI.D.と一致するファイル所有者I.D.及び/又は設定されている対応する許可ビットとして含み得る。キー入力は、キー入力を生成及び/又は使用するコンピューティングデバイスのメモリデバイスにローカルで格納すること、並びに/或いは、キー入力を生成及び/又は使用するコンピューティングデバイスがアクセス可能なリモートコンピューティングデバイスのメモリデバイスに格納することができる。いくつかの実施形態では、キー入力は、キー値ストア(例えば、図3のキー値ストア300)など、複数のフォーマット及び/又は構造で格納することができる。
【0104】
オプションのブロック1110では、サイバネティックエングラムデバイスは、データブロックに対するキー入力とデータブロックに対する重みとを関連付けることができる。データブロックに対するキー入力と重みとの関連付けにより、サイバネティックエングラムは、図12を参照して本明細書の方法1200においてさらに論じられるように、キー入力を受信した際に使用するための重みを回収することができる。例えば、キー入力は、キー入力を重みが格納されている場所の表示と関連付ける構造で含むこと又は格納することができる。いくつかの実施形態では、重みが格納されている場所の表示は、メモリデバイス上の重みが格納されている場所のアドレスであり得る。いくつかの実施形態では、重みが格納されている場所の表示は、重みが格納されている場所への参照(アドレステーブル内のアドレスへのポインタなど)及び/又は重みが格納されている場所へのさらなる参照への参照(ハッシュテーブル又は木のハッシュ値へのポインタなど)であり得る。いくつかの実施形態では、重みのアドレス又は場所は、ブロックチェーンなどの分散型台帳上に格納された重みの場所のアドレス又は参照であり得る。
【0105】
ブロック1112では、サイバネティックエングラムデバイスは、サイバネティックエングラムのニューラルネットワーク、キー入力及び/又は重みでデータブロックを置き換えることができる。データブロックを置き換えることは、サイバネティックエングラムが実装されている間、並びに、ブロック1106及び1108においてデータブロックの重み及び任意選択によるデータブロックのキー入力が格納されている間に、データブロックを削除すること、無効化すること、上書きすることなどを伴い得る。サイバネティックエングラムのニューラルネットワークに対する重み及び/又はキー入力が生成され格納された時点で、サイバネティックエングラムは重み並びに格納された及び/又は生成されたキー入力を使用して学習済みのデータブロックを再生成することができるため、学習済みのデータブロックを保持する必要はなくなり得る。いくつかの実施形態では、学習済みのデータブロックは、例えば、テスト又はオフラインアーカイビングの目的で、一定の期間の間保持することができる。しかし、動作要求に対する学習済みのデータブロックのデータへのアクセスには、学習済みのデータブロックというよりむしろ、再生成済みのデータブロック(ニューラルネットワーク、キー入力及び重みを使用して再生成されたもの)を使用することができる。
【0106】
図12は、実施形態による、サイバネティックエングラムを使用してデータブロックの回収及び保護を行うための方法を示す。図1~11を参照すると、方法1200は、コンピューティングデバイス(例えば、図6のコンピューティングデバイス600、図8のモバイルコンピューティングデバイス800、図9のコンピューティングシステム900、図10のサーバ1000)、プロセッサ(例えば、図1、2、4及び5のサイバネティックエングラム102、104、図6及び7のプロセッサ604、図8のプロセッサ802、図9のプロセッサ911、図10のプロセッサアセンブリ1001)で実行するソフトウェア、専用ハードウェア(例えば、図1、2、4及び5のサイバネティックエングラム102、104)、汎用ハードウェア、又は、ソフトウェア構成プロセッサと専用ハードウェアの組合せ(他の個々のコンポーネントを含むサイバネティックエングラム使用可能システム内のソフトウェアを実行するプロセッサ及び様々なメモリ/キャッシュコントローラなど)において実施することができる。様々な実施形態において使用可能な代替の構成を包含するため、方法1200を実施するハードウェアは、本明細書では、「サイバネティックエングラムデバイス」と呼ばれる。
【0107】
ブロック1202では、サイバネティックエングラムデバイスは、データブロック(例えば、図3及び5のデータブロック302)に対する動作要求を受信することができる。例えば、データブロックに対する動作要求は、開くこと、閉じること、読み取ること、書き込むこと、実行することなどを含み得る。いくつかの実施形態では、動作要求は、動作要求を実行する対象となるデータブロックを特定することができる。
【0108】
ブロック1204では、サイバネティックエングラムデバイスは、データブロックに対するキー入力(例えば、図3~5のキー入力304)を受信することができる。キー入力は、動作要求と、他のパラメータ(データブロックの動作要求パラメータ及び/又はメタデータを含み得る)とを含み得る。いくつかの実施形態では、パラメータは、ユーザ名、プロセスI.D.と一致するファイル所有者I.D.及び/又は設定されている対応する許可ビットとして含み得る。いくつかの実施形態では、データブロック及び動作要求に対応するキー入力は、例えば、データブロックに対する動作要求に応答して、データブロックへのアクセスを試みているプロセス若しくはプログラムによって、及び/又は、サイバネティックエングラムに対するキー入力を生成するように構成されたプロセス若しくはプログラムによって、回収及び/又は生成し、サイバネティックエングラムに提供することができる。いくつかの実施形態では、サイバネティックエングラムが、データブロック及び動作要求に対応するキー入力を回収及び/又は生成することができる。例えば、データブロック及び動作に対応するキー入力は、メモリデバイスメモリデバイス(例えば、図6のメモリ606、ストレージメモリ614、図7のキャッシュメモリ710、712、714、716、720、722、730、740、図8の内部メモリ806、図9の揮発性メモリ912、不揮発性メモリ913、図10の揮発性メモリ1002、不揮発性メモリ1004)に格納し、メモリデバイスから回収することができる。いくつかの実施形態では、データブロックに対応するキー入力の一部をメモリデバイスに格納し、メモリデバイスから回収し、動作要求と組み合わせてキー入力を生成することができる。いくつかの実施形態では、キー入力は、動作で提供される情報から及び/又はメモリデバイス上に格納されたデータブロックに対するデータ(メタデータなど)から生成することができる。いくつかの実施形態では、キー入力は、サイバネティックエングラムに対するキー入力値の以前の履歴を使用して生成することができる。いくつかの実施形態では、キー入力は、タイマなどの時間キーを使用して生成することができる。
【0109】
ブロック1206では、サイバネティックエングラムデバイスは、データブロックに対するキー入力と関連付けられたデータブロックに対する重みを決定することができる。本明細書で説明されるように、例えば、図11を参照した方法1100のブロック1110では、学習済みのデータブロックに対する重みは、キー入力との関連付けにより、サイバネティックエングラムによるキー入力との併用のために重みの回収が可能になるように格納することができる。キー入力と重みとの関連付けにより、サイバネティックエングラムは、データブロックに対するキー入力と併用するための重みがどれかを決定することができる。例えば、関連付けは、ローカル及び/又はリモートメモリデバイス上の重みの場所を示し得る。ローカルメモリデバイスは、キー入力の受信及び関連付けられた重みの格納が行われるコンピューティングデバイスのメモリデバイスであり得る。リモートメモリデバイスは、キー入力が受信されるコンピューティングデバイスからリモート設置されたコンピューティングデバイスのメモリデバイス(ブロックチェーンのような分散型台帳の一部であるリモートメモリデバイスなど)であり得る。
【0110】
ブロック1208では、サイバネティックエングラムデバイスは、データブロックに対する重みを回収することができる。データブロックに対するキー入力と関連付けられることが決定したデータブロックに対する重みは、データブロックに対するキー入力を処理する際に使用するために、ローカル又はリモートで、それらの格納場所から回収することができる。
【0111】
ブロック1210では、サイバネティックエングラムデバイスは、データブロックに対する重みを使用してデータブロックに対するキー入力を処理することができる。サイバネティックエングラムのニューラルネットワークは、ニューラルネットワークへの入力として、単独で又は他の入力データと組み合わせて、キー入力を使用することができる。ニューラルネットワークは、ニューラルネットワークによる処理の間に生成される入力及び/又は起動値に重みを適用しながら、ニューラルネットワークの層を通じてキー入力を含む入力を処理することができる。
【0112】
ブロック1212では、サイバネティックエングラムデバイスは、データブロックに対するキー入力及びデータブロックに対する重みを使用してデータブロックを再生成することができる。ブロック1210においてニューラルネットワークによって重みを使用してキー入力を処理することにより、最終的には、データブロックの出力を生成することができる。サイバネティックエングラムは学習済みのデータブロックの再生成が可能であることを理由に、学習済みのデータブロックは長期間格納されていない場合があるため、ニューラルネットワークによって再生成されたデータブロックは、キー入力及び/又は重みを再生成したように学習されたデータブロックの再生成品であり得る。
【0113】
ブロック1214では、サイバネティックエングラムデバイスは、データブロック、ユーザ及び/又は動作の検証及び/又は認証を行うことができる。サイバネティックエングラムは、攻撃、データの破損、無認可のアクセス、無認可の処理などから、コンピューティングデバイス、ユーザ(人間のユーザなど)、データブロックに対する動作要求を作成するプログラム及び/又はプロセス、並びに/或いは、データブロックを保護することができる。サイバネティックエングラムの様々なニューラルネットワーク(例えば、図2の順序付けニューラルネットワーク202、検証ニューラルネットワーク208、認可ニューラルネットワーク210)は、これらの保護を実施するように構成することができる。例えば、検証ニューラルネットワークは、主要コンテンツ分析を実施するように構成することができ、それにより、再生成済みのデータブロックが期待されたものであるかどうか、及び攻撃又は破損を受けて変化していないかを検証することができる。さらなる例として、認可ニューラルネットワークは、ユーザ及び/又はプロセス認可を実施するように構成することができ、それにより、認可ニューラルネットワークは、データブロックへのユーザのアクセスが許可されているかどうか及び/又はデータブロックにおけるプロセスの実施が許可されているかどうかを判断することができる。いくつかの実施形態では、いかなる数及び組合せのデータブロック、ユーザ及び/又は動作の検証及び/又は認証も実施することができる。すべての例においてデータブロック、ユーザ及び/又は動作の検証及び/又は認証のいずれか1つ又は組合せを実施する必要はない。
【0114】
決定ブロック1216では、サイバネティックエングラムデバイスは、データブロック、ユーザ及び/又は動作が検証及び/又は認証されたかどうかを判断することができる。ブロック1214における検証及び/又は認証の結果に基づいて、サイバネティックエングラムは、データブロック、ユーザ及び/又は動作が検証及び/又は認証されたかどうかを判断することができる。データブロック、ユーザ及び/又は動作が検証及び/又は認証されたかどうかの判断は、プロセス要求のユーザ及び/又はプロセスによるデータブロックへのアクセス及びデータブロックの使用を制御するために使用することができる。いくつかの実施形態では、いかなる数及び組合せのデータブロック、ユーザ及び/又は動作の検証及び/又は認証の決定も実施することができる。すべての例においてデータブロック、ユーザ及び/又は動作の検証及び/又は認証のいずれか1つ又は組合せを決定する必要はない可能性がある。
【0115】
データブロック、ユーザ及び/又は動作が検証及び/又は認証されたという決定(すなわち、決定ブロック1216=「はい」)に応答して、サイバネティックエングラムデバイスは、ブロック1218において、データブロックに対する動作要求の動作を実行することができる。データブロック、ユーザ及び/又は動作が検証及び/又は認証されたという決定は、コンピューティングデバイス(プロセッサを介してなど)がデータブロックにおける動作要求の動作の実施に進めることをサイバネティックエングラムに示すことができる。
【0116】
データブロック、ユーザ及び/又は動作が検証及び/又は認証されなかったという決定(すなわち、決定ブロック1216=「いいえ」)に応答して、サイバネティックエングラムデバイスは、ブロック1224において、データブロックに対する動作要求の動作の実行を拒否することができる。データブロック、ユーザ及び/又は動作が検証及び/又は認証されなかったという決定は、コンピューティングデバイス(プロセッサを介してなど)がデータブロックにおける動作要求の動作の実施に進むことはできないことをサイバネティックエングラムに示すことができる。サイバネティックエングラムデバイスは、任意選択により、図13を参照して方法1300のブロック1302において説明されるように、ブロック1208において回収された重みとは異なる場所からデータブロック(例えば、図3~5のデータブロック304)に対する重みを回収することに進むことができる。
【0117】
ブロック1218におけるデータブロックに対する動作要求の動作の実行に続いて、オプションのブロック1220では、サイバネティックエングラムデバイスは、データブロック、ユーザ及び/又は動作の検証及び/又は認証を行うことができる。データブロック、ユーザ及び/又は動作の検証及び/又は認証は、ブロック1214において説明されるものと同様の方法で実施することができる。ブロック1214におけるデータブロック、ユーザ及び/又は動作の検証及び/又は認証(データブロックにおける動作を許可するかどうかを判断するために実施できるもの)とは異なり、オプションのブロック1220におけるデータブロック、ユーザ及び/又は動作の検証及び/又は認証は、動作対象であったデータブロックをサイバネティックエングラムが学習することを許可するかどうかを判断するために実施することができる。ブロック1214におけるデータブロック、ユーザ及び/又は動作の検証及び/又は認証にかかわらず、ブロック1218におけるデータブロックにおける動作は、依然として、データブロックの破損の可能性、データブロック、ユーザ及び/又は動作への攻撃の可能性、並びに/或いは、データブロックの無認可の操作をもたらし得る予期しなかった何らかの無認可のアクセスをもたらし得る可能性がある。従って、サイバネティックエングラムは、再び、データブロック、ユーザ及び/又は動作の検証及び/又は認証を行うことができる。いくつかの実施形態では、いかなる数及び組合せのデータブロック、ユーザ及び/又は動作の検証及び/又は認証も実施することができる。すべての例においてデータブロック、ユーザ及び/又は動作の検証及び/又は認証のいずれか1つ又は組合せを実施する必要はない可能性がある。
【0118】
オプションの決定ブロック1222では、サイバネティックエングラムデバイスは、データブロック、ユーザ及び/又は動作が検証及び/又は認証されたかどうかを判断することができる。データブロック、ユーザ及び/又は動作が検証及び/又は認証されたかどうかの判断は、決定ブロック1216におけるデータブロック、ユーザ及び/又は動作が検証及び/又は認証されたかどうかの判断と同様の方法で実施することができる。いくつかの実施形態では、いかなる数及び組合せのデータブロック、ユーザ及び/又は動作の検証及び/又は認証の決定も実施することができる。すべての例においてデータブロック、ユーザ及び/又は動作の検証及び/又は認証のいずれか1つ又は組合せを決定する必要はない可能性がある。
【0119】
ブロック1218におけるデータブロックに対する動作要求の動作の実行に続いて、或いは、データブロック、ユーザ及び/又は動作が検証及び/又は認証されたという決定(すなわち、オプションの決定ブロック1222=「はい」)に応答して、サイバネティックエングラムデバイスは、任意選択により、図11を参照して方法1100のブロック1102において説明されるように、データブロックを受信することができる。データブロックにおけるいくつかの動作は、保持すべきデータブロック及び/又はそのメタデータの変更をもたらし得る。例えば、データブロックへの書き込みにより、保持することができるデータブロックのコンテンツが変更され得る。さらなる例として、データブロックの読み取りにより、保持することができるデータブロックの最終アクセスを示すデータブロックのメタデータ(アクセスの時間及び/又はユーザを含み得る)が変更され得る。データブロックのコンテンツが変更された場合、新しいコンテンツを有するデータブロックをサイバネティックエングラムが再生成できるように、重みを保持する必要があり得る。データブロックのメタデータが変更された場合、いくつかの実施形態では、サイバネティックエングラムによってメタデータを処理できる際、及び/又は、新しいメタデータを使用してキー入力を更新できる際など、重みを保持する必要があり得る。いくつかの実施形態では、方法1200の実施に続いて方法1100を実施する際、キー入力が更新されたかどうかに応じて、ブロック1108はオプションとなり得る。
【0120】
データブロック、ユーザ及び/又は動作が検証及び/又は認証されなかったという決定(すなわち、オプションの決定ブロック1222=「いいえ」)に応答して、サイバネティックエングラムデバイスは、ブロック1226において、データブロックの学習を拒否することができる。データブロック、ユーザ及び/又は動作が検証及び/又は認証されなかったという決定は、データブロックの変更が望ましくない可能性があり、保持することができない可能性があるため、データブロックの学習に進まないことをサイバネティックエングラムに示す可能性がある。
【0121】
図13は、実施形態による、サイバネティックエングラムを使用してデータブロックを修復するための方法を示す。図1~12を参照すると、方法1300は、コンピューティングデバイス(例えば、図6のコンピューティングデバイス600、図8のモバイルコンピューティングデバイス800、図9のコンピューティングシステム900、図10のサーバ1000)、プロセッサ(例えば、図1、2、4及び5のサイバネティックエングラム102、104、図6及び7のプロセッサ604、図8のプロセッサ802、図9のプロセッサ911、図19のプロセッサアセンブリ1001)で実行するソフトウェア、専用ハードウェア(例えば、図1、2、4及び5のサイバネティックエングラム102、104)、汎用ハードウェア、又は、ソフトウェア構成プロセッサと専用ハードウェアの組合せ(他の個々のコンポーネントを含むサイバネティックエングラム使用可能システム内のソフトウェアを実行するプロセッサ及び様々なメモリ/キャッシュコントローラなど)において実施することができる。様々な実施形態において使用可能な代替の構成を包含するため、方法1300を実施するハードウェアは、本明細書では、「サイバネティックエングラムデバイス」と呼ばれる。
【0122】
ブロック1302では、サイバネティックエングラムデバイスは、図12を参照して方法1200のブロック1208において説明されるように回収された重みとは異なる場所からデータブロック(例えば、図3~5のデータブロック304)に対する重みを回収することができる。同じデータブロックに対する複数の重みのセットは、データブロックに対するキー入力(例えば、図3~5のキー入力302)と関連付けることができる。データブロックのデータの完全性を保つ上で役立てるため、様々な重みのセットは、複数のコンピューティングデバイスの複数のメモリデバイス(例えば、図6のメモリ606、ストレージメモリ614、図7のキャッシュメモリ710、712、714、716、720、722、730、740、図8の内部メモリ806、図9の揮発性メモリ912、不揮発性メモリ913、図10の揮発性メモリ1002、不揮発性メモリ1004)にわたって分散化されるように格納することができる。いくつかの実施形態では、様々な重みのセットは、図12を参照して本明細書の方法1200のブロック1214及び決定ブロック1216で説明されるように、重みのセットが検証及び/又は認証に失敗したデータブロックを再生成したことに応答して、回収するための重みのセットがどれかを決定する目的のために、順序付け又はランク付けすることができる。いくつかの実施形態では、順番又はランクは、重みのセットがデータブロックを忠実に再生成できるという信用を表し得る。データブロックに対するキー入力と関連付けられることが決定したデータブロックに対する重みは、データブロックに対するキー入力を処理する際に使用するために、ローカル又はリモートで、それらの格納場所から回収することができる。
【0123】
オプションのブロック1304では、サイバネティックエングラムデバイスは、検証及び/又は認証に失敗したデータブロックを再生成した重みを処分することができる。重みを処分することは、重みが格納されたメモリデバイス内の重みを削除すること、無効化すること、上書きすることなどを伴い得る。いくつかの実施形態では、重みは、重みが格納されたメモリデバイス上に存続することができるが、重みがデータブロックを忠実に再生成できるという信用が低下するようにランク付け又は順序付けされ得る。重みは、後世のため、重みがなぜ検証及び/又は認証に失敗したデータブロックを再生成したかについての分析のため、バージョン追跡のためなど、保持することができる。
【0124】
オプションのブロック1306では、サイバネティックエングラムデバイスは、検証及び/又は認証に失敗したデータブロックを再生成した重みの場所とは異なる場所から重みを格納することができる。いくつかの実施形態では、ブロック1302において回収された重みは、検証及び/又は認証に失敗したデータブロックを再生成した重みの場所に格納することができる。
【0125】
ブロック1302における重みの回収、オプションのブロック1304における重みの処分又はブロック1306における重みの格納に続いて、サイバネティックエングラムデバイスは、図12を参照して方法1200のブロック1212において説明されるように、データブロックに対するキー入力及びブロック1302において回収されたデータブロックに対する重みを使用してデータブロックを再生成することに進むことができる。
【0126】
様々な態様の動作を行うためのプログラマブルプロセッサ上での実行のためのコンピュータプログラムコード又は「プログラムコード」は、C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic、構造化照会言語(例えば、Transact-SQL)、Perlなどの高水準プログラミング言語又は他の様々なプログラミング言語で記載することができる。この出願において使用される場合、コンピュータ可読記憶媒体上に格納されたプログラムコード又はプログラムは、プロセッサがそのフォーマットを理解できる機械語コード(オブジェクトコードなど)を指し得る。
【0127】
前述の方法の説明及びプロセスフロー図は、説明に役立つ単なる例として提供され、様々な態様の動作を提示される順番で実行しなければならないことを必要とするか又は含意することは意図されない。当業者によって理解されるように、前述の態様における動作の順番は、いかなる順番でも実行することができる。「その後」、「次いで」、「次に」などの言葉は、動作の順番を制限することを意図しない。これらの言葉は、単に、方法の説明を通じて読者を導くために使用される。さらに、単数形の(例えば、「a」、「an」又は「the」という冠詞を使用した)請求項の構成要素へのいかなる言及も、構成要素を単数形に限定するものと解釈してはならない。
【0128】
様々な態様と関係して説明される様々な例証的な論理ブロック、モジュール、回路及びアルゴリズム動作は、電子ハードウェア、コンピュータソフトウェア又は両方の組合せとして実装することができる。ハードウェアとソフトウェアのこの互換性を明確に示すため、上記では一般的に、様々な例証的なコンポーネント、ブロック、モジュール、回路及び動作について、それらの機能性の観点から説明してきた。そのような機能性がハードウェアとして実装されるか又はソフトウェアとして実装されるかは、特定の応用や、全システムに課される設計制約に依存する。当業者は、特定の応用の各々に対して様々な方法で説明される機能性を実装することができるが、そのような実装形態の決定は、請求項の範囲からの逸脱をもたらすものと解釈すべきではない。
【0129】
本明細書で開示される態様と関係して説明される様々な例証的な論理、論理ブロック、モジュール及び回路を実装するために使用されるハードウェアは、本明細書で説明される機能を実行するように設計された、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)若しくは他のプログラマブル論理デバイス、離散ゲート若しくはトランジスタ論理、離散ハードウェアコンポーネント、又は、それらの任意の組合せを用いて実装又は実行することができる。汎用プロセッサは、マイクロプロセッサであり得るが、代替の実施形態では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ又は状態機械であり得る。また、プロセッサは、コンピューティングデバイスの組合せとして実装することもでき、例えば、DSPとマイクロプロセッサの組合せ、多数のマイクロプロセッサ、DSPコアと併用する1つ若しくは複数のマイクロプロセッサ又は他の任意のそのような構成が挙げられる。或いは、いくつかの動作又は方法は、所定の機能に特有の回路構成によって実行することができる。
【0130】
1つ又は複数の態様では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア又はそれらの任意の組合せにおいて実装することができる。ソフトウェアにおいて実装される場合は、機能は、非一時的なコンピュータ可読媒体又は非一時的なプロセッサ可読媒体上に1つ又は複数の命令又はコードとして格納することができる。本明細書で開示される方法又はアルゴリズムの動作は、非一時的なコンピュータ可読又はプロセッサ可読記憶媒体上に存在し得るプロセッサ実行可能ソフトウェアモジュールにおいて具体化することができる。非一時的なコンピュータ可読又はプロセッサ可読記憶媒体は、コンピュータ又はプロセッサによるアクセスが可能ないかなる記憶媒体でもあり得る。制限ではなく例として、そのような非一時的なコンピュータ可読又はプロセッサ可読媒体は、RAM、ROM、EEPROM、フラッシュメモリ、CD-ROM若しくは他の光ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶装置、又は、命令若しくはデータ構造の形式で所望のプログラムコードを格納するために使用することができ、コンピュータによるアクセスが可能な他の任意の媒体を含み得る。ディスク(「disk」及び「disc」)は、本明細書で使用される場合、コンパクトディスク(CD:compact disc)、レーザディスク(laser disc)、光ディスク(optical disc)、デジタル多用途ディスク(DVD:digital versatile disc)、フロッピーディスク(floppy disk)及びブルーレイディスク(Blu-ray disc)を含み、ディスク(disk)は、通常、データを磁気的に再生成する一方で、ディスク(disc)は、レーザを用いて光学的にデータを再生成する。また、非一時的なコンピュータ可読及びプロセッサ可読媒体の範囲内には、上記の組合せも含まれる。それに加えて、方法又はアルゴリズムの動作は、非一時的なプロセッサ可読媒体及び/又はコンピュータ可読媒体上にコード及び/又は命令の1つ又は任意の組合せ若しくはセットとして存在し得、それらは、コンピュータプログラム製品に組み込むことができる。
【0131】
開示される態様の前述の説明は、当業者が請求項を作成又は使用できるように提供される。これらの態様の様々な変更形態は、当業者に容易に明らかであろう。本明細書で定義される一般的な原理は、請求項の範囲から逸脱することなく、他の態様及び実装形態に適用することができる。従って、本開示は、本明細書で説明される態様及び実装形態に限定されることは意図しないが、以下の請求項並びに本明細書で開示される原理及び新規の特徴と一致する最も広い範囲が与えられることが意図される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
【国際調査報告】