KR102195564B1 - 데이터 복사 시스템 및 그 동작 방법 - Google Patents
데이터 복사 시스템 및 그 동작 방법 Download PDFInfo
- Publication number
- KR102195564B1 KR102195564B1 KR1020200124977A KR20200124977A KR102195564B1 KR 102195564 B1 KR102195564 B1 KR 102195564B1 KR 1020200124977 A KR1020200124977 A KR 1020200124977A KR 20200124977 A KR20200124977 A KR 20200124977A KR 102195564 B1 KR102195564 B1 KR 102195564B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- storage device
- memory
- target storage
- read
- Prior art date
Links
Images
Classifications
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0884—Parallel mode, e.g. in parallel with main memory or CPU
-
- 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
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)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
데이터 복사 시스템이 개시된다. 데이터 복사 시스템은, 데이터를 저장하는 소스 저장 장치; 상기 소스 저장 장치에 저장된 데이터를 리드하고, 리드된 데이터를 타겟 저장 장치로 복사(copy)하는 호스트 디바이스; 및 상기 호스트 디바이스로부터 상기 소스 저장 장치로부터 리드된 데이터를 수신하고, 상기 리드된 데이터를 저장하는 적어도 하나의 타겟 저장 장치를 포함한다. 따라서, 고속으로 데이터를 복사할 수 있다.
Description
본 발명은 데이터 복사 시스템 및 그 동작 방법에 관한 것으로, 더욱 상세하게는 다양한 형태의 저장 장치들 상호간에 데이터를 복사하는 시스템 및 그 동작 방법에 관한 것이다.
개인용 컴퓨터(Personal computer)를 비롯하여 다양한 연산을 처리할 수 있는 컴퓨팅 디바이스(computing device)가 널리 보급됨에 따라, 컴퓨팅 디바이스에서 처리하기 위해 필요한 데이터와 처리 결과 데이터를 저장하기 위한 저장 장치도 함께 보급되고 있다.
저장 장치는 데이터의 연산 처리 결과를 일시적으로 또는 반영구적으로 저장하는 ROM(Read Only Memory), RAM(Random Access Memory)을 비롯하여 대용량의 데이터들을 저장하는 HDD(Hard Disk Drive), SSD(Solid State Drive)에 이르기까지 다양하다.
특히 최근에는 휴대용 단말들에 손쉽게 내장하여 사용할 수 있도록 USB(Universal Serial Bus) 드라이브, SD 카드(Secure Digital Card), CF 카드(Compact Flash Card), 멀티미디어 카드(Multimedia Card) 등에 이르기까지 그 형태가 더욱 다양해지고 있다.
이처럼 다양한 형태를 갖는 저장 장치들을 사용하는 사용자는, 특정 형태의 저장 장치에 기록되어 있는 데이터를 다른 형태의 저장 장치로 복사(copy)하는 작업을 해야 하는 경우가 자주 발생한다.
그런데, 일반적인 데이터 복사 장치들은 데이터가 기록된 소스 저장 장치(source storage device)에서 데이터를 리드하고, 리드된 데이터를 타겟 저장 장치(target storage device)에 라이트(write)하는 기본적인 작업만을 수행하고 있어 고속으로 데이터를 복사하는 데 어려움을 겪는다. 따라서, 다양한 형태를 갖는 소스 저장 장치에서 타겟 저장 장치로 데이터를 고속으로 복사할 수 있는 방안이 필요한 실정이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 고속으로 데이터를 복사할 수 있는 데이터 복사 시스템 및 그 동작 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명은, 데이터 복사 시스템을 제공한다.
상기 데이터 복사 시스템은, 데이터를 저장하는 소스 저장 장치; 상기 소스 저장 장치에 저장된 데이터를 리드하고, 리드된 데이터를 타겟 저장 장치로 복사(copy)하는 호스트 디바이스; 및 상기 호스트 디바이스로부터 상기 소스 저장 장치로부터 리드된 데이터를 수신하고, 상기 리드된 데이터를 저장하는 적어도 하나의 타겟 저장 장치를 포함할 수 있다.
상기 호스트 디바이스는, 상기 리드된 데이터를 저장하는 메모리(memory); 및 상기 메모리에 저장된 상기 리드된 데이터의 적어도 일부를 저장하는 캐시 메모리(cache memory)를 포함할 수 있다.
상기 소스 저장 장치 및 상기 타겟 저장 장치는, HDD(Hard Disk Drive), SSD(Solid State Drive), USB(Universal Serial Bus) 드라이브, SD 카드(Secure Digital Card), 메모리 스틱(Memory Stick), xD 픽쳐 카드(Extreme Digital Picture Card), CF 카드(Compact Flash Card), 멀티미디어 카드(Multimedia Card) 중 적어도 하나일 수 있다.
상기 호스트 디바이스는, 상기 소스 저장 장치에 순차 리드 요청을 전송하고, 상기 순차 리드 요청에 대한 응답으로, 상기 소스 저장 장치로부터 리드된 데이터를 상기 메모리에 저장하고, 상기 메모리에 저장된 상기 리드된 데이터의 적어도 일부를 상기 캐시 메모리로 이동시키고, 상기 캐시 메모리로 이동된 데이터를 포함하는 순차 쓰기 요청을 상기 타겟 저장 장치에 전송할 수 있다.
상기 호스트 디바이스는, 상기 리드된 데이터를 상기 메모리에 저장하는 동작과 상기 순차 쓰기 요청을 상기 타겟 저장 장치에 전송하는 동작을 동시에 처리하는 병렬 처리 동작을 수행할 수 있다.
상기 호스트 디바이스는, 상기 소스 저장 장치에 저장된 모든 데이터를 상기 타겟 저장 장치에 전송할 때까지 상기 병렬 처리 동작과 상기 리드된 데이터의 적어도 일부를 상기 캐시 메모리로 이동시키는 동작을 교번하여 반복적으로 수행할 수 있다.
상기 적어도 하나의 타겟 저장 장치는, 복수의 타겟 저장 장치들일 수 있다.
상기 데이터 복사 시스템은, 상기 복수의 타겟 저장 장치들 중 적어도 일부와 상기 호스트 디바이스를 물리적으로 접속시키는 허브 디바이스를 더 포함할 수 있다.
상기 호스트 디바이스는, 상기 소스 저장 장치에 저장된 데이터를 상기 복수의 타겟 저장 장치들 각각에 복사할 수 있다.
상기 메모리는, DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, RDRAM(Rambus Dynamic Random Access Memory) 중 적어도 하나일 수 있다.
상기 캐시 메모리는, SDRAM(Static RAM)일 수 있다.
상기와 같은 본 발명에 따른 데이터 복사 시스템 및 그 동작 방법을 이용할 경우에는 소스 저장 장치로부터 타겟 저장 장치로 빠르게 데이터를 복사할 수 있다.
특히, 다수의 타겟 저장 장치들에 하나의 소스 저장 장치에 저장된 데이터를 복사할 때 복사 속도가 크게 향상될 수 있는 장점이 있다.
도 1은 일 실시예에 따른 데이터 복사 시스템을 나타낸 예시도이다.
도 2는 도 1에 따른 호스트 디바이스의 동작을 나타낸 대표 흐름도이다.
도 3은 도 1에 따른 호스트 디바이스가 다수의 타겟 저장 장치들에 연결되는 경우를 나타낸 도면이다.
도 4는 도 3에 따른 허브 디바이스와 호스트 디바이스 사이의 동작을 설명하기 위한 도면이다.
도 5는 도 4에 따른 허브 디바이스의 동작을 설명하기 위한 예시 흐름도이다.
도 2는 도 1에 따른 호스트 디바이스의 동작을 나타낸 대표 흐름도이다.
도 3은 도 1에 따른 호스트 디바이스가 다수의 타겟 저장 장치들에 연결되는 경우를 나타낸 도면이다.
도 4는 도 3에 따른 허브 디바이스와 호스트 디바이스 사이의 동작을 설명하기 위한 도면이다.
도 5는 도 4에 따른 허브 디바이스의 동작을 설명하기 위한 예시 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일 실시예에 따른 데이터 복사 시스템을 나타낸 예시도이다.
도 1을 참조하면, 일 실시예에 따른 데이터 복사 시스템(10)은, 데이터를 저장하는 소스 저장 장치(200), 소스 저장 장치(200)에 저장된 데이터를 리드하고, 리드된 데이터를 타겟 저장 장치(300)로 복사(copy)하는 호스트 디바이스(100), 호스트 디바이스(100)로부터 소스 저장 장치(200)에서 리드된 데이터를 수신하고, 수신된 데이터를 저장하는 타겟 저장 장치(300)를 포함할 수 있다.
호스트 디바이스(100)는, 적어도 하나의 프로세서(110), 및 적어도 하나의 프로세서(110)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(120)를 포함할 수 있다.
여기서 적어도 하나의 프로세서(110)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 호스트 디바이스(100)의 동작 방법들이 수행되는 전용의 프로세서를 의미할 수 있다.
호스트 디바이스(100)는, 소스 저장 장치(200)에 물리적으로 접속되는 제1 커넥터(140), 및 적어도 하나의 타겟 저장 장치(300)에 물리적으로 접속되는 제2 커넥터(150)를 포함할 수 있다. 도 1에서는 제2 커넥터(150)에 하나의 타겟 저장 장치(300)가 접속되는 것으로 도시하였으나 예시적인 것으로 이해되어야 하며, 호스트 디바이스(100)는, 복수의 타겟 저장 장치들이 물리적으로 접속되는 복수의 제2 커텍터들을 포함할 수 있다.
제1 커넥터(140)와 제2 커넥터(150)는, SATA(Serial ATA) 커넥터, IDE(integrated drive electronics) 커넥터, IEEE 1394 커넥터, USB 커넥터, PCIe 커넥터, 각종 메모리 카드들의 커넥터 등일 수 있다. 제1 및 제2 커넥터(140, 150)는, 데이터 버스(data bus) 및 어드레스 버스(address bus)를 포함할 수 있다. 데이터 버스는 리드된 데이터 또는 기록될 데이터가 교환되는 버스이고, 어드레스 버스는 데이터와 대응하는 논리 주소(LBA, Logical Block Address)가 교환되는 버스일 수 있다.
호스트 디바이스(100)는, 소스 저장 장치(200)에 저장된 데이터를 리드하고, 리드된 데이터를 메모리(120)에 저장할 수 있다. 예를 들어, 호스트 디바이스(100)는, 소스 저장 장치(200)에 순차 리드 요청(sequential read request)을 전송하고, 소스 저장 장치(200)로부터 순차 리드 요청에 대한 응답으로, 소스 저장 장치(200)에 저장된 데이터를 수신할 수 있다. 여기서, 순차 리드 요청은 적어도 하나의 논리 주소(Logical Block Address, LBA)와 단일 리드 요청을 포함하는 복수의 요청들일 수 있다.
메모리(120)는, DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, RDRAM(Rambus Dynamic Random Access Memory) 등과 같은 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM)이거나, 리프레쉬 동작이 필요한 임의의 휘발성 메모리 장치일 수 있다.
또한, 호스트 디바이스(100)는, 메모리(120)에 저장되고 소스 저장 장치(300)에서 리드된 데이터의 적어도 일부를 저장하는 캐시 메모리(130)를 더 포함할 수 있다. 호스트 디바이스(100)는, 캐시 메모리(130)에 저장되고 소스 저장 장치(300)에서 리드된 데이터의 적어도 일부를 순차 쓰기 요청(sequtial write request)과 함께 타겟 저장 장치(300)에 전송할 수 있다. 여기서, 순차 쓰기 요청은 복수의 쓰기 요청들과 쓰기 요청들 각각과 대응하고 소스 저장 장치(300)에서 리드된 데이터를 포함할 수 있다. 캐시 메모리(130)는, SRAM(Static RAM)일 수 있다.
특히, 호스트 디바이스(100)는, 소스 저장 장치(200)로부터 리드된 데이터를 메모리(120)에 저장하는 동작과 캐시 메모리(130)에 저장되고 소스 저장 장치(200)로부터 리드된 데이터를 타겟 저장 장치(300)에 저장하는 동작을 병렬적으로(또는 동시에) 처리(이하, 병렬 처리 동작으로 지칭될 수 있음)할 수 있다. 즉, 호스트 디바이스(100)는, 소스 저장 장치(200)에 저장된 데이터를 리드하여 메모리(120)에 저장함과 동시에, 캐시 메모리(130)에 저장된 데이터와 순차 쓰기 요청을 타겟 저장 장치(300)에 전송할 수 있다. 캐시 메모리(130)에 저장되고 소스 저장 장치(200)로부터 리드된 데이터가 타겟 저장 장치(300)에 모두 전송되면, 호스트 디바이스(100)는, 메모리(120)에 저장되고 소스 저장 장치(200)로부터 리드된 데이터를 캐시 메모리(130)에 저장(이하, 캐싱 동작으로 지칭될 수 있음)할 수 있다.
호스트 디바이스(100)는, 소스 저장 장치(200)에 저장된 모든 데이터를 리드하고 리드된 모든 데이터를 타겟 저장 장치(300)에 전송할 때까지, 상술한 병렬 처리 동작과 캐싱 동작을 순차적으로 반복할 수 있다. 즉, 일 실시예에 따른 호스트 디바이스(100)는, 소스 저장 장치(200)에 저장된 데이터를 타겟 저장 장치(300)로 이동시키는 이른바 클론 복사(clone copy) 동작을 메모리(120)와 캐시 메모리(130)를 이용해 병렬 동작으로 수행하기 때문에 데이터의 리드와 전송을 빠르게 수행할 수 있다.
호스트 디바이스(100)의 예를 들면, 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.
소스 저장 장치(210)는, 호스트 디바이스(100)의 제1 커넥터(140)와 물리적으로 접속되는 호스트 커넥터(210), 데이터를 저장하는 소스 메모리(230), 및 소스 메모리(230)의 동작(예를 들어, 소거(erase), 저장(또는 프로그램) 등)을 제어하는 소스 컨트롤러(220)를 포함할 수 있다.
소스 컨트롤러(220)는, 호스트 디바이스(100)로부터 수신되는 순차 리드 요청에 대한 응답으로, 순차 리드 요청과 함께 수신된 적어도 하나의 논리 주소(LBA)와 대응하는 적어도 하나의 물리 주소(PBA, Physical Block Address)를 결정하고, 결정된 적어도 하나의 물리 주소(PBA)와 대응하는 리드 커맨드를 생성하고, 생성된 리드 커맨드와 적어도 하나의 물리 주소를 소스 메모리(230)에 전송할 수 있다.
소스 메모리(230)는 소스 컨트롤러(220)로부터 수신된 리드 커맨드에 대한 응답으로, 적어도 하나의 물리 주소에 저장된 데이터를 리드하고, 리드된 데이터를 소스 컨트롤러(220)에 전송할 수 있다.
소스 컨트롤러(220)와 소스 메모리(230)는 입출력 채널(IO channel)을 통해 서로 연결될 수 있고, 입출력 채널은 데이터가 이동하는 데이터 채널과 커맨드가 이동하는 커맨드 채널을 포함할 수 있다.
타겟 저장 장치(300)는, 호스트 디바이스(100)의 제2 커넥터(150)와 물리적으로 접속되는 호스트 커넥터(310), 데이터를 저장하는 타겟 메모리(330), 및 타겟 메모리(330)의 동작(예를 들어, 소거(erase), 저장(또는 프로그램) 등)을 제어하는 타겟 컨트롤러(320)를 포함할 수 있다.
타겟 컨트롤러(320)는, 호스트 디바이스(100)로부터 수신하는 순차 쓰기 요청에 대한 응답으로, 순차 쓰기 요청과 함께 수신된 데이터와 대응하는 적어도 하나의 쓰기 커맨드를 생성하고, 생성된 적어도 하나의 쓰기 커맨드 및 순차 쓰기 요청과 함께 수신된 데이터를 타겟 메모리(330)로 전송할 수 있다.
타겟 메모리(330)는, 타겟 컨트롤러(320)로부터 수신한 적어도 하나의 쓰기 커맨드에 대한 응답으로, 순차 쓰기 요청과 함께 수신된 데이터를 저장할 수 있다.
소스 저장 장치(210) 및/또는 타겟 저장 장치(310)는, HDD(Hard Disk Drive), SSD(Solid State Drive), USB(Universal Serial Bus) 드라이브, SD 카드(Secure Digital Card), 메모리 스틱(Memory Stick), xD 픽쳐 카드(Extreme Digital Picture Card), CF 카드(Compact Flash Card), 멀티미디어 카드(Multimedia Card) 등일 수 있다.
소스 메모리(230) 및/또는 타겟 메모리(330)는, 소스 저장 장치(200) 및/또는 타겟 저장 장치(300)가 HDD일 때 플래터(Platter)일 수도 있고, SSD 또는 각종 메모리 카드인 경우에는 메모리 셀들(cells)일 수 있다.
도 2는 도 1에 따른 호스트 디바이스의 동작을 나타낸 대표 흐름도이다.
도 2를 참조하면, 호스트 디바이스(100)의 프로세서(110)에 의해 수행되는 호스트 디바이스(100)의 동작 방법은, 소스 저장 장치(200)에 순차 리드 요청을 전송하는 단계(S100), 상기 순차 리드 요청에 대한 응답으로, 상기 소스 저장 장치(200)로부터 데이터를 수신하여 메모리(120)에 저장하는 단계(S110), 소스 저장 장치(200)로부터 수신되고 메모리(120)에 저장된 데이터의 적어도 일부를 캐시 메모리(130)로 이동시키는 단계(S120), 캐시 메모리(130)로 이동된 데이터를 포함하는 순차 쓰기 요청을 타겟 저장 장치에 전송하는 단계(S130)를 포함할 수 있다.
상기 메모리(120)에 저장하는 단계(S100)와 상기 타겟 저장 장치에 전송하는 단계(S130)는 동시에 수행되는 병렬 처리 동작일 수 있다.
상기 순차 리드 요청은 적어도 하나의 논리 주소(LBA)와 단일 리드 요청으로 구성된 복수의 요청들일 수 있다.
메모리(120)는, DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, RDRAM(Rambus Dynamic Random Access Memory) 중 적어도 하나일 수 있다.
캐시 메모리(130)는, SDRAM(Static RAM)일 수 있다.
호스트 디바이스(100)의 동작 방법은, 소스 저장 장치(200)에 저장된 모든 데이터를 타겟 저장 장치(300)에 전송할 때까지, 상기 병렬 처리 동작과 상기 이동시키는 단계(S120)는 서로 교번하여 반복적으로 수행될 수 있다.
도 3은 도 1에 따른 호스트 디바이스가 다수의 타겟 저장 장치들에 연결되는 경우를 나타낸 도면이다.
도 3을 참조하면, 일 실시예에 따른 데이터 복사 시스템(10)에서 호스트 디바이스(100)는 복수의 타겟 저장 장치들(301~304)에 물리적으로 접속될 수도 있다.
이를 위해 호스트 디바이스(100)는, 복수의 타겟 저장 장치들(301~304)과 물리적으로 접속되는 복수의 제2 커넥터들을 포함할 수 있다. 또한, 타겟 저장 장치들(301~304) 중 적어도 일부(301, 302)는 허브 디바이스(400, hub device)를 통해 호스트 디바이스(100)에 물리적으로 접속될 수 있다.
허브 디바이스(400)는, USB 허브일 수 있으나, 이에 한정되지 않는다. 예를 들어, 허브 디바이스(400)는 호스트 디바이스(100)와 일체로 구현되어 다수의 타겟 저장 장치들과 연결된 복수의 통신 채널과 호스트 디바이스 내부의 단일 통신 채널을 서로 연결하는 장치일 수도 있다.
예를 들어, 제1 타겟 저장 장치(301)와 제2 타겟 저장 장치(302)는 허브 디바이스(400)의 다운 스트림 포트들에 물리적으로 접속되고, 허브 디바이스(400)의 업 스트림 포트에 호스트 디바이스(100)가 연결될 수 있다. 따라서, 호스트 디바이스(100)의 제2 커텍터들 중 적어도 하나는 허브 디바이스(400)에 물리적으로 접속될 수 있다. 특히 메모리 카드들은 다양한 형식을 갖고 있어 호스트 디바이스(100)가 그러한 형식들 모두를 지원하는 독립한 커넥터들을 갖지 않을 수 있다. 따라서, 허브 디바이스(400)를 통해 메모리 카드들이 호스트 디바이스(100)에 연결되는 경우가 빈번하게 발생할 수 있다.
일 실시예에 따른 메모리 저장 시스템(10)은 1: n(n은 2 이상의 자연수) 데이터 복사를 지원할 수 있다. 메모리 저장 시스템(10)은, 소스 저장 장치(200)에 저장된 데이터를 복수의 타겟 저장 장치들(301~304)에 각각 복사할 수 있다.
구체적으로, 호스트 디바이스(100)는, 소스 저장 장치(200)에 저장된 데이터를 리드하고, 리드된 데이터를 제1 내지 제n 타겟 저장 장치(301~304)에 각각 전송할 수 있다.
한편, 1:n 데이터 복사의 경우, 소스 저장 장치(200)에 저장된 모든 데이터를 리드하고, 리드된 모든 데이터를 제1 내지 제4 타겟 저장 장치들(301~304)에 각각 전송함으로써, 제1 내지 제4 타겟 저장 장치들(301~304)에 소스 저장 장치(200)에 저장된 모든 데이터를 저장할 수 있다.
이때, 제1 내지 제4 타겟 저장 장치들(301~304)의 쓰기 속도들은 서로 상이할 수 있다. 따라서, 제1 내지 제4 타겟 저장 장치들(301~304) 각각이 호스트 디바이스(100)와 독립적인 물리 커넥터들(예를 들어 제2 커넥터들)을 통해 연결되더라도, 1:n 데이터 복사가 완료되는 시간은 제1 내지 제4 타겟 저장 장치들(301~304) 중 쓰기 속도가 가장 느린 저장 장치에 의존할 수 있다.
특히, 도 3에서와 같이 제1 타겟 저장 장치(301)와 제2 타겟 저장 장치(302)가 허브 디바이스(400)를 통해 호스트 디바이스(100)에 연결될 경우, 허브 디바이스(400)가 다운 스트림 포트에 연결된 타겟 저장 장치를 지원하는 접속 속도 및 제1 타겟 저장 장치(301) 및 제2 타겟 저장 장치(302) 각각이 갖는 쓰기 속도에 따라 1:n 데이터 복사를 수행하는 데 걸리는 시간이 달라질 수 있다.
본 발명의 일 실시예에서는 이러한 허브 디바이스(400)를 통해 속도 저하를 해결할 수 있는 데이터 복사 방법 및 시스템을 추가로 제안한다.
도 4는 도 3에 따른 허브 디바이스와 호스트 디바이스 사이의 동작을 설명하기 위한 도면이다.
도 4를 참조하면, 허브 디바이스(400)는, 허브 허브 프로세서(405), 허브 코어(410), 허브 코어(410)와 호스트 디바이스(100) 사이를 연결하는 업스트림 포트(415), 허브 코어(410)와 다수의 타겟 디바이스들을 연결하는 다운스트림 포트들(420)을 포함할 수 있다. 다운스트림 포트들(420)는 허브 코어(410)의 적어도 하나의 출력(425)과 멀티플렉싱 또는 디멀티플렉싱됨으로써 허브 코어(410)와 연결될 수 있다.
허브 코어(410)는, 허브 인터페이스(예를 들어, USB 허브 인터페이스)를 제공하는 ASIC(application specific integrated circuit), FPGA(Field Programmable Gate Array), 또는 기타 디지털이나 아날로그 회로를 포함할 수 있다.
허브 프로세서(405)는, 허브 코어(410)와 통신 가능하도록 결합된 마이크로컨트롤러(Microcontroller)로서, 내부 메모리(430)에 저장된 펌웨어(firmware)에 의해 지시되는 동작을 수행할 수 있다. 허브 프로세서(405)는, 다운 스트림 포트들(420)의 멀티플렉싱과 디멀티플렉싱을 제어하기 위하여 다운 스트림 포트들(420)과 직간접적으로 연결되거나 통신 가능할 수 있다.
허브 프로세서(405)는, 호스트 디바이스(100)와 타겟 저장 장치들(301~304) 사이에 미리 정의된 다양한 규격의 트랜잭션들(transactions)을 해석하고, 해석된 트랜잭션들을 호스트 디바이스(100)와 타겟 저장 장치들(301~304) 사이에 중계하도록 허브 디바이스(400)를 제어할 수 있다.
내부 메모리(430)는 허브 디바이스(400)의 동작에 필요한 각종 환경 설정 정보를 저장할 수 있다. 예를 들어, 내부 메모리(430)는, 지원하는 타겟 저장 장치들(301~304)에 대한 디바이스 식별기호(PID, product ID), 벤더 식별기호(VID, vendor ID), 및 디바이스 식별기호나 벤더 식별기호에 대응하는 충전 유형(예를 들어, 저속 충전, 고속 충전 등)이나 충전 규격 및 인증 규격 등을 저장할 수 있다.
한편, 본 발명의 일 실시예에서 내부 메모리(430)는, 벤더 식별기호(VID, vendor ID)와 대응하는 예상 쓰기 속도를 저장할 수 있다. 예상 쓰기 속도는 메모리 카드들이 동일한 쓰기 속도를 지원하는 클래스에 속하더라도, 서로 다른 실질 쓰기 속도를 갖는 점을 보완하기 위하여 미리 다양한 벤더를 통해 생산된 디바이스들마다 측정된 실험값일 수 있다.
예를 들어, 허브 프로세서(405)가 다운 스트림 포트들(420)에 연결된 타겟 저장 장치들(301~302)에 테스트 데이터를 전송하고, 타겟 저장 장치들(301~302)이 비지 상태(busy state)에서 유휴 상태(idle state)로 전환되는 것을 감지함으로써 예상 쓰기 속도를 측정하고, 측정된 예상 쓰기 속도를 내부 메모리(430)의 벤더 식별기호와 대응시켜 저장할 수도 있다.
도 5는 도 4에 따른 허브 디바이스의 동작을 설명하기 위한 예시 흐름도이다.
도 5를 참조하면, 다운 스트림 포트들 중 적어도 일부에 타겟 디바이스들이 접속되고, 업스트림 포트에 호스트 디바이스가 물리적으로 접속된 후, 허브 디바이스(400)는, 다운 스트림 포트들 중 적어도 일부에 접속된 타겟 디바이스들을 검출(S200)할 수 있다.
예를 들어, 허브 디바이스(400)는, 접속된 타겟 디바이스들로부터 벤더 식별기호(VID)와 디바이스 식별기호(PID)를 획득하고, 획득된 벤더 식별기호와 디바이스 식별기호를 내부 메모리(430)에 저장된 벤더 식별기호 및 디바이스 식별기호와 비교함으로써, 접속된 타겟 디바이스들을 검출할 수 있다.
허브 디바이스(400)는, 검출된 타겟 디바이스들 각각에 대응하는 벤더 식별기호(VID)를 기초로 검출된 타겟 디바이스들 각각에 대한 속도 환경 설정을 결정(S210)할 수 있다.
예를 들어, 허브 디바이스(400)는, 검출된 타겟 디바이스들 각각에 대응하는 벤더 식별기호(VID)를 이용하여, 내부 메모리(430)에 저장되고, 검출된 타겟 디바이스들 각각에 대응하는 예상 쓰기 속도들을 획득하고, 획득된 예상 쓰기 속도들에 기초하여 속도 환경 설정을 결정할 수 있다.
n:1 데이터 복사를 수행하는 데 걸리는 시간은 허브 디바이스(400)에 접속된 타겟 디바이스들 중에서 쓰기 속도가 가장 느린 타겟 디바이스에 따라 결정될 수 있다. 따라서, 허브 디바이스(400)는, 허브 디바이스(400)에 접속된 타겟 디바이스의 예상 쓰기 속도가 느릴수록 해당 타겟 디바이스의 속도 대역폭(예를 들면 쓰기 속도 대역폭)이 더 크도록 속도 환경 설정을 결정할 수 있다. 예를 들어, 허브 디바이스(400)는, 다음의 수학식 1에 기초하여 타겟 디바이스들 각각의 속도 대역폭을 결정할 수 있다.
상기 수학식 1을 참조하면, Vbw[i]는 허브 디바이스(400)에 접속된 타겟 디바이스들 중 i번째 타겟 디바이스의 속도 대역폭이고, k는 비례 상수이며, Vwt[j]와 Vwt[i]는 j번째와 i번째 타겟 디바이스의 속도 대역폭이고, p는 허브 디바이스(400)에 접속된 타겟 디바이스들의 개수이며, BWtot는 업스트림 포트(415)와 호스트 디바이스(100) 사이에서 지원하는 최대 속도 대역폭일 수 있다.
예상 쓰기 속도들에 기초하여 속도 환경 설정을 결정하는 동작은 호스트 디바이스(100)가 허브 디바이스(400)에 전송하는 데이터 복사 인에이블 신호에 기초하여 수행될 수 있다. 예를 들어, 호스트 디바이스(100)는, 타겟 저장 장치들을 대상으로, 소스 저장 장치(200)에서 리드된 데이터에 대한 쓰기 요청을 전송하기 전에, 허브 디바이스(400)에 데이터 복사 인에이블 신호를 전송할 수 있고, 허브 디바이스(400)는, 데이터 복사 인에이블 신호에 기초하여(또는 데이터 복사 인에이블 신호가 하이레벨 또는 미리 설정된 활성화 신호 상태에 대응하는 경우) 예상 쓰기 속도들을 획득하고, 획득된 예상 쓰기 속도들에 기초하여 속도 환경 설정을 결정할 수 있다.
예를 들어, 데이터 복사 인에이블 신호가 로우 레벨 또는 미리 설정된 비활성화 신호 상태에 대응하는 경우, 허브 디바이스(400)는 검출된 타겟 디바이스들 각각에 대응하는 벤더 식별기호(VID)와 디바이스 식별 기호(PID)에 기초하여 검출된 타겟 디바이스들 각각에 대응하는 전송 규격을 결정하고, 결정된 전송 규격에 따라 속도 환경 설정을 결정할 수도 있다.
허브 디바이스(400)는 결정된 속도 환경 설정에 따라 검출된 타겟 디바이스들을 업스트림 포트에 연결(S220)할 수 있다.
상술한 허브 디바이스(400)의 동작은 허브 디바이스(400)에 포함된 내부 메모리(430)에 저장된 펌웨어(firmware)로서 구현되고, 허브 프로세서(405)에 의해 수행될 수 있다.
즉, 일 실시예에 따르면, 허브 디바이스(400)에 연결된 타겟 디바이스들을 전송 규격에 따라 업스트림 포트(415)에 연결시키는 것에 그치지 않고, 데이터 복사 시에는 예상 쓰기 속도에 기초하여 업스트림 포트(415)에 연결시키므로, 데이터 복사 속도를 크게 향상시킬 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10: 데이터 복사 시스템 100: 호스트 디바이스
110: 프로세서 120: 메모리
130: 캐시 메모리 140: 제1 커넥터
150: 제2 커넥터 200: 소스 저장 장치
210: 호스트 커넥터 220: 소스 컨트롤러
230: 소스 메모리 300: 타겟 저장 장치
310: 호스트 커넥터 320: 타겟 컨트롤러
330: 타겟 메모리
301~304: 제1 내지 제4 타겟 저장 장치들
400: 허브 디바이스 405: 허브 프로세서
410: 허브 코어 415: 업스트림 포트
420: 다운 스트림 포트들 430: 내부 메모리
110: 프로세서 120: 메모리
130: 캐시 메모리 140: 제1 커넥터
150: 제2 커넥터 200: 소스 저장 장치
210: 호스트 커넥터 220: 소스 컨트롤러
230: 소스 메모리 300: 타겟 저장 장치
310: 호스트 커넥터 320: 타겟 컨트롤러
330: 타겟 메모리
301~304: 제1 내지 제4 타겟 저장 장치들
400: 허브 디바이스 405: 허브 프로세서
410: 허브 코어 415: 업스트림 포트
420: 다운 스트림 포트들 430: 내부 메모리
Claims (8)
- 데이터를 저장하는 소스 저장 장치;
상기 소스 저장 장치에 저장된 데이터를 리드하고, 리드된 데이터를 타겟 저장 장치로 복사(copy)하는 호스트 디바이스; 및
상기 호스트 디바이스로부터 상기 소스 저장 장치로부터 리드된 데이터를 수신하고, 상기 리드된 데이터를 저장하는 적어도 하나의 타겟 저장 장치를 포함하고,
상기 호스트 디바이스는,
상기 리드된 데이터를 저장하는 메모리(memory); 및
상기 메모리에 저장된 상기 리드된 데이터의 적어도 일부를 저장하는 캐시 메모리(cache memory)를 포함하되,
상기 소스 저장 장치에 순차 리드 요청을 전송하고, 상기 순차 리드 요청에 대한 응답으로, 상기 소스 저장 장치로부터 리드된 데이터를 상기 메모리에 저장하고, 상기 메모리에 저장된 상기 리드된 데이터의 적어도 일부를 상기 캐시 메모리로 이동시키고, 상기 캐시 메모리로 이동된 데이터를 포함하는 순차 쓰기 요청을 상기 타겟 저장 장치에 전송하고,
상기 리드된 데이터를 상기 메모리에 저장하는 동작과 상기 순차 쓰기 요청을 상기 타겟 저장 장치에 전송하는 동작을 동시에 처리하는 병렬 처리 동작을 수행하며,
상기 소스 저장 장치에 저장된 모든 데이터를 상기 타겟 저장 장치에 전송할 때까지 상기 병렬 처리 동작과 상기 리드된 데이터의 적어도 일부를 상기 캐시 메모리로 이동시키는 동작을 교번하여 반복적으로 수행하는, 데이터 복사 시스템. - 청구항 1에서,
상기 소스 저장 장치 및 상기 타겟 저장 장치는, HDD(Hard Disk Drive), SSD(Solid State Drive), USB(Universal Serial Bus) 드라이브, SD 카드(Secure Digital Card), 메모리 스틱(Memory Stick), xD 픽쳐 카드(Extreme Digital Picture Card), CF 카드(Compact Flash Card), 멀티미디어 카드(Multimedia Card) 중 적어도 하나인, 데이터 복사 시스템. - 삭제
- 삭제
- 삭제
- 청구항 1에서,
상기 적어도 하나의 타겟 저장 장치는, 복수의 타겟 저장 장치들이고,
상기 복수의 타겟 저장 장치들 중 적어도 일부와 상기 호스트 디바이스를 물리적으로 접속시키는 허브 디바이스를 더 포함하는, 데이터 복사 시스템. - 청구항 6에서,
상기 호스트 디바이스는,
상기 소스 저장 장치에 저장된 데이터를 상기 복수의 타겟 저장 장치들 각각에 복사하는, 데이터 복사 시스템. - 청구항 1에서,
상기 메모리는,
DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, RDRAM(Rambus Dynamic Random Access Memory) 중 적어도 하나이고,
상기 캐시 메모리는,
SDRAM(Static RAM)인, 데이터 복사 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200124977A KR102195564B1 (ko) | 2020-09-25 | 2020-09-25 | 데이터 복사 시스템 및 그 동작 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200124977A KR102195564B1 (ko) | 2020-09-25 | 2020-09-25 | 데이터 복사 시스템 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102195564B1 true KR102195564B1 (ko) | 2020-12-28 |
Family
ID=74087110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200124977A KR102195564B1 (ko) | 2020-09-25 | 2020-09-25 | 데이터 복사 시스템 및 그 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102195564B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170140267A (ko) * | 2015-04-28 | 2017-12-20 | 마이크로칩 테크놀로지 인코포레이티드 | 범용 직렬 버스 스마트 허브 |
US20170371785A1 (en) * | 2016-06-28 | 2017-12-28 | Intel Corporation | Techniques for Write Commands to a Storage Device |
KR20190139135A (ko) * | 2018-06-07 | 2019-12-17 | 서킷 불러버드 (주) | 오픈-채널 고체 상태 드라이브(ssd) 간에 데이터를 복사하는 방법 및 이를 수행하는 장치 |
KR20200036461A (ko) * | 2018-09-28 | 2020-04-07 | 삼성전자주식회사 | 메모리 디바이스들 사이의 직접 통신을 위한 메모리 시스템 및 메모리 디바이스 |
-
2020
- 2020-09-25 KR KR1020200124977A patent/KR102195564B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170140267A (ko) * | 2015-04-28 | 2017-12-20 | 마이크로칩 테크놀로지 인코포레이티드 | 범용 직렬 버스 스마트 허브 |
US20170371785A1 (en) * | 2016-06-28 | 2017-12-28 | Intel Corporation | Techniques for Write Commands to a Storage Device |
KR20190139135A (ko) * | 2018-06-07 | 2019-12-17 | 서킷 불러버드 (주) | 오픈-채널 고체 상태 드라이브(ssd) 간에 데이터를 복사하는 방법 및 이를 수행하는 장치 |
KR20200036461A (ko) * | 2018-09-28 | 2020-04-07 | 삼성전자주식회사 | 메모리 디바이스들 사이의 직접 통신을 위한 메모리 시스템 및 메모리 디바이스 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102686917B1 (ko) | 스토리지 장치의 구동 방법, 이를 수행하는 스토리지 장치 및 이를 이용한 스토리지 시스템의 구동 방법 | |
KR100725271B1 (ko) | 복수개의 dma 채널을 갖는 usb-sd 저장 장치 및 그저장 방법 | |
KR102580820B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102419036B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102645786B1 (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
KR20130024271A (ko) | 하드 디스크 드라이브와 불휘발성 메모리를 포함하는 스토리지 시스템 | |
KR20210098717A (ko) | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 | |
KR20200017664A (ko) | 저장 장치의 데이터 액세스 방법, 데이터 관리 방법 및 이를 수행하는 저장 장치 | |
KR20240116679A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20200114212A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20160131268A (ko) | 저장 장치 및 이의 동작 방법 | |
US20240330175A1 (en) | Storage device for classifying data based on stream class number, storage system, and operating method thereof | |
KR102330394B1 (ko) | 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법 | |
CN113448487B (zh) | 写入闪存管理表的计算机可读取存储介质、方法及装置 | |
KR102634776B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102195564B1 (ko) | 데이터 복사 시스템 및 그 동작 방법 | |
KR102695482B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN110874333B (zh) | 存储设备及存储方法 | |
KR20210068734A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20200047814A (ko) | 스토리지 모듈, 스토리지 모듈의 동작 방법, 및 스토리지 모듈을 제어하는 호스트의 동작 방법 | |
US10146553B2 (en) | Electronic apparatus and booting method thereof | |
KR102655360B1 (ko) | 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법 | |
CN113495850A (zh) | 管理垃圾回收程序的方法、装置及计算机可读取存储介质 | |
KR20210002190A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
KR20200124937A (ko) | 컨트롤러 및 그것의 동작방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |