KR20230071023A - Storage device and operation method thereof - Google Patents

Storage device and operation method thereof Download PDF

Info

Publication number
KR20230071023A
KR20230071023A KR1020220049635A KR20220049635A KR20230071023A KR 20230071023 A KR20230071023 A KR 20230071023A KR 1020220049635 A KR1020220049635 A KR 1020220049635A KR 20220049635 A KR20220049635 A KR 20220049635A KR 20230071023 A KR20230071023 A KR 20230071023A
Authority
KR
South Korea
Prior art keywords
hmb
storage device
data
security policy
security
Prior art date
Application number
KR1020220049635A
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 US17/944,613 priority Critical patent/US20230152988A1/en
Priority to CN202211381676.0A priority patent/CN116127479A/en
Publication of KR20230071023A publication Critical patent/KR20230071023A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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
    • 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
    • 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/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

Provided is an operating method of a storage device. The operating method of the storage device according to one embodiment comprises: a step of detecting abnormal operation of an HMB located outside of the storage device, during data processing; and a step of updating a security policy applied when the storage device writes the data to the HMB or reads the data of the HMB, when the abnormal operation is detected. Therefore, the present invention is capable of providing the storage device that can enhance security.

Description

스토리지 장치 및 이의 동작 방법{STORAGE DEVICE AND OPERATION METHOD THEREOF}Storage device and its operating method {STORAGE DEVICE AND OPERATION METHOD THEREOF}

본 개시는 스토리지 장치 및 이의 동작 방법에 관한 것이다.The present disclosure relates to a storage device and an operating method thereof.

반도체 메모리는 SRAM(Static Random Access Memory), DRAM(Dynamic RAM) 등과 같이 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 휘발성 메모리 장치 및 플래시 메모리 장치, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(ferroelectric RAM) 등과 같이 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 불휘발성 메모리 장치로 구분된다.Semiconductor memory includes volatile memory devices such as SRAM (Static Random Access Memory) and DRAM (Dynamic RAM), in which stored data is lost when the power supply is cut off, flash memory devices, PRAM (Phase-change RAM), and MRAM (Magnetic RAM). ), RRAM (Resistive RAM), FRAM (ferroelectric RAM), etc.

다양한 전자 장치가 많은 사람에 의해 이용되고 많은 양의 데이터가 생성됨에 따라, 스토리지 장치에서 데이터를 다루는 데에 많은 양의 자원들이 요구되게 되었으며, 많은 양의 데이터를 처리하기 위해 충분한 용량의 메모리가 요구될 수 있다.As various electronic devices are used by many people and generate a large amount of data, a large amount of resources are required to handle data in a storage device, and a memory of sufficient capacity is required to process a large amount of data. It can be.

그러나, 비용, 장치 크기, 설계상 한계 등과 같은 다양한 이슈들 때문에, 충분한 자원들을 갖는 스토리지 장치를 구현하는 것은 어려울 수 있다. 이러한 관점에서, 스토리지 장치를 위한 충분한 자원들을 제공하기 위해 이미 존재하는 자원을 이용하는 것이 유익할 수 있다. 예를 들어, 스토리지 장치는 호스트로부터 메모리 버퍼를 할당받아 이용할 수 있다.However, it can be difficult to implement a storage device with sufficient resources due to various issues such as cost, device size, design limitations, and the like. In this respect, it may be beneficial to use already existing resources to provide sufficient resources for the storage device. For example, the storage device may receive and use a memory buffer allocated from the host.

일 실시 예는 호스트 메모리 버퍼의 보안을 강화할 수 있는 스토리지 장치 및 이의 동작 방법을 제공하고자 한다.An embodiment is intended to provide a storage device capable of enhancing the security of a host memory buffer and an operating method thereof.

일 실시 예에 따른 스토리지 장치의 동작 방법은, 데이터 처리 동안, 스토리지 장치의 외부에 위치하는 호스트 메모리 버퍼(HMB; Host Memory Buffer)의 비정상적인 동작을 검출하는 단계; 및 상기 비정상적인 동작이 검출되면, 상기 스토리지 장치가 상기 HMB에 데이터를 쓰거나 상기 HMB의 데이터를 읽을 때 적용하는 보안 정책을 갱신하는 단계를 포함한다.A method of operating a storage device according to an embodiment includes detecting an abnormal operation of a host memory buffer (HMB) located outside a storage device during data processing; and updating, by the storage device, a security policy applied when writing data to or reading data from the HMB when the abnormal operation is detected.

상기 방법은 호스트로부터 상기 HMB의 할당 정보를 수신하는 단계; 상기 할당 정보에 기초하여 상기 HMB를 복수의 영역으로 분할하는 단계; 및 복수의 영역 각각에 대해서 보안 정책을 매칭시키는 단계를 더 포함하며, 상기 보안 정책을 갱신하는 단계는, 상기 복수의 영역 각각에 매칭된 상기 보안 정책 중 적어도 하나를 갱신하는 단계를 포함할 수 있다.The method may include receiving allocation information of the HMB from a host; dividing the HMB into a plurality of areas based on the allocation information; and matching a security policy to each of a plurality of areas, wherein the updating of the security policy may include updating at least one of the security policies matched to each of the plurality of areas. .

상기 보안 정책을 매칭시키는 단계는, 상기 복수의 영역 각각에 대해서 보안 IP(Intellectual Property)를 매칭시키는 단계; 및 상기 복수의 영역 각각에 대하여 키(key)를 매칭시키는 단계 중 적어도 하나를 포함할 수 있다.The matching of the security policy may include matching a security IP (Intellectual Property) for each of the plurality of areas; and matching a key to each of the plurality of areas.

상기 복수의 영역은 제1 영역 및 제2 영역을 포함하며, 상기 보안 정책은 제1 보안 정책 및 상기 제1 보안 정책과 다른 제2 보안 정책을 포함하고, 상기 보안 정책을 매칭시키는 단계는, 상기 제1 영역에 상기 제1 보안 정책을 매칭시키는 단계; 및 상기 제2 영역에 상기 제2 보안 정책을 매칭시키는 단계를 포함할 수 있다.The plurality of areas include a first area and a second area, the security policy includes a first security policy and a second security policy different from the first security policy, and the matching of the security policies comprises: matching the first security policy to a first area; and matching the second security policy to the second area.

상기 제1 영역의 보안 요구 수준은 상기 제2 영역의 보안 요구 수준보다 높고, 상기 제1 보안 정책의 보안 수준은 상기 제2 보안 정책의 보안 수준보다 높을 수 있다.The security requirement level of the first area may be higher than that of the second area, and the security level of the first security policy may be higher than that of the second security policy.

상기 보안 정책을 매칭시키는 단계는, 상기 복수의 영역 각각에 대해서 보안 IP를 매칭시키는 단계를 포함하고, 상기 복수의 영역 각각에 매칭된 상기 보안 정책 중 적어도 하나를 갱신하는 단계는, 상기 복수의 영역 중 비정상적인 동작이 발생한 영역에 매칭된 보안 IP를 변경하는 단계를 포함할 수 있다.The matching of the security policies includes matching security IPs for each of the plurality of areas, and the updating of at least one of the security policies matched to each of the plurality of areas includes: Among them, a step of changing a security IP matched to an area in which an abnormal operation has occurred may be included.

상기 보안 정책을 매칭시키는 단계는, 상기 복수의 영역 각각에 대하여 키를 매칭시키는 단계를 포함하고, 상기 복수의 영역 각각에 매칭된 상기 보안 정책 중 적어도 하나를 갱신하는 단계는, 상기 복수의 영역 중 비정상적인 동작이 발생한 영역의 키를 변경하는 단계를 포함할 수 있다.The matching of the security policy may include matching a key to each of the plurality of areas, and the updating of at least one of the security policies matched to each of the plurality of areas may include: A step of changing a key of an area in which an abnormal operation has occurred may be included.

상기 비정상적인 동작을 검출하는 단계는, 상기 복수의 영역 각각에 대해서 상기 비정상적인 동작을 검출하는 단계를 포함하고, 상기 비정상적인 동작은, 키 유효 시간이 경과한 경우; 데이터 무결성 체크가 실패한 경우; 및 비정상적인 HMB 할당이 검출된 경우 중 적어도 하나의 경우를 포함할 수 있다.The detecting of the abnormal operation may include detecting the abnormal operation for each of the plurality of regions, and the abnormal operation may include: when a key valid time has elapsed; If a data integrity check fails; and a case in which an abnormal HMB allocation is detected.

상기 데이터 무결성 체크가 실패한 경우는, 데이터 오류율이 오류율 임계치를 초과한 경우를 포함할 수 있다.The case where the data integrity check fails may include a case where a data error rate exceeds an error rate threshold.

상기 비정상적인 HMB 할당이 검출된 경우는, 상기 HMB의 로그 정보를 이용하여, 할당 위치가 변경됨을 검출한 경우를 포함할 수 있다.The case in which the abnormal HMB allocation is detected may include a case in which an allocation location is detected to be changed using log information of the HMB.

도 1은 본 개시의 실시 예에 따른 스토리지 시스템을 예시적으로 보여주는 블록도이다.
도 2는 도 1의 HMB 컨트롤러를 좀 더 상세하게 보여주는 블록도이다.
도 3은 도 2의 HMB 관리자가 생성하는 HMB 할당 테이블(HMBAT)의 예를 보여주는 도면이다.
도 4a 내지 도 4d는 HMB 관리자가 생성하는 HMB 맵핑 테이블(HMBMT)의 예들을 보여주는 도면이다.
도 5는 HMB의 복수의 영역들 및 HMB 관리자가 관리하는 테이블의 예를 보여주는 도면이다.
도 6은 스토리지 장치의 동작의 예를 보여주는 순서도이다.
도 7은 도 1의 HMB 컨트롤러의 동작의 예를 보여주는 순서도이다.
도 8은 도 1의 HMB 컨트롤러의 동작의 예를 보여주는 순서도이다.
도 9는 도 1의 HMB 컨트롤러의 동작의 예를 보여주는 순서도이다.
도 10은 도 9의 S410 단계를 좀 더 구체적으로 보여주는 순서도이다.
도 10a 및 도 10b는 도 1의 스토리지 장치의 동작의 예를 보여주는 도면들이다.
도 12는 도 9의 S410 단계를 좀 더 구체적으로 보여주는 순서도이다.
도 13a 및 도 13b는 도 1의 스토리지 장치의 동작의 예를 보여주는 도면들이다.
도 14는 도 9의 S410 단계를 좀 더 구체적으로 보여주는 순서도이다.
도 15a 및 도 15b는 도 1의 스토리지 장치의 동작의 예를 보여주는 도면들이다.
도 16은 본 개시의 실시 예에 따른 스토리지 장치가 적용된 데이터 센터의 예를 보여주는 블록도이다.
1 is a block diagram showing a storage system according to an exemplary embodiment of the present disclosure by way of example.
FIG. 2 is a block diagram showing the HMB controller of FIG. 1 in more detail.
FIG. 3 is a diagram showing an example of an HMB allocation table (HMBAT) generated by the HMB manager of FIG. 2 .
4A to 4D are diagrams illustrating examples of HMB mapping tables (HMBMT) created by an HMB manager.
5 is a diagram showing an example of a plurality of areas of the HMB and a table managed by the HMB manager.
6 is a flowchart illustrating an example of an operation of a storage device.
7 is a flowchart illustrating an example of an operation of the HMB controller of FIG. 1 .
8 is a flowchart illustrating an example of an operation of the HMB controller of FIG. 1 .
9 is a flowchart illustrating an example of an operation of the HMB controller of FIG. 1 .
10 is a flowchart showing step S410 of FIG. 9 in more detail.
10A and 10B are diagrams illustrating an example of an operation of the storage device of FIG. 1 .
12 is a flowchart showing step S410 of FIG. 9 in more detail.
13A and 13B are diagrams illustrating an example of an operation of the storage device of FIG. 1 .
14 is a flowchart showing step S410 of FIG. 9 in more detail.
15A and 15B are diagrams illustrating an example of an operation of the storage device of FIG. 1 .
16 is a block diagram illustrating an example of a data center to which a storage device according to an embodiment of the present disclosure is applied.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.Hereinafter, with reference to the accompanying drawings, embodiments of the present invention will be described in detail so that those skilled in the art can easily carry out the present invention. However, the present invention may be implemented in many different forms and is not limited to the embodiments described herein.

그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 도면을 참고하여 설명한 흐름도에서, 동작 순서는 변경될 수 있고, 여러 동작들이 병합되거나, 어느 동작이 분할될 수 있고, 특정 동작은 수행되지 않을 수 있다.And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification. In the flowchart described with reference to the drawings, the order of operations may be changed, several operations may be merged, a certain operation may be divided, and a specific operation may not be performed.

또한, 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다. 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 구성요소는 이러한 용어에 의해 한정되지는 않는다. 이들 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다.In addition, expressions written in the singular may be interpreted in the singular or plural unless explicit expressions such as “one” or “single” are used. Terms including ordinal numbers, such as first and second, may be used to describe various components, but the components are not limited by these terms. These terms may be used for the purpose of distinguishing one component from another.

도 1은 본 개시의 실시 예에 따른 스토리지 시스템을 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 스토리지 시스템(10)은 호스트(11) 및 스토리지 장치(1000)를 포함할 수 있다. 일 실시 예에서, 스토리지 시스템(10)은 개인용 컴퓨터, 랩탑, 서버, 워크스테이션, 스마트폰, 태블릿 PC, 디지털 카메라, 블랙박스 등과 같이 다양한 정보를 처리하고, 처리된 정보를 저장하도록 구성된 정보 처리 장치들 중 하나일 수 있다.1 is a block diagram showing a storage system according to an exemplary embodiment of the present disclosure by way of example. Referring to FIG. 1 , a storage system 10 may include a host 11 and a storage device 1000 . In one embodiment, the storage system 10 is an information processing device configured to process various information and store the processed information, such as a personal computer, laptop, server, workstation, smart phone, tablet PC, digital camera, black box, etc. may be one of them.

호스트(11)는 스토리지 시스템(10)의 제반 동작을 제어할 수 있다. 예를 들어, 호스트(11)는 스토리지 장치(1000)에 데이터를 저장하거나 또는 스토리지 장치(1000)에 저장된 데이터를 읽기 위한 요청을 스토리지 장치(1000)로 전송할 수 있다. 일 실시 예에서, 호스트(11)는 스토리지 시스템(10)을 제어하도록 구성된 중앙 처리 유닛(CPU; central processing unit), 애플리케이션 프로세서(AP; application processor)와 같은 프로세서 코어이거나 또는 네트워크를 통해 연결된 컴퓨팅 노드일 수 있다.The host 11 may control overall operations of the storage system 10 . For example, the host 11 may transmit a request for storing data in the storage device 1000 or reading data stored in the storage device 1000 to the storage device 1000 . In one embodiment, the host 11 is a processor core such as a central processing unit (CPU) configured to control the storage system 10, an application processor (AP), or a computing node connected through a network. can be

일 실시 예에서, 호스트(11)는 호스트 컨트롤러(12) 및 호스트 메모리(13)를 포함할 수 있다. 호스트 컨트롤러(12)는 호스트(11)의 제반 동작을 제어하거나 또는 호스트(11) 측에서, 스토리지 장치(1000)를 제어하도록 구성된 장치일 수 있다. 호스트 메모리(13)는 호스트(11)에서 사용되는 버퍼 메모리, 캐시 메모리 또는 동작 메모리일 수 있다. 호스트 메모리(13)는 응용 프로그램, 파일 시스템, 장치 드라이버 등이 로드될 수 있다. 호스트 메모리(13)는 호스트(11)에서 구동되는 다양한 소프트웨어나 데이터가 로드될 수 있다.In one embodiment, the host 11 may include a host controller 12 and a host memory 13 . The host controller 12 may be a device configured to control overall operations of the host 11 or to control the storage device 1000 from the host 11 side. The host memory 13 may be a buffer memory, cache memory, or operating memory used in the host 11 . The host memory 13 may be loaded with application programs, file systems, device drivers, and the like. The host memory 13 may be loaded with various software or data driven by the host 11 .

일 실시 예에서, 호스트 메모리(13)는 호스트 메모리 버퍼(HMB; Host memory buffer)(14)를 포함할 수 있다. HMB(14)는 호스트 메모리(13)의 일부 영역을 스토리지 장치(1000)의 버퍼로 할당한 것일 수 있다.In one embodiment, the host memory 13 may include a host memory buffer (HMB) 14. The HMB 14 may be one in which a partial area of the host memory 13 is allocated as a buffer of the storage device 1000 .

일 실시 예에서, HMB(14)는 스토리지 장치(1000)에 의해 관리될 수 있다. HMB(14)에는 스토리지 장치(1000)의 데이터가 저장될 수 있다. 예를 들어, 스토리지 장치(1000)의 메타 데이터 또는 맵핑 테이블 등은 HMB(14)에 저장될 수 있다. 맵핑 테이블은 호스트(11)로부터의 논리 어드레스 및 스토리지 장치(1000)의 물리 어드레스 사이의 맵핑 정보를 포함할 수 있다.In one embodiment, the HMB 14 may be managed by the storage device 1000 . Data of the storage device 1000 may be stored in the HMB 14 . For example, metadata or a mapping table of the storage device 1000 may be stored in the HMB 14 . The mapping table may include mapping information between a logical address from the host 11 and a physical address of the storage device 1000 .

스토리지 장치(1000)는 호스트(11)의 제어에 따라 동작할 수 있다. 스토리지 장치(1000)는 스토리지 컨트롤러(1100) 및 불휘발성 메모리 장치(1200)를 포함할 수 있다. 스토리지 컨트롤러(1100)는 호스트(11)의 제어에 따라 불휘발성 메모리 장치(1200)에 데이터를 저장하거나 또는 불휘발성 메모리 장치(1200)에 저장된 데이터를 읽을 수 있다. 일 실시 예에서, 스토리지 컨트롤러(1100)는 불휘발성 메모리 장치(1200)를 효율적으로 사용하기 위한 다양한 관리 동작을 수행할 수 있다.The storage device 1000 may operate under the control of the host 11 . The storage device 1000 may include a storage controller 1100 and a nonvolatile memory device 1200 . The storage controller 1100 may store data in the nonvolatile memory device 1200 or read data stored in the nonvolatile memory device 1200 under the control of the host 11 . In one embodiment, the storage controller 1100 may perform various management operations for efficiently using the nonvolatile memory device 1200 .

스토리지 컨트롤러(1100)는 중앙 처리 유닛(CPU; central processing unit)(1110), 플래시 변환 계층(FTL; flash translation layer)(1120), 오류 정정 코드(ECC; error correction code) 엔진(1130), AES(advanced encryption standard) 엔진(1140), 버퍼 메모리(1150), 호스트 인터페이스 회로(1160), 메모리 인터페이스 회로(1170), 및 HMB 컨트롤러(1180)를 포함할 수 있다.The storage controller 1100 includes a central processing unit (CPU) 1110, a flash translation layer (FTL) 1120, an error correction code (ECC) engine 1130, and AES. (advanced encryption standard) engine 1140, buffer memory 1150, host interface circuit 1160, memory interface circuit 1170, and HMB controller 1180 may be included.

CPU(1110)는 스토리지 컨트롤러(1100)의 제반 동작을 제어할 수 있다. FTL(1120)은 불휘발성 메모리 장치(1200)를 효율적으로 사용하기 위한 다양한 동작을 수행할 수 있다. 예를 들어, 호스트(11)는 스토리지 장치(1000)의 저장 공간을 논리 어드레스로서 관리할 수 있다. FTL(1120)은 호스트(11)로부터의 논리 어드레스 및 스토리지 장치(1000)의 물리 어드레스 사이의 어드레스 맵핑을 관리하도록 구성될 수 있다. FTL(1120)은 웨어 레벨링 동작을 수행하여, 불휘발성 메모리 장치(1200)의 메모리 블록들 중 특정 메모리 블록에 대한 과도한 열화를 방지할 수 있다. FTL(1120)의 웨어 레벨링 동작에 의해 불휘발성 메모리 장치(1200)의 수명이 향상될 수 있다. FTL(1120)은 불휘발성 메모리 장치(1200)에 대한 가비지 컬렉션을 수행하여, 자유 메모리 블록을 확보할 수 있다.The CPU 1110 may control overall operations of the storage controller 1100 . The FTL 1120 may perform various operations to efficiently use the nonvolatile memory device 1200 . For example, the host 11 may manage the storage space of the storage device 1000 as a logical address. The FTL 1120 may be configured to manage address mapping between a logical address from the host 11 and a physical address of the storage device 1000 . The FTL 1120 may prevent excessive deterioration of a specific memory block among memory blocks of the nonvolatile memory device 1200 by performing a wear leveling operation. The lifespan of the nonvolatile memory device 1200 may be improved by the wear leveling operation of the FTL 1120 . The FTL 1120 may secure a free memory block by performing garbage collection on the nonvolatile memory device 1200 .

ECC 엔진(1130)은 불휘발성 메모리 장치(1200)로부터 읽은 데이터에 대한 오류 검출 및 오류 정정을 수행할 수 있다. 예를 들어, ECC 엔진(1130)은 불휘발성 메모리 장치(1200)에 기입될 데이터에 대한 오류 정정 코드(또는 패리티 비트)를 생성할 수 있다. 생성된 오류 정정 코드(또는 패리티 비트)는 기입될 데이터와 함께 불휘발성 메모리 장치(1200)에 저장될 수 있다. 이후에, 불휘발성 메모리 장치(1200)로부터 기입된 데이터가 독출될 경우, ECC 엔진(1130)은 독출된 데이터 및 대응하는 오류 정정 코드(또는 대응하는 패리티 비트)를 기반으로 독출된 데이터의 오류를 검출하고 정정할 수 있다.The ECC engine 1130 may perform error detection and error correction on data read from the nonvolatile memory device 1200 . For example, the ECC engine 1130 may generate error correction codes (or parity bits) for data to be written in the nonvolatile memory device 1200 . The generated error correction code (or parity bit) may be stored in the nonvolatile memory device 1200 together with data to be written. Subsequently, when data written from the nonvolatile memory device 1200 is read, the ECC engine 1130 detects errors in the read data based on the read data and corresponding error correction codes (or corresponding parity bits). can be detected and corrected.

AES 엔진(1140)은 호스트(11) 또는 불휘발성 메모리 장치(1200)로부터 수신된 데이터에 대한 암호화(encryption) 동작 또는 해독 동작(decryption) 동작을 수행할 수 있다. 일 실시 예에서, 암호화 동작 또는 해독 동작은 대칭 키 알고리즘(symmetric-key algorithm)을 기반으로 수행될 수 있다.The AES engine 1140 may perform an encryption operation or a decryption operation on data received from the host 11 or the nonvolatile memory device 1200 . In one embodiment, an encryption operation or a decryption operation may be performed based on a symmetric-key algorithm.

일 실시 예에서, FTL(1120), ECC 엔진(1130) 및 AES 엔진(1140) 중 적어도 하나는 소프트웨어 또는 하드웨어로 구현될 수 있다. FTL(1120), ECC 엔진(1130) 및 AES 엔진(1140) 중 적어도 하나가 소프트웨어로 구현되는 경우, 프로그램 코드 또는 정보는 버퍼 메모리(1150)에 저장될 수 있고, CPU(1110)에 의해 실행될 수 있다. FTL(1120), ECC 엔진(1130) 및 AES 엔진(1140) 중 적어도 하나가 하드웨어로 구현되는 경우, FTL(1120), ECC 엔진(1130) 및 AES 엔진(1140) 중 적어도 하나의 동작을 수행하도록 구성된 하드웨어 가속기가 CPU(1110)와 별도로 구비될 수 있다.In one embodiment, at least one of the FTL 1120, the ECC engine 1130, and the AES engine 1140 may be implemented as software or hardware. When at least one of the FTL 1120, the ECC engine 1130, and the AES engine 1140 is implemented as software, program codes or information may be stored in the buffer memory 1150 and executed by the CPU 1110. there is. When at least one of the FTL 1120, the ECC engine 1130, and the AES engine 1140 is implemented in hardware, to perform an operation of at least one of the FTL 1120, the ECC engine 1130, and the AES engine 1140. A configured hardware accelerator may be provided separately from the CPU 1110.

버퍼 메모리(1150)는 스토리지 컨트롤러(1100)로 입력된 데이터를 임시 저장하도록 구성된 쓰기 버퍼 또는 읽기 버퍼일 수 있다. 또는 버퍼 메모리(1150)는 스토리지 컨트롤러(1100)가 동작하는데 필요한 다양한 정보를 저장하도록 구성될 수 있다. 예를 들어, 버퍼 메모리(1150)는 FTL(1120)에 의해 관리되는 맵핑 테이블을 저장할 수 있다. 또는 버퍼 메모리(1150)는 FTL(1120)과 관련된 소프트웨어, 펌웨어, 또는 정보를 저장할 수 있다. 좀 더 구체적으로, 버퍼 메모리(1150)는 HMB 할당 테이블(HMBAT), HMB 상태 테이블(HMBST), HMB 맵핑 테이블(HMBMT) 등을 저장할 수 있다. 버퍼 메모리(1150)는 메모리 블록들에 대한 메타 데이터를 저장할 수 있다.The buffer memory 1150 may be a write buffer or a read buffer configured to temporarily store data input to the storage controller 1100 . Alternatively, the buffer memory 1150 may be configured to store various information necessary for the storage controller 1100 to operate. For example, the buffer memory 1150 may store a mapping table managed by the FTL 1120 . Alternatively, the buffer memory 1150 may store software, firmware, or information related to the FTL 1120 . More specifically, the buffer memory 1150 may store an HMB allocation table (HMBAT), an HMB state table (HMBST), an HMB mapping table (HMBMT), and the like. The buffer memory 1150 may store meta data for memory blocks.

일 실시 예에서, 버퍼 메모리(1150)는 SRAM일 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니며, 버퍼 메모리(1150)는 DRAM, MRAM, PRAM 등과 같은 다양한 종류의 메모리 장치로 구현될 수 있다. 버퍼 메모리(1150)가 스토리지 컨트롤러(1100)에 포함되는 것으로 도 1에 도시되어 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다. 버퍼 메모리(1150)는 스토리지 컨트롤러(1100)의 외부에 위치할 수 있고, 스토리지 컨트롤러(1100)는 별도의 통신 채널 또는 인터페이스를 통해 버퍼 메모리와 통신할 수 있다.In one embodiment, the buffer memory 1150 may be SRAM, but the scope of the present disclosure is not limited thereto, and the buffer memory 1150 may be implemented with various types of memory devices such as DRAM, MRAM, and PRAM. . Although the buffer memory 1150 is illustrated in FIG. 1 as being included in the storage controller 1100, the scope of the present disclosure is not limited thereto. The buffer memory 1150 may be located outside the storage controller 1100, and the storage controller 1100 may communicate with the buffer memory through a separate communication channel or interface.

호스트 인터페이스 회로(1160)는 미리 정해진 인터페이스 규약에 따라, 호스트(11)와 통신하도록 구성될 수 있다. 일 실시 예에서, 미리 정해진 인터페이스 규약은 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) 카드 인터페이스, 또는 네트워크 인터페이스 등과 같은 다양한 인터페이스 규약들 중 적어도 하나를 포함할 수 있다. 호스트 인터페이스 회로(1160)는 미리 정해진 인터페이스 규약에 기반한 신호를 호스트(11)로부터 수신하고, 수신된 신호를 기반으로 동작할 수 있다. 또는 호스트 인터페이스회로(1160)는 미리 정해진 인터페이스 규약에 기반한 신호를 호스트(11)로 전송할 수 있다.The host interface circuit 1160 may be configured to communicate with the host 11 according to predetermined interface rules. In one embodiment, the predetermined interface protocol is an Advanced Technology Attachment (ATA) interface, a Serial ATA (SATA) interface, an external SATA (e-SATA) interface, a Small Computer Small Interface (SCSI) interface, and a Serial Attached SCSI (SAS) interface. , PCI (Peripheral Component Interconnection) interface, PCIe (PCI express) interface, NVMe (NVM express) interface, IEEE 1394, USB (universal serial bus) interface, SD (secure digital) card, MMC (multi-media card) interface, It may include at least one of various interface protocols such as an embedded multi-media card (eMMC) interface, a universal flash storage (UFS) interface, an embedded universal flash storage (eUFS) interface, a compact flash (CF) card interface, or a network interface. can The host interface circuit 1160 may receive a signal based on a predetermined interface rule from the host 11 and operate based on the received signal. Alternatively, the host interface circuit 1160 may transmit a signal based on a predetermined interface rule to the host 11 .

메모리 인터페이스 회로(1170)는 미리 정해진 인터페이스 규약에 따라 불휘발성 메모리 장치(1200)와 통신하도록 구성될 수 있다. 일 실시 예에서, 미리 정해진 인터페이스 규약은 토글 인터페이스, 온파이(ONFI; Open NAND Flash Interface) 인터페이스 등과 같은 다양한 인터페이스 규약들 중 적어도 하나를 포함할 수 있다. 일 실시 예에서, 메모리 인터페이스 회로(1170)는 토글 인터페이스를 기반으로 불휘발성 메모리 장치(1200)와 통신할 수 있다. 이 경우, 메모리 인터페이스 회로(1170)는 복수의 채널들을 통해 불휘발성 메모리 장치(1200)와 통신할 수 있다. 일 실시 예에서, 복수의 채널들 각각은 다양한 제어 신호들, 데이터 신호들, 및 데이터 스트로브 신호를 전송하도록 구성된 복수의 신호 라인들을 포함할 수 있다.The memory interface circuit 1170 may be configured to communicate with the nonvolatile memory device 1200 according to predetermined interface rules. In one embodiment, the predetermined interface protocol may include at least one of various interface rules such as a toggle interface and an open NAND Flash Interface (ONFI) interface. In an embodiment, the memory interface circuit 1170 may communicate with the nonvolatile memory device 1200 based on a toggle interface. In this case, the memory interface circuit 1170 may communicate with the nonvolatile memory device 1200 through a plurality of channels. In one embodiment, each of the plurality of channels may include a plurality of signal lines configured to transmit various control signals, data signals, and a data strobe signal.

HMB 컨트롤러(1180)는 HMB(14)를 관리할 수 있다. HMB 컨트롤러(1180)는 HMB(14)를 버퍼로 이용하여 다양한 데이터를 저장하고 관리할 수 있다. HMB 컨트롤러(1180)는, 데이터의 신뢰성 또는 보안을 위하여, 보안 정책을 기반으로 데이터에 대한 인코딩 동작을 수행하고, 인코딩된 데이터를 HMB(14)에 저장할 수 있다. HMB 컨트롤러(1180)는 HMB(14)로부터 인코딩된 데이터를 읽고, 해당 데이터에 대해 디코딩 동작을 수행할 수 있다.The HMB controller 1180 may manage the HMB 14 . The HMB controller 1180 may store and manage various data by using the HMB 14 as a buffer. For data reliability or security, the HMB controller 1180 may perform an encoding operation on data based on a security policy and store the encoded data in the HMB 14 . The HMB controller 1180 may read encoded data from the HMB 14 and perform a decoding operation on the corresponding data.

일 실시 예에서, HMB 컨트롤러(1180)는 호스트(11)로부터 제공된 HMB 할당 정보를 기반으로 HMB(14)를 복수의 영역들로 분할하여 관리할 수 있다. HMB 컨트롤러(1180)는 복수의 영역들 각각에 보안 정책을 선택할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 복수의 영역들 각각에 대하여 동일한 또는 상이한 보안 정책들을 설정할 수 있다. HMB 컨트롤러(1180)는 복수의 영역들 각각의 특성, 다양한 정보들을 기반으로, 복수의 영역들 각각에 대한 보안 정책들을 선택할 수 있다.In one embodiment, the HMB controller 1180 divides the HMB 14 into a plurality of areas based on HMB allocation information provided from the host 11 and manages the divided areas. The HMB controller 1180 may select a security policy for each of the plurality of areas. For example, the HMB controller 1180 may set the same or different security policies for each of a plurality of areas. The HMB controller 1180 may select security policies for each of the plurality of areas based on characteristics of each of the plurality of areas and various pieces of information.

일 실시 예에서, HMB 컨트롤러(1180)는 HMB(14)의 영역별 신뢰성 수준 및 보안 수준 중 적어도 하나를 기반으로 HMB(14)의 영역별 보안 정책을 설정할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 특정 영역에 저장될 데이터의 유형을 기반으로 보안 정책을 설정할 수 있다. HMB 컨트롤러(1180)는 특정 영역에 요구되는 데이터의 신뢰성 또는 보안을 기반으로 보안 정책을 설정할 수 있다. HMB 컨트롤러(1180)는 특정 영역에 대응하는 메모리 장치의 특성을 기반으로 보안 정책을 설정할 수 있다. 예를 들어, 보안 정책은 사용자에 대한 정보 보호 또는 보안성을 제공하기 위하여 데이터를 암호화 또는 해독하기 위한 기술에 관한 것일 수 있다. 또한, 보안 정책은 어떠한 보안 IP(Intellectual Property) 또는 어떠한 키 등을 사용하여 HMB(14)에 데이터를 쓰거나 HMB(14)의 데이터를 읽을지에 대한 정책을 포함할 수 있다. 보안 IP는 보안 알고리즘을 사용하기 위해 설계된 집적 회로(IC; Integrated Circuit)를 포함할 수 있다.In an embodiment, the HMB controller 1180 may set a security policy for each area of the HMB 14 based on at least one of a reliability level and a security level for each area of the HMB 14 . For example, the HMB controller 1180 may set a security policy based on the type of data to be stored in a specific area. The HMB controller 1180 may set a security policy based on reliability or security of data required for a specific area. The HMB controller 1180 may set a security policy based on characteristics of a memory device corresponding to a specific area. For example, a security policy may relate to techniques for encrypting or decrypting data to provide information protection or security for users. In addition, the security policy may include a policy for writing data to or reading data from the HMB 14 using a security IP (Intellectual Property) or a key. Secure IP may include an Integrated Circuit (IC) designed to use a secure algorithm.

일 실시 예에서, HMB 컨트롤러(1180)는 복수의 영역들 각각에 대한 변경 조건이 충족된 경우, 대응하는 보안 정책을 변경할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 동작 중(예를 들어, 런타임 동안)에 특정 영역에 대한 보안 정책을 변경할 수 있다. HMB 컨트롤러(1180)는 특정 영역에 대응하는 메모리 장치의 특성이 변화하거나, 특정 영역에 저장될 데이터의 유형이 변화하거나, 특정 영역에 대한 신뢰성 요구 수준이 변화하거나, 특정 영역에 대한 보안 요구 수준이 변화하거나, 키 유효 시간이 경과하거나, 데이터 무결성 체크가 실패하거나, 비정상적인 메모리 버퍼 할당이 검출되는 등의 경우에 보안 정책의 변경 조건이 충족되었다고 판단할 수 있다.In an embodiment, the HMB controller 1180 may change a corresponding security policy when a change condition for each of the plurality of areas is satisfied. For example, the HMB controller 1180 may change a security policy for a specific area during operation (eg, during runtime). The HMB controller 1180 determines whether the characteristics of a memory device corresponding to a specific area change, the type of data to be stored in a specific area changes, the reliability requirement level for a specific area changes, or the security requirement level for a specific area changes. It may be determined that the change condition of the security policy is satisfied when the security policy changes, the key validity time elapses, data integrity check fails, or abnormal memory buffer allocation is detected.

여기서, 높은 보안이 요구되는 데이터가 저장되는 경우나, 신뢰성 요구 수준이 상향된 경우나, 보안 요구 수준이 상향된 경우나, 키 유효 시간이 경과한 경우나, 데이터 무결성 체크가 실패하거나, 비정상적인 메모리 버퍼 할당이 검출되는 경우는 보안성 강화가 필요한 경우일 수 있다. 보안성 강화에 관한 변경 조건이 충족된 경우, HMB 컨트롤러(1180)는 특정 영역에 대해 보안성이 높은 보안 IP로 변경하거나, 보안성이 높은 키로 변경할 수 있다. 예를 들어, 보안성이 높은 키로의 변경은 이전 키보다 비트 수가 많은 키로의 변경을 의미할 수 있다.Here, when data requiring high security is stored, when the reliability requirement level is raised, when the security requirement level is raised, when the key validity time has elapsed, when data integrity check fails, or when abnormal memory A case in which buffer allocation is detected may be a case in which security enhancement is required. When a change condition for enhancing security is satisfied, the HMB controller 1180 may change a specific area to a security IP with high security or a key with high security. For example, a change to a key with high security may mean a change to a key having more bits than a previous key.

대안적으로, 키 유효 시간이 경과한 경우에는 HMB 컨트롤러(1180)는 동일한 보안성을 갖는 다른 보안 정책으로 변경할 수도 있다.Alternatively, when the key validity time has elapsed, the HMB controller 1180 may change to another security policy having the same security.

또한, 낮은 보안이 요구되는 데이터가 저장되는 경우나, 신뢰성 요구 수준이 하향된 경우나, 보안 요구 수준이 하향된 경우는 보안성 완화가 필요한 경우일 수 있다. 보안성 완화에 관한 변경 조건이 충족된 경우, HMB 컨트롤러(1180)는 특정 영역에 대해 보안성이 낮은 보안 IP로 변경하거나, 보안성이 낮은 키로 변경할 수 있다. 예를 들어, 보안성이 낮은 키로의 변경은 이전 키보다 비트 수가 적은 키로의 변경을 의미할 수 있다.In addition, when data requiring low security is stored, when the reliability requirement level is lowered, or when the security requirement level is lowered, security mitigation may be required. When a change condition for security relaxation is satisfied, the HMB controller 1180 may change a specific area to a security IP with low security or a key with low security. For example, a change to a key having low security may mean a change to a key having fewer bits than a previous key.

본 실시 예에 따른 스토리지 장치(1000)는 HMB(14)의 영역별로 적합한 보안 정책을 선택할 수 있다. 예를 들어, 스토리지 장치(1000)는 데이터 신뢰성 요구도가 높은 영역에 대해 보안성이 높은 보안 정책을 설정하고, 데이터 신뢰성 요구도가 낮은 영역에 대해 보안성이 낮은 보안 정책을 설정할 수 있다.The storage device 1000 according to this embodiment may select an appropriate security policy for each area of the HMB 14 . For example, the storage device 1000 may set a high-security security policy for an area with a high data reliability requirement, and set a low-security security policy for an area with a low data reliability requirement.

이에 따라, 기존에 HMB(14) 전체에 대하여 동일한 보안 정책만 설정 가능한 경우, 즉, HMB(14)의 영역별로 적합한 보안 정책을 선택할 수 없는 경우, HMB(14)에 저장될 데이터 중 일부에 대해서만 보안성이 높은 보안 정책이 필요한 경우에도, HMB(14)에 저장될 모든 데이터에 대해 보안성이 높은 보안 정책을 사용해야 하고, 보안성이 높은 보안 정책을 사용함으로 인해서 오버헤드가 증가하거나 복잡한 연산을 수행함으로써 레이턴시가 증가하는 점을 개선할 수 있다. 이에 따라, 스토리지 장치(1000)의 성능이 향상될 수 있다.Accordingly, when only the same security policy can be set for the entire HMB 14, that is, when an appropriate security policy cannot be selected for each area of the HMB 14, only for some of the data to be stored in the HMB 14. Even when a security policy with high security is required, a security policy with high security must be used for all data to be stored in the HMB (14), and using a security policy with high security increases overhead or complicates calculations. By doing this, it is possible to improve the increase in latency. Accordingly, performance of the storage device 1000 may be improved.

상술된 바와 같이, 스토리지 장치(1000)는 HMB(14)의 영역별로 적합한 보안 정책을 선택하고, 변경 조건이 충족된 경우 HMB(14)의 영역에 대응하는 보안 정책을 변경할 수 있다. 이에 따라, 스토리지 장치(1000)는 향상된 성능 및 향상된 신뢰성을 가질 수 있다. 본 개시의 실시 예에 따른 호스트(11) 및 스토리지 장치(1000)의 동작 방법은 이하의 도면들을 참조하여 더욱 상세하게 설명된다.As described above, the storage device 1000 may select an appropriate security policy for each area of the HMB 14 and change the security policy corresponding to the area of the HMB 14 when a change condition is satisfied. Accordingly, the storage device 1000 may have improved performance and improved reliability. An operating method of the host 11 and the storage device 1000 according to an embodiment of the present disclosure will be described in detail with reference to the following drawings.

도 2는 도 1의 HMB 컨트롤러를 좀 더 상세하게 보여주는 블록도이다, 도 3은 도 2의 HMB 관리자가 생성하는 HMB 할당 테이블(HMBAT)의 예를 보여주는 도면이다. 도 4a 내지 도 4d는 HMB 관리자가 생성하는 HMB 맵핑 테이블(HMBMT)의 예들을 보여주는 도면이다.FIG. 2 is a block diagram showing the HMB controller of FIG. 1 in more detail. FIG. 3 is a diagram showing an example of an HMB allocation table (HMBAT) created by the HMB manager of FIG. 2 . 4A to 4D are diagrams illustrating examples of HMB mapping tables (HMBMT) created by an HMB manager.

도 1, 도 2, 도 3, 및 도 4a 내지 도 4d를 참조하면, 스토리지 장치(1000)는 호스트(11)의 자원을 이용할 수 있다. 예를 들어, 스토리지 장치(1000)는 HMB(14)를 버퍼로 이용하여 다양한 데이터를 관리할 수 있다. 이에 따라, 충분한 자원들이 스토리지 장치(1000)를 위해 제공될 수 있다.Referring to FIGS. 1 , 2 , 3 , and 4A to 4D , the storage device 1000 may use resources of the host 11 . For example, the storage device 1000 may manage various data by using the HMB 14 as a buffer. Accordingly, sufficient resources may be provided for the storage device 1000 .

HMB 컨트롤러(1180)는 HMB 관리자(HMB Manager)(1181), 보안 IP 풀(Security IP Pool)(1182), 비정상 검출기(Abnormality Detector)(1183), 인코더(Encoder)(1188), 및 디코더(Decoder)(1189)를 포함할 수 있다. The HMB controller 1180 includes an HMB manager 1181, a security IP pool 1182, an abnormality detector 1183, an encoder 1188, and a decoder. ) (1189).

HMB 관리자(1181)는 HMB 컨트롤러(1180)의 제반 동작을 제어할 수 있다. 예를 들어, HMB 관리자(1181)는 호스트(11)로부터 HMB 할당 정보를 수신하고, HMB 할당 정보를 기반으로 HMB(14)를 복수의 영역들로 분할할 수 있다. The HMB manager 1181 may control overall operations of the HMB controller 1180 . For example, the HMB manager 1181 may receive HMB allocation information from the host 11 and divide the HMB 14 into a plurality of areas based on the HMB allocation information.

