KR20210116615A - 자체-인식, 자체-치유, 및 자체-방어 데이터를 위한 방법 - Google Patents

자체-인식, 자체-치유, 및 자체-방어 데이터를 위한 방법 Download PDF

Info

Publication number
KR20210116615A
KR20210116615A KR1020217026572A KR20217026572A KR20210116615A KR 20210116615 A KR20210116615 A KR 20210116615A KR 1020217026572 A KR1020217026572 A KR 1020217026572A KR 20217026572 A KR20217026572 A KR 20217026572A KR 20210116615 A KR20210116615 A KR 20210116615A
Authority
KR
South Korea
Prior art keywords
data block
data
neural network
processor
cybernetic
Prior art date
Application number
KR1020217026572A
Other languages
English (en)
Inventor
아메드 마수드
Original Assignee
아메드 마수드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아메드 마수드 filed Critical 아메드 마수드
Publication of KR20210116615A publication Critical patent/KR20210116615A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/02Computing arrangements based on specific mathematical models using fuzzy logic
    • G06N7/023Learning or tuning the parameters of a fuzzy system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/02Computing arrangements based on specific mathematical models using fuzzy logic
    • G06N7/04Physical realisation
    • G06N7/046Implementation by means of a neural network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Automation & Control Theory (AREA)
  • Fuzzy Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

다양한 실시예는 데이터 블록을 신경망에 대한 가중치로 변환하기 위한 방법 및 장치를 포함한다. 일부 실시예는 데이터 블록을 재생하도록 사이버네틱 엔그램의 제1 신경망을 훈련시키는 것, 및 데이터 블록을 재생하도록 제1 신경망에 의해 사용되는 가중치로 메모리 내 데이터 블록을 대체하는 것을 포함할 수 있다.

Description

