KR20250038465A - 매핑 정보를 저장하는 전자 장치, 및 그것의 동작하는 방법 - Google Patents

매핑 정보를 저장하는 전자 장치, 및 그것의 동작하는 방법 Download PDF

Info

Publication number
KR20250038465A
KR20250038465A KR1020230121212A KR20230121212A KR20250038465A KR 20250038465 A KR20250038465 A KR 20250038465A KR 1020230121212 A KR1020230121212 A KR 1020230121212A KR 20230121212 A KR20230121212 A KR 20230121212A KR 20250038465 A KR20250038465 A KR 20250038465A
Authority
KR
South Korea
Prior art keywords
storage device
request
host
completion
target data
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
KR1020230121212A
Other languages
English (en)
Inventor
지수영
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020230121212A priority Critical patent/KR20250038465A/ko
Priority to US18/612,575 priority patent/US12417045B2/en
Priority to EP24166838.3A priority patent/EP4524713A1/en
Priority to CN202410447460.2A priority patent/CN119620924A/zh
Publication of KR20250038465A publication Critical patent/KR20250038465A/ko
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 개시의 실시 예에 따르면, 전자 장치는 제1 스토리지 장치, 제2 스토리지 장치, 및 호스트 장치를 포함한다. 전자 장치의 동작하는 방법은, 제1 스토리지 장치에게 타겟 데이터의 메모리 동작을 가리키는 제1 요청을 제공하는 단계, 제1 요청에 기초하여 제2 스토리지 장치에게 메모리 동작의 리디렉션을 가리키는 제2 요청을 제공하는 단계, 제2 요청에 기초하여 메모리 동작을 수행하는 단계, 제1 스토리지 장치에게 메모리 동작이 수행되었음을 가리키는 제1 컴플리션을 제공하는 단계, 및 제1 컴플리션에 기초하여 호스트 장치에게 제2 컴플리션을 제공하는 단계를 포함한다. 제1 스토리지 장치는 타겟 데이터의 논리적 블록 어드레스(LBA) 및 제2 스토리지 장치 내의 타겟 데이터를 저장하는 물리적 블록을 가리키는 물리적 블록 어드레스(PBA)의 제1 매핑 정보를 저장한다.

Description

매핑 정보를 저장하는 전자 장치, 및 그것의 동작하는 방법{ELECTRONIC DEVICE STORING MAPPING INFORMATION AND METHOD OF OPERATING THE SAME}
본 개시는 스토리지 장치에 관한 것으로, 보다 상세하게는, 매핑 정보를 저장하는 전자 장치, 및 그것의 동작하는 방법에 관한 것이다.
메모리 장치는 쓰기 요청에 따라 데이터를 저장하고, 읽기 요청에 따라 저장된 데이터를 출력한다. 예를 들어, 메모리 장치는 DRAM(Dynamic Random Access Memory), SRAM(Static RAM), 등과 같이 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 휘발성 메모리 장치, 및 플래시 메모리 장치, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), 등과 같이 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 비-휘발성 메모리 장치로 구분된다. 비-휘발성 메모리 장치는 대용량 데이터를 저장하는 스토리지 장치로 사용될 수 있다.
최근, 데이터의 크기가 증가하고 그리고 스토리지 장치의 확장성이 요구됨에 따라, 호스트 장치는 복수의 스토리지 장치들을 사용할 수 있다. 특정 스토리지 장치에 대한 데이터 액세스가 집중되면, 이러한 스토리지 장치의 수명이 악화될 수 있거나 또는 데이터의 I/O(input/output) 속도가 지연될 수 있다. 호스트 장치가 복수의 스토리지 장치들의 로드 밸런싱을 직접적으로 관리한다면, 호스트 장치의 관리 부담이 발생할 수 있다. 이에 따라, 호스트 장치의 부담을 최소화하면서 복수의 스토리지 장치들 사이에서 데이터를 효율적으로 관리하는 기법이 요구될 수 있다.
본 개시의 일 실시 예에 따르면, 매핑 정보를 저장하는 전자 장치, 및 그것의 동작하는 방법이 제공된다.
본 개시의 일 실시 예에 따르면, 전자 장치는 제1 스토리지 장치, 제2 스토리지 장치, 및 호스트 장치를 포함한다. 상기 전자 장치의 동작하는 방법은, 상기 호스트 장치에 의해, 상기 제1 스토리지 장치에게 타겟 데이터의 메모리 동작을 가리키는 제1 요청을 제공하는 단계, 상기 제1 스토리지 장치에 의해, 상기 제1 요청에 기초하여 상기 제2 스토리지 장치에게 상기 메모리 동작의 리디렉션을 가리키는 제2 요청을 제공하는 단계, 상기 제2 스토리지 장치에 의해, 상기 제2 요청에 기초하여 상기 메모리 동작을 수행하는 단계, 상기 제2 스토리지 장치에 의해, 상기 제1 스토리지 장치에게 상기 메모리 동작이 수행되었음을 가리키는 제1 컴플리션을 제공하는 단계, 및 상기 제1 스토리지 장치에 의해, 상기 제1 컴플리션에 기초하여 상기 호스트 장치에게 제2 컴플리션을 제공하는 단계를 포함한다. 상기 제1 스토리지 장치는, 상기 호스트 장치로부터 상기 제1 요청을 수신하기 전에 또는 상기 제2 스토리지 장치로부터 상기 제1 컴플리션을 수신한 후에, 상기 타겟 데이터의 논리적 블록 어드레스(LBA) 및 상기 제2 스토리지 장치 내의 상기 타겟 데이터를 저장하는 물리적 블록을 가리키는 물리적 블록 어드레스(PBA)의 제1 매핑 정보를 저장한다.
본 개시의 일 실시 예에 따르면, 전자 장치는 제1 스토리지 장치, 제2 스토리지 장치, 및 호스트 장치를 포함한다. 상기 전자 장치의 동작하는 방법은, 상기 제1 및 제2 스토리지 장치들에 의해, 상기 제1 스토리지 장치의 제1 상태 정보 및 상기 제2 스토리지 장치의 제2 상태 정보를 공유하는 단계, 상기 호스트 장치에 의해, 상기 제1 스토리지 장치에게 타겟 데이터의 쓰기 동작을 가리키는 제1 요청을 제공하는 단계로서, 상기 제1 요청은 상기 타겟 데이터의 논리적 블록 어드레스(LBA)를 포함하는 것, 상기 제1 스토리지 장치에 의해, 상기 제1 요청, 상기 제1 상태 정보, 및 상기 제2 상태 정보에 기초하여 상기 제2 스토리지 장치에게 상기 쓰기 동작의 리디렉션을 가리키는 제2 요청을 제공하는 단계, 상기 제2 스토리지 장치에 의해, 상기 제2 요청에 기초하여 상기 쓰기 동작을 수행하는 단계, 상기 제2 스토리지 장치에 의해, 상기 제1 스토리지 장치에게 상기 쓰기 동작이 수행되었음을 가리키는 제1 컴플리션을 제공하는 단계로서, 상기 제1 컴플리션은 상기 제2 스토리지 장치 내의 상기 타겟 데이터를 저장하는 물리적 블록을 가리키는 물리적 블록 어드레스(PBA)를 포함하는 것, 상기 제1 스토리지 장치에 의해, 상기 제1 요청 및 상기 제1 컴플리션에 기초하여 상기 LBA 및 상기 제2 스토리지 장치의 상기 PBA의 매핑 정보를 저장하는 단계, 및 상기 제1 스토리지 장치에 의해, 상기 제1 컴플리션에 기초하여 상기 호스트 장치에게 제2 컴플리션을 제공하는 단계를 포함한다.
본 개시의 일 실시 예에 따르면, 전자 장치는, 제1 커맨드 관리자, 매핑 테이블, 및 제1 비-휘발성 메모리 장치를 포함하는 제1 스토리지 장치, 제2 커맨드 관리자 및 제2 비-휘발성 메모리 장치를 포함하는 제2 스토리지 장치, 및 타겟 데이터의 메모리 동작을 가리키는 제1 요청을 생성하도록 구성된 호스트 장치를 포함한다. 상기 제1 커맨드 관리자는 상기 제1 요청에 기초하여 상기 제2 스토리지 장치에게 상기 메모리 동작의 리디렉션을 가리키는 제2 요청을 제공하도록 구성된다. 상기 제2 커맨드 관리자는 상기 제2 요청에 기초하여 상기 메모리 동작을 수행하고 그리고 상기 제1 스토리지 장치에게 상기 메모리 동작이 수행되었음을 가리키는 제1 컴플리션을 제공하도록 구성된다. 상기 제1 커맨드 관리자는 상기 제1 컴플리션에 기초하여 상기 호스트 장치에게 제2 컴플리션을 제공하도록 더 구성된다. 그리고, 상기 매핑 테이블은 상기 제1 커맨드 관리자의 제어에 따라 상기 타겟 데이터의 논리적 블록 어드레스(LBA) 및 상기 제2 비-휘발성 메모리 장치 내의 상기 타겟 데이터를 저장하는 물리적 블록을 가리키는 물리적 블록 어드레스(PBA)의 매핑 정보를 저장하도록 구성된다.
본 개시의 실시 예들에 따르면, 매핑 정보를 저장하는 전자 장치, 및 그것의 동작하는 방법이 제공된다.
또한, 본 개시의 실시 예들에 따르면, 논리적 블록 어드레스 및 다른 스토리지 장치의 물리적 블록 어드레스의 매핑 정보를 사용하여 메모리 동작을 리디렉션 함으로써, 호스트 장치의 관리 부담 없이 워크로드를 여러 스토리지 장치들에게 분산하여 장치 수명이 향상된다.
도 1은 본 개시의 실시 예들에 따른 전자 장치의 블록도이다.
도 2는 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법을 설명하는 순서도이다.
도 3은 본 개시의 일부 실시 예들에 따라 도 1의 제1 스토리지 장치를 설명하는 블록도이다.
도 4는 본 개시의 일부 실시 예들에 따라 도 1의 제2 스토리지 장치를 설명하는 블록도이다.
도 5는 본 개시의 일부 실시 예들에 따른 전자 장치의 쓰기 동작을 설명하는 도면이다.
도 6은 본 개시의 일부 실시 예들에 따른 전자 장치의 읽기 동작을 설명하는 도면이다.
도 7은 본 개시의 일부 실시 예들에 따른 전자 장치의 삭제 동작을 설명하는 도면이다.
도 8은 본 개시의 일부 실시 예들에 따른 전자 장치의 블록도이다.
도 9는 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법을 설명하는 순서도이다.
도 10은 본 개시의 일부 실시 예들에 따른 CXL(Compute Express Link) 프로토콜을 지원하는 전자 장치의 블록도이다.
도 11은 본 개시의 일부 실시 예들에 따라 도 10의 전자 장치의 동작하는 방법을 설명하는 도면이다.
도 12는 본 개시의 일부 실시 예들에 따라 도 10의 CXL 인터페이스 회로를 설명하는 도면이다.
도 13은 본 개시의 일부 실시 예들에 따른 전자 장치의 블록도이다.
도 14는 본 개시의 일부 실시 예들에 따른 데이터 센터의 블록도이다.
이하에서, 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시의 실시 예들을 용이하게 실시할 수 있을 정도로, 본 개시의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 개시의 실시 예들에 따른 전자 장치의 블록도이다. 도 1을 참조하면, 전자 장치(1000)는 호스트 장치(1100), 복수의 스토리지 장치들(1210~12N0), 및 인터페이스 회로(1300)를 포함할 수 있다. 일부 실시 예들에서, 전자 장치(1000)는 다양한 정보를 처리하거나 저장하도록 구성된 컴퓨팅 시스템일 수 있다. 예를 들어, 전자 장치(1000)는 개인용 컴퓨터(PC), 노트북, 랩탑, 서버, 워크스테이션, 태블릿 PC, 스마트폰, 디지털 카메라, 블랙박스 등으로 구현될 수 있다.
호스트 장치(1100)는 전자 장치(1000)의 제반 동작을 제어할 수 있다. 호스트 장치(1100)는 복수의 스토리지 장치들(1210~12N0)과 통신할 수 있다. 예를 들어, 호스트 장치(1100)는 인터페이스 회로(1300)를 통해 복수의 스토리지 장치들(1210~12N0)에 데이터를 저장하거나, 인터페이스 회로(1300)를 통해 복수의 스토리지 장치들(1210~12N0)에 저장된 데이터를 읽거나, 또는 인터페이스 회로(1300)를 통해 복수의 스토리지 장치들(1210~12N0)에 저장된 데이터를 삭제할 수 있다. 호스트 장치(1100)는 CPU(Central Processing Unit), GPU(Graphic Processing Unit), NPU(Neural Processing Unit) 등과 같은 연산 장치로 구현될 수 있다.
복수의 스토리지 장치들(1210~12N0)은 제1 내지 제N 스토리지 장치들(1210~12N0)로도 지칭될 수 있다. N은 임의의 자연수이다. 제1 내지 제N 스토리지 장치들(1210~12N0)은 호스트 장치(1100)의 제어에 따라, 호스트 장치(1100)로부터 수신된 데이터를 저장하거나, 호스트 장치(1100)에게 저장된 데이터를 제공하거나, 또는 저장된 데이터를 삭제할 수 있다.
제1 스토리지 장치(1210)는 제1 스토리지 컨트롤러(1211) 및 제1 비-휘발성 메모리 장치(1212)를 포함할 수 있다. 제1 스토리지 컨트롤러(1211)는 제1 커맨드 관리자(1211a), 제1 상태 공유 테이블(1211b), 및 제1 매핑 테이블(1211c)을 포함할 수 있다.
일부 실시 예들에서, 제1 커맨드 관리자(1211a), 제1 상태 공유 테이블(1211b), 및 제1 매핑 테이블(1211c)의 각각은 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어의 조합에 의해 구현될 수 있다. 제1 커맨드 관리자(1211a), 제1 상태 공유 테이블(1211b), 및 제1 매핑 테이블(1211c) 중 적어도 일부가 소프트웨어로 구현되는 경우, 제1 스토리지 컨트롤러(1211)는 프로세서 및 휘발성 메모리 장치를 포함할 수 있고, 프로세서는 휘발성 메모리 장치에 로드된 명령어들을 실행함으로써 소프트웨어로 구현된 구성들의 기능들을 구현할 수 있다.
제1 커맨드 관리자(1211a)는 호스트 장치(1100)로부터 수신된 요청을 처리할 수 있다. 예를 들어, 제1 커맨드 관리자(1211a)는 호스트 장치(1100)로부터 메모리 동작을 가리키는 요청을 수신하고, 수신된 요청을 처리하고, 그리고 수신된 요청이 처리되었음을 가리키는 응답을 호스트 장치(1100)에게 반환할 수 있다. 메모리 동작은 쓰기 동작, 읽기 동작, 및 삭제 동작 등과 같은 데이터 처리에 관련된 동작들 중 하나일 수 있다. 요청이 처리되었음을 가리키는 응답은 컴플리션으로도 지칭될 수 있다.
일부 실시 예들에서, 제1 커맨드 관리자(1211a)는 호스트 장치(1100)로부터 수신된 요청을 다른 스토리지 장치에게 리디렉션할 수 있다. 예를 들어, 제1 커맨드 관리자(1211a)는 호스트 장치(1100)로부터 쓰기 동작을 가리키는 제1 요청을 수신하고, 제1 상태 공유 테이블(1211b)의 상태 정보를 참조하여 제2 내지 제N 스토리지 장치들(1220~12N0) 중 제2 스토리지 장치(1220)를 선택하고, 그리고 제2 스토리지 장치(1220)에게 쓰기 동작의 리디렉션을 가리키는 제2 요청을 제공할 수 있다. 제1 커맨드 관리자(1211a)는 제2 스토리지 장치(1220)로부터 리디렉션된 동작이 처리되었음을 가리키는 제1 컴플리션을 수신하고, 그리고 제1 응답에 기초하여 호스트 장치(1100)에게 쓰기 동작이 처리되었음을 가리키는 제2 컴플리션을 제공할 수 있다.
또 다른 예로서, 제1 커맨드 관리자(1211a)는 호스트 장치(1100)로부터 리디렉션된 제2 스토리지 장치(1220)에 저장된 데이터의 읽기 동작을 가리키는 제1 요청을 수신하고, 제1 매핑 테이블(1211c)의 매핑 정보를 참조하여 제2 스토리지 장치(1220)의 식별 정보를 조회하고, 그리고 식별 정보에 기초하여 제2 스토리지 장치(1220)에게 읽기 동작의 리디렉션을 가리키는 제2 요청을 제공할 수 있다. 제1 커맨드 관리자(1211a)는 제2 스토리지 장치(1220)로부터 리디렉션된 동작이 처리되었음을 가리키는 제1 컴플리션을 수신하고, 그리고 제1 응답에 기초하여 호스트 장치(1100)에게 읽기 동작이 처리되었음을 가리키는 제2 컴플리션을 제공할 수 있다.
또 다른 예로서, 제1 커맨드 관리자(1211a는 호스트 장치(1100)로부터 리디렉션된 제2 스토리지 장치(1220)에 저장된 데이터의 삭제 동작을 가리키는 제1 요청을 수신하고, 제1 매핑 테이블(1211c)의 매핑 정보를 참조하여 제2 스토리지 장치(1220)의 식별 정보를 조회하고, 그리고 식별 정보에 기초하여 제2 스토리지 장치(1220)에게 삭제 동작의 리디렉션을 가리키는 제2 요청을 제공할 수 있다. 제1 커맨드 관리자(1211a)는 제2 스토리지 장치(1220)로부터 리디렉션된 동작이 처리되었음을 가리키는 제1 컴플리션을 수신하고, 그리고 제1 응답에 기초하여 호스트 장치(1100)에게 삭제 동작이 처리되었음을 가리키는 제2 컴플리션을 제공할 수 있다.
제1 상태 공유 테이블(1211b)은 복수의 스토리지 장치들(1210~12N0)의 공유된 상태 정보를 저장할 수 있다. 상태 정보는 대응하는 스토리지 장치가 호스트 장치(1100)의 요청을 처리하기에 적합한지 여부를 나타내는 정보일 수 있다. 예를 들어, 상태 정보는 대응하는 스토리지 장치의 수명(lifetime) 정보, 리텐션(retention) 정보, P/E(program/erase) 사이클 정보, 스토리지 용량 정보, 메모리 액세스 횟수 정보 중 적어도 하나를 포함할 수 있다.
보다 상세하게는, 제1 커맨드 관리자(1211a)는 제1 스토리지 장치(1210)의 제1 상태 정보를 생성하고, 제1 상태 정보를 제1 상태 공유 테이블(1211b)에 저장하고, 그리고 제1 상태 정보를 제2 내지 제N 스토리지 장치들(1220~12N0)에게 제공할 수 있다. 제1 커맨드 관리자(1211a)는 제2 내지 제N 스토리지 장치들(1220~12N0)로부터 제2 내지 제N 상태 정보를 수신하고 그리고 제2 내지 제N 상태 정보를 제1 상태 공유 테이블(1211b)에 저장할 수 있다. 제1 상태 공유 테이블(1211b)에 저장된 제1 내지 제N 상태 정보는 제1 내지 제N 스토리지 장치들(1210~12N0) 중 리디렉션을 위한 스토리지 장치를 선택하는데 사용될 수 있다.
제1 매핑 테이블(1211c)은 어드레스의 매핑 정보를 저장할 수 있다. 예를 들어, 제1 매핑 테이블(1211c)은 제1 커맨드 관리자(1211a)의 제어에 따라, 논리적 블록 어드레스(LBA; logical block address) 및 물리적 블록 어드레스(PBA; physical block address)의 매핑 정보를 저장할 수 있다. LBA는 호스트 장치(1100)에 의해 식별 가능한 어드레스일 수 있다. PBA는 LBA에 대응하는 데이터가 저장된 물리적 블록을 식별하기 위한 어드레스일 수 있다. 제1 매핑 테이블(1211c)은 L2P(logical-to-physical) 매핑 테이블로도 지칭될 수 있다.
일부 실시 예들에서, 제1 매핑 테이블(1211c)은 리디렉션된 다른 스토리지 장치의 매핑 정보를 더 저장할 수 있다. 예를 들어, 제1 커맨드 관리자(1211a)가 호스트 장치(1100)의 요청을 다른 스토리지 장치로 리디렉션하는 경우, 제1 커맨드 관리자(1211a)는 LBA 및 리디렉션된 스토리지 장치의 PBA의 매핑 정보를 제1 매핑 테이블(1211c)에 저장할 수 있다. 다시 말해서, 제1 매핑 테이블(1211c)은 제1 스토리지 장치(1210) 내의 물리적 블록에 대한 매핑 정보뿐만 아니라, 리디렉션된 다른 스토리지 장치의 물리적 블록에 대한 매핑 정보도 제1 매핑 테이블(1211c)에 저장할 수 있다.
일부 실시 예들에서, 제1 매핑 테이블(1211c)은 리디렉션의 요청을 제공한 다른 스토리지 장치의 매핑 정보를 더 저장할 수 있다. 예를 들어, 제2 스토리지 장치(1220)의 제2 커맨드 관리자(1221a)가 호스트 장치(1100)의 요청을 제1 스토리지 장치(1210)로 리디렉션 하는 경우, 제1 커맨드 관리자(1211a)는 제2 스토리지 장치(1220)의 식별 정보 및 제1 스토리지 장치(1210) 내의 물리적 블록에 대응하는 PBA의 매핑 정보를 제1 매핑 테이블(1211c)에 저장할 수 있거나, 또는 제2 스토리지 장치(1220)로부터 리디렉션된 데이터의 LBA 및 제1 스토리지 장치(1210) 내의 물리적 블록에 대응하는 PBA의 매핑 정보를 제1 매핑 테이블(1211c)에 저장할 수 있다.
제1 비-휘발성 메모리 장치(1212)는 제1 스토리지 컨트롤러(1211)의 제어에 따라 데이터를 저장할 수 있다. 제1 비-휘발성 메모리 장치(1212)는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지할 수 있다. 제1 비-휘발성 메모리 장치(1212)는 복수의 물리적 블록들을 포함할 수 있다. 물리적 블록들의 각각은 데이터를 저장할 수 있는 메모리 셀들의 집합일 수 있다. 물리적 블록들은 대응하는 PBA에 의해 식별될 수 있다. 제1 비-휘발성 메모리 장치(1212)는 플래시 메모리 장치, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), 등으로 구현될 수 있다.
제2 스토리지 장치(1220)는 제2 스토리지 컨트롤러(1221) 및 제2 비-휘발성 메모리 장치(1222)를 포함할 수 있다. 제2 스토리지 컨트롤러(1221)는 제2 커맨드 관리자(1221a), 제2 상태 공유 테이블(1221b), 및 제2 매핑 테이블(1221c)을 포함할 수 있다. 제2 커맨드 관리자(1221a), 제2 상태 공유 테이블(1221b), 제2 매핑 테이블(1221c), 및 제2 비-휘발성 메모리 장치(1222)는 각각 제1 커맨드 관리자(1211a), 제1 상태 공유 테이블(1211b), 제1 매핑 테이블(1211c), 및 제1 비-휘발성 메모리 장치(1212)와 유사하게 동작할 수 있다.
마찬가지로, 제N 스토리지 장치(12N0)는 제N 스토리지 컨트롤러(12N1) 및 제N 비-휘발성 메모리 장치(12N2)를 포함할 수 있다. 제N 스토리지 컨트롤러(12N1)는 제N 커맨드 관리자(12N1a), 제N 상태 공유 테이블(12N1b), 및 제N 매핑 테이블(12N1c)을 포함할 수 있다. 제N 커맨드 관리자(12N1a), 제N 상태 공유 테이블(12N1b), 제N 매핑 테이블(12N1c), 및 제N 비-휘발성 메모리 장치(12N2)는 각각 제1 커맨드 관리자(1211a), 제1 상태 공유 테이블(1211b), 제1 매핑 테이블(1211c), 및 제1 비-휘발성 메모리 장치(1212)와 유사하게 동작할 수 있다.
인터페이스 회로(1300)는 호스트 장치(1100) 및 제1 내지 제N 스토리지 장치들(1210~12N0)과 연결될 수 있다. 인터페이스 회로(1300)는 호스트 장치(1100) 및 제1 내지 제N 스토리지 장치들(1210~12N0) 중 임의의 조합에게 인터페이스를 제공할 수 있다.
일부 실시 예들에서, 인터페이스 회로(1300)는 CXL(Compute Express Link) 인터페이스 회로일 수 있다. 예를 들어, 호스트 장치(1100) 및 제1 내지 제N 스토리지 장치들(1210~12N0) 중 임의의 조합은 인터페이스 회로(1300)를 통해서 CXL 프로토콜에 따라 서로 통신할 수 있다.
상술된 바와 같이, 본 개시의 실시 예들에 따르면, 복수의 스토리지 장치들은 상태 정보를 공유할 수 있고, 그리고 공유된 상태 정보에 기초하여 호스트 장치의 요청을 리디렉션할 수 있다. 스토리지 장치는 LBA 및 리디렉션된 다른 스토리지 장치의 PBA의 매핑 정보를 저장함으로써, 호스트 장치의 관리 부담 없이 워크로드를 여러 스토리지 장치들에게 분산시킬 수 있다. 다시 말해서, 스토리지 장치들은 호스트 장치의 개입 없이 로드 밸런싱을 수행할 수 있다. 로드 밸런싱에 의해, 스토리지 장치들의 장치 수명이 향상될 수 있고, 그리고 병목에 따른 데이터 지연이 억제될 수 있다.
도 2는 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법을 설명하는 순서도이다. 도 2를 참조하면, 전자 장치(1000)는 호스트 장치(1100), 제1 스토리지 장치(1210), 및 제2 스토리지 장치(1220)를 포함할 수 있다. 호스트 장치(1100), 제1 스토리지 장치(1210), 및 제2 스토리지 장치(1220)는 도 1의 호스트 장치(1100), 제1 스토리지 장치(1210), 및 제2 스토리지 장치(1220)에 대응할 수 있다.
S110 단계에서, 제1 및 제2 스토리지 장치들(1210, 1220)은 제1 스토리지 장치(1210)의 제1 상태 정보 및 제2 스토리지 장치(1220)의 제2 상태 정보를 공유할 수 있다. 보다 상세하게는, 제1 스토리지 장치(1210)는 제1 상태 정보를 저장하고 그리고 제1 상태 정보를 제2 스토리지 장치(1220)에게 제공할 수 있다. 제1 상태 정보는 제1 스토리지 장치(1210)의 수명 정보, 열화 정보, 여유 용량 정보 등과 같은 정보 중 적어도 하나를 포함할 수 있다. 제2 스토리지 장치(1220)는 제2 상태 정보를 저장하고 그리고 제2 상태 정보를 제1 스토리지 장치(1210)에게 제공할 수 있다. 제2 상태 정보는 제2 스토리지 장치(1220)의 수명 정보, 열화 정보, 여유 용량 정보 등과 같은 정보 중 적어도 하나를 포함할 수 있다.
일부 실시 예들에서, 제1 및 제2 스토리지 장치들(1210, 1220)은 임의로 상태 정보를 공유할 수 있다. 예를 들어, 제1 및 제2 스토리지 장치들(1210, 1220)는 주기적으로 또는 임의로 상태 정보를 공유할 수 있다. S110 단계는 S120 내지 S170 단계들 사이에서 더 수행될 수 있거나, S120 내지 S170 단계들과 병렬적으로 더 수행될 수 있거나, 또는 S170 단계 이후에 더 수행될 수 있다.
S120 단계에서, 호스트 장치(1100)는 타겟 데이터의 메모리 동작을 가리키는 제1 요청(RQ1)을 제1 스토리지 장치(1210)에게 제공할 수 있다. 메모리 동작은 쓰기 동작, 읽기 동작, 삭제 동작 등과 같은 스토리지 장치에서 수행되는 동작을 가리킬 수 있다. 타겟 데이터는 호스트 장치(1100)에 의해 식별 가능한 LBA를 가질 수 있다. 제1 요청(RQ1)은 메모리 동작의 타입 정보 및 타겟 데이터의 LBA를 포함할 수 있다. 메모리 동작이 쓰기 동작 또는 읽기 동작인 경우, 제1 요청(RQ1)은 호스트 장치(1100)의 호스트 버퍼 메모리 장치의 호스트 버퍼 어드레스를 더 포함할 수 있다.
S130 단계에서, 제1 스토리지 장치(1210)는 리디렉션 스토리지 장치를 결정할 수 있다. 예를 들어, 제1 요청(RQ1)의 메모리 동작이 쓰기 동작인 경우, 제1 스토리지 장치(1210)는 S110 단계에서 공유된 제1 상태 정보 및 제2 상태 정보에 기초하여, 제1 및 제2 스토리지 장치들(1210, 1220) 중 제2 스토리지 장치(1220)를 리디렉션 스토리지 장치로 선택할 수 있다.
또 다른 예로서, 제1 요청(RQ1)의 메모리 동작이 읽기 동작 또는 삭제 동작인 경우, 제1 스토리지 장치(1210)는 매핑 테이블에 저장된 매핑 정보를 참조하여, 리디렉션 스토리지 장치인 제2 스토리지 장치(1220)의 식별 정보를 조회하고, 그리고 조회된 식별 정보에 기초하여 제1 및 제2 스토리지 장치들(1210, 1220) 중 제2 스토리지 장치(1220)를 리디렉션 스토리지 장치로 선택할 수 있다.
S140 단계에서, 제1 스토리지 장치(1210)는 메모리 동작의 리디렉션을 가리키는 제2 요청(RQ2)을 리디렉션 스토리지 장치로 선택된 제2 스토리지 장치(1220)에게 제공할 수 있다. 제2 요청(RQ2)은 메모리 동작의 타입 정보를 포함할 수 있다. 제2 요청(RQ2)은 타겟 데이터의 LBA 또는 제2 요청(RQ2)을 제공하는 제1 스토리지 장치(1210)의 식별 정보 중 적어도 하나를 더 포함할 수 있다. 메모리 동작이 쓰기 동작 또는 읽기 동작인 경우, 제2 요청(RQ2)은 호스트 장치(1100)의 호스트 버퍼 메모리 장치의 호스트 버퍼 어드레스를 더 포함할 수 있다.
일부 실시 예들에서, 제1 스토리지 장치(1210)는 P2P(peer-to-peer) 방식으로 도 1의 인터페이스 회로(1300)를 통해 제2 스토리지 장치(1220)에게 제2 요청(RQ2)을 제공할 수 있다. 제2 요청(RQ2)의 전송은 호스트 장치(1100)의 부담을 야기하지 않을 수 있다.
S150 단계에서, 제2 스토리지 장치(1220)는 타겟 데이터의 메모리 동작을 수행할 수 있다. 예를 들어, 메모리 동작이 쓰기 동작인 경우, 제2 스토리지 장치(1220)는 제2 요청(RQ2)의 호스트 버퍼 어드레스에 기초하여 호스트 장치(1100) 및 제2 스토리지 장치(1220) 사이의 데이터 채널을 활성화하고, 활성화된 데이터 채널을 통해서 쓰기 동작을 위한 타겟 데이터를 수신하고, 그리고 타겟 데이터를 저장할 수 있다.
또 다른 예로서, 메모리 동작이 읽기 동작인 경우, 제2 스토리지 장치(1220)는 제2 요청(RQ2)의 호스트 버퍼 어드레스에 기초하여 호스트 장치(1100) 및 제2 스토리지 장치(1220) 사이의 데이터 채널을 활성화하고, 그리고 활성화된 데이터 채널을 통해서 읽기 동작을 위한 타겟 데이터를 제공할 수 있다.
또 다른 예로서, 메모리 동작이 삭제 동작인 경우, 제2 스토리지 장치(1220)는 타겟 데이터가 저장된 물리적 블록의 PBA의 매핑 정보를 삭제할 수 있다. 이 후, 제2 스토리지 장치(1220)는 내부 운영 정책에 따라 물리적 블록의 물리적 소거 동작을 수행할 수 있다. 또는, 소거 동작이 수행되는 소거 블록의 단위가 물리적 블록의 단위보다 큰 경우, 제2 스토리지 장치(1220)는 물리적 블록을 포함하는 소거 블록의 데이터가 모두 유효하지 않게 되면, 소거 블록에 대한 물리적 소거 동작을 수행할 수 있다.
S160 단계에서, 제2 스토리지 장치(1220)는 제1 스토리지 장치(1210)에게 제1 컴플리션(COMP1)을 제공할 수 있다. 제1 컴플리션(COMP1)은 제2 요청(RQ2)이 처리되었음을 가리키는 응답 신호일 수 있다. 예를 들어, 메모리 동작이 쓰기 동작인 경우, 제1 컴플리션(COMP1)은 쓰기 동작에 따라 타겟 데이터가 저장된 물리적 블록의 PBA를 포함할 수 있다. 제1 스토리지 장치(1210)는 제1 요청(RQ1) 및 제1 컴플리션(COMP1)에 기초하여 LBA 및 제2 스토리지 장치(1220)의 PBA의 매핑 정보를 저장할 수 있다.
또 다른 예로서, 메모리 동작이 삭제 동작인 경우, 제1 스토리지 장치(1210)는 제1 요청(RQ1) 및 제1 컴플리션(COMP1)에 기초하여 LBA 및 제2 스토리지 장치(1220)의 PBA의 매핑 정보를 삭제할 수 있다.
일부 실시 예들에서, 제2 스토리지 장치(1220)는 P2P 방식으로 도 1의 인터페이스 회로(1300)를 통해 제1 스토리지 장치(1210)에게 제1 컴플리션(COMP1)을 제공할 수 있다. 제1 컴플리션(COMP1)의 전송은 호스트 장치(1100)의 부담을 야기하지 않을 수 있다.
일부 실시 예들에서, 제1 스토리지 장치(1210)는 호스트 장치(1100)로부터 제1 요청(RQ1)을 수신하기 전에 또는 제2 스토리지 장치(1220)로부터 제1 컴플리션(COMP1)을 수신한 후에, 제1 요청(RQ1)의 타겟 데이터의 LBA 및 제2 스토리지 장치(1220) 내의 타겟 데이터를 저장하는 물리적 블록을 가리키는 PBA의 매핑 정보를 저장할 수 있다.
예를 들어, 제1 요청(RQ1)의 메모리 동작이 쓰기 동작인 경우, 제1 스토리지 장치(1210)는 제2 스토리지 장치(1220)로부터 수신된 제1 컴플리션(COMP1)에 기초하여, 타겟 데이터의 LBA 및 제2 스토리지 장치(1220) 내의 타겟 데이터를 저장하는 물리적 블록을 가리키는 PBA의 매핑 정보를 저장할 수 있다.
또 다른 예로서, 제1 요청(RQ1)의 메모리 동작이 읽기 동작 또는 삭제 동작인 경우, 제1 스토리지 장치(1210)는 호스트 장치(1100)로부터 제1 요청(RQ1)을 수신하기 전에 타겟 데이터의 이전 쓰기 동작에서 제2 스토리지 장치(1220)로부터 대응하는 컴플리션을 수신하고, 그리고 수신된 컴플리션에 기초하여 타겟 데이터의 LBA 및 제2 스토리지 장치(1220) 내의 타겟 데이터를 저장하는 물리적 블록을 가리키는 PBA의 매핑 정보를 저장할 수 있다.
S170 단계에서, 제1 스토리지 장치(1210)는 제1 컴플리션(COMP1)에 기초하여 호스트 장치(1100)에게 제2 컴플리션(COMP2)을 제공할 수 있다. 제2 컴플리션(COMP2)은 제1 요청(RQ1)이 처리되었음을 가리키는 응답 신호일 수 있다.
도 3은 본 개시의 일부 실시 예들에 따라 도 1의 제1 스토리지 장치를 설명하는 블록도이다. 도 1 및 도 3을 참조하면, 제1 스토리지 장치(1210)는 인터페이스 회로(1300)를 통해 호스트 장치(1100) 및 제2 내지 제N 스토리지 장치들(1220~12N0)과 통신할 수 있다. 본 개시의 이해를 돕기 위해, 도 3에서 제1 스토리지 장치(1210)는 호스트 장치(1100)로부터의 요청을 제2 스토리지 장치(1220)로 리디렉션하는 장치인 것으로 가정한다.
제1 스토리지 장치(1210)는 제1 스토리지 컨트롤러(1211) 및 제1 비-휘발성 메모리 장치(1212)를 포함할 수 있다. 제1 스토리지 컨트롤러(1211)는 제1 커맨드 관리자(1211a), 제1 상태 공유 테이블(1211b), 및 제1 매핑 테이블(1211c)을 포함할 수 있다.
제1 커맨드 관리자(1211a)는 인터페이스 회로(1300)를 통해 호스트 장치(1100)로부터 타겟 데이터의 메모리 동작을 가리키는 제1 요청을 수신할 수 있다. 제1 요청은 타겟 데이터의 타겟 논리적 블록 어드레스(LBAx)를 포함할 수 있다. 제1 커맨드 관리자(1211a)는 제1 요청에 기초하여 제1 상태 공유 테이블(1211b)을 조회하고 그리고 메모리 동작의 리디렉션을 가리키는 제2 요청을 인터페이스 회로(1300)를 통해 제2 스토리지 장치(1220)에게 제공할 수 있다.
제1 상태 공유 테이블(1211b)은 복수의 스토리지 장치들(1210~12N0)의 상태 정보를 저장할 수 있다. 보다 상세하게는, 제1 상태 공유 테이블(1211b)은 서로 매핑 관계를 갖는 식별 정보(IDI) 항목 및 상태 정보(SI) 항목을 포함할 수 있다. 식별 정보(IDI) 항목을 참조하면, 복수의 스토리지 장치들(1210~12N0)의 복수의 식별 정보(S1~SN)가 나열될 수 있다. 식별 정보는 복수의 스토리지 장치들(1210~12N0) 중 대응하는 스토리지 장치를 식별하는데 사용될 수 있다. 상태 정보(SI) 항목을 참조하면, 복수의 스토리지 장치들(1210~12N0)에 대응하는 복수의 상태 정보(SI1~SIN)가 나열될 수 있다. 상태 정보는 대응하는 스토리지 장치의 수명 정보, 열화 정보, 여유 용량 정보 등과 같은 정보 중 적어도 하나를 포함할 수 있다.
제1 커맨드 관리자(1211a)는 인터페이스 회로(1300)를 통해서 제2 스토리지 장치(1220)로부터 제1 컴플리션을 수신할 수 있다. 제1 컴플리션은 리디렉션을 가리키는 제2 요청에 대응할 수 있다. 메모리 동작이 쓰기 동작인 경우, 제1 컴플리션은 제2 스토리지 장치(1220)에서 리디렉션된 데이터가 저장된 물리적 블록의 제1 물리적 블록 어드레스(PBA1)를 포함할 수 있다. 제1 커맨드 관리자(1211a)는 제1 컴플리션에 기초하여 제1 매핑 테이블(1211c)을 업데이트할 수 있다.
제1 매핑 테이블(1211c)은 서로 매핑 관계를 갖는 제1 어드레스(ADD1) 항목 및 제2 어드레스(ADD2) 항목을 포함할 수 있다. 제1 어드레스(ADD1) 항목 및 제2 어드레스(ADD2) 항목은 각각 LBA 및 PBA를 저장하는데 사용될 수 있다. 그러나, 제1 어드레스(ADD1) 항목 및 제2 어드레스(ADD2) 항목은 다른 어드레스 또는 다른 정보를 저장하는데 사용될 수도 있다.
예를 들어, 제1 매핑 테이블(1211c)은 제1 논리적 블록 어드레스(LBA1) 및 제1 물리적 블록 어드레스(PBA1)의 매핑 정보를 저장할 수 있다. 제1 매핑 테이블(1211c)은 제2 논리적 블록 어드레스(LBA2) 및 제2 물리적 블록 어드레스(PBA2)의 매핑 정보를 저장할 수 있다. 제1 매핑 테이블(1211c)은 타겟 데이터의 타겟 논리적 블록 어드레스(LBAx) 및 리디렉션 스토리지 장치인 제2 스토리지 장치(1220)의 제1 물리적 블록 어드레스(PBA1)의 매핑 정보를 저장할 수 있다. 이 때, 제2 스토리지 장치(1220)의 제1 물리적 블록 어드레스(PBA1)를 위한 제2 어드레스(ADD2) 항목의 정보는 제2 스토리지 장치(1220)를 가리키는 제2 식별 정보(S2) 및 제2 스토리지 장치(1220)의 물리적 블록을 가리키는 제1 물리적 블록 어드레스(PBA1)를 모두 포함할 수 있다.
즉, 제1 매핑 테이블(1211c)은 제1 스토리지 장치(1210) 내의 물리적 블록의 PBA에 대한 매핑 정보뿐만 아니라 제2 스토리지 장치(1220) 내의 물리적 블록의 PBA에 대한 매핑 정보도 저장할 수 있다.
제1 커맨드 관리자(1211a)는 제1 비-휘발성 메모리 장치(1212)에 저장된 데이터를 관리할 수 있다. 제1 비-휘발성 메모리 장치(1212)는 복수의 물리적 블록들(PBK1~PBKK)을 포함할 수 있다. K는 임의의 자연수이다. 제1 커맨드 관리자(1211a)는 제1 비-휘발성 메모리 장치(1212)의 복수의 물리적 블록들(PBK1~PBKK)에 데이터를 저장하고, 그리고 제1 상태 공유 테이블(1211b) 및 제1 매핑 테이블(1211c)을 업데이트할 수 있다. 또한, 제1 커맨드 관리자(1211a)는 제1 매핑 테이블(1211c)의 대응하는 매핑 정보를 참조하여 제1 비-휘발성 메모리 장치(1212)의 복수의 물리적 블록들(PBK1~PBKK) 중 대응하는 물리적 블록에 저장된 데이터를 읽을 수 있다.
도 4는 본 개시의 일부 실시 예들에 따라 도 1의 제2 스토리지 장치를 설명하는 블록도이다. 도 1 및 도 4를 참조하면, 제2 스토리지 장치(1220)는 인터페이스 회로(1300)를 통해 호스트 장치(1100) 및 제1 그리고 제3 내지 제N 스토리지 장치들(1210, 1230~12N0)과 통신할 수 있다. 본 개시의 이해를 돕기 위해, 도 4에서 제2 스토리지 장치(1220)는 제1 스토리지 장치(1210)로부터 리디렉션된 요청을 처리하는 장치인 것으로 가정한다.
제2 스토리지 장치(1220)는 제2 스토리지 컨트롤러(1221) 및 제2 비-휘발성 메모리 장치(1222)를 포함할 수 있다. 제2 스토리지 컨트롤러(1221)는 제2 커맨드 관리자(1221a), 제2 상태 공유 테이블(1221b), 제2 매핑 테이블(1221c), 및 버퍼 메모리 장치(1221d)를 포함할 수 있다. 제2 비-휘발성 메모리 장치(1222)는 복수의 물리적 블록들(PBK1~PBKK)을 포함할 수 있다. 제2 상태 공유 테이블(1221b)은 도 3의 제1 상태 공유 테이블(1211b)과 유사하므로 이에 대한 상세한 설명은 생략된다.
제1 스토리지 장치(1210)는 호스트 장치(1100)로부터 타겟 데이터의 메모리 동작을 가리키는 제1 요청을 수신하고 그리고 제1 요청의 리디렉션을 가리키는 제2 요청을 생성할 수 있다. 제2 커맨드 관리자(1221a)는 인터페이스 회로(1300)를 통해 제1 스토리지 장치(1210)로부터 제2 요청을 수신할 수 있다.
제2 커맨드 관리자(1221a)는 제2 요청에 기초하여 타겟 데이터의 메모리 동작을 수행할 수 있다. 예를 들어, 메모리 동작이 쓰기 동작인 경우, 제2 커맨드 관리자(1221a)는 제2 요청의 호스트 버퍼 어드레스에 기초하여, 버퍼 메모리 장치(1221d) 및 호스트 장치(1100)의 호스트 버퍼 메모리 장치 사이의 데이터 채널을 활성화할 수 있다. 데이터 채널은 인터페이스 회로(1300) 상에 구현될 수 있다.
버퍼 메모리 장치(1221d)는 제2 커맨드 관리자(1221a)의 제어에 따라 호스트 장치(1100)로부터 활성화된 데이터 채널을 통해서 쓰기 동작에 대응하는 타겟 데이터를 수신할 수 있다. 제2 커맨드 관리자(1221a)는 버퍼 메모리 장치(1221d)에 로드된 타겟 데이터를 제2 비-휘발성 메모리 장치(1222)의 제1 물리적 블록(PBK1)에 저장할 수 있다. 제2 커맨드 관리자(1221a)는 제1 물리적 블록(PBK1)의 제1 물리적 블록 어드레스(PBA1)의 매핑 정보를 제2 매핑 테이블(1221c)에 저장할 수 있다.
보다 상세하게는, 제2 커맨드 관리자(1221a)는 리디렉션을 위한 제2 요청(RQ2)을 제공한 제1 스토리지 장치(1210)를 가리키는 제1 식별 정보(S1) 및 타겟 데이터를 저장하는 제1 물리적 블록(PBK1)를 가리키는 제1 물리적 블록 어드레스(PBA1)의 매핑 정보를 제2 매핑 테이블(1221c)에 저장할 수 있다.
그러나, 본 개시의 범위는 이에 제한되지 않으며, 제2 매핑 테이블(1221c)에 저장된 매핑 정보는 도 4에서 도시된 것과 다르게 구현될 수도 있다. 예를 들어, 제2 커맨드 관리자(1221a)는 제2 요청 및 내부 운영 정책에 기초하여 제1 물리적 블록 어드레스(PBA1)의 매핑 정보를 위한 LBA를 할당하고 그리고 할당된 LBA 및 제1 물리적 블록 어드레스(PBA1)의 매핑 정보를 제2 매핑 테이블(1221c)에 저장할 수 있다. 할당된 LBA는 제1 요청의 타겟 데이터의 타겟 논리적 블록 어드레스와 동일할 수 있거나, 또는 타겟 논리적 블록 어드레스와 다르게 새로 할당된 별도의 어드레스일 수 있다.
또는, 제2 커맨드 관리자(1221a)는 제2 매핑 테이블(1221c) 내에서 제1 물리적 블록 어드레스(PBA1)와 매핑되는 값으로써 제1 식별 정보(S1) 및 할당된 LBA 모두를 함께 저장할 수도 있다.
다시 제2 커맨드 관리자(1221a)를 참조하면, 메모리 동작이 읽기 동작인 경우, 제2 커맨드 관리자(1221a)는 제2 요청에 기초하여 제2 매핑 테이블(1221c)에서 타겟 데이터가 저장된 제1 물리적 블록(PBK1)을 가리키는 제1 물리적 블록 어드레스(PBA1)를 조회하고, 제1 물리적 블록 어드레스(PBA1)에 기초하여 제2 비-휘발성 메모리 장치(1222)의 제1 물리적 블록(PBK1)의 타겟 데이터를 버퍼 메모리 장치(1221d)로 로드하고, 그리고 제2 요청의 호스트 버퍼 어드레스에 기초하여 버퍼 메모리 장치(1221d) 및 호스트 장치(1100)의 호스트 버퍼 메모리 장치 사이의 데이터 채널을 활성화할 수 있다. 데이터 채널은 인터페이스 회로(1300) 상에 구현될 수 있다. 버퍼 메모리 장치(1221d)는 제2 커맨드 관리자(1221a)의 제어에 따라 호스트 장치(1100)에게 활성화된 데이터 채널을 통해서 읽기 동작에 대응하는 타겟 데이터를 제공할 수 있다.
또 다른 예로서, 메모리 동작이 삭제 동작인 경우, 제2 커맨드 관리자(1221a)는 제2 요청에 기초하여 제2 매핑 테이블(1221c)에서 타겟 데이터가 저장된 제1 물리적 블록(PBK1)을 가리키는 제1 물리적 블록 어드레스(PBA1)를 조회하고, 제1 물리적 블록 어드레스(PBA1) 및 제1 식별 정보(S1)의 매핑 관계를 삭제할 수 있다.
도 5는 본 개시의 일부 실시 예들에 따른 전자 장치의 쓰기 동작을 설명하는 도면이다. 도 5를 참조하면, 전자 장치(1000)는 쓰기 동작을 수행할 수 있다. 전자 장치(1000)는 호스트 장치(1100), 제1 스토리지 장치(1210), 제2 스토리지 장치(1220), 및 인터페이스 회로(1300)를 포함할 수 있다.
호스트 장치(1100)는 호스트 버퍼 메모리 장치를 포함할 수 있다. 호스트 버퍼 메모리 장치는 쓰기 동작을 위한 타겟 데이터를 저장할 수 있다. 타겟 데이터는 타겟 논리적 블록 어드레스(LBAx) 및 호스트 버퍼 어드레스를 가질 수 있다. 타겟 논리적 블록 어드레스(LBAx)는 호스트 장치(1100)에 의해 식별 가능한 논리적 어드레스일 수 있다. 호스트 버퍼 어드레스는 데이터 통신을 위해 호스트 버퍼 메모리 장치 내에서 타겟 데이터를 식별하는데 사용될 수 있다.
제1 스토리지 장치(1210)는 제1 스토리지 컨트롤러(1211) 및 제1 비-휘발성 메모리 장치(1212)를 포함할 수 있다. 제1 스토리지 컨트롤러(1211)는 제1 커맨드 관리자(1211a), 제1 상태 공유 테이블(1211b), 및 제1 매핑 테이블(1211c)을 포함할 수 있다. 제1 상태 공유 테이블(1211b)은 식별 정보(IDI) 항목 및 상태 정보(SI) 항목을 포함할 수 있다. 제1 상태 공유 테이블(1211b)은 제1 및 제2 스토리지 장치들(1210, 1220)이 주기적으로 또는 임의로 상태 정보를 공유함으로써 업데이트될 수 있다. 제1 매핑 테이블(1211c)은 제1 어드레스(ADD1) 항목 및 제2 어드레스(ADD2) 항목을 포함할 수 있다.
제2 스토리지 장치(1220)는 제2 스토리지 컨트롤러(1221) 및 제2 비-휘발성 메모리 장치(1222)를 포함할 수 있다. 제2 스토리지 컨트롤러(1221)는 제2 커맨드 관리자(1221a), 제2 상태 공유 테이블(1221b), 제2 매핑 테이블(1221c), 및 버퍼 메모리 장치(1221d)를 포함할 수 있다. 제2 상태 공유 테이블(1221b)은 제1 상태 공유 테이블(1211b)과 유사한 방식으로 업데이트될 수 있다. 제2 매핑 테이블(1221c)은 제1 어드레스(ADD1) 항목 및 제2 어드레스(ADD2) 항목을 포함할 수 있다. 제2 비-휘발성 메모리 장치(1222)는 복수의 물리적 블록들(PBK1~PBKK)을 포함할 수 있다.
인터페이스 회로(1300)는 호스트 장치(1100), 제1 스토리지 장치(1210), 및 제2 스토리지 장치(1220) 중 임의의 조합 사이의 인터페이스를 제공할 수 있다.
이하에서, 전자 장치(1000)의 쓰기 동작이 설명될 것이다.
제1 동작(①에서, 호스트 장치(1100)는 타겟 데이터의 쓰기 동작을 가리키는 제1 요청(RQ1)을 제1 스토리지 장치(1210)에게 제공할 수 있다. 제1 요청(RQ1)은 타겟 데이터의 타겟 논리적 블록 어드레스(LBAx) 및 호스트 버퍼 어드레스를 포함할 수 있다.
제2 동작(②)에서, 제1 커맨드 관리자(1211a)는 제1 요청(RQ1)에 응답하여, 제1 상태 공유 테이블(1211b)의 제1 상태 정보(SI1) 및 제2 상태 정보(SI2)를 조회하고, 그리고 제1 및 제2 스토리지 장치들(1210, 1220) 중 제2 스토리지 장치(1220)를 리디렉션 스토리지 장치로 선택할 수 있다. 제1 커맨드 관리자(1211a)는 리디렉션 스토리지 장치로 선택된 제2 스토리지 장치(1220)에게 타겟 데이터의 쓰기 동작의 리디렉션을 가리키는 제2 요청(RQ2)을 제공할 수 있다. 제2 요청(RQ2)은 호스트 버퍼 어드레스를 포함할 수 있다.
제3 동작(③)에서, 호스트 장치(1100)는 제2 스토리지 장치(1220)에게 쓰기 동작에 대응하는 타겟 데이터를 제공할 수 있다. 보다 상세하게는, 제2 커맨드 관리자(1221a)는 제2 요청(RQ2)의 호스트 버퍼 어드레스에 기초하여 호스트 장치(1100)의 호스트 버퍼 메모리 장치 및 제2 스토리지 장치(1220)의 버퍼 메모리 장치(1221d) 사이의 데이터 채널을 활성화할 수 있다. 버퍼 메모리 장치(1221d)는 제2 커맨드 관리자(1221a)의 제어에 따라 활성화된 데이터 채널을 통해서 호스트 버퍼 메모리 장치로부터 타겟 데이터를 수신할 수 있다. 제2 커맨드 관리자(1221a)는 버퍼 메모리 장치(1221d)에 버퍼링된 타겟 데이터를 제2 비-휘발성 메모리 장치(1222)의 제1 물리적 블록(PBK1)에 저장할 수 있다.
일부 실시 예들에서, 타겟 데이터를 제1 물리적 블록(PBK1)에 저장하는 것은 매핑 정보를 저장하는 것을 포함할 수 있다. 예를 들어, 제2 커맨드 관리자(1221a)는 버퍼 메모리 장치(1221d)에 버퍼링된 타겟 데이터를 제2 비-휘발성 메모리 장치(1222)의 제1 물리적 블록(PBK1)에 저장한 후, 제2 매핑 테이블(1221c) 내에 제1 스토리지 장치(1210)를 가리키는 제1 식별 정보(S1) 및 제1 물리적 블록(PBK1)을 가리키는 제1 물리적 블록 어드레스(PBA1)의 매핑 정보를 저장할 수 있다.
일부 실시 예들에서, 제2 커맨드 관리자(1221a)는 제2 요청(RQ2) 및 내부 운영 정책에 기초하여 제1 물리적 블록 어드레스(PBA1)의 매핑 정보를 위한 별도의 LBA를 새롭게 할당할 수 있다. 예를 들어, 제2 커맨드 관리자(1221a)는 제1 물리적 블록(PBK1)에 타겟 데이터를 저장한 후, 별도의 할당된 LBA 및 제1 물리적 블록(PBK1)을 가리키는 제1 물리적 블록 어드레스(PBA1)의 매핑 정보를 제2 매핑 테이블(1221c)에 저장할 수 있다.
제4 동작(④)에서, 제2 커맨드 관리자(1221a)는 제2 요청(RQ2)이 처리되었음을 가리키는 제1 컴플리션(COMP1)을 제1 스토리지 장치(1210)에게 제공할 수 있다. 제1 컴플리션(COMP1)은 타겟 데이터가 저장된 제1 물리적 블록(PBK1)을 가리키는 제1 물리적 블록 어드레스(PBA1)를 포함할 수 있다.
제5 동작(⑤)에서, 제1 커맨드 관리자(1211a)는 제1 요청(RQ1) 및 제1 컴플리션(COMP1)에 기초하여 제1 매핑 테이블(1211c) 내에 타겟 데이터의 타겟 논리적 블록 어드레스(LBAx) 및 제2 스토리지 장치(1220)의 제1 물리적 블록 어드레스(PBA1)의 매핑 정보를 저장할 수 있다. 이 때, 제2 어드레스(ADD2) 항목의 정보는 제2 스토리지 장치(1220)를 가리키는 제2 식별 정보(S2) 및 제2 스토리지 장치(1220)의 물리적 블록을 가리키는 제1 물리적 블록 어드레스(PBA1)를 모두 포함할 수 있다. 제1 커맨드 관리자(1211a)는 제1 매핑 테이블(1211c)을 업데이트한 후, 제1 요청(RQ1)이 처리되었음을 가리키는 제2 컴플리션(COMP2)을 호스트 장치(1100)에게 제공할 수 있다.
도 6은 본 개시의 일부 실시 예들에 따른 전자 장치의 읽기 동작을 설명하는 도면이다. 도 6을 참조하면, 전자 장치(1000)는 읽기 동작을 수행할 수 있다. 전자 장치(1000)는 호스트 장치(1100), 제1 스토리지 장치(1210), 제2 스토리지 장치(1220), 및 인터페이스 회로(1300)를 포함할 수 있다. 호스트 장치(1100), 제1 스토리지 장치(1210), 제2 스토리지 장치(1220), 및 인터페이스 회로(1300)는 도 5의 호스트 장치(1100), 제1 스토리지 장치(1210), 제2 스토리지 장치(1220), 및 인터페이스 회로(1300)와 유사하므로, 이에 대한 상세한 설명은 생략된다.
제1 스토리지 장치(1210)는 타겟 데이터의 읽기 동작을 가리키는 제1 요청(RQ1)을 수신하기 전에, 타겟 데이터의 타겟 논리적 블록 어드레스(LBAx) 및 제2 스토리지 장치(1220) 내의 타겟 데이터를 저장하는 제1 물리적 블록(PBK1)을 가리키는 제1 물리적 블록 어드레스(PBA1)의 매핑 정보를 저장할 수 있다.
제2 스토리지 장치(1220)는, 제1 스토리지 장치(1210)가 타겟 데이터의 읽기 동작을 가리키는 제1 요청(RQ1)을 수신하기 전에, 타겟 데이터를 제1 물리적 블록(PBK1)에 저장할 수 있다.
이하에서, 전자 장치(1000)의 읽기 동작이 설명될 것이다.
제1 동작(①에서, 호스트 장치(1100)는 타겟 데이터의 읽기 동작을 가리키는 제1 요청(RQ1)을 제1 스토리지 장치(1210)에게 제공할 수 있다. 타겟 데이터는 리디렉션된 이전 쓰기 동작에서 제2 스토리지 장치(1220)의 제2 비-휘발성 메모리 장치(1222)의 제1 물리적 블록(PBK1)에 저장된 데이터일 수 있다. 제1 요청(RQ1)은 타겟 데이터의 타겟 논리적 블록 어드레스(LBAx) 및 호스트 버퍼 어드레스를 포함할 수 있다.
제2 동작(②)에서, 제1 커맨드 관리자(1211a)는 제1 요청(RQ1)에 응답하여, 제1 매핑 테이블(1211c)의 타겟 논리적 블록 어드레스(LBAx)의 매핑 정보를 조회하고, 그리고 매핑 정보에 기초하여 타겟 데이터는 리디렉션 스토리지 장치인 제2 스토리지 장치(1220)에 저장된 것으로 결정할 수 있다. 제1 커맨드 관리자(1211a)는 제1 요청(RQ1) 및 조회된 매핑 정보에 기초하여 리디렉션 스토리지 장치인 제2 스토리지 장치(1220)에게 타겟 데이터의 읽기 동작의 리디렉션을 가리키는 제2 요청(RQ2)을 제공할 수 있다. 제2 요청(RQ2)은 호스트 버퍼 어드레스를 포함할 수 있다.
제3 동작(③)에서, 제2 스토리지 장치(1220)는 호스트 장치(1100)에게 읽기 동작에 대응하는 타겟 데이터를 제공할 수 있다. 보다 상세하게는, 제2 커맨드 관리자(1221a)는 제2 요청(RQ2)에 기초하여 제2 매핑 테이블(1221c)에 저장된 매핑 정보로부터 제1 물리적 블록 어드레스(PBA1)를 획득하고, 그리고 제1 물리적 블록 어드레스(PBA1)에 기초하여 제2 비-휘발성 메모리 장치(1222)의 제1 물리적 블록(PBK1)에 저장된 타겟 데이터를 버퍼 메모리 장치(1221d)로 로드할 수 있다. 이 후, 제2 커맨드 관리자(1221a)는 제2 요청(RQ2)의 호스트 버퍼 어드레스에 기초하여 호스트 장치(1100)의 호스트 버퍼 메모리 장치 및 제2 스토리지 장치(1220)의 버퍼 메모리 장치(1221d) 사이의 데이터 채널을 활성화할 수 있다. 버퍼 메모리 장치(1221d)는 제2 커맨드 관리자(1221a)의 제어에 따라 활성화된 데이터 채널을 통해서 호스트 버퍼 메모리 장치에게 타겟 데이터를 제공할 수 있다.
제4 동작(④)에서, 제2 커맨드 관리자(1221a)는 제2 요청(RQ2)이 처리되었음을 가리키는 제1 컴플리션(COMP1)을 제1 스토리지 장치(1210)에게 제공할 수 있다.
제5 동작(⑤)에서, 제1 커맨드 관리자(1211a)는 제1 컴플리션(COMP1)에 기초하여, 제1 요청(RQ1)이 처리되었음을 가리키는 제2 컴플리션(COMP2)을 호스트 장치(1100)에게 제공할 수 있다.
도 7은 본 개시의 일부 실시 예들에 따른 전자 장치의 삭제 동작을 설명하는 도면이다. 도 7을 참조하면, 전자 장치(1000)는 삭제 동작을 수행할 수 있다. 전자 장치(1000)는 호스트 장치(1100), 제1 스토리지 장치(1210), 제2 스토리지 장치(1220), 및 인터페이스 회로(1300)를 포함할 수 있다. 호스트 장치(1100), 제1 스토리지 장치(1210), 제2 스토리지 장치(1220), 및 인터페이스 회로(1300)는 도 5의 호스트 장치(1100), 제1 스토리지 장치(1210), 제2 스토리지 장치(1220), 및 인터페이스 회로(1300)와 유사하므로, 이에 대한 상세한 설명은 생략된다.
제1 스토리지 장치(1210)는 타겟 데이터의 삭제 동작을 가리키는 제1 요청(RQ1)을 수신하기 전에, 타겟 데이터의 타겟 논리적 블록 어드레스(LBAx) 및 제2 스토리지 장치(1220) 내의 타겟 데이터를 저장하는 제1 물리적 블록(PBK1)을 가리키는 제1 물리적 블록 어드레스(PBA1)의 매핑 정보를 저장할 수 있다.
제2 스토리지 장치(1220)는, 제1 스토리지 장치(1210)가 타겟 데이터의 삭제 동작을 가리키는 제1 요청(RQ1)을 수신하기 전에, 타겟 데이터를 제1 물리적 블록(PBK1)에 저장할 수 있다.
이하에서, 전자 장치(1000)의 삭제 동작이 설명될 것이다.
제1 동작(①에서, 호스트 장치(1100)는 타겟 데이터의 삭제 동작을 가리키는 제1 요청(RQ1)을 제1 스토리지 장치(1210)에게 제공할 수 있다. 타겟 데이터는 리디렉션된 이전 쓰기 동작에서 제2 스토리지 장치(1220)의 제2 비-휘발성 메모리 장치(1222)의 제1 물리적 블록(PBK1)에 저장된 데이터일 수 있다. 제1 요청(RQ1)은 타겟 데이터의 타겟 논리적 블록 어드레스(LBAx)를 포함할 수 있다.
제2 동작(②)에서, 제1 커맨드 관리자(1211a)는 제1 요청(RQ1)에 응답하여, 제1 매핑 테이블(1211c)의 타겟 논리적 블록 어드레스(LBAx)의 매핑 정보를 조회하고, 그리고 매핑 정보에 기초하여 타겟 데이터는 리디렉션 스토리지 장치인 제2 스토리지 장치(1220)에 저장된 것으로 결정할 수 있다. 제1 커맨드 관리자(1211a)는 제1 요청(RQ1) 및 조회된 매핑 정보에 기초하여 리디렉션 스토리지 장치인 제2 스토리지 장치(1220)에게 타겟 데이터의 삭제 동작의 리디렉션을 가리키는 제2 요청(RQ2)을 제공할 수 있다.
제3 동작(③)에서, 제2 스토리지 장치(1220)는 타겟 데이터의 삭제 동작을 수행할 수 있다. 보다 상세하게는, 제2 커맨드 관리자(1221a)는 제2 요청(RQ2)에 기초하여 제2 매핑 테이블(1221c)에서 타겟 데이터가 저장된 제1 물리적 블록(PBK1)의 제1 물리적 블록 어드레스(PBA1)에 대한 매핑 정보를 삭제할 수 있다. 즉, 제2 커맨드 관리자(1221a)는 타겟 데이터의 L2P 매핑 정보를 삭제할 수 있다. 이 후, 제4 및 제5 동작들(④, ⑤)과 별도로, 제2 커맨드 관리자(1221a)는 내부 운영 정책에 따라 제1 물리적 블록(PBK1)의 물리적 소거 동작을 수행할 수 있다.
제4 동작(④)에서, 제2 커맨드 관리자(1221a)는 제2 요청(RQ2)이 처리되었음을 가리키는 제1 컴플리션(COMP1)을 제1 스토리지 장치(1210)에게 제공할 수 있다.
제5 동작(⑤)에서, 제1 커맨드 관리자(1211a)는 제1 컴플리션(COMP1)에 기초하여 제1 매핑 테이블(1211c) 내에 타겟 데이터의 타겟 논리적 블록 어드레스(LBAx) 및 제2 스토리지 장치(1220)의 제1 물리적 블록 어드레스(PBA1)의 매핑 정보를 삭제할 수 있다. 제1 커맨드 관리자(1211a)는 제1 매핑 테이블(1211c)에서 타겟 논리적 블록 어드레스(LBAx)에 대한 매핑 정보를 삭제한 후, 제1 요청(RQ1)이 처리되었음을 가리키는 제2 컴플리션(COMP2)을 호스트 장치(1100)에게 제공할 수 있다.
도 8은 본 개시의 일부 실시 예들에 따른 전자 장치의 블록도이다. 도 8을 참조하면, 전자 장치(2000)는 제1 내지 제M 호스트 장치들(2110~21M0), 제1 내지 제N 스토리지 장치들(2210~22N0), 및 인터페이스 회로(2300)를 포함할 수 있다. M은 임의의 자연수이다. 제1 내지 제N 스토리지 장치들(2210~22N0) 및 인터페이스 회로(2300)는 도 1의 제1 내지 제N 스토리지 장치들(1210~12N0) 및 인터페이스 회로(1300)에 대응할 수 있다. 제1 내지 제M 호스트 장치들(2110~21M0)의 각각은 도 1의 호스트 장치(1100)와 유사하게 동작할 수 있다.
일부 실시 예들에서, 복수의 스토리지 장치들은 서로 다른 호스트 장치들로부터의 요청들을 리디렉션할 수 있다. 예를 들어, 제1 호스트 장치(2110)는 제1 데이터의 제1 메모리 동작을 가리키는 제1 요청을 제1 스토리지 장치(2210)에게 제공할 수 있다. 제1 스토리지 장치(2210)는 제1 요청을 제2 스토리지 장치(2220)에게 리디렉션할 수 있다. 제2 스토리지 장치(2220)에 의해 리디렉션된 제1 요청이 처리된 후, 제1 내지 제N 스토리지 장치들(2210~22N0)은 상태 정보를 공유할 수 있다. 이 후, 제2 호스트 장치(2120)는 제2 데이터의 제2 메모리 동작을 가리키는 제2 요청을 제2 스토리지 장치(2220)에게 제공할 수 있다. 제2 스토리지 장치(2210)는 공유된 상태 정보에 기초하여, 제2 요청을 제1 및 제3 내지 제N 스토리지 장치들(2210, 2230~22N0) 중 하나로 리디렉션할 수 있다.
상술된 바와 같이, 본 개시의 실시 예들에 따르면, 복수의 스토리지 장치들(2210~22N0)은 하나의 호스트 장치로부터 제공된 요청을 리디렉션할 뿐만 아니라, 복수의 호스트 장치들(2110~21M0)로부터 제공된 요청들을 리디렉션할 수 있다. 이에 따라, 전자 장치(2000) 내에서 복수의 호스트 장치들(2110~21M0) 중 일부가 제거되거나 또는 다른 호스트 장치가 추가되더라도, 복수의 스토리지 장치들(2210~22N0)은 호스트 장치의 관리 부담 또는 설계 변경 없이 효율적으로 워크로드를 분산할 수 있다.
도 9는 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법을 설명하는 순서도이다. 도 9를 참조하면, 전자 장치(2000)는 제1 호스트 장치(2110), 제2 호스트 장치(2120), 제1 스토리지 장치(2210), 및 제2 스토리지 장치(2220)를 포함할 수 있다. 제1 스토리지 장치(2210) 및 제2 스토리지 장치(2220)는 상태 정보를 공유할 수 있다.
S211 단계에서, 제1 호스트 장치(2110)는 제1 데이터의 제1 메모리 동작을 가리키는 제1 요청(RQ1)을 제1 스토리지 장치(2210)에게 제공할 수 있다. 예를 들어, 제1 메모리 동작은 쓰기 동작일 수 있다.
S212 단계에서, 제1 스토리지 장치(2210)는 상태 정보에 기초하여 리디렉션 스토리지 장치를 결정할 수 있다. 예를 들어, 제1 및 제2 스토리지 장치들(2210, 2220)은 S212 단계를 수행하기 전에 제1 스토리지 장치(2210)의 제1 상태 정보 및 제2 스토리지 장치(2220)의 제2 상태 정보를 서로 공유할 수 있다. 제1 스토리지 장치(2210)는 제1 및 제2 상태 정보에 기초하여 제1 및 제2 스토리지 장치들(2210, 2220) 중 제2 스토리지 장치(2220)를 리디렉션 스토리지 장치로 결정할 수 있다.
S213 단계에서, 제1 스토리지 장치(2210)는 제1 메모리 동작의 리디렉션을 가리키는 제2 요청(RQ2)을 제2 스토리지 장치(2220)에게 제공할 수 있다.
S214 단계에서, 제2 스토리지 장치(2220)는 제2 요청(RQ2)에 기초하여 제1 데이터의 제1 메모리 동작을 수행할 수 있다. 예를 들어, 제1 메모리 동작은 쓰기 동작일 수 있다. 제2 스토리지 장치(2220)는 제2 요청(RQ2)에 포함된 호스트 버퍼 어드레스에 기초하여 제1 호스트 장치(2110) 및 제2 스토리지 장치(2220) 사이의 데이터 채널을 활성화하고, 활성화된 데이터 채널을 통해서 제1 데이터를 수신하고, 그리고 제2 스토리지 장치(2220)의 비-휘발성 메모리 장치에 제1 데이터를 저장할 수 있다. 제2 스토리지 장치(2220)는 제2 요청(RQ2) 및 내부 운영 정책에 기초하여 매핑 정보를 저장하기 위한 LBA를 할당하고, 그리고 할당된 LBA 및 제1 데이터가 저장된 물리적 블록을 가리키는 PBA의 매핑 정보를 저장할 수 있다.
S215 단계에서, 제2 스토리지 장치(2220)는 제2 요청(RQ2)에 따른 제1 메모리 동작이 수행되었음을 가리키는 제1 컴플리션(COMP1)을 제1 스토리지 장치(2210)에게 제공할 수 있다.
S216 단계에서, 제1 스토리지 장치(2210)는 제1 컴플리션(COMP1)에 기초하여 제1 호스트 장치(2110)에게 제2 컴플리션(COMP2)을 제공할 수 있다.
S221 단계에서, 제2 호스트 장치(2120)는 제2 데이터의 제2 메모리 동작을 가리키는 제3 요청(RQ3)을 제2 스토리지 장치(2220)에게 제공할 수 있다. 예를 들어, 제2 메모리 동작은 쓰기 동작일 수 있다. 제3 요청(RQ3)은 제2 데이터의 LBA를 포함할 수 있다.
일부 실시 예들에서, 제2 스토리지 장치(2220)의 매핑 테이블에 저장된 제1 데이터의 LBA는 제3 요청(RQ3)의 제2 데이터의 LBA와 동일할 수 있다. 예를 들어, S214 단계에서, 제2 스토리지 장치(2220)는 제2 요청(RQ2) 및 내부 운영 정책에 기초하여 제1 데이터의 매핑 정보를 저장하기 위한 LBA를 할당할 수 있다. 할당된 LBA는 S221 단계의 제3 요청(RQ3)의 제2 데이터의 LBA와 동일할 수 있다.
S222 단계에서, 제2 스토리지 장치(2220)는 제3 요청(RQ3) 및 매핑 정보에 기초하여 리디렉션 스토리지 장치를 결정할 수 있다. 예를 들어, 제3 요청(RQ3)의 제2 데이터의 LBA는 제2 스토리지 장치(2220)의 매핑 테이블에 저장된 제1 데이터를 위한 LBA와 동일할 수 있다. 제2 스토리지 장치(2220)는 제3 요청(RQ3)의 제2 데이터의 LBA와 동일한 LBA에 대한 매핑 정보를 이미 저장했으므로, 제3 요청(RQ3)의 리디렉션이 요구되는 것으로 결정할 수 있다. 제2 스토리지 장치(2220)는 매핑 테이블 내에 저장된 매핑 정보에 기초하여 제1 스토리지 장치(2210)를 리디렉션 스토리지 장치로 결정할 수 있다.
그러나, 본 개시의 범위는 이에 제한되지 않으며, 제2 스토리지 장치(2220)는 리디렉션을 가리키는 제2 요청(RQ2)을 제공하는 제1 스토리지 장치(2210) 외에 다른 스토리지 장치(예를 들어, 제3 스토리지 장치)를 리디렉션 스토리지 장치로 결정할 수도 있다.
S223 단계에서, 제2 스토리지 장치(2220)는 제2 메모리 동작의 리디렉션을 가리키는 제4 요청(RQ4)을 제1 스토리지 장치(2210)에게 제공할 수 있다.
S224 단계에서, 제1 스토리지 장치(2210)는 제4 요청(RQ4)에 기초하여 제2 데이터의 제2 메모리 동작을 수행할 수 있다. 제2 메모리 동작은 S214 단계의 제1 메모리 동작과 유사하게 수행될 수 있다.
S225 단계에서, 제1 스토리지 장치(2210)는 제4 요청(RQ4)에 따른 제2 메모리 동작이 수행되었음을 가리키는 제3 컴플리션(COMP3)을 제2 스토리지 장치(2220)에게 제공할 수 있다.
S226 단계에서, 제2 스토리지 장치(2220)는 제3 컴플리션(COMP3)에 기초하여 제2 호스트 장치(2120)에게 제4 컴플리션(COMP4)을 제공할 수 있다.
도 10은 본 개시의 일부 실시 예들에 따른 CXL 프로토콜을 지원하는 전자 장치의 블록도이다. 도 10을 참조하면, 전자 장치(3000)는 CXL 프로토콜을 지원할 수 있다. 전자 장치(3000)는 제1 내지 제M 호스트 장치들(3110~31M0), 제1 내지 제N CXL 스토리지 장치들(3210~32N0), 및 CXL 인터페이스 회로(3300)를 포함할 수 있다. 제1 내지 제M 호스트 장치들(3110~31M0), 제1 내지 제N CXL 스토리지 장치들(3210~32N0), 및 CXL 인터페이스 회로(3300)는 각각 도 8의 제1 내지 제M 호스트 장치들(2110~21M0), 제1 내지 제N 스토리지 장치들(2210~22N0), 및 인터페이스 회로(2300)에 대응할 수 있다.
CXL 인터페이스 회로(3300)는 제1 내지 제M 호스트 장치들(3110~31M0) 및 제1 내지 제N CXL 스토리지 장치들(3210~32N0)과 연결될 수 있다. CXL 인터페이스 회로(3300)는 제1 내지 제M 호스트 장치들(3110~31M0) 및 제1 내지 제N CXL 스토리지 장치들(3210~32N0) 중 임의의 조합에게 인터페이스를 제공할 수 있다.
제1 CXL 스토리지 장치(3210)는 제1 CXL 스토리지 컨트롤러(3211) 및 제1 비-휘발성 메모리 장치(3212)를 포함할 수 있다. 제1 CXL 스토리지 컨트롤러(3211)는 제1 커맨드 관리자(3211a), 제1 상태 공유 테이블(3211b), 및 제1 매핑 테이블(3211c)을 포함할 수 있다. 제1 커맨드 관리자(3211a), 제1 상태 공유 테이블(3211b), 및 제1 매핑 테이블(3211c)는 도 1의 제1 커맨드 관리자(1211a), 제1 상태 공유 테이블(1211b), 및 제1 매핑 테이블(1211c)와 유사하므로, 이에 대한 상세한 설명은 생략된다.
이와 유사하게, 제2 CXL 스토리지 장치(3220)는 제2 CXL 스토리지 컨트롤러(3221) 및 제2 비-휘발성 메모리 장치(3222)를 포함할 수 있다. 제2 CXL 스토리지 컨트롤러(3221)는 제2 커맨드 관리자(3221a), 제2 상태 공유 테이블(3221b), 및 제2 매핑 테이블(3221c)을 포함할 수 있다.
마찬가지로, 제N CXL 스토리지 장치(32N0)는 제N CXL 스토리지 컨트롤러(32N1) 및 제N 비-휘발성 메모리 장치(32N2)를 포함할 수 있다. 제N CXL 스토리지 컨트롤러(32N1)는 제N 커맨드 관리자(32N1a), 제N 상태 공유 테이블(32N1b), 및 제N 매핑 테이블(32N1c)을 포함할 수 있다.
도 11은 본 개시의 일부 실시 예들에 따라 도 10의 전자 장치의 동작하는 방법을 설명하는 도면이다. 도 10 및 도 11을 참조하면, 전자 장치(3000)는 제1 호스트 장치(3110), 제1 CXL 스토리지 장치(3210), 제2 CXL 스토리지 장치(3220), 및 CXL 인터페이스 회로(3300)를 포함할 수 있다. 제1 CXL 스토리지 장치(3210)는 제1 CXL 스토리지 컨트롤러(3211) 및 제1 비-휘발성 메모리 장치(3212)를 포함할 수 있다. 제2 CXL 스토리지 장치(3220)는 제2 CXL 스토리지 컨트롤러(3221) 및 제2 비-휘발성 메모리 장치(3222)를 포함할 수 있다. 제1 호스트 장치(3110), 제1 CXL 스토리지 장치(3210), 및 제2 CXL 스토리지 장치(3220)의 각각은 CXL.mem 프로토콜 및 CXL.io 프로토콜을 지원할 수 있다.
이하에서, 전자 장치(3000)의 동작하는 방법이 설명될 것이다.
제1 동작(①에서, 제1 호스트 장치(3110)는 CXL.mem 프로토콜에 따라 CXL 인터페이스 회로(3300)를 통해서 제1 CXL 스토리지 장치(3210)에게 제1 요청(RQ1)을 제공할 수 있다. 제1 요청(RQ1)은 타겟 데이터의 메모리 동작을 가리킬 수 있다. 예를 들어, 메모리 동작은 쓰기 동작, 읽기 동작, 또는 삭제 동작일 수 있다. 메모리 동작이 쓰기 동작 또는 읽기 동작인 경우, 제1 요청(RQ1)은 제1 호스트 장치(3110)의 호스트 버퍼 어드레스를 포함할 수 있다.
제2 동작(②)에서, 제1 CXL 스토리지 컨트롤러(3211)는 제1 요청(RQ1)에 기초하여, 제1 상태 공유 테이블(3211b)에 저장된 상태 정보 또는 제1 매핑 테이블(3211c)에 저장된 매핑 정보를 참조하여, 제1 및 제2 CXL 스토리지 장치들(3210, 3220) 중 제2 CXL 스토리지 장치(3220)를 리디렉션 스토리지 장치로 선택할 수 있다. 제1 CXL 스토리지 컨트롤러(3211)는 CXL.mem 프로토콜에 따라 CXL 인터페이스 회로(3300)를 통해서 제2 CXL 스토리지 장치(3220)에게 메모리 동작의 리디렉션을 가리키는 제2 요청(RQ2)을 제공할 수 있다. 메모리 동작이 쓰기 동작 또는 읽기 동작인 경우, 제2 요청(RQ2)은 제1 호스트 장치(3110)의 호스트 버퍼 어드레스를 포함할 수 있다.
제3 동작(③)에서, 제2 CXL 스토리지 컨트롤러(3221)는 제2 요청(RQ2)의 호스트 버퍼 어드레스에 기초하여 제1 호스트 장치(3110) 및 제2 CXL 스토리지 장치(3220) 사이의 데이터 채널을 활성화하고, 그리고 CXL.io 프로토콜에 따라 활성화된 데이터 채널을 통해서 데이터 통신(또는 데이터 전송)을 수행할 수 있다. 데이터 채널은 CXL 인터페이스 회로(3300) 상에 구현될 수 있다.
예를 들어, 메모리 동작이 쓰기 동작인 경우, 제1 호스트 장치(3110)는 CXL.io 프로토콜에 따라 CXL 인터페이스 회로(3300) 상에 구현된 데이터 채널을 통해서 쓰기 동작에 대응하는 데이터를 제2 CXL 스토리지 장치(3220)에게 제공할 수 있다.
또 다른 예로서, 메모리 동작이 읽기 동작인 경우, 제2 CXL 스토리지 장치(3220)는 CXL.io 프로토콜에 따라 CXL 인터페이스 회로(3300) 상에 구현된 데이터 채널을 통해서 읽기 동작에 대응하는 데이터를 제1 호스트 장치(3110)에게 제공할 수 있다.
또 다른 예로서, 메모리 동작이 삭제 동작인 경우, 제2 CXL 스토리지 장치(3220)는 제3 동작(③)을 생략하고, 그리고 제2 매핑 테이블(3221c)에 저장된 타겟 데이터의 매핑 정보를 삭제할 수 있다.
도 12는 본 개시의 일부 실시 예들에 따라 도 10의 CXL 인터페이스 회로를 설명하는 도면이다. 도 10 및 도 12를 참조하면, 전자 장치(3000)는 제1 호스트 장치(3110), 제2 호스트 장치(3120), 제1 내지 제4 CXL 스토리지 장치들(3210, 3220, 3230, 3240), 및 CXL 인터페이스 회로(3300)를 포함할 수 있다.
CXL 인터페이스 회로(3300)는 다중 스위치 구조를 가질 수 있다. 예를 들어, CXL 인터페이스 회로(3300)는 제1 CLX 스위치 회로(3310), 제2 CXL 스위치 회로(3320), 및 제3 CXL 스위치 회로(3330)를 포함할 수 있다. 이러한 다중 스위치 구조는 본 개시의 이해를 돕기 위한 예시에 불과하며, CXL 스토리지 장치들의 개수는 증가 또는 감소할 수 있고, CXL 인터페이스 회로(3300) 내의 CXL 스위치 회로들의 개수 및 연결 구조는 다양하게 변형될 수 있다.
제1 CLX 스위치 회로(3310)는 제1 호스트 장치(3110), 제2 호스트 장치(3120), 제2 CXL 스위치 회로(3320), 및 제3 CXL 스위치 회로(3330)와 연결될 수 있다. 제2 CXL 스위치 회로(3320)는 제1 CLX 스위치 회로(3310), 제1 CXL 스토리지 장치(3210), 및 제2 CXL 스토리지 장치(3220)와 연결될 수 있다. 제3 CXL 스위치 회로(3330)는 제1 CLX 스위치 회로(3310), 제3 CXL 스토리지 장치(3230), 및 제4 CXL 스토리지 장치(3240)와 연결될 수 있다.
제1 CLX 스위치 회로(3310)는 제2 CXL 스위치 회로(3320) 및 제3 CXL 스위치 회로(3330)를 통해 제1 내지 제4 CXL 스토리지 장치들(3210, 3220, 3230, 3240)과 연결됨으로써, CXL 인터페이스 회로(3300)는 다양한 스토리지 장치들에 대한 유연한 확장성을 가질 수 있다.
일부 실시 예들에서, 제1 및 제2 CXL 스토리지 장치들(3210, 3220)은 제2 CXL 스위치 회로(3320)를 통해서 직접적으로 통신할 수 있다. 예를 들어, 제1 및 제2 CXL 스토리지 장치들(3210, 3220)은 제2 CXL 스위치 회로(3320)를 통해서 리디렉션을 위한 요청을 전송하거나, 또는 요청이 처리되었음을 가리키는 컴플리션을 전송할 수 있다.
일부 실시 예들에서, 제3 및 제4 CXL 스토리지 장치들(3230, 3240)은 제1 및 제3 CXL 스위치 회로(3310, 3330) 중 하나를 통해서 직접적으로 통신할 수 있다. 예를 들어, 제3 및 제4 CXL 스토리지 장치들(3230, 3240)은 제1 및 제3 CXL 스위치 회로들(3310, 3330) 중 하나를 통해서 리디렉션을 위한 요청을 전송하거나, 또는 요청이 처리되었음을 가리키는 컴플리션을 전송할 수 있다. 즉, 서로 다른 CXL 장치들 사이에서 통신 채널(예를 들어, 요청, 컴플리션, 또는 데이터를 전송하는데 사용되는 채널)은 복수개 존재할 수 있다.
상술된 바와 같이, 본 개시의 실시 예들에 따르면, 다중 스위치 구조를 갖는 CXL 인터페이스 회로는 복수의 CXL 스위치 회로들을 포함할 수 있다. CXL 인터페이스 회로와 연결된 복수의 호스트 장치들 및 복수의 CXL 스토리지 장치들 중 하나는 CXL 인터페이스 회로 내의 복수의 CXL 스위치 회로들 중 적어도 하나를 통해 복수의 호스트 장치들 및 복수의 CXL 스토리지 장치들 중 다른 하나와 통신할 수 있다. 이러한 구조에 기초하여, CXL 인터페이스 회로는 CXL 장치(예를 들어, 호스트 장치 또는 CXL 스토리지 장치)에게 통신 채널을 효율적으로 할당할 수 있고, 그리고 CXL 장치가 추가되거나 제거되는 경우에도 유연한 확장성을 제공할 수 있다.
도 13은 본 개시의 일부 실시 예들에 따른 전자 장치의 블록도이다. 도 13을 참조하면, 전자 장치(4000)는 제1 CPU(4110), 제2 CPU(4120), GPU(4130), NPU(4140), CXL 스토리지 클러스터(4200), CXL 인터페이스 회로(4300), CXL 메모리 클러스터(4400), PCIe(Peripheral Component Interconnect Express) 장치(4500), 가속기(4600), 및 NIC(Network Interface Card)(4700)를 포함할 수 있다.
제1 CPU(4110), 제2 CPU(4120), GPU(4130), 및 NPU(4140)는 도 10의 복수의 호스트 장치들(3110~31M0)에 대응할 수 있다. CXL 스토리지 클러스터(4200)는 도 10의 복수의 CXL 스토리지 장치들(3210~32N0)에 대응할 수 있다. CXL 인터페이스 회로(4300)는 도 10의 CXL 인터페이스 회로(3300)에 대응할 수 있다.
CXL 메모리 클러스터(4400)는 CXL 스토리지 클러스터(4200)를 위한 외부의 대용량 휘발성 메모리 장치로서 동작할 수 있다. PCIe 장치(4500)는 PCIe 기반의 폼팩터를 갖는 이동식 장치일 수 있다. 가속기(4600)는 제1 CPU(4110), 제2 CPU(4120), GPU(4130), NPU(4140) 중 적어도 하나의 연산을 보조하기 위한 하드웨어 가속기일 수 있다. NIC(4700)는 네트워크를 통해서 전자 장치(4000) 외부의 다른 전자 장치와 통신할 수 있다.
CXL 스토리지 클러스터(4200)는 핫-플러그 기능을 지원할 수 있다. 예를 들어, CXL 스토리지 클러스터(4200)는 복수의 CXL 스토리지 장치들을 포함할 수 있다. 복수의 CLX 스토리지 장치들 중 일부는 전자 장치(4000)의 동작 중에 핫-리무브(hot-remove) 방식으로 연결-해제될 수 있다. 복수의 CLX 스토리지 장치들 중 일부는 전자 장치(4000)의 동작 중에 핫-애드(hot-add) 방식으로 연결될 수 있다.
CXL 메모리 클러스터(4400)는 핫-플러그 기능을 지원할 수 있다. 예를 들어, CXL 스토리지 클러스터(4200)는 복수의 CXL 메모리 장치들을 포함할 수 있다. 복수의 CXL 메모리 장치들 중 일부는 전자 장치(4000)의 동작 중에 핫-리무브 방식으로 연결-해제될 수 있다. 복수의 CXL 메모리 장치들 중 일부는 전자 장치(4000)의 동작 중에 핫-애드 방식으로 연결될 수 있다.
도 14는 본 개시의 일부 실시 예들에 따른 데이터 센터의 블록도이다. 도 14를 참조하면, 데이터 센터(5000)는 다양한 데이터를 모아두고 서비스를 제공하는 시설로서, 데이터 스토리지 센터라고 지칭될 수도 있다. 데이터 센터(5000)는 검색 엔진 및 데이터 베이스 운용을 위한 시스템일 수 있으며, 은행 등의 기업 또는 정부기관에서 사용되는 컴퓨팅 시스템일 수 있다.
데이터 센터(5000)는 복수의 애플리케이션 서버들(5110~51M0), 복수의 스토리지 서버들(5210~52N0), 및 네트워크(NT)를 포함할 수 있다. 복수의 애플리케이션 서버들(5110~51M0) 및 복수의 스토리지 서버들(5210~52N0) 중 임의의 조합은 네트워크(NT)를 통해 연결될 수 있다.
제1 스토리지 서버(5210)는 프로세서(5211), CXL 스토리지 장치(5212), CXL 인터페이스 회로(5213), CXL 메모리 장치(5214), 및 NIC(5215)를 포함할 수 있다. CXL 스토리지 장치(5212)는 컨트롤러(CTRL) 및 낸드 플래스(NAND)를 포함할 수 있다. 컨트롤러(CTRL) 및 낸드 플래스(NAND)는 각각 도 1의 제1 스토리지 컨트롤러(1211) 및 제1 비-휘발성 메모리 장치(1212)에 대응할 수 있다. CXL 스토리지 장치(5212)는 프로세서(5211)의 요청에 따라 데이터를 저장하거나 또는 저장된 데이터를 출력할 수 있다. NIC(5215)는 네트워크(NT)를 통해서 복수의 애플리케이션 서버들(5110~51M0) 및 제2 내지 제N 스토리지 서버들(5220~52N0) 중 적어도 하나와 통신할 수 있다.
예를 들어, 네트워크(NT)는 FC(Fibre Channel) 또는 이더넷(Ethernet) 등을 이용하여 구현될 수 있다. 네트워크(NT)는 SAN(Storage Area Network)와 같은 스토리지 전용 네트워크일 수 있다. 또는, 네트워크(NT)는 FCoE(FC over Ethernet), NAS(Network Attached Storage), NVMe-oF(NVMe over Fabrics) 등의 프로토콜에 따라 구현될 수 있다.
그 밖에, 제2 내지 제N 스토리지 서버들(5220~52N0)의 각각은 제1 스토리지 서버(5210)와 유사하게 구현될 수 있다.
복수의 애플리케이션 서버들(5110~51M0) 중 적어도 하나는 네트워크(NT)를 통해 다른 애플리케이션 서버에 포함된 메모리 장치나 스토리지 장치에 액세스할 수 있거나, 또는 네트워크(NT)를 통해 스토리지 서버들(5210~52N0)에 포함된 메모리 장치나 스토리지 장치에 액세스할 수 있다. 이에 따라, 복수의 애플리케이션 서버들(5110~51M0) 중 적어도 하나는 다른 애플리케이션 서버들 및/또는 스토리지 서버들에 저장된 데이터에 대한 다양한 동작들을 수행할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 아니되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.

Claims (20)

  1. 제1 스토리지 장치, 제2 스토리지 장치, 및 호스트 장치를 포함하는 전자 장치의 동작하는 방법에 있어서,
    상기 호스트 장치에 의해, 상기 제1 스토리지 장치에게 타겟 데이터의 메모리 동작을 가리키는 제1 요청을 제공하는 단계;
    상기 제1 스토리지 장치에 의해, 상기 제1 요청에 기초하여 상기 제2 스토리지 장치에게 상기 메모리 동작의 리디렉션을 가리키는 제2 요청을 제공하는 단계;
    상기 제2 스토리지 장치에 의해, 상기 제2 요청에 기초하여 상기 메모리 동작을 수행하는 단계;
    상기 제2 스토리지 장치에 의해, 상기 제1 스토리지 장치에게 상기 메모리 동작이 수행되었음을 가리키는 제1 컴플리션을 제공하는 단계; 및
    상기 제1 스토리지 장치에 의해, 상기 제1 컴플리션에 기초하여 상기 호스트 장치에게 제2 컴플리션을 제공하는 단계를 포함하고,
    상기 제1 스토리지 장치는, 상기 호스트 장치로부터 상기 제1 요청을 수신하기 전에 또는 상기 제2 스토리지 장치로부터 상기 제1 컴플리션을 수신한 후에, 상기 타겟 데이터의 논리적 블록 어드레스(LBA) 및 상기 제2 스토리지 장치 내의 상기 타겟 데이터를 저장하는 물리적 블록을 가리키는 물리적 블록 어드레스(PBA)의 제1 매핑 정보를 저장하는 방법.
  2. 제 1 항에 있어서,
    상기 제2 스토리지 장치는 상기 제1 스토리지 장치의 식별 정보 및 상기 PBA의 제2 매핑 정보를 저장하는 방법.
  3. 제 1 항에 있어서,
    상기 제2 스토리지 장치는 상기 제2 요청 및 내부 운영 정책에 기초하여 상기 LBA를 할당하고 그리고 상기 할당된 LBA 및 상기 PBA의 제2 매핑 정보를 저장하는 방법.
  4. 제 1 항에 있어서,
    상기 전자 장치는 상기 제1 스토리지 장치, 상기 제2 스토리지 장치, 및 상기 호스트 장치와 연결된 인터페이스 회로를 더 포함하고,
    상기 제1 스토리지 장치는 P2P(peer-to-peer) 방식으로 상기 인터페이스 회로를 통해 상기 제2 스토리지 장치에게 상기 제2 요청을 제공하고, 그리고
    상기 제2 스토리지 장치는 상기 P2P 방식으로 상기 인터페이스 회로를 통해 상기 제1 스토리지 장치에게 상기 제1 컴플리션을 제공하는 방법.
  5. 제 1 항에 있어서,
    상기 메모리 동작은 쓰기 동작이고,
    상기 제1 요청 및 상기 제2 요청은 각각 상기 호스트 장치 내의 상기 타겟 데이터를 저장하는 호스트 버퍼 메모리 장치의 호스트 버퍼 어드레스를 포함하고, 그리고
    상기 제2 스토리지 장치에 의해, 상기 제2 요청에 기초하여 상기 메모리 동작을 수행하는 단계는:
    상기 제2 스토리지 장치에 의해, 상기 제2 요청의 상기 호스트 버퍼 어드레스에 기초하여 상기 제2 스토리지 장치의 버퍼 메모리 장치 및 상기 호스트 장치의 상기 호스트 버퍼 메모리 장치 사이의 데이터 채널을 활성화하는 단계;
    상기 제2 스토리지 장치에 의해, 상기 활성화된 데이터 채널을 통해서 상기 호스트 버퍼 메모리 장치로부터 상기 타겟 데이터를 수신하는 단계; 및
    상기 제2 스토리지 장치에 의해, 상기 물리적 블록 내에 상기 타겟 데이터를 저장하는 단계를 포함하는 방법.
  6. 제 5 항에 있어서,
    상기 제2 스토리지 장치에 의해, 상기 타겟 데이터를 저장하는 단계는:
    상기 제2 스토리지 장치에 의해, 상기 제1 스토리지 장치의 식별 정보 및 상기 PBA의 제2 매핑 정보를 저장하는 단계를 포함하는 방법.
  7. 제 5 항에 있어서,
    상기 제1 요청은 상기 타겟 데이터의 상기 LBA를 포함하고,
    상기 제1 컴플리션은 상기 제2 스토리지 장치 내의 상기 타겟 데이터가 저장된 상기 물리적 블록을 가리키는 상기 PBA를 포함하고, 그리고
    상기 방법은:
    상기 제1 스토리지 장치에 의해, 상기 제1 요청 및 상기 제1 컴플리션에 기초하여 상기 LBA 및 상기 제2 스토리지 장치의 상기 PBA의 상기 제1 매핑 정보를 저장하는 단계를 더 포함하는 방법.
  8. 제 5 항에 있어서,
    상기 제1 요청을 제공하기 전에, 상기 제1 및 제2 스토리지 장치들에 의해, 상기 제1 스토리지 장치의 제1 상태 정보 및 상기 제2 스토리지 장치의 제2 상태 정보를 공유하는 단계를 더 포함하고, 그리고
    상기 제1 스토리지 장치에 의해, 상기 제1 요청에 기초하여 상기 제2 스토리지 장치에게 상기 메모리 동작의 리디렉션을 가리키는 상기 제2 요청을 제공하는 단계는:
    상기 제1 스토리지 장치에 의해, 상기 제1 요청에 응답하여, 상기 제1 상태 정보 및 상기 제2 상태 정보에 기초하여 상기 제1 및 제2 스토리지 장치들 중 상기 제2 스토리지 장치를 리디렉션 스토리지 장치로 선택하는 단계; 및
    상기 제1 스토리지 장치에 의해, 상기 리디렉션 스토리지 장치로 선택된 상기 제2 스토리지 장치에게 상기 제2 요청을 제공하는 단계를 포함하는 방법.
  9. 제 8 항에 있어서,
    상기 제1 및 제2 상태 정보는 대응하는 스토리지 장치의 수명(lifetime) 정보, 리텐션(retention) 정보, P/E(program/erase) 사이클 정보, 스토리지 용량 정보, 메모리 액세스 횟수 정보 중 적어도 하나를 포함하는 방법.
  10. 제 1 항에 있어서,
    상기 메모리 동작은 읽기 동작이고,
    상기 제1 요청 및 상기 제2 요청은 각각 상기 호스트 장치 내의 호스트 버퍼 메모리 장치의 호스트 버퍼 어드레스를 포함하고,
    상기 제1 스토리지 장치는 상기 제1 요청을 수신하기 전에 상기 제1 매핑 정보를 저장하고,
    상기 제2 스토리지 장치는 상기 제1 요청을 수신하기 전에 상기 타겟 데이터를 상기 물리적 블록에 저장하고,
    상기 제1 스토리지 장치에 의해, 상기 제1 요청에 기초하여 상기 제2 스토리지 장치에게 상기 메모리 동작의 리디렉션을 가리키는 상기 제2 요청을 제공하는 단계는:
    상기 제1 스토리지 장치에 의해, 상기 제1 요청 및 상기 제1 매핑 정보에 기초하여 상기 제2 스토리지 장치에게 상기 제2 요청을 제공하는 단계를 포함하고, 그리고
    상기 제2 스토리지 장치에 의해, 상기 제2 요청에 기초하여 상기 메모리 동작을 수행하는 단계는:
    상기 제2 스토리지 장치에 의해, 상기 제2 요청의 상기 호스트 버퍼 어드레스에 기초하여 상기 제2 스토리지 장치의 버퍼 메모리 장치 및 상기 호스트 장치의 상기 호스트 버퍼 메모리 장치 사이의 데이터 채널을 활성화하는 단계; 및
    상기 제2 스토리지 장치에 의해, 상기 활성화된 데이터 채널을 통해서 상기 호스트 버퍼 메모리 장치에게 상기 타겟 데이터를 제공하는 단계를 포함하는 방법.
  11. 제 1 항에 있어서,
    상기 메모리 동작은 삭제 동작이고,
    상기 제1 스토리지 장치는 상기 제1 요청을 수신하기 전에 상기 제1 매핑 정보를 저장하고,
    상기 제2 스토리지 장치는 상기 제1 요청을 수신하기 전에 상기 타겟 데이터를 상기 물리적 블록에 저장하고,
    상기 제1 스토리지 장치에 의해, 상기 제1 요청에 기초하여 상기 제2 스토리지 장치에게 상기 메모리 동작의 리디렉션을 가리키는 상기 제2 요청을 제공하는 단계는:
    상기 제1 스토리지 장치에 의해, 상기 제1 요청 및 상기 제1 매핑 정보에 기초하여 상기 제2 스토리지 장치에게 상기 제2 요청을 제공하는 단계를 포함하고, 그리고
    상기 제2 스토리지 장치에 의해, 상기 제2 요청에 기초하여 상기 메모리 동작을 수행하는 단계는:
    상기 제2 스토리지 장치에 의해, 상기 제2 요청에 기초하여 상기 타겟 데이터를 삭제하는 단계를 포함하는 방법.
  12. 제 1 항에 있어서,
    상기 전자 장치는 다른 호스트 장치를 더 포함하고,
    상기 제2 스토리지 장치는 상기 제2 요청 및 내부 운영 정책에 기초하여 상기 LBA를 할당하고 그리고 상기 할당된 LBA 및 상기 PBA의 제2 매핑 정보를 저장하고, 그리고
    상기 방법은:
    상기 다른 호스트 장치에 의해, 상기 타겟 데이터의 상기 LBA와 동일한 LBA를 갖는 다른 데이터의 다른 메모리 동작을 가리키는 제3 요청을 상기 제2 스토리지 장치에게 제공하는 단계;
    상기 제2 스토리지 장치에 의해, 상기 제3 요청 및 상기 제2 매핑 정보에 기초하여 상기 제1 스토리지 장치에게 상기 다른 메모리 동작의 리디렉션을 가리키는 제4 요청을 제공하는 단계; 및
    상기 제1 스토리지 장치에 의해, 상기 제4 요청에 기초하여 상기 다른 메모리 동작을 수행하는 단계를 더 포함하는 방법.
  13. 제 1 항에 있어서,
    상기 전자 장치는 상기 제1 스토리지 장치, 상기 제2 스토리지 장치, 및 상기 호스트 장치와 연결된 CXL(Compute Express Link) 인터페이스 회로를 더 포함하는 방법.
  14. 제 13 항에 있어서,
    상기 호스트 장치는 CXL.mem 프로토콜에 따라 상기 CXL 인터페이스 회로를 통해서 상기 제1 스토리지 장치에게 상기 제1 요청을 제공하고,
    상기 제1 스토리지 장치는 상기 CXL.mem 프로토콜에 따라 상기 CXL 인터페이스 회로를 통해서 상기 제2 스토리지 장치에게 상기 제2 요청을 제공하고, 그리고, 그리고
    상기 제2 스토리지 장치는 CXL.io 프로토콜에 따라 상기 CXL 인터페이스 회로를 통해서 상기 호스트 장치와 상기 메모리 동작에 대응하는 데이터 통신을 수행하는 방법.
  15. 제 13 항에 있어서,
    상기 CXL 인터페이스 회로는 복수의 CXL 스위치 회로들을 포함하고, 그리고
    상기 제1 스토리지 장치, 상기 제2 스토리지 장치, 및 상기 호스트 장치 중 하나는 상기 복수의 CXL 스위치 회로들 중 적어도 하나를 통해 상기 제1 스토리지 장치, 상기 제2 스토리지 장치, 및 상기 호스트 장치 중 다른 하나와 통신하는 방법.
  16. 제1 스토리지 장치, 제2 스토리지 장치, 및 호스트 장치를 포함하는 전자 장치의 동작하는 방법에 있어서,
    상기 제1 및 제2 스토리지 장치들에 의해, 상기 제1 스토리지 장치의 제1 상태 정보 및 상기 제2 스토리지 장치의 제2 상태 정보를 공유하는 단계;
    상기 호스트 장치에 의해, 상기 제1 스토리지 장치에게 타겟 데이터의 쓰기 동작을 가리키는 제1 요청을 제공하는 단계로서, 상기 제1 요청은 상기 타겟 데이터의 논리적 블록 어드레스(LBA)를 포함하는 것;
    상기 제1 스토리지 장치에 의해, 상기 제1 요청, 상기 제1 상태 정보, 및 상기 제2 상태 정보에 기초하여 상기 제2 스토리지 장치에게 상기 쓰기 동작의 리디렉션을 가리키는 제2 요청을 제공하는 단계;
    상기 제2 스토리지 장치에 의해, 상기 제2 요청에 기초하여 상기 쓰기 동작을 수행하는 단계;
    상기 제2 스토리지 장치에 의해, 상기 제1 스토리지 장치에게 상기 쓰기 동작이 수행되었음을 가리키는 제1 컴플리션을 제공하는 단계로서, 상기 제1 컴플리션은 상기 제2 스토리지 장치 내의 상기 타겟 데이터를 저장하는 물리적 블록을 가리키는 물리적 블록 어드레스(PBA)를 포함하는 것;
    상기 제1 스토리지 장치에 의해, 상기 제1 요청 및 상기 제1 컴플리션에 기초하여 상기 LBA 및 상기 제2 스토리지 장치의 상기 PBA의 매핑 정보를 저장하는 단계; 및
    상기 제1 스토리지 장치에 의해, 상기 제1 컴플리션에 기초하여 상기 호스트 장치에게 제2 컴플리션을 제공하는 단계를 포함하는 방법.
  17. 제 16 항에 있어서,
    상기 호스트 장치에 의해, 상기 제2 컴플리션을 수신한 후, 상기 타겟 데이터의 읽기 동작을 가리키는 제3 요청을 제공하는 단계;
    상기 제1 스토리지 장치에 의해, 상기 제3 요청 및 상기 매핑 정보에 기초하여 상기 제2 스토리지 장치에게 상기 읽기 동작의 리디렉션을 가리키는 제4 요청을 제공하는 단계;
    상기 제2 스토리지 장치에 의해, 상기 제4 요청에 기초하여 상기 읽기 동작을 수행하는 단계;
    상기 제2 스토리지 장치에 의해, 상기 제1 스토리지 장치에게 상기 읽기 동작이 수행되었음을 가리키는 제3 컴플리션을 제공하는 단계; 및
    상기 제1 스토리지 장치에 의해, 상기 제3 컴플리션에 기초하여 상기 호스트 장치에게 제4 컴플리션을 제공하는 단계를 포함하는 방법.
  18. 제 16 항에 있어서,
    상기 호스트 장치에 의해, 상기 제2 컴플리션을 수신한 후, 상기 타겟 데이터의 삭제 동작을 가리키는 제5 요청을 제공하는 단계;
    상기 제1 스토리지 장치에 의해, 상기 제5 요청 및 상기 매핑 정보에 기초하여 상기 제2 스토리지 장치에게 상기 삭제 동작의 리디렉션을 가리키는 제6 요청을 제공하는 단계;
    상기 제2 스토리지 장치에 의해, 상기 제6 요청에 기초하여 상기 삭제 동작을 수행하는 단계;
    상기 제2 스토리지 장치에 의해, 상기 제1 스토리지 장치에게 상기 삭제 동작이 수행되었음을 가리키는 제5 컴플리션을 제공하는 단계;
    상기 제1 스토리지 장치에 의해, 상기 제5 컴플리션에 기초하여 상기 매핑 정보를 삭제하는 단계; 및
    상기 제1 스토리지 장치에 의해, 상기 제5 컴플리션에 기초하여 상기 호스트 장치에게 제6 컴플리션을 제공하는 단계를 포함하는 방법.
  19. 전자 장치에 있어서,
    제1 커맨드 관리자, 매핑 테이블, 및 제1 비-휘발성 메모리 장치를 포함하는 제1 스토리지 장치;
    제2 커맨드 관리자 및 제2 비-휘발성 메모리 장치를 포함하는 제2 스토리지 장치; 및
    타겟 데이터의 메모리 동작을 가리키는 제1 요청을 생성하도록 구성된 호스트 장치를 포함하되,
    상기 제1 커맨드 관리자는 상기 제1 요청에 기초하여 상기 제2 스토리지 장치에게 상기 메모리 동작의 리디렉션을 가리키는 제2 요청을 제공하도록 구성되고,
    상기 제2 커맨드 관리자는 상기 제2 요청에 기초하여 상기 메모리 동작을 수행하고 그리고 상기 제1 스토리지 장치에게 상기 메모리 동작이 수행되었음을 가리키는 제1 컴플리션을 제공하도록 구성되고,
    상기 제1 커맨드 관리자는 상기 제1 컴플리션에 기초하여 상기 호스트 장치에게 제2 컴플리션을 제공하도록 더 구성되고, 그리고
    상기 매핑 테이블은 상기 제1 커맨드 관리자의 제어에 따라 상기 타겟 데이터의 논리적 블록 어드레스(LBA) 및 상기 제2 비-휘발성 메모리 장치 내의 상기 타겟 데이터를 저장하는 물리적 블록을 가리키는 물리적 블록 어드레스(PBA)의 매핑 정보를 저장하도록 구성되는 전자 장치.
  20. 제 19 항에 있어서,
    상기 전자 장치는 상기 제1 스토리지 장치, 상기 제2 스토리지 장치, 및 상기 호스트 장치와 연결된 CXL(Compute Express Link) 인터페이스 회로를 더 포함하고,
    상기 CXL 인터페이스 회로는 복수의 CXL 스위치 회로들을 포함하고, 그리고
    상기 제1 스토리지 장치, 상기 제2 스토리지 장치, 및 상기 호스트 장치 중 하나는 상기 복수의 CXL 스위치 회로들 중 적어도 하나를 통해 상기 제1 스토리지 장치, 상기 제2 스토리지 장치, 및 상기 호스트 장치 중 다른 하나와 통신하는 전자 장치.
KR1020230121212A 2023-09-12 2023-09-12 매핑 정보를 저장하는 전자 장치, 및 그것의 동작하는 방법 Pending KR20250038465A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020230121212A KR20250038465A (ko) 2023-09-12 2023-09-12 매핑 정보를 저장하는 전자 장치, 및 그것의 동작하는 방법
US18/612,575 US12417045B2 (en) 2023-09-12 2024-03-21 Electronic device storing mapping information and method of operating the same
EP24166838.3A EP4524713A1 (en) 2023-09-12 2024-03-27 Electronic device storing mapping information and method of operating the same
CN202410447460.2A CN119620924A (zh) 2023-09-12 2024-04-15 存储映射信息的电子装置和操作电子装置的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230121212A KR20250038465A (ko) 2023-09-12 2023-09-12 매핑 정보를 저장하는 전자 장치, 및 그것의 동작하는 방법

Publications (1)

Publication Number Publication Date
KR20250038465A true KR20250038465A (ko) 2025-03-19

Family

ID=94872847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230121212A Pending KR20250038465A (ko) 2023-09-12 2023-09-12 매핑 정보를 저장하는 전자 장치, 및 그것의 동작하는 방법

Country Status (3)

Country Link
US (1) US12417045B2 (ko)
KR (1) KR20250038465A (ko)
CN (1) CN119620924A (ko)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4386694B2 (ja) 2003-09-16 2009-12-16 株式会社日立製作所 記憶システム及び記憶制御装置
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
US10282094B2 (en) 2017-03-31 2019-05-07 Samsung Electronics Co., Ltd. Method for aggregated NVME-over-fabrics ESSD
KR20190033284A (ko) 2017-09-21 2019-03-29 삼성전자주식회사 PCIe P2P 접속된 스토리지 장치들 사이의 데이터 전송 방법 및 시스템
US10409511B1 (en) 2018-06-30 2019-09-10 Western Digital Technologies, Inc. Multi-device storage system with distributed read/write processing
US11200337B2 (en) * 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
WO2020183444A1 (en) 2019-03-14 2020-09-17 Marvell Asia Pte, Ltd. Transferring data between solid state drives (ssds) via a connection between the ssds
KR102740441B1 (ko) 2019-12-17 2024-12-09 에스케이하이닉스 주식회사 스토리지 시스템, 이를 위한 스토리지 장치 및 동작 방법
US20230017824A1 (en) 2021-07-15 2023-01-19 Samsung Electronics Co., Ltd. Systems and methods for load balancing in a heterogeneous memory system
US12327018B2 (en) 2021-10-07 2025-06-10 Samsung Electronics Co., Ltd. Systems, methods, and devices for near storage elasticity

Also Published As

Publication number Publication date
CN119620924A (zh) 2025-03-14
US12417045B2 (en) 2025-09-16
US20250085878A1 (en) 2025-03-13

Similar Documents

Publication Publication Date Title
US11163699B2 (en) Managing least recently used cache using reduced memory footprint sequence container
US10896136B2 (en) Storage system including secondary memory that predicts and prefetches data
US9665305B1 (en) Tiering data between two deduplication devices
US11656803B2 (en) Tiering data strategy for a distributed storage system
US10782904B2 (en) Host computing arrangement, remote server arrangement, storage system and methods thereof
US10698829B2 (en) Direct host-to-host transfer for local cache in virtualized systems wherein hosting history stores previous hosts that serve as currently-designated host for said data object prior to migration of said data object, and said hosting history is checked during said migration
EP3506116A1 (en) Shared memory controller in a data center
EP3617891B1 (en) Memory controlled data movement and timing
US20240078187A1 (en) Per-process re-configurable caches
US20190310940A1 (en) Selecting resources to make available in local queues for processors to use
KR20230163238A (ko) 분산된 스토리지 장치들을 관리하는 컴퓨팅 시스템, 및 그것의 동작하는 방법
CN117009278A (zh) 计算系统及操作其的方法
EP4394576A1 (en) Apparatus and methods for accessing data at a storage node
US11816365B2 (en) Storage volume creation using performance volumes and capacity volumes
CN117032554A (zh) 存储装置、计算装置以及计算装置的操作方法
US20250068355A1 (en) System and method of host and storage device path selection by memory device
KR20250038465A (ko) 매핑 정보를 저장하는 전자 장치, 및 그것의 동작하는 방법
EP4524713A1 (en) Electronic device storing mapping information and method of operating the same
CN118259829A (zh) 用于访问存储节点处的数据的设备和方法
KR20250030400A (ko) 저장 장치 및 데이터 접근 방법
US20240028530A1 (en) Systems and methods for data prefetching for low latency data read from a remote server
WO2012029092A1 (en) Storage apparatus and data access method
US11016666B2 (en) Memory system and operating method thereof
US12235775B2 (en) Using a transient cache list and prolonged cache list to manage tracks in cache based on a demotion hint with a track access request
US20240303197A1 (en) Providing demotion hints with track access requests to cause a storage controller to manage the tracks using a transient cache list and prolonged cache list

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20230912

PG1501 Laying open of application