WO2010056003A2 - 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한 컨트롤러 - Google Patents

메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한 컨트롤러 Download PDF

Info

Publication number
WO2010056003A2
WO2010056003A2 PCT/KR2009/006337 KR2009006337W WO2010056003A2 WO 2010056003 A2 WO2010056003 A2 WO 2010056003A2 KR 2009006337 W KR2009006337 W KR 2009006337W WO 2010056003 A2 WO2010056003 A2 WO 2010056003A2
Authority
WO
WIPO (PCT)
Prior art keywords
idle
index
bank
idle bank
solid state
Prior art date
Application number
PCT/KR2009/006337
Other languages
English (en)
French (fr)
Other versions
WO2010056003A3 (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 US13/128,981 priority Critical patent/US8601200B2/en
Priority to JP2011536235A priority patent/JP2012508921A/ja
Priority to CN2009801544626A priority patent/CN102272848A/zh
Priority to EP09826235A priority patent/EP2367175A4/en
Publication of WO2010056003A2 publication Critical patent/WO2010056003A2/ko
Publication of WO2010056003A3 publication Critical patent/WO2010056003A3/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
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Definitions

  • Embodiments of the present invention relate to a controller for a solid state disk, and more particularly to a technique for efficiently selecting memory banks to be read or written in a solid state disk having a plurality of memory banks.
  • Solid state disks use flash memory, synchronous dynamic random access memory (SDRAM), and the like, rather than hard disk drives.
  • solid state disks do not require a mechanical drive such as a motor used for a hard disk drive, and therefore can operate with little heat and noise.
  • solid state disks are resistant to external shocks and can achieve higher data rates compared to hard disk drives.
  • the solid state disk includes a plurality of memory banks, and the controller must select at least one of the plurality of memory banks to perform a read or write operation.
  • a typical solid state disk selects at least one of a plurality of memory banks using firmware that includes a wear leveling algorithm that allows the plurality of memory banks to wear almost evenly.
  • various operations such as a time delay may be required due to calculation of a central processing unit.
  • a four-channel solid state disk includes four channels, with a plurality of memory banks connected to each of the four channels.
  • the controller for a solid state disk manages the indices of the idle banks separately through a storage module (for example, a register) that is a hardware medium to select a memory bank, thereby delaying the use of firmware.
  • a storage module for example, a register
  • controller for the solid state disk selects at least one idle bank in consideration of the state of the channel, thereby performing a read operation or a write operation without waiting due to the busy of the channel. .
  • controller for the solid state disk applies a wear leveling (wear leveling) by using a round-robin method.
  • controller for a solid state disk easily selects any one of a plurality of idle banks by using a pointer.
  • a controller for a solid state disk is a storage module for storing an index of at least one idle bank of a plurality of memory banks and the at least one idle bank using the stored index. It includes a control module for controlling access to the.
  • control module may control access to the at least one idle bank in consideration of a state of a channel corresponding to each of the at least one idle bank.
  • the control module may indicate one of the stored indexes of the at least one idle bank with a pointer and control access to the idle bank corresponding to the indicated index.
  • an access result for the at least one idle bank is provided to a flash translation layer (FTL), and the flash translation layer is based on a result of access to the at least one idle bank.
  • FTL flash translation layer
  • a logical sector may be constructed.
  • control method for a solid-state disk comprises the steps of storing an index of at least one idle bank of a plurality of memory banks in a pre-prepared register, at least one from the pre-prepared register Detecting an index of and controlling access to the at least one idle bank using the detected at least one index.
  • the controller for a solid state disk can reduce the delay caused by the use of firmware by separately managing the index of the idle bank through a storage module which is a hardware medium to select a memory bank.
  • controller for a solid state disk selects at least one idle bank in consideration of the state of the channel, thereby performing a read operation or a write operation without waiting due to the busy of the channel. Can be.
  • controller for the solid state disk can apply wear leveling by using a round-robin method.
  • controller for a solid state disk can easily select any one of a plurality of idle banks by using a pointer.
  • controller for the solid state disk provides the information on the selected idle bank to the Flash Translation Layer (FTL), so that the flash translation layer is more efficiently physical sector (physical sector) ) And map between logical sectors.
  • FTL Flash Translation Layer
  • FIG. 1 is a view showing a solid state disk according to an embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating a controller for a solid state disk according to an embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a plurality of memory blocks connected to each of a plurality of channels according to an embodiment of the present invention.
  • FIG. 4 is a diagram illustrating a table managed by a storage module according to an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating a control method for a solid state disk according to an embodiment of the present invention.
  • FIG. 1 is a view showing a solid state disk according to an embodiment of the present invention.
  • a solid state disk includes a host interface 120, a controller 130, a buffer 140, and a plurality of memory banks 151, 152, 153, and 154.
  • the host interface 120 transmits / receives various signals such as control signals, address information, and data through a bus with an external host 110.
  • the host interface 120 appropriately converts various signals transmitted / received with the external host 110 into internal signals and provides them to the controller 130.
  • the controller 130 controls a read operation or a write operation on the plurality of memory banks 151, 152, 153, and 154 in response to an internal signal of the host interface 120.
  • each of the plurality of memory banks 151, 152, 153, and 154 may be provided with a flash memory, and the plurality of memory banks 151, 152, 153, and 154 may be independent of each other.
  • the buffer 140 stores frequently used data. That is, the controller 130 may store frequently used data in the buffer 140 to reduce the time required for the read operation or the write operation.
  • the plurality of channels (channels A, B, C, D) operate independently of each other.
  • the solid state disk may perform a read operation or a write operation in parallel by using a plurality of channels (channels A, B, C, and D) operated independently of each other.
  • the controller 130 may include memory banks 0, 4, 8, 12 connected to channel A, memory banks 1, 5, 9, 13 connected to channel B, memory banks 2, 6, 10, 14 connected to channel C, and channels. Read or write operations can be controlled independently for memory banks 3, 7, 11, and 15 connected to D.
  • memory banks 0, 1, 2, 3, 4, 5, and 6 all have idle states, channels A and B are busy and channels C are idle.
  • the controller 130 in order to perform a read operation or a write operation on at least one of the memory banks 0, 1, 4, and 5 connected to the channel A or the channel B, it is necessary to wait until the states of the channels A and B become idle. This wait may be a cause of degrading the overall performance of the solid state disk.
  • the controller 130 recognizes that the state of the channel C is idle, and the controller 130 selects the memory banks 2 or 6 connected to the channel C among the memory banks 0, 1, 2, 3, 4, 5, and 6.
  • a read operation or a write operation may be performed on at least one of the selected memory banks 2 and 6. This will be described in detail with reference to FIGS. 2 to 6.
  • FIG. 2 is a block diagram illustrating a controller for a solid state disk according to an embodiment of the present invention.
  • a controller 130 for a solid state disk includes a storage module 210 and a control module 220.
  • the control module 220 controls a read operation or a write operation on a plurality of memory banks (not shown) through channels A, B, C, and D.
  • channels A, B, C, and D are shown in FIG. 2, it should be noted that the present invention can be well applied to various cases in which two or more channels exist.
  • the storage module 210 stores and manages indices of idle banks among the plurality of memory banks.
  • the storage module 210 can list the indices of idle banks using a register.
  • the indices of the idle banks stored in the storage module 210 may be properly updated in response to their state changing to busy.
  • control module 220 controls access to the selected idle bank using the indices of the idle banks stored in the storage module 210. That is, the control module 220 selects an idle bank that is a target of a read operation or a write operation based on the stored indices, and controls access to the selected idle bank.
  • control module 220 may select at least one idle bank in consideration of the state of a channel connected to each of the idle banks in order to reduce the aforementioned waiting time.
  • control module 220 may preferentially select an idle bank connected to channel B among several idle banks.
  • control module 220 may use a round-robin scheme for wear leveling that allows a plurality of memory banks to be used evenly. For example, the control module 220 may sequentially select each of the memory banks connected to one channel so that the plurality of memory banks may be evenly used.
  • the information about the selected idle bank (access result) may be provided to a flash translation layer (FTL).
  • the flash translation layer may configure or update a map between a physical sector and a logical sector based on the information about the selected idle bank (access result).
  • FIG. 3 is a diagram illustrating a plurality of memory blocks connected to each of a plurality of channels according to an embodiment of the present invention.
  • the controller may initially select memory bank 0 and sequentially select memory banks 1, 2, and 3.
  • the controller may select the memory bank 5 connected to the channel B having the idle state instead of the memory bank 4. .
  • the controller according to an embodiment of the present invention improves the performance of the solid state disk by selecting memory bank 5 connected to the channel B having the idle state immediately without waiting for the state of the channel A to become idle from idle. You can.
  • the controller may select one of the memory banks 6 and 14. Furthermore, the controller may select a higher priority in consideration of the cyclic order method among the memory banks 6 and 14.
  • FIG. 4 is a diagram illustrating a table managed by a storage module according to an embodiment of the present invention.
  • a storage module manages a table 410 that stores indices of idle banks which are memory banks or memory banks having an idle state. Numbers 1, 2, 3, ..., 7 described in table 410 represent indices of memory banks or idle banks.
  • the pointer 420 indicates any one of the plurality of indices stored in the table 410. At this time, the controller selects an idle bank corresponding to the indicated index and performs a read operation or a write operation on the selected idle bank.
  • the table 410 may be updated, and in another way, the pointer 420 may be indicative of the index that was indicated immediately before. You can point to another index.
  • the pointer 420 may change the indexes sequentially indicated by using a cyclic order method. That is, the pointer 420 may indicate the k-th index immediately before and then indicate the current k + 1-th index.
  • the pointer 420 may indicate the index of the idle bank in consideration of the state of the channel. For example, when the state of channel A is busy, the pointer 420 may indicate index 3 immediately before skipping index 4 and newly indicate index 5.
  • the controller may quickly select an idle bank that is a target of a read operation or a write operation by using a pointer 420 indicating one index in consideration of a channel state.
  • FIG. 5 is a flowchart illustrating a control method for a solid state disk according to an embodiment of the present invention.
  • an index of at least one idle bank among a plurality of memory banks is stored in a register prepared in advance (S510).
  • control method for the solid state disk checks the channel corresponding to the idle bank having the k-th index (S520).
  • control method for the solid state disk determines whether the state of the inspected channel is busy (S530).
  • k is increased to k + 1 (S540), the idle bank having the k + 1 th index The corresponding channel is inspected (S520).
  • the control method for the solid state disk selects the idle bank having the k-th index as the memory bank to be read or write. (S550).
  • control method for the solid state disk controls the access for the read operation or the write operation based on the signals received from the external host for the selected idle bank (S560).
  • control method for the solid state disk provides the access result to the flash translation layer (S570).
  • the flash translation layer constructs or updates a map between the physical sector and the logical sector using the access result.
  • the control method for a solid state disk may be implemented in the form of program instructions that can be executed by various computer means and recorded on 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)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