자체-인식, 자체-치유, 및 자체-방어 데이터를 위한 방법
본 출원은 2019년 01월 21일에 출원된 미국 가특허 출원 번호 62/794,922, 발명의 명칭 "Methods for Self-aware, Self-healing, and Self-Defending Data", 2020년 01월20일에 출원된 미국 정규특허 출원 번호 16/747,359, 발명의 명칭 "Methods for Self-aware, Self-healing, and Self-Defending Data"의 우선권의 이익을 주장한다.이들 문헌의 전체 내용이 본 명세서에 참조로서 포함된다.
현재 사이버보안 제품, 솔루션 및 접근법이 사이버보안 보호의 대상인 데이터 외부에서 방어를 적용한다. 일반적으로 데이터 보호는 비승인 액세스, 사용, 공개, 붕괴, 수정, 또는 삭제로부터 데이터를 방어하기 위해 데이터 주위의 보호 레이어로서 구현된다. 다양한 보호 레이어는 특정 유형의 위협으로부터 데이터를 보호하도록 구성되며 구현된 레이어가 보호하지 않는 위협으로부터 데이터를 보호하기 위해 상기 레이어는 업데이트되거나 새로운 레이어가 추가된다.
다양한 개시된 실시예는 데이터 블록을 신경망에 대한 가중치로 변환하기 위한 장치 및 방법을 포함할 수 있다. 다양한 실시예는 데이터 블록을 재생하도록 사이버네틱 엔그램의 제1 신경망을 훈련시키는 것, 및 제1 신경망에 의해 사용되는 가중치로 메모리 내 데이터 블록을 대체하여 데이터 블록을 재생하는 것을 포함할 수 있다.
일부 실시예는 데이터 블록에 대한 작업 요청을 수신하는 것, 제1 신경망을 트리거하여 데이터 블록을 재생하도록 구성된 키 입력을 수신하는 것, 및 작업 요청을 수신하는 것에 응답하여, 제1 신경망, 가중치, 및 키 입력을 이용해 데이터 블록을 재생하는 것을 더 포함할 수 있다.
일부 실시예는 제1 신경망, 가중치, 및 상기 제1 신경망을 트리거하여 데이터 블록을 재생하도록 구성된 키 입력을 이용해 데이터 블록을 재생하여, 재생 데이터 블록을 도출하는 것, 재생 데이터 블록에 대해 데이터 블록에 대한 작업 요청의 작업을 실행하는 것을 더 포함할 수 있다.
일부 실시예는 사이버네틱 엔그램의 제2 신경망에 의한 재생 데이터 블록에 대한 검증을 실행하는 것을 더 포함하며, 재생 데이터 블록에 대해 데이터 블록에 대한 작업 요청의 작업을 실행하는 것은 재생 데이터 블록에 대한 검증에 응답하여 발생한다.
일부 실시예는 사이버네틱 엔그램의 제3 신경망에 의한 재생 데이터 블록에 대한 인증을 실행하는 것을 더 포함하며, 재생 데이터 블록에 대해 데이터 블록에 대한 작업 요청의 작업을 실행하는 것은 재생 데이터 블록에 대한 인증에 응답하여 발생한다.
일부 실시예는 제1 신경망, 가중치, 및 제1 신경망을 트리거하여 데이터 블록을 재생하도록 구성된 키 입력을 이용해 데이터 블록을 재생하는 것, 재생 데이터 블록을 도출하는 것, 사이버네틱 엔그램의 제2 신경망에 의해, 재생 데이터 블록에 대한 검증을 실행하는 것, 재생 데이터 블록 검증 실패에 응답하여 상이한 가중치를 검색하는 것, 및 제1 신경망, 상기 상이한 가중치, 및 키 입력을 이용해 데이터 블록을 재생하여, 재생 데이터 블록을 도출하는 것을 더 포함할 수 있다.
일부 실시예에서, 메모리 내 데이터 블록을 데이터 블록을 재생하기 위해 제1 신경망에 의해 사용되는 가중치로 대체하는 것은 가중치를 분산 렛저(distributed ledger)에 저장하는 것을 포함할 수 있다.
다양한 실시예가 앞서 요약된 방법 중 임의의 것의 작업을 수행하도록 구성된 프로세서를 갖는 컴퓨팅 장치를 포함한다. 다양한 실시예가 프로세서로 하여금 앞서 요약된 방법 중 임의의 것의 작업을 수행하도록 구성된 프로세서-실행 명령이 저장된 비일시적, 프로세서-판독형 매체를 포함한다.
본 명세서에 포함되고 본 명세서의 일부를 구성하는 첨부한 도면이 다양한 실시예 중 예시를 도시하며, 앞서 제공된 포괄적인 설명 및 이하에서 제공되는 상세한 설명 과 함께 청구항의 특징을 설명하는 역할을 한다.
도 1은 다양한 실시예를 구현하기 위한 예시적 자기-인식, 자기-치유, 및 자기-방어 데이터 시스템을 도시하는 구성요소 블록도이다.
도 2는 다양한 실시예를 구현하기 위한 예시적 사이버네틱 엔그램(cybernetic engram)을 도시하는 구성요소 블록도이다.
도 3은 다양한 실시예를 구현하기 위한 키 입력과 데이터 블록의 예시적 관계를 도시하는 차트도이다.
도 4는 다양한 실시예를 구현하기 위한 사이버네틱 엔그램 참조 포인터의 예시적 생성을 도시하는 개략순서도이다.
도 5는 다양한 실시예를 구현하기 위한 사이버네틱 엔그램에 의한 데이터 블록의 예시적 표현을 도시하는 개략적 흐름도이다.
도 6은 다양한 실시예를 구현하기 위한 예시적 컴퓨팅 장치를 도시하는 구성요소 블록도이다.
도 7은 다양한 실시예를 구현하기에 적합한 예시적 멀티코어 프로세서를 도시하는 구성요소 블록도이다.
도 8은 다양한 실시예에서 사용되기에 적합한 예시적 모바일 컴퓨팅 장치를 도시하는 구성요소 블록도이다.
도 9는 다양한 실시예에서 사용되기에 적합한 예시적 모바일 컴퓨팅 장치를 도시하는 구성요소 블록도이다.
도 10는 다양한 실시예에서 사용되기에 적합한 예시적 서버를 도시하는 구성요소 블록도이다.
도 11은 하나의 실시예에 따라 데이터 블록을 학습하고 저장하기 위해 사이버네틱 엔그램을 이용하기 위한 방법을 도시하는 프로세스 흐름도이다.
도 12는 하나의 실시예에 따라 데이터 블록을 검색하고 보호하기 위해 사이버네틱 엔그램을 이용하기 위한 방법을 도시하는 프로세스 흐름도이다.
도 13은 하나의 실시예에 따라 데이터 블록을 치유하기 위해 사이버네틱 엔그램을 이용하기 위한 방법을 도시하는 프로세스 흐름도이다.
다양한 실시예는 인공 지능으로 데이터를 융합하여 자기-인지, 자기-치유, 및 자기-방어 데이터를 생성하기 위한 방법 및 이러한 방법을 구현하는 컴퓨팅 장치를 포함한다. 이들 실시예는 본 명세서에서 사이버네틱 엔그램(cybernetic engram)으로 지칭되는 것의 일부일 수 있는 신경망의 집합으로서 데이터의 표현을 저장하도록 구성된 파일시스템, 파일시스템 오버레이, 및/또는 데이터스토어를 포함할 수 있다. 일부 실시예는 신경망의 집합의 노드에 대해 가중치를 저장하도록 구성된 파일시스템, 파일시스템 오버레이, 및/또는 데이터스토어를 포함할 수 있다. 일부 실시예에서, 파일시스템, 파일시스템 오버레이, 및/또는 데이터스토어가 중앙집중화 및/또는 분산될 수 있다. 일부 실시예는 입력 키를 신경망의 집합으로 입력하는 것 및 상기 신경망의 집합이 관련 저장된 가중치를 이용해 상기 신경망의 집합이 나타내는 데이터를 재구성하는 것을 포함할 수 있다. 일부 실시예는 입력 키를 신경망의 집합으로 입력하는 것 및 상기 신경망의 집합이 관련 저장된 가중치를 이용해 데이터를 변환, 보호, 복구 및/또는 분석하는 것을 포함할 수 있다. 일부 실시예는 신경망의 집합이 데이터 업데이트를 검증하고 데이터 업데이트가 발생하는 것을 허용 또는 불허하는 것을 포함할 수 있다. 일부 실시예는 신경망의 집합이 업데이트된 데이터를 검증하는 것 및 바람직하지 않은 데이터 업데이트 후 데이터를 복원하는 것을 포함할 수 있다.
파일시스템, 파일시스템 오버레이, 및/또는 데이터스토어가 신경망의 집합 및 신경망의 집합의 노드에 대한 가중치로서 개별 데이터 유닛을 저장할 수 있다. 예를 들어, 개별 데이터 블록이 신경망의 집합 및 신경망의 집합의 노드에 대한 가중치로서 저장될 수 있다. 일부 실시예에서, 파일시스템, 파일시스템 오버레이, 및/또는 데이터스토어가 임의의 수의 컴퓨팅 장치, 가령, 단일 컴퓨팅 장치 또는 복수의 네트워크 연결된 컴퓨팅 장치의 임의의 수의 과도 및/또는 영속 메모리 장치 상에 위치할 수 있다. 일부 실시예에서, 파일시스템, 파일시스템 오버레이, 및/또는 데이터스토어 및 신경망의 집합의 노드에 대한 가중치가 동일한 및/또는 상이한 메모리 장치 상에 저장될 수 있다. 일부 실시예에서, 신경망의 집합의 노드에 대한 가중치가 분산 렛저(ledger), 가령, 블록체인에 저장될 수 있다.
각각의 데이터 유닛을 나타내는 신경망의 집합은 데이터의 비지도 학습(unsupervised learning)을 구현할 수 있다. 데이터 유닛을 학습하는 신경망의 집합은 메모리 장치 상의 데이터의 유닛을 대체 및/또는 나타낼 수 있다. 신경망의 집합은 데이터 유닛 및/또는 데이터 유닛과 연관된 메타데이터의 콘텐츠를 학습할 수 있다. 일부 실시예에서, 데이터 유닛과 연관된 키 입력은 데이터 유닛에 대한 저장된 가중치와 연관될 수 있다. 신경망의 집합은 키 입력을 수신하고 데이터 유닛을 재구성하기 위해 신경망의 집합의 동작에서 가중치를 적용할 수 있다. 일부 실시예에서, 신경망의 집합은 키 입력을 수신하고, 데이터 유닛 및/또는 데이터 유닛에 대한 동작의 소스에 의한 데이터 유닛, 데이터 및/또는 메타데이터 변경에 대한 동작을 검증하기 위해 신경망의 집합의 동작에서 가중치를 적용할 수 있다. 일부 실시예에서, 신경망의 집합은 키 입력을 수신하고, 데이터 유닛의 데이터 및/또는 메타데이터를 검증하기 위한 신경망의 집합의 동작에서 가중치를 적용하며, 데이터 및/또는 메타데이터를 검증하지 못하는 것에 응답하여 데이터 유닛을 복원하기 위한 신경망의 집합의 동작에서 이전 가중치를 사용할 수 있다.
데이터 유닛은 복수의 데이터 유닛, 가령, 데이터 파일의 조합의 일부일 수 있다. 일부 실시예에서, 데이터 유닛을 나타내는 신경망의 집합은 복수의 데이터 유닛의 조합과 연관될 수 있다. 신경망의 집합에 의해 재구성된 데이터 유닛은 복수의 데이터 유닛의 조합에 포함될 수 있다. 데이터 유닛에 대한 액세스 동작은 데이터 유닛에 대한 동작을 액세스 및/또는 구현하기 위해 신경망의 집합의 실행을 트리거할 수 있다.
용어 "컴퓨팅 장치"는 본 명세서에서 셀방식 전화기, 스마트폰, 개인 또는 모바일 멀티-미디어 플레이어, 개인 데이터 어시스턴트(PDA), 랩톱 컴퓨터, 태블릿 컴퓨터, 컨버터블 랩톱/테이블(2-in-1 컴퓨터), 스마트북, 울트라북, 넷북, 팜-탑 컴퓨터, 무선 전자 메일 수신기, 멀티미디어 인터넷 활성화 셀룰러 전화기, 모바일 게임 콘솔, 무선 게임 제어기, 및 메모리 및 프로그램 가능 프로세서를 포함하는 유사한 개인 전자 장치 중 임의의 하나 또는 모두를 지칭하는 데 사용된다. 용어 "컴퓨팅 장치"는 정지 컴퓨팅 장치, 가령, 개인 컴퓨터, 데스크 컴퓨터, 올-인-원 컴퓨터, 워크스테이션, 슈퍼 컴퓨터, 메인프레임 컴퓨터, 임베디드 컴퓨터, 서버, 홈 씨어터 컴퓨터, 및 게임 콘솔을 더 지칭할 수 있다.
도 1, 2, 4 및 5에서 도시된 바와 같은, 사이버네틱 엔그램(cybernetic engram)의 집합이 본 명세서에서 데이터 저장 시스템으로 총칭되는, 파일시스템, 데이터 스토어, 및/또는 데이터 블록 저장 장치로 구현될 수 있다. 각각의 데이터 블록은 도 2에 도시된 사이버네틱 엔그램, 가령, 신경망의 집합 및 원시 함수로서 구성된 논리 게이트로 교체될 수 있다. 신경망의 집합은 다양한 신경망, 가령, 피드포워드 신경망, 방사 기저 함수(radial basis function) 신경망, 재귀 신경망, 머신 러닝 포레스트 등 중 임의의 것 및 조합을 포함할 수 있다.
학습되지 않은 데이터 블록은 사이버네틱 엔그램의 신경망에 의한 비지도 학습을 이용하는 사이버네틱 엔그램에 의해 학습될 수 있다. 학습된 데이터 블록은 사이버네틱 엔그램의 신경망에 의해 대체될 수 있다. 사이버네틱 엔그램의 신경망은 다양한 목적으로, 가령, 주성분 분석을 구행하기 위해 구성될 수 있다. 그러나, 사이버네틱 엔그램의 주요 기능은 일부 특수 유형의 입력을 학습된 데이터 블록으로 변환시키는 것일 수 있다. 따라서, 사이버네틱 엔그램은 학습된 데이터 블록을 기억할 수 있으며 데이터 블록은 메모리에서 사이버네틱 엔그램의 알고리즘 망으로 대체될 수 있으며, 이의 출력은 데이터 블록이도록 보장될 수 있다. 키 입력은 사이버네틱 엔그램의 신경망으로 입력될 수 있고, 신경망은 데이터를 복제하고 복제된 데이터를 출력할 수 있다. 사이버네틱 엔그램의 집합이 데이터, 가령, 데이터 파일의 더 큰 집합, 가령, Word 문서, Excel 스프레드시트, MP3, JPEG, PDF 등을 구성할 수 있다. 따라서, 플랫 데이터의 블록의 다발인 학습된 데이터 파일이 특정 순서로 신경망의 다발일 수 있다. 신경망은 데이터의 상이한 표현이다. 또한, 신경망의 은닉 레이어에 대한 가중치가 메모리 장치 상에 중앙집중적으로 저장되거나 복수의 메모리 장치에 걸쳐, 가령, 블록체인 상에 분산될 수 있다.
학습된 데이터의 메타데이터의 일부분이 또한 학습되고 검증될 수 있다. 데이터의 유형, 가령, 파일 유형, 가령, Word 문서를 결정하기 위해 신경망의 재구성된 데이터 출력에 대한 주 콘텐츠 분석이 사용될 수 있다. 따라서, 신경망에 의해 결정된 파일 유형이 존재할 수 있고 메타데이터로부터 보고된 파일 유형이 존재할 수 있다. 이는 메타데이터가 확장 해석 또는 데이터의 마임 유형(mime type)을 포함하는 방식과 유사하다. 메타데이터는 보고될 때 데이터 스토리지 시스템 상에 존재할 수 있다. 메타데이터는 파일 시스템에서와 같이 데이터와 별도로 데이터 저장 시스템에 저장될 수 있다. 따라서, 데이터는 신경망으로 대체될 수 있고, 메타데이터는 플랫 데이터와 캐시 데이터로 모두 저장될 수 있다. 그러나 별도의 신경망으로 저장되기에 메타데이터가 충분하지 않을 수 있다. 이 메타데이터 중 일부는 입력으로서 사이버네틱 엔그램에 입력될 수 있다. 검증된 메타데이터는 관련 데이터 및 메타데이터의 보호에서 사이버네틱 엔그램에 의해 사용될 수 있다. 예를 들어, 사이버네틱 엔그램에 의한 주성분 분석에서 상이한 결과를 생성할 수 있는 무언가가 주입되면 주성분 분석은 데이터가 더 이상 Word 문서가 아닐 수 있다고 결정할 수 있다. 주성분 분석은 데이터가 Word 문서에서 이전에 발견된 것과 상이한 주입된 데이터, 가령, 실행파일, JavaScript, 비주얼 베이직 스크립트 등을 포함할 수 있음을 결정할 수 있다. 기본적으로, 사이버네틱 엔그램은 동일한 데이터의 1차, 2차, 3차 등의 해석을 식별한 후, 데이터가 세계에 무엇을 나타내는 중인지, 사용자인지 애플리케이션인지, 그리고 데이터가 실제로 무엇인지를 결정할 수 있다. 데이터가 무엇을 나타내는지와 데이터가 실제로 무엇인지 간 차이가 존재하는 경우, 차이가 플래깅될 수 있다.
학습된 데이터를 액세스하기 위한 요청은 신경망을 트리거하여 데이터를 재생할 수 있다. 사이버네틱 엔그램은 데이터를 신경망으로 대체할 수 있다. 데이터를 검색하기 위해, 커널(kernel)로부터, 신경망이 트리거될 수 있다. 커널 내 파일시스템 드라이버가 신경망에 의해 학습된 후 저장된 플랫 데이터를 읽는 경우 읽을 수 있는 모든 것은 디스크에 자기적으로 써진 신경망의 가중치일 수 있다. 데이터는 직접 액세스 가능하지 않을 수 있다. 데이터가 엔진에서, 데이터를 검색하도록 운영될 수 있는 사이버네틱 엔그램의 신경망에서 인코딩될 수 있다. 데이터 대신 가중치를 저장하면 가중치가 다른 시스템에 입력되어 데이터로 다시 변환되는 것을 방지할 수 있다. 부분적으로, 이것은 신경망을 이용한 가중치의 변환이 신경망에 대한 특정 입력에 의해 통제될 수 있기 때문에 달성될 수 있다.
특정 입력은 다양한 방식으로 구성될 수 있는 키 입력(key input)일 수 있다. 키 입력은 무결성 검증 키, 가령, 일종의 디지털 신호 서명, 그러나 사전-서명으로 구성될 수 있다. 키 입력은 사용자의 디지털 검증에서보다 의무적인 무결성 제어 세계에 더 많이 포함될 수 있다. 키 입력의 다양한 구현은 비밀유지(secrecy)를 구현하도록 구성될 수 있다. 비밀유지는 비대칭 공개 키/개인 키 메커니즘을 사용하여 구현될 수 있다. 키 입력은 필수 무결성을 구현하도록 구성될 수 있다. 키 입력은 신경망에 더 많은 중복 뉴런을 추가함으로써 일회용 패드로 구성될 수 있다.
신경망에 입력될 수 있는 메타데이터는 필드 수준에서 내장 데이터 액세스 제어를 제공할 수 있는 현재 프로세스의 사용자, 가령, 사용자 ID 및 그룹 ID를 포함할 수 있다. 올바른 사용자가 추가되지 않으면 신경망이 데이터의 특정 부분을 출력하지 않을 수 있다. 따라서, 액세스 제어 기능에 연결된 키 입력에 권한 기능이 내장될 수 있다.
파일시스템 작업은 열기, 닫기, 읽기, 쓰기 및 실행을 포함할 수 있다. 읽을 때, 사이버네틱 엔그램은 사이클을 수행할 수 있으며, 읽기에서 구현될 수 있는 상이한 사이클을 정의할 수 있다. 마찬가지로, 쓰기 중, 유사한 프로세스가 구현될 수 있다. 예를 들어, 사이버네틱 엔그램의 주성분 분석 서브시스템은 데이터 쓰기가 출력을 극적으로 변경하여 주성분이 더는 동일한 유형, 가령, docx 또는 PDF를 생성하지 않는지 여부를 결정할 수 있다. 예를 들어, 모든 것을 암호화하는 랜섬웨어 공격은 주성분 분석 결과를 기반으로 한 업데이트로 사이버네틱 엔그램의 신경망에 의해 완전히 거부될 수 있다. 쓰기 작업은 신경망을 트리거하여 새 블록을 학습할 수 있다. 신경망은 블록체인 상의 오래된 블록을 장기 메모리로서 각인할 수 있다. 새로운 데이터 블록을 학습하면 신경망이 가중치를 변경할 수 있다. 새 데이터 블록의 주성분이 이전에 저장된 가중치에 따라 더는 Word 문서가 아닌 경우 쓰기가 거부될 수 있다. 실질적으로 말해서, 무언가가 와서 디스크 콘텐츠를 너무 극적으로 변경시켜 이의 속성이 변경되면, 이는 일반적으로 실세계에서 일반적인 원칙으로 방지해야 하는 변경이다. 그러나, 신경망은 데이터의 일부 돌연변이를 허용하고 다른 돌연변이를 방지하도록 훈련될 수 있다. 예를 들어, 실행 가능한 돌연변이 및 PDF에 포함된 Flash가 허용되지 않을 수 있다. 그러나, 사용자는 실제로 허용되는 돌연변이와 허용되지 않는 돌연변이를 선택할 수 있다.
일부 실시예에서, 사이버네틱 엔그램의 집합은 예를 들어, 데이터스토어, 네트워크, 소프트웨어 정의 블록 장치 및/또는 파일 시스템으로서 개발될 수 있다. 사이버네틱 엔그램은 포맷에 독립적일 수 있다.
일부 실시예에서, 사이버네틱 엔그램의 집합은 탈중앙집중화된 분산 파일 시스템일 수 있다. 파일 시스템을 실행하는 소프트웨어는 설치하기만 하면 된다. 파일 시스템이 설치되거나 기능이 하나의 위치에 있으면, 모든 유형의 데이터가 들어올 때마다, 비지도 학습 엔진이 데이터를 학습하고 사이버네틱 엔그램을 관리하기 위한 프로세스가 사람의 개입 없이 데이터를 적절하게 조작하기 시작할 수 있다.
사이버네틱 엔그램이 탈중앙집중화될 수 있기 때문에 네트워크 상의 접할 수 있는 많은 데이터가 공통적일 수 있다. 공통 데이터를 나타내기 위해, 공유 신경망이 구현될 수 있고 이들의 가중치가 검증될 수 있다. 그럼 간단한 예를 들어 보겠다. 복수의 신경망에 의해 학습된 동일한 블록이 동일한 해시를 생성할 수 있다. 따라서, 복수의 상이한 신경망이 동일한 플랫 데이터 블록에 대해 동일한 해시를 생성할 수 있다. 신경망은 은닉 레이어에 대한 가중화 스킴을 보고할 수 있다. 신경망 중 하나가 왜곡되면, 블록체인을 이용한 합의 네트워크(consensus network)가 구현될 수 있다. 가중치가 무엇인지 파악하는 데 가장 많은 일을 한 뉴런은 왜곡된 신경망에서 신뢰할 수 있고 사용될 수 있다. 현실 세계에서, 블록체인을 볼 때, 오라클이 아킬레스건이다. 오라클은 블록체인으로의 모든 외부 입력일 수 있으며 입력은 검증된 것으로 간주될 수 있다. 값은 있는 그대로 받아들여질 수 있다. 이때, 사이버네틱 엔그램의 파일 시스템은 오라클이 완전 신뢰될 필요가 없는 하이브리드를 구현할 수 있다. 따라서 복수의 오라클은 합의을 위한 메커니즘이 이들의 입력을 검증하는 데 사용될 수 있는 그 밖의 다른 폐쇄 시스템으로의 상이한 외부 입력 리포터일 수 있다.
자기 인식, 자기 치유, 자기 방어 데이터 양태는 사이버네틱 엔그램의 신경망을 통해 구현될 수 있는데, 왜냐하면 하나의 신경망 조차 자기 인식, 자기 치유 및 자신 고유의 유형, 콘텐츠, 및 히스토리를 알지 못하게 자기 보호형일 수 있기 때문이다. 또한, 신경망은 데이터 및 메타데이터가 아직 검증되었는지 여부를 자신의 피어에게 요청할 수도 있다. 파일 시스템에서, 신경망 활성화는 데이터를 얻기 위해 강제될 수 있고 신경망은 플랫 데이터를 읽는 것이 아니라 상기 데이터를 출력으로서 더 흥미롭게 만드는 이들 모든 상이한 비트 및 조각을 가질 수 있다. 신경망의 강제 활성화는 데이터를 읽을 때 발생하는 일, 데이터를 쓸 때 일어나는 일, 데이터가 삭제될 때 일어나는 일에 영향을 미칠 수 있다. 데이터가 삭제될 때, 데이터의 인상이 파일 시스템의 블록체인에 남아 있고 복원될 수 있다.
신경망의 출력이 그 자체로 실행 파일일 때, 상기 실행 파일은 논스(nonce) 및 인증 및 인가를 위한 일회용 토큰에 적용될 수 있는 수정 방지, 원격 스마트 계약 및/또는 자체 파괴 데이터/일회용 데이터를 유지하도록 구성될 수 있다.
일반적으로 데이터는 수동 데이터이다. 여기서, 수동 데이터는 이 데이터 콘텐츠를 액세스하려는 운영 체제 또는 그 밖의 다른 애플리케이션이 데이터 콘텐츠를 액세스하기 위해 활성화할 수 있는 신경망으로 대체될 수 있다. 도 3에 도시된 바와 같이, 키 값 저장소(300)는 데이터 블록(304) 값과 연관된 키 입력(302)을 포함할 수 있으며, 이는 다중 데이터 블록(304)으로 이루어질 수 있는 데이터를 신경망이 액세스 및/또는 조작하기 위한 입력 및 트리거로서 사용될 수 있다. 키 입력 값은 작업 요청(도 3에 도시된 예에서 "요청"), 가령, 읽기 또는 쓰기, 및 연관된 데이터 블록(304)의 작업 요청 파라미터 및/또는 메타데이터(도 3에 도시된 예시에서 "파라미터"라고 총칭됨)를 포함할 수 있는 그 밖의 다른 파라미터를 포함할 수 있다. 도 3의 예시에서, 데이터 블록(304)은 키 값 저장소(302)의 키 값(302)과 데이터 블록(304)의 연관을 설명하기 위해 도시되지만, 일부 실시예에서 데이터 블록(304)은 키 값 저장소(302)로부터 제외될 수 있다. 일부 실시예는 키 값 저장소(302)를 구현할 수 있지만, 키 입력(302)은 반드시 키 값 저장소(300)를 사용하여 저장되거나 전혀 저장되지 않을 수 있다.. 일부 실시예에서, 예를 들어, 데이터 블록을 액세스하려 시도하는 프로세스 또는 프로그램에 의해, 또 다른 프로세스 및/또는 프로그램으로부터 데이터 블록에 대한 작업 요청에 응답하여 사이버네틱 엔그램에 대한 키 입력을 생성하도록 구성된 프로세스 또는 프로그램에 의해, 및/또는 프로세스 또는 프로그램으로부터의 작업 요청에 응답하여 사이버네틱 엔그램에 의해, 데이터 블록에 대한 작업 요청에 대해 키 입력(302)이 생성될 수 있다. 일부 실시예에서, 키 입력(302)은 사이버네틱 엔그램에 대한 키 입력 값의 이전 히스토리를 사용하여 생성될 수 있다. 일부 실시예에서, 키 입력(302)은 이산 시간 또는 연속 시간일 수 있는 시간적으로 정렬된 키를 사용하여 생성될 수 있다. 일부 실시예에서, 키 입력(302)은 중단된 시계열 및/또는 그 밖의 다른 임의의 시계열 입력을 통해 생성될 수 있다. 일부 실시예에서, 키 입력(302)은 시퀀싱된 데이터를 사용하여 생성될 수 있고, 임의의 시퀀싱된 데이터는 이산 시퀀스 또는 연속 시퀀스일 수 있다. 일부 실시예에서 키 입력(302)은 랜덤 배치 또는 랜덤 할당을 통해 생성될 수 있다.
사이버네틱 엔그램은 데이터 블록이 액세스될 때마다 실행될 수 있는 신경망 형태의 기능을 포함할 수 있다. 신경망, 가령, 멀티레이어 퍼셉트론 신경망, 재귀 신경망, 또는 장기 메모리 신경망에 대한 가중치가 상이한 데이터 콘텐츠에 대한 신경망 함수를 훈련시키는 것에 기초하여 달라질 수 있기 때문에, 함수의 실행이 각각의 사이버네틱 엔그램과 연관된 데이터 블록(304)들 간에 달라질 수 있다. 일부 실시예에서, 요청 및/또는 요청의 대응하는 파라미터를 포함할 수 있는 키 입력(302)은 신경망에 대한 입력일 수 있다. 요청을 포함하는 키 입력(302)은 사이버네틱 엔그램에 입력될 수 있고, 사이버네틱 엔그램의 신경망은 키 입력(302) 및 신경망에 대한 가중치와 연관된 데이터 블록(304)을 재생할 수 있다. 플랫 데이터를 저장하는 대신에, 임의의 수의 메모리 장치에 저장될 수 있는 것은 사이버네틱 엔그램 구성 및 데이터 블록(304)에 대한 해당 가중치일 수 있다. 요청 및/또는 이의 파라미터가 데이터 블록(304)을 검색 및/또는 조작하기 위한 입력일 수 있기 때문에, 요청이 데이터 블록(304)과 얽힐 수 있다. 신경망의 신경들 중 하나로의 입력으로서의 요청이, 이 요청에 대한 데이터 블록(304)에 대응하는 적절한 가중치를 갖는 적절한 요청이 데이터 블록(304)을 검색 및/또는 조작하도록 요구됨을 보장할 수 있다. 이 연관은 모든 유형의 요청 및 해당 요청 및 데이터 블록(304)에 대한 임의의 해당 파라미터 값에 대해 수행될 수 있다.
데이터는 메타데이터와 함께 제공된다. 메타데이터는 요청의 일부로서 입력될 수도 있다. 예를 들어, 데이터 블록(304)은 특정 파라미터, 가령, 사용자 이름, 프로세스 ID와 매칭되는 파일 소유자 ID, 및 해당 권한 비트 설정 하에서 액세스되어야 할 수 있다. 메타데이터는 이 신경망에 대한 입력일 수도 있다. 따라서 보안 규칙이 데이터에 내장되는 권한일 수 있다. 일반적으로, 신경망에 적절한 양의 뉴런을 추가함으로써 모든 유형의 임의의 액세스 제어 규칙이 데이터에 내장될 수 있다. 내장되는 보안은 데이터와 연관된 가중치가 키 입력에 기반해 변경되는 것을 기반으로 할 수 있다. 입력과 매칭되는 적절한 가중치가 없으면, 올바른 출력 데이터가 검색되지 않을 수 있다.
도 1에 도시된 바와 같이, 사이버네틱 엔그램(102)의 씩 포리스트(thick forest)(100)가 복수의 데이터 블록(304)으로 구성된 데이터를 나타내는 데 사용될 수 있다. 일부 실시예에서, 데이터가 사이버네틱 엔그램(100)의 씩 포레스트로부터 간단히 추출되지 않을 수 있도록 일회용 패드 유형 스크램블링이 데이터에 대해 구현될 수 있다. 씩 포레스트(100)의 각각의 사이버네틱 엔그램(102)은 도 5에 도시된 바와 같이 키 입력(302)을 수용하고 연관된 데이터 블록(304)(도 5에 도시된 예에서 "데이터 블록")을 출력할 수 있다. 집합적으로, 씩 포레스트(100)의 사이버네틱 엔그램(102)은 동일한 키 입력(302)을 사용하여 다양한 관련 데이터 블록(304)을 출력할 수 있다.
데이터를 액세스 및/또는 조작하기 위해 운영 체제가 입력하는 인터페이스는 요청, 요청 파라미터, 플러스 메타데이터, 플러스 그 밖의 다른 비트 및 조각을 포함할 수 있는 키 입력(302)을 수락할 수 있다. 사이버네틱 엔그램(104)의 출력은 실제로 데이터 블록(304)의 값이 아니라 도시된 바와 같이 씩 포레스트(100)의 데이터 블록(304)에 대한 참조(400)(도 4에 도시된 예에서 "참조 포인터")일 수 있다. 씩 포레스트(100)의 사이버네틱 엔그램(102)을 참조할 수 있는 사이버네틱 엔그램(104)의 집합은 사이버네틱 엔그램(104)의 씬 포레스트(thin forest)일 수 있다. 신경망은 실제로 데이터 블록(304)이 씩 포레스트(100) 내에 위치할 수 있는 참조(400)를 출력할 수 있다. 씬 포레스트의 사이버네틱 엔그램(104)은 씩 포레스트(100)의 사이버네틱 엔그램(102)을 트리거하기 위해 키 입력(302)을 출력할 수 있다. 결국, 씩 포레스트(100)의 출력을 취할 수 있고 데이터 블록(304)으로부터의 데이터를 재구성할 수 있는 또 다른 신경망(도시되지 않음)이 존재할 수 있다. 사이버네틱 엔그램(120, 104)의 연결된 씬 포레스트 및 씩 포레스트(100)는 데이터의 압축 및 데이터 중복 제거(deduplication)를 가능하게 할 수 있다. 연결된 사이버네틱 엔그램(102, 104)은 또한 심층 데이터 분석 및/또는 심층 학습을 가능하게 할 수 있다.
일부 실시예에서, 키 입력(302) 및 관련 가중치를 이용해 데이터 블록(304)을 재구성하도록 구성된 신경망에 추가로, 사이버네틱 엔그램(102, 104)은 도 2에 도시된 바와 같이, 데이터 블록(304)에 대한 다른 함수에 대해 구성된 신경망(가령, 도 2에 도시된 예에서 "시퀀싱 신경망"(202), "검증 신경망"(208), "인가 신경망"(210))을 더 포함할 수 있다. 예를 들어, 또 다른 신경망이 제어 필터처럼 기능할 수 있다. 데이터 블록(304)에 대한 업데이트 요청이 들어올 때, 그 안에 포함된 다른 신경망을 통해 사이버네틱 엔그램(102, 104)은 데이터 블록(304)에 대한 가중치를 변경할 수 있는 컴퓨팅 장치의 유일한 구성요소일 수 있다.
쓰기 레코드 요청이 발생하면, 예를 들어 주성분 분석을 포함하는 액세스 제어가 데이터 블록(304)에 대해 구현될 수 있다. 일부 실시예에서, 주성분 분석은 쓰기 레코드 요청이 데이터 유형을 변경하려고 하는지 여부를 결정할 수 있다. 예를 들어, 데이터 블록(304)의 메타데이터는 데이터 유형을 docx로 나타낼 수 있는데, 이는 그것이 테일 엔드, 마임(mime) 유형 또는 헤더 정보이기 때문이다. 사이버네틱 엔그램(102, 104)은 메타데이터에 의해 보고된 바와 같이 데이터 블록(304)을 docx 유형으로 인식할 수 있다. 그러나, 주성분 분석을 구현하도록 구성된 사이버네틱 엔그램 신경망은 업데이트된 데이터 블록(304)의 가중치로부터, 데이터 블록(304)의 데이터 유형을 실행 파일로서 식별하거나, 데이터 블록(304)이 내장된 JavaScript 또는 그 밖의 다른 일부 바람직하지 않은 객체를 포함함을 식별할 수 있다. 데이터 블록(304)의 바람직하지 않은 변경의 경우, 사이버네틱 엔그램(102, 104)은 데이터 블록(304)에 대한 업데이트를 거부할 수 있다.
사이버네틱 엔그램(102, 104)의 신경망은 데이터 블록(304)에 대한 다양한 유형, 가령, 실행 파일, JPEG, PDF, Word 문서, Excel 문서 등을 분류 및 검증하도록 구성될 수 있다. 각각의 유형은 헤더가 아닌 다른 유형의 데이터 블록(304) 중 공통 특징을 가질 수 있다. 각각의 유형은 데이터 블록(304)의 콘텐츠로의 흐름을 가질 수 있다.
신경망을 훈련시키기 위해, 데이터 블록(304)은 신경망을 통해 실행될 수 있다. 예를 들어, 두 개의 입력이 멀티레이어 퍼셉트론 신경망에서 퍼셉트론의 전체 묶음으로 확장될 수 있다. 신경망을 훈련하기 위해 무작위 가중치를 선택할 수 있다. 신경망 작업이 레이어를 통해 진행될 때, 각각의 레이어 내 뉴런의 수가 이전 레이어로부터의 뉴런의 수에 비교해서 감소될 수 있다. 그런 다음, 신경망은 다음 레이어의 뉴런의 수를 이전 레이어의 뉴런의 수까지로 다시 확장할 수 있다. 가중치는 신경망의 출력이 신경망에 대한 입력과 동일할 때까지 조정될 수 있다. 따라서 입력이 x1 및 x2이면 출력은 x1 및 x2이어야 한다. 신경망이 다수의 Word 문서에 대해 훈련된 경우, 입력 x1 및 x2가 출력 x1 및 x2을 Word 문서로 유지하는지 여부를 확인하는 데 사용되는 가중치에는 Word 문서를 Word 문서로 만드는 요소가 포함될 수 있다. 이 것이 유용할 수 있는 예로는 데이터 블록이 암호화에 의해 근본적으로 변경될 수 있고, 사이버네틱 엔그램(102, 104)이 데이터 블록(304)에 대한 가중치를 업데이트하는 것을 가능하게 하지 않을 수 있는 랜섬웨어 공격이 있을 수 있다.
액세스 제어는 또한 데이터 블록(304)의 가중치에 내장될 수 있고, 사이버네틱 엔그램(102, 104)의 신경망은 키 입력(302)에서 식별된 사용자 및/또는 프로세스가 데이터 블록(304)을 액세스하도록 인가되었는지 여부 및/또는 사용자 및/또는 프로세스가 데이터 블록(304)으로 하도록 인가 받은 것, 가령, 읽기, 쓰기, 복사 등을 결정하도록 구성될 수 있다. 데이터 유형을 검증하기 위한 신경망과 유사하게, 데이터 블록(304)의 가중치를 적용할 때 액세스 제어를 위해 구성된 신경망이 입력을 취하고 출력이 상기 입력과 동일한 것으로 기대할 수 있다. 입력과 출력이 동일한 것에 응답하여 액세스가 승인될 수 있고 입력과 출력 간 차이에 응답하여 거부될 수 있다.
업데이트가 발생하더라도 데이터 블록(304)에 대한 가중치의 히스토리는 예를 들어 블록체인에 저장될 수 있다. 데이터 블록(304)에 대한 가중치의 히스토리는 데이터 블록(304)에 대한 원래 가중치로 확장될 수 있다. 가중치의 히스토리는 각각의 데이터 블록(304)에 대해 저장될 수 있다. 따라서, 데이터의 콘텐츠는 저장된 가중치에 내장될 수 있다.. 또한, 누가 업데이트를 요청했는지와 같이 업데이트가 구현되었다는 사실이 저장된 가중치에 포함될 수도 있다. 가중치의 저장된 히스토리는 업데이트의 역전과 데이터의 이전 버전 읽기를 허용할 수 있다. 데이터 블록(304)의 가중치의 히스토리의 분산된 저장은 가중치의 사본이 여러 위치에 저장될 수 있기 때문에 저장 장치의 네트워크의 일부를 사용할 수 없는 경우에도 데이터에 대한 액세스를 허용할 수 있다.
일부 실시예에서, 데이터 블록(304)을 사이버네틱 엔그램(102, 104)으로 대체함으로써 네트워킹된 시스템에 대한 데이터의 중복 제거가 가능해 질 수 있다. 데이터 블록(304)의 가중치는 다수의 컴퓨팅 장치에 의해 공유 및 액세스될 수 있으며, 이들 각각은 자체 사용을 위해 데이터 블록(304)을 재구성하도록 가중치를 사용하기 위해 사이버네틱 엔그램(102, 104)을 구현할 수 있다. 이러한 방식의 중복 제거는 복수의 컴퓨팅 장치 상에 동일한 데이터 블록(304)의 복수의 사본을 유지하지 않도록 복수의 컴퓨팅 장치에 의해 액세스되는 정적 데이터에 대해 바람직할 수 있다. 예를 들어, 복수의 컴퓨팅 장치는 정적 운영 체제 이미지를 사용하여 동일한 운영 체제의 큰 부분을 실행할 수 있다. 각각의 컴퓨팅 장치 상에 정적 운영 체제 이미지를 저장하는 대신, 컴퓨팅 장치는 실제 데이터가 상주할 수 있는 사이버네틱 엔그램(102)의 공유되는 씩 포레스트(100)를 통해 데이터 블록을 액세스할 수 있다. 각각의 컴퓨팅 장치는 사이버네틱 엔그램(102)의 씩 포레스트(100)의 저장소에 참조(400)를 제공할 수 있는 컴퓨팅 장치 상의 사이버네틱 엔그램(104)의 씬 포레스트로부터 사이버네틱 엔그램(102, 104)을 실행할 수 있다.
일부 실시예에서, 사이버네틱 엔그램(102, 104)의 신경망이 병렬로 실행될 수 있고, 모든 검증, 인증 및 그 밖의 다른 기능이 완료되고 데이터 블록(304)으로의 액세스가 허용 가능한 것으로 추정될 수 있으면, 데이터 블록(304)으로의 액세스가 요청 소스로 제공될 수 있거나, 및/또는 데이터 블록(304)에 대한 가중치를 업데이트하는, 데이터 블록(304)에 대한 작업이 저장될 수 있다. 데이터 블록(304)에 대한 액세스가 거부된 것으로 간주되면, 데이터 블록(304)에 대한 액세스가 억제될 수 있거나 및/또는 데이터 블록(304)에 대한 작업, 가령, 데이터 블록(304)에 대한 가중치를 업데이트하는 것이 폐기될 수 있다. 일부 실시예에서, 사이버네틱 엔그램(102, 104)을 구현하는 다중 프로세서에 의한 비동기식 요청 처리가 구현될 수 있고 데이터의 처리 성능에 긍정적인 영향을 미칠 수 있다. 예를 들어, 탈중앙집중화된 파일시스템으로 설정될 때, 수 천 개의 프로세서가 데이터를 요청하고 가중치가 요청하는 모든 프로세서에게 제공될 수 있다.
일부 실시예에서, 사이버네틱 엔그램(102, 104)은 키 값 저장소(300)가 있는 파일시스템에 대해 구현될 수 있다. 일부 실시예에서, 사이버네틱 엔그램(102, 104)은 임의의 레코드 또는 임의의 실제 데이터 저장 유형에 대해 임의의 데이터베이스에 대해 구현될 수 있다. 사이버네틱 엔그램(102, 104)이 구현될 수 있는 환경이 특정 포맷을 가질 필요는 없다. 사이버네틱 엔그램(102, 104)은 포맷에 독립적이고 저장소 유형에 독립적일 수 있다.
일부 실시예에서, 사이버네틱 엔그램(102, 104)은 새로운 파일 시스템 드라이버 또는 오버레이 파일시스템으로 기능할 수 있는 씬 프로비저닝된 파일 시스템으로 구현될 수 있다. 예를 들어 데이터 및 데이터 변경 사항이 파일 시스템의 레이어에 저장될 수 있다. 원본 데이터는 원본 파일시스템 레이어에 저장될 수 있다. 원본 데이터 및/또는 새 데이터에 대한 파일 시스템 편집은 다른 레이어에 저장될 수 있다.변경되지 않은 원본 데이터는 원본 레이어로부터 액세스될 수 있고 원본 데이터 또는 새 데이터의 업데이트된 부분은 다른 레이어로부버 액세스될 수 있다. 데이터에 대한 편집 내용을 다양한 위치에 저장될 수 있도록 레이어가 추가될 수 있다. 레이어들은 병합되어 레이어들의 조합으로부터 데이터를 제공할 수 있다.
마찬가지로, 사이버네틱 엔그램(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)에 바람직하지 않은 변경이 발생하고 있음을 사이버네틱 엔그램 씩 포레스트(100)에게 나타낼 수 있다. 또한, 사이버네틱 엔그램 활동은 어느 데이터가 사용 중이고 업데이트되는지에 대한 히트 맵(heat map)을 생성하는 데이터를 제공할 수 있다. 사용되지 않거나 업데이트되지 않은 데이터는 아카이빙될 수 있다.
사이버네틱 엔그램(102, 104)은 운영 체제 커널 또는 라이브 FUSE(filesystem in userspace)로 로드될 수 있는 파일 시스템 드라이버로 구현될 수 있다. 사이버네틱 엔그램(102, 104)은 원본 데이터베이스의 복제 데이터베이스로 구현될 수 있다. 데이터베이스 쿼리는 복제 데이터베이스로 전달될 수 있으며, 복제 데이터베이스가 데이터를 가질 때 복제 데이터베이스는 데이터를 제공할 수 있다. 복제 데이터베이스가 데이터를 갖지 않을 때, 복제 데이터베이스는 원본 데이터베이스에게 쿼리하고 출력을 생성할 수 있다.
일부 실시예에서, 복수의 컴퓨팅 장치에 걸친 사이버네틱 엔그램 구현을 위해, 가중치의 탈중앙집중화된 저장은 모든 컴퓨팅 장치에서 사용 가능한 모든 여유 디스크 공간을 만들 수 있고 디스크 공간을 공유로 제공할 수 있다. 디스크 공간은 공유, 데이터 저장소 또는 블록 장치로 표시될 수 있다.
일부 실시예에서, 사이버네틱 엔그램(102, 104)은 단일 컴퓨팅 장치 상에서 구현될 수 있다. 단일 컴퓨팅 장치 구현은 사이버네틱 엔그램(102, 104)의 신경망에 의해 제공되는 인공 지능의 모든 이점을 달성할 수 있다. 그러나 블록체인 가중치 저장의 이점은 실현되지 않을 수 있다.
데이터 블록(304)에 대한 가중치는 복수의 컴퓨팅 장치에 걸쳐 중복 저장될 수 있으므로 일부 컴퓨팅 장치가 사용 불가일 때 데이터 블록(304)에 여전히 액세스할 수 있다. 따라서, 복수의 컴퓨팅 장치에서 사이버네틱 엔그램(102, 104)을 구현하면 데이터의 중복 제거가 가능한데, 이는 각각의 컴퓨팅 장치는 모든 데이터를 저장할 필요가 없을 수 있기 때문이다. 그러나 데이터 블록(304)에 대한 가중치는 삭제 코드를 위해 중복으로 저장될 수 있다. 따라서 삭제 코드와 중복 제거 간에 균형이 있을 수 있다. 데이터 업데이트는 xdelta 또는 rsync 유형 프로토콜을 사용하여 분산 가중치 메모리에서 차이를 복원할 때 이진 차이를 전달할 수 있다. 따라서, 데이터 블록(304)에 대해 저장된 모든 가중치에 대해, 다음 엔트리는 업데이트에 의해 야기된 가중치의 차이만을 포함할 수 있다. 가중치 및 가중치 차이의 각각의 인스턴스는 데이터 블록(304)을 포함하는 파일의 히스토리를 생성하기 위해 타임 스탬프될 수 있다.
데이터 블록에 대한 메타데이터는 파일의 통계로 짜여질 수 있다. 예를 들어 파일이 마지막으로 수정된 시간. 이는 메타데이터가 항상 신뢰되지 않을 수 있는 운영 체제 커널에 의존할 수 있기 때문에 키 입력(302)에 포함되지 않을 수 있는 메타데이터의 일부를 포함할 수 있다. 메타데이터는 사이버네틱 엔그램(102, 104)의 신경망의 동작에 의해 생성될 수 있고, 그 메타데이터는 파일의 데이터 블록(304)에 대한 가중치에 포함될 수 있다.
메타데이터는 파일과 연관된 임의의 키 값을 검증 또는 유지하는 데 사용될 수 있다. 예를 들어, 권한이 있는 사용자를 특정하는 임의의 화이트리스트 라벨을 생성한다. 또는 예를 들어, 주의사항에 비밀 라벨을 지정함으로써 민감한 항목을 표시할 수 있다. 임의의 키 값을 파일과 연관시키기 위해 메타데이터를 사용하면 파일에 대한 결정적 액세스 제어를 구현하는 기능을 제공할 수 있다. 예를 들어, 비밀 파일의 내용은 항상 비밀 파일을 생성할 것이다. 또 다른 예에서, 연관은 쓰기 읽기 액세스 제어의 시행을 허용할 수 있다.
일부 실시예에서, 사이버네틱 엔그램은 파일시스템 오버레이 및/또는 파일시스템 필터로 구현될 수 있다.
일부 실시예에서, 가중치는 저널링을 제공할 수 있는 NILFS와 같은 로그 구조 파일시스템과 같은 중앙집중식 메모리 장치에 저장될 수 있다. 로그 구조 파일시스템은 가중치의 히스토리 추적을 위해 블록체인과 유사한 기능을 제공할 수 있다.
일부 실시예에서, 휴리스틱은 임의의 데이터 블록(304)의 상대 값이 될 수 있는 것과 파일의 상대 값이 될 수 있는 것을 평가하는 데 사용될 수 있다. 파일의 값 정보를 사용하여, 값 기반 액세스 제어를 구현할 수 있다. 예를 들어, 값은 신뢰 크레딧으로 측정될 수 있다. 데이터의 집합에 대한 신뢰 크레딧의 총 가치는 "x"일 수 있고 사용자 또는 프로세스는 일정 기간 동안 "y" 신뢰 크레딧을 할당받을 수 있다. 작업 및 데이터는 개별적으로 신뢰 크레딧 비용을 할당 받을 수 있으며, 작업의 각각의 구현 또는 데이터 액세스는 사용자 또는 프로세스의 신뢰 크레딧을 감소시킬 수 있다. 신뢰 크레딧의 잔액이 충분하지 않으면 사용자 또는 프로세스가 작업을 구현하거나 데이터에 액세스하지 못할 수 있다. 일부 실시예에서, 사용자 또는 프로세스는 더 높은 신뢰를 받는 사용자 또는 프로세스에 의해 신뢰 크레딧을 받을 수 있다. 그러나 신뢰 크레딧을 제공하면 더 높은 신뢰를 받는 사용자 또는 프로세스의 신뢰 크레딧 잔액이 줄어들 수 있다. 시간이 지남에 따라 신뢰 크레딧 잔액이 보충될 수 있다. 값 기반 액세스 제어의 일부 애플리케이션은 외부 장치 또는 네트워크 연결을 통한 과도한 데이터 다운로드를 방지하거나 데이터가 아닌 특정 양만 액세스할 수 있는 데이터 컬렉션에 대한 제한된 액세스를 제공하는 것일 수 있다. 값 기반 액세스 제어는 개별적으로 또는 기업 단위로 구현될 수 있으며, 기업이 이를 초과할 수 없는 신뢰 크레딧 잔고를 가질 수 있다. 값 기반 액세스 제어는 개별적으로 또는 공동으로 여러 사용자 또는 프로세스에 의한 데이터의 집합에 대한 부적절한 조작의 정량화를 허용할 수 있다.
도 2에 도시된 바와 같은 사이버네틱 엔그램(102, 104)은 자신이 나타내는 데이터 블록(304)을 액세스하기 위한 공식적인 방식 및 데이터 블록(304)을 변경하기 위한 변환 프로세스로 구성될 수 있다. 데이터 블록(304)에 대한 액세스 및 변경은 사이버네틱 엔그램(102, 104)의 액세스 및 변환 프로세스의 사용 없이 구현되지 않을 수 있다. 사이버네틱 엔그램(102, 104)은 또한 변환 프로세스 및 상기 변환 프로세스의 결과를 체크하도록 구성된 무결성 검증 프로세스로 구성될 수 있다. 사이버네틱 엔그램(102, 104)의 프로세스를 실행하려고 시도하는 사용자 및/또는 프로세스는 사이버네틱 엔그램(102, 104)에 의한 인가 체크의 대상이 될 수 있다.
사이버네틱 엔그램(102, 104)에 대한 키 입력(302)은 사용자의 식별, 요청된 변환 프로세스, 및 데이터 블록(304)의 메타데이터를 포함할 수 있는 다른 파라미터를 포함할 수 있다. 키 입력은, 사이버네틱 엔그램(102, 104)으로 제공, 사이버네틱 엔그램에 의해 검색, 및/또는 사이버네틱 엔그램에 의해 생성될 수 있다. 키 입력(302)이 변환 프로세스를 구성하고 데이터 블록(304)에 변환 프로세스를 실행하기 위한 사이버네틱 엔그램(102, 104)의 신경망, 가령, 데이터 블록에 대한 가중치를 업데이트하는 도 2에 도시된 시퀀싱 신경망(202)으로 제공될 수 있다. 키 입력(302)은 변환 프로세스가 올바른 일을 하고 변환 프로세스의 검증성을 체크함을 보장하기 위해 무결성 검증 프로세스, 가령, 도 2에 도시된 검증 신경망(208)를 실행하기 위한 사이버네틱 엔그램(102, 104)의 신경망으로 제공될 수 있다. 키 입력(304)은 사용자 및/또는 프로세스가 데이터 블록(304)에 대한 변환 프로세스를 액세스 및/또는 요청할 권한을 갖는지 여부를 체크하기 위해, 사용자 및/또는 프로세스 인가를 실행하기 위한 사이버네틱 엔그램의 신경망, 가령, 도 2에 도시된 인가 신경망(210)으로 제공될 수 있다.
사이버네틱 엔그램(102, 104)은 메모리, 예를 들어 도 2에 도시된 바와 같은 신경망 메모리 뱅크(206)로 구성된 신경망을 더 포함할 수 있다. 일부 실시예에서, 신경망 메모리 뱅크(206)는 신경 프로그래머 인터프리터(NPI: neural programmer interpreter), 신경 튜링 머신(NTM: neural Turing machine), 및/또는 NPI와 NTM의 조합으로서 구성될 수 있다. 일부 실시예에서, 신경망 메모리 뱅크(206)는 기계가 2개의 스택이 부착된 푸시다운 오토마타인 한 컨텍스트 감지 언어를 구문 분석할 수 있는 임의의 기계로 구성될 수 있다. 신경망 메모리 뱅크(206)는 메인 메모리와 같이 소량의 데이터를 저장하도록 구성될 수 있거나 캐시는 프로세서에 의한 액세스를 위해 소량의 데이터를 저장할 수 있다. 신경망 메모리 뱅크(206)에 저장된 데이터는 연관된 데이터 블록(304)에 대한 가중치를 포함할 수 있다. 신경망 메모리 뱅크(206)는 도 1 및 4에 도시된 바와 같이, 사이버네틱 엔그램(102)과 연관된 데이터 블록(304)을 나타내는 사이버네틱 엔그램 씩 포레스트(100)에 대한 참조(400)를 저장하도록 구성될 수 있다.
시퀀싱 신경망(202)은 장단기 메모리(LSTM) 포레스트 및 재귀 신경망(RNN) 포레스트를 포함할 수 있다. 신경망 포레스트 중 어느 것이 사이버네틱 엔그램(102, 104)에 의해 사용되는지는 동적 선택일 수 있다. 어떤 경우에는, RNN이 더 빨리 학습할 수 있기 때문에 더 잘 작동할 수 있다. 또한, RNN은 외부 참조(400)를 사이버네틱 엔그램 두꺼운 포리스트(100) 또는 신경망 내의 위치로 출력하도록 구성될 수 있는 사이버네틱 엔그램(102, 104)에 필요하지 않을 수 있는 LSTM만큼 좋은 메모리 용량을 갖지 않을 수 있다. 사이버네틱 엔그램(104)이 i-노드 또는 외부 참조(400)를 출력하도록 구성될 때, 이전 i-노드 또는 외부 참조(400)를 기억할 필요가 없을 수 있다. 그러나, LSTM이 변환되기 전에 이전으로부터 가중치를 기억함으로써 데이터 블록(304)의 이전 버전을 기억할 때 사용에 더 적합할 수 있다.
사이버네틱 엔그램(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)을 구축할 수 있다.
사이버네틱 엔그램(102, 104)은 다양한 기능을 위해 구성된 임의의 수의 신경망을 결합할 수 있다. 일부 실시예에서, 사이버네틱 엔그램(102, 104)은 가변 크기의 원시 저장소로 구성될 수 있다. 신경망 메모리 뱅크(206)의 구성은 사이버네틱 엔그램(102, 104)을 구성하는 선택의 결과일 수 있다. 사이버네틱 엔그램(102, 104)은 서로 다른 유형 간에 변환할 수 있다. 예를 들어, 유형 1은 변환과 저장의 결합일 수 있다. 신경망 메모리 뱅크(206)는 2개 이상의 은닉 층을 갖는 희소 자동 인코더 신경망으로서 구성될 수 있다. 신경망 메모리 뱅크(206)는 자신의 출력이 주어지는 입력과 동일함을 보장하도록 구성될 수 있다. 신경망 메모리 뱅크(206)는 입력 신경망보다 큰 신경망 및/또는 플랫 메모리 뱅크의 집합에 대한 확률 분포로서 데이터를 저장하도록 구성될 수 있다. 뉴런의 수는 유연할 수 있으며 예상되는 출력이 무엇이든 생성되도록 증가할 수 있다. 예를 들어, 은닉층의 20개의 뉴런에 3비트의 정보가 저장될 수 있다. 희소 자동 인코더 신경망은 매우 유사한 입력이 동일한 출력 또는 서로의 출력을 생성하지 않도록 하는 데 유용할 수 있으며 사용되는 뉴런의 수에 따라 정확도가 향상될 수 있다.
다른 예에서, 유형 2는 검증과 저장의 결합일 수 있다. 검증을 위해 주성분 분석이 사용할 수 있으며 입력 뉴런이 은닉 뉴런보다 많은 신경망을 사용할 수 있다. 그러나 출력은 희소 자동 인코더 신경망과 마찬가지로 입력과 동일할 것으로 예상할 수 있다. Clark-Wilson 모델, Bell-LaPadula 모델, Biba Integrity 모델 등과 같은 다른 검증 기술이 검증 신경망(208)에 의해 학습될 수 있다.
신경망 메모리 뱅크(206)는, 저장된 데이터는 i-노드인지 여부를 나타낼 수 있는, 자신이 학습했을 수 있는 플래그를 포함할 수 있으며, 이는 사이버네틱 엔그램(102, 104) 내부의 참조(400)이거나, 또 다른 사이버네틱 엔그램(102, 104)이 나타낼 수 있는 일부 데이터의 참조(400)임을 의미한다.
일부 실시예에서, 하나의 데이터 블록(304)일 수 있는 데이터 블록(304)의 집합과 연관된 모든 데이터가 사이버네틱 엔그램(102, 104)에 의해 저장된 가중치에 의해 나타내어질 수 있다. 데이터에 대한 쿼리가 데이터의 출력을 도출할 수 있다. 일부 실시예에서, 데이터 블록(304)의 집합과 연관된 모든 데이터는 사이버네틱 엔그램(102, 104)의 크기 제한으로 인해 하나의 사이버네틱 엔그램(102, 104)에 상주하지 않을 수 있다. 초기 키 입력(302)이 하나 이상의 사이버네틱 엔그램(102, 104)의 메모리, 가령, 쿼리의 데이터를나타낼 수 있는 사이버네틱 엔그램 씩 포레스트(100)를 가질 수 있는 사이버네틱 엔그램(102, 104)에 입력될 수 있다. 쿼리의 데이터를 나타내는 사이버네틱 엔그램(102, 104)은 함께 링크될 수 있다. 데이터는 사이버네틱 엔그램 씩 포레스트(100) 및/또는 하나 이상의 사이버네틱 엔그램 씩 포레스트(100) 내 하나 이상의 사이버네틱 엔그램(102, 104)에 의해 표현될 수 있다. 단일 사이버네틱 엔그램(102, 104) 및/또는 사이버네틱 엔그램 씩 포레스트(100)에 의해 나타내기에 지나치게 큰 데이터의 경우, 복수의 링크된 사이버네틱 엔그램(102, 104) 및/또는 사이버네틱 엔그램 씩 포레스트(100)는 데이터를 나타내도록 사용될 수 있다. 일부 실시예에서, 사이버네틱 엔그램 씩 포레스트(100)의 링크된 사이버네틱 엔그램(102, 104)은 직렬로 링크될 수 있다. 일부 실시예에서, 사이버네틱 엔그램 씩 포레스트(100)의 링크된 사이버네틱 엔그램(102, 104)은 병렬로 링크될 수 있다. 일부 실시예에서, 링크된 사이버네틱 엔그램 씩 포레스트(100)는 직렬로 링크될 수 있다. 일부 실시예에서, 링크된 사이버네틱 엔그램 씩 포레스트(100)는 병렬로 링크될 수 있다.
읽기 및 쓰기는 임의의 유형의 원시 게이트에 입력한 다음 시퀀스를 생성하고 상기 시퀀스를 조작하기 위한 시퀀싱 신경망(202)의 LSTM 또는 RNN 포레스트를 얻을 수 있는 두 가지 예시적인 작업이다. 사이버네틱 엔그램(102, 104)을 설정하기 위한 유형 모드와 모든 제어 기능의 결과일 수 있는 것을 알아내기 위해 시퀀싱 신경망(202)과 신경망 메모리 뱅크(206) 간 의사결정 통신이 존재할 수 있다. 예를 들어, 의사결정 통신은 사이버네틱 엔그램(102, 104)이 읽기가 발생하도록 허용할 수 있는지, 또는 언제 업데이트가 발생해야 하는지, 또는 작업이 어떻게 발생할 수 있는지 등을 나타낼 수 있다.
신경망 메모리 뱅크(206)는 LSTM 신경망 게이트, 예를 들어, 도 2에 도시된 바와 같은 신경망 히스토리 게이트(204)를 더 포함할 수 있다. 신경망 히스토리 게이트(204)는 데이터에 대한 가중치에 대한 업데이트 이전에 존재했던 데이터에 대한 이전 가중치를 기억하도록 구성될 수 있다. 이는 신경망 히스토리 게이트(204)가 신경망 히스토리 게이트(204)의 이전 값을 기억할 수 있기 때문에 달성될 수 있다. LSTM 신경망 메모리 게이트(204)의 저장된 가중치는 데이터의 일관성을 유지하고 데이터의 이전 버전으로 되돌리는 능력을 제공할 수 있다.. 신경망 히스토리 게이트(204)에 의해 기억된 값은 결국 메모리 장치에 저장될 수 있다. 신경망 히스토리 게이트(204)가 새로운 값을 수락할 때, 이전 가중치 값은 예를 들어 블록체인과 같은 메모리 장치에 저장될 수 있다. 신경망 히스토리 게이트(204)의 깊이는 가변적일 수 있다. 신경망 히스토리 게이트(204)는 무엇을 잊어야 하는지 정확하게 파악할 수 있다. 신경망 히스토리 게이트(204)는 망각 게이트(forget gate)를 포함할 수 있고 무엇을 기억하고 무엇을 잊어야 하는지 알아낼 수 있다.
신경망 히스토리 게이트(204)로부터의 피드백은 시퀀싱 신경망(202)에 제공될 수 있다. 피드백은 시퀀싱 신경망(202)에 다음에 트리거할 기본 기능을 알릴 수 있다. 신경망 히스토리 게이트(204)는 데이터 블록(304)의 가중치에 저장된 것과 업데이트로서 요청되는 것 사이에 차이가 있음을 식별할 수 있다. 그 차이의 식별은 검증 신경망(208) 및/또는 원시 함수로 인코딩될 수 있는 다른 것에 의한 주성분 분석을 트리거할 수 있다. 예를 들어, 신경망 히스토리 게이트(204)에 의해 식별된 차이는 시퀀싱 신경망(202)이 쓰기 읽기 테스트를 구현하거나, 유형의 검증을 수행하거나, 데이터가 어떻게 변경되었을 수 있는지 식별하기 위한 그 밖의 다른 테스트를 수행하도록 트리거할 수 있다. 사이버네틱 엔그램(102, 104)은 데이터 블록(304) 버전의 히스토리를 가질 수 있다. 따라서, 사이버네틱 엔그램(102, 104)이 업데이트 요청에 대한 테스트를 수행할 때 사이버네틱 엔그램(102, 104)은 업데이트 요청 결과를 바로 이전 이상 버전을 포함할 수 있는 데이터 블록(304)의 버전의 히스토리와 비교할 수 있다. 사이버네틱 엔그램(102, 104)은 전체 히스토리로 업데이트 요청 결과를 비교하여, 히스토리 내 양태의 영속성 및 존재여부에 따라 데이터의 더 강하거나 더 약한 양태를 나타낼 수 있다.
사이버네틱 엔그램(102, 104)의 신경망이 더 많은 훈련 데이터와 데이터 측면에 대한 더 강한 감각을 가질 수 있기 때문에 데이터의 더 깊은 히스토리는 데이터에 더 강력한 자기 보호를 제공할 수 있다. 이와 같이, 데이터 블록(304) 버전의 히스토리와 비교하는 동안, 신경망은 데이터 블록(304)에 대한 변경, 특히 데이터 블록(304)에 대해 더 자주 경험되는 유형 외부의 변경이 바람직하지 않음을 학습할 수 있다. 따라서, 데이터 블록(304)에 대한 익숙하지 않은 변경은 바람직하지 않은 것으로 간주되어 허용되지 않을 수 있다.
예를 들어, 신경망은 완전히 구별될 수 있고, 이는 신경망 출력이 훈련될 때 그 출력에 대해 기울기 하강을 실행하는 것을 허용할 수 있다. 기울기 하강에 의해 신경망이 데이터 블록(304)의 중요한 측면을 강조하고 데이터 블록(304)의 중요하지 않은 측면을 잊게 할 수 있다. 예를 들어, 데이터 블록(304)의 값은 데이터 블록(304) 버전의 히스토리 전체에 걸쳐 지속적일 수 있는 데이터 블록(304) 크기의 중요한 측면에 종종 비교될 수 있기 때문에 중요하지 않을 수 있다.
사이버네틱 엔그램(102, 104)의 각각의 인스턴스는 도 2에 도시된 바와 같이, 적어도 게이트 풀(200), 시퀀싱 신경망(202), 신경망 메모리 뱅크(206), 신경망 히스토리 게이트(204), 검증 신경망(208) 및 인가 신경망(210) 내 읽기 및/또는 쓰기 원시 함수를 포함할 수 있다. 추가 신경망은 사이버네틱 엔그램(102, 104)의 구현을 위한 원하는 기능에 따라 사이버네틱 엔그램(102, 104)에 포함될 수 있다. LSTM, RNN, NPI와 같은 신경망은 가용 메모리가 이들의 작업을 수행하기 위한 스택이 연결된 신경망일 수 있다.
사이버네틱 엔그램(102, 104)에 대한 가중치의 버전의 히스토리를 로컬하게 저장하는 것에 추가로, 신경망 히스토리 게이트(204)는 어느 검증 프로세스가 사용되었는지, 어느 신경망이 사용되었는지, 어떤 변환이 구현되었는지, 어느 사용자 및/또는 프로세스가 데이터 블록(304)으로부터 판독 및/또는 써지는지, 어느 요청이 허용 및/또는 거부되는지, 변환 프로세스가 검증되었는지 여부 등의 히스토리를 유지할 수 있다.
일부 실시예에서, 시퀀싱된 원시 함수가 사이버네틱 엔그램(102, 104) 간에 전송될 수 있다. 전송 사이버네틱 엔그램(102, 104)은 원시 함수를 시퀀싱하여 수신 사이버네틱 엔그램(102, 104)이 시퀀싱된 원시 함수를 구현하고 올바른 키 입력(302)을 입력한 것에 응답하여, 의도된 결과, 가령, 특정 출력을 획득할 수 있다. 예를 들어, 시퀀싱된 원시 함수에 의해, 올바른 키 입력(302)을 갖는 시퀀싱된 원시 함수를 수신 및 구현하는 사이버네틱 엔그램(102, 104)이 한 번 실행될 수 있다. 원시 함수의 일회성 시퀀스는 예를 들어 데이터에 대한 일회성 액세스를 제공하기 위해 사용될 수 있으며, 데이터에 액세스할 때 시퀀싱된 원시 함수는 데이터를 삭제할 수 있다. 예시적인 사용이 인코딩된 방식으로 신용 카드 번호를 전송하여 디코딩된 신용 카드 번호를 액세스할 때 인코딩된 신용 카드 번호가 자체적으로 파괴되도록 하는 것일 수 있다.
일부 실시예에서, 키 입력(302)의 일부분은 수신 사이버네틱 엔그램(102, 104)이 시퀀싱된 원시 함수를 실행하고 의도된 결과를 획득할 수 있도록 공유될 수 있다. 일부 실시예에서, 수신자의 공개 키로 키 입력(302)의 공유되는 부분이 암호화 및/또는 출력이 암호화될 수 있고, 시퀀싱된 원시 함수를 성공적으로 구현하기 위해, 암호화된 키 입력(302) 및/또는 출력이 수신자의 개인 키를 이용해 해역될 수 있다. 일부 실시예에서, 사이버네틱 엔그램(102, 104)은 해역 엔진으로서 기능할 수 있고 키 입력(302)의 암호화된 부분은 키 입력(302)의 개인 키 부분으로 입력될 수 있다. 사이버네틱 엔그램(102, 104)은 키 입력의 해역 시 키 입력을 검증 및/또는 인가하고 시퀀싱된 원시 함수를 실행할 수 있다.
마찬가지로, 다양한 시퀀싱된 원시 함수는 복수의 사이버네틱 엔그램(102, 104) 간에 전송될 수 있고, 시퀀싱된 원시 함수의 실행은 분산 메모리, 가령, 블록체인 상의 데이터 블록(304)을 검색하고 데이터 블록(304)의 업데이트를 저장할 수 있다. 일부 실시예에서, 데이터 블록(304)과 관련하여 행해진 작업의 계산은 또한 분산 메모리로부터 검색되어 분산 메모리에 저장될 수 있다. 일부 실시예에서, 조치의 계산은 데이터 블록(304)에 대한 가중치에 저장될 수 있다. 일부 실시예에서, 조치의 계산은 데이터 블록(304)에 대한 가중치와 별도로 저장될 수 있다. 일부 실시예에서, 데이터 블록(304)은 분산 메모리 상에서 공유되지 않지만, 조치의 계산은 분산 메모리에 별도로 저장될 수 있다. 예시적인 구현은 스마트 계약을 구성하는 데이터가 안전하게 공유되고 추적될 수 있는 네트워크를 통해 공유되는 스마트 계약일 수 있다.
다양한 양태(비제한적 예를 들면, 도 1 내지 도 5를 참조하여 위에서 설명된 양태)는 컴퓨팅 장치를 포함하는 매우 다양한 컴퓨팅 시스템에서 구현될 수 있다. 도 6은 다양한 양태들과 함께 사용하기에 적합한 컴퓨팅 장치(600)를 포함하는 시스템을 예시한다. 컴퓨팅 장치(600)는 프로세서(604), 메모리(606), 통신 인터페이스(608), 저장 메모리 인터페이스(610), 전력 관리자(618), 및 클록 제어기(620)를 갖는 시스템 온 칩(SoC)(602)을 포함할 수 있다. 컴퓨팅 장치(600)는 통신 구성요소(612), 가령, 유선 또는 무선 모뎀, 저장 메모리(614), 및 무선 통신 링크를 설정하기 위한 안테나(616)를 더 포함할 수 있다. 프로세서(604)는 다양한 프로세싱 장치, 가령, 다수의 프로세서 코어 중 임의의 것을 포함할 수 있다.
"시스템-온-칩"(SoC)이라는 용어는 본 명세서에서 인터커넥트된 전자 회로의 세트, 비제한적 예를 들면, 처리 장치, 메모리, 및 통신 인터페이스의 세트를 지칭하도록 사용된다. 처리 장치는 다양한 유형의 프로세서(604) 및 프로세서 코어, 가령, 범용 프로세서, 중앙 처리장치(CPU), 디지털 신호 프로세서(DSP), 그래픽 처리 장치(GPU), 가속 처리 장치(APU), 컴퓨팅 장치의 특정 구성요소의 서브시스템 프로세서, 가령, 카메라 서브시스템을 위한 이미지 프로세서 또는 디스플레이를 위한 디스플레이 프로세서, 보조 프로세서, 싱글-코어 프로세서 및 멀티코어 프로세서를 포함할 수 있다. 처리 장치는 그 밖의 다른 하드웨어 및 하드웨어 조합, 가령, 현장 프로그램 가능 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 그 밖의 다른 프로그램 가능 로직 장치, 이산 게이트 로직, 트랜지스터 로직, 성능 모니터링 하드웨어, 와치독 하드웨어 및 타임 레퍼런스를 더 구현할 수 있다. 집적 회로는 집적 회로의 구성요소가 단일 종 반도체 물질, 가령, 실리콘 상에 위치하도록 구성될 수 있다.
SoC(602)는 하나 이상의 프로세서(604)를 포함할 수 있다. 컴퓨팅 장치(600)는 둘 이상의 SoC(602)를 포함할 수 있고, 이에 의해 프로세서(604) 및 프로세서 코어의 수를 증가시킨다. 컴퓨팅 장치(600)는 또한 SoC(602)와 연관되지 않은 프로세서(604)를 포함할 수 있다. 개별 프로세서(604)는 도 7을 참조하여 이하에서 기재될 멀티코어 프로세서일 수 있다. 프로세서(604)는 컴퓨팅 장치(600)의 다른 프로세서(604)와 동일하거나 상이할 수 있는 특정 목적을 위해 각각 구성될 수 있다. 하나 이상의 프로세서(604) 및 동일하거나 상이한 구성의 프로세서 코어는 함께 그룹화될 수 있다. 프로세서(604) 또는 프로세서 코어의 그룹은 멀티-프로세서 클러스터로 지칭될 수 있다.
SoC(602)의 메모리(606)는 프로세서(604)에 의한 액세스를 위한 프로세서 실행 가능 코드 및 데이터를 저장하도록 구성된 휘발성 또는 비휘발성 메모리일 수 있다. 컴퓨팅 장치(600) 및/또는 SoC(602)는 다양한 목적으로 구성된 하나 이상의 메모리(606)를 포함할 수 있다. 하나 이상의 메모리(606)는 랜덤 액세스 메모리(RAM) 또는 메인 메모리, 또는 캐시 메모리와 같은 휘발성 메모리를 포함할 수 있다. 이들 메모리(606)는 데이터 센서 또는 서브시스템으로부터 수신된 제한된 양의 데이터, 다양한 요인에 기초하여 미래 액세스를 기대하여 비휘발성 메모리로부터 요청되고 비휘발성 메모리로 메모리(606)로 로딩된 데이터 및/또는 프로세서-실행 코드 명령, 및/또는 프로세서(604)에 의해 생성되고 미래의 빠른 액세스를 위해 비휘발성 메모리에 저장되지 않은 임시 저장된 중간 처리 데이터 및/또는 프로세서-실행 코드 명령을 임시로 보유하도록 구성될 수 있다.
메모리(606)는 프로세서(604) 중 하나 이상에 의해 액세스되기 위해, 또 다른 메모리 장치로부터 메모리(606), 가령, 또 다른 메모리(606) 또는 저장 메모리(614)로 로딩된 데이터 및 프로세서-실행 코드를 저장하도록 구성될 수 있다. 메모리(606)에 로드된 데이터 또는 프로세서-실행 코드는 프로세서(604)에 의한 함수의 실행에 응답하여 로드될 수 있다. 함수의 실행에 응답하여, 데이터 또는 프로세서-실행 코드를 메모리(606)에 로딩하는 것은 요청된 데이터 또는 프로세서-실행 코드가 메모리(606)에 위치하지 않기 때문에 실패한, 또는 "미스(miss)"인 메모리(606)로의 메모리 액세스 요청으로부터 도출할 수 있다. 미스에 응답하여, 또 다른 메모리(606) 또는 저장 메모리(614)로의 메모리 액세스 요청은 요청된 데이터 또는 프로세서-실행 코드를 또 다른 메모리(606) 또는 저장 메모리(614)로부터 메모리(606)로 로딩하도록 만들어질 수 있다. 함수의 실행에 응답하여 데이터 또는 프로세서-실행 코드를 메모리(606)로 로딩하는 것이 메모리 액세스 요청으로부터 또 다른 메모리(606) 또는 저장 메모리(614)로 도출될 수 있으며, 데이터 또는 프로세서-실행 코드가 차후 액세스를 위해 메모리(606)로 로딩될 수 있다.
저장 메모리 인터페이스(610)와 저장 메모리(614)는 컴퓨팅 장치(600)가 데이터 및 프로세서 실행가능 코드를 비휘발성 저장 매체 상에 저장하도록 조화롭게 작동할 수 있다. 저장 메모리(614)는 저장 메모리(614)가 프로세서(604) 중 하나 이상에 의한 액세스를 위해 데이터 또는 프로세서 실행 가능 코드를 저장할 수 있는 메모리(606)의 양태와 매우 유사하게 구성될 수 있다. 저장 메모리(614)는 비휘발성이며 컴퓨팅 장치(600)의 전원이 차단된 후에도 정보를 유지할 수 있다. 전원이 다시 켜지고 컴퓨팅 장치(600)가 재부팅되면, 저장 메모리(614)에 저장된 정보는 컴퓨팅 장치(600)에 의해 이용 가능할 수 있다. 저장 메모리 인터페이스(610)는 저장 메모리(614)에 대한 액세스를 제어하고 프로세서(604)가 저장 메모리(614)로부터 데이터를 읽고 데이터를 기록할 수 있게 한다.
전력 관리자(618)는 컴퓨팅 장치(600)의 구성요소들, 가령, 프로세서(604), 메모리(606), 통신 인터페이스(608), 저장 메모리 인터페이스(610), 클록 제어기(620), 통신 컴포넌트(612), 저장 메모리(614), 및 안테나(616) 중 임의의 것으로 전력을 분배 및 전력 양을 제어하도록 구성될 수 있다. 전력 관리자(618)는 컴퓨팅 장치(600)의 임의의 구성요소 및 컴퓨팅 장치(600)의 전력 상태를 제어하도록 구성될 수 있다. 일부 양태에서, 전력 관리자(618)는 SoC(602) 상의 개별 회로 구성요소, 가령, 특수 목적 회로, 펌웨어 및/또는 소프트웨어로 구성된 전용 프로세서, 또는 펌웨어 및/또는 소프트웨어로 구성된 전용 회로와 전용 프로세서의 조합으로 구현될 수 있다.
클록 제어기(620)는 컴퓨팅 장치(600)의 자원 구성요소, 가령, 프로세서(604), 통신 인터페이스(608), 저장 메모리 인터페이스(610), 전력 관리자(618), 및 통신 구성요소(612)로 제공되는 클록 모드, 가령, 수정 발진기의 발진 주파수 및/또는 게이트 신호를 제어하도록 구성될 수 있다. 클록 제어기(620)는 컴퓨팅 장치(600)의 구성요소에 컴퓨팅 장치(600)의 구성요소의 회로에 의한 실행을 조정하도록 구성된 발진 신호를 제공하도록 구성될 수 있다. 일부 양태에서, 클록 제어기(620)는 SoC(602) 상의 개별 회로 구성요소, 가령, 특수 목적 회로, 펌웨어 및/또는 소프트웨어로 구성된 전용 프로세서, 또는 펌웨어 및/또는 소프트웨어로 구성된 전용 회로와 전용 프로세서의 조합으로 구현될 수 있다.
컴퓨팅 장치(600) 및/또는 SoC(602)의 구성요소 중 일부 또는 전부는 다양한 양태의 기능을 여전히 제공하면서 상이하게 배열 및/또는 결합될 수 있다. 컴퓨팅 장치(600)는 각각의 구성 요소 중 하나로 제한되지 않고, 각각의 구성요소의 복수의 인스턴스가 컴퓨팅 장치(600)의 다양한 구성에 포함될 수 있다.
다양한 양태(도 1 내지 도 6을 참조하여 앞서 설명된 양태를 포함하지만 이에 제한되지 않음)는 다양한 프로세서를 비롯한 다양한 컴퓨팅 시스템에서 구현될 수 있다. 도 7은 하나의 양태를 구현하기에 적합한 컴퓨팅 장치의 구성요소드릉ㄹ 도시한다. 프로세서(604)는 예를 들어 CPU 및 다양한 하드웨어 가속기, 가령, GPU, DSP, 및 APU, 서브시스템 프로세서 등을 포함하는 복수의 프로세서 유형을 포함할 수 있다. 프로세서(604)는 또한 특수화된 기능 세트를 구현하도록 구성된 맞춤형 처리 하드웨어 및/또는 범용 하드웨어를 포함할 수 있는 커스텀 하드웨어 가속기를 포함할 수 있다. 프로세서(604)는 임의의 수의 프로세서 코어(700, 701, 702, 703)를 포함할 수 있다. 다중 프로세서 코어(700, 701, 702, 703)를 갖는 프로세서(604)는 멀티코어 프로세서로 지칭될 수 있다.
프로세서(604)는 복수의 동종 또는 이종 프로세서 코어(700, 701, 702, 703)를 가질 수 있다. 동종 프로세서는 복수의 동종 프로세서 코어를 포함할 수 있다. 프로세서 코어(700, 701, 702, 703)는 프로세서(604)의 프로세서 코어(700, 701, 702, 703)가 동일한 목적을 위해 구성될 수 있고 동일하거나 유사한 성능 특성을 가질 수 있다는 점에서 동종일 수 있다. 예를 들어, 프로세서(604)는 범용 프로세서일 수 있고, 프로세서 코어(700, 701, 702, 703)는 동종 범용 프로세서 코어일 수 있다. 프로세서(604)는 GPU 또는 DSP일 수 있고, 프로세서 코어(700, 701, 702, 703)는 각각 동종 그래픽 프로세서 코어 또는 디지털 신호 프로세서 코어일 수 있다. 프로세서(604)는 동종 프로세서 코어(700, 701, 702, 703)를 갖는 맞춤형 하드웨어 가속기일 수 있다.
이종 프로세서는 복수의 이종 프로세서 코어를 포함할 수 있다. 프로세서 코어(700, 701, 702, 703)는 프로세서(604)의 프로세서 코어(700, 701, 702, 703)가 상이한 목적 및/또는 상이한 성능 특성을 갖도록 구성될 수 있다는 점에서 이종일 수 있다. 이러한 이종 프로세서 코어의 이종성은 상이한 명령 세트 아키텍처, 파이프라인, 작동 주파수 등을 포함할 수 있다. 이러한 이종 프로세서 코어의 예로는 더 느린 저전력 프로세서 코어는 더 강력하고 전력 소모가 많은 프로세서 코어와 결합되는 "big.LITTLE" 아키텍처로 알려진 것을 포함할 수 있다. 유사한 양태에서, SoC(예를 들어, 도 6의 SoC(602))는 임의의 수의 동종 또는 이종 프로세서(604)를 포함할 수 있다. 다양한 양태에서, 프로세서 코어(700, 701, 702, 703) 모두 이종 프로세서일 필요는 없는데, 이종 프로세서가 적어도 하나의 이종 프로세서 코어를 포함하는 프로세서 코어(700, 701, 702, 703)의 임의의 조합을 포함할 수 있기 때문이다.
프로세서(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)를 참조하여 본 명세서에 기재된 휘발성 메모리를 포함한다.
프로세서(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)를 참조하여 본 명세서에 기재된 휘발성 메모리를 포함할 수 있다.
프로세서(604)는 프로세서(604)의 프로세서 코어(700, 701, 702, 703)에 의한 읽기 및/또는 쓰기 액세스에 전용화될 수 있는 공유 프로세서 캐시 메모리(730)를 포함할 수 있다. 공유 프로세서 캐시(730)는 데이터 및/또는 명령을 저장할 수 있고, 저장된 데이터 및/또는 명령을 프로세서 코어(700, 701, 702, 703)에 의한 실행에서 사용되기 위해 프로세서 코어(700, 701, 702, 703)에 의해 이용 가능하게 만들 수 있다. 공유 프로세서 캐시(730)는 또한 프로세서(604)로 입력 및/또는 이로부터 출력되는 데이터 및/또는 명령을 위한 버퍼로서 기능할 수 있다. 공유 캐시(730)는 도 6의 메모리(606)를 참조하여 본 명세서에 기재된 휘발성 메모리를 포함할 수 있다.
다중 프로세서(604)는 다중 프로세서(604)의 프로세서 코어(700, 701, 702, 703)에 의한 읽기 및/또는 쓰기 액세스 전용일 수 있는 공유 시스템 캐시 메모리(740)에 액세스할 수 있다. 공유 시스템 캐시(740)는 데이터 및/또는 명령을 저장할 수 있고, 저장된 데이터 및/또는 명령을 프로세서 코어(700, 701, 702, 703)에 의한 실행에서 사용되기 위해 프로세서 코어(700, 701, 702, 703)에 의해 이용 가능하게 만들 수 있다. 공유 시스템 캐시(740)는 또한 다중 프로세서(604)로 입력 및/또는 이로부터 출력되는 데이터 및/또는 명령을 위한 버퍼로서 기능할 수 있다. 공유 시스템 캐시(740)는 도 6의 메모리(606)를 참조하여 본 명세서에 기재된 휘발성 메모리를 포함할 수 있다.
도 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의 그룹). 설명의 편의를 위해 본 명세서의 예는 4개의 프로세서 코어(700, 701, 702, 703), 4개의 개인 프로세서 코어 캐시(710, 712, 714, 716), 2개의 프로세서 코어 그룹(700, 701, 702, 703), 및 도 7에 도시된 공유 프로세서 코어 캐시(720, 722)를 포함한다. 그러나 도 7에 도시되고 본 명세서에 기재된 4개의 프로세서 코어(700, 701, 702, 703), 4개의 개인 프로세서 코어 캐시(710, 712, 714, 716), 2개의 프로세서 코어 그룹(700, 701, 702, 703) 및 공유 프로세서 코어 캐시(720 , 722)는 단지 예로서 제공되고 4개의 지정된 개인 프로세서 코어 캐시 및 2개의 지정된 공유 프로세서 코어 캐시(720, 722)를 갖는 4-코어 코어 프로세서 시스템으로 다양한 양태를 제한하는 것을 의미하지 않는다. 컴퓨팅 장치(600) , SoC(602) 또는 프로세서(604)는 개별적으로 또는 조합하여 4개의 프로세서 코어(700, 701, 702, 703) 및 개인 프로세서 코어 캐시(710, 712, 714, 716) 및 2개의 공유 프로세서 코어 캐시(720, 722)보다 적거나 더 많이 포함할 수 있다.
다양한 양태에서, 프로세서 코어(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)에 로드될 수 있다. 다양한 양태에서, 캐시 메모리(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) 및/또는 그 밖의 다른 메모리로 추출되는 데이터 및/또는 명령을 쓰는 것을 포함할 수 있다.
참조의 편의를 위해, "하드웨어 가속기", "맞춤형 하드웨어 가속기", "멀티코어 프로세서", "프로세서" 및 "프로세서 코어"라는 용어는 본 명세서에서 상호교환적으로 사용될 수 있다. 예시된 컴퓨팅 장치 및 그 다양한 구성요소에 대한 본 명세서의 설명은 단지 예시적인 것이며 제한적인 것이 아니다. 예시된 컴퓨팅 장치의 구성요소들 중 몇몇은 가변적으로 구성되고, 결합되고, 분리될 수 있다. 구성요소들 중 몇몇은 더 많거나 더 적은 수로 포함될 수 있으며 SoC 내에서 다르게 위치 및 연결되거나 SoC와 분리될 수 있다.
다양한 양태(도 1 내지 7을 참조하여 앞서 기재된 양태를 포함하지만 이에 제한되지 않음)는 다양한 컴퓨팅 시스템, 가령, 모바일 컴퓨팅 장치에서 구현될 수 있으며, 이의 예가 도 8에 도시된 다양한 양태와 함께 사용되기에 적합하다. 모바일 컴퓨팅 장치(800)는 터치스크린 제어기(804) 및 내부 메모리(806)에 연결된 프로세서(802)를 포함할 수 있다. 프로세서(802)는 일반 또는 특정 처리 작업을 위해 지정된 하나 이상의 멀티코어 집적 회로일 수 있다. 내부 메모리(806)는 휘발성 또는 비휘발성 메모리일 수 있고, 보안 및/또는 암호화된 메모리, 비보안 및/또는 비암호화 메모리, 또는 이들의 임의의 조합일 수도 있다. 활용할 수 있는 메모리 유형의 비제한적 예로는 DDR, LPDDR, GDDR, WIDEIO, RAM, SRAM, DRAM, P-RAM, R-RAM, M-RAM, STT-RAM 및 임베디드 DRAM이 있다. 터치스크린 제어기(804) 및 프로세서(802)는 또한 터치스크린 패널(812), 가령, 저항성-감지 터치스크린, 정전용량 감지 터치스크린, 적외선 감지 터치스크린 등에 결합될 수 있다. 또한, 컴퓨팅 장치(800)의 디스플레이는 터치 스크린 기능을 가질 필요는 없다.
모바일 컴퓨팅 장치(800)는 서로 및/또는 프로세서(802)와의 송수신 통신을 위해 하나 이상의 무선 신호 트랜시버(808)(예를 들어, 피넛(Peanut), 블루투스(Bluetooth), 지그비(ZigBee), Wi-Fi, RF 라디오) 및 안테나(810)를 가질 수 있다. 트랜시버(808) 및 안테나(810)는 다양한 무선 전송 프로토콜 스택 및 인터페이스를 구현하기 위해 위에서 언급된 회로와 함께 사용될 수 있다. 모바일 컴퓨팅 장치(800)는 셀룰러 네트워크를 통한 통신을 가능하게 하고 프로세서에 결합되는 셀룰러 네트워크 무선 모뎀 칩(816)을 포함할 수 있다.
모바일 컴퓨팅 장치(800)는 프로세서(802)에 연결된 주변 장치 연결 인터페이스(818)를 포함할 수 있다. 주변 장치 연결 인터페이스(818)는 하나의 유형의 연결을 수락하도록 특이적으로 구성되거나, 다양한 유형의 물리 및 통신 연결, 일반적인 또는 개인 연결, 가령, Universal Serial Bus (USB), FireWire, Thunderbolt, 또는 PCIe을 수락하도록 구성될 수 있다.주변 장치 연결 인터페이스(818)는 또한 유사하게 구성된 주변 장치 연결 포트(도시되지 않음)에 연결될 수 있다.
모바일 컴퓨팅 장치(800)는 또한 오디오 출력을 제공하기 위한 스피커(814)를 포함할 수 있다. 모바일 컴퓨팅 장치(800)는 또한 본 명세서에 기재된 구성요소 중 전부 또는 일부를 포함하기 위한 플라스틱, 금속, 또는 재료의 조합으로 구성된 하우징(820)을 포함할 수 있다. 모바일 컴퓨팅 장치(800)는 일회용 또는 재충전 가능한 배터리와 같은 프로세서(802)에 연결된 전원(822)을 포함할 수 있다. 재충전 가능한 배터리는 또한 모바일 컴퓨팅 장치(800) 외부의 소스로부터 충전 전류를 수신하기 위해 주변 장치 연결 포트에 결합될 수 있다. 모바일 컴퓨팅 장치(800)는 또한 사용자 입력을 수신하기 위한 물리적 버튼(824)을 포함할 수 있다. 모바일 컴퓨팅 장치(800)는 또한 모바일 컴퓨팅 장치(800)를 켜고 끄기 위한 전원 버튼(826)을 포함할 수 있다.
다양한 양태(도 1 내지 7을 참조하여 앞서 기재된 양태를 포함하지만 이에 제한되지 않음)는 다양한 컴퓨팅 시스템, 가령, 랩톱 컴퓨터(900)에서 구현될 수 있으며, 이의 예가 도 9에 도시된 다양한 양태와 함께 사용되기에 적합하다. 많은 랩톱 컴퓨터는 컴퓨터의 포인팅 장치 역할을 하는 터치패드 터치 표면(917)을 포함하므로 앞서 기재된 터치 스크린 디스플레이가 장착된 컴퓨팅 장치에서 구현되는 것과 유사한 드래그, 스크롤 및 플릭 제스처를 수신할 수 있다. 랩톱 컴퓨터(900)는 일반적으로 휘발성 메모리(912) 및 플래시 메모리의 디스크 드라이브(913)와 같은 대용량 비휘발성 메모리에 연결된 프로세서(911)를 포함할 것이다. 추가적으로, 컴퓨터(900)는 무선 데이터 링크 및/또는 프로세서(911)에 연결된 셀룰러 전화 트랜시버(916)에 연결될 수 있는 전자기 복사를 송수신하기 위한 하나 이상의 안테나(908)를 가질 수 있다. 컴퓨터(900)는 또한 프로세서(911)에 연결된 플로피 디스크 드라이브(914) 및 콤팩트 디스크(CD) 드라이브(915)를 더 포함할 수 있다. 노트북 구성에서, 컴퓨터 하우징은 터치패드(917), 키보드(918), 및 프로세서(911)에 모두 결합된 디스플레이(919)를 포함한다. 컴퓨팅 장치의 또 다른 구성은 잘 알려진 바와 같이 (예를 들어, USB 입력을 통해) 프로세서에 결합된 컴퓨터 마우스 또는 트랙볼을 포함할 수 있으며, 이는 또한 다양한 양태와 함께 사용될 수 있다.
다양한 양태(도 1 내지 도 7을 참조하여 앞서 기재된 양태를 포함하지만 이에 제한되지 않음)는 또한 고정 컴퓨팅 시스템, 가령, 다양한 상용화된 서버 중 임의의 것으로 구현될 수 있다. 예시적인 서버(1000)가 도 10에 도시되어 있다. 이러한 서버(1000)는 일반적으로 휘발성 메모리(1002) 및 디스크 드라이브(1004)와 같은 대용량 비휘발성 메모리에 연결된 하나 이상의 멀티코어 프로세서 어셈블리(1001)를 포함한다. 도 10에 도시된 바와 같이, 멀티코어 프로세서 어셈블리(1001)는 어셈블리의 랙에 삽입함으로써 서버(1000)에 추가될 수 있다. 서버(1000)는 또한 프로세서(1001)에 연결된 플로피 디스크 드라이브, 콤팩트 디스크(CD) 또는 디지털 다목적 디스크(DVD) 디스크 드라이브(1006)를 포함할 수 있다. 서버(1000)는 또한 네트워크(1005), 가령, 다른 브로드캐스트 시스템 컴퓨터 및 서버, 인터넷, 로컬 영역 네트워크, 공중 교환 전화망, 및/또는 셀 데이터 네트워크(가령, CDMA, TDMA, GSM, PCS, 3G, 4G, LTE 또는 그 밖의 다른 임의의 유형의 셀룰러 데이터 망)과의 네트워크 인터페이스 연결을 확립하기 위해 멀티코어 프로세서 조립체(1001)에 연결되는 네트워크 액세스 포트(1003)를 더 포함할 수 있다.
도 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)에서 실행되는 소프트웨어에서, 범용 하드웨어에서, 또는 소프트웨어 구성 프로세서와 전용 하드웨어, 가령, 그 밖의 다른 개별 구성요소를 포함하는 사이버네틱 엔그램 활성화 시스템 내 소프트웨어를 실행하는 프로세서, 및 다양한 메모리/캐시 제어기로 구현될 수 있다. 다양한 실시예에서 가능하게 된 대안적인 구성을 포함하기 위해, 방법(1100)을 구현하는 하드웨어는 여기에서 "사이버네틱 엔그램 장치"로 지칭된다.
블록(1102)에서, 사이버네틱 엔그램 장치는 데이터 블록(예를 들어, 도 3 및 도 5의 데이터 블록(304))을 수신할 수 있다. 일부 실시예에서, 데이터 블록은 이전에 학습되지 않은 데이터 블록일 수 있다. 다시 말해, 데이터 블록은 데이터 블록을 수신하는 사이버네틱 엔그램에 의해 이전에 처리 및 학습되지 않았을 수 있으며, 사이버네틱 엔그램이 사용할 수 있는 이전에 저장된 키 입력(가령, 도 3-5의 키 입력(304)) 또는 가중치가 없을 수 있다. 일부 실시예에서, 데이터 블록은 이전에 학습된 데이터 블록일 수 있다. 다시 말해, 데이터 블록은 데이터 블록을 수신하는 사이버네틱 엔그램에 의해 사전에 처리되고 학습되었을 수 있으며, 사이버네틱 엔그램이 사용할 수 있는 데이터 블록에 대해 미리 저장된 키 입력 및 가중치가 있을 수 있다.
블록(1104)에서, 사이버네틱 엔그램 장치는 데이터 블록을 재생하도록 신경망을 훈련시킬 수 있다. 본 명세서에 기재된 바와 같이, 사이버네틱 엔그램은 데이터 블록의 비지도 학습을 구현할 수 있다. 데이터 블록을 재생하기 위한 사이버네틱 엔그램의 신경망의 훈련은 사이버네틱 엔그램이 키 입력을 포함할 수 있는 임의의 개수 또는 조합의 특정 입력으로부터 데이터 블록을 재생할 수 있도록 사이버네틱 엔그램의 신경망에 의해 사용되기 위한 가중치를 결정하는 것을 수반할 수 있다. 데이터 블록을 재생하기 위한 사이버네틱 엔그램의 신경망의 훈련은, 신경망이 초기에 지정된 값일 수 있는 가중치를 이용함으로써 입력을 처리하는 것, 재생된 데이터 블록의 출력을 생성하는 것, 재생된 데이터 블록과 데이터 블록을 비교하는 것, 재생된 데이터 블록과 데이터 블록의 비교가 에러 임계치를 초과하는 에러 값을 생성하는지 여부를 결정하는 것, 에러 값을 이용해 가중치를 업데이트하는 것, 및 에러 값이 에러 임계값을 초과할 때까지 프로세스를 반복하는 것의 재귀적 프로세스일 수 있다. 일부 실시예에서, 에러 임계값을 초과하는 에러 값은 재생된 데이터 블록과 데이터 블록의 비교로부터 에러 측정이 없는 만큼 적게 나타낼 수 있다. 본 명세서에서, 데이터 블록을 재생하기 위한 사이버네틱 엔그램의 신경망의 훈련은 데이터 블록을 학습하는 사이버네틱 엔그램의 신경망이라고 지칭될 수 있으며, 사이버네틱 엔그램의 신경망이 훈련된 데이터 블록이 학습된 데이터 블록이라고 지칭될 수 있다.
블록(1106)에서, 사이버네틱 엔그램 장치는 데이터 블록에 대한 가중치를 생성 및 저장할 수 있다. 가중치는 에러 값이 에러 임계값을 초과할 때 블록(1104)에서 데이터 블록을 재생하기 위해 사이버네틱 엔그램의 신경망을 훈련시킨 결과인 가중치일 수 있다. 즉, 생성된 가중치는 데이터 블록을 재생하기 위해 사이버네틱 엔그램의 신경망을 훈련하는 데 사용되는 가중치의 마지막 값일 수 있다. 이들 가중치는 사이버네틱 엔그램의 신경망에 의해 에러 임계값에 의해 제어되는 정확도로 데이터 블록을 재생하는 데 사용될 수 있다. 일부 실시예에서, 정확도는 100%까지 정확할 수 있다. 생성된 가중치는 다양한 수단에 의해 저장될 수 있다. 일부 실시예에서, 가중치는 컴퓨팅 장치에 중앙 집중식으로 저장될 수 있다. 예를 들어, 가중치는 컴퓨팅 장치의 메모리 장치의 임의의 수의 조합(예를 들어, 도 6의 메모리(606), 저장 메모리(614), 도 7의 캐시 메모리(710, 712, 714, 716, 720, 722, 730, 740), 도 8의 내부 메모리(806), 휘발성 메모리(912), 도 9의 비휘발성 메모리(913), 도 10의 휘발성 메모리(1002), 비휘발성 메모리(1004))에 저장될 수 있다. 일부 실시예에서, 가중치는 다중 컴퓨팅 장치에 걸쳐 분산 또는 분산 방식으로 저장될 수 있다. 예를 들어, 가중치는 다중 컴퓨팅 장치, 가령, 분산 렛저, 가령, 블록체인의 메모리 장치 중 임의의 개수 또는 이들의 조합 상에 저장될 수 있다. 일부 실시예에서, 가중치는 사이버네틱 엔그램의 메모리(예를 들어, 도 2의 신경망 메모리 뱅크(206))에 저장될 수 있다. 일부 실시예에서, 가중치의 복수의 사본은 복수의 로컬 및/또는 원격 메모리 장치에 저장될 수 있다.
선택적 블록(1108)에서, 사이버네틱 엔그램 장치는 데이터 블록에 대한 키 입력을 생성 및 저장할 수 있다. 키 입력은 블록(1104)에서 데이터 블록을 재생하기 위해 사이버네틱 엔그램의 신경망을 훈련하는 동안 사용되는 키 입력일 수 있다. 키 입력은 작업 요청, 가령, 읽기 또는 쓰기, 및 데이터 블록의 작업 요청 파라미터 및/또는 메타데이터를 포함할 수 있는 그 밖의 다른 파라미터를 포함할 수 있다. 일부 실시예에서, 파라미터는 사용자명으로서 프로세스 I.D.와 매칭되는 파일 소유자 I.D.및/또는 설정되는 대응하는 권한 비트를 포함할 수 있다. 키 입력은 키 입력을 생성 및/또는 사용하는 컴퓨팅 장치의 메모리 장치, 및/또는 키 입력을 생성 및/또는 사용하는 컴퓨팅 장치에 액세스 가능한 원격 컴퓨팅 장치의 메모리 장치에 국부적으로 저장될 수 있다. 일부 실시예에서, 키 입력은 복수의 포맷 및/또는 구조, 가령, 키 값 저장소(예를 들어, 도 3의 키 값 저장소(300))에 저장될 수 있다.
선택적인 블록(1110)에서, 사이버네틱 엔그램 장치는 데이터 블록에 대한 키 입력과 데이터 블록에 대한 가중치를 연관시킬 수 있다. 키 입력과 데이터 블록에 대한 가중치의 연관은 도 12를 참조하여 방법(1200)에서 추가로 논의되는 바와 같이, 사이버네틱 엔그램이 키 입력을 수신할 때 사용하기 위해 가중치를 검색하도록 할 수 있다. 예를 들어, 키 입력은 키 입력을 가중치가 저장되는 위치의 표시와 연관시키는 구조를 포함하거나 그 구조에 저장될 수 있다. 일부 실시예에서, 가중치가 저장되는 위치의 표시는 가중치가 메모리 장치에 저장되는 주소일 수 있다. 일부 실시예에서, 가중치가 저장되는 곳의 표시자는 가중치가 저장되는 위치에 대한 참조, 가령, 주소 테이블 내 한 주소로의 포인터, 및/또는 가중치가 저장된 위치의 추가 참조, 가령, 해시 테이블 또는 트리 내 한 해시 값으로의 포인터일 수 있다. 일부 실시예에서, 가중치의 주소 또는 위치는 주소 또는 블록체인과 같은 분산 원장에 저장된 가중치의 위치에 대한 참조일 수 있다.
블록(1112)에서, 사이버네틱 엔그램 장치는 데이터 블록을 사이버네틱 엔그램의 신경망, 키 입력, 및/또는 가중치로 대체할 수 있다. 데이터 블록을 교체하는 것은 사이버네틱 엔그램이 구현되는 동안 데이터 블록의 삭제, 무효화, 덮어쓰기 등을 수반할 수 있으며 데이터 블록의 가중치 및 선택적으로 데이터 블록의 키 입력이 블록(1106 및 1108)에 저장된다. 사이버네틱 엔그램의 신경망에 대한 가중치 및/또는 키 입력이 생성 및 저장되면, 사이버네틱 엔그램이 가중치 및 저장 및/또는 생성된 키 입력을 이용해 학습된 데이터 블록을 재생할 수 있기 때문에 학습된 데이터 블록을 보유할 필요가 없을 수 있다. 일부 실시예에서, 학습된 데이터 블록은 예를 들어 테스트 목적 또는 오프라인 보관을 위해 일정 기간 동안 유지될 수 있다. 그러나 작업 요청을 위한 학습된 데이터 블록의 데이터의 액세스가 학습된 데이터 블록 대신 신경망, 키 입력, 및 가중치를 이용해 재생된 데이터 블록을 이용할 수 있다.
도 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)에서 실행되는 소프트웨어에서, 범용 하드웨어에서, 또는 소프트웨어 구성 프로세서와 전용 하드웨어, 가령, 그 밖의 다른 개별 구성요소를 포함하는 사이버네틱 엔그램 활성화 시스템 내 소프트웨어를 실행하는 프로세서, 및 다양한 메모리/캐시 제어기로 구현될 수 있다. 다양한 실시예에서 가능하게 된 대안적인 구성을 포함하기 위해, 방법(1200)을 구현하는 하드웨어는 여기에서 "사이버네틱 엔그램 장치"로 지칭된다.
블록(1202)에서, 사이버네틱 엔그램 장치는 데이터 블록(예를 들어, 도 3 및 5의 데이터 블록(302))에 대한 작업 요청을 수신할 수 있다. 예를 들어, 데이터 블록에 대한 작업 요청은 열기, 닫기, 읽기, 쓰기, 실행 등을 포함할 수 있다. 일부 실시예에서, 작업 요청은 작업 요청을 실행할 데이터 블록을 식별할 수 있다.
블록(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))에 저장되고 메모리 장치로부터 검색될 수 있다. 일부 실시예에서, 데이터 블록에 대응하는 부분 키 입력은 메모리 장치에 저장되고, 메모리 장치로부터 검색되고, 키 입력을 생성하기 위한 동작 요청과 결합될 수 있다. 일부 실시예에서, 키 입력은 작업과 함께 제공된 정보 및/또는 메모리 장치에 저장된 메타데이터와 같은 데이터 블록에 대한 데이터로부터 생성될 수 있다. 일부 실시예에서, 키 입력은 사이버네틱 엔그램에 대한 키 입력 값의 이전 이력을 사용하여 생성될 수 있다. 일부 실시예에서, 키 입력은 타이머와 같은 시간적 키를 사용하여 생성될 수 있다.
블록(1206)에서, 사이버네틱 엔그램 장치는 데이터 블록에 대한 키 입력과 연관된 데이터 블록에 대한 가중치를 결정할 수 있다. 본 명세서에 기재된 바와 같이, 예를 들어 도 11을 참조하는 방법(1100)의 블록(1110)에서, 키 입력과의 연관에 의해 가중치가 사이버네틱 엔그램에 의한 키 입력과 함께 사용되도록 검색될 수 있도록, 학습된 데이터 블록에 대한 가중치가 저장될 수 있다. 키 입력과 가중치의 연관을 통해 사이버네틱 엔그램은 데이터 블록에 대한 키 입력과 함께 사용할 가중치를 결정할 수 있다. 예를 들어, 연관은 로컬 및/또는 원격 메모리 장치 상의 가중치의 위치를 나타낼 수 있다. 로컬 메모리 장치는 키 입력이 수신되고 연관된 가중치가 저장되는 컴퓨팅 장치의 메모리 장치일 수 있다. 원격 메모리 장치는 키 입력이 수신되는 컴퓨팅 장치로부터 원격지에 있는 컴퓨팅 장치의 메모리 장치, 가령, 분산 렛저, 가령, 블록체인의 일부인 원격 메모리 장치일 수 있다.
블록(1208)에서, 사이버네틱 엔그램 장치는 데이터 블록에 대한 가중치를 검색할 수 있다. 데이터 블록에 대한 키 입력과 연관되는 것으로 결정된 데이터 블록에 대한 가중치는 데이터 블록에 대한 키 입력을 처리하는 데 사용하기 위해 로컬 또는 원격 저장 위치에서 검색될 수 있다.
블록(1210)에서, 사이버네틱 엔그램 장치는 데이터 블록에 대한 가중치를 사용하여 데이터 블록에 대한 키 입력을 처리할 수 있다. 사이버네틱 엔그램의 신경망은 키 입력을 단독으로 또는 다른 입력 데이터와 조합하여 신경망에 대한 입력으로 사용할 수 있다. 신경망은 신경망의 처리 과정에서 생성된 입력 및/또는 활성화 값에 가중치를 적용하면서 키 입력을 포함한 입력을 신경망의 계층을 통해 처리할 수 있다.
블록(1212)에서, 사이버네틱 엔그램 장치는 데이터 블록에 대한 키 입력 및 데이터 블록에 대한 가중치를 사용하여 데이터 블록을 재생할 수 있다. 블록(1210)에서 신경망에 의한 가중치를 사용한 키 입력의 처리는 궁극적으로 데이터 블록의 출력을 생성할 수 있다. 신경망에 의해 재생된 데이터 블록은 사이버네틱 엔그램이 학습된 데이터를 재생할 수 있기 때문에 학습된 데이터 블록이 장기간 저장되지 않았을 수 있으므로 키 입력 및/또는 가중치를 재생하도록 학습된 데이터 블록의 재생산일 수 있다.
블록(1214)에서, 사이버네틱 엔그램 장치는 데이터 블록, 사용자, 및/또는 작업을 검증 및/또는 인증할 수 있다. 사이버네틱 엔그램은 데이터 블록에 대한 작업 요청을 하는 컴퓨팅 장치, 사용자, 가령, 인가 사용자, 프로그램 및/또는 프로세스 및/또는 데이터 블록을 공격, 데이터 손상, 비인가 액세스, 비인가 처리 등으로부터 보호할 수 있다. 사이버네틱 엔그램의 다양한 신경망(예를 들어, 도 2의 시퀀싱 신경망(202), 검증 신경망(208), 인증 신경망(210))은 이들 보호를 구현하도록 구성될 수 있다. 예를 들어, 검증 신경망은 재생된 데이터 블록이 예상된 것이며 공격이나 손상을 통해 변경되지 않았는지 여부를 검증할 수 있는 주성분 분석을 구현하도록 구성될 수 있다. 추가 예를 들어, 인가 신경망은 사용자 및/또는 프로세스 인가를 구현하도록 구성될 수 있으며, 이에 의해 인가 신경망은 사용자가 데이터 블록에 액세스하도록 허용되는지 여부 및/또는 프로세스가 데이터 블록에 대해 구현될 수 있는지 여부를 결정할 수 있다. 일부 실시예에서, 데이터 블록, 사용자, 및/또는 작업 검증 및/또는 인증 중 임의의 개수 및 조합이 구현될 수 있다. 모든 경우에 데이터 블록, 사용자 및/또는 작업 확인 및/또는 인증 중 하나 또는 조합을 구현할 필요는 없다.
결정 블록(1216)에서, 사이버네틱 엔그램 장치는 데이터 블록, 사용자, 및/또는 작업이 검증 및/또는 인증되었는지 여부를 결정할 수 있다. 블록(1214)의 검증 및/또는 인증의 결과에 기초하여, 사이버네틱 엔그램은 데이터 블록, 사용자, 및/또는 작업이 검증 및/또는 인증되었는지 여부를 결정할 수 있다. 데이터 블록, 사용자 및/또는 작업이 검증 및/또는 인증되었는지 여부의 결정은 사용자 및/또는 프로세스 요청의 프로세스에 의한 데이터 블록의 액세스 및 사용을 제어하는 데 사용될 수 있다. 일부 실시예에서, 데이터 블록, 사용자, 및/또는 작업 검증 및/또는 인증 중 임의의 개수 및 조합의 결정이 구현될 수 있다. 모든 경우에 데이터 블록, 사용자 및/또는 작업 확인 및/또는 인증 중 하나 또는 조합을 결정할 필요는 없다.
데이터 블록, 사용자 및/또는 작업이 검증 및/또는 인증되었다는 결정에 응답하여(즉, 결정 블록(1216) = "예"), 사이버네틱 엔그램 장치는 블록(1218)에서 데이터 블록에 대한 작업 요청의 작업을 실행할 수 있다. 데이터 블록, 사용자 및/또는 작업이 검증 및/또는 인증되었다는 결정은 컴퓨팅 장치가, 가령, 프로세서를 통해, 데이터 블록에 대한 작업 요청의 작업을 구현함을 사이버네틱 엔그램에게 지시할 수 있다.
데이터 블록, 사용자 및/또는 작업이 검증 및/또는 인증되지 않았다고 결정한 것에 응답하여(즉, 결정 블록(1216) = "아니오"), 사이버네틱 엔그램 장치는 블록(1224)에서 데이터 블록에 대한 작업 요청의 작업의 실행을 거절할 수 있다. 데이터 블록, 사용자 및/또는 작업이 검증 및/또는 인증되지 않았다는 결정은 컴퓨팅 장치가, 가령, 프로세서를 통해, 데이터 블록에 대한 작업 요청의 작업을 구현하지 않을 것을 사이버네틱 엔그램에게 지시할 수 있다. 사이버네틱 엔그램 장치는, 선택사항으로서, 도 13을 참조하는 방법(1300)의 블록(1302)에서 기재된 바와 같이, 블록(1208)에서 검색된 가중치와 상이한 위치로부터 데이터 블록(가령, 도 3-5의 데이터 블록(304))에 대한 가중치를 검색하도록 진행할 수 있다.
블록(1218)에서 데이터 블록에 대한 작업 요청의 작업을 실행한 후, 선택적 블록(1220)에서, 사이버네틱 엔그램 장치는 데이터 블록, 사용자, 및/또는 작업을 검증 및/또는 인증할 수 있다. 데이터 블록의 검증 및/또는 인증, 사용자, 및/또는 작업은 블록(1214)에서 기재된 것과 유사한 방식으로 구현될 수 있다. 데이터 블록에 대한 작업을 허용할지 여부를 결정하도록 구현될 수 있는 블록(1214)에서의 데이터 블록, 사용자 및/또는 작업의 검증 및/또는 인증과 다르게, 선택적 블록(1220)에서 데이터 블록, 사용자 및/또는 작업의 검증 및/또는 인증이 구현되어 작업된 데이터 블록이 사이버네틱 엔그램에 의해 학습될 수 있는지 여부를 결정할 수 있다. 블록(1214)에서의 데이터 블록, 사용자 및/또는 작업의 검증 및/또는 인증에도 불구하고, 블록(1218)의 데이터 블록에 대한 작업은 여전히 데이터 블록을 손상시킬 수 있고, 데이터 블록, 사용자 및/또는 작업에 대한 공격일 수 있으며, 및/또는 데이터 블록의 비인가 조작을 초래할 수 있는 예기치 않은 비인가 액세스를 초래할 수 있다. 따라서 사이버네틱 엔그램은 데이터 블록, 사용자 및/또는 작업을 다시 검증 및/또는 인증할 수 있다. 일부 실시예에서, 데이터 블록, 사용자, 및/또는 작업 검증 및/또는 인증 중 임의의 개수 및 조합이 구현될 수 있다. 모든 경우에 데이터 블록, 사용자 및/또는 작업 확인 및/또는 인증 중 하나 또는 조합을 구현할 필요는 없다.
결정 블록(1222)에서, 사이버네틱 엔그램 장치는 데이터 블록, 사용자, 및/또는 작업이 검증 및/또는 인증되었는지 여부를 결정할 수 있다. 데이터 블록, 사용자 및/또는 작업이 검증 및/또는 인증되었는지 여부의 결정은 데이터 블록, 사용자 및/또는 작업이 결정 블록(1216)에서 검증 및/또는 인증되는지 여부의 결정과 유사한 방식으로 구현될 수 있다. 일부 실시예에서, 데이터 블록, 사용자, 및/또는 작업 검증 및/또는 인증 중 임의의 개수 및 조합의 결정이 구현될 수 있다. 모든 경우에 데이터 블록, 사용자 및/또는 작업 확인 및/또는 인증 중 하나 또는 조합을 결정할 필요는 없다.
블록(1218)에서 데이터 블록에 대한 작업 요청의 작업 실행 후에, 또는 데이터 블록, 사용자 및/또는 작업이 검증 및/또는 인증되었다는 결정(즉, 선택적인 결정 블록(1222) = "예")에 응답하여, 사이버네틱 엔그램 장치는 도 11을 참조하여 방법(1100)의 블록(1102)에 설명된 바와 같이 데이터 블록을 선택적으로 수신할 수 있다. 데이터 블록에 대한 일부 작업은 유지되어야 할 데이터 블록 및/또는 이의 메타데이터를 변경할 수 있다 예를 들어, 데이터 블록에 대한 쓰기는 유지될 수 있는 데이터 블록의 내용을 변경할 수 있다. 추가 예를 들어, 데이터 블록의 읽기는 데이터 블록의 마지막 액세스를 나타내는 데이터 블록의 메타데이터를 변경할 수 있으며, 이는 유지될 수 있는 액세스의 사용자 및/또는 시간을 포함할 수 있다. 데이터 블록의 내용의 변경에 대해, 사이버네틱 엔그램이 새로운 내용으로 데이터 블록을 재생할 수 있도록 가중치를 다시 훈련해야 할 수 있다. 데이터 블록의 메타데이터 변경에 대해, 일부 실시예에서, 가령, 사이버네틱 엔그램에 의해 메타데이터가 처리될 수 있을 때 및/또는 새 메타데이터를 이용해 키 입력이 업데이트될 수 있을 때 가중치가 유지될 필요가 있을 수 있다. 일부 실시예에서, 키 입력이 업데이트되었는지 여부에 따라, 블록(1108)은 방법(1200)의 구현 이후에 방법(1100)을 구현할 때 선택적일 수 있다.
데이터 블록, 사용자 및/또는 작업이 검증 및/또는 인증되지 않았다고 결정한 것에 응답하여(즉, 선택적 결정 블록(1222) = "아니오"), 사이버네틱 엔그램 장치는 블록(1226)에서 데이터 블록에 대한 작업 요청의 작업의 실행을 거절할 수 있다. 데이터 블록, 사용자 및/또는 작업이 검증 및/또는 인증되지 않았다는 결정은 데이터 블록에 대한 변경이 바람직하지 않고 유지되지 않을 수 있으므로, 데이터 블록을 학습하는 거승로 진행하지 않는 것을 사이버네틱 엔그램에게 지시할 수 있다.
도 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)에서 실행되는 소프트웨어에서, 범용 하드웨어에서, 또는 소프트웨어 구성 프로세서와 전용 하드웨어, 가령, 그 밖의 다른 개별 구성요소를 포함하는 사이버네틱 엔그램 활성화 시스템 내 소프트웨어를 실행하는 프로세서, 및 다양한 메모리/캐시 제어기로 구현될 수 있다. 다양한 실시예에서 가능하게 된 대안적인 구성을 포함하기 위해, 방법(1300)을 구현하는 하드웨어는 여기에서 "사이버네틱 엔그램 장치"로 지칭된다.
블록(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)에서 본 명세서에 기재된 검증 및/또는 인증되는 데 실패한 데이터 블록을 재생하는 가중치 세트에 응답하여 검색될 가중치 세트를 결정하기 위한 목적으로 순서화 또는 순위화될 수 있다. 일부 실시예에서, 순서 또는 순위는 가중치 세트가 데이터 블록을 충실하게 재생할 수 있다는 확신을 나타낼 수 있다. 데이터 블록에 대한 키 입력과 연관되는 것으로 결정된 데이터 블록에 대한 가중치는 데이터 블록에 대한 키 입력을 처리하는 데 사용하기 위해 로컬 또는 원격 저장 위치에서 검색될 수 있다.
선택적 블록(1304)에서, 사이버네틱 엔그램 장치는 검증 및/또는 인증에 실패한 데이터 블록을 재생하는 가중치를 폐기할 수 있다. 가중치를 폐기하는 것은 가중치가 저장된 메모리 장치에서 가중치의 삭제, 무효화, 덮어쓰기 등을 수반할 수 있다. 일부 실시예에서, 가중치는 가중치가 저장되어 있는 메모리 장치에 유지될 수 있지만 가중치가 데이터 블록을 충실하게 재생할 수 있다는 확신을 감소시키는 방식으로 순위가 매겨지거나 정렬될 수 있다. 가중치는 후세를 위해 유지될 수 있으며, 가중치가 검증 및/또는 인증되지 않은 데이터 블록을 재생하는 이유 분석, 버전 추적 등이다.
선택적인 블록(1306)에서, 사이버네틱 엔그램 장치는 검증 및/또는 인증에 실패한 데이터 블록을 재생하는 가중치의 위치에 다른 위치로부터 가중치를 저장할 수 있다. 일부 실시예에서, 블록(1302)에서 검색된 가중치는 검증 및/또는 인증에 실패한 데이터 블록을 재생하는 가중치의 위치에 저장될 수 있다.
블록(1302)에서 가중치를 검색하고, 선택적 블록(1304)에서 가중치를 폐기하거나, 블록(1306)에서 가중치를 저장한 후, 도 12를 참조하여 방법(1200)의 블록(1212)에서 기재된 바와 같이 사이버네틱 엔그램 장치는 데이터 블록에 대한 키 입력 및 블록(1302)에서 검색된 데이터 블록에 대한 가중치를 이용해 데이터 블록을 재생하는 것으로 진행할 수 있다.
다양한 양태의 작업을 수행하기 위한 프로그래머블 프로세서 상에서 실행되기 위한 컴퓨터 프로그램 코드 또는 "프로그램 코드"는 하이 레벨 프로그래밍 언어, 가령, C, C++, C#, Smalltalk, Java, JavaScript, Visual Basic, Structured Query Language (가령, Transact-SQL), Perl 또는 그 밖의 다른 다양한 프로그래밍 언어로 써질 수 있다. 본 출원에서 사용되는 프로그램 코드 또는 컴퓨터 판독 가능 저장 매체에 저장된 프로그램은 프로세서가 이해할 수 있는 형식을 갖는 기계어 코드(가령, 객체 코드)를 지칭할 수 있다.
앞서 기재된 방법 설명 및 프로세스 흐름도는 단지 예시적인 예로서 제공되며 다양한 양태의 동작이 제시된 순서대로 수행되어야 함을 요구하거나 암시하도록 의도되지 않는다. 해당 분야의 통상의 기술자에 의해 이해되는 바와 같이, 앞서 언급된 양태에서의 동작 순서는 임의의 순서로 수행될 수 있다. "그 이후", "다음", "다음" 등과 같은 단어는 작업의 순서를 제한하기 위한 것이 아니며 이 단어는 단순히 방법에 대한 설명을 통해 독자를 안내하는 데 사용된다. 또한, 예를 들어 관사 "a", "an" 또는 "the"를 사용하는 단수의 청구 요소에 대한 참조는 요소를 단수로 제한하는 것으로 해석되어서는 안 된다.
다양한 양태와 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 회로, 및 알고리즘 동작은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합으로서 구현될 수 있다. 하드웨어와 소프트웨어의 이러한 호환성을 명확하게 설명하기 위해 다양한 예시적인 구성요소, 블록, 모듈, 회로 및 동작이 일반적으로 기능면에서 위에서 설명되었다. 이러한 기능이 하드웨어로 구현되는지 소프트웨어로 구현되는지는 전체 시스템에 부과되는 특정 애플리케이션 및 설계 제약 조건에 따라 다르다. 숙련된 기술자는 각각의 특정 애플리케이션에 대해 다양한 방식으로 설명된 기능을 구현할 수 있지만 이러한 구현 결정이 청구 범위에서 벗어나는 것으로 해석되어서는 안 된다.
본 명세서에 개시된 양태와 관련하여 설명된 다양한 예시적인 논리, 논리 블록, 모듈 및 회로를 구현하는 데 사용되는 하드웨어는 범용 프로세서, 디지털 신호 프로세서(DSP), 애플리케이션- 특정 집적 회로(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA) 또는 기타 프로그램 가능 논리 장치, 이산 게이트 또는 트랜지스터 논리, 이산 하드웨어 구성요소, 또는 여기에 설명된 기능을 수행하도록 설계된 이들의 임의의 조합을 포함한다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안으로 프로세서는 임의의 기존 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 장치의 조합, 예를 들어 DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서, DSP 코어와 함께 하나 이상의 마이크로프로세서, 또는 임의의 다른 그러한 구성으로서 구현될 수 있다. 대안으로, 일부 동작 또는 방법은 주어진 기능에 특정한 회로에 의해 수행될 수 있다.
하나 이상의 양태에서, 기재된 기능은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능은 비일시적 컴퓨터 판독 가능 매체 또는 비일시적 프로세서 판독 가능 매체 상에 하나 이상의 명령어 또는 코드로서 저장될 수 있다. 본 명세서에 개시된 방법 또는 알고리즘의 동작은 비일시적 컴퓨터 판독 가능 또는 프로세서 판독 가능 저장 매체에 상주할 수 있는 프로세서 실행 가능 소프트웨어 모듈로 구현될 수 있다. 비일시적 컴퓨터 판독 가능 또는 프로세서 판독 가능 저장 매체는 컴퓨터 또는 프로세서에 의해 액세스될 수 있는 임의의 저장 매체일 수 있다. 비제한적인 예로서, 이러한 비일시적 컴퓨터 판독 가능 또는 프로세서 판독 가능 매체는 RAM, ROM, EEPROM, FLASH 메모리, CD-ROM 또는 기타 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하는 데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 기타 모든 매체를 포함할 수 있다. 본 명세서에서 사용될 때 디스크(disk) 및 디스크(disc)에는 디스크가 일반적으로 자기적으로 데이터를 재생하는 반면 디스크는 레이저로 데이터를 광학적으로 재생하는 CD(컴팩트 디스크), 레이저 디스크, 광 디스크, DVD(디지털 다목적 디스크), 플로피 디스크 및 Blu-ray 디스크가 포함된다. 위의 조합은 또한 비일시적 컴퓨터 판독 가능 및 프로세서 판독 가능 매체의 범위 내에 포함된다. 또한, 방법 또는 알고리즘의 동작은 컴퓨터 프로그램 제품에 통합될 수 있는 비일시적 프로세서 판독 가능 매체 및/또는 컴퓨터 판독 가능 매체에 하나 또는 임의의 조합 또는 코드 및/또는 명령어 세트로 존재할 수 있다.
개시된 측면의 이전 설명은 당업자가 청구범위를 만들거나 사용할 수 있도록 제공된다. 이들 양태에 대한 다양한 수정은 당업자에게 용이하게 명백할 것이고, 여기에 정의된 일반적인 원리는 청구범위의 범위를 벗어나지 않고 다른 양태 및 구현에 적용될 수 있다. 따라서, 본 개시내용은 여기에 설명된 양태 및 구현으로 제한되도록 의도되지 않고, 이하의 청구범위 및 여기에 개시된 원리 및 신규 특징과 일치하는 가장 넓은 범위가 부여되어야 한다.

Claims (20)

  1. 데이터 블록을 신경망에 대한 가중치로 변환하는 방법으로서, 상기 방법은
    데이터 블록을 재생하도록 사이버네틱 엔그램의 제1 신경망을 훈련하는 단계, 및
    메모리 내 데이터 블록을 데이터 블록을 재생하기 위해 제1 신경망에 의해 사용되는 가중치로 대체하는 단계
    를 포함하는, 데이터 블록을 신경망에 대한 가중치로 변환하는 방법.
  2. 제1항에 있어서,
    데이터 블록에 대한 작업 요청을 수신하는 단계,
    제1 신경망을 트리거하여 데이터 블록을 재생하도록 구성된 키 입력을 수신하는 단계, 및
    작업 요청을 수신하는 것에 응답하여, 제1 신경망, 가중치, 및 키 입력을 이용해 데이터 블록을 재생하는 단계
    를 더 포함하는, 데이터 블록을 신경망에 대한 가중치로 변환하는 방법.
  3. 제1항에 있어서,
    제1 신경망, 가중치, 및 상기 제1 신경망을 트리거하여 데이터 블록을 재생하도록 구성된 키 입력을 이용해 데이터 블록을 재생하여, 재생 데이터 블록을 도출하는 단계,
    재생 데이터 블록에 대해 데이터 블록에 대한 작업 요청의 작업을 실행하는 단계
    를 더 포함하는, 데이터 블록을 신경망에 대한 가중치로 변환하는 방법.
  4. 제3항에 있어서, 사이버네틱 엔그램의 제2 신경망에 의한 재생 데이터 블록에 대한 검증을 실행하는 단계를 더 포함하며, 재생 데이터 블록에 대해 데이터 블록에 대한 작업 요청의 작업을 실행하는 단계는 재생 데이터 블록에 대한 검증에 응답하여 발생하는, 데이터 블록을 신경망에 대한 가중치로 변환하는 방법.
  5. 제3항에 있어서, 사이버네틱 엔그램의 제3 신경망에 의해 재생 데이터 블록에 대한 인증을 실행하는 단계를 더 포함하며, 재생 데이터 블록에 대해 데이터 블록에 대한 작업 요청의 작업을 실행하는 단계는 재생 데이터 블록에 대한 인증에 응답하여 발생하는, 데이터 블록을 신경망에 대한 가중치로 변환하는 방법.
  6. 제1항에 있어서,
    제1 신경망, 가중치, 및 제1 신경망을 트리거하여 데이터 블록을 재생하도록 구성된 키 입력을 이용해 데이터 블록을 재생하는 단계,
    재생 데이터 블록을 도출하는 단계,
    사이버네틱 엔그램의 제2 신경망에 의해, 재생 데이터 블록에 대한 검증을 실행하는 단계,
    재생 데이터 블록 검증 실패에 응답하여 상이한 가중치를 검색하는 단계, 및
    제1 신경망, 상기 상이한 가중치, 및 키 입력을 이용해 데이터 블록을 재생하여, 재생 데이터 블록을 도출하는 단계를 더 포함하는, 데이터 블록을 신경망에 대한 가중치로 변환하는 방법.
  7. 제1항에 있어서, 메모리 내 데이터 블록을 데이터 블록을 재생하기 위해 제1 신경망에 의해 사용되는 가중치로 대체하는 단계는 가중치를 분산 렛저(distributed ledger)에 저장하는 단계를 포함하는, 데이터 블록을 신경망에 대한 가중치로 변환하는 방법.
  8. 프로세서가 작업을 구현하게 하는 프로세서-실행 명령으로 구성된 프로세서를 포함하는 컴퓨팅 장치로서, 상기 작업은
    데이터 블록을 재생하도록 사이버네틱 엔그램의 제1 신경망을 훈련시키는 것, 및
    메모리 내 데이터 블록을 데이터 블록을 재생하기 위해 제1 신경망에 의해 사용되는 가중치로 대체하는 것
    을 포함하는, 컴퓨팅 장치.
  9. 제8항에 있어서, 상기 프로세서는 프로세서로 하여금 작업을 구현하게 하는 프로세서-실행 명령으로 구성되며, 상기 작업은
    데이터 블록에 대한 작업 요청을 수신하는 것,
    제1 신경망을 트리거하여 데이터 블록을 재생하도록 구성된 키 입력을 수신하는 것, 및
    작업 요청을 수신하는 것에 응답하여, 제1 신경망, 가중치, 및 키 입력을 이용해 데이터 블록을 재생하는 것
    을 더 포함하는, 컴퓨팅 장치.
  10. 제8항에 있어서, 프로세서는 프로세서로 하여금 작업을 구현하게 하는 프로세서-실행 명령으로 구성되며, 상기 작업은
    제1 신경망, 가중치, 및 제1 신경망을 트리거하여 데이터 블록을 재생하도록 구성된 키 입력을 이용해 데이터 블록을 재생하여, 재생 데이터 블록을 도출하는 단계, 및
    재생 데이터 블록에 대해 데이터 블록에 대한 작업 요청의 작업을 실행하는 단계
    를 더 포함하는, 컴퓨팅 장치.
  11. 제10항에 있어서, 상기 프로세서는 프로세서로 하여금 작업을 구현하게 하는 프로세서-실행 명령으로 구성되며, 상기 작업은 사이버네틱 엔그램의 제2 신경망에 의해 재생 데이터 블록에 대한 검증을 실행하는 것을 더 포함하며, 재생 데이터 블록에 대해 데이터 블록에 대한 작업 요청의 작업을 실행하는 것은 재생 데이터 블록에 대한 검증에 응답하여 발생하는, 컴퓨팅 장치.
  12. 제10항에 있어서, 상기 프로세서는 상기 프로세서로 하여금 작업을 구현하게 하는 프로세서-실행 명령으로 구성되며, 상기 작업은 사이버네틱 엔그램의 제3 신경망에 의해 재생 데이터 블록에 대한 인증을 실행하는 것을 더 포함하고, 재생 데이터 블록에 대해 데이터 블록에 대한 작업 요청의 작업을 실행하는 것은 재생 데이터 블록에 대한 인증에 응답하여 발생하는, 컴퓨팅 장치.
  13. 제8항에 있어서, 상기 프로세서는 프로세서로 하여금 작업을 구현하게 하는 프로세서-실행 명령으로 구성되며, 상기 작업은
    제1 신경망, 가중치, 및 상기 제1 신경망을 트리거하여 데이터 블록을 재생하도록 구성된 키 입력을 이용해 데이터 블록을 재생하여, 재생 데이터 블록을 도출하는 것,
    사이버네틱 엔그램의 제2 신경망에 의해 재생 데이터 블록에 대한 검증을 실행하는 것,
    재생 데이터 블록의 검증 실패에 응답하여 상이한 가중치를 검색하는 것, 및
    제1 신경망, 상이한 가중치, 및 키 입력을 이용해 데이터 블록을 재생하여, 재생 데이터 블록을 도출하는 것을 더 포함하는, 컴퓨팅 장치.
  14. 제8항에 있어서, 상기 프로세서는 프로세서로 하여금 작업을 구현하게 하는 프로세서-실행 명령으로 구성되며,
    메모리 내 데이터 블록을 데이터 블록을 재생하기 위해 제1 신경망에 의해 사용되는 가중치로 대체하는 것은 가중치를 분산 렛저에 저장하는 것을 포함하는, 컴퓨팅 장치.
  15. 프로세서로 하여금 작업을 수행하게 하도록 구성된 프로세서-실행 명령을 저장하는 비일시적 프로세서-판독형 매체로서, 상기 작업은
    데이터 블록을 재생하도록 사이버네틱 엔그램의 제1 신경망을 훈련하는 것, 및
    메모리 내 데이터 블록을 데이터 블록을 재생하기 위해 제1 신경망에 의해 사용되는 가중치로 대체하는 것
    을 포함하는, 비일시적 프로세서-판독형 매체.
  16. 제15항에 있어서, 저장된 프로세서-실행 명령은 프로세서로 하여금 작업을 수행하게 하도록 구성되며, 상기 작업은
    데이터 블록에 대한 작업 요청을 수신하는 것,
    제1 신경망을 트리거하여 데이터 블록을 재생하도록 구성된 키 입력을 수신하는 것, 및
    상기 작업 요청을 수신하는 것에 응답하여, 제1 신경망, 가중치, 및 키 입력을 이용해 데이터 블록을 재생하는 것을 더 포함하는, 비일시적 프로세서-판독형 매체.
  17. 제15항에 있어서, 저장된 프로세서-실행 명령은 프로세서로 하여금 작업을 수행하게 하도록 구성되며, 상기 작업은
    제1 신경망, 가중치, 및 상기 제1 신경망을 트리거하여 데이터 블록을 재생하도록 구성된 키 입력을 이용해 데이터 블록을 재생하여, 재생 데이터 블록을 도출하는 것, 및
    재생 데이터 블록에 대하여 데이터 블록에 대한 작업 요청의 작업을 실행하는 것을 더 포함하는, 비일시적 프로세서-판독형 매체.
  18. 제17항에 있어서, 저장된 프로세서-실행 명령은 프로세서로 하여금 작업을 수행하게 하도록 구성되고, 상기 작업은 사이버네틱 엔그램의 제2 신경망에 의해 재생 데이터 블록에 대한 검증을 실행하는 것을 더 포함하며, 재생 데이터 블록에 대해 데이터 블록에 대한 작업 요청의 작업을 실행하는 것은 재생 데이터 블록에 대한 검증에 응답하여 발생하는, 비일시적 프로세서-판독형 매체.
  19. 제17항에 있어서, 저장된 프로세서-실행 명령은 프로세서로 하여금 작업을 수행하게 하도록 구성되며, 상기 작업은 사이버네틱 엔그램의 제3 신경망에 의해 재생 데이터 블록에 대한 인증을 실행하는 것을 더 포함하며, 재생 데이터 블록에 대해 데이터 블록에 대한 작업 요청의 작업을 실행하는 것은 재생 데이터 블록에 대한 인증에 응답하여 발생하는, 비일시적 프로세서-판독형 매체.
  20. 제15항에 있어서, 저장된 프로세서-실행 명령은 프로세서로 하여금 작업을 수행하게 하도록 구성되며, 메모리 내 데이터 블록을 데이터 블록을 재생하도록 제1 신경망에 의해 사용되는 가중치로 대체하는 것은 가중치를 분산 렛저에 저장하는 것을 포함하고,
    저장된 프로세서-실행 명령은 프로세서로 하여금 작업을 수행하도록 구성되며, 상기 작업은
    제1 신경망, 가중치, 및 제1 신경망을 트리거하여 데이터 블록을 재생하도록 구성된 키 입력을 이용해 데이터 블록을 재생하여, 재생 데이터 블록을 도출하는 것,
    사이버네틱 엔그램의 제2 신경망에 의해 재생 데이터 블록에 대한 검증을 실행하는 것,
    재생 데이터 블록 검증 실패에 응답하여 상이한 가중치를 검색하는 것, 및
    제1 신경망, 상이한 가중치, 및 키 입력을 이용해 데이터 블록을 재생하여 재생 데이터 블록을 도출하는 것을 더 포함하는, 비일시적 프로세서-판독형 매체.
KR1020217026572A 2019-01-21 2020-01-21 자체-인식, 자체-치유, 및 자체-방어 데이터를 위한 방법 KR20210116615A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962794922P 2019-01-21 2019-01-21
US62/794,922 2019-01-21
US16/747,359 2020-01-20
US16/747,359 US20200233855A1 (en) 2019-01-21 2020-01-20 Methods For Self-Aware, Self-Healing, And Self-Defending Data
PCT/US2020/014354 WO2020154256A1 (en) 2019-01-21 2020-01-21 Methods for self-aware, self-healing, and self-defending data

Publications (1)

Publication Number Publication Date
KR20210116615A true KR20210116615A (ko) 2021-09-27

Family

ID=71610003

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217026572A KR20210116615A (ko) 2019-01-21 2020-01-21 자체-인식, 자체-치유, 및 자체-방어 데이터를 위한 방법

Country Status (7)

Country Link
US (1) US20200233855A1 (ko)
EP (1) EP3915060A4 (ko)
JP (1) JP2022518752A (ko)
KR (1) KR20210116615A (ko)
AU (1) AU2020212941A1 (ko)
CA (1) CA3127068A1 (ko)
WO (1) WO2020154256A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11449230B2 (en) * 2019-03-07 2022-09-20 Dell Products L.P. System and method for Input/Output (I/O) pattern prediction using recursive neural network and proaction for read/write optimization for sequential and random I/O
US11836613B2 (en) * 2019-07-17 2023-12-05 International Business Machines Corporation Neural programmer interpreters with modeled primitives
CN114490781B (zh) * 2022-04-01 2022-07-22 中国信息通信研究院 区块链数据的处理方法和装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253328A (en) * 1989-11-17 1993-10-12 Microelectronics & Computer Technology Corp. Neural-network content-addressable memory
US7702599B2 (en) * 2004-10-07 2010-04-20 Bernard Widrow System and method for cognitive memory and auto-associative neural network based pattern recognition
CA2629069C (en) * 2005-11-15 2016-07-19 Bernadette Garner Method for training neural networks
US8793205B1 (en) * 2012-09-20 2014-07-29 Brain Corporation Robotic learning and evolution apparatus
US9786036B2 (en) * 2015-04-28 2017-10-10 Qualcomm Incorporated Reducing image resolution in deep convolutional networks
KR102336295B1 (ko) * 2016-10-04 2021-12-09 한국전자통신연구원 적응적 프루닝 및 가중치 공유를 사용하는 컨볼루션 신경망 시스템 및 그것의 동작 방법
CN108460058A (zh) * 2017-02-22 2018-08-28 北京京东尚科信息技术有限公司 数据处理方法及系统
US20190197130A1 (en) * 2017-12-21 2019-06-27 Microsoft Technology Licensing, Llc Ensuring consistency in distributed incremental content publishing
EP3928434A1 (en) * 2019-03-22 2021-12-29 Siemens Corporation Embedded deep compression for time-series data

Also Published As

Publication number Publication date
US20200233855A1 (en) 2020-07-23
EP3915060A4 (en) 2022-11-09
AU2020212941A1 (en) 2021-09-16
WO2020154256A1 (en) 2020-07-30
CA3127068A1 (en) 2020-07-30
JP2022518752A (ja) 2022-03-16
EP3915060A1 (en) 2021-12-01

Similar Documents

Publication Publication Date Title
US9455955B2 (en) Customizable storage controller with integrated F+ storage firewall protection
KR20210116615A (ko) 자체-인식, 자체-치유, 및 자체-방어 데이터를 위한 방법
CN110023939A (zh) 用于存储装置中基于范围的检查点的方法和设备
CN108573144A (zh) 安全的执行上下文数据
CN110784463B (zh) 一种基于区块链的文件存储和访问方法
CN108713194A (zh) 使用虚拟资源视图的数据保护
Ulusoy et al. Vigiles: Fine-grained access control for mapreduce systems
WO2020161662A1 (en) Authentication, authorization and audit of digital assets using the blockchain
US20200082088A1 (en) User/Enterprise Data Protection Preventing Non-Authorized Firmware Modification
US10664619B1 (en) Automated agent for data copies verification
US11664970B2 (en) Providing access to a hardware resource based on a canary value
US20220156395A1 (en) Methods of and systems for virtual air-gapping network storage system
US20230188337A1 (en) Combined Cryptographic Key Management Services for Access Control and Proof of Space
US20210209219A1 (en) Apparatus and method for authentication of software
CN107315973A (zh) 用于安全元数据修改的一般化验证方案
US20230185483A1 (en) Solid State Drives with Hardware Accelerators for Proof of Space Computations
WO2017034811A1 (en) Secure computation environment
Mageshkumar et al. An improved secure file deduplication avoidance using CKHO based deep learning model in a cloud environment
Gupta et al. Detection of vulnerabilities in blockchain smart contracts: a review
US8844024B1 (en) Systems and methods for using tiered signing certificates to manage the behavior of executables
CN113728582A (zh) 中间装置和网络之间的安全通信
CN114626084A (zh) 用于控制对数据的访问的安全智能容器
US11468159B2 (en) Memory system
EP4288890A1 (en) Mechanism to support writing files into a file system mounted in a secure memory device
US20230396449A1 (en) Device identifier composition engine 3-layer architecture