KR102560696B1 - Storage device performing access authority control and Operating method thereof - Google Patents

Storage device performing access authority control and Operating method thereof Download PDF

Info

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
Application number
KR1020220069111A
Other languages
Korean (ko)
Inventor
신연우
이한주
김선봉
우승문
송용호
최광희
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US18/057,337 priority Critical patent/US20230237184A1/en
Priority to EP22213642.6A priority patent/EP4220412A1/en
Priority to TW111148405A priority patent/TW202331525A/en
Priority to CN202310093313.5A priority patent/CN116501664A/en
Application granted granted Critical
Publication of KR102560696B1 publication Critical patent/KR102560696B1/en

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/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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
    • 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/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/0659Command 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

접근 권한 제어를 수행하는 스토리지 장치 및 그 동작방법{Storage device performing access authority control and Operating method thereof}Storage device performing access authority control and operating method thereof

본 개시의 기술적 사상은 스토리지 장치에 관한 것으로서, 상세하게는 호스트로부터의 데이터 접근 요청에 대응하여 접근 권한 제어를 수행하는 스토리지 장치 및 그 동작방법에 관한 것이다.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 data processing system 10 may include a host 100 and a storage device 200 . The storage device 200 may include a controller 210 and a nonvolatile memory 220 . The host 100 may provide a data write or read request to the storage device 200 . Also, in response to a data erase request from the host 100 , the storage device 200 may perform an erase operation on data in an area indicated by the host 100 .

예시적인 실시예에서, 스토리지 장치(200)는 메모리 장치와 이를 컨트롤하는 컨트롤러를 포함하는 개념으로서, 스토리지 장치 이외에도 다른 다양한 용어들로 정의될 수 있을 것이다. 예컨대, 스토리지 장치(200)는 메모리 시스템 또는 스토리지 시스템으로 지칭될 수 있고, 컨트롤러(210)는 스토리지 컨트롤러 또는 메모리 컨트롤러 등으로 지칭될 수 있을 것이다.In an exemplary embodiment, the storage device 200 is a concept including a memory device and a controller controlling the memory device, and may be defined in various terms other than the storage device. For example, the storage device 200 may be referred to as a memory system or a storage system, and the controller 210 may be referred to as a storage controller or memory controller.

스토리지 장치(200)는 호스트(100)로부터의 요청에 따라 데이터를 저장하는 저장 매체들을 포함할 수 있다. 일 예로서, 스토리지 장치(200)는 하나 이상의 솔리드 스테이트 드라이브(Solid State Drive, SSD)를 포함할 수 있다. 스토리지 장치(200)가 SSD 를 포함하는 경우, 불휘발성 메모리(220)는 데이터를 불휘발성하게 저장하는 다수 개의 플래시 메모리 칩들(예컨대, NAND 메모리 칩들)을 포함할 수 있다. 이하, 본 개시의 실시예들을 설명함에 있어서, 스토리지 장치(200)가 하나 이상의 플래시 메모리 칩들을 포함하는 것으로 가정한다. The storage device 200 may include storage media for storing data according to a request from the host 100 . As an example, the storage device 200 may include one or more solid state drives (SSDs). When the storage device 200 includes an SSD, the nonvolatile memory 220 may include a plurality of flash memory chips (eg, NAND memory chips) that non-volatilely store data. Hereinafter, in describing embodiments of the present disclosure, it is assumed that the storage device 200 includes one or more flash memory chips.

다른 예로서, 스토리지 장치(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 storage device 200 may include other various types of memories. For example, the storage device 200 may include nonvolatile memory, and the nonvolatile memory may include magnetic RAM (MRAM), spin-transfer torque MRAM (spin-transfer torque MRAM), conductive bridging RAM (CBRAM), and FeRAM ( Ferroelectric RAM), PRAM (Phase RAM), Resistive RAM, Nanotube RAM, Polymer RAM (PoRAM), Nano Floating Gate Memory (NFGM), Holographic Memory Various types of memories such as holographic memory, molecular electronics memory, or insulator resistance change memory may be applied.

호스트(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 host 100 may communicate with the storage device 200 through various interfaces. For example, the host 100 is a USB (Universal Serial Bus), MMC (MultiMediaCard), PCIe (Peripheral Component Interconnect express), ATA (AT Attachment), SATA (Serial AT Attachment), PATA (Parallel AT Attachment), SCSI (Small AT Attachment) Storage devices through various interfaces such as Computer System Interface (SAS), Serial Attached SCSI (SAS), Enhanced Small Disk Interface (ESDI), Integrated Drive Electronics (IDE), Compute Express Link (CXL), and Non-Volatile Memory Express (NVMe). (200) can be communicated with. According to exemplary embodiments of the present disclosure, in the data processing system 10, it is assumed that the host 100 and the storage device 200 perform an NVMe-based interface through a PCIe bus.

본 개시의 예시적인 실시예에 따라, 호스트(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 host 100 may include a processor 110 and a host memory 120 . The processor 110 may control memory operations such as data writing and reading of the storage device 200 by executing software stored in the host memory 120 . In an exemplary embodiment, host 100 may encode or decode packets that meet standards defined in the NVMe interface. The host 100 may store a packet corresponding to the write request or read request in the host memory 120, and a completion response from the storage device 200 in response to the write request or read request may be stored in the host memory 120. It can be. In the following embodiments, a write request and a read request of the host 100 to the storage device 200 may each correspond to an access request (Req), and a packet provided by the host 100 may be used as a request or command. may be referred to.

예시적인 실시예에서, 컨트롤러(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 controller 210 may include an access authority controller 211, and the nonvolatile memory 220 may include a plurality of NameSpaces (NS). Each of the flash memory chips included in the nonvolatile memory 220 may include a memory cell array, and the memory cell array may include one or more cell blocks. In FIG. 1 , a case in which the nonvolatile memory 220 includes first to K th namespaces NS 1 to NS K is exemplified. A plurality of cell blocks included in the nonvolatile memory 220 may be classified into first to Kth namespaces NS 1 to NS K, and one or more cell blocks may be classified into first to Kth namespaces NS 1 to NS K) can be assigned to each.

예시적인 실시예에서, 호스트(100)는 프로세서(110)의 제어에 기초하여 다수의 가상 머신들(virtual machines, VMs)을 생성할 수 있다. 예컨대, 호스트(100)는 가상화(virtualization) 기술을 이용하여 명칭 공간들을 관리할 수 있고, 하나의 스토리지 장치에 다수의 가상 머신들이 함께 접근할 수 있다. 일 예로서, 호스트 메모리(120)에는 가상화 기술에 기초하여 스토리지 장치(200)의 접근을 가능하게 하는 가상 머신 관리 모듈(미도시)이 구비될 수 있고, 프로세서(110)가 가상 머신 관리 모듈을 실행함으로써 다수의 가상 머신들(VMs)이 생성될 수 있다. 다수의 가상 머신들(VMs)은 호스트(100) 내의 프로세서, 메모리, 펌웨어, 소프트웨어 등의 자원들(resources)을 공유할 수 있으나, 스토리지 장치(200)의 관점에서 다수의 가상 머신들(VMs) 각각은 별도의 하드웨어를 통해 데이터를 접근하는 것으로 인식할 수 있다.In an exemplary embodiment, the host 100 may create multiple virtual machines (VMs) based on the control of the processor 110 . For example, the host 100 may manage namespaces using virtualization technology, and multiple virtual machines may access one storage device together. As an example, the host memory 120 may include a virtual machine management module (not shown) enabling access to the storage device 200 based on virtualization technology, and the processor 110 may operate the virtual machine management module. Multiple virtual machines (VMs) can be created by executing. A plurality of virtual machines (VMs) may share resources such as processor, memory, firmware, and software in the host 100, but from the viewpoint of the storage device 200, the plurality of virtual machines (VMs) Each can be perceived as accessing data through separate hardware.

제1 내지 제K 명칭 공간들(NS 1 ~ NS K)은 다수의 가상 머신들(VMs)에 연관 또는 할당될 수 있다. 스토리지 장치(200)는 호스트(100)의 제어에 기초하여 제1 내지 제K 명칭 공간들(NS 1 ~ NS K)을 다수의 가상 머신들(VMs)에 연관시킬 수 있고, 일 예로서 각각의 가상 머신(VM)은 적어도 하나의 명칭 공간에 연관됨에 따라, 연관된 명칭 공간의 데이터를 접근할 수 있다. 각각의 가상 머신(VM)은 하나 또는 그 이상의 명칭 공간들에 연관될 수 있고, 또는 적어도 2 개의 가상 머신들(VMs)이 어느 하나의 명칭 공간을 공유할 수도 있다.The first to Kth namespaces NS 1 to NS K may be associated with or allocated to multiple virtual machines (VMs). The storage device 200 may associate the first to K th namespaces NS 1 to NS K with a plurality of virtual machines (VMs) under the control of the host 100, and for example, each As a virtual machine (VM) is associated with at least one namespace, it can access data of the associated namespace. Each virtual machine (VM) may be associated with one or more namespaces, or at least two virtual machines (VMs) may share a namespace.

호스트(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 host 100 may create a large number of virtual machines (VMs), and a process of authorizing access to namespaces by the virtual machines (VMs) may be performed by the host 100 . For example, when the first to Kth namespaces NS 1 to NS K are created, the host 100 provides ID information of the first to Kth namespaces NS 1 to NS K (hereinafter, the name space ID ), and provide virtual machines (VMs) with a namespace ID associated with each virtual machine. In addition, each of the plurality of virtual machines (VMs) may generate an access request (Req) including a namespace ID for accessing data of the allocated namespace and transmit the request to the storage device 200 .

그러나, 악의적인 사용자에 의해 가상 머신(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 storage device 200 through the hijacked virtual machine (VM), the storage device 200 is destroyed by the host 100. ), decodes the access request (Req), reads data from a specific namespace indicated by the access request (Req), and provides it to the host 100. In this case, in the data processing system 10 where security is important, data security may be weakened as data is provided to malicious users who do not have normal access rights.

본 개시의 예시적인 실시예에 따르면, 호스트(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 host 100, security information (not shown) used to determine access authority may be set or stored in the access authority controller 211. can The access authority controller 211 compares the information extracted from the access request (Req) from the host 100 with the security information stored in the access authority controller 211, so that the access request (Req) is sent to a user with normal authority. (or, it may be determined whether the request is made by a virtual machine (VM)). When it is determined that the access request (Req) is a request by a virtual machine (VM) having normal authority, the controller 210 performs a control operation so that the access request (Req) from the host 100 is normally processed. can do. On the other hand, when it is determined that the access request (Req) is not a request by a virtual machine (VM) having normal authority, the access authority controller 211 processes the access request (Req) from the host 100. By aborting, it is possible to block data from being read or written from the nonvolatile memory 220 by malicious access.

예시적인 실시예에서, 접근 권한 제어기(211)에 설정되는 보안 정보는 호스트(100) 내에서 생성되는 다수의 가상 머신들(VMs) 각각에 관련된 정보를 포함할 수 있다. 일 예로서, 보안 정보는 다수의 가상 머신들(VMs)에 대응하는 다수의 엔트리들을 포함할 수 있고, 각각의 엔트리는 어느 하나의 가상 머신을 나타내는 가상 머신 정보와, 상기 가상 머신에 고유하게 할당되는 적어도 하나의 고유 정보 사이의 맵핑 정보를 포함할 수 있다.In an exemplary embodiment, security information set in the access authority controller 211 may include information related to each of a plurality of virtual machines (VMs) created in the host 100 . As an example, the security information may include a plurality of entries corresponding to a plurality of virtual machines (VMs), each entry having virtual machine information representing a certain virtual machine and uniquely assigned to the virtual machine. It may include mapping information between at least one piece of unique information.

일 예로서, 호스트(100)는 각각의 가상 머신(VM)에 대해 호스트 메모리(120) 내의 특정 위치의 저장 공간을 입출력 큐로 할당할 수 있으며, 상기 고유 정보는 호스트 메모리(120)에서 할당된 입출력 큐의 위치를 나타내는 메모리 어드레스를 포함할 수 있다. 일 예로서, 입출력 큐는 소정의 어드레스 범위에 포함되는 저장 공간을 포함할 수 있고, 메모리 어드레스는 상기한 어드레스 범위에 관련된 정보를 포함할 수 있다. 또한, 호스트(100)는 각각의 가상 머신(VM)에 대해 적어도 하나의 명칭 공간을 할당할 수 있으며, 상기 고유 정보는 각각의 가상 머신(VM)에 할당된 명칭 공간을 나타내는 명칭 공간 아이디(ID)를 포함할 수 있다. 즉, 보안 정보의 각각의 엔트리는, 어느 하나의 가상 머신의 가상 머신 정보, 그리고 이에 맵핑된 메모리 어드레스 및 명칭 공간 ID 를 포함할 수 있다.As an example, the host 100 may allocate a storage space at a specific location in the host memory 120 to each virtual machine (VM) as an I/O queue, and the unique information may be assigned to the I/O queue in the host memory 120. It may include a memory address indicating the location of the queue. As an example, the input/output queue may include a storage space included in a predetermined address range, and the memory address may include information related to the address range. In addition, the host 100 may allocate at least one namespace to each virtual machine (VM), and the unique information is a namespace ID indicating a namespace allocated to each virtual machine (VM). ) may be included. That is, each entry of security information may include virtual machine information of one virtual machine, a memory address mapped thereto, and a namespace ID.

본 개시의 예시적인 실시예에 따라, 컨트롤러(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 controller 210 decodes the access request (Req) from the host 100, and extracts at least one piece of information to be compared with the security information from the access request (Req). can The access authority controller 211 can determine the virtual machine information that generated the access request (Req) by decoding the access request (Req), the memory address representing the position of the input/output queue in relation to data access, and the access request It is possible to extract the namespace ID that The access authority controller 211 may determine a memory address and a namespace ID mapped to the determined virtual machine information from security information. In addition, the access authority controller 211 compares whether the memory address and namespace ID extracted from the access request (Req) and the memory address and namespace ID included in the security information match, so that the access request (Req) It can be determined whether the access is by a virtual machine (VM) having normal authority. For example, it may be determined whether the memory address extracted from the access request (Req) falls within the range of memory addresses included in the security information, and also the namespace ID extracted from the access request (Req) and the name space included in the security information. Whether the IDs are identical may be determined.

컨트롤러(210)는 접근 권한 제어기(211)의 판단 결과에 기초하여 접근 요청(Req)의 처리를 중지함으로써, 사용자 데이터 보안을 강화할 수 있다. 예컨대, 정상적인 접근 권한을 갖지 않은 악의적인 사용자가 특정 가상 머신(예컨대, 제2 가상 머신)을 탈취하고, 다른 가상 머신(예컨대, 제1 가상 머신)에 할당된 호스트 메모리(120)의 입출력 큐를 통해 제1 가상 머신에 연관된 명칭 공간에 접근하고자 하는 경우, 접근 요청(Req)으로부터 추출되는 메모리 어드레스 및 명칭 공간 ID 중 적어도 하나는, 보안 정보에 포함되는 제1 가상 머신을 나타내는 가상 머신 정보에 맵핑된 메모리 어드레스 및 명칭 공간 ID 중 적어도 하나와 상이할 수 있고, 이에 따라 정상적인 권한을 갖지 않는 가상 머신(VM)으로부터의 접근 요청(Req)의 처리가 중지될 수 있다. 또한, 악의적인 사용자가 제1 가상 머신에 할당된 입출력 큐의 메모리 어드레스나 제1 가상 머신에 연관된 명칭 공간 ID 중 적어도 하나를 알지 못하는 경우에는, 스토리지 장치(200) 내에서의 보안 정보를 이용한 비교 절차를 통해 정상적인 권한을 갖지 않는 가상 머신(VM)으로부터의 접근 요청(Req)의 처리가 중지될 수 있다.The controller 210 may enhance user data security by stopping processing of the access request (Req) based on the determination result of the access authority controller 211 . For example, a malicious user who does not have normal access rights hijacks a specific virtual machine (eg, the second virtual machine) and deletes the I/O queue of the host memory 120 allocated to another virtual machine (eg, the first virtual machine). When trying to access the namespace associated with the first virtual machine through this, at least one of the memory address and the namespace ID extracted from the access request (Req) is mapped to virtual machine information representing the first virtual machine included in the security information. may be different from at least one of the specified memory address and namespace ID, and accordingly, processing of an access request (Req) from a virtual machine (VM) without normal authority may be stopped. Also, if the malicious user does not know at least one of the memory address of the I/O queue allocated to the first virtual machine or the namespace ID associated with the first virtual machine, comparison using security information in the storage device 200 Processing of an access request (Req) from a virtual machine (VM) without normal authority may be stopped through a procedure.

예시적인 구현 예에서, 접근 권한 제어기(211)는 보안 정보를 저장하는 회로와 접근 권한을 판단하는 회로가 하나의 회로 블록으로 구현될 수도 있다. 또는, 접근 권한 제어기(211)는 보안 정보를 저장하는 저장 회로와 접근 권한을 판단하는 회로가 별개의 회로 블록으로 구현될 수도 있다. 또한, 보안 정보를 저장하는 저장 회로는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있으며, 일 예로서 저장 회로가 휘발성 메모리로 구현됨에 따라 데이터 처리 시스템(10)의 초기 구동 시에 호스트(100)는 스토리지 장치(200)에 대한 보안 정보의 설정 동작을 제어할 수 있다.In an exemplary implementation, in the access authority controller 211, a circuit for storing security information and a circuit for determining an access authority may be implemented as one circuit block. Alternatively, in the access authority controller 211, a storage circuit for storing security information and a circuit for determining access authority may be implemented as separate circuit blocks. In addition, the storage circuit for storing security information may be implemented as a volatile memory or a non-volatile memory. As an example, as the storage circuit is implemented as a volatile memory, the host 100 when the data processing system 10 is initially driven An operation of setting security information for the storage device 200 may be controlled.

도 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 data processing system 300 may include a host 310 and a storage device 320, and the storage device 320 may include a controller 321 and a nonvolatile memory 322. there is. The host 310 may include a virtual machine manager 311 and first to Nth virtual machines 312_1 to 312_N as a plurality of virtual machines. The virtual machine manager 311 may be implemented through hardware, software, or a combination thereof, and as an example, functions of the virtual machine manager 311 may be implemented by a processor executing software. The virtual machine manager 311 may also be referred to as a hypervisor, and may be configured to create and execute first to Nth virtual machines 312_1 to 312_N.

호스트(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 host 310 may request creation and deletion of namespaces associated with each of the first to Nth virtual machines 312_1 to 312_N. For example, the storage device 320 may create first to Kth namespaces NS 1 to NS K as a plurality of namespaces under the control of the host 310 . According to the above-described embodiment, a plurality of cell blocks included in the nonvolatile memory 322 may be classified into first to K th namespaces NS 1 to NS K, and the first to N th virtual machines may be used. Each of (312_1 to 312_N) is associated with at least one namespace, and may generate an access request for accessing the associated namespace. For example, when generating an access request, each of the first to Nth virtual machines 312_1 to 312_N may include a namespace ID indicating a namespace having an access right in the access request.

컨트롤러(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 controller 321 may include a namespace management module 321_1 and an access authority controller 321_2, and the namespace management module 321_1 responds to a request from the host 310 to first to Kth namespaces. It is possible to manage an operation of creating or deleting s (NS 1 to NS K). In addition, the namespace management module 321_1 may control an access operation for the first to Kth namespaces NS 1 to NS K in response to a request from the host 310. The management module 321_1 may proceed or stop processing of an access request from the host 310 based on the control of the access authority controller 321_2 . However, the embodiments of the present disclosure are not limited thereto, and the controller 321 includes additional elements for controlling read/write operations for the first to Kth namespaces NS 1 to NS K. It may be possible, and the processing of the access request or the suspension of the processing of the access request may be performed by controlling the above-mentioned additional components according to the determination of the access authority.

한편, 접근 권한 제어기(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 host 310 according to the above-described embodiment. can be saved As an example, according to the above-described embodiment, a plurality of entries may correspond to virtual machines created in the host 310, and each entry may include virtual machine information (VM Info) for the virtual machine (VM) and , a memory address (RA) representing the location of an input/output queue allocated to a virtual machine (VM) as an example of unique information, and mapping information between a namespace ID (NSID). The access authority controller 321_2 may receive an access request (eg, read request (Req_R)) from the host, extract one or more pieces of information through a decoding operation on the read request (Req_R), and Based on the comparison of the security information stored in the security information storage circuit, it may be determined whether to abort the processing of the read request Req_R.

제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 virtual machine VM 1 is provided to the storage device 320 , and the controller 321 decodes the read request Req_R to represent the first virtual machine VM 1 . Information, a memory address (RA) and a name space ID (NSID) included in the read request (Req_R) may be extracted. When the first virtual machine (VM 1) has normal access rights to the first namespace (NS 1), a virtual machine indicating the first virtual machine (VM 1) included in the security information of the access authority controller 321_2 The memory address (RA) and the namespace ID (NSID) mapped to the information may be matched with the information extracted from the read request (Req_R), and accordingly, the read request (Req_R) may be normally processed.

반면에, 제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 host 310. It may include information allocated corresponding to the second virtual machine (VM 2) during the setting process, and accordingly, at least one of the memory address (RA) and the namespace ID (NSID) included in the security information is a read request (Req_R). ) may be different from the extracted memory address (RA) and namespace ID (NSID), and accordingly, processing of the read request (Req_R) by a malicious user may be stopped.

도 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 controller 400 includes a host interface circuit 410, a memory interface circuit 420, a processor 430, an access authority control module 440, a working memory (450), and ECC (Error Correction Code) circuit 460. In an exemplary embodiment, various types of software executable by the processor 430 may be loaded into the operation memory 450. As an example, the nonvolatile memory controlled by the controller 400 includes a flash memory device. Accordingly, a Flash Translation Layer (FTL) may be loaded into the working memory 450 . Also, in an exemplary implementation, as the namespace management function according to an embodiment of the present disclosure is implemented in software, the namespace management module may be loaded into the working memory 450 . The working memory 450 may be implemented in various forms, such as random access memory (RAM), read only memory (ROM), electronically erasable programmable read only memory (EEPROM), flash memory, or other memory technology.

프로세서(430)는 동작 메모리(450)에 저장된 각종 소프트웨어들을 실행함으로써 스토리지 장치의 전반적인 동작을 제어할 수 있다. 호스트 인터페이스 회로(410)는 호스트와 소정의 인터페이스에 따른 통신을 수행하고, 일 예로서 컨트롤러(400)는 PCIe(Peripheral Component Interconnect express) 버스를 통해 호스트와 연결되고, NVMe 인터페이스에 따라 호스트와 통신할 수 있다. 또한, 메모리 인터페이스 회로(420)는 불휘발성 메모리(NVM)에 포함되는 다수의 저장 매체들과의 인터페이스를 제공하며, 일 예로서 메모리 인터페이스 회로(420)는 다수의 채널들을 통해 저장 매체들과 독립적인 통신을 수행할 수 있다. 또한, ECC 회로(460)는 스토리지 장치에 저장되는 데이터의 에러 검출 및 정정을 위한 동작을 수행할 수 있으며, 일 예로서 기록 데이터로부터 ECC 패리티를 생성할 수 있고, 독출 데이터와 이에 대응하는 ECC 패리티를 이용하여 에러 검출 및 정정 동작을 수행할 수 있다.The processor 430 may control overall operations of the storage device by executing various software stored in the operation memory 450 . The host interface circuit 410 performs communication with the host according to a predetermined interface, and as an example, the controller 400 is connected to the host through a PCIe (Peripheral Component Interconnect express) bus and communicates with the host according to the NVMe interface. can In addition, the memory interface circuit 420 provides an interface with a plurality of storage media included in the nonvolatile memory (NVM), and as an example, the memory interface circuit 420 is independent of the storage media through a plurality of channels. In-person communication can be performed. In addition, the ECC circuit 460 may perform an operation for detecting and correcting errors in data stored in the storage device. As an example, the ECC circuit 460 may generate ECC parity from write data, read data and ECC parity corresponding thereto. Error detection and correction operations can be performed using

본 개시의 예시적인 실시예에 따라 접근 권한 제어 모듈(440)은 하드웨어적 구성요소들을 포함하거나, 소프트웨어적 구성요소들 또는 이들의 조합을 포함할 수 있으며, 접근 권한 제어 모듈(440)이 소프트웨어적 구성요소들을 포함하는 경우 접근 권한 제어 모듈(440)에 구비되는 소프트웨어는 동작 메모리(450)에 로딩될 수 있다. 접근 권한 제어 모듈(440)은 호스트로부터의 데이터 접근 요청에 대응하여, 접근 요청이 정상적인 권한을 가진 가상 머신으로부터의 접근 요청인지를 판단할 수 있다. 일 예로서, 전술한 실시예들에 따라 호스트의 설정 커맨드에 기초하여 보안 정보가 접근 권한 제어 모듈(440) 내에 저장되고, 접근 권한 제어 모듈(440)은 호스트로부터의 접근 요청을 디코딩하여 요청에 포함된 각종 정보들을 추출하며, 추출된 정보를 보안 정보와 비교함으로써 호스트로부터의 접근 요청의 처리를 실행하거나 또는 중지할 수 있다.According to an exemplary embodiment of the present disclosure, the access right control module 440 may include hardware components, software components, or a combination thereof, and the access right control module 440 may include software components. When including components, software provided in the access authority control module 440 may be loaded into the operation memory 450 . In response to the data access request from the host, the access authority control module 440 may determine whether the access request is from a virtual machine having normal authority. As an example, security information is stored in the access right control module 440 based on the setting command of the host according to the above-described embodiments, and the access right control module 440 decodes the access request from the host and responds to the request. Various types of included information are extracted, and processing of an access request from the host can be executed or stopped by comparing the extracted information with security information.

도 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 data processing system 500 may include a host 510 and a storage device 520, the host 510 may include a virtual machine manager 511, and a virtual machine manager ( Based on the control of 511 , multiple virtual machines may be created in the host 510 . In FIG. 4 , a case in which the first and second virtual machines 512 and 513 are created is exemplified.

한편, 가상 머신 매니저(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 virtual machine manager 511 may allocate an input/output queue (IOQ) to a virtual machine according to a request of the virtual machine. For example, the host 510 may include a host memory 514, and although the input/output queue (IOQ) and the host memory 514 are shown separately in FIG. 4, the input/output queue (IOQ) is stored in the host memory 514. It may correspond to the included storage space. In an exemplary embodiment, the first and second I/O queues IOQ 0 and IOQ 1 are assigned to the first virtual machine 512, and the third and fourth I/O queues IOQ 2 and IOQ 3 are assigned to the second virtual machine 512. may be assigned to machine 513. In addition, address (eg, memory address) information representing the location of an input/output queue (IOQ) assigned to each virtual machine may be provided to the first and second virtual machines 512 and 513 . In addition, each of the input/output queues (IOQ) includes a submission queue (SQ) for storing packets to be transmitted to the storage device 520 and a completion queue for storing packets transmitted from the storage device 520. CQ) may be included.

한편, 스토리지 장치(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 storage device 520 may include a controller, and a single root input/output virtualization (SR-IOV) function is provided between the host 510 and the storage device 520 according to the NVMe interface. Accordingly, the storage device 520 may generate first and second virtual functions 521 and 522 corresponding to the first and second virtual machines 512 and 513 . The first and second virtual functions 521 and 522 may be implemented in the controller of the storage device 520 in response to a request from the host 510, and independently receive a data access request from the host 510. can be dealt with In addition, as each of the first and second virtual functions 521 and 522 processes a request from a corresponding virtual machine, a storage device is provided through an independent path between the first and second virtual machines 512 and 513. Data access to 520 may be performed.

호스트(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 host 510 as an example, each of the first and second virtual functions 521 and 522 determines whether the read request from the host 510 is a read request from a virtual machine having normal authority. can The access authority controller according to the above-described embodiments may be implemented in each of the first and second virtual functions 521 and 522, and may include, for example, a security manager and a security information storage circuit. For example, as shown in FIG. 4, the first virtual function 521 may include a first security manager 521_1 and a first security information storage circuit 521_2, and the second virtual function 522 may include a first security manager 521_1 and a first security information storage circuit 521_2. 2 may include a security manager 522_1 and a second security information storage circuit 522_2. In addition, the nonvolatile memory may include a plurality of name spaces, and FIG. 4 illustrates a case in which first and second name spaces 523 and 524 are created.

제1 명칭 공간(523)에 대한 정상적인 접근 권한을 갖지 않는 제2 가상 머신(513)의 제1 명칭 공간(523)에 대한 악의적인 접근 예를 설명하면 다음과 같다. An example of a malicious access to the first namespace 523 of the second virtual machine 513 that does not have normal access rights to the first namespace 523 will be described as follows.

제2 가상 머신(513)이 제1 명칭 공간(523)에 대한 악의적인 접근을 위한 독출 요청을 생성함에 있어서, 제1 가상 기능(521)으로의 경로를 지시하는 정보를 독출 요청에 부가함으로써 독출 요청이 제1 가상 기능(521)으로 제공될 수 있고, 제1 가상 머신(512)에 할당된 메모리 어드레스 및 제1 명칭 공간(523)을 지시하는 명칭 공간 ID 가 독출 요청에 포함될 수 있다. 또한, 스토리지 장치(520)와의 인터페이스에 따른 패킷 인코딩 과정에서, 독출 요청을 생성하는 제2 가상 머신(513)을 나타내는 가상 머신 정보가 독출 요청에 부가될 수 있다. When the second virtual machine 513 generates a read request for malicious access to the first namespace 523, the read request is performed by adding information indicating a path to the first virtual function 521 to the read request. A request may be provided to the first virtual function 521 , and a memory address allocated to the first virtual machine 512 and a namespace ID indicating the first namespace 523 may be included in the read request. Also, in a packet encoding process according to an interface with the storage device 520 , virtual machine information representing the second virtual machine 513 generating the read request may be added to the read request.

제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 virtual function 521 decodes the received read request and compares the information extracted by the decoding result with the security information stored in the first security information storage circuit 521_2 to stop the processing of the read request. . For example, when the embodiments of the present disclosure are not applied, the first virtual function 521 reads data from the first name space 523 indicated by the read request from the second virtual machine 513, and reads the data. A packet including the processed data may be stored in an input/output queue assigned to the first virtual machine 512 in the host memory 514 . However, according to an exemplary embodiment of the present disclosure, the memory address and namespace ID mapped to the virtual machine information indicating the second virtual machine 513 extracted from the read request are read from the first security information storage circuit 521_2. and the read security information may not match the memory address and namespace ID extracted from the read request, and thus processing of the read request from the second virtual machine 513 not having normal access rights can be stopped

도 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 storage device 520, and as an example, virtual machine information (VM Info) representing each of a plurality of virtual machines and Mapped information may include a memory address (RAM ADDR) and a namespace ID (NSID).

일 실시 예에서, 호스트(510)로부터의 커맨드에 따라 스토리지 장치(520) 내에 보안 정보가 설정된 이후, 호스트(510)에서 하나 이상의 가상 머신들이 추가로 생성될 수 있으며, 이에 따라 스토리지 장치(520) 내에서 보안 정보가 업데이트될 수 있다. 예컨대, 스토리지 장치(520) 내에서 생성되는 다수의 가상 기능들 각각에 보안 정보가 설정될 수 있고, 호스트(510)에서 가상 머신이 추가 또는 삭제되는 경우, 다수의 가상 기능들에 설정되는 보안 정보가 함께 업데이트될 수 있다.In one embodiment, after security information is set in the storage device 520 according to a command from the host 510, one or more virtual machines may be additionally created in the host 510, and accordingly, the storage device 520 Security information can be updated within. For example, security information may be set for each of a plurality of virtual functions created in the storage device 520, and when a virtual machine is added or deleted from the host 510, the security information set for the plurality of virtual functions. can be updated together.

요청 디코더(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 virtual function VF 1 and extract at least one piece of information from the read request Req_R. Virtual machine information indicating the virtual machine that generated the request (Req_R), a memory address indicating the location of the input/output queue, and a namespace ID of an access target may be extracted. In an exemplary embodiment, virtual machine information may be added to a packet in a packet generation process according to an NVMe interface, and a memory address and a namespace ID may be generated by a virtual machine requesting data access and included in the packet.

비교기(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 virtual function VF 1 may output a stop signal ( By stopping the processing of the read request (Req_R) in response to Info_A), it is possible to block access to the namespace from a virtual machine that does not have normal authority.

도 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 data processing system 600 may include a host 610 and a storage device 620, and the host 610 includes a virtual machine manager 611 and one or more virtual machines VM1 to VM4. ) and host memory 613. Also, the storage device 620 may include a controller 621 , and an access authority controller according to an exemplary embodiment of the present disclosure may be provided in the controller 621 . In addition, the access authority controller may include a security manager and a security information storage circuit 622 according to the above-described embodiments. Although not shown in FIG. 9 , a plurality of virtual functions may be implemented in the controller 621 , and a security information storage circuit 622 may be included in each virtual function. Also, the storage device 620 may include a plurality of name spaces in which data is written and read based on the control of the controller 621 .

제1 가상 머신(612)를 예로 들면, 제1 가상 머신(612)은 가상 머신 매니저(611)로 입출력 큐(IOQ)의 생성을 요청할 수 있다. 가상 머신 매니저(611)는 요청에 응답하여 호스트 메모리(613) 내에서 스토리지 장치(620)와의 통신에 이용될 입출력 큐(IOQ) 또는 입출력 큐(IOQ)를 나타내는 메모리 어드레스(RA)를 할당할 수 있다. Taking the first virtual machine 612 as an example, the first virtual machine 612 may request the virtual machine manager 611 to create an input/output queue (IOQ). The virtual machine manager 611 may allocate an input/output queue (IOQ) to be used for communication with the storage device 620 or a memory address (RA) representing the input/output queue (IOQ) within the host memory 613 in response to the request. there is.

호스트(610)는 다수의 가상 머신들에 할당된 명칭 공간들 및 입출력 큐에 관련된 정보를 스토리지 장치(620)로 제공할 수 있으며, 일 예로서 입출력 큐(IOQ)가 생성되었음을 나타내는 제1 커맨드를 스토리지 장치(620)로 제공할 수 있다. 예시적인 실시예에서, 호스트(610)는 인증 서브미션 큐(Admin Submission Queue, 614)를 포함할 수 있고, 제1 커맨드는 인증 서브미션 큐(614)를 통해 전송될 수 있다. 스토리지 장치(620)는 상기 제1 커맨드에 응답하여 다수의 가상 머신들에 관련된 정보들을 저장할 수 있으며, 예컨대 각각의 생성된 입출력 큐(IOQ)의 정보, 입출력 큐(IOQ)의 위치를 나타내는 메모리 어드레스(RAM ADDR), 그리고 입출력 큐(IOQ)를 통해 데이터를 통신할 명칭 공간을 나타내는 정보(명칭 공간 ID)가 보안 정보 저장 회로(622)에 저장될 수 있다.The host 610 may provide information related to namespaces allocated to a plurality of virtual machines and an input/output queue to the storage device 620, and as an example, a first command indicating that an input/output queue (IOQ) has been created It may be provided as a storage device 620 . In an exemplary embodiment, the host 610 may include an Admin Submission Queue 614 , and the first command may be transmitted through the Admin Submission Queue 614 . The storage device 620 may store information related to a plurality of virtual machines in response to the first command, for example, information on each generated input/output queue (IOQ) and a memory address indicating the location of the input/output queue (IOQ). (RAM ADDR), and information (name space ID) representing a namespace to communicate data through an input/output queue (IOQ) may be stored in the secure information storage circuit 622 .

이후, 호스트(610)는 다수의 가상 머신들 각각에 대해 명칭 공간을 연관시킬 수 있고, 명칭 공간의 연관 결과에 따라 전술한 실시예에서의 설정 커맨드를 제2 커맨드로서 스토리지 장치(620)로 제공할 수 있다. 상기 설정 커맨드에는, 다수의 가상 머신들 각각에 할당된 입출력 큐(IOQ)를 나타내는 정보가 포함될 수 있다.Thereafter, the host 610 may associate a namespace with each of a plurality of virtual machines, and provide the configuration command in the above-described embodiment as a second command to the storage device 620 according to the association result of the namespace. can do. The setting command may include information indicating an input/output queue (IOQ) assigned to each of the plurality of virtual machines.

도 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 storage device 620 may store security information in the security information storage circuit 622 in response to a setting command from the host 610, and as an example, first virtual machine information (VM). 1) may be mapped to memory addresses A and B representing the first and second input/output queues IOQ0 and IOQ1, and may also be mapped to namespace IDs representing the first and second namespaces NS1 and NS2. there is. Similarly, the second virtual machine information VM 2 is mapped to memory addresses C and D representing the third and fourth input/output queues IOQ2 and IOQ3, and also the second to fifth name spaces NS2 to IOQ3. NS5) may be mapped to a namespace ID representing In an exemplary embodiment, data access to the third and fourth namespaces NS3 and NS4 may be performed through the third input/output queue IOQ2 and to the second and fifth namespaces NS2 and NS5. Data access to may be performed through the fourth input/output queue IOQ3.

도 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 virtual machine 612 may store a packet according to the NVMe interface as a read request in the first input/output queue IOQ0, and the storage device 620 may store a packet according to the NVMe interface in the first input/output queue IOQ0. A request for fetching information of the mission queue may be transmitted to the host 610 . Also, a read request stored in a submission queue in the first input/output queue IOQ0 may be transmitted to the storage device 620 .

스토리지 장치(620)는 독출 요청을 디코딩함으로써 독출 요청에 포함된 각종 정보들을 추출할 수 있고, 독출 요청을 생성한 가상 머신 정보(VN Info)와, 입출력 큐의 위치를 나타내는 메모리 어드레스(또는, 서브미션 큐의 정보(SQID))와 함께, 접근 대상의 명칭 공간을 나타내는 명칭 공간 ID(NSID)를 추출할 수 있다. 컨트롤러(621) 내의 보안 정보는 다수의 엔트리들을 포함할 수 있고, 독출 요청으로부터 추출된 가상 머신 정보(VN Info)에 대응하는 엔트리로부터, 가상 머신 정보(VN Info)에 맵핑된 정보를 독출 요청으로부터 추출된 정보와 비교할 수 있다. 예컨대, 서브미션 큐의 정보(SQID)가 보안 정보에 포함된 메모리 어드레스(RAM ADDR)에 속하는 지 또는 일치하는 지 여부가 확인될 수 있고, 독출 요청으로부터 추출된 명칭 공간 ID(NSID)가 보안 정보에 포함된 명칭 공간 ID(NSID)와 동일한 지 여부가 판단될 수 있다.The storage device 620 may extract various types of information included in the read request by decoding the read request, and may extract virtual machine information (VN Info) that generated the read request and a memory address (or sub Together with mission queue information (SQID)), a namespace ID (NSID) indicating a namespace of an access target can be extracted. The security information in the controller 621 may include a plurality of entries, and information mapped to the virtual machine information (VN Info) is stored from the entry corresponding to the virtual machine information (VN Info) extracted from the read request. The extracted information can be compared. For example, whether the information (SQID) of the submission queue belongs to or matches the memory address (RAM ADDR) included in the security information can be checked, and the name space ID (NSID) extracted from the read request is the security information. It may be determined whether it is the same as the namespace ID (NSID) included in .

도 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 data processing system 700 may include a plurality of virtual machines 710_1 to 710_N included in a host, and the plurality of virtual machines 710_1 to 710_N are storage devices through a PCIe bus. (eg, SSD 720). The SSD 720 may include a first physical function 721 and a second physical function 722 as one or more physical functions, and may also include a plurality of name spaces 723_1 to 723_K.

호스트는 제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 physical functions 721 and 722 to distinguish access through the first physical function 721 and the second physical function 722, and the host According to the ID added to the access request from , the access request may be provided to the first physical function 721 or the second physical function 722 through the PCIe bus. Each of the first physical function 721 and the second physical function 722 may include an access authority controller (or security manager) according to an exemplary embodiment of the present disclosure, and the first physical function 721 and the second physical function 721 may include Security information for the plurality of virtual machines 710_1 to 710_N according to exemplary embodiments of the present disclosure may be stored in each of the two physical functions 722 .

다수의 가상 머신들(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 physical function 721 or a second physical function 722, and to determine an access right, the first physical function ( In each of 721) and the second physical function 722, a matching operation using security information according to the above-described embodiments may be performed. Depending on the matching result using the security information, processing of the access request by the virtual machine may proceed or may be stopped.

도 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 data processing system 800 may include a host 810 and an SSD 820 . The SSD 820 exchanges signals with the host 810 through a signal connector and receives power through a power connector. The SSD 820 may include an SSD controller 821, an auxiliary power supply 822, and nonvolatile memory devices 823_1 to 823_n. The nonvolatile memory devices 823_1 to 823_n may be vertically stacked NAND flash memory devices. In this case, the SSD 820 may be implemented using the embodiments described above with reference to FIGS. 1 to 11 . That is, the SSD controller 821 may include an access authority controller 821_1, and the access authority controller 821_1 may include security information stored in response to a setting command from the host. In addition, the access authority controller 821_1 performs an access authority determination operation using security information whenever an access request is received from a plurality of virtual machines created in the host 810, and processes the access request according to the determination result. will be able to stop

도 13은 본 개시의 예시적 실시예에 따른 스토리지 장치를 포함하는 데이터 센터(900)를 나타내는 블록도이다. 일부 실시예들에서, 도면들을 참조하여 전술된 스토리지 장치는, 데이터 센터(900)의 어플리케이션 서버 및/또는 스토리지 서버에 포함될 수 있다. 13 is a block diagram illustrating a data center 900 including a storage device according to an exemplary embodiment of the present disclosure. In some embodiments, the storage device described above with reference to the drawings may be included in an application server and/or a storage server of the data center 900 .

도 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 data center 900 may collect various data and provide services, and may be referred to as a data storage center. For example, the data center 900 may be a system for operating a search engine and a database, or may be a computing system used by companies such as banks or government agencies. As shown in FIG. 13 , the data center 900 may include application servers 50_1 to 50_n and storage servers 60_1 to 60_m. The number n of application servers 50_1 to 50_n and the number m of storage servers 60_1 to 60_m may be variously selected according to embodiments, and the number n of application servers 50_1 to 50_n and the number of storage servers The number m of (60_1 to 60_m) may be different.

어플리케이션 서버(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 data center 900 may include storage devices according to embodiments of the present disclosure, and accordingly, the storage devices 55_1 to 55_n and the storage devices 55_1 to 55_n The devices 65_1 to 65_m may be provided with an access authority controller or security manager in the above-described embodiments for determining data access authority. In addition, security information may be stored in storage devices 55_1 to 55_n and storage devices 65_1 to 65_m, and when a virtualization function is applied to the data center 900, storage devices 55_1 to 55_n and storage devices 65_1 ~ 65_m) will be able to stop processing access requests from virtual machines that do not have normal access rights.

어플리케이션 서버들(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 network 70 . In some embodiments, network 70 may be implemented using Fiber Channel (FC) or Ethernet, or the like. FC may be a medium used for relatively high-speed data transmission, and an optical switch providing high performance/high availability may be used. According to the access method of the network 70, the storage servers 60_1 to 60_m may be provided as file storage, block storage, or object storage.

일부 실시예들에서, 네트워크(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, network 70 may be a storage-only network, such as a storage area network (SAN). For example, the SAN may use an FC network and may be an FC-SAN implemented according to FC Protocol (FCP). Alternatively, the SAN may be an IP-SAN using a TCP/IP network and implemented according to the iSCSI (SCSI over TCP/IP or Internet SCSI) protocol. In some embodiments, network 70 may be a general network such as a TCP/IP network. For example, the network 70 may be implemented according to protocols such as FC over Ethernet (FCoE), Network Attached Storage (NAS), and NVMe over Fabrics (NVMe-oF).

이하에서, 어플리케이션 서버(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 network 70 . In addition, the application server 50_1 may acquire data requested to be read by a user or client from one of the storage servers 60_1 to 60_m through the network 70 . For example, the application server 50_1 may be implemented as a web server or a database management system (DBMS).

어플리케이션 서버(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 network 70, and/or the storage server through the network 70. The memories 62_1 to 62_m and/or the storage devices 65_1 to 65_m included in the fields 60_1 to 60_m may be accessed. Accordingly, the application server 50_1 may perform various operations on data stored in the application servers 50_1 to 50_n and/or the storage servers 60_1 to 60_m. For example, the application server 50_1 may execute a command for moving or copying data between the application servers 50_1 to 50_n and/or the storage servers 60_1 to 60_m. At this time, the data is transferred from the storage devices 65_1 to 65_m of the storage servers 60_1 to 60_m through the memories 62_1 to 62_m of the storage servers 60_1 to 60_m or directly to the application servers 50_1 to 50_n. ) can be moved to the memories 52_1 to 52_n. In some embodiments, data traveling through network 70 may be encrypted data for security or privacy.

스토리지 서버(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 network 70 through a wired interface, a wireless interface, a Bluetooth interface, an optical interface, or the like. The NIC 54_1 may include an internal memory, a DSP, a host bus interface, and the like, and may be connected to the processor 61_1 and/or the switch 63_1 through the host bus interface. In some embodiments, the NIC 64_1 may be integrated with at least one of the processor 61_1, the switch 63_1, and the storage device 65_1.

어플리케이션 서버(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항에 있어서,
상기 보안 정보는 상기 제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.
제2항에 있어서,
상기 메모리 어드레스는, 상기 호스트에 구비되는 호스트 메모리 내에서 상기 입출력 큐의 위치를 나타내는 정보를 포함하는 것을 특징으로 하는 스토리지 장치.
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.
제2항에 있어서,
상기 호스트 내에서 추가의 가상 머신이 생성됨에 따라, 상기 추가의 가상 머신에 대한 보안 정보가 상기 컨트롤러 내에 업데이트되는 것을 특징으로 하는 스토리지 장치.
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항에 있어서,
상기 컨트롤러는, 상기 제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.
제5항에 있어서,
상기 제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.
제5항에 있어서,
상기 제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.
제5항에 있어서,
상기 제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.
제1항에 있어서,
상기 스토리지 장치는 다수 개의 플래시 메모리 칩들을 포함하고, 각각의 플래시 메모리 칩은 다수 개의 셀 블록들을 포함하며,
상기 다수의 명칭 공간들 각각에는 적어도 하나의 셀 블록이 할당되는 것을 특징으로 하는 스토리지 장치.
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.
호스트와 통신하는 스토리지 장치의 동작방법에 있어서, 상기 스토리지 장치는 각각 적어도 하나의 셀 블록을 포함하는 다수의 명칭 공간(NameSpace)들을 포함하고,
상기 호스트로부터 설정 커맨드를 수신하는 단계;
상기 설정 커맨드에 응답하여, 상기 호스트에서 생성되는 제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.
제10항에 있어서,
상기 보안 정보는 상기 제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.
제11항에 있어서,
상기 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.
제10항에 있어서,
제(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:
제10항에 있어서,
상기 호스트로부터의 요청에 응답하여 상기 제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.
제14항에 있어서,
상기 독출 요청의 처리를 선택적으로 중지하는 단계는,
상기 제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.
제14항에 있어서,
상기 독출 요청의 처리를 선택적으로 중지하는 단계는,
상기 제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:
제10항에 있어서,
상기 보안 정보는 상기 스토리지 장치 내의 휘발성 메모리에 저장되고,
상기 설정 커맨드를 수신하는 단계는, 상기 스토리지 장치의 초기 구동시에 수행되는 것을 특징으로 하는 스토리지 장치의 동작방법.
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.
제18항에 있어서,
상기 보안 정보는 상기 제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.
제18항에 있어서,
상기 제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.
KR1020220069111A 2022-01-26 2022-06-07 Storage device performing access authority control and Operating method thereof KR102560696B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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