고체 상태 디스크(solid state disk)를 위한 컨트롤러가 제공된다. 컨트롤러는 복수의 메모리 뱅크들 중 적어도 하나의 아이들(idle) 뱅크의 인덱스를 저장하는 저장 모듈 및 상기 저장된 인덱스를 이용하여 상기 적어도 하나의 아이들 뱅크에 대한 접근을 제어하는 제어 모듈을 포함한다. 이 때, 상기 적어도 하나의 아이들 뱅크 각각에 대응하는 채널의 상태를 고려하여 상기 적어도 하나의 아이들 뱅크에 대한 접근을 제어할 수 있다.

Description

메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한 컨트롤러
본 발명의 실시예들은 고체 상태 디스크를 위한 컨트롤러에 관한 것으로, 특히 복수의 메모리 뱅크들을 갖고 있는 고체 상태 디스크에서 읽기 또는 쓰기 동작의 대상이 되는 메모리 뱅크들을 효율적으로 선택하기 위한 기술에 관한 것이다.
최근, 고체 상태 디스크(solid state disk)에 관한 관심이 크게 증가하고 있다. 고체 상태 디스크는 하드 디스크 드라이브(hard disk drive)가 아니라 플래시 메모리, SDRAM(synchronous dynamic random access memory) 등을 사용한다. 따라서, 고체 상태 디스크는 하드 디스크 드라이브를 위해 사용되는 모터와 같은 기계적 구동 장치를 요구하지 않으므로, 열과 소음을 거의 발생시키지 않고 동작할 수 있다. 뿐만 아니라, 고체 상태 디스크는 외부의 충격에 강하며 하드 디스크 드라이브에 비해 높은 데이터 전송률을 달성할 수 있다.
고체 상태 디스크는 복수의 메모리 뱅크들을 포함하며, 컨트롤러는 읽기 또는 쓰기 동작을 수행하기 위하여 복수의 메모리 뱅크들 중 적어도 하나를 선택해야 한다. 일반적인 고체 상태 디스크는 복수의 메모리 뱅크들이 거의 균등하게 마모될 수 있도록 하는 소모 레벨링(wear leveling) 알고리즘을 포함하는 펌웨어(firmware)를 이용하여 복수의 메모리 뱅크들 중 적어도 하나를 선택한다. 다만, 펌웨어를 이용하여 적어도 하나의 메모리 뱅크를 선택하는 경우, 중앙 처리 장치(Central Processing Unit)의 연산이 요구되고, 그로 인한 시간 지연 등과 같은 다양한 문제들이 발생할 수 있다.
또한, 복수의 메모리 뱅크들은 복수의 채널들과 연결된다. 예를 들어, 4 채널의 고체 상태 디스크는 4 개의 채널들을 포함하며, 4 개의 채널들 각각에는 복수의 메모리 뱅크들이 연결된다. 이 때, 선택된 메모리 뱅크와 연결된 채널의 상태를 고려하지 않고 메모리 뱅크들의 상태만을 고려하여 메모리 뱅크를 선택하는 것은 문제가 될 수 있다. 즉, 선택된 메모리 뱅크와 연결된 채널의 상태가 비지(busy)인 경우, 선택된 메모리 뱅크에 대해 읽기 동작 또는 쓰기 동작을 수행하기 위하여 상기 채널의 상태가 아이들(idle)이 될 때까지 기다려야 할 필요가 있다. 이러한 기다림은 고체 상태 디스크의 전체적인 성능을 감소시키는 것일 수 있다.
본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러는 메모리 뱅크를 선택하기 위하여 하드웨어 매체인 저장 모듈(예를 들어, 레지스터)을 통하여 아이들 뱅크의 인덱스를 별도로 관리함으로써, 펌웨어의 사용으로 인한 지연을 줄인다.
또한, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러는 채널의 상태를 고려하여 적어도 하나의 아이들 뱅크를 선택함으로써, 채널의 비지(busy)로 인한 기다림없이 읽기 동작 또는 쓰기 동작을 수행한다.
또한, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러는 순환 순서(round-robin) 방식을 사용함으로써, 소모 레벨링(wear leveling)을 적용한다.
또한, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러는 포인터를 사용함으로써, 복수의 아이들 뱅크들 중 어느 하나를 쉽게 선택한다.
또한, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러는 선택된 아이들 뱅크에 대한 정보를 플래시 변환 계층(Flash Translation Layer, FTL)으로 제공함으로써, 플래시 변환 계층은 보다 효율적으로 물리 섹터(physical sector) 및 논리 섹터(logical sector) 사이의 맵을 구성하거나 업데이트한다.
본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러는 복수의 메모리 뱅크들 중 적어도 하나의 아이들(idle) 뱅크의 인덱스를 저장하는 저장 모듈 및 상기 저장된 인덱스를 이용하여 상기 적어도 하나의 아이들 뱅크에 대한 접근을 제어하는 제어 모듈을 포함한다.
이 때, 상기 제어 모듈은 상기 적어도 하나의 아이들 뱅크 각각에 대응하는 채널의 상태를 고려하여 상기 적어도 하나의 아이들 뱅크에 대한 접근을 제어할 수 있다. 그리고, 상기 제어 모듈은 상기 저장된 적어도 하나의 아이들(idle) 뱅크의 인덱스 중 포인터로 어느 하나를 지시하고, 상기 지시된 인덱스에 대응하는 아이들 뱅크에 대한 접근을 제어할 수 있다.
특히, 상기 적어도 하나의 아이들 뱅크에 대한 접근 결과는 플래시 변환 계층(Flash Translation Layer, FTL)으로 제공되고, 상기 플래시 변환 계층은 상기 적어도 하나의 아이들 뱅크에 대한 접근 결과를 기초로 물리 섹터(physical sector) 및 논리 섹터(logical sector) 사이의 맵을 구성할 수 있다.
또한, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 제어 방법은 미리 준비된 레지스터에 복수의 메모리 뱅크들 중 적어도 하나의 아이들(idle) 뱅크의 인덱스를 저장하는 단계, 상기 미리 준비된 레지스터로부터 적어도 하나의 인덱스를 검출하는 단계 및 상기 검출된 적어도 하나의 인덱스를 이용하여 상기 적어도 하나의 아이들 뱅크에 대한 접근을 제어하는 단계를 포함한다.
본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러는 메모리 뱅크를 선택하기 위하여 하드웨어 매체인 저장 모듈을 통하여 아이들 뱅크의 인덱스를 별도로 관리함으로써, 펌웨어의 사용으로 인한 지연을 줄일 수 있다.
또한, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러는 채널의 상태를 고려하여 적어도 하나의 아이들 뱅크를 선택함으로써, 채널의 비지(busy)로 인한 기다림없이 읽기 동작 또는 쓰기 동작을 수행할 수 있다.
또한, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러는 순환 순서(round-robin) 방식을 사용함으로써, 소모 레벨링(wear leveling)을 적용할 수 있다.
또한, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러는 포인터를 사용함으로써, 복수의 아이들 뱅크들 중 어느 하나를 쉽게 선택할 수 있다.
또한, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러는 선택된 아이들 뱅크에 대한 정보를 플래시 변환 계층(Flash Translation Layer, FTL)으로 제공함으로써, 플래시 변환 계층은 보다 효율적으로 물리 섹터(physical sector) 및 논리 섹터(logical sector) 사이의 맵을 구성하거나 업데이트할 수 있다.
도 1은 본 발명의 일실시예에 따른 고체 상태 디스크를 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러를 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 복수의 채널들 각각에 연결된 복수의 메모리 블록들을 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 저장 모듈에 의해 관리되는 테이블을 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 제어 방법을 나타낸 동작 흐름도이다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 고체 상태 디스크를 나타낸 도면이다.
도 1을 참조하면, 고체 상태 디스크는 호스트 인터페이스(120), 컨트롤러(130), 버퍼(140) 및 복수의 메모리 뱅크들(151, 152, 153, 154)을 포함한다.
호스트 인터페이스(120)는 외부의 호스트(110)와 버스를 통하여 컨트롤 신호, 어드레스 정보 및 데이터 등의 다양한 신호들을 송/수신한다. 이 때, 호스트 인터페이스(120)는 외부의 호스트(110)와 송/수신하는 다양한 신호들을 적절히 내부 신호로 변환하여 컨트롤러(130)로 제공한다.
또한, 컨트롤러(130)는 호스트 인터페이스(120)의 내부 신호에 응답하여 복수의 메모리 뱅크들(151, 152, 153, 154)에 대한 읽기 동작 또는 쓰기 동작을 제어한다. 여기서, 복수의 메모리 뱅크들(151, 152, 153, 154) 각각에는 플래시 메모리가 설치될 수 있으며, 복수의 메모리 뱅크들(151, 152, 153, 154)은 서로 독립적인 복수의 채널들(채널 A, B, C, D)과 연결된다.
또한, 버퍼(140)는 자주 사용되는 데이터를 저장한다. 즉, 컨트롤러(130)는 읽기 동작 또는 쓰기 동작에 소요되는 시간을 줄이기 위하여 자주 사용되는 데이터를 버퍼(140)에 저장할 수 있다.
복수의 채널들(채널 A, B, C, D)은 서로 독립적으로 운용된다. 따라서, 본 발명의 일실시예에 따른 고체 상태 디스크는 서로 독립적으로 운용되는 복수의 채널들(채널 A, B, C, D)을 이용함으로써, 병렬적으로 읽기 동작 또는 쓰기 동작을 수행할 수 있다. 즉, 컨트롤러(130)는 채널 A와 연결된 메모리 뱅크 0, 4, 8, 12, 채널 B와 연결된 메모리 뱅크 1, 5, 9, 13, 채널 C와 연결된 메모리 뱅크 2, 6, 10, 14 및 채널 D와 연결된 메모리 뱅크 3, 7, 11, 15에 대해 독립적으로 읽기 동작 또는 쓰기 동작을 제어할 수 있다.
여기서, 메모리 뱅크 0, 1, 2, 3, 4, 5, 6이 모두 아이들(idle) 상태를 갖고, 채널 A, 채널 B의 상태가 비지(busy)이고, 채널 C의 상태가 아이들이라고 가정한다. 이 때, 채널 A 또는 채널 B와 연결된 메모리 뱅크 0, 1, 4, 5 중 적어도 하나 대해 읽기 동작 또는 쓰기 동작을 수행하기 위해서는 채널 A, B의 상태가 아이들이 될 때까지 기다려야 한다. 이러한 기다림은 고체 상태 디스크의 전체적인 성능을 저하하는 원인일 수 있다. 그러나, 본 발명의 일실시예에 따른 컨트롤러(130)는 채널 C의 상태가 아이들임을 인지하여 메모리 뱅크 0, 1, 2, 3, 4, 5, 6 중 채널 C와 연결된 메모리 뱅크 2 또는 6을 선택하고, 신속하게 선택된 메모리 뱅크 2, 6 중 적어도 하나에 대해 읽기 동작 또는 쓰기 동작을 수행할 수 있다. 이에 대해서는 도 2 내지 도 6과 관련하여 상세히 설명한다.
도 2는 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러를 나타낸 블록도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러(130)는 저장 모듈(210) 및 제어 모듈(220)을 포함한다. 이 때, 제어 모듈(220)은 채널 A, B, C, D를 통하여 복수의 메모리 뱅크들(도시되지 않음)에 대한 읽기 동작 또는 쓰기 동작을 제어한다. 여기서, 도 2에는 4 개의 채널들이 도시되었으나, 본 발명은 둘 이상의 채널들이 존재하는 다양한 케이스들에도 잘 적용될 수 있음을 주의해야 한다.
저장 모듈(210)은 복수의 메모리 뱅크들 중 아이들 뱅크들의 인덱스들을 저장하고 관리한다. 특히, 저장 모듈(210)은 레지스터를 이용하여 아이들 뱅크들의 인덱스들을 목록화할 수 있다. 이 때, 저장 모듈(210)에 저장된 아이들 뱅크들의 인덱스들은 그들의 상태가 비지로 변경됨에 응답하여 적절히 업데이트될 수 있다.
또한, 제어 모듈(220)은 저장 모듈(210)에 저장된 아이들 뱅크들의 인덱스들을 이용하여 선택된 아이들 뱅크에 대한 접근을 제어한다. 즉, 제어 모듈(220)은 저장된 인덱스들을 기초로 읽기 동작 또는 쓰기 동작의 대상이 되는 아이들 뱅크를 선택하고, 선택된 아이들 뱅크에 대한 접근을 제어한다.
특히, 제어 모듈(220)은 상술한 기다리는 시간(waiting time)을 줄이기 위하여 아이들 뱅크들 각각과 연결된 채널의 상태를 고려하여 적어도 하나의 아이들 뱅크를 선택할 수 있다.
예를 들어, 채널 A, B, C, D 중 채널 B의 상태가 아이들인 경우, 제어 모듈(220)은 여러 아이들 뱅크들 중 채널 B와 연결된 아이들 뱅크를 우선적으로 선택할 수 있다.
또한, 제어 모듈(220)은 복수의 메모리 뱅크들이 골고루 사용될 수 있도록 하는 소모 레벨링(wear leveling)을 위하여 순환 순서(round-robin) 방식을 사용할 수 있다. 예를 들어, 제어 모듈(220)은 복수의 메모리 뱅크들이 골고루 사용할 수 있도록 하나의 채널에 연결된 메모리 뱅크들 각각을 순차적으로 선택할 수 있다.
그리고, 선택된 아이들 뱅크에 대한 정보(접근 결과)는 결과는 플래시 변환 계층(Flash Translation Layer, FTL)으로 제공될 수 있다. 이 때, 플래시 변환 계층은 선택된 아이들 뱅크에 대한 정보(접근 결과)를 기초로 물리 섹터(physical sector) 및 논리 섹터(logical sector) 사이의 맵을 구성하거나, 업데이트할 수 있다.
도 3은 본 발명의 일실시예에 따른 복수의 채널들 각각에 연결된 복수의 메모리 블록들을 나타낸 도면이다.
도 3을 참조하면, 네 개의 채널들 각각에는 네 개의 메모리 뱅크들이 연결되어 있다. 여기서, 16 개의 메모리 뱅크들 모두는 아이들 상태로 초기화되었다고 가정한다. 따라서, 16 개의 메모리 뱅크들 모두는 아이들 뱅크들이므로, 16 개의 메모리 뱅크들 모두의 인덱스들은 저장 모듈에 저장된다.
이 때, 본 발명의 일실시예에 따른 컨트롤러는 초기에 메모리 뱅크 0을 선택하고, 순차적으로 메모리 뱅크 1, 2, 3을 선택할 수 있다. 그리고, 메모리 뱅크 4의 인덱스가 검색되고, 메모리 뱅크 4와 연결된 채널 A의 상태가 비지(busy)인 경우, 컨트롤러는 메모리 뱅크 4가 아니라 아이들 상태를 갖는 채널 B와 연결된 메모리 뱅크 5를 선택할 수 있다.
따라서, 본 발명의 일실시예에 따른 컨트롤러는 채널 A의 상태가 비지에서 아이들이 될 때까지 기다리지 않고, 곧바로 아이들 상태를 갖는 채널 B와 연결된 메모리 뱅크 5를 선택함으로써, 고체 상태 디스크의 성능을 향상시킬 수 있다.
그리고, 채널 A, B, C, D의 상태가 모두 비지이고, 메모리 뱅크 6, 7, 9, 13, 14, 15의 상태가 아이들이라고 가정한다. 이 때, 채널 A, B, C, D 중 가장 먼저 아이들 상태를 갖는 채널이 채널 C인 경우, 컨트롤러는 메모리 뱅크 6, 14 중 어느 하나를 선택할 수 있다. 더 나아가, 컨트롤러는 메모리 뱅크 6, 14 중 순환 순서 방식을 고려하여 우선 순위가 높은 것을 선택할 수 있다.
상술한 메모리 뱅크 선택 과정으로 인해 플래시 변환 계층(Flash Translation Layer, FTL)에서 관리되는 물리 섹터(physical sector) 및 논리 섹터(logical sector) 사이의 맵이 변경될 필요가 있다. 이 때, 메모리 뱅크 선택 과정의 결과는 플래시 변환 계층으로 제공됨으로써, 상기 맵은 적절히 구성되거나 업데이트될 수 있다.
도 4는 본 발명의 일실시예에 따른 저장 모듈에 관리되는 테이블을 나타낸 도면이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 저장 모듈은 메모리 뱅크들 또는 아이들 상태를 갖는 메모리 뱅크들인 아이들 뱅크들의 인덱스들을 저장하는 테이블(410)을 관리한다. 테이블(410)에 기재된 숫자들(1, 2, 3, ..., 7)은 메모리 뱅크들 또는 아이들 뱅크들의 인덱스들을 나타낸다.
포인터(420)는 테이블(410)에 저장된 복수의 인덱스들 중 어느 하나를 지시한다. 이 때, 컨트롤러는 지시된 인덱스에 대응하는 아이들 뱅크를 선택하고, 선택된 아이들 뱅크에 대한 읽기 동작 또는 쓰기 동작을 수행한다.
아이들 뱅크의 상태가 비지로 변경되거나, 포인터(420)가 어느 하나의 아이들 뱅크를 선택하는 경우, 테이블(410)이 업데이트될 수 있으며, 다른 방식으로 포인터(420)는 직전에 지시하고 있던 인덱스와 다른 인덱스를 새롭게 지시할 수 있다.
예를 들어, 포인터(420)는 순환 순서 방식을 이용하여 순차적으로 지시되는 인덱스를 변경할 수 있다. 즉, 포인터(420)는 직전에 k 번째 인덱스를 지시하고 있다가 현재 k+1번째 인덱스를 지시하는 것을 반복할 수 있다.
또한, 포인터(420)는 채널의 상태를 고려하여 아이들 뱅크의 인덱스를 지시할 수 있다. 예를 들어, 채널 A의 상태가 비지인 경우, 포인터(420)는 직전에 인덱스 3을 지시하고 있다가 인덱스 4를 건너뛰고 인덱스 5를 새롭게 지시할 수 있다.
결국, 본 발명의 일실시예에 따른 컨트롤러는 채널의 상태를 고려하여 어느 하나의 인덱스를 지시하는 포인터(420)를 이용하여 신속하게 읽기 동작 또는 쓰기 동작의 대상이 되는 아이들 뱅크를 선택할 수 있다.
도 5는 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 제어 방법을 나타낸 동작 흐름도이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 제어 방법은 미리 준비된 레지스터에 복수의 메모리 뱅크들 중 적어도 하나의 아이들(idle) 뱅크의 인덱스를 저장한다(S510).
또한, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 제어 방법은 k 번째 인덱스를 갖는 아이들 뱅크에 대응하는 채널을 검사한다(S520).
그리고, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 제어 방법은 검사된 채널의 상태가 비지인지 여부를 판단한다(S530).
만약, 검사된 채널의 상태가 비지인 경우, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 제어 방법은 k는 k+1로 증가되고(S540), k+1 번째 인덱스를 갖는 아이들 뱅크에 대응하는 채널을 검사한다(S520).
반대로, 검사된 채널의 상태가 아이들인 경우, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 제어 방법은 k 번째 인덱스를 갖는 아이들 뱅크를 읽기 동작 또는 쓰기 동작의 대상이 되는 메모리 뱅크로 선택한다(S550).
또한, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 제어 방법은 선택된 아이들 뱅크에 대해 외부의 호스트로부터 수신된 신호들을 기초로 읽기 동작 또는 쓰기 동작을 위한 접근을 제어한다(S560).
또한, 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 제어 방법은 상기 접근 결과를 플래시 변환 계층으로 제공한다(S570). 이 때, 플래시 변환 계층은 상기 접근 결과를 이용하여 물리 섹터 및 논리 섹터 사이의 맵을 구성하거나 업데이트한다.
본 발명의 일실시예에 따른 고체 상태 디스크를 위한 제어 방법에는 도 1 내지 도 4를 통해 설명된 내용들이 그대로 적용될 수 있다. 따라서, 도 5와 관련된 상세한 설명은 이하 생략한다.
본 발명의 일실시예에 따른 고체 상태 디스크를 위한 제어 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (19)

  1. 복수의 메모리 뱅크들 중 적어도 하나의 아이들(idle) 뱅크의 인덱스를 저장하는 저장 모듈; 및
    상기 저장된 인덱스를 이용하여 상기 적어도 하나의 아이들 뱅크에 대한 접근을 제어하는 제어 모듈
    을 포함하는 것을 특징으로 하는 고체 상태 디스크(solid state disk)를 위한 컨트롤러.
  2. 제1항에 있어서,
    상기 제어 모듈은
    상기 적어도 하나의 아이들 뱅크 각각에 대응하는 채널의 상태를 고려하여 상기 적어도 하나의 아이들 뱅크에 대한 접근을 제어하는 것을 특징으로 하는 고체 상태 디스크를 위한 컨트롤러.
  3. 제1항에 있어서,
    상기 제어 모듈은
    상기 적어도 하나의 아이들 뱅크 중 아이들 상태를 갖는 채널에 대응하는 아이들 뱅크에 접근 우선권을 부여하는 것을 특징으로 고체 상태 디스크를 위한 컨트롤러.
  4. 제1항에 있어서,
    상기 제어 모듈은
    소모 레벨링(wear leveling)을 위하여 순환 순서(round-robin) 방식에 따라 상기 적어도 하나의 아이들 뱅크에 대한 접근을 제어하는 것을 특징으로 하는 고체 상태 디스크를 위한 컨트롤러.
  5. 제1항에 있어서,
    상기 제어 모듈은
    상기 저장된 적어도 하나의 아이들(idle) 뱅크의 인덱스 중 포인터로 어느 하나를 지시하고, 상기 지시된 인덱스에 대응하는 아이들 뱅크에 대한 접근을 제어하는 것을 특징으로 하는 고체 상태 디스크를 위한 컨트롤러.
  6. 제5항에 있어서,
    상기 포인터는 상기 적어도 하나의 아이들 뱅크 각각에 대응하는 채널의 상태를 고려하여 상기 저장된 적어도 하나의 아이들(idle) 뱅크의 인덱스 중 어느 하나를 지시하는 것을 특징으로 하는 고체 상태 디스크를 위한 컨트롤러.
  7. 제5항에 있어서,
    상기 포인터는
    소모 레벨링(wear leveling)을 위하여 순환 순서(round-robin) 방식에 따라 상기 저장된 적어도 하나의 아이들(idle) 뱅크의 인덱스 중 어느 하나를 지시하는 것을 특징으로 하는 고체 상태 디스크를 위한 컨트롤러.
  8. 제1항에 있어서,
    상기 적어도 하나의 아이들 뱅크에 대한 접근 결과는 플래시 변환 계층(Flash Translation Layer, FTL)으로 제공되고, 상기 플래시 변환 계층은 상기 적어도 하나의 아이들 뱅크에 대한 접근 결과를 기초로 물리 섹터(physical sector) 및 논리 섹터(logical sector) 사이의 맵을 구성하는 것을 특징으로 하는 고체 상태 디스크를 위한 컨트롤러.
  9. 제1항에 있어서,
    상기 저장 모듈은
    상기 적어도 하나의 아이들 뱅크의 상태가 비지(busy)로 변경됨에 응답하여 상기 저장된 적어도 하나의 아이들(idle) 뱅크의 인덱스를 업데이트하는 것을 특징으로 하는 고체 상태 디스크를 위한 컨트롤러.
  10. 제1항에 있어서,
    상기 저장 모듈은
    레지스터를 이용하여 상기 적어도 하나의 아이들 뱅크의 인덱스를 저장하는 것을 특징으로 하는 고체 상태 디스크를 위한 컨트롤러.
  11. 제1항에 있어서,
    상기 복수의 메모리 뱅크들 각각에는 플래시 메모리가 설치되는 것을 특징으로 하는 고체 상태 디스크를 위한 컨트롤러.
  12. 제1항에 있어서,
    상기 복수의 메모리 뱅크들 각각은 복수의 채널들 중 어느 하나와 연결되고, 상기 복수의 채널들은 서로 독립적인 것을 특징으로 하는 고체 상태 디스크를 위한 컨트롤러.
  13. 미리 준비된 레지스터에 복수의 메모리 뱅크들 중 적어도 하나의 아이들(idle) 뱅크의 인덱스를 저장하는 단계;
    상기 미리 준비된 레지스터로부터 적어도 하나의 인덱스를 검출하는 단계; 및
    상기 검출된 적어도 하나의 인덱스를 이용하여 상기 적어도 하나의 아이들 뱅크에 대한 접근을 제어하는 단계
    를 포함하는 것을 특징으로 하는 고체 상태 디스크를 위한 제어 방법.
  14. 제13항에 있어서,
    상기 적어도 하나의 인덱스를 검출하는 단계는
    상기 적어도 하나의 아이들 뱅크 각각에 대응하는 채널의 상태를 고려하여 상기 적어도 하나의 인덱스를 검출하는 단계인 것을 특징으로 하는 고체 상태 디스크를 위한 제어 방법.
  15. 제13항에 있어서,
    상기 적어도 하나의 아이들 뱅크 중 아이들 상태를 갖는 채널에 대응하는 아이들 뱅크에 접근 우선권을 부여하는 단계
    를 더 포함하고,
    상기 적어도 하나의 인덱스를 검출하는 단계는
    상기 부여된 접근 우선권을 고려하여 상기 적어도 하나의 인덱스를 검출하는 단계인 것을 특징으로 하는 고체 상태 디스크를 위한 제어 방법.
  16. 제13항에 있어서,
    상기 적어도 하나의 인덱스를 검출하는 단계는
    소모 레벨링(wear leveling)을 위하여 순환 순서(round-robin) 방식에 따라 상기 적어도 하나의 인덱스를 검출하는 단계인 것을 특징으로 하는 고체 상태 디스크를 위한 제어 방법.
  17. 제13항에 있어서,
    플래시 변환 계층(Flash Translation Layer, FTL)으로 상기 적어도 하나의 아이들 뱅크에 대한 접근 결과를 제공하는 단계
    를 더 포함하고,
    상기 플래시 변환 계층은 상기 적어도 하나의 아이들 뱅크에 대한 접근 결과를 기초로 물리 섹터(physical sector) 및 논리 섹터(logical sector) 사이의 맵을 구성하는 것을 특징으로 하는 고체 상태 디스크를 위한 제어 방법.
  18. 제13항에 있어서,
    상기 적어도 하나의 아이들(idle) 뱅크의 인덱스를 저장하는 단계는
    상기 적어도 하나의 아이들 뱅크의 상태가 비지(busy)로 변경됨에 응답하여 상기 저장된 적어도 하나의 아이들(idle) 뱅크의 인덱스를 업데이트하는 단계
    를 포함하는 것을 특징으로 하는 고체 상태 디스크를 위한 제어 방법.
  19. 제13항 내지 18항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
PCT/KR2009/006337 2008-11-13 2009-10-30 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한 컨트롤러 WO2010056003A2 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US13/128,981 US8601200B2 (en) 2008-11-13 2009-10-30 Controller for solid state disk which controls access to memory bank
JP2011536235A JP2012508921A (ja) 2008-11-13 2009-10-30 メモリバンクにおけるアクセスを制御するssdコントローラ
CN2009801544626A CN102272848A (zh) 2008-11-13 2009-10-30 控制内存条存取的固态硬盘控制器
EP09826235A EP2367175A4 (en) 2008-11-13 2009-10-30 CONTROL FOR SOLID STATE DISKS CONTROLLING ACCESS TO MEMORY BANK

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2008-0112575 2008-11-13
KR1020080112575A KR101014149B1 (ko) 2008-11-13 2008-11-13 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한컨트롤러

Publications (2)

Publication Number Publication Date
WO2010056003A2 true WO2010056003A2 (ko) 2010-05-20
WO2010056003A3 WO2010056003A3 (ko) 2010-08-05

Family

ID=42170490

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2009/006337 WO2010056003A2 (ko) 2008-11-13 2009-10-30 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한 컨트롤러

Country Status (6)

Country Link
US (1) US8601200B2 (ko)
EP (1) EP2367175A4 (ko)
JP (1) JP2012508921A (ko)
KR (1) KR101014149B1 (ko)
CN (1) CN102272848A (ko)
WO (1) WO2010056003A2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8612804B1 (en) * 2010-09-30 2013-12-17 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US8898373B1 (en) 2011-06-29 2014-11-25 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
KR102003930B1 (ko) 2012-07-31 2019-07-25 삼성전자주식회사 불휘발성 메모리 장치의 데이터 라이팅 제어방법 및 웨어레벨링 제어 기능을 가지는 메모리 콘트롤러
US9471484B2 (en) 2012-09-19 2016-10-18 Novachips Canada Inc. Flash memory controller having dual mode pin-out
US9508437B2 (en) 2014-01-30 2016-11-29 Sandisk Technologies Llc Pattern breaking in multi-die write management
KR102339779B1 (ko) 2015-04-06 2021-12-15 삼성전자주식회사 데이터 저장 장치, 이를 포함하는 데이터 처리 시스템, 및 상기 시스템의 작동 방법
TWI556100B (zh) * 2015-10-26 2016-11-01 點序科技股份有限公司 快閃記憶體裝置及其交錯存取方法
CN105259989B (zh) * 2015-11-18 2019-01-29 合肥宝龙达信息技术有限公司 一种笔记本板载内存兼容多源的方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
TW511034B (en) 1998-11-09 2002-11-21 Intel Corp Scheduling requests in a system
KR20010060974A (ko) * 1999-12-28 2001-07-07 박종섭 내부 메모리를 확장한 마이크로 컨트롤러
TW504694B (en) * 2000-01-12 2002-10-01 Hitachi Ltd Non-volatile semiconductor memory device and semiconductor disk device
US7013376B2 (en) * 2000-12-20 2006-03-14 Hewlett-Packard Development Company, L.P. Method and system for data block sparing in a solid-state storage device
US7107386B1 (en) * 2001-08-08 2006-09-12 Pasternak Solutions, Llc Memory bus arbitration using memory bank readiness
US20030163654A1 (en) * 2002-02-22 2003-08-28 Eliel Louzoun System and method for efficient scheduling of memory
US7114051B2 (en) 2002-06-01 2006-09-26 Solid State System Co., Ltd. Method for partitioning memory mass storage device
KR100585116B1 (ko) * 2003-12-13 2006-06-01 삼성전자주식회사 멀티 뱅크 메모리의 억세스 효율을 개선한 아비터, 이를구비한 메모리 억세스 중재 시스템 및 그 방법
US7370326B2 (en) 2004-04-02 2008-05-06 Emulex Design & Manufacturing Corporation Prerequisite-based scheduler
KR100621631B1 (ko) * 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US7373471B2 (en) * 2005-02-09 2008-05-13 International Business Machines Corporation Executing background writes to idle DIMMs
JP5162846B2 (ja) * 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム
JP2007094900A (ja) * 2005-09-29 2007-04-12 Eastman Kodak Co アクセス装置
KR101293365B1 (ko) * 2005-09-30 2013-08-05 모사이드 테크놀로지스 인코퍼레이티드 출력 제어 메모리
US7698498B2 (en) * 2005-12-29 2010-04-13 Intel Corporation Memory controller with bank sorting and scheduling
KR100773579B1 (ko) * 2006-07-14 2007-11-08 강릉대학교산학협력단 무선 데이터를 전송하기 위한 방법 및 이를 위한프로그램이 기록된 기록매체
CN100487678C (zh) * 2006-08-23 2009-05-13 晶天电子(深圳)有限公司 带有闪存控制器的电子数据闪存卡
KR100851545B1 (ko) * 2006-12-29 2008-08-11 삼성전자주식회사 커맨드 및 어드레스 핀을 갖는 낸드 플래시 메모리 및그것을 포함한 플래시 메모리 시스템
KR100882740B1 (ko) 2007-02-22 2009-02-09 삼성전자주식회사 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치
CN201048049Y (zh) * 2007-05-30 2008-04-16 徐欣 PCIe接口的电子硬盘
CN100470506C (zh) * 2007-06-08 2009-03-18 马彩艳 基于sector访问的flash存储器的存储管理方法
KR101464338B1 (ko) * 2007-10-25 2014-11-25 삼성전자주식회사 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템
US7870351B2 (en) * 2007-11-15 2011-01-11 Micron Technology, Inc. System, apparatus, and method for modifying the order of memory accesses
KR101486987B1 (ko) 2008-05-21 2015-01-30 삼성전자주식회사 불휘발성 메모리를 포함하는 반도체 메모리 장치 및 불휘발성 메모리를 위한 커맨드 스케줄링 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None
See also references of EP2367175A4

Also Published As

Publication number Publication date
KR20100053782A (ko) 2010-05-24
US8601200B2 (en) 2013-12-03
KR101014149B1 (ko) 2011-02-14
EP2367175A2 (en) 2011-09-21
EP2367175A4 (en) 2012-11-28
JP2012508921A (ja) 2012-04-12
US20110276740A1 (en) 2011-11-10
WO2010056003A3 (ko) 2010-08-05
CN102272848A (zh) 2011-12-07

Similar Documents

Publication Publication Date Title
WO2010056003A2 (ko) 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한 컨트롤러
WO2012096503A2 (ko) 파티션 정보를 기초로 호스트의 요청에 대한 처리 기법을 적응적으로 결정하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
WO2010093114A1 (ko) 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치
WO2013069859A1 (ko) 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법
US7757055B2 (en) Storage system and data migration method for the same
WO2012121559A2 (ko) 복사 명령 및 이동 명령을 지원하는 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법
WO2010107176A2 (ko) 디램 버퍼 관리 장치 및 방법
CN106445398B (zh) 一种基于新型存储器的嵌入式文件系统及其实现方法
WO2010093108A1 (ko) 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템
US20120173840A1 (en) Sas expander connection routing techniques
WO2010140738A1 (ko) 캐쉬 제어기 및 캐쉬 블록 교체 방법
JPH0793219A (ja) 情報処理装置
WO2013176376A1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
WO2010071258A1 (ko) 독립적으로 파일 시스템을 관리하는 레이드 컨트롤러
WO2008144960A1 (en) Method and apparatus for mpi program optimization
WO2009126011A2 (ko) 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법
WO2010090390A1 (ko) 메모리 장치, 메모리 관리 장치 및 메모리 관리 방법
WO2023096118A1 (ko) 스토리지 노드 기반의 키-값 스토어를 이용하는 데이터 입출력 방법
WO2010107173A1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
WO2015130093A1 (en) Method and apparatus for preventing bank conflict in memory
US8527983B2 (en) Host bus adaptor driver and operating system installation method
WO2023068463A1 (ko) 양자 회로 시뮬레이션을 위한 저장장치 시스템
JP3244053B2 (ja) 情報処理システム、装置、二次記憶装置及び記録媒体
WO2015060493A1 (ko) 주행 중 내비게이션 데이터의 부분 업데이트 장치 및 방법
WO2010087568A1 (ko) 패드들의 동시 스위칭을 제어하는 고체 상태 디스크를 위한 컨트롤러

Legal Events

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

Ref document number: 200980154462.6

Country of ref document: CN

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

Ref document number: 09826235

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 2011536235

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: 2009826235

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 13128981

Country of ref document: US