KR20150037365A - 스토리지 시스템을 포함하는 컴퓨팅 시스템 및 그의 데이터 기입 방법 - Google Patents

스토리지 시스템을 포함하는 컴퓨팅 시스템 및 그의 데이터 기입 방법 Download PDF

Info

Publication number
KR20150037365A
KR20150037365A KR20130116891A KR20130116891A KR20150037365A KR 20150037365 A KR20150037365 A KR 20150037365A KR 20130116891 A KR20130116891 A KR 20130116891A KR 20130116891 A KR20130116891 A KR 20130116891A KR 20150037365 A KR20150037365 A KR 20150037365A
Authority
KR
South Korea
Prior art keywords
write command
write
cache
host
storage
Prior art date
Application number
KR20130116891A
Other languages
English (en)
Other versions
KR102086778B1 (ko
Inventor
박종태
김성철
정승연
김정호
오상진
지우롱 쳉
프라딥 비스트
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020130116891A priority Critical patent/KR102086778B1/ko
Priority to US14/336,966 priority patent/US9557935B2/en
Publication of KR20150037365A publication Critical patent/KR20150037365A/ko
Application granted granted Critical
Publication of KR102086778B1 publication Critical patent/KR102086778B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명의 일 실시예에 따른 스토리지 시스템의 데이터를 기입하는 방법은, 호스트가 제1 기입명령을 발행하는 단계; 상기 호스트가 상기 제1 기입명령의 큐뎁쓰(Queue Depth)가 제1값인 경우, 캐쉬에 포함된 미리 할당된 엔트리에 저장하는 단계; 상기 호스트가 상기 제1 기입명령에 대한 기입 완료신호를 생성하는 단계; 상기 호스트가 제2 기입명령을 발행하는 단계를 구비한다.

Description

스토리지 시스템을 포함하는 컴퓨팅 시스템 및 그의 데이터 기입 방법{Computing System including Storage System and Writing Method of the same}
본 발명은 스토리지 시스템을 포함하는 컴퓨팅 시스템 및 이의 데이터 기입 방법에 관한 것으로, 특히 기입 속도를 향상시킬 수 있는 컴퓨팅 시스템 및 그의 데이터 기입 방법에 관한 것이다.
NCQ(Native Command Queuing)이란 특정 상황에서 SATA(Serial Advanced Technology Attachment) 장치의 성능을 향상시키기 위해 입출력(I/O) 요청을 우선 큐에 보관한 다음, 입출력 요청을 재배열하고 이를 실행하는 방식이다.
하지만, 호스트 컴퓨터(Host Computer)가 바로 응답을 받아야 하는 경우, 즉, 큐뎁쓰(Queue Depth)가 1인 경우가 빈번하게 발생한다면, NCQ 기술을 활용하는 것은 어려울 것이다.
본 발명의 기술적 사상이 해결하려는 과제는 스토리지 시스템으로 기입 속도를 향상시키는 컴퓨팅 시스템을 제공하는데 있다.
본 발명의 일 실시예에 따른, 스토리지 시스템의 데이터를 기입하는 방법은, 호스트가 제1 기입명령을 발행하는 단계; 상기 호스트가 상기 제1 기입명령의 큐뎁쓰(Queue Depth)가 제1값인 경우, 캐쉬에 포함된 미리 할당된 엔트리에 저장하는 단계; 상기 호스트가 상기 제1 기입명령에 대한 기입 완료신호를 생성하는 단계; 상기 호스트가 제2 기입명령을 발행하는 단계를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 캐쉬에 저장된 기입명령들의 개수가 제1 기준값 이상인 경우, 상기 기입명령들을 상기 기입명령들에 대응하는 어드레스 주소값에 따라서 리오더링(Reordering)하는 단계를 더 포함한다.
바람직하게는, 상기 리오더링은 상기 기입명령들의 순서가 상기 기입명령들에 대응하는 어드레스 주소값의 순서와 일치하도록 재배열하는 것을 특징으로 한다.
바람직하게는, 상기 캐쉬에 저장된 기입명령들의 총 점유율이 제2 기준값 이상 높아지는 경우, 상기 캐쉬에서 상기 스토리지 시스템으로 기입명령들의 플러쉬(Flush)를 시작하는 단계를 더 포함한다.
바람직하게는, 상기 캐쉬에 저장된 기입명령의 총 점유율이 제3 기준값 이하로 낮아지는 경우, 상기 플러쉬(Flush)를 정지하는 단계를 더 포함한다.
바람직하게는, 상기 플러쉬(Flush)는 일정한 수의 엔트리 단위로 하는 것을 특징으로 한다.
바람직하게는, 상기 제2 기입명령의 대상 데이터들의 총 싸이즈가 제3 기준값 이상이고, 상기 제2 기입명령의 대상 주소값들이 시퀀셜인 경우, 상기 호스트에서 상기 캐쉬에 전송하지 않고, 상기 호스트에서 상기 스토리지에 상기 제2 기입명령을 플러쉬(Flush)하는 단계를 포함한다.
바람직하게는, 상기 제1 기입명령이 상기 캐쉬에 저장되어 상기 캐쉬에 저장된 기입명령의 총 점유율이 제4 기준값 이상이 되고, 상기 제2 기입명령의 대상 주소값들이 시퀀셜인 경우, 상기 호스트에서 상기 스토리지에 상기 제2 기입명령을 플러쉬(Flush)하는 단계를 포함한다.
바람직하게는, 상기 제2 기입명령의 대상 어드레스가 상기 캐쉬에 이미 저장된 기입명령의 대상 어드레스와 일치하는 경우, 상기 이미 저장된 기입명령은 스토리지로 플러쉬되지 않고, 상기 제2 기입명령만 스토리지로 플러쉬되는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른, 호스트 및 스토리지 시스템을 포함하는 컴퓨팅 시스템은 상기 호스트는 제1 기입명령의 큐뎁쓰(Queue Depth)가 1인 경우, 캐쉬에 포함된 미리 할당된 엔트리에 저장하고, 상기 제1 기입명령에 대한 기입 완료신호를 생성한 후에, 제2 기입명령을 발행하는 것을 특징으로 한다.
바람직하게는, 상기 캐쉬에 저장된 기입명령들의 개수가 제1 기준값 이상인 경우, 상기 기입명령들을 상기 기입명령들에 대응하는 어드레스 주소값에 따라서 리오더링(Reordering)하는 것을 특징으로 한다.
바람직하게는, 상기 리오더링은 상기 기입명령들의 순서가 상기 기입명령들에 대응하는 어드레스 주소값의 순서와 일치하도록 재배열하는 것을 특징으로 한다.
바람직하게는, 상기 캐쉬에 저장된 기입명령들의 총 점유율이 제2 기준값 이상 높아지는 경우, 상기 캐쉬에서 상기 스토리지 시스템으로 기입명령들의 플러쉬(Flush)를 시작하는 것을 특징으로 한다.
바람직하게는, 상기 제2 기입명령의 대상 데이터들의 총 싸이즈가 제3 기준값 이상이고, 상기 제2 기입명령의 대상 주소값들이 시퀀셜인 경우, 상기 호스트에서 상기 캐쉬에 전송하지 않고, 상기 호스트에서 상기 스토리지에 상기 제2 기입명령을 플러쉬(Flush)하는 것을 특징으로 한다.
바람직하게는, 상기 제1 기입명령이 상기 캐쉬에 저장되어 상기 캐쉬에 저장된 기입명령의 총 점유율이 제5 기준값 이상이 되고, 상기 제2 기입명령의 대상 주소값들이 시퀀셜인 경우, 상기 호스트에서 상기 스토리지에 상기 제2 기입명령을 플러쉬(Flush)하는 것을 특징으로 하는 한다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템은 스토리지 시스템으로 기입 속도를 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 스토리지 시스템의 데이터 기입(Write) 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예에 따른 컴퓨팅 시스템(100)을 도시하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 컴퓨터 시스템(Computer System, CSYS)를 도시하는 도면이다.
도 4는 본 발명의 일 실시예에 따른, 유저 어플리케이션(150)을 통하여 입력된 데이터가 윈도우 운영 체제를 통하여 가공되어 스토리지(130)에 저장되는 과정을 설명하기 위한 도면이다.
도 5은 본 발명의 다른 실시예에 따른 스토리지 시스템의 데이터 기입(Write) 방법을 나타내는 순서도이다.
도 6은 본 발명의 또 다른 실시예에 따른 스토리지 시스템의 데이터 기입(Write) 방법을 나타내는 순서도이다.
도 7는 본 발명의 실시예에 따른 컴퓨팅 시스템(200)을 도시하는 도면이다.
도 8은 본 발명의 다른 실시예에 따른 스토리지 시스템의 데이터 기입(Write) 방법을 나타내는 순서도이다.
도 9는 본 발명의 실시예에 따른 컴퓨팅 시스템(300)을 도시하는 도면이다.
도 10은 본 발명의 실시예에 따른 컴퓨팅 시스템(400)을 도시하는 도면이다.
도 11은 SSD를 포함하는 컴퓨팅 시스템 및 네트워크 시스템을 나타내는 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 스토리지 시스템의 데이터 기입(Write) 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 스토리지 시스템의 데이터 기입 방법은 호스트가 제1 기입명령을 발행하는 단계(S110), 호스트가 제1 기입명령의 큐뎁쓰(Queue Depth)가 1인 경우, 캐쉬에 포함된 미리 할당된 엔트리에 저장하는 단계(S130, S150), 호스트가 제1 기입 완료신호를 생성하는 단계(S170), 호스트가 제2 기입명령을 발행하는 단계(S190)를 포함한다.
본 명세서에서 언급하는 호스트(HOST)는 호스트 컴퓨터(PC)를 의미할 수 있다. 또한, 호스트는 스토리지 시스템에 기입 동작을 수행하는 장치, 예를 들어, 멀티미디어 장치, 디지털 카메라, 디지털 TV와 같은 전자 장치를 의미할 수 있다.
본 명세서에서 언급하는 큐뎁쓰(Queue Depth)는 한번에 I/O를 수행할 수 있는 스토리지 포트의 물리적인 한계를 의미한다. 예를 들어, 큐뎁쓰가 1인 경우에는, 하나의 스토리지 포트를 사용하여 I/O 명령을 전달할 수 있다. 또한, 큐뎁쓰가 32인 경우에는 32개의 스토리지 포트를 사용하여 I/O 명령을 전달할 수 있다. 큐뎁쓰가 높아지는 경우, 다른 어플리케이션에서 스토리지 포트를 사용할 수 없게 되고, 큐뎁쓰가 낮아지는 경우, 유저 입장에서 느끼는 호스트 컴퓨터의 속도가 현저하게 감소할 수 있다.
일반적인 컴퓨팅 시스템에서, 오퍼레이팅 시스템에서 발행하는 큐뎁쓰가 1인 경우, 호스트는 기입 명령의 응답을 스토리지로부터 받기를 기다리고, 응답을 받은 후에 다른 기입 명령을 수행한다. 반면, 큐뎁쓰가 32인 경우에는 호스트는 32개의 기입 명령을 스토리지에 전달한 뒤에, 스토리지로부터 명령들의 응답을 받고 다른 기입 명령을 수행한다. 따라서, 큐뎁쓰가 1인 경우는 큐뎁쓰가 32인 경우보다 기입 명령의 전달 속도가 느리다.
본 명세서에서 캐쉬(Cache)는 호스트 컴퓨터에 포함되는 고속동작이 가능한 메모리를 의미할 수 있다. 예를 들어, 캐쉬(Cache)는 호스트 컴퓨터에 포함되는 휘발성 메모리(DRAM, SRAM)을 의미할 수 있다.
본 발명의 일 실시예에 따른 스토리지 시스템의 데이터 기입 방법은 큐뎁쓰가 1인 경우에, 기입명령들을 캐쉬의 미리 할당된 부분에 저장을 하고, 기입완료신호를 호스트 자체적으로 생성한다. 따라서, 호스트는 기입명령이 스토리지 시스템으로 전달된 것과 같이 처리하여 추후 기입 명령을 더욱 신속하게 발행할 수 있다. 따라서, 유저(User) 관점에서는 호스트(HOST) 컴퓨터의 동작을 더욱 신속하게 느낄 수 있다.
도 2는 본 발명의 실시예에 따른 컴퓨팅 시스템(100)을 도시하는 도면이다.
도 2를 참조하면, 컴퓨팅 시스템(100)은 호스트(HOST, 110) 및 스토리지(STORAGE, 130)를 포함할 수 있다.
스토리지(130)는 컨트롤러(Ctrl), 버퍼(Buffer), 메모리 어레이(MEM ARRAY)를 포함할 수 있다. 다만, 본 발명의 권리범위가 이에 제한되는 것은 아니다.
메모리 어레이(MEM ARRAY)는 예를 들어, DRAM, SRAM, PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리, NAND 플래쉬 메모리, 그리고 퓨전 플래시 메모리(예를 들면, SRAM 버퍼와 NAND 플래시 메모리 및 NOR 인터페이스 로직이 결합된 메모리) 등으로 구성될 수 있다.
컨트롤러(Ctrl)는 메모리 어레이(MEM ARRAY)의 동작을 제어할 수 있다. 예를 들어, 컨트롤러(Ctrl)는 복수의 기입명령들(WRT1: WRT32)를 수신하여, 각각의 명령에 포함된 주소에 대응하는 영역에 각각의 대응하는 데이터를 기입할 수 있다.
또한, 컨트롤러(Ctrl)는 버퍼(Buffer)에 저장된 논리 블록 주소(LBA) 및 물리 블록 주소(PBA)의 대응관계를 표시한 룩-업테이블(Look-UP table)를 참조하여, 기입명령에 따른 데이터를 메모리 어레이(MEM ARRAY)에 기입할 수 있다.
도 3은 본 발명의 일 실시예에 따른 컴퓨터 시스템(Computer System, CSYS)를 도시하는 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 컴퓨터 시스템(100)는 호스트(110) 및 스토리지 시스템(130)을 포함할 수 있다. 호스트(110)는 어플리케이션 인터페이스(Application Interface, APP I/F), 프로세서(Processor, PROS), 랜덤 억세스 메모리(Random Access Memory, RAM) 및 파일 관리 장치(File Management Device, FMD)를 포함할 수 있다.
프로세서(PROS)는 스토리지 시스템(130)에 데이터를 입출력하기 위한 입출력 명령을 발행할 수 있다. 또한 프로세서(PROS)는 스토리지 시스템(130)으로부터 전송된 데이터를 랜덤 억세스 메모리(RAM)에 저장할 수 있다. 또한 프로세서(PROS)는 램덤 억세스 메모리(RAM)에 저장된 데이터를 수신하여 가공, 연산, 및/또는 처리 할 수 있다.
어플리케이션 인터페이스(APP I/F)는 사용자 또는 어플리케이션의 요청을 수신하여 프로세서(PROS)로 데이터 또는 데이터 입출입 명령을 전송할 수 있다.
프로세서(PROS)는 호스트의 요청에 응답하여 파일 관리 장치(FMD)가 스토리지 시스템(STORAGE)에 저장되어 있는 정보가 랜덤 억세스 메모리(RAM)에 저장될 수 있도록 제어할 수 있다. 여기서 랜덤 억세스 메모리(RAM)는 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory) 또는 다른 종류의 휘발성 메모리 또는 이들의 조합일 수 있다. 본 명세서의 다른 부분에서 랜덤 엑세스 메모리(RAM)은 버퍼(Buffer) 또는 캐쉬(Cache)라고 지칭될 수 있다.
파일 관리 장치(FMD)는 적어도 하나의 파일 시스템 및/또는 가상 파일 시스템을 사용할 수 있다. 예를 들어, 파일 관리 장치(FMD)는 제1 파일 시스템(FS1) 및 제2 파일 시스템(FS2)를 사용할 수 있다. 가상 파일 시스템(VFS)은 클라이언트 응용 프로그램이 여러 파일 시스템(FS1, FS2)에 같은 방법으로 접근할 수 있게 한다. 가상 파일 시스템(VFS)은 컴퓨터 운영 체제의 커널(kernel)과 파일 시스템(FS1, FS2)과의 인터페이스를 정의할 수 있다.
예를 들어, 파일 관리 장치(FMD)의 파일 시스템(FS1, FS2)은 유닉스 계열의 파일 시스템, 리눅스의 파일 시스템, 맥 OS의 파일 시스템, 마이크로 소프트 윈도의 파일 시스템일 수 있다.
예를 들어, 파일 시스템(FS1, FS2)은 Advanced Disc Filing System, AdvFS, Be File System (BFS), Btrfs, CrossDOS, 디스크 파일링 시스템 (DFS), Episode, EFS, exFAT, ext, FAT, Files-11, 계층적 파일 시스템(HFS), HFS 플러스, High Performance File System, IBM GPFS, JFS, 매킨토시 파일 시스템, MINIX, 넷웨어 파일 시스템, NILFS, 노벨 스토리지 서비스, NTFS, QFS, QNX4FS, ReiserFS(Reiser4), SpadFS, UBIFS, 유닉스 파일 시스템, Veritas File System (VxFS), VFAT, Write Anywhere File Layout (WAFL), XFS, Xsan, ZFS일 수 있다.
본 발명의 실시예에 따른 컴퓨팅 시스템(CSYS)이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리 및 베이스밴드 칩셋(baseband chipset)과 같은 모뎀이 추가적으로 제공될 수 있다. 또한, 본 발명의 실시예에 따른 컴퓨팅 시스템(CSYS)에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램등을 더 포함할 수 있다.
다시 도 2를 참조하면, 호스트(110)는 도 3의 프로세서(PROS), 랜덤 억세스 메모리(RAM) 및 호스트 인터페이스(HOST I/F)를 포함할 수 있다. 이하, 호스트(110)의 운영 체제(Operating System)의 동작에 대해서 설명하도록한다.
호스트(110)는 유저 어플리케이션(User Application, 150)을 통하여 입력된 데이터를 수신할 수 있다. 또한 호스트(110)는 유저 어플리케이션(User Application, 150)을 통하여, 출력 데이터를 출력할 수 있다. 유저 어플리케이션(150)을 통하여 입력된 데이터는 운영 체제의 파일 시스템을 통하여 가공되어 스토리지(130)에 저장될 수 있다.
도 4는 본 발명의 일 실시예에 따른, 유저 어플리케이션(150)을 통하여 입력된 데이터가 윈도우 운영 체제를 통하여 가공되어 스토리지(130)에 저장되는 과정을 설명하기 위한 도면이다.
유저 어플리케이션(150)을 통하여 입력된 데이터는 윈도우 응용 프로그래밍 인터페이스(Window Application Programming Interface) 및 입출력 서브 시스템(IO Sub System)을 거쳐서 파일 시스템(File System)으로 전달된다. 파일 시스템은 입력된 데이터가 스토리지(STORAGE)에서 논리적으로 어디에 저장되는지에 대한 정보를 포함하도록 가공한다. 즉, 입력된 데이터는 볼륨 메니져(Volume Manager)를 통하여 볼륨 정보를, 파티션 메니져(Partition Manager)를 통하여 파티션 정보를, 디스크 클래스 필터 드라이버(Disk Class Filter Driver)를 통하여 디스크 정보를 포함하도록 가공된다. 가공된 입력 데이터는 포트(Port)를 통하여 스토리지(STORAGE)에 저장된다.
파일 시스템(File System)은 상위 필터 드라이버(Upper Filter Driver) 또는 하위 필터 드라이버(Lower Filter Driver)를 더 포함할 수 있다. 상위 필터 드라이버(Upper Filter Driver)는 입력된 데이터를 파일단위로 구분하여 가공 할 수 있다. 하위 필터 드라이버(Lower Filter Driver)는 LBA(logical block addressing) 단위로 구분하여 가공할 수 있다. 상위 필터 드라이버(Upper Filter Driver), 하위 필터 드라이버(Lower Filter Driver)를 통해서, 예를 들어, 호스트는 기입 완료 신호를 생성하고, 캐쉬에 저장된 데이터의 사이즈를 체크하여 리오더링을 수행하고, 기입 명령을 체크하여 스토리지로 직접적으로 바이패쓰 등의 동작을 수행 할 수 있다.
다시 도 2를 참조하면, 호스트(110)는 유저 어플리케이션(User Application, 150)을 통하여 입력된 데이터를 수신할 수 있다. 오퍼레이팅 시스템(OS, 170)은 수신된 데이터를 스토리지(STORAGE)에 기입하도록 기입 명령(WRT[Addr1: AddrK, Dta 1: DtaK])을 발행할 수 있다. 데이터(Dta1 내지 DtaK) 각각은 기입 명령(WRT[Addr1: AddrK, Dta 1: DtaK])에 따라서, 스토리지(STORAGE)의 어드레스(Addr1 내지 AddrK)에 각각 입력될 수 있다.
본 발명의 일 실시예에 따른 호스트(110)는 오퍼레이팅 시스템에서 발행된 기입 명령의 큐뎁쓰가 1인 경우, 캐쉬(190)에 엔트리(ETR1 내지 ETR32)를 할당하고, 오퍼레이팅 시스템에 의하여 가공된 기입 명령을 각각의 엔트리에 저장한 후, 기입 명령에 대한 기입 완료 신호를 생성할 수 있다. 따라서, 호스트(110)는 스토리지(130)에서 기입 완료 신호를 수신하지 않고, 자체적으로 기입 완료 신호를 생성하고, 다음 기입명령을 발행할 수 있다. 따라서, 사용자 입장에서 기입 명령이 신속하게 전달되는 것으로 체감할 수 있다.
캐쉬(190)는 오퍼레이팅 시스템(170)에서 발행한 기입 명령(WRT[Addr1: AddrK, Dta 1: DtaK])을 엔트리(ETR1: ETR32)에 저장할 수 있다. 호스트(110)는 기입 명령을 저장하기 위한 영역을 캐쉬(190)의 일부에 미리 할당할 수 있다. 호스트(110)는 엔트리(ETR1: ETR32)에 일정 개수 이상의 기입 명령이 채워지는 경우, 기입 명령들이 포함된 플러쉬 명령(Flush[WRT1: WRT32])을 스토리지(130)로 전달 할 수 있다.
본 발명의 다른 실시예에 따른 호스트(110)는 캐쉬(Cache)에 저장된 기입 명령들을 캐쉬(Cache)에서 스토리지로 일정한 수의 엔트리 단위로 플러쉬(Flush) 할 수 있다.
예를 들어, 호스트(HOST)는 플러쉬(Flush)를 진행하면서, 제1 기입명령(WRT1) 내지 제32 기입명령(WRT32)을 큐뎁쓰가 32인 경우와 같이, 한번에 복수의 포트를 사용하여 스토리지로 전송할 수 있다. 따라서, 호스트(HOST)는 큐뎁쓰가 1인 경우에도, 전송 효율을 높일 수 있다.
본 발명의 다른 실시예에서, 저장된 기입 명령의 수가 일정 개수 이상 높아지는 경우 캐쉬(Cache)에서 스토리지로 일정한 수의 엔트리 단위로 플러쉬 할 수 있다.
도 5은 본 발명의 다른 실시예에 따른 스토리지 시스템의 데이터 기입(Write) 방법을 나타내는 순서도이다.
도 5을 참조하면, 본 발명의 다른 실시예에 따른 스토리지 시스템의 데이터 기입 방법은 도 1에서 설명한 스토리지 시스템의 데이터 기입 방법 이외에, 캐쉬에 저장된 기입명령들의 개수가 제1 기준값 이상인 경우, 기입명령들을 상기 기입명령들에 대응하는 어드레스 주소값에 따라서 리오더링(Reordering)하는 단계(S260, S270)를 더 포함할 수 있다. 여기서, 리오더링은 기입명령들의 순서를 기입명령들에 대응하는 어드레스 주소값의 순서와 일치하도록 재배열하는 것을 의미할 수 있다. 보다 구체적인 설명은 도 7에 대한 설명에서 후술한다.
도 6은 본 발명의 또 다른 실시예에 따른 스토리지 시스템의 데이터 기입(Write) 방법을 나타내는 순서도이다.
도 6을 참조하면, 본 발명의 또 다른 실시예에 따른 스토리지 시스템의 데이터 기입 방법은 도 5에서 설명한 스토리지 시스템의 데이터 기입 방법 이외에, 캐쉬에 저장된 기입명령들의 총 점유율이 제2 기준값 이상 높아지는 경우, 캐쉬에서 스토리지 시스템으로 기입명령들의 플러쉬(Flush)를 시작하는 단계를 더 포함할 수 있다. 여기서, 플러쉬(Flush)는 일정한 수의 엔트리 단위로 할 수 있다.
또한, 본 발명의 또 다른 실시예에 따른 스토리지 시스템의 데이터 기입 방법은 캐쉬에 저장된 기입명령의 총 점유율이 제3 기준값 이하로 낮아지는 경우, 플러쉬(Flush)를 정지하는 단계를 더 포함할 수 있다. 여기서, 플러쉬(Flush)는 일정한 수의 엔트리 단위로 할 수 있다. 보다 구체적인 설명은 도 7에 대한 설명에서 후술한다.
도 7는 본 발명의 실시예에 따른 컴퓨팅 시스템(200)을 도시하는 도면이다.
도 7를 참조하면, 컴퓨팅 시스템(200)은 호스트(HOST, 210) 및 스토리지(STORAGE, 230)를 포함할 수 있다. 스토리지(230)는 도 2의 스토리지(130)와 유사하게 구성될 수 있다.
호스트(210)는 유저 어플리케이션(User Application, 250)을 통하여 입력된 데이터를 수신할 수 있다. 오퍼레이팅 시스템(OS, 270)은 수신된 데이터를 스토리지(STORAGE)에 기입하도록 기입 명령(WRT[Addr1: AddrK, Dta 1: DtaK])을 발행할 수 있다. 데이터(Dta1 내지 DtaK) 각각은 기입 명령(WRT[Addr1: AddrK, Dta 1: DtaK])에 따라서, 스토리지(STORAGE)의 어드레스(Addr1 내지 AddrK)에 각각 입력될 수 있다.
캐쉬(280)는 오퍼레이팅 시스템(270)에서 발행한 기입 명령(WRT[Addr1: AddrK, Dta 1: DtaK])을 엔트리(ETR1: ETR32)에 저장할 수 있다. 호스트(210)는 엔트리(ETR1: ETR32)에 일정 개수 이상의 기입 명령이 채워지는 경우, 기입 명령들이 포함된 플러쉬 명령(Flush[WRT1: WRT32])을 스토리지(230)로 전달 할 수 있다.
본 발명의 일 실시예에 따른 호스트(210)는 리오더링 엔진(Re-Ordering Engine, 290)을 더 포함할 수 있다. 리오더링 엔진(290)은 캐쉬에 저장된 기입명령들의 개수가 제1 기준값 이상인 경우, 기입명령들을 상기 기입명령들에 대응하는 어드레스 주소값에 따라서 리오더링할 수 있다.
예를 들어, 캐쉬(280)에 저장된 큐뎁쓰가 1인 기입명령들의 개수가 32개이고, 각각의 기입명령들이 엔트리(ETR1: ETR32)에 저장된다고 가정한다. 리오더링 엔진(290)은 각각의 기입 명령들(예를 들어, WRT1 내지 WRT 32)을 스토리지의 어드레스의 순서에 맞추어서 리오더링(ROD[WRT1: WRT32]) 할 수 있다.
리오더링된 기입 명령들은 다시 캐쉬(280)에 저장된 후 스토리지(STORAGE)로 플러쉬(Flush[WRT1: WRT32])될 수 있다. 도 7에는 표시되지 않았지만, 리오더링된 기입 명령들은 다시 캐쉬(280)에 저장되지 않고, 스토리지(STORAGE)로 플러쉬(Flush[WRT1: WRT32])될 수 있다. 따라서, 리오더링된 기입 명령들은 시퀀셜(Sequential) 특성을 가지므로, 입력 데이터들이 스토리지(230)에 신속하게 기입 될 수 있다.
본 발명의 일 실시예에 따른 호스트(210)는 캐쉬에 저장된 기입명령들의 총 점유율이 제2 기준값 이상 높아지는 경우, 캐쉬에서 스토리지 시스템으로 기입명령들의 플러쉬(Flush)를 시작할 수 있다.
또한, 호스트(210)는 스토리지 시스템의 데이터 기입 방법은 캐쉬에 저장된 기입명령의 총 점유율이 제3 기준값 이하로 낮아지는 경우, 플러쉬(Flush)를 정지할 수 있다.
예를 들어, 캐쉬(280)의 용량이 1GB라고 할 때, 기입 명령들의 총 싸이즈가 60MB라고 가정한다. 이러한 경우, 기입 명령들의 총 점유율은 6%이다. 만약, 제2 기준값이 5%라고 한다면, 기입 명령은, 예를 들어, 128KB씩 계속적으로 플러쉬(Flush) 될 수 있다. 이러한 경우, 2MB씩 계속적인 플러쉬가 이루어지고, 캐쉬(280)에서 차지하는 기입 명령들의 총 싸이즈가 50MB 이하로 낮아질 수 있다. 캐쉬(280)에서 차지하는 기입 명령들의 총 싸이즈가 50MB 이하로 낮아지면, 호스트(210)는 플러쉬를 정지할 수 있다.
따라서, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(200)은 일정한 싸이즈의 기입명령들을 리오더링하여, 기입 명령이 시퀀셜 특성을 가지도록 하여, 입력 데이터들이 스토리지(230)에 신속하게 기입될 수 있도록한다.
도 8은 본 발명의 다른 실시예에 따른 스토리지 시스템의 데이터 기입(Write) 방법을 나타내는 순서도이다.
도 8을 참조하면, 본 발명의 다른 실시예에 따른 스토리지 시스템의 데이터 기입 방법은 호스트가 제3 기입명령을 발행하는 단계(S410), 연속된 기입 명령의 전체 싸이즈가 제4 기준값 이상이고, 이전 기입 명령의 주소값과 동일하지 않은 경우, 호스트에서 발행된 기입 명령을 캐쉬에 저장하지 않고, 스토리지로 바이패스(Bypass)하는 단계(S430, S450, S470)를 포함할 수 있다. 구체적인 설명은 도 9 및 도 10에 대한 설명에서 후술한다.
도 9는 본 발명의 실시예에 따른 컴퓨팅 시스템(300)을 도시하는 도면이다.
도 9를 참조하면, 컴퓨팅 시스템(300)은 호스트(HOST, 310) 및 스토리지(STORAGE, 330)를 포함할 수 있다. 스토리지(330)는 도 2의 스토리지(130)와 유사하게 구성될 수 있다.
본 발명의 일 실시예에 따른 호스트(310)는 제1 바이패쓰 엔진(Bypass Engine_1, 380)을 포함할 수 있다. 제1 바이패쓰 엔진(380)은 오퍼레이팅 시스템(370)에서 발행된 기입 명령(WRT_3[Addr1: AddrM, Dta 1: DtaM])이 바이패쓰할 수 있는지를 체크한다. 즉, 제3 기입명령의 대상 데이터들의 총 싸이즈가 제4 기준값 이상이고, 제3 기입명령의 대상 주소값들이 시퀀셜인지 체크한다.
구체적으로, 오퍼레이팅 시스템(370)은 발행된 제3 기입명령에 대해서 바이패쓰 체크 명령(Bypass_CHK[WRT_3])을 제1 바이패쓰 엔진(380)에 송신한다. 제1 바이패쓰 엔진(380)은 제3 기입명령의 대상 주소값들(Addr1: AddrM)이 시퀀셜인지 판단하고, 제3 기입명령의 대상 데이터(Dta1 내지 DtaM)들의 전체 싸이즈가 제4 기준값 이상인지 여부를 판단할 수 있다.
제3 기입명령의 대상 주소값들(Addr1: AddrM)이 시퀀셜이고, 제3 기입명령의 대상 데이터(Dta1 내지 DtaM)들의 전체 싸이즈가 예를 들어, 4MB 이상이라면, 오프레이팅 시스템(370)은 스토리지(330)로 직접 기입명령을 바이패쓰(Bypass[WRT_3])할 수 있다. 따라서, 시퀀셜한 주소값들을 대상으로 하는 기입 명령의 대상 데이터가 일정한 싸이즈 이상인 경우, 캐쉬에 저장하지 않고, 직접 스토리지에 전달하여 기입속도를 향상시킬 수 있다.
도 10은 본 발명의 실시예에 따른 컴퓨팅 시스템(400)을 도시하는 도면이다.
도 10를 참조하면, 컴퓨팅 시스템(400)은 호스트(HOST, 410) 및 스토리지(STORAGE, 430)를 포함할 수 있다. 스토리지(430)는 도 2의 스토리지(130)와 유사하게 구성될 수 있다.
본 발명의 일 실시예에 따른 호스트(410)는 제2 바이패쓰 엔진(Bypass Engine_2, 490)을 포함할 수 있다. 제2 바이패쓰 엔진(490)은 오퍼레이팅 시스템(470)에서 발행된 기입 명령(WRT_1[Addr1: AddrN, Dta 1: DtaN])이 캐쉬에 저장되어서 캐쉬에 저장된 기입명령의 총 점유율이 제5 기준값 이상이 되고, 그 후에 발생되는 제2 기입명령의 대상 주소값들이 시퀀셜인 경우, 호스트(410)에서 스토리지(430)에 제2 기입명령을 플러쉬(Flush)할 수 있다.
구체적으로, 기입 명령(WRT_1[Addr1: AddrN, Dta 1: DtaN])이 캐쉬에 저장되어서 캐쉬에 저장된 기입명령의 총 점유율이 제5 기준값 이상이 되는 경우, 제2 바이패쓰 엔진(490)은 그 후에 발생되는 제2 기입명령의 대상 어드레스가 시퀀셜인지 판단할 수 있다. 제2 기입명령의 대상 어드레스가 시퀀셜이라면, 오퍼레이팅 시스템(470)은 제2 기입명령(WRT_2)을 직접 스토리지(430)로 전달하는 바이패쓰(Bypass[WRT_2]) 명령을 생성할 수 있다.
따라서, 시퀀셜한 주소값들을 대상으로 하는 기입 명령이 발행된 경우, 캐쉬(480)에 저장된 기입명령의 총 점유율이 제5 기준값 이상되는 경우, 캐쉬에 저장하지 않고, 직접 스토리지에 전달하여 기입속도를 향상시킬 수 있다.
도 11은 SSD를 포함하는 컴퓨팅 시스템 및 네트워크 시스템을 나타내는 도면이다.
도 11을 참조하면, 본 발명의 실시예에 따른 네트워크 시스템(NSYS)은 네트워크를 통해 연결되는 컴퓨팅 시스템(CSYS) 및 다수의 단말들(TEM1~TEMn)을 포함할 수 있다. 본 발명의 실시예에 따른 컴퓨팅 시스템(CSYS)은 네트워크에 연결되는 다수의 단말들(TEM1~TEMn)로부터 수신되는 요청을 처리하는 서버(SERVER) 및 단말들(TEM1~TEMn)로부터 수신되는 요청에 대응되는 데이터를 저장하는 SSD를 포함하는 구비할 수 있다.
도 11의 호스트(HOST)는 도 2의 호스트(110)일 수 있다. 또한, 도 11의 컴퓨팅 시스템(CSYS)은 도 3의 컴퓨팅 시스템(CSYS)일 수 있다. 또한, 도 11의 호스트(HOST)에서 네트워크에 포함된 다수의 단말들(TEM1~TEMn)에 데이터의 기입명령을 발행하는 경우에도 도 1의 방법이 응용될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 스토리지 시스템의 데이터를 기입하는 방법에 있어서,
    호스트가 제1 기입명령을 발행하는 단계;
    상기 호스트가 상기 제1 기입명령의 큐뎁쓰(Queue Depth)가 제1값인 경우, 캐쉬에 포함된 미리 할당된 엔트리에 저장하는 단계;
    상기 호스트가 상기 제1 기입명령에 대한 기입 완료신호를 생성하는 단계;
    상기 호스트가 제2 기입명령을 발행하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 데이터 기입 방법.
  2. 제1항에 있어서, 상기 캐쉬에 저장된 기입명령들의 개수가 제1 기준값 이상인 경우, 상기 기입명령들을 상기 기입명령들에 대응하는 어드레스 주소값에 따라서 리오더링(Reordering)하는 단계를 더 포함하는 스토리지 시스템의 데이터 기입 방법.
  3. 제2항에 있어서, 상기 리오더링은 상기 기입명령들의 순서가 상기 기입명령들에 대응하는 어드레스 주소값의 순서와 일치하도록 재배열하는 것을 특징으로 하는 스토리지 시스템의 데이터 기입 방법.
  4. 제2항에 있어서, 상기 캐쉬에 저장된 기입명령들의 총 점유율이 제2 기준값 이상 높아지는 경우, 상기 캐쉬에서 상기 스토리지 시스템으로 기입명령들의 플러쉬(Flush)를 시작하는 단계를 더 포함하는 스토리지 시스템의 데이터 기입 방법.
  5. 제4항에 있어서, 상기 캐쉬에 저장된 기입명령의 총 점유율이 제3 기준값 이하로 낮아지는 경우, 상기 플러쉬(Flush)를 정지하는 단계를 더 포함하는 스토리지 시스템의 데이터 기입 방법.
  6. 제4항 또는 제5항에 있어서, 상기 플러쉬(Flush)는 일정한 수의 엔트리 단위로 하는 것을 특징으로 하는 스토리지 시스템의 데이터 기입 방법.
  7. 제1항에 있어서, 상기 제2 기입명령의 대상 데이터들의 총 싸이즈가 제3 기준값 이상이고, 상기 제2 기입명령의 대상 주소값들이 시퀀셜인 경우, 상기 호스트에서 상기 캐쉬에 전송하지 않고, 상기 호스트에서 상기 스토리지에 상기 제2 기입명령을 플러쉬(Flush)하는 단계를 포함하는 스토리지 시스템의 데이터 기입 방법.
  8. 제1항에 있어서, 상기 제1 기입명령이 상기 캐쉬에 저장되어 상기 캐쉬에 저장된 기입명령의 총 점유율이 제4 기준값 이상이 되고, 상기 제2 기입명령의 대상 주소값들이 시퀀셜인 경우, 상기 호스트에서 상기 스토리지에 상기 제2 기입명령을 플러쉬(Flush)하는 단계를 포함하는 스토리지 시스템의 데이터 기입 방법.
  9. 제7항 또는 제8항에 있어서, 상기 제2 기입명령의 대상 어드레스가 상기 캐쉬에 이미 저장된 기입명령의 대상 어드레스와 일치하는 경우, 상기 이미 저장된 기입명령은 스토리지로 플러쉬되지 않고, 상기 제2 기입명령만 스토리지로 플러쉬되는 것을 특징으로 하는 스토리지 시스템의 데이터 기입 방법.
  10. 호스트 및 스토리지 시스템을 포함하는 컴퓨팅 시스템에 있어서,
    상기 호스트는 제1 기입명령의 큐뎁쓰(Queue Depth)가 1인 경우, 캐쉬에 포함된 미리 할당된 엔트리에 저장하고, 상기 제1 기입명령에 대한 기입 완료신호를 생성한 후에, 제2 기입명령을 발행하는 것을 특징으로 하는 컴퓨팅 시스템.
KR1020130116891A 2013-09-30 2013-09-30 스토리지 시스템을 포함하는 컴퓨팅 시스템 및 그의 데이터 기입 방법 KR102086778B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130116891A KR102086778B1 (ko) 2013-09-30 2013-09-30 스토리지 시스템을 포함하는 컴퓨팅 시스템 및 그의 데이터 기입 방법
US14/336,966 US9557935B2 (en) 2013-09-30 2014-07-21 Computing system including storage system and method of writing data thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130116891A KR102086778B1 (ko) 2013-09-30 2013-09-30 스토리지 시스템을 포함하는 컴퓨팅 시스템 및 그의 데이터 기입 방법

Publications (2)

Publication Number Publication Date
KR20150037365A true KR20150037365A (ko) 2015-04-08
KR102086778B1 KR102086778B1 (ko) 2020-04-14

Family

ID=52741305

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130116891A KR102086778B1 (ko) 2013-09-30 2013-09-30 스토리지 시스템을 포함하는 컴퓨팅 시스템 및 그의 데이터 기입 방법

Country Status (2)

Country Link
US (1) US9557935B2 (ko)
KR (1) KR102086778B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11243715B2 (en) 2018-11-22 2022-02-08 SK Hynix Inc. Memory controller and operating method thereof

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI588824B (zh) * 2015-12-11 2017-06-21 捷鼎國際股份有限公司 加快在不連續頁面寫入資料之電腦系統及其方法
US10331902B2 (en) 2016-12-29 2019-06-25 Noblis, Inc. Data loss prevention

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040117441A1 (en) * 2002-12-09 2004-06-17 Infabric Technologies, Inc. Data-aware data flow manager
US20090006606A1 (en) * 2007-06-26 2009-01-01 Seagate Technology Llc Command queue loading
US20110302367A1 (en) * 2009-12-10 2011-12-08 International Business Machines Corporation Write Buffer for Improved DRAM Write Access Patterns

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6170042B1 (en) * 1998-02-24 2001-01-02 Seagate Technology Llc Disc drive data storage system and method for dynamically scheduling queued commands
US6434648B1 (en) * 1998-12-10 2002-08-13 Smart Modular Technologies, Inc. PCMCIA compatible memory card with serial communication interface
US6195727B1 (en) * 1999-03-31 2001-02-27 International Business Machines Corporation Coalescing raid commands accessing contiguous data in write-through mode
US6385676B1 (en) * 1999-07-12 2002-05-07 Hewlett-Packard Company Coherent ordering queue for computer system
US6629211B2 (en) * 2001-04-20 2003-09-30 International Business Machines Corporation Method and system for improving raid controller performance through adaptive write back/write through caching
US7363399B2 (en) * 2005-08-17 2008-04-22 International Business Machines Corporation Method, apparatus and computer program product providing storage network dynamic tuning of I/O flow with Queue Depth
US7840751B2 (en) * 2007-06-29 2010-11-23 Seagate Technology Llc Command queue management of back watered requests
US9274713B2 (en) * 2014-04-03 2016-03-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Device driver, method and computer-readable medium for dynamically configuring a storage controller based on RAID type, data alignment with a characteristic of storage elements and queue depth in a cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040117441A1 (en) * 2002-12-09 2004-06-17 Infabric Technologies, Inc. Data-aware data flow manager
US20090006606A1 (en) * 2007-06-26 2009-01-01 Seagate Technology Llc Command queue loading
US20110302367A1 (en) * 2009-12-10 2011-12-08 International Business Machines Corporation Write Buffer for Improved DRAM Write Access Patterns

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11243715B2 (en) 2018-11-22 2022-02-08 SK Hynix Inc. Memory controller and operating method thereof

Also Published As

Publication number Publication date
US9557935B2 (en) 2017-01-31
US20150095574A1 (en) 2015-04-02
KR102086778B1 (ko) 2020-04-14

Similar Documents

Publication Publication Date Title
CN109725840B (zh) 利用异步冲刷对写入进行节流
KR102556431B1 (ko) 이종 불휘발성 메모리 형태를 갖는 솔리드 스테이트 드라이브
US9720596B1 (en) Coalescing writes for improved storage utilization
US10156993B1 (en) Managing inline data compression in storage systems
US9934108B2 (en) System and method for optimizing mirror creation
US8782335B2 (en) Latency reduction associated with a response to a request in a storage system
US10216418B2 (en) Storage apparatus and method for autonomous space compaction
US9311002B1 (en) Systems, methods, and computer readable media for compressing data at a virtually provisioned storage entity
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
US9971692B2 (en) Supporting concurrent operations at fine granularity in a caching framework
JP2012523624A (ja) フラッシュメモリデータストレージデバイスにデータを格納するための方法及び装置
WO2020053744A1 (en) System and method for storing data using ethernet drives and ethernet open-channel drives
US10296240B2 (en) Cache management
US9916249B2 (en) Space allocation in a multi-grained writeback cache
JP2020533694A (ja) クラウド・ベースのランクを使用するデータの動的再配置
US10095595B2 (en) Instant recovery in a multi-grained caching framework
US11042328B2 (en) Storage apparatus and method for autonomous space compaction
KR20140042458A (ko) 스토리지 시스템의 파일 관리 장치, 파일 관리 방법
US10628311B2 (en) Reducing defragmentation in a multi-grained writeback cache
US20190243758A1 (en) Storage control device and storage control method
US20170139829A1 (en) Scalable metadata management in a multi-grained caching framework
JP6171084B2 (ja) ストレージシステム
KR102086778B1 (ko) 스토리지 시스템을 포함하는 컴퓨팅 시스템 및 그의 데이터 기입 방법
US20170052736A1 (en) Read ahead buffer processing
EP4310690A1 (en) Systems and methods for data prefetching for low latency data read from a remote server

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant