WO2010093114A1 - 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치 - Google Patents

고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치 Download PDF

Info

Publication number
WO2010093114A1
WO2010093114A1 PCT/KR2009/007067 KR2009007067W WO2010093114A1 WO 2010093114 A1 WO2010093114 A1 WO 2010093114A1 KR 2009007067 W KR2009007067 W KR 2009007067W WO 2010093114 A1 WO2010093114 A1 WO 2010093114A1
Authority
WO
WIPO (PCT)
Prior art keywords
page
victim
buffer cache
state disk
solid state
Prior art date
Application number
PCT/KR2009/007067
Other languages
English (en)
French (fr)
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 EP09840104A priority Critical patent/EP2397945A4/en
Priority to US13/148,115 priority patent/US8874826B2/en
Priority to JP2011550047A priority patent/JP2012517645A/ja
Priority to CN2009801566235A priority patent/CN102317924A/zh
Publication of WO2010093114A1 publication Critical patent/WO2010093114A1/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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/10Program control for peripheral devices
    • 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
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk

Definitions

  • the present invention relates to a method and apparatus for programming a buffer cache in a solid state disk system, and more particularly, to a method and apparatus for reducing delay incurred when storing a page of the buffer cache in a memory composed of a plurality of memory chips in a solid state disk system. It is about.
  • Storage devices for storing data may include magnetic disks and semiconductor memories. Since storage devices have different physical characteristics by type, a management method corresponding to the physical characteristics is required.
  • Magnetic disks have been widely used as a conventional storage device. Magnetic disks, on average, feature read and write times of a few milliseconds per kilobyte. In addition, the magnetic disk has a characteristic that the read and write time is different because the time that the arm arrives varies depending on the physical location where the data is stored.
  • non-volatile memory which consumes less power and consumes less power than the magnetic disk, is rapidly replacing magnetic disk. This is possible because of the large capacity of the nonvolatile memory.
  • a nonvolatile memory is a semiconductor memory device capable of electrically reading, writing, and erasing and maintaining stored data even without a power supply. In addition to writing, the process of storing data for nonvolatile memory devices is also called programming.
  • Flash memory is a representative example of non-volatile memory, which is smaller in size, smaller in power consumption, and faster in reading compared to a conventional hard disk drive (HDD). There is this. Recently, a solid state disk (SSD) has been proposed to replace an HDD by using a large flash memory.
  • SSD solid state disk
  • flash memory examples include NAND flash memory and NOR flash memory.
  • the NAND method and the NOR method may be distinguished by a configuration and an operation method of a cell array.
  • a flash chip When one flash memory is referred to as a flash chip, a multichip using a plurality of flash chips for a large capacity can be constructed. At this time, the plurality of flash chips share one data bus. Flash memory takes longer to write or erase than the transfer. Therefore, in the case of multichip, a pipelining technique is used. Pipelining can hide the write time of one chip by sequentially transmitting and writing the other flash chips while performing a write command to one flash chip.
  • Pages, the basic read / write unit of current flash memory, are much larger than sectors, the basic unit of command issued by the host system. Therefore, when a small write command is sent from the host, the controller reads the original page from the corresponding flash chip via the buffer cache or flash translation layer and creates a page with the requested sector. After that, you have to do the extra work of rewriting the page on the flash chip. In this case, however, the controller must wait until the write operation finishes to read the original page if the flash chip storing the original page is being written.
  • Embodiments of the present invention provide a method and apparatus for programming a buffer cache in a solid state disk system.
  • Embodiments of the present invention provide a programming method and apparatus for reducing the delay incurred when storing pages of a buffer cache in a memory composed of a plurality of memory chips in a solid state disk system.
  • Embodiments of the present invention provide a method and apparatus for preferentially storing pages that can be stored without waiting when storing pages of a buffer cache in a memory composed of a plurality of memory chips in a solid state disk system.
  • An apparatus for programming a buffer cache of a solid state disk system includes a buffer cache unit for storing pages; A memory unit including a plurality of memory chips; And a controller for selecting at least one page from among the pages as a victim page in consideration of a waiting time that may occur when the memory chip is stored in at least one target memory chip of the plurality of memory chips.
  • An apparatus for programming a buffer cache of a solid state disk system includes a buffer cache unit for storing a page; A memory unit including one or more memory chips; And a controller for selecting a new victim page until a victim page selected from among the pages of the buffer cache unit is to be waited for storing in a target memory chip of the memory unit.
  • a buffer cache programming method of a solid state disk system includes selecting a victim page from a page of a buffer cache unit; And when the victim page needs to wait to store the target memory chip in the memory unit, selecting a new victim page until selecting the victim page that can be stored without waiting.
  • An embodiment of the present invention includes a buffer cache unit for storing pages; A memory unit including a plurality of memory chips; And a controller for selecting at least one page as a victim page in consideration of a waiting time that may occur when storing the at least one target memory chip among the plurality of memory chips among the pages.
  • a method and apparatus for programming that improves write performance by reducing the delay that can occur when storing pages in the buffer cache.
  • FIG. 1 is a diagram illustrating a configuration of a solid state disk system for storing pages of a buffer cache without delay according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating a configuration of a memory unit in a solid state disk system according to an exemplary embodiment of the present invention.
  • FIG. 3 is a diagram illustrating an example of storing a page of a buffer cache without delay in a solid state disk system according to an embodiment of the present invention compared with a conventional method.
  • FIG. 4 is a flowchart illustrating a process of storing a page of a buffer cache without delay in a solid state disk system according to an embodiment of the present invention.
  • Embodiments of the present invention relate to a programming method and an apparatus for reducing a delay caused when a page of a buffer cache is stored in a memory composed of a plurality of memory chips in a solid state disk system.
  • a programming method and an apparatus for reducing a delay caused when a page of a buffer cache is stored in a memory composed of a plurality of memory chips in a solid state disk system We will look at the structure of a solid state disk system according to an example.
  • FIG. 1 is a diagram illustrating a configuration of a solid state disk system for storing pages of a buffer cache without delay according to an embodiment of the present invention.
  • a solid state disk (SSD) system 120 may include a buffer cache unit 122, a translation layer unit 124, a memory unit 126, and a controller 128. .
  • the host 110 makes a sector-by-sector read request or write request to the solid state disk system 120.
  • the buffer cache unit 122 stores data that is frequently used to reduce the time required for a read operation or a write operation.
  • the buffer cache unit 122 may mainly operate as write only. This serves to hide the slow write performance of the memory unit 126. In other words, if the same request comes back in a short time, the buffer cache 122 may process the memory immediately, so the memory 126 does not need to be searched.
  • the transformation layer unit 124 may construct a map between a physical sector and a logical sector based on the result of access to at least one idle bank. In other words, the translation layer unit 124 converts the requested logical address into a corresponding physical address, and converts the physical address into a logical address. In addition, since the basic read / write unit of the memory unit 126 is a page, the translation layer unit 124 converts the request in units of sectors into units of pages.
  • the memory unit 126 includes a plurality of memory chips. The configuration of the memory unit 126 will be described with reference to FIG. 2 below.
  • FIG. 2 is a diagram illustrating a configuration of a memory unit in a solid state disk system according to an exemplary embodiment of the present invention.
  • the solid state disk system 120 does not constitute the memory unit 126 as a single memory chip, but as a plurality of memory chips 222, 224, and 226. In addition, several memory chips 222, 224, and 226 share a single data bus 210.
  • the memory chips 222, 224, and 226 are solid state disks (SSDs), and may be NAND flash memory or NOR flash memory. Since the memory chips 222, 224, and 226 take relatively long time to write or erase commands than transfers, the memory chips 222, 224, and 226 use a pipelining technique.
  • the memory unit 126 is not limited to FIG. 2 and may be configured of a plurality of channels having data buses for each channel.
  • the plurality of memory chips are connected to any one of the plurality of channels, and the plurality of channels are independent of each other.
  • the controller 128 may control the overall operation of the solid state disk system 120 and may control the conversion layer unit 124 according to an embodiment of the present invention. That is, the controller 128 may perform a function of the transformation layer unit 124. In the present invention, it is shown to configure them separately to explain each function separately. Therefore, when the product is actually implemented, the conversion layer unit 124 may be configured to be processed by the control unit 128.
  • the controller 128 detects a storage event of the buffer cache unit 122, the controller 128 selects a target memory chip from idle memory chips that are available memory chips. At this time, the selection of the target memory chip selects the memory chip having the largest empty storage space among the idle memory chips of the memory unit 126 as the target memory chip. That is, the memory chip having the most free pages among the idle memory chips is selected as the target memory chip.
  • the controller 128 divides sector-based data stored in the buffer cache 122 into page units, and selects a page that has not been used for the longest of the pages as a victim page to be stored in the target memory chip.
  • the sacrificial page means a page to be stored in the memory chip.
  • the controller 128 selects a new sacrificial page until a sacrificial page that can be stored without waiting is selected.
  • the partial page refers to a case in which the data stored in the buffer cache 122 is a part of the page rather than the entire data.
  • a victim page that can be stored without waiting may be a case where the victim page is the entire page.
  • a victim page that can be stored without waiting is also possible when the victim page is a partial page and the memory chip in which the original page of the victim page is stored is idle.
  • the entire page means a case where the data stored in the buffer cache unit 122 is the entire data constituting the page.
  • the controller 128 If the victim page is a partial page and the memory chip in which the original page of the victim page is stored is idle, the controller 128 reads the original page from the memory unit 126 and combines the victim pages and stores them in the target memory chip.
  • the controller 128 stores the victim page in the target memory chip.
  • the controller 128 selects a new target memory chip from the memory unit 126 and makes a new sacrifice until the sacrificial page that can be stored without waiting is selected. Select a page.
  • FIG. 3 is a diagram illustrating an example of storing a page of a buffer cache without delay in a solid state disk system according to an embodiment of the present invention compared with a conventional method.
  • pages in the order shown in the drawing are stored in the memory unit 310 including four memory chips.
  • a plurality of pages are stored in the buffer cache unit 320, and the order in which the left page is stored as an old page is the order from the left page to the right page.
  • the shaded pages among the pages stored in the buffer cache unit 320 are all pages, and the non-shaded pages are partial pages.
  • the solid state disk system transfers a sixth page, which is a whole page, to the first memory chip, and then writes the next seventh page to the second memory chip while the first memory chip is writing. And the next eight pages while the second memory chip is writing.
  • the solid state disk system thus transfers from the sixth page to the ninth page to the corresponding idle page. That is, the sixth, seventh, eighth, and ninth pages, which are entire pages, are sequentially transmitted through the data bus.
  • the solid state disk system checks the memory unit 310 before storing the second page which is the partial page. As a result of the check, it can be confirmed that the third chip in which the entire page of the second page is stored is in use. Thus, the solid state disk system waits for the chip waiting time 332 until the third chip is idle. The solid state disk system may then store the fifth page, which is the entire page, after reading the entire page of the second page, combining it with the partial page of the second page, and sending it to the first memory chip to store it.
  • a fifth page which is a page requiring no waiting time, is first stored. If the third memory chip is in use after the fifth page is stored, and there is no page that can be stored without waiting, the solid state disk system may store the entire page of the second page stored after waiting. However, if the third memory chip is idle after storing the fifth page, the solid state disk system may combine the entire pages of the second page and the partial pages of the second page without storing the data in the idle memory chip without waiting.
  • FIG. 4 is a flowchart illustrating a process of storing a page of a buffer cache without delay in a solid state disk system according to an embodiment of the present invention.
  • the solid state disk system detects the occurrence of the buffer cache storage event in step 400, the solid state disk system selects a target memory chip from idle memory chips that are not selected. At this time, the selection of the target memory chip selects the memory chip having the largest empty storage space among the idle memory chips of the memory unit as the target memory chip. That is, the memory chip having the most free pages among the idle memory chips is selected as the target memory chip.
  • step 404 select the page which has not been used for the longest time among the pages which have not been selected as the victim page to be stored in the target memory chip.
  • the solid state disk system proceeds to step 406 to determine whether the victim page is a partial page. In operation 412, if the victim page is the entire page, the victim page stores the victim page in the target memory chip and proceeds to operation 416.
  • step 406 the solid state disk system proceeds to step 408 to determine whether the memory chip storing the original page of the victim page is idle.
  • step 410 If the memory chip storing the original page of the victim page is idle as a result of step 408, the solid state disk system proceeds to step 410, reads the original page, combines the victim pages, saves the victim page, and proceeds to step 416.
  • step 416 the solid state disk system proceeds to step 416 to check whether the buffer cache storage event is terminated. If the check result is not finished, the process returns to step 402. However, when the storage event ends, the algorithm according to the embodiment of the present invention ends.
  • the solid state disk system proceeds to step 414 to determine whether there is an unselected page to be stored in the selected Mokpo memory chip in the buffer cache. Check it.
  • step 414 If there is a page not selected as a result of checking in step 414, the solid state disk system returns to step 404 to select a new victim page, and then performs a series of processes.
  • step 414 if the check in step 414 does not have an unselected page, the solid state disk system returns to step 402 to select a new target memory chip, and then performs a series of processes.
  • embodiments of the present invention include computer-readable media containing program instructions for performing various computer-implemented operations.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • the medium or program instructions may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Examples of program instructions include machine code, such as produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.

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

고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치를 제안한다. 본 발명의 실시예에 따른 고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치는, 페이지들을 저장하는 버퍼 캐시부; 복수의 메모리 칩을 포함하는 메모리부; 및, 상기 복수의 메모리 칩들 중 적어도 하나의 목표 메모리 칩에 저장할 때 발생 가능한 대기시간을 고려하여 상기 페이지들 중에서 적어도 하나의 페이지를 희생 페이지로 선택하는 제어부를 포함한다.

Description

고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치
본 발명은 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치에 관한 것으로, 특히, 고체 상태 디스크 시스템에서 버퍼 캐시의 페이지를 다수의 메모리 칩으로 구성된 메모리에 저장할 때 발생하는 지연을 줄이는 프로그래밍 방법 및 장치에 관한 것이다.
데이터를 저장하는 스토리지 장치로는 자기 디스크(magnetic disk), 반도체 메모리 등이 있을 수 있다. 스토리지 장치는 종류 별로 서로 다른 물리적 특성을 가지기 때문에 물리적 특성에 상응하는 관리 방법이 필요하다.
종래의 스토리지 장치로는 자기 디스크가 널리 사용되어 왔다. 자기 디스크는 평균적으로 킬로바이트(kilobyte) 당 수 밀리초(millisecond)의 읽기 및 쓰기 시간을 특성으로 가진다. 또한, 자기 디스크는 데이터가 저장된 물리적 위치에 따라 암(arm)이 도달하는 시간이 다르기 때문에 읽기 및 쓰기 시간이 달라지는 특성을 가진다.
최근에는 자기 디스크에 비하여 읽기 및 쓰기 시간이 짧고 작은 전력을 소모하며 작은 부피를 차지하는 비휘발성(non-volatile) 메모리가 급속하게 자기 디스크를 대체하고 있다. 이는 비휘발성 메모리의 대용량화가 이루어졌기 때문에 가능한 결과이다.
비휘발성 메모리는 전기적으로 읽기(read), 쓰기(write) 및 소거(erase)가 가능하며, 공급 전원이 없는 상태에서도 저장된 데이터를 유지할 수 있는 반도체 메모리 장치이다. 비휘발성 메모리 장치에 대한 데이터의 저장 과정은 쓰기 외에도 프로그래밍(programming)이라고 불리기도 한다.
비휘발성 메모리의 대표적인 것으로 플래시(Flash) 메모리를 들 수 있으며, 플래시 메모리는 종래의 하드 디스크 드라이브(Hard Disk Drive, HDD)에 비하면 크기가 작고, 전력 소모량이 작으며, 읽기 속도를 높일 수 있는 이점이 있다. 최근에는 대용량의 플래시 메모리를 이용하여 HDD를 대체하기 위한 SSD(Solid State Disk)가 제안되기도 하였다.
플래시 메모리의 종류로서 대표적인 것들로는 NAND 방식의 플래시 메모리와 NOR 플래시 메모리 등을 들 수 있다. NAND 방식과 NOR 방식은 셀 어레이의 구성 및 동작 방식에 의해 구별될 수 있다.
하나의 플래시 메모리를 플래시 칩이라고 칭할 때, 대용량을 위해 다수의 플래시 칩을 사용하는 멀티칩이 구성될 수 있다. 이때, 다수의 플래시 칩들은 하나의 데이터 버스를 공유한다. 플래시 메모리는 쓰기나 지우기 명령에 걸리는 시간이 전송에 비해 상대적으로 오래 걸린다. 따라서, 멀티칩의 경우 파이프라이닝(pipelining) 기법을 이용하게 된다. 파이프라이닝이란 하나의 플래시 칩에 쓰기 명령을 수행하는 동안 다른 플래시 칩들에 대해서 순차적으로 전송과 쓰기를 실시함으로써, 하나의 칩에 대한 쓰기 시간을 숨기는 효과를 볼 수 있다.
한편 현재의 플래시 메모리의 기본적인 읽기/쓰기 단위인 페이지는 호스트 시스템에서 내리는 기본 명령의 단위인 섹터보다 훨씬 크다. 그러므로 호스트에서 작은 단위의 쓰기 명령어를 보낼 때면, 컨트롤러는 버퍼 캐시 혹은 플래시 변환 계층을 통해 대응하는 플래시 칩으로부터 그 원본 페이지를 읽어서 요청한 섹터를 이용해 하나의 페이지를 만든다. 그 후에 만든 하나의 페이지를 플래시 칩에 다시 써야 하는 부가적인 작업을 해 주어야 한다. 하지만 이런 경우 컨트롤러는 원본 페이지를 저장한 플래시 칩이 쓰기 동작 중이면, 원본 페이지를 읽기위해 쓰기 동작이 종료될 때까지 기다려야 한다.
본 발명의 실시예는 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치를 제공한다.
본 발명의 실시예는 고체 상태 디스크 시스템에서 버퍼 캐시의 페이지를 다수의 메모리 칩으로 구성된 메모리에 저장할 때 발생하는 지연을 줄이는 프로그래밍 방법 및 장치를 제공한다.
본 발명의 실시예는 고체 상태 디스크 시스템에서 버퍼 캐시의 페이지를 다수의 메모리 칩으로 구성된 메모리에 저장할 때 대기 없이 저장할 수 있는 페이지를 발생하는 우선적으로 저장하는 방법 및 장치를 제공한다.
본 발명의 실시예에 따른 고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치는, 페이지들을 저장하는 버퍼 캐시부; 복수의 메모리 칩을 포함하는 메모리부; 및, 상기 복수의 메모리 칩들 중 적어도 하나의 목표 메모리 칩에 저장할 때 발생 가능한 대기시간을 고려하여 상기 페이지들 중에서 적어도 하나의 페이지를 희생 페이지로 선택하는 제어부를 포함한다.
본 발명의 실시예에 따른 고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치는, 페이지를 저장하는 버퍼 캐시부; 하나 이상의 메모리 칩을 포함하는 메모리부; 및, 상기 버퍼 캐시부의 상기 페이지 중에서 선택한 희생 페이지가 메모리부의 목표 메모리 칩에 저장하기 위해 대기해야 하는 경우, 대기 없이 저장할 수 있는 희생 페이지를 선택할 때까지 새로운 희생 페이지를 선택하는 제어부를 포함한다.
본 발명의 실시예에 따른 고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 방법은, 버퍼 캐시부의 페이지 중에서 희생 페이지를 선택하는 단계; 및, 상기 희생 페이지가 메모리부의 목표 메모리 칩에 저장하기 위해 대기해야 하는 경우, 대기 없이 저장할 수 있는 희생 페이지를 선택할 때까지 새로운 희생 페이지를 선택하는 단계를 포함한다.
본 발명의 실시 예는 페이지들을 저장하는 버퍼 캐시부; 복수의 메모리 칩을 포함하는 메모리부; 및, 상기 페이지들 중에서 상기 복수의 메모리 칩들 중 적어도 하나의 목표 메모리 칩에 저장할 때 발생 가능한 대기시간을 고려하여 적어도 하나의 페이지를 희생 페이지로 선택하는 제어부를 포함하는 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치에 관한 것으로, 버퍼 캐시의 페이지를 저장할 때 발생할 수 있는 지연을 줄임으로써 쓰기 성능을 높인다.
도 1은 본 발명의 일실시예에 따르는 버퍼 캐시의 페이지를 지연 없이 저장하는 고체 상태 디스크 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따르는 고체 상태 디스크 시스템에서 메모리부의 구성을 도시한 도면이다.
도 3은 본 발명의 일실시예에 따르는 고체 상태 디스크 시스템에서 버퍼 캐시의 페이지를 지연 없이 저장하는 예를 기존의 방법과 비교하여 도시한 도면이다.
도 4는 본 발명의 일실시예에 따르는 고체 상태 디스크 시스템에서 버퍼 캐시의 페이지를 지연 없이 저장하는 과정을 도시한 흐름도이다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다. 그리고 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명의 실시 예는 고체 상태 디스크 시스템에서 버퍼 캐시의 페이지를 다수의 메모리 칩으로 구성된 메모리에 저장할 때 발생하는 지연을 줄이는 프로그래밍 방법 및 장치에 관한 것으로, 아래에서 도 1을 참조하면 본 발명의 실시예에 따른 고체 상태 디스크 시스템의 구조를 살펴보고자 한다.
도 1은 본 발명의 일실시예에 따르는 버퍼 캐시의 페이지를 지연 없이 저장하는 고체 상태 디스크 시스템의 구성을 도시한 도면이다.
도 1을 참조하면 고체 상태 디스크(Solid State Disk, SSD) 시스템(120)은 버퍼 캐시부(122), 변환 계층부(124), 메모리부(126) 및, 제어부(128)를 포함할 수 있다.
호스트(110)는 고체 상태 디스크 시스템(120)에 섹터 단위의 읽기 요청 또는 쓰기 요청을 한다.
버퍼 캐시부(122)는 읽기 동작 또는 쓰기 동작에 소요되는 시간을 줄이기 위하여 자주 사용되는 데이터를 저장한다. 버퍼 캐시부(122)는 주로 쓰기 전용으로 동작할 수 있다. 이것은 메모리부(126)의 느린 쓰기 성능을 감춰주는 역할을 한다. 즉, 같은 요청이 빠른 시간 내에 다시 들어오게 되면 버퍼 캐시부(122)에서 바로 처리를 해 줄 수 있으므로 메모리부(126)를 검색하지 않아도 되기 때문이다.
변환 계층부(124)는 적어도 하나의 아이들 뱅크에 대한 접근 결과를 기초로 물리 섹터(physical sector) 및 논리 섹터(logical sector) 사이의 맵을 구성할 수 있다. 다시 말해 변환 계층부(124)는 요청하는 논리 주소를 대응하는 물리 주소로 변환하고, 물리 주소를 논리 주소로 변환한다. 또한, 변환 계층부(124)는 메모리부(126)의 기본 읽기/쓰기 단위는 페이지 이므로 섹터 단위의 요청을 페이지 단위로 변환한다.
메모리부(126)는 다수의 메모리 칩들을 포함하여 구성한다. 메모리부(126)의 구성은 아래에서 도 2를 참조하여 살펴보고자 한다.
도 2는 본 발명의 일실시예에 따르는 고체 상태 디스크 시스템에서 메모리부의 구성을 도시한 도면이다.
도 2를 참조하면 고체 상태 디스크 시스템(120)은 대용량의 필요성으로 인해서 메모리부(126)를 하나의 메모리 칩으로 구성이 되는 것이 아니라 여러 개의 메모리 칩(222, 224, 226)들로 구성한다. 그리고, 여러 개의 메모리 칩(222, 224, 226)들은 하나의 데이터 버스(210)를 공유한다.
메모리 칩(222, 224, 226)은 고체 상태 디스크(Solid State Disk, SSD)로써 NAND 방식의 플래시 메모리 또는 NOR 플래시 메모리 등이 가능하다. 메모리 칩(222, 224, 226)은 쓰기나 지우기 명령에 걸리는 시간이 전송에 비해 상대적으로 오래 걸리므로, 파이프라이닝(pipelining) 기법을 이용하게 한다.
한편 메모리부(126)는 도 2로 한정 하지 않으며 채널 별로 데이터버스를 가지는 복수의 채널로 구성할 수도 있다. 이때, 복수의 메모리 칩들은 복수의 채널들 중 어느 하나와 연결되고, 복수의 채널들은 서로 독립적이다.
제어부(128)는 고체 상태 디스크 시스템(120)의 전반적인 동작을 제어하고, 본 발명의 실시예에 따른 변환 계층부(124)를 제어할 수 있다. 즉, 상기 제어부(128)는 변환 계층부(124)의 기능을 수행할 수 있다. 본 발명에서 이를 별도로 구성하여 도시한 것은 각 기능들을 구별하여 설명하기 위함이다. 따라서 실제로 제품을 구현하는 경우에 변환 계층부(124)를 제어부(128)에서 처리하도록 구성할 수도 있다.
또한 제어부(128)는 버퍼 캐시부(122)의 저장 이벤트를 감지하면 사용 가능한 메모리 칩인 유휴(idle) 메모리 칩들 중에서 목표 메모리 칩 선택한다. 이때 목표 메모리 칩의 선택은 메모리부(126)의 유휴 메모리 칩 중에서 비어있는 저장 가능한 공간이 가장 큰 메모리 칩을 목표 메모리 칩으로 선택한다. 즉 유휴 메모리 칩 중에서 자유 페이지가 가장 많은 메모리 칩을 목표 메모리 칩으로 선택한다.
이후, 제어부(128)는 버퍼 캐시부(122)에 저장된 섹터단위의 데이터를 페이지 단위로 구분하고, 페이지 중에서 가장 오랫동안 사용되지 않은 페이지를 목표 메모리 칩에 저장될 희생(victim) 페이지로 선택한다. 본 발명의 실시예에서 희생 페이지란 메모리 칩에 저장될 페이지를 의미한다.
이후, 제어부(128)는 선택한 희생 페이지를 메모리부(126)의 목표 메모리 칩에 저장하기 위해 대기해야 하는 경우, 대기 없이 저장할 수 있는 희생 페이지를 선택할 때까지 새로운 희생 페이지를 선택한다.
희생 페이지가 대기해야 하는 경우는 희생 페이지가 부분 페이지이고 희생 페이지의 원본 페이지가 저장된 메모리 칩이 유휴하지 않은 경우이다. 본 발명의 실시예에서 부분 페이지란 버퍼 캐시부(122)에 저장된 데이터가 페이지를 구성하는 전체의 데이터가 아닌 일부분인 경우를 의미한다.
대기 없이 저장할 수 있는 희생 페이지는 희생 페이지가 전체 페이지인 경우가 가능하다. 추가로 대기 없이 저장할 수 있는 희생 페이지는 희생 페이지가 부분 페이지이고 희생 페이지의 원본 페이지가 저장된 메모리 칩이 유휴한 경우 또한 가능하다. 본 발명의 실시예에서 전체 페이지란, 버퍼 캐시부(122)에 저장된 데이터가 페이지를 구성하는 전체의 데이터인 경우를 의미한다.
제어부(128)는 희생 페이지가 부분 페이지이고 희생 페이지의 원본 페이지가 저장된 메모리 칩이 유휴하면, 메모리부(126)에서 원본 페이지를 읽고 희생 페이지를 합쳐서 상기 목표 메모리 칩에 저장한다.
제어부(128)는 희생 페이지가 전체 페이지이면, 희생 페이지를 목표 메모리 칩에 저장한다.
제어부(128)는 선택한 목표 메모리 칩에 대한 대기 없이 저장할 수 있는 희생 페이지가 존재하지 않으면, 메모리부(126)에서 새로운 목표 메모리 칩을 선택하고, 대기 없이 저장할 수 있는 희생 페이지를 선택할 때까지 새로운 희생 페이지를 선택한다.
도 3은 본 발명의 일실시예에 따르는 고체 상태 디스크 시스템에서 버퍼 캐시의 페이지를 지연 없이 저장하는 예를 기존의 방법과 비교하여 도시한 도면이다.
도 3을 참조하면 4개의 메모리 칩으로 구성된 메모리부(310)에는 도면과 같은 순서의 페이지가 저장되어 있다.
버퍼 캐시부(320)에는 다수의 페이지가 저장되어 있으며 왼쪽에 있는 페이지가 오래된 페이지로서 저장될 순서는 왼쪽 페이지에서 오른쪽 페이지로의 순서이다. 여기서 버퍼 캐시부(320)에 저장된 페이지 중에서 음영으로 표시된 페이지는 전체 페이지이고, 음영표시 되지 않은 페이지는 부분 페이지 이다.
기존의 일반적인 저장 방법에 따른 타이밍 다이어그램(330)을 살펴보면, 고체 상태 디스크 시스템은 전체 페이지인 제6 페이지를 제1 메모리 칩에 전송하고 제1 메모리 칩이 쓰는 동안 다음 제7 페이지를 제2 메모리 칩에 전송하고 제2 메모리 칩이 쓰는 동안 다음 제8페이지를 전송한다. 고체 상태 디스크 시스템은 이와 같이 제6 페이지에서 제9 페이지까지 대응하는 유휴 페이지로 전송한다. 즉, 전체 페이지인 제6, 제7, 제8 및, 제9 페이지는 데이터 버스를 통해 순차적으로 통해 전송된다.
이후, 고체 상태 디스크 시스템은 부분 페이지인 제2 페이지를 저장하기에 앞서 메모리부(310)를 확인한다. 확인결과 제2 페이지의 전체 페이지가 저장된 제 3칩이 사용 중임을 확인 할 수 있다. 따라서, 고체 상태 디스크 시스템은 제3칩이 유휴 상태가 될 때까지 칩 기다리는 시간(332) 동안 대기한다. 그리고, 고체 상태 디스크 시스템은 제2 페이지의 전체 페이지를 읽어서 제2 페이지의 부분페이지와 결합하고 이를 저장하도록 제1 메모리 칩으로 송신한 후에 전체 페이지인 제5 페이지를 저장할 수 있다.
하지만 본 발명의 실시예에 따른 저장 방법을 사용한 타이밍 다이어그램(340)을 살펴보면, 제2 페이지는 대기 시간이 필요한 페이지 임으로 대기시간이 필요 없는 페이지인 제5 페이지를 먼저 저장한다. 그리고, 제5 페이지를 저장한 후에 제3 메모리 칩이 사용 중이고, 대기 없이 저장할 수 있는 페이지가 존재하지 않으면 고체 상태 디스크 시스템은 대기후에 저장된 제2 페이지의 전체 페이지와 합쳐서 저장할 수 있다. 하지만, 제5 페이지를 저장한 후에 제3 메모리 칩이 유휴상태이면 고체 상태 디스크 시스템은 대기 없이 제2 페이지의 전체 페이지와 제2 페이지의 부분 페이지를 합쳐서 유휴한 메모리 칩에 저장할 수 있다.
이하, 상기와 같이 구성된 본 발명에 따른 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법을 아래에서 도면을 참조하여 설명한다.
도 4는 본 발명의 일실시예에 따르는 고체 상태 디스크 시스템에서 버퍼 캐시의 페이지를 지연 없이 저장하는 과정을 도시한 흐름도이다.
도 4를 참조하면 본 발명의 실시예에 따른 고체 상태 디스크 시스템은 400단계에서 버퍼 캐시 저장 이벤트의 발생을 감지하면 402단계로 진행하여 선택하지 않았던 유휴 메모리 칩 중에서 목표 메모리 칩 선택한다. 이때 목표 메모리 칩의 선택은 상기 메모리부의 유휴 메모리 칩 중에서 비어있는 저장 가능한 공간이 가장 큰 메모리 칩을 목표 메모리 칩으로 선택한다. 즉 유휴 메모리 칩 중에서 자유 페이지가 가장 많은 메모리 칩을 목표 메모리 칩으로 선택한다.
이후, 고체 상태 디스크 시스템은 404단계로 진행하여 선택하지 않았던 페이지 중에서 가장 오랫동안 사용되지 않은 페이지를 목표 메모리 칩에 저장될 희생 페이지로 선택한다.
고체 상태 디스크 시스템은 406단계로 진행하여 희생 페이지가 부분 페이지인지 여부를 확인한다. 확인결과 희생 페이지가 전체 페이지이면 412단계로 진행하여 희생 페이지를 목표 메모리 칩에 저장하고, 416단계로 진행한다.
406단계의 확인결과 희생 페이지가 부분 페이지이면 고체 상태 디스크 시스템은 408단계로 진행하여 희생 페이지의 원본 페이지를 저장한 메모리 칩이 유휴한지 여부를 확인한다.
408단계의 확인결과 희생 페이지의 원본 페이지를 저장한 메모리 칩이 유휴하면, 고체 상태 디스크 시스템은 410단계로 진행하여 원본 페이지를 읽고 희생 페이지를 합쳐서 목표 메모리 칩에 저장하고, 416단계로 진행한다.
이후, 고체 상태 디스크 시스템은 416단계로 진행하여 버퍼 캐시 저장 이벤트의 종료 여부를 확인한다. 확인결과 저장 이벤트가 종료되지 않았으면, 402단계로 돌아간다. 하지만 저장 이벤트가 종료되면, 본 발명의 실시예에 따른 알고리즘을 종료한다.
한편, 408단계의 확인결과 희생 페이지의 원본 페이지를 저장한 메모리 칩이 유휴하지 않으면, 고체 상태 디스크 시스템은 414단계로 진행하여 버퍼 캐시에 선택한 목포 메모리 칩에 저장할 선택하지 않은 페이지가 존재하는지 여부를 확인한다.
414단계의 확인결과 선택하지 않은 페이지가 존재하면, 고체 상태 디스크 시스템은 404단계로 돌아가서 새로운 희생 페이지를 선택하고, 이후 일련의 과정을 수행한다.
하지만 414단계의 확인결과 선택하지 않은 페이지가 존재하지 않으면, 고체 상태 디스크 시스템은 402단계로 돌아가서 새로운 목표 메모리 칩을 선택하고, 이후 일련의 과정을 수행한다.
또한, 본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (24)

  1. 페이지들을 저장하는 버퍼 캐시부;
    복수의 메모리 칩을 포함하는 메모리부; 및
    상기 복수의 메모리 칩들 중 적어도 하나의 목표 메모리 칩에 저장할 때 발생 가능한 대기시간을 고려하여 상기 페이지들 중에서 적어도 하나의 페이지를 희생 페이지로 선택하는 제어부를 포함하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  2. 제1항에 있어서,
    상기 제어부는,
    상기 희생 페이지를 선택할 때, 상기 페이지들의 사용빈도 또는 가장 최근 사용시간을 고려하여 선택하는,
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  3. 제1항에 있어서,
    상기 제어부는,
    상기 페이지 중에서 희생 페이지로 선택되지 않았던 가장 오래 동안 사용되지 않고 상기 목표 메모리 칩에 저장할 때 대기 없이 저장 가능한 페이지를 상기 희생 페이지로 선택하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  4. 제3항에 있어서,
    상기 희생 페이지가 대기해야 하는 경우는,
    상기 희생 페이지가 부분 페이지이고 상기 희생 페이지의 원본 페이지가 저장된 메모리 칩이 유휴하지 않은 경우인,
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  5. 제3항에 있어서,
    상기 대기 없이 저장할 수 있는 희생 페이지는,
    상기 희생 페이지가 전체 페이지인 경우 이거나, 상기 희생 페이지가 부분 페이지이고 상기 희생 페이지의 원본 페이지가 저장된 메모리 칩이 유휴한 경우인,
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  6. 제1항에 있어서,
    상기 제어부는,
    상기 희생 페이지가 부분 페이지이고 상기 희생 페이지의 원본 페이지가 저장된 메모리 칩이 유휴하면, 상기 원본 페이지를 읽고 상기 희생 페이지를 합쳐서 상기 목표 메모리 칩에 저장하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  7. 제1항에 있어서,
    상기 제어부는,
    상기 희생 페이지가 전체 페이지이면, 상기 희생 페이지를 상기 목표 메모리 칩에 저장하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  8. 제1항에 있어서,
    상기 제어부는,
    상기 희생 페이지를 선택하기에 앞서 상기 메모리부의 유휴 메모리 칩 중에서 비어있는 저장 가능한 공간이 가장 큰 메모리 칩을 상기 목표 메모리 칩으로 선택하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  9. 제1항에 있어서,
    상기 제어부는,
    상기 새로운 희생 페이지의 선택결과 상기 대기 없이 저장할 수 있는 희생 페이지가 존재하지 않으면, 상기 메모리부에서 새로운 목표 메모리 칩을 선택하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  10. 페이지를 저장하는 버퍼 캐시부;
    하나 이상의 메모리 칩을 포함하는 메모리부; 및
    상기 버퍼 캐시부의 상기 페이지 중에서 선택한 희생 페이지가 메모리부의 목표 메모리 칩에 저장하기 위해 대기해야 하는 경우, 대기 없이 저장할 수 있는 희생 페이지를 선택할 때까지 새로운 희생 페이지를 선택하는 제어부를 포함하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  11. 제10항에 있어서,
    상기 제어부는,
    상기 버퍼 캐시부의 상기 페이지 중에서 저장 대상으로 선택 받지 않고, 가장 오래 동안 사용되지 않은 페이지를 상기 희생 페이지 또는 상기 새로운 희생 페이지로 선택하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  12. 제10항에 있어서,
    상기 제어부에서 상기 희생 페이지가 대기해야 하는 경우는,
    상기 희생 페이지가 부분 페이지이고 상기 희생 페이지의 원본 페이지가 저장된 메모리 칩이 유휴하지 않은 경우인,
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  13. 제10항에 있어서,
    상기 대기 없이 저장할 수 있는 희생 페이지는,
    상기 희생 페이지가 전체 페이지인 경우 이거나, 상기 희생 페이지가 부분 페이지이고 상기 희생 페이지의 원본 페이지가 저장된 메모리 칩이 유휴한 경우인,
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  14. 제10항에 있어서,
    상기 제어부는,
    상기 희생 페이지가 부분 페이지이고 상기 희생 페이지의 원본 페이지가 저장된 메모리 칩이 유휴하면, 상기 원본 페이지를 읽고 상기 희생 페이지를 합쳐서 상기 목표 메모리 칩에 저장하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  15. 제10항에 있어서,
    상기 제어부는,
    상기 희생 페이지가 전체 페이지이면, 상기 희생 페이지를 상기 목표 메모리 칩에 저장하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  16. 제10항에 있어서,
    상기 제어부는,
    상기 희생 페이지를 선택하기에 앞서 상기 메모리부의 유휴 메모리 칩 중에서 비어있는 저장 가능한 공간이 가장 큰 메모리 칩을 상기 목표 메모리 칩으로 선택하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 장치.
  17. 버퍼 캐시부의 페이지 중에서 희생 페이지를 선택하는 단계; 및
    상기 희생 페이지가 메모리부의 목표 메모리 칩에 저장하기 위해 대기해야 하는 경우, 대기 없이 저장할 수 있는 희생 페이지를 선택할 때까지 새로운 희생 페이지를 선택하는 단계를 포함하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 방법.
  18. 제17항에 있어서,
    상기 희생 페이지 또는 상기 새로운 희생 페이지의 선택은,
    상기 버퍼 캐시부의 상기 페이지 중에서 저장 대상으로 선택 받지 않고, 가장 오래 동안 사용되지 않은 페이지를 상기 희생 페이지 또는 상기 새로운 희생 페이지로 선택하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 방법.
  19. 제17항에 있어서,
    상기 희생 페이지가 대기해야 하는 경우는,
    상기 희생 페이지가 부분 페이지이고 상기 희생 페이지의 원본 페이지가 저장된 메모리 칩이 유휴하지 않은 경우인,
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 방법.
  20. 제17항에 있어서,
    상기 대기 없이 저장할 수 있는 희생 페이지는,
    상기 희생 페이지가 전체 페이지인 경우 이거나, 상기 희생 페이지가 부분 페이지이고 상기 희생 페이지의 원본 페이지가 저장된 메모리 칩이 유휴한 경우인,
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 방법.
  21. 제17항에 있어서,
    상기 대기 없이 저장할 수 있는 상기 희생 페이지가 선택된 경우,
    상기 희생 페이지가 부분 페이지이고 상기 희생 페이지의 원본 페이지가 저장된 메모리 칩이 유휴하면, 상기 원본 페이지를 읽고 상기 희생 페이지를 합쳐서 상기 목표 메모리 칩에 저장하는 단계를 더 포함하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 방법.
  22. 제17항에 있어서,
    상기 대기 없이 저장할 수 있는 상기 희생 페이지가 선택된 경우,
    상기 희생 페이지가 전체 페이지이면, 상기 희생 페이지를 상기 목표 메모리 칩에 저장하는 단계를 더 포함하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 방법.
  23. 제17항에 있어서,
    상기 버퍼 캐시부의 페이지 중에서 상기 희생 페이지를 선택하는 단계 이전에,
    하나 이상의 메모리 칩을 가지는 상기 메모리부의 유휴 메모리 칩 중에서 비어있는 저장 가능한 공간이 가장 큰 메모리 칩을 상기 목표 메모리 칩으로 선택하는
    고체 상태 디스크 시스템의 버퍼 캐시 프로그래밍 방법.
  24. 제17항 내지 제23항 중 어느 한 항의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.
PCT/KR2009/007067 2009-02-11 2009-11-30 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치 WO2010093114A1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP09840104A EP2397945A4 (en) 2009-02-11 2009-11-30 PROGRAMMING METHOD AND DEVICE FOR A BUFFER CACHE IN A SOLID BODY SYSTEM
US13/148,115 US8874826B2 (en) 2009-02-11 2009-11-30 Programming method and device for a buffer cache in a solid-state disk system
JP2011550047A JP2012517645A (ja) 2009-02-11 2009-11-30 半導体ディスクシステムのバッファキャッシュプログラミング方法およびバッファキャッシュプログラミング装置
CN2009801566235A CN102317924A (zh) 2009-02-11 2009-11-30 固态硬盘系统中缓冲器高缓的编程方法和装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2009-0011138 2009-02-11
KR1020090011138A KR101056560B1 (ko) 2009-02-11 2009-02-11 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법및 장치

Publications (1)

Publication Number Publication Date
WO2010093114A1 true WO2010093114A1 (ko) 2010-08-19

Family

ID=42561936

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2009/007067 WO2010093114A1 (ko) 2009-02-11 2009-11-30 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치

Country Status (6)

Country Link
US (1) US8874826B2 (ko)
EP (1) EP2397945A4 (ko)
JP (1) JP2012517645A (ko)
KR (1) KR101056560B1 (ko)
CN (1) CN102317924A (ko)
WO (1) WO2010093114A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101278591B1 (ko) * 2011-05-30 2013-06-25 성균관대학교산학협력단 플래시 메모리 시스템 및 그 동작 방법
US9645917B2 (en) * 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
US9734050B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9785545B2 (en) * 2013-07-15 2017-10-10 Cnex Labs, Inc. Method and apparatus for providing dual memory access to non-volatile memory
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
CN105843746A (zh) * 2015-01-12 2016-08-10 广明光电股份有限公司 固态硬盘的写入方法
CN105630705B (zh) * 2015-06-10 2019-09-17 上海磁宇信息科技有限公司 数据存储装置及使用块替换表的读写方法
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US9880778B2 (en) 2015-11-09 2018-01-30 Google Inc. Memory devices and methods

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050235119A1 (en) * 2002-10-04 2005-10-20 Microsoft Corporation Methods and mechanisms for proactive memory management
US20060271755A1 (en) * 2005-05-20 2006-11-30 Seiji Miura Memory module, cache system and address conversion method
US20070091679A1 (en) * 2005-10-20 2007-04-26 Sony Corporation Storage device, computer system, and data writing method
JP2008108281A (ja) * 2008-01-10 2008-05-08 Renesas Technology Corp 半導体ディスク装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3328321B2 (ja) * 1992-06-22 2002-09-24 株式会社日立製作所 半導体記憶装置
GB2345987B (en) * 1999-01-19 2003-08-06 Advanced Risc Mach Ltd Memory control within data processing systems
US7966462B2 (en) * 1999-08-04 2011-06-21 Super Talent Electronics, Inc. Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips
US7660941B2 (en) * 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
US7934074B2 (en) * 1999-08-04 2011-04-26 Super Talent Electronics Flash module with plane-interleaved sequential writes to restricted-write flash chips
US8108590B2 (en) * 2000-01-06 2012-01-31 Super Talent Electronics, Inc. Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear
US8112574B2 (en) * 2004-02-26 2012-02-07 Super Talent Electronics, Inc. Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes
JP4625675B2 (ja) * 2004-10-20 2011-02-02 株式会社日立製作所 ストレージ装置のリソース割り当て方法及びストレージ装置
JP4961693B2 (ja) * 2005-07-29 2012-06-27 ソニー株式会社 コンピュータシステム
JP5162846B2 (ja) * 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム
JP5076411B2 (ja) * 2005-11-30 2012-11-21 ソニー株式会社 記憶装置、コンピュータシステム
JP4675881B2 (ja) * 2006-12-27 2011-04-27 株式会社東芝 磁気ディスク装置およびその制御方法
JP2008163474A (ja) * 2006-12-27 2008-07-17 Toray Ind Inc 繊維構造物
KR20100021868A (ko) * 2008-08-18 2010-02-26 삼성전자주식회사 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
US8375178B2 (en) * 2008-11-12 2013-02-12 Oracle International Corporation Memory page eviction based on present system operation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050235119A1 (en) * 2002-10-04 2005-10-20 Microsoft Corporation Methods and mechanisms for proactive memory management
US20060271755A1 (en) * 2005-05-20 2006-11-30 Seiji Miura Memory module, cache system and address conversion method
US20070091679A1 (en) * 2005-10-20 2007-04-26 Sony Corporation Storage device, computer system, and data writing method
JP2008108281A (ja) * 2008-01-10 2008-05-08 Renesas Technology Corp 半導体ディスク装置

Also Published As

Publication number Publication date
US8874826B2 (en) 2014-10-28
CN102317924A (zh) 2012-01-11
JP2012517645A (ja) 2012-08-02
KR101056560B1 (ko) 2011-08-11
US20110296089A1 (en) 2011-12-01
KR20100091782A (ko) 2010-08-19
EP2397945A1 (en) 2011-12-21
EP2397945A4 (en) 2012-10-24

Similar Documents

Publication Publication Date Title
WO2010093114A1 (ko) 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치
US11868618B2 (en) Data reading and writing processing from and to a semiconductor memory and a memory of a host device by using first and second interface circuits
CN113377283B (zh) 具有分区命名空间的存储器系统及其操作方法
KR101573591B1 (ko) 메모리 시스템 제어기를 구비하는 장치 및 관련 방법
US9058254B2 (en) Memory device
KR101532863B1 (ko) 메모리 시스템 제어기를 구비하는 장치 및 관련 방법
US8144515B2 (en) Interleaved flash storage system and method
US5524230A (en) External information storage system with a semiconductor memory
US8321639B2 (en) Command tracking for direct access block storage devices
US8924627B2 (en) Flash memory device comprising host interface for processing a multi-command descriptor block in order to exploit concurrency
KR101560469B1 (ko) 메모리 시스템 컨트롤러들을 포함하는 장치 및 관련 방법들
US20140359192A1 (en) Apparatus including buffer allocation management and related methods
US20130212319A1 (en) Memory system and method of controlling memory system
US20050172068A1 (en) Memory card and semiconductor device
US20110185225A1 (en) Memory system with nonvolatile semiconductor memory
KR20120098850A (ko) 메모리 디바이스 및 호스트 장치
US20110238933A1 (en) Memory device and controlling method of the same
WO2010107173A1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
US8180951B2 (en) Memory system and method of controlling the memory system
US20240311039A1 (en) Memory system

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980156623.5

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09840104

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13148115

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2011550047

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2009840104

Country of ref document: EP