KR102560696B1 - Storage device performing access authority control and Operating method thereof - Google Patents
Storage device performing access authority control and Operating method thereof Download PDFInfo
- Publication number
- KR102560696B1 KR102560696B1 KR1020220069111A KR20220069111A KR102560696B1 KR 102560696 B1 KR102560696 B1 KR 102560696B1 KR 1020220069111 A KR1020220069111 A KR 1020220069111A KR 20220069111 A KR20220069111 A KR 20220069111A KR 102560696 B1 KR102560696 B1 KR 102560696B1
- Authority
- KR
- South Korea
- Prior art keywords
- virtual machine
- information
- host
- storage device
- namespace
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
Abstract
접근 권한 제어를 수행하는 스토리지 장치 및 그 동작방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 스토리지 장치는, 다수의 셀 블록들을 포함하고, 상기 다수의 셀 블록들은 다수의 명칭 공간들로 분류되는 스토리지 장치 및 호스트로부터의 설정 커맨드에 응답하여 상기 다수의 명칭 공간들에 대한 접근 권한에 관련된 보안 정보를 저장하고, 상기 호스트로부터 제공된 데이터 접근 요청을 디코딩함으로써 적어도 하나의 제1 정보를 추출하며, 상기 보안 정보와 상기 추출된 적어도 하나의 제1 정보를 비교하여 상기 데이터 접근 요청의 처리를 중지하는 컨트롤러를 구비하고, 상기 컨트롤러 내에 저장되는 보안 정보는, 상기 호스트에서 생성되는 제1 내지 제N 가상 머신들을 나타내는 가상 머신 정보들과, 상기 제1 내지 제N 가상 머신들에 대해 고유하게 설정되는 고유 정보들 사이의 맵핑 정보를 포함하는 것을 특징으로 한다.A storage device that performs access authority control and an operating method thereof are disclosed. A storage device according to one aspect of the technical concept of the present disclosure includes a plurality of cell blocks, and the plurality of cell blocks are classified into a plurality of namespaces and in response to a setting command from a host. At least one first information is extracted by storing security information related to access rights to namespaces, decoding a data access request provided from the host, and comparing the security information with the extracted at least one first information. and a controller that stops processing of the data access request, wherein the security information stored in the controller includes virtual machine information representing first to Nth virtual machines created in the host, and the first to Nth virtual machines. It is characterized in that it includes mapping information between unique information uniquely set for virtual machines.
Description
본 개시의 기술적 사상은 스토리지 장치에 관한 것으로서, 상세하게는 호스트로부터의 데이터 접근 요청에 대응하여 접근 권한 제어를 수행하는 스토리지 장치 및 그 동작방법에 관한 것이다.The technical idea of the present disclosure relates to a storage device, and more particularly, to a storage device that performs access authority control in response to a data access request from a host and an operation method thereof.
플래시 메모리 장치를 기반으로 하는 스토리지 장치의 예로써 솔리스 스테이트 드라이브(solid state drive, SSD)가 있다. SSD 와 같은 스토리지 시스템에 사용되는 인터페이스로 SATA(Serial ATA), PCIe(Peripheral Component Interconnect Express), SAS(Serial Attached SCSI), CXL (Compute Express Link) 등이 있으며, 또한 NVMe(Non-Volatile Memory Express)와 같은 PCIe 버스를 기반으로 하는 인터페이스가 제안되고 있다. An example of a storage device based on a flash memory device is a solid state drive (SSD). Interfaces used in storage systems such as SSDs include Serial ATA (SATA), Peripheral Component Interconnect Express (PCIe), Serial Attached SCSI (SAS), Compute Express Link (CXL), and Non-Volatile Memory Express (NVMe). An interface based on the PCIe bus such as is being proposed.
한편, 스토리지 장치는 다수의 호스트에 의해 공유될 수 있으며, 또한 각각의 호스트는 다수의 가상 머신들(virtual machines, VM)을 구동할 수 있고, 다수의 가상 머신들이 스토리지 장치를 공유할 수 있다. 일 예로서, 스토리지 장치의 저장 매체는 다수의 명칭 공간(NameSpace)들을 포함할 수 있으며, 서로 다른 가상 머신들은 서로 다른 명칭 공간에 대한 접근 권한을 가질 수 있다. 이 때, 스토리지 장치에는 정상적인 접근 권한을 갖지 않는 악의적인 접근 시도를 차단할 수 있는 보안 정책이 채용되지 않음에 따라, 사용자 데이터의 보안성이 저하될 수 있는 문제가 있다.Meanwhile, the storage device may be shared by a plurality of hosts, and each host may drive a plurality of virtual machines (VMs), and the plurality of virtual machines may share the storage device. As an example, a storage medium of a storage device may include a plurality of NameSpaces, and different virtual machines may have access rights to different NameSpaces. At this time, since the storage device does not adopt a security policy capable of blocking malicious access attempts that do not have normal access rights, the security of user data may be degraded.
본 발명의 기술적 사상이 해결하려는 과제는, 스토리지 장치에 보안 정책을 채용함으로써, 정상적인 접근 권한을 갖지 않는 악의적인 접근 시도를 차단할 수 있는 스토리지 장치 및 그 동작방법을 제공하는 데 있다.An object to be solved by the technical idea of the present invention is to provide a storage device capable of blocking malicious access attempts that do not have normal access rights by employing a security policy in the storage device and an operation method thereof.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 스토리지 장치는, 다수의 셀 블록들을 포함하고, 상기 다수의 셀 블록들은 다수의 명칭 공간들로 분류되는 스토리지 장치 및 호스트로부터의 설정 커맨드에 응답하여 상기 다수의 명칭 공간들에 대한 접근 권한에 관련된 보안 정보를 저장하고, 상기 호스트로부터 제공된 데이터 접근 요청을 디코딩함으로써 적어도 하나의 제1 정보를 추출하며, 상기 보안 정보와 상기 추출된 적어도 하나의 제1 정보를 비교하여 상기 데이터 접근 요청의 처리를 중지하는 컨트롤러를 구비하고, 상기 컨트롤러 내에 저장되는 보안 정보는, 상기 호스트에서 생성되는 제1 내지 제N 가상 머신들을 나타내는 가상 머신 정보들과, 상기 제1 내지 제N 가상 머신들에 대해 고유하게 설정되는 고유 정보들 사이의 맵핑 정보를 포함하는 것을 특징으로 한다.In order to achieve the above object, a storage device according to an aspect of the technical idea of the present disclosure includes a plurality of cell blocks, and the plurality of cell blocks are classified into a plurality of namespaces and are transmitted from a storage device and a host. Stores security information related to access rights to the plurality of namespaces in response to a setting command of, extracts at least one first information by decoding a data access request provided from the host, and extracts the security information and the extraction and a controller for stopping the processing of the data access request by comparing at least one piece of first information obtained by the host, wherein the security information stored in the controller includes virtual machine information indicating first through Nth virtual machines generated in the host. and mapping information between unique information uniquely set for the first to Nth virtual machines.
한편, 본 개시의 기술적 사상의 일측면에 따른 스토리지 장치의 동작방법은, 호스트로부터 설정 커맨드를 수신하는 단계와, 상기 설정 커맨드에 응답하여, 상기 호스트에서 생성되는 제1 내지 제N 가상 머신들 각각에 대한 가상 머신 정보, 각각의 가상 머신에 할당된 호스트 메모리 상에서의 입출력 큐의 위치를 나타내는 메모리 어드레스, 상기 가상 머신에 연관된 명칭 공간을 나타내는 명칭 공간 아이디를 포함하는 보안 정보를 저장하는 단계 및 상기 호스트로부터 독출 요청이 수신됨에 따라, 상기 독출 요청을 디코딩함에 의해 추출된 정보를 상기 보안 정보와 비교함으로써, 상기 독출 요청의 처리를 선택적으로 중지하는 단계를 구비하는 것을 특징으로 한다.Meanwhile, a method of operating a storage device according to an aspect of the technical idea of the present disclosure includes receiving a setting command from a host, and in response to the setting command, each of first to Nth virtual machines created in the host. Storing security information including virtual machine information for each virtual machine, a memory address indicating a location of an input/output queue in a host memory allocated to each virtual machine, and a namespace ID indicating a namespace associated with the virtual machine; and and selectively stopping processing of the read request by comparing information extracted by decoding the read request with the security information when a read request is received from the read request.
한편, 본 개시의 기술적 사상의 일측면에 따른 호스트는, 가상화 기술에 따른 독립된 경로들을 통해 다수의 명칭 공간들을 접근하기 위한 독출 요청을 생성하는 제1 내지 제N 가상 머신들과, 상기 제1 내지 제N 가상 머신들에 할당되는 다수의 입출력 큐들을 포함하는 호스트 메모리 및 상기 제1 내지 제N 가상 머신들의 생성과, 상기 제1 내지 제N 가상 머신들에 상기 호스트 메모리의 입출력 큐들의 할당을 관리하는 가상 머신 매니저를 구비하고, 설정 커맨드와 함께, 상기 제1 내지 제N 가상 머신들 각각에 대한 가상 머신 정보, 각각의 가상 머신에 할당된 상기 입출력 큐의 위치를 나타내는 메모리 어드레스, 상기 가상 머신에 연관된 명칭 공간을 나타내는 명칭 공간 아이디를 포함하는 보안 정보를 상기 스토리지 장치로 전송하는 것을 특징으로 한다.Meanwhile, a host according to an aspect of the technical idea of the present disclosure includes first to Nth virtual machines generating a read request for accessing a plurality of namespaces through independent paths according to virtualization technology, and the first to Nth virtual machines, and the first to Nth virtual machines. Management of creation of a host memory including a plurality of I/O queues allocated to the Nth virtual machines and the first through Nth virtual machines, and allocation of the I/O queues of the host memory to the first through Nth virtual machines. and a virtual machine manager for performing a setting command, virtual machine information for each of the first through Nth virtual machines, a memory address indicating a location of the input/output queue allocated to each virtual machine, and It is characterized in that security information including a namespace ID indicating an associated namespace is transmitted to the storage device.
본 발명의 기술적 사상의 스토리지 장치 및 그 동작방법에 따르면, 스토리지 장치에 다수의 가상 머신들에 대한 보안 정보들이 설정될 수 있고, 상기 보안 정보를 이용함으로써 특정 가상 머신을 탈취하여 악의적인 접근을 시도하는 접근 요청의 처리를 중지함으로써 사용자 데이터 보안성을 강화할 수 있는 효과가 있다.According to the storage device and its operating method of the technical idea of the present invention, security information for a plurality of virtual machines can be set in the storage device, and malicious access is attempted by hijacking a specific virtual machine by using the security information. There is an effect of strengthening user data security by stopping the processing of access requests.
또한, 본 발명의 기술적 사상의 스토리지 장치 및 그 동작방법에 따르면, 호스트 상에서 생성되는 매우 많은 수의 가상 머신들에 의한 명칭 공간들의 접근 권한의 판단이 스토리지 장치 측에서 수행될 수 있으므로, 호스트의 워크로드를 감소할 수 있으며, 데이터 처리 시스템의 성능을 향상할 수 있는 효과가 있다.In addition, according to the storage device and its operating method of the technical concept of the present invention, determination of access rights to namespaces by a very large number of virtual machines created on the host can be performed on the storage device side, so that the host's work The load can be reduced and the performance of the data processing system can be improved.
도 1은 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적인 실시예에 따른 가상화 기술이 적용된 데이터 처리 시스템을 나타내는 블록도이다.
도 3은 본 개시의 예시적인 실시예에 따른 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 4는 본 개시의 예시적인 실시예에 따른 데이터 처리 시스템의 구체 구현 예를 나타내는 블록도이다.
도 5는 본 개시의 예시적인 실시예에 따른 보안 정보를 이용하는 예를 나타내는 블록도이다.
도 6 및 도 7은 본 개시의 예시적인 실시예들에 따른 데이터 처리 시스템의 동작방법을 나타내는 플로우차트이다.
도 8 및 도 9은 본 개시의 예시적인 실시예에 따른 보안 데이터의 설정 및 이용 과정을 나타내는 블록도이다.
도 10은 본 개시의 다른 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다.
도 11은 불휘발성 메모리에 포함되는 셀 블록의 구현 예를 나타내는 사시도이다.
도 12는 본 개시의 실시예들에 따른 데이터 처리 시스템에서 SSD가 스토리지 장치에 적용된 경우를 나타내는 블록도이다.
도 13은 본 개시의 예시적 실시예에 따른 스토리지 장치를 포함하는 데이터 센터를 나타내는 블록도이다.1 is a block diagram illustrating a data processing system according to an exemplary embodiment of the present invention.
2 is a block diagram illustrating a data processing system to which virtualization technology is applied according to an exemplary embodiment of the present disclosure.
3 is a block diagram illustrating an implementation example of a controller according to an exemplary embodiment of the present disclosure.
Fig. 4 is a block diagram illustrating a concrete implementation of a data processing system according to an exemplary embodiment of the present disclosure.
5 is a block diagram illustrating an example of using secure information according to an exemplary embodiment of the present disclosure.
6 and 7 are flowcharts illustrating an operating method of a data processing system according to exemplary embodiments of the present disclosure.
8 and 9 are block diagrams illustrating a process of setting and using secure data according to an exemplary embodiment of the present disclosure.
10 is a block diagram illustrating a data processing system according to another embodiment of the present disclosure.
11 is a perspective view illustrating an implementation example of a cell block included in a nonvolatile memory.
12 is a block diagram illustrating a case in which an SSD is applied to a storage device in a data processing system according to embodiments of the present disclosure.
13 is a block diagram illustrating a data center including a storage device according to an exemplary embodiment of the present disclosure.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다.1 is a block diagram illustrating a data processing system according to an exemplary embodiment of the present invention.
도 1을 참조하면, 데이터 처리 시스템(10)은 호스트(100) 및 스토리지 장치(200)를 포함할 수 있다. 스토리지 장치(200)는 컨트롤러(210) 및 불휘발성 메모리(220)를 포함할 수 있다. 호스트(100)는 스토리지 장치(200)로 데이터의 기록 또는 독출 요청을 제공할 수 있다. 또한, 호스트(100)로부터의 데이터 소거 요청에 따라, 스토리지 장치(200)는 호스트(100)로부터 지시되는 영역의 데이터에 대한 소거 동작을 수행할 수 있다.Referring to FIG. 1 , a
예시적인 실시예에서, 스토리지 장치(200)는 메모리 장치와 이를 컨트롤하는 컨트롤러를 포함하는 개념으로서, 스토리지 장치 이외에도 다른 다양한 용어들로 정의될 수 있을 것이다. 예컨대, 스토리지 장치(200)는 메모리 시스템 또는 스토리지 시스템으로 지칭될 수 있고, 컨트롤러(210)는 스토리지 컨트롤러 또는 메모리 컨트롤러 등으로 지칭될 수 있을 것이다.In an exemplary embodiment, the
스토리지 장치(200)는 호스트(100)로부터의 요청에 따라 데이터를 저장하는 저장 매체들을 포함할 수 있다. 일 예로서, 스토리지 장치(200)는 하나 이상의 솔리드 스테이트 드라이브(Solid State Drive, SSD)를 포함할 수 있다. 스토리지 장치(200)가 SSD 를 포함하는 경우, 불휘발성 메모리(220)는 데이터를 불휘발성하게 저장하는 다수 개의 플래시 메모리 칩들(예컨대, NAND 메모리 칩들)을 포함할 수 있다. 이하, 본 개시의 실시예들을 설명함에 있어서, 스토리지 장치(200)가 하나 이상의 플래시 메모리 칩들을 포함하는 것으로 가정한다. The
다른 예로서, 스토리지 장치(200)는 다른 다양한 종류의 메모리들을 포함할 수도 있다. 예를 들어, 스토리지 장치(200)는 불휘발성 메모리를 포함할 수 있으며, 불휘발성 메모리는 MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torgue MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase RAM), 저항 메모리(Resistive RAM), 나노튜브 RAM(Nanottube RAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory) 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory) 등 다양한 종류의 메모리가 적용될 수 있다.As another example, the
호스트(100)는 다양한 인터페이스를 통하여 스토리지 장치(200)와 통신할 수 있다. 예컨대, 호스트(100)는 USB(Universal Serial Bus), MMC(MultiMediaCard), PCIe(Peripheral Component Interconnect express), ATA(AT Attachment), SATA(Serial AT Attachment), PATA(Parallel AT Attachment), SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics), CXL (Compute Express Link), NVMe(Non-Volatile Memory Express) 등과 같은 다양한 인터페이스를 통해 스토리지 장치(200)와 통신할 수 있다. 본 개시의 예시적인 실시예들에 따라, 데이터 처리 시스템(10)에서, 호스트(100)와 스토리지 장치(200)는 PCIe 버스를 통해 NVMe 기반의 인터페이스를 수행하는 것으로 가정된다.The
본 개시의 예시적인 실시예에 따라, 호스트(100)는 프로세서(110) 및 호스트 메모리(120)를 포함할 수 있다. 프로세서(110)는 호스트 메모리(120)에 저장된 소프트웨어를 실행함으로써 스토리지 장치(200)에 대한 데이터 기록 및 독출 등의 메모리 동작을 제어할 수 있다. 예시적인 실시예에서, 호스트(100)는 NVMe 인터페이스에서 정의되는 표준을 만족하는 패킷을 인코딩하거나 디코딩할 수 있다. 호스트(100)는 기록 요청 또는 독출 요청에 상응하는 패킷을 호스트 메모리(120)에 저장할 수 있고, 기록 요청 또는 독출 요청에 응답하는 스토리지 장치(200)로부터의 완료 응답이 호스트 메모리(120)에 저장될 수 있다. 이하의 실시예들에서, 호스트(100)의 스토리지 장치(200)에 대한 기록 요청 및 독출 요청은 각각 접근 요청(Req)에 해당할 수 있고, 호스트(100)가 제공하는 패킷은 요청 또는 커맨드로 지칭될 수 있을 것이다.According to an exemplary embodiment of the present disclosure, the
예시적인 실시예에서, 컨트롤러(210)는 접근 권한 제어기(211)를 포함할 수 있으며, 불휘발성 메모리(220)는 다수의 명칭 공간들(NameSpace, NS)을 포함할 수있다. 불휘발성 메모리(220)에 구비되는 플래시 메모리 칩들 각각은 메모리 셀 어레이를 포함할 수 있고, 메모리 셀 어레이는 하나 이상의 셀 블록들을 포함할 수 있다. 도 1에서는 불휘발성 메모리(220)가 제1 내지 제K 명칭 공간들(NS 1 ~ NS K)을 구비하는 경우가 예시된다. 불휘발성 메모리(220)에 구비되는 다수의 셀 블록들은 제1 내지 제K 명칭 공간들(NS 1 ~ NS K)로 분류될 수 있고, 하나 이상의 셀 블록들이 제1 내지 제K 명칭 공간들(NS 1 ~ NS K) 각각에 할당될 수 있다. In an exemplary embodiment, the
예시적인 실시예에서, 호스트(100)는 프로세서(110)의 제어에 기초하여 다수의 가상 머신들(virtual machines, VMs)을 생성할 수 있다. 예컨대, 호스트(100)는 가상화(virtualization) 기술을 이용하여 명칭 공간들을 관리할 수 있고, 하나의 스토리지 장치에 다수의 가상 머신들이 함께 접근할 수 있다. 일 예로서, 호스트 메모리(120)에는 가상화 기술에 기초하여 스토리지 장치(200)의 접근을 가능하게 하는 가상 머신 관리 모듈(미도시)이 구비될 수 있고, 프로세서(110)가 가상 머신 관리 모듈을 실행함으로써 다수의 가상 머신들(VMs)이 생성될 수 있다. 다수의 가상 머신들(VMs)은 호스트(100) 내의 프로세서, 메모리, 펌웨어, 소프트웨어 등의 자원들(resources)을 공유할 수 있으나, 스토리지 장치(200)의 관점에서 다수의 가상 머신들(VMs) 각각은 별도의 하드웨어를 통해 데이터를 접근하는 것으로 인식할 수 있다.In an exemplary embodiment, the
제1 내지 제K 명칭 공간들(NS 1 ~ NS K)은 다수의 가상 머신들(VMs)에 연관 또는 할당될 수 있다. 스토리지 장치(200)는 호스트(100)의 제어에 기초하여 제1 내지 제K 명칭 공간들(NS 1 ~ NS K)을 다수의 가상 머신들(VMs)에 연관시킬 수 있고, 일 예로서 각각의 가상 머신(VM)은 적어도 하나의 명칭 공간에 연관됨에 따라, 연관된 명칭 공간의 데이터를 접근할 수 있다. 각각의 가상 머신(VM)은 하나 또는 그 이상의 명칭 공간들에 연관될 수 있고, 또는 적어도 2 개의 가상 머신들(VMs)이 어느 하나의 명칭 공간을 공유할 수도 있다.The first to
호스트(100)는 많은 수의 가상 머신들(VMs)을 생성할 수 있고, 가상 머신들(VMs)에 의한 명칭 공간들의 접근 권한을 인증하는 과정이 호스트(100)에 의해 수행될 수 있다. 예컨대, 호스트(100)는 제1 내지 제K 명칭 공간들(NS 1 ~ NS K)이 생성되는 경우 제1 내지 제K 명칭 공간들(NS 1 ~ NS K)의 ID 정보(이하, 명칭 공간 ID로 지칭함)를 관리할 수 있고, 각각의 가상 머신에 연관된 명칭 공간 ID 를 가상 머신들(VMs)로 제공할 수 있다. 또한, 다수의 가상 머신들(VMs) 각각은 할당받은 명칭 공간의 데이터를 접근하기 위한 명칭 공간 ID 를 포함하는 접근 요청(Req)을 생성하고 이를 스토리지 장치(200)로 전송할 수 있다.The
그러나, 악의적인 사용자에 의해 가상 머신(VM)이 탈취되고, 탈취된 가상 머신(VM)을 통해 스토리지 장치(200)의 특정 명칭 공간을 접근하려 시도하는 경우, 스토리지 장치(200)는 호스트(100)로부터의 접근 요청(Req)을 디코딩하고, 접근 요청(Req)에 의해 지시되는 특정 명칭 공간에서 데이터를 독출하고 이를 호스트(100)로 제공할 수 있다. 이 경우, 보안(Security)이 중요시되는 데이터 처리 시스템(10)에서, 정상적인 접근 권한을 갖지 않는 악의적인 사용자에게 데이터가 제공됨에 따라 데이터의 보안성이 약화될 수 있다.However, when a virtual machine (VM) is hijacked by a malicious user and an attempt is made to access a specific namespace of the
본 개시의 예시적인 실시예에 따르면, 호스트(100)로부터의 설정 커맨드(CMD_S)에 응답하여, 접근 권한을 판단함에 이용되는 보안 정보(미도시)가 접근 권한 제어기(211)에 설정 또는 저장될 수 있다. 접근 권한 제어기(211)는 호스트(100)로부터의 접근 요청(Req)으로부터 추출된 정보와 접근 권한 제어기(211)에 저장된 보안 정보의 비교를 기초로, 접근 요청(Req)이 정상적인 권한을 가진 사용자(또는, 가상 머신(VM))에 의한 요청인지를 판단할 수 있다. 접근 요청(Req)이 정상적인 권한을 가진 가상 머신(VM)에 의한 요청인 것으로 판단된 경우에는, 컨트롤러(210)는 호스트(100)로부터의 접근 요청(Req)이 노멀하게 처리되도록 제어 동작을 수행할 수 있다. 반면에, 접근 요청(Req)이 정상적인 권한을 가진 가상 머신(VM)에 의한 요청이 아닌 것으로 판단된 경우에는, 접근 권한 제어기(211)는 호스트(100)로부터의 접근 요청(Req)의 처리를 중지(Abort)시킴으로써, 악의적인 접근에 의해 불휘발성 메모리(220)에서 데이터가 독출 또는 기록되는 것을 차단할 수 있다.According to an exemplary embodiment of the present disclosure, in response to a setting command (CMD_S) from the
예시적인 실시예에서, 접근 권한 제어기(211)에 설정되는 보안 정보는 호스트(100) 내에서 생성되는 다수의 가상 머신들(VMs) 각각에 관련된 정보를 포함할 수 있다. 일 예로서, 보안 정보는 다수의 가상 머신들(VMs)에 대응하는 다수의 엔트리들을 포함할 수 있고, 각각의 엔트리는 어느 하나의 가상 머신을 나타내는 가상 머신 정보와, 상기 가상 머신에 고유하게 할당되는 적어도 하나의 고유 정보 사이의 맵핑 정보를 포함할 수 있다.In an exemplary embodiment, security information set in the
일 예로서, 호스트(100)는 각각의 가상 머신(VM)에 대해 호스트 메모리(120) 내의 특정 위치의 저장 공간을 입출력 큐로 할당할 수 있으며, 상기 고유 정보는 호스트 메모리(120)에서 할당된 입출력 큐의 위치를 나타내는 메모리 어드레스를 포함할 수 있다. 일 예로서, 입출력 큐는 소정의 어드레스 범위에 포함되는 저장 공간을 포함할 수 있고, 메모리 어드레스는 상기한 어드레스 범위에 관련된 정보를 포함할 수 있다. 또한, 호스트(100)는 각각의 가상 머신(VM)에 대해 적어도 하나의 명칭 공간을 할당할 수 있으며, 상기 고유 정보는 각각의 가상 머신(VM)에 할당된 명칭 공간을 나타내는 명칭 공간 아이디(ID)를 포함할 수 있다. 즉, 보안 정보의 각각의 엔트리는, 어느 하나의 가상 머신의 가상 머신 정보, 그리고 이에 맵핑된 메모리 어드레스 및 명칭 공간 ID 를 포함할 수 있다.As an example, the
본 개시의 예시적인 실시예에 따라, 컨트롤러(210)는 호스트(100)로부터의 접근 요청(Req)을 디코딩하며, 접근 요청(Req)으로부터 상기한 보안 정보와 비교될 적어도 하나의 정보를 추출할 수 있다. 접근 권한 제어기(211)는 접근 요청(Req)을 디코딩함으로써 접근 요청(Req)을 생성한 가상 머신 정보를 판단할 수 있으며, 데이터 접근과 관련하여 입출력 큐의 위치를 나타내는 메모리 어드레스와, 접근을 요청하는 명칭 공간 ID 를 추출할 수 있다. 접근 권한 제어기(211)는 보안 정보로부터 상기 판단된 가상 머신 정보에 맵핑된 메모리 어드레스 및 명칭 공간 ID 를 판단할 수 있다. 또한, 접근 권한 제어기(211)는 접근 요청(Req)으로부터 추출된 메모리 어드레스 및 명칭 공간 ID 과, 보안 정보에 포함되는 메모리 어드레스 및 명칭 공간 ID 과의 매칭 여부를 비교함으로써, 상기 접근 요청(Req)이 정상적인 권한을 가진 가상 머신(VM)에 의한 접근인지를 판단할 수 있다. 예컨대, 접근 요청(Req)으로부터 추출된 메모리 어드레스가 보안 정보에 포함되는 메모리 어드레스의 범위 내에 속하는 지 판단될 수 있으며, 또한 접근 요청(Req)으로부터 추출된 명칭 공간 ID와 보안 정보에 포함되는 명칭 공간 ID의 동일성 여부가 판단될 수 있다.According to an exemplary embodiment of the present disclosure, the
컨트롤러(210)는 접근 권한 제어기(211)의 판단 결과에 기초하여 접근 요청(Req)의 처리를 중지함으로써, 사용자 데이터 보안을 강화할 수 있다. 예컨대, 정상적인 접근 권한을 갖지 않은 악의적인 사용자가 특정 가상 머신(예컨대, 제2 가상 머신)을 탈취하고, 다른 가상 머신(예컨대, 제1 가상 머신)에 할당된 호스트 메모리(120)의 입출력 큐를 통해 제1 가상 머신에 연관된 명칭 공간에 접근하고자 하는 경우, 접근 요청(Req)으로부터 추출되는 메모리 어드레스 및 명칭 공간 ID 중 적어도 하나는, 보안 정보에 포함되는 제1 가상 머신을 나타내는 가상 머신 정보에 맵핑된 메모리 어드레스 및 명칭 공간 ID 중 적어도 하나와 상이할 수 있고, 이에 따라 정상적인 권한을 갖지 않는 가상 머신(VM)으로부터의 접근 요청(Req)의 처리가 중지될 수 있다. 또한, 악의적인 사용자가 제1 가상 머신에 할당된 입출력 큐의 메모리 어드레스나 제1 가상 머신에 연관된 명칭 공간 ID 중 적어도 하나를 알지 못하는 경우에는, 스토리지 장치(200) 내에서의 보안 정보를 이용한 비교 절차를 통해 정상적인 권한을 갖지 않는 가상 머신(VM)으로부터의 접근 요청(Req)의 처리가 중지될 수 있다.The
예시적인 구현 예에서, 접근 권한 제어기(211)는 보안 정보를 저장하는 회로와 접근 권한을 판단하는 회로가 하나의 회로 블록으로 구현될 수도 있다. 또는, 접근 권한 제어기(211)는 보안 정보를 저장하는 저장 회로와 접근 권한을 판단하는 회로가 별개의 회로 블록으로 구현될 수도 있다. 또한, 보안 정보를 저장하는 저장 회로는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있으며, 일 예로서 저장 회로가 휘발성 메모리로 구현됨에 따라 데이터 처리 시스템(10)의 초기 구동 시에 호스트(100)는 스토리지 장치(200)에 대한 보안 정보의 설정 동작을 제어할 수 있다.In an exemplary implementation, in the
도 2는 본 개시의 예시적인 실시예에 따른 가상화 기술이 적용된 데이터 처리 시스템을 나타내는 블록도이다.2 is a block diagram illustrating a data processing system to which virtualization technology is applied according to an exemplary embodiment of the present disclosure.
도 2를 참조하면, 데이터 처리 시스템(300)은 호스트(310) 및 스토리지 장치(320)를 포함할 수 있고, 스토리지 장치(320)는 컨트롤러(321) 및 불휘발성 메모리(322)를 포함할 수 있다. 호스트(310)는 가상 머신 매니저(311) 및 다수의 가상 머신들로서 제1 내지 제N 가상 머신들(312_1 ~ 312_N)을 포함할 수 있다. 가상 머신 매니저(311)는 하드웨어, 소프트웨어 또는 이들의 조합을 통해 구현될 수 있고, 일 예로서 프로세서가 소프트웨어를 실행함에 의해 가상 머신 매니저(311)의 기능이 구현될 수 있다. 가상 머신 매니저(311)는 하이퍼바이저로 지칭될 수도 있고, 제1 내지 제N 가상 머신들(312_1 ~ 312_N)을 생성하고 실행하도록 구성될 수 있다.Referring to FIG. 2 , the
호스트(310)는 제1 내지 제N 가상 머신들(312_1 ~ 312_N) 각각에 연관되는 명칭 공간들의 생성 및 삭제를 요청할 수 있다. 일 예로서, 호스트(310)의 제어에 기초하여 스토리지 장치(320)는 다수의 명칭 공간들로서 제1 내지 제K 명칭 공간들(NS 1 ~ NS K)을 생성할 수 있다. 전술한 실시예에 따라, 불휘발성 메모리(322)에 구비되는 다수의 셀 블록들이 제1 내지 제K 명칭 공간들(NS 1 ~ NS K)로 분류될 수 있고, 제1 내지 제N 가상 머신들(312_1 ~ 312_N) 각각은 적어도 하나의 명칭 공간에 연관되고, 연관된 명칭 공간에 접근하기 위한 접근 요청을 생성할 수 있다. 예컨대, 제1 내지 제N 가상 머신들(312_1 ~ 312_N) 각각은 접근 요청을 생성함에 있어서 접근 권한을 갖는 명칭 공간을 지시하는 명칭 공간 ID 를 접근 요청에 포함시킬 수 있다. The
컨트롤러(321)는 명칭 공간 관리 모듈(321_1) 및 접근 권한 제어기(321_2)를 포함할 수 있고, 명칭 공간 관리 모듈(321_1)은 호스트(310)로부터의 요청에 응답하여 제1 내지 제K 명칭 공간들(NS 1 ~ NS K)을 생성 또는 삭제하는 동작을 관리할 수 있다. 또한, 명칭 공간 관리 모듈(321_1)은 호스트(310)로부터의 요청에 응답하여 제1 내지 제K 명칭 공간들(NS 1 ~ NS K)에 대한 접근 동작을 제어할 수 있으며, 일 예로서 명칭 공간 관리 모듈(321_1)은 접근 권한 제어기(321_2)의 제어에 기초하여, 호스트(310)로부터의 접근 요청의 처리를 진행하거나 또는 중지할 수 있다. 그러나, 본 개시의 실시예들은 이에 국한될 필요는 없으며, 컨트롤러(321)는 제1 내지 제K 명칭 공간들(NS 1 ~ NS K)에 대한 독출/기록 동작을 제어하는 추가의 구성 요소들을 포함할 수 있고, 접근 권한 판단에 따라 상기한 추가의 구성 요소들을 제어함으로써 접근 요청의 처리, 또는 접근 요청 처리의 중지가 수행될 수도 있을 것이다.The
한편, 접근 권한 제어기(321_2)는 보안 정보 저장 회로를 포함할 수 있고, 보안 정보 저장 회로는 전술한 실시예에 따라 호스트(310)로부터의 설정 커맨드에 응답하여 다수의 엔트리들을 포함하는 보안 정보를 저장할 수 있다. 일 예로서, 전술한 실시예에 따라, 다수의 엔트리들은 호스트(310)에 생성되는 가상 머신들에 대응될 수 있고, 각각의 엔트리는 가상 머신(VM)에 대한 가상 머신 정보(VM Info)와, 고유한 정보의 일 예로서 가상 머신(VM)에 할당된 입출력 큐의 위치를 나타내는 메모리 어드레스(RA), 그리고 명칭 공간 ID(NSID) 사이의 맵핑 정보를 포함할 수 있다. 접근 권한 제어기(321_2)는 호스트로부터 접근 요청(예컨대, 독출 요청(Req_R))을 수신할 수 있고, 독출 요청(Req_R)에 대한 디코딩 동작을 통해 하나 이상의 정보들을 추출할 수 있으며, 추출된 정보와 보안 정보 저장 회로에 저장된 보안 정보의 비교에 기초하여 독출 요청(Req_R)의 처리의 중지(Abort) 여부를 판단할 수 있다.Meanwhile, the access authority controller 321_2 may include a security information storage circuit, and the security information storage circuit stores security information including a plurality of entries in response to a setting command from the
제1 가상 머신(VM 1)의 동작을 예로 들면, 제1 가상 머신(VM 1)은 정상적인 권한을 갖는 명칭 공간(예컨대, 제1 명칭 공간)을 접근하기 위해, 제1 가상 머신(VM 1)에 할당된 입출력 큐를 지시하는 메모리 어드레스(RA)와, 제1 명칭 공간(NS 1)을 지시하는 명칭 공간 ID(NSID)을 포함하는 독출 요청(Req_R)을 생성할 수 있다. 예컨대, NVMe 인터페이스에 기초한 패킷 생성 과정에서, 제1 가상 머신(VM 1)을 나타내는 가상 머신 정보가 독출 요청(Req_R)에 부가될 수 있다. Taking the operation of the first virtual machine (VM 1) as an example, the first virtual machine (VM 1) accesses a namespace (eg, the first namespace) having normal privileges, the first virtual machine (VM 1) A read request (Req_R) including a memory address (RA) indicating an input/output queue allocated to , and a namespace ID (NSID) indicating the first namespace (NS 1 ) may be generated. For example, in the process of generating a packet based on the NVMe interface, virtual machine information indicating the first virtual machine (VM 1 ) may be added to the read request (Req_R).
제1 가상 머신(VM 1)으로부터의 독출 요청(Req_R)은 스토리지 장치(320)로 제공되고, 컨트롤러(321)는 독출 요청(Req_R)을 디코딩함으로써 제1 가상 머신(VM 1)을 나타내는 가상 머신 정보, 독출 요청(Req_R)에 포함된 메모리 어드레스(RA) 및 명칭 공간 ID(NSID)를 추출할 수 있다. 제1 가상 머신(VM 1)이 제1 명칭 공간(NS 1)에 대한 정상적인 접근 권한을 갖는 경우, 접근 권한 제어기(321_2)의 보안 정보에 구비되는 제1 가상 머신(VM 1)을 나타내는 가상 머신 정보에 맵핑된 메모리 어드레스(RA) 및 명칭 공간 ID(NSID)는 상기 독출 요청(Req_R)으로부터 추출된 정보와 매칭될 수 있을 것이며, 이에 따라 독출 요청(Req_R)이 정상적으로 처리될 수 있다.The read request Req_R from the first
반면에, 제1 명칭 공간(NS 1)에 대한 정상적인 접근 권한을 갖지 않는 제2 가상 머신(VM 2)이 제1 명칭 공간(NS 1)의 접근을 시도하는 독출 요청(Req_R)을 전송하는 경우, 독출 요청(Req_R)을 디코딩하여 추출된 정보는 보안 정보에 포함된 정보와 매칭되지 않을 수 있다. 예컨대, 접근 권한 제어기(321_2)의 보안 정보에 구비되는 제2 가상 머신(VM 2)을 나타내는 가상 머신 정보에 맵핑된 메모리 어드레스(RA) 및 명칭 공간 ID(NSID)는, 호스트(310)에 의한 설정 과정에서 제2 가상 머신(VM 2)에 대응하여 할당된 정보를 포함할 수 있고, 이에 따라 보안 정보에 포함되는 메모리 어드레스(RA) 및 명칭 공간 ID(NSID) 중 적어도 하나는 독출 요청(Req_R)으로부터 추출된 메모리 어드레스(RA) 및 명칭 공간 ID(NSID) 와 상이할 수 있고, 이에 따라 악의적인 사용자에 의한 독출 요청(Req_R)의 처리가 중지될 수 있다.On the other hand, when the second virtual machine (VM 2), which does not have normal access rights to the first namespace (NS 1), transmits a read request (Req_R) attempting to access the first namespace (NS 1). , information extracted by decoding the read request (Req_R) may not match information included in the security information. For example, a memory address (RA) and a namespace ID (NSID) mapped to virtual machine information representing the second virtual machine (VM 2) provided in the security information of the access authority controller 321_2 are determined by the
도 3은 본 개시의 예시적인 실시예에 따른 컨트롤러의 일 구현 예를 나타내는 블록도이다.3 is a block diagram illustrating an implementation example of a controller according to an exemplary embodiment of the present disclosure.
도 3을 참조하면, 컨트롤러(400)는 호스트 인터페이스 회로(410), 메모리 인터페이스 회로(420), 프로세서(430), 접근 권한 제어 모듈(440), 동작 메모리(working memory, 450) 및 ECC(Error Correction Code) 회로(460)를 포함할 수 있다. 예시적인 실시예에서, 동작 메모리(450)에는 프로세서(430)에 의해 실행 가능한 다양한 종류의 소프트웨어들이 로딩될 수 있으며, 일 예로서 컨트롤러(400)가 제어하는 불휘발성 메모리가 플래시 메모리 장치를 포함함에 따라, 플래시 변환 레이어(Flash Translation Layer, FTL)가 동작 메모리(450)에 로딩될 수 있다. 또한, 예시적인 구현 예에서, 본 개시의 실시예에 따른 명칭 공간 관리 기능이 소프트웨어적으로 구현됨에 따라, 명칭 공간 관리 모듈이 동작 메모리(450)에 로딩될 수 있다. 동작 메모리(450)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), EEPROM(Electronically Erasable Programmable Read Only Memory), 플래시 메모리 또는 다른 메모리 기술 등 다양한 형태로 구현될 수 있다.Referring to FIG. 3, the
프로세서(430)는 동작 메모리(450)에 저장된 각종 소프트웨어들을 실행함으로써 스토리지 장치의 전반적인 동작을 제어할 수 있다. 호스트 인터페이스 회로(410)는 호스트와 소정의 인터페이스에 따른 통신을 수행하고, 일 예로서 컨트롤러(400)는 PCIe(Peripheral Component Interconnect express) 버스를 통해 호스트와 연결되고, NVMe 인터페이스에 따라 호스트와 통신할 수 있다. 또한, 메모리 인터페이스 회로(420)는 불휘발성 메모리(NVM)에 포함되는 다수의 저장 매체들과의 인터페이스를 제공하며, 일 예로서 메모리 인터페이스 회로(420)는 다수의 채널들을 통해 저장 매체들과 독립적인 통신을 수행할 수 있다. 또한, ECC 회로(460)는 스토리지 장치에 저장되는 데이터의 에러 검출 및 정정을 위한 동작을 수행할 수 있으며, 일 예로서 기록 데이터로부터 ECC 패리티를 생성할 수 있고, 독출 데이터와 이에 대응하는 ECC 패리티를 이용하여 에러 검출 및 정정 동작을 수행할 수 있다.The
본 개시의 예시적인 실시예에 따라 접근 권한 제어 모듈(440)은 하드웨어적 구성요소들을 포함하거나, 소프트웨어적 구성요소들 또는 이들의 조합을 포함할 수 있으며, 접근 권한 제어 모듈(440)이 소프트웨어적 구성요소들을 포함하는 경우 접근 권한 제어 모듈(440)에 구비되는 소프트웨어는 동작 메모리(450)에 로딩될 수 있다. 접근 권한 제어 모듈(440)은 호스트로부터의 데이터 접근 요청에 대응하여, 접근 요청이 정상적인 권한을 가진 가상 머신으로부터의 접근 요청인지를 판단할 수 있다. 일 예로서, 전술한 실시예들에 따라 호스트의 설정 커맨드에 기초하여 보안 정보가 접근 권한 제어 모듈(440) 내에 저장되고, 접근 권한 제어 모듈(440)은 호스트로부터의 접근 요청을 디코딩하여 요청에 포함된 각종 정보들을 추출하며, 추출된 정보를 보안 정보와 비교함으로써 호스트로부터의 접근 요청의 처리를 실행하거나 또는 중지할 수 있다.According to an exemplary embodiment of the present disclosure, the access
도 4는 본 개시의 예시적인 실시예에 따른 데이터 처리 시스템의 구체 구현 예를 나타내는 블록도이다.Fig. 4 is a block diagram illustrating a concrete implementation of a data processing system according to an exemplary embodiment of the present disclosure.
도 4를 참조하면, 데이터 처리 시스템(500)은 호스트(510)와 스토리지 장치(520)를 포함할 수 있고, 호스트(510)는 가상 머신 매니저(511)를 포함할 수 있으며, 가상 머신 매니저(511)의 제어에 기초하여 다수의 가상 머신들이 호스트(510)에 생성될 수 있다. 도 4에서는 제1 및 제2 가상 머신들(512, 513)이 생성된 경우가 예시된다. Referring to FIG. 4 , the
한편, 가상 머신 매니저(511)는 가상 머신의 요청에 따라 입출력 큐(IOQ)를 가상 머신에 할당할 수 있다. 예컨대, 호스트(510)는 호스트 메모리(514)를 포함할 수 있고, 도 4에서는 입출력 큐(IOQ)와 호스트 메모리(514)가 별개로 도시되었으나, 입출력 큐(IOQ)는 호스트 메모리(514)에 포함되는 저장 공간에 상응할 수 있다. 예시적인 실시예에서, 제1 및 제2 입출력 큐(IOQ 0, IOQ 1)는 제1 가상 머신(512)에 할당되고, 제3 및 제4 입출력 큐(IOQ 2, IOQ 3)는 제2 가상 머신(513)에 할당될 수 있다. 또한, 각각의 가상 머신에 대해 할당된 입출력 큐(IOQ)의 위치를 나타내는 어드레스(예컨대, 메모리 어드레스) 정보가 제1 및 제2 가상 머신들(512, 513)로 제공될 수 있다. 또한, 입출력 큐(IOQ) 각각은 스토리지 장치(520)로 전송될 패킷을 저장하는 서브미션 큐(submission queue, SQ)와, 스토리지 장치(520)로부터 전송된 패킷을 저장하는 완료 큐(completion queue, CQ)를 포함할 수 있다.Meanwhile, the
한편, 스토리지 장치(520)는 컨트롤러를 포함할 수 있고, 호스트(510)와 스토리지 장치(520) 사이에서 NVMe 인터페이스에 따른 싱글 루트 입출력 가상화(single root input/output virtualization, SR-IOV) 기능이 제공됨에 따라, 스토리지 장치(520)는 제1 및 제2 가상 머신들(512, 513)에 대응되는 제1 및 제2 가상 기능들(Virtual Functions, 521, 522)을 생성할 수 있다. 제1 및 제2 가상 기능들(521, 522)은 호스트(510)로부터의 요청에 응답하여 스토리지 장치(520)의 컨트롤러 내에서 구현될 수 있으며, 호스트(510)로부터의 데이터 접근 요청을 독립적으로 처리할 수 있다. 또한, 제1 및 제2 가상 기능들(521, 522) 각각이 대응되는 가상 머신으로부터의 요청을 처리함에 따라, 제1 및 제2 가상 머신들(512, 513) 사이에서 독립된 경로를 통해 스토리지 장치(520)에 대한 데이터 접근이 수행될 수 있다.Meanwhile, the
호스트(510)로부터의 독출 요청을 예로 들면, 제1 및 제2 가상 기능들(521, 522) 각각은 호스트(510)로부터의 독출 요청이 정상적인 권한을 가진 가상 머신으로부터의 독출 요청인지를 판단할 수 있다. 전술한 실시예들에 따른 접근 권한 제어기는 제1 및 제2 가상 기능들(521, 522) 각각에 구현될 수 있고, 일 예로서 보안 매니저 및 보안 정보 저장 회로를 포함할 수 있다. 예컨대, 도 4에 도시된 바와 같이, 제1 가상 기능(521)은 제1 보안 매니저(521_1) 및 제1 보안 정보 저장 회로(521_2)를 포함할 수 있고, 제2 가상 기능(522)은 제2 보안 매니저(522_1) 및 제2 보안 정보 저장 회로(522_2)를 포함할 수 있다. 또한, 불휘발성 메모리는 다수의 명칭 공간들을 포함할 수 있고, 도 4에서는 제1 및 제2 명칭 공간들(523, 524)이 생성된 경우가 예시된다. Taking a read request from the
제1 명칭 공간(523)에 대한 정상적인 접근 권한을 갖지 않는 제2 가상 머신(513)의 제1 명칭 공간(523)에 대한 악의적인 접근 예를 설명하면 다음과 같다. An example of a malicious access to the
제2 가상 머신(513)이 제1 명칭 공간(523)에 대한 악의적인 접근을 위한 독출 요청을 생성함에 있어서, 제1 가상 기능(521)으로의 경로를 지시하는 정보를 독출 요청에 부가함으로써 독출 요청이 제1 가상 기능(521)으로 제공될 수 있고, 제1 가상 머신(512)에 할당된 메모리 어드레스 및 제1 명칭 공간(523)을 지시하는 명칭 공간 ID 가 독출 요청에 포함될 수 있다. 또한, 스토리지 장치(520)와의 인터페이스에 따른 패킷 인코딩 과정에서, 독출 요청을 생성하는 제2 가상 머신(513)을 나타내는 가상 머신 정보가 독출 요청에 부가될 수 있다. When the second
제1 가상 기능(521)은 수신된 독출 요청을 디코딩하고, 디코딩 결과에 의해 추출된 정보와 제1 보안 정보 저장 회로(521_2)에 저장된 보안 정보와 비교함으로써 상기 독출 요청의 처리를 중지시킬 수 있다. 예컨대, 본 개시의 실시예들이 적용되지 않는 경우, 제1 가상 기능(521)은 제2 가상 머신(513)으로부터의 독출 요청에 의해 지시되는 제1 명칭 공간(523)으로부터 데이터를 독출하고, 독출된 데이터를 포함하는 패킷을 호스트 메모리(514) 내의 제1 가상 머신(512)에 할당된 입출력 큐에 저장할 수 있다. 그러나, 본 개시의 예시적인 실시예에 따르면, 독출 요청으로부터 추출된 제2 가상 머신(513)을 나타내는 가상 머신 정보에 맵핑된 메모리 어드레스 및 명칭 공간 ID 가 제1 보안 정보 저장 회로(521_2)로부터 독출될 수 있고, 상기 독출된 보안 정보는 독출 요청으로부터 추출된 메모리 어드레스 및 명칭 공간 ID 와 매칭되지 않을 수 있고, 이에 따라 정상적인 접근 권한을 갖지 않는 제2 가상 머신(513)으로부터의 독출 요청의 처리가 중지될 수 있다.The first
도 5는 본 개시의 예시적인 실시예에 따른 보안 정보를 이용하는 예를 나타내는 블록도이다.5 is a block diagram illustrating an example of using secure information according to an exemplary embodiment of the present disclosure.
제1 가상 기능(VF 1)의 동작을 예로 들면, 보안 매니저(521_1)는 요청 디코더(521_11), 비교기(521_12) 및 중지 제어기(521_13)를 포함할 수 있으며, 제1 보안 정보 저장 회로(521_2)는 다수의 엔트리들을 포함하는 보안 정보를 저장할 수 있다. 보안 정보는 스토리지 장치(520)에 접근할 수 있는 다수의 가상 머신들 각각에 대응하는 보안 정보를 포함할 수 있고, 일 예로서 다수의 가상 머신들 각각을 나타내는 가상 머신 정보(VM Info) 및 이에 맵핑된 정보로서 메모리 어드레스(RAM ADDR) 및 명칭 공간 ID (NSID)을 포함할 수 있다.Taking the operation of the first virtual function (VF 1) as an example, the security manager 521_1 may include a request decoder 521_11, a comparator 521_12, and a stop controller 521_13, and the first security information storage circuit 521_2 ) may store security information including a number of entries. The security information may include security information corresponding to each of a plurality of virtual machines that can access the
일 실시 예에서, 호스트(510)로부터의 커맨드에 따라 스토리지 장치(520) 내에 보안 정보가 설정된 이후, 호스트(510)에서 하나 이상의 가상 머신들이 추가로 생성될 수 있으며, 이에 따라 스토리지 장치(520) 내에서 보안 정보가 업데이트될 수 있다. 예컨대, 스토리지 장치(520) 내에서 생성되는 다수의 가상 기능들 각각에 보안 정보가 설정될 수 있고, 호스트(510)에서 가상 머신이 추가 또는 삭제되는 경우, 다수의 가상 기능들에 설정되는 보안 정보가 함께 업데이트될 수 있다.In one embodiment, after security information is set in the
요청 디코더(521_11)는 제1 가상 기능(VF 1)으로 제공되는 독출 요청(Req_R)에 대한 디코딩 동작을 수행하고, 독출 요청(Req_R)으로부터 적어도 하나의 정보를 추출할 수 있으며, 일 예로서 독출 요청(Req_R)을 생성한 가상 머신을 나타내는 가상 머신 정보, 입출력 큐의 위치를 나타내는 메모리 어드레스 및 접근 대상의 명칭 공간 ID 를 추출할 수 있다. 예시적인 실시예에서, 가상 머신 정보는 NVMe 인터페이스에 따른 패킷 생성 과정에서 패킷에 부가될 수 있고, 메모리 어드레스 및 명칭 공간 ID 는 데이터 접근을 요청하는 가상 머신 측에서 생성되어 패킷에 포함될 수 있다.The request decoder 521_11 may perform a decoding operation on the read request Req_R provided to the first
비교기(521_12)는 요청 디코더(521_11)로부터 추출된 정보와 제1 보안 정보 저장 회로(521_2)에 저장된 보안 정보의 매칭을 통한 비교 동작을 수행하고, 수행 결과를 중지 제어기(521_13)로 제공할 수 있다. 중지 제어기(521_13)는 수신된 비교 결과에 기초하여 독출 요청(Req_R)의 처리를 중지시킬 지 여부를 나타내는 중지 신호(Info_A)를 출력할 수 있고, 제1 가상 기능(VF 1)은 중지 신호(Info_A)에 응답하여 독출 요청(Req_R)의 처리를 중지시킴으로써, 정상적인 권한을 갖지 않는 가상 머신으로부터의 명칭 공간의 접근을 차단할 수 있다.The comparator 521_12 may perform a comparison operation by matching the information extracted from the request decoder 521_11 with the security information stored in the first security information storage circuit 521_2, and provide the execution result to the stop controller 521_13. there is. The stop controller 521_13 may output a stop signal Info_A indicating whether to stop processing the read request Req_R based on the received comparison result, and the first
도 6 및 도 7은 본 개시의 예시적인 실시예들에 따른 데이터 처리 시스템의 동작방법을 나타내는 플로우차트이다. 도 6 및 도 7 각각에 도시된 구성들 중 일부는 호스트에서 수행되는 동작일 수 있고, 다른 일부는 스토리지 장치에서 수행되는 동작일 수 있다.6 and 7 are flowcharts illustrating an operating method of a data processing system according to exemplary embodiments of the present disclosure. Some of the configurations shown in FIGS. 6 and 7 may be operations performed by a host, and others may be operations performed by a storage device.
도 6을 참조하면, 호스트 및 스토리지 장치는 데이터 처리 시스템을 구성할 수 있고, 호스트 내에서 다수의 가상 머신들이 생성될 수 있다. 예컨대, 호스트 내의 가상 머신 매니저는 제1 가상 머신을 생성할 수 있고(S11), 가상 머신 매니저는 제1 가상 머신이 스토리지 장치를 접근하기 위한 각종 관리를 수행할 수 있다. 예컨대, 가상 머신 매니저는 제1 가상 머신에 제1 입출력 큐(IOQ)를 할당할 수 있으며, 제1 가상 머신에 연관되는 하나 이상의 제1 명칭 공간을 할당할 수 있다(S12). 또한, 가상 머신 매니저는 호스트 메모리 내에서 제1 가상 머신에 할당된 제1 입출력 큐(IOQ)의 위치를 나타내는 제1 메모리 어드레스 및 제1 명칭 공간 ID 를 제1 가상 머신으로 제공할 수 있다.Referring to FIG. 6 , a host and a storage device may configure a data processing system, and multiple virtual machines may be created in the host. For example, a virtual machine manager in the host may create a first virtual machine (S11), and the virtual machine manager may perform various management for the first virtual machine to access the storage device. For example, the virtual machine manager may allocate a first input/output queue (IOQ) to the first virtual machine and may allocate one or more first name spaces associated with the first virtual machine (S12). Also, the virtual machine manager may provide a first memory address indicating a location of a first input/output queue (IOQ) allocated to the first virtual machine in the host memory and a first namespace ID to the first virtual machine.
또한, 본 개시의 예시적인 실시예에 따라, 호스트는 제1 가상 머신에 관련된 보안 정보를 스토리지 장치로 제공할 수 있으며, 일 예로서 호스트의 요청에 따라 스토리지 장치 내에서 제1 가상 머신에 대응되는 제1 가상 기능이 생성될 수 있다. 제1 가상 기능에는 다수의 가상 머신들에 대한 보안 정보가 저장될 수 있고, 예컨대 제1 가상 기능의 저장 회로에 제1 가상 머신에 관련하여 생성된 보안 정보가 설정될 수 있다(S13). 보안 정보는 다양한 정보들을 포함할 수 있고, 예컨대 전술한 실시예들에 따라 제1 가상 머신을 나타내는 가상 머신 정보, 그리고 이에 맵핑되는 제1 가상 머신에 관련된 고유 정보로서 제1 메모리 어드레스 및 제1 명칭 공간 ID 를 포함할 수 있다.In addition, according to an exemplary embodiment of the present disclosure, the host may provide security information related to the first virtual machine to the storage device. For example, according to a request of the host, a storage device corresponding to the first virtual machine A first virtual function may be created. Security information for a plurality of virtual machines may be stored in the first virtual function, and, for example, security information generated in relation to the first virtual machine may be set in a storage circuit of the first virtual function (S13). The security information may include various types of information, for example, virtual machine information indicating the first virtual machine according to the above-described embodiments, and unique information related to the first virtual machine mapped thereto, such as a first memory address and a first name. Can contain space ID.
이후, 호스트는 추가의 가상 머신을 생성할 수 있고, 일 예로서 제2 가상 머신을 생성할 수 있다(S14). 또한, 가상 머신 매니저의 제어에 기초하여, 제2 가상 머신에는 상기 제1 가상 머신과는 서로 다른 위치의 제2 입출력 큐(IOQ)가 할당될 수 있으며, 제2 가상 머신에는 제2 명칭 공간이 할당될 수 있다(S15). 또한, 가상 머신 매니저는 호스트 메모리 내에서 제2 가상 머신에 할당된 제2 입출력 큐(IOQ)의 위치를 나타내는 제2 메모리 어드레스 및 제2 명칭 공간 ID 를 제2 가상 머신으로 제공할 수 있다.Thereafter, the host may create an additional virtual machine, and may create a second virtual machine as an example (S14). Also, based on the control of the virtual machine manager, a second input/output queue (IOQ) at a location different from that of the first virtual machine may be allocated to the second virtual machine, and a second name space may be assigned to the second virtual machine. It can be assigned (S15). Also, the virtual machine manager may provide a second memory address indicating a location of a second input/output queue (IOQ) allocated to the second virtual machine in the host memory and a second namespace ID to the second virtual machine.
한편, 스토리지 장치 내에 구비되는 다수의 가상 기능들 각각에는, 호스트에 생성된 다수의 가상 머신들에 대한 보안 정보가 설정될 수 있고, 이에 따라 호스트는 제2 가상 머신에 관련하여 생성된 보안 정보를 제1 가상 기능으로 제공하고, 이에 따라 제1 가상 기능의 저장 회로에 제2 가상 머신에 관련된 보안 정보가 업데이트될 수 있다(S16).Meanwhile, in each of a plurality of virtual functions provided in the storage device, security information for a plurality of virtual machines created in the host may be set, and accordingly, the host transmits security information generated in relation to the second virtual machine. It is provided to the first virtual function, and accordingly, security information related to the second virtual machine may be updated in the storage circuit of the first virtual function (S16).
도 7은 스토리지 장치 측에서 보안 정보를 기초로 호스트로부터의 독출 요청의 처리를 중지하는 예를 나타내며, 일 예로서 스토리지 장치 내에 생성되는 제1 가상 기능이 호스트로부터 독출 요청을 수신할 수 있다(S21). 제1 가상 기능이 호스트의 제1 가상 머신에 대응되어 생성된 경우, 제1 가상 머신은 제1 가상 기능이 접근하는 스토리지 장치 내의 명칭 공간에 대한 정상적인 접근 권한을 갖는 것으로 판단될 수 있는 반면에, 제1 가상 머신과 다른 가상 머신(예컨대, 제2 가상 머신)은 제1 가상 기능이 접근하는 스토리지 장치 내의 명칭 공간에 대한 정상적인 접근 권한을 갖지 않는 것으로 판단될 수 있다.7 illustrates an example of stopping processing of a read request from a host based on security information at the storage device side. As an example, a first virtual function created in the storage device may receive a read request from the host (S21 ). When the first virtual function is created in correspondence with the first virtual machine of the host, the first virtual machine may be determined to have normal access rights to the namespace in the storage device to which the first virtual function accesses. It may be determined that a virtual machine (eg, a second virtual machine) different from the first virtual machine does not have normal access rights to a namespace in the storage device accessed by the first virtual function.
제1 가상 기능 내의 보안 매니저는, 전술한 실시예들에 따른 독출 요청에 대한 디코딩 처리를 통해 각종 정보를 추출할 수 있고, 추출된 정보로부터 독출 요청을 전송한 가상 머신을 나타내는 가상 머신 정보를 확인할 수 있다(S22). 또한, 제1 가상 기능 내에 설정된 보안 정보는 다수의 가상 머신들에 대응하는 보안 정보들을 포함할 수 있고, 상기 독출 요청으로부터 추출된 가상 머신 정보에 대응되는 보안 정보가 보안 정보 저장 회로로부터 독출될 수 있다(S23).The security manager in the first virtual function may extract various types of information through decoding processing of the read request according to the above-described embodiments, and check virtual machine information representing the virtual machine that has transmitted the read request from the extracted information. It can (S22). Also, security information set in the first virtual function may include security information corresponding to a plurality of virtual machines, and security information corresponding to the virtual machine information extracted from the read request may be read from a security information storage circuit. Yes (S23).
추출된 정보에 포함되는 메모리 어드레스(RA_E)와 보안 정보에 해당하는 메모리 어드레스(RAM ADDR)의 매칭 여부가 판단될 수 있고, 또한 추출된 정보에 포함되는 명칭 공간 ID(NS_E)와 보안 정보에 해당하는 명칭 공간 ID (NSID)의 매칭 여부를 판단하는 비교 동작이 수행될 수 있으며(S24), 비교 결과에 따라 독출 요청의 처리가 진행 또는 중지될 수 있다. 예컨대, 독출 요청으로부터 추출된 메모리 어드레스(RA_E) 및 명칭 공간 ID(NS_E) 중 적어도 하나가 보안 정보에 해당하는 메모리 어드레스(RAM ADDR) 및 명칭 공간 ID (NSID)와 상이한 경우에는 독출 요청의 처리가 중지되는 반면에(S26), 독출 요청으로부터 추출된 메모리 어드레스(RA_E) 및 명칭 공간 ID(NS_E)가 보안 정보에 해당하는 메모리 어드레스(RAM ADDR) 및 명칭 공간 ID (NSID)과 동일한 경우에는 독출 요청의 처리가 진행되고, 완료 응답이 호스트로 전송될 수 있다(S25).It can be determined whether the memory address (RA_E) included in the extracted information and the memory address (RAM ADDR) corresponding to the security information match, and also corresponds to the namespace ID (NS_E) and the security information included in the extracted information. A comparison operation may be performed to determine whether the namespace IDs (NSIDs) matching each other may be performed (S24), and processing of the read request may proceed or be stopped according to the comparison result. For example, when at least one of the memory address (RA_E) and the namespace ID (NS_E) extracted from the read request is different from the memory address (RAM ADDR) and the namespace ID (NSID) corresponding to security information, the read request is not processed. While stopped (S26), if the memory address (RA_E) and namespace ID (NS_E) extracted from the read request are identical to the memory address (RAM ADDR) and namespace ID (NSID) corresponding to security information, the read request The processing of is in progress, and a completion response may be transmitted to the host (S25).
도 8 및 도 9은 본 개시의 예시적인 실시예에 따른 보안 데이터의 설정 및 이용 과정을 나타내는 블록도이다. 8 and 9 are block diagrams illustrating a process of setting and using secure data according to an exemplary embodiment of the present disclosure.
도 8을 참조하면, 데이터 처리 시스템(600)은 호스트(610)와 스토리지 장치(620)를 포함할 수 있고, 호스트(610)는 가상 머신 매니저(611), 하나 이상의 가상 머신들(VM1 ~ VM4) 및 호스트 메모리(613)를 포함할 수 있다. 또한, 스토리지 장치(620)는 컨트롤러(621)를 포함할 수 있고, 컨트롤러(621) 내에는 본 개시의 예시적인 실시예에 따른 접근 권한 제어기가 구비될 수 있다. 또한, 접근 권한 제어기는 전술한 실시예들에 따라 보안 매니저 및 보안 정보 저장 회로(622)를 포함할 수 있다. 도 9에는 도시되지 않았으나, 컨트롤러(621) 내에는 다수의 가상 기능들이 구현될 수 있고, 각각의 가상 기능에 보안 정보 저장 회로(622)가 포함될 수 있을 것이다. 또한, 스토리지 장치(620)는 컨트롤러(621)의 제어에 기초하여 데이터가 기록 및 독출되는 다수의 명칭 공간들을 포함할 수 있을 것이다.Referring to FIG. 8 , a
제1 가상 머신(612)를 예로 들면, 제1 가상 머신(612)은 가상 머신 매니저(611)로 입출력 큐(IOQ)의 생성을 요청할 수 있다. 가상 머신 매니저(611)는 요청에 응답하여 호스트 메모리(613) 내에서 스토리지 장치(620)와의 통신에 이용될 입출력 큐(IOQ) 또는 입출력 큐(IOQ)를 나타내는 메모리 어드레스(RA)를 할당할 수 있다. Taking the first
호스트(610)는 다수의 가상 머신들에 할당된 명칭 공간들 및 입출력 큐에 관련된 정보를 스토리지 장치(620)로 제공할 수 있으며, 일 예로서 입출력 큐(IOQ)가 생성되었음을 나타내는 제1 커맨드를 스토리지 장치(620)로 제공할 수 있다. 예시적인 실시예에서, 호스트(610)는 인증 서브미션 큐(Admin Submission Queue, 614)를 포함할 수 있고, 제1 커맨드는 인증 서브미션 큐(614)를 통해 전송될 수 있다. 스토리지 장치(620)는 상기 제1 커맨드에 응답하여 다수의 가상 머신들에 관련된 정보들을 저장할 수 있으며, 예컨대 각각의 생성된 입출력 큐(IOQ)의 정보, 입출력 큐(IOQ)의 위치를 나타내는 메모리 어드레스(RAM ADDR), 그리고 입출력 큐(IOQ)를 통해 데이터를 통신할 명칭 공간을 나타내는 정보(명칭 공간 ID)가 보안 정보 저장 회로(622)에 저장될 수 있다.The
이후, 호스트(610)는 다수의 가상 머신들 각각에 대해 명칭 공간을 연관시킬 수 있고, 명칭 공간의 연관 결과에 따라 전술한 실시예에서의 설정 커맨드를 제2 커맨드로서 스토리지 장치(620)로 제공할 수 있다. 상기 설정 커맨드에는, 다수의 가상 머신들 각각에 할당된 입출력 큐(IOQ)를 나타내는 정보가 포함될 수 있다.Thereafter, the
도 8에 도시된 바와 같이, 스토리지 장치(620)는 호스트(610)로부터의 설정 커맨드에 응답하여 보안 정보 저장 회로(622)에 보안 정보를 저장할 수 있으며, 일 예로서 제1 가상 머신 정보(VM 1)는 제1 및 제2 입출력 큐(IOQ0, IOQ1)를 나타내는 메모리 어드레스(A, B)에 맵핑되고, 또한 제1 및 제2 명칭 공간(NS1, NS2)을 나타내는 명칭 공간 ID 에 맵핑될 수 있다. 이와 유사하게, 제2 가상 머신 정보(VM 2)는 제3 및 제4 입출력 큐(IOQ2, IOQ3)를 나타내는 메모리 어드레스(C, D)에 맵핑되고, 또한 제2 내지 제5 명칭 공간(NS2 ~ NS5)을 나타내는 명칭 공간 ID 에 맵핑될 수 있다. 예시적인 실시예에서, 제3 및 제4 명칭 공간(NS3, NS4)에 대한 데이터 접근은 제3 입출력 큐(IOQ2)를 통해 수행될 수 있고, 제2 및 제5 명칭 공간(NS2, NS5)에 대한 데이터 접근은 제4 입출력 큐(IOQ3)를 통해 수행될 수 있다.As shown in FIG. 8 , the
도 9는 본 개시의 예시적인 실시예에 따른 보안 정보에 대한 매칭 동작을 나타낸다. 도 9를 참조하면, 제1 가상 머신(612)은 NVMe 인터페이스에 따른 패킷을 독출 요청으로서 제1 입출력 큐(IOQ0)에 저장할 수 있고, 스토리지 장치(620)는 제1 입출력 큐(IOQ0) 내의 서브미션 큐의 정보를 페치하기 위한 요청을 호스트(610)로 전송할 수 있다. 또한, 제1 입출력 큐(IOQ0) 내의 서브미션 큐에 저장된 독출 요청이 스토리지 장치(620)로 전송될 수 있다.9 illustrates a matching operation for secure information according to an exemplary embodiment of the present disclosure. Referring to FIG. 9 , the first
스토리지 장치(620)는 독출 요청을 디코딩함으로써 독출 요청에 포함된 각종 정보들을 추출할 수 있고, 독출 요청을 생성한 가상 머신 정보(VN Info)와, 입출력 큐의 위치를 나타내는 메모리 어드레스(또는, 서브미션 큐의 정보(SQID))와 함께, 접근 대상의 명칭 공간을 나타내는 명칭 공간 ID(NSID)를 추출할 수 있다. 컨트롤러(621) 내의 보안 정보는 다수의 엔트리들을 포함할 수 있고, 독출 요청으로부터 추출된 가상 머신 정보(VN Info)에 대응하는 엔트리로부터, 가상 머신 정보(VN Info)에 맵핑된 정보를 독출 요청으로부터 추출된 정보와 비교할 수 있다. 예컨대, 서브미션 큐의 정보(SQID)가 보안 정보에 포함된 메모리 어드레스(RAM ADDR)에 속하는 지 또는 일치하는 지 여부가 확인될 수 있고, 독출 요청으로부터 추출된 명칭 공간 ID(NSID)가 보안 정보에 포함된 명칭 공간 ID(NSID)와 동일한 지 여부가 판단될 수 있다.The
도 10은 본 개시의 다른 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다. 도 10에서는 스토리지 장치에 싱글 루트 입출력 가상화(SR-IOV; single root input/output virtualization) 기술이 적용되지 않음에 따라, 본 개시의 실시예가 PCIe 물리적 기능(PF)에 적용되는 경우가 예시된다.10 is a block diagram illustrating a data processing system according to another embodiment of the present disclosure. 10 illustrates a case in which the embodiment of the present disclosure is applied to a PCIe physical function (PF) as single root input/output virtualization (SR-IOV) technology is not applied to the storage device.
도 10을 참조하면, 데이터 처리 시스템(700)은 호스트에 포함되는 다수의 가상 머신들(710_1 ~ 710_N)을 포함할 수 있고, 다수의 가상 머신들(710_1 ~ 710_N)은 PCIe 버스를 통해 스토리지 장치(예컨대, SSD(720))와 통신할 수 있다. SSD(720)는 하나 이상의 물리적 기능으로서 제1 물리적 기능(721) 및 제2 물리적 기능(722)을 포함할 수 있고, 또한 다수의 명칭 공간들(723_1 ~ 723_K)을 포함할 수 있다.Referring to FIG. 10 , a
호스트는 제1 물리적 기능(721) 및 제2 물리적 기능(722)을 통한 접근을 구분하도록 서로 다른 아이디(ID)를 제1 및 제2 물리적 기능들(721, 722)에 할당할 수 있고, 호스트로부터의 접근 요청에 부가된 아이디(ID)에 따라, 접근 요청이 PCIe 버스를 통해 제1 물리적 기능(721) 또는 제2 물리적 기능(722)으로 제공될 수 있다. 제1 물리적 기능(721) 및 제2 물리적 기능(722) 각각은 본 개시의 예시적인 실시예에 따른 접근 권한 제어기(또는, 보안 매니저)를 포함할 수 있고, 제1 물리적 기능(721) 및 제2 물리적 기능(722) 각각에는 본 개시의 예시적인 실시예들에 따른 다수의 가상 머신들(710_1 ~ 710_N)에 대한 보안 정보가 저장될 수 있다.The host may assign different IDs to the first and second
다수의 가상 머신들(710_1 ~ 710_N)은 제1 물리적 기능(721) 또는 제2 물리적 기능(722)을 통해 하나 이상의 명칭 공간들에 접근할 수 있고, 접근 권한을 판단하기 위하여 제1 물리적 기능(721) 및 제2 물리적 기능(722) 각각에서 전술한 실시예들에 따른 보안 정보를 이용한 매칭 동작이 수행될 수 있다. 보안 정보를 이용한 매칭 결과에 따라, 가상 머신에 의한 접근 요청의 처리가 진행되거나 또는 처리가 중지될 수 있을 것이다.The plurality of virtual machines 710_1 to 710_N may access one or more namespaces through a first
도 11은 불휘발성 메모리에 포함되는 셀 블록의 구현 예를 나타내는 사시도이다.11 is a perspective view illustrating an implementation example of a cell block included in a nonvolatile memory.
도 11을 참조하면, 본 개시의 명칭 공간에 할당될 수 있는 셀 블록(BLKa)은 3 차원 구조를 가질 수 있다. 일 예로서, 셀 블록(BLKa) 기판(SUB)에 대해 수직 방향으로 형성되어 있으며, 기판(SUB)은 제1 도전형(예를 들어, p 타입)을 가지며, 기판(SUB) 상에 제2 수평 방향(HD2)을 따라 신장되고, 제2 도전형(예를 들어, n 타입)의 불순물들이 도핑된 공통 소스 라인(CSL)이 제공된다. 인접한 두 공통 소스 라인(CSL) 사이의 기판(SUB)의 영역 상에, 제2 수평 방향(HD2)을 따라 신장되는 복수의 절연막들(IL)이 수직 방향(VD)을 따라 순차적으로 제공되며, 복수의 절연막들(IL)은 수직 방향(VD)을 따라 특정 거리만큼 이격된다. 예를 들어, 복수의 절연막들(IL)은 실리콘 산화물과 같은 절연 물질을 포함할 수 있다.Referring to FIG. 11 , a cell block BLKa that can be allocated to the name space of the present disclosure may have a 3D structure. As an example, the cell block BLKa is formed in a direction perpendicular to the substrate SUB, the substrate SUB has a first conductivity type (eg, p-type), and a second conductivity type is formed on the substrate SUB. A common source line CSL extending along the horizontal direction HD2 and doped with impurities of the second conductivity type (eg, n-type) is provided. On a region of the substrate SUB between two adjacent common source lines CSL, a plurality of insulating films IL extending along the second horizontal direction HD2 are sequentially provided along the vertical direction VD, The plurality of insulating layers IL are spaced apart by a specific distance along the vertical direction VD. For example, the plurality of insulating layers IL may include an insulating material such as silicon oxide.
인접한 두 공통 소스 라인들(CSL) 사이의 기판(SUB)의 영역 상에, 제1 수평 방향(HD1)을 따라 순차적으로 배치되며, 수직 방향(VD)을 따라 복수의 절연막들(IL)을 관통하는 복수의 필라들(pillars, P)이 제공된다. 예를 들어, 복수의 필라들(P)은 복수의 절연막들(IL)을 관통하여 기판(SUB)과 컨택할 것이다. 구체적으로, 각 필라(P)의 표면층(surface layer)(S)은 제1 타입을 갖는 실리콘 물질을 포함할 수 있고, 채널 영역으로 기능할 수 있다. 한편, 각 필라(P)의 내부층(I)은 실리콘 산화물과 같은 절연 물질 또는 에어 갭(air gap)을 포함할 수 있다.On the area of the substrate SUB between two adjacent common source lines CSL, the plurality of insulating layers IL are sequentially disposed along the first horizontal direction HD1 and pass through the plurality of insulating layers IL along the vertical direction VD. A plurality of pillars (P) are provided. For example, the plurality of pillars P penetrate the plurality of insulating layers IL and contact the substrate SUB. Specifically, a surface layer (S) of each pillar (P) may include a first type silicon material and may function as a channel region. Meanwhile, the inner layer I of each pillar P may include an insulating material such as silicon oxide or an air gap.
인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 절연막들(IL), 필라들(P) 및 기판(SUB)의 노출된 표면을 따라 전하 저장층(charge storage layer, CS)이 제공된다. 전하 저장층(CS)은 게이트 절연층(또는 '터널링 절연층'이라고 지칭함), 전하 트랩층 및 블로킹 절연층을 포함할 수 있다. 예를 들어, 전하 저장층(CS)은 ONO(oxide-nitride-oxide) 구조를 가질 수 있다. 또한, 인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 전하 저장층(CS)의 노출된 표면 상에, 선택 라인들(GSL, SSL) 및 워드 라인들(WL0 ~ WL7)과 같은 게이트 전극(GE)이 제공된다.In a region between two adjacent common source lines CSL, a charge storage layer CS is provided along the insulating layers IL, the pillars P, and the exposed surface of the substrate SUB. The charge storage layer CS may include a gate insulating layer (or referred to as 'tunneling insulating layer'), a charge trap layer, and a blocking insulating layer. For example, the charge storage layer CS may have an oxide-nitride-oxide (ONO) structure. In addition, in a region between two adjacent common source lines CSL, on the exposed surface of the charge storage layer CS, gate electrodes such as select lines GSL and SSL and word lines WL0 to WL7 (GE) is provided.
복수의 필라들(P) 상에는 드레인들 또는 드레인 컨택들(DR)이 각각 제공된다. 예를 들어, 드레인들 또는 드레인 컨택들(DR)은 제2 도전형을 갖는 불순물들이 도핑된 실리콘 물질을 포함할 수 있다. 드레인들(DR) 상에, 제1 수평 방향(HD1)으로 신장되고 제2 수평 방향(HD2)을 따라 특정 거리만큼 이격되어 배치된 비트 라인들(BL1 ~ BL3)이 제공된다.Drains or drain contacts DR are respectively provided on the plurality of pillars P. For example, the drains or drain contacts DR may include a silicon material doped with impurities of the second conductivity type. Bit lines BL1 to BL3 extending in the first horizontal direction HD1 and spaced apart from each other by a specific distance along the second horizontal direction HD2 are provided on the drains DR.
도 12는 본 개시의 실시예들에 따른 데이터 처리 시스템에서 SSD가 스토리지 장치에 적용된 경우를 나타내는 블록도이다. 12 is a block diagram illustrating a case in which an SSD is applied to a storage device in a data processing system according to embodiments of the present disclosure.
도 12를 참조하면, 데이터 처리 시스템(800)은 호스트(810) 및 SSD(820)를 포함할 수 있다. SSD(820)는 신호 커넥터를 통해 호스트(810)와 신호를 주고 받으며, 전원 커넥터를 통해 전원을 입력 받는다. SSD(820)는 SSD 컨트롤러(821), 보조 전원 장치(822) 및 불휘발성 메모리 장치들(823_1 ~ 823_n)을 포함할 수 있다. 불휘발성 메모리 장치들(823_1 ~ 823_n)은 수직 적층형 NAND 플래시 메모리 장치일 수 있다. 이때, SSD(820)는 도 1 내지 도 11을 참조하여 상술된 실시예들을 이용하여 구현될 수 있다. 즉, SSD 컨트롤러(821)는 접근 권한 제어기(821_1)를 구비할 수 있고, 접근 권한 제어기(821_1)는 호스트로부터의 설정 커맨드에 응답하여 저장되는 보안 정보를 포함할 수 있다. 또한, 접근 권한 제어기(821_1)는 호스트(810)에서 생성되는 다수의 가상 머신들로부터 접근 요청이 수신될 때마다 보안 정보를 이용한 접근 권한 판단 동작을 수행하고, 판단 결과에 따라 접근 요청의 처리를 중지할 수 있을 것이다.Referring to FIG. 12 , a
도 13은 본 개시의 예시적 실시예에 따른 스토리지 장치를 포함하는 데이터 센터(900)를 나타내는 블록도이다. 일부 실시예들에서, 도면들을 참조하여 전술된 스토리지 장치는, 데이터 센터(900)의 어플리케이션 서버 및/또는 스토리지 서버에 포함될 수 있다. 13 is a block diagram illustrating a
도 13을 참조하면, 데이터 센터(900)는 다양한 데이터를 수집하고 서비스를 제공할 수 있고, 데이터 스토리지 센터로 지칭될 수도 있다. 예를 들면, 데이터 센터(900)는 검색 엔진 및 데이터 베이스 운용을 위한 시스템일 수 있고, 은행 등의 기업 또는 정부기관에서 사용되는 컴퓨팅 시스템일 수도 있다. 도 13에 도시된 바와 같이, 데이터 센터(900)는 어플리케이션 서버들(50_1 ~ 50_n) 및 스토리지 서버들(60_1 ~ 60_m)을 포함할 수 있다. 어플리케이션 서버들(50_1 ~ 50_n)의 개수 n 및 스토리지 서버들(60_1 ~ 60_m)의 개수 m은 실시예에 따라 다양하게 선택될 수 있고, 어플리케이션 서버들(50_1 ~ 50_n)의 개수 n 및 스토리지 서버들(60_1 ~ 60_m)의 개수 m은 상이할 수 있다. Referring to FIG. 13 , a
어플리케이션 서버(50_1 ~ 50_n)는 프로세서(51_1 ~ 51_n), 메모리(52_1 ~ 52_n), 스위치(53_1 ~ 53_n), NIC(network interface controller)(54_1 ~ 54_n) 및 스토리지 장치(55_1 ~ 55_n) 중 적어도 하나를 포함할 수 있다. 프로세서(52_1 ~ 51_n)는 어플리케이션 서버(50_1 ~ 50_n)의 전반적인 동작을 제어할 수 있고, 메모리(52_1 ~ 52_n)에 억세스하여 메모리(52_1 ~ 52_n)에 로딩된 명령어들(instructions) 및/또는 데이터를 실행할 수 있다. 메모리(52_1 ~ 52_n)는 비제한적인 예시로서, DDR SDRAM(Double Data Rate Synchronous DRAM), HBM(High Bandwidth Memory), HMC(Hybrid Memory Cube), DIMM(Dual In-line Memory Module), Optane DIMM 또는 NVMDIMM(Non-Volatile DIMM)를 포함할 수 있다. The application servers 50_1 to 50_n include at least one of processors 51_1 to 51_n, memory 52_1 to 52_n, switches 53_1 to 53_n, network interface controllers (NICs) 54_1 to 54_n, and storage devices 55_1 to 55_n. may contain one. The processors 52_1 to 51_n may control overall operations of the application servers 50_1 to 50_n, and may access the memories 52_1 to 52_n to provide instructions and/or data loaded into the memories 52_1 to 52_n. can run The memories 52_1 to 52_n are, as non-limiting examples, DDR SDRAM (Double Data Rate Synchronous DRAM), HBM (High Bandwidth Memory), HMC (Hybrid Memory Cube), DIMM (Dual In-line Memory Module), Optane DIMM, or NVMDIMM (Non-Volatile DIMM) may be included.
실시예에 따라, 어플리케이션 서버(50_1 ~ 50_n)에 포함되는 프로세서들의 개수 및 메모리들의 개수는 다양하게 선택될 수 있다. 일부 실시예들에서, 프로세서(51_1 ~ 51_n)와 메모리(52_1 ~ 52_n)는 프로세서-메모리 페어를 제공할 수 있다. 일부 실시예들에서, 프로세서(51_1 ~ 51_n)와 메모리(52_1 ~ 52_n)의 개수는 상이할 수 있다. 프로세서(51_1 ~ 51_n)는 단일 코어 프로세서 또는 다중 코어 프로세서를 포함할 수 있다. 일부 실시예들에서, 도 13에서 점선으로 도시된 바와 같이, 어플리케이션 서버(50_1 ~ 50_n)에서 스토리지 장치(55_1 ~ 55_n)는 생략될 수도 있다. 어플리케이션 서버(50_1 ~ 50_n)에 포함되는 스토리지 장치(55_1 ~ 55_n)의 개수는 실시예에 따라 다양하게 선택될 수 있다. 프로세서(51_1 ~ 51_n), 메모리(52_1 ~ 52_n), 스위치(53_1 ~ 53_n), NIC(54_1 ~ 54_n) 및/또는 스토리지 장치(55_1 ~ 55_n)는, 도면들을 참조하여 전술된 링크를 통해서 상호 통신할 수 있다.Depending on embodiments, the number of processors and memories included in the application servers 50_1 to 50_n may be variously selected. In some embodiments, the processors 51_1 to 51_n and the memories 52_1 to 52_n may provide a processor-memory pair. In some embodiments, the number of processors 51_1 to 51_n and memories 52_1 to 52_n may be different. The processors 51_1 to 51_n may include single-core processors or multi-core processors. In some embodiments, as shown by dotted lines in FIG. 13 , the storage devices 55_1 to 55_n may be omitted from the application servers 50_1 to 50_n. The number of storage devices 55_1 to 55_n included in the application servers 50_1 to 50_n may be variously selected according to embodiments. Processors 51_1 to 51_n, memories 52_1 to 52_n, switches 53_1 to 53_n, NICs 54_1 to 54_n, and/or storage devices 55_1 to 55_n communicate with each other through the links described above with reference to the drawings. can do.
스토리지 서버(60_1 ~ 60_m)들은 프로세서(61_1 ~ 61_m), 메모리(62_1 ~ 62_m), 스위치(63_1 ~ 63_m), NIC(64_1 ~ 64_n) 및 스토리지 장치(65_1 ~ 65_m) 중 적어도 하나를 포함할 수 있다. 프로세서(61_1 ~ 61_m) 및 메모리(62_1 ~ 62_m)는, 전술된 어플리케이션 서버(50_1 ~ 50_n)의 프로세서(51_1 ~ 51_n) 및 메모리(52_1 ~ 52_n)와 유사하게 동작할 수 있다.The storage servers 60_1 to 60_m may include at least one of processors 61_1 to 61_m, memories 62_1 to 62_m, switches 63_1 to 63_m, NICs 64_1 to 64_n, and storage devices 65_1 to 65_m. there is. The processors 61_1 to 61_m and the memories 62_1 to 62_m may operate similarly to the processors 51_1 to 51_n and the memories 52_1 to 52_n of the application servers 50_1 to 50_n described above.
데이터 센터(900)에 구비되는 스토리지 장치(55_1 ~ 55_n) 및 스토리지 장치(65_1 ~ 65_m)에는 본 개시의 실시예들에 따른 스토리지 장치가 적용될 수 있으며, 이에 따라 스토리지 장치(55_1 ~ 55_n) 및 스토리지 장치(65_1 ~ 65_m)에는 데이터 접근 권한은 판단하기 위한 전술한 실시예들에서의 접근 권한 제어기 또는 보안 매니저가 구비될 수 있다. 또한, 보안 정보가 스토리지 장치(55_1 ~ 55_n) 및 스토리지 장치(65_1 ~ 65_m)에 저장될 수 있으며, 데이터 센터(900)에 가상화 기능이 적용되는 경우 스토리지 장치(55_1 ~ 55_n) 및 스토리지 장치(65_1 ~ 65_m)는 정상적인 접근 권한을 갖지 않는 가상 머신으로부터의 접근 요청의 처리를 중지할 수 있을 것이다.Storage devices 55_1 to 55_n and storage devices 65_1 to 65_m provided in the
어플리케이션 서버들(50_1 ~ 50_n) 및 스토리지 서버들(60_1 ~ 60_m)은 네트워크(70)를 통해 상호 통신할 수 있다. 일부 실시예들에서, 네트워크(70)는 FC(Fibre Channel) 또는 이더넷(Ethernet) 등을 이용하여 구현될 수 있다. FC는 상대적으로 고속의 데이터 전송에 사용되는 매체일 수 있고, 고성능/고가용성을 제공하는 광 스위치가 사용될 수 있다. 네트워크(70)의 액세스 방식에 따라 스토리지 서버들(60_1 ~ 60_m)은 파일 스토리지, 블록 스토리지, 또는 오브젝트 스토리지로서 제공될 수 있다.The application servers 50_1 to 50_n and the storage servers 60_1 to 60_m may communicate with each other through the
일부 실시예들에서, 네트워크(70)는 SAN(Storage Area Network)와 같은 스토리지 전용 네트워크일 수 있다. 예를 들어, SAN은 FC 네트워크를 이용할 수 있고 FCP(FC Protocol)에 따라 구현된 FC-SAN일 수 있다. 다르게는, SAN은 TCP/IP 네트워크를 이용하고 iSCSI(SCSI over TCP/IP 또는 Internet SCSI) 프로토콜에 따라 구현된 IP-SAN일 수 있다. 일부 실시예들에서, 네트워크(70)는 TCP/IP 네트워크와 같은 일반 네트워크일 수 있다. 예를 들면, 네트워크(70)는 FCoE(FC over Ethernet), NAS(Network Attached Storage), NVMe-oF(NVMe over Fabrics) 등의 프로토콜에 따라 구현될 수 있다.In some embodiments,
이하에서, 어플리케이션 서버(50_1) 및 스토리지 서버(60_1)가 주로 설명되나, 어플리케이션 서버(50_1)에 대한 설명은 다른 어플리케이션 서버(예컨대, 50_n)에도 적용될 수 있고, 스토리지 서버(60_1)에 대한 설명은 다른 스토리지 서버(예컨대, 60_m)에도 적용될 수 있는 점이 유의된다.Hereinafter, the application server 50_1 and the storage server 60_1 are mainly described, but the description of the application server 50_1 can also be applied to other application servers (eg, 50_n), and the description of the storage server 60_1 It is noted that it can also be applied to other storage servers (eg, 60_m).
어플리케이션 서버(50_1)는 사용자 또는 클라이언트가 저장을 요청한 데이터를 네트워크(70)를 통해 스토리지 서버들(60_1 ~ 60_m) 중 하나에 저장할 수 있다. 또한, 어플리케이션 서버(50_1)는 사용자 또는 클라이언트가 독출을 요청한 데이터를 스토리지 서버들(60_1 ~ 60_m) 중 하나로부터 네트워크(70)를 통해 획득할 수 있다. 예를 들어, 어플리케이션 서버(50_1)는 웹 서버 또는 DBMS(Database Management System) 등으로 구현될 수 있다.The application server 50_1 may store data requested by a user or client to be stored in one of the storage servers 60_1 to 60_m through the
어플리케이션 서버(50_1)는 네트워크(70)를 통해 다른 어플리케이션 서버(50_n)에 포함된 메모리(52_n) 및/또는 스토리지 장치(55_n)에 액세스할 수 있고, 그리고/또는 네트워크(70)를 통해 스토리지 서버들(60_1 ~ 60_m)에 포함된 메모리들(62_1 ~ 62_m) 및/또는 스토리지 장치들(65_1 ~ 65_m)에 액세스할 수 있다. 이에 따라, 어플리케이션 서버(50_1)는 어플리케이션 서버들(50_1 ~ 50_n) 및/또는 스토리지 서버들(60_1 ~ 60_m)에 저장된 데이터에 대해 다양한 동작들을 수행할 수 있다. 예를 들어, 어플리케이션 서버(50_1)는 어플리케이션 서버들(50_1 ~ 50_n) 및/또는 스토리지 서버들(60_1 ~ 60_m) 사이에서 데이터를 이동시키거나 복사(copy)하기 위한 명령어를 실행할 수 있다. 이 때 데이터는 스토리지 서버들(60_1 ~ 60_m)의 스토리지 장치로(65_1 ~ 65_m)부터 스토리지 서버들(60_1 ~ 60_m)의 메모리들(62_1 ~ 62_m)을 통해서 또는 직접적으로 어플리케이션 서버들(50_1 ~ 50_n)의 메모리(52_1 ~ 52_n)로 이동될 수 있다. 일부 실시예들에서, 네트워크(70)를 통해 이동하는 데이터는 보안 또는 프라이버시를 위해 암호화된 데이터일 수 있다.The application server 50_1 may access the memory 52_n and/or the storage device 55_n included in another application server 50_n through the
스토리지 서버(60_1)에서, 인터페이스(IF)는 프로세서(61_1)와 컨트롤러(CTRL)의 물리적 연결 및 NIC(64_1)와 컨트롤러(CTRL)의 물리적 연결을 제공할 수 있다. 예를 들어, 인터페이스(IF)는 스토리지 장치(65_1)를 전용 케이블로 직접 접속하는 DAS(Direct Attached Storage) 방식으로 구현될 수 있다. 또한, 예를 들어, 인터페이스(IF)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe(NVM express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC(embedded multi-media card), UFS(Universal Flash Storage), eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스, CXL(Compute eXpress Link) 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.In the storage server 60_1, the interface IF may provide a physical connection between the processor 61_1 and the controller CTRL and a physical connection between the NIC 64_1 and the controller CTRL. For example, the interface IF may be implemented in a Direct Attached Storage (DAS) method that directly connects the storage device 65_1 with a dedicated cable. Also, for example, interfaces (IF) include Advanced Technology Attachment (ATA), Serial ATA (SATA), external SATA (e-SATA), Small Computer Small Interface (SCSI), Serial Attached SCSI (SAS), and Peripheral SATA (PCI). Component Interconnection), PCIe (PCI express), NVMe (NVM express), IEEE 1394, USB (universal serial bus), SD (secure digital) card, MMC (multi-media card), eMMC (embedded multi-media card), It can be implemented in various interface methods such as UFS (Universal Flash Storage), eUFS (embedded Universal Flash Storage), CF (compact flash) card interface, CXL (Compute eXpress Link), and the like.
스토리지 서버(60_1)에서, 스위치(63_1)는 프로세서(61_1)의 제어에 따라 프로세서(61_1)와 스토리지 장치(65_1)를 선택적으로 접속시키거나, NIC(64_1)과 스토리지 장치(65_1)를 선택적으로 접속시킬 수 있다.In the storage server 60_1, the switch 63_1 selectively connects the processor 61_1 and the storage device 65_1 or selectively connects the NIC 64_1 and the storage device 65_1 under the control of the processor 61_1. can be connected.
일부 실시예들에서, NIC(64_1)는 네트워크 인터페이스 카드, 네트워크 어댑터 등을 포함할 수 있다. NIC(54_1)는 유선 인터페이스, 무선 인터페이스, 블루투스 인터페이스, 광학 인터페이스 등에 의해 네트워크(70)에 연결될 수 있다. NIC(54_1)는 내부 메모리, DSP, 호스트 버스 인터페이스 등을 포함할 수 있으며, 호스트 버스 인터페이스를 통해 프로세서(61_1) 및/또는 스위치(63_1) 등과 연결될 수 있다. 일부 실시예들에서, NIC(64_1)는 프로세서(61_1), 스위치(63_1), 스토리지 장치(65_1) 중 적어도 하나와 통합될 수도 있다.In some embodiments, NIC 64_1 may include a network interface card, network adapter, or the like. The NIC 54_1 may be connected to the
어플리케이션 서버(50_1 ~ 50_n) 또는 스토리지 서버들(60_1 ~ 60_m)에서 프로세서(51_1 ~ 51_m, 61_1 ~ 61_n)는 스토리지 장치들(55_1 ~ 55_n, 65_1 ~ 65_m) 또는 메모리(52_1 ~ 52_n, 62_1 ~ 62_m)로 커맨드를 전송하여 데이터를 프로그램하거나 리드할 수 있다. 이 때 데이터는 ECC(Error Correction Code) 엔진을 통해 에러 정정된 데이터일 수 있다. 데이터는 데이터 버스 변환(Data Bus Inversion: DBI) 또는 데이터 마스킹(Data Masking: DM) 처리된 데이터로서, CRC(Cyclic Redundancy Code) 정보를 포함할 수 있다. 데이터는 보안 또는 프라이버시를 위해 암호화된 데이터일 수 있다.In the application servers 50_1 to 50_n or the storage servers 60_1 to 60_m, the processors 51_1 to 51_m and 61_1 to 61_n are connected to the storage devices 55_1 to 55_n and 65_1 to 65_m or memories 52_1 to 52_n and 62_1 to 62_m. ) to program or read data. In this case, the data may be error-corrected data through an Error Correction Code (ECC) engine. The data is data subjected to data bus inversion (DBI) or data masking (DM) processing, and may include Cyclic Redundancy Code (CRC) information. The data may be encrypted data for security or privacy.
스토리지 장치(55_1 ~ 55_n, 65_1 ~ 65_m)는 프로세서(51_1 ~ 51_m, 61_1 ~ 61_n)로부터 수신된 독출 커맨드에 응답하여, 제어 신호 및 커맨드/어드레스 신호를 비휘발성 메모리 장치(예컨대 NAND 플래시 메모리 장치, NVM)로 전송할 수 있다. 이에 따라 비휘발성 메모리 장치(NVM)로부터 데이터를 독출하는 경우, 독출 인에이블 신호는 데이터 출력 제어 신호로 입력되어, 데이터를 DQ 버스로 출력하는 역할을 할 수 있다. 독출 인에이블 신호를 이용하여 데이터 스트로브 신호를 생성할 수 있다. 커맨드와 어드레스 신호는 기입 인에이블 신호의 상승 엣지 또는 하강 엣지에 따라 래치될 수 있다.In response to read commands received from the processors 51_1 to 51_m and 61_1 to 61_n, the storage devices 55_1 to 55_n and 65_1 to 65_m transmit control signals and command/address signals to nonvolatile memory devices (eg, NAND flash memory devices, NVM). Accordingly, when data is read from the non-volatile memory device NVM, the read enable signal may be input as a data output control signal and output data to the DQ bus. A data strobe signal may be generated using the read enable signal. The command and address signals may be latched according to a rising edge or a falling edge of the write enable signal.
컨트롤러(CTRL)는 스토리지 장치(65_1)의 동작을 전반적으로 제어할 수 있다. 일 실시예에서, 컨트롤러(CTRL)는 SRAM(Static Random Access Memory)을 포함할 수 있다. 컨트롤러(CTRL)는 기입 커맨드에 응답하여 비휘발성 메모리 장치(NVM)에 데이터를 기입할 수 있고, 또는 독출 커맨드에 응답하여 비휘발성 메모리 장치(NVM)로부터 데이터를 독출할 수 있다. 예를 들어, 기입 커맨드 및/또는 독출 커맨드는 호스트, 예컨대 스토리지 서버(60_1) 내의 프로세서(61_1), 다른 스토리지 서버(60_m) 내의 프로세서(61_m) 또는 어플리케이션 서버(50_1 ~ 50_n) 내의 프로세서(51_1 ~ 51_n)로부터 제공된 요청에 기초하여 생성될 수 있다. 버퍼(BUF)는 비휘발성 메모리 장치(NVM)에 기입될 데이터 또는 비휘발성 메모리 장치(NVM)로부터 독출된 데이터를 임시 저장(버퍼링)할 수 있다. 일부 실시예들에서 버퍼(BUF)는 DRAM을 포함할 수 있다. 또한, 버퍼(BUF)는 메타 데이터를 저장할 수 있고, 메타 데이터는 사용자 데이터 또는 비휘발성 메모리 장치(NVM)를 관리하기 위해 컨트롤러(CTRL)에서 생성된 데이터를 지칭할 수 있다. 스토리지 장치(65_1)는 보안 또는 프라이버시를 위해 SE(Secure Element)를 포함할 수 있다.The controller CTRL may control the overall operation of the storage device 65_1. In one embodiment, the controller CTRL may include static random access memory (SRAM). The controller CTRL may write data into the nonvolatile memory device NVM in response to a write command, or may read data from the nonvolatile memory device NVM in response to a read command. For example, a write command and/or a read command may be applied to a host, for example, a processor 61_1 in a storage server 60_1, a processor 61_m in another storage server 60_m, or a processor 51_1 to 50_n in an application server 50_1 to 50_n. 51_n) may be generated based on a request provided. The buffer BUF may temporarily store (buffer) data to be written in the non-volatile memory device NVM or data read from the non-volatile memory device NVM. In some embodiments, the buffer BUF may include DRAM. Also, the buffer BUF may store meta data, and the meta data may refer to user data or data generated by the controller CTRL to manage the non-volatile memory device NVM. The storage device 65_1 may include a Secure Element (SE) for security or privacy.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As above, exemplary embodiments have been disclosed in the drawings and specifications. Although the embodiments have been described using specific terms in this specification, they are only used for the purpose of explaining the technical idea of the present disclosure, and are not used to limit the scope of the present disclosure described in the claims. . Therefore, those of ordinary skill in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical scope of protection of the present disclosure should be determined by the technical spirit of the appended claims.
Claims (20)
다수의 셀 블록들을 포함하고, 상기 다수의 셀 블록들은 다수의 명칭 공간(NameSpace)들로 분류되는 불휘발성 메모리; 및
상기 호스트로부터의 설정 커맨드에 응답하여 상기 다수의 명칭 공간들에 대한 접근 권한에 관련된 보안 정보를 저장하고, 상기 호스트로부터 제공된 데이터 접근 요청을 디코딩함으로써 적어도 하나의 제1 정보를 추출하며, 상기 보안 정보와 상기 추출된 적어도 하나의 제1 정보를 비교하여 상기 데이터 접근 요청의 처리를 중지하는 컨트롤러를 구비하고,
상기 컨트롤러 내에 저장되는 보안 정보는, 상기 호스트에서 생성되는 제1 내지 제N 가상 머신들을 나타내는 가상 머신 정보들과, 상기 제1 내지 제N 가상 머신들에 대해 고유하게 설정되는 고유 정보들 사이의 맵핑 정보를 포함하는 것을 특징으로 하는 스토리지 장치(단, N은 2 이상의 정수).A storage device communicating with a host,
a nonvolatile memory including a plurality of cell blocks, wherein the plurality of cell blocks are classified into a plurality of NameSpaces; and
In response to a configuration command from the host, security information related to access rights to the plurality of namespaces is stored, and at least one first information is extracted by decoding a data access request provided from the host, and the security information And a controller for stopping processing of the data access request by comparing the extracted at least one piece of first information,
The security information stored in the controller is a mapping between virtual machine information representing the first to Nth virtual machines generated in the host and unique information uniquely set for the first to Nth virtual machines. A storage device characterized by including information (where N is an integer greater than or equal to 2).
상기 보안 정보는 상기 제1 내지 제N 가상 머신들에 대응하는 N 개의 엔트리들을 포함하며,
각각의 엔트리는, 어느 하나의 가상 머신을 나타내는 가상 머신 정보와, 상기 가상 머신 정보에 맵핑된 고유 정보로서 상기 가상 머신에 할당된 입출력 큐의 위치를 나타내는 메모리 어드레스 및 상기 가상 머신에 연관된 명칭 공간을 나타내는 명칭 공간 아이디를 포함하는 것을 특징으로 하는 스토리지 장치.According to claim 1,
The security information includes N entries corresponding to the first to Nth virtual machines;
Each entry includes virtual machine information representing one virtual machine, a memory address representing the location of an input/output queue allocated to the virtual machine as unique information mapped to the virtual machine information, and a namespace associated with the virtual machine. A storage device characterized in that it includes a namespace ID indicating.
상기 메모리 어드레스는, 상기 호스트에 구비되는 호스트 메모리 내에서 상기 입출력 큐의 위치를 나타내는 정보를 포함하는 것을 특징으로 하는 스토리지 장치.According to claim 2,
The memory address may include information representing a location of the input/output queue in a host memory provided in the host.
상기 호스트 내에서 추가의 가상 머신이 생성됨에 따라, 상기 추가의 가상 머신에 대한 보안 정보가 상기 컨트롤러 내에 업데이트되는 것을 특징으로 하는 스토리지 장치.According to claim 2,
When an additional virtual machine is created in the host, security information for the additional virtual machine is updated in the controller.
상기 컨트롤러는, 상기 제1 내지 제N 가상 머신들에 대응하는 제1 내지 제N 가상 기능들을 구비하고,
상기 제1 내지 제N 가상 기능들 각각은, 상기 보안 정보를 저장하는 보안 정보 저장 회로와, 상기 저장된 보안 정보를 이용하여 상기 데이터 접근 요청을 제공한 가상 머신의 접근 권한을 판단하는 보안 매니저를 포함하는 것을 특징으로 하는 스토리지 장치.According to claim 1,
The controller includes first to Nth virtual functions corresponding to the first to Nth virtual machines;
Each of the first to Nth virtual functions includes a security information storage circuit for storing the security information, and a security manager for determining the access authority of the virtual machine that has provided the data access request by using the stored security information. A storage device characterized in that for.
상기 제1 내지 제N 가상 기능들은, 가상화 기술에 따른 독립된 경로들을 통해 상기 제1 내지 제N 가상 머신들의 상기 불휘발성 메모리에 대한 접근을 제공하는 것을 특징으로 하는 스토리지 장치.According to claim 5,
The storage device of claim 1 , wherein the first to Nth virtual functions provide access to the nonvolatile memory of the first to Nth virtual machines through independent paths according to a virtualization technology.
상기 제1 가상 기능은, 상기 제1 가상 머신으로부터 독출 요청을 상기 데이터 접근 요청으로서 수신하고, 상기 독출 요청을 디코딩하여 상기 독출 요청에 포함된 제1 정보를 추출하며,
상기 제1 정보와 상기 보안 정보 내에서 상기 제1 가상 머신을 나타내는 제1 가상 머신 정보에 맵핑된 고유 정보들을 비교한 결과에 따라, 상기 제1 가상 머신으로부터의 상기 독출 요청을 처리하는 것을 특징으로 하는 스토리지 장치.According to claim 5,
The first virtual function receives a read request from the first virtual machine as the data access request, decodes the read request, and extracts first information included in the read request;
Characterized in that the read request from the first virtual machine is processed according to a result of comparing the first information with unique information mapped to first virtual machine information representing the first virtual machine in the security information. storage device.
상기 제1 가상 기능은, 상기 제2 가상 머신으로부터 독출 요청을 상기 데이터 접근 요청으로서 수신하고, 상기 독출 요청을 디코딩하여 상기 독출 요청에 포함된 제1 정보를 추출하며,
상기 제1 정보와 상기 보안 정보 내에서 상기 제2 가상 머신을 나타내는 제2 가상 머신 정보에 맵핑된 고유 정보들을 비교한 결과에 따라, 상기 제2 가상 머신으로부터의 상기 독출 요청의 처리를 중지하는 것을 특징으로 하는 스토리지 장치.According to claim 5,
The first virtual function receives a read request from the second virtual machine as the data access request, decodes the read request, and extracts first information included in the read request;
Stopping processing of the read request from the second virtual machine according to a result of comparing the first information with unique information mapped to second virtual machine information representing the second virtual machine in the security information. characterized storage device.
상기 스토리지 장치는 다수 개의 플래시 메모리 칩들을 포함하고, 각각의 플래시 메모리 칩은 다수 개의 셀 블록들을 포함하며,
상기 다수의 명칭 공간들 각각에는 적어도 하나의 셀 블록이 할당되는 것을 특징으로 하는 스토리지 장치.According to claim 1,
The storage device includes a plurality of flash memory chips, each flash memory chip includes a plurality of cell blocks,
At least one cell block is allocated to each of the plurality of name spaces.
상기 호스트로부터 설정 커맨드를 수신하는 단계;
상기 설정 커맨드에 응답하여, 상기 호스트에서 생성되는 제1 내지 제N 가상 머신들 각각에 대한 가상 머신 정보, 각각의 가상 머신에 할당된 호스트 메모리에서의 입출력 큐의 위치를 나타내는 메모리 어드레스, 상기 가상 머신에 연관된 명칭 공간을 나타내는 명칭 공간 아이디를 포함하는 보안 정보를 저장하는 단계(단, N은 2 이상의 정수); 및
상기 호스트로부터 독출 요청이 수신됨에 따라, 상기 독출 요청을 디코딩함에 의해 추출된 정보를 상기 보안 정보와 비교함으로써, 상기 독출 요청의 처리를 선택적으로 중지하는 단계를 구비하는 것을 특징으로 하는 스토리지 장치의 동작방법.A method of operating a storage device communicating with a host, wherein the storage device includes a plurality of NameSpaces each including at least one cell block,
receiving a configuration command from the host;
In response to the setting command, virtual machine information for each of the first to Nth virtual machines created in the host, a memory address indicating a location of an I/O queue in a host memory allocated to each virtual machine, the virtual machine storing security information including a namespace ID representing a namespace associated with (where N is an integer greater than or equal to 2); and
and selectively stopping processing of the read request by comparing information extracted by decoding the read request with the security information when a read request is received from the host. method.
상기 보안 정보는 상기 제1 내지 제N 가상 머신들에 대응하는 N 개의 엔트리들을 포함하고,
각각의 엔트리는, 어느 하나의 가상 머신을 나타내는 가상 머신 정보, 상기 가상 머신 정보에 맵핑된 상기 메모리 어드레스 및 상기 명칭 공간 아이디를 포함하는 것을 특징으로 하는 스토리지 장치의 동작방법.According to claim 10,
The security information includes N entries corresponding to the first to Nth virtual machines;
Each entry includes virtual machine information representing one virtual machine, the memory address mapped to the virtual machine information, and the namespace ID.
상기 N 개의 엔트리들 중, 상기 독출 요청으로부터 추출된 가상 머신 정보에 대응되는 엔트리의 상기 메모리 어드레스 및 상기 명칭 공간 아이디가 상기 독출 요청으로부터 추출된 정보와 비교되는 것을 특징으로 하는 스토리지 장치의 동작방법. According to claim 11,
The memory address and the namespace ID of an entry corresponding to virtual machine information extracted from the read request among the N entries are compared with information extracted from the read request.
제(N+1) 가상 머신이 상기 호스트에 더 생성됨에 따라, 상기 제(N+1) 가상 머신에 대한 가상 머신 정보 및 이에 맵핑된 상기 메모리 어드레스 및 상기 명칭 공간 아이디를 상기 보안 정보에 업데이트하는 단계를 더 구비하는 것을 특징으로 하는 스토리지 장치의 동작방법.According to claim 10,
As a (N+1)th virtual machine is further created in the host, updating virtual machine information for the (N+1)th virtual machine, the memory address mapped thereto, and the namespace ID to the security information. A method of operating a storage device, further comprising the steps of:
상기 호스트로부터의 요청에 응답하여 상기 제1 내지 제N 가상 머신들에 대응하는 제1 내지 제N 가상 기능들을 생성하는 단계를 더 구비하고,
상기 제1 내지 제N 가상 기능들 각각에, 상기 제1 내지 제N 가상 머신들에 대한 보안 정보가 저장되는 것을 특징으로 하는 스토리지 장치의 동작방법.According to claim 10,
generating first to Nth virtual functions corresponding to the first to Nth virtual machines in response to a request from the host;
and wherein security information for the first to Nth virtual machines is stored in each of the first to Nth virtual functions.
상기 독출 요청의 처리를 선택적으로 중지하는 단계는,
상기 제1 가상 기능이 상기 제1 가상 머신으로부터 제공된 독출 요청을 디코딩하여 상기 독출 요청으로부터 메모리 어드레스 및 명칭 공간 아이디를 추출하는 단계; 및
상기 보안 정보 중 상기 제1 가상 머신에 대한 가상 머신 정보에 맵핑된 상기 메모리 어드레스 및 상기 명칭 공간 아이디를 상기 추출된 정보와 비교하여 상기 제1 가상 머신으로부터의 상기 독출 요청을 처리하는 단계를 구비하는 것을 특징으로 하는 스토리지 장치의 동작방법.According to claim 14,
Selectively stopping the processing of the read request,
decoding, by the first virtual function, a read request provided from the first virtual machine and extracting a memory address and a namespace ID from the read request; and
Comprising a step of processing the read request from the first virtual machine by comparing the memory address and the namespace ID mapped to virtual machine information for the first virtual machine among the security information with the extracted information A method of operating a storage device, characterized in that.
상기 독출 요청의 처리를 선택적으로 중지하는 단계는,
상기 제1 가상 기능이 상기 제2 가상 머신으로부터 제공된 독출 요청을 디코딩하여 상기 독출 요청으로부터 메모리 어드레스 및 명칭 공간 아이디를 추출하는 단계; 및
상기 보안 정보 중 상기 제2 가상 머신에 대한 가상 머신 정보에 맵핑된 상기 메모리 어드레스 및 상기 명칭 공간 아이디를 상기 추출된 정보와 비교하여 상기 제2 가상 머신으로부터의 상기 독출 요청의 처리를 중지하는 단계를 구비하는 것을 특징으로 하는 스토리지 장치의 동작방법.According to claim 14,
Selectively stopping the processing of the read request,
decoding, by the first virtual function, a read request provided from the second virtual machine, and extracting a memory address and a namespace ID from the read request; and
stopping processing of the read request from the second virtual machine by comparing the memory address and the namespace ID mapped to virtual machine information for the second virtual machine among the security information with the extracted information; A method of operating a storage device comprising:
상기 보안 정보는 상기 스토리지 장치 내의 휘발성 메모리에 저장되고,
상기 설정 커맨드를 수신하는 단계는, 상기 스토리지 장치의 초기 구동시에 수행되는 것을 특징으로 하는 스토리지 장치의 동작방법.According to claim 10,
the security information is stored in a volatile memory in the storage device;
The receiving of the setting command is performed when the storage device is initially driven.
가상화 기술에 따른 독립된 경로들을 통해 상기 다수의 명칭 공간들을 접근하기 위한 독출 요청을 생성하는 제1 내지 제N 가상 머신들(단, N은 2 이상의 정수);
상기 제1 내지 제N 가상 머신들에 할당되는 다수의 입출력 큐들을 포함하는 호스트 메모리; 및
상기 제1 내지 제N 가상 머신들의 생성과, 상기 제1 내지 제N 가상 머신들에 상기 호스트 메모리의 입출력 큐들의 할당을 관리하는 가상 머신 매니저를 구비하고,
설정 커맨드와 함께, 상기 제1 내지 제N 가상 머신들 각각에 대한 가상 머신 정보, 각각의 가상 머신에 할당된 상기 입출력 큐의 위치를 나타내는 메모리 어드레스, 상기 가상 머신에 연관된 명칭 공간을 나타내는 명칭 공간 아이디를 포함하는 보안 정보를 상기 스토리지 장치로 전송하는 것을 특징으로 하는 호스트.In a host accessing multiple namespaces provided on a storage device,
first to Nth virtual machines generating a read request for accessing the plurality of namespaces through independent paths according to virtualization technology (where N is an integer of 2 or more);
a host memory including a plurality of input/output queues allocated to the first through Nth virtual machines; and
a virtual machine manager managing creation of the first to Nth virtual machines and allocation of input/output queues of the host memory to the first to Nth virtual machines;
Along with a setting command, virtual machine information for each of the first to Nth virtual machines, a memory address indicating the location of the input/output queue allocated to each virtual machine, and a namespace ID indicating a namespace associated with the virtual machine. A host characterized in that for transmitting security information including a to the storage device.
상기 보안 정보는 상기 제1 내지 제N 가상 머신들에 대응하는 N 개의 엔트리들을 포함하며,
각각의 엔트리는, 어느 하나의 가상 머신을 나타내는 가상 머신 정보, 상기 가상 머신 정보에 맵핑된 상기 메모리 어드레스 및 상기 명칭 공간 아이디를 포함하는 것을 특징으로 하는 호스트.According to claim 18,
The security information includes N entries corresponding to the first to Nth virtual machines;
Each entry includes virtual machine information representing one virtual machine, the memory address mapped to the virtual machine information, and the namespace ID.
상기 제1 가상 머신은 상기 스토리지 장치의 제1 명칭 공간에 연관되고, ,
상기 제2 가상 머신이 상기 제1 가상 머신에 대응하는 상기 메모리 어드레스 또는 상기 제1 명칭 공간을 지시하는 명칭 공간 아이디를 포함하는 독출 요청을 상기 스토리지 장치로 전송할 때, 상기 제2 가상 머신으로부터의 독출 요청에 응답하는 완료 응답의 수신이 차단되는 것을 특징으로 하는 호스트.According to claim 18,
The first virtual machine is associated with a first namespace of the storage device,
When the second virtual machine transmits a read request including the memory address corresponding to the first virtual machine or a namespace ID indicating the first namespace to the storage device, a read from the second virtual machine A host characterized in that reception of a completion response in response to a request is blocked.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/057,337 US20230237184A1 (en) | 2022-01-26 | 2022-11-21 | Storage Device For Performing Access Authority Control And Operating Method Thereof |
EP22213642.6A EP4220412A1 (en) | 2022-01-26 | 2022-12-14 | Storage device for performing access authority control and operating method thereof |
TW111148405A TW202331525A (en) | 2022-01-26 | 2022-12-16 | Storage device, operating method thereof and host device |
CN202310093313.5A CN116501664A (en) | 2022-01-26 | 2023-01-20 | Storage device for performing access right control and method of operating the same |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220011789 | 2022-01-26 | ||
KR20220011789 | 2022-01-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102560696B1 true KR102560696B1 (en) | 2023-07-28 |
Family
ID=87427035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220069111A KR102560696B1 (en) | 2022-01-26 | 2022-06-07 | Storage device performing access authority control and Operating method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102560696B1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190033413A (en) * | 2017-09-21 | 2019-03-29 | 도시바 메모리 가부시키가이샤 | Storage device |
KR20200032654A (en) * | 2018-09-18 | 2020-03-26 | 삼성전자주식회사 | Mechanism to identify fpga and ssd pairing in a multi-device environment |
US20210150074A1 (en) * | 2020-12-23 | 2021-05-20 | Jose Niell | Vm encryption of block storage with end-to-end data integrity protection in a smartnic |
KR20210121170A (en) * | 2019-03-08 | 2021-10-07 | 인터내셔널 비지네스 머신즈 코포레이션 | Security Execution Guest Owner Environment Control |
KR20210156190A (en) * | 2020-06-17 | 2021-12-24 | 삼성전자주식회사 | Storage device-assisted live virtual machine migration |
-
2022
- 2022-06-07 KR KR1020220069111A patent/KR102560696B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190033413A (en) * | 2017-09-21 | 2019-03-29 | 도시바 메모리 가부시키가이샤 | Storage device |
KR20200032654A (en) * | 2018-09-18 | 2020-03-26 | 삼성전자주식회사 | Mechanism to identify fpga and ssd pairing in a multi-device environment |
KR20210121170A (en) * | 2019-03-08 | 2021-10-07 | 인터내셔널 비지네스 머신즈 코포레이션 | Security Execution Guest Owner Environment Control |
KR20210156190A (en) * | 2020-06-17 | 2021-12-24 | 삼성전자주식회사 | Storage device-assisted live virtual machine migration |
US20210150074A1 (en) * | 2020-12-23 | 2021-05-20 | Jose Niell | Vm encryption of block storage with end-to-end data integrity protection in a smartnic |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI712883B (en) | Host accelerated operations in managed nand devices | |
CN112313632A (en) | Host acceleration operation in managed NAND devices | |
US11886339B2 (en) | Secure logical-to-physical caching | |
US20210200689A1 (en) | Storage System and Method for Secure Host Controller Memory Buffer Access | |
KR102560696B1 (en) | Storage device performing access authority control and Operating method thereof | |
US20230145936A1 (en) | Storage device, storage system having the same and method of operating the same | |
US20230019584A1 (en) | Effective key management for data encyrption and decryption | |
US20230237184A1 (en) | Storage Device For Performing Access Authority Control And Operating Method Thereof | |
CN117693748A (en) | Mechanism to support writing files to a file system installed in a secure memory device | |
CN116501664A (en) | Storage device for performing access right control and method of operating the same | |
EP4155893A1 (en) | Storage controller and storage system comprising the same | |
KR102430219B1 (en) | Storage device and method for generating key and performing certification of the storage device | |
US20230152987A1 (en) | Storage device and operation method thereof | |
EP4177758A1 (en) | A storage device and an operating method of a storage controller thereof | |
US11977447B2 (en) | Storage device, operating method for the same and memory system | |
US20220308795A1 (en) | Storage system and operating method for same | |
US20230141936A1 (en) | Secure processor, operating method thereof, and storage device including same | |
EP4187398A1 (en) | Controller controlling non-volatile memory device, storage device including the same, and operating method thereof | |
US20230409219A1 (en) | Storage device and method of operating the same | |
KR20230067457A (en) | A storage controller, a storage system and an operating method of the same | |
KR20240018974A (en) | Storage device and operation method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant |