WO2010107173A1 - Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법 - Google Patents

Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법 Download PDF

Info

Publication number
WO2010107173A1
WO2010107173A1 PCT/KR2009/007517 KR2009007517W WO2010107173A1 WO 2010107173 A1 WO2010107173 A1 WO 2010107173A1 KR 2009007517 W KR2009007517 W KR 2009007517W WO 2010107173 A1 WO2010107173 A1 WO 2010107173A1
Authority
WO
WIPO (PCT)
Prior art keywords
pointer
data
buffer
memory
representative
Prior art date
Application number
PCT/KR2009/007517
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 CN2009801582168A priority Critical patent/CN102362263A/zh
Priority to JP2012500705A priority patent/JP2012521032A/ja
Priority to EP09841957.5A priority patent/EP2410434A4/en
Priority to US13/257,458 priority patent/US8954662B2/en
Publication of WO2010107173A1 publication Critical patent/WO2010107173A1/ko

Links

Images

Classifications

    • 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories

Definitions

  • SSD solid state drive
  • an SSD controller and a method of operating the SSD controller are disclosed that can efficiently manage a pointer referenced when a plurality of memories included in an SSD approaches a buffer.
  • 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.
  • Flash memory consists of an array of multiple memory cells, where one memory cell can store one or more data bits.
  • One memory cell includes a control gate and a floating gate, and an insulator is inserted between the control gate and the floating gate, and an insulator is inserted between the floating gate and the substrate. .
  • Such a nonvolatile memory is managed by a predetermined controller.
  • the performance of the entire nonvolatile memory may be determined according to the performance of the controller.
  • a pointer is selected from a plurality of pointers according to a plurality of memories included in the SSD to manage only access to the representative pointer.
  • An object of the present invention is to provide an SSD controller and a method of operating the SSD controller that can reduce complexity.
  • a solid state drive (SSD) controller may include a command unit configured to transmit a data read command to at least one memory when a data read command is transmitted from a host. And reading the data from the buffer with reference to a second pointer based on the pointer selecting unit for selecting a representative pointer among at least one first pointer by checking a time point at which data has been written to the buffer by And a transmission unit for transmitting the read data to the host, wherein the at least one memory writes the data in the buffer with reference to the at least one first pointer.
  • a command unit configured to transmit a data read command to at least one memory when a data read command is transmitted from a host. And reading the data from the buffer with reference to a second pointer based on the pointer selecting unit for selecting a representative pointer among at least one first pointer by checking a time point at which data has been written to the buffer by And a transmission unit for transmitting the read data to the host, wherein the at least one memory writes the data in the buffer with reference to the at least one
  • the solid state drive (SSD) controller is a command unit for transmitting a data write command to at least one memory, when a data write command is transmitted from the host, from the buffer
  • a pointer selecting unit configured to check a time point at which the at least one memory reads data and to select a representative pointer among at least one first pointer, and to receive the data from the host, and to receive a second pointer based on the representative pointer.
  • a recording unit for writing the data into the buffer, wherein the at least one memory reads the data from the buffer with reference to the at least one first pointer.
  • the method of operating a solid state drive (SSD) controller may include transmitting a data read command to at least one memory when a data read command is transmitted from a host. Checking a time point at which data is written to the buffer by one memory, selecting a pointer having a minimum pointer value among at least one first pointer as a representative pointer, and referring to the second pointer based on the representative pointer; Reading the data from a buffer and transmitting the read data to the host, wherein the at least one memory writes the data to the buffer with reference to the at least one first pointer.
  • SSD solid state drive
  • the method of operating a solid state drive (SSD) controller may include transmitting a data write command to at least one memory when a data write command is transmitted from a host, Checking a time point at which the at least one memory reads data from a buffer, selecting a pointer having a minimum pointer value among at least one first pointer as a representative pointer, receiving the data from the host, and receiving the data from the host pointer And writing the data into the buffer with reference to a second pointer, wherein the at least one memory reads the data from the buffer with reference to the at least one first pointer.
  • SSD solid state drive
  • SSD controller and SSD for managing access to the representative pointer by selecting a representative pointer among a plurality of pointers according to a plurality of memories included in the SSD in managing a DRAM buffer included in a solid state drive (SSD)
  • SSD solid state drive
  • FIG. 1 is a view showing the structure of an SSD controller according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating a structure of an SSD controller according to another embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating a method of operating an SSD controller according to an exemplary embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating a method of operating an SSD controller according to another embodiment of the present invention.
  • programming of the nonvolatile memory may be performed in units of pages, and erasing may be performed in units of blocks.
  • the block may include a plurality of pages.
  • the memory controller managing the nonvolatile memory may provide a logical address to an external host or processor and may provide a physical address to the nonvolatile memory.
  • the memory controller may manage the nonvolatile memory using the physical address and convert the physical address into a logical address.
  • the layer in which the physical address and logical address translation is performed may be referred to as a flash translation layer (FTL).
  • FTL flash translation layer
  • SSDs Solid state drives
  • the FTL included in the SSD performs operations by configuring blocks having logically identical block numbers and pages having logically identical page numbers in a plurality of chips in logical units called block groups and page groups, respectively.
  • the FTL may contribute to the overall performance improvement of the SSD by performing read and write operations on the page groups in all chips in parallel.
  • the FTL may contribute to the performance improvement of the SSD by performing parallel operations on blocks of all chips even in an erase operation on the block group.
  • SSDs include DRAMs, which are often used as buffers when data is read from or written to flash memory.
  • the host manages a first pointer facing the DRAM buffer, and the hard disk manages a second pointer facing the DRAM buffer to request data from the host.
  • the hard disk writes data to the DRAM buffer with reference to the first pointer, and the host reads the data from the DRAM buffer with reference to the second pointer.
  • SSDs include a plurality of flash memories, and thus the number of pointers to which the plurality of flash memories faces the DRAM buffer increases according to the number of flash memories.
  • the number of pointers to be managed increases, which may cause difficulty in managing the pointer by the SSD controller and may cause performance degradation throughout the SSD.
  • the SSD controller as a representative pointer of any one of a plurality of pointers used when a plurality of flash memories write data to or read data from the DRAM buffer.
  • FIG. 1 is a view showing the structure of an SSD controller according to an embodiment of the present invention.
  • a host 110 an SSD controller 120, a buffer 130, and at least one memory 141, 142, and 143 are shown.
  • the SSD controller 120 includes a command unit 121, a pointer selecting unit 122, and a transmitting unit 123.
  • the buffer 130 may be a DRAM buffer.
  • the buffer 130 may be a circular buffer.
  • the at least one memory 141, 142, 143 may be at least one flash memory.
  • the command unit 121 transmits a data read command to at least one memory 141, 142, or 143.
  • the at least one memory 141, 142, 143 buffers the data by referring to at least one first pointer that is referred to when the at least one memory 141, 142, 143 writes the data in the buffer 130. Record at 130.
  • the pointer selector 122 continuously checks the time point at which the data is written to the buffer 130 by the at least one memory 141, 142, or 143, thereby representing a representative pointer of the at least one first pointer. Select.
  • the pointer selecting unit 122 may select a pointer having a minimum pointer value among the at least one first pointer as the representative pointer.
  • the transmitter 123 reads the data from the buffer 130 with reference to the second pointer referred to when reading data from the buffer 130 and transmitting the data to the host 110 based on the representative pointer, and reads the data from the buffer 130. The transmitted data to the host 110.
  • the transmitter 123 may make the pointer value of the second pointer equal to the pointer value of the representative pointer. Until the second pointer is moved on the buffer 130, the data may be read.
  • the SSD controller 120 selects a pointer having a minimum pointer value among the at least one first pointer as a representative pointer, and manages only access to the representative pointer, thereby managing pointer management. This can reduce the complexity.
  • FIG. 2 is a diagram illustrating a structure of an SSD controller according to another embodiment of the present invention.
  • a host 210 an SSD controller 220, a buffer 230, and at least one memory 241, 242, and 243 are shown.
  • the SSD controller 220 includes a command unit 221, a pointer selecting unit 222, and a recording unit 223.
  • the buffer 230 may be a DRAM buffer.
  • the buffer 230 may be an annular buffer.
  • the at least one memory 241, 242, 243 may be at least one flash memory.
  • the command unit 221 transmits a data write command to at least one memory 241, 242, or 243.
  • the pointer selector 222 continuously checks the time point at which the at least one memory 241, 242, or 243 reads data from the buffer 230, so that the at least one memory 241, 242, or 243 is the buffer 230.
  • Representative pointers are selected from the at least one first pointers referred to when data is written into the.
  • the pointer selecting unit 222 may select a pointer having a minimum pointer value among the at least one first pointer as the representative pointer.
  • the recorder 223 receives the data from the host 210 and based on the representative pointer, refers to the second pointer referenced when writing data transmitted from the host 210 to the buffer 230. Is written into the buffer 230.
  • the recording unit 223 when the pointer value of the representative pointer is smaller than the pointer value of the second pointer, the recording unit 223 becomes equal to the pointer value of the second pointer and the pointer value of the representative pointer.
  • the data may be recorded by moving the second pointer on the buffer 230.
  • the at least one memory 241, 242, 243 reads the data from the buffer 230 with reference to the at least one first pointer.
  • the SSD controller 220 selects a pointer having a minimum pointer value among the at least one first pointer as a representative pointer, and manages only access to the representative pointer, thereby managing pointer management. This can reduce the complexity.
  • the embodiment of the SSD controller described with reference to FIGS. 1 and 2 may be implemented as one SSD controller.
  • the SSD controller according to an embodiment of the present invention may be implemented as a separate SSD controller, respectively, as shown in FIGS. 1 and 2, and incorporates the embodiments illustrated in FIGS. 1 and 2. It may be implemented as a single SSD controller.
  • FIG. 3 is a flowchart illustrating a method of operating an SSD controller according to an exemplary embodiment of the present invention.
  • the at least one memory writes data into the buffer with reference to at least one first pointer that the at least one memory refers to when writing the data into the buffer.
  • the buffer may be a DRAM buffer.
  • the buffer may be an annular buffer.
  • the at least one memory may be at least one flash memory.
  • a time point at which the data is written to the buffer by the at least one memory is checked, and a pointer having a minimum pointer value among the at least one first pointer is selected as the representative pointer.
  • the data is read from the buffer with reference to a second pointer referred to when reading data from the buffer and transmitted to the host, based on the representative pointer, and transmitting the read data to the host. do.
  • the pointer value of the representative pointer when the pointer value of the representative pointer is greater than the pointer value of the second pointer in step S330, when the pointer value of the second pointer and the pointer value of the representative pointer are equal to each other.
  • the data may be read by moving the second pointer on the buffer.
  • FIG. 4 is a flowchart illustrating a method of operating an SSD controller according to another embodiment of the present invention.
  • a time point at which the at least one memory reads data from a buffer is checked to select a representative pointer among at least one first pointer referenced when the at least one memory writes data to the buffer.
  • the buffer may be a DRAM buffer.
  • the buffer may be an annular buffer.
  • the at least one memory may be at least one flash memory.
  • step S430 the data is received from the host, and the data is written into the buffer with reference to a second pointer referenced when writing data transmitted from the host into the buffer based on the representative pointer. .
  • step S430 when the pointer value of the representative pointer is smaller than the pointer value of the second pointer, when the pointer value of the second pointer and the pointer value of the representative pointer are equal to each other.
  • the data can be recorded by moving the second pointer over the buffer.
  • the operation method of the SSD controller according to the exemplary embodiment of the present invention has been described above with reference to FIGS. 3 and 4.
  • the operation method of the SSD controller according to an embodiment of the present invention may correspond to the configuration of the SSD controller described with reference to FIGS. 1 and 2, a detailed description thereof will be omitted.
  • the method of operating an SSD controller according to an exemplary embodiment of the present invention may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the media 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.
  • Magneto-optical media and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
  • 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.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)
  • Information Transfer Systems (AREA)
  • Read Only Memory (AREA)

