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

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

Info

Publication number
KR101014149B1
KR101014149B1 KR1020080112575A KR20080112575A KR101014149B1 KR 101014149 B1 KR101014149 B1 KR 101014149B1 KR 1020080112575 A KR1020080112575 A KR 1020080112575A KR 20080112575 A KR20080112575 A KR 20080112575A KR 101014149 B1 KR101014149 B1 KR 101014149B1
Authority
KR
South Korea
Prior art keywords
idle
index
bank
idle bank
solid state
Prior art date
Application number
KR1020080112575A
Other languages
English (en)
Other versions
KR20100053782A (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 KR1020080112575A priority Critical patent/KR101014149B1/ko
Priority to JP2011536235A priority patent/JP2012508921A/ja
Priority to US13/128,981 priority patent/US8601200B2/en
Priority to PCT/KR2009/006337 priority patent/WO2010056003A2/ko
Priority to CN2009801544626A priority patent/CN102272848A/zh
Priority to EP09826235A priority patent/EP2367175A4/en
Publication of KR20100053782A publication Critical patent/KR20100053782A/ko
Application granted granted Critical
Publication of KR101014149B1 publication Critical patent/KR101014149B1/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

Abstract

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

Description

메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한 컨트롤러{CONTROLLER FOR SOLID STATE DISK OF CONTROLLING ACCESS TO MEMORY BANK}
본 발명의 실시예들은 고체 상태 디스크를 위한 컨트롤러에 관한 것으로, 특히 복수의 메모리 뱅크들을 갖고 있는 고체 상태 디스크에서 읽기 또는 쓰기 동작의 대상이 되는 메모리 뱅크들을 효율적으로 선택하기 위한 기술에 관한 것이다.
최근, 고체 상태 디스크(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은 본 발명의 일실시예에 따른 고체 상태 디스크를 나타낸 도면이다.
도 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), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일실시예에 따른 고체 상태 디스크를 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 컨트롤러를 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 복수의 채널들 각각에 연결된 복수의 메모리 블록들을 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 저장 모듈에 의해 관리되는 테이블을 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 고체 상태 디스크를 위한 제어 방법을 나타낸 동작 흐름도이다.

Claims (19)

  1. 복수의 메모리 뱅크들 중 적어도 하나의 아이들(idle) 뱅크의 인덱스를 저장하는 저장 모듈; 및
    상기 저장 모듈에 저장된 인덱스 및 상기 적어도 하나의 아이들 뱅크 각각에 연결된 적어도 하나의 채널의 상태를 고려하여 상기 적어도 하나의 아이들 뱅크에 대한 접근을 제어하는 제어 모듈
    을 포함하고,
    상기 복수의 메모리 뱅크들 각각은 복수의 채널들 중 적어도 하나와 연결되고, 상기 복수의 채널들은 서로 독립적이며, 상기 복수의 메모리 뱅크들 각각은 고체 상태 디스크(solid state disk)인 것을 특징으로 하는 고체 상태 디스크를 위한 컨트롤러.
  2. 삭제
  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. 삭제
  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항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020080112575A 2008-11-13 2008-11-13 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한컨트롤러 KR101014149B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020080112575A KR101014149B1 (ko) 2008-11-13 2008-11-13 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한컨트롤러
JP2011536235A JP2012508921A (ja) 2008-11-13 2009-10-30 メモリバンクにおけるアクセスを制御するssdコントローラ
US13/128,981 US8601200B2 (en) 2008-11-13 2009-10-30 Controller for solid state disk which controls access to memory bank
PCT/KR2009/006337 WO2010056003A2 (ko) 2008-11-13 2009-10-30 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한 컨트롤러
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 (1)

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

Publications (2)

Publication Number Publication Date
KR20100053782A KR20100053782A (ko) 2010-05-24
KR101014149B1 true KR101014149B1 (ko) 2011-02-14

Family

ID=42170490

Family Applications (1)

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

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 合肥宝龙达信息技术有限公司 一种笔记本板载内存兼容多源的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020050163A (ko) * 2000-12-20 2002-06-26 파트릭 제이. 바렛트 고체 상태 저장 장치 및 어드레스 변환 방법
KR20080078129A (ko) * 2007-02-22 2008-08-27 삼성전자주식회사 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치

Family Cites Families (23)

* 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
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 アクセス装置
TWI543185B (zh) * 2005-09-30 2016-07-21 考文森智財管理公司 具有輸出控制之記憶體及其系統
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 삼성전자주식회사 커맨드 및 어드레스 핀을 갖는 낸드 플래시 메모리 및그것을 포함한 플래시 메모리 시스템
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 삼성전자주식회사 불휘발성 메모리를 포함하는 반도체 메모리 장치 및 불휘발성 메모리를 위한 커맨드 스케줄링 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020050163A (ko) * 2000-12-20 2002-06-26 파트릭 제이. 바렛트 고체 상태 저장 장치 및 어드레스 변환 방법
KR20080078129A (ko) * 2007-02-22 2008-08-27 삼성전자주식회사 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101014149B1 (ko) 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한컨트롤러
US9928167B2 (en) Information processing system and nonvolatile storage unit
US8151064B2 (en) Hybrid hard disk drive and data storage method thereof
US8560759B1 (en) Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency
US8464003B2 (en) Method and apparatus to manage object based tier
US8117374B2 (en) Flash memory control devices that support multiple memory mapping schemes and methods of operating same
KR101056560B1 (ko) 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법및 장치
JP4675881B2 (ja) 磁気ディスク装置およびその制御方法
JP2010146326A (ja) 記憶装置、その制御方法及びその記憶装置を用いた電子装置
US7606934B1 (en) Dynamic routing of I/O requests in a multi-tier storage environment
US8433847B2 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
KR20120082218A (ko) 파티션 정보를 기초로 호스트의 요청에 대한 처리 기법을 적응적으로 결정하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
CN107562367B (zh) 基于软件化存储系统读写数据的方法以及装置
US10346051B2 (en) Storage media performance management
US20150081961A1 (en) Method and device for identifying information for chip-level parallel flash memory
US20100118434A1 (en) Storage apparatus and control method of storage apparatus
US20120162809A1 (en) Magnetic disk drive and method of accessing a disk in the drive
JP2014191398A (ja) ストレージ制御方法、ストレージシステム、およびストレージ制御プログラム
JP5985529B2 (ja) ハイバネーションからの迅速な再開のための装置、方法およびデバイス
KR101070511B1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
JP2007193886A (ja) ディスク装置、データ書込み制御方法およびコマンド制御方法
JP2007102436A (ja) ストレージ制御装置およびストレージ制御方法
JP5594647B2 (ja) ストレージ装置及びその制御方法
KR101319589B1 (ko) 솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법 및 그 컨트롤러
KR20220113735A (ko) 스테이징 버퍼 중재

Legal Events

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

Payment date: 20131128

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140915

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151211

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee