KR102304929B1 - 모델 정보를 저장하는 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템 및 스토리지 시스템의 동작 방법 - Google Patents
모델 정보를 저장하는 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템 및 스토리지 시스템의 동작 방법 Download PDFInfo
- Publication number
- KR102304929B1 KR102304929B1 KR1020200015210A KR20200015210A KR102304929B1 KR 102304929 B1 KR102304929 B1 KR 102304929B1 KR 1020200015210 A KR1020200015210 A KR 1020200015210A KR 20200015210 A KR20200015210 A KR 20200015210A KR 102304929 B1 KR102304929 B1 KR 102304929B1
- Authority
- KR
- South Korea
- Prior art keywords
- model
- storage device
- model information
- storage
- machine learning
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
호스트 장치와 통신하는 스토리지 장치가 개시된다. 스토리지 장치는 기계 학습 모델의 모델 정보가 저장되는 메모리 장치, 및 기계 학습 모델을 이용하여 스토리지 장치의 동작을 제어하는 스토리지 컨트롤러를 포함하고, 스토리지 컨트롤러는 호스트 장치로부터 모델 정보 추출을 위한 겟 커맨드가 수신되면, 겟 커맨드에 응답하여 메모리 장치로부터 모델 정보를 독출하여 호스트 장치로 전송한다.
Description
본 개시의 기술적 사상은 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템 및 스토리지 시스템의 동작 방법에 관한 것으로서, 상세하게는 기계 학습 모델의 모델 정보를 저장하는 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템 및 스토리지 시스템의 동작 방법에 관한 것이다.
비휘발성 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. 최근 eMMC(embedded Multi-Media Card), UFS(Universal Flash Storage), SSD(Solid State Drive), 및 메모리 카드 등의 플래시 기반의 비휘발성 메모리를 포함하는 스토리지 장치가 널리 사용되고 있으며, 스토리지 장치는 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다.
스토리지 장치는 저장된 기계 학습(machine learning) 모델을 이용하여 스토리지 장치 내부 동작을 위해 필요한 조건 정보들을 획득할 수 있다. 예를 들어, 스토리지 장치는 기계 학습 모델을 이용하여, 가비지 콜렉션 동작을 스케쥴링하기 위한 조건 등을 획득할 수 있다. 종래의 스토리지 장치는 제조 시에 미리 저장된 기계 학습 모델을 업데이트하지 못하는 문제가 있었다.
본 개시의 기술적 사상이 해결하고자 하는 과제는 서로 다른 스토리지 장치들 사이에서 기계 학습 모델의 모델 정보를 연속적으로 이용할 수 있는 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템 및 스토리지 시스템의 동작 방법을 제공하는 데에 있다.
본 개시의 기술적 사상에 따른 호스트 장치와 통신하는 스토리지 장치가 개시된다. 스토리지 장치는 기계 학습 모델의 모델 정보가 저장되는 메모리 장치, 및 기계 학습 모델을 이용하여 스토리지 장치의 동작을 제어하는 스토리지 컨트롤러를 포함하고, 스토리지 컨트롤러는 호스트 장치로부터 모델 정보 추출을 위한 겟 커맨드가 수신되면, 겟 커맨드에 응답하여 메모리 장치로부터 모델 정보를 독출하여 호스트 장치로 전송할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 시스템은, 기계 학습 모델의 모델 정보가 각각 저장되는 제1 스토리지 장치 및 제2 스토리지 장치, 및 제1 스토리지 장치 및 제2 스토리지 장치의 동작을 관리하는 호스트 장치를 포함하고, 호스트 장치는 제1 스토리지 장치가 페일 상태인 경우 제1 스토리지 장치로 모델 정보 추출을 위한 겟 커맨드를 전송하고, 제1 스토리지 장치는 겟 커맨드에 응답하여 제1 스토리지 장치에 저장된 모델 정보를 추출하여 호스트 장치로 전송할 수 있다.
본 개시의 기술적 사상에 따른 복수의 스토리지 장치들 및 상기 스토리지 장치의 동작을 관리하는 호스트 장치를 포함하는 스토리지 시스템의 동작 방법에 있어서, 호스트 장치가 복수의 스토리지 장치들 중에서 기계 학습 모델의 모델 정보가 저장되는 특정 스토리지 장치를 페일 상태로 판단하는 단계, 호스트 장치가 특정 스토리지 장치로 모델 정보 추출을 위한 겟 커맨드를 전송하는 단계, 특정 스토리지 장치가 겟 커맨드에 응답하여 모델 정보를 호스트 장치로 전송하는 단계, 및 호스트 장치가 복수의 스토리지 장치들 중 다른 스토리지 장치로 모델 정보를 재배치하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따르면, 스토리지 장치 및 스토리지 장치를 포함하는 스토리지 시스템은 스토리지 장치 내부에 저장된 기계 학습 모델의 모델 정보를 추출할 수 있고, 다른 스토리지 장치에 추출된 모델 정보를 새로 재배치할 수 있다. 따라서, 스토리지 장치 및 이를 포함하는 스토리지 시스템은, 특정 스토리지 장치의 사용이 불가능한 경우에, 새로운 스토리지 장치로 모델 정보를 재배치시킴으로써 서로 다른 스토리지 장치들 사이에서 기계 학습 모델의 모델 정보를 연속적으로 이용할 수 있다.
도 1은 본 개시의 예시적 실시 예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2a는 본 개시의 예시적 실시 예에 따른 스토리지 장치를 나타내는 블록도이다.
도 2b는 도 2a의 스토리지 장치에 로딩되는 모델 실행기의 예시적 실시 예를 설명하기 위한 도면이다.
도 3은 본 개시의 예시적 실시 예에 따른 스토리지 장치의 메모리 장치를 나타내는 블록도이다.
도 4는 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 5는 겟 커맨드의 포맷(a) 및 겟 커맨드에 따른 응답의 포맷(b)의 예시적인 실시 예를 설명하기 위한 도면이다.
도 6은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 7은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 8은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 9는 풋 커맨드의 포맷의 예시적인 실시 예를 설명하기 위한 도면이다.
도 10은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 11은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 12a 및 도 12b는 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 13은 본 개시의 예시적 실시 예에 따른 스토리지 시스템이 적용된 시스템의 예시적 실시 예를 나타내는 블록도이다.
도 2a는 본 개시의 예시적 실시 예에 따른 스토리지 장치를 나타내는 블록도이다.
도 2b는 도 2a의 스토리지 장치에 로딩되는 모델 실행기의 예시적 실시 예를 설명하기 위한 도면이다.
도 3은 본 개시의 예시적 실시 예에 따른 스토리지 장치의 메모리 장치를 나타내는 블록도이다.
도 4는 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 5는 겟 커맨드의 포맷(a) 및 겟 커맨드에 따른 응답의 포맷(b)의 예시적인 실시 예를 설명하기 위한 도면이다.
도 6은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 7은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 8은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 9는 풋 커맨드의 포맷의 예시적인 실시 예를 설명하기 위한 도면이다.
도 10은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 11은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 12a 및 도 12b는 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 13은 본 개시의 예시적 실시 예에 따른 스토리지 시스템이 적용된 시스템의 예시적 실시 예를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시 예에 따른 스토리지 시스템(1000)을 나타내는 블록도이다.
스토리지 시스템(1000)은 예를 들어, PC(personal computer), 데이터 서버, 네트워크-결합 스토리지(network-attached storage, NAS), IoT(Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
도 1을 참조하면, 스토리지 시스템(1000)은 제1 내지 제k 스토리지 장치(10_1~10_k) 및 호스트 장치(20)를 포함할 수 있다. 호스트 장치(20)는 스토리지 시스템(1000)의 전반적인 동작을 관리할 수 있다. 예를 들어, k는 3이상의 자연수일 수 있으나, 본 개시는 이에 한정되지 않고, 스토리지 시스템(1000)은 하나의 호스트 장치(20)에 연결되는 2개의 스토리지 장치들을 포함할 수도 있다.
예시적인 실시 예에서, 스토리지 시스템(1000)은 레이드(Redundant Array of Inexpensive Disk, RAID) 스토리지 시스템일 수 있고, 제1 내지 제k 스토리지 장치(10_1~10_k)는 RAID 영역을 구성할 수 있다. 즉, 호스트 장치(20)는 제1 내지 제k 스토리지 장치(10_1~10_k)에서 RAID 스트라이프를 구성하는 데이터 및 RAID 패리티를 이용하여 RAID 리커버리를 수행할 수 있다. 예시적인 실시 예에서, 호스트 장치(20)는 데이터 및 RAID 패리티를 이용한 XOR 연산에 기반하는 RAID 리커버리를 수행할 수 있다.
또는 예시적인 실시 예에서, 제1 내지 제k 스토리지 장치(10_1~10_k)는 서로 동일한 어플리케이션이 실행되는 스토리지 장치들일 수 있다.
본 도면에서는 스토리지 시스템(1000)은 하나의 호스트 장치(20)에 연결되는 제1 내지 제k 스토리지 장치(10_1~10_k)를 포함하는 것으로 도시하였으나, 본 개시는 이에 한정되지 않는다. 스토리지 시스템(1000)은 서로 다른 복수의 호스트 장치들을 포함할 수도 있고, 각각의 호스트 장치들에 연결되는 복수의 스토리지 장치들을 포함할 수도 있다.
제1 내지 제k 스토리지 장치(10_1~10_k)는 데이터를 저장할 수 있는 임의의 종류의 저장 장치일 수 있다. 예시적인 실시 예에서, 제1 내지 제k 스토리지 장치(10_1~10_k)는 솔리드 스테이트 드라이브(Solid State Drive, SSD) 장치일 수 있다. 다만, 본 개시는 이에 한정되지는 않는다.
제1 내지 제k 스토리지 장치(10_1~10_k) 각각은 기계 학습 모델을 이용하여 제1 내지 제k 스토리지 장치(10_1~10_k) 각각의 내부 동작을 수행하기 위해 필요한 조건들에 대한 정보를 획득할 수 있다. 예를 들어, 제1 내지 제k 스토리지 장치(10_1~10_k) 각각은 기계 학습 모델을 이용하여, 제1 내지 제k 스토리지 장치(10_1~10_k) 각각의 내부 동작들을 스케쥴링하거나, 1 내지 제k 스토리지 장치(10_1~10_k) 각각의 내부 동작들을 수행하는 데에 필요한 문턱 값들을 획득할 수 있다.
예시적인 실시 예에서, 호스트 장치(20)는 AP(Application Processor) 또는 SoC(System-On-a-Chip, SoC)로 구현될 수 있다. 호스트 장치(20)는 호스트 인터페이스(130)를 통하여 제1 내지 제k 스토리지 장치(10_1~10_k)와 통신할 수 있다.
호스트 장치(20)는 제1 내지 제k 스토리지 장치(10_1~10_k) 각각으로 커맨드(CMD)를 전달하여, 제1 내지 제k 스토리지 장치(10_1~10_k) 각각의 동작을 제어할 수 있다. 예를 들어, 호스트 장치(20)는 제1 내지 제k 스토리지 장치(10_1~10_k) 각각으로 기입 커맨드를 전송하여 제1 내지 제k 스토리지 장치(10_1~10_k) 각각에 데이터를 기입하거나, 제1 내지 제k 스토리지 장치(10_1~10_k) 각각으로 독출 커맨드를 전송하여 제1 내지 제k 스토리지 장치(10_1~10_k) 각각으로부터 데이터를 독출할 수 있다.
예시적인 실시 예에서, 호스트 장치(20)는 제1 내지 제k 스토리지 장치(10_1~10_k) 각각으로 겟 커맨드(GCMD)를 전달하여, 제1 내지 제k 스토리지 장치(10_1~10_k) 각각으로부터 기계 학습(machine learning) 모델의 모델 정보(MI)를 추출할 수 있다. 예시적인 실시 예에서, 호스트 장치(20)는 제1 내지 제k 스토리지 장치(10_1~10_k) 각각으로 풋 커맨드(PCMD)를 전달하여, 제1 내지 제k 스토리지 장치(10_1~10_k) 각각으로 기계 학습 모델의 모델 정보(MI)를 배치할 수 있다. 예를 들어, 기계 학습 모델은 인공 신경망(artificial neural network)을 포함할 수 있다.
예시적인 실시 예에서, 모델 정보(MI)는 모델 데이터 및 모델 메타 데이터를 포함할 수 있다. 예를 들어, 모델 데이터는 모델 아키텍쳐 및 모델 파라미터들을 포함할 수 있고, 모델 메타 데이터는 모델의 정확도, 모델의 학습 시간, 모델의 학습 데이터 량 등에 대한 데이터를 포함할 수 있다.
본 개시에 따른 스토리지 시스템(1000)의 호스트 장치(20)는 제1 내지 제k 스토리지 장치(10_1~10_k) 중 페일 상태로 판단되는 스토리지 장치에 저장된 기계 학습 모델의 모델 정보(MI)를 추출할 수 있다. 호스트 장치(20)는 추출된 모델 정보(MI)를 제1 내지 제k 스토리지 장치(10_1~10_k) 중 정상 상태인 스토리지 장치로 전송할 수 있고, 추출된 모델 정보(MI)는 상기 정상 상태의 스토리지 장치에 배치될 수 있다. 따라서, 스토리지 시스템(1000)은, 제1 내지 제k 스토리지 장치(10_1~10_k) 중 특정 스토리지 장치의 사용이 불가능한 경우에, 새로운 스토리지 장치로 모델 정보(MI)를 배치시킴으로써 서로 다른 스토리지 장치들 사이에서 기계 학습 모델의 모델 정보(MI)를 연속적으로 이용할 수 있다.
또한, 호스트 장치(20)는 제1 내지 제k 스토리지 장치(10_1~10_k) 각각으로 모델 학습 커맨드를 전달할 수 있고, 모델 학습 커맨드에 응답하여 제1 내지 제k 스토리지 장치(10_1~10_k) 각각은 기계 학습 모델 학습 동작을 수행할 수 있다. 호스트 장치(20)는 제1 내지 제k 스토리지 장치(10_1~10_k) 각각으로 모델 추론 커맨드를 전달할 수 있고, 모델 추론 커맨드에 응답하여 제1 내지 제k 스토리지 장치(10_1~10_k) 각각은 기계 학습 모델 추론 동작을 수행할 수 있다.
도 2a는 본 개시의 예시적 실시 예에 따른 스토리지 장치(10)를 나타내는 블록도이다. 도 2b는 도 2a의 스토리지 장치(10)에 로딩되는 모델 실행기(125)의 예시적 실시 예를 설명하기 위한 도면이다. 도 2a의 스토리지 장치(10)는 도 1의 제1 내지 제n 스토리지 장치(10_1~10_n) 중 하나일 수 있다.
스토리지 장치(10)는 하나 이상의 플래시 메모리 칩들을 포함하는 플래시 메모리 장치를 포함할 수 있다. 예를 들어, 스토리지 장치(10)는 데이터를 비휘발성하게 저장하는 복수의 NAND 메모리 칩들을 포함할 수 있다.
예시적인 실시 예에서, 스토리지 장치(10)는 스토리지 시스템(예를 들어, 도 1의 1000)에 내장되는 임베디드(embedded) 메모리일 수 있다. 예를 들어, 스토리지 장치(10)는 eMMC(embedded Multi-Media Card) 또는 임베디드 UFS(Universal Flash Storage) 메모리 장치일 수 있다. 예시적인 실시 예에서, 스토리지 장치(10)는 스토리지 시스템(1000)에 착탈 가능한 외장(external) 메모리일 수 있다. 예를 들어, 스토리지 장치(10)는 UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick)일 수 있다.
도 2a를 참조하면, 스토리지 장치(10)는 스토리지 컨트롤러(100), 및 메모리 장치(200)를 포함할 수 있다. 스토리지 장치(10)는 이외에도, 다른 구성들을 더 포함할 수 있고, 예를 들어, 버퍼 메모리 및 전력 관리 회로 등을 더 포함할 수 있다. 스토리지 장치(10)는 호스트 장치(예를 들어, 도 1의 20)로부터 제공되는 커맨드(CMD)에 응답하여 메모리 장치(200)에 접근하거나 요청된 동작들을 수행할 수 있다.
스토리지 컨트롤러(100)는 채널(CH)을 통해 메모리 장치(200)의 동작을 제어할 수 있다. 예를 들어, 스토리지 컨트롤러(100)는 메모리 장치(200)에 데이터를 기입하거나, 메모리 장치(200)로부터 데이터를 독출할 수 있다.
스토리지 컨트롤러(100)는 프로세서(110), 메모리(120), 호스트 인터페이스(130), 및 메모리 인터페이스(140)를 포함할 수 있다. 이들은 버스(150)를 통해 서로 통신할 수 있고, 스토리지 컨트롤러(100)는 이외에도, 다른 구성들을 더 포함할 수 있다.
프로세서(110)는 스토리지 컨트롤러(100)의 전반적인 동작을 제어할 수 있다. 프로세서(110)는 중앙 처리 장치나 마이크로 프로세서 등을 포함할 수 있다. 예시적인 실시 예에서, 프로세서(110)는 멀티 코어 프로세서로 구현될 수 있고, 예를 들어, 듀얼 코어 프로세서 또는 쿼드(quad) 코어 프로세서로 구현될 수 있다.
프로세서(110)는 스토리지 컨트롤러(100)를 구동하기 위한 펌웨어(firmware)를 실행할 수 있다. 펌웨어는 메모리(120)에 로딩되어 실행될 수 있다. 예를 들면, 프로세서(110)는 스토리지 컨트롤러(100)를 구동하기 위한 펌웨어(firmware)를 실행함으로써, 메모리 장치(200)를 관리하기 위한 가비지 컬렉션이나, 주소 맵핑, 웨어 레벨링 등을 수행하기 위한 플래시 변환 계층을 실행할 수 있다.
메모리(120)은 프로세서(110)의 제어에 따라 동작할 수 있다. 메모리(120)은 프로세서(110)의 동작 메모리, 캐시 메모리, 또는 버퍼 메모리로 이용될 수 있다. 메모리(120)에는 스토리지 컨트롤러(100)를 제어하기 위한 소프트웨어, 펌웨어 및 데이터가 로딩될 수 있다. 메모리(120)은 DRAM(dynamic random access memory) 또는 SRAM(static random access memory) 등의 휘발성 메모리로 구현될 수 있다. 또는 메모리(120)은 RRAM, PRAM 또는 MRAM과 같은 저항형 메모리로 구현될 수 있다. 예를 들어, 메모리(120)에는 모델 정보 추출기(121), 모델 정보 배치기(123), 및 모델 실행기(125)가 로딩될 수 있다.
프로세서(110)는 모델 정보 추출기(121)를 실행함으로써, 호스트 장치(20)로부터 모델 정보 추출 요청 받은 모델 정보를 메모리 장치(200)의 데이터 베이스(DB)로부터 독출할 수 있고, 독출된 모델 정보를 호스트 장치(20)로 전송할 수 있다. 프로세서(110)는 모델 정보 배치기(123)를 실행함으로써, 호스트 장치(20)로부터 모델 정보 배치 요청 받은 모델 정보를 메모리 장치(200)의 데이터 베이스(DB)에 기입할 수 있다.
도 2a 및 도 2b를 참조하면, 모델 실행기(125)는 모델 추론기(125_1) 및 모델 학습기(125_2)를 포함할 수 있다. 프로세서(110)는 모델 정보를 이용하여 모델 추론기(125_1)를 실행함으로써, 호스트 장치(20)로부터의 액세스 요청에 따른 작업들, 스토리지 장치(10)를 관리하기 위한 배경 작업들(background tasks) 또는 전경 작업들(foreground tasks)을 스케줄링할 수 있다. 예를 들어, 프로세서(110)는 모델 정보를 이용하여 모델 추론기(125_1)를 실행함으로써, 가비지 콜렉션 동작을 스케쥴링할 수 있다. 또한, 프로세서(110)는 모델 정보를 이용하여 모델 추론기(125_1)를 실행함으로써, 스토리지 장치(10)의 동작을 위해 사용되는 다양한 문턱 값들 및 파라미터들을 획득할 수 있다.
또한, 프로세서(110)는 메모리(120)에 로딩된 모델 학습기(125_2)를 실행함으로써, 스토리지 장치(10)에 저장된 기계 학습 모델을 학습할 수 있고, 기계 학습 모델의 학습도가 증가될 수 있다. 기계 학습 모델의 학습도가 증가됨에 따라 기계 학습 모델의 정확도가 증가될 수 있다.
다시 도 2a를 참조하면, 호스트 인터페이스(130)는 호스트 장치(20)와의 통신을 수행할 수 있다. 예를 들어, 호스트 인터페이스(130)는 호스트 장치(20)와 스토리지 장치(10)와의 물리적 연결을 제공할 수 있다. 호스트 인터페이스(130)는 호스트 장치(20)의 전송 포맷(format), 즉, 버스 포맷에 대응하여 스토리지 장치(10)와 교환되는 데이터의 크기를 조절하거나 교환되는 커맨드의 포맷을 변환할 수 있다.
예를 들어, 호스트 인터페이스(130)는 호스트 장치(20)로 전송될 모델 정보를 호스트 장치(20)의 전송 포맷에 대응되도록 포맷팅할 수 있다. 또한, 호스트 인터페이스(130)는 호스트 장치(20)로부터 수신된 모델 정보(예를 들어, 도 1의 MI)를 스토리지 장치(10) 내부 포맷에 대응하도록 포맷팅할 수 있다.
호스트 장치(20)의 버스 포맷은 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI(Peripheral Component Interconnection) express, ATA(AT Attachment), PATA(Parallel AT Attachment), SATA(Serial AT Attachment), SAS(Serial Attached SCSI) 중 적어도 하나로 구성될 수 있다. 호스트 인터페이스(130)는 PCI express 방식으로 데이터를 교환하는 호스트 장치(20)에 장착되는 NVMe(Non-volatile memory express) 프로토콜이 적용된 것일 수 있다.
메모리 인터페이스(140)는 메모리 장치(200)와 데이터를 교환할 수 있다. 메모리 인터페이스(140)는 채널(CH)을 경유하여 데이터를 메모리 장치(200)에 기입할 수 있고, 채널(CH)을 경유하여 메모리 장치(200)로부터 데이터를 독출할 수 있다. 예를 들어, 메모리 인터페이스(140)는 채널(CH)을 통해 모델 정보를 메모리 장치(200)로 전송할 수 있고, 채널(CH)을 통해 모델 정보를 메모리 장치(200)로부터 수신할 수 있다. 예시적인 실시 예에서, 메모리 장치(200)에 저장되는 모델 정보는 호스트 장치(20)로부터 수신된 모델 정보(MI)를 스토리지 장치(10) 내부의 저장 포맷에 대응하도록 포맷팅된 것일 수 있다.
메모리 장치(200)는 플래시 메모리를 포함할 수 있고, 상기 플래시 메모리는 2D NAND 메모리 어레이나 3D(또는 수직형, Vertical) NAND(VNAND) 메모리 어레이를 포함할 수 있다. 상기 3D 메모리 어레이는 실리콘 기판 위에 배치되는 활성 영역을 가지는 메모리 셀들의 어레이들, 또는 상기 메모리 셀들의 동작과 관련된 회로로서 상기 기판상에 또는 상기 기판 내에 형성된 회로의 적어도 하나의 물리적 레벨에 모놀리식으로 형성된다. 상기 용어 “모놀리식”은 상기 어레이를 구성하는 각 레벨의 층들이 상기 어레이 중 각 하부 레벨의 층들의 바로 위에 적층되어 있음을 의미한다.
예시적인 실시 예에서, 상기 3D 메모리 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직 방향으로 배치된 Vertical NAND 스트링들을 포함한다. 상기 적어도 하나의 메모리 셀은 전하 트랩층을 포함할 수 있다.
미국 특허공개공보 제7,679,133호, 동 제8,553,466호, 동 제8,654,587호, 동 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 3D 메모리 어레이가 복수 레벨로 구성되고 워드 라인들 및/또는 비트 라인들이 레벨들간에 공유되어 있는 3D 메모리 어레이에 대한 적절한 구성들을 상술하는 것들로서, 본 명세서에 인용 형식으로 결합될 수 있다.
예시적인 실시 예에서, 메모리 장치(200)는 다른 다양한 종류의 비휘발성 메모리들을 포함할 수도 있다. 예를 들어, 메모리 장치(200)는 비휘발성 메모리를 포함할 수 있으며, 비휘발성 메모리는 MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torgue MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase RAM), 저항 메모리(Resistive RAM), 나노튜브 RAM(Nanottube RAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory) 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory) 등 다양한 종류의 메모리가 적용될 수 있다.
도 3은 본 개시의 예시적 실시 예에 따른 스토리지 장치의 메모리 장치(200)를 나타내는 블록도이다.
도 3을 참조하면, 메모리 장치(200)는 메모리 셀 어레이(210), 어드레스 디코더(220), 전압 생성기(230), 제어 로직 블록(240), 페이지 버퍼 회로(250), 및 입출력 회로(260)를 포함할 수 있다. 도시되지는 않았으나, 메모리 장치(200)는 입출력 인터페이스를 더 포함할 수 있다.
메모리 셀 어레이(210)는 워드 라인들(WL), 스트링 선택 라인들(SSL), 그라운드 선택 라인들(GSL) 및 비트 라인들(BL)에 연결될 수 있다. 메모리 셀 어레이(210)는 워드 라인들(WL), 스트링 선택 라인들(SSL) 및 그라운드 선택 라인들(GSL)을 통해 어드레스 디코더(220)에 연결되고, 비트 라인들(BL)을 통해 페이지 버퍼 회로(250)에 연결될 수 있다.
메모리 셀 어레이(210)는 복수의 메모리 블록들(BLK1~BLKn)을 포함할 수 있다. 메모리 장치(200)는 메모리 블록 단위로 소거 동작을 수행할 수 있다.
각 메모리 블록(BLK1~BLKn)은 복수의 메모리 셀들 및 복수의 선택 트랜지스터들을 포함할 수 있다. 메모리 셀들은 워드 라인들(WL)에 연결되고, 선택 트랜지스터들은 스트링 선택 라인들(SSL) 또는 그라운드 선택 라인들(GSL)에 연결될 수 있다. 각 메모리 블록(BLK1~BLKn)의 메모리 셀들은 1-비트 데이터를 저장하는 싱글 레벨 셀들 또는 M(M은 2 또는 그 보다 큰 정수)-비트 데이터를 저장하는 멀티 레벨 셀들로 구성될 수 있다.
메모리 셀 어레이(210)는 모델 데이터 베이스(DB)를 포함할 수 있고, 모델 데이터 베이스(DB)에는 모델 정보가 저장될 수 있다. 모델 정보는 예를 들어, 모델 데이터 및 모델 메타 데이터를 포함할 수 있다. 모델 데이터는 모델 아키텍쳐 및 모델 파라미터들을 포함할 수 있고, 모델 메타 데이터는 모델의 정확도, 모델의 학습 시간, 모델의 학습 데이터 량 등에 대한 데이터를 포함할 수 있다.
어드레스 디코더(220)는 메모리 셀 어레이(210)의 복수의 메모리 블록들(BLK1~BLKn) 중 하나를 선택할 수 있고, 선택된 메모리 블록의 워드 라인들(WL) 중 하나를 선택할 수 있고, 복수의 스트링 선택 라인들(SSL) 중 하나를 선택할 수 있다.
전압 생성기(230)는 전압 제어 신호(CTRL_Vol)를 기초로 하여 메모리 셀 어레이(210)에 대한 프로그램, 독출 및 소거 동작을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 예를 들어, 전압 생성기(230)는 워드 라인 전압(VWL), 예를 들어, 프로그램 전압, 독출 전압, 패스 전압, 소거 검증 전압 또는 프로그램 검증 전압 등을 생성할 수 있다. 또한, 전압 생성기(230)는 전압 제어 신호(CTRL_Vol)를 기초로 하여 스트링 선택 라인 전압 및 그라운드 선택 라인 전압을 생성할 수 있고, 전압 생성기(230)는 메모리 셀 어레이(210)에 제공할 소거 전압을 생성할 수 있다.
제어 로직 블록(240)은 내부 커맨드(ICMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 하여, 메모리 셀 어레이(210)에 대한 프로그램, 독출 및 소거 동작을 수행하기 위한 각종 제어 신호를 출력할 수 있다. 제어 로직 블록(240)은 어드레스 디코더(220)에 로우 어드레스(X-ADDR)를 제공할 수 있고, 페이지 버퍼 회로(250)에 칼럼 어드레스(Y-ADDR)를 제공할 수 있고, 전압 생성기(230)에 전압 제어 신호(CTRL_Vol)를 제공할 수 있다.
페이지 버퍼 회로(250)는 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작할 수 있다. 독출 동작시, 페이지 버퍼 회로(250)는 제어 로직 블록(240)의 제어에 따라 선택된 메모리 셀의 비트 라인(BL)을 센싱할 수 있다. 센싱된 데이터는 페이지 버퍼 회로(250) 내부에 구비되는 래치들에 저장될 수 있다. 페이지 버퍼 회로(250)는 제어 로직 블록(240)의 제어에 따라 래치들에 저장된 데이터를 입출력 회로(260)로 덤핑할 수 있다.
입출력 회로(260)는 메모리 장치(200)의 외부로부터 입출력 라인(I/O)을 통해서 제공되는 내부 커맨드(ICMD), 어드레스(ADDR), 제어 신호(CTRL) 및 데이터(DATA)를 일시 저장할 수 있다. 입출력 회로(260)는 메모리 장치(200)의 읽기 데이터를 일시 저장하고, 지정된 시점에 입출력 라인(I/O)을 통해서 외부로 출력할 수 있다.
도 4는 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다. 도 5는 겟 커맨드의 포맷(a) 및 겟 커맨드에 따른 응답의 포맷(b)의 예시적인 실시 예를 설명하기 위한 도면이다. 도 4는 스토리지 장치(10)에 저장된 모델 정보를 추출하는 동작을 설명하기 위한 도면이다. 예를 들어, S130 단계 및 S140 단계는 스토리지 장치(10)의 프로세서가 메모리에 로딩된 모델 정보 추출기를 실행함으로써 수행될 수 있다.
도 4를 참조하면, 호스트 장치(20)는 S110 단계에서, 스토리지 장치(10)가 페일 상태인지 판단할 수 있다. 예를 들어, 호스트 장치(20)는 사용자로부터 스토리지 장치(10)를 교체하는 입력이 수신되는 경우에 스토리지 장치(10)가 페일 상태라고 판단할 수 있다. 또는, 호스트 장치(20)는 스토리지 장치(10)가 독출 동작 및 기입 동작이 수행되지 않는 경우, 또는 독출 동작만이 가능하나 스토리지 장치(10)의 배드 블록의 수가 문턱 값을 초과하는 경우에는 스토리지 장치(10)를 페일 상태로 판단할 수 있다. 또는, 호스트 장치(20)는 스토리지 장치(10)로부터 스토리지 장치(10)가 페일 상태임을 알리는 신호를 수신하는 경우에 스토리지 장치(10)를 페일 상태로 판단할 수 있다.
스토리지 장치(10)가 페일 상태로 판단되면, 호스트 장치(20)는 S120 단계에서, 겟 커맨드를 스토리지 장치(10)로 전송할 수 있다. 다만, 본 개시에 따른 스토리지 시스템은 이에 한정되지 않으며, 스토리지 장치(10)가 페일 상태가 아닌 정상 상태로 판단되어도 스토리지 장치(10)로부터 모델 정보를 추출하기 위하여 호스트 장치(20)는 스토리지 장치(10)로 겟 커맨드(GMD)를 전송할 수 있다.
도 4 및 도 5를 참조하면, S120 단계에서, 호스트 장치(20)는 스토리지 장치(10)로 겟 커맨드(GCMD)를 전송할 수 있다. 예시적인 실시 예에서, 겟 커맨드(GCMD)는 커맨드 식별자(ID) 및 모델 식별자를 포함할 수 있다. 예를 들어, 커맨드 식별자는 커맨드가 겟 커맨드인지 풋 커맨드인지 표시할 수 있고, 모델 식별자는 스토리지 장치(10)에 저장된 모델들 중 추출하기 위한 모델을 표시할 수 있다.
S130 단계에서, 스토리지 장치(10)는 모델 데이터베이스로부터 모델 정보를 추출할 수 있다. 이 때의 모델 정보는 스토리지 장치 내부의 포맷에 대응될 수 있다.
S140 단계에서, 스토리지 장치(10)는 겟 커맨드(GCMD)에 대응하는 모델 정보(MI)를 호스트 장치(20)로 전송할 수 있다. 모델 정보(MI)는 모델 데이터 및 모델 메타 데이터를 포함할 수 있다. 예를 들어, 모델 데이터는 모델 아키텍쳐 및 모델 파라미터들을 포함할 수 있고, 모델 메타 데이터는 모델의 정확도 또는 모델 학습도에 대한 정보를 포함할 수 있다. 상기 모델 학습도에 대한 정보는 모델 학습 시간 또는 모델 학습 데이터 량 등을 포함할 수 있다.
이 때, 스토리지 장치(10)는 모델 정보(MI)와 함께 응답 코드를 전송할 수 있다. 응답 코드는 호스트 장치(20)로부터 제공된 겟 커맨드(GCMD)에 따른 동작을 수행한 결과를 나타낼 수 있다. 예를 들어, 겟 커맨드(GCMD)에 따라 스토리지 장치(10)로부터 추출된 모델 정보에 대응하는 기계 학습 모델이 신뢰도 조건을 만족하는지 판단한 결과에 따른 응답 코드를 전송할 수 있다. 모델이 신뢰도 조건을 만족하지 않는 경우에는, 모델 정보(MI)를 전송하지 않고 신뢰도 조건을 만족하지 않는다는 응답 코드만을 전송할 수도 있다.
예시적인 실시 예에서, 스토리지 장치(10)는 S140 단계에서, 호스트 장치(20)와 연결되는 복수의 출력 핀들 중 데이터 핀을 통해 모델 정보(MI)를 전송할 수 있다. 다만, 스토리지 장치(10)의 데이터 핀 사용이 불가능한 경우에는 복수의 출력 핀들 중 데이터 핀이 아닌 핀을 통해 모델 정보(MI)를 전송할 수도 있다. 예를 들어, 스토리지 장치(10)의 전력에 대한 정보를 전달하기 위한 출력 핀을 통해 모델 정보(MI)를 전송할 수도 있다.
S150 단계에서, 호스트 장치(20)는 모델 정보를 스토리지 장치(10)가 아닌 다른 스토리지 장치로 전송하여 모델 정보를 배치할 수 있다. 상기 다른 스토리지 장치는 정상 상태일 수 있다. 예를 들어, 도 1의 제1 내지 제k 스토리지 장치(10_1~10_k) 중 제1 스토리지 장치(10_1)가 페일 상태로 판단되면, 호스트 장치(20)는 제1 스토리지 장치(10_1)에 저장된 모델 정보(MI)를 추출하여, 제2 스토리지 장치(10_2)로 모델 정보(MI)를 전송할 수 있다.
예시적인 실시 예에서, 스토리지 장치(10) 및 상기 다른 스토리지 장치는 동일한 호스트 장치(20)에 연결되어 동일한 호스트 장치(20)에 의해 동작이 제어되는 스토리지 장치들일 수 있다. 예를 들어, 스토리지 장치(10) 및 상기 다른 스토리지 장치는 함께 RAID 영역을 구성할 수 있다. 또는, 예시적인 실시 예에서, 스토리지 장치(10) 및 상기 다른 스토리지 장치는 동일한 어플리케이션이 실행되는 스토리지 장치들일 수 있다. 따라서, 본 개시에 따른 스토리지 시스템은 복수의 스토리지 장치들 중 특정 스토리지 장치의 사용이 불가능한 경우에, 동일한 기계 학습 모델을 실행할 수 있는 다른 스토리지 장치로 페일 상태의 스토리지 장치의 모델 정보(MI)를 배치시킴으로써 서로 다른 스토리지 장치들 사이에서 기계 학습 모델의 모델 정보(MI)를 연속적으로 이용할 수 있다.
도 6은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도로서, 도 4의 S110 단계의 예시적 실시 예를 설명하기 위한 도면이다. S110 단계는 S111 단계 내지 S117 단계를 포함할 수 있다.
도 6을 참조하면, 호스트 장치는, S111 단계에서 스토리지 장치가 기입 동작 수행이 가능한지 판단하고, S113 단계에서, 스토리지 장치가 독출 동작이 수행 가능한지 판단할 수 있다. 호스트 장치는 스토리지 장치가 기입 동작 및 독출 동작이 모두 불가능하다고 판단되면, S117 단계에서, 스토리지 장치가 페일 상태인 것으로 판단할 수 있다. 예를 들어, 스토리지 장치는 호스트 장치로 기입 동작 및 독출 동작이 모두 불가능한 상태임을 알리는 신호를 전송할 수 있고, 호스트 장치는 상기 신호를 수신하면 스토리지 장치가 기입 동작 및 독출 동작이 모두 불가능하다고 판단하고, 스토리지 장치가 페일 상태인 것으로 판단할 수 있다.
호스트 장치는, 스토리지 장치가 독출 동작만이 가능한 상태(Read only)인 경우, S115 단계에서, 스토리지 장치의 배드 블록 수가 문턱 값을 초과하는지 판단할 수 있다. 스토리지 장치는 독출 동작만 가능한 상태인 경우 호스트 장치로 독출 동작만 가능한 상태임을 알리는 신호를 전송할 수 있고, 호스트 장치는 상기 신호를 수신하면 스토리지 장치가 독출 동작만이 가능한 상태라고 판단하고 S115 단계를 수행할 수 있다.
예시적인 실시 예에서, 배드 블록 수의 기준이 되는 문턱 값은 미리 설정된 값일 수 있다. 또는 상기 문턱 값은 스토리지 장치의 사용 기간이 달라짐에 따라 적응적으로 가변하는 값일 수도 있다. 예를 들어, 스토리지 장치의 페일 상태를 판단하는 기준이 되는 문턱 값을 추론하는 기계 학습 모델이 스토리지 장치에 저장될 수 있고, 스토리지 장치의 프로세서는 모델 실행기를 실행함으로써 상기 문턱 값을 획득할 수도 있다.
스토리지 장치는 메모리 장치에 배드 블록이 발생되면 배드 블록을 스페어 블록으로 대체하는 리커버리 동작을 수행할 수 있다. 다만, 복수의 메모리 블록들 중 배드 블록의 수가 증가하여 문턱 값을 초과하게 될 경우, 배드 블록의 데이터를 복구하기 위한 리커버리 동작의 수행이 어려워질 수 있다. 따라서, 호스트 장치는 스토리지 장치의 배드 블록이 문턱 값을 초과하는 경우에 S117 단계에서, 스토리지 장치가 페일 상태인 것으로 판단할 수 있다. 예를 들어, 스토리지 장치는 호스트 장치로 현재의 배드 블록 수에 대한 정보를 호스트 장치로 제공할 수 있고, 상기 정보에 기초하여 호스트 장치는 배드 블록의 수가 증가하여 문턱 값을 초과하는지 판단할 수 있다.
다만, 본 개시에 따른 스토리지 장치는 도 6에 한정되지 않고, 스토리지 장치는 정상 상태인지 또는 페일 상태인지에 대한 정보를 호스트 장치로 제공할 수도 있다. 스토리지 장치가 스스로 페일 상태인지 판단함에 따라, 페일 상태임을 알리는 신호를 호스트 장치로 제공할 수 있고, 호스트 장치는 상기 신호를 수신함으로써, 스토리지 장치가 페일 상태라고 판단할 수 있다.
호스트 장치는 S115 단계에서 스토리지 장치가 페일 상태라고 판단하면, 도 4의 S120 단계를 수행할 수 있다.
도 7은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도로서, 도 4의 S140 단계의 예시적 실시 예를 설명하기 위한 도면이다. S140 단계는 S141 단계 내지 S145 단계를 포함할 수 있다. 예를 들어, S140 단계는 스토리지 장치(10)의 프로세서가 메모리에 로딩된 모델 정보 추출기를 실행함으로써 수행될 수 있다.
도 7을 참조하면, 스토리지 장치는 S141 단계에서, 스토리지 장치는 추출된 모델 정보에 따른 기계 학습 모델의 신뢰도가 전송 조건을 만족하는지 판단할 수 있다. 모델의 신뢰도는 모델의 정확도, 모델의 학습도, 및 모델의 크기 중 적어도 하나를 고려하여 판단될 수 있다. 예시적인 실시 예에서, 스토리지 장치는 모델의 정확도가 문턱 값 이상인지 판단함으로써, 모델이 신뢰도가 전송 조건을 만족하는지 판단할 수 있다. 예시적인 실시 예에서, 모델 정확도의 기준이 되는 문턱 값은 미리 설정된 값일 수 있다. 또한, 스토리지 장치는 모델의 학습량이 문턱 값 이상인지 판단하여 모델이 신뢰도를 만족하는지 판단할 수도 있으며, 모델을 실행하는 속도에 반비례하는 모델의 크기가 문턱 값 이하인지 판단하여 모델이 신뢰도를 만족하는지 판단할 수 도 있다.
모델의 신뢰도가 조건을 만족하면, 스토리지 장치는 S143 단계에서, 추출된 모델 정보를 전송 포맷에 대응하도록 포맷팅하여 전송할 수 있다. 다만, 전송 포맷과 스토리지 장치 내부 포맷이 동일한 경우에는 별도의 포맷팅 동작을 수행하지 않을 수도 있다.
반면, 모델의 신뢰도가 조건을 만족하지 않으면, 스토리지 장치는 S145 단계에서, 모델의 신뢰도를 판단한 결과를 전송할 수 있다. 예를 들어, 스토리지 장치는 S145 단계에서, 모델의 신뢰도가 전송 조건을 만족하지 못한다는 정보를 포함하는 응답 코드를 전송할 수 있다.
도 8은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다. 도 9는 풋 커맨드의 포맷의 예시적인 실시 예를 설명하기 위한 도면이다. 도 8는 스토리지 장치(10)로 모델 정보를 배치하는 동작을 설명하기 위한 도면이다. 예를 들어, S230 단계는 스토리지 장치(10)의 프로세서가 메모리에 로딩된 모델 정보 배치기를 실행함으로써 수행될 수 있다.
도 8 및 도 9를 참조하면, S210 단계에서, 호스트 장치(20)는 스토리지 장치(10)로 풋 커맨드(PCMD)를 전송할 수 있다. 예시적인 실시 예에서, 풋 커맨드(PCMD)는 커맨드 식별자, 커맨드 옵션 및 모델 식별자를 포함할 수 있다. 예를 들어, 커맨드 식별자는 커맨드가 겟 커맨드인지 풋 커맨드인지 표시할 수 있고, 모델 식별자는 스토리지 장치(10)에 배치하려는 모델 정보에 대응하는 기계 학습 모델을 표시할 수 있다.
커맨드 옵션은 풋 커맨드(PCMD)에 이어서 전송되는 모델 정보를 배치하는 방식에 대한 정보를 포함할 수 있다. 예를 들어, 커맨드 옵션은 풋 커맨드(PCMD)에 이어서 전송되는 모델 정보를 스토리지 장치(10)에 일시적으로 저장할지, 스토리지 장치(10)에 배치되어 있던 모델 정보와 비교한 결과에 따라 전송된 모델 정보를 스토리지 장치(10)에 배치할지, 또는 스토리지 장치(10)에 배치되어 있던 모델 정보와 비교하지 않고 전송된 모델 정보를 스토리지 장치(10)에 배치할지에 대한 풋 커맨드(PCMD)의 옵션을 의미할 수 있다. 이 때, 모델 정보의 배치는 스토리지 장치(10) 내에서 대응하는 기계 학습 모델을 실행할 때 사용하기 위해 저장하는 것을 의미할 수 있다.
S220 단계에서, 호스트 장치(20)는 모델 정보를 스토리지 장치(10)로 전송할 수 있다. 이 때, 모델 정보는 스토리지 장치(10)가 아닌 다른 스토리지 장치로부터 추출된 모델 정보일 수 있다.
모델 정보는 도 5(b)에 도시된 모델 정보의 구성과 동일할 수 있다. 즉, 모델 정보는 모델 데이터 및 모델 메타 데이터를 포함할 수 있다. 예를 들어, 모델 데이터는 모델 아키텍쳐 및 모델 파라미터들을 포함할 수 있고, 모델 메타 데이터는 모델의 정확도, 모델 학습 시간, 또는 모델 학습 데이터 량 등을 포함할 수 있다.
S230 단계에서, 스토리지 장치(10)는 모델 정보를 저장할 수 있다. 스토리지 장치(10)에 저장되는 모델 정보는 호스트 장치(20)로부터 수신된 모델 정보를 스토리지 장치 내부 포맷으로 포맷팅한 것일 수 있다. 예시적인 실시 예에서, 스토리지 장치(10)는 풋 커맨드(PCMD)의 커맨드 옵션에 따라 모델 정보를 일시적으로 스토리지 장치(10)에 저장하거나, 스토리지 장치(10)에 배치되어 있던 모델 정보와 비교한 결과에 따라 모델 정보를 스토리지 장치(10)에 배치하거나, 또는 스토리지 장치(10)에 배치되어 있던 모델 정보와 비교하지 않고 모델 정보를 스토리지 장치(10)에 배치할 수 있다.
S240 단계에서, 스토리지 장치(10)는 응답 코드를 전송할 수 있다. 응답 코드는 호스트 장치(20)로부터 제공된 풋 커맨드(PCMD)에 따른 동작을 수행한 결과를 나타낼 수 있다. 예를 들어, 응답 코드는 풋 커맨드(PCMD)에 이어 전송된 모델 정보(MI)를 스토리지 장치(10)에 저장하였는지에 대한 결과를 나타낼 수 있다.
도 10은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도로서, 도 8의 S230 단계의 예시적 실시 예를 설명하기 위한 도면이다. S230 단계는 S231 단계 내지 S237 단계를 포함할 수 있다. 예를 들어, S230 단계는 스토리지 장치의 프로세서가 메모리에 로딩된 모델 정보 배치기를 실행함으로써 수행될 수 있다.
도 10을 참조하면, S231 단계에서, 스토리지 장치는 호스트 장치로부터 수신된 모델 정보에 기초하여 기계 학습 모델의 학습도가 기준 값 이상인지 판단할 수 있다. 예를 들어, 모델 정보의 모델 메타 데이터는 모델 학습 시간 또는 모델의 학습 데이터 량 등에 대한 정보를 포함할 수 있고, 스토리지 장치는 모델 메타 데이터에 기초하여 기계 학습 모델의 학습도가 기준 값 이상인지 판단할 수 있다. 예시적인 실시 예에서, 모델 학습도의 기준이 되는 기준 값은 미리 설정된 값일 수 있다.
모델의 학습도가 기준 값 이상이면, S233 단계에서, 스토리지 장치는 수신된 모델 정보를 메모리 장치에 저장, 즉, 배치할 수 있다. 이 때, 메모리 장치에 배치되는 모델 정보는 스토리지 장치 내부의 포맷으로 포맷팅된 모델 정보일 수 있다.
반면, 모델의 학습도가 기준 값 미만이면, S233 단계에서, 스토리지 장치는 수신된 모델 정보를 이용하여 모델 학습(훈련, training) 동작을 수행할 수 있다. 스토리지 장치는 모델 학습 동작을 수행함으로써, 수신된 모델 정보에 대응하는 기계 학습 모델의 학습도를 증가시킬 수 있다. 예를 들어, 스토리지 장치는 모델의 학습도가 기준 값 이상이 되도록 학습도를 증가시킬 수 있다. 예를 들어, S233 단계는 스토리지 장치의 프로세서가 메모리에 로딩된 모델 학습기를 실행함으로써 수행될 수 있다.
S237 단계에서, 스토리지 장치는 수정된 모델 정보를 메모리 장치에 저장, 즉, 배치할 수 있다. S235 단계에서 모델 학습 동작을 수행함에 따라 모델 정보가 수정될 수 있다. 예를 들어, S235 단계에서 모델 정보에 포함되는 모델 데이터 및 모델 메타 데이터 중 적어도 하나를 수정될 수 있고, S237 단계에서 수정된 모델 정보가 메모리 장치에 배치될 수 있다.
본 개시에 따른 스토리지 시스템은 특정 스토리지 장치에 다른 스토리지 장치의 모델 정보를 배치시킬 때 모델의 학습도를 판단할 수 있고, 모델 학습도가 기준 값을 만족하지 않는 경우 추가 모델 학습 동작을 수행할 수 있다. 따라서, 스토리지 시스템은 모델 정보를 스토리지 장치에 배치시킬 때 모델 추가 모델 학습 동작을 수행함으로써 기계 학습 모델의 성능이 보장될 수 있다.
도 11은 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도로서, 도 8의 S230 단계 및 S240단계의 예시적 실시 예를 설명하기 위한 도면이다. S230A 단계는 S231A 단계 및 S233A 단계를 포함할 수 있고, S240 단계는 S241 단계 및 S243단계를 포함할 수 있다. 예를 들어, S230A 단계는 스토리지 장치의 프로세서가 메모리에 로딩된 모델 정보 배치기를 실행함으로써 수행될 수 있다.
도 11을 참조하면, S231A 단계에서, 스토리지 장치는 호스트 장치로부터 수신된 모델 정보에 대응하는 기계 학습 모델의 신뢰도가 스토리지 장치에 저장된 모델 정보에 대응하는 기계 학습 모델의 신뢰도보다 높은지 판단할 수 있다. 예를 들어, 모델의 신뢰도는 모델의 정확도, 모델의 학습도, 및 모델의 크기 중 적어도 하나를 고려하여 판단될 수 있다.
수신된 모델 정보에 대응하는 모델의 신뢰도가 기존 모델의 신뢰도보다 높으면, S233A 단계에서, 스토리지 장치는 수신된 모델 정보를 메모리 장치에 저장, 즉, 배치할 수 있다. 이 때, 메모리 장치에 배치되는 모델 정보는 스토리지 장치 내부의 포맷으로 포맷팅된 모델 정보일 수 있다. S241 단계에서, 스토리지 장치는 수신된 모델 정보의 배치 성공의 응답 코드를 전송할 수 있다.
반면, 수신된 모델 정보에 대응하는 모델의 신뢰도가 기존 모델의 신뢰도 미만이면, 스토리지 장치는 수신됨 모델 정보를 저장하지 않고, 기존의 모델 정보를 유지할 수 있다. S243 단계에서, 스토리지 장치는 수신된 모델 정보의 배치 실패의 응답 코드를 전송할 수 있다.
본 개시에 따른 스토리지 시스템은 특정 스토리지 장치에 다른 스토리지 장치의 새로운 모델 정보를 배치시킬 때, 기존에 실행되던 모델의 신뢰도와 새로운 모델의 신뢰도를 비교할 수 있고, 새로운 모델이 더 효율적이라고 판단될 때 새로운 모델 정보를 배치할 수 있다. 따라서, 스토리지 시스템은 스토리지 장치에 성능이 낮은 모델 정보를 저장하는 동작을 방지할 수 있고, 스토리지 장치의 기계 학습 모델의 성능이 보장될 수 있다.
도 12a 및 12b는 본 개시의 예시적 실시 예에 따른 스토리지 시스템의 동작 방법을 설명하기 위한 순서도이다. 예를 들어, 도 12a의 S320 단계 및 S330 단계는 스토리지 장치(10)의 프로세서가 메모리에 로딩된 모델 학습기를 실행함으로써 수행될 수 있고, 도 12b의 S420 단계 및 S430 단계는 스토리지 장치(10)의 프로세서가 메모리에 로딩된 모델 추론기를 실행함으로써 수행될 수 있다.
도 12a를 참조하면, S310 단계에서, 호스트 장치(20)는 스토리지 장치(10)로 모델 학습 커맨드를 전송할 수 있다. S320 단계에서, 스토리지 장치(10)는 모델 학습 커맨드에 응답하여 모델 정보를 메모리 장치로부터 독출할 수 있다. S330 단계에서, 스토리지 장치(10)는 독출된 모델 정보를 이용하여 모델 학습(훈련, trainin) 동작을 수행할 수 있다. 모델 학습 동작을 수행함에 따라 기계 학습 모델의 학습도가 증가되고 기계 학습 모델의 정확도가 증가될 수 있다. 본 개시에 따른 스토리지 시스템은 스토리지 장치(10) 내부의 기계 학습 모델을 학습할 수 있고, 모델 학습 동작을 주기적으로 수행할 수도 있다.
도 12b를 참조하면, S410 단계에서, 호스트 장치(20)는 스토리지 장치(10)로 모델 추론 커맨드를 전송할 수 있다. 예를 들어, 모델 추론 커맨드는 대응하는 기계 학습 모델을 활성화시키기 위한 커맨드일 수 있다.
S420 단계에서, 스토리지 장치(10)는 모델 추론 커맨드에 응답하여 모델 정보를 메모리 장치로부터 독출할 수 있다. S430 단계에서, 스토리지 장치(10)는 독출된 모델 정보를 이용하여 모델 추론 동작을 수행할 수 있다. 스토리지 장치(10)는 모델 추론 동작을 통해 호스트 장치(20)로부터의 액세스 요청에 따른 작업들을 스케줄링하거나, 스토리지 장치(10)의 동작을 위해 사용되는 다양한 문턱 값 및 파라미터들을 획득할 수 있다.
도 12a 및 도 12b에서 설명된 모델 학습 커맨드 및 모델 추론 커맨드 외에도 호스트 장치(20)는 기계 학습 모델과 관련된 다양한 커맨드들을 스토리지 장치(10)로 전송할 수 있다. 예를 들어, 호스트 장치(20)는 스토리지 장치(10)에 현재 다운로드된 기계 학습 모델들의 수 및 기계 학습 모델들의 정보를 획득하기 위한 커맨드를 스토리지 장치(10)로 전송할 수 있고, 스토리지 장치(10)는 상기 커맨드에 응답하여 현재 다운로드된 기계 학습 모델들의 수 및 기계 학습 모델들의 정보를 호스트 장치(20)로 전송할 수 있다.
다만, 본 개시에 따른 스토리지 장치(10)는 호스트 장치(20)로부터 모델 학습 커맨드를 수신하지 않더라도, 스스로 모델 학습 동작을 수행할 수도 있다. 예를 들어, 스토리지 장치(10)는 모델 학습도가 내부의 기준 학습도 미만인 것으로 판단하면, 내부에 저장된 기계 학습 모델에 대한 모델 학습 동작을 수행할 수 있고, 기계 학습 모델의 학습도가 증가되고 기계 학습 모델의 정확도가 증가될 수 있다.
또한 스토리지 장치(10)는 호스트 장치(20)로부터 모델 추론 커맨드를 수신하지 않더라도, 스스로 모델 추론 동작을 수행할 수도 있다. 예를 들어, 호스트 장치(20)는 내부 동작을 수행하기 위해 상기 내부 동작에 대응하는 학습 모델을 이용하여 모델 추론 동작을 수행할 수 있다.
도 13은 본 개시의 예시적 실시 예에 따른 스토리지 시스템이 적용된 시스템의 예시적 실시 예를 나타내는 블록도이다.
도 13을 참조하면, 스토리지 시스템(1000)은 호스트 장치(20) 및 스토리지 장치(10)를 포함할 수 있고, 호스트 장치(20)는 스토리지 장치(10)로부터 모델 정보를 수신할 수 있다. 호스트 장치(20)는 클라우드 시스템(2000)으로 모델 정보를 전송할 수 있다. 이 때, 클라우드 시스템(2000)으로 전송되는 모델 정보는 스토리지 장치(10)로부터 수신한 모델 정보를 클라우드 시스템(2000)에 대응하는 전송 포맷으로 포맷팅한 것일 수 있다.
클라우드 환경의 모델 저장소(3000)는 기계 학습 모델의 모델 정보를 관리할 수 있고, 스토리지 시스템(1000)의 요청에 따라 모델 정보를 제공할 수 있다. 스토리지 시스템(1000)은 모델 저장소(3000)로부터 모델 정보를 다운로드할 수 있다.
본 도면에서는 클라우드 시스템(2000)에 하나의 스토리지 시스템(1000)만이 연결된 것으로 도시되었으나, 클라우드 시스템(2000)에는 복수의 스토리지 시스템들이 연결될 수 있다. 클라우드 환경의 모델 저장소(3000)는 복수의 스토리지 시스템들의 종류별로 모델 정보를 관리할 수 있다. 따라서, 스토리지 시스템(1000) 내의 모델 정보는 다른 스토리지 시스템으로 전이가 가능하고, 또는 반대로 다른 스토리지 시스템의 모델 정보는 스토리지 시스템(1000)에서 다운 로드할 수 있다. 예를 들어, 스토리지 시스템(1000)의 수명이 다한 경우에는 클라우드 시스템(2000)을 통해 스토리지 시스템(1000)의 모델 정보를 다른 스토리지 시스템에서 재활용할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (20)
- 호스트 장치와 통신하는 스토리지 장치에 있어서,
기계 학습 모델의 모델 정보가 저장되는 메모리 장치; 및
상기 기계 학습 모델을 이용하여 상기 스토리지 장치의 동작을 제어하는 스토리지 컨트롤러를 포함하고,
상기 스토리지 컨트롤러는,
상기 호스트 장치로부터 모델 정보 추출을 위한 겟 커맨드가 수신되면, 상기 겟 커맨드에 응답하여 상기 모델 정보를 상기 호스트 장치로 전송하고,
상기 모델 정보는 상기 스토리지 컨트롤러의 모델 학습(training) 동작이 수행됨에 따라 변경되는 데이터인 것을 특징으로 하는 스토리지 장치. - 제1 항에 있어서,
상기 겟 커맨드는 커맨드 식별자 및 상기 기계 학습 모델의 식별자를 포함하는 것을 특징으로 하는 스토리지 장치. - 제1 항에 있어서,
상기 모델 정보는 모델 데이터 및 모델 메타 데이터를 포함하고,
상기 모델 데이터는 상기 기계 학습 모델의 모델 아키텍쳐 및 상기 기계 학습 모델의 모델 파라미터들을 포함하고,
상기 모델 메타 데이터는 상기 기계 학습 모델의 정확도 및 상기 기계 학습 모델의 학습도에 대한 정보를 포함하는 것을 특징으로 하는 스토리지 장치. - 제3 항에 있어서,
상기 스토리지 컨트롤러는,
상기 정확도 및 상기 학습도 중 적어도 하나에 기초하여 상기 기계 학습 모델의 신뢰도가 전송 조건을 만족하는지 판단하고,
상기 기계 학습 모델의 신뢰도가 전송 조건을 만족하면, 상기 모델 정보를 전송 포맷에 대응하도록 포맷팅하여 상기 호스트 장치로 전송하는 것을 특징으로 하는 스토리지 장치. - 제1 항에 있어서,
상기 스토리지 컨트롤러는,
상기 호스트 장치로부터 모델 정보 배치를 위한 풋 커맨드 및 새로운 모델 정보가 수신되면, 상기 풋 커맨드에 응답하여 상기 메모리 장치에 상기 새로운 모델 정보를 저장하는 것을 특징으로 하는 스토리지 장치. - 제5 항에 있어서,
상기 풋 커맨드는 커맨드 식별자, 상기 수신된 모델 정보를 배치하는 방식에 대한 정보를 포함하는 커맨드 옵션 및 상기 수신된 모델 정보에 대응하는 기계 학습 모델의 식별자를 포함하는 것을 특징으로 하는 스토리지 장치. - 제5 항에 있어서,
상기 스토리지 컨트롤러는,
상기 수신된 모델 정보의 모델 학습도가 기준 값 미만인 경우에는 수신된 모델 정보를 이용하여 상기 수신된 모델 정보에 대응하는 기계 학습 모델을 훈련시키고,
상기 기계 학습 모델을 훈련시킴에 따라 수정된 모델 정보를 상기 메모리 장치에 저장하는 것을 특징으로 하는 스토리지 장치. - 제5 항에 있어서,
상기 스토리지 컨트롤러는,
상기 수신된 모델 정보의 모델 신뢰도 및 상기 메모리 장치에 저장된 상기 모델 정보의 모델 신뢰도를 비교한 결과에 따라 상기 메모리 장치에 상기 새로운 모델 정보를 저장하는 것을 특징으로 하는 스토리지 장치. - 제1 항에 있어서,
상기 스토리지 컨트롤러는,
상기 호스트 장치로부터 모델 학습 커맨드가 수신되면, 상기 모델 학습 커맨드에 응답하여 상기 기계 학습 모델을 훈련시키는 것을 특징으로 하는 스토리지 장치. - 기계 학습 모델의 모델 정보가 각각 저장되는 제1 스토리지 장치 및 제2 스토리지 장치; 및
상기 제1 스토리지 장치 및 상기 제2 스토리지 장치의 동작을 관리하는 호스트 장치를 포함하고,
상기 호스트 장치는 상기 제1 스토리지 장치가 페일 상태인 경우, 상기 제1 스토리지 장치로 모델 정보 추출을 위한 겟 커맨드를 전송하고,
상기 제1 스토리지 장치는 상기 겟 커맨드에 응답하여 상기 제1 스토리지 장치에 저장된 상기 모델 정보를 추출하여 상기 호스트 장치로 전송하고,
상기 모델 정보는 상기 제1 스토리지 장치 내부에서의 모델 학습 동작이 수행됨에 따라 변경되는 데이터인 것을 특징으로 하는 스토리지 시스템. - 제10 항에 있어서,
상기 호스트 장치는,
상기 제1 스토리지 장치가 데이터의 독출 동작 및 데이터의 기입 동작이 불가능한 경우에 상기 제1 스토리지 장치로 모델 정보 추출을 위한 겟 커맨드를 전송하는 것을 특징으로 하는 스토리지 시스템. - 제10 항에 있어서,
상기 호스트 장치는,
상기 제1 스토리지 장치가 데이터의 독출 동작 및 데이터의 기입 동작 중 데이터의 독출 동작만이 가능하고 상기 제1 스토리지 장치에 포함된 배드 블록의 수가 문턱 값을 초과하는 경우에, 상기 제1 스토리지 장치로 모델 정보 추출을 위한 겟 커맨드를 전송하는 것을 특징으로 하는 스토리지 시스템. - 제10 항에 있어서,
상기 호스트 장치는 모델 정보 배치를 위한 풋 커맨드 및 상기 제1 스토리지 장치로부터 추출된 모델 정보를 상기 제2 스토리지 장치로 전송하는 것을 특징으로 하는 스토리지 시스템. - 제13 항에 있어서,
상기 제2 스토리지 장치는,
상기 호스트 장치로부터 수신된 모델 정보의 모델 학습도가 기준 값 미만인 경우에는 수신된 모델 정보를 이용하여 상기 수신된 모델 정보에 대응하는 기계 학습 모델을 훈련시키고,
상기 기계 학습 모델을 훈련시킴에 따라 수정된 모델 정보를 저장하는 것을 특징으로 하는 스토리지 시스템. - 제13 항에 있어서,
상기 제2 스토리지 장치는,
상기 호스트 장치로부터 수신된 모델 정보의 모델 신뢰도가 상기 제2 스토리지 장치에 저장된 모델 정보의 모델 신뢰도보다 높은 경우, 상기 호스트 장치로부터 수신된 모델 정보를 저장하고,
상기 호스트 장치로부터 수신된 모델 정보의 모델 신뢰도가 상기 제2 스토리지 장치에 저장된 모델 정보의 모델 신뢰도보다 낮은 경우, 상기 호스트 장치로 상기 풋 커맨드에 따른 배치 동작 실패의 응답 코드를 전송하는 것을 특징으로 하는 스토리지 시스템. - 복수의 스토리지 장치들 및 상기 스토리지 장치의 동작을 관리하는 호스트 장치를 포함하는 스토리지 시스템의 동작 방법에 있어서,
상기 호스트 장치가 상기 복수의 스토리지 장치들 중에서 기계 학습 모델의 모델 정보가 저장되는 특정 스토리지 장치를 페일 상태로 판단하는 단계;
상기 호스트 장치가 상기 특정 스토리지 장치로 모델 정보 추출을 위한 겟 커맨드를 전송하는 단계;
상기 특정 스토리지 장치가 상기 겟 커맨드에 응답하여 상기 모델 정보를 상기 호스트 장치로 전송하는 단계; 및
상기 호스트 장치가 상기 복수의 스토리지 장치들 중 상기 특정 스토리지 장치와 다른 스토리지 장치로 상기 모델 정보를 재배치하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법. - 제16 항에 있어서,
상기 특정 스토리지 장치를 페일 상태로 판단하는 단계는,
상기 특정 스토리지 장치가 기입 동작 수행이 가능한지 판단하는 단계;
상기 특정 스토리지 장치가 독출 동작 수행이 가능한지 판단하는 단계; 및
상기 특정 스토리지 장치가 기입 동작 및 독출 동작이 불가능한 경우에 상기 특정 스토리지 장치를 페일 상태로 판단하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법. - 제16 항에 있어서,
상기 모델 정보를 상기 호스트 장치로 전송하는 단계는,
상기 모델 정보에 포함된 상기 기계 학습 모델의 정확도 및 상기 기계 학습 모델의 학습도 중 적어도 하나에 기초하여 상기 기계 학습 모델의 신뢰도가 전송 조건을 만족하는지 판단하는 단계; 및
상기 기계 학습 모델의 신뢰도가 전송 조건을 만족하면, 상기 모델 정보를 전송 포맷에 대응하도록 포맷팅하여 상기 호스트 장치로 전송하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법. - 제16 항에 있어서,
상기 모델 정보를 재배치하는 단계는, 상기 호스트 장치가 상기 다른 스토리지 장치로 모델 정보 배치를 위한 풋 커맨드 및 상기 모델 정보를 전송하는 단계를 포함하고,
상기 다른 스토리지 장치가 상기 풋 커맨드에 응답하여 상기 모델 정보를 저장하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법. - 제19 항에 있어서,
상기 모델 정보를 저장하는 단계는,
상기 모델 정보를 이용하여 상기 기계 학습 모델을 훈련시키는 단계; 및
상기 기계 학습 모델을 훈련시킴에 따라 수정된 모델 정보를 저장하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200015210A KR102304929B1 (ko) | 2020-02-07 | 2020-02-07 | 모델 정보를 저장하는 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템 및 스토리지 시스템의 동작 방법 |
US17/032,198 US11740829B2 (en) | 2020-02-07 | 2020-09-25 | Storage device for storing model information, storage system including the storage device, and operating method of the storage system |
DE102020126409.7A DE102020126409A1 (de) | 2020-02-07 | 2020-10-08 | Speichervorrichtung zum Speichern von Modellinformationen, die Speichervorrichtung enthaltendes Speichersystem und Betriebsverfahren des Speichersystems |
CN202110164346.5A CN113254369A (zh) | 2020-02-07 | 2021-02-05 | 存储设备、包括其的存储***及该存储***的操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200015210A KR102304929B1 (ko) | 2020-02-07 | 2020-02-07 | 모델 정보를 저장하는 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템 및 스토리지 시스템의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210101062A KR20210101062A (ko) | 2021-08-18 |
KR102304929B1 true KR102304929B1 (ko) | 2021-09-24 |
Family
ID=76968856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200015210A KR102304929B1 (ko) | 2020-02-07 | 2020-02-07 | 모델 정보를 저장하는 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템 및 스토리지 시스템의 동작 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11740829B2 (ko) |
KR (1) | KR102304929B1 (ko) |
CN (1) | CN113254369A (ko) |
DE (1) | DE102020126409A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023085819A1 (en) * | 2021-11-12 | 2023-05-19 | Samsung Electronics Co., Ltd. | Method and system for adaptively streaming artificial intelligence model file |
KR102484073B1 (ko) * | 2021-11-22 | 2023-01-02 | 삼성전자주식회사 | 스토리지 시스템 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6892276B2 (en) | 2002-11-26 | 2005-05-10 | Lsi Logic Corporation | Increased data availability in raid arrays using smart drives |
US9239786B2 (en) | 2012-01-18 | 2016-01-19 | Samsung Electronics Co., Ltd. | Reconfigurable storage device |
US20160148115A1 (en) | 2014-11-26 | 2016-05-26 | Microsoft Technology Licensing | Easy deployment of machine learning models |
US10225365B1 (en) | 2014-12-19 | 2019-03-05 | Amazon Technologies, Inc. | Machine learning based content delivery |
US10254751B2 (en) * | 2015-06-05 | 2019-04-09 | Uptake Technologies, Inc. | Local analytics at an asset |
US20170169358A1 (en) | 2015-12-09 | 2017-06-15 | Samsung Electronics Co., Ltd. | In-storage computing apparatus and method for decentralized machine learning |
CN107316083B (zh) | 2017-07-04 | 2021-05-25 | 北京百度网讯科技有限公司 | 用于更新深度学习模型的方法和装置 |
KR20190043411A (ko) * | 2017-10-18 | 2019-04-26 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치를 포함하는 컴퓨팅 시스템, 그리고 스토리지 장치의 동작 방법 |
US10394706B2 (en) | 2017-11-02 | 2019-08-27 | Western Digital Technologies, Inc. | Non-volatile storage with adaptive command prediction |
US10459844B2 (en) | 2017-12-21 | 2019-10-29 | Western Digital Technologies, Inc. | Managing flash memory read operations |
US20190250998A1 (en) | 2018-02-14 | 2019-08-15 | Commvault Systems, Inc. | Machine-learning based data object retrieval |
WO2019173075A1 (en) | 2018-03-06 | 2019-09-12 | DinoplusAI Holdings Limited | Mission-critical ai processor with multi-layer fault tolerance support |
US10296258B1 (en) | 2018-03-09 | 2019-05-21 | Pure Storage, Inc. | Offloading data storage to a decentralized storage network |
CN110502184B (zh) | 2018-05-17 | 2021-01-05 | 杭州海康威视***技术有限公司 | 一种存储数据的方法、读取数据的方法、装置及*** |
KR102120983B1 (ko) | 2018-08-03 | 2020-06-10 | 에스케이텔레콤 주식회사 | LoRa 네트워크 서비스 방법 및 장치, LoRa 네트워크 단말장치의 통신 방법 |
US11010314B2 (en) * | 2018-10-30 | 2021-05-18 | Marvell Asia Pte. Ltd. | Artificial intelligence-enabled management of storage media access |
US11475255B2 (en) * | 2019-08-30 | 2022-10-18 | Kabushiki Kaisha Toshiba | Method for adaptive context length control for on-line edge learning |
-
2020
- 2020-02-07 KR KR1020200015210A patent/KR102304929B1/ko active IP Right Grant
- 2020-09-25 US US17/032,198 patent/US11740829B2/en active Active
- 2020-10-08 DE DE102020126409.7A patent/DE102020126409A1/de active Pending
-
2021
- 2021-02-05 CN CN202110164346.5A patent/CN113254369A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN113254369A (zh) | 2021-08-13 |
US11740829B2 (en) | 2023-08-29 |
KR20210101062A (ko) | 2021-08-18 |
US20210247924A1 (en) | 2021-08-12 |
DE102020126409A1 (de) | 2021-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10424388B2 (en) | Storage device, memory system, and read voltage decision method thereof | |
US10496312B2 (en) | Method of operating a storage device to compress or decompress data and a data storage system including the storage device | |
KR102675131B1 (ko) | 스토리지 장치 및 스토리지 장치의 동작 방법 | |
KR102682253B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
US11715538B2 (en) | Memory system processing request based on inference and operating method of the same | |
CN110928805B (zh) | 存储器***及其操作方法 | |
CN110825655A (zh) | 存储器件、存取数据的方法及管理数据的方法 | |
KR102304929B1 (ko) | 모델 정보를 저장하는 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템 및 스토리지 시스템의 동작 방법 | |
US20230004320A1 (en) | Method of managing debugging log in storage device | |
KR102634809B1 (ko) | 전자 장치 및 그것의 동작 방법 | |
KR102620727B1 (ko) | 전자 장치 | |
US20230315646A1 (en) | Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same | |
CN112181282A (zh) | 存储器***、存储器控制器及用于操作存储器***的方法 | |
KR20210055346A (ko) | 스토리지 장치 및 그 동작 방법 | |
KR20200121068A (ko) | 데이터 저장 장치 및 이의 동작 방법, 이를 위한 컨트롤러 | |
US20230229352A1 (en) | Host training indication for memory artificial intelligence | |
US20230069382A1 (en) | Managing host input/output in a memory system executing a table flush | |
KR20220130526A (ko) | 메모리 시스템 및 그 동작 방법 | |
KR20210152706A (ko) | 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 | |
US20230147773A1 (en) | Storage device and operating method | |
KR20210079894A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US12040020B2 (en) | Memory device, method of operating the same, and method of operating storage device including the same | |
US11562776B2 (en) | Performing read operations on grouped memory cells | |
US11822800B2 (en) | Storage system including host and storage device and operation method thereof | |
US20240143168A1 (en) | Storage device controlling garbage collection or wear leveling on the basis of timestamp, and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |