KR20240032680A - 완전 동형 암호를 스토리지 장치와 통합하기 위한 시스템들 및 방법들 - Google Patents

완전 동형 암호를 스토리지 장치와 통합하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20240032680A
KR20240032680A KR1020230116417A KR20230116417A KR20240032680A KR 20240032680 A KR20240032680 A KR 20240032680A KR 1020230116417 A KR1020230116417 A KR 1020230116417A KR 20230116417 A KR20230116417 A KR 20230116417A KR 20240032680 A KR20240032680 A KR 20240032680A
Authority
KR
South Korea
Prior art keywords
statement
present disclosure
data
function
function device
Prior art date
Application number
KR1020230116417A
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
Priority claimed from US18/074,360 external-priority patent/US20230195372A1/en
Priority claimed from US18/108,578 external-priority patent/US20230198740A1/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20240032680A publication Critical patent/KR20240032680A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)

Abstract

복수-기능 장치(multi-function device)가 개시된다. 복수-기능 장치는 스토리지 장치와 통신하는 것을 위한 제1 커넥터, FHE(Fully Homomorphic Encryption) 회로와 통신하는 것을 위한 제2 커넥터, 및 호스트 프로세서와 통신하는 것을 위한 제3 커넥터를 포함한다. 복수-기능 장치는 제3 커넥터를 통해 호스트 프로세서에 스토리지 장치를 노출하도록 구성된다.

Description

완전 동형 암호를 스토리지 장치와 통합하기 위한 시스템들 및 방법들{SYSTEMS AND METHODS FOR INTEGRATING FULLY HOMOMORPHIC ENCRYPTION(FHE) WITH A STORAGE DEVICE}
본 개시는 일반적으로 스토리지 장치들에 관한 것이고, 보다 상세하게는, 스토리지 장치를 연산 스토리지 유닛과 통합하기 위한 장치에 관한 것이다.
스토리지 장치들에 의해 제공되는 용량의 증가와 함께, 애플리케이션들은 점점 더 많은 데이터를 처리할 수 있다. 처리해야 하는 애플리케이션을 위해 스토리지 장치로부터 메인 메모리로 큰 양들의 데이터를 전송하는 것은 상당한 양들의 시간을 요구할 수 있다. 또한, 호스트 프로세서가 그 데이터를 처리하기 위해 커맨드들을 실행하도록 하는 것은 호스트 프로세서에 부담이 될 수 있다.
데이터를 처리하는 것을 개선해야 할 필요성이 남아있다.
본 개시의 일 실시 예에 따르면, 완전 동형 암호(Fully Homomorphic Encryption)를 스토리지 장치와 통합하기 위한 시스템들 및 방법들이 제공된다
본 개시의 실시 예들은 복수-기능(Multiple-function) 장치를 포함한다. 상기 복수-기능 장치는 스토리지 장치들 및 완전 동형 암호 회로들을 지원한다. 상기 완전 동형 암호 회로들은 상기 스토리지 장치들 상 데이터의 프로세싱을 지원한다.
본 개시의 일 실시 예에 따르면, 완전 동형 암호를 스토리지 장치와 통합하기 위한 시스템들 및 방법들이 제공된다.
또한, 본 개시의 실시 예들은 FHE 회로들을 지원함으로써 스토리지 장치들 상의 데이터의 프로세싱 속도를 증가시킬 수 있고 그리고 애플리케이션들에 대한 더 낮은 응답 지연을 제공할 수 있다.
후술되는 도면들은 본 개시의 실시 예들이 어떻게 구현될 수 있는 지의 예들이고, 그리고 본 개시의 실시 예들을 제한하도록 의도되지 않는다. 본 개시의 개별 실시 예들은 특정 도면들 내에 도시되지 않은 요소들을 포함할 수 있고, 그리고/또는 특정 도면들 내에 도시된 요소들을 생략할 수 있다. 도면들은 예시를 제공하도록 의도되었고 그리고 축적이 맞지 않을 수 있다.
도 1은 본 개시의 실시 예들에 따른, 모듈식 스토리지 장치들 및/또는 연산 스토리지 장치들을 지원하기 위한 복수-기능(multiple-function) 장치를 포함하는 기계를 도시한다.
도 2는 본 개시의 실시 예들에 따른, 도 1의 기계의 세부사항들을 도시한다.
도 3은 본 개시의 실시 예들에 따른, 도 1의 복수-기능 장치의 세부사항들을 도시한다.
도 4는 본 개시의 실시 예들에 따른, 도 1의 스토리지 장치의 세부사항들을 도시한다.
도 5a는 본 개시의 실시 예들에 따른, 도 1의 연산 스토리지 유닛의 제1 예시 구현을 도시한다.
도 5b는 본 개시의 실시 예들에 따른, 도 1의 연산 스토리지 유닛의 제2 예시 구현을 도시한다.
도 5c는 본 개시의 실시 예들에 따른, 도 1의 연산 스토리지 유닛의 제3 예시 구현을 도시한다.
도 5d는 본 개시의 실시 예들에 따른, 도 1의 연산 스토리지 유닛의 제4 예시 구현을 도시한다.
도 6은 본 개시의 실시 예들에 따른, 도 1의 스토리지 장치 및/또는 도 1의 연산 스토리지 유닛으로 요청들을 전달하기 위해 도 1의 복수-기능 장치를 사용하는 것을 위한 예시 절차의 흐름도를 도시한다.
도 7은 본 개시의 실시 예들에 따른, 도 1의 스토리지 장치 및/또는 도 1의 연산 스토리지 유닛의 노출된 기능들을 식별하기 위해 도 1의 복수-기능 장치를 사용하는 것을 위한 예시 절차의 흐름도를 도시한다.
도 8은 본 개시의 실시 예들에 따른, 도 3의 비동기(asynchronous) 버퍼들을 사용하는 것의 예시 절차의 흐름도를 도시한다.
도 9는 본 개시의 실시 예들에 따른, 도 1의 연산 스토리지 유닛을 다른 연산 스토리지 유닛으로 대체하는 것을 위한 예시 절차의 흐름도를 도시한다.
도 10은 본 개시의 실시 예들에 따른, 도 1의 복수-기능 장치에 부착된 장치들 사이에서 요청들을 전달하기 위해 도 1의 복수-기능 장치를 사용하는 것을 위한 예시 절차의 흐름도를 도시한다.
도 11a는 본 개시의 실시 예들에 따른, 데이터를 공유하기 위해 도 1의 복수-기능 장치에 부착된 장치들을 위한 예시 절차의 흐름도를 도시한다.
도 11b는 본 개시의 실시 예들에 따른, 데이터를 공유하기 위해 도 1의 복수-기능 장치에 부착된 장치들을 위한 예시 절차의 도 11A의 흐름도를 계속한다.
도 12는 본 개시의 실시 예들에 따른, 도 1의 복수-기능 장치의 다른 실시 예를 도시한다.
도 13은 본 개시의 실시 예들에 따른, 도 1의 복수-기능 장치에 의해 사용될 수 있는 장치 구성들의 목록의 세부사항들을 도시한다.
도 14는 본 개시의 실시 예들에 따른, 도 1의 복수-기능 장치의 또 다른 실시 예를 도시한다.
도 15는 본 개시의 실시 예들에 따른, 소스로부터 요청을 수신하고 그리고 타겟으로 요청을 전달하는 도 1의 복수-기능 장치를 도시한다.
도 16은 본 개시의 실시 예들에 따른, 도 1의 복수-기능 장치에 부착된 장치들을 도 1의 프로세서에 노출시키는 것을 위한 예시 절차의 흐름도를 도시한다.
도 17은 본 개시의 실시 예들에 따른, 연산 스토리지 유닛이 어떻게 이용가능한지 결정하도록 도 1의 복수-기능 장치를 위한 예시 절차의 흐름도를 도시한다.
도 18은 본 개시의 실시 예들에 따른, 도 1의 프로세서에 어떤 장치들을 노출할지 결정하도록 도 1의 복수-기능 장치를 위한 예시 절차의 흐름도를 도시한다.
도 19는 본 개시의 실시 예들에 따른, 연결된 장치들 사이에서 메시지들을 전달하도록 도 1의 복수-기능 장치를 위한 예시 절차의 흐름도를 도시한다.
도 20은 본 개시의 실시 예들에 따른, 도 1의 프로세서로부터 도 3, 12, 및 14의 버퍼의 어드레스 레인지를 결정하도록 도 1의 복수-기능 장치를 위한 예시 절차의 흐름도를 도시한다.
도 21은 본 개시의 실시 예들에 따른, 도 3, 12, 및 14의 버퍼로부터 데이터를 액세스하도록 도 1의 복수-기능 장치에 부착된 장치들을 위한 예시 절차의 흐름도를 도시한다.
도 22는 본 개시의 실시 예들에 따른, 도 3, 12, 및 14의 버퍼 내의 데이터를 처리하도록 도 3, 12, 및 14의 데이터 프로세서를 위한 예시 절차의 흐름도를 도시한다.
도 23은 본 개시의 실시 예들에 따른, 타겟 장치 또는 도 3, 12, 및 14의 버퍼로 요청을 전달할지 결정하도록 도 1의 복수-기능 장치를 위한 예시 절차의 흐름도를 도시한다.
도 24는 본 개시의 실시 예들에 따른, 도 1의 복수-기능 장치에 부착된 새 장치를 처리하도록 도 1의 복수-기능 장치를 위한 예시 절차의 흐름도를 도시한다.
참조는 이제 본 개시의 실시 예들에 대해 상세히 만들어질 것이고, 예시들은 첨부되는 도면들에 설명되어 있다. 후술되는 상세한 설명에서, 다수의 구체적 세부사항들은 본 개시의 완전한 이해를 가능하게 하기 위해 제시될 것이다. 그러나, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자가 이러한 구체적 세부사항들 없이 본 개시를 실시할 수 있다고 이해되어야 한다. 다른 경우들에서, 널리-알려진 방법들, 절차들, 구성들, 회로들, 및 네트워크들은 실시 예들의 양상들을 불필요하게 모호하게 하지 않도록 상세하게 설명되지 않았다.
제1, 제2 등 용어들이 본 개시에서 다양한 요소들을 설명하기 위해 사용될 수 있지만, 이러한 요소들은 이러한 용어들에 의해 제한되어서는 안 된다고 이해될 것이다. 이러한 용어들은 오직 한 요소를 다른 요소로부터 구별하기 위해서만 사용된다. 예를 들어, 제1 모듈은 제2 모듈로 명명될 수 있고, 그리고, 유사하게, 제2 모듈은, 본 개시의 범위를 벗어나지 않으면서, 제1 모듈로 명명될 수 있다.
본 개시의 상세한 설명에서 사용된 용어는 특정한 실시 예들을 설명하는 것의 목적을 위한 것이고 그리고 본 개시의 한정으로 의도되지 않는다. 본 개시의 상세한 설명 및 첨부된 청구항들에서 사용된 바와 같이, 단수적 형태들은 문맥상 명백하게 달리 나타내지 않는 한, 복수적 형태들도 포함하도록 의도된다. 본 개시에서 사용된 “및/또는” 용어는 하나 이상의 관련된 나열된 항목들의 임의의 또는 모든 가능한 조합들을 지칭하고 그리고 포함하는 것으로 이해될 것이다. “포함하다” 및/또는 “포함하는” 용어들은, 이 명세서에서 사용될 때, 명시된 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 구성들의 존재를 열거하지만, 하지만 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 구성들, 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않는 것으로 더 이해될 것이다. 도면들의 구성들 및 특징들은 필연적으로 축적에 맞게 그려지지 않았다.
스토리지 장치들의 용량이 증가함에 따라, 애플리케이션에 의해 처리되어야 하는 데이터의 양도 증가할 수 있다. 애플리케이션의 구현을 잠재적으로 느리게 하면서, 스토리지 장치 및 메인 메모리 사이에서 이러한 데이터를 전송하기 위해 필요한 시간이 증가할 수 있다. 또한, 호스트 프로세서가 커맨드들을 실행하도록 하는 것은, 다른 커맨드들을 실행하기 위해 사용가능한 싸이클들을 감소시킬 수 있는, 호스트 프로세서에 부담을 줄 수 있다.
본 개시의 실시 예들은 복수-기능 장치(multi-function device)가 갖는 이러한 문제들을 해결한다. 복수-기능 장치는 하나 이상의 스토리지 장치들 및, 완전 동형 암호(FHE; Fully Homomorphic Encryption) 회로를 포함할 수 있는, 하나 이상의 연산 스토리지 유닛(computational storage unit)들을 지원할 수 있다. 하나 이상의 연산 스토리지 유닛들은 호스트 프로세서로부터 숨겨질 수 있고, 그리고 스토리지 장치들 및/또는 다른 연산 스토리지 유닛들에 의해 내부적으로 사용될 수 있다. 복수-기능 장치는 호스트 프로세서가 스토리지 장치들 및/또는 연산 스토리지 장치들을 직접적으로 액세스하는 것처럼 보이게 만드는 방식으로 호스트 프로세서로부터 숨겨지지 않은 스토리지 장치들 및/또는 연산 스토리지 유닛들을 호스트 프로세서에 노출시킬 수 있다.
FHE 회로와 같은 연산 스토리지 유닛들은 커넥터를 통해 복수-기능 장치에 연결될 수 있거나, 또는 그들은 복수-기능 장치 내에 통합될 수 있다. 스토리지 유닛들 또는 연산 스토리지 유닛들이 복수-기능 장치에 연결된 경우, 그들은 대체가능(replaceable)할 수 있다.
스토리지 장치들 및 FHE 회로와 같은 연산 스토리지 유닛들은 버퍼를 사용하여 데이터를 공유할 수 있다. 버퍼를 사용하는 것에 의해, 데이터는 호스트 관리 또는 개입 없이 공유될 수 있다. 버퍼는, 데이터를 순차적으로 또는 병렬로 데이터에 액세스하는 복수의 스토리지 장치들 및/또는 연산 스토리지 유닛들을 지원하는, 공유된 메모리처럼 작동할 수 있다.
도 1은 본 개시의 실시 예들에 따른, 데이터 차원수(data dimensionality)를 감소시키고 그리고 계산들을 수행하기 위한 가속기를 포함하는 기계를 도시한다. 도 1에서, 호스트 또는 시스템으로도 명명될 수 있는, 기계(105)은 프로세서(110), 메모리(115), 및 스토리지 장치(120)을 포함할 수 있다. 프로세서(110)는 임의의 다양한 프로세서일 수 있다. 프로세서(110)는 호스트 프로세서로도 불릴 수 있다. (프로세서(110)는, 이하에서 논의되는 다른 구성들과 함께, 설명의 편의를 위해 기계 외부에 도시되어 있다: 본 개시의 실시 예들은 기계 내에서 이러한 구성들을 포함할 수 있다.) 도 1이 싱글 프로세서(110)를 도시하는 동안, 기계(105)은 임의의 개수의 프로세서들을 포함할 수 있고, 이들의 각각은 싱글 코어 또는 멀티-코어 프로세서들일 수 있고, 이들의 각각은 (다른 가능성들 사이에서) RISC(Reduced Instruction Set Computer) 아키텍처 또는 CISC(Complex Instruction Set Computer) 아키텍처일 수 있고, 그리고 임의의 희망되는 조합에서 혼합될 수 있다.
프로세서(110)는 메모리(115)에 커플링될 수 있다. 메모리(115)는 플래시 메모리, DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), 영구 RAM(Persistent Random Access Memory), FRAM(Ferroelectric Random Access Memory), 또는 MRAM(Magnetoresistive Random Access Memory) 등과 같은 NVRAM(Non-Volatile Random Access Memory) 같은 임의의 다양한 메모리일 수 있다. 메모리(115)는, 희망에 따라, 휘발성 또는 비-휘발성 메모리일 수 있다. 메모리(115)는 상이한 메모리 타입들의 임의의 희망되는 조합일 수 있고, 그리고 메모리 컨트롤러(125)에 의해 관리될 수 있다. 메모리(115)는, 데이터가 연장된 주기(extended period)들을 위해 저장될 것으로 기대되지 않는, “단기(short-term)”로 명명될 수 있는 데이터를 저장하기 위해 사용될 수 있다. 단기 데이터의 예들은 임시 파일들, (다른 스토리지 장소들로부터 복사되었을 수 있는) 애플리케이션들에 의해 지역적으로(locally) 사용되고 있는 데이터, 및 기타 같은 종류의 것을 포함할 수 있다.
프로세서(110) 및 메모리(115)는 다양한 애플리케이션들이 동작하고 있는 운영 체제(operating system)도 지원할 수 있다. 이러한 애플리케이션들은 메모리(115)로부터 데이터를 읽거나 또는 메모리(115)로 데이터를 쓰기 위해 (커맨드들로 명명될 수도 있는)요청들을 발행할 수 있다. 스토리지 장치(120)가 어떤 종류의 파일 시스템을 통해 데이터를 읽거나 또는 쓰는 애플리케이션들을 지원하기 위해 사용될 때, 스토리지 장치(120)는 장치 드라이버(130)을 사용하여 액세스될 수 있다. 도 1이 하나의 스토리지 장치(120)를 도시하지만, 기계(105) 내에 임의의(하나 이상의) 개수의 스토리지 장치들이 있을 수 있다. 스토리지 장치(120)는, 예를 들어, NVMe(Non-Volatile Memory Express) 또는, CXL(Compute Express Link) 프로토콜 같은, 캐시 코히어런트 인터커넥트 프로토콜(cache coherent interconnect protocol)을 포함하는, 임의의 희망되는 프로토콜 또는 프로토콜들을 지원할 수 있다.
도 1이 일반적 용어인 “스토리지 장치”를 사용하고 있지만, 본 개시의 실시 예들은 하드 디스크 드라이브들 및 SSD(Solid State Drive)들을 포함할 수 있는 예들인, 연산 스토리지 유닛들의 사용으로부터 이익을 얻을 수 있는 임의의 스토리지 장치 포맷들을 포함할 수 있다. 아래의 “SSD”에 대한 임의의 참조는 본 개시의 그러한 다른 실시 예들을 포함하는 것으로 이해되어야 한다.
기계(105)은 (가속기 또는 장치로도 명명될 수 있는) 복수-기능 장치(135)도 포함할 수 있다. 아래에서 논의된 바와 같이, 복수-기능 장치(135)는 스토리지 장치(120) 및 연산 스토리지 유닛(14)에 대한 연결들을 지원할 수 있지만, 스토리지 장치(120) 및 연산 스토리지 유닛(140)이 단일 장치인 것처럼 프로세서(110)에 대해 역할을 할 수 있다. 복수-기능 장치(135)는 스토리지 장치(120) 및/또는 연산 스토리지 유닛(140) 내의 모듈성을 가능하게 할 수 있고, 스토리지 장치(120) 및/또는 연산 스토리지 유닛(140)은 복수-기능 장치(135)에 연결된 다른 구성들을 필연적으로 대체해야 하지 않고 추가되거나 또는 대체될 수 있다.
복수-기능 장치(135)는 임의의 희망되는 하드웨어를 사용하여 구현될 수 있다. 예를 들어, 복수-기능 장치(135), 또는 그것의 구성들은, 수개의 가능성들을 언급하자면, FPGA(Field Programmable Gate Array), ASIC(Application-Specific Integrated Circuit), CPU(central processing unit), SoC(System-on-a-Chip), GPU(graphics processing unit), GPGPU(general purpose GPU), DPU(data processing unit), NPU(neural processing unit), NIC(Network Interface Card), 또는 TPU(tensor processing unit)를 사용하여 구현될 수 있다. 복수-기능 장치(135)는 복수 기능 장치(135)를 구현하기 위해 이러한 요소들의 조합을 사용할 수도 있다.
연산 스토리지 유닛(140)은 임의의 희망되는 형태를 가질 수 있다. 복수-기능 장치(135)처럼, 연산 스토리지 유닛(140)은, 약간의 가능성들을 언급하자면, FPGA, ASIC, CPU, SoC, GPU, GPGPU, DPU, NPU, NIC, 또는 TPU를 사용하여 구현될 수 있다. 연산 스토리지 유닛(140)은 임의의 희망되는 기능 또는 기능들을 구현할 수 있다. 예를 들어, 연산 스토리지 유닛(140)은, 근거리-데이터(near data) 프로세싱을 수행하기 위해 설계된, 특수-목적 가속기를 구현할 수 있다. 연산 스토리지 유닛(140)은, 근거리-데이터 프로세싱을 수행하기 위해 기계(140)으로부터 프로그램을 수신하기 위해 설계된, 범용 가속기일 수도 있다. 연산 스토리지 유닛(140)은 여러 가능성들 중에서, 암호화 및/또는 복호화, 압축(compression) 및/또는 압축해제(decompression), 또는 네트워크 인터페이싱(network interfacing)과 같은, 다른 기능들도 구현할 수 있다.
연산 스토리지 유닛(140)을 사용하여 수행될 수 있는 암호화 및/또는 복호화의 특정한 예는 FHE일 수 있다. FHE는 암호화된 데이터를 복호화하지 않으면서 암호화된 데이터를 분석하는 것을 지원할 수 있다. 따라서 FHE는 고객 정보의 프라이버시 및 비밀을 보호할 수 있다. 연산 스토리지 유닛(140)이 FHE를 구현하기 위해 회로를 포함할 때, 기계(105)은, 메모리(115)에 데이터를 전송하지 않으면서, 데이터 근거리로 이 후 수행될 수 있는, 희망되는 프로세싱을 구현하기 위한 FHE 회로의 엔진에 명령어들을 다운로드할 수 있다.
도 1이, 스토리지 장치(120)에 액세스하기 위해 지원하는 것으로 상술된, 장치 드라이버(130)을 도시하지만, 기계(105)는 연산 스토리지 유닛(140) 및/또는 복수-기능 장치(135)를 위한 (도시되지 않은)장치 드라이버들도 포함할 수 있다. 즉, 본 개시의 실시 예들은 스토리지 장치(120), 연산 스토리지 유닛(140), 또는 복수-기능 장치(135)의 임의의 또는 모든 것을 지원하는 장치 드라이버(130)를 지원할 수 있고, 그리고 본 개시의 실시 예들은 이러한 구성들의 임의의 또는 모든 조합들을 지원하기 위해 추가적인 장치 드라이버들을 포함할 수 있다.
본 개시의 일부 실시 예들에서, 장치 드라이버(130)(및 연산 스토리지 유닛(140)을 지원하기 위한 것과 같은, 다른 장치 드라이버들)은 스토리지 장치(120) 및/또는 연산 스토리지 유닛(140)을 액세스하기 위해 응용 프로그래밍 인터페이스(API; application programming interface)들을 제공할 수 있다. 존재하는 장치 드라이버들을 지원하는 것에 의해, 존재하는 애플리케이션들은 애플리케이션들에 대한 변경 없이 (비록 본 개시의 실시 예들이 소프트웨어 스택 내의 다른 요소들에 대한 수정들을 포함할 수 있지만) 프로세서(110)에 의해 구현될 수 있다. 예를 들어, TPU는 TPU 장치 드라이버를 가질 수 있거나, 또는 GPU는 GPU 장치 드라이버를 가질 수 있다: TPU 또는 GPU의 기능들을 액세스하는 애플리케이션들은 존재하는 TPU 장치 드라이버 또는 GPU 장치 드라이버를 사용하기를 계속할 수 있다. 또한, 존재하는 장치 드라이버들을 지원하는 것에 의해, 연산 스토리지 장치(140)는 다른 제조업자에 의해 스토리지 장치(120) 및/또는 복수-기능 장치(135)로부터 제조되더라도, 임의의 연산 스토리지 유닛일 수 있다. 또한, 본 개시의 일부 실시 예들에서, 장치 드라이버(130)(또는 다른 장치 드라이버들)은 특허된 것일 수 있다.
본 개시의 일부 실시 예들은 스토리지 장치(120) 및/또는 연산 장치(140)와 통신하기 위해 임의의 희망되는 메커니즘(mechanism)을 포함할 수 있다. 예를 들어, 스토리지 장치(120) 및/또는 연산 장치(140)는 PCIe(Peripheral Component Interconnect Express) 버스와 같은 버스에 연결할 수 있거나, 또는 스토리지 장치(120) 및/또는 연산 장치(140)는 이더넷 인터페이스들 또는 일부 다른 네트워크 인터페이스를 포함할 수 있다. 스토리지 장치(120) 및/또는 연산 장치(140)에 대한 다른 잠재적 인터페이스들 및/또는 프로토콜들은, 다른 가능성들 중에서, NVMe, NVMe-oF(NVMe over Fabrics), CXL, RDMA(Remote Direct Memory Access), TCP/IP(Transmission Control Protocol/Internet Protocol), UFS(Universal Flash Storage), eMMC(embedded MultiMediaCard), 인피니밴드(InfiniBand), SCSI SAS(Serial Attached Small Computer System Interface), iSCSI(Internet SCSI), 및 SATA(Serial AT Attachment)를 포함할 수 있다.
기계(105)는 프로세서(110), 스토리지 장치(120), 및/또는 연산 스토리지 유닛(140)에 의해 어드레스지정가능한(addressable) 메모리 내의 어드레스들의 범위를 포함할 수 있다. 본 개시의 일부 실시 예들에서, 프로세서(110)는 스토리지 장치(120) 및/또는 연산 스토리지 유닛(140)으로 전송되기 위해 커맨드들과 연관될 수 있는 이 어드레스 레인지의 서브세트들을 할당할 수 있다. 또한, 프로세서(110)는 스토리지 장치(120) 및 연산 스토리지 유닛(140) 사이의 피어-투-피어(peer-to-peer) 통신을 위한 커맨드들과 연관될 수 있는 이 어드레스 레인지의 서브세트를 할당할 수 있다. 즉, 커맨드를 메모리(115) 내의 특정 어드레스와 연관시키는 것에 의해, 커맨드가 스토리지 장치(120)를 위해, 연산 스토리지 유닛(140)을 위해, 또는 스토리지 장치(120) 및 연산 스토리지 유닛(140) 사이에서 데이터를 전송하기 위해 의도된 것인지 결정하는 것이 가능할 수 있다. 메모리(115)는 그러한 물리적 어드레스를 포함하기 위한 충분한 메모리를 포함하지 않을 수 있지만, 메모리(115)는 그러한 어드레스를 포함하기 위한 실제로 충분한 메모리를 필연적으로 요구되지 않는 점에 유의한다. 예를 들어, 메모리(115)는 2 기가바이트(GB; gigabyte)들의 메모리를 포함할 수 있지만, 최대 4 GB의 메모리까지 어드레싱(addressing)을 지원할 수 있다. 2 GB 및 3 GB 사이의 어드레스들과 같은, 어드레스들의 서브세트는, 메모리(115)가 이러한 특정 어드레스들을 위한 요청을 처리하지 못할 수 있음에도 불구하고, 피어-투-피어 통신을 위한 커맨드들을 식별하기 위해 사용될 수 있다. 복수-기능 장치(135)는 커맨드에 배정된 어드레스에 기초하여 이러한 커맨드들을 식별할 수 있고, 그리고 프로세싱을 위한 이러한 커맨드들을 인터셉트(intercept)할 수 있다.
프로세서(110), 메모리(115), 스토리지 장치(120), 메모리 컨트롤러(125), 복수-기능 장치(135), 및 연산 스토리지 유닛(140)은, 임의의 희망되는 링크들 및 임의의 희망되는 프로토콜들을 사용하여, 임의의 희망되는 방식으로 연결될 수 있다. 예를 들어, 복수-기능 장치(135)는 PCIe 버스를 사용하고 그리고 NVME 프로토콜을 사용하여 프로세서(110), 메모리(115), 및 메모리 컨트롤러(125)에 연결할 수 있지만, 다른 버스들 또는 링크들 및 다른 프로토콜들이 사용될 수 있다. 스토리지 장치(120) 및 연산 스토리지 유닛(140)은 PCIe 버스를 사용하고 그리고 NVMe 프로토콜을 사용하여 복수-기능 장치(135)에 유사하게 연결할 수 있지만, 다른 버스들 또는 링크들(예를 들어, SCSI(Small Computer System Interface), (IDE로 알려진)병렬 ATA(Parallel AT Attachment), 하이퍼트랜스포트(HyperTransport), 인피니밴드(Infiniband), 및 다른 것들) 및 다른 프로토콜들이 사용될 수 있다. 동일한 버스들, 링크들, 또는 프로토콜들이 사용되는 것도 요구되지 않는다: 스토리지 장치(120) 및 연산 스토리지 유닛(140)은 다른 버스들, 링크들, 또는 프로토콜들을 사용하여 복수-기능 장치(135)에 연결할 수 있다(그리고 각각 다른 버스들, 링크들, 또는 프로토콜들을 사용할 수 있다). 본 개시의 실시 예들은 도 1의 구성들이 어떻게 연결되었는지 그리고 어떻게 그들이 서로와 통신하는지에 관한 임의의 및 모든 변형들을 포함하기 위해 의도되었다.
도 2는 본 개시의 실시 예들에 따른, 도 1의 기계(105)의 세부사항들을 도시한다. 도 2에서, 전형적으로, 기계(105)은, 기계의 구성들의 동작들을 조정하기 위해 사용될 수 있는, 메모리 컨트롤러들(120) 및 클럭들(205)를 포함할 수 있는, 하나 이상의 프로세서들(105)을 포함한다. 프로세서들(110)은, 예로써, RAM(random access memory), ROM(read-only memory), 또는 다른 상태 보전 매체(state preserving media)를 포함할 수 메모리들(115)에 커플링될 수도 있다. 프로세서들(110)은 스토리지 장치들(125)에, 그리고, 예를 들어, 이더넷(Ethernet) 커넥터 또는 무선 커넥터일 수 있는, 네트워크 커넥터(201)에 커플링될 수도 있다. 프로세서들(110)은, 다른 구성들 중에서, 입력/출력(I/O; Input/Output) 엔진들(225)을 사용하여 관리될 수 있는 사용자 인터페이스들(220) 및 I/O 인터페이스 포트들에 부착될 수 있는, 버스들(215)에 연결될 수도 있다. 사용자 인터페이스들(220) 및 I/O 엔진들(225)를 사용하여 관리될 수 있는 예시 구성들은, 다른 가능성들 중에서, 키보드, 마우스, 프린트, 및 디스플레이 스크린을 포함할 수 있다.
도 2는 도 1에서 도시된 구성들의 일부의 대체적인 도면을 도시한다: 도 2에서 도시되지 않은 구성들(예를 들어, 도 1의 복수-기능 장치(135))도 포함될 수 있다. 도 2는 도 1로부터 다르기 위해 의도되지 않지만, 단지 어떻게 도시된 다양한 구성들이 배열될 수 있는지의 대체적인 관점을 제시하기 위해 의도된다. 또한, 다른 구성들이 추가될 수 있다: 예를 들어, 다른 구성들이 버스들(215)에 연결할 수 있다.
도 3은 본 개시의 실시 예들에 따른, 도 1의 복수-기능 장치(135)의 세부사항들을 도시한다. 도 3에서, 복수-기능 장치(135)는 커넥터(305)를 포함할 수 있다. 커넥터(305)는 도 1의 프로세서(110)와 통신하기 위해 사용될 수 있는 버스에 대한 연결을 제공할 수 있다. 예를 들어, 커넥터(305)는 PCIe 버스에 대한 연결을 제공할 수 있지만, 다른 버스들도 사용될 수 있다.
엔드포인트(310)는 커넥터(305)에 연결(또는 그 일부로서 구현)될 수 있다. 엔드포인트(310)는 도 1의 프로세서(110)으로부터의 쿼리들을 위한 엔드포인트로써 기능할 수 있다. 엔드포인트(310)는, 아래에서 더 논의되는 바와 같이, 커넥터들(315, 320)과 같은, 복수-기능 장치(135)의 다른 커넥터들에 부착된 장치들의 기능들을 노출할 수 있다.
비동기 버퍼(325)는 엔드포인트(310) 및/또는 커넥터(305)에 연결될 수 있다. 비동기 버퍼(325)는 도 1의 호스트 프로세서(110) 및 복수-기능 장치(135)에 연결된 다른 장치들 사이에서 교환되기 위한 요청들, 메시지들, 및/또는 데이터를 위한 랜딩 포인트(landing point)로써 동작할 수 있다. 비동기 버퍼(325)는 비동기 버퍼(325)가 프로세서(110)과 다른 클럭 싸이클(clock cycle)에서 동작할 수 있다는 점에서 비동기일 수 있다. 즉, 도 1의 프로세서(110)는, 도 1의 프로세서(110) 로부터 수신했을 때 비동기 버퍼(325)에 쓰기될 수 있는, 요청, 메시지, 또는 데이터를 도 1의 프로세서(110)의 클럭 싸이클에 기초하여 전송할 수 있다; 요청, 메시지, 또는 데이터는 이 후 복수-기능 장치(135)의 클럭 싸이클에 의해 통제되는 시간에 비동기 버퍼(325)로부터 읽기될 수 있다. 비동기 버퍼(325)를 포함하는 것에 의해, 복수-기능 장치(135)는 프로세서(1330)과 동일한 클럭에 동작할 필요로 하는 것을 피할 수 있다.
본 개시의 일부 실시 예들에서, 복수-기능 장치(135)는 도 1의 프로세서(110)과 동일한 클럭 싸이클을 사용하여 동작할 수 있다는 점에 유의한다. 본 개시의 이러한 실시 예들에서, 비동기 버퍼(325)는 완전히 생략되거나, 또는 (도 1의 프로세서(110)으로부터 수신되거나 또는 이것으로 전송될 요청들, 메시지들, 및/또는 데이터의 일시적 스토리지를 허용하기 위해)동기 버퍼(synchronous buffer)와 대체될 수 있다.
멀티플렉서/디멀티플렉서(330)는 비동기 버퍼(325)에 연결될 수 있다. 멀티플렉서/디멀티플렉서(330)는 비동기 버퍼(325)로부터 요청들, 메시지들, 및/또는 데이터를 액세스할 수 있다. 멀티플렉서/디멀티플렉서(330)는 이 후 복수-기능 장치(135)에 연결된 어떤 장치가 요청, 메시지, 또는 데이터가 의도되었는지 결정할 수 있고, 그리고 그에 따라 요청, 메시지, 또는 데이터를 라우팅할(route) 수 있다. 이 기능을 달성하기 위해, 멀티플렉서/디멀티플렉서(330)은, 각각이 복수-기능 장치(135)에 연결된 특정 장치에 요청, 메시지, 또는 데이터를 궁극적으로 전달할 수 있는, 브릿지들(335, 340)에 연결될 수도 있다. 본 개시의 다른 실시 예에서, 멀티플렉서/디멀티플렉서(330)은 2개 이상의 브릿지들과 통신할 수 있다. 멀티플렉서/디멀티플렉서(330)가 특정 요청이 어떤 브릿지에 전달되어야 하는지 어떻게 결정할 수 있는지는 아래에서 더 논의된다.
브릿지들(335, 340)은 각각 비동기 버퍼들(345, 350)에 연결될 수 있다. 비동기 버퍼들(345, 350)은, 비동기 버퍼(325)와 같이, 복수-기능 장치(135)를 커넥터들(315, 320)에 연결된 다양한 장치들과 다른 클럭 싸이클에서 동작하도록 할 수 있다. 또한, 비동기 버퍼(325)와 같이, 본 개시의 일부 실시 예들에서 복수-기능 장치(135)는 커넥터들(315 및/또는 320)에 연결된 장치들과 동일한 클럭 싸이클을 사용하여 동작할 수 있다. 본 개시의 이러한 실시 예들에서, 비동기 버퍼들(345 및/또는 350)은 완전히 생략되거나, 또는 (커넥터들(315 및/또는 320)에 연결된 장치들로부터 수신되거나 장치들로 전송될 요청들, 메세지들, 및/또는 데이터의 임시적 스토리지를 허용하기 위해)동기 버퍼들로 대체될 수 있다.
루트 포트들(355 및 360)은 비동기 버퍼들(345 및 350)에 각각 연결될 수 있다(그리고 커넥터들(315 및 320)의 일부로서 각각 구현될 수 있다). 루트 포트들(355 및 360)은 커넥터들(315 및 320)에 연결된 장치들과 각각 통신할 수 있다. 예를 들어, 도 1의 스토리지 장치(120)는 커넥터(315)에 연결될 수 있고, 그리고 도 1의 연산 스토리지 장치(140)는 커넥터(320)에 연결될 수 있다.
루트 포트들(355 및 360)은 커넥터들(315 및 320)에 연결된 장치들에 대한 정보를 위해 이들 장치들에 질의할 수 있다. 예를 들어, 커넥터들(315 또는 320)에 연결된 장치들은 장치들에 대해 이루어질 수 있는 요청들을 식별하는 다양한 기능들을 노출할 수 있다.
본 개시의 일부 실시 예들에서, 이들 기능들은 하나 이상의 물리적 기능(PF; physical function)들 및/또는 하나 이상의 가상의 기능(VF; virtual function)들을 포함할 수 있다. 각 PF는 장치에 의해 제공된 기능과 같은 리소스를 나타낼 수 있다. 각 VF는 PF와 관련되어 있지만, “가상화된” 기능을 나타낼 수 있다. 즉, 주어진 PF에 대해 하나 이상의 VF들이 있을 수 있다. PF들 및 VF들은 장치들이 나열될 때 발견될 수 있다. 이 나열은 도 1의 프로세서(110)보다는 루트 포트들(355 및 360)에 의해 수행될 수 있다. PF들, VF들, 엔드포인트들, 및 루트 포트들이 일반적으로 PCIe 장치들과 관련된 개념들일 때, 본 개시의 실시 예들은 다른 버스들에 연결하는 장치들을 사용할 때 유사한 개념들을 포함할 수 있다.
PF들 및 VF들이 나열되면, 이 정보는 브릿지들(335 및 340)에 제공될 수 있고, 그리고 궁극적으로 멀티플렉서/디멀티프렉서(330) 및/또는 엔드포인트(310)에 다시 제공될 수 있다. 이러한 방식으로, 엔드포인트(310)는 커넥터들(315 및 320)에 연결된 다양한 장치들의 기능들(PF들, VF들, 또는 둘 다)을 노출할 수 있다. 커넥터들(315 및 320)에 연결된 장치들(예를 들어, 동일한 기능 식별자들)에 의해 노출된 기능들 사이에 임의의 충돌들이 있는 경우, 멀티플렉서/디멀티플렉서(330) 및/또는 엔드포인트(310)는 그러한 충돌들을 피하기 위해 나열들을 변경할 수 있다. 예를 들어, 장치들은 0에서 시작하는 기능들을 나열할 수 있다. 커넥터들(315 및 320)에 연결된 장치들에 0에서 시작하는 기능 번호가 할당된 경우, 멀티플렉서/디멀티플렉서(330)는 기능 번호 0과 관련된 특정 요청이 어떤 장치를 위해 의도된 것인지 결정하지 못할 수 있다. 따라서 예를 들어, 커넥터(315)에 연결된 장치가 3개의 PF들을 갖고 그리고 커넥터(320)에 연결된 장치가 2개의 PF들을 갖는 경우, 멀티플렉서/디멀티플렉서(330)는 숫자들 0, 1, 및 2를 사용하여 PF들을 커넥터(315)에 연결된 장치에 할당할 수 있고, 그리고 숫자들 3 및 4를 사용하여 커넥터(320)에 연결된 장치에 PF들을 할당할 수 있다. 2개의 PF들이 동일한 번호로 할당되지 않는 한, 멀티플렉서/디멀티플렉서(330)는 임의의 원하는 방식으로 기능들을 매핑할 수 있다. 또한, 커넥터들(315 및/또는 320)에 연결된 장치들에 의해 노출된 VF들은 VF들 또는 PF들로 노출될 수 있다(즉, 장치들의 VF들은 복수-기능 장치(135)에 의해 노출된 PF들로 매핑할 수 있다).
이러한 이해와 함께 멀티플렉서/디멀티플렉서(330)의 동작은 이제 이해될 수 있다. 도 1의 프로세서(110)로부터 커넥터(305)를 통해 요청, 메시지, 또는 데이터를 수신하자마자, 멀티플렉서/디멀티플렉서(330)는 데이터가 관련된 기능의 식별자를 결정할 수 있다. 예를 들어, 요청이 도 1의 스토리지 장치(120)을 위해 의도된 쓰기 요청인 경우, 멀티플렉서/디멀티플렉서(330)는 쓰기 요청 내에서 쓰기 기능을 식별할 수 있고, 그리고 도 1의 스토리지 장치(120)에 그 쓰기 기능을 내부적으로 매핑할 수 있다. 멀티플렉서/디멀티플렉서(330)는 이 후에 어떤 브릿지가 도 1의 스토리지 장치(120)로 연결될 수 있는지에 따라 브릿지(335) 또는 브릿지(340)로 쓰기 요청을 라우팅할 수 있다. 커넥터들(315 및 320)에 부착된 장치들의 노출된 기능들이 복수-기능 장치(135)에 의해 어떻게 노출되는지에 대한 추가 정보는 2020년 01월 21일에 출원된, 미국 가 특허 출원 번호 62/964,114 호 및 2019냔 06월 24일에 출원된 미국 가 특허 출원 번호 62/865,962 호를 기초로 우선권을 주장하는 2020년 04월 10일에 출원되었고, 현재 계류중인 미국 특허 출원 번호 16/846,271 호에서 찾을 수 있고, 이들 모두가 모든 목적들을 위해 참조에 의해 포함된다.
엔드포인트(310) 및 루트 포트들(355 및 360)은 PCIe 포트들의 예시들일 수 있고, 그리고 PCIe 버스들에 연결하는 복수-기능 장치(135)와 함께 본 개시의 실시 예들과 함께 사용될 수 있다. 다른 버스들에 연결하는 복수-기능 장치(135)를 연결하는 실시 예들에서, 엔드포인트(310) 및 루트 포트들(355 및 360)은 다른 동등한 구성들로 대체될 수 있거나, 또는 해당 아키텍처에서 필요하지 않는 경우 생략될 수 있다.
도 3이 복수-기능 장치(135)를 도 1의 프로세서(110), 도 1의 스토리지 장치(120), 및 연산 스토리지 유닛(140)에 연결할 수 있는 세 커넥터들(305, 315, 및 320)을 포함할 수 있는 것으로 도시하는 경우, 본 개시의 실시 예들은 임의의 수의 커넥터들을 포함할 수 있다. 예를 들어, 복수-기능 장치(135)는 네 개 이상의 커넥터들을 포함할 수 있다. 추가적인 커넥터들은 추가적인 스토리지 장치들 및/또는 연산 스토리지 유닛들에 연결할 수 있다. 또한, 커넥터들(315 및 320)과 같은 커넥터들을 통해 복수-기능 장치(135)에 연결된 임의의 수(하나 이상의) 스토리지 장치들 및/또는 임의의 수(하나 이상의) 연산 스토리지 유닛들이 있을 수 있다. 복수-기능 장치(135)에 연결된 스토리지 장치들의 수가 복수-기능 장치(135)에 연결된 연산 스토리지 유닛들의 수와 동일해야 할 필요가 없다. 복수-기능 장치(135)가 커넥터들(315 및 320)보다 커넥터들을 더 포함하는 경우, 복수-기능 장치(135)는 브릿지들(335 및 340)들과 같은 추가적인 브릿지들, 비동기 버퍼들(345 및 350)과 같은 추가적인 비동기 버퍼들, 및 루트 포트들(355 및 360)과 같은 추가적인 루트 포트들을 포함할 수도 있다.
도 3은 브릿지(340) 및 비동기 버퍼(350) 사이에 개재될 수 있는 멀티플렉서/디멀티플렉서(365)도 포함할 수 있다. 멀티플렉서/디멀티플렉서(365)는 커넥터들(315 및 320)에 연결된 장치들 사이의 피어-투-피어 통신 내에 사용될 수 있다. 즉, 멀티플렉서/디멀티플렉서(365)를 사용하여, 도 1의 프로세서(110)를 (커넥터(305)를 통해) 통과하는 그러한 통신들을 가지는 것 없이 커넥터(315)에 부착된 장치와 통신하는 것이 커넥터(320)에 부착된 장치에게 가능할 수 있다. 이 결과를 성취하기 위해, 멀티플렉서/디멀티플렉서(365)는 멀티플렉서/디멀티플렉서(365)에서 수신된 요청, 메시지, 또는 데이터를 예로 들 수 있다. 멀티플렉서/디멀티플렉서(365)는 이 후에 커넥터(320)에 연결된 장치로부터 수신된 그러한 요청들, 메시지들, 또는 데이터에 대한 임의의 응답들을 식별할 수 있고, 그리고 원래의 요청, 메시지, 또는 데이터를 발행한 구성에게 그러한 응답들을 반환할 수 있다. 예를 들어, 멀티플렉서/디멀티플렉서(365)는 요청, 메시지, 또는 데이터의 식별자 및 요청, 메시지, 또는 데이터가 수신된 소스를 결정할 수 있다. 이 후에, 멀티플렉서/디멀티플렉서(365)가 그 식별자와 연관된 커넥터(320)에 연결된 장치로부터 응답을 수신한 경우, 멀티플렉서/디멀티플렉서(365)는 적절한 구성으로 응답을 보낼 수 있다.
상술한 바와 같이, 본 개시의 일부 실시 예들에서, 커넥터들(315 및 320)에 연결된 장치들은 PCIe 장치들일 수 있다. 본 개시의 이러한 실시 예들에서, 멀티플렉서/디멀티플렉서(365)는 트랜잭션 레이어 패킷(TLP; Transaction Layer Packet)들을 처리할 것으로 예상할 수 있다.
복수-기능 장치(135)에 연결된 둘 이상의 장치들을 지원하는 본 개시의 일부 실시 예들에서, 복수-기능 장치(135)에 부착된 장치들과 연관된 멀티플렉서/디멀티플렉서(365)와 같은 멀티플렉서/디멀티플렉서가 있을 수 있다. 본 개시의 일부 실시 예들에서, 그러한 멀티플렉서/디멀티플렉서는 브릿지(340)과 같은 브릿지 및 모든 장치들을 위한 비동기 버퍼(350)과 같은 비동기 버퍼 사이에 개재될 수 있다. 본 개시의 일부 실시 예들에서, 그러한 멀티플레서/디멀티플렉서는 브릿지 및 도 1의 연산 스토리지 유닛(140)과 같은 연산 스토리지 유닛을 위한 비동기 버퍼, 또는 브릿지 및 도 1의 스토리지 장치(120)과 같은 스토리지 장치들을 위한 비동기 버퍼 사이에 개재될 수 있다. 멀티플렉서/디멀티플렉서는 또한 다양한 구성들 사이에 개제되어 구성들 간의 통신을 허용할 수도 있다. 본 개시의 실시 예들은 또한 구성들 사이의 통신을 위한 다양한 다른 경로들을 지원하도록 하나 이상의 멀티플렉서/디멀티플렉서를 포함할 수도 있다. 본 개시의 일부 실시 예들에서, 모든 구성들은 모든 다른 구성들과 통신할 수 있다. 본 개시의 다른 실시 예들에서, 일부 구성들만이 일부 다른 구성들과 통신할 수 있다. 멀티플렉서/디멀티플렉서(365) 및 유사한 멀티플렉서들/디멀티플렉서들은 다양한 쌍들의 장치들 사이의 데이터의 교환을 지원하기 위해, 브릿지들(335 및 340)과 같은 일부 또는 모든 브릿지들에 연결될 수 있는 점에 유의한다.
멀티플렉서/디멀티플렉서(365)는 요청들, 메시지들, 및/또는 데이터를 커넥터(315)에 부착된 장치, 및 커넥터(305)에 부착된 도 1의 프로세서(110)로부터 수신할 수 있는 점에 유의한다. 본 개시의 일부 실시 예들에서, 멀티플렉서/디멀티플렉서(364)에 의해 도 1의 프로세서(110) 및 커넥터(315)에 부착된 장치로부터 수신된 요청들은 요청을 식별하는 태그들을 포함할 수 있다. 예를 들어, 읽기 요청들은 요청을 식별하는 태그를 포함할 수 있다. 즉, 동일한 태그와 연관된 데이터가 반환될 수 있다. 그러한 태그된 요청들이 하나의 소스만으로부터 수신된 경우, 태그들은 충돌하지 않을 것으로 기대될 수 있다. 예를 들어, 멀티플렉서/디멀티플렉서(365)는 도 1의 프로세서(110)가 두 다른 읽기 요청들에 동일한 태그를 할당하지 않을 것을 합리적으로 상정할 수 있다. 하지만 요청들이 복수의 소스들로부터 수신된 경우, 복수의 소스들이 그들의 태그들의 사용을 조정하지 않는 경우, 하나의 소스로부터 수신된 요청은 다른 소스로부터 수신된 요청과 동일한 태그를 갖는 것이 발생할 수 있다. 도 1의 연산 스토리지 유닛(140)으로부터 데이터를 수신하는 즉시, 멀티플렉서/디멀티플렉서(365)는 어떤 장치가 읽기 요청을 시작했는지 구별할 수 없을 수 있다. 이 상황은 충돌일 수 있다.
그러한 충돌이 회피될 수 있는 다양한 방법들이 있다. 하나의 해법은 한 시점에 하나의 소스로부터만의 요청을 처리하고, 그리고 다른 소스는 제1 소스로부터의 요청들이 활성화되지 않을 때까지 대기하는 것일 수 있다. 하지만 이 해법은 최상의 성능을 제공하지 않을 수 있다. 다른 해법은 임의의 시점에 고유한 태그들을 갖는 요청들만 활성화되도록 허용하는 것일 수 있다. 따라서, 각 요청이 임의의 다른 활성화된 요청들로부터 다른 태그를 갖는 한, 요청은 처리될 수 있다. 요청이 다른 활성화된 요청과 관련된 태그를 복제하는 경우, 새 요청은 그 태그를 갖는 활성화된 요청이 완료될 때까지 버퍼(buffer)될 수 있다. 이 해법은 더 나은 성능을 제공할 수 있다. 다른 해법은 멀티플렉서/디멀티플렉서(365)가 다양한 소스들에 의해 사용될 수 있는 태그들을 제공하기 위한 것일 수 있다. 각 소스가 다른 소스에 할당된 태그들의 세트와 교차하지 않는 태그들의 세트를 제공받는 한, 태그 충돌은 회피될 수 있다. 다른 해법은 멀티플렉서/디멀티플렉서(365)가 각 소스로부터의 태그들을 새 태그들에 매핑하는 인다이렉트(indirection)의 레벨을 도입하는 것일 수 있다. 요청이 수신되는 경우, 태그는 매핑될 수 있고 그리고 원래 태그로부터 새 태그로의 매핑은 멀티플렉서/디멀티플렉서(365) 내의 테이블에 저장될 수 있다. 요청이 완료된 경우, 멀티플렉서/디멀티플렉서(365)는 응답과 함께 수신된 새로운 태그로부터 원래 태그를 결정할 수 있다.
그러한 동작들을 지원하기 위해, 브릿지(335)는 또한 (커넥터(305)를 통해 수신된 바와 같이 도 1의 프로세서(110) 또는 커넥터(315)에 연결된 장치로부터 수신되는지) 요청들, 메시지들, 또는 데이터를 멀티플렉서/디멀티플렉서(365)에 다이렉팅(direct)할 수도 있다. 이 해법은, 예를 들어, 커넥터들(315 및 320)에 부착된 장치들이 다이렉트 메모리 액세스(DMA, direct memory access)을 지원하는 경우, 발생할 수 있다. 예를 들어, 도 1의 스토리지 장치(120)가 커넥터(315)에 연결되고 그리고 도 1의 연산 스토리지 유닛(140)가 커넥터(320)에 연결되었다고 가정한다. 도 1의 연산 스토리지 유닛(140)이 메모리(예를 들어 DRAM)를 포함하고 그리고 도 1의 스토리지 장치(120)가 그 메모리에 데이터를 쓰기할 수 있는 DMA 요청을 발행할 수 있는 경우, 브릿지(335)는 DMA 요청을 (멀티플렉서/디멀티플렉서(330)보단) 멀티플렉서/디멀티플렉서(365)에 다이렉팅할 수 있다. 이러한 방식으로 도 1의 프로세서(110)는 요청이 더 신속하게 처리되는 결과를 야기할 수 있는 바이패스(bypass)될 수 있다.
도 1의 스토리지 장치(120) 또는 도 1의 연산 스토리지 유닛(140) 중 하나가 다른 것으로부터 데이터를 직접 읽는 것 또는 쓰는 것은 유용하지만, 이것은 항상 가능하거나 또는 실용적이지 않다. 예를 들어, DMA를 지원하기 위해, 제1 장치는 메모리를 필요할 수 있고, 그리고 다른 장치는 (제1 장치 내의) 메모리로부터 데이터를 읽거나 또는 (제1 장치 내의) 메모리에 데이터를 쓰기 위해 회로를 필요할 수 있다. 어느 하나의 요소가 부족한 경우(예를 들어, 도 1의 연산 스토리지 유닛(140)이 도 1의 스토리지 장치 내의 메모리를 읽거나 또는 쓰기 위해 메모리 또는 회로를 포함하지 않는 경우), DMA가 이 후에 가능하지 않을 수 있다.
또한, DMA가 사용되는 경우, 이 후에 장치들은, 프로세싱 없이, 데이터를 저장된 대로 처리해야 필요가 있을 수 있다. 데이터가 사용되기 전에 데이터가 프로세싱이 필요할 수 있는 경우, DMA는 선택지가 아닐 수 있다. 예를 들어, 비디오 데이터를 처리하기 위해 동작하는 도 1의 연산 스토리지 유닛(140)을 고려한다. 도 1의 연산 스토리지 유닛(140)이 데이터가 특정한 포맷―예를 들어, MPEG(Moving Picture Experts Group) 포맷―일 것을 기대하지만 데이터는 다른 포맷―예를 들어 WMV(Windows Media Video) 포맷―인 경우, 도 1의 연산 스토리지 유닛(140)은 데이터가 먼저 트랜스코딩(transcode)되지 않으면 데이터를 처리하지 못 할 수 있다. 또는 테이블 내의 데이터가 열(column) 포맷으로 저장되지만 도 1의 연산 스토리지 유닛(140)은 테이블이 행(row) 포맷으로 저장되는 것으로 기대하는 경우, 도 1의 연산 스토리지 유닛(140)이 데이터를 처리할 수 있기 전에 테이블은 전치(transpose)될 필요가 있을 수 있다.
도 1의 스토리지 장치(120)가 도 1의 연산 스토리지 유닛(140)에 의해 사용될 수 있는 포맷인 데이터를 처리할 수 있도록 도 1의 스토리지 장치(120)가 데이터를 처리할 수 있는 프로세서를 포함하는 경우, 도 1의 스토리지 장치(120)는 DMA가 데이터를 도 1의 스토리지 장치(120)로부터 도 1의 연산 스토리지 유닛(140)으로 데이터를 전송하기 위해 사용되기 전에 데이터를 처리할 수 있다. 하지만 다른 접근이 사용될 수도 있다.
버퍼(370)는 커넥터들(315 및 320)에 연결된 장치들 사이에서 전송되는 데이터를 저장하기 위해 사용될 수 있다. 데이터가 버퍼(370) 내에 저장되면, 데이터 프로세서(375)는 이 후에 목적지 장치로 전송하기 전에 데이터를 적절하게 처리할 수 있다. 버퍼(370) 내의 데이터가 데이터 프로세서(375)에 의해 처리되면, 처리된 데이터는 목적지 장치로 전송될 수 있다. 본 개시의 일부 실시 예들에서, DMA는 버퍼(370)에 데이터를 쓰거나 또는 버퍼(370)로부터 데이터를 읽기 위해 장치들에 의해 사용될 수 있다. 버퍼(370)는 예를 들어, DRAM, SRAM 등과 같은, 스토리지의 임의의 희망 되는 형태를 사용할 수 있거나, 또는 온-칩(on-chip) 또는 오프-칩(off-chip)일 수 있다.
버퍼(370)는, 버퍼(370)로부터 데이터를 읽거나 또는 버퍼(370)에 데이터를 쓰기 위해 도 1의 스토리지 장치(120) 또는 도 1의 연산 스토리지 유닛(140)에 의해 사용될 수 있는, 연관된 어드레스 레인지를 가질 수 있다. 버퍼(370)는 복수-기능 장치(135) 자체에 의해 결정될 수 있거나, 또는 도 1의 프로세서(110)에 의해 할당될 수 있다.
브릿지들(335 및 340)은 어드레스에 액세스하기 위한 특정 요청이 도 1의 메모리(115) 또는 버퍼(370)를 수반하는지 결정하기 위해 버퍼(370)의 어드레스 레인지를 사용할 수 있다. 따라서, 예를 들어, 브릿지(335)가 특정 어드레스로부터 데이터를 읽거나 또는 특정 어드레스로 데이터를 쓰는 요청을 수신한 때, 브릿지(335)는 요청을 검사하고 그리고 어드레스가 버퍼(370)와 연관되었는지 결정할 수 있다. 연관되어 있는 경우, 이 후에 브릿지(335)는 요청을 도 1의 프로세서(110)에 전달하는 것보다 요청을 버퍼(370)에 다이렉팅할 수 있다. 다시 말하면, 브릿지(335)는 도 1의 프로세서로 요청을 전달하는 것보다 브릿지(335)가 버퍼(370)내의 어드레스에 대한 요청을 처리할 수 있다. 브릿지(335)에 의해 요청을 처리하는 것은 데이터가 읽기되거나, 쓰기되거나, 또는 삭제되기 위한 것인지 결정하는 것, 및 적절한 동작을 수행하는 것을 수반할 수 있다. 브릿지(335)는 요청을 검사하는 것에 의해 요청 자체를 처리할지 결정할 수 있다. 예를 들어, 요청이 버퍼(370)과 연관된 어드레스의 데이터를 읽거나, 쓰거나, 또는 삭제하는 경우, 도 1의 프로세서(110) 또는 도 1의 메모리(115)에 요청을 전송하는 것은, 데이터가 버퍼(370) 내에 있기 때문에, 도 1의 프로세서(110) 또는 도 1의 메모리(115)가 다른 요청을 전송하는 것을 초래할 수 있다. 요청 자체를 처리하는 것에 의해, 브릿지(335)는 도 1의 프로세서(110) 또는 도 1의 메모리(115)에 요청들을 전송받고 그리고 전송한는 것을 피할 수 있다. 이는 도 1의 기계(105)의 더 효율적인 동작을 초래할 수 있다. 브릿지(340)는 유사하게 버퍼(370)에 요청들을 리다이렉팅할 수 있다. 도 1의 스토리지 장치(120) 및/또는 도 1의 연산 스토리지 유닛(140)(또는 커넥터들(315 및 320)에 연결될 수 있는 모든 장치들)은 그들의 요청들이 버퍼((370)에 리다이렉팅되었다는 사실에 대해 불가지론적일 수 있는 점에 유의한다. 장치들에 관한 한, 요청들은 도 1의 메모리(115) 내에서 발생한다.
데이터 프로세서(375)는 버퍼(370) 내의 데이터에 대한 임의의 희망 되는 프로세싱을 수행할 수 있다. 데이터 프로세서(375)는 일부 기대되는 프로세싱을 수행하기 위해 회로 및/또는 소프트웨어를 포함할 수 있다. 하지만 데이터 프로세서(375)는 도 1의 프로세서(110)에 의해 명령된 프로세싱을 지원하기에 일반적으로 충분할 수도 있다. 즉, 도 1의 프로세서(110)은, 데이터를 목적지 장치에 의해 기대되는 포맷으로 변환하기 위해 버퍼(370) 내의 프로그램을 이 후에 수행할 수 있는, 데이터 프로세서(375)에 프로그램을 다운로드할 수 있다.
상술한 바와 같이, 본 개시의 일부 실시 예들에서 데이터 프로세싱은 데이터를 수신하기 위해 지정된 장치를 위한 적절한 포맷으로 데이터를 넣기 위해 수행될 수 있다. 하지만 본 개시의 일부 실시 예들에서, 데이터 프로세싱은 데이터를 수신하기 위해 지정된 장치가 데이터를 처리할 수 있는 경우라도 수행될 수 있다. 예를 들어, 데이터는 이미 목적지 장치에 허용될 수 있는 포맷일 수 있지만, 더 최적의 포맷이 있을 수 있다. 본 개시의 그러한 실시 예들에서, 데이터가 이미 목적지 장치에 허용될 수 있는 포맷이더라도 데이터 프로세서(375)는 데이터를 처리할 수 있다.
일부 실시 예들에서, 도 1의 프로세서(110)은 스케줄러로서 동작할 수 있다. 본 개시의 그러한 실시 예들에서, 도 1의 프로세서(110)는 소스 장치에 요청을 전송할 수 있다. 소스 장치로부터 응답을 수신하는 즉시, 도 1의 프로세서(110)는 버퍼(370) 내의 데이터를 처리할 수 있도록 이 후에 데이터 프로세서(370)에 신호를 전송할 수 있다. 데이터 프로세서(375)가 버퍼(370) 내의 데이터의 프로세싱을 완료하면, 데이터 프로세서(375)는 도 1의 프로세서(110)에게, 도 1의 프로세서(110)가 목적지 장치에게 버퍼(370)로부터 데이터를 읽도록 요청할 수 있는 때 다음에, 프로세싱이 완료됐다고 신호를 전송할 수 있다.
본 개시의 다른 실시 예들에서, 데이터 프로세서(375)는 데이터 전송을 위한 스케줄러로서 동작할 수 있다. 데이터 프로세서(375)는 데이터가 버퍼(370)에 전송될 것을 요청하는 요청을 소스 장치에 전송할 수 있다. 브릿지들(335 및 340)은 버퍼(370)에 데이터를 쓰기 (그리고 버퍼(370)으로부터 데이터를 읽기)에 관여하기 위해 버퍼(370)를 액세스할 수 있는 점에 유의한다. 전송이 완료되면, 소스 장치는 데이터 프로세서(375)에 전송이 완료됐다고 신호를 전송할 수 있다. 데이터 프로세서(375)는 데이터를 적절하게 변환할 수 있다. 데이터 프로세서(375)가 버퍼(370) 내의 데이터를 변화하는 것을 완료하면, 데이터 프로세서(375)는 목적지 장치에 데이터가 검색을 위해 준비되었다고 신호를 전송할 수 있고, 그리고 목적지 장치는 이 후에 버퍼(370)로부터 데이터를 읽을 수 있다. 데이터 프로세서(375)는 도 1의 프로세서(110)로부터 스케줄링에 관한 그러한 명령들을 수신할 수 있다. 이러한 명령들은 임의의 희망 되는 프로토콜을 사용하여 인코딩(encode)될 수 있다. 새 프로토콜은 그러한 스케줄링 명령들을 지원하기 위해 설계될 수도 있다.
도 1의 연산 스토리지 유닛(140)이 도 1의 프로세서(110)로부터의 요청(또는 도 1의 프로세서(110) 상에서 구현되는 애플리케이션)을 처리할 때, 그 프로세싱은 버퍼(370)로부터의 (잠재적으로 데이터 프로세서(375)에 의해 처리되는)데이터를 사용할 수 있다. 하지만 그 프로세싱은 프로세서(110)로부터의 데이터를 수반할 수도 있다. 예를 들어, 도 1의 연산 스토리지 유닛(140)이 이미지 인식을 수행하는 경우, 도 1의 스토리지 장치(120)로부터의 데이터는 이미지의 다양한 특징들을 어떻게 인식하는지에 대한 정보를 포함할 수 있다. 하지만 처리될 이미지 자체는 도 1의 프로세서(110)에 의해 제공될 수 있다. 또는, 도 1의 연산 스토리지 유닛(140)이 데이터베이스 상의 쿼리(query)를 처리하는 경우, 데이터베이스 자체는 도 1의 스토리지 장치(120)로부터 올 수 있지만, 쿼리는 도 1의 프로세서(110)에 의해 제공될 수 있다. 따라서, 도 1의 연산 스토리지 유닛(140)에 의해 처리되는 정보는 복수-기능 장치(135)를 통해 다른 소스들로부터 올 수 있다.
상술한 바와 같이, 복수-기능 장치(135)는 두 커넥터들(314 및 315)보다 더 많은 커넥터들을 포함할 수 있고, 그리고 따라서 두 부착된 장치들보다 더 많은 부착된 장치들을 포함할 수 있다. 본 개시의 일부 실시 예들에서, 일부 또는 모든 부착된 장치들은 버퍼(370)에 액세스를 가질 수 있고, 그리고 버퍼(370)로부터 데이터를 읽거나 또는 버퍼(370)에 데이터를 쓸 수 있다. 본 개시의 다른 실시 예들에서, 임의의 수(하나 이상)의 버퍼들(370)이 (그리고 가능하다면 하나 이상의 데이터 프로세서(375)도) 있을 수 있다. 예를 들어, 각 도 1의 연산 스토리지 유닛(140)과 연관된 버퍼가 있을 수 있다. 그러한 방식으로, 데이터는 데이터를 처리할 것으로 기대되는 도 1의 연산 스토리지 유닛(140)과 연관된 버퍼에 쓰기될 수 있다. 버퍼(370)는 복수-기능 장치(135)에 부착된 도 1의 두(또는 이상의) 스토리지 장치들(120) 사이, 또는 도 1의 두(또는 이상의) 연산 스토리지 유닛들(140) 사이의 데이터를 교환하기 위해 사용될 수도 있는 점에 유의한다. 본 개시의 실시 예들은 도 1의 스토리지 장치 및 도 1의 연산 스토리지 유닛(140) 사이의 데이터를 교환하기 위해 버퍼(370)를 사용하는 것에 제한되지 않는다. 하나 이상의 데이터 프로세서들(375)가 있을 수 있다. 데이터 프로세서들(375)의 수는 버퍼들(370)의 수와 일-대-일이거나, 또는 데이터 프로세서들(375)의 수는 버퍼들(370)의 수로부터 다를 수 있다.
본 개시의 일부 실시 예들에서, 피어-투-피어 통신은 통신을 위해 PCIe 프로토콜을 사용할 수 있다. 즉, 브릿지들(335 및 340)은 커넥터들(315 및 320)에 연결된 장치들로부터 및/또는 커넥터들에(315 및 320)에 연결된 장치들로부터의 요청들, 메시지들, 및/또는 데이터의 전송을 위한 PCIe 프로토콜을 사용할 수 있다. 본 개시의 다른 실시 예들에서, 피어-투-피어 통신은 다른 프로토콜들을 사용할 수 있다. 본 개시의 일부 실시 예들에서, 커넥터들(315 및 320)에 연결된 장치들은 (본 개시의 그러한 실시 예들에서 프로토콜들 사이의 또는 간의 요청들, 메세지들, 또는 데이터 포맷들 및/또는 프로토콜들의 매핑이 필요할 수 있음에도 불구하고) 통신을 위해 다른 프로토콜들을 사용할 수 있다.
상술한 바와 같이, 도 1의 연산 스토리지 유닛(140)은, 다른 가능성들 사이에서, NIC일 수 있다. NIC이 커넥터(320)에 연결된 때, 도 1의 스토리지 장치(120)는 (커넥터(315)에 연결된 때) 피어-투-피어 통신을 통해 (예를 들어, 버퍼(370)를 사용하여) NIC과 통신하는 것이 가능할 수도 있다. 복수-기능 장치(135)는 따라서 도 1의 프로세서(110)를 필요적으로 통과하는 그러한 통신없이 도 1의 스토리지 장치(120) 및 NIC 사이의 통신을 지원할 수 있다. NIC를 도 1의 연산 스토리지 장치(140)으로써 사용하는 것, 그리고 NIC를 커넥터(320)에 연결하는 것은 도 1의 프로세서(110)를 NIC와 통신하는 것으로부터 막을 수 없는 점에 유의한다. 도 1의 프로세서(110)는 여전히 복수-기능 장치(135)를 통해 NIC와 통신할 수 있다. 또한, 복수-기능 장치(135)가 추가적인 커넥터들을 포함하는 경우, 도 1의 다른 연산 스토리지 장치(140)는, 도 1의 프로세서(110)를 통과하는 그러한 통신없이 도 1의 연산 스토리지 장치(140)가 NIC와 통신할 수도 있도록, 복수-기능 장치(135)에 연결될 수도 있다. 이러한 방식으로, NIC는 연산 스토리지 유닛으로써 취급되고 그리고 하나 이상의 스토리지 장치들 및/또는 하나 이상의 도 1의 다른 연산 스토리지 유닛들(140)과 통합될 수 있다.
도 3이 커넥터들(315 및 320)를 도시하고 그리고 커넥터들(315 및 320)이 부착된 장치들의 대체를 허용할 수 있다고 시사하지만, 본 개시의 실시 예들은 영구적 커넥터들로써 하나 이상의 커넥터들(315 및 320)을 포함할 수 있다. 또한, 본 개시의 일부 실시 예들은 영구적 및 교체가능한 커넥터들을 모두 포함할 수 있다. 예를 들어, 도 1의 스토리지 장치(120)는 커넥터(315)에 (예를 들어, 납땜을 통해) 영구적으로 부착될 수 있지만, 도 1의 연산 스토리지 유닛(140)은, 도 1의 연산 스토리지 유닛(140)을 분리하는 것 및 대체하는 것을 지원할 수 있는, 커넥터(320)에 플러그될 수 있다. 본 개시의 일부 실시 예들에서, 커넥터들(315 또는 320)에 연결된 장치를 교체하는 것은 핫-스왑(hot-swap)로써(즉, 교체를 수행하게 위해 도 1의 기계(105)의 전원을 끄지 않고) 수행될 수 있다 본 개시의 다른 실시 예들에서, 커넥터들(315 또는 320)에 연결된 장치를 교체하는 것은 장치를 교체하는 것 전에 도 1의 기계(105)의 전원을 끄는 것을 수반할 수 있다.
도 4는, 본 개시의 실시 예들에 따르면, 도 1의 스토리지 장치(120)의 세부사항들을 도시한다. 도 4에서, 스토리지 장치(120)의 구현은 솔리드 스테이트 드라이브(Solid State Drive)를 위해 도시되어 있다. 도 4에서, 스토리지 장치(120)는 호스트 인터페이스 레이어(HIL; Host Interface Layer)(405), 컨트롤러(410), 및 다양한 채널들(420-1~420~4)로 구성될 수 있는, 다양한 (“플래시 메모리 스토리지”라고도 명명되는)플래시 메모리 칩들(415-1~415-8)을 포함할 수 있다. 호스트 인터페이스 레이어(405)는 스토리지 장치(120) 및 (도 1의 프로세서(110)과 같은) 다른 구성들 사이의 통신들을 관리할 수 있다. 호스트 인터페이스 레이어(405)는 스토리지 장치(120)로부터 떨어진 장치들(즉, 도 1의 복수-기능 장치(135)의 부분으로 고려되지 않지만, 스토리지 장치(120)과의 통신에 있는, 예를 들어, 하나 이상의 네트워크 통신들을 통해, 장치들)과의 통신들을 관리할 수도 있다. 이러한 통신들은 스토리지 장치(120)로부터 데이터를 읽는 읽기 요청들, 스토리지 장치(120)에 데이터를 쓰는 쓰기 요청들, 및 스토리지 장치(120)로부터 데이터를 삭제하는 삭제 요청들을 포함할 수 있다.
호스트 인터페이스(405)는 인터페이스를 오직 단일 포트를 통해 관리하거나, 또는 이것은 인터페이스들을 복수의 포트들을 통해 관리할 수 있다. 대안적으로, 스토리지 장치(120)는, 포트를 통해 인터페이스를 관리하기 위해 각각 별도의 호스트 인터페이스 레이어(405)를 가질 수 있는 복수의 포트들을 포함할 수 있다. 본 개시의 실시 예들은 가능성들을 혼합할 수 있다(예를 들어, 3개의 포트들을 갖는 SSD는 다른 두 포트들을 관리하기 위해 하나의 포트 및 제2 호스트 인터페이스 레이어를 가질 수 있다).
컨트롤러(410)는 플래시 메모리 컨트롤러(flash memory controller)(425)를 사용하여 플래시 메모리 칩들(415-1~415-8) 상에서, 가비지 콜렉션(garbage collection) 및 다른 동작들과 함께, 읽기 및 쓰기 동작들을 관리할 수 있다. SSD 컨트롤러(410)는 플래시 변환 레이어(flash translation layer)(430), 메모리(435), 및/또는 DMA 컨트롤러(440)를 포함할 수도 있다. 플래시 변환 레이어(430)는 데이터가 스토리지 장치(120) 상에 실제로 저장되는 물리적 블록 어드레스(PBA; Physical Block Address)들로의 논리적 블록 어드레스(LBA; Logical Block Address)들의 매핑을 관리할 수 있다. 데이터가 스토리지 장치(120) 내에서 하나의 블록으로부터 다른 블록으로 이동될 때, 플래시 변환 레이어(430)를 사용하는 것에 의해, 도 1의 호스트(105)는 통지될 필요 없다.
메모리(435)는 스토리지 컨트롤러(410)에 의해 사용되는, DRAM과 같은, 로컬 메모리일 수 있다. 메모리(435)는 휘발성 또는 비-휘발성 메모리일 수 있다. 메모리(435)는 DMA를 통해 스토리지 장치(120)가 아닌 장치들(예를 들어, 도 1의 연산 스토리지 유닛(140))로부터 액세스가능할 수도 있다. 메모리(435)는, 파선들을 사용하는 표현에 의해 도시된 바와 같이, 생략될 수 있다.
DMA(440)는 스토리지 장치(120)가 스토리지 장치(120) 외부의 메모리 내의 DMA 커맨드들을 구현하게 할 수 있는 회로일 수 있다. 예를 들어, DMA(440)는 스토리지 장치(120)가 도 1의 메모리(115) 또는 도 1의 연산 스토리지 장치(140)로부터 데이터를 읽거나 또는 도 1의 메모리(115) 또는 도 1의 연산 스토리지 장치(140)에 데이터를 쓰는 것을 가능하게 할 수 있다. DMA(440)는, 파선들을 사용하는 이것의 표현에 의해 도시된 바와 같이, 생략될 수 있다.
도 4가 4개의 채널들(420-1~420-4)에 구성되는 8개의 플래시 메모리 칩들(415-1~415-8)를 포함하는 것으로 스토리지 장치(120)를 도시하지만, 본 개시의 실시 예들은 임의의 수의 채널들에 구성되는 임의의 수의 플래시 메모리 칩들을 지원할 수 있다. 유사하게, 도 4가 SSD의 구조를 도시하지만, 다른 스토리지 장치들(예를 들어, 하드 디스크 드라이브들)은 데이터를 읽는 것 및 쓰는 것을 관리하기 위해 도 4에서 도시되는 것으로부터 다르지만, 유사한 잠재적인 이점들을 갖는 구조를 사용하여 구현될 수 있다.
도 4가 스토리지 장치(120)를 단지 스토리지 장치인 것으로 도시하지만, 본 개시의 실시 예들은 스토리지 장치(120) 내의 다른 구성들을 포함할 수 있다. 예를 들어, 스토리지 장치(120)는, 도 1의 프로세서(110)(또는 도 1의 복수-기능 장치(135)에 부착되는 다른 장치들)에 의해 사용될 수 있는, 이것의 자체 연산 스토리지 유닛을 가질 수 있다. 예를 들어, 도 1의 프로세서(110) 또는 도 1의 커넥터(320)를 통해 도 1의 복수-기능 장치(135)에 연결되는 연산 스토리지 유닛은 스토리지 장치(120)의 부분으로서 포함되는 연산 스토리지 유닛을 사용할 수 있다.
도 5a-5d는 본 개시의 실시 예들에 따라, 도 1의 연산 스토리지 유닛(140)의 예시적인 구현들을 도시한다. 도 5a에서, 스토리지 장치(505) 및 연산 장치(510-1)가 도시된다. 스토리지 장치(505)는 컨트롤러(515) 및 스토리지(520-1)를 포함할 수 있고, 그리고 호스트 인터페이스(host interface)(525)와 같은 호스트 프로토콜 인터페이스를 통해 접근가능할 수 있다. 호스트 인터페이스(525)는 스토리지 장치(505)의 관리를 위해 그리고 스토리지 장치(505)의 I/O(Input/Output)를 제어하기 위해 모두에 사용될 수 있다. 호스트 인터페이스(525)의 예는 제출(submission) 및 완료를 위한 큐 쌍(queue pair)들을 포함할 수 있지만, 다른 호스트 인터페이스들(525)도 스토리지 장치(505)에 의해 지원되는 임의의 네이티브 호스트 프로토콜(native host protocol)을 사용하여 가능하다.
연산 장치(510-1)는 스토리지 장치(505)와 페어링될 수 있다. 연산 장치(510-1)는, 하나 이상의 서비스들(535-1 및 535-2)를 제공할 수 있는, 임의의 수의(하나 이상의) 프로세서들(530)을 포함할 수 있다. 더 명확하게 하면, (본 개시의 실시 예들이 정확히 두 서비스들(535-1 및 535-2)를 포함하는 연산 장치(510-1)를 포함할 수 있음에 불구하고)각 프로세서(530)는 임의의 수의(하나 이상의) 서비스들(535-1 및 535-2)를 제공할 수 있다. 각 프로세서(530)는 싱글 코어 프로세서(single core processor) 또는 멀티-코어 프로세서(multi-core processor)일 수 있다. 연산 장치(510-1)는, 연산 장치(510-1)의 관리를 위해 및/또는 연산 장치(510-1)의 I/O를 제어하기 위해 모두에 사용될 수 있는, 호스트 인터페이스(540)과 같은, 호스트 프로토콜 인터페이스를 통해 접근가능할 수 있다. 호스트 인터페이스(525)와 마찬가지로, 호스트 인터페이스(540)는 제출 및 완료를 위한 큐 페어들을 포함할 수 있지만, 다른 호스트 인터페이스들(540)은, 연산 장치(510-1)에 의해 지원되는 임의의 네이티브 호스트 프로토콜을 사용하여, 가능할 수도 있다. 그러한 호스트 프로토콜들의 예들은 다른 가능성들 중에, 이더넷(Ethernet), RDMA, TCP/IP, 인피니밴드, iSCSI, PCIe, SAS, 및 SATA를 포함할 수 있다. 또한, 호스트 인터페이스(540)는 도 1의 시스템(105)의 다른 구성들(예를 들어, NIC이 도 1의 복수-기능 장치(135)에 연결되지 않는 경우, NIC, 또는 NIC로써 동작하고 그리고 로컬 및/또는 원격(remote) 네트워크/클라우드 구성들과 통신하기 위해)과의 통신들을 지원할 수 있다.
프로세서(들)(530)는 근거리-스토리지 프로세싱(near-storage processing), 즉, 도 1의 프로세서(110)보다 스토리지 장치(5050)에 더 가까운 프로세싱으로 생각될 수 있다. 프로세서(들)이 스토리지 장치(505)에 더 가깝기 때문에, 프로세서(들)(530)은 스토리지 장치(505) 내에 저장된 데이터 상의 커맨드들을 도 1의 프로세서(110)가 그러한 커맨드들을 실행하는 것보다 더 빠르게 실행할 수 있다. 프로세서(들)(530)는, 스토리지 장치(505) 내에 저장되는 데이터 상의 커맨드들의 로컬 구현을 위해 사용될 수 있는, 관련된 메모리(545)를 가질 수 있다. 메모리(545)는 도 4의 메모리(435)와 유사하게 사용될 수도 있고, 그리고 연산 스토리지 유닛(410-1) 이외의 장치들로부터 DMA에 의해 접근가능할 수 있다. 메모리(545)는 도 1의 메모리(115)와 유사한 로컬 메모리, (도 1의 메모리(115)와 같은 메모리보다 더 빠르지만, 아마 생산하기 위해 더 비쌀 수 있는) 온-칩 메모리, 또는 모두를 포함할 수 있다.
연산 스토리지 유닛(410-1)은 DMA(550)를 포함할 수도 있다. DMA(550)는 도 4의 DMA(440)과 유사하게 사용될 수 있고, 그리고 연산 스토리지 유닛(410-1) 이외의 장치들 내의 메모리들을 액세스하기 위해 사용될 수 있다.
구현에 따라, 메모리(545) 및/또는 DMA(550)는 파선들에 의해 도시된 바와 같이, 생략될 수 있다.
도 5a가 스토리지 장치(505) 및 연산 장치(510-1)를 패브릭(fabric)(555)를 통해 개별적으로 접근가능한 것처럼 도시하지만, 본 개시의 실시 예들은 (도 1에서 도시된 바와 같이) 스토리지 장치(505) 및 연산 장치(510-1)가 직렬로 연결되거나, 또는 도 1의 복수-기능 장치(135)를 공유하는 것을 포함할 수도 있다. 즉, 스토리지 장치(505) 및 연산 장치(510-1)에 다이렉팅되는 커맨드들은 모두 패브릭(555)에 대한 동일한 물리적인 연결에서 수신될 수 있고 그리고 다른 장치에 접근하기 위해 하나의 장치(또는 도 1의 복수-기능 장치(135))를 통해 통과할 수 있다. 예를 들어, 연산 장치(510-1)가 스토리지 장치(505) 및 패브릭(555) 사이에 위치되는 경우, 연산 장치(510-1)는 연산 장치(510-1) 및 스토리지 장치(505)에 모두 다이렉팅된 커맨드들을 수신할 수 있다. 연산 장치(510-1)는 연산 장치(510-1)에 다이렉팅된 커맨드들을 처리할 수 있고, 그리고 스토리지 장치(505)에 다이렉팅된 커맨드들을 스토리지 장치(505)로 전송할 수 있다. 유사하게, 스토리지 장치(505)가 연산 장치(510-1) 및 패브릭(555) 사이에 위치되는 경우, 스토리지 장치(505)는 스토리지 장치(505) 및 연산 장치(510-1) 모두에 다이렉팅된 커맨드들을 수신할 수 있다. 스토리지 장치(505)는 스토리지 장치(505)에 다이렉팅된 커맨드들을 처리할 수 있고 그리고 연산 장치(510-1)에 다이렉팅된 커맨드들을 연산 장치(510-1)에 전송할 수 있다.
서비스들(535-1 및 535-2)는 스토리지 장치(505) 내에 저장되는 데이터 상에 구현될 수 있는 다수의 다른 기능들을 제공할 수 있다. 예를 들어, 서비스들(535-1 및 535-2)은, 암호화, 복호화, 압축, 및/또는 데이터의 압축해제, 삭제 코딩, 및/또는 정규 표현(regular expression)들을 적용하는 것과 같은, 미리-정의된 기능들을 제공할 수 있다. 또는, 서비스들(535-1 및 535-2)은, 데이터 검색 및/또는 SQL(Structured Query Language) 기능들과 같은, 더 일반적인 기능들을 제공할 수 있다. 서비스들(535-1 및 535-2)은 애플리케이션-특화 코드를 구현하는 것을 지원할 수도 있다. 즉, 서비스들(535-1 및 535-2)을 사용하는 애플리케이션은 스토리지 장치(505) 상의 데이터를 사용하여 구현되는 커스텀 코드(custom code)를 제공할 수 있다. 서비스들(535-1 및 535-2)은 그러한 기능들의 임의의 조합을 제공할 수도 있다. 표 1은 프로세서(들)(530)에 의해 제공될 수 있는 서비스들의 일부 예들을 나열한다.
프로세서(들)(530)(및, 실제로, 연산 장치(510-1))는 임의의 희망되는 방식으로 구현될 수 있다. 예시적인 구현들은, CPU 또는 (FPGA, ASIC, 또는 SoC와 같은) 일부 다른 프로세서와 같은, 로컬 프로세서, 다른 가능성들 중에서 GPU, GPGPU, DPU, NPU, NIC, 또는 TPU를 포함할 수 있다. 프로세서(들)(530)는, 다른 가능성들 중에서, FPGA 또는 ASIC를 사용하여 구현될 수도 있다. 연산 장치(510-1)가 하나 이상의 프로세서(530)를 포함하는 경우, 각 프로세서는 상술된 바와 같이 구현될 수 있다. 예를 들어, 연산 장치(510-1)는 CPU, TPU, 및 FPGA의 각각을 가질 수 있거나, 또는 연산 장치(510-1)는 두 FPGA들을 가질 수 있거나, 또는 연산 장치(510-1)는 두 CPU들 및 하나의 ASIC, 등을 가질 수 있다.
희망되는 해석에 따라, 연산 장치(510-1) 또는 프로세서(들)(530) 중 어느 하나는 연산 스토리지 유닛으로 생각될 수 있다.
본 개시의 일부 실시 예들은 스토리지 장치(505) 및/또는 연산 장치(510-1)와 통신하기 위해 다른 메커니즘들을 포함할 수 있다. 예를 들어, 스토리지 장치(505) 및/또는 연산 장치(510-1)는, 다른 가능성들 중에서, 이더넷, RDMA, TCP/IP, 인피니밴드, SAS, iSCSI 또는 SATA를 사용하는 다른 장치들과의 통신을 지원할 수 있는, 네트워크 인터페이스(560)를 포함할 수 있다. 네트워크 인터페이스(560)는 스토리지 장치(505) 및/또는 연산 장치(510-1)과 통신하는 것을 위한 다른 인터페이스를 제공할 수 있다. 도 5a가 연산 장치(510-1)에 통신을 제공하는 것으로 네트워크 인터페이스(560)를 도시하지만, 본 개시의 실시 예들은 스토리지 장치(505)에 대한 네트워크 인터페이스도 포함할 수 있다. 또한, 본 개시의 일부 실시 예들에서, 그러한 다른 인터페이스들은 호스트 인터페이스들(525 및/또는 540) 대신 사용될 수 있다(이 경우 호스트 인터페이스들(525 및/또는 540)이 생략될 수 있다). 아래 도 5b-5d에서 도시되는, 다른 변형들은 그러한 인터페이스들을 포함할 수도 있다.
도 5a는 스토리지 장치(505) 및 연산 장치(510-1)를 별개의 장치들로 도시하는 반면, 도 5b에서 그들은 결합될 수 있다. 따라서, 연산 장치(510-2)는 컨트롤러(515), 스토리지(520-1), 서비스들(535-1 및 535-2)를 제공하는 프로세서(들)(530), 메모리(545), 및/또는 DMA(550)를 포함할 수 있다. 도 5a의 스토리지 장치(505) 및 연산 장치(510-1)와 같이, 관리 및 I/O 커맨드들은 호스트 인터페이스(540) 및/또는 네트워크 인터페이스(560)를 통해 수신될 수 있다. 연산 장치(510-2)가 스토리지 및 프로세서(들)(530)를 모두 포함하는 것으로 도시되어 있지만, 도 5b는 연산 스토리지 유닛과 연관되는 스토리지 장치를 포함하는 것으로 여전히 생각될 수 있다.
도 5c에서 도시되는 다른 변형에서, 연산 장치(510-3)가 도시된다. 연산 장치(510-3)는 컨트롤러(515) 및 스토리지(520-1)뿐만 아니라 서비스들(535-1 및 535-2)를 제공하는 프로세서(들)(530), 메모리(545), 및/또는 DMA(550)를 포함할 수 있다. 하지만 연산 장치(510-3)가 컨트롤러(515), 스토리지(520-1), 프로세서(들)(530) (그리고 연산 스토리지 유닛과 연관되는 스토리지 장치로도 생각될 수 있지만), 메모리(545), 및/또는 DMA(550)를 포함하는 단일 구성으로 생각될 수 있지만, 도 5B에서 도시되는 구현과 다르게 컨트롤러(515) 및 프로세서(들)(530)는 그들의 자체 호스트 인터페이스들(525 및 540) 및/또는 (다시 말하지만, 관리 및/또는 I/O를 위해 사용될 수 있는)네트워크 인터페이스(560)를 포함할 수 있다. 호스트 인터페이스(525)를 포함하는 것에 의해, 컨트롤러(515)는 (모든 통신들이 프로세서(들)(530)를 통해 진행하는 것을 요구하는 것보다는)스토리지(520-1)에 투명한 액세스를 제공할 수 있다.
또한, 프로세서(들)(530)는 스토리지(520-1)에 프록시된 스토리지 액세스(565)를 가질 수 있다. 따라서, 컨트롤러(515)를 통해 액세스 요청들을 라우팅하는 대신, 프로세서(들)(530)는 스토리지(520-1)로부터 데이터를 직접적으로 액세스할 수 있다.
도 5c에서, 컨트롤러(515) 및 프록시된 스토리지 액세스(565) 모두는 그들이 선택적인 요소들이라는 것을 나타내기 위해 파선들로 도시되고, 그리고 구현에 따라 생략될 수 있다.
마지막으로, 도 5d는 다른 구현을 도시한다. 도 5d에서, 컨트롤러(515), 메모리(545), DMA(550), 및 도 5c와 유사한 프록시된 스토리지 액세스(565)를 포함할 수 있는, 연산 장치(510-4)가 도시된다. 또한, 연산 장치(510-4)는 하나 이상의 스토리지(520-1~520-4)의 어레이를 포함할 수 있다. 도 5d가 네 개의 스토리지 요소들을 도시하지만, 본 개시의 실시 예들은 임의의 수(하나 이상의)스토리지 요소들을 포함할 수 있다. 또한, 개별 스토리지 요소들은, 도 5A-5D에 도시되는 그들과 같은, 다른 스토리지 장치들일 수 있다.
연산 장치(510-4)가 하나의 스토리지 요소(520-1~520-4)보다 더 많이 포함할 수 있기 때문에, 연산 장치(510-4)는 어레이 컨트롤러(570)를 포함할 수 있다. 어레이 컨트롤러(570)는 데이터가 어떻게 스토리지 요소들(520-1~520-4)에 저장되고 그리고 검색되는지 관리할 수 있다. 예를 들어, 스토리지 요소들(520-1~520-4)가 RAID의 일부 레벨로 구현되는 경우, 어레이 컨트롤러(570)는 RAID 컨트롤러가 될 수 있다. 스토리지 요소들(520-1~520-4)가 삭제 코딩의 일부 형태를 사용하여 구현되는 경우, 이 후에 어레이 컨트롤러(570)는 삭제 코딩 컨트롤러가 될 수 있다.
도 6은 본 개시의 실시 예들에 따른, 도 1의 스토리지 장치(120) 및/또는 도 1의 연산 스토리지 유닛(140)에 요청들을 전달하기 위해 도 1의 복수-기능 장치(135)를 사용하는 것을 위한 예시적인 절차의 순서도를 도시한다. 도 6에서, 블록(605)에서, 도 1의 복수 기능 장치(135)는 도 3의 포트(310)에서 요청을 수신할 수 있다. 블록(610)에서, 도 3의 멀티플렉서/디멀티플렉서(330)는 요청으로부터 장치를 식별할 수 있다. 블록(615)에서, 도 3의 멀티플렉서/디멀티플렉서(330)는 도 3의 포트(355) 또는 도 3의 포트(360)가 요청으로부터 식별되는 장치에 연결되는지 식별할 수 있다. 블록(620)에서, 도 3의 멀티플렉서/디멀티플렉서(330), 도 3의 브릿지(335), 또는 도 3의 브릿지(340), 및 도 3의 포트(355) 또는 도 3의 포트(360)는 요청으로부터 식별되는 장치에 요청을 전송할 수 있다.
도 7은 본 개시의 실시 예들에 따라, 도 1의 스토리지 장치(120) 및/또는 도 1의 연산 스토리지 유닛(140)의 노출되는 기능들을 식별하기 위해 도 1의 복수-기능 장치(135)를 사용하는 것을 위한 예시적인 절차의 순서도를 도시한다. 도 7에서, 블록(705)에서, 도 3의 루트 포트(355)는 도 3의 커넥터(315)에 연결되는 장치에 의해 노출되는 기능을 식별할 수 있다. 블록(710)에서, 도 3의 루트 포트(360)는 도 3의 커넥터(320)에 연결되는 장치에 의해 노출되는 기능을 식별할 수 있다. 블록(715)에서, 도 3의 엔드포인트(310)는 도 1의 복수-기능 장치(135)로부터의 기능들을 노출할 수 있다.
도 8은 본 개시의 실시 예들에 따라, 도 3의 비동기 버퍼들을 사용하는 것을 위한 예시적인 절차의 순서도를 도시한다. 도 8에서, 블록(605)에서, 도 1의 복수-기능 장치(135)는 도 3의 포트(310)에서 요청을 수신할 수 있다. 설명되는 동작들이 동일하기 때문에, 블록(605)은 도 6의 블록(605)과 동일한 식별자를 사용한다. 블록(805)에서, 도 1의 복수-기능 장치(135)는 도 3의 비동기 버퍼(325) 내에 요청을 저장할 수 있다.
블록(810)에서, 일부의 시간 후에, 도 3의 멀티플렉서/디멀티플렉서(330)는 도 3의 비동기 버퍼(324)로부터 요청을 읽을 수 있다. 블록(610)에서, 도 3의 멀티플렉서/디멀티플렉서(330)는 요청으로부터 장치를 식별할 수 있다. 블록(615)에서, 도 3의 멀티플렉서/디멀티플렉서(330)는 도 3의 포트(355) 또는 도 3의 포트(360)를 요청으로부터 식별되는 장치에 연결되는지 식별할 수 있다. 설명되는 동작들이 동일하기 때문에, 블록들(610 및 615)는 도 6의 블록들(610 및 615)와 동일한 식별자들을 사용한다. 블록(815)에서, 도 3의 브릿지(335) 또는 도 3의 브릿지(340)는 도 3의 버퍼(345) 또는 도 3의 비동기 버퍼(350) 내에 요청을 저장할 수 있다.
블록(820)에서, 일부의 시간 후에, 도 3의 루트 포트(355)는 도 3의 비동기 버퍼(345)로부터 요청을 읽을 수 있거나, 또는 도 3의 루트 포트(360)는 도 3의 비동기 버퍼(350)로부터 요청을 읽을 수 있다. 블록(620)에서, 도 3의 루트 포트(355) 또는 도 3의 루트 포트(360)는 요청으로부터 식별되는 장치에 요청을 전송할 수 있다. 설명되는 동작들이 동일하기 때문에, 블록(620)는 도 6의 블록(620)과 동일한 식별자를 사용한다.
도 9는 본 개시의 실시 예들에 따라, 도 1의 연산 스토리지 유닛(140)를 다른 연산 스토리지 유닛으로 대체하는 것을 위한 예시적인 절차의 순서도를 도시한다. 블록(905)에서, 도 1의 연산 스토리지 유닛(140)는 도 3의 커넥터(320)로부터 연결해제될 수 있다. 블록(910)에서, 새 연산 스토리지 유닛은 도 3의 커넥터(320)에 연결될 수 있다.
도 10은 본 개시의 실시 예들에 따른, 도 1의 복수-기능 장치(135)에 부착되는 장치들 사이에서 요청들을 전송하기 위해 도 1의 복수-기능 장치(135)를 사용하는 것을 위한 예시적인 절차의 순서도를 도시한다. 블록(1005)에서, 도 1의 복수-기능 장치(135)는 도 1의 복수-기능 장치(135)의 포트에 연결되는 장치로부터 요청을 수신할 수 있다. 해당 장치는, 도 3의 포트(310)에 연결되는 도 1의 프로세서(110)보다는, 도 3의 포트(355) 또는 도 3의 포트(360), 또는 다른 스토리지 장치들 또는 연산 스토리지 유닛들에 연결되는 다른 포트들을 사용하여 연결될 수 있는 점에 유의한다. 블록(1010)에서, 도 3의 브릿지(355) 또는 도 3의 브릿지(340)는 도 3의 포트(355) 또는 도 3의 포트(360)가 요청으로부터 식별되는 장치에 연결되는지 식별할 수 있다. 블록(1020)에서, 도 3의 브릿지(335) 또는 도 3의 브릿지(340)는 요청으로부터 식별되는 장치에 요청을 전송할 수 있다. 마지막으로, 블록(1025)에서, 원래의 요청을 전송한 장치는 요청으로부터 식별되는 장치에 데이터를 제공할 수 있다.
도 11a-11b는 본 개시의 실시 예들에 따라, 데이터를 공유하기 위해 도 1의 복수-기능 장치(135)에 부착되는 장치들을 위한 예시적인 절차의 순서도를 도시한다. 도 11a에서, 블록(1105)에서, 하나의 장치는 도 4의 메모리(435) 또는 도 5a-5d의 메모리(545)에 데이터를 쓰기 위해 도 4의 DMA(440) 또는 도 5a-5d의 DMA(550)를 사용할 수 있다. 대안적으로, 블록(1110)에서, 하나의 장치는 도 4의 메모리(435) 또는 도 5a-5d의 메모리(545)로부터 데이터를 읽기 위해 도 4의 DMA(440) 또는 도 5a-5d의 DMA(550)를 사용할 수 있다.
대안적으로, 블록(1115)에서(도 11b), 하나의 장치는 도 3의 버퍼(370) 내에 데이터를 쓸 수 있다. 블록(1120)에서, 도 3의 데이터 프로세서(375)는, 다른 장치에 의해 처리될 수 있는 포맷으로 데이터를 넣기 위해, 도 3의 버퍼(370) 내의 데이터를 처리할 수 있다. 파선(1125)에 의해 도시된 바와 같이, 블록(1120)은 선택적인 점에 유의한다. 마지막으로, 블록(1130)에서, 제2 장치는 도 3의 버퍼(370)로부터 데이터를 읽을 수 있다.
도 3을 참조하여 상술된 바와 같이, 본 개시의 일부 실시 예들은 두 개 이상의 장치들을 도 1의 복수-기능 장치(135)에 연결하는 것을 지원할 수 있다. 도 12 및 도 14는 두 개 이상의 연결되는 장치들과 함께 본 개시의 일부 잠재적인 실시 예들을 설명한다.
도 3과 함께, 도 12에서, 복수-기능 장치(135)는 복수-기능 장치(135)를 도 1의 프로세서(110), 스토리지 장치(120), 연산 스토리지 유닛(140)에 연결하는 것을 위한 커넥터들(305, 315, 320)을 포함할 수 있다. (도 12는 엔드포인트(310), 비동기 버퍼들(325, 345, 및 350), 멀티플렉서들(330 및 365), 및 루트포트들(355 및 360)을 생략한다. 이들 구성들의 서브세트들 또는 전부는 본 개시의 일부 실시 예들 내에 포함될 수 있지만, 도시된 바와 같이 본 개시의 다른 실시 예들에서 생략될 수 있다.) 복수-기능 장치(135)는, 브릿지(120)에 연결될 수 있는, 커넥터(1205)를 포함할 수도 있다. 브릿지(1210)는 브릿지들(335 및 340)와 유사하게 기능할 수 있다. 브릿지(1210)는 커넥터(120)5를 통해 복수-기능 장치(135)에 연결되는 장치에 요청, 메시지, 또는 데이터를 전송할 수 있다. 이 장치는 다른 스토리지 장치, 다른 연산 스토리지 유닛(특정 예시로서, FHE 회로), 또는 복수-기능 장치(135)를 사용하여 지원될 수 있는 장치의 임의의 다른 형태일 수 있다.
도 12는 브릿지(1210) 및 커넥터(305), 브릿지들(335 및 340), 또는 데이터 프로세서(375) 사이의 연결들을 도시하지 않는다. 통신을 위한 이러한 선들의 생략은 브릿지(1210)이 이들 구성들과 통신하지 않는다는 것을 제안하지 않는다. 오히려, 이러한 도 12는 명확성을 위해 도 12에서 생략되었다. 브릿지(1210)는 브릿지들(335 및 340)과 유사한 방식으로, 커넥터(305), 브릿지들(335 및 340), 및 데이터 프로세서(375)와 통신할 수 있다.
복수-기능 장치(135)가, 도 1의 스토리지 장치(120) 및 도 1의 연산 스토리지 유닛(140)일 수 있는, 오직 두 장치들을 지원하는 본 개시의 실시 예들에서, 버퍼(370)는 장치들 사이에서 데이터를 전달하기 위해 사용되는 일시적인 스토리지일 수 있다. 예를 들어, 도 1의 스토리지 장치(120)는, 도 1의 연산 스토리지 유닛(140)이 이 후에 읽고 그리고 처리할 수 있는, 버퍼(370) 내에 데이터를 쓸 수 있다. 하지만 도 12에서 도시된 바와 같은 본 개시의 실시 예들에서, 복수-기능 장치(135)가 버퍼(370)를 액세스하여 복수의 장치들―그들은 스토리지 장치들 또는 연산 스토리지 유닛들일 수 있다―의 사용을 지원하는 때, 버퍼(370)는 두 장치들 사이에서 데이터를 셔틀(shuttle)하는 버퍼로써보다 공유되는 메모리로써 사용될 수 있다. 즉, 다양한 장치들이 버퍼(370)로부터의 데이터를 액세스하는 동안 데이터는 버퍼(370) 내에 머물 수 있다. 예를 들어, 도 1의 스토리지 장치(120)는, 도 1의 연산 스토리지 장치(140)가 이 후에 처리하고 그리고, 도 1의 다른 연산 스토리지 장치(140)에 의해 이 후에 처리될 수 있는, 새 데이터로 덮어쓸 수 있는, 버퍼(370) 내로 데이터를 복사할 수 있다.
특정한 예시로서, 도 1의 스토리지 장치(120)가 특정한 인코딩을 사용하여 인코딩되는 비디오 데이터를 저장하는 상황에서, 복수-기능 장치(135)에 연결되는 도 1의 하나의 연산 스토리지 유닛(140)은 비디오 데이터 상에 오브젝트 감지(object detection)을 수행하기 위하 TPU 또는 GPU일 수 있고, 그리고 도 1의 다른 연산 스토리지 유닛(140)는 비디오 디코딩을 수행하기 위해 VPU(Video Processing Unit)일 수 있다. 도 1의 호스트 프로세서(110)가 비디오 디코딩을 수행하도록 TPU 또는 GPU에 요청할 때, TPU 또는 GPU는 데이터를 버퍼(370)에 전송하도록 도 1의 스토리지 장치(120)에 요청하고, 그리고 TPU 또는 GPU가 이 후에 비디오 데이터에 대해 오브젝트 감지를 수행할 수 있도록 비디오 디코딩을 수행하도록 VPU에 이 후에 요청할 수 있다. 데이터는 TPU 또는 GPU 및 VPU에 의한 비디오 디코딩 및 오브젝트 감지 모두를 위한 버퍼 내의 장소에 남을 수 있다.
본 개시의 실시 예들을 일반화하는, 이 예시에 대해 주목해야 할 가치가 있는 일부 다른 포인트들이 있다. 첫번째, 상술한 바와 같이, 전송 버퍼로써 사용되는 것보다, 버퍼(370)는 버퍼(370)를 모두 액세스하는 도 1의 스토리지 장치(120) 및 TPU 또는 GPU 및 VPU와 함께, 공유된 메모리로써 사용될 수 있다. 위의 예시에서, 스토리지 장치(120), VPU 및 TPU 또는 GPU 각각은, 다음 장치가 이수하기 전에 그들의 동작들을 수행하여, 차례대로 버퍼(370)로부터 데이터를 액세스할 수 있다. 하지만 보다 일반적으로, 본 개시의 실시 예들은, 복수-기능 장치(135)에 연결되는 장치들의 임의의 서브세트, 또는 모든 장치들을 연출되는(choreographed) 방식으로 또는 동시에 버퍼(370)로부터 데이터를 액세스하도록 허용할 수 있다(예를 들어, 다른 장치들이 다른 데이터를 액세스하고 있고 그리고 하나의 장치가 다른 장치에 의해 사용되는 데이터에 영향을 미치는 것에 대해 걱정할 필요가 없는 경우, 둘 이상의 장치들은 버퍼(370)로부터 데이터를 동시에 액세스할 수 있다).
두번째, 예시에서 도 1의 호스트 프로세서(110)는 오브젝트 감지를 수행하도록 오직 TPU 또는 GPU에 요청하고, 그리고 TPU 또는 GPU는 그들의 기능들을 수행하도록 도 1의 스토리지 장치(120) 및 VPU에 요청들을 발행하는 점에 유의한다. 다시 말하면, 복수-기능 장치(135)에 부착된 하나의 컨트롤러는 복수-기능 장치(135)에 부착된 다른 컨트롤러에 요청들을 발행할 수 있다. 모든 요청들이 도 1의 프로세서(110)로부터 필요적으로 발행되지 않는다. 다시 말하면, 도 1의 호스트 프로세서(110)는 복수-기능 장치(135)에 연결된 복수의 장치들의 동작들을 조율하거나 또는 관리할 필요가 없다. 장치들 스스로 각자 서로의 기능들을 트리거(trigger)할 수 있다.
세번째, 도 1의 호스트 프로세서(110)는 VPU가 복수-기능 장치(135)에 연결되었는지 알 필요가 없다. 달리 말하면, 도 1의 호스트 프로세서(110)는 오브젝트 감지에만 오직 관련이 있다. 도 1의 호스트 프로세서(110)는 희망되는 동작을 완료하기 위해 어떤 추가적인 프로세스들이 수행되어야 하는지 관련이 없다. 도 1의 호스트 프로세서(110)는 다른 장치들의 컨트롤러들이 도 1의 호스트 프로세서에 의해 요청된 특정한 동작들을 처리한다는 사실에 대해 불가지론적일 수 있다.
하나의 컨트롤러가 다른 컨트롤러에 요청들을 발행하도록 하는 것 및 도 1의 호스트 프로세서(110)가 특정 컨트롤러가 복수-기능 장치(135)에 연결되는 것을 모르는 것의 장점은 일부 컨트롤러가 도 1의 호스트 프로세서(110)로부터 숨겨질 수 있다는 것이다. 위의 예시를 계속하면, 복수-기능 장치(135)는 VPU가 복수-기능 장치에 연결되었다는 것을 도 1의 호스트 프로세서(110)에 심지어 알리지 못할 수 있다.
이 결과를 성취하기 위해, 복수-기능 장치(135)는 복수-기능 장치(135)에 부착되는 다양한 장치들을 열거하고 그리고 장치들이 어떻게 구성되는지 결정할 수 있다. 각 장치의 구성은 장치가 어떤 기능들을 제공하는지, 및 어떤 장치들/컨트롤러들이 도 1의 호스트 프로세서(110)에 노출될 것인지 지정할 수 있다. 이 정보는, 스토리지(1215)에 저장될 수 있고 그리고 복수-기능 장치(135)가 도 1의 호스트 프로세서(110)로부터 다양한 장치들/컨트롤러들을 선택적으로 노출하거나 또는 숨길 수 있는, 장치 구성들의 목록에 저장될 수 있다.
본 개시의 일부 실시 예들에서, 복수-기능 장치(135)는 도 1의 스토리지 장치(120) 또는 도 1의 연산 스토리지 유닛(140)에 커넥터들(315, 320, 및 1215)를 통해 복수-기능 장치(135)에 연결되는 장치들에 대해 통지할 수 있다. 예를 들어, 복수-기능 장치는 모든 부착된 장치들을 열거할 수 있고 그리고 모든 부착된 장치들에 모든 장치들에 대한 (모든 노출된 기능들 같은)정보를 제공할 수 있다. 본 개시의 다른 실시 예들에서, 복수-기능 장치(135)는 장치들에 대해 부착된 장치들에 정보를 제공할 수 있지만, 장치들의 구성들을 사용한다. 본 개시의 그러한 실시 예들에서, 장치는 이것의 기능들의 각각(또는 심지어 장치 전체)이 다른 장치들에 보고되어야 하는지 여부를 지정할 수 있다. 본 개시의 일부 실시 예들에서, 장치들은 그들의 기능들(또는 장치들 자체)가 다른 장치들에 노출되거나 또는 다른 장치들로부터 숨겨져야 하는지를 지정할 수 있을 뿐만 아니라, 일부 장치들이 장치의 기능을 알 수 있도록 하고 그리고 그 기능성을 다른 장치들로부터 숨기면서 심지어 그것을 선택적으로 할 수 있다.
도 13은 본 개시의 실시 예들에 따라, 도 1의 복수-기능 장치(135)에 의해 사용될 수 있는 장치 구성들의 목록의 세부사항들을 도시한다. 도 13에서, 스토리지(1215)는 장치 구성들의 목록(1305)을 포함하는 것으로 도시된다. 장치 구성들의 목록(1305)은 장치 식별자(1310), 기능들(1315), 및 장치/컨트롤러가 도 1의 호스트 프로세서(110)에 노출되었는지 또는 아닌지 여부를 가리키는 표시기(1320)와 같은, 다양한 열들을 포함할 수 있다. 장치 구성들의 목록(1305)은 항목들(1325-1, 1325-2, 및 1325-3)(항목들(1325-1~1325-3)은 항목들(1325)로 집합적으로 참조될 수 있다)과 같은 항목들도 포함할 수 있다. 각 항목(1325)은 특정한 장치를 식별하고, 그 장치에 의해 노출된 기능들을 나열하고, 그리고 장치/컨트롤러가 도 1의 호스트 장치(110)에 노출될지 가리킬 수 있다. 예를 들어, 항목(1325-1)은 식별자(0)를 갖는 장치가 두 물리적 기능들을 노출하고 그리고 도 1의 호스트 프로세서(110)에 노출될지 가리키고, 항목(1325-2)은 식별자(1)를 갖는 장치가 하나의 물리적 기능 및 하나의 가상의 기능을 노출하고 그리고 도 1의 호스트 프로세서(110)에 노출될지 가리키고, 그리고 항목(1325-3)은 식별자(2)를 갖는 장치가 하나의 물리적 기능을 노출하고 그리고 도 1의 호스트 프로세서(110)로부터 숨겨질 지 가리킨다. 도 1의 복수-기능 장치(135)는 도 1의 호스트 프로세서(110)에 적절한 기능들을 노출하기 위해 이 정보를 사용할 수 있다.
도 13이 장치 구성들의 목록(1305) 내의 세 개의 항목들(1325)를 도시하지만, 본 개시의 실시 예들은 임의의 수(하나 이상)의 항목들(1325)을 포함할 수 있다. 또한, 장치 구성들의 목록(1305)은 도 1의 복수-기능 장치(135)에 현재 부착되지 않은 장치들을 위한 구성들을 포함할 수 있다. 즉, 항목들(1325)은 한 시점에 도 1의 복수-기능 장치(135)에 연결되었지만, 현재 연결되지 않은 장치들에 대한 정보를 포함할 수 있다. 그러한 항목들(1325)은, 이것의 구성을 위한 장치를 새로 조사하는 필요를 피하면서, 해당 장치가 이 후에 도 1의 복수-기능 장치(135)에 다시 연결되는 경우에 유지될 수 있다.
항목들(1325) 내에 나열된 각 기능(1315)은 식별된 장치에 의해 제공되는 다른 능력(capability)을 나타낼 수 있다. 예를 들어, 빌트-인(built-in) 연산 스토리지 유닛을 갖지만, 도 1의 스토리지 장치(120)를 고려한다. 하나는 도 1의 스토리지 장치(120)로부터 데이터를 읽는 것 또는 도 1의 스토리지 장치(120)에 데이터를 쓰는 것을 시작하기 위해, 그리고 다른 것은 빌트-인 연산 스토리지 유닛에 액세스하기 위해, 도 1의 스토리지 장치(120)는 두 기능들을 노출할 수 있다. 장치에 의해 제공되는 특정한 기능이 어떻게 트리거 되는지 및 장치가 그 기능성을 트리거하기 위해 “기능”을 노출할 수 있는 사실 사이의 혼란을 피하기 위해, 장치의 “능력”에 대한 임의의 참조는 그 기능성을 트리거하는 기능보다 장치가 제공하는 기능성을 의미하도록 의도된다.
장치 구성들의 목록(1305) 내에서 도시된 바와 같이, 다른 장치들은 다른 수들의 기능들을 제공할 수 있다. 예를 들어, 항목들(1325-1 및 1325-2)은 두 기능들이 노출된 장치들을 도시하는 한편, 항목(1325-3)은 오직 하나의 기능이 노출된 장치를 도시한다. 본 개시의 실시 예들은 장치에 의해 노출된 임의의 수(하나 이상의) 기능들을 각각 갖는 임의의 수(하나 이상의) 장치들을 포함할 수 있다.
열(1315) 내의 물리적 및 가상의 기능들을 참조하는 것에서, 장치 구성들의 목록(1305)은 장치들이 PCIe 장치들이라는 것을 암시한다. 본 개시의 일부 실시 예들에서, PCIe 버스들 및 기능들이 사용될 수 있다. 하지만 본 개시의 실시 예들은 PCIe 이외의 아키텍처들도 사용할 수 있고, 그리고 도 1의 호스트 프로세서(110)(또는 다른 컨트롤러들)가 다양한 장치들 내의 동작들을 트리거할 수 있도록 다른 메커니즘들을 사용할 수 있다. 본 개시의 실시 예들은, 특정한 명명법과 관계없이, 모든 그러한 변형들을 포괄하도록 의도된다.
도 13에서, 표시기(1320)는 전체 장치가 도 1의 호스트 프로세서(110)에 노출되거나 또는 도 1의 호스트 프로세서(110)로부터 숨겨지는 것 중 하나를 제안한다. 본 개시의 일부 실시 예들에서, 전체 장치는 도 1의 호스트 프로세서(110)에 노출되거나 또는 도 1의 호스트 프로세서(110)로부터 숨겨질 수 있다. 하지만 본 개시의 다른 실시 예들에서, 장치의 다른 기능들은 선택적으로 도 1의 호스트 프로세서(110)에 노출되거나 또는 도 1의 호스트 프로세서(110)로부터 숨겨질 수 있다. 예를 들어, 도 1의 스토리지 장치(120)는 도 1의 스토리지 장치(120)에 빌트인된 연산 스토리지 장치로서 기능할 수 있는 압축 회로를 포함할 수 있다. 도 1의 스토리지 장치(120)로부터 데이터를 읽거나 또는 도 1의 스토리지 장치(120)에 데이터를 쓰기 위한 요청들은 자동적으로 데이터의 압축/압축해제를 트리거할 수 있고 그리고 그러므로 압축 회로는 도 1의 호스트 프로세서(110)로부터 숨겨질 수 있다. 하지만 다른 연산 스토리지 유닛들은 다른 이유들로 인해 도 1의 스토리지 장치(120)의 압축 회로에 액세스하는 것으로부터 이익을 얻을 수 있고, 그러므로 그 기능성은 도 1의 호스트 프로세서(110)에 노출되지 않는 경우라도 다른 장치들에 사용 가능해질 수 있다. 도 1의 호스트 프로세서(110)에 대한 선택적 노출-기능을 지원하기 위해, 장치 구성들의 목록(1305)은 (어떤 기능들이 노출되거나 또는 숨겨지는지 개별적으로 가리키기 위해) 각 장치/기능 조합을 위한 별도의 항목들(1325)을 포함하거나, 또는 기능들(1315) 및 표시기(1320)만 세분화할 수 있지만, 여전히 단일 장치를 위해 단일 항목(1325) 내에 그룹화된다.
기능들(1315)은 각 장치(1310)를 위한 하나인 물리적 기능 0으로 식별되는 세 개의 다른 기능들을 도시하는 점에 유의한다. 본 개시의 일부 실시 예들에서, 각 장치는 기능 0에서 시작하는 이것의 기능들을 나열할 수 있다. 장치들이 도 1의 호스트 프로세서(110)에 의해 직접적으로 액세스되는 때, 어떤 기능이 호출되는지에 관련한 혼란이 없다. 그 장치에 의해 노출되는 기능들만이 고려되고 그리고 각 기능이 일반적으로 고유하게 식별된다. 하지만 도 1의 복수-기능 장치(135)가 복수의 장치들의 기능성을 포함하는 단일 장치와 같이 동작하는 때, 도 1의 복수-기능 장치(135)는 “기능 0”으로 모두 식별되는 복수의 기능들을 노출하지 않아야 한다. 도 1의 호스트 프로세서(110)는 어떤 기능이 희망되는 기능성을 트리거하는지 모를 수 있고, 그리고/또는 도 1의 복수-기능 장치(135)는 도 1의 호스트 프로세서(110)가 어떤 능력을 트리거하기 위해 의도했는지 모를 수 있다.
이러한 문제를 해결하기 위해, 도 1의 복수-기능 장치(135)는 단위 기능 식별자들을 노출할 수 있고, 그리고 도 1의 복수-기능 장치(135)에 의해 노출되는 기능들을 개별 장치들에 의해 노출되는 기능들로 내부적으로 매핑할 수 있다. 예를 들어, 항목들(1325-1, 1325-2, 및 1325-3)은 모두 도 1의 복수-기능 장치(135)에 부착되는 장치들을 나타낸다고 가정하면, 복수-기능 장치(135)는 도 1의 호스트 프로세서(110)에 네 개의 기능들을 노출할 수 있다. 이 네 개의 기능들은 장치 0의 물리적 기능 0, 장치 0의 물리적 기능 1, 장치 1의 물리적 기능 0, 및 장치 1의 가상의 기능 0에 각각 매핑할 수 있다. 이 기능들은 임의의 희망되는 기능 식별자들이 할당될 수 있다. 본 개시의 일부 실시 예들에서 도 1의 복수-기능 장치(135)에 의해 도 1의 호스트 프로세서(110)에 노출된 그러한 기능들은 0에서 시작하는 순차적이 숫자들이 할당될 수 있다. 따라서, 도 1의 복수-기능 장치(135)에 의해 관리되는 기능들은 아래 도 2에서 도시된 바와 같이 다양한 장치 기능들로 매핑할 수 있다.
따라서, 도 1의 복수-기능 장치(135)가 예를 들어, 이것의 노출된 기능 3을 포함하는 요청을 수신한 때, 도 1의 복수-기능 장치(135)는 장치 ID(Identification)의 가상의 기능 0을 트리거하기 위해 그 요청을 번역할 수 있고, 그리고 적절한 도 3의 브릿지(335 또는 340)에 따라, 또는 도 12의 브릿지(1210)에 요청을 전달할 수 있다. 본 개시의 일부 실시 예들에서, 요청 자체를 번역하는 것보다, 도 1의 복수-기능 장치(135)는 장치의 적절한 기능에 매핑하는 것을 처리하기 위해 도 3의 브릿지들(335 또는 340) 또는 도 12의 브릿지(1210)에 맡길 수 있는 점에 유의한다. 달리 말하면, 도 1의 복수-기능 장치(135)는 도 1의 호스트 프로세서(110)가 트리거하고, 그 장치로 이어지는 도 3의 브릿지(335 또는 340) 또는 도 12의 브릿지(110)를 식별하고, 그리고, 이 후에 요청 내에서 식별되는 기능에 적절하게 매핑할 수 있는, 브릿지에 요청을 전달할 수 있도록 도 1의 호스트 프로세서(110)가 의도하는 기능을 어떤 장치가 포함하는지 결정할 수 있다.
장치 2가 도 1의 호스트 프로세서(110)에 노출되지 않았기 때문에, 그러한 기능이 도 1의 복수-기능 장치(135)에 부착된 다른 장치들에 노출될 수 있음에도 불구하고, 도 1의 복수-기능 장치(135)는 장치 2의 물리적 기능 0에 대응하는 도 1의 호스트 프로세서(110)에 기능을 노출하지 않아도 되는 점에 유의한다.
본 개시의 일부 실시 예들에서, 표 2의 매핑은 임의의 소스로부터 복수-기능 장치(135)에서 수신되는 요청들과 함께 사용될 수 있다. 장치는 (도 1의 호스트 프로세서(110)과 같은)“위의” 복수-기능 장치(135) 또는 (도 1의 스토리지 장치 및/또는 도 1의 연산 스토리지 유닛(140)과 같은)“아래의” 복수-기능 장치(135)일 수 있다. 달리 말하면, 표 2의 매핑은, 요청이 시작되는 위치에 관계없이, 임의의 요청을 위해 사용될 수 있다. (이 문맥에서, “위의” 및 “아래의”는, 예를 들어, 도 1의 호스트 프로세서(110)에 대한, 장치들의 계층일 수 있다. 도 1의 호스트 프로세서(110)는, 도 1의 호스트 프로세서(100) 및 복수-기능 장치(135) 사이에 있는 임의의 다른 장치들과 함께 “위의” 복수-기능 장치(135)로 고려될 수 있는 바면, 복수-기능 장치(135)를 통해 도 1의 호스트 프로세서(110)과 통신하는 임의의 장치들은 “아래의” 복수-기능 장치(135)로 고려될 수 있다.) 본 개시의 다른 실시 예들에서, 복수-기능 장치(135)에 연결되는 장치들이 서로 알 수 있고 그리고 어떤 기능들을 그들이 (장치들이 다른 장치들이 그들 또는 그들의 기능들을 보도록 허용하는 정도까지)각각 노출하는지 알 수 있기 때문에, 복수-기능 장치(135)에 연결되는 장치들은, 복수-기능 장치(135)에 의해 노출되는 기능들보다, 장치들에 의해 노출되는 식별자들 및 기능 식별자들을 사용할 수 있다.
스토리지(1215)는 임의의 다양한 스토리지일 수 있다. 예를 들어, 스토리지(1215)는, DRAM같은, 휘발성 스토리지, 또는, 플래시 메모리 같은, 비-휘발성 스토리지일 수 있다. 본 개시의 일부 실시 예들은 어떤 장치들/컨트롤러를 도 1의 호스트 프로세서(110)에 노출시킬지 결정하기 위해 도 13의 장치 구성들의 목록(1305)를 사용할 수 있다. 그러한 실시 예들에서, 복수-기능 장치(135)는 모든 부착되는 장치들이 도 13의 장치 구성들의 목록(1305) 내에 저장된 구성들을 가진다고 결정하기 위해 부착되는 장치들을 열거할 수 있고, 이 후에 어떤 장치들/컨트롤러들을 도 1의 호스트 프로세서(110)에 노출시킬지 결정하기 위해 도 13의 장치 구성들의 목록(1305)로부터 장치 구성들을 사용할 수 있다.
특정한 장치/컨트롤러가 도 1의 호스트 장치(110)로부터 숨겨질 수 있는 사실은 장치/컨트롤러가 도 1의 호스트 프로세서(110)에 노출되지 않을 수 있는 것을 제안하고 있다고 이해돼서는 안된다. 달리 말하면, 도 1의 복수-기능 장치(135)는 도 1의 호스트 프로세서(110)에 장치/컨트롤러를 노출시키는 것을 할 수 있지만, 장치 구성이 장치/컨트롤러는 도 1의 호스트 프로세서(110)로부터 숨겨져야 한다고 가리키기 때문에 도 1의 복수-기능 장치(135)는 장치/컨트롤러를 숨기도록 선택할 수 있다.
도 14는 본 개시의 실시 예들에 따르면, 도 1의 복수-기능 장치(135)의 다른 실시 예를 도시한다. 도 14에서, 복수-기능 장치(135)는 도 3에서 도시된 바와 같이 복수-기능 장치(135)와 유사하다. 하지만 도 14의 복수-기능 장치(135)는 FHE 회로(1405)도 포함할 수 있다. 도 14에서, FHE 회로(1405)는 복수-기능 장치(135)로 통합될 수 있다. 즉, 커넥터들(315 또는 320), 또는 도 12의 커넥터(1205)와 같은, 커넥터를 통해 복수-기능 장치에 연결되는 것 대신에, FHE 회로(1405)는 복수-기능 장치(135)의 부분으로서 통합될 수 있다. FHE 회로(1405)를 복수-기능 장치(135)와 통합하는 것에 의해, FHE 회로에 전송된 요청들은 더 빠르게 처리될 수 있다. 복수-기능 장치(135)는 FHE 회로(1405)의 기능들을 직접적으로 노출할 수 있다. 그러므로 FHE 회로(1405)의 능력득은 기능 식별자들을 매핑하는 것을 위한 필요없이 트리거될 수 있다. FHE 회로(1405)를 복수-기능 장치(135)와 통합하는 것은 브릿지가 생략될 수 있다는 것도 의미할 수 있다. FHE 회로(1405)와의 통신이 직접적일 수 있기 때문에, FHE 회로(1405)는 FHE 회로(1405)와의 통신들을 처리하기 위해 브릿지가 필요하지 않을 수 있다. 한편, FHE 회로(1405)를 복수-기능 장치내에 통합하는 것에 의해, FHE 회로(1405)는 대체불가능하지 않을 수 있다. FHE 회로(1405)가 올바르게 동작하지 않거나 또는 더 이상 필요하지 않은 경우, 복수-기능 장치(135)는 전체적으로 교체되어야 할 필요가 있을 수 있다. 도 12의 브릿지(1210)과 같이, FHE 회로(1405)는, 명확성을 위해 도면에서 도시되지 않은, 커넥터(305), 브릿지들(335 및/또는 340), 및 데이터 프로세서(375)에 대한 연결들을 포함할 수 있다.
도 14가 복수-기능 장치(135)내에 통합되는 FHE 회로(1405)를 도시하는 동안, 본 개시의 실시 예들은 복수-기능 장치(135)내에 통합되는 임의의 희망되는 연산 스토리지 유닛(또는 심지어 스토리지 장치)을 포함할 수 있다. 또한, 도 14가 복수-기능 장치(135)내에 통합되는 오직 하나의 FHE 회로를 도시하는 동안, 본 개시의 실시 예들은 임의의 수의 장치들을 복수-기능 장치(135)내에 통합할 수 있고, 그리고 복수-기능 장치(135)내에 통합되는 다양한 장치들이 동일하거나 또는 다른 장치일 수 있다. 마지막으로, 도 14가 하나의 커넥터(320)(및 이것의 대응하는 브릿지(340) 및 커넥터(305), 브릿지(335), 버퍼(370), 및 데이터 프로세서(375)에 대한 연결들)을 도시하는 동안, 본 개시의 실시 예들은 커넥터(315) 및 FHE 회로(1405)를 넘어 복수-기능 장치(135)에 부착되는 임의의 수(0 이상)의 장치들을 포함할 수 있다. 다시 말해서, 복수-기능 장치(135)는 오직 FHE 회로(1405) 및 (스토리지 장치(120)과 같은)다른 장치를 위한 하나의 커넥터(315)를 포함할 수 있다. 하지만, 복수-기능 장치는 도 1의 스토리지 장치(120) 및 도 1의 연산 스토리지 장치(140)와 같은 다른 장치들을 연결하는 것을 위한 둘 이상의 커넥터들(315 및 320)을 포함할 수 있다(복수-기능 장치(135)는 셋 이상의 장치들의 기능성들을 포함하는 것으로 보일 수 있다는 것을 의미한다).
도 15는 본 개시의 실시 예들에 따라, 소스로부터 요청을 수신하고 그리고 타겟에 요청을 전송하는 도 1의 복수-기능 장치(135)를 도시한다. 상술한 바와 같이, 복수-기능 장치(135)는 도 1의 호스트 프로세서(110) 및, 도 1의 스토리지 장치(120) 및/또는 도 1의 연산 스토리지 유닛(140)과 같은, 다양한 장치들에 연결될 수 있다. 도 15의 목적을 위해, 소스(1505)는 요청(1510)를 전송할 수 있는 복수-기능 장치(135)에 연결되는 임의의 구성일 수 있다. 소스(1505)는 따라서 도 1의 호스트 프로세서(110), 도 1의 스토리지 장치(120), 또는 (예를 들어, 도 14의 FHE 회로(1405)를 포함할 수 있는)도 1의 연산 스토리지 유닛(140)을 포함할 수 있다. 유사한 방식으로, 타겟(1515)은 소스(1505)가 요청(1510)을 보낼 수 있는 임의의 구성일 수 있다. 타겟(1515)은 따라서 도 1의 호스트 프로세서(110), 도 1의 스토리지 장치(120), 또는 (예를 들어, 도 14의 FHE 회로(1405)를 포함할 수 있는)도 1의 연산 스토리지 유닛(140)을 포함할 수 있다. 하지만 소스(1505)가 타겟(1515)에 요청(1510)을 보낼 것이기 때문에, 소스(1510)는 타겟(1515)가 존재하는 것을 알 필요가 있을 수 있다. 따라서, 예를 들어, 소스(1510)가 도 1의 호스트 프로세서(110)인 경우, 타겟(1515)은 도 1의 호스트 프로세서(110)로부터 숨겨진 복수-기능 장치(135)에 연결되는 임의의 장치를 포함하지 않을 수 있다. (복수-기능 장치(135)에 연결되는 장치들이 필요적으로 서로로부터 숨겨지지 않기 때문에, 호스트 프로세서(1505)로부터 숨겨지는 타겟(1515)은 다른 소스들이 타겟(1515)에 요청(1510)을 보낼 수 없을 수도 있다는 것을 필요적으로 의미하지 않는다는 점에 유의한다.) 이 논의의 목적을 위해, 타겟(1515)은 장치 자체 또는 도 3의 브릿지들(335 또는 340) 또는 도 12의 브릿지(1210) 중 적어도 하나를(복수-기능 장치(135)가, 장치 자체에보다, 도 3의 브릿지들(335 또는 340) 또는 도 12의 브릿지(1210)에 요청을 전송하기 때문에) (장치에 대한 전송을 처리하는 도 3의 브릿지들(335 또는 340) 또는 도 12의 브릿지(1210)와 함께)포함할 수 있다. 또한, 타겟(1415)은 (도 1의 호스트 프로세서(110) 및/또는 복수-기능 장치(135)에 연결되는 장치들이 데이터 프로세서(375)가 버퍼(370) 내의 데이터를 처리하도록 요청할 수 있기 때문에) 데이터 프로세서(375)도 포함할 수 있다.
하지만 일부 상황들에서, 소스(1505)가 타겟(1515)에 요청(1510)을 전송할 수 있지만, 복수-기능 장치(135)(또는 도 3의 브릿지들(335 또는 340) 또는 도 12의 브릿지(1210))는 요청을 다른 목적지로 리다이렉팅할 수 있다. 예를 들어, 상술한 바와 같이, 복수-기능 장치(135)에 연결되는 장치들은 버퍼(370)를 도 1의 메모리(115)의 일부로서 볼 수 있고, 그리고 버퍼(370)가 복수-기능 장치(135) 내의 구성으로서 존재한다는 것을 알지 못할 수 있다. 하지만 복수-기능 장치(135)(또는 도 3의 브릿지들(335 또는 340) 또는 도 12의 브릿지(120))가 요청(1510)이 버퍼(370)의 어드레스 레인지의 부분인 어드레스를 액세스하는 것을 수반한다고 결정하는 경우, 복수-기능 장치(135)(또는 도 3의 브릿지들(335 또는 340) 또는 도 12의 브릿지(1210))는, 버퍼(370)과 연관되는 어드레스 레인지 내에 있는 요청(1510)의 어드레스에 기초하여, 요청을 버퍼(370)에 대신 리다이렉팅할 수 있다(또는 버퍼(370)를 사용하여 요청(1510)를 자체적으로 처리할 수 있다).
본 개시의 일부 실시 예들에서, 타겟(1515), 버퍼(370), 및 데이터 프로세서(375)는 소스(1505)로 응답(1520)을 전송할 수 있다. 그러한 상황들에서, 응답(1520)은 복수-기능 장치(135)에 의해 소스(1520)로 다시 전송될 수 있다.
타겟(1515)가 도 1의 복수-기능 장치(135)내에 통합된 경우라도, 타겟(1515)는 응답(1520)을 전송할 수 있는 점에 유의한다. 예를 들어, 도 14의 FHE 회로(1405)는 소스(1505)에 응답(1520)을 전송할 수 있다. 도 14의 FHE 회로(1405), 또는 임의의 다른 구성이, 도 1의 복수-기능 장치(135)내에 통합될 수 있는 사실은 언제 타겟(1515)이 이것의 동작을 완료하는지 안다는 것을 의미하지 않는다.
도 16은 본 개시의 실시 예들에 따라, 도 1의 복수-기능 장치(135)에 부착되는 장치들을 도 1의 프로세서에 노출하는 것을 위한 예시적인 절차의 순서도를 도시한다. 도 16에서, 블록(1605)에서, 도 1의 복수-기능 장치(135)는 도 1의 스토리지 장치(120)가, 예를 들어, 도 3의 커넥터(315)를 통해, 도 1의 복수-기능 장치(135)에 연결될 수 있는지 결정할 수 있다. 블록(1610)에서, 도 1의 복수-기능 장치(135)는 도 1의 제1 연산 스토리지 유닛(140)이 사용가능한지 결정할 수 있다. 본 개시의 일부 실시 예들에서, 도 1의 제1 연산 스토리지 유닛(140)은 도 14의 FHE 회로(1405)일 수 있는 점에 유의한다. 블록(1615)에서, 도 1의 복수-기능 장치(135)는 도 1의 제2 연산 스토리지 장치가, 예를 들어 도 3의 커넥터(320)를 통해, 도 1의 복수-기능 장치(135)에 연결되는지 결정할 수 있다. 본 개시의 일부 실시 예들에서, 도 1의 제2 연산 스토리지 장치(140)는 도 14의 FHE 회로(1405)일 수 있는 점에 유의한다.
블록(1620)에서, 도 1의 복수-기능 장치(135)는 도 1의 스토리지 장치(120)를, 도 1의 복수-기능 장치(135)에도, 예를 들어 도 3의 커넥터(305)를 통해, 연결될 수 있는, 도 1의 호스트 프로세서(110)에 노출할 수 있다. 블록(1625)에서, 도 1의 복수-기능 장치(135)는 선택적으로 도 1의 제1 및/또는 제2 연산 스토리지 유닛들(140)을 도 1의 호스트 프로세서(110)에 노출할 수 있다. 예를 들어, 도 1의 연산 스토리지 유닛들(140) 중 하나 또는 모두의 구성들은 도 1의 연산 스토리지 유닛들(140)이 도 1의 호스트 프로세서(110)에 노출될 것인지 식별할 수 있다.
도 17은 본 개시의 실시 예들에 따라, 도 1의 복수-기능 장치(135)가 어떻게 연산 스토리지 유닛이 이용가능한지 결정하는지를 위한 예시적인 절차의 순서도를 도시한다. 블록(1705)에서, 도 1의 복수-기능 장치(135)는 도 1의 연산 스토리지 유닛(140)이, 예를 들어, 도 3의 커넥터(320) 또는 도 12의 커넥터(1205)를 통해, 도 1의 복수-기능 장치(135)에 연결되었는지 결정할 수 있다. 대안적으로, 블록(1710)에서, 도 1의 복수-기능 장치(135)는 도 1의 연산 스토리지 유닛(140)이, 도 14의 FHE 회로(1405)와 같은, 도 1의 복수-기능 장치(135)내에 통합되는지 결정할 수 있다. 이 결정들은, 예를 들어, 도 1의 호스트 프로세서(110)는 도 1의 호스트 장치(110)에 부착되는 장치들을 열거할 때 스스로를 도 1의 복수-기능 장치로 식별할 수 있고, 그리고 도 1의 복수-기능 장치(135)는 이것에 부착되는 장치들을 그 장치들을 열거하는 것에 의해 결정할 수 있는, 임의의 희망되는 방식으로 될 수 있다.
도 18은 본 개시의 실시 예들에 따라, 도 1의 복수-기능 장치(135)가 어떤 장치들을 도 1의 프로세서에 노출할지 결정하기 위한 예시적인 절차의 순서도를 도시한다. 블록(1805)에서, 도 1의 복수-기능 장치(135)는 도 12의 스토리지(1215)로부터 도 13의 장치 구성들의 목록(1305)을 액세스할 수 있다. 도 1의 복수-기능 장치(135)는 이 후에 도 1의 복수-기능 장치(135)에 연결되는 장치들을 위한 도 13의 항목들(1325)을 식별할 수 있다. 블록(1810)에서, 도 1의 복수-기능 장치는 도 1의 제1 연산 스토리지 유닛(140)을 도 1의 호스트 프로세서(110)에 노출할 수 있는 반면, 도 1의 복수-기능 장치(135)는 도 1의 제2 연산 스토리지 유닛(140)을 도 1의 호스트 프로세서(110)에 노출하지 않을 수 있다(즉, 숨길 수 있다). 예를 들어, 도 1의 연산 스토리지 유닛들(140)은 도 1의 호스트 프로세서(110)에 노출되었는지는 도 1의 연산 스토리지 유닛들(140)의 구성들에 의해 결정될 수 있다.
도 18이 블록들(1810 및 1815)가 대안들임을 제시하지만, 블록들(1810 및 1815)은 장치가 도 1의 호스트 프로세서(110)에 노출되거나 또는 도 1의 호스트 프로세서(110)로부터 숨겨지는 것 중 하나일 수 있기 때문에, 블록들(1810 또는 1815)는 오직 단일 연산 스토리지 유닛(또는 다른 장치)에 대해서만 대안들이다. 하지만 하나의 장치가 도 1의 호스트 프로세서(110)에 노출되거나 또는 도 1의 호스트 프로세서(110)로부터 숨겨지는지는 임의의 다른 장치가 도 1의 호스트 프로세서(110)에 노출되거나 또는 도 1의 호스트 프로세서(110)로부터 숨겨지는지에 독립적일 수 있다. 유사하게, 하나의 장치가 특정한 기능이 다른 장치들로부터 숨겨지거나 또는 다른 장치들에 노출되는지는 임의의 다른 장치가 이것의 기능들을 숨기거나 또는 노출하는지에 독립적일 수 있다.
도 19는 본 개시의 실시 예들에 따라, 도 1의 복수-기능 장치(135)가 연결된 장치들 사이에 메시지들을 전송하기 위한 예시적인 절차의 순서도를 도시한다. 도 19에서, 블록(1905)에서, 도 1의 복수-기능 장치(135)는 도 1의 소스(1505)로부터 도 15의 요청(1510)을 수신할 수 있다. 도 15의 소스(1505)는 도 1의 호스트 프로세서(110), 도 1의 스토리지 장치(120), 도 1의 연산 스토리지 유닛(140), 도 3의 데이터 프로세서(375), 도 14의 FHE 회로(1405), 또는 도 1의 복수-기능 장치(135)와 통합된 또는 도 1의 복수-기능 장치(135)에 연결되는 임의의 다른 장치일 수 있다. 블록(1910)에서, 도 1의 복수-기능 장치(135)는 도 15의 타겟(1515)에 도 15의 요청(1510)을 전송할 수 있다. 도 15의 타겟(1515)은 도 1의 호스트 프로세서(110), 도 1의 스토리지 장치(120), 도 1의 연산 스토리지 유닛(140), 도 3의 데이터 프로세서(375), 도 14의 FHE 회로(1405), 또는, 도 15의 소스(1505)가 도 15의 타겟(1515)가 존재한다는 것을 아는 단서와 함께, 도 1의 복수-기능 장치(135)와 통합되거나 또는 도 1의 복수-기능 장치(135)에 연결될 수 있는 임의의 다른 장치일 수 있다. 따라서, 예를 들어, 도 15의 소스(1505)가 도 1의 호스트 프로세서(110)인 경우, 도 15의 타겟(1515)은 도 1의 호스트 프로세서(110)에 노출된 도 1의 스토리지 장치(120), 도 1의 연산 스토리지 유닛(140), 도 3의 데이터 프로세서(375), 또는 도 14의 FHE 회로(1405)일 수 있다(다시 말하면, 도 15의 타겟(1515)은 도 1의 호스트 프로세서(110)로부터 숨겨진 장치가 아닐 수 있다).
블록(1915)에서, 도 1의 복수-기능 장치는 도 15의 타겟(1515)으로부터 도 15의 응답(1520)을 수신할 수 있다. 그 경우에, 블록(1920)에서, 도 1의 복수-기능 장치(135)는 도 15의 응답(1520)을 도 15의 소스(1505)로 전송할 수 있다. 도 15의 타겟(1515)이 도 15의 응답(1520)을 전송하지 않는 상황들에서, 블록들(1910 및 1915)은, 파선(1925)에 의해 도시된 바와 같이, 생략될 수 있다.
도 15의 요청(1510)이 도 15의 타겟(1515)에 전송될 수 있지만, 일부 상황들에서 도 15의 요청(1510)은 도 3의 버퍼(370) 내의 데이터를 읽는 것, 쓰는 것, 또는 그렇지 않으면 다루는 것을 수반할 수 있다. 그러한 상황들에서, 도 15의 요청(1510)은 도 15의 타겟(1515) 대신 도 3, 12, 및 14의 버퍼(370)에 전송될 수 있다. 따라서, 블록(1930)에서, 도 15의 요청(1510)은 도 3의 버퍼(370)로 전송될 수 있고, 그리고 블록(1935)에서 도 15의 응답(1520)은, 이 후에 블록(1920)에서 도 15의 소스(1505)로 전송될 수 있는, 도 3의 버퍼(370)로부터 수신될 수 있다. 도 3의 버퍼(370)가 도 15의 응답(1520)을 전송하지 않는 상황들에서, 블록(1930 및 1935)은, 파선(1940)에 의해 도시된 바와 같이, 생략될 수 있다. 도 15의 요청(1510)이 도 15의 타겟(1515) 또는 도 3, 12, 및 14의 버퍼(370)로 전송될 수 있는지는 도 15의 요청(1510) 내의 데이터, 예를 들어, 도 3, 12, 및 14의 버퍼(370)와 연관되는 어드레스에 기초하여 결정될 수 있다.
도 20은 본 개시의 실시 예들에 따라, 도 1의 복수-기능 장치(135)가 도 1의 프로세서로부터 도 3, 12, 및 14의 버퍼(370)의 어드레스 레인지를 결정하기 위한 예시적인 절차의 순서도를 도시한다. 블록(2005)에서, 도 1의 호스트 프로세서(110)는, 도 1의 복수-기능 장치(135)에 제공될 수 있는, 도 3, 12, 및 14의 버퍼(370)를 위한 어드레스 레인지를 결정할 수 있다. 도 1의 복수-기능 장치(135)는 도 3, 12, 및 14의 버퍼(370)의 용량을 도 1의 호스트 프로세서(110)에 알릴 수 있다. 따라서 도 1의 호스트 프로세서(110)는 도 3, 12, 및 14의 버퍼(370)에 할당하는 어드레스 레인지가 얼마나 큰지 알 수 있다.
도 21은 본 개시의 실시 예들에 따라, 도 1의 복수-기능 장치(135)에 부착되는 장치들이 도 3, 12, 및 14의 버퍼(370)로부터 데이터를 액세스하기 위한 예시적인 절차의 순서도를 도시한다. 도 21에서, 블록(2105)에서, (예를 들어, 도 14의 FHE 회로(1405)일 수 있는)도 1의 제1 스토리지 장치(120) 또는 도 1의 제1 연산 스토리지 유닛(140)은 도 3의 버퍼(370) 내의 데이터를 액세스할 수 있다. 블록(2110)에서, (예를 들어 도 14의 FHE 회로(1405)일 수 있는)도 1의 제2 스토리지 장치(120) 또는 도 1의 제2 연산 스토리지 유닛(140)은 도 3, 12, 및 14의 버퍼(370) 내의 데이터를 액세스할 수 있다. 블록(2115)에서, (도 14의 FHE 회로(1405)일 수 있는)도 1의 제3 스토리지 장치(120) 또는 도 1의 제3 연산 스토리지 유닛(140)은 도 3, 12, 및 14의 버퍼(370) 내의 데이터를 액세스할 수 있다. 도 1의 복수-기능 장치(135)가 도 1의 제3 연산 스토리지 유닛(140)을 가지지 않는 경우, 블록(2115)는 이 후에, 파선(2120)에 의해 도시된 바와 같이, 생략될 수 있다. 블록(2110)에서 도 3, 12, 및 14의 버퍼(370) 내의 데이터를 액세스하는 장치는 블록(2105)에서 도 3, 12, 및 14의 버퍼(370) 내의 데이터를 액세스하는 장치와 동일한 유형의 장치이거나 또는 다른 유형의 장치일 수 있다. 예를 들어, 도 1의 스토리지 장치(120)는 블록(2105)에서 도 3, 12, 및 14의 버퍼(370)를 액세스할 수 있는 반면, 도 1의 연산 스토리지 유닛(140)은 블록(2110)에서 도 3, 12, 및 14의 버퍼(370)를 액세스할 수 있다.
도 22는 본 개시의 실시 예들에 따라, 도 3, 12, 및 14의 데이터 프로세서(375)가 도 3, 12, 및 14의 버퍼(370) 내의 데이터를 처리하기 위한 예시적인 절차의 순서도를 도시한다. 도 22에서, 블록(2205)에서, 도 3의 데이터 프로세서(375)는 도 3의 버퍼(370) 내의 데이터를 처리하도록 요청을 수신할 수 있다. 이 요청은 도 1의 호스트 프로세서(110), 도 1의 스토리지 장치(120), (예를 들어, 도 3의 FHE 회로(1405)일 수 있는)도 1의 연산 스토리지 유닛(140), 또는 도 1의 복수-기능 장치(135)에 연결되는 임의의 다른 장치로부터 수신될 수 있다. 이 요청은 도 3의 데이터 프로세서(375)의 노출되는 기능을 트리거할 수 있거나, 또는 도 1의 복수-기능 장치(135)의 기능을 트리거할 수 있다. 이는 다시 도 3의 데이터 프로세서(375)의 기능을 (예를 들어, 도 3의 데이터 프로세서(375)에 의해 노출되는 기능에 대한 도 1의 복수-기능 장치(135)에 의해 노출되는 기능의 매핑을 통해) 트리거할 수 있다. 블록(2210)에서, 데이터 프로세서(375)는, 명령된 바와 같이, 도 3의 버퍼(370) 내의 데이터를 처리할 수 있다.
도 23은 도 1의 복수-기능 장치(135)가 도 15의 타겟(1520) 또는 도 3, 12, 및 14의 버퍼(370)에 요청을 전달할 수 있는지 결정하기 위한 예시적인 절차의 순서도를 도시한다. 도 23에서, 블록(2305)에서, 도 1의 복수-기능 장치(135)―보다 상세하게는, 도 3의 브릿지들(335 또는 340) 또는 도 12의 브릿지(120)―는 도 15의 요청(1510)을 수신할 수 있다. 블록(2310)에서, 예를 들어, 도 15의 요청(1510)이 도 3의 버퍼(370)과 연관되는 어드레스 레인지 내의 어드레스를 포함하는 경우, 도 3의 브릿지들(335 또는 340) 또는 도 12의 브릿지(1210)는 도 15의 요청(1510)이 도 3의 버퍼(370)로 다이렉팅되어야 하는지 결정할 수 있다. 도 15의 요청(1510)이 도 3의 버퍼(370)를 수반하지 않는 경우, 이 후에 블록(2315)에서 도 3의 브릿지들(335 또는 340) 또는 도 12의 브릿지(1210)는 도 15의 요청(1510)을 도 15의 타겟(1515)에 전달할 수 있다. 그렇지 않으면, 블록(2320)에서, 도 3의 브릿지들(335 또는 340) 또는 도 12의 브릿지(1210)는 도 15의 요청(1510)을 도 3의 버퍼(370)에 전달할 수 있다.
도 24는 본 개시의 실시 예들에 따라, 도 1의 복수-기능 장치(135)가 도 1의 복수-기능 장치(135)에 부착되는 새 장치를 처리하기 위한 예시적인 절차의 순서도를 도시한다. 도 24에서, 블록(2405)에서, 도 1의 복수-기능 장치(135)에 연결되는 하나의 장치는 새 장치에 의해 대체될 수 있다. 이 대체는, 예를 들어, 도 1의 복수-기능 장치(135)를 사용하는 고객에 의해, 수행될 수 있다. 본 개시의 일부 실시 예들에서, 이 대체는 새 장치를 위한 장치의 핫-스왑(hot-swap)을 포함할 수 있다. 본 개시의 다른 실시 예들에서, 대체는 도 1의 복수-기능 장치의 전원을 끄는 것을 수반할 수 있다. 블록(2410)에서, 도 1의 복수-기능 장치(135)는 도 1의 복수-기능 장치(135)에 연결되는 새 장치를 결정할 수 있다.
블록(2415)에서, 도 1의 복수-기능 장치(135)는 도 13의 장치 구성들의 목록(1305)가 새 장치를 위한 도 13의 항목(1325)를 포함하는지 결정할 수 있다. 결정하는 경우, 이 후에 블록(2420)에서, 도 1의 복수-기능 장치(135)는 새 장치를 구성하기 위해 도 13의 항목(1325)을 사용할 수 있다. 도 1의 복수-기능 장치(135)는 새 장치의 어떤 기능들을 도 1의 호스트 프로세서(110)에 노출할지(또는 노출하지 않을지) 결정하기 위해 도 13의 항목(1325)을 사용할 수 있다. 그렇지 않으면, 블록(2425)에서, 도 1의 복수-기능 장치(135)는 새 장치를 위한 구성을 (예를 들어, 그 구성에 대해 새 장치의 정보를 얻는 것, 또는 새 장치를 위한 구성을 결정하도록 관리자로 촉구하는 것에 의해)결정할 수 있고 그리고 블록(2430)에서 도 1의 복수-기능 장치(135)는 도 13의 장치 구성들의 목록(1305)을, 나중에 도 1의 복수-기능 장치(135)가 블록(2420)에서 장치 구성을 사용할 수 있는, 새 장치를 위한 구성과 함께 업데이트 할 수 있다.
도 6-11b 및 도 16-24에서, 본 개시의 일부 실시 예들이 도시된다. 하지만 당업자는 본 개시의 다른 실시 예들도, 블록들의 순서를 변경하는 것에 의해, 블록들을 생략하는 것에 의해, 또는 도면들에서 도시되지 않은 연결들을 포함하는 것에 의해, 가능한 것을 인식할 것이다. 순서도들의 모든 그러한 변형들은, 명시적으로 설명되는지 또는 아닌지 관계없이 본 개시의 실시 예들로 고려된다.
본 개시의 실시 예들은 스토리지 장치들 및 연산 스토리지 유닛들에 대한 연결들을 지원할 수 있는 복수-기능 장치를 가질 수 있다. 복수-기능 장치는 개별적인 스토리지 장치들 및 연산 스토리지 유닛들의 모든 기능들을 지원하는 단일 장치를 호스트 프로세서에 제공할 수 있다. 또한, 일부 장치들은 호스트 프로세로부터 숨겨지고, 그리고 복수-기능 장치에 연결되는 다른 장치들에 의해 단독으로 사용될 수 있다. 본 개시의 실시 예들은 고객들이 단일 장치인 것처럼 통합할 어떤 스토리지 장치들 및 어떤 연산 스토리지 유닛들을 혼합하고 그리고 매칭할 수 있게 하는 것에 의해 기술적인 장점을 제공한다. 본 개시의 실시 예들은 하나의 장치가 복수-기능 장치에 부착되는 다른 장치의 기능들을 액세스할 수 있게 하는 것에 의해 기술적인 장점도 제공할 수 있다.
본 개시의 실시 예들은 복수-기능 장치 내의 버퍼도 포함할 수 있다. 버퍼는 부착되는 스토리지 장치들 및/또는 연산 스토리지 유닛들의 일부 또는 전부에 의해 접근가능한 공유된 메모리로써 동작할 수 있다. 본 개시의 실시 예들은 스토리지 장치들 및/또는 연산 스토리지 유닛들 사이의 데이터를 이동하거나, 또는 메인 메모리 내의 데이터를 처리하기 위해 메인 메모리르 사용하는 필요를 피하는 것에 의해 기술적인 장점을 제공할 수 있다.
본 개시의 다양한 실시 예들은 SSD와 같은 스토리지 장치 및 통합된 스토리지 장치 내의 컴퓨팅 장치를 통합하기 위한 시스템들 및 방법들을 포함한다. 본 개시의 일부 실시 예들에서, NVMe 컨트롤러 및 컴퓨팅은 물리적 기능(PF)들/가상의 기능(VF)들을 포함하는 별개의 PCIe 기능들을 독립적으로 사용하는 호스트에 노출될 수 있다. 피어-투-피어 데이터 경로는 스토리지 장치 및 컴퓨팅 장치 사이에 제공될 수 있다. 컴퓨팅 장치 및 SSD는 GPU들, TPU들, NIC들, FPGA들, ASIC들, SoC들과 같은 다양한 컴퓨팅 유형들을 변경하도록 유연성을 제공하는 커넥터들을 사용하여 연결될 수 있다.
본 개시의 일부 실시 예들에서, 애플리케이션들은 큰 용량의 데이터를 생성할 수 있는 소셜 네트워크들, 인공 지능/기계 러닝(AI/ML; Artificial Intelligence/Machine Learning), 사물-인터넷(IOT; Internet-of-things), 및 자율주행 차량 등과 같은 것들을 포함할 수 있다. 본 개시의 일부 실시 예들에서, 그러한 큰 데이터세트들은 데이터세트들로부터 수익화를 생성하기 위해 프로세싱을 요구할 수 있다. 일부 실시 예들에서, 그러한 프로세싱은 CPU 싸이클들, 메모리 대역폭, 소비되는 에너지의 관점에서 비쌀 수 있다. 이와 같이, 본 개시의 일부 실시 예들은 애플리케이션들에 대해 더 낮은 응답 지연(latency)들을 제공하기 위해 스토리지 장치의 근거리 또는 내부의 데이터를 처리할 수 있다. 그러한 근거리 프로세싱은 큰 데이터 세트들을 프로세서에 또는 프로세서로부터 이동하기 위한 에너지 소비도 감소시킬 수 있다. 또한, 그러한 근거리 프로세싱은 분산된 컴퓨팅을 가능하게 할 수 있다. 이와 같이, 본 개시의 일부 실시 예들은 그러한 애플리케이션 기능들을 스토리지 장치로 오프로드(offload)할 수 있고 그리고 필요한 컴퓨팅 리소스들을 최소화할 수 있고, 그리고 따라서 하나 이상의 컴퓨팅-싸이클들, 메모리, 네트워크 대역폭, 및 소비되는 에너지를 포함하는 데이터베이스 인프라스트럭처(database infrastructure)의 비용을 낮출 수 있다.
본 개시의 일부 실시 예들에서, 하나 이상의 SSD 컨트롤러들 및/또는 하나 이상의 컴퓨팅 장치들은 통합된 스토리지 장치에 플러그/연결될 수 있다.
본 개시의 일부 실시 예들에서, SSD 컨트롤러들 및/또는 컴퓨팅 장치들은 호스트에 전체 또는 일부가 노출될 수 있다.
본 개시의 일부 실시 예들에서, SSD 컨트롤러들 및/또는 컴퓨팅 장치들의 서브세트들은 호스트에 노출되지 않을 수 있고 그리고 오직 내부적일 수 있다.
본 개시의 일부 실시 예들에서, SSD 컨트롤러 및 컴퓨팅 장치들은 PCIe PF 및/또는 VF를 사용하여 노출될 수 있다.
본 개시의 일부 실시 예들에서, FPGA는 PCIe-PCIe 브릿지 기능(bridge function), 및 호스트 프로토콜 패스-쓰루(host protocol pass-through)를 수행한다.
본 개시의 일부 실시 예들에서, SSD 컨트롤러들 및 컴퓨팅 장치들은 이 장치 기능들을 네이티브하게(natively) 액세스할 수 있는 호스트 상의 그들의 자체 장치 드라이버들 및 호스트 소프트웨어 스택(host software stack)을 가질 수 있다.
본 개시의 일부 실시 예들에서, SSD 컨트롤러들 및 컴퓨팅 장치들은 처리되고 있는 데이터를 교환하기 위해 피어-투-피어 버퍼를 공유할 수 있다.
본 개시의 실시 예들에서, 프로세서 코어와 같은 하나 이상의 고정된 컴퓨팅 장치들은 FPGA 내의 특정한 전-처리 스텝들을 위해 사용될 수 있다.
본 개시의 실시 예들에서, 통합된 장치들은 이 동작들이 다른 SSD 컨트롤러들 및/또는 컴퓨팅 장치들을 방해하지 않도록 지능형 호스팅 다이렉티드 장치/기능 관리(intelligent hosting directed device/function)를 수행할 수 있다.
본 개시의 일부 실시 예들에서, SSD 컨트롤러들 및 컴퓨팅 장치들은 유연한 스토리지 장치 내에서 미리-설치되고 그리고 구성될 수 있다.
본 개시의 일부 실시 예들에서, 유연한, 통합된 스토리지 장치는 새로운 컴퓨팅들을 존재하는 유연한 스토리지 장치에 설치하는 것의 플러그-앤-플레이(plug-and-play) 방법을 지원할 수 있다.
본 개시의 일부 실시 예들은, 최적의 데이터 프로세싱을 위해, SSD와의 TPU/GPU/FPGA/ASIC/SoC와 같은 컴퓨팅들의 많은 다른 종류들을 지원할 수 있다.
본 개시의 일부 실시 예들에서, 다른 애플리케이션들 및 사용 케이스들은 비용 및 수행 최적 연산 스토리지 솔루션(cost and performance optimal computational storage solution)으로부터 이익을 얻을 수 있다.
본 개시의 일부 실시 예들은 애플리케이션들 고객들의 더 넓은 세트를 가능하게 할 수 있다.
본 개시의 일부 실시 예들은 베이스 플랫폼(base platform) 및 파트너들로부터 다른 컴퓨팅을 가는 것에 의해 더 적은 제품 편향(produce skew)들을 가능하게 할 수 있다.
본 개시의 실시 예들은 최적의 데이터 프로세싱을 위해 영구적인 스토리지 및 컴퓨팅을 통합하는 유연한, 통합된 스토리지 장치를 위한 제안되는 아키텍처를 포함할 수 있다. 스토리지 장치 시스템 내부의 데이터를 처리하는 것에 의해, 호스트 버스 대역폭, 호스트 메모리 대역폭, CPU 싸이클들, 리소스 비용들 절감들이 달성될 수 있다. 데이터 프로세싱이 더 빨리 시작할 수 있기 때문에, 본 개시의 일부 실시 예들은 더 낮은 지연들을 가능하게 할 수 있다.
본 개시의 실시 예들에서, 유연하고 그리고 통합된 스토리지 장치는 FPGA(또는 ASIC, SoC, 등)와 같은 프로세싱 요소일 수 있고, 그리고 하나 이상의 SSD 컨트롤러들 및/또는 하나 이상의 컴퓨팅 리소스들을 호스트에 연결하기 위해 사용될 수 있다. 본 개시의 일부 실시 예들에서, SSD 컨트롤러들 및 컴퓨팅 리소스들은 커넥터를 사용하여 그러한 FPGA에 연결될 수 있으므로, 필요에 따라 다른 특징들이 연결될 수 있다. 본 개시의 일부 실시 예들에서, 바람직한 경우, SSD 컨트롤러들 및/또는 컴퓨팅 리소스들의 일부는 고정된 방식에서 연결될 수 있다.
하나 이상의 SSD 컨트롤러들 및 하나 이상의 컴퓨팅 리소스들은 투명한 방식에서 PCIe 엔드 포인트(EP; End Point) 물리적 기능들 또는 가상의 기능들을 통해 호스트에 노출될 수 있다. SSD 컨트롤러들 및 컴퓨팅 리소스들은 PCIe 루트 포트를 사용하여 FPGA에 연결될 수 있다. FPGA 로직은 호스트 미 장치 상호작용들 및 호스트 프로토콜들의 PCIe 패스-쓰루를 수행할 수 있다. 즉, SSD 장치 드라이버들, 컴퓨팅 드라이버들, 및 애플리케이션 프레임워크들과 같은 호스트 시스템 소프트웨어 스택은 FPGA를 통해 SSD 컨트롤러 및 컴퓨팅 장치들에 직접적으로 통신할 수 있다. 일부 실시 예들에서, 이것은 존재하는 애플리케이션 소프트웨어 스택에 대한 제안되는 유연한 스토리지 장치의 쉬운 통합을 가능하게 한다.
본 개시의 일부 실시 예들에서, PF들/VF들의 수는 호스트에 노출되는 SSD 컨트롤러들 및/또는 컴퓨팅들에 매칭할 수 있다. 본 개시의 일부 실시 예들에서, 연결되는 SSD들 및 컴퓨팅들은 호스트에 노출되거나 또는 알려질 수 있다. 본 개시의 다른 실시 예들에서, SSD 컨트롤러들 및/또는 컴퓨팅들의 서브세트는 호스트에 노출되지 않을 수 있고 그리고 제안되는 스토리지 장치 및 유연한 스토리지 장치에 내부적으로 사용될 수 있다.
본 개시의 일부 실시 예들에서, 제안되는 유연한 스토리지 장치는 PCIe 인터페이스들에 추가로 또는 대신해서 하나 이상의 이더넷, TCP/IP, RDMA, NVMe-oF, UFS, eMMC, SAS, SATA, 등과 같은 다른 호스트 인터페이스들을 가질 수 있다. 유사하게, 본 개시의 일부 실시 예들에서, SSD 컨트롤러 및 컴퓨팅에 대한 FPGA 인터페이스는 PCIe 인터페이스들에 추가로 또는 대신해서 하나 이상의 이더넷, TCP/IP, RDMA, NVMe-oF, UFS, eMMC, SAS, SATA, 등과 같은 다른 프로토콜들을 가질 수 있다. 본 개시는 PCIe 및 NVMe를 호스트 및 유연한 스토리지 장치 사이의 통신을 위한 전송 및 호스트 프로토콜들을 예들로 사용하지만, 본 개시의 일부 실시 예들은 제안되는 스토리지 장치 내의 최적의 데이터 프로세싱 동작들을 달성하기 위해 다른 전송들 및 호스트 프로토콜들을 사용할 수 있다.
본 개시의 일부 실시 예들에서, 저 중량 브릿지(LWB; Light Weight Bridge)와 같은 PCIe 브릿지는 필요한 경우 적절한 트랜잭션들과 함께 호스트 PCIe 패킷들 및 트래픽을 이것에 부착되는 SSD 컨트롤러 및 컴퓨팅 리소스들에 포워드(forward)할 수 있다. 유사하게, 본 개시의 일부 실시 예들에서, PCIe 브릿지는 필요한 경우 적절한 변환들과 함께 호스트에 부착되는 SSD 컨트롤러 및 컴퓨팅 장치로부터 발생하는 PCIe 패킷들 및 트래픽을 포워드할 수 있다.
본 개시의 일부 실시 예들에서, 유연한 스토리지 장치는 호스트에 데이터를 보내는 것없이 SSD 컨트롤러 및 컴퓨팅 장치 사이의 데이터를 직접적으로 전송하기 위해 사용될 수 있는 피어-투-피어(P2P; Peer-To-Peer) 데이터 버퍼를 제공할 수 있다. 그러한 P2P 데이터 전송은, CPU 싸이클들, 호스트 메모리 대역폭, 및 호스트 버스 대역폭뿐만 아니라, 소비되는 에너지를 감소시킬 수 있다. 본 개시의 일부 실시 예들은 데이터 프로세싱의 더 낮은 지연도 가능하게 할 수 있다. 본 개시의 일부 실시 예들에서, P2P 버퍼는 온-칩 SRAM, 오프-칩 DRAM, 또는 임의의 다른 메모리 또는 복수의 메모리 요소들의 통합을 사용할 수 있다.
본 개시의 일부 실시 예들에, 유연한 스토리지 장치는 P2P 어드레스 레인지 내에 속하는 SSD 컨트롤러 및 컴퓨팅 장치로 오는 임의의 DMA 트랜잭션들을 가로챌 수 있다. 가로채진 데이터 전송 트랜잭션들은 호스트 메모리 대신 P2P 버퍼로 리-다이렉팅될 수 있다. 즉, SSD 컨트롤러 및/또는 컴퓨팅들은 그들의 DAM 트랜잭션들의 일부가 자동적으로 스토리지 장치 자체 내에 위치되는 P2P 버퍼로 라우팅된다는 사실에 불가지론적일 수 있다. SSD 컨트롤러 및 컴퓨팅 DMA의 관점으로부터, 그들은 그들의 고유의 장치 드라이버들에 의해 제공되는 메모리 어드레스들을 사용하는 DMA 동작을 수행할 수 있다. 본 개시의 일부 실시 예들에서, 특정한 변경 또는 지식이 P2P 데이터 전송에 참여하기 위해 SSD 컨트롤러 또는 컴퓨팅 장치에 의해 요구되지 않을 수 있다. 이와 같이, 본 개시의 일부 실시 예들은 상위 값을 갖는 통합된 솔루션을 제공하기 위해 기성품(off-the-shelf) SSD 컨트롤러들 및 컴퓨팅 장치들을 유연한 스토리지 장치로의 사용을 가능하기 하기 위해 매우 유용할 수 있다.
본 개시의 일부 실시 예들에서, P2P 버퍼는 파일 읽기 또는 쓰기(File Read Or Write)와 같은 상위 레벨 프로토콜들 및 NVMe를 사용하여 SSD 컨트롤러들에 의해 액세스될 수 있다. 본 개시의 일부 실시 예들에서, P2P 버퍼는 임의의 상위 호스트 프로토콜들을 사용하는 그들의 고유의 호스트 장치 및 소프트웨어 스택 하에서 그들의 고유의 DMA 엔진들을 사용하는 컴퓨팅 장치들에 의해 액세스될 수 있다.
본 개시의 일부 실시 예들에서, P2P 버퍼는 PCIe BAR 메커니즘을 사용하는 호스트에 노출될 수 있다. 일부 실시 예들에서, P2P 버퍼 어드레스 레인지는 호스트에 의해 유연한 스토리지 장치로 프로그래밍되거나 또는 제공될 수 있다. 이 방법은 비 PCIe 호스트 인터페이스들에 의해 사용될 수 있다. 본 개시의 일부 실시 예들에서, BAR를 통해 이용가능한 P2P 버퍼 어드레스 레인지, 또는 호스트에 의한 프로그래밍, 또는 임의의 다른 방법은 이 후에 부착된 SSD 컨트롤러들 및/또는 컴퓨팅 리소스들로부터 오는 DMA 트랜잭션들을 가로채기 위해 FPGA에 의해 사용될 수 있다.
본 개시의 일부 실시 예들에서, P2P 버퍼는 SSD 컨트롤러들 및 컴퓨팅들을 포함하는 FPGA에 연결되는 임의의 수의 장치들 사이에서 공유될 수 있다. 즉, 데이터는 SSD 컨트롤러 및 컴퓨팅 장치, 컴퓨팅 장치 및 다른 컴퓨팅 장치, SSD 컨트롤러 및 다른 SSD 컨트롤러, 및/또는 임의의 그러한 통합들 사이에서 교환될 수 있다. 본 개시의 일부 실시 예들에서, 데이터는 하나 이상의 SSD 컨트롤러들 또는 컴퓨팅들에 의해 하나 이상의 SSD 컨트롤러들 및/또는 컴퓨팅 장치들로 공유되거나 또는 교환될 수 있다. 달리 말하면, 데이터 교환은 일-대-일, 다-대-일, 또는 다-대-다 방식으로 이루어질 수 있다. 데이터 교환의 이 형태들은 데이터 교환의 유니캐스트(unicast), 멀티캐스트(multicast), 또는 브로드캐스트(broadcadt) 유형으로서 더 설명될 수 있다.
본 개시의 일부 실시 예들에서, 하나 이상의 SSD 컨트롤러들이 P2P 버퍼 내로 데이터를 저장할 수 있고 그리고 이 후에 하나 이상의 컴퓨팅 장치들이 그들의 고유의 로컬 메모리 버퍼들 내로 그 데이터를 읽는 것에 의해 동작하거나 또는 그 데이터를 처리할 수 있다.
본 개시의 일부 실시 예들에서, FPGA는 P2P 버퍼 자체 내에 포함되는 데이터 상에 전-처리 데이터 동작들을 수행하기 위해, 하나 이상의 프로세서 코어들 또는 P2P 버퍼에 부착되는 로직 요소들을 포함할 수 있다. 본 개시의 일부 실시 예들에서, 그러한 고정되는, FPGA 기반 전-처리 스텝들은 호스트가 수반되는 것 없이 장치 지시 하에서 수행될 수 있다. 본 개시의 일부 실시 예들에서, FPGA 기반 전-처리 스텝들은 호스트 지시 하에 수행될 수 있다. 본 개시의 일부 실시 예들에서, 호스트는 하나 이상의 PCIe 기능들에 대한 호스트 버스 인터페이스를 사용하여 그러한 명령어들 및 조율을 제공할 수 있다.
본 개시의 일부 실시 예들에서, 복수의 컴퓨팅 기능들 및 SSD 컨트롤러 기능들이 호스트에 노출될 수 있기 때문에, 통합된 장치는 그러한 동작이 다른 SSD 컨트롤러들 및/또는 컴퓨팅 장치들을 방해하지 않도록 지능형 호스트 다이렉팅된 장치/기능 관리(intelligent host directed device/function management)를 수행할 수 있다. 그러한 장치 관리 기능들의 일부 예들은 전원 관리, 리셋, 또는 중단(interrupt) 설정들이다.
본 개시의 일부 실시 예들에서, 유연한 스토리지 장치, SSD 컨트롤러들 및 컴퓨팅들은 미리-설치되고 그리고 구성될 수 있다. 본 개시의 일부 실시 예들에서, 유연한 스토리지 장치는 새 컴퓨팅들 및 SSD 컨트롤러들을 존재하는 유연한 스토리지 장치에 설치하는 플러그-앤-플레이 방법을 지원할 수 있다. 본 개시의 일부 실시 예들에서, FPGA는 이것에 부착되는 SSD 컨트롤러 및/또는 컴퓨팅 장치들의 구성 및 능력들을 저장하기 위해 로컬 영구적인 메모리 사용하고 그리고 FPGA에 부착되는 장치들을 호스트에 알리기 위해 로컬 영구적인 메모리를 사용할 수 있다.
본 개시의 일부 실시 예들에서, 파워-온(power-on) 후에, FPGA 내의 로직은 새롭게 연결되는 장치(SSD 컨트롤러, 및/또는 컴퓨팅 장치)를 로컬 영구적인 메모리 내에 저장되는 이것의 알려진 장치 구성들의 목록과 함께 부착되는 장치 식별 정보를 확인하는 것에 의해 감지할 수 있다. 장치 정보가 일치하지 않는 경우, FPGA는 호스트 인터페이스 구성 및 부착되는 장치의 능력들을 읽을 수 있고 그리고 읽기 구성 및 능력 정보를 영구적인 메모리에 저장할 수 있다. 다시 말하면, FPGA는 로컬 영구적인 메모리에 저장되는 이것의 부착되는 장치들의 목록을 업데이트할 수 있다. 이 후에, 후속의 파워-온 이벤트들에서, FPGA는 새롭게 연결되는 장치에 일치하는 구성 및 능력들을 알리기 위해 이것의 로컬 영구적인 메모리에 저장되는 호스트 구성 및 능력 정보를 사용할 수 있다. 이러한 방식에서, 새 컴퓨팅 장치 및 SSD 컨트롤러는 유연한 스토리지 장치 베이스 플랫폼으로 플러그될 수 있고, 그리고 스토리지 장치는 자동적으로 호스트에 표시되도록 만들 것이다.
본 개시의 다양한 실시 예들은 통합된 스토리지 장치 내의 SSD 및 FHE 가속 엔진과 같은 스토리지 장치를 통합하기 위한 시스템들 및 방법들을 포함한다. NVMe 컨트롤러 및 FHE 가속 엔진은 PF들/VF들을 포함하는 개별적인 PCIe 기능들을 독립적으로 사용하는 호스트에 노출될 수 있다. 피어-투-피어 데이터 경로는 스토리지 및 FHE 컴퓨팅 사이에 제공될 수 있다.
본 개시의 일부 실시 예들에서, 애플리케이션들은 큰 용량의 데이터를 생성할 수 있는 소셜 네트워크들, 인공 지능/기계 러닝(AI/ML; Artificial Intelligence/Machine Learning), 사물-인터넷(IOT; Internet-of-things), 및 자율주행 차량 등과 같은 것들을 포함할 수 있다. 본 개시의 일부 실시 예들에서, 그러한 큰 데이터세트들은 데이터세트들로부터 수익화를 생성하기 위해 프로세싱을 요구할 수 있다. 일부 실시 예들에서, 그러한 프로세싱은 CPU 싸이클들, 메모리 대역폭, 소비되는 에너지의 관점에서 비쌀 수 있다. 이와 같이, 본 개시의 일부 실시 예들은 애플리케이션들에 대해 더 낮은 응답 지연(latencty)들을 제공하기 위해 스토리지 장치의 근거리 또는 내부의 데이터를 처리할 수 있다. 그러한 근거리 프로세싱은 큰 데이터 세트들을 프로세서에 또는 프로세서로부터 이동하기 위한 에너지 소비도 감소시킬 수 있다. 또한, 그러한 근거리 프로세싱은 분산된 컴퓨팅을 가능하게 할 수 있다. 이와 같이, 본 개시의 일부 실시 예들은 그러한 애플리케이션 기능들을 스토리지 장치로 오프로드할 수 있고 그리고 필요한 컴퓨팅 리소스들을 최소화할 수 있고, 그리고 따라서 하나 이상의 컴퓨팅 싸이클들, 메모리, 네트워크 대역폭, 및 소비되는 에너지를 포함하는 데이터베이스 인프라스트럭처(database infrastructure)의 비용을 낮출 수 있다.
본 개시의 일부 실시 예들에서, 하나 이상의 SSD 컨트롤러들 및/또는 하나 이상의 FHE 가속 엔진들이 스토리지 장치 내에서 통합될 수 있다.
본 개시의 일부 실시 예들에서, 기성품 SSD 컨트롤러들은 통합된 솔루션을 제공하기 위해 사용될 수 있다.
본 개시의 일부 실시 예들에서, SSD 컨트롤러들 및 FHE 가속 엔진은 네이티브하게(natively) 액세스할 수 있는 호스트 상의 그들의 자체 장치 드라이버들 및 호스트 소프트웨어 스택을 가질 수 있다.
본 개시의 일부 실시 예들에서, SSD 컨트롤러들 및/또는 FHE 가속 엔진들은 처리되고 있는 데이터를 교환하기 위해 피어-투-피어 데이터 경로를 공유할 수 있다.
본 개시의 일부 실시 예들에서, P2P 버퍼의 부분은 캐시, 또는 프리-페치 버퍼(pre-fetch buffer)로서 FHE 명령어들을 위해 예약될 수 있다.
본 개시의 일부 실시 예들에서, P2P 버퍼의 부분은 캐시, 또는 프리페치 버퍼로서 입력 데이터세트를 위해 예약될 수 있다.
본 개시의 일부 실시 예들에서, P2P 버퍼의 부분은 캐시 또는 프리페치 버퍼로서 중간 결과들을 위해 예약될 수 있다.
본 개시의 일부 실시 예들에서, FHE 프로세싱은, SSD 내에 저장되는 데이터 상에서, 이것을 호스트 메모리로 이동하는 것 없이, 효율적으로 수행될 수 있다.
본 개시의 일부 실시 예들에서, FHE 프로세싱 명령어들은, 더 낮은 지연을 초래하면서, FHE 엔진에 빠르게 다운로드될 수 있다.
본 개시의 일부 실시 예들에서, 기성품 SSD는 SSD 컨트롤러를 재-회전하는 것(re-spinning)없이 사용될 수 있다.
본 개시의 일부 실시 예들에서, FHE 가속은 FHE 프레임워크 및 장치 드라이버에 매끄럽게 통합할 수 있다.
본 개시의 일부 실시 예들에서, FHE 기술은 민감한 데이터를 암호화된 형태로 저장하기 위해 사용될 수 있고 그리고 이 후에 이것을 해독하는 것 없이 분석을 위해 처리할 수 있다. 본 개시의 일부 실시 예들에서, 이 기술은 기밀성 또는 오용을 손상시키는 것 또는 오용 없이 안전한 데이터 스토리지 및 프로세싱을 가능하게 할 수 있다. 유연한, 통합된 스토리지 장치는 영구적 스토리지 및 FHE 가속 엔진을 통합할 수 있다. 본 개시의 일부 실시 예들에서, 스토리지 장치 내의 데이터를 처리하는 것에 의해, 호스트 버스 대역폭, 호스트 메모리 대역폭, CPU 싸이클들, 데이터를 이동하는 것에 소비되는 에너지와 같은 시스템 리소스 비용들은 달성될 수 있다. 본 개시의 일부 실시 예들에서, 데이터 프로세싱이 더 빨리 시작하기 때문에 더 낮은 지연들도 가능하게 할 수 있다.
본 개시의 일부 실시 예들에서, 유연하고 그리고 통합된 스토리지 장치는 하나 이상의 SSD 컨트롤러들 및/또는 FHE 프로세싱 엔진을 호스트에 연결하기 위해 사용되는 FPGA(또는 ASIC, SoC, 등)과 같은 프로세싱 요소를 가질 수 있다. SSD 컨트롤러들 및 FHE 엔진은 다른 종류들 또는 수의 장치들이 연결될 수 있도록 커넥터를 사용하는 FPGA에 연결될 수 있다. 본 개시의 일부 실시 예들에서, SSD 컨트롤러들 및/또는 FHE 엔진들의 일부는 고정된 방식에서 연결될 수 있다.
하나 이상의 SSD 컨트롤러들 및 하나 이상의 FHE 엔진들은 PCIe 엔드 포인트 PF들 또는 VF들을 통해 투명한 방식에서 호스트에 노출될 수 있다. FPGA 로직은 호스트 및 장치 인터렉션들 및 호스트 프로토콜들의 PCIe 패스-쓰루를 수행할 수 있다. 다시 말하면, FHE 애플리케이션 및 드라이버는 FPGA를 통해 FHE 가속 엔진과 직접적으로 통신할 수 있다.
본 개시의 일부 실시 예들에서, FHE 가속 엔진과 함께 제안되는 유연한 스토리지 장치는 PCIe 인터페이스들에 추가되는 또는 대안으로서 하나 이상의 이더넷, TCP/IP, RDMA, NVMe-oF, UFS, eMMC, SAS, SATA 등과 같은 다른 호스트 인터페이스들을 가질 수 있다. 유사하게, 일부 실시 예들에서, SSD 컨트롤러 및 컴퓨팅에 대한 FPGA 인터페이스는 하나 이상의 이더넷, TCP/IP, RDMA, NVMe-oF. UFS, eMMC, SAS, SATA 등과 같은 다른 프로토콜들을 가질 수 있다. 본 개시는 호스트 및 유연한 스토리지 장치 사이의 통신을 위한 전송 및 호스트 프로토콜들을 PCIe 및 NVMe를 사용하는 예들을 사용하지만, 본 개시의 일부 실시 예들은 제안되는 스토리지 장치 내의 최적의 데이터 프로세싱 동작들을 달성하기 위해 다른 전송들 및 호스트 프로토콜들을 사용할 수 있다.
본 개시의 일부 실시 예들에서, 제안되는 유연한 스토리지 장치, FHE 스토리지 장치는 데이터를 호스트에 전송하는 것 없이 SSD 컨트롤러 및 FHE 엔진 사이에 데이터를 전송하기 위해 사용될 수 있는 피어-투-피어 데이터 버퍼를 제공할 수 있다. 그러한 P2P 데이터 전송들은 CPU 싸이클들, 호스트 메모리 대역폭, 및 호스트 버스 대역폭뿐만 아니라 소비되는 에너지를 크게 감소시킬 수 있다. 본 개시의 일부 실시 예들에서, P2P 버퍼의 사용은 데이터 프로세싱의 더 낮은 지연도 가능하게 할 수 있다. 본 개시의 일부 실시 예들에서, P2P 버퍼는 온-칩 SRAM, 오프-칩 DRAM, 및 임의의 다른 메모리 또는 복수의 메모리 요소들의 통합을 사용할 수 있다.
FHE 프로세싱 명령어들은 FHE 엔진에 첫번째로 다운로드될 수 있다. 본 개시의 실시 예들에서, FHE 엔진은 호스트 메모리로부터 DMA 명령어들을 수신할 수 있다. 본 개시의 일부 실시 예들에서, FHE 엔진은 통합된 스토리지 장치 내의 P2P 버퍼로부터 DMA 명령어들을 수신할 수 있다. 본 개시의 일부 실시 예들에서, 애플리케이션 및 드라이버 소프트웨어는 첫번째로 SSD로부터 P2P 버퍼로 명령어들을 읽을 수 있다. 본 개시의 일부 실시 예들에서, 시스템 소프트웨어는 호스트 메모리로부터 P2P 버퍼로 명령어들을 이동할 수 있고, 그리고 이 후에 FHE 엔진을 P2P 버퍼로부터 DMA 명령어들로 다이렉팅할 수 있다.
본 개시의 일부 실시 예들에서, P2P 버퍼 내에 보관되는 명령어들은 이 목적을 위한 P2P 버퍼의 부분을 예약하는 것에 의해 미래 사용을 위해 그것에 보관될 수 있다. 즉, P2P 버퍼 내에 보관되는 명령어들은 후속 사용을 위해 그곳에 캐시될 수 있다. 이는 FHE 엔진에 로딩하는 명령어의 지연을 감소시킬 수 있다. 본 개시의 일부 실시 예들에서, 시스템 소프트웨어는 SSD 또는 호스트 메모리로부터 명령어들을 위해 예약되는 P2P 버퍼로 희망되는 명령어들을 프리-페치할 수 있다.
본 개시의 일부 실시 예들에서, 명령어들이 FHE 엔진에 로딩되면, 입력 데이터세트는 프로세싱을 위해 엔진에 제공될 수 있다. 본 개시의 일부 실시 예들에서, 입력 데이터세트는 호스트 메모리 내에 존재할 수 있고 그리고 FHE 엔진은 패스-쓰루 방식에서 FPGA를 통해 그것으로부터 이것을 DMA한다. 본 개시의 일부 실시 예들에서, 입력 데이터 세트는 부착되는 SSD 내에 저장될 수 있고 그리고 스토리지 장치 내의 P2P 버퍼 내로 첫번째로 이것을 로드할 수 있다. 그러한 데이터 로딩은 파일 읽기(File Read) 및 NVMe 읽기 커맨드들과 같은 부착되는 SSD 컨트롤러에 대한 상위 레벨 프로토콜을 사용하여 이루어질 수 있다. 입력 데이터가 SSD 컨트롤러에 의해 P2P 버퍼 내에 DMA 저장되면, 애플리케이션 및/또는 시스템 소프트웨어는 프로세싱을 위해 데이터를 페치(fetch)하도록 FHE 엔진에 명령할 수 있다. 그 시점에서, FHE 엔진은 P2P 버퍼로부터 이것의 로컬 메모리에 프로세싱을 위해 데이터를 전송할 수 있다.
본 개시의 일부 실시 예들에서, P2P 버퍼의 부분은 장래 사용을 위해 입력 데이터를 저장하기 위해 예약될 수 있다. 다시 말해서, P2P 버퍼는 입력들을 처리하는 것의 일부를 위한 캐시 또는 프리-페치 버퍼로써 사용될 수 있다. 이러한 캐싱 및/또는 프리페칭(prepetching)은 데이터 프로세싱의 지연을 감소시킬 수 있다.
본 개시의 일부 실시 예들에서, FHE 엔진이 데이터 프로세싱을 완료하면, 완료는 패스-쓰루 방식에서 FPGA를 통해 애플리케이션 및 시스템 소프트웨어로 전달될 수 있다. 그 시점에서, 애플리케이션 및/또는 시스템 소프트웨어는 FHE 프로세싱 결과들과 함께 무엇을 할지 결정할 수 있다. 본 개시의 일부 실시 예들에서, 결과들은 패스-쓰루 방식에서 FPGA를 통해 FHE 엔진 DMA를 사용하여 호스트 메모리로 전달될 수 있다. 본 개시의 일부 실시 예들에서, FHE 프로세싱 결과들은 부착된 SSD 내의 영구적 스토리지를 위한 P2P 버퍼 내에 저장될 수 있다. 결과들이 P2P 버퍼에 전송되면, 애플리케이션 및/또는 시스템 소프트웨어는 그 결과들을 유지하도록 SSD 컨트롤러에 명령할 수 있다. 이 조율은 파일 읽기 및 NVMe 쓰기 커맨드들과 같은 상위 레벨 프로토콜을 사용하여 달성될 수 있다.
본 개시의 일부 실시 예들에서, 프로세싱 결과들의 부분은 장래 사용을 위해 P2P 버퍼 내에 보관될 수 있다. 즉, P2P 버퍼의 부분은 중간 결과들을 위한 캐시 또는 프리페치 버퍼로써 사용될 수 있다.
본 개시의 일부 실시 예들에서, FHE 엔진은, 이것에 외부적으로 연결하는 것 대신에 또는 추가하여, FPGA에 내부에 통합될 수 있다. 앞서 언급된 다른 특징들도 이 통합 방법에 적용할 수 있다. 이 통합 방법의 추가적 이점은 감소된 비용 및 장치들의 전원의 감소일 수 있다. 이 방법은 데이터가 FPGA 경계를 가로지르거나 또는 로직 워크벤치(LWB; Logic WorkBench) 브릿지 로직을 패스-쓰루할 필요가 없을 수 있기 때문에, FHE 동작들의 전체 지연도 감소시킬 수 있다.
후술하는 논의는 본 개시의 특정 양상들이 구현될 수 있는 적절한 기계 또는 기계들의 간략한, 일반적 설명을 제공하기 위해 의도되었다. 기계 또는 기계들은 키보드들, 마우스들 등과 같은 기존 입력 장치들뿐만 아니라, 다른 기계, 가상 현실(VR; virtual reality) 환경과의 상호작용, 생체적 피드백(biometric feedback) 또는 다른 입력 신호로부터 수신되는 명령어들에 의해, 적어도 부분적으로, 제어될 수 있다. 본 개시에서 사용되는 바와 같이, 용어 “기계”은 단일 기계, 가상 기계, 또는 통신적으로 통합된 기계들, 가상 기계들, 또는 함께 동작하는 장치들의 시스템을 광범위하게 포함하기 위해 의도된다. 예시적인 기계들은 개인 컴퓨터들, 워크스테이션들, 서버들, 휴대용 컴퓨터들, 컴퓨팅 장치들, 핸드헬드 장치(handheld device)들, 전화들, 태블릿들 등뿐만 아니라 자동차들, 기차들, 택시 등과 같은 개인 또는 대중 교통과 같은 컴퓨팅 장치들을 포함한다.
기계 또는 기계들은 프로그래밍가능(programmable) 또는 비-프로그램가능(non-programmable) 로직 장치들 또는 어레이들과 같은, 임베디드 컨트롤러(embedded controller)들, ASIC들, 임베디드 컴퓨터들, 스마트 카드들, 등을 포함할 수 있다. 기계 또는 기계들은 네트워크 인터페이스, 모뎀 또는 다른 통신적인 커플링을 통한 것과 같이, 하나 이상의 원격 기계들에 대한 하나 이상의 연결들을 이용할 수 있다. 기계들은, 인트라넷, 인터넷, 근거리 통신망(LAN; local area network), 광역 통신망(WAN; Wide Area Network) 등과 같은, 물리적인 및/또는 논리적인 네트워크의 방식에 의해 상호연결될 수 있다. 당업자는 네트워크 통신이, 무선 주파수(RF; Radio Frequency), 위성, 마이크로웨이브(microwave), IEEE(Institute of Electrical and Electronics Engineers) 802.11, 블루투스®(Bluetooth®), 광학, 적외선, 레이저 등과 같은, 다양한 유선의 및/또는 무선의 단거리 또는 장거리 캐리어들 및 프로토콜들을 이용할 수 있다고 이해할 것이다.
본 개시의 실시 예들은, 기계에 의해 액세스된 때 기계들이 작업들을 수행하거나 또는 추상적인 데이터 타입들 또는 하위-레벨 하드웨어 컨텍스트들을 정의하는 결과를 초래하는, 기능들, 절차들, 데이터 구조들, 애플리케이션 프로그램들 등과 같은 관련된 데이터의 참조 또는 통합에 의해 설명될 수 있다. 관련된 데이터는, 예를 들어, RAM, ROM 등과 같은, 휘발성 및/또는 비-휘발성 메모리 또는 다른 스토리지 장치들 및 하드-드라이브들, 플로피-디스크들, 광학 스토리지, 테이프들, 플래시 메모리, 메모리 스틱들, 디지털 비디오 디스크들, 생물학적 스토리지, 등과 같은 그 관련된 스토리지 미디어 내에 저장될 수 있다. 관련된 데이터는 패킷들, 직렬 데이터, 병렬 데이터, 전파되는 신호들 등의 형태에서 물리적 및/또는 논리적인 네트워크를 포함하는 전송 환경들을 통해 전달될 수 있고, 그리고 압축된 또는 암호화된 형식에서 사용될 수 있다. 관련된 데이터는 분배된 환경에서 사용되고, 그리고 기계 액세스를 위해 지역적으로 및/또는 원격적으로 저장될 수 있다.
본 개시의 실시 예들은 하나 이상의 프로세서들에 의해 실행가능한 명령어들을 포함하는 유형의, 비-일시적인 기계-판독가능한 매체를 포함할 수 있다. 실행가능한 명령어들은 본 개시에서 설명된 바와 같은 본 개시들의 요소들을 수행하기 위한 명령어들을 포함할 수 있다.
상술한 방법들의 다양한 동작들은, 다양한 하드웨어 및/또는 소프트웨어 구성(들), 회로들, 및/또는 모듈(들)과 같은, 동작들을 수행하는 것을 할 수 있는 임의의 적절한 방법들에 의해 수행될 수 있다. 소프트웨어는 논리적인 기능들을 구현하는 것을 위한 실행가능한 명령어들의 정렬된 목록을 포함할 수 있고, 그리고, 단일 또는 복수-코어 프로세서 또는 프로세서-포함 시스템과 같은, 명령어 실행 시스템, 기구(apparatus), 또는 장치에 의한 사용 또는 연결을 위한 임의의 “프로세서-기계-판독가능한 매체”에서 실시될 수 있다.
본 개시에서 개시되는 실시 예들과 연결되어 설명되는 방법 또는 알고리즘의 블록들 또는 스텝들 및 기능들은 하드웨어 내에서 직접적으로, 프로세서에 의해, 또는 이 둘의 조합에서 실행되는 소프트웨어 모듈 내에서 실시될 수 있다. 소프트웨어 내에서 구현되는 경우, 기능들은 저장되거나 또는 실재하는, 비-일시적인 컴퓨터-기계-판독가능한 매체 상에서 하나 이상의 명령어들 또는 코드를 통해 전송될 수 있다. 소프트웨어 모듈은 RAM, 플래시 메모리, ROM, EPROM, EEPROM, 레지스터들, 하드 디스크, 분리가능한 디스크(removable disk), CD ROM, 또는 당업계에서 알려진 스토리지 매체의 임의의 다른 형태에서 상주할 수 있다.
도시되는 실시 예들에 대한 참조와 함께 본 개시의 원리들을 설명하고 그리고 도시하여, 도시되는 실시 예들은 그러한 원리들을 벗어나는 것 없이 배열 및 세부사항에서 수정될 수 있고, 그리고 임의의 희망되는 방식에서 통합될 수 있다고 인식될 것이다. 그리고, 전술하는 논의는 특정 실시 예들에 집중하였지만, 다른 구성들이 고려된다. 특히, “본 개시의 실시 예에 따라” 등과 같은 표현들이 본 개시에서 사용되었음에도 불구하고, 이 문구들은 일반적으로 실시 예 가능성들에 대한 참조를 의미하고 그리고 특정한 실시 예 구성들에 대한 개시를 제한하기 위해 의도되지 않는다. 본 개시에서 사용된 바와 같이, 이 용어들은 다른 실시 예들 내로 결합가능한 동일하거나 또는 다른 실시 예들을 참조할 수 있다.
전술하는 도시된 실시 예들은 그 개시를 제한하는 것으로 해석되어서는 안된다. 소수의 실시 예들이 설명되었지만, 당업자들은 많은 수정들이 새로운 교시들 및 본 개시의 장점들로부터 물질적으로 벗어나는 것 없이 그 실시 예들에 대해 가능하다는 것을 쉽게 이해할 것이다. 따라서, 모든 그러한 수정들은 청구항들 내에서 정의된 바와 같이 본 개시의 범위 내에서 포함되도록 의도된다.
본 개시의 실시 예들은, 제한없이, 후술하는 스테이트먼트들로 확장할 수 있다.
스테이트먼트 1. 본 개시의 실시 예는 장치를 포함하고, 장치는:
스토리지 장치;
네트워크를 통해 데이터를 전송하기 위한 네트워크 인터페이스 장치; 및
호스트 인터페이스를 포함하되,
상기 스토리지 장치는 상기 데이터를 위한 스토리지 및 상기 스토리지에 대한 액세스를 관리하기 위한 컨트롤러를 포함하고, 그리고
상기 호스트 인터페이스는 상기 스토리지 장치 또는 상기 네트워크 인터페이스 장치를 위한 요청을 수신하기 위한 장치.
스테이트먼트 2. 본 개시의 실시 예는 스테이트먼트 1에 따른 장치를 포함하고, 여기서:
상기 스토리지 장치는 SSD(Solid State Drive)를 포함하고,
상기 컨트롤러는 SSD 컨트롤러를 포함하고, 그리고
상기 스토리지는 NAND(not-AND) 플래시 스토리지를 포함하는 장치.
스테이트먼트 3. 본 개시의 실시 예는 스테이트먼트 1에 따른 장치를 포함하고, 상기 호스트 인터페이스는 PCIe(Peripheral Component Interconnect Express) 또는 캐시-코히어런트 인터커넥트 인터페이스(cache-coherent interconnect interface)를 포함하는 장치.
스테이트먼트 4. 본 개시의 실시 예는 스테이트먼트 3에 따른 장치를 포함하고, 상기 캐시-코히어런트 인터커넥트 인터페이스는 CXL(Compute Express Link) 인터페이스를 포함하는 장치.
스테이트먼트 5. 본 개시의 실시 예는 스테이트먼트 1에 따른 장치를 포함하고, 상기 네트워크 인터페이스 장치는 상기 스토리지 장치의 상기 스토리지로부터 상기 데이터를 액세스하기 위해 구성된 장치.
스테이트먼트 6. 본 개시의 실시 예는 스테이트먼트 5에 따른 장치를 포함하고, 상기 네트워크 인터페이스 장치는 상기 컨트롤러를 사용하는 상기 스토리지 장치의 상기 스토리지로부터 상기 데이터를 액세스하기 위해 더 구성되는 장치.
스테이트먼트 7. 본 개시의 실시 예는 스테이트먼트 1에 따른 장치를 포함하고, 상기 스토리지 장치 및 상기 네트워크 인터페이스 장치에 연결되는 버퍼를 더 포함하는 장치.
스테이트먼트 8. 본 개시의 실시 예는 스테이트먼트 7에 따른 장치를 포함하고, 여기서:
상기 스토리지 장치는 상기 버퍼 내의 상기 데이터를 저장하기 위해 구성되고, 그리고
상기 네트워크 인터페이스 장치는 상기 버퍼로부터 상기 데이터를 읽기 위해 구성되는 장치.
스테이트먼트 9. 본 개시의 실시 예는 스테이트먼트 8에 따른 장치를 포함하고, 여기서:
상기 스토리지 장치는 호스트 프로세서로부터의 상기 요청에 적어도 부분적으로 기초하여 상기 버퍼 내에 상기 데이터를 저장하기 위해 더 구성되고,
상기 네트워크 인터페이스 장치는 상기 호스트 프로세서로부터의 상기 요청에 적어도 부분적으로 기초하여 상기 버퍼로부터 상기 버퍼로부터 상기 데이터를 읽기 위해 더 구성되는 장치.
스테이트먼트 10. 본 개시의 실시 예는 스테이트먼트 8에 따른 장치를 포함하고, 상기 스토리지 장치는 제1 임계를 접근하는 상기 버퍼에 적어도 부분적으로 기초하여 상기 버퍼 내의 상기 데이터를 저장하는 것을 중지하기 위해 더 구성되는 장치.
스테이트먼트 11. 본 개시의 실시 예는 스테이트먼트 10에 따른 장치를 포함하고, 상기 스토리지 장치는 제2 임계를 접근하는 상기 버퍼에 적어도 부분적으로 기초하여 상기 버퍼 내의 상기 데이터를 저장하기 위해 더 구성되는 장치.
스테이트먼트 12. 본 개시의 실시 예는 스테이트먼트 10에 따른 장치를 포함하고, 상기 스토리지 장치는 상기 제1 임계를 접근하는 상기 버퍼 내의 데이터에 적어도 부분적으로 기초하여 호스트 프로세서에 신호하도록 더 구성되는 장치.
스테이트먼트 13. 본 개시의 실시 예는 스테이트먼트 8에 따른 장치를 포함하고, 상기 버퍼 내의 상기 데이터를 처리하기 위해 회로를 더 포함하는 장치.
스테이트먼트 14. 본 개시의 실시 예는 스테이트먼트 13에 따른 장치를 포함하고, 상기 회로는 FPGA(Field Programmable Gate Array), ASIC(Application-Specific Integrated Circuit), SoC(System-on-a-Chip, GPU(Graphics Processing Unit), GPGPU(General Purpose GPU), TPU(Tensor Processing Unit), NPU(Neural Processing Unit), 또는 프로세서를 포함하는 장치.
스테이트먼트 15. 본 개시의 실시 예는 스테이트먼트 13에 따른 장치를 포함하고, 상기 장치는 상기 버퍼를 포함하는 장치.
스테이트먼트 16. 본 개시의 실시 예는 스테이트먼트 13에 따른 장치를 포함하고, 여기서:
상기 호스트는 상기 스토리지 장치를 위한 상기 요청을 수신하고 그리고 상기 네트워크 인터페이스 장치를 위한 제2 요청을 수신하기 위해 구성되고,
상기 요청은 상기 호스트 인터페이스로부터 상기 회로에 그리고 상기 회로로부터 상기 스토리지에 전송되고, 그리고
상기 제2 요청은 상기 호스트 인터페이스로부터 상기 회로에 그리고 상기 회로로부터 상기 네트워크 인터페이스 장치로 전송되는 장치.
스테이트먼트 17. 본 개시의 실시 예는 스테이트먼트 13에 따른 장치를 포함하고, 상기 회로는 상기 버퍼 내의 상기 데이터를 트랜스코드(transcode)하도록 구성되는 장치.
스테이트먼트 18. 본 개시의 실시 예는 스테이트먼트 8에 따른 장치를 포함하고, 여기서:
상기 버퍼는 제1 영역 및 제2 영역으로 분할되고,
상기 스토리지 장치는 상기 버퍼의 상기 제1 영역 내의 상기 데이터를 저장하기 위해 더 구성되고, 그리고
상기 장치는 제2 스토리지 장치를 포함하되,
상기 제2 스토리지 장치는 제2 데이터 및 제2 컨트롤러를 위한 제2 스토리지를 포함하고,
상기 제2 스토리지 장치는 상기 버퍼에 연결되고,
상기 제2 스토리지 장치는 상기 버퍼의 상기 제2 영역 내의 상기 제2 데이터를 저장하도록 구성되는 장치.
스테이트먼트 19. 본 개시의 실시 예는 스테이트먼트 18에 따른 장치를 포함하고, 상기 네트워크 인터페이스 장치는 상기 버퍼의 상기 제1 영역으로부터 상기 데이터를 읽고 그리고 상기 버퍼의 상기 제2 영역으로부터 상기 제2 데이터를 읽기 위해 더 구성되는 장치.
스테이트먼트 20. 본 개시의 실시 예는 스테이트먼트 18에 따른 장치를 포함하고, 여기서:
상기 네트워크 인터페이스 장치는 상기 버퍼의 상기 제1 영역으로부터 상기 데이터를 읽기 위해 구성되고, 그리고
상기 장치는 상기 네트워크를 통해 상기 제2 데이터를 전송하기 위해 제2 네트워크 인터페이스 장치를 포함하고,
상기 제2 네트워크 인터페이스 장치는 상기 버퍼에 연결되고,
상기 제2 네트워크 인터페이스 장치는 상기 버퍼의 상기 제2 영역으로부터 상기 제2 데이터를 읽기 위해 구성되는 장치.
스테이트먼트 21. 본 개시의 실시 예는 스테이트먼트 8에 따른 장치를 포함하고, 여기서:
상기 버퍼는 제1 영역 및 제2 영역으로 분할되고,
상기 스토리지는 제2 데이터를 저장하고, 그리고
상기 스토리지 장치는 상기 버퍼의 상기 제1 영역 내의 상기 데이터를 저장하고 그리고 상기 버퍼의 상기 제2 영역 내의 상기 제2 데이터를 저장하기 위해 더 구성되는 장치.
스테이트먼트 22. 본 개시의 실시 예는 스테이트먼트 21에 따른 장치를 포함하고, 여기서:
상기 네트워크 인터페이스 장치는 상기 버퍼의 상기 제1 영역으로부터 상기 데이터를 읽기 위해 구성되고, 그리고
상기 장치는 상기 네트워크를 통해 상기 제2 데이터를 전송하기 위해 제2 네트워크 인터페이스 장치를 포함하고,
상기 제2 네트워크 장치는 상기 버퍼에 연결되고,
상기 제2 네트워크 인터페이스 장치는 상기 버퍼의 상기 제2 영역으로부터 상기 제2 데이터를 읽기 위해 구성되는 장치.
스테이트먼트 23. 본 개시의 실시 예는 스테이트먼트 8에 따른 장치를 포함하고, 여기서:
상기 장치는 제2 버퍼를 더 포함하고, 그리고
상기 장치는 제2 스토리지 장치를 포함하고,
상기 제2 스토리지 장치는 제2 데이터 및 제2 컨트롤러를 위한 제2 스토리지를 포함하고,
제2 스토리지 장치는 상기 제2 버퍼에 연결되고,
상기 제2 스토리지 장치는 상기 제2 버퍼에 상기 제2 데이터를 저장하도록 구성되는 장치.
스테이트먼트 24. 본 개시의 실시 예는 스테이트먼트 23에 따른 장치를 포함하고, 여기서:
상기 네트워크 인터페이스 장치는 상기 제2 버퍼에 연결되고, 그리고
상기 네트워크 인터페이스 장치는 상기 제2 버퍼로부터 상기 제2 데이터를 읽기 위해 더 구성되는 장치.
스테이트먼트 25. 본 개시의 실시 예는 스테이트먼트 24에 따른 장치를 포함하고, 상기 장치는 상기 네트워크 인터페이스 장치, 상기 버퍼, 및 상기 제2 버퍼에 연결되는 멀티플렉서(multiplexer)를 더 포함하는 장치.
스테이트먼트 26. 본 개시의 실시 예는 스테이트먼트 23에 따른 장치를 포함하고, 상기 장치는 상기 네트워크를 통해 상기 제2 데이터를 전송하기 위해 제2 네트워크 인터페이스 장치를 더 포함하고, 상기 제2 네트워크 인터페이스 장치는 상기 제2 버퍼에 연결되고, 상기 제2 네트워크 인터페이스 장치는 상기 제2 버퍼로부터 상기 제2 데이터를 읽기 위해 구성되는 장치.
스테이트먼트 27. 본 개시의 실시 예는 스테이트먼트 8에 따른 장치를 포함하고, 여기서:
상기 장치는 제2 버퍼를 더 포함하고,
상기 스토리지는 제2 데이터를 저장하고,
상기 스토리지 장치는 상기 제2 버퍼에 연결되고, 그리고
상기 스토리지 장치는 상기 제2 버퍼 내의 상기 제2 데이터를 저장하기 위해 더 구성되는 장치.
스테이트먼트 28. 본 개시의 실시 예는 스테이트먼트 27에 따른 장치를 포함하고, 상기 장치는 상기 스토리지 장치, 상기 버퍼, 및 상기 제2 버퍼에 연결되는 디멀티플렉서(demultiplexer)를 더 포함하는 장치.
스테이트먼트 29. 본 개시의 실시 예는 스테이트먼트 27에 따른 장치를 포함하고, 상기 장치는 상기 네트워크를 통해 상기 제2 데이터를 전송하기 위해 제2 네트워크 인터페이스 장치를 더 포함하고, 상기 제2 네트워크 인터페이스 장치는 상기 제2 버퍼에 연결되고, 그리고 상기 제2 네트워크 인터페이스 장치는 상기 제2 버퍼로부터 상기 제2 데이터를 읽기 위해 구성되는 장치.
스테이트먼트 30. 본 개시의 실시 예는 스테이트먼트 1에 따른 장치를 포함하고, 상기 호스트 인터페이스는 상기 스토리지 장치에 제1 요청을 발행하기 위해 제1 기능 및 상기 네트워크 인터페이스 장치에 제2 요청을 발행하기 위해 제2 기능을 노출하는 엔드포인트(endpoint)를 포함하는 장치.
스테이트먼트 31. 본 개시의 실시 예는 스테이트먼트 1에 따른 장치를 포함하고, 상기 장치는 루트 포트(root port)를 더 포함하는 장치.
스테이트먼트 32. 본 개시의 실시 예는 스테이트먼트 31에 따른 장치를 포함하고, 상기 루트 포트는 상기 스토리지 장치에 연결하는 장치.
스테이트먼트 33. 본 개시의 실시 예는 스테이트먼트 32에 따른 장치를 포함하고, 여기서:
상기 장치는 제2 스토리지 장치를 포함하고, 그리고
상기 루트 포트는 상기 제2 스토리지 장치에 더 연결하는 장치.
스테이트먼트 34. 본 개시의 실시 예는 스테이트먼트 32에 따른 장치를 포함하고, 상기 장치는 상기 네트워크 인터페이스 장치에 연결되는 제2 루트 포트를 더 포함하는 장치.
스테이트먼트 35. 본 개시의 실시 예는 스테이트먼트 34에 따른 장치를 포함하고, 여기서:
상기 장치는 제2 네트워크 인터페이스 장치를 더 포함하고, 그리고
상기 제2 루트 포트는 상기 제2 네트워크 인터페이스 장치에 더 연결하는 장치.
스테이트먼트 36. 본 개시의 실시 예는 스테이트먼트 31에 따른 장치를 포함하고, 상기 루트 포트는 상기 네트워크 인터페이스 장치에 연결하는 장치.
스테이트먼트 37. 본 개시의 실시 예는 스테이트먼트 36에 따른 장치를 포함하고, 여기서:
상기 장치는 제2 네트워크 인터페이스 장치를 포함하고, 그리고
상기 루트 포트는 상기 제2 네트워크 인터페이스 장치에 더 연결하는 장치.
스테이트먼트 38. 본 개시의 실시 예는 스테이트먼트 1에 따른 장치를 포함하고, 여기서:
상기 스토리지 장치는 제1 프로토콜(protocol)을 사용하여 호스트 프로세서와 통신하고, 그리고
상기 네트워크 인터페이스 장치는 제2 프로토콜을 사용하여 상기 호스트 프로세서와 통신하는 장치.
스테이트먼트 39. 본 개시의 실시 예는 스테이트먼트 1에 따른 장치를 포함하고, 여기서:
상기 장치는 회로를 더 포함하고,
상기 스토리지 장치는 제1 프로토콜을 사용하여 상기 회로와 통신하고, 그리고
상기 네트워크 인터페이스 장치는 제2 프로토콜을 사용하여 상기 회로와 통신하는 장치.
스테이트먼트 40. 본 개시의 실시 예는 스테이트먼트 39에 따른 장치를 포함하고, 상기 회로는 제3 프로토콜을 사용하여 호스트 프로세서와 통신하는 장치.
스테이트먼트 41. 본 개시의 실시 예는 방법을 포함하고, 상기 방법은:
장치에 요청을 수신하는 단계;
상기 요청에 적어도 부분적으로 기초하여 상기 장치의 스토리지 장치로부터 데이터를 액세스하는 단계; 및
상기 장치의 네트워크 인터페이스 장치를 사용하여 상기 데이터를 전송하는 단계를 포함하는 방법.
스테이트먼트 42. 본 개시의 실시 예는 스테이트먼트 41에 따른 방법을 포함하고, 상기 장치에 상기 요청을 수신하는 단계는 호스트 프로세서로부터 상기 장치에 상기 요청을 수신하는 단계를 포함하는 방법.
스테이트먼트 43. 본 개시의 실시 예는 스테이트먼트 41에 따른 방법을 포함하고, 상기 장치에 상기 요청을 수신하는 단계는 상기 장치의 호스트 인터페이스에서 상기 요청을 수신하는 단계를 포함하는 방법.
스테이트먼트 44. 본 개시의 실시 예는 스테이트먼트 43에 따른 방법을 포함하고, 상기 장치의 상기 호스트 인터페이스에서 상기 요청을 수신하는 단계는 상기 장치의 상기 호스트 인터페이스에 의해 노출되는 기능에서 상기 요청을 수신하는 단계를 포함하는 방법.
스테이트먼트 45. 본 개시의 실시 예는 스테이트먼트 44에 따른 방법을 포함하고, 상기 장치의 상기 호스트 인터페이스에 의해 노출되는 상기 기능에서 상기 요청을 수신하는 단계는 상기 장치의 엔드포인트(endpoint)에 의해 노출되는 상기 기능에서 상기 요청을 수신하는 단계를 포함하는 방법.
스테이트먼트 46. 본 개시의 실시 예는 스테이트먼트 43에 따른 방법을 포함하고, 상기 호스트 인터페이스는 PCIe(Peripheral Component Interconnect Express) 인터페이스 또는 캐시-코이허런트 인터커넥트(cache-coherent interconnect) 인터페이스를 포함하는 방법.
스테이트먼트 47. 본 개시의 실시 예는 스테이트먼트 46에 따른 방법을 포함하고, 상기 캐시-코히어런트 인터커넥트 인터페이스는 CXL(Compute Express Link) 인터페이스를 포함하는 방법.
스테이트먼트 48. 본 개시의 실시 예는 스테이트먼트 41에 따른 방법을 포함하고, 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 액세스하는 단계는 상기 장치의 상기 스토리지 장치의 스토리지 장치로부터 데이터를 액세스하는 단계를 포함하는 방법.
스테이트먼트 49. 본 개시의 실시 예는 스테이트먼트 48에 따른 방법을 포함하고, 여기서:
상기 스토리지 장치는 SSD(Solid State Drive)를 포함하고,
상기 SSD는 SSD 컨트롤러를 포함하고, 그리고
상기 스토리지는 NAND(Not-AND) 플래시 스토리지를 포함하는 방법.
스테이트먼트 50. 본 개시의 실시 예는 스테이트먼트 41에 따른 방법을 포함하고, 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 액세스하는 단계는 상기 장치의 상기 네트워크 인터페이스 장치에 의해 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 액세스하는 단계를 포함하는 방법.
스테이트먼트 51. 본 개시의 실시 예는 스테이트먼트 41에 따른 방법을 포함하고, 여기서:
상기 방법은 상기 장치에서 제2 요청을 수신하는 단계를 포함하고, 그리고
상기 장치의 네트워크 인터페이스 장치를 사용하여 상기 데이터를 전송하는 단계는 상기 제2 요청에 적어도 부분적으로 기초하여 상기 장치의 네트워크 인터페이스 장치를 사용하여 상기 데이터를 전송하는 단계를 포함하는 방법.
스테이트먼트 52. 본 개시의 실시 예는 스테이트먼트 51에 따른 방법을 포함하고, 상기 장치에서 상기 제2 요청을 수신하는 단계는 호스트 프로세서로부터 상기 장치에서 상기 제2 요청을 수신하는 단계를 포함하는 방법.
스테이트먼트 53 본 개시의 실시 예는 스테이트먼트 51에 따른 방법을 포함하고, 상기 장치에서 상기 제2 요청을 수신하는 단계는 상기 장치의 호스트 인터페이스에서 상기 제2 요청을 수신하는 단계를 포함하는 방법.
스테이트먼트 54. 본 개시의 실시 예는 스테이트먼트 53에 따른 방법을 포함하고, 상기 장치의 상기 호스트 인터페이스에서 상기 제2 요청을 수신하는 단계는 상기 장치의 상기 호스트 인터페이스에 의해 노출되는 제2 기능에서 상기 제2 요청을 수신하는 단계를 포함하는 방법.
스테이트먼트 55. 본 개시의 실시 예는 스테이트먼트 54에 따른 방법을 포함하고, 상기 장치의 상기 호스트 인터페이스에 의해 노출되는 상기 제2 기능에서 상기 제2 요청을 수신하는 단계는 상기 장치의 엔드포인트(endpoint)에 의해 노출되는 상기 제2 기능에서 상기 제2 요청을 수신하는 단계를 포함하는 방법.
스테이트먼트 56. 본 개시의 실시 예는 스테이트먼트 41에 따른 방법을 포함하고, 여기서:
상기 요청에 적어도 부분적으로 기초하여 장치 장치의 상기 스토리지 장치로부터 상기 데이터를 액세스하는 단계는 상기 요청에 적어도 부분적으로 기초하여 상기 스토리지 장치에 의해 버퍼 내에 상기 데이터를 저장하는 단계를 포함하고, 상기 장치는 상기 버퍼를 포함하고, 상기 버퍼는 상기 장치의 상기 스토리지 장치 및 상기 장치의 상기 네트워크 인터페이스에 연결되고, 그리고
상기 장치의 상기 네트워크 인터페이스 장치를 사용하여 상기 데이터를 전송하는 단계는 상기 장치의 상기 네트워크 인터페이스 장치에 의해 상기 버퍼로부터 상기 데이터를 읽는 단계를 포함하는 방법.
스테이트먼트 57. 본 개시의 실시 예는 스테이트먼트 56에 따른 방법을 포함하고, 상기 요청에 적어도 부분적으로 기초하여 상기 스토리지 장치에 의해 상기 버퍼 내에 상기 데이터를 저장하는 단계는 상기 요청에 적어도 부분적으로 기초하여 상기 스토리지 장치의 스토리지 컨트롤러에 의해 상기 버퍼 내에 상기 데이터를 저장하는 단계를 포함하는 방법.
스테이트먼트 58. 본 개시의 실시 예는 스테이트먼트 56에 따른 방법을 포함하고, 상기 요청에 적어도 부분적으로 기초하여 상기 스토리지 장치에 의해 상기 버퍼 내에 상기 데이터를 저장하는 단계는 임계를 넘는 상기 버퍼에 적어도 부분적으로 기초하여 상기 버퍼 내로 상기 스토리지 장치에 의해 상기 데이터를 프리페치(prefetch)하는 단계를 포함하는 방법.
스테이트먼트 59. 본 개시의 실시 예는 스테이트먼트 56에 따른 방법을 포함하고, 상기 요청에 적어도 부분적으로 기초하여 상기 스토리지 장치에 의해 상기 버퍼 내에 상기 데이터를 저장하는 단계는 임계를 넘는 상기 버퍼에 적어도 부분적으로 기초하여 상기 버퍼 내로 상기 스토리지 장치에 의해 상기 데이터를 프리페치(prefetch)하는 것을 중지하는 단계를 포함하는 방법.
스테이트먼트 60. 본 개시의 실시 예는 스테이트먼트 56에 따른 방법을 포함하고, 상기 방법은 상기 장치의 회로를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 단계를 더 포함하는 방법.
스테이트먼트 61. 본 개시의 실시 예는 스테이트먼트 60에 따른 방법을 포함하고, 상기 장치의 상기 회로는 FPGA(Field Programmable Gate Array), ASIC(Application-Specific Integrated Circuit), SoC(System-on-a-Chip), GPU(Graphics Processing Unit), GPGPU(General Purpose GPU), TPU(Tensor Processing Unit), NPU(Neural Processing Unit), 또는 프로세서를 포함하는 방법.
스테이트먼트 62. 본 개시의 실시 예는 스테이트먼트 60에 따른 방법을 포함하고, 상기 장치의 상기 회로는 상기 버퍼를 포함하는 방법.
스테이트먼트 63. 본 개시의 실시 예는 스테이트먼트 60에 따른 방법을 포함하고, 상기 장치에서 상기 요청을 수신하는 단계는:
상기 장치의 상기 회로에서 상기 요청을 수신하는 단계; 및
상기 장치의 상기 스토리지 장치에 상기 장치의 상기회로로부터 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 64. 본 개시의 실시 예는 스테이트먼트 63에 따른 방법을 포함하고, 여기서:
상기 장치의 상기 회로에서 상기 요청을 수신하는 단계는 상기 장치의 상기 회로에서 제1 프로토콜을 사용하여 상기 요청을 수신하는 단계를 포함하고, 그리고
상기 장치의 상기 스토리지 장치에 상기 장치의 상기 회로로부터 상기 요청을 전송하는 단계는 상기 장치의 상기 스토리지 장치에 상기 장치의 상기 회로로부터 제2 프로토콜을 사용하여 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 65. 본 개시의 실시 예는 스테이트먼트 60에 따른 방법을 포함하고, 여기서:
상기 방법은 상기 장치의 상기 회로에서 제2 요청을 수신하는 단계를 더 포함하고, 그리고
상기 장치의 네트워크 인터페이스 장치를 사용하여 상기 데이터를 전송하는 단계는 상기 장치의 상기 네트워크 인터페이스 장치에 상기 장치의 상기 회로로부터 상기 제2 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 66. 본 개시의 실시 예는 스테이트먼트 65에 따른 방법을 포함하고, 여기서:
상기 장치의 상기 회로에서 상기 제2 요청을 수신하는 단계는 상기 장치의 상기 회로에서 제1 프로토콜을 사용하여 상기 제2 요청을 수신하는 단계를 포함하고, 그리고
상기 장치의 상기 스토리지 장치에 상기 장치의 상기 회로로부터 상기 요청을 전송하는 단계는 상기 장치의 상기 네트워크 인터페이스 장치에 상기 장치의 상기 회로로부터 제2 프로토콜을 사용하여 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 67. 본 개시의 실시 예는 스테이트먼트 60에 따른 방법을 포함하고, 상기 장치의 상기 회로를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 단계는 상기 장치의 상기 회로를 사용하여 상기 버퍼 내의 상기 데이터를 트랜스코드(transcode)하는 단계를 포함하는 방법.
스테이트먼트 68. 본 개시의 실시 예는 스테이트먼트 56에 따른 방법을 포함하고, 여기서:
상기 요청에 적어도 부분적으로 기초하여 상기 버퍼 내에 상기 데이터를 저장하는 단계는 상기 요청에 적어도 부분적으로 기초하여 상기 버퍼의 제1 영역 내에 상기 데이터를 저장하는 단계를 포함하고, 그리고
상기 방법은 상기 버퍼의 제2 영역에 제2 데이터를 저장하는 단계를 더 포함하는 방법.
스테이트먼트 69. 본 개시의 실시 예는 스테이트먼트 68에 따른 방법을 포함하고, 상기 버퍼의 상기 제2 영역 내에 상기 제2 데이터를 저장하는 방법은 상기 장치의 상기 스토리지 장치로부터 상기 제2 데이터를 액세스하는 단계를 포함하는 방법.
스테이트먼트 70. 본 개시의 실시 예는 스테이트먼트 68에 따른 방법을 포함하고, 상기 버퍼의 상기 제2 영역 내에 상기 제2 데이터를 저장하는 단계는 상기 장치의 제2 스토리지 장치로부터 상기 제2 데이터를 액세스하는 단계를 포함하고, 상기 버퍼는 상기 장치의 상기 스토리지 장치에 더 연결되는 방법.
스테이트먼트 71. 본 개시의 실시 예는 스테이트먼트 68에 따른 방법을 포함하고, 상기 장치의 상기 네트워크 인터페이스 장치에 의해 상기 버퍼로부터 상기 데이터를 읽는 단계는 상기 장치의 상기 네트워크 인터페이스 장치에 의해 상기 버퍼의 상기 제1 영역으로부터 상기 데이터를 읽는 단계를 포함하는 방법.
스테이트먼트 72. 본 개시의 실시 예는 스테이트먼트 71에 따른 방법을 포함하고, 상기 방법은:
상기 네트워크 인터페이스 장치에 의해 상기 버퍼의 상기 제2 영역으로부터 상기 제2 데이터를 읽는 단계; 및
상기 장치의 상기 네트워크 인터페이스 장치를 사용하여 상기 제2 데이터를 전송하는 단계를 더 포함하는 방법.
스테이트먼트 73. 본 개시의 실시 예는 스테이트먼트 71에 따른 방법을 포함하고, 상기 방법은:
상기 장치의 제2 네트워크 인터페이스 장치에 의해 상기 버퍼의 상기 제2 영역으로부터 상기 제2 데이터를 읽는 단계;
상기 장치의 상기 제2 네트워크 인터페이스 장치를 사용하여 상기 제2 데이터를 전송하는 단계를 더 포함하고,
상기 버퍼는 상기 장치의 상기 제2 네트워크 인터페이스 장치에 더 연결되는 방법.
스테이트먼트 74. 본 개시의 실시 예는 스테이트먼트 56에 따른 방법을 포함하고, 상기 방법은 제2 버퍼 내에 제2 데이터를 저장하는 단계를 더 포함하고, 상기 장치는 상기 제2 버퍼를 포함하고, 상기 제2 버퍼는 상기 장치의 상기 스토리지 장치 및 상기 장치의 상기 네트워크 인터페이스에 연결되는 방법.
스테이트먼트 75. 본 개시의 실시 예는 스테이트먼트 74에 따른 방법을 포함하고, 상기 제2 버퍼 내에 상기 제2 데이터를 저장하는 단계는 상기 장치의 상기 스토리지 장치로부터 상기 제2 데이터를 액세스하는 단계를 포함하는 방법.
스테이트먼트 76. 본 개시의 실시 예는 스테이트먼트 75에 따른 방법을 포함하고, 상기 제2 버퍼 내에 상기 제2 데이터를 저장하는 방법은 디멀티플렉서(demultiplexer)를 통해 상기 제2 버퍼 내에 상기 제2 데이터를 저장하는 단계를 더 포함하는 방법.
스테이트먼트 77. 본 개시의 실시 예는 스테이트먼트 74에 따른 방법을 포함하고, 상기 제2 버퍼 내에 상기 제2 데이터를 저장하는 단계는 상기 장치의 제2 스토리지 장치로부터 상기 제2 데이터를 액세스하는 단계를 포함하고, 상기 제2 버퍼는 상기 장치의 상기 제2 스토리지 장치에 더 연결되는 방법.
스테이트먼트 78. 본 개시의 실시 예는 스테이트먼트 74에 따른 방법을 포함하고, 상기 방법은:
상기 네트워크 인터페이스 장치에 의해 상기 제2 버퍼로부터 상기 제2 데이터를 읽는 단계; 및
상기 장치의 상기 네트워크 인터페이스 장치를 사용하여 상기 제2 데이터를 전송하는 단계를 더 포함하는 방법.
스테이트먼트 79. 본 개시의 실시 예는 스테이트먼트 78에 따른 방법을 포함하고, 상기 네트워크 인터페이스 장치에 의해 상기 제2 버퍼로부터 상기 제2 데이터를 읽는 단계는 멀티플렉서(multiplexer)를 통해 상기 네트워크 인터페이스 장치에 의해 상기 제2 버퍼로부터 상기 제2 데이터를 읽는 단계를 포함하는 방법.
스테이트먼트 80. 본 개시의 실시 예는 스테이트먼트 78에 따른 방법을 포함하고, 상기 방법은:
상기 장치의 제2 네트워크 인터페이스 장치에 의해 상기 제2 버퍼로부터 상기 제2 데이터를 수신하는 단계; 및
상기 장치의 상기 제2 네트워크 인터페이스를 사용하여 상기 제2 데이터를 전송하는 단계를 더 포함하고,
상기 제2 버퍼는 상기 장치의 상기 제2 네트워크 인터페이스 장치에 더 연결되는 방법.
스테이트먼트 81. 본 개시의 실시 예는 스테이트먼트 41에 따른 방법을 포함하고, 상기 장치에서 상기 요청을 수신하는 단계는 상기 장치의 루트 포트(root port)를 사용하여 상기 장치의 상기 스토리지 장치에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 82. 본 개시의 실시 예는 스테이트먼트 81에 따른 방법을 포함하고, 상기 장치의 상기 스토리지 장치 및 상기 장치의 제2 스토리지 장치는 상기 장치의 상기 루트 포트에 연결되는 방법.
스테이트먼트 83. 본 개시의 실시 예는 스테이트먼트 41에 따른 방법을 포함하고, 상기 장치에서 상기 요청을 수신하는 단계는 상기 장치의 루트 포트를 사용하여 상기 정치의 상기 네트워크 인터페이스 장치에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 84. 본 개시의 실시 예는 스테이트먼트 83에 따른 방법을 포함하고, 상기 장치의 상기 네트워크 인터페이스 장치 및 상기 장치의 제2 네트워크 인터페이스 장치는 상기 장치의 상기 루트 포트에 연결하는 방법.
스테이트먼트 85. 본 개시의 실시 예는 방법을 포함하고, 상기 방법은:
장치의 스토리지 장치에 호스트 프로세서로부터 제1 요청을 전송하는 단계; 및
상기 장치의 네트워크 인터페이스 장치에 상기 호스트 프로세서로부터 제2 요청을 전송하는 단계를 포함하고,
상기 장치는 상기 스토리지 장치 및 상기 네트워크 인터페이스 및 상기 네트워크 인터페이스 장치를 포함하고, 그리고
상기 장치의 상기 스토리지 장치의 데이터는 상기 장치의 상기 네트워크 인터페이스 장치에 의해 전송되는 방법.
스테이트먼트 86. 본 개시의 실시 예는 스테이트먼트 85에 따른 방법을 포함하고, 여기서:
상기 데이터는 상기 제1 요청에 적어도 부분적으로 기초하여 상기 장치의 상기 스토리지 장치로부터 읽어지고, 그리고
상기 데이터는 상기 제2 요청에 적어도 부분적으로 기초하여 상기 장치의 상기 네트워크 인터페이스 장치에 의해 전송되는 방법.
스테이트먼트 87. 본 개시의 실시 예는 스테이트먼트 85에 따른 방법을 포함하고, 상기 장치의 상기 스토리지 장치의 상기 데이터는 상기 호스트 프로세서와 연관되는 메인 메모리에 상기 데이터를 전송하는 것 없이 상기 장치의 상기 네트워크 인터페이스 장치에 의해 전송되는 방법.
스테이트먼트 88. 본 개시의 실시 예는 스테이트먼트 85에 따른 방법을 포함하고, 상기 장치의 상기 스토리지 장치에 상기 호스트 프로세서로부터 상기 제1 요청을 전송하는 단계는 상기 장치의 상기 네트워크 인터페이스 장치에 상기 호스트 프로세서로부터 상기 제2 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 89. 본 개시의 실시 예는 스테이트먼트 85에 따른 방법을 포함하고,
상기 장치의 상기 스토리지 장치에 상기 호스트 프로세서로부터 상기 제1 요청을 전송하는 단계는 상기 장치의 상기 스토리지 장치에 상기 호스트 프로세서로부터 제1 프로토콜을 사용하여 상기 제1 요청을 전송하는 단계를 포함하고, 그리고
상기 장치의 상기 네트워크 인터페이스 장치에 상기 호스트 프로세서로부터 상기 제2 요청을 전송하는 단계는 상기 장치의 상기 네트워크 인터페이스 장치에 상기 호스트 프로세서로부터 제2 프로토콜을 사용하여 상기 제2 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 90. 본 개시의 실시 예는 스테이트먼트 85에 따른 방법을 포함하고, 상기 방법은 상기 장치의 회로에 상기 호스트 프로세서로부터 제3 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 91 본 개시의 실시 예는 스테이트먼트 90에 따른 방법을 포함하고, 상기 회로는 FPGA(Field Programmable Gate Array), ASIC(Application-Specific Integrated Circuit), SoC(System-on-a-Chip, GPU(Graphics Processing Unit), GPGPU(General Purpose GPU), TPU(Tensor Processing Unit), NPU(Neural Processing Unit), 또는 프로세서를 포함하는 방법.
스테이트먼트 92. 본 개시의 실시 예는 스테이트먼트 90에 따른 방법을 포함하고, 상기 회로는 상기 장치의 상기 네트워크 인터페이스 장치에 의해 전송을 위한 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 트랜스코드(transcode)하는 방법.
스테이트먼트 93. 본 개시의 실시 예는 스테이트먼트 92에 따른 방법을 포함하고, 상기 회로는 상기 제3 요청에 적어도 부분적으로 기초하여 상기 장치의 상기 네트워크 인터페이스 장치에 의해 전송을 위한 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 트랜스코드하는 방법.
스테이트먼트 94. 본 개시의 실시 예는 스테이트먼트 85에 따른 방법을 포함하고, 상기 방법은 상기 장치에 상기 호스트 프로세서로부터 제3 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 95. 본 개시의 실시 예는 스테이트먼트 94에 따른 방법을 포함하고, 상기 장치는 상기 장치의 상기 네트워크 인터페이스 장치에 의해 전송을 위한 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 트랜스코드하는 방법.
스테이트먼트 96. 본 개시의 실시 예는 스테이트먼트 95에 따른 방법을 포함하고, 상기 장치는 상기 제3 요청에 적어도 부분적으로 기초하여 상기 장치의 상기 네트워크 인터페이스 장치에 의해 전송을 위한 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 트랜스코드하는 방법.
스테이트먼트 97. 본 개시의 실시 예는 비-일시적인(non-transitory) 스토리지 매체를 포함하는 아티클(article)을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 명령어들을 포함하고 상기 명령어들은, 기계에 의해 실행되면:
장치에 요청을 수신하는 것;
상기 요청에 적어도 부분적으로 기초하여 상기 장치의 스토리지 장치로부터 데이터를 액세스하는 것; 그리고
상기 장치의 네트워크 인터페이스 장치를 사용하여 상기 데이터를 전송하는 것을 초래하는 아티클.
스테이트먼트 98. 본 개시의 실시 예는 스테이트먼트 97에 따라 상기 아티클을 포함하고, 상기 장치에서 상기 요청을 수신하는 것은 호스트 프로세서로부터 상기 장치에서 상기 요청을 수신하는 것을 포함하는 아티클.
스테이트먼트 99. 본 개시의 실시 예는 스테이트먼트 97에 따라 상기 아티클을 포함하고, 상기 장치에서 상기 요청을 수신하는 것은 상기 장치의 호스트 인터페이스에서 상기 요청을 수신하는 것을 포함하는 아티클.
스테이트먼트 100. 본 개시의 실시 예는 스테이트먼트 99에 따라 상기 아티클을 포함하고, 상기 장치의 상기 호스트 인터페이스에서 상기 요청을 수신하는 것은 상기 장치의 상기 호스트 인터페이스에 의해 노출되는 기능에서 상기 요청을 수신하는 것을 포함하는 아티클.
스테이트먼트 101. 본 개시의 실시 예는 스테이트먼트 100에 따라 상기 아티클을 포함하고, 상기 장치의 상기 호스트 인터페이스에 의해 노출되는 상기 기능에서 상기 요청을 수신하는 것은 상기 장치의 엔드포인트(endpoint)에 의해 노출되는 상기 기능에서 상기 요청을 수신하는 것을 포함하는 아티클.
스테이트먼트 102. 본 개시의 실시 예는 스테이트먼트 99에 따라 상기 아티클을 포함하고, 상기 호스트 인터페이스는 PCIe(Peripheral Component Interconnect Express) 인터페이스 또는 캐시-코히어런트 인터커넥트(cache-coherent interconnect) 인터페이스를 포함하는 아티클.
스테이트먼트 103. 본 개시의 실시 예는 스테이트먼트 102에 따라 상기 아티클을 포함하고, 상기 캐시-코히어런트 인터커넥트 인터페이스는 CXL(Compute Express Link) 인터페이스를 포함하는 아티클.
스테이트먼트 104. 본 개시의 실시 예는 스테이트먼트 97에 따라 상기 아티클을 포함하고, 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 액세스하는 것은 상기 장치의 상기 스토리지 장치의 스토리지로부터 상기 데이터를 액세스하는 것을 포함하는 아티클.
스테이트먼트 105. 본 개시의 실시 예는 스테이트먼트 104에 따라 상기 아티클을 포함하고, 여기서:
상기 스토리지 장치는 SSD(Solid State Drive)를 포함하고,
상기 SSD는 SSD 컨트롤러를 포함하고, 그리고
상기 스토리지는 NAND 플래시 스토리지를 포함하는 아티클.
스테이트먼트 106. 본 개시의 실시 예는 스테이트먼트 97에 따라 상기 아티클을 포함하고, 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 액세스하는 것은 상기 장치의 상기 네트워크 인터페이스 장치에 의해 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 액세스하는 것을 포함하는 아티클.
스테이트먼트 107. 본 개시의 실시 예는 스테이트먼트 97에 따라 상기 아티클을 포함하고, 여기서:
상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 장치의 네트워크 인터페이스 장치를 사용하여 상기 데이터를 전송하는 것은 상기 제2 요청에 적어도 부분적으로 기초하여 상기 장치의 네트워크 인터페이스 장치를 사용하여 상기 데이터를 전송하는 것을 초래하는 아티클.
스테이트먼트 108. 본 개시의 실시 예는 스테이트먼트 107에 따라 상기 아티클을 포함하고, 상기 장치에서 상기 제2 요청을 수신하는 것은 호스트 프로세서로부터 상기 장치에서 상기 제2 요청을 수신하는 것을 포함하는 아티클.
스테이트먼트 109. 본 개시의 실시 예는 스테이트먼트 107에 따라 상기 아티클을 포함하고, 상기 장치에서 상기 제2 요청을 수신하는 것은 상기 장치의 호스트 인터페이스에서 상기 제2 요청을 수신하는 것을 포함하는 아티클.
스테이트먼트 110. 본 개시의 실시 예는 스테이트먼트 109에 따라 상기 아티클을 포함하고, 상기 장치의 상기 호스트 인터페이스에서 상기 제2 요청을 수신하는 것은 상기 장치의 상기 호스트 인터페이스에 의해 노출되는 기능에서 상기 제2 요청을 수신하는 것을 포함하는 아티클.
스테이트먼트 111. 본 개시의 실시 예는 스테이트먼트 110에 따라 상기 아티클을 포함하고, 상기 장치의 상기 호스트 인터페이스에 의해 노출되는 상기 제2 기능에서 상기 제2 요청을 수신하는 것은 상기 장치의 엔드포인트(endpoint)에 의해 노출되는 상기 제2 기능에서 상기 제2 요청을 수신하는 것을 포함하는 아티클.
스테이트먼트 112. 본 개시의 실시 예는 스테이트먼트 97에 따라 상기 아티클을 포함하고, 여기서:
상기 요청에 적어도 부분적으로 기초하여 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 액세스하는 것은 상기 요청에 적어도 부분적으로 기초하여 상기 스토리지 장치에 의해 버퍼 내에 상기 데이터를 저장하는 것을 포함하고, 그리고
상기 장치의 상기 네트워크 인터페이스 장치를 사용하여 상기 데이터를 전송하는 것은 상기 장치의 상기 네트워크 인터페이스 장치에 의해 상기 버퍼로부터 상기 데이터를 읽는 것을 포함하고,
상기 버퍼는 상기 장치의 상기 스토리지 장치 및 상기 장치의 상기 네트워크 인터페이스 연결되는 아티클.
스테이트먼트 113. 본 개시의 실시 예는 스테이트먼트 112에 따라 상기 아티클을 포함하고, 상기 요청에 적어도 부분적으로 기초하여 상기 스토리지 장치에 의해 상기 버퍼 내에 상기 데이터를 저장하는 것은 상기 요청에 적어도 부분적으로 기초하여 상기 스토리지 장치의 스토리지 컨트롤러에 의해 상기 버퍼 내에 상기 데이터를 저장하는 것을 포함하는 아티클.
스테이트먼트 114. 본 개시의 실시 예는 스테이트먼트 112에 따라 상기 아티클을 포함하고, 상기 요청에 적어도 부분적으로 기초하여 상기 스토리지 장치에 의해 상기 버퍼 내에 상기 데이터를 저장하는 것은 임계를 넘은 상기 버퍼에 적어도 부분적으로 기초하여 상기 버퍼 내에 상기 스토리지 장치에 의해 상기 데이터를 프리페치(prefetch)하는 것을 포함하는 아티클.
스테이트먼트 115. 본 개시의 실시 예는 스테이트먼트 112에 따라 상기 아티클을 포함하고, 상기 요청에 적어도 부분적으로 기초하여 상기 스토리지 장치에 의해 상기 버퍼 내에 상기 데이터를 저장하는 것은 임계를 넘은 상기 버퍼에 적어도 부분적으로 기초하여 상기 버퍼 내에 상기 스토리지 장치에 의해 상기 데이터의 프리페치하는 것을 중지하는 것을 포함하는 아티클.
스테이트먼트 116. 본 개시의 실시 예는 스테이트먼트 112에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 장치의 회로를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 것을 초래하는 아티클.
스테이트먼트 117. 본 개시의 실시 예는 스테이트먼트 116에 따라 상기 아티클을 포함하고, 상기 회로는 FPGA(Field Programmable Gate Array), ASIC(Application-Specific Integrated Circuit), SoC(System-on-a-Chip, GPU(Graphics Processing Unit), GPGPU(General Purpose GPU), TPU(Tensor Processing Unit), NPU(Neural Processing Unit), 또는 프로세서를 포함하는 아티클.
스테이트먼트 118. 본 개시의 실시 예는 스테이트먼트 116에 따라 상기 아티클을 포함하고, 상기 회로는 상기 버퍼를 포함하는 아티클.
스테이트먼트 119. 본 개시의 실시 예는 스테이트먼트 116에 따라 상기 아티클을 포함하고, 상기 장치에서 상기 요청을 수신하는 것은:
상기 장치의 상기 회로에서 상기 요청을 수신하는 것; 및
상기 장치의 상기 스토리지 장치에 상기 장치의 상기 회로로부터 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 120. 본 개시의 실시 예는 스테이트먼트 119에 따라 상기 아티클을 포함하고,
상기 장치의 상기 회로에서 상기 요청을 수신하는 것은 상기 장치의 상기 회로에서 제1 프로토콜을 사용하여 상기 요청을 수신하는 것을 포함하고, 그리고
상기 장치의 상기 스토리지 장치에 상기 장치의 상기 회로로부터 상기 요청을 전송하는 것은 상기 장치의 상기 스토리지 장치에 상기 장치의 상기 회로로부터 제2 프로토콜을 사용하여 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 121. 본 개시의 실시 예는 스테이트먼트 116에 따라 상기 아티클을 포함하고, 여기서:
상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 장치의 회로에서 제2 요청을 수신하는 것을 초래하고; 그리고
상기 장치의 상기 네트워크 인터페이스 장치를 사용하여 상기 데이터를 전송하는 것은 상기 장치의 상기 회로로부터 상기 장치의 상기 네트워크 인터페이스로 상기 제2 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 122. 본 개시의 실시 예는 스테이트먼트 121에 따라 상기 아티클을 포함하고, 여기서:
상기 장치의 상기 회로에서 상기 제2 요청을 수신하는 것은 상기 장치의 상기 회로에서 제1 프로토콜을 사용하여 상기 제2 요청을 수신하는 것을 포함하고, 그리고
상기 장치의 상기 스토리지 장치에 상기 장치의 상기 회로로부터 상기 요청을 전송하는 것은 상기 장치의 상기 네트워크 인터페이스 장치에 상기 장치의 상기 회로로부터 제2 프로토콜을 사용하여 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 123. 본 개시의 실시 예는 스테이트먼트 116에 따라 상기 아티클을 포함하고, 상기 장치의 상기 회로를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 것은 상기 장치의 상기 회로를 사용하여 상기 버퍼 내의 상기 데이터를 트랜스코드하는 것을 포함한다.
스테이트먼트 124. 본 개시의 실시 예는 스테이트먼트 112에 따라 상기 아티클을 포함하고, 여기서:
상기 요청에 적어도 부분적으로 기초하여 상기 버퍼 내에 상기 데이터를 저장하는 것은 상기 요청에 적어도 부분적으로 기초하여 상기 버퍼의 제1 영역 내에 상기 데이터를 저장하는 것을 포함하고, 그리고
상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 버퍼의 제2 영역 내에 제2 데이터를 저장하는 것을 초래하는 아티클.
스테이트먼트 125. 본 개시의 실시 예는 스테이트먼트 124에 따라 상기 아티클을 포함하고, 상기 버퍼의 상기 제2 영역 내에 상기 제2 데이터를 저장하는 것은 상기 장치의 상기 스토리지 장치로부터 상기 제2 데이터를 액세스하는 것을 포함하는 아티클.
스테이트먼트 126. 본 개시의 실시 예는 스테이트먼트 124에 따라 상기 아티클을 포함하고, 상기 버퍼의 상기 제2 영역 내에 상기 제2 데이터를 저장하는 것은 상기 장치의 제2 스토리지 장치로부터 상기 제2 데이터를 액세스하는 것을 포함하고, 상기 버퍼는 상기 장치의 상기 제2 스토리지 장치에 더 연결되는 아티클.
스테이트먼트 127. 본 개시의 실시 예는 스테이트먼트 124에 따라 상기 아티클을 포함하고, 상기 장치의 상기 네트워크 인터페이스 장치에 의해 상기 버퍼로부터 상기 데이터를 읽는 것은 상기 장치의 상기 네트워크 인터페이스 장치에 의해 상기 버퍼의 상기 제1 영역으로부터 상기 데이터를 읽는 것을 포함하는 아티클.
스테이트먼트 128. 본 개시의 실시 예는 스테이트먼트 127에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 네트워크 인터페이스 장치에 의해 상기 버퍼의 상기 제2 영역으로부터 상기 제2 데이터를 읽는 것; 그리고
상기 장치의 상기 네트워크 인터페이스 장치를 사용하여 상기 제2 데이터를 전송하는 것을 초래하는 아티클.
스테이트먼트 129. 본 개시의 실시 예는 스테이트먼트 127에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 장치의 제2 네트워크 인터페이스 장치에 의해 상기 버퍼의 상기 제2 영역으로부터 상기 제2 데이터를 읽는 것; 그리고
상기 장치의 상기 제2 네트워크 인터페이스 장치를 사용하여 상기 제2 데이터를 전송하는 것을 초래하는 아티클.
스테이트먼트 130. 본 개시의 실시 예는 스테이트먼트 112에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 제2 버퍼 내에 제2 데이터를 저장하는 것을 초래하고, 상기 장치는 상기 제2 버퍼를 포함하고, 상기 제2 버퍼는 상기 장치의 상기 스토리지 장치 및 상기 장치의 상기 네트워크 인터페이스에 연결되는 아티클.
스테이트먼트 131. 본 개시의 실시 예는 스테이트먼트 130에 따라 상기 아티클을 포함하고, 상기 제2 버퍼 내에 상기 제2 데이터를 저장하는 것은 상기 장치의 상기 스토리지 장치로부터 상기 제2 데이터를 액세스하는 것을 포함하는 아티클.
스테이트먼트 132. 본 개시의 실시 예는 스테이트먼트 131에 따라 상기 아티클을 포함하고, 상기 제2 버퍼 내에 상기 제2 데이터를 저장하는 것은 디멀티플렉서(demultiplexer)를 통해 상기 제2 버퍼 내에 상기 제2 데이터를 저장하는 것을 더 포함하는 아티클.
스테이트먼트 133. 본 개시의 실시 예는 스테이트먼트 130에 따라 상기 아티클을 포함하고, 상기 제2 버퍼 내에 상기 제2 데이터를 저장하는 것은 상기 장치의 제2 스토리지 장치로부터 상기 제2데이터를 액세스하는 것을 포함하고, 상기 제2 버퍼는 상기 장치의 상기 제2 스토리지 장치에 더 연결되는 아티클.
스테이트먼트 134. 본 개시의 실시 예는 스테이트먼트 130에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 네트워크 인터페이스 장치에 의해 상기 제2 버퍼로부터 상기 제2 데이터를 읽는 것; 그리고
상기 장치의 상기 네트워크 인터페이스를 사용하여 상기 제2 데이터를 전송하는 것을 초래하는 아티클.
스테이트먼트 135. 본 개시의 실시 예는 스테이트먼트 134에 따라 상기 아티클을 포함하고, 상기 네트워크 인터페이스 장치에 의해 상기 제2 버퍼로부터 상기 제2 데이터를 읽는 것은 멀티플렉서(multiplexer)를 통해 상기 네트워크 인터페이스 장치에 의해 상기 제2 버퍼로부터 상기 제2 데이터를 읽는 것을 포함하는 아티클.
스테이트먼트 136. 본 개시의 실시 예는 스테이트먼트 134에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 장치의 제2 네트워크 인터페이스 장치에 의해 상기 제2 버퍼로부터 상기 제2 데이터를 읽는 것; 그리고
상기 장치의 상기 제2 네트워크 인터페이스 장치를 사용하여 상기 제2 데이터를 전송하는 것을 초래하고,
상기 제2 버퍼는 상기 장치의 상기 제2 네트워크 인터페이스에 더 연결되는 아티클.
스테이트먼트 137. 본 개시의 실시 예는 스테이트먼트 97에 따라 상기 아티클을 포함하고, 상기 장치에서 상기 요청을 수신하는 것은 상기 장치의 루트 포트(root port)를 사용하여 상기 장치의 상기 스토리지 장치에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 138. 본 개시의 실시 예는 스테이트먼트 137에 따라 상기 아티클을 포함하고, 상기 장치의 상기 스토리지 장치 및 상기 장치의 제2 스토리지 장치는 상기 장치의 상기 루트 포트에 연결하는 아티클.
스테이트먼트 139. 본 개시의 실시 예는 스테이트먼트 97에 따라 상기 아티클을 포함하고, 상기 장치에서 상기 요청을 수신하는 것은 상기 장치의 루트 포트를 사용하여 상기 장치의 상기 네트워크 인터페이스 장치에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 140. 본 개시의 실시 예는 스테이트먼트 139에 따라 상기 아티클을 포함하고, 상기 장치의 상기 네트워크 인터페이스 장치 및 상기 장치의 제2 네트워크 인터페이스는 상기 장치의 상기 루트 포트에 연결하는 아티클.
스테이트먼트 141. 본 개시의 실시 예는 비-일시적인(non-transitory) 스토리지 매체를 포함하는 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 명령어들을 포함하고 상기 명령어들은, 기계에 의해 실행되면:
장치의 스토리지 장치에 호스트 프로세서로부터 제1 요청을 전송하는 것; 그리고
상기 장치의 네트워크 인터페이스 장치에 상기 호스트 프로세서로부터 제2 요청을 전송하는 것을 초래하되,
상기 장치는 상기 스토리지 장치 및 상기 네트워크 인터페이스 장치를 포함하고, 그리고
상기 장치의 상기 스토리지 장치의 데이터는 상기 장치의 상기 네트워크 인터페이스 장치를 통해 전송되는 아티클.
스테이트먼트 142. 본 개시의 실시 예는 스테이트먼트 141에 따라 상기 아티클을 포함하고, 여기서:
상기 데이터는 상기 제1 요청에 적어도 부분적으로 기초하여 상기 장치의 상기 스토리지 장치로부터 읽어지고, 그리고
상기 데이터는 상기 제2 요청에 적어도 부분적으로 기초하여 상기 장치의 상기 네트워크 인터페이스 장치에 의해 전송되는 아티클.
스테이트먼트 143. 본 개시의 실시 예는 스테이트먼트 141에 따라 상기 아티클을 포함하고, 상기 장치의 상기 스토리지 장치의 상기 데이터는 상기 호스트 프로세서와 연관된 메인 메모리에 상기 데이터를 전송하는 것 없이 상기 장치의 상기 네트워크 인터페이스 장치에 의해 전송되는 아티클.
스테이트먼트 144. 본 개시의 실시 예는 스테이트먼트 141에 따라 상기 아티클을 포함하고, 상기 장치의 상기 스토리지 장치에 상기 호스트 프로세서로부터 상기 제1 요청을 전송하는 것은 상기 장치의 상기 네트워크 인터페이스 장치에 상기 호스트 프로세서로부터 상기 제2 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 145. 본 개시의 실시 예는 스테이트먼트 141에 따라 상기 아티클을 포함하고, 여기서:
상기 장치의 상기 스토리지 장치에 상기 호스트 프로세서로부터 상기 제1 요청을 전송하는 것은 상기 장치의 상기 스토리지 장치에 상기 호스트 프로세서로부터 제1 프로토콜을 사용하여 상기 제1 요청을 전송하는 것을 포함하고, 그리고
상기 장치의 상기 네트워크 인터페이스 장치에 상기 호스트 프로세서로부터 상기 제2 요청을 전송하는 것은 상기 장치의 상기 네트워크 인터페이스 장치에 상기 호스트 프로세서로부터 제2 프로토콜을 사용하여 상기 제2 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 146. 본 개시의 실시 예는 스테이트먼트 141에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 장치의 회로에 상기 호스트 프로세서로부터 제3 요청을 전송하는 것을 초래하는 아티클.
스테이트먼트 147. 본 개시의 실시 예는 스테이트먼트 146에 따라 상기 아티클을 포함하고, 상기 회로는 FPGA(Field Programmable Gate Array), ASIC(Application-Specific Integrated Circuit), SoC(System-on-a-Chip, GPU(Graphics Processing Unit), GPGPU(General Purpose GPU), TPU(Tensor Processing Unit), NPU(Neural Processing Unit), 또는 프로세서를 포함하는 아티클.
스테이트먼트 148. 본 개시의 실시 예는 스테이트먼트 146에 따라 상기 아티클을 포함하고, 상기 회로는 상기 장치의 상기 네트워크 인터페이스 장치에 의해 전송을 위한 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 트랜스코드(transcode)하는 아티클.
스테이트먼트 149. 본 개시의 실시 예는 스테이트먼트 148에 따라 상기 아티클을 포함하고, 상기 회로는 상기 제3 요청에 적어도 부분적으로 기초하여 상기 장치의 상기 네트워크 인터페이스 장치에 의해 전송을 위한 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 트랜스코드하는 아티클.
스테이트먼트 150. 본 개시의 실시 예는 스테이트먼트 141에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 장치에 상기 호스트 프로세서로부터 제3 요청을 전송하는 것을 초래하는 아티클.
스테이트먼트 151. 본 개시의 실시 예는 스테이트먼트 150에 따라 상기 아티클을 포함하고, 상기 장치는 상기 장치의 상기 네트워크 인터페이스 장치에 의해 전송을 위한 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 트랜스코드하는 아티클.
스테이트먼트 152. 본 개시의 실시 예는 스테이트먼트 151에 따라 상기 아티클을 포함하고, 상기 장치는 상기 제3 요청에 적어도 부분적으로 기초하여 상기 장치의 상기 네트워크 인터페이스 장치에 의해 전송을 위한 상기 장치의 상기 스토리지 장치로부터 상기 데이터를 트랜스코드하는 아티클.
스테이트먼트 153. 본 개시의 실시 예는 복수-기능 장치(multi-function device)를 포함하고, 상기 복수-기능 장치는:
스토리지 장치와 통신하는 것을 위한 제1 커넥터;
제1 연산 스토리지 유닛과 통신하는 것을 위한 제2 커넥터;
제2 연산 스토리지 유닛과 통신하는 것을 위한 제3 커넥터; 및
호스트 프로세서와 통신하는 것을 위한 제4 커넥터를 포함하되,
상기 복수-기능 장치는 상기 스토리지 장치 및 상기 제1 연산 스토리지 유닛을 상기 제4 커넥터를 통해 상기 호스트 프로세서에 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 154. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 호스트 프로세서에 상기 제2 연산 스토리지 장치를 노출하지 않는 복수-기능 장치.
스테이트먼트 155. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 FPGA(Field Programmable Gate Array), ASIC(Application-Specific Integrated Circuit), SoC(System-on-a-Chip, GPU(Graphics Processing Unit), GPGPU(General Purpose GPU), TPU(Tensor Processing Unit), 또는 NPU(Neural Processing Unit)의 적어도 하나를 사용하여 구현되는 복수-기능 장치.
스테이트먼트 156. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 연산 스토리지 유닛은 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 복수-기능 장치.
스테이트먼트 157. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU으의 적어도 하나를 사용하여 구현되는 복수-기능 장치.
스테이트먼트 158. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 SSD(Solid State Drive)를 포함하는 복수-기능 장치.
스테이트먼트 159. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 연산 스토리지 유닛은 가속기 회로, FHE(Fully Homomorphic Encryption) 회로, 또는 네트워크 인터페이스 장치를 포함하는 복수-기능 장치.
스테이트먼트 160. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 가속기 회로, FHE 회로, 또는 네트워크 인터페이스 장치를 포함하는 복수-기능 장치.
스테이트먼트 161. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 162. 본 개시의 실시 예는 스테이트먼트 161에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 요청을 수신하고 그리고 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 163. 본 개시의 실시 예는 스테이트먼트 162에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 164. 본 개시의 실시 예는 스테이트먼트 161에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 호스트 프로세서에 의한 관리 없이 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 165. 본 개시의 실시 예는 스테이트먼트 161에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛으로부터 응답을 수신하고 그리고 상기 스토리지 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 166. 본 개시의 실시 예는 스테이트먼트 165에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛으로부터 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 스토리지 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 167. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 연산 스토리지 유닛은 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 168. 본 개시의 실시 예는 스테이트먼트 167에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제1 연산 스토리지 유닛으로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서로부터 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 169. 본 개시의 실시 예는 스테이트먼트 168에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제1 연산 스토리지 유닛으로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 제2 연산 스토리지 유닛에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 170. 본 개시의 실시 예는 스테이트먼트 167에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 연산 스토리지 유닛은 상기 호스트 프로세서의 관리 없이 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 171. 본 개시의 실시 예는 스테이트먼트 167에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛으로부터 응답을 수신하고 그리고 상기 제1 연산 스토리지 유닛에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 172. 본 개시의 실시 예는 스테이트먼트 171에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛으로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 제1 연산 스토리지 유닛에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 173. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 174. 본 개시의 실시 예는 스테이트먼트 173에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제2 연산 스토리지 유닛으로부터 요청을 수신하고 그리고 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 175. 본 개시의 실시 예는 스테이트먼트 174에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제2 연산 스토리지 유닛으로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 176. 본 개시의 실시 예는 스테이트먼트 173에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 상기 호스트 프로세서에 의한 관리 없이 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 177. 본 개시의 실시 예는 스테이트먼트 173에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛으로부터 응답을 수신하고 그리고 상기 제2 연산 스토리지 유닛에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 178. 본 개시의 실시 예는 스테이트먼트 177에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛으로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 제2 연산 스토리지 유닛에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 179. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 및 상기 제2 연산 스토리지 유닛에 연결되는 버퍼를 더 포함하는 복수-기능 장치.
스테이트먼트 180. 본 개시의 실시 예는 스테이트먼트 179에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 및 상기 제2 연산 스토리지 유닛은 상기 버퍼 내의 데이터를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 181. 본 개시의 실시 예는 스테이트먼트 179에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 어드레스 레인지(address range)를 포함하는 복수-기능 장치.
스테이트먼트 182. 본 개시의 실시 예는 스테이트먼트 181에 따라 상기 복수-기능 장치를 포함하고, 상기 호스트 프로세서는 상기 버퍼의 상기 어드레스 레인지를 결정하는 복수-기능 장치.
스테이트먼트 183. 본 개시의 실시 예는 스테이트먼트 179에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 프로토콜을 사용하여 상기 버퍼를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 184. 본 개시의 실시 예는 스테이트먼트 183에 따라 상기 복수-기능 장치를 포함하고, 상기 프로토콜은 파일 읽기(File Read) 프로토콜, 파일 쓰기(File Write) 프로토콜, DMA(Direct Memory Access) 프로토콜, 또는 NVMe(Non-Volatile Memory Express) 프로토콜의 적어도 하나를 포함하는 복수-기능 장치.
스테이트먼트 185. 본 개시의 실시 예는 스테이트먼트 179에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 연산 스토리지 유닛은 프로토콜을 사용하여 상기 버퍼를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 186. 본 개시의 실시 예는 스테이트먼트 185에 따라 상기 복수-기능 장치를 포함하고, 상기 프로토콜은 파일 읽기 프로토콜, 파일 쓰기 프로토콜, DMA 프로토콜, 또는 NVMe 프로토콜의 적어도 하나를 포함하는 복수-기능 장치.
스테이트먼트 187. 본 개시의 실시 예는 스테이트먼트 179에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 프로토콜을 사용하여 상기 버퍼를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 188. 본 개시의 실시 예는 스테이트먼트 187에 따라 상기 복수-기능 장치를 포함하고, 상기 프로토콜은 파일 읽기 프로토콜, 파일 쓰기 프로토콜, DMA 프로토콜, 또는 NVMe 프로토콜의 적어도 하나를 포함하는 복수-기능 장치.
스테이트먼트 189. 본 개시의 실시 예는 스테이트먼트 179에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 버퍼에 연결되는 데이터 프로세서를 도 포함하고, 상기 데이터 프로세서는 상기 버퍼 내의 데이터를 처리하도록 구성되는 복수-기능 장치.
스테이트먼트 190. 본 개시의 실시 예는 스테이트먼트 189에 따라 상기 복수-기능 장치를 포함하고, 상기 데이터 프로세서는 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛의 적어도 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 버퍼 내의 상기 데이터를 처리하도록 구성되는 상기 복수-기능 장치.
스테이트먼트 191. 본 개시의 실시 예는 스테이트먼트 190에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 데이터 프로세서는 기능을 노출하도록 구성되고,
상기 요청은 상기 호스트 프로세서로부터이고, 그리고
상기 요청은 상기 데이터 프로세서의 상기 기능을 트리거(trigger)하는 복수-기능 장치.
스테이트먼트 192. 본 개시의 실시 예는 스테이트먼트 191에 따라 상기 복수-기능 장치를 포함하고, 상기 기능은 PCIe(Peripheral Component Interconnect Express) 기능을 포함하는 복수-기능 장치.
스테이트먼트 193. 본 개시의 실시 예는 스테이트먼트 192에 따라 상기 복수-기능 장치를 포함하고, 상기 PCIe 기능은 제1 물리적 기능(PF) 또는 제1 가상의 기능(VF)을 포함하는 복수-기능 장치.
스테이트먼트 194. 본 개시의 실시 예는 스테이트먼트 191에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 제4 커넥터를 통해 상기 호스트 프로세서에 제2 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 제4 커넥터를 통해 상기 호스트 프로세서로부터 상기 요청을 수신하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 데이터 프로세서의 상기 기능을 트리거하는 복수-기능 장치.
스테이트먼트 195. 본 개시의 실시 예는 스테이트먼트 194에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 요청을 상기 제2 기능을 포함하고, 그리고
상기 복수-기능 장치는 상기 데이터 프로세서의 상기 기능에 상기 제2 기능을 매핑하도록 구성되는 복수-기능 장치.
스테이트먼트 196. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제4 커넥터 및 상기 제1 커넥터를 연결하는 제1 브릿지(bridge); 및
상기 제4 커넥터 및 상기 네2 커넥터를 연결하는 제2 브릿지를 더 포함하는 복수-기능 장치.
스테이트먼트 197. 본 개시의 실시 예는 스테이트먼트 196에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 브릿지는 상기 호스트 프로세서 및 상기 스토리지 장치 사이의 제1 요청의 패스-쓰루(pass-through)를 지원하고, 그리고
상기 제2 브릿지는 상기 호스트 프로세서 및 상기 제1 연산 스토리지 유닛 사이의 제2 요청의 패스-쓰루를 지원하는 복수-기능 장치.
스테이트먼트 198. 본 개시의 실시 예는 스테이트먼트 196에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제4 커넥터 및 상기 제3 커넥터를 연결하는 제3 브릿지를 더 포함하는 복수-기능 장치.
스테이트먼트 199. 본 개시의 실시 예는 스테이트먼트 198에 따라 상기 복수-기능 장치를 포함하고, 상기 제3 브릿지는 상기 호스트 프로세서 및 상기 제2 연산 스토리지 유닛 사이의 요청의 패스-쓰루를 지원하는 복수-기능 장치.
스테이트먼트 200. 본 개시의 실시 예는 스테이트먼트 196에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 스토리지 장치는 상기 제1 커넥터를 통해 상기 복수-기능 장치에 제1 기능을 노출하도록 구성되고,
상기 제1 연산 스토리지 유닛은 상기 제2 커넥터를 통해 상기 복수-기능 장치에 제2 기능을 노출하도록 구성되고,
상기 제2 연산 스토리지 유닛은 상기 제3 커넥터를 통해 상기 복수-기능 장치에 제3 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 제4 커넥터를 통해 상기 호스트 프로세서에 제4 기능 및 제5 기능을 노출하도록 구성되고,
상기 제1 브릿지는 상기 제1 기능을 사용하는 제2 요청에 상기 제4 기능을 사용하는 제1 요청을 매핑하도록 구성되고,
상기 제2 브릿지는 상기 제2 기능을 사용하는 재4 요청에 상기 제5 기능을 사용하는 제3 요청을 매핑하도록 구성되고, 그리고
제3 브릿지는 상기 제3 기능을 사용하는 제6 요청에 제6 기능을 사용하는 제5 요청을 매핑하도록 구성되는 복수-기능 장치.
스테이트먼트 201. 본 개시의 실시 예는 스테이트먼트 200에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 제1 브릿지에 상기 제1 요청을 다이렉팅(direct)하도록 구성되고,
상기 복수-기능 장치는 상기 제2 브릿지에 상기 제3 요청을 다이렉팅하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 제3 브릿지에 상기 제5 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 202. 본 개시의 실시 예는 스테이트먼트 201에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 호스트 프로세서로, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 제1 요청을 수신하도록 구성되고,
상기 복수-기능 장치는 상기 호스트 프로세서, 상기 스토리지 장치, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 제3 요청을 수신하도록 구성되고, 그리고
상기 복수-기능 장치는 스토리지 장치 또는 상기 제1 연산 스토리지 유닛으로부터 상기 제5 요청을 수신하도록 구성되는 복수-기능 장치.
스테이트먼트 203. 본 개시의 실시 예는 스테이트먼트 200에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 제1 연산 스토리지 유닛에 그리고 상기 제3 커넥터를 통해 상기 제2 연산 스토리지 유닛에 상기 제4 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 제1 커넥터를 통해 상기 스토리지 장치에 그리고 상기 제3 커넥터를 통해 상기 제2 연산 스토리지 장치에 상기 제5 기능을 노출하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 제1 커넥터를 통해 상기 스토리지 장치에 그리고 상기 제2 커넥터를 통해 상기 제1 연산 스토리지 유닛에 상기 제6 기능을 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 204. 본 개시의 실시 예는 스테이트먼트 200에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제4 커넥터를 통해 상기 호스트 프로세서에 상기 제6 기능을 노출하지 않도록 구성되는 복수-기능 장치.
스테이트먼트 205. 본 개시의 실시 예는 스테이트먼트 196에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제4 커넥터 및 상기 제3 커넥터를 연결하는 제3 브릿지; 및
상기 제1 브릿지, 상기 제2 브릿지, 및 상기 제3 브릿지에 연결되는 버퍼를 더 포함하는 복수-기능 장치.
스테이트먼트 206. 본 개시의 실시 예는 스테이트먼트 205에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 브릿지는 상기 스토리지 장치로부터 전송된 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 207. 본 개시의 실시 예는 스테이트먼트 206에 따라 상기 복수-기능 장치를 포함하고, 상기 요청은 상기 호스트 프로세서에 상기 스토리지 장치로부터 전송되는 복수-기능 장치.
스테이트먼트 208. 본 개시의 실시 예는 스테이트먼트 206에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 제1 브릿지가 상기 버퍼에 상기 요청을 리다이렉팅하는 것에 불가지론적인(agnostic) 복수-기능 장치.
스테이트먼트 209. 본 개시의 실시 예는 스테이트먼트 206에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 브릿지는 어드레스에 적어도 부분적으로 기초하여 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되고, 상기 요청은 상기 어드레스를 포함하는 복수-기능 장치.
스테이트먼트 210. 본 개시의 실시 예는 스테이트먼트 209에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 211. 본 개시의 실시 예는 스테이트먼트 205에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 브릿지는 상기 제1 연산 스토리지 유닛으로부터 전송된 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 212. 본 개시의 실시 예는 스테이트먼트 211에 따라 상기 복수-기능 장치를 포함하고, 상기 요청은 상기 호스트 프로세서에 상기 제1 연산 스토리지 유닛으로부터 전송되는 복수-기능 장치.
스테이트먼트 213. 본 개시의 실시 예는 스테이트먼트 211에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 연산 스토리지 유닛은 상기 제2 브릿지가 상기 버퍼에 상기 요청을 리다이렉팅하는 것에 불가지론적인 복수-기능 장치.
스테이트먼트 214. 본 개시의 실시 예는 스테이트먼트 211에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 어드레스에 적어도 부분적으로 기초하여 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되고, 상기 요청은 상기 어드레스를 포함하는 복수-기능 장치.
스테이트먼트 215. 본 개시의 실시 예는 스테이트먼트 214에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 216. 본 개시의 실시 예는 스테이트먼트 205에 따라 상기 복수-기능 장치를 포함하고, 상기 제3 브릿지는 상기 제2 연산 스토리지 유닛으로부터 전송된 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 217. 본 개시의 실시 예는 스테이트먼트 216에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 상기 제3 브릿지가 상기 버퍼에 상기 요청을 리다이렉팅하는 것에 불가지론적인 복수-기능 장치.
스테이트먼트 218. 본 개시의 실시 예는 스테이트먼트 216에 따라 상기 복수-기능 장치를 포함하고, 상기 제3 브릿지가 어드레스에 적어도 부분적으로 기초하여 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되고, 상기 요청은 상기 어드레스를 포함하는 복수-기능 장치.
스테이트먼트 219. 본 개시의 실시 예는 스테이트먼트 218에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 220. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 목록을 위한 스토리지를 더 포함하는 복수-기능 장치.
스테이트먼트 221. 본 개시의 실시 예는 스테이트먼트 220에 따라 상기 복수-기능 장치를 포함하고, 장치 구성들의 상기 목록은 상기 스토리지 장치를 위한 제1 항목, 상기 제1 연산 스토리지 유닛을 위한 제2 항목, 및 상기 제2 연산 스토리지 유닛을 위한 제3 항목을 포함하는 복수-기능 장치.
스테이트먼트 222. 본 개시의 실시 예는 스테이트먼트 220에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지는 영구적 스토리지를 포함하는 복수-기능 장치.
스테이트먼트 223. 본 개시의 실시 예는 스테이트먼트 220에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 스토리지 장치 및 상기 제1 연산 스토리지 유닛을 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 224. 본 개시의 실시 예는 스테이트먼트 220에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 제2 연산 스토리지 유닛을 노출하지 않도록 구성되는 복수-기능 장치.
스테이트먼트 225. 본 개시의 실시 예는 스테이트먼트 220에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제2 커넥터 또는 상기 제3 커넥터의 적어도 하나에 연결된 장치를 감지하고, 상기 장치의 구성을 결정하고, 그리고 상기 장치의 구성에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하도록 구성되는 복수-기능 장치.
스테이트먼트 226. 본 개시의 실시 예는 스테이트먼트 225에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 제2 스토리지 장치, 제3 연산 스토리지 유닛, FHE 회로, 또는 네트워크 인터페이스 장치를 포함하는 복수-기능 장치.
스테이트먼트 227. 본 개시의 실시 예는 스테이트먼트 220에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치의 상기 구성을 결정하고 그리고 상기 장치의 구성을 생략하는 구성들의 상기 목록에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하도록 구성되는 복수-기능 장치.
스테이트먼트 228. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 대체가능한 복수-기능 장치.
스테이트먼트 229. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 연산 스토리지 유닛은 대체가능한 복수-기능 장치.
스테이트먼트 230. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 대체가능한 복수-기능 장치.
스테이트먼트 231. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 커넥터는 제1 PCIe 포트를 포함하고,
상기 제2 커넥터는 제2 PCIe 포트를 포함하고,
상기 제3 커넥터는 제3 PCIe 포트를 포함하고, 그리고
상기 제4 커넥터는 제4 PCIe 포트를 포함하는 복수-기능 장치.
스테이트먼트 232. 본 개시의 실시 예는 스테이트먼트 231에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 PCIe 포트는 제1 루트 포트를 포함하고,
상기 제2 PCIe 포트는 제2 루트 포트를 포함하고,
상기 제3 PCIe 포트는 제3 루트 포트를 포함하고, 그리고
상기 제4 PCIe 포트는 엔드포인트를 포함하는 복수-기능 장치.
스테이트먼트 233. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 스토리지 장치는 상기 제1 커넥터를 통해 상기 복수-기능 장치에 제1 PCIe 기능을 노출하도록 구성되고,
상기 제1 연산 스토리지 유닛은 상기 제2 커넥터를 통해 상기 복수-기능 장치에 제2 PCIe 기능을 노출하도록 구성되고,
상기 제2 연산 스토리지 유닛은 상기 제3 커넥터를 통해 상기 복수-기능 장치에 제3 PCIe 기능을 노출하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 제4 커넥터를 통해 상기 복수-기능 장치에 제4 PCIe 기능을 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 234. 본 개시의 실시 예는 스테이트먼트 233에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 PCIe 기능은 제1 PF 또는 제1 VF를 포함하고,
상기 제2 PCIe 기능은 제2 PF 또는 제2 VF를 포함하고,
상기 제3 PCIe 기능은 제3 PF 또는 제3 VF를 포함하고, 그리고
상기 제4 PCIe 기능은 제4 PF 또는 제4 VF를 포함하는 복수-기능 장치.
스테이트먼트 235. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 커넥터는 이더넷 프로토콜, TCP/IP(Transmission Control Protocol/Internet Protocol) 프로토콜, RDMA(Remote DMA) 프로토콜, NVMe 프로토콜, NVME-oF(NVMe over Fabrics) 프로토콜, UFS(Universal Flash Storage) 프로토콜, eMMC(embedded MultiMediaCard) 프로토콜, SCSI(SAS)(Serial Attached Small Computer System Interface) 프로토콜, 또는 SATA(Serial AT Attachment) 프로토콜의 적어도 하나를 지원하는 복수-기능 장치.
스테이트먼트 236. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 커넥터는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SAS 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 지원하는 복수-기능 장치.
스테이트먼트 237. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 제3 커넥터는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SAS 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 지원하는 복수-기능 장치.
스테이트먼트 238. 본 개시의 실시 예는 스테이트먼트 153에 따라 상기 복수-기능 장치를 포함하고, 상기 제4 커넥터는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SAS 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 지원하는 복수-기능 장치.
스테이트먼트 239. 본 개시의 실시 예는 복수-기능 장치(multi-function device)를 포함하고, 상기 복수-기능 장치는:
스토리지 장치와 통신하는 것을 위한 제1 커넥터;
상기 복수-기능 장치 내에 통합되는 제1 연산 스토리지 유닛;
제2 연산 스토리지 유닛과 통신하는 것을 위한 제2 커넥터; 및
호스트 프로세서와 통신하는 것을 위한 제3 커넥터를 포함하되,
상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 상기 스토리지 장치 및 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지의 적어도 하나를 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 240. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-복수-기능 장치는 상기 호스트 프로세서에 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛의 적어도 하나를 노출하지 않는 복수-기능 장치.
스테이트먼트 241. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-복수-기능 장치는 FPGA(Field Programmable Gate Array), ASIC(Application-Specific Integrated Circuit), SoC(System-on-a-Chip), GPU(Graphics Processing Unit), GPGPU(General Purpose GPU), CPU(Central Processing Unit), TPU(Tensor Processing Unit), 또는 NPU(Neural Processing Unit)의 적어도 하나를 사용하여 구현되는 복수-기능 장치.
스테이트먼트 242. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 복수-기능 장치.
스테이트먼트 243. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 244. 본 개시의 실시 예는 스테이트먼트 243에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 요청을 수신하고 그리고 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 245. 본 개시의 실시 예는 스테이트먼트 244에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 246. 본 개시의 실시 예는 스테이트먼트 243에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 호스트 프로세서에 의한 관리 없이 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛의 상기 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 247. 본 개시의 실시 예는 스테이트먼트 243에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛으로부터 응답을 수신하고 그리고 상기 스토리지 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 248. 본 개시의 실시 예는 스테이트먼트 247에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛으로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 스토리지 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 249. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 연산 스토리지 유닛은 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 250. 본 개시의 실시 예는 스테이트먼트 249에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제1 연산 스토리지 유닛으로부터 요청을 수신하고 그리고 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛으로 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 251. 본 개시의 실시 예는 스테이트먼트 250에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제1 연산 스토리지 유닛으로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 252. 본 개시의 실시 예는 스테이트먼트 249에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 연산 스토리지 유닛은 상기 호스트 프로세서에 의한 관리 없이 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛의 상기 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 253. 본 개시의 실시 예는 스테이트먼트 249에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛으로부터 응답을 수신하고 그리고 상기 제1 연산 스토리지 유닛에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 254. 본 개시의 실시 예는 스테이트먼트 253에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛으로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 제1 연산 스토리지 유닛에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 255. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 256. 본 개시의 실시 예는 스테이트먼트 255에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제2 연산 스토리지 유닛으로부터 요청을 수신하고 그리고 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 257. 본 개시의 실시 예는 스테이트먼트 256에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제2 연산 스토리지 유닛으로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 258. 본 개시의 실시 예는 스테이트먼트 255에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 상기 호스트 프로세서에 의한 관리 없이 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛의 상기 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 259. 본 개시의 실시 예는 스테이트먼트 255에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛으로부터 응답을 수신하고 그리고 상기 제2 연산 스토리지 유닛에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 260. 본 개시의 실시 예는 스테이트먼트 259에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛으로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 제2 연산 스토리지에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 261. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 SSD(Solid State Drive)를 포함하는 복수-기능 장치.
스테이트먼트 262. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 연산 스토리지 유닛은 연산기 회로, FHE(Fully Homomorphic Encryption) 회로, 또는 네트워크 인터페이스 장치를 포함하는 복수-기능 장치.
스테이트먼트 263. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 가속기 회로, FHE 회로, 또는 네트워크 인터페이스 장치를 포함하는 복수-기능 장치.
스테이트먼트 264. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 및 상기 제2 연산 스토리지 유닛에 연결되는 버퍼를 더 포함하는 복수-기능 장치.
스테이트먼트 265. 본 개시의 실시 예는 스테이트먼트 264에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 및 상기 제2 연산 스토리지 유닛은 상기 버퍼 내의 데이터를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 266. 본 개시의 실시 예는 스테이트먼트 264에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 267. 본 개시의 실시 예는 스테이트먼트 266에 따라 상기 복수-기능 장치를 포함하고, 상기 호스트 프로세서는 상기 버퍼의 상기 어드레스 레인지를 결정하는 복수-기능 장치.
스테이트먼트 268. 본 개시의 실시 예는 스테이트먼트 264에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 프로토콜을 사용하여 상기 버퍼를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 269. 본 개시의 실시 예는 스테이트먼트 268에 따라 상기 복수-기능 장치를 포함하고, 상기 프로토콜은 파일 읽기(File Read) 프로토콜, 파일 쓰기(File Write) 프로토콜, DMA(Direct Memory Access) 프로토콜, 또는 NVMe(non-Volatile Memory Express) 프로토콜의 적어도 하나를 포함하는 복수-기능 장치.
스테이트먼트 270. 본 개시의 실시 예는 스테이트먼트 264에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 연산 스토리지 유닛은 프로토콜을 사용하여 상기 버퍼를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 271. 본 개시의 실시 예는 스테이트먼트 270에 따라 상기 복수-기능 장치를 포함하고, 상기 프로토콜은 파일 읽기 프로토콜, 파일 쓰기 프로토콜, DMA 프로토콜, 또는 NVMe 프로토콜의 적어도 하나를 포함하는 복수-기능 장치.
스테이트먼트 272. 본 개시의 실시 예는 스테이트먼트 264에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 프로토콜을 사용하여 상기 버퍼를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 273. 본 개시의 실시 예는 스테이트먼트 272에 따라 상기 복수-기능 장치를 포함하고, 상기 프로토콜은 파일 읽기 프로토콜, 파일 쓰기 프로토콜, DMA 프로토콜, 또는 NVMe 프로토콜의 적어도 하나를 포함하는 복수-기능 장치.
스테이트먼트 274. 본 개시의 실시 예는 스테이트먼트 264에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 버퍼에 연결되는 데이터 프로세서를 더 포함하고, 상기 데이터 프로세서는 상기 버퍼 내의 데이터를 처리하도록 구성되는 복수-기능 장치.
스테이트먼트 275. 본 개시의 실시 예는 스테이트먼트 274에 따라 상기 복수-기능 장치를 포함하고, 상기 데이터 프로세서는 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛의 적어도 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 버퍼 내의 상기 데이터를 처리하도록 구성되는 복수-기능 장치.
스테이트먼트 276. 본 개시의 실시 예는 스테이트먼트 275에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 데이터 프로세서는 기능을 노출하도록 구성되고;
상기 요청은 상기 호스트 프로세서로부터의 것이고, 그리고
상기 요청은 상기 데이터 프로세서의 상기 기능을 트리거하는 복수-기능 장치.
스테이트먼트 277. 본 개시의 실시 예는 스테이트먼트 276에 따라 상기 복수-기능 장치를 포함하고, 상기 기능은 PCIe(Peripheral Component Interconnect Express) 기능을 포함하는 복수-기능 장치.
스테이트먼트 278. 본 개시의 실시 예는 스테이트먼트 277에 따라 상기 복수-기능 장치를 포함하고, 상기 PCIe 기능은 제1 물리적 기능(PF) 또는 제1 가상의 기능(VF)을 포함하는 복수-기능 장치.
스테이트먼트 279. 본 개시의 실시 예는 스테이트먼트 276에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 제2 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서로부터 상기 요청을 수신하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 데이터 프로세서의 상기 기능을 트리거하는 복수-기능 장치.
스테이트먼트 280. 본 개시의 실시 예는 스테이트먼트 279에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 요청을 상기 제2 기능을 포함하고, 그리고
상기 복수-기능 장치는 상기 데이터 프로세서의 상기 기능에 상기 제2 기능을 매핑하도록 구성되는 복수-기능 장치.
스테이트먼트 281. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 복수 기능 장치는:
상기 제3 커넥터 및 상기 제1 커넥터에 연결하는 제1 브릿지; 및
상기 제3 커넥터 및 상기 제2 커넥터에 연결하는 제2 브릿지를 더 포함하는 복수-기능 장치.
스테이트먼트 282. 본 개시의 실시 예는 스테이트먼트 281에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 브릿지는 상기 호스트 프로세서 및 상기 스토리지 장치 사이의 제1 요청의 패스-쓰루를 지원하고, 그리고
상기 제2 브릿지는 상기 호스트 프로세서 및 상기 제2 연산 스토리지 유닛 사이의 제2 요청의 패스-쓰루를 지원하는 복수-기능 장치.
스테이트먼트 283. 본 개시의 실시 예는 스테이트먼트 281에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 스토리지 장치는 상기 제1 커넥터를 통해 상기 복수-기능 장치에 제1 기능을 노출하도록 구성되고,
상기 제1 연산 스토리지 유닛은 제2 기능을 노출하도록 구성되고,
상기 제2 연산 스토리지 유닛은 상기 제2 커넥터를 통해 상기 복수-기능 장치에 제3 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 제4 기능을 노출하도록 구성되고,
상기 제1 브릿지는 상기 제1 기능을 사용하는 제2 요청에 상기 제4 기능을 사용하는 제1 요청을 매핑하도록 구성되고, 그리고
상기 제2 브릿지는 상기 제3 기능을 사용하는 제4 요청에 제5 기능을 사용하는 제3 요청을 매핑하도록 구성되는 복수-기능 장치.
스테이트먼트 284. 본 개시의 실시 예는 스테이트먼트 283에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 상기 제5 기능을 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 285. 본 개시의 실시 예는 스테이트먼트 284에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 상기 제2 기능을 노출하지 않는 복수-기능 장치.
스테이트먼트 286. 본 개시의 실시 예는 스테이트먼트 283에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 상기 제2 기능을 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 287. 본 개시의 실시 예는 스테이트먼트 286에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 상기 제5 기능을 노출하지 않는 복수-기능 장치.
스테이트먼트 288. 본 개시의 실시 예는 스테이트먼트 283에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 제1 브릿지에 상기 제1 요청을 다이렉팅하도록 구성되고,
상기 복수-기능 장치는 상기 제2 브릿지에 상기 제3 요청을 다이렉팅하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 제1 연산 스토리지 유닛에 제5 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 289. 본 개시의 실시 예는 스테이트먼트 288에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 호스트 프로세서, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 제1 요청을 수신하도록 구성되는 복수-기능 장치.
스테이트먼트 290. 본 개시의 실시 예는 스테이트먼트 288에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 호스트 프로세서, 상기 스토리지 장치, 또는 상기 제1 연산 스토리지 유닛으로부터 상기 제3 요청을 수신하도록 구성되는 복수-기능 장치.
스테이트먼트 291. 본 개시의 실시 예는 스테이트먼트 288에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛으로부터 상기 제3 요청을 수신하도록 구성되는 복수-기능 장치.
스테이트먼트 292. 본 개시의 실시 예는 스테이트먼트 288에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 호스트 프로세서, 상기 스토리지 장치, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 제5 요청을 수신하도록 구성되는 복수-기능 장치.
스테이트먼트 293. 본 개시의 실시 예는 스테이트먼트 288에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛으로부터 상기 제5 요청을 수신하도록 구성되는 복수-기능 장치.
스테이트먼트 294. 본 개시의 실시 예는 스테이트먼트 283에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 제2 연산 스토리지 유닛에 그리고 상기 제1 연산 스토리지 유닛에 상기 제4 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 제1 커넥터를 통해 상기 스토리지 장치에 그리고 상기 제2 커넥터를 통해 상기 제2 연산 스토리지 유닛에 상기 제2 기능을 노출하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 제1 커넥터를 통해 상기 스토리지 장치에 그리고 상기 제1 연산 스토리지 유닛에 상기 제5 기능을 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 295. 본 개시의 실시 예는 스테이트먼트 281에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제1 브릿지, 상기 제2 브릿지, 및 상기 제1 연산 스토리지 유닛에 연결되는 버퍼를 더 포함하는 복수-기능 장치.
스테이트먼트 296. 본 개시의 실시 예는 스테이트먼트 295에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 브릿지는 상기 스토리지 장치로부터 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 297. 본 개시의 실시 예는 스테이트먼트 296에 따라 상기 복수-기능 장치를 포함하고, 상기 요청은 상기 호스트 프로세서에 상기 스토리지 장치로부터 전송되는 복수-기능 장치.
스테이트먼트 298. 본 개시의 실시 예는 스테이트먼트 296에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 제1 브릿지가 상기 버퍼에 상기 요청을 리다이렉팅하는 것에 대해 불가지론적인 복수-기능 장치.
스테이트먼트 299. 본 개시의 실시 예는 스테이트먼트 296에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 브릿지는 어드레스에 최고한 부분적으로 기초하여 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되고, 상기 요청은 상기 어드레스를 포함하는 복수-기능 장치.
스테이트먼트 300. 본 개시의 실시 예는 스테이트먼트 299에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 301. 본 개시의 실시 예는 스테이트먼트 295에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 브릿지는 상기 제2 연산 스토리지 유닛으로부터 전송되는 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 302. 본 개시의 실시 예는 스테이트먼트 301에 따라 상기 복수-기능 장치를 포함하고, 상기 요청은 상기 호스트 프로세서에 상기 제2 연산 스토리지 유닛으로부터 전송되는 복수-기능 장치.
스테이트먼트 303. 본 개시의 실시 예는 스테이트먼트 301에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 상기 제2 브릿지가 상기 버퍼에 상기 요청을 리다이렉팅하는 것에 대해 불가지론적인 복수-기능 장치.
스테이트먼트 304. 본 개시의 실시 예는 스테이트먼트 301에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 브릿지가 어드레스에 적어도 부분적으로 기초하여 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되고, 그리고 상기 요청은 상기 어드레스를 포함하는 복수-기능 장치.
스테이트먼트 305. 본 개시의 실시 예는 스테이트먼트 304에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 306. 본 개시의 실시 예는 스테이트먼트 295에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제1 연산 스토리지 유닛으로부터 전송되는 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 307. 본 개시의 실시 예는 스테이트먼트 306에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 연산 스토리지 유닛은 상기 복수-기능 장치가 상기 버퍼에 상기 요청을 리다이렉팅하는 것에 대해 불가지론적인 복수-기능 장치.
스테이트먼트 308. 본 개시의 실시 예는 스테이트먼트 306에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치가 어드레스에 적어도 부분적으로 기초하여 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 309. 본 개시의 실시 예는 스테이트먼트 308에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 310. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 목록을 위한 스토리지를 더 포함하는 복수-기능 장치.
스테이트먼트 311. 본 개시의 실시 예는 스테이트먼트 310에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지는 영구적인 스토리지를 포함하는 복수-기능 장치.
스테이트먼트 312. 본 개시의 실시 예는 스테이트먼트 310에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 스토리지 장치 및 상기 제1 연산 스토리지 유닛을 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 313. 본 개시의 실시 예는 스테이트먼트 310에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 제2 연산 스토리지 유닛을 노출하지 않도록 구성되는 복수-기능 장치.
스테이트먼트 314. 본 개시의 실시 예는 스테이트먼트 310에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 스토리지 장치 및 상기 제2 연산 스토리지 유닛을 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 315. 본 개시의 실시 예는 스테이트먼트 310에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 제1 연산 스토리지 유닛을 노출하지 않도록 구성되는 복수-기능 장치.
스테이트먼트 316. 본 개시의 실시 예는 스테이트먼트 310에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제2 커넥터에 연결되는 장치를 감지하고, 상기 장치의 구성을 결정하고, 그리고 상기 장치의 상기 구성에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하도록 구성되는 복수-기능 장치.
스테이트먼트 317. 본 개시의 실시 예는 스테이트먼트 316에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 제2 스토리지 장치, 제3 연산 스토리지 유닛, FHE 회로, 또는 네트워크 인터페이스 장치를 포함하는 복수-기능 장치.
스테이트먼트 318. 본 개시의 실시 예는 스테이트먼트 310에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치의 상기 구성을 결정하고 그리고 상기 장치의 구성을 생략하는 구성들의 상기 목록에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하도록 구성되는 복수-기능 장치.
스테이트먼트 319. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 대체가능한 복수-기능 장치.
스테이트먼트 320. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 연산 스토리지 유닛은 대체가능한 복수-기능 장치.
스테이트먼트 321. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 커넥터는 제1 PCIe 포트를 포함하고,
상기 제2 커넥터는 제2 PCIe 포트를 포함하고, 그리고
상기 제3 커넥터는 제3 PCIe 포트를 포함하는 복수-기능 장치.
스테이트먼트 322. 본 개시의 실시 예는 스테이트먼트 321에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 PCIe 포트는 제1 루트 포트를 포함하고,
상기 제2 PCIe 포트는 제2 루트 포트를 포함하고, 그리고
상기 제3 PCIe 포트는 엔드포인트를 포함하는 복수-기능 장치.
스테이트먼트 323. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 스토리지 장치는 상기 제1 커넥터를 통해 상기 복수-기능 장치에 제1 PCIe 기능을 노출하도록 구성되고,
상기 제1 연산 스토리지 유닛은 상기 복수-기능 장치에 제2 PCIe 기능을 노출하도록 구성되고,
상기 제2 연산 스토리지 유닛은 상기 제2 커넥터를 통해 상기 복수-기능 장치에 제3 PCIe 기능을 노출하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세스에 제4 PCIe 기능을 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 324. 본 개시의 실시 예는 스테이트먼트 323에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 PCIe 기능은 제1 PF 또는 제1 VF를 포함하고,
상기 제2 PCIe 기능은 제2 PF 또는 제2 VF를 포함하고,
상기 제3 PCIe 기능은 제3 PF 또는 제3 VF를 포함하고, 그리고
상기 제4 PCIe 기능은 제4 PF 또는 제4 VF를 포함하는 복수-기능 장치.
스테이트먼트 325. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 커넥터는 이더넷, TCP/IP(Transmission Control Protocol/Internet Protocol) 프로토콜, RDMA(Remote DMA) 프로토콜, NVMe 프로토콜, NVMe-oF(NVMe over Fabrics) 프로토콜, UFS(Universal Flash Storage) 프로토콜, eMMC(embedded MultiMediaCard) 프로토콜, SCSI(SAS)(Serial Attached Small Computer System Interface) 프로토콜, 또는 SATA(Serial AT Attachment) 프로토콜의 적어도 하나를 지원하는 복수-기능 장치.
스테이트먼트 326. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 커넥터는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SAS 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 지원하는 복수-기능 장치.
스테이트먼트 327. 본 개시의 실시 예는 스테이트먼트 239에 따라 상기 복수-기능 장치를 포함하고, 상기 제3 커넥터는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SAS 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 지원하는 복수-기능 장치.
스테이트먼트 328. 본 개시의 실시 예는 방법을 포함하고, 상기 방법은:
복수-기능 장치에 연결되는 스토리지 장치를 결정하는 단계;
제1 연산 스토리지 유닛이 사용가능한지 결정하는 단계;
제2 연산 스토리지 유닛이 상기 복수-기능 장치에 연결되었는지 결정하는 단계;
상기 복수-기능 장치에 연결되는 호스트 프로세서에 상기 스토리지 장치를 노출하는 단계; 및
상기 호스트 프로세서에 상기 제1 연산 스토리지 유닛 및 상기 제2 연산 스토리지 유닛을 선택적으로 노출하는 단계를 포함하는 방법.
스테이트먼트 329. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 복수-기능 장치는 FPGA(Field Programmable Gate Array), ASIC(Application-Specific Integrated Circuit), SoC(System-on-a-Chip), GPU(Graphics Processing Unit), GPGPU(General Purpose GPU), CPU(Central Processing Unit), TPU(Tensor Processing Unit), 또는 NPU(Neural Processing Unit)의 적어도 하나를 사용하여 구현되는 방법.
스테이트먼트 330. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 제1 연산 스토리지 유닛은 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 방법.
스테이트먼트 331. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 제2 연산 스토리지 유닛은 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 방법.
스테이트먼트 332. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 스토리지 장치는 SSD(Solid State Drive)를 포함하는 방법.
스테이트먼트 333. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 제1 연산 스토리지 유닛은 가속기 회로, FHE(Fully Homomorphic Encryption) 회로, 또는 네트워크 인터페이스 장치를 포함하는 방법.
스테이트먼트 334. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 제2 연산 스토리지 유닛은 가속기 회로, FHE 회로, 또는 네트워크 인터페이스 장치를 포함하는 방법.
스테이트먼트 335. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 제1 연산 스토리지가 사용가능한지 결정하는 단계는 상기 제1 연산 스토리지 유닛이 상기 복수-기능 장치에 연결되었는지 결정하는 단계를 포함하는 방법.
스테이트먼트 336. 본 개시의 실시 예는 스테이트먼트 335에 따라 상기 방법을 포함하고, 상기 제1 연산 스토리지 유닛이 상기 복수-기능 장치에 연결되었는지 결정하는 단계는 상기 제1 연산 스토리지 유닛이 커넥터를 통해 상기 복수-기능 장치에 연결되었는지 결정하는 단계를 포함하는 방법.
스테이트먼트 337. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 제1 연산 스토리지 유닛이 사용가능한지 결정하는 단계는 상기 제1 연산 스토리지 유닛이 상기 복수-기능 장치 내에 통합되었는지 결정하는 단계를 포함하는 방법.
스테이트먼트 338. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 여기서:
상기 스토리지 장치가 상기 복수-기능 장치에 연결되었는지 결정하는 단계는 상기 스토리지 장치가 제1 커넥터를 통해 상기 복수-기능 장치에 연결되었는지 결정하는 단계를 포함하고, 그리고
상기 제2 연산 스토리지 유닛이 상기 복수-기능 장치에 연결되었는지 결정하는 단계는 상기 제2 연산 스토리지 유닛이 제2 커넥터를 통해 상기 복수-기능 장치에 연결되었는지 결정하는 단계를 포함하는 방법.
스테이트먼트 339. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 복수-기능 장치에 연결되는 호스트 프로세서에 상기 제1 연산 스토리지 유닛 및 상기 제2 연산 스토리지 유닛을 선택적으로 노출하는 단계는:
상기 호스트 프로세서에 상기 제1 연산 스토리지 유닛을 노출하는 단계; 및
상기 호스트 프로세서에 상기 제2 연산 스토리지 유닛을 노출하지 않는 단계를 포함하는 방법.
스테이트먼트 340. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 방법은:
상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛의 능력을 호출하기 위해 상기 스토리지 장치로부터 상기 복수-기능 장치에서 요청을 수신하는 단계; 및
상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 341. 본 개시의 실시 예는 스테이트먼트 340에 따라 상기 방법을 포함하고, 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 단계는 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 342. 본 개시의 실시 예는 스테이트먼트 340에 따라 상기 방법을 포함하고, 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 단계는 상기 호스트 프로세서에 의한 관리 없이 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 343. 본 개시의 실시 예는 스테이트먼트 340에 따라 상기 방법을 포함하고, 상기 방법은:
상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 응답을 수신하는 단계; 및
상기 스토리지 장치에 상기 응답을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 344. 본 개시의 실시 예는 스테이트먼트 343에 따라 상기 방법을 포함하고, 상기 스토리지 장치에 상기 응답을 전송하는 단계는 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 스토리지 장치에 상기 응답을 전송하는 단계를 포함하는 방법.
스테이트먼트 345. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 방법은:
상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛의 능력을 호출하기 위해 상기 제1 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 요청을 수신하는 단계; 및
상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 346. 본 개시의 실시 예는 스테이트먼트 345에 따라 상기 방법을 포함하고, 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 단계는 상기 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 347. 본 개시의 실시 예는 스테이트먼트 345에 따라 상기 방법을 포함하고, 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 단계는 상기 호스트 프로세서에 의한 관리 없이 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 348. 본 개시의 실시 예는 스테이트먼트 345에 따라 상기 방법을 포함하고, 상기 방법은:
상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 응답을 수신하는 단계; 및
상기 제1 연산 스토리지 유닛에 상기 응답을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 349. 본 개시의 실시 예는 스테이트먼트 348에 따라 상기 방법을 포함하고, 상기 제1 연산 스토리지 유닛에 상기 응답을 전송하는 단계는 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 제1 연산 스토리지 유닛에 상기 응답을 전송하는 단계를 포함하는 방법.
스테이트먼트 350. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 방법은:
상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛의 능력을 호출하기 위해 상기 제2 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 요청을 수신하는 단계; 및
상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 351. 본 개시의 실시 예는 스테이트먼트 350에 따라 상기 방법을 포함하고, 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하는 단계는 상기 호스트 프로세서에 상기 요청을 전송하는 단계 없이 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 352. 본 개시의 실시 예는 스테이트먼트 350에 따라 상기 방법을 포함하고, 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하는 단계는 상기 호스트 프로세서에 의한 관리 없이 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 353. 본 개시의 실시 예는 스테이트먼트 350에 따라 상기 방법을 포함하고, 상기 방법은:
상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 응답을 수신하는 단계; 및
상기 제2 연산 스토리지 유닛에 상기 응답을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 354. 본 개시의 실시 예는 스테이트먼트 353에 따라 상기 방법을 포함하고, 상기 제2 연산 스토리지 유닛에 상기 응답을 전송하는 단계는 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 제2 연산 스토리지 유닛에 상기 응답을 전송하는 단계를 포함하는 방법.
스테이트먼트 355. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 방법은:
상기 스토리지 장치에 의해 상기 복수-기능 장치 내의 버퍼 내의 데이터를 액세스하는 단계; 및
상기 제1 연산 스토리지 유닛에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계를 더 포함하는 방법.
스테이트먼트 356. 본 개시의 실시 예는 스테이트먼트 355에 따라 상기 방법을 포함하고, 상기 방법은:
상기 제2 연산 스토리지 유닛에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계를 더 포함하는 방법.
스테이트먼트 357. 본 개시의 실시 예는 스테이트먼트 355에 따라 상기 방법을 포함하고, 여기서:
상기 버퍼는 어드레스 레인지를 포함하고, 그리고
상기 방법은 상기 호스트 프로세서로부터 상기 버퍼의 상기 어드레스 레인지를 결정하는 단계를 더 포함하는 방법.
스테이트먼트 358. 본 개시의 실시 예는 스테이트먼트 355에 따라 상기 방법을 포함하고, 여기서:
상기 스토리지 장치에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계는 제1 프로토콜을 사용하여 상기 스토리지 장치에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계를 포함하고, 그리고
상기 제1 연산 스토리지 유닛에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계는 제2 프로토콜을 사용하여 상기 제1 연산 스토리지 장치에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계를 포함하는 방법.
스테이트먼트 359. 본 개시의 실시 예는 스테이트먼트 358에 따라 상기 방법을 포함하고, 여기서:
상기 제1 프로토콜은 파일 읽기(File Read) 프로토콜, 파일 쓰기(File Write) 프로토콜, DMA(Direct Memory Access) 프로토콜, 또는 NVMe(Non-Volatile Memory Express) 프로토콜의 적어도 하나를 포함하고, 그리고
상기 제2 프로토콜은 상기 파일 읽기 프로토콜, 상기 파일 쓰기 프로토콜, 상기 DMA 프로토콜, 또는 상기 NVMe 프로토콜의 적어도 하나를 포함하는 방법.
스테이트먼트 360. 본 개시의 실시 예는 스테이트먼트 358에 따라 상기 방법을 포함하고, 상기 방법은 제3 프로토콜을 사용하는 상기 제2 연산 스토리지 유닛에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계를 더 포함하는 방법.
스테이트먼트 361. 본 개시의 실시 예는 스테이트먼트 360에 따라 상기 방법을 포함하고, 상기 제3 프로토콜은 상기 파일 읽기 프로토콜, 상기 파일 쓰기 프로토콜, 상기 DMA 프로토콜, 또는 상기 NVMe 프로토콜의 적어도 하나를 포함하는 방법.
스테이트먼트 362. 본 개시의 실시 예는 스테이트먼트 355에 따라 상기 방법을 포함하고, 상기 방법은 상기 복수-기능 장치의 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 단계를 더 포함하는 방법.
스테이트먼트 363. 본 개시의 실시 예는 스테이트먼트 362에 따라 상기 방법을 포함하고, 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 단계는 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛의 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 단계를 포함하는 방법.
스테이트먼트 364. 본 개시의 실시 예는 스테이트먼트 363에 따라 상기 방법을 포함하고, 여기서:
상기 방법은:
기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 단계; 및
상기 복수-기능 장치에 의해 상기 기능을 노출하는 단계를 포함하고, 그리고
상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛의 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 단계는 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛의 적어도 하나로부터의 요청을 수신하는 단계를 포함하고, 그리고
상기 요청은 상기 기능을 트리거하는 방법.
스테이트먼트 365. 본 개시의 실시 예는 스테이트먼트 364에 따라 상기 방법을 포함하고, 상기 기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 단계는 PCIe(Peripheral Component Interconnect Express) 기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 단계를 포함하는 방법.
스테이트먼트 366. 본 개시의 실시 예는 스테이트먼트 365에 따라 상기 방법을 포함하고, 상기 PCIe 기능이 제1 물리적 기능(PF) 또는 제1 가상의 기능(VF)를 포함하는 방법.
스테이트먼트 367. 본 개시의 실시 예는 스테이트먼트 364에 따라 상기 방법을 포함하고, 여기서:
상기 방법은:
상기 기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 단계; 및
상기 복수-기능 장치에 의해 제2 기능을 노출하는 단계를 포함하고, 그리고
상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛의 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 단계는:
상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛의 적어도 하나로부터의 요청을 수신하는 단계; 및
상기 데이터 프로세서의 상기 기능을 트리거하는 단계를 포함하는 방법.
스테이트먼트 368. 본 개시의 실시 예는 스테이트먼트 367에 따라 상기 방법을 포함하고, 상기 데이터 프로세서의 상기 기능을 트리거하는 단계는 상기 데이터 프로세서의 상기 기능에 상기 제2 기능을 매핑하는 단계를 포함하는 방법.
스테이트먼트 369. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 방법은:
상기 복수-기능 장치의 브릿지에서 상기 호스트 프로세서, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 요청을 수신하는 단계; 및
상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 상기 브릿지를 통해 상기 요청을 전달하는 단계를 더 포함하는 방법.
스테이트먼트 370. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 방법은:
상기 복수-기능 장치의 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 요청을 수신하는 단계; 및
상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 의해 노출되는 상기 기능에 적어도 부분적으로 기초하여 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 상기 브릿지로부터 상기 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 371. 본 개시의 실시 예는 스테이트먼트 370에 따라 상기 방법을 포함하고, 상기 복수-기능 장치의 상기 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 요청을 수신하는 단계는:
상기 복수-기능 장치에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 요청을 수신하는 단계; 및
상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 의해 노출되는 상기 기능에 적어도 부분적으로 기초하여 상기 브릿지에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 372. 본 개시의 실시 예는 스테이트먼트 370에 따라 상기 방법을 포함하고, 여기서:
상기 복수-기능 장치의 상기 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 요청을 수신하는 단계에서, 상기 요청은 상기 복수-기능 장치에 의해 노출되는 제2 기능을 트리거하고,
상기 요청은 상기 복수-기능 장치에 의해 노출되는 제2 기능을 트리거하고,
상기 방법은 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 의해 노출되는 상기 기능에 상기 제2 기능을 매핑하는 단계; 및
상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 의해 노출되는 상기 기능에 적어도 부분적으로 기초하여 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 상기 브릿지로부터 상기 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 373. 본 개시의 실시 예는 스테이트먼트 372에 따라 상기 방법을 포함하고, 상기 복수-기능 장치의 상기 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 요청을 수신하는 단계는:
상기 복수-기능 장치에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 요청을 수신하는 단계; 및
상기 복수-기능 장치에 의해 노출되는 상기 제2 기능에 적어도 부분적으로 기초하여 상기 브릿지에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 374. 본 개시의 실시 예는 스테이트먼트 370에 따라 상기 방법을 포함하고, 상기 복수-기능 장치는 상기 호스트 프로세서에 상기 기능을 노출하지 않는 방법.
스테이트먼트 375. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 방법은:
상기 복수-기능 장치의 브릿지에서 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 요청을 수신하는 단계; 및
상기 복수-기능 장치의 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 376. 본 개시의 실시 예는 스테이트먼트 375에 따라 상기 방법을 포함하고, 상기 요청은 상기 호스트 프로세서에 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 전송되는 방법.
스테이트먼트 377. 본 개시의 실시 예는 스테이트먼트 375에 따라 상기 방법을 포함하고, 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 단계는 상기 스토리지 장치에 알리는 것 없이 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 378. 본 개시의 실시 예는 스테이트먼트 375에 따라 상기 방법을 포함하고, 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 단계는 어드레스에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 379. 본 개시의 실시 예는 스테이트먼트 378에 따라 상기 방법을 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 방법.
스테이트먼트 380. 본 개시의 실시 예는 스테이트먼트 379에 따라 상기 방법을 포함하고, 상기 방법은 상기 호스트 프로세서부터 상기 버퍼를 위한 상기 어드레스 레인지를 수신하는 단계를 더 포함하는 방법.
스테이트먼트 381. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 여기서:
상기 복수-기능 장치에 연결되는 상기 호스트 프로세서에 상기 스토리지 장치를 노출하는 단계는 장치 구성들의 목록에 적어도 부분적으로 기초하여 상기 복수-기능 장치에 연결되는 상기 호스트 프로세서에 상기 스토리지 장치를 노출하는 단계를 포함하고, 그리고
상기 호스트 프로세서에 상기 제1 연산 스토리지 유닛 및 상기 제2 연산 스토리지 유닛을 선택적으로 노출하는 단계는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 제1 연산 스토리지 유닛 및 상기 제2 연산 스토리지 유닛을 선택적으로 노출하는 단계를 포함하는 방법.
스테이트먼트 382. 본 개시의 실시 예는 스테이트먼트 381에 따라 상기 방법을 포함하고, 상기 방법은 상기 복수-기능 장치의 스토리지로부터 장치 구성들의 상기 목록을 액세스하는 단계를 더 포함하는 방법.
스테이트먼트 383. 본 개시의 실시 예는 스테이트먼트 382에 따라 상기 방법을 포함하고, 상기 복수-기능 장치의 상기 스토리지로부터 장치 구성들의 상기 목록을 액세스하는 단계는 상기-복수 기능 장치의 영구적인 스토리지로부터 장치 구성들의 상기 목록을 액세스하는 단계를 포함하는 방법.
스테이트먼트 384. 본 개시의 실시 예는 스테이트먼트 381에 따라 상기 방법을 포함하고, 상기 방법은:
상기 장치가 상기 복수-기능 장치에 연결되는지 결정하는 단계;
상기 장치의 구성을 결정하는 단계; 및
상기 장치의 상기 구성에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하는 단계를 더 포함하는 방법.
스테이트먼트 385. 본 개시의 실시 예는 스테이트먼트 384에 따라 상기 방법을 포함하고, 상기 장치는 제2 스토리지 장치, 제3 연산 스토리지 유닛, FHE 회로, 또는 네트워크 인터페이스 장치를 포함하는 방법.
스테이트먼트 386. 본 개시의 실시 예는 스테이트먼트 384에 따라 상기 방법을 포함하고, 상기 장치의 상기 구성에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하는 단계는 장치 구성들의 상기 목록이 상기 장치의 상기 구성을 생략하는지 결정하는 단계를 포함하는 방법.
스테이트먼트 387. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 방법은 상기 스토리지 장치를 장치와 대체하는 단계를 더 포함하는 방법.
스테이트먼트 388. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 방법은 상기 제1 연산 스토리지 유닛을 장치와 대체하는 단계를 더 포함하는 방법.
스테이트먼트 389. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 방법은 상기 제2 연산 스토리지 유닛을 장치와 대체하는 단계를 더 포함하는 방법.
스테이트먼트 390. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI(SAS) 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 스토리지 장치와 통신하는 방법.
스테이트먼트 391. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI(SAS) 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 제1 연산 스토리지 유닛과 통신하는 방법.
스테이트먼트 392. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI(SAS) 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 제2 연산 스토리지 유닛과 통신하는 방법.
스테이트먼트 393. 본 개시의 실시 예는 스테이트먼트 328에 따라 상기 방법을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI(SAS) 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 호스트 프로세서와 통신하는 방법.
스테이트먼트 394. 본 개시의 실시 예는 비-일시적인 스토리지 매체를 포함하는 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 명령어들을 포함하고 상기 명령어들은, 기계에 의해 실행되면:
스토리지 장치가 복수-기능 장치에 연결되는지 결정하는 것;
제1 연산 스토리지 유닛이 사용가능한지 결정하는 것;
제2 연산 스토리지 유닛이 상기 복수-기능 장치에 연결되는지 결정하는 것;
상기 복수-기능 장치에 연결되는 호스트 프로세서에 상기 스토리지 장치를 노출하는 것; 그리고
상기 호스트 프로세서에 상기 제1 연산 스토리지 유닛 및 상기 제2 연산 스토리지 유닛을 선택적으로 노출하는 것을 초래하는 아티클.
스테이트먼트 395. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치는 FPGA(Field Programmable Gate Array), ASIC(Application-Specific Integrated Circuit), SoC(System-on-a-Chip), GPU(Graphics Processing Unit), GPGPU(General Purpose GPU), CPU(Central Processing Unit), TPU(Tensor Processing Unit), 또는 NPU(Neural Processing Unit)의 적어도 하나를 사용하여 구현되는 아티클.
스테이트먼트 396. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 제1 연산 스토리지 유닛은 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 아티클.
스테이트먼트 397. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 제2 연산 스토리지 유닛은 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 아티클.
스테이트먼트 398. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 스토리지 장치는 SSD(Solid State Drive)를 포함하는 아티클.
스테이트먼트 399. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 제1 연산 스토리지 유닛은 가속기 회로, FHE(Fully Homomorphic Encryption) 회로, 또는 네트워크 인터페이스 장치를 포함하는 아티클.
스테이트먼트 400. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 제2 연산 스토리지 유닛은 가속기 회로, FHE 회로, 또는 네트워크 인터페이스 장치를 포함하는 아티클.
스테이트먼트 401. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 제1 연산 스토리지 유닛이 사용가능한지 결정하는 것은 상기 제1 연산 스토리지 유닛이 상기 복수-기능 장치에 연결되는지 결정하는 것을 포함하는 아티클.
스테이트먼트 402. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 제1 연산 스토리지 유닛이 상기 복수-기능 장치에 연결되는지 결정하는 것은 상기 제1 연산 스토리지 유닛이 커넥터를 통해 상기 복수-기능 장치에 연결되는지 결정하는 것을 포함하는 아티클.
스테이트먼트 403. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 제1 연산 스토리지 유닛이 사용가능한지 결정하는 것은 상기 제1 연산 스토리지 유닛이 상기 복수-기능 장치 내에 통합되는지 결정하는 것을 포함하는 아티클.
스테이트먼트 404. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 여기서:
상기 스토리지 장치가 상기 복수-기능 장치에 연결되는지 결정하는 것은 상기 스토리지 장치가 제1 커넥터를 통해 상기 복수-기능 장치에 연결되는지 결정하는 것을 포함하고; 그리고
상기 제2 연산 스토리지 유닛이 상기 복수-기능 아티클에 연결되는지 결정하는 것은 상기 제2 연산 스토리지 유닛이 제2 커넥터를 통해 상기 복수-기능 장치에 연결되는지 결정하는 것을 포함하는 아티클.
스테이트먼트 405. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치에 연결되는 호스트 프로세서에 상기 제1 연산 스토리지 유닛 및 상기 제2 연산 스토리지 유닛을 선택적으로 노출하는 것은:
상기 호스트 프로세서에 상기 제1 연산 스토리지 유닛을 노출하는 것; 및
상기 호스트 프로세서에 상기 제2 연산 스토리지 유닛을 노출하지 않는 것을 포함하는 아티클.
스테이트먼트 406. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛의 능력을 호출하기 위해 상기 스토리지 유닛으로부터 상기 복수-기능 장치에서 요청을 수신하는 것; 그리고
상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 것을 초래하는 아티클.
스테이트먼트 407. 본 개시의 실시 예는 스테이트먼트 406에 따라 상기 아티클을 포함하고, 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 것은 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 408. 본 개시의 실시 예는 스테이트먼트 406에 따라 상기 아티클을 포함하고, 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 것은 상기 호스트 프로세서에 의한 관리 없이 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 409. 본 개시의 실시 예는 스테이트먼트 406에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 응답을 수신하는 것; 그리고
상기 스토리지 장치에 상기 응답을 전송하는 것을 초래하는 아티클.
스테이트먼트 410. 본 개시의 실시 예는 스테이트먼트 409에 따라 상기 아티클을 포함하고, 상기 스토리지 장치에 상기 응답을 전송하는 것은 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 스토리지 장치에 상기 응답을 전송하는 것을 포함하는 아티클.
스테이트먼트 411. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛의 능력을 호출하기 위해 상기 제1 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 요청을 수신하는 것; 그리고
상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 것을 초래하는 아티클.
스테이트먼트 412. 본 개시의 실시 예는 스테이트먼트 411에 따라 상기 아티클을 포함하고, 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 것은 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 413. 본 개시의 실시 예는 스테이트먼트 411에 따라 상기 아티클을 포함하고, 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 것은 상기 호스트 프로세서의 관리 없이 상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 414. 본 개시의 실시 예는 스테이트먼트 411에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 스토리지 장치 또는 상기 제2 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 응답을 수신하는 것; 그리고
상기 제1 연산 스토리지 유닛에 상기 응답을 전송하는 것을 초래하는 아티클.
스테이트먼트 415. 본 개시의 실시 예는 스테이트먼트 414에 따라 상기 아티클을 포함하고, 상기 제1 연산 스토리지 유닛에 상기 응답을 전송하는 것은 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 제1 연산 스토리지 유닛에 상기 응답을 전송하는 것을 포함하는 아티클.
스테이트먼트 416. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛의 능력을 호출할 수 있기 위해 상기 제2 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 요청을 수신하는 것; 그리고
상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하는 것을 초래하는 아티클.
스테이트먼트 417. 본 개시의 실시 예는 스테이트먼트 416에 따라 상기 아티클을 포함하고, 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하는 것은 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 418. 본 개시의 실시 예는 스테이트먼트 416에 따라 상기 아티클을 포함하고, 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하는 것은 상기 호스트 프로세서에 의한 관리 없이 상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 419. 본 개시의 실시 예는 스테이트먼트 416에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 스토리지 장치 또는 상기 제1 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 응답을 수신하는 것; 그리고
상기 제2 연산 스토리지 유닛에 상기 응답을 전송하는 것을 초래하는 아티클.
스테이트먼트 420. 본 개시의 실시 예는 스테이트먼트 419에 따라 상기 아티클을 포함하고, 상기 제2 연산 스토리지 유닛에 상기 응답을 전송하는 것은 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 제2 연산 스토리지 유닛에 상기 응답을 전송하는 것을 포함하는 아티클.
스테이트먼트 421. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 스토리지 장치에 의해 상기 복수-기능 장치 내의 버퍼 내의 데이터를 액세스하는 것; 그리고
상기 제1 연산 스토리지 유닛에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스한 것을 초래하는 아티클.
스테이트먼트 422. 본 개시의 실시 예는 스테이트먼트 421에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 제2 연산 스토리지 유닛에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 것을 초래하는 아티클.
스테이트먼트 423. 본 개시의 실시 예는 스테이트먼트 421에 따라 상기 아티클을 포함하고, 여기서:
상기 버퍼는 어드레스 레인지를 포함하고; 그리고
상기 비-일시적인 스토리지 매체는, 상기 기계에 의해 실행될 때, 다음과 같은 결과를 초래하는 명령어들을 더 저장하고, 상기 비-일시적인 스토리지 매체는 상기 호스트 프로세서로부터 상기 버퍼의 상기 어드레스 레인지를 결정하는 것을 초래하는 아티클.
스테이트먼트 424. 본 개시의 실시 예는 스테이트먼트 421에 따라 상기 아티클을 포함하고, 여기서:
상기 스토리지 장치에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 것은 제1 프로토콜을 사용하여 상기 스토리지 장치에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 것을 포함하고, 그리고
상기 제1 연산 스토리지 유닛에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 것은 제2 프로토콜을 사용하여 상기 제1 연산 스토리지 유닛에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 것을 포함하는 아티클.
스테이트먼트 425. 본 개시의 실시 예는 스테이트먼트 424에 따라 상기 아티클을 포함하고, 여기서:
상기 제1 프로토콜은 파일 읽기(File Read) 프로토콜, 파일 쓰기(File Write) 프로토콜, DMA(Direct Memory Access) 프로토콜, 또는 NVMe(Non-Volatile Memory Express) 프로토콜의 적어도 하나를 포함하고, 그리고
상기 제2 프로토콜은 상기 파일 읽기 프로토콜, 상기 파일 쓰기 프로토콜, 상기 DMA 프로토콜, 또는 상기 NVMe 프로토콜의 적어도 하나를 포함하는 아티클.
스테이트먼트 426. 본 개시의 실시 예는 스테이트먼트 424에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 제3 프로토콜을 사용하여 상기 제2 연산 스토리지 유닛에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 것을 초래하는 아티클.
스테이트먼트 427. 본 개시의 실시 예는 스테이트먼트 426에 따라 상기 아티클을 포함하고, 상기 제3 프로토콜은 상기 파일 읽기 프로토콜, 상기 파일 쓰기 프로토콜, 상기 DMA 프로토콜, 또는 상기 NVMe 프로토콜의 적어도 하나를 포함하는 아티클.
스테이트먼트 428. 본 개시의 실시 예는 스테이트먼트 421에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 복수-기능 장치의 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 것을 초래하는 아티클.
스테이트먼트 429. 본 개시의 실시 예는 스테이트먼트 428에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 살기 버퍼 내의 상기 데이터를 처리하는 것은 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛의 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 것을 포함하는 아티클.
스테이트먼트 430. 본 개시의 실시 예는 스테이트먼트 42에 따라 상기 아티클을 포함하고, 여기서:
상기 비-일시적인 스토리지 매체가, 상기 기계에 의해 실행될 때, 다음과 같은 결과를 초래하는 명령어들을 더 저장하고, 상기 명령어들은:
기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 것; 그리고
복수-기능 장치에 의해 상기 기능을 노출하는 것을 초래하고,
상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛의 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 액세스하는 것은 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛의 적어도 하나로부터의 상기 요청을 수신하는 것을 포함하고, 그리고
상기 요청은 상기 기능을 트리거하는 아티클.
스테이트먼트 431. 본 개시의 실시 예는 스테이트먼트 430에 따라 상기 아티클을 포함하고, 상기 기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 것은 PCIe(Peripheral Component Interconnect Express) 기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 것을 포함하는 아티클.
스테이트먼트 432. 본 개시의 실시 예는 스테이트먼트 431에 따라 상기 아티클을 포함하고, 상기 PCIe 기능은 제1 물리적 기능(PF) 또는 제1 가상의 기능(VF)을 포함하는 아티클.
스테이트먼트 433. 본 개시의 실시 예는 스테이트먼트 409에 따라 상기 아티클을 포함하고, 여기서:
상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 것; 그리고
상기 복수-기능 장치에 의해 제2 기능을 노출하는 것을 초래하고, 그리고
상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛의 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 것은:
상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛의 적어도 하나로부터 상기 요청을 수신하는 것; 및
상기 데이터 프로세서의 상기 기능을 트리거하는 것을 포함하는 아티클.
스테이트먼트 434. 본 개시의 실시 예는 스테이트먼트 433에 따라 상기 아티클을 포함하고, 상기 데이터 프로세서의 상기 기능을 트리거하는 것은 상기 데이터 프로세서의 상기 기능에 상기 제2 기능을 매핑하는 것을 포함하는 아티클.
스테이트먼트 435. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 복수-기능 장치의 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 요청을 수신하는 것; 그리고
상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 상기 브릿지를 통해 상기 요청을 전달하는 것을 초래하는 아티클.
스테이트먼트 436. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 복수-기능 장치의 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 요청을 수신하는 것; 그리고
상기 스토리지 장치에 의해 노출되는 상기 기능에 적어도 부분적으로 기초하여 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 상기 브릿지로부터 상기 요청을 전송하는 것을 초래하고, 그리고
상기 요청은 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 의해 노출되는 기능을 트리거하는 아티클.
스테이트먼트 437. 본 개시의 실시 예는 스테이트먼트 436에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치의 상기 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 요청을 수신하는 것은:
상기 복수-기능 장치에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 요청을 수시하는 것; 및
상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 의해 노출되는 상기 기능에 적어도 부분적으로 기초하여 상기 브릿지에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 438. 본 개시의 실시 예는 스테이트먼트 436에 따라 상기 아티클을 포함하고, 여기서:
상기 복수-기능 장치의 상기 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 요청을 수신하는 것,
상기 요청은 상기 복수-기능 장치에 의해 노출되는 제2 기능을 트리거하고,
상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 의해 노출되는 상기 기능에 상기 제2 기능을 매핑하는 것; 그리고
상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 의해 노출되는 상기 기능에 적어도 부분적으로 기초하여 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 상기 브릿지로부터 상기 요청을 전송하는 것을 초래하는 아티클.
스테이트먼트 439. 본 개시의 실시 예는 스테이트먼트 438에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치의 상기 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 요청을 수신하는 것은:
상기-복수 기능 장치에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 상기 요청을 수신하는 것; 및
상기 복수-기능 장치에 의해 노출되는 상기 제2 기능에 적어도 부분적으로 기초하여 상기 브릿지에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 440. 본 개시의 실시 예는 스테이트먼트 436에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치는 상기 호스트 프로세서에 상기 기능을 노출하지 않는 아티클.
스테이트먼트 441. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 복수-기능 장치의 버퍼에서 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛으로부터 요청을 수신하는 것; 및
상기 복수-기능 장치의 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 것을 초래하는 아티클.
스테이트먼트 442. 본 개시의 실시 예는 스테이트먼트 441에 따라 상기 아티클을 포함하고, 상기 요청은 상기 호스트 프로세서에 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛 또는 상기 제2 연산 스토리지 유닛으로부터 전송되는 아티클.
스테이트먼트 443. 본 개시의 실시 예는 스테이트먼트 441에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 것은 상기 스토리지 장치, 상기 제1 연산 스토리지 유닛, 또는 상기 제2 연산 스토리지 유닛에 알리는 것 없이 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 444. 본 개시의 실시 예는 스테이트먼트 441에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 것은 어드레스에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 것을 포함하고, 상기 요청은 상기 어드레스를 포함하는 아티클.
스테이트먼트 445. 본 개시의 실시 예는 스테이트먼트 444에 따라 상기 아티클을 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 아티클.
스테이트먼트 446. 본 개시의 실시 예는 스테이트먼트 445에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 호스트 포로세서로부터 상기 버퍼를 위한 상기 어드레스 레인지를 수신하는 것을 초래하는 아티클.
스테이트먼트 447. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 여기서:
상기 복수-기능 장치에 연결되는 상기 호스트 프로세서에 상기 스토리지 장치를 노출하는 것은 장치 구성들의 목록에 적어도 부분적으로 기초하여 상기 복수-기능 장치에 연결되는 호스트 프로세서에 상기 스토리지 장치를 노출하는 것을 포함하고, 그리고
상기 호스트 프로세서에 상기 제1 연산 스토리지 유닛 및 상기 제2 연산 스토리지 유닛을 선택적으로 노출하는 것은 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 제1 연산 스토리지 유닛 및 상기 제2 연산 스토리지 유닛을 선택적으로 노출하는 것을 포함하는 아티클.
스테이트먼트 448. 본 개시의 실시 예는 스테이트먼트 447에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 복수-기능 장치로부터 장치 구성들의 상기 목록을 액세스하는 것을 초래하는 아티클.
스테이트먼트 449. 본 개시의 실시 예는 스테이트먼트 448에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치의 상기 스토리지로부터 장치 구성들의 상기 목록을 액세스하는 것은 상기 복수-기능 장치의 영구적인 스토리지로부터 장치 구성들의 상기 목록을 액세스하는 것을 포함하는 아티클.
스테이트먼트 450. 본 개시의 실시 예는 스테이트먼트 447에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
장치가 상기 복수-기능 장치에 연결되는지 결정하는 것;
상기 장치의 구성을 결정하는 것; 그리고
상기 장치의 상기 구성에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하는 것을 초래하는 아티클.
스테이트먼트 451. 본 개시의 실시 예는 스테이트먼트 450에 따라 상기 아티클을 포함하고, 상기 장치가 제2 스토리지 장치, 제3 연산 스토리지 유닛, FHE 회로, 또는 네트워크 인터페이스 장치를 포함하는 아티클.
스테이트먼트 452. 본 개시의 실시 예는 스테이트먼트 450에 따라 상기 아티클을 포함하고, 상기 장치의 상기 구성에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하는 것은 장치 구성들의 상기 목록이 상기 장치의 상기 구성을 생략하는지 결정하는 것을 포함하는 아티클.
스테이트먼트 453. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 장치와 상기 스토리지 장치를 대체하는 것을 초래하는 아티클.
스테이트먼트 454. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 장치와 상기 제1 연산 스토리지 유닛을 대체하는 것을 초래하는 아티클.
스테이트먼트 455. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 장치와 상기 제2 연산 스토리지 유닛을 대체하는 것을 초래하는 아티클.
스테이트먼트 456. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 스토리지 장치와 통신하는 아티클.
스테이트먼트 457. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프토토콜, SAS 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 제1 연산 스토리지 유닛과 통신하는 아티클.
스테이트먼트 458. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프토토콜, SAS 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 제2 연산 스토리지 유닛과 통신하는 아티클.
스테이트먼트 459. 본 개시의 실시 예는 스테이트먼트 394에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프토토콜, SAS 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 호스트 프로세서와 통신하는 아티클.
스테이트먼트 460. 본 개시의 실시 예는 복수-기능 장치를 포함하고, 상기 복수-기능 장치는:
스토리지 장치와 통신하는 것을 위한 제1 커넥터;
FHE(Fully Homomorphic Encryption) 회로와 통신하는 것을 위한 제2 커넥터; 및
호스트 프로세서와 통신하는 것을 위한 제3 커넥터를 포함하고,
상기 복수-기능 장치는 제3 커넥터를 통해 상기 호스트 프로세서에 상기 스토리지 장치를 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 461. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 FPGA(Field Programmable Gate Array), ASIC(Application-Specific Integrated Circuit), SoC(System-on-a-Chip), GPU(Graphics Processing Unit), GPGPU(General Purpose GPU), CPU(Central Processing Unit), TPU(Tensor Processing Unit), 또는 NPU(Neural Processing Unit)의 적어도 하나를 사용하여 구현되는 복수-기능 장치.
스테이트먼트 462. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 복수-기능 장치.
스테이트먼트 463. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 상기 스토리지 장치 및 상기 FHE 회로를 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 464. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 상기 FHE 회로를 노출하지 않는 복수-기능 장치.
스테이트먼트 465. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 상기 스토리지 장치의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 466. 본 개시의 실시 예는 스테이트먼트 465에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로로부터 요청을 수신하고 그리고 상기 스토리지 장치에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 467. 본 개시의 실시 예는 스테이트먼트 466에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 468. 본 개시의 실시 예는 스테이트먼트 465에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 상기 호스트 프로세서의 관리 없이 상기 스토리지 장치의 상기 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 469. 본 개시의 실시 예는 스테이트먼트 465에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 응답을 수신하고 그리고 상기 FHE 회로에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 470. 본 개시의 실시 예는 스테이트먼트 469에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 FHE 회로에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 471. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 472. 본 개시의 실시 예는 스테이트먼트 471에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 응답을 수신하고 그리고 상기 FHE 회로에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 473. 본 개시의 실시 예는 스테이트먼트 472에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 FHE 회로에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 474. 본 개시의 실시 예는 스테이트먼트 471에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 호스트 프로세서에 의한 관리 없이 상기 FHE 회로의 상기 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 475. 본 개시의 실시 예는 스테이트먼트 471에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로로부터 응답을 수신하고 그리고 상기 스토리지 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 476. 본 개시의 실시 예는 스테이트먼트 475에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 스토리지 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 477. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 SSD(Solid State Drive)를 포함하는 복수-기능 장치.
스테이트먼트 478. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 및 상기 FHE 회로에 연결하는 버퍼를 더 포함하는 복수-기능 장치.
스테이트먼트 479. 본 개시의 실시 예는 스테이트먼트 478에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치 및 상기 FHE 회로는 상기 버퍼 내의 데이터를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 480. 본 개시의 실시 예는 스테이트먼트 478에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 481. 본 개시의 실시 예는 스테이트먼트 480에 따라 상기 복수-기능 장치를 포함하고, 상기 호스트 프로세서는 상기 버퍼의 상기 어드레스 레인지를 결정하는 복수-기능 장치.
스테이트먼트 482. 본 개시의 실시 예는 스테이트먼트 478에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 프로토콜을 사용하여 상기 버퍼를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 483. 본 개시의 실시 예는 스테이트먼트 482에 따라 상기 복수-기능 장치를 포함하고, 상기 프로토콜은 파일 읽기(File Read) 프로토콜, 파일 쓰기(File Write) 프로토콜, DMA(Direct Memory Access) 프로토콜, 또는 NVMe(Non-Volatile Memory Express) 프로토콜의 적어도 하나를 포함하는 복수-기능 장치.
스테이트먼트 484. 본 개시의 실시 예는 스테이트먼트 478에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 프로토콜을 사용하여 상기 버퍼를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 485. 본 개시의 실시 예는 스테이트먼트 484에 따라 상기 복수-기능 장치를 포함하고, 상기 프로토콜은 파일 읽기프로토콜, 파일 쓰기 프로토콜, DMA 프로토콜, 또는 NVMe 프로토콜의 적어도 하나를 포함하는 복수-기능 장치.
스테이트먼트 486. 본 개시의 실시 예는 스테이트먼트 478에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 연산 스토리지 유닛과 통신하는 것을 위한 제4 커넥터를 더 포함하고, 그리고
상기 버퍼는 상기 스토리지 장치, 상기 FHE 회로, 및 상기 연산 스토리지 유닛에 연결되는 복수-기능 장치.
스테이트먼트 487. 본 개시의 실시 예는 스테이트먼트 486에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치, 상기 FHE 회로, 및 상기 연산 스토리지 유닛은 상기 버퍼 내의 데이터를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 488. 본 개시의 실시 예는 스테이트먼트 486에 따라 상기 복수-기능 장치를 포함하고, 상기 연산 스토리지 유닛은 프로토콜을 사용하여 상기 버퍼를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 489. 본 개시의 실시 예는 스테이트먼트 488에 따라 상기 복수-기능 장치를 포함하고, 상기 프로토콜은 파일 읽기 프로토콜, 파일 쓰기 프로토콜, DMA 프로토콜, 또는 NVMe 프로토콜의 적어도 하나를 포함하는 복수-기능 장치.
스테이트먼트 490. 본 개시의 실시 예는 스테이트먼트 478에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 데이터 프로세서를 더 포함하고, 상기 데이터 프로세서는 상기 버퍼 내의 데이터를 처리하도록 구성되고,
상기 버퍼는 상기 스토리지 장치, 상기 FHE 회로, 및 상기 데이터 프로세서에 연결되는 복수-기능 장치.
스테이트먼트 491. 본 개시의 실시 예는 스테이트먼트 490에 따라 상기 복수-기능 장치를 포함하고, 상기 데이터 프로세서는 상기 호스트 프로세서, 상기 스토리지 장치, 또는 상기 FHE 회로의 적어도 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 버퍼 내의 상기 데이터를 처리하도록 구성되는 복수-기능 장치.
스테이트먼트 492. 본 개시의 실시 예는 스테이트먼트 491에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 연산 스토리지 유닛과 통신하는 것을 위한 제4 커넥터를 포함하고, 그리고
상기 데이터 프로세서는 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 연산 스토리지 유닛의 적어도 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 버퍼 내의 상기 데이터를 처리하도록 구성되는 복수-기능 장치.
스테이트먼트 493. 본 개시의 실시 예는 스테이트먼트 491에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 데이터 프로세서는 기능을 노출하도록 구성되고,
상기 요청은 상기 호스트 프로세서로부터이고, 그리고
상기 요청은 상기 데이터 프로세서의 상기 기능을 트리거하는 복수-기능 장치.
스테이트먼트 494. 본 개시의 실시 예는 스테이트먼트 493에 따라 상기 복수-기능 장치를 포함하고, 상기 기능은 PCIe(Peripheral Component Interconnect Express) 기능을 포함하는 복수-기능 장치.
스테이트먼트 495. 본 개시의 실시 예는 스테이트먼트 494에 따라 상기 복수-기능 장치를 포함하고, 상기 PCIe 기능은 제1 물리적 기능(PF) 또는 제1 가상의 기능(VF)을 포함하는 복수-기능 장치.
스테이트먼트 496. 본 개시의 실시 예는 스테이트먼트 493에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 제2 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서로부터 상기 요청을 수신하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 데이터 프로세서의 상기 기능을 트리거하는 복수-기능 장치.
스테이트먼트 497. 본 개시의 실시 예는 스테이트먼트 496에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 요청은 상기 제2 기능을 포함하고, 그리고
상기 복수-기능 장치는 상기 데이터 프로세서의 상기 기능에 상기 제2 기능을 매핑하도록 구성되는 복수-기능 장치.
스테이트먼트 498. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제3 커넥터 및 상기 제1 커넥터를 연결하는 제1 브릿지를 더 포함하는 복수-기능 장치.
스테이트먼트 499. 본 개시의 실시 예는 스테이트먼트 498에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 브릿지는 상기 호스트 프로세서 및 상기 스토리지 장치 사이의 제1 요청의 패스-쓰루를 지원하는 복수-기능 장치.
스테이트먼트 500. 본 개시의 실시 예는 스테이트먼트 498에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제3 커넥터 및 상기 제2 커넥터를 연결하는 제2 브릿지를 더 포함하는 복수-기능 장치.
스테이트먼트 501. 본 개시의 실시 예는 스테이트먼트 500에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 브릿지는 상기 호스트 프로세서 및 상기 FHE 회로 사이의 제2 요청의 패스-쓰루를 지원하는 복수-기능 장치.
스테이트먼트 502. 본 개시의 실시 예는 스테이트먼트 498에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 스토리지 장치는 상기 제1 커넥터를 통해 상기 복수-기능 장치에 제1 기능을 노출하도록 구성되고,
상기 FHE 회로는 상기 제2 커넥터를 통해 상기 복수-기능 장치에 제2 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 제3 기능을 노출하도록 구성되고,
상기 제1 브릿지는 상기 제1 기능을 사용하는 제2 요청에 상기 제3 기능을 사용하는 제1 요청을 매핑하도록 구성되고, 그리고
상기 제2 브릿지는 상기 제2 기능을 사용하는 제4 요청에 제4 기능을 사용하는 제3 요청을 매핑하도록 구성되는 복수-기능 장치.
스테이트먼트 503. 본 개시의 실시 예는 스테이트먼트 502에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 상기 제4 기능을 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 504. 본 개시의 실시 예는 스테이트먼트 502에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서 상기 제4 기능을 노출하지 않는 복수-기능 장치.
스테이트먼트 505. 본 개시의 실시 예는 스테이트먼트 502에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 제1 브릿지에 상기 제1 요청을 다이렉팅하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 제2 브릿지에 상기 제3 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 506. 본 개시의 실시 예는 스테이트먼트 505에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 호스트 프로세서 또는 상기 FHE 회로로부터 상기 제1 요청을 수신하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 호스트 프로세서 또는 상기 스토리지 장치로부터 상기 제3 요청을 수신하도록 구성되는 복수-기능 장치.
스테이트먼트 507. 본 개시의 실시 예는 스테이트먼트 506에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 호스트 프로세서, 상기 FHE 회로, 또는 연산 스토리지 유닛으로부터 상기 제1 요청을 수신하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 호스트 프로세서, 상기 스토리지 장치, 또는 상기 연산 스토리지 유닛으로부터 상기 제3 요청을 수신하도록 구성되는 복수-기능 장치.
스테이트먼트 508. 본 개시의 실시 예는 스테이트먼트 498에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제1 브릿지 및 상기 제2 브릿지에 연결되는 버퍼를 더 포함하는 복수-기능 장치.
스테이트먼트 509. 본 개시의 실시 예는 스테이트먼트 508에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 브릿지는 상기 스토리지 장치로부터 전송되는 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 510. 본 개시의 실시 예는 스테이트먼트 509에 따라 상기 복수-기능 장치를 포함하고, 상기 요청은 상기 호스트 프로세서에 상기 스토리지 장치로부터 전송되는 복수-기능 장치.
스테이트먼트 511. 본 개시의 실시 예는 스테이트먼트 509에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 제1 브릿지가 상기 버퍼에 상기 요청을 리다이렉팅하는 것에 대해 불가지론적인 복수-기능 장치.
스테이트먼트 512. 본 개시의 실시 예는 스테이트먼트 509에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 브릿지는 어드레스에 적어도 부분적으로 기초하여 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되고, 상기 요청은 상기 어드레스를 포함하는 복수-기능 장치.
스테이트먼트 513. 본 개시의 실시 예는 스테이트먼트 512에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 514. 본 개시의 실시 예는 스테이트먼트 508에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 브릿지는 상기 FHE 회로로부터 전송되는 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 515. 본 개시의 실시 예는 스테이트먼트 514에 따라 상기 복수-기능 장치를 포함하고, 상기 요청은 상기 호스트 프로세서에 상기 FHE 회로로부터 전송되는 복수-기능 장치.
스테이트먼트 516. 본 개시의 실시 예는 스테이트먼트 514에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 상기 제2 브릿지가 상기 버퍼에 상기 요청을 리다이렉팅하는 것에 대해 불가지론적인 복수-기능 장치.
스테이트먼트 517. 본 개시의 실시 예는 스테이트먼트 514에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 브릿지는 어드레스에 적어도 부분적으로 기초하여 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되고, 상기 요청은 상기 어드레스를 포함하는 복수-기능 장치.
스테이트먼트 518. 본 개시의 실시 예는 스테이트먼트 517에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 519. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 목록을 위한 스토리지를 더 포함하는 복수-기능 장치.
스테이트먼트 520. 본 개시의 실시 예는 스테이트먼트 519에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지는 영구적인 스토리지를 포함하는 복수-기능 장치.
스테이트먼트 521. 본 개시의 실시 예는 스테이트먼트 519에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 스토리지 장치를 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 522. 본 개시의 실시 예는 스테이트먼트 521에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 스토리지 장치 및 상기 FHE 회로를 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 523. 본 개시의 실시 예는 스테이트먼트 521에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 FHE 회로를 노출하지 않도록 구성되는 복수-기능 장치.
스테이트먼트 524. 본 개시의 실시 예는 스테이트먼트 519에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제2 커넥터에 연결되는 장치를 감지하고, 상기 장치의 구성을 결정하고, 그리고 상기 장치의 상기 구성을 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하도록 구성되는 복수-기능 장치.
스테이트먼트 525. 본 개시의 실시 예는 스테이트먼트 524에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 제2 스토리지 장치, 제2 FHE 회로, 연산 스토리지 유닛, 또는 네트워크 인터페이스 장치를 포함하는 복수-기능 장치.
스테이트먼트 526. 본 개시의 실시 예는 스테이트먼트 519에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치의 상기 구성을 결정하고 그리고 상기 장치의 구성을 생략하는 구성들의 상기 목록에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하도록 구성되는 복수-기능 장치.
스테이트먼트 527. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 대체가능한 복수-기능 장치.
스테이트먼트 528. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 대체가능한 복수-기능 장치.
스테이트먼트 529. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 커넥터는 제1 PCIe 포트를 포함하고,
상기 제2 커넥터는 제2 PCIe 포트를 포함하고, 그리고
상기 제3 커넥터는 제3 PCIe 포트를 포함하는 복수-기능 장치.
스테이트먼트 530. 본 개시의 실시 예는 스테이트먼트 529에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 PCIe 포트는 제1 루트 포트를 포함하고,
상기 제2 PCIe 포트는 제2 루트 포트를 포함하고, 그리고
상기 제3 PCIe 포트는 엔드포인트를 포함하는 복수-기능 장치.
스테이트먼트 531. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 스토리지 장치는 상기 제1 커넥터를 통해 상기 복수-기능 장치에 제1 PCIe 기능을 노출하도록 구성되고,
상기 FHE 회로는 상기 제2 커넥터를 통해 상기 복수-기능 장치에 제2 PCIe 기능을 노출하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 제3 PCIe 기능을 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 532. 본 개시의 실시 예는 스테이트먼트 531에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 PCIe 기능은 제1 PF 또는 제1 VF를 포함하고,
상기 제2 PCIe 기능은 제2 PF 또는 제2 VF를 포함하고, 그리고
상기 제3 PCIe 기능은 제3 PF 또는 제3 VF를 포함하는 복수-기능 장치.
스테이트먼트 533. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 커넥터는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 지원하는 복수-기능 장치.
스테이트먼트 534. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 커넥터는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 지원하는 복수-기능 장치.
스테이트먼트 535. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 제3 커넥터는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 지원하는 복수-기능 장치.
스테이트먼트 536. 본 개시의 실시 예는 스테이트먼트 460에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치와 통신하는 것을 위한 제4 커넥터를 더 포함하는 복수-기능 장치.
스테이트먼트 537. 본 개시의 실시 예는 스테이트먼트 536에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 제2 스토리지 장치, 제2 FHE 회로, 연산 스토리지 유닛, 또는 네트워크 인터페이스 장치를 포함하는 복수-기능 장치.
스테이트먼트 538. 본 개시의 실시 예는 스테이트먼트 536에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 복수-기능 장치.
스테이트먼트 539. 본 개시의 실시 예는 스테이트먼트 536에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 호스트 프로세서에 상기 장치를 노출하지 않는 복수-기능 장치.
스테이트먼트 540. 본 개시의 실시 예는 스테이트먼트 536에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 상기 장치의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 541. 본 개시의 실시 예는 스테이트먼트 540에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로로부터 요청을 수신하고 그리고 상기 장치에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 542. 본 개시의 실시 예는 스테이트먼트 541에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 장치에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 543. 본 개시의 실시 예는 스테이트먼트 540에 따라 상기 복수-기능 장치를 포함하고, 상기 호스트 프로세서에 의한 관리 없이 상기 장치의 상기 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 544. 본 개시의 실시 예는 스테이트먼트 540에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치로부터 응답을 수신하고 그리고 상기 FHE 회로에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 545. 본 개시의 실시 예는 스테이트먼트 544에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 FHE 회로에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 546. 본 개시의 실시 예는 스테이트먼트 536에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 장치의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 547. 본 개시의 실시 예는 스테이트먼트 546에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 요청을 수신하고 그리고 상기 장치에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 548. 본 개시의 실시 예는 스테이트먼트 547에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 장치에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 549. 본 개시의 실시 예는 스테이트먼트 546에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 호스트 프로세서에 의한 관리 없이 상기 장치의 상기 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 550. 본 개시의 실시 예는 스테이트먼트 546에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치로부터 응답을 수신하고 그리고 상기 스토리지 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 551. 본 개시의 실시 예는 스테이트먼트 550에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 스토리지 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 552. 본 개시의 실시 예는 스테이트먼트 536에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 상기 스토리지 장치 또는 상기 FHE 회로의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 553. 본 개시의 실시 예는 스테이트먼트 552에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치로부터 요청을 수신하고 그리고 상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 554. 본 개시의 실시 예는 스테이트먼트 553에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치로부터 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 상기 FHE 회로로부터 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 555. 본 개시의 실시 예는 스테이트먼트 552에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 상기 호스트 프로세서에 의한 관리 없이 상기 스토리지 장치 또는 상기 FHE 회로의 상기 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 556. 본 개시의 실시 예는 스테이트먼트 552에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 응답을 수신하고 그리고 상기 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 557. 본 개시의 실시 예는 스테이트먼트 556에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 FHE 회로로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 558. 본 개시의 실시 예는 스테이트먼트 536에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 가속기 회로, 제2 FHE 회로, 또는 네트워크 인터페이스 장치를 포함하는 복수-기능 장치.
스테이트먼트 559. 본 개시의 실시 예는 스테이트먼트 536에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는:
상기 제3 커넥터 및 상기 제1 커넥터를 연결하는 제1 브릿지;
상기 제3 커넥터 및 상기 제2 커넥터를 연결하는 제2 브릿지; 및
상기 제3 커넥터 및 상기 제4 커넥터를 연결하는 제3 브릿지를 더 포함하는 복수-기능 장치.
스테이트먼트 560. 본 개시의 실시 예는 스테이트먼트 559에 따라 상기 복수-기능 장치를 포함하고, 상기 제3 브릿지는 상기 호스트 프로세서 및 상기 장치 사이의 요청의 패스-쓰루를 지원하는 복수-기능 장치.
스테이트먼트 561. 본 개시의 실시 예는 스테이트먼트 559에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 스토리지 장치는 상기 제1 커넥터를 통해 상기 복수-기능 장치에 제1 기능을 노출하도록 구성되고,
상기 FHE 회로는 상기 제2 커넥터를 통해 상기 복수-기능 장치에 제2 기능을 노출하도록 구성되고,
상기 장치는 상기 제4 커넥터를 통해 상기 복수-기능 장치에 제3 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 제4 기능 및 제5 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 제 2 커넥터를 통해 상기 FHE 회로에 그리고 상기 제4 커넥터를 통해 상기 장치에 상기 제4 기능을 노출하도록 구성되고,
상기 제1 커넥터를 통해 상기 스토리지 장치에 그리고 상기 제2 커넥터를 통해 상기 FHE 회로에 제6 기능을 노출하도록 구성되고,
그리고 상기 제1 브릿지는 상기 제1 기능을 사용하는 제2 요청에 상기 제4 기능을 사용하는 제1 요청을 매핑하도록 구성되고,
상기 제2 브릿지는 상기 제2 기능을 사용하는 제4 요청에 상기 제5 기능을 사용하는 제3 요청을 매핑하도록 구성되고, 그리고
상기 제3 브릿지는 상기 제3 기능을 사용하는 제6 요청에 상기 제6 기능을 사용하는 제5 기능을 매핑하도록 구성되는 복수-기능 장치.
스테이트먼트 562. 본 개시의 실시 예는 스테이트먼트 559에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제1 브릿지, 상기 제2 브릿지, 및 상기 제3 브릿지에 연결되는 버퍼를 더 포함하는 복수-기능 장치.
스테이트먼트 563. 본 개시의 실시 예는 스테이트먼트 562에 따라 상기 복수-기능 장치를 포함하고, 상기 제3 브릿지는 상기 장치로부터 전송되는 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 564. 본 개시의 실시 예는 스테이트먼트 563에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 상기 브릿지가 상기 버퍼에 상기 요청을 리다이렉팅하는 것에 대해 불가지론적인 복수-기능 장치.
스테이트먼트 565. 본 개시의 실시 예는 스테이트먼트 563에 따라 상기 복수-기능 장치를 포함하고, 상기 제3 브릿지는 어드레스에 적어도 부분적으로 기초하여 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되고, 상기 요청은 상기 어드레스를 포함하는 복수-기능 장치.
스테이트먼트 566. 본 개시의 실시 예는 스테이트먼트 565에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 567. 본 개시의 실시 예는 스테이트먼트 536에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 장치를 노출하지 않도록 구성되는 복수-기능 장치.
스테이트먼트 568. 본 개시의 실시 예는 복수-기능 장치를 포함하고, 상기 복수-기능 장치는:
스토리지 장치와 통신하는 것을 위한 제1 커넥터;
상기 복수-기능 장치와 통합되는 FHE(Fully Homomorphic Encryption) 회로; 및
호스트 프로세서와 통신하는 것을 위한 제2 커넥터를 포함하되,
상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 호스트 프로세서에 상기 스토리지 장치를 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 569. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 복수-기능 장치.
스테이트먼트 570. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 복수-기능 장치.
스테이트먼트 571. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 호스트 프로세서에 상기 스토리지 장치 및 상기 FHE 회로를 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 572. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 호스트 프로세서에 상기 FHE 회로를 노출하지 않는 복수-기능 장치.
스테이트먼트 573. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 상기 스토리지 장치의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 574. 본 개시의 실시 예는 스테이트먼트 573에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로로부터 요청을 수신하고 그리고 상기 스토리지 장치에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 575. 본 개시의 실시 예는 스테이트먼트 574에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 576. 본 개시의 실시 예는 스테이트먼트 573에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 상기 호스트 프로세서에 의한 관리 없이 상기 스토리지 장치의 상기 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 577. 본 개시의 실시 예는 스테이트먼트 573에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 응답을 수신하고 그리고 상기 FHE 회로에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 578. 본 개시의 실시 예는 스테이트먼트 577에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 FHE 회로에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 579. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 FHE 회로의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 580. 본 개시의 실시 예는 스테이트먼트 579에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 요청을 수신하고 그리고 상기 FHE 회로에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 581. 본 개시의 실시 예는 스테이트먼트 580에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 FHE 회로에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 582. 본 개시의 실시 예는 스테이트먼트 579에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 호스트 프로세서에 의한 관리 없이 상기 FHE 회로의 상기 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 583. 본 개시의 실시 예는 스테이트먼트 579에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로로부터 응답을 수신하고 그리고 상기 스토리지 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 584. 본 개시의 실시 예는 스테이트먼트 583에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 스토리지 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 585. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 SSD를 포함하는 복수-기능 장치.
스테이트먼트 586. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 및 상기 FHE 회로에 연결되는 버퍼를 더 포함하는 복수-기능 장치.
스테이트먼트 587. 본 개시의 실시 예는 스테이트먼트 586에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치 및 상기 FHE 회로는 상기 버퍼 내의 데이터를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 588. 본 개시의 실시 예는 스테이트먼트 586에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 589. 본 개시의 실시 예는 스테이트먼트 588에 따라 상기 복수-기능 장치를 포함하고, 상기 호스트 프로세서는 상기 버퍼의 상기 어드레스 레인지를 결정하는 복수-기능 장치.
스테이트먼트 590. 본 개시의 실시 예는 스테이트먼트 586에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 프로토콜을 사용하여 상기 버퍼를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 591. 본 개시의 실시 예는 스테이트먼트 590에 따라 상기 복수-기능 장치를 포함하고, 상기 프로토콜은 파일 읽기 프로토콜, 파일 쓰기 프로토콜, DMA 프로토콜, 또는 NVMe 프로토콜의 적어도 하나를 포함하는 복수-기능 장치.
스테이트먼트 592. 본 개시의 실시 예는 스테이트먼트 586에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 프로토콜을 사용하여 상기 버퍼를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 593. 본 개시의 실시 예는 스테이트먼트 592에 따라 상기 복수-기능 장치를 포함하고, 상기 프로토콜은 파일 읽기 프로토콜, 파일 쓰기 프로토콜, DMA 프로토콜, 또는 NVMe 프로토콜의 적어도 하나를 포함하는 복수-기능 장치.
스테이트먼트 594. 본 개시의 실시 예는 스테이트먼트 586에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 연산 스토리지 유닛과 통신하는 것을 위한 제3 커넥터를 더 포함하고, 그리고
상기 버퍼는 상기 스토리지 장치, 상기 FHE 회로, 및 상기 연산 스토리지 유닛에 연결되는 복수-기능 장치.
스테이트먼트 595. 본 개시의 실시 예는 스테이트먼트 594에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치, 상기 FHE 회로, 및 상기 연산 스토리지 유닛은 상기 버퍼 내의 데이터를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 596. 본 개시의 실시 예는 스테이트먼트 594에 따라 상기 복수-기능 장치를 포함하고, 상기 연산 스토리지 유닛은 프로토콜을 사용하여 상기 버퍼를 액세스하도록 구성되는 복수-기능 장치.
스테이트먼트 597. 본 개시의 실시 예는 스테이트먼트 596에 따라 상기 복수-기능 장치를 포함하고, 상기 프로토콜은 파일 읽기 프로토콜, 파일 쓰기 프로토콜, DMA 프로토콜, 또는 NVMe 프로토콜의 적어도 하나를 포함하는 복수-기능 장치.
스테이트먼트 598. 본 개시의 실시 예는 스테이트먼트 586에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 데이터 프로세서를 더 포함하고, 상기 데이터 프로세서는 상기 버퍼 내의 데이터를 처리하도록 구성되고,
상기 버퍼는 상기 스토리지 장치, 상기 FHE 회로, 및 상기 데이터 프로세서에 연결되는 복수-기능 장치.
스테이트먼트 599. 본 개시의 실시 예는 스테이트먼트 598에 따라 상기 복수-기능 장치를 포함하고, 상기 데이터 프로세서는 상기 호스트 프로세서, 상기 스토리지 장치, 또는 상기 FHE 회로의 적어도 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 버퍼 내의 상기 데이터를 처리하도록 구성되는 복수-기능 장치.
스테이트먼트 600. 본 개시의 실시 예는 스테이트먼트 599에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 연산 스토리지 유닛과 통신하는 것을 위한 제3 커넥터를 포함하고, 그리고
상기 데이터 프로세서는 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 연산 스토리지 유닛의 적어도 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 버퍼 내의 상기 데이터를 처리하도록 구성되는 복수-기능 장치.
스테이트먼트 601. 본 개시의 실시 예는 스테이트먼트 599에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 데이터 프로세서는 기능을 노출하도록 구성되고,
상기 요청은 상기 호스트 프로세서로부터의 것이고, 그리고
상기 요청은 상기 데이터 프로세서의 상기 기능을 트리거하는 복수-기능 장치.
스테이트먼트 602. 본 개시의 실시 예는 스테이트먼트 601에 따라 상기 복수-기능 장치를 포함하고, 상기 기능은 PCIe 기능을 포함하는 복수-기능 장치.
스테이트먼트 603. 본 개시의 실시 예는 스테이트먼트 602에 따라 상기 복수-기능 장치를 포함하고, 상기 PCIe 기능은 제1 PF 또는 제1 VF를 포함하는 복수-기능 장치.
스테이트먼트 604. 본 개시의 실시 예는 스테이트먼트 601에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 호스트 프로세서에 제2 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 호스트 프로세서로부터 상기 요청을 수신하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 데이터 프로세서의 상기 기능을 트리거하는 복수-기능 장치.
스테이트먼트 605. 본 개시의 실시 예는 스테이트먼트 604에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 요청은 상기 제2 기능을 포함하고, 그리고
상기 복수-기능 장치는 상기 데이터 프로세서의 상기 기능에 상기 제2 기능을 매핑하도록 구성되는 복수-기능 장치.
스테이트먼트 606. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제2 커넥터 및 상기 제1 커넥터를 연결하는 브릿지를 더 포함하는 복수-기능 장치.
스테이트먼트 607. 본 개시의 실시 예는 스테이트먼트 606에 따라 상기 복수-기능 장치를 포함하고, 상기 브릿지는 상기 호스트 프로세서 및 상기 스토리지 장치 사이의 제1 요청의 패스-쓰루를 지원하는 복수-기능 장치.
스테이트먼트 608. 본 개시의 실시 예는 스테이트먼트 606에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 스토리지 장치는 상기 제1 커넥터를 통해 상기 복수-기능 장치에 제1 기능을 노출하도록 구성되고,
상기 FHE 회로는 제2 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 호스트 프로세서에 제3 기능을 노출하도록 구성되고, 그리고
상기 브릿지는 상기 제1 기능을 사용하는 제2 요청에 상기 제3 기능을 사용하는 요청을 매핑하는 복수-기능 장치.
스테이트먼트 609. 개시의 실시 예는 스테이트먼트 608라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 호스트 프로세서에 상기 제2 기능을 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 610. 본 개시의 실시 예는 스테이트먼트 608에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 호스트 프로세서에 상기 제2 기능을 노출하지 않는 복수-기능 장치.
스테이트먼트 611. 본 개시의 실시 예는 스테이트먼트 608에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 브릿지에 상기 요청을 다이렉팅하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 FHE 회로에 제3 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 612. 본 개시의 실시 예는 스테이트먼트 611에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 호스트 프로세서 또는 상기 FHE 회로로부터 상기 제1 요청을 수신하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 스토리지 장치로부터 상기 제3 요청을 수신하도록 구성되는 복수-기능 장치.
스테이트먼트 613. 본 개시의 실시 예는 스테이트먼트 612에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 호스트 프로세서, 상기 FHE 회로, 또는 연산 스토리지 유닛으로부터 상기 제1 요청을 수신하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 연산 스토리지 유닛으로부터 상기 제3 요청을 수신하도록 구성되는 복수-기능 장치.
스테이트먼트 614. 본 개시의 실시 예는 스테이트먼트 611에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 호스트 프로세서에 상기 제2 기능을 노출하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 호스트 프로세서로부터 상기 제3 요청을 수신하도록 구성되는 복수-기능 장치.
스테이트먼트 615. 본 개시의 실시 예는 스테이트먼트 606에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 브릿지 및 상기 FHE에 연결되는 버퍼를 더 포함하는 복수-기능 장치.
스테이트먼트 616. 본 개시의 실시 예는 스테이트먼트 615에 따라 상기 복수-기능 장치를 포함하고, 상기 브릿지는 상기 스토리지 장치로부터 전송되는 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 617. 본 개시의 실시 예는 스테이트먼트 616에 따라 상기 복수-기능 장치를 포함하고, 상기 요청은 상기 호스트 프로세서에 상기 스토리지 장치로부터 전송되는 복수-기능 장치.
스테이트먼트 618. 본 개시의 실시 예는 스테이트먼트 616에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 브릿지가 상기 버퍼에 상기 요청을 리다이렉팅하는 것에 대해 불가지론적인 복수-기능 장치.
스테이트먼트 619. 본 개시의 실시 예는 스테이트먼트 616에 따라 상기 복수-기능 장치를 포함하고, 상기 브릿지는 어드레스에 적어도 부분적으로 기초하여 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되고, 상기 요청은 상기 어드레스를 포함하는 복수-기능 장치.
스테이트먼트 620. 본 개시의 실시 예는 스테이트먼트 619에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 상기 복수-기능 장치.
스테이트먼트 621. 본 개시의 실시 예는 스테이트먼트 615에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로로부터 전송되는 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 622. 본 개시의 실시 예는 스테이트먼트 621에 따라 상기 복수-기능 장치를 포함하고, 상기 요청은 상기 호스트 프로세서에 상기 FHE 회로로부터 전송되는 복수-기능 장치.
스테이트먼트 623. 본 개시의 실시 예는 스테이트먼트 621에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 상기 복수-기능 장치가 상기 버퍼에 상기 요청을 리다이렉팅하는 것에 대해 불가지론적인 복수-기능 장치.
스테이트먼트 624. 본 개시의 실시 예는 스테이트먼트 621에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 어드레스에 적어도 부분적으로 기초하여 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 625. 본 개시의 실시 예는 스테이트먼트 624에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 626. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 목록을 위한 스토리지를 더 포함하는 복수-기능 장치.
스테이트먼트 627. 본 개시의 실시 예는 스테이트먼트 626에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지는 영구적인 스토리지를 포함하는 복수-기능 장치.
스테이트먼트 628. 본 개시의 실시 예는 스테이트먼트 626에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 스토리지 장치를 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 629. 본 개시의 실시 예는 스테이트먼트 628에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 스토리지 장치 및 상기 FHE 회로를 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 630. 본 개시의 실시 예는 스테이트먼트 628에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 FHE 회로를 노출하지 않도록 구성되는 복수-기능 장치.
스테이트먼트 631. 본 개시의 실시 예는 스테이트먼트 626에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 제3 커넥터에 연결되는 장치를 감지하고, 상기 장치의 구성을 결정하고, 그리고 상기 장치의 상기 구성에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하도록 구성되는 복수-기능 장치.
스테이트먼트 632. 본 개시의 실시 예는 스테이트먼트 631에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 제2 스토리지 장치, 제2 FHE 회로, 연산 스토리지 유닛, 또는 네트워크 인터페이스 장치를 포함하는 복수-기능 장치.
스테이트먼트 633. 본 개시의 실시 예는 스테이트먼트 626에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치의 구성을 결정하고 그리고 상기 장치의 구성을 생략하는 구성들의 상기 목록에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하도록 구성되는 복수-기능 장치.
스테이트먼트 634. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 대체가능한 복수-기능 장치.
스테이트먼트 635. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 커넥터는 제1 PCIe 포트를 포함하고, 그리고
상기 제2 커넥터는 제2 PCIe 포트를 포함하는 복수-기능 장치.
스테이트먼트 636. 본 개시의 실시 예는 스테이트먼트 635에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 PCIe 포트는 제1 루트 포트를 포함하고, 그리고
상기 제2 PCIe 포트는 엔드포인트를 포함하는 복수-기능 장치.
스테이트먼트 637. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 스토리지 장치는 상기 제1 커넥터를 통해 상기 복수-기능 장치에 제1 PCIe 기능을 노출하도록 구성되고,
상기 FHE 회로는 제2 PCIe 기능을 노출하도록 구성되고, 그리고
상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 호스트 프로세서에 제3 PCIe 기능을 노출하도록 구성되는 복수-기능 장치.
스테이트먼트 638. 본 개시의 실시 예는 스테이트먼트 637에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 제1 PCIe 기능은 제1 PF 또는 제1 VF를 포함하고,
상기 제2 PCIe 기능은 제2 PF 또는 제2 VF를 포함하고, 그리고
상기 제3 PCIe 기능은 제3 PF 또는 제3 VF를 포함하는 복수-기능 장치.
스테이트먼트 639. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 제1 커넥터는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 지원하는 복수-기능 장치.
스테이트먼트 640. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 커넥터는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 지원하는 복수-기능 장치.
스테이트먼트 641. 본 개시의 실시 예는 스테이트먼트 568에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치와 통신하는 것을 위한 제3 커넥터를 더 포함하는 복수-기능 장치.
스테이트먼트 642. 본 개시의 실시 예는 스테이트먼트 641에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 제2 스토리지 장치, 제2 FHE 회로, 연산 스토리지 유닛, 또는 네트워크 인터페이스 장치를 포함하는 복수-기능 장치.
스테이트먼트 643. 본 개시의 실시 예는 스테이트먼트 641에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 복수-기능 장치.
스테이트먼트 644. 본 개시의 실시 예는 스테이트먼트 641에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 호스트 프로세서에 상기 장치를 노출하지 않는 복수-기능 장치.
스테이트먼트 645. 본 개시의 실시 예는 스테이트먼트 641에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 상기 장치의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 646. 본 개시의 실시 예는 스테이트먼트 645에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로로부터 요청을 수신하고 그리고 상기 장치에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 647. 본 개시의 실시 예는 스테이트먼트 646에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 FHE 회로로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 장치에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 648. 본 개시의 실시 예는 스테이트먼트 645에 따라 상기 복수-기능 장치를 포함하고, 상기 FHE 회로는 상기 호스트 프로세서에 의한 관리 없이 상기 장치의 상기 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 649. 본 개시의 실시 예는 스테이트먼트 645에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치로부터 응답을 수신하고 그리고 상기 FHE 회로에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 650. 본 개시의 실시 예는 스테이트먼트 649에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 FHE 회로에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 651. 본 개시의 실시 예는 스테이트먼트 641에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 장치의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 652. 본 개시의 실시 예는 스테이트먼트 651에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 요청을 수신하고 그리고 상기 장치에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 653. 본 개시의 실시 예는 스테이트먼트 652에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 장치에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 654. 본 개시의 실시 예는 스테이트먼트 651에 따라 상기 복수-기능 장치를 포함하고, 상기 스토리지 장치는 상기 호스트 프로세서에 의한 관리 없이 상기 장치의 상기 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 655. 본 개시의 실시 예는 스테이트먼트 651에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치로부터 응답을 수신하고 그리고 상기 스토리지 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 656. 본 개시의 실시 예는 스테이트먼트 655에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답은 전송하는 것 없이 상기 스토리지 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 657. 본 개시의 실시 예는 스테이트먼트 641에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 상기 스토리지 장치 또는 상기 FHE 회로의 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 658. 본 개시의 실시 예는 스테이트먼트 657에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치로부터 요청을 수신하고 그리고 상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 659. 본 개시의 실시 예는 스테이트먼트 658에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 장치로부터 상기 요청을 수신하고 그리고 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 660. 본 개시의 실시 예는 스테이트먼트 657에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 호스트 프로세서에 의한 관리 없이 상기 스토리지 장치 또는 상기 FHE 회로의 상기 능력을 호출하도록 구성되는 복수-기능 장치.
스테이트먼트 661. 본 개시의 실시 예는 스테이트먼트 657에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 FHE 회로로부터 응답을 수신하고 그리고 상기 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 662. 본 개시의 실시 예는 스테이트먼트 661에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 스토리지 장치 또는 상기 FHE 회로로부터 상기 응답을 수신하고 그리고 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 장치에 상기 응답을 전송하도록 구성되는 복수-기능 장치.
스테이트먼트 663. 본 개시의 실시 예는 스테이트먼트 641에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는:
상기 제3 커넥터 및 상기 제1 커넥터를 연결하는 제1 브릿지; 및
상기 제3 커넥터 및 상기 제2 커넥터를 연결하는 제2 브릿지를 더 포함하는 복수-기능 장치.
스테이트먼트 664. 본 개시의 실시 예는 스테이트먼트 663에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 브릿지는 상기 호스트 프로세서 및 상기 장치 사이의 요청의 패스-쓰루를 지원하는 복수-기능 장치.
스테이트먼트 665. 본 개시의 실시 예는 스테이트먼트 663에 따라 상기 복수-기능 장치를 포함하고, 여기서:
상기 스토리지 장치는 상기 제1 커넥터를 통해 상기 복수-기능 장치에 제1 기능을 노출하도록 구성되고,
상기 FHE 회로는 제2 기능을 노출하도록 구성되고,
상기 장치는 상기 제3 커넥터를 통해 상기 복수-기능 장치에 제3 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 호스트 프로세서에 제4 기능 및 제5 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 장치에 상기 제3 커넥터를 통해 그리고 상기 FHE 회로에 상기 제4 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 제1 커넥터를 통해 상기 스토리지 장치에 그리고 상기 제3 커넥터를 통해 상기 장치에 상기 제5 기능을 노출하도록 구성되고,
상기 복수-기능 장치는 상기 스토리지 장치에 상기 제1 커넥터를 통해 그리고 상기 FHE 회로에 제6 기능을 노출하도록 구성되고,
상기 제1 브릿지는 상기 제1 기능을 사용하는 제2 요청에 상기 제4 기능을 사용하는 제1 요청을 매핑하도록 구성되고, 그리고
상기 제2 브릿지는 상기 제3 기능을 사용하는 제4 요청에 상기 제5 기능을 사용하는 제3 요청을 매핑하도록 구성되는 복수-기능 장치.
스테이트먼트 666. 본 개시의 실시 예는 스테이트먼트 663에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 상기 제1 브릿지, 상기 FHE 회로, 및 상기 제2 브릿지에 연결되는 버퍼를 더 포함하는 복수-기능 장치.
스테이트먼트 667. 본 개시의 실시 예는 스테이트먼트 666에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 브릿지는 상기 장치로부터 전송되는 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
스테이트먼트 668. 본 개시의 실시 예는 스테이트먼트 667에 따라 상기 복수-기능 장치를 포함하고, 상기 장치는 상기 제2 브릿지가 상기 버퍼에 상기 요청을 리다이렉팅하는 것에 대해 불가지론적인 복수-기능 장치.
스테이트먼트 669. 본 개시의 실시 예는 스테이트먼트 667에 따라 상기 복수-기능 장치를 포함하고, 상기 제2 브릿지는 어드레스에 적어도 부분적으로 기초하여 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되고, 상기 요청을 상기 어드레스를 포함하는 복수-기능 장치.
스테이트먼트 670. 본 개시의 실시 예는 스테이트먼트 669에 따라 상기 복수-기능 장치를 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 복수-기능 장치.
스테이트먼트 671. 본 개시의 실시 예는 스테이트먼트 641에 따라 상기 복수-기능 장치를 포함하고, 상기 복수-기능 장치는 장치 구성들의 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 장치를 노출하지 않도록 구성되는 복수-기능 장치.
스테이트먼트 672. 본 개시의 실시 예는 방법을 포함하고, 상기 방법은:
스토리지 장치가 복수-기능 장치에 연결되는지 결정하는 단계;
FHE 회로가 사용가능한지 결정하는 단계
연산 스토리지 유닛이 상기 복수-기능 장치에 연결되는지 결정하는 단계;
상기 복수-기능 장치에 연결되는 호스트 프로세서 상기 스토리지 장치를 노출하는 단계; 및
상기 호스트 프로세서에 상기 FHE 회로 및 상기 연산 스토리지 유닛을 선택적으로 노출하는 단계를 포함하는 방법.
스테이트먼트 673. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 복수-기능 장치는 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 방법.
스테이트먼트 674. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 FHE 회로는 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 방법.
스테이트먼트 675 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 연산 스토리지 유닛은 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 방법.
스테이트먼트 676. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 스토리지 장치는 SSD를 포함하는 방법.
스테이트먼트 677. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 연산 스토리지 유닛은 가속기 회로, 제2 FHE 회로, 또는 네트워크 인터페이스 장치를 포함하는 방법.
스테이트먼트 678. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 FHE 회로가 사용가능한지 결정하는 단계는 상기 FHE 회로가 상기 복수-기능 장치에 연결되는지 결정하는 단계를 포함하는 방법.
스테이트먼트 679. 본 개시의 실시 예는 스테이트먼트 678에 따라 상기 방법을 포함하고, 상기 FHE 회로가 상기 복수-기능 장치에 연결되는지 결정하는 단계는 상기 FHE 회로가 커넥터를 통해 상기 복수-기능 장치에 연결되는지 결정하는 단계를 포함하는 방법.
스테이트먼트 680. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 FHE 회로가 사용가능한지 결정하는 단계는 상기 FHE 회로가 상기 복수-기능 장치 내에 통합되는지 결정하는 단계를 포함하는 방법.
스테이트먼트 681. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 여기서:
상기 스토리지 장치가 상기 복수-기능 장치에 연결되는지 결정하는 단계는 상기 스토리지 장치가 제1 커넥터를 통해 상기 복수-기능 장치에 연결되는지 결정하는 단계를 포함하고, 그리고
상기 연산 스토리지 유닛이 상기 복수-기능 장치에 연결되는지 결정하는 단계는 상기 연산 스토리지 유닛이 제2 커넥터를 통해 상기 복수-기능 장치에 연결되는지 결정하는 단계를 포함하는 방법.
스테이트먼트 682. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 복수-기능 장치에 연결되는 호스트 프로세서에 상기 FHE 회로 또는 상기 연산 스토리지 유닛을 선택적으로 노출하는 단계는:
상기 호스트 프로세서에 상기 FHE 회로를 노출하는 단계; 및
상기 호스트 프로세서에 상기 연산 스토리지 유닛을 노출하지 않는 단계를 포함하는 방법.
스테이트먼트 683. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 복수-기능 장치에 연결되는 호스트 프로세서에 상기 FHE 회로 또는 상기 연산 스토리지 유닛을 선택적으로 노출하는 단계는:
상기 호스트 프로세서에 상기 연산 스토리지 유닛을 회로를 노출하는 단계; 및
상기 호스트 프로세서에 상기 FHE 회로를 노출하지 않는 단계를 포함하는 방법.
스테이트먼트 684. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 방법은:
상기 FHE 회로 또는 상기 연산 스토리지 유닛의 능력을 호출하기 위해 상기 스토리지 장치로부터 상기 복수-기능 장치에서 요청을 수신하는 단계; 및
상기 FHE 회로 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 685. 본 개시의 실시 예는 스테이트먼트 684에 따라 상기 방법을 포함하고, 상기 FHE 회로 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 단계는 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 FHE 회로 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 686. 본 개시의 실시 예는 스테이트먼트 684에 따라 상기 방법을 포함하고, 상기 FHE 회로 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 단계는 상기 호스트 프로세서에 의한 관리 없이 상기 FHE 회로 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 687. 본 개시의 실시 예는 스테이트먼트 684에 따라 상기 방법을 포함하고, 상기 방법은:
상기 FHE 회로 또는 상기 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 응답을 수신하는 단계; 및
상기 스토리지 장치에 상기 응답을 전송하는 단계를 포함하는 방법.
스테이트먼트 688. 본 개시의 실시 예는 스테이트먼트 687에 따라 상기 방법을 포함하고, 상기 스토리지 장치에 상기 응답을 전송하는 단계는 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 스토리지 장치에 상기 응답을 전송하는 단계를 포함하는 방법.
스테이트먼트 689. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 방법은:
상기 스토리지 장치 또는 상기 연산 스토리지 유닛의 능력을 호출하기 위해 상기 FHE 회로로부터 상기 복수-기능 장치에서 요청을 수신하는 단계; 및
상기 스토리지 장치 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 690. 본 개시의 실시 예는 스테이트먼트 689에 따라 상기 방법을 포함하고, 상기 스토리지 장치 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 단계는 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 691. 본 개시의 실시 예는 스테이트먼트 689에 따라 상기 방법을 포함하고, 상기 FHE 회로 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 단계는 상기 호스트 프로세서에 의한 관리 없이 상기 스토리지 장치 또는 연산 스토리지 유닛에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 692. 본 개시의 실시 예는 스테이트먼트 689에 따라 상기 방법을 포함하고, 상기 방법은:
상기 스토리지 장치 또는 상기 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 응답을 수신하는 단계; 및
상기 FHE 회로에 상기 응답을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 693. 본 개시의 실시 예는 스테이트먼트 692에 따라 상기 방법을 포함하고, 상기 FHE 회로에 상기 응답을 전송하는 단계는 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 FHE 회로에 상기 응답을 전송하는 단계를 포함하는 상기 방법.
스테이트먼트 694. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 방법은:
상기 스토리지 장치 또는 상기 FHE 회로의 능력을 호출하기 위해 상기 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 요청을 수신하는 단계; 및
상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 695. 본 개시의 실시 예는 스테이트먼트 694에 따라 상기 방법을 포함하고, 상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하는 단계는 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 696. 본 개시의 실시 예는 스테이트먼트 694에 따라 상기 방법을 포함하고, 상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하는 단계는 상기 호스트 프로세서에 의한 관리 없이 상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 697. 본 개시의 실시 예는 스테이트먼트 694에 따라 상기 방법을 포함하고, 상기 방법은:
상기 스토리지 장치 또는 상기 FHE 회로로부터 상기 복수-기능 장치에서 응답을 수신하는 단계; 및
상기 연산 스토리지 유닛에 상기 응답을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 698. 본 개시의 실시 예는 스테이트먼트 697에 따라 상기 방법을 포함하고, 상기 연산 스토리지 유닛에 상기 응답을 전송하는 단계는 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 연산 스토리지 유닛에 상기 응답을 전송하는 단계를 포함하는 방법.
스테이트먼트 699. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 방법은:
상기 스토리지 장치에 의해 상기 복수-기능 장치 내의 버퍼 내의 데이터를 액세스하는 단계; 및
상기 FHE 회로에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계를 더 포함하는 방법.
스테이트먼트 700. 본 개시의 실시 예는 스테이트먼트 699에 따라 상기 방법을 포함하고, 상기 방법은:
상기 연산 스토리지 유닛에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계를 더 포함하는 방법.
스테이트먼트 701. 본 개시의 실시 예는 스테이트먼트 699에 따라 상기 방법을 포함하고, 여기서:
상기 버퍼는 어드레스 레인지를 포함하고, 그리고
상기 방법은 상기 호스트 프로세서로부터 상기 버퍼의 상기 어드레스 레인지를 결정하는 단계를 더 포함하는 방법.
스테이트먼트 702. 본 개시의 실시 예는 스테이트먼트 699에 따라 상기 방법을 포함하고, 여기서:
상기 스토리지 장치에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계는 제1 프로토콜을 사용하여 상기 스토리지 장치에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계를 포함하고, 그리고
상기 FHE 회로에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계는 제2 프로토콜을 사용하여 상기 FHE 회로에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계를 포함하는 방법.
스테이트먼트 703. 본 개시의 실시 예는 스테이트먼트 702에 따라 상기 방법을 포함하고, 여기서:
상기 제1 프로토콜은 파일 읽기 프로토콜, 파일 쓰기 프로토콜, DMA 프로토콜, 또는 NVMe 프로토콜의 적어도 하나를 포함하고, 그리고
상기 제2 프로토콜은 파일 읽기 프로토콜, 파일 쓰기 프로토콜, DMA 프로토콜, 또는 NVMe 프로토콜의 적어도 하나를 포함하는 방법.
스테이트먼트 704. 본 개시의 실시 예는 스테이트먼트 702에 따라 상기 방법을 포함하고, 상기 방법은 제3 프로토콜을 사용하여 상기 연산 스토리지 유닛에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 단계를 더 포함하는 방법.
스테이트먼트 705. 본 개시의 실시 예는 스테이트먼트 704에 따라 상기 방법을 포함하고, 상기 제3 프로토콜은 파일 읽기 프로토콜, 파일 쓰기 프로토콜, DMA 프로토콜, 또는 NVMe 프로토콜의 적어도 하나를 포함하는 방법.
스테이트먼트 706. 본 개시의 실시 예는 스테이트먼트 699에 따라 상기 방법을 포함하고, 상기 방법은 상기 복수-기능 장치의 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 단계를 더 포함하는 방법.
스테이트먼트 707. 본 개시의 실시 예는 스테이트먼트 706에 따라 상기 방법을 포함하고, 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 단계는 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛의 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 단계를 포함하는 방법.
스테이트먼트 708. 본 개시의 실시 예는 스테이트먼트 707에 따라 상기 방법을 포함하고, 여기서:
상기 방법은:
기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 단계; 및
상기 복수-기능 장치에 의해 상기 기능을 노출하는 단계를 더 포함하고, 그리고
상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛의 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 단계는 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛의 적어도 하나로부터의 요청을 수신하는 단계를 포함하고, 상기 요청을 상기 기능을 트리거하는 방법.
스테이트먼트 709. 본 개시의 실시 예는 스테이트먼트 708에 따라 상기 방법을 포함하고, 상기 기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 단계는 PCIe 기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 단계를 포함하는 방법.
스테이트먼트 710. 본 개시의 실시 예는 스테이트먼트 709에 따라 상기 방법을 포함하고, 상기 PCIe 기능은 제1 PF 또는 제1 VF를 포함하는 방법.
스테이트먼트 711. 본 개시의 실시 예는 스테이트먼트 707에 따라 상기 방법을 포함하고, 여기서:
상기 방법은:
기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 단계; 및
상기 복수-기능 장치에 의해 상기 기능이 노출되는 단계를 더 포함하고, 그리고
상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛의 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 단계는:
상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛의 적어도 하나로부터 상기 요청을 수신하는 단계; 및
상기 데이터 프로세서의 상기 기능을 트리거하는 단계를 포함하고,
상기 요청은 상기 제2 기능을 트리거하는 방법.
스테이트먼트 712. 본 개시의 실시 예는 스테이트먼트 711에 따라 상기 방법을 포함하고, 상기 데이터 프로세서의 상기 기능을 트리거하는 단계는 상기 데이터 프로세서의 상기 기능에 상기 제2 기능을 매핑하는 단계를 포함하는 방법.
스테이트먼트 713. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 방법은:
상기 복수-기능 장치의 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 요청을 수신하는 단계; 및
상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 상기 브릿지를 통해 상기 요청을 전달하는 단계를 더 포함하는 방법.
스테이트먼트 714. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 방법은:
상기 복수-기능 장치의 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 요청을 수신하는 단계; 및
상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 의해 노출되는 상기 기능에 적어도 부분적으로 기초하여 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 상기 브릿지로부터 상기 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 715. 본 개시의 실시 예는 스테이트먼트 714에 따라 상기 방법을 포함하고, 상기 복수-기능 장치에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 상기 요청을 수신하는 단계는:
상기 복수-기능 장치에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 상기 요청을 수신하는 단계; 및
상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 적어도 부분적으로 기초하여 상기 브릿지에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 716. 본 개시의 실시 예는 스테이트먼트 714에 따라 상기 방법을 포함하고, 여기서:
상기 복수-기능 장치의 상기 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 상기 요청을 수신하는 단계에서, 상기 요청은 상기 복수-기능 장치에 의해 노출되는 제2 기능을 트리거하고,
상기 방법은 상기 스토리지 장치, 상기 FHE 회로, 또는 연산 스토리지 유닛에 의해 노출되는 상기 기능에 상기 제2 기능을 매핑하는 단계; 및
상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 의해 노출되는 상기 기능에 적어도 부분적으로 기초하여 상기 스토리지 장치, 상기 FHE 회로, 상기 연산 스토리지 유닛에 상기 브릿지로부터 상기 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 717. 본 개시의 실시 예는 스테이트먼트 716에 따라 상기 방법을 포함하고, 상기 복수-기능 장치에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 상기 요청을 수신하는 단계는:
상기 복수-기능 장치에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 상기 요청을 수신하는 단계; 및
상기 복수-기능 장치에 의해 노출되는 상기 제2 기능에 적어도 부분적으로 기초하여 상기 브릿지에 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 718. 본 개시의 실시 예는 스테이트먼트 714에 따라 상기 방법을 포함하고, 상기 복수-기능 장치는 상기 호스트 프로세서에 상기 기능을 노출하지 않는 방법.
스테이트먼트 719. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 방법은:
상기 복수-기능 장치의 브릿지에서 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 요청을 수신하는 단계; 및
상기 복수-기능 장치의 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 단계를 더 포함하는 방법.
스테이트먼트 720. 본 개시의 실시 예는 스테이트먼트 719에 따라 상기 방법을 포함하고, 상기 요청은 상기 호스트 프로세서에 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 전송되는 방법.
스테이트먼트 721. 본 개시의 실시 예는 스테이트먼트 719에 따라 상기 방법을 포함하고, 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 단계는 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 알리는 것 없이 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 단계를 포함하는 방법.
스테이트먼트 722. 본 개시의 실시 예는 스테이트먼트 719에 따라 상기 방법을 포함하고, 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 단계는 어드레스에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 단계를 포함하고, 상기 요청은 상기 어드레스를 포함하는 방법.
스테이트먼트 723. 본 개시의 실시 예는 스테이트먼트 722에 따라 상기 방법을 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 방법.
스테이트먼트 724. 본 개시의 실시 예는 스테이트먼트 723에 따라 상기 방법을 포함하고, 상기 방법은 상기 호스트 프로세서로부터 상기 버퍼를 위한 상기 어드레스 레인지를 수신하는 단계를 더 포함하는 방법.
스테이트먼트 725. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 여기서:
상기 복수-기능 장치에 연결되는 상기 호스트 프로세서 상기 스토리지 장치를 노출하는 단계는 장치 구성들의 목록에 적어도 부분적으로 기초하여 상기 복수-기능 장치에 연결되는 상기 호스트 프로세서 상기 스토리지 장치를 노출하는 단계를 포함하고, 그리고
상기 호스트 프로세서에 상기 FHE 회로 및 상기 연산 스토리지 유닛을 선택적으로 노출하는 단계는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 FHE 회로 및 상기 연산 스토리지 유닛을 선택적으로 노출하는 단계를 포함하는 방법.
스테이트먼트 726. 본 개시의 실시 예는 스테이트먼트 725에 따라 상기 방법을 포함하고, 상기 방법은 상기 복수-기능 장치의 스토리지로부터 장치 구성들의 상기 목록을 액세스하는 단계를 더 포함하는 방법.
스테이트먼트 727. 본 개시의 실시 예는 스테이트먼트 726에 따라 상기 방법을 포함하고, 상기 복수-기능 장치의 상기 스토리지로부터 장치 구성들의 상기 목록을 액세스하는 단계는 상기 복수-기능 장치의 영구적인 스토리지로부터 장치 구성들의 상기 목록을 액세스하는 단계를 포함하는 방법.
스테이트먼트 728. 본 개시의 실시 예는 스테이트먼트 725에 따라 상기 방법을 포함하고, 상기 방법은:
장치가 상기 복수-기능 장치에 연결되는지 결정하는 단계;
상기 장치의 구성을 결정하는 단계; 및
상기 장치의 상기 목록에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하는 단계를 더 포함하는 방법.
스테이트먼트 729. 본 개시의 실시 예는 스테이트먼트 728에 따라 상기 방법을 포함하고, 상기 장치는 제2 스토리지 장치, 제2 연산 스토리지 유닛, 제2 FHE 회로, 또는 네트워크 인터페이스 장치를 포함하는 방법.
스테이트먼트 730. 본 개시의 실시 예는 스테이트먼트 728에 따라 상기 방법을 포함하고, 상기 장치의 상기 구성에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하는 단계는 장치 구성들의 상기 목록이 상기 장치의 상기 구성을 생략하는지 결정하는 단계를 포함하는 방법.
스테이트먼트 731. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 방법은 장치와 상기 스토리지 장치를 대체하는 단계를 더 포함하는 방법.
스테이트먼트 732. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 방법은 장치와 상기 연산 스토리지 유닛을 대체하는 단계를 더 포함하는 방법.
스테이트먼트 733. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 방법은 장치와 상기 연산 스토리지 유닛을 대체하는 단계를 더 포함하는 방법.
스테이트먼트 734. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 스토리지 장치와 통신하는 방법.
스테이트먼트 735. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 FHE 회로와 통신하는 방법.
스테이트먼트 736. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 연산 스토리지 유닛과 통신하는 방법.
스테이트먼트 737. 본 개시의 실시 예는 스테이트먼트 672에 따라 상기 방법을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 호스트 프로세서와 통신하는 방법.
스테이트먼트 738. 본 개시의 실시 예는 아티클을 포함하고, 상기 아티클은 비-일시적인 스토리지 매체를 저장하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 명령어들을 포함하고 상기 명령어들은, 기계에 의해 실행되면:
스토리지 장치가 복수-기능 장치에 연결되는지 결정하는 것;
FHE 회로가 사용가능한지 결정하는 것;
연산 스토리지 유닛이 상기 복수-기능 장치에 연결되는지 결정하는 것;
상기 복수-기능 장치에 연결되는 호스트 프로세서에 상기 스토리지 장치를 노출하는 것; 그리고
상기 호스트 프로세서에 상기 FHE 회로 및 상기 연산 스토리지 유닛을 선택적으로 노출하는 것을 초래하는 아티클.
스테이트먼트 739. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치는 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 아티클.
스테이트먼트 740. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 FHE 회로는 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 아티클.
스테이트먼트 741. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 연산 스토리지 유닛은 FPGA, ASIC, SoC, GPU, GPGPU, CPU, TPU, 또는 NPU의 적어도 하나를 사용하여 구현되는 아티클.
스테이트먼트 742. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 스토리지 장치는 SSD를 포함하는 아티클.
스테이트먼트 743. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 연산 스토리지 유닛은 가속기 회로, 제2 FHE 회로, 또는 네트워크 인터페이스 장치를 포함하는 아티클.
스테이트먼트 744. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 FHE 회로가 사용가능한지 결정하는 것은 상기 FHE 회로가 상기 복수-기능 장치에 연결되는지 결정하는 것을 포함하는 아티클.
스테이트먼트 745. 본 개시의 실시 예는 스테이트먼트 744에 따라 상기 아티클을 포함하고, 상기 FHE 회로가 상기 복수-기능 장치에 연결되는지 결정하는 것은 상기 FHE 회로가 커넥터를 통해 상기 복수-기능 장치에 연결되는지 결정하는 것을 포함하는 아티클.
스테이트먼트 746. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 FHE 회로가 사용가능한지 결정하는 것은 상기 FHE 회로가 상기 복수-기능 장치 내에 통합되는지 결정하는 것을 포함하는 아티클.
스테이트먼트 747. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 여기서:
상기 스토리지 장치가 상기 복수-기능 장치에 연결되는지 결정하는 것은 상기 스토리지 장치가 제1 커넥터를 통해 상기 복수-기능 장치에 연결되는지 결정하는 것을 포함하고, 그리고
상기 연산 스토리지 유닛이 상기 복수-기능 장치에 연결되는지 결정하는 것은 상기 연산 스토리지 유닛이 제2 커넥터를 통해 상기 복수-기능 장치에 연결되는지 결정하는 것을 포함하는 아티클.
스테이트먼트 748. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치에 연결되는 호스트 프로세서에 상기 FHE 회로 또는 상기 연산 스토리지 유닛을 선택적으로 노출하는 것은:
상기 호스트 프로세서에 상기 FHE 회로를 노출하는 것; 및
상기 호스트 프로세서에 상기 연산 스토리지 유닛을 노출하지 않는 것을 포함하는 아티클.
스테이트먼트 749. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치에 연결되는 호스트 프로세서에 상기 FHE 회로 또는 상기 연산 스토리지 유닛을 선택적으로 노출하는 것은:
상기 호스트 프로세서에 상기 연산 스토리지 유닛을 노출하는 것; 및
상기 호스트 프로세서에 상기 FHE 회로를 노출하지 않는 것을 포함하는 아티클.
스테이트먼트 750. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 FHE 회로 또는 상기 연산 스토리지 유닛의 능력을 호출하기 위해 상기 스토리지 장치로부터 상기 복수-기능 장치에서 요청을 수신하는 것; 및
상기 FHE 회로 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 것을 초래하는 아티클.
스테이트먼트 751. 본 개시의 실시 예는 스테이트먼트 750에 따라 상기 아티클을 포함하고, 상기 FHE 회로 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 것은 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 FHE 회로 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 752. 본 개시의 실시 예는 스테이트먼트 750에 따라 상기 아티클을 포함하고, 상기 FHE 회로 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 것은 상기 호스트 프로세서에 의한 관리 없이 상기 FHE 회로 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 753. 본 개시의 실시 예는 스테이트먼트 750에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 FHE 회로 또는 상기 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 응답을 수신하는 것; 그리고
상기 스토리지 장치에 상기 응답을 전송하는 것을 초래하는 아티클.
스테이트먼트 754. 본 개시의 실시 예는 스테이트먼트 753에 따라 상기 아티클을 포함하고, 상기 스토리지 장치에 상기 응답을 전송하는 것은 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 스토리지 장치에 상기 응답을 전송하는 것을 포함하는 아티클.
스테이트먼트 755. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 스토리지 장치 또는 상기 연산 스토리지 유닛의 능력을 호출하기 위해 상기 FHE 회로로부터 상기 복수-기능 장치에서 요청을 수신하는 것; 그리고
상기 스토리지 장치 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 것을 초래하는 아티클.
스테이트먼트 756. 본 개시의 실시 예는 스테이트먼트 750에 따라 상기 아티클을 포함하고, 상기 스토리지 장치 또는 상기 연산 스토리지 장치에 상기 요청을 전송하는 것은 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 757. 본 개시의 실시 예는 스테이트먼트 755에 따라 상기 아티클을 포함하고, 상기 스토리지 장치 또는 상기 연산 스토리지 장치에 상기 요청을 전송하는 것은 상기 호스트 프로세서에 의한 관리 없이 상기 스토리지 장치 또는 상기 연산 스토리지 유닛에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 758. 본 개시의 실시 예는 스테이트먼트 755에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 스토리지 장치 또는 상기 연산 스토리지 유닛으로부터 상기 복수-기능 장치에서 응답을 수신하는 것; 그리고
상기 FHE 회로에 상기 응답을 전송하는 것을 초래하는 아티클.
스테이트먼트 759. 본 개시의 실시 예는 스테이트먼트 758에 따라 상기 아티클을 포함하고, 상기 FHE 회로에 상기 응답을 전송하는 것은 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 FHE 회로에 상기 응답을 전송하는 것을 포함하는 아티클.
스테이트먼트 760. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 스토리지 장치 또는 상기 FHE 회로의 능력을 호출하기 위해 상기 연산 스토리지 유닛으로부터 상기 복수-기능 장치에 요청을 수신하는 것; 그리고
상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하는 것을 초래하는 아티클.
스테이트먼트 761. 본 개시의 실시 예는 스테이트먼트 760에 따라 상기 아티클을 포함하고, 상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하는 것은 상기 호스트 프로세서에 상기 요청을 전송하는 것 없이 상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 762. 본 개시의 실시 예는 스테이트먼트 760에 따라 상기 아티클을 포함하고, 상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하는 것은 상기 호스트 프로세서에 의한 관리 없이 상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 763. 본 개시의 실시 예는 스테이트먼트 760에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 스토리지 장치 또는 상기 FHE 회로로부터 상기 복수-기능 장치에서 응답을 수신하는 것; 그리고
상기 연산 스토리지 유닛에 상기 응답을 전송하는 것을 초래하는 아티클.
스테이트먼트 764. 본 개시의 실시 예는 스테이트먼트 763에 따라 상기 아티클을 포함하고, 상기 연산 스토리지 유닛에 상기 응답을 전송하는 것은 상기 호스트 프로세서에 상기 응답을 전송하는 것 없이 상기 연산 스토리지 유닛에 상기 응답을 전송하는 것을 포함하는 아티클.
스테이트먼트 765. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 스토리지 장치에 의해 상기 복수-기능 장치 내의 버퍼 내의 데이터를 액세스하는 것; 그리고
상기 FHE 회로에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 것을 초래하는 아티클.
스테이트먼트 766. 본 개시의 실시 예는 스테이트먼트 765에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 연산 스토리지 유닛에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 것을 초래하는 아티클.
스테이트먼트 767. 본 개시의 실시 예는 스테이트먼트 765에 따라 상기 아티클을 포함하고, 여기서:
상기 버퍼는 어드레스 레인지를 포함하고, 그리고
상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 호스트 프로세서로부터 상기 버퍼의 상기 어드레스 레인지를 결정하는 것을 초래하는 아티클.
스테이트먼트 768. 본 개시의 실시 예는 스테이트먼트 765에 따라 상기 아티클을 포함하고, 여기서:
상기 스토리지 장치에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 것은 제1 프로토콜을 사용하여 상기 스토리지 장치에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 것을 포함하고, 그리고
상기 FHE 회로에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 것은 제2 프로토콜을 사용하여 상기 FHE 회로에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 것을 포함하는 아티클.
스테이트먼트 769. 본 개시의 실시 예는 스테이트먼트 768에 따라 상기 아티클을 포함하고, 여기서:
상기 제1 프로토콜은 파일 읽기 프로토콜, 파일 쓰기 프로토콜, DMA 프로토콜, 또는 NVMe 프로토콜의 적어도 하나를 포함하고, 그리고
상기 제2 프로토콜은 상기 파일 읽기 프로토콜, 상기 파일 쓰기 프로토콜, 상기 DMA 프로토콜, 또는 상기 NVMe 프로토콜의 적어도 하나를 포함하는 아티클.
스테이트먼트 770. 본 개시의 실시 예는 스테이트먼트 768에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 제3 프로토콜을 사용하여 상기 연산 스토리지 유닛에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터를 액세스하는 것을 초래하는 아티클.
스테이트먼트 771. 본 개시의 실시 예는 스테이트먼트 770에 따라 상기 아티클을 포함하고, 상기 제3 프로토콜은 상기 파일 읽기 프로토콜, 상기 파일 쓰기 프로토콜, 상기 DMA 프로토콜, 또는 상기 NVMe 프로토콜의 적어도 하나를 포함하는 아티클.
스테이트먼트 772. 본 개시의 실시 예는 스테이트먼트 765에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 복수-기능 장치의 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 아티클.
스테이트먼트 773. 본 개시의 실시 예는 스테이트먼트 772에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 것은 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛의 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 것을 포함하는 아티클.
스테이트먼트 774. 본 개시의 실시 예는 스테이트먼트 773에 따라 상기 아티클을 포함하고, 여기서:
상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 것; 그리고
상기 복수-기능 장치에 의해 상기 기능을 노출하는 것을 초래하고, 그리고
상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛의 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 것은 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛의 적어도 하나로부터 상기 요청을 수신하는 것을 포함하고, 상기 요청은 상기 기능을 트리거하는 아티클.
스테이트먼트 775. 본 개시의 실시 예는 스테이트먼트 774에 따라 상기 아티클을 포함하고, 상기 기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 것은 PCIe 기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 것을 포함하는 아티클.
스테이트먼트 776. 본 개시의 실시 예는 스테이트먼트 775에 따라 상기 아티클을 포함하고, 상기 PCIe 기능이 제1 PF 또는 제1 VF를 포함하는 아티클.
스테이트먼트 777. 본 개시의 실시 예는 스테이트먼트 773에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
기능이 상기 데이터 프로세서에 의해 노출되는지 결정하는 것; 그리고
상기 복수-기능 장치에 의해 상기 기능을 노출하는 것을 초래하고, 그리고
상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛의 하나로부터의 요청에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 것은:
상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛의 적어도 하나로부터 상기 요청을 수신하는 것; 및
상기 데이터 프로세서의 상기 기능을 트리거하는 것을 포함하고,
상기 요청은 상기 제2 기능을 트리거하는 아티클.
스테이트먼트 778. 본 개시의 실시 예는 스테이트먼트 777에 따라 상기 아티클을 포함하고, 상기 데이터 프로세서의 상기 기능을 트리거하는 것은 상기 데이터 프로세서의 상기 기능에 상기 제2 기능을 매핑하는 것을 포함하는 아티클.
스테이트먼트 779. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 복수-기능 장치의 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 요청을 수신하는 것; 그리고
상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 상기 브릿지를 통해 상기 요청을 전달하는 것을 초래하는 아티클.
스테이트먼트 780. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 복수-기능 장치의 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 요청을 수신하는 것; 그리고
상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 의해 노출되는 상기 기능에 적어도 부분적으로 기초하여 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 상기 브릿지로부터 상기 요청을 전송하는 것을 초래하고,
상기 요청은 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 의해 노출되는 기능을 트리거하는 아티클.
스테이트먼트 781. 본 개시의 실시 예는 스테이트먼트 780에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치의 상기 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 상기 요청을 수신하는 것은:
상기 복수-기능 장치에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 상기 요청을 수신하는 것; 및
상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 노출되는 상기 기능에 적어도 부분적으로 기초하여 상기 브릿지에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 782. 본 개시의 실시 예는 스테이트먼트 780에 따라 상기 아티클을 포함하고, 여기서:
상기 복수-기능 장치의 상기 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 상기 요청을 수신하는 것에서, 상기 요청은 상기 복수-기능 장치에 의해 노출되는 제2 기능을 트리거하고,
상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 의해 노출되는 상기 기능에 상기 제2 기능을 매핑하는 것; 그리고
상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 의해 노출되는 상기 기능에 적어도 부분적으로 기초하여 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 상기 브릿지로부터 상기 요청을 전송하는 것을 초래하는 아티클.
스테이트먼트 783. 본 개시의 실시 예는 스테이트먼트 782에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치의 상기 브릿지에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 상기 요청을 수신하는 것은:
상기 복수-기능 장치에서 상기 호스트 프로세서, 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 상기 요청을 수신하는 것; 및
상기 복수-기능 장치에 의해 노출되는 상기 제2 기능에 적어도 부분적으로 기초하여 상기 브릿지에 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 784. 본 개시의 실시 예는 스테이트먼트 780에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치는 상기 호스트 프로세서에 상기 기능을 노출하지 않는 아티클.
스테이트먼트 785. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
상기 복수-기능 장치의 브릿지에서 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 요청을 수신하는 것; 그리고
상기 복수-기능 장치의 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 것을 초래하는 아티클.
스테이트먼트 786. 본 개시의 실시 예는 스테이트먼트 785에 따라 상기 아티클을 포함하고, 상기 요청은 상기 호스트 프로세서에 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛으로부터 전송되는 아티클.
스테이트먼트 787. 본 개시의 실시 예는 스테이트먼트 785에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 것은 상기 스토리지 장치, 상기 FHE 회로, 또는 상기 연산 스토리지 유닛에 알리는 것 없이 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 것을 포함하는 아티클.
스테이트먼트 788. 본 개시의 실시 예는 스테이트먼트 785에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 것은 어드레스에 적어도 부분적으로 기초하여 상기 복수-기능 장치의 상기 버퍼에 상기 브릿지로부터 상기 요청을 전송하는 것을 포함하고, 상기 요청을 상기 어드레스를 포함하는 아티클.
스테이트먼트 789. 본 개시의 실시 예는 스테이트먼트 788에 따라 상기 아티클을 포함하고, 상기 버퍼는 상기 어드레스를 포함하는 어드레스 레인지를 포함하는 아티클.
스테이트먼트 790. 본 개시의 실시 예는 스테이트먼트 789에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 호스트 프로세서로부터 상기 버퍼를 위한 상기 어드레스를 수신하는 것을 초래하는 아티클.
스테이트먼트 791. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 여기서:
상기 복수-기능 장치에 연결되는 상기 호스트 프로세서에 상기 스토리지 장치를 노출하는 것은 장치 구성들의 목록에 적어도 부분적으로 기초하여 상기 복수-기능 장치에 연결되는 상기 호스트 프로세서에 상기 스토리지 장치를 노출하는 것을 포함하고, 그리고
상기 호스트 프로세서에 상기 FHE 회로 및 상기 연산 스토리지 유닛을 선택적으로 노출하는 것은 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 FHE 회로 및 상기 연산 스토리지 유닛을 선택적으로 노출하는 것을 포함하는 아티클.
스테이트먼트 792. 본 개시의 실시 예는 스테이트먼트 791에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 상기 복수-기능 장치의 스토리지로부터 장치 구성들의 상기 목록을 액세스하는 것을 초래하는 아티클.
스테이트먼트 793. 본 개시의 실시 예는 스테이트먼트 792에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치의 상기 스토리지로부터 장치 구성들의 상기 목록을 액세스하는 것은 상기 복수-기능 장치의 영구적인 스토리지로부터 장치 구성들의 상기 목록을 액세스하는 것을 포함하는 아티클.
스테이트먼트 794. 본 개시의 실시 예는 스테이트먼트 791에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면:
장치가 상기 복수-기능 장치에 연결되는지 결정하는 것;
상기 장치의 구성을 결정하는 것; 그리고
상기 장치의 상기 구성에 적어도 부분적으로 기초하여 장치 구성들의 상기 목록을 업데이트하는 것을 초래하는 아티클.
스테이트먼트 795. 본 개시의 실시 예는 스테이트먼트 794에 따라 상기 아티클을 포함하고, 상기 장치는 제2 스토리지 장치, 제2 연산 스토리지 유닛, 제2 FHE 회로, 또는 네트워크 인터페이스 장치를 포함하는 아티클.
스테이트먼트 796. 본 개시의 실시 예는 스테이트먼트 794에 따라 상기 아티클을 포함하고, 장치 구성들의 상기 목록을 업데이트하는 것은 장치 구성들의 상기 목록이 상기 장치의 상기 구성을 생략하는지 결정하는 것을 포함하는 아티클.
스테이트먼트 797. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 장치와 상기 스토리지 장치를 대체하는 것을 초래하는 아티클.
스테이트먼트 798. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 장치와 상기 FHE 회로를 대체하는 것을 초래하는 아티클.
스테이트먼트 799. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 비-일시적인 스토리지 매체는 그 안에 저장된 추가 명령어들을 포함하고, 상기 추가 명령어들은, 상기 기계에 의해 실행되면, 장치와 상기 연산 스토리지 유닛을 대체하는 것을 초래하는 아티클.
스테이트먼트 800. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 스토리지 장치와 통신하는 아티클.
스테이트먼트 801. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 FHE 회로와 통신하는 아티클.
스테이트먼트 802. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 연산 스토리지 유닛과 통신하는 아티클.
스테이트먼트 803. 본 개시의 실시 예는 스테이트먼트 738에 따라 상기 아티클을 포함하고, 상기 복수-기능 장치는 이더넷 프로토콜, TCP/IP 프로토콜, RDMA 프로토콜, NVMe 프로토콜, NVMe-oF 프로토콜, UFS 프로토콜, eMMC 프로토콜, SCSI 프로토콜, 또는 SATA 프로토콜의 적어도 하나를 사용하여 상기 호스트 프로세서와 통신하는 아티클.
결과적으로, 본 개시에서 설명되는 실시 예들에 대한 넓은 다양성의 치환들의 관점에서, 이 상세한 설명 및 수반되는 것은 단지 예시적인 것으로 의도되고, 그리고 본 개시의 범위를 제한하는 것으로써 간주되어서는 안 된다. 본 개시로서 청구되는 것은, 따라서, 후술되는 청구항들 및 균등 물들의 범위 및 사상 내에 올 수 있는 모든 그러한 수정들이다.

Claims (20)

  1. 복수-기능 장치(multi-function device)에 있어서, 상기 복수-기능 장치는:
    스토리지 장치와 통신하는 것을 위한 제1 커넥터;
    FHE(Fully Homomorphic Encryption) 회로와 통신하는 것을 위한 제2 커넥터; 및
    호스트 프로세서와 통신하는 것을 위한 제3 커넥터를 포함하되,
    상기 복수-기능 장치는 상기 제3 커넥터를 통해 상기 호스트 프로세서에 상기 스토리지 장치를 노출하도록 구성되는 복수-기능 장치.
  2. 제 1 항에 있어서,
    상기 스토리지 장치는 상기 FHE 회로의 능력을 호출하도록 구성되는 복수-기능 장치.
  3. 제 1 항에 있어서,
    상기 복수-기능 장치는 상기 스토리지 장치 및 상기 FHE 회로에 연결되는 버퍼를 더 포함하고, 상기 스토리지 장치 및 상기 FHE 회로는 상기 버퍼 내의 데이터에 액세스하도록 구성되는 복수-기능 장치.
  4. 제 3 항에 있어서,
    상기 복수-기능 장치는 데이터 프로세서를 더 포함하고, 상기 데이터 프로세서는 상기 버퍼 내의 데이터를 처리하도록 구성되고,
    상기 버퍼는 상기 스토리지 장치, 상기 FHE 회로, 및 상기 데이터 프로세서에 연결되는 복수-기능 장치.
  5. 제 3 항에 있어서,
    상기 복수-기능 장치는:
    상기 제3 커넥터 및 상기 제1 커넥터를 연결하는 제1 브릿지; 및
    상기 제3 커넥터 및 상기 제2 커넥터를 연결하는 제2 브릿지를 더 포함하고,
    상기 버퍼는 상기 제1 브릿지 및 상기 제2 브릿지에 연결되고, 그리고
    상기 제1 브릿지 또는 상기 제2 브릿지는 상기 스토리지 장치 또는 상기 FHE 회로로부터 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
  6. 제 1 항에 있어서,
    상기 복수-기능 장치는:
    장치 구성들의 목록을 위한 스토리지를 더 포함하고,
    상기 복수-기능 장치는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 FHE 회로를 선택적으로 노출하도록 구성되는 복수-기능 장치.
  7. 제 6 항에 있어서,
    상기 복수-기능 장치는 상기 제2 커넥터에 연결되는 장치를 감지하고, 상기 장치의 구성을 결정하고, 그리고 상기 장치의 상기 구성에 적어도 부분적으로 기초하여 상기 장치 구성들의 상기 목록을 업데이트하도록 구성되는 복수-기능 장치.
  8. 제 1 항에 있어서,
    장치와 통신하는 것을 위한 제4 커넥터를 더 포함하는 복수-기능 장치.
  9. 복수-기능 장치(multi-function device)에 있어서, 상기 복수-기능 장치는:
    스토리지 장치와 통신하는 것을 위한 제1 커넥터;
    상기 복수-기능 장치와 결합되는 FHE(Fully Homomorphic Encryption) 회로; 및
    호스트 프로세서와 통신하는 것을 위한 제2 커넥터를 포함하되,
    상기 복수-기능 장치는 상기 제2 커넥터를 통해 상기 호스트 프로세서에 상기 스토리지 장치를 노출하도록 구성되는 복수-기능 장치.
  10. 제 9 항에 있어서,
    상기 스토리지 장치 또는 상기 FHE 회로는 상기 스토리지 장치 또는 상기 FHE 회로의 능력을 호출하도록 구성되는 복수-기능 장치.
  11. 제 9 항에 있어서,
    상기 스토리지 장치 및 상기 FHE 회로에 연결되는 버퍼를 더 포함하는 복수-기능 장치.
  12. 제 11 항에 있어서,
    상기 스토리지 장치 및 상기 FHE 회로는 상기 버퍼 내의 데이터에 액세스하도록 구성되는 복수-기능 장치.
  13. 제 11 항에 있어서,
    상기 복수-기능 장치는:
    데이터 프로세서를 더 포함하고,
    상기 데이터 프로세서는 상기 버퍼 내의 데이터를 처리하도록 구성되고,
    상기 버퍼는 상기 스토리지 장치, 상기 FHE 회로, 및 상기 데이터 프로세서에 연결되는 복수-기능 장치.
  14. 제 11 항에 있어서,
    상기 복수-기능 장치는 상기 제2 커넥터 및 상기 제1 커넥터를 연결하는 제1 브릿지를 더 포함하고,
    상기 버퍼는 상기 제1 브릿지 및 상기 FHE 회로에 연결되고, 그리고
    상기 제1 브릿지는 상기 스토리지 장치로부터 요청을 수신하고 그리고 상기 버퍼에 상기 요청을 다이렉팅하도록 구성되는 복수-기능 장치.
  15. 스토리지 장치가 복수-기능 장치(multi-function device)에 연결되는지 결정하는 단계;
    FHE(Fully Homomorphic Encryption) 회로가 상기 복수-기능 장치와 통신하는지 결정하는 단계;
    상기 복수-기능 장치에 연결되는 호스트 프로세서에 상기 스토리지 장치를 노출하는 단계; 및
    상기 호스트 프로세서에 상기 FHE 회로를 선택적으로 노출하는 단계를 포함하는 방법.
  16. 제 15 항에 있어서,
    상기 FHE 회로가 상기 복수-기능 장치와 통신하는지 결정하는 단계는 상기 FHE 회로가 상기 복수-기능 장치에 연결되는지 결정하는 단계를 포함하는 방법.
  17. 제 15 항에 있어서,
    상기 FHE 회로가 상기 복수-기능 장치와 통신하는지 결정하는 단계는 상기 FHE 회로가 상기 복수-기능 장치 내에 결합되는지 결정하는 단계를 포함하는 방법.
  18. 제 15 항에 있어서,
    상기 스토리지 장치 또는 상기 FHE 회로의 능력을 호출하기 위해 상기 스토리지 장치 또는 상기 FHE 회로로부터 상기 복수-기능 장치에서 요청을 수신하는 단계; 및
    상기 스토리지 장치 또는 상기 FHE 회로에 상기 요청을 전송하는 단계를 더 포함하는 방법.
  19. 제 15 항에 있어서,
    상기 스토리지 장치에 의해 상기 복수-기능 장치 내의 버퍼 내의 데이터에 액세스하는 단계;
    상기 복수-기능 장치의 제1 브릿지에서 상기 스토리지 장치로부터 요청을 수신하는 단계;
    상기 복수-기능 장치의 상기 버퍼에 상기 제1 브릿지로부터 상기 요청을 전송하는 단계;
    상기 FHE 회로에 의해 상기 복수-기능 장치 내의 상기 버퍼 내의 상기 데이터에 액세스하는 단계;
    상기 복수-기능 장치의 제2 브릿지에서 상기 FHE 회로로부터 요청을 수신하는 단계;
    상기 복수-기능 장치의 버퍼에 상기 제2 브릿지로부터 상기 요청을 전송하는 단계; 및
    상기 복수-기능 장치의 데이터 프로세서를 사용하여 상기 버퍼 내의 상기 데이터를 처리하는 단계를 더 포함하는 방법.
  20. 제 15 항에 있어서,
    상기 복수-기능 장치에 연결되는 상기 호스트 프로세서에 상기 스토리지 장치를 노출하는 단계는 장치 구성들의 목록에 적어도 부분적으로 기초하여 상기 복수-기능 장치에 연결되는 상기 호스트 프로세서에 상기 스토리지 장치를 노출하는 단계를 포함하고,
    상기 호스트 프로세서에 상기 FHE 회로를 선택적으로 노출하는 단계는 장치 구성들의 상기 목록에 적어도 부분적으로 기초하여 상기 호스트 프로세서에 상기 FHE 회로를 선택적으로 노출하는 단계를 포함하고, 그리고
    상기 방법은:
    장치가 상기 복수-기능 장치에 연결되는지 결정하는 단계;
    상기 장치의 구성을 결정하는 단계; 및
    상기 장치의 상기 구성에 적어도 부분적으로 기초하여 상기 장치 구성들의 상기 목록을 업데이트하는 단계를 더 포함하는 방법.
KR1020230116417A 2022-09-02 2023-09-01 완전 동형 암호를 스토리지 장치와 통합하기 위한 시스템들 및 방법들 KR20240032680A (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US202263403682P 2022-09-02 2022-09-02
US202263403679P 2022-09-02 2022-09-02
US63/403,682 2022-09-02
US63/403,679 2022-09-02
US18/074,360 2022-12-02
US18/074,360 US20230195372A1 (en) 2021-12-21 2022-12-02 Systems, methods, and devices for content distribution using storage device with network interface
US18/108,578 2023-02-10
US18/108,578 US20230198740A1 (en) 2021-12-21 2023-02-10 Systems and methods for integrating fully homomorphic encryption (fhe) with a storage device

Publications (1)

Publication Number Publication Date
KR20240032680A true KR20240032680A (ko) 2024-03-12

Family

ID=87514270

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230116417A KR20240032680A (ko) 2022-09-02 2023-09-01 완전 동형 암호를 스토리지 장치와 통합하기 위한 시스템들 및 방법들

Country Status (3)

Country Link
EP (1) EP4332748A1 (ko)
KR (1) KR20240032680A (ko)
TW (1) TW202411867A (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9608936B1 (en) * 2014-07-03 2017-03-28 Sanmina Corporation Network system with offload services for flash storage
KR20220009643A (ko) * 2020-07-16 2022-01-25 삼성전자주식회사 스토리지 컨트롤러, 이를 포함하는 클라이언트 및 서버, 및 이의 동작 방법
US20210117242A1 (en) * 2020-10-03 2021-04-22 Intel Corporation Infrastructure processing unit

Also Published As

Publication number Publication date
TW202411867A (zh) 2024-03-16
EP4332748A1 (en) 2024-03-06

Similar Documents

Publication Publication Date Title
JP7252789B2 (ja) Ssdに対するfpgaベースのアクセラレーションモジュール及びシステムとその動作方法
US10216419B2 (en) Direct interface between graphics processing unit and data storage unit
US9696942B2 (en) Accessing remote storage devices using a local bus protocol
US9727503B2 (en) Storage system and server
JP2020064634A (ja) ホスト及びストレージサービスの動作方法並びにNVMeSSD
KR20170095607A (ko) 컴퓨팅 디바이스, 코프로세서와 비휘발성 메모리 사이의 데이터 이동 방법 및 이를 포함하는 프로그램
CN111143234A (zh) 存储设备、包括这种存储设备的系统及其操作方法
US20220066799A1 (en) Mechanism to discover computational storage functions and devices
US11513977B2 (en) Pipelined data processing in fabric-enabled computational storage
KR20230013630A (ko) 근거리 데이터 처리를 통한 인메모리 데이터베이스 가속화
KR20220048460A (ko) 가상화 및 계층 메모리가 있는 가속기를 위한 시스템, 방법, 및 장치
US11029847B2 (en) Method and system for shared direct access storage
US11995351B2 (en) DMA engines configured to perform first portion data transfer commands with a first DMA engine and second portion data transfer commands with second DMA engine
US20230198740A1 (en) Systems and methods for integrating fully homomorphic encryption (fhe) with a storage device
US20230195320A1 (en) Systems and methods for integrating a compute resource with a storage device
TW202341347A (zh) 多功能裝置、操作其的方法及用於其的物品
KR20240032680A (ko) 완전 동형 암호를 스토리지 장치와 통합하기 위한 시스템들 및 방법들
KR20240032681A (ko) 컴퓨팅 리소스를 스토리지 장치와 통합하기 위한 시스템들 및 방법들
KR20230117692A (ko) 하이브리드 데이터베이스 가속 장치, 시스템 및 방법
CN117648203A (zh) 多功能装置和用于多功能装置的方法
CN117648052A (zh) 多功能装置和用于多功能装置的方法
US11989142B2 (en) Efficient and concurrent model execution
US11960768B2 (en) Memory-side cache directory-based request queue
US20230185740A1 (en) Low-latency input data staging to execute kernels
Zhou et al. Survey on storage-accelerator data movement