Abstract

솔리드 스테이트 드라이브(Solid State Drive: SSD) 컨트롤러가 개시된다. 호스트로부터 데이터 읽기 명령이 전송되는 경우, 적어도 하나의 메모리에 의해 데이터가 버퍼에 기록 완료되는 시점을 체크하여 적어도 하나의 제1 포인터 중 대표 포인터를 선정하고, 상기 대표 포인터를 기초로 제2 포인터를 참조하여 상기 버퍼로부터 상기 데이터를 독출하여 호스트로 전송하는 SSD 컨트롤러가 개시된다.

Description

SSD 컨트롤러 및 SSD 컨트롤러의 동작 방법
솔리드 스테이트 드라이브(Solid State Drive: SSD) 컨트롤러 및 SSD 컨트롤러의 동작 방법이 개시된다. 특히, SSD에 포함된 복수의 메모리들이 버퍼(buffer)에 접근할 때 참조하는 포인터를 효율적으로 관리할 수 있는 SSD 컨트롤러 및 SSD 컨트롤러의 동작 방법이 개시된다.
데이터를 저장하는 스토리지 장치로는 자기 디스크(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 방식은 셀 어레이의 구성 및 동작 방식에 의해 구별될 수 있다.
플래시 메모리는 다수의 메모리 셀들의 배열로 이루어지며, 하나의 메모리 셀은 하나 이상의 데이터 비트를 저장할 수 있다. 하나의 메모리 셀은 컨트롤 게이트(control gate) 및 플로팅 게이트(floating gate)를 포함하며, 컨트롤 게이트 및 플로팅 게이트 사이에는 절연체(insulator)가 삽입되고, 플로팅 게이트 및 서브스트레이트(substrate) 간에도 절연체가 삽입된다.
이러한 비휘발성 메모리는 소정의 컨트롤러에 의해 관리가 이루어진다. 그리고, 이러한 컨트롤러의 성능에 따라 비휘발성 메모리 전체의 성능이 결정될 수도 있다.
따라서, 메모리를 효율적으로 관리 및 제어할 수 있는 방안에 대한 연구가 필요하다.
솔리드 스테이트 드라이브(Solid State Drive: SSD)에 포함된 DRAM 버퍼를 관리하는데 있어, SSD에 포함된 복수의 메모리에 따른 복수의 포인터 중 대표 포인터를 선정하여 대표 포인터에 대한 접근만을 관리함으로써, 포인터 관리의 복잡성을 줄일 수 있는 SSD 컨트롤러 및 SSD 컨트롤러의 동작 방법을 제공하고자 한다.
본 발명의 일실시예에 따른 솔리드 스테이트 드라이브(Solid State Drive: SSD) 컨트롤러는 호스트로부터 데이터 읽기 명령이 전송되는 경우, 적어도 하나의 메모리로 데이터 읽기 명령을 전송하는 명령부, 상기 적어도 하나의 메모리에 의해 데이터가 버퍼에 기록 완료되는 시점을 체크하여 적어도 하나의 제1 포인터 중 대표 포인터를 선정하는 포인터 선정부 및 상기 대표 포인터를 기초로 제2 포인터를 참조하여 상기 버퍼로부터 상기 데이터를 독출하고, 상기 독출된 데이터를 상기 호스트로 전송하는 전송부를 포함하고, 상기 적어도 하나의 메모리는 상기 적어도 하나의 제1 포인터를 참조하여 상기 데이터를 상기 버퍼에 기록한다.
또한, 본 발명의 또 다른 일실시예에 따른 솔리드 스테이트 드라이브(Solid State Drive: SSD) 컨트롤러는 호스트로부터 데이터 쓰기 명령이 전송되는 경우, 적어도 하나의 메모리로 데이터 쓰기 명령을 전송하는 명령부, 버퍼로부터 상기 적어도 하나의 메모리가 데이터를 독출하는 시점을 체크하여 적어도 하나의 제1 포인터 중 대표 포인터를 선정하는 포인터 선정부 및 상기 호스트로부터 상기 데이터를 수신하고, 상기 대표 포인터를 기초로 제2 포인터를 참조하여 상기 데이터를 상기 버퍼에 기록하는 기록부를 포함하고, 상기 적어도 하나의 메모리는 상기 적어도 하나의 제1 포인터를 참조하여 상기 버퍼로부터 상기 데이터를 독출한다.
또한, 본 발명의 일실시예에 따른 솔리드 스테이트 드라이브(Solid State Drive: SSD) 컨트롤러의 동작 방법은 호스트로부터 데이터 읽기 명령이 전송되는 경우, 적어도 하나의 메모리로 데이터 읽기 명령을 전송하는 단계, 상기 적어도 하나의 메모리에 의해 데이터가 버퍼에 기록 완료되는 시점을 체크하여 적어도 하나의 제1 포인터 중 포인터 값이 최소인 포인터를 대표 포인터로 선정하는 단계 및 상기 대표 포인터를 기초로 제2 포인터를 참조하여 상기 버퍼로부터 상기 데이터를 독출하고, 상기 독출된 데이터를 상기 호스트로 전송하는 단계를 포함하고, 상기 적어도 하나의 메모리는 상기 적어도 하나의 제1 포인터를 참조하여 상기 데이터를 상기 버퍼에 기록한다.
또한, 본 발명의 또 다른 일실시예에 따른 솔리드 스테이트 드라이브(Solid State Drive: SSD) 컨트롤러의 동작 방법은 호스트로부터 데이터 쓰기 명령이 전송되는 경우, 적어도 하나의 메모리로 데이터 쓰기 명령을 전송하는 단계, 버퍼로부터 상기 적어도 하나의 메모리가 데이터를 독출하는 시점을 체크하여 적어도 하나의 제1 포인터 중 포인터 값이 최소인 포인터를 대표 포인터로 선정하는 단계 및 상기 호스트로부터 상기 데이터를 수신하고, 상기 대표 포인터를 기초로 제2 포인터를 참조하여 상기 데이터를 상기 버퍼에 기록하는 단계를 포함하고, 상기 적어도 하나의 메모리는 상기 적어도 하나의 제1 포인터를 참조하여 상기 버퍼로부터 상기 데이터를 독출한다.
솔리드 스테이트 드라이브(Solid State Drive: SSD)에 포함된 DRAM 버퍼를 관리하는데 있어, SSD에 포함된 복수의 메모리에 따른 복수의 포인터 중 대표 포인터를 선정하여 대표 포인터에 대한 접근만을 관리하는 SSD 컨트롤러 및 SSD 컨트롤러의 동작 방법을 개시함으로써, 포인터 관리의 복잡성을 줄일 수 있다.
도 1은 본 발명의 일실시예에 따른 SSD 컨트롤러의 구조를 도시한 도면이다.
도 2는 본 발명의 또 다른 일실시예에 따른 SSD 컨트롤러의 구조를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 SSD 컨트롤러의 동작 방법을 도시한 순서도이다.
도 4는 본 발명의 또 다른 일실시예에 따른 SSD 컨트롤러의 동작 방법을 도시한 순서도이다.
이하에서, 첨부된 도면을 참조하여 본 발명에 따른 실시예들을 상세히 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
일반적으로 비휘발성 메모리에 대한 프로그래밍(programming)은 페이지(page) 단위로 수행될 수 있고 소거(erase)는 블록(block) 단위로 수행될 수 있다. 이때, 블록은 복수의 페이지들을 포함할 수 있다.
또한, 비휘발성 메모리를 관리하는 메모리 컨트롤러는 외부의 호스트(host) 또는 프로세서(processor)에 논리 주소(logical address)를 제공하고, 비휘발성 메모리에 대해 물리 주소(physical address)를 제공할 수 있다.
이때, 메모리 컨트롤러는 물리 주소를 이용하여 비휘발성 메모리를 관리하고, 물리 주소를 논리 주소로 변환할 수 있다.
여기서, 물리 주소 및 논리 주소의 변환이 수행되는 계층을 플래시 변환 계층(Flash Translation Layer: FTL)이라 하기도 한다.
일반적으로 솔리드 스테이트 드라이브(Solid State Drive: SSD)는 다수의 플래시 메모리 칩과 버스, FTL을 수행하는 컨트롤러 및 호스트 시스템의 요청을 버퍼링하는 메모리로 구성되어 있다. 이러한 구조로 인해 SSD는 다수의 칩과 버스를 병렬로 동작시킴으로써 높은 성능을 획득할 수 있다. SSD 내에 포함되어 있는 FTL은 다수의 칩에서 논리적으로 동일한 블록 번호를 갖는 블록들과 논리적으로 동일한 페이지 번호를 갖는 페이지들을 각각 블록 그룹과 페이지 그룹이라는 논리적인 단위로 구성하여 연산을 수행한다. 이때, FTL은 상기 페이지 그룹에 대한 읽기(read) 및 쓰기(write) 연산을 모든 칩에서 병렬적으로 수행함으로써 SSD 전반의 성능 향상에 기여할 수 있다. 또한, FTL은 상기 블록 그룹에 대한 소거 연산의 경우에도 모든 칩의 블록들에 대해 병렬적으로 수행함으로써 SSD의 성능 향상에 기여할 수 있다.
최근에 SSD는 DRAM을 포함하고 있어, 플래시 메모리로부터 데이터가 독출(read)되거나 플래시 메모리로 데이터가 기록(write)될 때, 상기 DRAM이 버퍼(buffer)로 사용되곤 한다.
기존의 하드 디스크에서 DRAM 버퍼가 사용되는 방식은 호스트(Host)가 DRAM 버퍼를 바라보는 제1 포인터(pointer)를 관리하고, 하드 디스크가 DRAM 버퍼를 바라보는 제2 포인터를 관리하여 호스트로부터 데이터 요청 신호가 전송되면, 하드 디스크가 제1 포인터를 참조하여 DRAM 버퍼에 데이터를 기록하고, 호스트는 제2 포인터를 참조하여 DRAM 버퍼로부터 상기 데이터를 독출한다.
반면, SSD는 기존의 하드 디스크와는 달리, 복수의 플래시 메모리를 포함하고 있어, 복수의 플래시 메모리의 개수에 따라 복수의 플래시 메모리가 DRAM 버퍼를 바라보는 포인터의 개수도 증가한다.
따라서, SSD에서 DRAM 버퍼를 사용하는 경우, 관리해야 할 포인터의 개수가 증가하여, SSD 컨트롤러가 포인터를 관리하는데 어려움이 발생할 수 있고, SSD 전반에 걸친 성능 저하가 발생할 수 있다.
이와 관련하여, 본 발명의 일실시예에 따른 SSD 컨트롤러는 복수의 플래시 메모리가 DRAM 버퍼에 데이터를 기록하거나 DRAM 버퍼로부터 데이터를 독출할 때 사용하는 복수의 포인터들 중 어느 하나의 포인터를 대표 포인터로 선정하여, 상기 대표 포인터와, 호스트가 DRAM 버퍼에 데이터를 기록하거나 DRAM 버퍼로부터 데이터를 독출할 때 사용하는 포인터에 대한 접근만 관리함으로써, 포인터 관리의 복잡성을 줄일 수 있다.
따라서, 이하에서는 도 1 및 도 2를 참조하여 본 발명의 일실시예에 따른 SSD 컨트롤러를 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 SSD 컨트롤러의 구조를 도시한 도면이다.
도 1을 참조하면, 호스트(110), SSD 컨트롤러(120), 버퍼(130) 및 적어도 하나의 메모리(141, 142, 143)가 도시되어 있다.
본 발명의 일실시예에 따른 SSD 컨트롤러(120)는 명령부(121), 포인터 선정부(122) 및 전송부(123)를 포함한다.
본 발명의 일실시예에 따르면, 버퍼(130)는 DRAM 버퍼일 수 있다.
또한, 본 발명의 일실시예에 따르면, 버퍼(130)는 환형(Circular) 버퍼일 수 있다.
또한, 본 발명의 일실시예에 따르면, 적어도 하나의 메모리(141, 142, 143)는 적어도 하나의 플래시 메모리일 수 있다.
명령부(121)는 호스트(110)로부터 데이터 읽기 명령이 전송되는 경우, 적어도 하나의 메모리(141, 142, 143)로 데이터 읽기 명령을 전송한다.
이때, 적어도 하나의 메모리(141, 142, 143)는 적어도 하나의 메모리(141, 142, 143)가 데이터를 버퍼(130)에 기록할 때 참조하는 적어도 하나의 제1 포인터를 참조하여 데이터를 버퍼(130)에 기록한다.
포인터 선정부(122)는 적어도 하나의 메모리(141, 142, 143)에 의해 상기 데이터가 버퍼(130)에 기록 완료되는 시점을 계속 체크(check)하여, 상기 적어도 하나의 제1 포인터 중 대표 포인터를 선정한다.
본 발명의 일실시예에 따르면, 포인터 선정부(122)는 상기 적어도 하나의 제1 포인터 중 포인터 값이 최소인 포인터를 상기 대표 포인터로 선정할 수 있다.
전송부(123)는 상기 대표 포인터를 기초로, 버퍼(130)로부터 데이터를 독출하여 호스트(110)로 전송할 때 참조하는 제2 포인터를 참조하여 버퍼(130)로부터 상기 데이터를 독출하고, 상기 독출된 데이터를 호스트(110)로 전송한다.
본 발명의 일실시예에 따르면, 전송부(123)는 상기 대표 포인터의 포인터 값이 상기 제2 포인터의 포인터 값보다 큰 경우, 상기 제2 포인터의 포인터 값과 상기 대표 포인터의 포인터 값이 동일해질 때까지, 버퍼(130) 상에서 상기 제2 포인터를 이동시켜, 상기 데이터를 독출할 수 있다.
결국, 본 발명의 일실시예에 따른 SSD 컨트롤러(120)는 상기 적어도 하나의 제1 포인터 중 포인터 값이 최소인 포인터를 대표 포인터로 선정하여, 상기 대표 포인터에 대한 접근만 관리함으로써, 포인터 관리에 따른 복잡성을 줄일 수 있다.
도 2는 본 발명의 또 다른 일실시예에 따른 SSD 컨트롤러의 구조를 도시한 도면이다.
도 2를 참조하면, 호스트(210), SSD 컨트롤러(220), 버퍼(230) 및 적어도 하나의 메모리(241, 242, 243)가 도시되어 있다.
본 발명의 일실시예에 따른 SSD 컨트롤러(220)는 명령부(221), 포인터 선정부(222) 및 기록부(223)를 포함한다.
본 발명의 일실시예에 따르면, 버퍼(230)는 DRAM 버퍼일 수 있다.
또한, 본 발명의 일실시예에 따르면, 버퍼(230)는 환형 버퍼일 수 있다.
또한, 본 발명의 일실시예에 따르면, 적어도 하나의 메모리(241, 242, 243)는 적어도 하나의 플래시 메모리일 수 있다.
명령부(221)는 호스트(210)로부터 데이터 쓰기 명령이 전송되는 경우, 적어도 하나의 메모리(241, 242, 243)로 데이터 쓰기 명령을 전송한다.
포인터 선정부(222)는 버퍼(230)로부터 적어도 하나의 메모리(241, 242, 243)가 데이터를 독출하는 시점을 계속 체크하여, 적어도 하나의 메모리(241, 242, 243)가 버퍼(230)에 데이터를 기록할 때 참조하는 적어도 하나의 제1 포인터 중 대표 포인터를 선정한다.
본 발명의 일실시예에 따르면, 포인터 선정부(222)는 상기 적어도 하나의 제1 포인터 중 포인터 값이 최소인 포인터를 상기 대표 포인터로 선정할 수 있다.
기록부(223)는 호스트(210)로부터 상기 데이터를 수신하고, 상기 대표 포인터를 기초로, 호스트(210)로부터 전송된 데이터를 버퍼(230)에 기록할 때 참조하는 제2 포인터를 참조하여 상기 데이터를 버퍼(230)에 기록한다.
본 발명의 일실시예에 따르면, 기록부(223)는 상기 대표 포인터의 포인터 값이 상기 제2 포인터의 포인터 값보다 작은 경우, 상기 제2 포인터의 포인터 값과 상기 대표 포인터의 포인터 값이 동일해질 때까지, 버퍼(230) 상에서 상기 제2 포인터를 이동시켜, 상기 데이터를 기록할 수 있다.
이때, 적어도 하나의 메모리(241, 242, 243)는 상기 적어도 하나의 제1 포인터를 참조하여 버퍼(230)로부터 상기 데이터를 독출한다.
결국, 본 발명의 일실시예에 따른 SSD 컨트롤러(220)는 상기 적어도 하나의 제1 포인터 중 포인터 값이 최소인 포인터를 대표 포인터로 선정하여, 상기 대표 포인터에 대한 접근만 관리함으로써, 포인터 관리에 따른 복잡성을 줄일 수 있다.
이상, 도 1 및 도 2를 참조하여, SSD에 포함되어 있는 적어도 하나의 메모리로부터 데이터가 독출되는 경우와 상기 적어도 하나의 메모리로 데이터가 기록되는 경우에 대한 SSD 컨트롤러의 실시예를 상세히 설명하였다.
본 발명의 일실시예에 따르면, 도 1 및 도 2를 이용하여 설명한 SSD 컨트롤러의 실시예는 하나의 SSD 컨트롤러로 구현될 수 있다.
다시 말해서, 본 발명의 일실시예에 따른 SSD 컨트롤러는 도 1 및 도 2에 도시된 실시예와 같이, 각각 별개의 SSD 컨트롤러로 구현될 수도 있고, 도 1 및 도 2에 도시된 실시예를 통합하여 하나의 SSD 컨트롤러로 구현될 수도 있다.
도 3은 본 발명의 일실시예에 따른 SSD 컨트롤러의 동작 방법을 도시한 순서도이다.
단계(S310)에서는 호스트로부터 데이터 읽기 명령이 전송되는 경우, 적어도 하나의 메모리로 데이터 읽기 명령을 전송한다.
이때, 상기 적어도 하나의 메모리는 상기 적어도 하나의 메모리가 데이터를 버퍼에 기록할 때 참조하는 적어도 하나의 제1 포인터를 참조하여 데이터를 상기 버퍼에 기록한다.
본 발명의 일실시예에 따르면, 상기 버퍼는 DRAM 버퍼일 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 버퍼는 환형 버퍼일 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 적어도 하나의 메모리는 적어도 하나의 플래시 메모리일 수 있다.
단계(S320)에서는 상기 적어도 하나의 메모리에 의해 상기 데이터가 버퍼에 기록 완료되는 시점을 체크하여 상기 적어도 하나의 제1 포인터 중 포인터 값이 최소인 포인터를 대표 포인터로 선정한다.
단계(S330)에서는 상기 대표 포인터를 기초로, 상기 버퍼로부터 데이터를 독출하여 상기 호스트로 전송할 때 참조하는 제2 포인터를 참조하여 상기 버퍼로부터 상기 데이터를 독출하고, 상기 독출된 데이터를 상기 호스트로 전송한다.
본 발명의 일실시예에 따르면, 단계(S330)에서는 상기 대표 포인터의 포인터 값이 상기 제2 포인터의 포인터 값보다 큰 경우, 상기 제2 포인터의 포인터 값과 상기 대표 포인터의 포인터 값이 동일해질 때까지, 상기 버퍼 상에서 상기 제2 포인터를 이동시켜, 상기 데이터를 독출할 수 있다.
도 4는 본 발명의 또 다른 일실시예에 따른 SSD 컨트롤러의 동작 방법을 도시한 순서도이다.
단계(S410)에서는 호스트로부터 데이터 쓰기 명령이 전송되는 경우, 적어도 하나의 메모리로 데이터 쓰기 명령을 전송한다.
단계(S420)에서는 버퍼로부터 상기 적어도 하나의 메모리가 데이터를 독출하는 시점을 체크하여 상기 적어도 하나의 메모리가 버퍼에 데이터를 기록할 때 참조하는 적어도 하나의 제1 포인터 중 대표 포인터를 선정한다.
본 발명의 일실시예에 따르면, 상기 버퍼는 DRAM 버퍼일 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 버퍼는 환형 버퍼일 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 적어도 하나의 메모리는 적어도 하나의 플래시 메모리일 수 있다.
단계(S430)에서는 상기 호스트로부터 상기 데이터를 수신하고, 상기 대표 포인터를 기초로, 상기 호스트로부터 전송된 데이터를 상기 버퍼에 기록할 때 참조하는 제2 포인터를 참조하여 상기 데이터를 상기 버퍼에 기록한다.
본 발명의 일실시예에 따르면, 단계(S430)에서는 상기 대표 포인터의 포인터 값이 상기 제2 포인터의 포인터 값보다 작은 경우, 상기 제2 포인터의 포인터 값과 상기 대표 포인터의 포인터 값이 동일해질 때까지, 상기 버퍼 상에서 상기 제2 포인터를 이동시켜, 상기 데이터를 기록할 수 있다.
이상, 도 3 및 도 4를 참조하여 본 발명의 일실시예에 따른 SSD 컨트롤러의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 SSD 컨트롤러의 동작 방법은 도 1 및 도 2를 이용하여 설명한 SSD 컨트롤러의 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 SSD 컨트롤러의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (11)

  1. 솔리드 스테이트 드라이브(Solid State Drive: SSD) 컨트롤러에 있어서,
    호스트로부터 데이터 읽기 명령이 전송되는 경우, 적어도 하나의 메모리로 데이터 읽기 명령을 전송하는 명령부;
    상기 적어도 하나의 메모리에 의해 데이터가 버퍼에 기록 완료되는 시점을 체크하여 적어도 하나의 제1 포인터 중 대표 포인터를 선정하는 포인터 선정부; 및
    상기 대표 포인터를 기초로 제2 포인터를 참조하여 상기 버퍼로부터 상기 데이터를 독출하고, 상기 독출된 데이터를 상기 호스트로 전송하는 전송부
    를 포함하고,
    상기 적어도 하나의 메모리는 상기 적어도 하나의 제1 포인터를 참조하여 상기 데이터를 상기 버퍼에 기록하는 SSD 컨트롤러.
  2. 제1항에 있어서,
    상기 포인터 선정부는
    상기 적어도 하나의 제1 포인터 중 포인터 값이 최소인 포인터를 상기 대표 포인터로 선정하는 SSD 컨트롤러.
  3. 제2항에 있어서,
    상기 전송부는
    상기 대표 포인터의 포인터 값이 상기 제2 포인터의 포인터 값보다 큰 경우, 상기 제2 포인터의 포인터 값과 상기 대표 포인터의 포인터 값이 동일해질 때까지, 상기 버퍼 상에서 상기 제2 포인터를 이동시켜, 상기 데이터를 독출하는 SSD 컨트롤러.
  4. 제1항에 있어서,
    상기 버퍼는
    환형(Circular) 버퍼인 SSD 컨트롤러.
  5. 솔리드 스테이트 드라이브(Solid State Drive: SSD) 컨트롤러에 있어서,
    호스트로부터 데이터 쓰기 명령이 전송되는 경우, 적어도 하나의 메모리로 데이터 쓰기 명령을 전송하는 명령부;
    버퍼로부터 상기 적어도 하나의 메모리가 데이터를 독출하는 시점을 체크하여 적어도 하나의 제1 포인터 중 대표 포인터를 선정하는 포인터 선정부; 및
    상기 호스트로부터 상기 데이터를 수신하고, 상기 대표 포인터를 기초로 제2 포인터를 참조하여 상기 데이터를 상기 버퍼에 기록하는 기록부
    를 포함하고,
    상기 적어도 하나의 메모리는 상기 적어도 하나의 제1 포인터를 참조하여 상기 버퍼로부터 상기 데이터를 독출하는 SSD 컨트롤러.
  6. 제5항에 있어서,
    상기 포인터 선정부는
    상기 적어도 하나의 제1 포인터 중 포인터 값이 최소인 포인터를 상기 대표 포인터로 선정하는 SSD 컨트롤러.
  7. 제6항에 있어서,
    상기 기록부는
    상기 대표 포인터의 포인터 값이 상기 제2 포인터의 포인터 값보다 작은 경우, 상기 제2 포인터의 포인터 값과 상기 대표 포인터의 포인터 값이 동일해질 때까지, 상기 버퍼 상에서 상기 제2 포인터를 이동시켜, 상기 데이터를 기록하는 SSD 컨트롤러.
  8. 제5항에 있어서,
    상기 버퍼는
    환형(Circular) 버퍼인 SSD 컨트롤러.
  9. 솔리드 스테이트 드라이브(Solid State Drive: SSD) 컨트롤러의 동작 방법에 있어서,
    호스트로부터 데이터 읽기 명령이 전송되는 경우, 적어도 하나의 메모리로 데이터 읽기 명령을 전송하는 단계;
    상기 적어도 하나의 메모리에 의해 데이터가 버퍼에 기록 완료되는 시점을 체크하여 적어도 하나의 제1 포인터 중 포인터 값이 최소인 포인터를 대표 포인터로 선정하는 단계; 및
    상기 대표 포인터를 기초로 제2 포인터를 참조하여 상기 버퍼로부터 상기 데이터를 독출하고, 상기 독출된 데이터를 상기 호스트로 전송하는 단계
    를 포함하고,
    상기 적어도 하나의 메모리는 상기 적어도 하나의 제1 포인터를 참조하여 상기 데이터를 상기 버퍼에 기록하는 SSD 컨트롤러의 동작 방법.
  10. 솔리드 스테이트 드라이브(Solid State Drive: SSD) 컨트롤러의 동작 방법에 있어서,
    호스트로부터 데이터 쓰기 명령이 전송되는 경우, 적어도 하나의 메모리로 데이터 쓰기 명령을 전송하는 단계;
    버퍼로부터 상기 적어도 하나의 메모리가 데이터를 독출하는 시점을 체크하여 적어도 하나의 제1 포인터 중 포인터 값이 최소인 포인터를 대표 포인터로 선정하는 단계; 및
    상기 호스트로부터 상기 데이터를 수신하고, 상기 대표 포인터를 기초로 제2 포인터를 참조하여 상기 데이터를 상기 버퍼에 기록하는 단계
    를 포함하고,
    상기 적어도 하나의 메모리는 상기 적어도 하나의 제1 포인터를 참조하여 상기 버퍼로부터 상기 데이터를 독출하는 SSD 컨트롤러의 동작 방법.
  11. 제9항 또는 제10항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
PCT/KR2009/007517 2009-03-20 2009-12-16 Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법 WO2010107173A1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN2009801582168A CN102362263A (zh) 2009-03-20 2009-12-16 Ssd控制器与ssd控制器的操作方法
JP2012500705A JP2012521032A (ja) 2009-03-20 2009-12-16 Ssdコントローラおよびssdコントローラの動作方法
EP09841957.5A EP2410434A4 (en) 2009-03-20 2009-12-16 SSD CONTROL AND METHOD OF OPERATING AN SSD CONTROL
US13/257,458 US8954662B2 (en) 2009-03-20 2009-12-16 SSD controller, and method for operating an SSD controller

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020090023989A KR101070511B1 (ko) 2009-03-20 2009-03-20 Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
KR10-2009-0023989 2009-03-20

Publications (1)

Publication Number Publication Date
WO2010107173A1 true WO2010107173A1 (ko) 2010-09-23

Family

ID=42739816

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2009/007517 WO2010107173A1 (ko) 2009-03-20 2009-12-16 Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법

Country Status (6)

Country Link
US (1) US8954662B2 (ko)
EP (1) EP2410434A4 (ko)
JP (1) JP2012521032A (ko)
KR (1) KR101070511B1 (ko)
CN (1) CN102362263A (ko)
WO (1) WO2010107173A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9575669B2 (en) 2014-12-09 2017-02-21 Western Digital Technologies, Inc. Programmable solid state drive controller and method for scheduling commands utilizing a data structure
CN105204786B (zh) * 2015-10-22 2016-10-12 湖南国科微电子股份有限公司 一种pcie ssd阵列的数据写方法及系统
US10481799B2 (en) 2016-03-25 2019-11-19 Samsung Electronics Co., Ltd. Data storage device and method including receiving an external multi-access command and generating first and second access commands for first and second nonvolatile memories
KR20180041898A (ko) 2016-10-17 2018-04-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10261876B2 (en) * 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030086801A (ko) * 2002-05-07 2003-11-12 주식회사 하이닉스반도체 플래시 메모리의 뱅크 분할 방법 및 플래시 메모리의 뱅크분할 장치
KR20070045114A (ko) * 2005-10-26 2007-05-02 소니 가부시끼 가이샤 정보 처리 장치와 정보 처리 방법, 및 컴퓨터 프로그램
KR20080065450A (ko) * 2007-01-09 2008-07-14 삼성전자주식회사 멀티-비트 데이터를 저장할 수 있는 플래시 메모리 장치,그것을 제어하는 메모리 제어기, 그리고 그것을 포함한메모리 시스템
KR20090008766A (ko) * 2007-07-19 2009-01-22 삼성전자주식회사 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553267A (en) * 1992-07-01 1996-09-03 Digital Equipment Corporation Method and apparatus for coordinating access to and modifying multiple element data objects in a shared memory
US6173307B1 (en) * 1998-08-20 2001-01-09 Intel Corporation Multiple-reader multiple-writer queue for a computer system
JP2002014912A (ja) * 2000-04-28 2002-01-18 Sony Corp メモリ制御方法、データ受信装置、データ送受信方法およびデータ送受信システム
US9137179B2 (en) * 2006-07-26 2015-09-15 Hewlett-Packard Development Company, L.P. Memory-mapped buffers for network interface controllers
US20080107396A1 (en) * 2006-11-08 2008-05-08 Tsung-Ning Chung Systems and methods for playing back data from a circular buffer by utilizing embedded timestamp information
US7716396B1 (en) * 2007-02-09 2010-05-11 Juniper Networks, Inc. Multi-reader multi-writer circular buffer memory
JP2009054209A (ja) * 2007-08-23 2009-03-12 Hitachi Global Storage Technologies Netherlands Bv 不揮発性半導体メモリ装置を有するディスク・ドライブ装置及びそのディスク・ドライブ装置において不揮発性半導体メモリ装置にデータを格納する方法
CN101122886B (zh) * 2007-09-03 2010-06-09 杭州华三通信技术有限公司 分配缓存空间的方法和装置以及缓存控制器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030086801A (ko) * 2002-05-07 2003-11-12 주식회사 하이닉스반도체 플래시 메모리의 뱅크 분할 방법 및 플래시 메모리의 뱅크분할 장치
KR20070045114A (ko) * 2005-10-26 2007-05-02 소니 가부시끼 가이샤 정보 처리 장치와 정보 처리 방법, 및 컴퓨터 프로그램
KR20080065450A (ko) * 2007-01-09 2008-07-14 삼성전자주식회사 멀티-비트 데이터를 저장할 수 있는 플래시 메모리 장치,그것을 제어하는 메모리 제어기, 그리고 그것을 포함한메모리 시스템
KR20090008766A (ko) * 2007-07-19 2009-01-22 삼성전자주식회사 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법

Also Published As

Publication number Publication date
CN102362263A (zh) 2012-02-22
US20120011334A1 (en) 2012-01-12
KR20100105127A (ko) 2010-09-29
EP2410434A4 (en) 2013-05-01
KR101070511B1 (ko) 2011-10-05
EP2410434A1 (en) 2012-01-25
US8954662B2 (en) 2015-02-10
JP2012521032A (ja) 2012-09-10

Similar Documents

Publication Publication Date Title
WO2010107176A2 (ko) 디램 버퍼 관리 장치 및 방법
KR101425957B1 (ko) 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템
WO2012096503A2 (ko) 파티션 정보를 기초로 호스트의 요청에 대한 처리 기법을 적응적으로 결정하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
WO2014171618A1 (ko) 스토리지 시스템 및 스토리지 시스템의 쓰기 데이터 처리 방법
WO2010090390A1 (ko) 메모리 장치, 메모리 관리 장치 및 메모리 관리 방법
KR101532863B1 (ko) 메모리 시스템 제어기를 구비하는 장치 및 관련 방법
WO2010093114A1 (ko) 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치
TWI473116B (zh) 多通道記憶體儲存裝置及其控制方法
US20090006725A1 (en) Memory device
WO2013069859A1 (ko) 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법
US10732838B2 (en) Logical grouping for hybrid dual write
JP2011118469A (ja) メモリ管理装置およびメモリ管理方法
JP2011204140A (ja) 記憶装置
KR20190090635A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11204833B1 (en) NVM endurance group controller using shared resource architecture
WO2010107173A1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
WO2013176376A1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
WO2012091234A1 (ko) 비휘발성 메모리 및 휘발성 메모리를 포함하는 메모리 시스템 및 그 시스템을 이용한 처리 방법
CN111796759B (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
KR20190083148A (ko) 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
WO2009126011A2 (ko) 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법
WO2013180387A1 (ko) 낸드 플래시 메모리 장치의 페이지 데이터 독출 방법
WO2010056003A2 (ko) 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한 컨트롤러
KR20190019721A (ko) 데이터 저장 장치 및 그것의 동작 방법
US10649909B2 (en) Logical block addressing range collision crawler

Legal Events

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

Ref document number: 200980158216.8

Country of ref document: CN

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

Ref document number: 09841957

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13257458

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2012500705

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2009841957

Country of ref document: EP