도 3에 도시된 바와 같이, HMB 관리자(1181)는 HMB(14)의 복수의 영역들의 물리 어드레스(3010), 논리 어드레스(3020), 맵핑 여부(3030), 태그 정보(3040) 등을 포함하는 HMB 할당 테이블(HMBAT)을 생성하고 저장할 수 있다.As shown in FIG. 3, the HMB manager 1181 includes physical addresses 3010, logical addresses 3020, mapping status 3030, tag information 3040, etc. of a plurality of areas of the HMB 14. HMB Allocation Table (HMBAT) can be created and saved.

물리 어드레스(3010)는 HMB 관리자(1181)가 분할한 HMB(14)의 각 영역의 실제 어드레스를 나타낼 수 있다.The physical address 3010 may indicate a real address of each area of the HMB 14 divided by the HMB manager 1181.

논리 어드레스(3020)는 HMB(14)의 영역들을 관리하기 위해 HMB 관리자(1181)가 설정한 논리 엔트리(logical entry)일 수 있다. 논리 어드레스(3020)는 물리 어드레스(3010)에 대응할 수 있다.The logical address 3020 may be a logical entry set by the HMB manager 1181 to manage areas of the HMB 14 . Logical address 3020 may correspond to physical address 3010 .

맵핑 여부(3030)는 물리 어드레스(3010)와 논리 어드레스(3020)가 맵핑되었는지 여부를 나타낼 수 있다. 예를 들어, 맵핑이 된 경우는 '1'로 나타내고, 맵핑이 되지 않은 경우는 '0'으로 나타낼 수 있다.Mapping 3030 may indicate whether the physical address 3010 and the logical address 3020 are mapped. For example, a case of mapping may be represented by '1', and a case of not mapping may be represented by '0'.

태그 정보(3040)는 HMB(14)의 영역들의 식별자를 나타낼 수 있다. 예를 들어, HMB 관리자(1181)는 HMB(14)를 영역 0, 영역 1, ..., 영역 N(여기서 N은 자연수)으로 분할할 수 있고, 태그 정보(3040)는 해당 영역들을 식별하기 위한 값으로 '0', '1', ..., 'N'을 포함할 수 있다.The tag information 3040 may indicate identifiers of regions of the HMB 14 . For example, the HMB manager 1181 can divide the HMB 14 into area 0, area 1, ..., area N (where N is a natural number), and the tag information 3040 identifies the corresponding areas. Values for '0', '1', ..., 'N' may be included.

HMB 관리자(1181)는 복수의 영역들 각각에 보안 정책을 설정할 수 있다. 예를 들어, HMB 관리자(1181)는 복수의 영역들 각각에 보안 IP 또는 키 등을 설정하고, HMB 맵핑 테이블(HMBMT)을 생성하여 저장할 수 있다. HMB 맵핑 테이블(HMBMT)은 HMB(14)의 영역의 태그 정보(3110), 보안 IP(3120), 및 키(3130)를 포함할 수 있다. HMB 관리자(1181)는 변경 조건이 충족된 경우, 특정 영역의 보안 정책을 변경할 수 있다. 예를 들어, HMB(14)의 비정상적인 동작이 검출되면 HMB 관리자(1181)는 보안 IP 및 키 중 적어도 하나를 변경할 수 있다. 보안 IP를 변경하면 키 값 생성 방식이 변경될 수 있다. 키를 변경하는 것은 키 맵핑 테이블에서 해당 영역의 키 값을 변경하는 것을 의미할 수 있다. HMB 관리자(1181)는 변경된 보안 정책을 HMB 맵핑 테이블(HMBMT)에 반영할 수 있다.The HMB manager 1181 may set a security policy for each of a plurality of areas. For example, the HMB manager 1181 may set a security IP or key in each of a plurality of areas, and create and store an HMB mapping table (HMBMT). The HMB mapping table (HMBMT) may include tag information 3110 of the area of the HMB 14 , security IP 3120 , and key 3130 . The HMB manager 1181 may change the security policy of a specific area when a change condition is satisfied. For example, when an abnormal operation of the HMB 14 is detected, the HMB manager 1181 may change at least one of a security IP and a key. Changing the security IP may change the key value generation method. Changing a key may mean changing a key value of a corresponding area in a key mapping table. The HMB manager 1181 may reflect the changed security policy to the HMB mapping table (HMBMT).

도 4a에 도시된 바와 같이, HMB 관리자(1181)는 HMB(14)의 영역 0에 보안 IP(IP #1)를 설정하고, '010011010..'의 128비트 키를 설정할 수 있다. HMB 관리자(1181)는 HMB(14)의 영역 1에 보안 IP(IP #0)를 설정하고, '110110000101001100..'의 256비트 키를 설정할 수 있다. HMB 관리자(1181)는 HMB(14)의 영역 N에 보안 IP(IP #2)를 설정하고, '110011011..'의 128비트 키를 설정할 수 있다.As shown in FIG. 4A , the HMB manager 1181 may set a security IP (IP #1) in area 0 of the HMB 14 and set a 128-bit key of '010011010...'. The HMB manager 1181 may set a security IP (IP #0) in area 1 of the HMB 14 and set a 256-bit key of '110110000101001100...'. The HMB manager 1181 may set a security IP (IP #2) in area N of the HMB 14 and set a 128-bit key of '110011011..'.

도 4a에 도시된 바와 같이 보안 정책이 설정된 후, 비정상 검출기(1184)가 HMB(14)의 영역 1의 비정상적인 동작을 검출하고 HMB 관리자(1181)에 통지할 수 있다. 도 4b에 도시된 바와 같이, HMB 관리자(1181)는 영역 1의 키를 '000110100010111111..'의 256비트 키로 변경할 수 있다.After the security policy is set as shown in FIG. 4A , the abnormality detector 1184 may detect an abnormal operation of region 1 of the HMB 14 and notify the HMB manager 1181 . As shown in FIG. 4B , the HMB manager 1181 may change the key of area 1 to a 256-bit key of '000110100010111111..'.

비정상 검출기(1184)가 HMB(14)의 영역 0의 비정상적인 동작을 검출하고 HMB 관리자(1181)에 통지하면, 도 4c에 도시된 바와 같이, HMB 관리자(1181)는 영역 0의 보안 IP를 보안 IP(IP #1)에서 보안 IP(IP #0)로 변경하고, 키를 '110110011101001100..'의 256비트 키로 변경할 수 있다.When the abnormality detector 1184 detects an abnormal operation of area 0 of the HMB 14 and notifies the HMB manager 1181, the HMB manager 1181 assigns the security IP of area 0 to the security IP as shown in FIG. 4C. (IP #1) can be changed to secure IP (IP #0), and the key can be changed to a 256-bit key of '110110011101001100..'.

비정상 검출기(1184)가 HMB(14)의 영역 N의 비정상적인 동작을 검출하고 HMB 관리자(1181)에 통지하면, 도 4d에 도시된 바와 같이, HMB 관리자(1181)는 영역 N의 보안 IP를 보안 IP(IP #2)에서 보안 IP(IP #1)로 변경할 수 있다.When the abnormality detector 1184 detects an abnormal operation of area N of the HMB 14 and notifies the HMB manager 1181, the HMB manager 1181 assigns the security IP of area N to the security IP as shown in FIG. 4D. (IP #2) to secure IP (IP #1).

HMB 관리자(1181)는 HMB와 관련된 정보를 관리할 수 있다. 예를 들어, HMB 관리자(1181)는 HMB 할당 테이블(HMBAT), HMB 맵핑 테이블(HMBMT), 및 HMB 상태 테이블(HMBST)을 생성하고 관리할 수 있다.The HMB manager 1181 may manage HMB-related information. For example, the HMB manager 1181 may create and manage an HMB allocation table (HMBAT), an HMB mapping table (HMBMT), and an HMB state table (HMBST).

보안 IP 풀(1182)은 복수의 보안 IP들(IP #0~IP #n)(여기서 n은 자연수)을 포함할 수 있다. 복수의 보안 IP들(IP #0~IP #n) 각각은 설정된 보안 정책에 따라 보안 절차를 수행하는 논리 연산 모듈로 구현될 수 있다. 복수의 보안 IP들(IP #0~IP #n)에는 서로 다른 보안 정책이 설정되어, 복수의 보안 IP들(IP #0~IP #n) 각각은 서로 다른 방식으로 키 값을 생성할 수 있다. 따라서, 복수의 보안 IP들(IP #0~IP #n)은 서로 다른 보안 정책에 따라 서로 다른 방식으로 보안 절차를 수행할 수 있다. 보안 절차는 암호화, 해독, 인증 등의 절차를 포함할 수 있다.The secure IP pool 1182 may include a plurality of secure IPs IP #0 to IP #n (where n is a natural number). Each of the plurality of security IPs (IP #0 to IP #n) may be implemented as a logic operation module that performs a security procedure according to a set security policy. Different security policies are set for the plurality of security IPs (IP #0 to IP #n), and each of the plurality of security IPs (IP #0 to IP #n) can generate a key value in a different way. . Accordingly, the plurality of security IPs (IP #0 to IP #n) may perform security procedures in different ways according to different security policies. Security procedures may include procedures such as encryption, decryption, and authentication.

보안 정책은 CRC(cyclic redundancy check)(예를 들어, CRC-16, CRC-32, CRC-64, CRC-128, CRC-256 등), 해밍 코드(Hamming Code), LDPC(Low Density Parity Check), BCH 코드(Bose-Chaudhuri-Hocquenghem Code), RS 코드(Reed-Solomon Code), Viterbi 코드, Turbo 코드, AES(Advanced Encryption Standard)(예를 들어, AES-128, AES-192, AES-256), SHA(Secure Hash Algorithm), RSA(Rivest Shamir Adleman), PCIe IDE(Peripheral Component Interconnect Express Integrity and Data Encryption), 또는 PCIe DOE(Data Object Exchange) 중 적어도 하나와 관련될 수 있다. The security policy is a cyclic redundancy check (CRC) (eg, CRC-16, CRC-32, CRC-64, CRC-128, CRC-256, etc.), Hamming Code, Low Density Parity Check (LDPC) , BCH code (Bose-Chaudhuri-Hocquenghem Code), RS code (Reed-Solomon Code), Viterbi code, Turbo code, Advanced Encryption Standard (AES) (e.g. AES-128, AES-192, AES-256) , SHA (Secure Hash Algorithm), RSA (Rivest Shamir Adleman), PCIe IDE (Peripheral Component Interconnect Express Integrity and Data Encryption), or PCIe DOE (Data Object Exchange).

인코더(1188)는 데이터에 대한 인코딩 동작을 수행하여 인코딩된 데이터를 생성할 수 있다. 인코더(1188)는 HMB 관리자(1181)에 의해 선택된 복수의 보안 IP들(IP #0~IP #n) 중 하나를 사용하여 데이터에 대한 인코딩 동작을 수행할 수 있다. 인코더(1188)에 의해 인코딩된 데이터는 HMB(14)로 전송될 수 있다.Encoder 1188 may perform an encoding operation on the data to generate encoded data. The encoder 1188 may perform an encoding operation on data using one of a plurality of security IPs (IP #0 to IP #n) selected by the HMB manager 1181. Data encoded by encoder 1188 may be transmitted to HMB 14.

디코더(1189)는 인코딩된 데이터에 대한 디코딩 동작을 수행하여 디코딩된 데이터를 생성할 수 있다. 디코딩된 데이터는 인코딩 전의 데이터일 수 있다. 디코더(1189)는 HMB 관리자(1181)에 의해 선택된 복수의 보안 IP들(IP #0~IP #n) 중 하나를 사용하여 인코딩된 데이터에 대한 디코딩 동작을 수행할 수 있다.The decoder 1189 may generate decoded data by performing a decoding operation on the encoded data. Decoded data may be data before encoding. The decoder 1189 may perform a decoding operation on data encoded using one of a plurality of security IPs (IP #0 to IP #n) selected by the HMB manager 1181.

도 2에서는 설명의 편의를 위해 인코더(1188)와 디코더(1189)가 보안 IP 풀(1182)의 외부에 배치되는 것으로 도시하였지만, 반드시 이에 한정되는 것은 아니고, 인코더(1188)와 디코더(1189)가 보안 IP 풀(1182)과 함께 하나의 모듈을 구성하는 것으로 구현될 수도 있다.In FIG. 2, for convenience of explanation, the encoder 1188 and the decoder 1189 are illustrated as being disposed outside the secure IP pool 1182, but it is not necessarily limited thereto, and the encoder 1188 and the decoder 1189 are It may be implemented by configuring one module together with the secure IP pool 1182.

비정상 검출기(1183)는 보안 정책의 변경 조건이 충족되었는지 여부를 모니터링 할 수 있다. 보안 정책의 변경 조건은 HMB(14)의 적어도 하나의 영역의 비정상적인 동작이 발생하는 경우를 포함할 수 있다. 비정상 검출기(1183)는 보안 정책의 변경 조건이 충족된 경우, HMB 관리자(1181)에게 변경 조건이 충족되었음을 가리키는 변경 신호를 출력할 수 있다.The abnormality detector 1183 may monitor whether a change condition of the security policy is satisfied. The change condition of the security policy may include a case where an abnormal operation of at least one area of the HMB 14 occurs. When the change condition of the security policy is satisfied, the abnormal detector 1183 may output a change signal indicating that the change condition is satisfied to the HMB manager 1181 .

비정상 검출기(1183)는 타이머(1184), 데이터 무결성 검사기(1185), 및 HMB 할당 검사기(1186)를 포함할 수 있다. 타이머(1184)는 보안 정책의 변경 조건에 관한 특정 이벤트가 발생한 시점(이하, 특정 시점)부터 미리 정해진 시간을 카운팅 하도록 구성될 수 있다. 예를 들어, 타이머(1184)는 시스템 클럭 또는 동작 클럭을 카운팅하여, 특정 시점으로부터 경과된 시간 또는 미리 정해진 시간을 카운팅하도록 구성될 수 있다.The anomaly detector 1183 may include a timer 1184, a data integrity checker 1185, and an HMB allocation checker 1186. The timer 1184 may be configured to count a predetermined time from the time when a specific event related to the change condition of the security policy occurs (hereinafter referred to as a specific time point). For example, the timer 1184 may be configured to count a system clock or an operating clock to count elapsed time from a specific point in time or a predetermined time.

일 실시 예에서, 타이머(1184)는 복수의 영역 각각에 대해서 특정 시점으로부터(예를 들어, 제1 영역에 데이터가 처음 기입된 시점으로부터) 경과된 시간을 카운트할 수 있다. 타이머(1184)의 카운트 결과를 경과 시간이라 한다. 비정상 검출기(1183)는 복수의 영역 각각에 대한 경과 시간이 HMB 상태 테이블(HMBST)에 포함된 경과 시간 정보에 대응하는 기준 시간을 초과한 경우, 해당 영역에 대한 보안 정책 변경 조건이 충족되었음을 판단할 수 있다. 기준 시간은 데이터 유형 별로 또는 영역 별로 상이하게 설정될 수 있다. 이에, 비정상 검출기(1183)는 HMB 관리자(1181)에게 변경 조건이 충족되었음을 가리키는 변경 신호를 출력하고, HMB 관리자(1181)는 특정 영역에 대한 보안 정책을 변경할 수 있다.In one embodiment, the timer 1184 may count the elapsed time from a specific point in time (eg, from the point in time when data is first written in the first area) for each of the plurality of areas. The count result of the timer 1184 is referred to as elapsed time. When the elapsed time for each of the plurality of areas exceeds the reference time corresponding to the elapsed time information included in the HMB state table (HMBST), the abnormality detector 1183 determines that the security policy change condition for the corresponding area is met. can The reference time may be set differently for each data type or region. Accordingly, the abnormal detector 1183 outputs a change signal indicating that the change condition is satisfied to the HMB manager 1181, and the HMB manager 1181 may change the security policy for a specific area.

데이터 무결성 검사기(1185)는 HMB(14)의 복수의 영역들에 저장된 데이터의 무결성을 검사할 수 있다. 예를 들어, 데이터 무결성 검사기(1185)는 데이터의 오류율 등을 모니터링할 수 있다.The data integrity checker 1185 may check integrity of data stored in a plurality of areas of the HMB 14 . For example, the data integrity checker 1185 may monitor an error rate of data.

일 실시 예에서, 데이터 무결성 검사기(1185)는 HMB 상태 테이블(HMBST)을 참조하여, 모니터링되는 오류율이 변경 조건을 충족하는지 판별할 수 있다. 예를 들어, 모니터링되는 오류율의 수치가 임계치에 도달하는 경우, 변경 조건이 충족될 수 있다. 이에, 비정상 검출기(1183)는 HMB 관리자(1181)에게 변경 조건이 충족되었음을 가리키는 변경 신호를 출력하고, HMB 관리자(1181)는 특정 영역에 대한 보안 정책을 변경할 수 있다.In one embodiment, the data integrity checker 1185 may refer to the HMB state table (HMBST) to determine whether the monitored error rate satisfies the change condition. A change condition may be met, for example, if the value of the error rate being monitored reaches a threshold value. Accordingly, the abnormal detector 1183 outputs a change signal indicating that the change condition is satisfied to the HMB manager 1181, and the HMB manager 1181 may change the security policy for a specific area.

HMB 할당 검사기(1186)는 HMB(14)의 복수의 영역들의 상태 정보를 모니터링할 수 있다. 예를 들어, HMB 할당 검사기(1186)는 메모리 장치의 상태, HMB의 상태, 복수의 영역들의 상태, 메모리 장치의 유형, 무효인 메모리의 영역들의 비율 등을 모니터링할 수 있다. 이때, HMB 할당 검사기(1186)는 복수의 영역들의 로그 정보를 사용하여 모니터링을 수행할 수 있다.The HMB allocation checker 1186 may monitor state information of a plurality of regions of the HMB 14 . For example, the HMB allocation checker 1186 may monitor the state of the memory device, the state of the HMB, the state of a plurality of regions, the type of the memory device, the percentage of invalid memory regions, and the like. In this case, the HMB allocation checker 1186 may perform monitoring using log information of a plurality of areas.

일 실시 예에서, HMB 할당 검사기(1186)는 HMB 상태 테이블(HMBST)을 참조하여, 모니터링되는 상태들이 변경 조건을 충족하는지 판별할 수 있다. 예를 들어, 모니터링되는 상태의 수치가 임계치에 도달하는 경우, 변경 조건이 충족될 수 있다.In one embodiment, the HMB allocation checker 1186 may refer to the HMB state table (HMBST) to determine whether the monitored states satisfy the change condition. A change condition may be satisfied, for example, when the value of the monitored state reaches a threshold.

임계치는 변경 조건 동작이 요구되는 상태의 수준을 고려하여 선택될 수 있다.The threshold may be selected in consideration of a level of a state for which a change condition operation is required.

도 5는 HMB의 복수의 영역들 및 HMB 관리자(1181)가 관리하는 테이블의 예를 보여주는 도면이다. 도 1 및 도 5를 참조하면, HMB 관리자(1181)는 호스트(11)로부터 제공된 HMB 할당 정보를 기반으로 HMB(14)를 복수의 영역들(R1~R4)로 분할하여 관리할 수 있다. HMB(14)는 제1 내지 제4 영역들(R1~R4)을 포함하는 것으로 가정한다. 단, 본 개시의 범위가 이에 한정되지 아니하며, HMB(14)에 포함된 영역들의 개수는 구현에 따라 증가 또는 감소될 수 있다.5 is a diagram showing an example of a plurality of areas of the HMB and a table managed by the HMB manager 1181. Referring to FIGS. 1 and 5 , the HMB manager 1181 divides the HMB 14 into a plurality of regions R1 to R4 based on HMB allocation information provided from the host 11 and manages the HMB 14 . It is assumed that the HMB 14 includes first to fourth regions R1 to R4. However, the scope of the present disclosure is not limited thereto, and the number of regions included in the HMB 14 may be increased or decreased according to implementation.

HMB 관리자(1181)는 HMB와 관련된 정보들을 관리할 수 있다. 예를 들어, HMB 관리자(1181)는 HMB 할당 테이블(HMBAT), HMB 상태 테이블(HMBST), HMB 맵핑 테이블(HMBMT)을 관리할 수 있다. HMB 할당 테이블(HMBAT), HMB 상태 테이블(HMBST), HMB 맵핑 테이블(HMBMT)은 버퍼 메모리(1150) 또는 불휘발성 메모리 장치(1200)에 저장될 수 있다.The HMB manager 1181 may manage information related to HMB. For example, the HMB manager 1181 may manage an HMB allocation table (HMBAT), an HMB state table (HMBST), and an HMB mapping table (HMBMT). The HMB allocation table (HMBAT), HMB state table (HMBST), and HMB mapping table (HMBMT) may be stored in the buffer memory 1150 or the nonvolatile memory device 1200.

일 실시 예에서, HMB 관리자(1181)는 HMB 할당 정보를 기반으로 HMB 할당 테이블(HMBAT)을 생성하여, 버퍼 메모리(1150)에 저장할 수 있다. HMB 관리자(1181)는 복수의 영역들(R1~R4) 각각에 대한 할당 정보를 HMB 할당 테이블(HMBAT)에 저장하고 갱신할 수 있다. HMB(14)의 영역별 할당 정보는 구분된 영역들 단위로 관리되고 갱신될 수 있다. 예를 들어, 할당 정보는 각 영역의 태그 정보, 각 영역에 저장 또는 버퍼링되는 데이터의 유형(또는 종류), 각 영역에 대한 해제 우선 순위, 각 영역의 상태, 각 영역의 크기, 각 영역의 호스트 메모리 어드레스 범위, 각 영역의 신뢰성 요구 수준, 각 영역의 보안 요구 수준 등을 포함할 수 있다. 그러나, 본 개시의 범위가 이에 한정되지 아니하며, HMB 할당 테이블(HMBAT)에 저장되는 할당 정보는 HMB(14)의 복수의 영역들(R1~R4) 각각에 대한 다른 파라미터들이 포함될 수 있다.In an embodiment, the HMB manager 1181 may create an HMB allocation table (HMBAT) based on HMB allocation information and store it in the buffer memory 1150 . The HMB manager 1181 may store and update allocation information for each of the plurality of areas R1 to R4 in the HMB allocation table HMBAT. Allocation information for each region of the HMB 14 may be managed and updated in units of divided regions. For example, allocation information may include tag information for each area, the type (or types) of data stored or buffered in each area, the release priority for each area, the status of each area, the size of each area, and the host of each area. It may include a memory address range, a reliability requirement level of each area, a security requirement level of each area, and the like. However, the scope of the present disclosure is not limited thereto, and allocation information stored in the HMB allocation table (HMBAT) may include other parameters for each of the plurality of regions R1 to R4 of the HMB 14.

예를 들어, 태그 정보는 HMB(14)의 복수의 영역들(R1~R4) 각각을 고유하게 식별하기 위해 참조되는 속성일 수 있다. 그러나, 복수의 영역들(R1~R4)을 고유하게 식별하기 위해 다른 기준이 이용될 수 있는 경우, HMB 할당 테이블(HMBAT)은 태그 정보를 포함하지 않을 수 있다.For example, the tag information may be an attribute referred to uniquely identify each of the plurality of regions R1 to R4 of the HMB 14 . However, if another criterion can be used to uniquely identify the plurality of regions R1 to R4, the HMB allocation table HMBAT may not include tag information.

일 실시 예에서, 복수의 영역들(R1~R4) 각각은 하나의 유형의 데이터를 저장하도록 구성될 수 있다. 예를 들어, 데이터의 유형은 맵핑 데이터, 사용자 데이터, 메타 데이터(예를 들어, ECC 데이터, 상태 데이터 등), 파워게이팅 데이터(예를 들어, 전력 중단 시 보존을 필요로 하는 데이터) 등을 포함할 수 있다. 복수의 영역들은 상이한 유형의 데이터를 저장할 수 있다. 단, 본 개시의 범위가 이에 한정되지 아니하며, 데이터의 유형은 스토리지 장치에서 사용되는 다른 종류의 데이터가 포함될 수 있으며, 하나의 영역은 둘 이상의 유형의 데이터를 저장하거나, 둘 이상의 영역은 하나의 유형의 데이터를 저장할 수 있고, 또는 영역은 데이터의 유형과 무관하게 구성될 수 있다.In one embodiment, each of the plurality of regions R1 to R4 may be configured to store one type of data. For example, types of data include mapping data, user data, metadata (e.g., ECC data, state data, etc.), powergating data (e.g., data that needs to be preserved in case of a power outage), etc. can do. A plurality of regions can store different types of data. However, the scope of the present disclosure is not limited thereto, and the type of data may include other types of data used in the storage device, one area stores two or more types of data, or two or more areas store one type of data. Of data can be stored, or the area can be configured regardless of the type of data.

HMB 관리자(1181)는 HMB 상태 테이블(HMBST)을 생성하고, HMB 상태 테이블(HMBST)을 버퍼 메모리(1150)에 저장하고 관리할 수 있다. HMB 관리자(1181)는 복수의 영역들(R1~R4) 각각에 대한 열화 정보 또는 오류 정보(즉, 상태 정보)를 HMB 상태 테이블(HMBST)에 저장하고 갱신할 수 있다.The HMB manager 1181 may create an HMB state table (HMBST), store the HMB state table (HMBST) in the buffer memory 1150, and manage it. The HMB manager 1181 may store and update degradation information or error information (ie, state information) for each of the plurality of regions R1 to R4 in the HMB state table HMBST.

HMB(14)의 영역별 상태 정보는 구분된 영역들 단위로 관리되고 갱신될 수 있다. 예를 들어, 영역별 상태 정보는 해당 영역의 쓰기 횟수, 읽기 횟수, 그리고 해당 영역에 저장된 데이터로부터 검출된 오류율(예를 들어, 오류 비트의 수 및 읽기 데이터의 총 비트 수의 비율), 경과 시간, 오류 발생 비율(예를 들어, 오류 검출 횟수 및 총 HMB 읽기 요청 횟수의 비율), 읽기 재시도 횟수, 무효인 메모리 공간들의 비율, 가용 용량 등을 포함할 수 있다. 그러나, 본 개시의 범위가 이에 한정되지 아니하며, HMB 상태 테이블(HMBST)에 저장되는 상태 정보는 HMB(14)의 복수의 영역들(R1~R4) 각각에 대한 다른 파라미터들이 포함될 수 있다.State information for each region of the HMB 14 may be managed and updated in units of divided regions. For example, the status information for each area includes the number of writes and reads of the area, the error rate detected from the data stored in the area (for example, the ratio of the number of error bits to the total number of bits of read data), and the elapsed time. , error occurrence ratio (eg, ratio of the number of errors detected and the total number of HMB read requests), the number of read retries, the ratio of invalid memory spaces, available capacity, and the like. However, the scope of the present disclosure is not limited thereto, and state information stored in the HMB state table HMBST may include other parameters for each of the plurality of regions R1 to R4 of the HMB 14 .

HMB 관리자(1181)는 HMB 맵핑 테이블(HMBMT)을 생성하고, HMB 맵핑 테이블(HMBMT)을 버퍼 메모리(1150)에 저장하고 관리할 수 있다. HMB 관리자(1181)는 복수의 영역들(R1~R4) 각각 및 각 영역에 대응하는 보안 정책에 대한 맵핑 정보를 HMB 맵핑 테이블(HMBMT)에 저장하고 갱신할 수 있다.The HMB manager 1181 may create an HMB mapping table (HMBMT), store and manage the HMB mapping table (HMBMT) in the buffer memory 1150. The HMB manager 1181 may store and update mapping information for each of the plurality of regions R1 to R4 and the security policy corresponding to each region in the HMB mapping table HMBMT.

HMB 관리자(1181)는 복수의 영역들(R1~R4)각각에 대하여 보안 정책을 선택하고, 이에 대한 맵핑 정보를 HMB 맵핑 테이블(HMBMT)로 관리할 수 있다. 예를 들어, 제1 영역(R1)은 제1 보안 정책(SP1)과 대응하고, 제2 영역(R2)은 제2 보안 정책(SP2)과 대응하고, 제3 영역(R3)은 제3 보안 정책(SP3)과 대응할 수 있다. HMB 관리자(1181)는 제4 영역(R4)에 대하여 어떤 보안 정책도 설정하지 않을 수 있다. 이 경우, HMB 맵핑 테이블(HMBMT)에서 제4 영역(R4)과 관련된 테이블 셀에는 초기값이 저장될 수 있다. 도 5에 도시된 HMB 맵핑 테이블(HMBMT)을 예시적인 것이며, 본 개시의 범위가 이에 한정되지 아니한다.The HMB manager 1181 may select a security policy for each of the plurality of regions R1 to R4 and manage mapping information therefor in the HMB mapping table HMBMT. For example, the first area R1 corresponds to the first security policy SP1, the second area R2 corresponds to the second security policy SP2, and the third area R3 corresponds to the third security policy. It can correspond with the policy (SP3). The HMB manager 1181 may not set any security policy for the fourth area R4. In this case, an initial value may be stored in a table cell related to the fourth region R4 in the HMB mapping table HMBMT. The HMB mapping table (HMBMT) shown in FIG. 5 is an example, and the scope of the present disclosure is not limited thereto.

도 6은 스토리지 장치의 동작의 예를 보여주는 순서도이다. 도 1, 도 5, 및 도 6을 참조하면, S110 단계에서, 스토리지 장치(1000)는 호스트(11)로부터 HMB 할당 정보를 수신할 수 있다. 예를 들어, 스토리지 장치(1000)는 셋-피쳐(Set Feature)커맨드를 통해 HMB 할당 정보를 수신할 수 있다. HMB 할당 정보는 HMB의 크기 정보, HMB 활성화 정보, 또는 HMB 디스크립터(Descriptor) 리스트 등을 포함할 수 있다. HMB 디스크립터 리스트는 복수의 HMB 디스크립터 엔트리들을 포함할 수 있다. HMB 디스크립터 엔트리는 HMB로 할당된 메모리 어드레스 공간을 가리킬 수 있다. HMB 디스크립터 엔트리는 버퍼 어드레스 정보 및 버퍼 크기 정보를 포함할 수 있다. 버퍼 어드레스는 HMB 디스크립터 엔트리가 가리키는 호스트 메모리 버퍼의 어드레스 정보를 가리킬 수 있다. 버퍼 크기 정보는 HMB 디스크립터 엔트리가 가리키는 메모리 공간 내의 연속된 메모리 페이지의 개수를 가리킬 수 있다.6 is a flowchart illustrating an example of an operation of a storage device. Referring to FIGS. 1 , 5 , and 6 , in step S110 , the storage device 1000 may receive HMB allocation information from the host 11 . For example, the storage device 1000 may receive HMB allocation information through a set-feature command. The HMB allocation information may include HMB size information, HMB activation information, or a HMB descriptor list. The HMB descriptor list may include a plurality of HMB descriptor entries. The HMB descriptor entry may point to a memory address space allocated to the HMB. The HMB descriptor entry may include buffer address information and buffer size information. The buffer address may indicate address information of a host memory buffer indicated by the HMB descriptor entry. The buffer size information may indicate the number of consecutive memory pages in a memory space indicated by the HMB descriptor entry.

일 실시 예에서, 스토리지 장치(1000)는 HMB 할당 정보를 기반으로 HMB(14)를 인식할 수 있다. 스토리지 장치(1000)는 HMB(14)를 복수의 영역들로 분할할 수 있다. HMB(14)의 복수의 영역들은 스토리지 장치(1000)에 의해 관리될 수 있다. 도 5를 참조하면, 스토리지 장치(1000)는 HMB 할당 정보를 기반으로, HMB(14)를 제1 내지 제4 영역들(R1~R4)로 분할할 수 있다.In one embodiment, the storage device 1000 may recognize the HMB 14 based on HMB allocation information. The storage device 1000 may divide the HMB 14 into a plurality of regions. A plurality of areas of the HMB 14 may be managed by the storage device 1000 . Referring to FIG. 5 , the storage device 1000 may divide the HMB 14 into first to fourth regions R1 to R4 based on HMB allocation information.

일 실시 예에서, 스토리지 장치에 의해 관리되는 복수의 영역들은 호스트에 의해 관리되는 HMB 디스크립터 엔트리가 가리키는 복수의 메모리 공간들과 상이할 수 있다. 스토리지 장치(1000)는 HMB 디스크립터 엔트리들이 가리키는 메모리 공간들을 HMB(14)로 인식할 수 있다. 스토리지 장치(1000)는 HMB(14)를 필요에 따라 복수의 영역들로 분류하여 사용할 수 있다.In one embodiment, the plurality of areas managed by the storage device may be different from the plurality of memory spaces indicated by the HMB descriptor entry managed by the host. The storage device 1000 may recognize memory spaces indicated by HMB descriptor entries as the HMB 14 . The storage device 1000 may classify the HMB 14 into a plurality of areas as needed and use them.

S120 단계에서, 스토리지 장치(1000)는 HMB(14)의 각 영역에 대한 보안 수준을 결정할 수 있다. 이때, 스토리지 장치(100)는 각 영역에 저장되는 데이터의 정보를 사용할 수 있다. 예를 들어, 스토리지 장치(1000)는 데이터 신뢰성 요구도가 높은 영역에 대해서는 높은 보안 수준을 결정하고, 데이터 신뢰성 요구도가 낮은 영역에 대해서는 낮은 보안 수준을 결정할 수 있다. 다른 예로, 스토리지 장치(1000)는 데이터의 종류(또는 유형)에 기초하여, 높은 보안성이 요구되는 데이터(예를 들어, 외부에서 쉽게 해독되면 곤란한 데이터)에 대해서는 높은 보안 수준을 결정하고, 낮은 보안성이 요구되는 데이터(예를 들어, 로우 데이터, 로그 데이터 등)에 대해서는 낮은 보안 수준을 결정할 수 있다.In step S120 , the storage device 1000 may determine a security level for each area of the HMB 14 . In this case, the storage device 100 may use information of data stored in each area. For example, the storage device 1000 may determine a high security level for an area with a high data reliability requirement and a low security level for an area with a low data reliability requirement. As another example, the storage device 1000 determines a high security level for data requiring high security (eg, data that is difficult to be easily deciphered from the outside) based on the type (or type) of data, and determines a low security level. A low security level may be determined for data requiring security (eg, raw data, log data, etc.).

S130 단계에서, 스토리지 장치(1000)는 HMB(14)의 각 영역에 대한 보안 정책을 설정할 수 있다. 예를 들어, 스토리지 장치(1000)는 복수의 보안 정책들 중 하나를 복수의 영역들(R1~R4)에 대하여 설정할 수 있다. 스토리지 장치(1000)는 제1 영역(R1)에 대해, 복수의 보안 정책들 중 제1 보안 정책(SP1)을 선택할 수 있다. 스토리지 장치(1000)는 제2 영역(R2)에 대해 제2 보안 정책(SP2)을 선택하고, 제3 영역(R3)에 대해 제3 보안 정책(SP3)을 선택할 수 있다. 그러나, 스토리지 장치(1000)는 제4영역(R4)에 대해 어떠한 보안 정책도 선택하지 않을 수 있다.In step S130 , the storage device 1000 may set a security policy for each area of the HMB 14 . For example, the storage device 1000 may set one of a plurality of security policies for the plurality of regions R1 to R4. The storage device 1000 may select a first security policy SP1 from among a plurality of security policies for the first region R1. The storage device 1000 may select the second security policy SP2 for the second area R2 and select the third security policy SP3 for the third area R3. However, the storage device 1000 may not select any security policy for the fourth area R4.

S140 단계에서, 스토리지 장치(1000)는 보안 정책에 관한 정보를 HMB 맵핑 테이블(HMBMT)에 저장할 수 있다. 예를 들어, 도 5을 참조하면, 스토리지 장치(1000)는 제1 영역(R1)과 관련하여, 제1 보안 정책(SP1)을 HMB 맵핑 테이블(HMBMT)에 저장할 수 있다. 스토리지 장치(1000)는 제2 영역(R2)과 관련하여, 제2 보안 정책(SP2)을 HMB 맵핑 테이블(HMBMT)에 저장할 수 있다. 스토리지 장치(1000)는 제3 영역(R3)과 관련하여, 제3 보안 정책(SP3)을 HMB 맵핑 테이블(HMBMT)에 저장할 수 있다. 스토리지 장치(1000)는 제4 영역(R4)과 관련하여, 초기값(default)을 HMB 맵핑 테이블(HMBMT)에 저장할 수 있다. 즉, 스토리지 장치(1000)는 제4 영역(R4)에 대하여 어떠한 보안 정책도 적용하지 않도록 설정할 수 있다. 다시 말해서, 스토리지 장치(1000)는 제4 영역(R4)에 대응하는 데이터에 대하여 인코딩 또는 디코딩 동작을 수행하지 않을 수 있다.In step S140 , the storage device 1000 may store information about the security policy in the HMB mapping table (HMBMT). For example, referring to FIG. 5 , the storage device 1000 may store the first security policy SP1 in the HMB mapping table HMBMT in relation to the first area R1. The storage device 1000 may store the second security policy SP2 in the HMB mapping table HMBMT in relation to the second region R2. The storage device 1000 may store the third security policy SP3 in the HMB mapping table HMBMT in relation to the third area R3. The storage device 1000 may store a default in the HMB mapping table HMBMT in relation to the fourth region R4 . That is, the storage device 1000 may set not to apply any security policy to the fourth area R4. In other words, the storage device 1000 may not perform an encoding or decoding operation on data corresponding to the fourth region R4.

도 7은 도 1의 HMB 컨트롤러의 동작의 예를 보여주는 순서도이다. 도 1 및 도 7을 참조하면, S210 단계에서, HMB 컨트롤러(1180)는 HMB 쓰기 요청 및 데이터를 수신할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 CPU(1110) 또는 FTL(1120)로부터 제공되는 HMB(14)로의 HMB 쓰기 요청을 검출 또는 수신할 수 있다.7 is a flowchart illustrating an example of an operation of the HMB controller of FIG. 1 . Referring to FIGS. 1 and 7 , in step S210, the HMB controller 1180 may receive an HMB write request and data. For example, the HMB controller 1180 may detect or receive an HMB write request to the HMB 14 provided from the CPU 1110 or the FTL 1120 .

S220 단계에서, HMB 컨트롤러(1180)는 HMB 맵핑 테이블(HMBMT)을 기반으로 보안 정책을 판별할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 HMB 쓰기 요청을 기반으로, 데이터가 저장될 HMB(14)의 영역을 판별할 수 있다.구체적으로, HMB 컨트롤러(1180)는 HMB 쓰기 요청에 포함된 HMB(14)의 어드레스를 기반으로, 복수의 영역들(R1~R4) 중 데이터가 저장될 HMB(14)의 영역을 판별할 수 있다. 또는 HMB 컨트롤러(1180)는 HMB 쓰기 요청에 포함된 데이터의 종류(또는 유형)을 기반으로, 복수의 영역들(R1~R4) 중 데이터가 저장될 HMB(14)의 영역을 판별할 수 있다. HMB 컨트롤러(1180)는 데이터가 저장될 HMB(14)의 영역을 기반으로, HMB 맵핑 테이블(HMBMT)로부터 HMB(14)의 영역에 대응하는 보안 정책을 확인할 수 있다.In step S220, the HMB controller 1180 may determine a security policy based on the HMB mapping table (HMBMT). For example, the HMB controller 1180 may determine an area of the HMB 14 in which data is to be stored based on the HMB write request. Specifically, the HMB controller 1180 may determine the HMB included in the HMB write request ( Based on the address of 14), an area of the HMB 14 in which data is to be stored may be determined among the plurality of areas R1 to R4. Alternatively, the HMB controller 1180 may determine an area of the HMB 14 in which data is to be stored among the plurality of areas R1 to R4 based on the type (or type) of data included in the HMB write request. The HMB controller 1180 may check a security policy corresponding to an area of the HMB 14 from an HMB mapping table (HMBMT) based on an area of the HMB 14 in which data is to be stored.

예를 들어, HMB 쓰기 요청에 포함된 어드레스가 HMB(14)의 제1 영역(R1)을 가리킨다고 가정한다. HMB 컨트롤러(1180)는 HMB 쓰기 요청에 포함된 어드레스를 기반으로, 데이터가 저장될 영역이 제1 영역(R1)임을 판별할 수 있다. HMB 컨트롤러(1180)는 HMB 맵핑 테이블(HMBMT)을 기반으로 제1 영역(R1)에 대응하는 보안 정책이 제1 보안 정책(SP1)임을 판별할 수 있다.For example, it is assumed that the address included in the HMB write request points to the first region R1 of the HMB 14 . Based on the address included in the HMB write request, the HMB controller 1180 may determine that the first area R1 is an area where data is to be stored. The HMB controller 1180 may determine that the security policy corresponding to the first region R1 is the first security policy SP1 based on the HMB mapping table HMBMT.

S230 단계에서, HMB 컨트롤러(1180)는 판별된 보안 정책을 기반으로 인코딩 동작을 수행할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 제1 보안 정책(SP1)을 기반으로 데이터에 대한 인코딩 동작을 수행할 수 있다. S240 단계에서, HMB 컨트롤러(1180)는 인코딩된 데이터를 HMB(14)에 기입할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 쓰기 커맨드 및 인코딩된 데이터를 HMB(14)로 전송할 수 있다.In step S230, the HMB controller 1180 may perform an encoding operation based on the determined security policy. For example, the HMB controller 1180 may perform an encoding operation on data based on the first security policy SP1. In step S240, the HMB controller 1180 may write the encoded data to the HMB 14. For example, the HMB controller 1180 may transmit a write command and encoded data to the HMB 14 .

그러나, HMB 쓰기 요청에 대응하는 HMB(14)의 영역이 제4 영역(R4)인 경우(즉, 판별된 보안 정책이 초기값(default)을 가리키는 경우), HMB 컨트롤러(1180)는 HMB 쓰기 요청에 대응하는 데이터에 대한 인코딩 동작을 수행하지 않을 수 있다. 이에 따라, HMB 컨트롤러(1180)는 인코딩 되지 않은 데이터를 HMB(14)에 기입할 수 있다.However, when the area of the HMB 14 corresponding to the HMB write request is the fourth area R4 (ie, when the determined security policy points to the default value), the HMB controller 1180 sends the HMB write request An encoding operation on data corresponding to may not be performed. Accordingly, the HMB controller 1180 may write unencoded data into the HMB 14 .

도 8은 도 1의 HMB 컨트롤러의 동작의 예를 보여주는 순서도이다. 도 1 및 도 8을 참조하면, S310 단계에서, HMB 컨트롤러(1180)는 HMB 읽기 요청을 수신할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 CPU(1110) 또는 FTL(1120)로부터 제공되는 HMB(14)로의 읽기 요청을 검출 또는 수신할 수 있다.8 is a flowchart illustrating an example of an operation of the HMB controller of FIG. 1 . Referring to FIGS. 1 and 8 , in step S310, the HMB controller 1180 may receive an HMB read request. For example, the HMB controller 1180 may detect or receive a read request to the HMB 14 provided from the CPU 1110 or the FTL 1120 .

S320 단계에서, HMB 컨트롤러(1180)는 HMB(14)로부터 데이터를 읽을 수 있다. 예를 들어, HMB 컨트롤러(1180)는 HMB 읽기 요청을 기반으로, HMB(14)로 읽기 커맨드를 전송할 수 있다. HMB 컨트롤러(1180)는 읽기 커맨드에 대응하는 데이터를 HMB(14)로부터 수신할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 HMB 읽기 요청에 포함된 HMB(14)의 어드레스를 기반으로 읽기 커맨드를 생성할 수 있다. 또는 HMB 컨트롤러(1180)는 HMB 읽기 요청에 포함된 HMB(14)의 데이터의 종류(또는 유형)를 기반으로, 읽기 커맨드를 생성할 수 있다.In step S320, the HMB controller 1180 may read data from the HMB 14. For example, the HMB controller 1180 may transmit a read command to the HMB 14 based on the HMB read request. The HMB controller 1180 may receive data corresponding to the read command from the HMB 14 . For example, the HMB controller 1180 may generate a read command based on the address of the HMB 14 included in the HMB read request. Alternatively, the HMB controller 1180 may generate a read command based on the type (or type) of data of the HMB 14 included in the HMB read request.

S330 단계에서, HMB 컨트롤러(1180)는 HMB 맵핑 테이블(HMBMT)을 기반으로 보안 정책을 판별할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 HMB 읽기 요청을 기반으로, 데이터가 저장된 HMB(14)의 영역을 판별할 수 있다.In step S330, the HMB controller 1180 may determine a security policy based on the HMB mapping table (HMBMT). For example, the HMB controller 1180 may determine an area of the HMB 14 in which data is stored based on the HMB read request.

구체적으로, HMB 컨트롤러(1180)는 HMB 읽기 요청에 포함된 HMB(14)의 어드레스를 기반으로, 복수의 영역들(R1~R4) 중 데이터가 저장된 HMB(14)의 영역을 판별할 수 있다. 또는 HMB 컨트롤러(1180)는 HMB 읽기 요청에 포함된 데이터의 종류(또는 유형)를 기반으로, 복수의 영역들(R1~R4) 중 데이터가 저장된 HMB(14)의 영역을 판별할 수 있다. HMB 컨트롤러(1180)는 데이터가 저장된 HMB(14)의 영역을 기반으로, HMB 맵핑 테이블(HMBMT)로부터 HMB(14)의 영역에 대응하는 보안 정책을 확인할 수 있다.Specifically, the HMB controller 1180 may determine an area of the HMB 14 in which data is stored among a plurality of areas R1 to R4 based on the address of the HMB 14 included in the HMB read request. Alternatively, the HMB controller 1180 may determine an area of the HMB 14 in which data is stored among a plurality of areas R1 to R4 based on the type (or type) of data included in the HMB read request. The HMB controller 1180 may check the security policy corresponding to the area of the HMB 14 from the HMB mapping table (HMBMT) based on the area of the HMB 14 in which data is stored.

예를 들어, HMB 읽기 요청에 포함될 어드레스가 HMB(14)의 제1 영역(R1)을 가리킨다고 가정한다. HMB 컨트롤러(1180)는 HMB 읽기 요청에 포함된 어드레스를 기반으로, 데이터가 저장된 영역이 제1 영역(R1)임을 판별할 수 있다. HMB 관리자(1181)는 HMB 맵핑 테이블(HMBMT)을 기반으로 제1 영역(R1)에 대응하는 보안 정책이 제1 보안 정책(SP1)임을 판별할 수 있다.For example, it is assumed that the address to be included in the HMB read request points to the first region R1 of the HMB 14 . Based on the address included in the HMB read request, the HMB controller 1180 may determine that the data storage area is the first area R1. The HMB manager 1181 may determine that the security policy corresponding to the first area R1 is the first security policy SP1 based on the HMB mapping table HMBMT.

S340 단계에서, HMB 컨트롤러(1180)는 판별된 보안 정책을 기반으로 디코딩 동작을 수행할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 제1 보안 정책(SP1)을 기반으로 데이터에 대한 디코딩 동작을 수행할 수 있다. 이때, HMB 컨트롤러(1180)는 데이터에 오류가 존재하는지 여부를 검출하고, 오류가 존재하는 경우 오류가 정정이 가능한지 여부를 판단하고, 정정이 가능한 경우 오류 정정 동작을 수행할 수도 있다. 오류가 정정이 불가능한 경우 HMB 컨트롤러(1180)는 CPU(1110) 또는 FTL(1120)에게 HMB 읽기 요청에 대한 실패 응답을 전송할 수 있다.In step S340, the HMB controller 1180 may perform a decoding operation based on the determined security policy. For example, the HMB controller 1180 may perform a decoding operation on data based on the first security policy SP1. At this time, the HMB controller 1180 may detect whether there is an error in the data, determine whether the error can be corrected if there is an error, and perform an error correction operation if the error can be corrected. If the error cannot be corrected, the HMB controller 1180 may transmit a failure response to the HMB read request to the CPU 1110 or the FTL 1120.

S350 단계에서, HMB 컨트롤러(1180)는 디코딩된 데이터를 전송할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 디코딩된 데이터를 CPU(1110) 또는 FTL(1120)로 전송할 수 있다.In step S350, the HMB controller 1180 may transmit decoded data. For example, the HMB controller 1180 may transmit decoded data to the CPU 1110 or the FTL 1120.

그러나, HMB 읽기 요청에 대응하는 영역이 제4 영역(R4)인 경우(즉, 판별된 보안 정책이 초기값(default)을 가리키는 경우), HMB 컨트롤러(1180)는 HMB 읽기 요청에 대응하는 데이터에 대한 디코딩 동작을 수행하지 않을 수 있다.However, when the area corresponding to the HMB read request is the fourth area R4 (ie, the determined security policy indicates the default), the HMB controller 1180 stores data corresponding to the HMB read request. decoding operation may not be performed.

이에 따라, HMB 컨트롤러(1180)는 디코딩 되지 않은 데이터를 CPU(1110) 또는 FTL(1120)에 전송할 수 있다.Accordingly, the HMB controller 1180 may transmit undecoded data to the CPU 1110 or the FTL 1120.

도 9는 도 1의 HMB 컨트롤러의 동작의 예를 보여주는 순서도이다. 도 1 및 도 9를 참조하면, S410 단계에서, HMB 컨트롤러(1180)는 HMB(14)에서 비정상적인 동작이 검출되는지 여부를 판단함으로써 변경 조건이 충족되는지 여부를 판별할 수 있다. 즉, 비정상적인 동작이 검출되었다는 것은 해당 영역에 대한 보안 정책이 변경되어야 함을 의미할 수 있다.9 is a flowchart illustrating an example of an operation of the HMB controller of FIG. 1 . Referring to FIGS. 1 and 9 , in step S410 , the HMB controller 1180 may determine whether a change condition is satisfied by determining whether an abnormal operation is detected in the HMB 14 . That is, detection of an abnormal operation may mean that a security policy for a corresponding area needs to be changed.

변경 조건이 충족된 경우 HMB 컨트롤러(1180)는 S420 단계를 진행하고, 변경 조건이 충족되지 않은 경우 HMB 컨트롤러(1180)는 S410 단계를 다시 진행한다. 즉, 변경 조건이 충족되지 않은 경우, HMB 컨트롤러(1180)는 변경 조건이 충족되는지 모니터링할 수 있다.If the change condition is satisfied, the HMB controller 1180 proceeds to step S420, and if the change condition is not satisfied, the HMB controller 1180 again proceeds to step S410. That is, when the change condition is not satisfied, the HMB controller 1180 may monitor whether the change condition is satisfied.

HMB 컨트롤러(1180)는 특정 영역에 대응하는 메모리 장치의 특성이 변화하거나, 특정 영역에 저장될 데이터의 유형이 변화하거나, 특정 영역에 대한 신뢰성 요구 수준이 변화하거나, 특정 영역에 대한 보안 요구 수준이 변화하거나, 키 유효 시간이 경과하거나, 데이터 무결성 체크가 실패하거나, 비정상적인 메모리 버퍼 할당이 검출된 경우 보안 정책의 변경 조건이 충족되었다고 판단할 수 있다.The HMB controller 1180 determines whether the characteristics of a memory device corresponding to a specific area change, the type of data to be stored in a specific area changes, the reliability requirement level for a specific area changes, or the security requirement level for a specific area changes. It may be determined that the change condition of the security policy is satisfied when the key is changed, the key validity time elapses, the data integrity check fails, or an abnormal memory buffer allocation is detected.

일 실시 예에서 HMB 컨트롤러(1180)는 복수의 영역들(R1~R4) 각각에 대한 보안 정책의 변경이 필요한지 여부를 검출할 수 있다. 즉, HMB 컨트롤러(1180)는 복수의 영역들(R1~R4)과 관련된 상태를 모니터링할 수 있다. HMB 컨트롤러(1180)는 모니터링되는 상태가 변경 조건을 충족하는지를 관리할 수 있다. 예를 들어, HMB 컨트롤러(1180)에 의해 모니터링되는 상태는 복수의 영역들(R1~R4) 각각의 수명, 복수의 영역들(R1~R4) 각각에 저장된 데이터의 신뢰성, 복수의 영역들(R1~R4) 각각에 대응하는 메모리 장치의 상태 등과 같은 다양한 속성과 관련될 수 있다.In an embodiment, the HMB controller 1180 may detect whether a change in the security policy for each of the plurality of regions R1 to R4 is required. That is, the HMB controller 1180 may monitor states related to the plurality of areas R1 to R4. The HMB controller 1180 may manage whether the monitored state satisfies the change condition. For example, the state monitored by the HMB controller 1180 is the lifespan of each of the plurality of regions R1 to R4, the reliability of data stored in each of the plurality of regions R1 to R4, and the plurality of regions R1 to R4. ~R4) may be related to various attributes such as the state of the memory device corresponding to each.

변경 조건이 충족된 경우, 이는 스토리지 장치(1000)에서 변경 조건이 충족된 영역에 대한 보안 정책을 변경하여, 스토리지 장치(1000) 또는 HMB(14)의 동작 환경 및 특성을 개선하는 것이 요구됨을 가리킬 수 있다. 스토리지 장치(1000)는 스토리지 장치(1000) 또는 HMB(14)의 동작 환경 및 특성을 개선하기 위해 특정 영역에 대한 보안 정책을 변경하도록 구현될 수 있다.When the change condition is satisfied, this indicates that it is required to change the security policy for the area where the change condition is met in the storage device 1000 to improve the operating environment and characteristics of the storage device 1000 or the HMB 14. can The storage device 1000 may be implemented to change a security policy for a specific area in order to improve the operating environment and characteristics of the storage device 1000 or the HMB 14 .

일 실시 예에서, 모니터링되는 상태의 수치가 임계치에 도달하는 경우, HMB 컨트롤러(1180)는 모니터링되는 상태가 변경 조건을 충족하는 것으로 판별할 수 있다. 예를 들어, 제1 조건을 살펴보면, HMB 컨트롤러(1180)는 복수의 영역들(R1~R4)에 각각에 데이터가 처음 기입된 시점부터 경과된 시간, 즉, 복수의 영역들(R1~R4) 각각의 경과 시간을 관리할 수 있다. 구체적으로, HMB 컨트롤러(1180)는 복수의 영역들(R1~R4) 각각의 경과 시간이 기준 시간에 도달하였는지 여부를 판별할 수 있다. HMB 컨트롤러(1180)는 타이머, 타임 스탬프 등을 사용할 수 있다.In one embodiment, when the value of the monitored state reaches a threshold value, the HMB controller 1180 may determine that the monitored state satisfies the change condition. For example, looking at the first condition, the HMB controller 1180 determines the time elapsed from the time when data is first written in each of the plurality of areas R1 to R4, that is, the plurality of areas R1 to R4. Each elapsed time can be managed. Specifically, the HMB controller 1180 may determine whether the elapsed time of each of the plurality of regions R1 to R4 reaches the reference time. The HMB controller 1180 may use a timer or time stamp.

제2 조건을 살펴보면, HMB 컨트롤러(1180)는 복수의 영역들(R1~R4) 각각의 오류율을 관리할 수 있다. 구체적으로, HMB 컨트롤러(1180)는 복수의 영역들 각각의 오류율을 모니터링 하고, 오류율이 기준 오류율에 도달하였는지 여부를 판별할 수 있다.Looking at the second condition, the HMB controller 1180 may manage error rates of each of the plurality of areas R1 to R4. Specifically, the HMB controller 1180 may monitor the error rate of each of the plurality of areas and determine whether the error rate reaches a reference error rate.

제3 조건을 살펴보면, HMB 컨트롤러(1180)는 호스트(11)에 의해 HMB(14)의 할당 정보를 관리할 수 있다. HMB 컨트롤러(1180)는 HMB 맵핑 테이블(HMBMT)을 기반으로, 복수의 영역들(R1~R4)에 대한 호스트 메모리(13)의 메모리 공간이 변경되었는지 여부를 판별할 수 있다. 즉, HMB 컨트롤러(1180)는 복수의 영역들(R1~R4)에 대한 할당 정보가 변경되었는지 여부를 판별할 수 있다.Looking at the third condition, the HMB controller 1180 may manage allocation information of the HMB 14 by the host 11 . The HMB controller 1180 may determine whether the memory spaces of the host memory 13 for the plurality of areas R1 to R4 are changed based on the HMB mapping table HMBMT. That is, the HMB controller 1180 may determine whether allocation information for the plurality of regions R1 to R4 is changed.

제4 조건을 살펴보면, HMB 컨트롤러(1180)는 HMB(14)에 대응하는 메모리 장치를 관리할 수 있다. 구체적으로, HMB 컨트롤러(1180)는 호스트(11)로부터 HMB(14)에 대응하는 메모리 장치에 대한 정보를 수신할 수 있다. HMB 컨트롤러(1180)는 HMB(14)에 대응하는 메모리 장치에 대한 정보 수신 여부를 판별할 수 있다. 상술된 제1 내지 제4 조건들은 변경 조건의 가능한 예들 중 일부일 뿐이며, 위 예들로 본 개시의 범위가 한정되지 아니하며, 구체적인 조건들은 다양하게 변경 또는 수정될 수 있다.Looking at the fourth condition, the HMB controller 1180 may manage a memory device corresponding to the HMB 14 . Specifically, the HMB controller 1180 may receive information about a memory device corresponding to the HMB 14 from the host 11 . The HMB controller 1180 may determine whether information on a memory device corresponding to the HMB 14 is received. The above-described first to fourth conditions are only some of possible examples of change conditions, the scope of the present disclosure is not limited to the above examples, and specific conditions may be variously changed or modified.

일 실시 예에서, 변경 조건은 제1 내지 제4 조건들을 모두 포함할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 특정 영역에 대하여 제1 조건 내지 제4 조건의 충족여부를 판별할 수 있다. 즉, HMB 컨트롤러(1180)는 제1 내지 제4 조건들을 동시에 모두 모니터링할 수 있다.In one embodiment, the change condition may include all of the first to fourth conditions. For example, the HMB controller 1180 may determine whether the first to fourth conditions are satisfied for a specific area. That is, the HMB controller 1180 can simultaneously monitor all of the first to fourth conditions.

일 실시 예에서, 변경 조건은 제1 내지 제4 조건들 중 적어도 하나를 포함할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 특정 영역에 대하여 제1 조건을 충족하는지 판별하거나, 또는 제4 조건을 충족하는지 판별할 수 있다. 즉, HMB 컨트롤러(1180)는 복수의 조건들 중 적어도 하나만 모니터링 할 수 있다.In one embodiment, the change condition may include at least one of the first to fourth conditions. For example, the HMB controller 1180 may determine whether a first condition is satisfied or a fourth condition is satisfied for a specific region. That is, the HMB controller 1180 may monitor at least one of a plurality of conditions.

일 실시 예에서, HMB 컨트롤러(1180)는 제1 내지 제4 조건들 중 어느 하나라도 충족된 경우, 특정 영역에 대한 보안 정책을 변경할 수 있다. 예를 들어, 제1 조건만 충족되고 제2 내지 제4 조건들을 충족되지 않은 경우라도, HMB 컨트롤러(1180)는 변경 조건이 충족된 것으로 판별하고 특정 영역에 대한 보안 정책을 변경할 수 있다.In one embodiment, the HMB controller 1180 may change the security policy for a specific area when any one of the first to fourth conditions is satisfied. For example, even when only the first condition is satisfied and the second to fourth conditions are not satisfied, the HMB controller 1180 may determine that the change condition is satisfied and change the security policy for the specific area.

일 실시 예에서, HMB 컨트롤러(1180)는 복수의 조건들 중 적어도 두개의 조건들이 충족된 경우, 특정 영역에 대한 보안 정책을 변경할 수 있다. 예를 들어, HMB 컨트롤러(1180)는 제1 조건만 충족되고 제2 내지 제4 조건들이 충족되지 않은 경우, 변경 조건이 충족되지 않은 것으로 판별할 수 있다. HMB 컨트롤러(1180)는 제1 및 제2 조건이 충족되고, 제3 및 제4 조건이 충족되지 않은 경우, 변경 조건이 충족된 것으로 판별하고 특정 영역에 대한 보안 정책을 변경할 수 있다.In one embodiment, the HMB controller 1180 may change the security policy for a specific area when at least two of a plurality of conditions are satisfied. For example, when only the first condition is satisfied and the second to fourth conditions are not satisfied, the HMB controller 1180 may determine that the change condition is not satisfied. When the first and second conditions are satisfied and the third and fourth conditions are not satisfied, the HMB controller 1180 may determine that the change condition is satisfied and change the security policy for the specific area.

상술된 바와 같이, 변경 조건은 제1 내지 제4 조건들 중 하나, 또는 적어도 두 개의 조합을 포함할 수 있다. 단, 본 개시의 범위가 이에 한정되지 아니하며 다양하게 변경 또는 수정될 수 있다.As described above, the change condition may include one of the first to fourth conditions, or a combination of at least two of them. However, the scope of the present disclosure is not limited thereto and may be variously changed or modified.

S420 단계에서, HMB 컨트롤러(1180)는 보안 정책을 변경할 수 있다. 구체적으로, HMB 관리자(1181)는 복수의 영역들(R1~R4) 중 변경 조건이 충족된 영역에 대한 보안 정책을 변경할 수 있다. 예를 들어, 제1 영역(R1)의 변경 조건이 충족된 것으로 가정한다. HMB 관리자(1181)는 제1 영역(R1)의 보안 정책을 제1 보안 정책(SP1)에서 제4 보안 정책(SP4)으로 변경할 수 있다.In step S420, the HMB controller 1180 may change the security policy. Specifically, the HMB manager 1181 may change the security policy for an area in which the change condition is satisfied among the plurality of areas R1 to R4. For example, it is assumed that the condition for changing the first region R1 is satisfied. The HMB manager 1181 may change the security policy of the first region R1 from the first security policy SP1 to the fourth security policy SP4.

S430 단계에서, HMB 컨트롤러(1180)는 HMB 맵핑 테이블(HMBMT)을 갱신할 수 있다. HMB 관리자(1181)는 새롭게 선택된 보안 정책을 대응하는 영역과 관련하여 HMB 맵핑 테이블(HMBMT)에 저장할 수 있다. 예를 들어, 제1 영역(R1)의 보안 정책이 제1 보안 정책(SP1)에서 제5 보안 정책(SP5)으로 변경된 경우, HMB 컨트롤러(1180)는 제1 영역(R1)과 관련하여 제5 보안 정책(SP5)을 HMB 맵핑 테이블(HMBMT)에 저장할 수 있다.In step S430, the HMB controller 1180 may update the HMB mapping table (HMBMT). The HMB manager 1181 may store the newly selected security policy in the HMB mapping table HMBMT in relation to a corresponding region. For example, when the security policy of the first region R1 is changed from the first security policy SP1 to the fifth security policy SP5, the HMB controller 1180 may perform a fifth security policy in relation to the first region R1. The security policy (SP5) can be stored in the HMB mapping table (HMBMT).

HMB 컨트롤러(1180)는 모든 복수의 영역들(R1~R4)에 대하여, 이하에서 설명되는 변경 조건들의 충족여부를 판별할 수 있다. 그러나, 도면의 간결성 몇 설명의 편의를 위하여, 이하에서 특정 하나의 영역에 대하여 변경 조건이 충족하는지 여부를 설명한다. 특정 하나의 영역은 제1 영역(R1)으로 가정한다. 단, 본 개시의 범위가 이에 한정되는 것은 아니며, 나머지 영역들(R2~R3)에 대해서도 하기의 설명이 모두 적용될 수 있음이 잘 이해될 것이다.The HMB controller 1180 may determine whether change conditions described below are satisfied for all of the plurality of areas R1 to R4. However, for conciseness of the drawings and convenience of description, it will be described whether the change condition is satisfied with respect to one specific area below. One specific region is assumed to be the first region R1. However, it will be well understood that the scope of the present disclosure is not limited thereto, and all of the following descriptions may be applied to the remaining regions R2 to R3.

도 10은 도 9의 S410 단계를 좀 더 구체적으로 보여주는 순서도이다. 도 11a 및 도 11b는 도 1의 스토리지 장치의 동작의 예를 보여주는 도면들이다. 도 1, 도 10, 도 11a, 및 도 11b를 참조하면, 도 9의 S410 단계는 도 10의 S411a 단계 내지 S413a 단계를 포함할 수 있다. S411a 단계에서, HMB 컨트롤러(1180)는 첫 번째 쓰기 커맨드를 수신하고, 데이터를 HMB(14)의 특정 영역으로 전송할 수 있다. 예를 들어, CPU(1110)는 HMB 컨트롤러(1180)로 제1 영역(R1)에 대한 첫 번째 HMB 쓰기 요청을 전송할 수 있다(도 11a의 [1]). 예를 들어, CPU(1110)는 제1 영역(R1)으로 처음으로 데이터를 기입하기 위하여, HMB 쓰기 요청을 HMB 컨트롤러(1180)로 전송할 수 있다.10 is a flowchart showing step S410 of FIG. 9 in more detail. 11A and 11B are diagrams illustrating an example of an operation of the storage device of FIG. 1 . Referring to FIGS. 1, 10, 11a, and 11b, step S410 of FIG. 9 may include steps S411a to S413a of FIG. 10 . In step S411a, the HMB controller 1180 may receive a first write command and transmit data to a specific area of the HMB 14. For example, the CPU 1110 may transmit a first HMB write request for the first region R1 to the HMB controller 1180 ([1] in FIG. 11A). For example, the CPU 1110 may transmit an HMB write request to the HMB controller 1180 in order to first write data into the first region R1.

HMB 컨트롤러(1180)는 제1 영역(R1)으로 첫 번째 쓰기 데이터를 전송할 수 있다(도 11a의 [2]). 예를 들어, 보안 IP 풀(1182)은, 제1 영역(R1)에 대응하는 제1 보안 정책(SP1)을 기반으로 데이터에 대한 인코딩 동작을 수행할 수 있다. 보안 IP 풀(1182)은 첫 번째 쓰기 커맨드 및 인코딩된 쓰기 데이터를 호스트(11)로 전송할 수 있다. HMB 컨트롤러(1180)는 제1 영역(R1)에 어떤 데이터도 저장되지 않은 상태에서, 처음으로 쓰기 커맨드 및 데이터를 전송할 수 있다. 즉, HMB 컨트롤러(1180)는 처음으로 제1 영역(R1)에 데이터를 기입할 수 있다.The HMB controller 1180 may transmit the first write data to the first region R1 ([2] in FIG. 11A). For example, the secure IP pool 1182 may perform an encoding operation on data based on the first security policy SP1 corresponding to the first region R1. The secure IP pool 1182 may transmit a first write command and encoded write data to the host 11 . The HMB controller 1180 may transmit a write command and data for the first time in a state in which no data is stored in the first region R1. That is, the HMB controller 1180 may first write data into the first area R1.

S412a 단계에서, HMB 컨트롤러(1180)는 타이머(1184)를 개시할 수 있다. HMB 컨트롤러(1180)는 제1 영역(R1)에 대응하는 타이머(1184)의 카운팅 동작을 개시할 수 있다. 일 실시 예에서, HMB 관리자(1181)는 제1 영역(R1)에 대응하는 타이머(1184)의 기준 시간을 설정할 수 있다(도 11a의 [3]).In step S412a, the HMB controller 1180 may start the timer 1184. The HMB controller 1180 may initiate a counting operation of the timer 1184 corresponding to the first region R1. In one embodiment, the HMB manager 1181 may set the reference time of the timer 1184 corresponding to the first region R1 ([3] in FIG. 11A).

예를 들어, 기준 시간은 제1 영역(R1)에 저장될 데이터의 종류, 제1 영역(R1)에 대응하는 호스트 메모리 장치의 특성들을 기반으로 선택될 수 있다. 기준 시간은 제1 영역(R1)에 대한 보안 정책을 변경하는 시점을 결정하기 위해 설정될 수 있다. 구체적으로, 데이터가 손실되기 전에 데이터의 신뢰성을 보장하기 위해서, HMB 컨트롤러(1180)가 보안 정책 변경 동작을 수행할 시점을 결정하기 위한 기준 시간이 설정될 수 있다. 기준 시간은 미리 결정된 값일 수 있다. 기준 시간은 설계자, 제조사, 및/또는 사용자에 의해 고정되거나 가변하도록 선택될 수 있다. 예를 들어, 기준 시간은 호스트 메모리 장치의 상태 또는 데이터의 종류에 의존하여 HMB 컨트롤러(1180)에 의해 조절 가능할 수 있다.For example, the reference time may be selected based on the type of data to be stored in the first region R1 and the characteristics of the host memory device corresponding to the first region R1. A reference time may be set to determine a time point for changing the security policy for the first region R1. In detail, in order to ensure data reliability before data loss, a reference time for determining when the HMB controller 1180 performs a security policy change operation may be set. The reference time may be a predetermined value. The reference time may be selected to be fixed or variable by designers, manufacturers, and/or users. For example, the reference time may be adjustable by the HMB controller 1180 depending on the state of the host memory device or the type of data.

S413a 단계에서, HMB 컨트롤러(1180)는 HMB(14)의 영역에 대응하는 타이머(1184)로부터의 신호에 기초하여 타이머(1184)가 만료되었는지 판별할 수 있다. 타이머(1184)가 만료되었다는 것은, 해당 영역에 대응하여 타이머(1184)가 카운트한 경과 시간이 기준 시간을 초과한 것을 의미할 수 있다. In step S413a, the HMB controller 1180 may determine whether the timer 1184 has expired based on a signal from the timer 1184 corresponding to the area of the HMB 14 . The expiration of the timer 1184 may mean that the elapsed time counted by the timer 1184 corresponding to the corresponding area exceeds the reference time.

예를 들어, HMB 관리자(1181)는 제1 영역(R1)에 대응하는 타이머(1184)가 만료되었는지 판단할 수 있다. 타이머(1184)는 제1 영역(R1)에 데이터가 처음 기입된 시점부터 경과된 시간을 카운팅할 수 있다. 제1 영역(R1)에 대한 타이머(1184)가 만료된 경우, 타이머(1184)는 HMB 관리자(1181)에게 기준 시간의 경과 또는 만료를 나태내는 신호를 출력할 수 있다(도 11b의 [4]). 이에, HMB 관리자(1181)는 제1 영역(R1)에 대한 변경 조건이 충족되었음을 판별할 수 있다. For example, the HMB manager 1181 may determine whether the timer 1184 corresponding to the first region R1 has expired. The timer 1184 may count the elapsed time from the time when data is first written in the first region R1. When the timer 1184 for the first region R1 expires, the timer 1184 may output a signal indicating elapse or expiration of the reference time to the HMB manager 1181 (see [4] in FIG. 11B). ). Accordingly, the HMB manager 1181 may determine that the change condition for the first region R1 is satisfied.

타이머(1184)가 만료된 경우 HMB 컨트롤러(1180)는 S420 단계를 진행하고, 타이머(1184)가 만료되지 않은 경우 HMB 컨트롤러(1180)는 S413a의 판별 동작을 계속 할 수 있다.When the timer 1184 expires, the HMB controller 1180 proceeds to step S420, and when the timer 1184 does not expire, the HMB controller 1180 may continue the determination operation of S413a.

S420 단계에서, HMB 컨트롤러(1180)는 제1 영역(R1)에 대응하는 보안 정책을 변경할 수 있다. 예를 들어, HMB 관리자(1181)는 타이머(1184)로부터 출력되는 신호에 기초하여(즉, 기준 시간의 경과 또는 만료에 기초하여) 제1 영역(R1)의 보안 정책을 변경할 수 있다. HMB 관리자(1181)는 제1 영역(R1)에 대하여 제1 보안 정책(SP1)에서 제5 보안 정책(SP5)으로 변경할 수 있다.In step S420, the HMB controller 1180 may change the security policy corresponding to the first region R1. For example, the HMB manager 1181 may change the security policy of the first region R1 based on a signal output from the timer 1184 (ie, based on elapse or expiration of a reference time). The HMB manager 1181 may change the first security policy SP1 to the fifth security policy SP5 for the first region R1.

S430 단계에서, HMB 컨트롤러(1180)는 HMB 맵핑 테이블(HMBMT)을 갱신할 수 있다. 예를 들어, HMB 관리자(1181)는 제1 영역(R1)에 대한 보안 정책을 제5 보안 정책(SP5)으로 갱신할 수 있다(도 11b의 [5]).In step S430, the HMB controller 1180 may update the HMB mapping table (HMBMT). For example, the HMB manager 1181 may update the security policy for the first region R1 to a fifth security policy SP5 ([5] in FIG. 11B).

도 12는 도 9의 S410 단계를 좀 더 구체적으로 보여주는 순서도이다. 도 13a 및 도 13b는 도 1의 스토리지 장치의 동작 방법의 예를 보여주는 도면들이다.12 is a flowchart showing step S410 of FIG. 9 in more detail. 13A and 13B are diagrams illustrating an example of a method of operating the storage device of FIG. 1 .

도 12, 도 13a, 및 도 13b를 참조하면, 도 9의 S410 단계는 S411b 단계 및 S412b 단계를 포함할 수 있다.Referring to FIGS. 12, 13a, and 13b, step S410 of FIG. 9 may include steps S411b and S412b.

S411b 단계에서, HMB 컨트롤러(1180)는 오류율을 모니터링할 수 있다. 예를 들어, CPU(1110)는 HMB 컨트롤러(1180)로 제1 영역(R1)에 대한 HMB 읽기 요청을 전송할 수 있다(도 13a의 [1]). 보안 IP 풀(1182)은 제1 영역(R1)으로부터 읽기 데이터(RDATA)를 읽을 수 있다(도 13a의 [2]). 보안 IP 풀(1182)은 읽기 데이터의 오류 존재 여부를 판단할 수 있다. 오류가 존재하는 경우, 보안 IP 풀(1182)은 오류율을 검출할 수 있다. 또는 오류가 존재하는 경우, 보안 IP 풀(1182)은 오류율을 계산할 수 있다. 예를 들어, 오류율은 오류 비트의 수 및 읽기 데이터의 총 비트 수의 비율을 의미할 수 있다. 보안 IP 풀(1182)은 오류율을 데이터 무결성 검사기(1185)으로 전송할 수 있다(도 13a의 [3]). 데이터 무결성 검사기(1185)는 오류율을 모니터링할 수 있다. 데이터 무결성 검사기(1185)는 오류율을 HMB 상태 테이블(HMBST)에 저장 또는 갱신할 수 있다((도 13a의 [4]).In step S411b, the HMB controller 1180 may monitor the error rate. For example, the CPU 1110 may transmit an HMB read request for the first region R1 to the HMB controller 1180 ([1] in FIG. 13A). The secure IP pool 1182 may read read data RDATA from the first region R1 ([2] in FIG. 13A). The secure IP pool 1182 may determine whether there is an error in the read data. If there is an error, secure IP pool 1182 can detect the error rate. Or, if there is an error, the secure IP pool 1182 can calculate an error rate. For example, the error rate may mean a ratio between the number of error bits and the total number of bits of read data. The secure IP pool 1182 may transmit the error rate to the data integrity checker 1185 ([3] in FIG. 13A). The data integrity checker 1185 may monitor the error rate. The data integrity checker 1185 may store or update the error rate in the HMB state table (HMBST) (([4] in FIG. 13A).

S412b 단계에서, HMB 컨트롤러(1180)는 오류율이 기준 오류율(Re)을 초과하는지 여부를 판별할 수 있다. 예를 들어, 데이터 무결성 검사기(1185)는 HMB 상태 테이블(HMBST)을 참조하여, 제1 영역(R1)에 대응하는 오류율이 제1 영역(R1)에 대응하는 기준 오류율에 도달하는지 여부를 검출할 수 있다. 오류율이 기준 오류율에 도달한 경우 데이터 무결성 검사기(1185)는 S420 단계를 진행하고, 오류율이 기준 오류율에 도달하지 않은 경우 데이터 무결성 검사기(1185)는 S412b 단계를 진행한다. 오류율이 기준 오류율에 도달하는 경우, 데이터 무결성 검사기(1185)는 변경 조건이 충족되었음을 판별할 수 있다. HMB 컨트롤러(1180)는 추가로 오류가 정정 가능한지 여부를 판단하고, 정정이 가능한 경우 오류 정정 동작을 수행할 수 있다. 데이터 무결성 검사기(1185)는 HMB 관리자(1181)로 변경 조건이 충족되었음을 가리키는 신호를 출력할 수 있다(도 13b의 [5]).In step S412b, the HMB controller 1180 may determine whether the error rate exceeds the reference error rate Re. For example, the data integrity checker 1185 refers to the HMB state table HMBST to detect whether the error rate corresponding to the first region R1 reaches the reference error rate corresponding to the first region R1. can When the error rate reaches the reference error rate, the data integrity checker 1185 proceeds to step S420, and when the error rate does not reach the reference error rate, the data integrity checker 1185 proceeds to step S412b. When the error rate reaches the reference error rate, the data integrity checker 1185 can determine that the change condition has been met. The HMB controller 1180 may additionally determine whether or not the error can be corrected, and perform an error correction operation if correction is possible. The data integrity checker 1185 may output a signal indicating that the change condition is satisfied to the HMB manager 1181 ([5] in FIG. 13B).

S420 단계에서, HMB 컨트롤러(1180)는 데이터 무결성 검사기(1185)로부터 출력되는 신호에 응답하여(즉, 오류율이 기준 오류율에 도달한 것에 기초하여), 제1 영역(R1)의 보안 정책을 제1 보안 정책(SP1)에서 제5 보안 정책(SP5)으로 변경할 수 있다. S430 단계에서, HMB 컨트롤러(1180)는 HMB 맵핑 테이블(HMBMT)을 갱신할 수 있다. 예를 들어, HMB 관리자(1181)는 제1 영역(R1)에 대한 보안 정책을 제5 보안 정책(SP5)으로 갱신할 수 있다(도 13b의 [6]).In step S420, the HMB controller 1180 determines the security policy of the first region R1 in response to the signal output from the data integrity checker 1185 (ie, based on the error rate reaching the reference error rate). The security policy (SP1) may be changed to the fifth security policy (SP5). In step S430, the HMB controller 1180 may update the HMB mapping table (HMBMT). For example, the HMB manager 1181 may update the security policy for the first region R1 to a fifth security policy SP5 ([6] in FIG. 13B).

일 실시 예에서, 스토리지 장치(1000)는 오류율 이외에 데이터의 신뢰성 및 보안과 관련된 상태를 모니터링 할 수 있다. 예를 들어, 모니터링되는 상태는 HMB(14)의 영역들 각각의 경과 시간, 오류 발생 비율(즉, 오류 검출 횟수 및 총 HMB 읽기 요청 횟수의 비율), 쓰기 횟수, 읽기 횟수, 읽기 재시도 횟수, 무효인 메모리 공간들의 비율, 가용 용량 등을 포함할 수 있으나, 본 개시는 이에 한정되지 않는다.In one embodiment, the storage device 1000 may monitor conditions related to reliability and security of data in addition to the error rate. For example, the monitored status is the elapsed time of each area of the HMB 14, the error occurrence rate (ie, the ratio of the number of errors detected and the total number of HMB read requests), the number of writes, the number of reads, the number of read retries, It may include the percentage of invalid memory spaces, available capacity, etc., but the present disclosure is not limited thereto.

일 실시 예에서, 비정상 검출기(1183)는 모니터링되는 상태가 변경 조건을 충족하는지 판별할 수 있다. 예를 들어, 모니터링되는 상태의 수치가 임계치에 도달하는 경우, 변경 조건이 충족될 수 있다. 임계치는 영역들 각각에 요구되는 신뢰성 및 보안 수준을 고려하여 선택될 수 있다.In one embodiment, the abnormality detector 1183 may determine whether the monitored state satisfies a change condition. A change condition may be satisfied, for example, when the value of the monitored state reaches a threshold. The threshold may be selected in consideration of reliability and security levels required for each of the areas.

예를 들어, 비정상 검출기(1183)는 타이머(1184)를 이용하는 대신에, 데이터 무결성 검사기(1185)를 이용하여 경과 시간을 관리할 수 있다. 데이터 무결성 검사기(1185)는 복수의 영역들(R1~R4) 각각의 다양한 시간들을 관리할 수 있다. 예를 들어, HMB 관리자(1181)는 복수의 영역들(R1~R4)의 경과 시간 등을 관리할 수 있다. 경과 시간은 복수의 영역들 각각이 처음으로 데이터를 기입한 시점으로부터 현재까지의 경과 시간을 가리킨다. HMB 관리자(1181)는 영역에 처음으로 데이터를 기입한 시점, 즉 개시시간을 타임 스탬프로 HMB 상태 테이블(HMBST)에 저장할 수 있다.For example, the abnormality detector 1183 may use the data integrity checker 1185 instead of the timer 1184 to manage elapsed time. The data integrity checker 1185 may manage various times of each of the plurality of areas R1 to R4. For example, the HMB manager 1181 may manage the elapsed time of the plurality of regions R1 to R4. The elapsed time refers to the elapsed time from the time when data is first written in each of the plurality of areas to the present. The HMB manager 1181 may store the time when data is first written into the area, that is, the start time as a time stamp in the HMB state table (HMBST).

데이터 무결성 검사기(1185)는 HMB 상태 테이블(HMBST)을 참조하여, HMB 상태 테이블(HMBST)에 저장된 개시 시간과 현재 시간의 차이를 경과 시간으로 계산할 수 있다. 데이터 무결성 검사기(1185)는 계산된 경과 시간을 기준 시간과 비교하여, 경과 시간이 기준 시간을 초과하였는지 여부를 판별할 수 있다. 데이터 무결성 검사기(1185)는 경과시간이 기준 시간을 초과한 경우, 제1 영역(R1)의 변경 조건이 충족되었음을 검출할 수 있다. 데이터 무결성 검사기(1185)는 변경 조건이 충족되었음을 가리키는 신호를 HMB 관리자(1181)로 출력할 수 있다.The data integrity checker 1185 may refer to the HMB state table (HMBST) and calculate a difference between the start time stored in the HMB state table (HMBST) and the current time as elapsed time. The data integrity checker 1185 may compare the calculated elapsed time with the reference time to determine whether the elapsed time exceeds the reference time. When the elapsed time exceeds the reference time, the data integrity checker 1185 may detect that the change condition of the first region R1 is satisfied. The data integrity checker 1185 may output a signal indicating that the change condition is satisfied to the HMB manager 1181 .

또한, 데이터 무결성 검사기(1185)는 오류 발생 비율을 관리할 수 있다. 모니터링 유닛(1185)는 HMB 상태 테이블(HMBST)을 기반으로, 오류 발생 비율(즉, 오류 발생 횟수 및 HMB 읽기 횟수의 비율)을 관리할 수 있다. 데이터 무결성 검사기(1185)는 HMB 읽기 동작을 수행할 때마다, 오류 발생 비율을 계산할 수 있다. 데이터 무결성 검사기(1185)는 오류 발생 비율을 HMB 상태 테이블(HMBST)에 저장하거나 갱신할 수 있다. 데이터 무결성 검사기(1185)는 오류 발생 비율이 임계치에 도달하는 경우(예를 들어, 임계치보다 오류 발생 비율이 높아지는 경우), 데이터 무결성 검사기(1185)는 변경 조건이 충족되었음을 가리키는 신호를 HMB 관리자(1181)로 출력할 수 있다.Also, the data integrity checker 1185 may manage an error occurrence rate. The monitoring unit 1185 may manage an error occurrence rate (ie, a ratio between the number of error occurrences and the number of HMB reads) based on the HMB state table (HMBST). The data integrity checker 1185 may calculate an error occurrence rate whenever an HMB read operation is performed. The data integrity checker 1185 may store or update the error occurrence rate in the HMB state table (HMBST). The data integrity checker 1185 sends a signal to the HMB manager 1181 indicating that the change condition has been met when the error rate reaches a threshold (eg, the error rate rises above the threshold). ) can be output.

도 14는 도 9의 S410 단계를 좀 더 구체적으로 보여주는 순서도이다. 도 15a 및 도 15b는 도 1의 스토리지 장치의 동작의 예를 보여주는 도면들이다. 도 14, 도 15a, 및 도 15b를 참조하면, 스토리지 장치(1000)는 호스트(11)의 HMB(14) 할당 영역 변경을 기반으로, 특정 영역의 보안 정책을 변경할 수 있다.14 is a flowchart showing step S410 of FIG. 9 in more detail. 15A and 15B are diagrams illustrating an example of an operation of the storage device of FIG. 1 . Referring to FIGS. 14 , 15A and 15B , the storage device 1000 may change the security policy of a specific area based on the change of the area allocated to the HMB 14 of the host 11 .

호스트(11)가 스토리지 장치(1000)의 사용을 위하여 이미 할당된 HMB(14)의 메모리 공간을 할당 해제(de-allocate)하거나, 또는 호스트(11)가 이미 할당된 HMB(14)의 메모리 공간에 대하여 리턴(return)을 요청하는 경우가 발생할 수 있다. 예를 들어, 호스트(11)는 셋-피쳐 커맨드(예를 들어, 피쳐 식별자(FID; Feature Identifier)는 호스트 메모리 버퍼를 가리킴)에 포함된 메모리 리턴(MR; Memory Return) 필드를 ‘1’로 설정함으로써, 할당된 HMB(14)의 메모리 공간을 할당 해제할 수 있다.The host 11 de-allocates the already allocated memory space of the HMB 14 for use of the storage device 1000, or the host 11 de-allocates the already allocated memory space of the HMB 14. There may be cases where a return is requested for . For example, the host 11 sets a memory return (MR) field included in a set-feature command (eg, a feature identifier (FID) indicates a host memory buffer) to '1'. By setting, the allocated memory space of the HMB 14 can be deallocated.

HMB 관리자(1181)는 할당 해제된 HMB(14)의 메모리 공간에 대응하는 영역을 다른 메모리 공간으로 할당할 수 있다. 예를 들어, 이미 할당된 HMB(14)의 메모리 공간 중 사용하지 않은 부분을 영역으로 할당할 수 있다. 또는 호스트(11)는 호스트 메모리(13)의 새로운 메모리 공간을 HMB(14)로 더 할당할 수 있다. 예를 들어, 호스트(11)는 셋-피쳐 커맨드를 통해 새로운 메모리 공간을 HMB(14)로 할당할 수 있다. HMB 관리자(1181)는 새로운 메모리 공간을 할당 해제된 메모리 공간의 영역으로 할당할 수 있다.The HMB manager 1181 may allocate an area corresponding to the deallocated memory space of the HMB 14 as another memory space. For example, an unused portion of the already allocated memory space of the HMB 14 may be allocated as an area. Alternatively, the host 11 may further allocate a new memory space of the host memory 13 to the HMB 14 . For example, the host 11 may allocate a new memory space to the HMB 14 through a set-feature command. The HMB manager 1181 may allocate a new memory space as an area of the deallocated memory space.

일 실시 예에서, 도 9의 S410 단계는 S411c 단계 내지 S413c 단계를 포함할 수 있다. S411c 단계에서, 스토리지 장치(1000)는 호스트(11)로부터 HMB 할당 정보를 수신할 수 있다. 예를 들어, 호스트(11)는 스토리지 장치(1000)로 HMB 할당 정보를 포함하는 셋-피쳐 커맨드를 전송할 수 있다(도 15a의 [1]). 셋-피쳐 커맨드는 제1 내지 제5 메모리 어드레스 범위들(MR1~MR5)을 포함할 수 있다. 예를 들어, 제1 내지 제5 메모리 어드레스 범위들(MR1~MR5)은 호스트 메모리(13)에서 HMB(14)에 대응하는 어드레스들의 범위를 가리킬 수 있다.In one embodiment, step S410 of FIG. 9 may include steps S411c to S413c. In step S411c, the storage device 1000 may receive HMB allocation information from the host 11. For example, the host 11 may transmit a set-feature command including HMB allocation information to the storage device 1000 ([1] in FIG. 15A). The set-feature command may include first to fifth memory address ranges MR1 to MR5. For example, the first to fifth memory address ranges MR1 to MR5 may indicate a range of addresses corresponding to the HMB 14 in the host memory 13 .

S412c 단계에서, 스토리지 장치(1000)는 HMB 할당 정보를 기반으로 복수의 영역들(R1~R4)을 설정할 수 있다. 예를 들어, HMB 관리자(1181)는 호스트(11)의 HMB 할당 정보에 응답하여, HMB(14)를 제1 내지 제4 영역들(R1~R4)로 분할할 수 있다. HMB 관리자(1181)는 호스트 메모리(13)의 제1 메모리 어드레스 범위(MR1)에 제1 영역(R1)을 할당하고, 호스트 메모리(13)의 제2 메모리 어드레스 범위(MR2)에 제2 영역(R2)을 할당하고, 호스트 메모리(13)의 제3 메모리 어드레스 범위(MR3)에 제3 영역(R3)을 할당하고, 호스트 메모리(13)의 제4 메모리 어드레스 범위(MR4)에 제4 영역(R4)을 할당할 수 있다. HMB 관리자(1181)는 제5 메모리 어드레스 범위(MR5)를 어떠한 영역으로도 할당하지 않고, 여유 공간으로 남겨둘 수 있다.In step S412c, the storage device 1000 may set a plurality of regions R1 to R4 based on the HMB allocation information. For example, the HMB manager 1181 may divide the HMB 14 into first to fourth regions R1 to R4 in response to HMB allocation information of the host 11 . The HMB manager 1181 allocates the first area R1 to the first memory address range MR1 of the host memory 13 and allocates the second area R1 to the second memory address range MR2 of the host memory 13 ( R2), the third area R3 is allocated to the third memory address range MR3 of the host memory 13, and the fourth area R3 is allocated to the fourth memory address range MR4 of the host memory 13. R4) can be assigned. The HMB manager 1181 may leave the fifth memory address range MR5 as an empty space without allocating it to any area.

일 실시 예에서, HMB 관리자(1181)는 제1 영역(R1)에 제1 데이터 유형(DT1)을 저장하도록 결정하고, 제2 영역(R2)에 제2 데이터 유형(DT2)을 저장하도록 결정하고, 제3 영역(R3)에 제3 데이터 유형(DT3)을 저장하도록 결정하고, 제4 영역(R4)에 제4 데이터 유형(DT4)을 저장하도록 결정할 수 있다.In one embodiment, the HMB manager 1181 determines to store the first data type DT1 in the first area R1 and to store the second data type DT2 in the second area R2; , it may be determined to store the third data type DT3 in the third area R3 and to store the fourth data type DT4 in the fourth area R4.

일 실시 예에서, HMB 관리자(1181)는 HMB 할당 테이블(HMBAT)을 갱신할 수 있다(도 15a의 [2]). 예를 들어, HMB 관리자(1181)는 HMB 할당 테이블(HMBAT)에 제1 영역(R1)과 관련하여 제1 데이터 유형(DT1), 제1 메모리 어드레스 범위(MR1)를 저장하고, 제2 영역(R2)과 관련하여 제2 데이터 유형(DT2), 제2 메모리 어드레스 범위(MR2)를 저장하고, 제3 영역(R3)과 관련하여, 제3 데이터 유형(DT3), 제3 메모리 어드레스 범위(MR3)를 저장하고, 제4 영역(R4)과 관련하여, 제4 데이터 유형(DT4), 제4 메모리 어드레스 범위(MR4)를 저장할 수 있다.In one embodiment, the HMB manager 1181 may update the HMB allocation table (HMBAT) ([2] of FIG. 15A). For example, the HMB manager 1181 stores the first data type DT1 and the first memory address range MR1 in relation to the first area R1 in the HMB allocation table HMBAT, and stores the second area ( In relation to R2, the second data type DT2 and the second memory address range MR2 are stored, and in relation to the third area R3, the third data type DT3 and the third memory address range MR3 are stored. ), and in relation to the fourth area R4, a fourth data type DT4 and a fourth memory address range MR4 may be stored.

S413c 단계에서, 스토리지 장치(1000)는 복수의 영역들의 상태 정보를 모니터링 함으로써 영역의 할당된 위치가 변경되었는지 여부를 판단할 수 있다. 스토리지 장치(1000)는 호스트(11)로부터 수신하는 셋-피쳐 커맨드에 기초하여 할당된 위치가 변경되었는지 여부를 판단할 수도 있다.In step S413c, the storage device 1000 may determine whether the assigned location of a region is changed by monitoring state information of a plurality of regions. The storage device 1000 may determine whether the assigned location is changed based on the set-feature command received from the host 11 .

예를 들어, 스토리지 장치(1000)는 복수의 영역들의 할당된 위치가 변경되는 횟수를 카운팅할 수 있다. 스토리지 장치(1000)는 위치 변경 횟수가 임계치를 초과하는 경우, HMB(14)가 비정상적으로 동작한다고 판단할 수 있다.For example, the storage device 1000 may count the number of times assigned positions of the plurality of areas are changed. The storage device 1000 may determine that the HMB 14 operates abnormally when the number of location changes exceeds a threshold value.

다른 예로, 스토리지 장치(1000)는 복수의 영역들의 할당이 해제되는 횟수를 카운팅할 수 있다. 스토리지 장치(1000)는 할당 해제 횟수가 임계치를 초과하는 경우, HMB(14)가 비정상적으로 동작한다고 판단할 수 있다.As another example, the storage device 1000 may count the number of times allocation of the plurality of regions is released. The storage device 1000 may determine that the HMB 14 operates abnormally when the number of times of allocation release exceeds a threshold value.

임계치는 비정상적인 동작이 발생하는 상황을 고려하여 선택될 수 있고, 예를 들어, 1로 설정될 수 있다.The threshold may be selected in consideration of a situation in which an abnormal operation occurs, and may be set to 1, for example.

일 실시 예에서, HMB 할당 검사기(1186)는 복수의 영역들 각각의 할당 정보를 모니터링할 수 있다. HMB 할당 검사기(1186)는 HMB(14)가 비정상적으로 동작한다고 판단하는 경우 HMB 관리자(1181)로 변경 조건이 충족되었음을 가리키는 신호를 출력하고(도 15b의 [3]), S420 단계를 진행할 수 있다. 어떠한 영역도 할당된 위치가 변경되지 않은 경우, 스토리지 장치(1000)는 S413c 단계를 다시 진행한다.In an embodiment, the HMB allocation checker 1186 may monitor allocation information of each of a plurality of regions. When the HMB allocation checker 1186 determines that the HMB 14 operates abnormally, it outputs a signal indicating that the change condition has been met to the HMB manager 1181 ([3] in FIG. 15B), and may proceed to step S420. . If the location to which any area is allocated has not changed, the storage device 1000 proceeds to step S413c again.

S414c 단계에서, 스토리지 장치(1000)는 변경된 영역들의 위치를 기반으로 복수의 영역들을 재설정할 수 있다. 예를 들어, 스토리지 장치(1000)는 제1 메모리 어드레스 범위(MR1)의 할당이 해제되었음을 확인하고, HMB(14)가 비정상적으로 동작한다고 판단할 수 있다. 이에, HMB 관리자(1181)는 제1 영역(R1)을 다시 설정할 수 있다. HMB 관리자(1181)는 제1 메모리 어드레스 범위(MR1)를 사용할 수 없으므로, 아직 어떠한 영역도 할당되지 않은 제5 메모리 어드레스 범위(MR5)를 제1 영역(R1)에 설정할 수 있다. 즉, HMB 관리자(1181)는 호스트 메모리(13)의 제5 메모리 어드레스 범위(MR5)에 제1 영역(R1)을 할당할 수 있다.In step S414c, the storage device 1000 may reset a plurality of regions based on the positions of the changed regions. For example, the storage device 1000 may determine that the allocation of the first memory address range MR1 is released and determine that the HMB 14 operates abnormally. Accordingly, the HMB manager 1181 may set the first region R1 again. Since the HMB manager 1181 cannot use the first memory address range MR1, it can set a fifth memory address range MR5 to which no area is allocated as the first area R1. That is, the HMB manager 1181 may allocate the first area R1 to the fifth memory address range MR5 of the host memory 13 .

S415c 단계에서, HMB 컨트롤러(1180)는 HMB 할당 테이블(HMBAT)을 갱신할 수 있다. 예를 들어, HMB 관리자(1181)는 제1 영역(R1)과 관련하여, 제5 메모리 어드레스 범위(MR5)를 HMB 할당 테이블(HMBAT)에 저장할 수 있다(도 15b의 [4]). 일 실시 예에서, HMB 관리자(1181)는 제1 영역(R1)에 대한 할당 정보가 변경되었으므로, 제1 영역(R1)에 대한 보안 정책의 변경 조건이 충족되었음을 판별할 수 있다.In step S415c, the HMB controller 1180 may update the HMB allocation table (HMBAT). For example, the HMB manager 1181 may store the fifth memory address range MR5 in the HMB allocation table HMBAT in relation to the first region R1 ([4] in FIG. 15B). In an embodiment, the HMB manager 1181 may determine that the change condition of the security policy for the first region R1 is satisfied because the allocation information for the first region R1 is changed.

S420 단계에서, HMB 컨트롤러(1180)는 보안 정책을 변경할 수 있다. 예를 들어, HMB 관리자(1181)는 HMB 할당 검사기(1186)로부터 출력된 신호 또는 영역에 대한 HMB 할당 정보가 변경되었음을 기반으로, 제1 영역(R1)의 보안 정책을 제1 보안 정책(SP1)에서 제5 보안 정책(SP5)으로 변경할 수 있다. S430 단계에서, HMB 컨트롤러(1180)는 HMB 맵핑 테이블(HMBMT)을 갱신할 수 있다. 예를 들어, HMB 관리자(1181)는 제1 영역(R1)에 대한 보안 정책을 제5 보안 정책(SP5)으로 갱신할 수 있다(도 15b의 [5]).In step S420, the HMB controller 1180 may change the security policy. For example, the HMB manager 1181 sets the security policy of the first region R1 to the first security policy SP1 based on the signal output from the HMB allocation checker 1186 or the HMB allocation information for the region is changed. can be changed to the fifth security policy (SP5). In step S430, the HMB controller 1180 may update the HMB mapping table (HMBMT). For example, the HMB manager 1181 may update the security policy for the first region R1 to a fifth security policy SP5 ([5] in FIG. 15B).

도 16은 본 개시의 실시 예에 따른 스토리지 장치가 적용된 데이터 센터의 예를 보여주는 블록도이다. 데이터 센터(2000)는 다양한 데이터를 유지 관리하고, 다양한 데이터에 대한 다양한 서비스를 제공하는 시설로서, 데이터 스토리지 센터로 불릴 수 있다. 데이터 센터(200)는 검색 엔진 또는 데이터 베이스 운용을 위한 시스템일 수 있으며, 다양한 기관에서 사용된 컴퓨팅 시스템일 수 있다. 데이터 센터(2000)는 복수의 애플리케이션 서버들(2100_1~2100_n) 및 복수의 스토리지 서버들(2200_1~2200_m)을 포함할 수 있다. 복수의 애플리케이션 서버들(2100_1~2100_n)의 개수 및 복수의 스토리지 서버들(2200_1~2200_m)의 개수는 다양하게 변형될 수 있다.16 is a block diagram illustrating an example of a data center to which a storage device according to an embodiment of the present disclosure is applied. The data center 2000 is a facility that maintains and manages various data and provides various services for the various data, and may be referred to as a data storage center. The data center 200 may be a system for operating a search engine or database, and may be a computing system used in various institutions. The data center 2000 may include a plurality of application servers 2100_1 to 2100_n and a plurality of storage servers 2200_1 to 2200_m. The number of the plurality of application servers 2100_1 to 2100_n and the number of the plurality of storage servers 2200_1 to 2200_m may be variously modified.

이하에서, 설명의 편의를 위해, 제1 스토리지 서버(2200_1)의 예시가 설명된 다. 나머지 스토리지 서버들(2200_2~2200_m) 및 복수의 애플리케이션 서버들(2100_1~2100_n) 각각은 제1 스토리지 서버(2200_1)와 유사한 구조를 가질 수 있 다.Hereinafter, for convenience of description, an example of the first storage server 2200_1 is described. Each of the remaining storage servers 2200_2 to 2200_m and the plurality of application servers 2100_1 to 2100_n may have a structure similar to that of the first storage server 2200_1.

제1 스토리지 서버(2200_1)는 프로세서(2210_1), 메모리(2220_1), 스위치(2230_1), 네트워크 인터페이스 커넥터(NIC; network interface connector)(2240_1), 및 스토리지 장치(2250_1)를 포함할 수 있다. 프로세서(2210_1)는 제1 스토리지 서버(2200_1)의 전반적인 동작을 제어할 수 있다. 메모리(2220_1)는 프로세서(2210_1)의 제어에 따라 다양한 명령어 또는 데이터를 저장할 수 있다. 프로세서(2210_1)는 메모리(2220_1)를 액세스하여 다양한 명령어를 실행하거나 또는 데이터를 처리하도록 구성될 수 있다. 일 실시 예에서, 메모리(2220_1)는 DDR SDRAM(Double Data Rate Synchronous DRAM), HBM(High Bandwidth Memory), HMC(Hybrid Memory Cube),DIMM(Dual In-line Memory Module), Optane DIMM 또는 NVDIMM(Non-Volatile DIMM)과 같은 다양한 종류의 메모리 장치들 중 적어도 하나를 포함할 수 있다.The first storage server 2200_1 may include a processor 2210_1, a memory 2220_1, a switch 2230_1, a network interface connector (NIC) 2240_1, and a storage device 2250_1. The processor 2210_1 may control overall operations of the first storage server 2200_1. The memory 2220_1 may store various commands or data under the control of the processor 2210_1. The processor 2210_1 may be configured to access the memory 2220_1 to execute various instructions or to process data. In one embodiment, the memory 2220_1 may include DDR Double Data Rate Synchronous DRAM (SDRAM), High Bandwidth Memory (HBM), Hybrid Memory Cube (HMC), Dual In-line Memory Module (DIMM), Optane DIMM, or NVDIMM (Non-VDIMM). -Volatile DIMM) may include at least one of various types of memory devices.

일 실시 예에서, 제1 스토리지 서버(2200_1)에 포함된 프로세서(2210_1)의 개수 및 메모리(2220_1)의 개수는 다양하게 변형될 수 있다. 일 실시 예에서, 제1 스토리지 서버(2200_1)에 포함된 프로세서(2210_1) 및 메모리(2220_1)는 프로세서-메모리 페어를 구성할 수 있으며, 제1 스토리지 서버(2200_1)에 포함된 프로세서-메모리 페어의 개수는 다양하게 변형될 수 있다. 일 실시 예에서, 제1 스토리지 서버(2200_1)에 포함된 프로세서(2210_1)의 개수 및 메모리(2220_1)의 개수는 서로 다를 수 있다. 프로세서(2210_1)는 싱글 코어 프로세서 또는 멀티 코어 프로세서를 포함할 수 있다.In one embodiment, the number of processors 2210_1 and the number of memories 2220_1 included in the first storage server 2200_1 may be variously modified. In one embodiment, the processor 2210_1 and the memory 2220_1 included in the first storage server 2200_1 may constitute a processor-memory pair, and the processor-memory pair included in the first storage server 2200_1 The number can be variously modified. In one embodiment, the number of processors 2210_1 and the number of memories 2220_1 included in the first storage server 2200_1 may be different from each other. The processor 2210_1 may include a single-core processor or a multi-core processor.

스위치(2230_1)는 프로세서(2210_1)의 제어에 따라 프로세서(2210_1) 및 스토리지 장치(2250_1) 사이를 선택적으로 연결시키거나 또는 NIC(2240_1) 및 스토리지 장치(2250_1) 사이를 선택적으로 연결시킬 수 있다.The switch 2230_1 may selectively connect the processor 2210_1 and the storage device 2250_1 or selectively connect the NIC 2240_1 and the storage device 2250_1 under the control of the processor 2210_1.

NIC(2240_1)는 제1 스토리지 서버(2200_1)를 네트워크(NT)와 연결시키도록 구성될 수 있다. NIC(2240_1)는 네트워크 인터페이스 카드, 네트워크 어댑터 등을 포함할 수 있다. NIC(2240_1)는 유선 인터페이스, 무선 인터페이스, 블루투스 인터페이스, 광학 인터페이스 등에 의해 네트워크(NT)에 연결될 수 있다. NIC(2240_1)는 내부 메모리, DSP, 호스트 버스 인터페이스 등을 포함할 수 있으며, 호스트 버스 인터페이스를 통해 프로세서(2210_1) 또는 스위치(2230_1) 등과 연결될 수 있다. 호스트 버스 인터페이스는, 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) 카드 인터페이스 등과같은 다양한 인터페이스들 중 적어도 하나를 포함할 수 있다. 일 실시 예에서, NIC(2240_1)는 프로세서(2210_1), 스위치(2230_1), 및 스토리지 장치(2250_1) 중 적어도 하나와 통합될 수도 있다.The NIC 2240_1 may be configured to connect the first storage server 2200_1 to the network NT. The NIC 2240_1 may include a network interface card, a network adapter, and the like. The NIC 2240_1 may be connected to the network NT through a wired interface, a wireless interface, a Bluetooth interface, an optical interface, or the like. The NIC 2240_1 may include an internal memory, a DSP, a host bus interface, and the like, and may be connected to the processor 2210_1 or the switch 2230_1 through the host bus interface. Host bus interfaces include Advanced Technology Attachment (ATA), Serial ATA (SATA), external SATA (e-SATA), Small Computer Small Interface (SCSI), Serial Attached SCSI (SAS), Peripheral Component Interconnection (PCI), PCIe ( PCI express), NVM express (NVMe), IEEE 1394, universal serial bus (USB), secure digital (SD) card, multi-media card (MMC), embedded multi-media card (eMMC), universal flash storage (UFS) , embedded universal flash storage (eUFS), compact flash (CF) card interface, and the like. In one embodiment, the NIC 2240_1 may be integrated with at least one of the processor 2210_1, the switch 2230_1, and the storage device 2250_1.

스토리지 장치(2250_1)는 프로세서(2210_1)의 제어에 따라 데이터를 저장하 거나 또는 저장된 데이터를 출력할 수 있다. 스토리지 장치(2250_1)는 컨트롤러(2251_1), 불휘발성 메모리(2252_1), DRAM(2253_1), 및 인터페이스(2254_1)를 포함할 수 있다. 일 실시 예에서, 스토리지 장치(2250_1)는 보안 또는 프라이버시를 위해 SE(Secure Element)를 더 포함할 수 있다.The storage device 2250_1 may store data or output the stored data under the control of the processor 2210_1. The storage device 2250_1 may include a controller 2251_1, a nonvolatile memory 2252_1, a DRAM 2253_1, and an interface 2254_1. In one embodiment, the storage device 2250_1 may further include a Secure Element (SE) for security or privacy.

컨트롤러(2251_1)는 스토리지 장치(2250_1)의 제반 동작을 제어할 수 있다. 일 실시 예에서, 컨트롤러(2251_1)는 SRAM을 포함할 수 있다. 컨트롤러(2251_1)는 인터페이스(2254_1)를 통해 수신된 신호들에 응답하여 불휘발성 메모리(2252_1)에 데이터를 저장하거나 또는 불휘발성 메모리(2252_1)에 저장된 데이터를 출력할 수 있다. 일 실시 예에서, 컨트롤러(2251_1)는 토글 인터페이스 또는 ONFI 인터페이스를 기반으로 불휘발성 메모리(2252_1)를 제어하도록 구성될 수 있다.The controller 2251_1 may control overall operations of the storage device 2250_1. In one embodiment, the controller 2251_1 may include SRAM. The controller 2251_1 may store data in the nonvolatile memory 2252_1 or output data stored in the nonvolatile memory 2252_1 in response to signals received through the interface 2254_1. In one embodiment, the controller 2251_1 may be configured to control the nonvolatile memory 2252_1 based on a toggle interface or an ONFI interface.

DRAM(2253_1)은 불휘발성 메모리(2252_1)에 저장될 데이터 또는 불휘발성 메모리(2252_1)로부터 읽어진 데이터를 임시 저장하도록 구성될 수 있다. DRAM(2253_1)은 컨트롤러(2251_1)가 동작하는데 필요한 다양한 데이터(예를 들어, 메타 데이터, 맵핑 데이터 등)를 저장하도록 구성될 수 있다. 인터페이스(2254_1)는 프로세서(2210_1), 스위치(2230_1), 또는 NIC(2240_1)와 컨트롤러(2251_1) 사이의 물리적 연결을 제공할 수 있다. 일 실시 예에서, 인터페이스(2254_1)는 스토리지 장치(2250_1)를 전용 케이블로 직접 접속하는 DAS(Direct Attached Storage) 방식으로 구현될 수 있다. 일 실시 예에서, 인터페이스(2254_1)는 앞서 호스트 인터페이스 버스를 통해 설명된 다양한 인터페이스들 중 적어도 하나를 기반으로 구성될 수 있다.The DRAM 2253_1 may be configured to temporarily store data to be stored in the nonvolatile memory 2252_1 or data read from the nonvolatile memory 2252_1. The DRAM 2253_1 may be configured to store various data (eg, meta data, mapping data, etc.) necessary for the controller 2251_1 to operate. The interface 2254_1 may provide a physical connection between the processor 2210_1, the switch 2230_1, or the NIC 2240_1 and the controller 2251_1. In one embodiment, the interface 2254_1 may be implemented in a Direct Attached Storage (DAS) method that directly connects the storage device 2250_1 with a dedicated cable. In one embodiment, the interface 2254_1 may be configured based on at least one of the various interfaces described above through the host interface bus.

상술된 제1 스토리지 서버(2200_1)의 구성들은 예시적인 것이며, 본 개시의 범위가 이에 한정되는 것은 아니다. 상술된 제1 스토리지 서버(2200_1)의 구성들은 다른 스토리지 서버들 또는 복수의 애플리케이션 서버들 각각에 적용될 수 있다. 일 실시 예에서, 복수의 애플리케이션 서버들(2100_1~2100_n) 각각에서, 스토리지 장치(2150_1)는 선택적으로 생략될 수 있다.The configurations of the above-described first storage server 2200_1 are exemplary, and the scope of the present disclosure is not limited thereto. The configurations of the above-described first storage server 2200_1 may be applied to other storage servers or each of a plurality of application servers. In one embodiment, in each of the plurality of application servers 2100_1 to 2100_n, the storage device 2150_1 may be selectively omitted.

복수의 애플리케이션 서버들(2100_1~2100_n) 및 복수의 스토리지 서버들(2200_1~2200_m)은 네트워크(NT)를 통해 서로 통신할 수 있다. 네트워크(NT)는FC(Fibre Channel) 또는 이더넷(Ethernet) 등을 이용하여 구현될 수 있다. 이 때, FC는 상대적으로 고속의 데이터 전송에 사용되는 매체이며, 고성능/고가용성을 제공하는 광 스위치를 사용할 수 있다. 네트워크(NT)의 액세스 방식에 따라 스토리지 서버 들(2200_1~2200_m)은 파일 스토리지, 블록 스토리지, 또는 오브젝트 스토리지로서 제공될 수 있다.The plurality of application servers 2100_1 to 2100_n and the plurality of storage servers 2200_1 to 2200_m may communicate with each other through the network NT. The network NT may be implemented using Fiber Channel (FC) or Ethernet. At this time, FC is a medium used for relatively high-speed data transmission, and an optical switch providing high performance/high availability may be used. Depending on the access method of the network NT, the storage servers 2200_1 to 2200_m may be provided as file storage, block storage, or object storage.

일 실시 예에서, 네트워크(NT)는 SAN(Storage Area Network)와 같은 스토리 지 전용 네트워크일 수 있다. 예를 들어, SAN은 FC 네트워크를 이용하고 FCP(FC Protocol)에 따라 구현된 FC-SAN일 수 있다. 또는, SAN은 TCP/IP 네트워크를 이용하고 iSCSI(SCSI over TCP/IP 또는 Internet SCSI) 프로토콜에 따라 구현된 IP-SAN일 수 있다. 일 실시 예에서, 네트워크(NT)는 TCP/IP 네트워크와 같은 일반 네트워크일 수 있다. 예를 들어, 네트워크(NT)는 FCoE(FC over Ethernet), NAS(Network Attached Storage), NVMe-oF(NVMe over Fabrics) 등의 프로토콜에 따라 구현될 수 있다.In one embodiment, the network NT may be a storage-only network such as a Storage Area Network (SAN). For example, the SAN may be an FC-SAN that uses an FC network and is 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 one embodiment, network NT may be a general network such as a TCP/IP network. For example, the network NT may be implemented according to protocols such as FC over Ethernet (FCoE), Network Attached Storage (NAS), and NVMe over Fabrics (NVMe-oF).

일 실시 예에서, 복수의 애플리케이션 서버들(2100_1~2100_n) 중 적어도 하 나는 네트워크(NT)를 통해 복수의 애플리케이션 서버들(2100_1~2100_n) 중 적어도 다른 하나 또는 복수의 스토리지 서버들(2200_1~2200_m) 중 적어도 하나를 액세스하도록 구성될 수 있다.In one embodiment, at least one of the plurality of application servers 2100_1 to 2100_n connects to at least one other of the plurality of application servers 2100_1 to 2100_n or the plurality of storage servers 2200_1 to 2200_m through the network NT. It may be configured to access at least one of them.

예를 들어, 제1 애플리케이션 서버(2100_1)는 사용자 또는 클라이언트가 요청한 데이터를 네트워크(NT)를 통해 복수의 스토리지 서버들(2200_1~2200_m) 중 적어도 하나에 저장할 수 있다. 또는 제1 애플리케이션 서버(2100_1)는 사용자 또는 클라이언트가 요청한 데이터를 네트워크(NT)를 통해 복수의 스토리지 서버들(2200_1~2200_m) 중 적어도 하나로부터 획득할 수 있다. 이 경우, 제1 애플리케이션 서버(2100_1)는 웹 서버 또는 DBMS(Database Management System) 등으로 구현될 수 있다.For example, the first application server 2100_1 may store data requested by a user or client in at least one of a plurality of storage servers 2200_1 to 2200_m through the network NT. Alternatively, the first application server 2100_1 may obtain data requested by a user or client from at least one of the plurality of storage servers 2200_1 to 2200_m through the network NT. In this case, the first application server 2100_1 may be implemented as a web server or a database management system (DBMS).

즉, 제1 애플리케이션 서버(2100_1)의 프로세서(2110_1)는 네트워크(NT)를 통해, 다른 애플리케이션 서버(예를 들어, 2100_n)의 메모리(2120_n) 또는 스토리지 장치(2150_n)를 액세스할 수 있다. 또는 제1 애플리케이션 서버(2100_1)의 프로세서(2110_1)는 네트워크(NT)를 통해, 제1 스토리지 서버(2200_1)의 메모리(2220_1) 또는 스토리지 장치(2250_1)를 액세스할 수 있다. 이를 통해, 제1 애플리케이션 서버(2100_1)는 다른 애플리케이션 서버들(2100_2~2100_n) 또는 복수의 스토리지 서버들(2200_1~2200_m)에 저장된 데이터에 대한 다양한 동작들을 수행할 수 있다. 예를 들어, 제1 애플리케이션 서버(2100_1)는 다른 애플리케이션 서버들(2100_2~2100_n) 또는 복수의 스토리지 서버들(2200_1~2200_m) 사이에서 데이터를 이동 또는 카피(copy)하기 위한 명령어를 실행하거나 또는 발행할 수 있다. 이 경우, 이동 또는 카피되는 데이터는 스토리지 서버들(2200_1~2200_m)의 스토리지 장치들(2250_1~2250_m)로부터 스토리지 서버들(2200_1~2200_m)의 메모리들(2220_1~2220_m)을 거치거나 또는 직접 애플리케이션 서버들(2100_1~2100_n)의 메 모리들(2120_1~2120_n)로 이동될 수 있다. 네트워크(NT)를 통해 전달되는 데이터는 보안 또는 프라이버시를 위해 암호화된 데이터일 수 있다.That is, the processor 2110_1 of the first application server 2100_1 may access the memory 2120_n or the storage device 2150_n of another application server (eg, 2100_n) through the network NT. Alternatively, the processor 2110_1 of the first application server 2100_1 may access the memory 2220_1 or the storage device 2250_1 of the first storage server 2200_1 through the network NT. Through this, the first application server 2100_1 may perform various operations on data stored in the other application servers 2100_2 to 2100_n or the plurality of storage servers 2200_1 to 2200_m. For example, the first application server 2100_1 executes or issues a command for moving or copying data between other application servers 2100_2 to 2100_n or a plurality of storage servers 2200_1 to 2200_m. can do. In this case, data to be moved or copied is transferred from the storage devices 2250_1 to 2250_m of the storage servers 2200_1 to 2200_m through the memories 2220_1 to 2220_m of the storage servers 2200_1 to 2200_m or directly to the application server. It can be moved to the memories (2120_1 to 2120_n) of (2100_1 to 2100_n). Data transmitted over the network NT may be encrypted data for security or privacy.

일 실시 예에서, 상술된 스토리지 서버들(2200_1~2200_m) 또는 스토리지 장 치들(2150_1~2150_n, 2250_1~2250_m)은 본 개시의 실시 예에 따른 HMB 컨트롤러를 포함할 수 있다. 즉, 스토리지 서버들(2200_1~2200_m) 또는 스토리지 장치들(2150_1~2150_n, 2250_1~2250_m) 중 적어도 하나는 도 1 내지 도 15를 참조하여 설명된 방법을 기반으로 호스트 메모리 버퍼의 각 영역에 보안 정책을 설정하고, 설정된 보안 정책을 기반으로 인코딩/디코딩 동작을 수행하고, 변경 조건이 충족된 경우 각 영역의 보안 정책을 변경할 수 있다.In one embodiment, the above-described storage servers 2200_1 to 2200_m or storage devices 2150_1 to 2150_n and 2250_1 to 2250_m may include an HMB controller according to an embodiment of the present disclosure. That is, at least one of the storage servers 2200_1 to 2200_m or the storage devices 2150_1 to 2150_n and 2250_1 to 2250_m has a security policy applied to each region of the host memory buffer based on the method described with reference to FIGS. 1 to 15 . can be set, encoding/decoding operations are performed based on the set security policy, and the security policy of each area can be changed when the change conditions are met.

상술된 실시 예들에서, 제0, 제1, 제2, 제3 등의 용어들을 사용하여 본 개시의 기술적 사상에 따른 구성 요소들이 설명되었다. 그러나 제0, 제1, 제2, 제3 등과 같은 용어 들은 구성 요소들을 서로 구별하기 위해 사용되며, 본 개시를 한정하지 않는다. 예를 들어, 제0, 제1, 제2, 제3 등과 같은 용어들은 순서 또는 임의의 형태의 수치적 의미를 내포하지 않는다.In the above-described embodiments, elements according to the technical idea of the present disclosure have been described using terms such as 0th, 1st, 2nd, and 3rd. However, terms such as 0, 1, 2, 3, etc. are used to distinguish components from each other and do not limit the present disclosure. For example, terms such as 0, 1, 2, 3, etc. do not imply order or numerical meaning in any form.

상술된 실시 예들에서, 유닛(unit), 모듈(module), 레이어(layer) 또는 블록(block)을 사용하여 본 개시의 실시 예들에 따른 구성 요소들이 참조되었다. 유닛, 모듈, 레이어 또는 블록은 IC(Integrated Circuit), ASIC(Application Specific IC), FPGA(Field Programmable Gate Array), CPLD(Complex Programmable Logic Device) 등과 같은 다양한 하드웨어 장치들, 하드웨어 장치들에서 구동되는 펌웨어, 응용과 같은 소프트웨어, 또는 하드웨어 장치와 소프트웨어가 조합된 형태로 구현될 수 있다. 또한, 블록은 IC 내의 반도체 소자들로 구성되는 회로들 또는 IP로 등록된 회로들을 포함할 수 있다.In the above-described embodiments, components according to embodiments of the present disclosure are referred to using a unit, module, layer, or block. A unit, module, layer or block is a variety of hardware devices such as IC (Integrated Circuit), ASIC (Application Specific IC), FPGA (Field Programmable Gate Array), CPLD (Complex Programmable Logic Device), etc., and firmware that runs on hardware devices. , software such as an application, or a combination of a hardware device and software. In addition, a block may include circuits composed of semiconductor elements in an IC or circuits registered as IPs.

상술된 내용은 본 개시를 실시하기 위한 구체적인 실시 예들이다. 본 개시는 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 개시는 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 개시의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 청구범위뿐만 아니라 이 발명의 청구범위와 균등한 것들에 의해 정해져야 할 것이다.The foregoing are specific embodiments for carrying out the present disclosure. The present disclosure will include not only the above-described embodiments, but also embodiments that can be simply or easily changed in design. In addition, the present disclosure will also include techniques that can be easily modified and implemented using the embodiments. Therefore, the scope of the present disclosure should not be limited to the above-described embodiments and should not be defined by the following claims as well as those equivalent to the claims of this invention.

Claims (10)

데이터 처리 동안, 스토리지 장치의 외부에 위치하는 호스트 메모리 버퍼(HMB; Host Memory Buffer)의 비정상적인 동작을 검출하는 단계; 및
상기 비정상적인 동작이 검출되면, 상기 스토리지 장치가 상기 HMB에 데이터를 쓰거나 상기 HMB의 데이터를 읽을 때 적용하는 보안 정책을 갱신하는 단계
를 포함하는 스토리지 장치의 동작 방법.
Detecting an abnormal operation of a Host Memory Buffer (HMB) located outside a storage device during data processing; and
If the abnormal operation is detected, updating a security policy applied when the storage device writes data to the HMB or reads data from the HMB.
A method of operating a storage device comprising a.
제1항에 있어서,
호스트로부터 상기 HMB의 할당 정보를 수신하는 단계;
상기 할당 정보에 기초하여 상기 HMB를 복수의 영역으로 분할하는 단계; 및
복수의 영역 각각에 대해서 보안 정책을 매칭시키는 단계
를 더 포함하며,
상기 보안 정책을 갱신하는 단계는,
상기 복수의 영역 각각에 매칭된 상기 보안 정책 중 적어도 하나를 갱신하는 단계
를 포함하는, 스토리지 장치의 동작 방법.
According to claim 1,
receiving allocation information of the HMB from a host;
dividing the HMB into a plurality of areas based on the allocation information; and
Step of matching security policy for each of a plurality of areas
Including more,
Updating the security policy,
Updating at least one of the security policies matched to each of the plurality of areas.
Including, the operating method of the storage device.
제2항에 있어서,
상기 보안 정책을 매칭시키는 단계는,
상기 복수의 영역 각각에 대해서 보안 IP(Intellectual Property)를 매칭시키는 단계; 및
상기 복수의 영역 각각에 대하여 키(key)를 매칭시키는 단계
중 적어도 하나를 포함하는, 스토리지 장치의 동작 방법.
According to claim 2,
The step of matching the security policy,
matching a security IP (Intellectual Property) for each of the plurality of areas; and
Matching a key to each of the plurality of areas
A method of operating a storage device, including at least one of the following.
제2항에 있어서,
상기 복수의 영역은 제1 영역 및 제2 영역을 포함하며,
상기 보안 정책은 제1 보안 정책 및 상기 제1 보안 정책과 다른 제2 보안 정책을 포함하고,
상기 보안 정책을 매칭시키는 단계는,
상기 제1 영역에 상기 제1 보안 정책을 매칭시키는 단계; 및
상기 제2 영역에 상기 제2 보안 정책을 매칭시키는 단계를 포함하는,
스토리지 장치의 동작 방법.
According to claim 2,
The plurality of regions include a first region and a second region,
The security policy includes a first security policy and a second security policy different from the first security policy;
The step of matching the security policy,
matching the first security policy to the first area; and
Matching the second security policy to the second area,
A method of operating a storage device.
제4항에 있어서,
상기 제1 영역의 보안 요구 수준은 상기 제2 영역의 보안 요구 수준보다 높고,
상기 제1 보안 정책의 보안 수준은 상기 제2 보안 정책의 보안 수준보다 높은,
스토리지 장치의 동작 방법.
According to claim 4,
The security requirement level of the first area is higher than the security requirement level of the second area;
The security level of the first security policy is higher than that of the second security policy;
A method of operating a storage device.
제2항에 있어서,
상기 보안 정책을 매칭시키는 단계는,
상기 복수의 영역 각각에 대해서 보안 IP를 매칭시키는 단계
를 포함하고,
상기 복수의 영역 각각에 매칭된 상기 보안 정책 중 적어도 하나를 갱신하는 단계는,
상기 복수의 영역 중 비정상적인 동작이 발생한 영역에 매칭된 보안 IP를 변경하는 단계
를 포함하는, 스토리지 장치의 동작 방법.
According to claim 2,
The step of matching the security policy,
Matching a security IP for each of the plurality of areas
including,
Updating at least one of the security policies matched with each of the plurality of areas includes:
Changing a security IP matched to an area in which an abnormal operation has occurred among the plurality of areas
Including, the operating method of the storage device.
제2항에 있어서,
상기 보안 정책을 매칭시키는 단계는,
상기 복수의 영역 각각에 대하여 키를 매칭시키는 단계
를 포함하고,
상기 복수의 영역 각각에 매칭된 상기 보안 정책 중 적어도 하나를 갱신하는 단계는,
상기 복수의 영역 중 비정상적인 동작이 발생한 영역의 키를 변경하는 단계
를 포함하는, 스토리지 장치의 동작 방법.
According to claim 2,
The step of matching the security policy,
Matching keys for each of the plurality of areas
including,
Updating at least one of the security policies matched with each of the plurality of areas includes:
Changing a key of an area in which an abnormal operation has occurred among the plurality of areas;
Including, the operating method of the storage device.
제2항에 있어서,
상기 비정상적인 동작을 검출하는 단계는,
상기 복수의 영역 각각에 대해서 상기 비정상적인 동작을 검출하는 단계
를 포함하고,
상기 비정상적인 동작은,
키 유효 시간이 경과한 경우;
데이터 무결성 체크가 실패한 경우; 및
비정상적인 HMB 할당이 검출된 경우
중 적어도 하나의 경우를 포함하는, 스토리지 장치의 동작 방법.
According to claim 2,
The step of detecting the abnormal operation,
Detecting the abnormal operation in each of the plurality of areas
including,
The abnormal behavior,
When the key validity time has elapsed;
If a data integrity check fails; and
When abnormal HMB allocation is detected
A method of operating a storage device, including at least one of the following.
제8항에 있어서,
상기 데이터 무결성 체크가 실패한 경우는,
데이터 오류율이 오류율 임계치에 도달한 경우
를 포함하는, 스토리지 장치의 동작 방법.
According to claim 8,
If the data integrity check fails,
When the data error rate reaches the error rate threshold
Including, the operating method of the storage device.
제8항에 있어서,
상기 비정상적인 HMB 할당이 검출된 경우는,
상기 HMB의 로그 정보를 이용하여, 할당 위치가 변경됨을 검출한 경우
를 포함하는, 스토리지 장치의 동작 방법.
According to claim 8,
When the abnormal HMB allocation is detected,
When it is detected that the allocation location is changed using the log information of the HMB
Including, the operating method of the storage device.
KR1020220049635A 2021-11-15 2022-04-21 Storage device and operation method thereof KR20230071023A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/944,613 US20230152988A1 (en) 2021-11-15 2022-09-14 Storage device and operation method thereof
CN202211381676.0A CN116127479A (en) 2021-11-15 2022-11-03 Memory device and method of operating the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210156966 2021-11-15
KR20210156966 2021-11-15

Publications (1)

Publication Number Publication Date
KR20230071023A true KR20230071023A (en) 2023-05-23

Family

ID=86544308

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220049635A KR20230071023A (en) 2021-11-15 2022-04-21 Storage device and operation method thereof

Country Status (1)

Country Link
KR (1) KR20230071023A (en)

Similar Documents

Publication Publication Date Title
US11797181B2 (en) Hardware accessible external memory
US11360679B2 (en) Paging of external memory
US11016846B2 (en) Storage device using host memory and operating method thereof
US20200371700A1 (en) Coordinated allocation of external memory
US11086525B2 (en) Resilient external memory
JP6460940B2 (en) Storage device and data saving method
CN110795497A (en) Cooperative compression in distributed storage systems
US11544205B2 (en) Peer storage devices sharing host control data
US20230152988A1 (en) Storage device and operation method thereof
KR20230071023A (en) Storage device and operation method thereof
KR102588751B1 (en) Storage device and operation method thereof
US20230153026A1 (en) Storage device and operation method thereof
EP4180975A1 (en) Storage device and operation method thereof
US20240202067A1 (en) Storage device and method of operating the same
US20230152987A1 (en) Storage device and operation method thereof
US20230138032A1 (en) Storage device and operating method thereof
KR20240094827A (en) Storage device and operating method thereof
KR20230094308A (en) Storage device, host system having the same, and operating method thereof