KR101162679B1 - 다채널 캐쉬를 이용한 솔리드 스테이트 디스크 및 캐쉬 데이터 저장방법 - Google Patents
다채널 캐쉬를 이용한 솔리드 스테이트 디스크 및 캐쉬 데이터 저장방법 Download PDFInfo
- Publication number
- KR101162679B1 KR101162679B1 KR1020100072186A KR20100072186A KR101162679B1 KR 101162679 B1 KR101162679 B1 KR 101162679B1 KR 1020100072186 A KR1020100072186 A KR 1020100072186A KR 20100072186 A KR20100072186 A KR 20100072186A KR 101162679 B1 KR101162679 B1 KR 101162679B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- data
- slice
- channel
- address
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 캐쉬의 데이터 채널을 다수개로 구성하여 캐쉬 데이터의 전송속도를 향상시킬 수 있도록 해주는 솔리드 스테이트 디스크 및 캐쉬 데이터 저장방법을 제공하는데 그 목적이 있다.
상기한 목적을 달성하기 위한 본 발명의 솔리드 스테이트 디스크는, 제어부, 낸드 플래시 메모리, 캐쉬 메모리, 버퍼 및 호스트 인터페이스로 이루어진 솔리드 스테이트 디스크에 있어서, 상기 버퍼는 2개 이상으로 구성되고, 상기 2개 이상의 버퍼와 상기 낸드 플래시 메모리, 캐쉬 메모리 및 호스트 인터페이스는 각각 독립적으로 연결된 2개 이상의 캐쉬 데이터 채널로 구성되며, 상기 제어부는 미리 정해진 기준에 따라 상기 2개 이상의 캐쉬 데이터 채널을 통해 호스트 컴퓨터와 독립적으로 데이터를 전송한다.
상기한 목적을 달성하기 위한 본 발명의 솔리드 스테이트 디스크는, 제어부, 낸드 플래시 메모리, 캐쉬 메모리, 버퍼 및 호스트 인터페이스로 이루어진 솔리드 스테이트 디스크에 있어서, 상기 버퍼는 2개 이상으로 구성되고, 상기 2개 이상의 버퍼와 상기 낸드 플래시 메모리, 캐쉬 메모리 및 호스트 인터페이스는 각각 독립적으로 연결된 2개 이상의 캐쉬 데이터 채널로 구성되며, 상기 제어부는 미리 정해진 기준에 따라 상기 2개 이상의 캐쉬 데이터 채널을 통해 호스트 컴퓨터와 독립적으로 데이터를 전송한다.
Description
본 발명은 다채널 캐쉬를 이용한 솔리드 스테이트 디스크 및 캐쉬 데이터 저장방법에 관한 것으로서, 보다 상세하게는 캐쉬의 데이터 채널을 다수개로 구성하여 캐쉬 데이터의 전송속도를 향상시킬 수 있도록 해주는 솔리드 스테이트 디스크 및 캐쉬 데이터 저장방법에 관한 것이다.
일반적으로, 컴퓨터, 디지털 카메라, PDA 및 다양한 모바일 장치와 같은 전자 장치에는 데이터를 저장하기 위한 메모리 장치가 구비된다. 이러한 메모리 장치로는 전원이 차단된 이후 데이터가 삭제되는 휘발성 메모리(Volatile Memory)인 디램(DRAM) 및 에스램(SRAM)과, 전원이 차단된 이후에도 데이터가 계속해서 남는 비휘발성 메모리(Non Volatile Memory)인 플래시(FLASH), 피램(PRAM) 및 에프램(FRAM) 등이 있다. 이 중에서 플래시 메모리는 다른 메모리들과는 달리 비휘발성을 가지면서도 전력 소모가 적으며 크기가 작아서 디지털 카메라, PDA 및 모바일 장치와 같은 소형 전자 장치의 저장 장치로서 널리 사용되고 있다.
최근에는 하드 디스크를 대체할 수 있는 대용량 데이터 저장장치로서 낸드 플래시 메모리를 이용한 솔리드 스테이트 디스크(Solid State Disk, SSD)에 대한 연구가 활발히 이루어지고 있다.
그러나, 낸드 플래시 메모리는 구조적으로 쓰기 연산 동작을 실행할 때, 이미 저장된 데이터가 있는 블록에는 또다시 중첩하여 기록할 수 없는 특성을 지니기 때문에 새로운 블록에 갱신된 데이터를 기록하고 이전 데이터가 저장된 블록을 삭제하는 삭제 연산을 필요로 한다. 이로 인해 쓰기 연산은 시간이 오래 걸리게 되고, 최근에 수행하던 데이터 또는 빈번하게 사용되는 데이터를 액세스(access)하는데에도 시간이 오래 걸리는 문제점이 있었다.
이러한 데이터 전송속도의 제한, 다시 말해 낸드 플래시 메모리의 느린 액세스 속도(Access Speed), 긴 읽기/삭제(Write/Erase) 대기시간 등의 문제점을 해결하기 위하여 대부분의 솔리드 스테이트 디스크에서는 캐쉬 시스템을 채용하고 있다. 그러나, 종래의 솔리드 스테이트 디스크는 아래에서 도 1을 참조로 설명하는 단일 채널 캐쉬 시스템을 채용하고 있다.
솔리드 스테이트 디스크의 제어부(10)는 호스트 컴퓨터로부터 데이터 전송 명령을 받은 경우 주 기억장치인 낸드 플래시 메모리(20) 또는 캐쉬 메모리(30)로부터 대상 데이터를 추출하여 하나의 버퍼(40)에 저장한 다음 호스트 인터페이스(50)를 통해 호스트 컴퓨터로 전송한다. 이러한 단일 채널의 캐쉬 시스템은 호스트 인터페이스(50)의 접근 빈도 및 시기가 빈번하거나 일정치 않을 경우 낸드 플래시 메모리의 데이터 플러싱(Flushing) 및 필링(Filling) 동작의 경합이 자주 발생하여 호스트 인터페이스(50)의 접근 속도가 저하되는 문제점이 있었다.
특히 호스트 인터페이스(50)를 통한 데이터 접근 지역이 연속적이 아니라 랜덤하게 일어나게 되면, 캐쉬의 히트율(Hit ratio)이 떨어지면서 낸드플래시의 데이터 플러싱 및 필링 동작이 빈번하게 발생하여 호스트 인터페이스의 접근속도가 현저하게 감소된다는 점에서 데이터의 고속 접근의 한계성을 가지게 된다.
본 발명은 이러한 종래 솔리드 스테이트 디스크의 캐쉬 시스템이 가지는 문제점을 해결하기 위하여 제안된 것으로서, 다채널의 캐쉬 시스템을 채용하는 한편 각 채널별로 데이터를 전송하는 우선순위를 정하여 캐쉬 데이터의 전송속도를 향상시킬 수 있도록 하는데 주된 목적이 있다.
또한, 다채널 캐쉬에 데이터를 저장함에 있어서 하나의 슬라이스에 데이터를 저장할 때마다 캐쉬 내에 비어있는 슬라이스가 있는지를 체크하고, 비어있는 슬라이스가 없는 경우에는 해당 데이터를 저장하는 동작과 다른 슬라이스를 플러싱하는 동작이 동시에 일어나도록 함으로써, 캐쉬 내에 비어있는 슬라이스를 항상 확보함으로써 캐쉬 데이터의 전송속도를 더욱 향상시키는데 또 다른 목적이 있다.
상기한 목적을 달성하기 위한 본 발명의 다채널 캐쉬를 이용한 솔리드 스테이트 디스크는, 제어부, 낸드 플래시 메모리, 캐쉬 메모리, 버퍼 및 호스트 인터페이스로 이루어진 솔리드 스테이트 디스크에 있어서, 상기 버퍼는 2개 이상으로 구성되고, 상기 2개 이상의 버퍼와 상기 낸드 플래시 메모리, 캐쉬 메모리 및 호스트 인터페이스는 각각 독립적으로 연결된 2개 이상의 캐쉬 데이터 채널로 구성되며, 상기 제어부는 미리 정해진 기준에 따라 상기 2개 이상의 캐쉬 데이터 채널을 통해 호스트 컴퓨터와 독립적으로 데이터를 전송한다.
하나의 실시예로서, 상기 제어부는 각 데이터 입출력 이벤트별로 정해진 우선순위에 따라 상기 2개 이상의 캐쉬 데이터 채널을 통해 데이터를 전송할 수 있다.
다른 실시예로서, 상기 제어부는 상기 2개 이상의 캐쉬 데이터 채널을 교대로 사용하는 라운드 로빈(Round Robin) 방식에 따라 데이터를 전송할 수 있다.
또 다른 실시예로서, 상기 제어부는 일정 수의 데이터를 묶어서 매스 데이터(Mass data)로 전송할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 다채널 캐쉬를 이용한 캐쉬 데이터 저장방법은, 다채널 캐쉬를 이용한 솔리드 스테이트 디스크를 사용하여 캐쉬 데이터를 저장하는 방법으로서, 호스트 컴퓨터로부터 데이터 수신 명령을 받은 단계; 수신 명령의 대상이 되는 해당 데이터의 주소와 일치하는 주소를 갖는 슬라이스가 캐쉬 메모리에 존재하는지 여부를 검색하는 단계; 캐쉬 메모리 내에 해당 데이터의 주소와 일치하는 주소를 갖는 슬라이스가 존재하는 경우, 캐쉬 메모리 내에 비어있는 슬라이스가 있는지 여부를 판단하는 단계; 및 상기 판단 결과 캐쉬 메모리 내에 비어있는 슬라이스가 없는 경우에는, 하나의 캐쉬 데이터 채널을 이용하여 해당 데이터를 상기 주소가 일치하는 슬라이스 내에 저장함과 동시에 다른 캐쉬 데이터 채널을 이용하여 특정 슬라이스를 플러싱하는 단계;를 포함한다.
또한, 상기 판단 결과 캐쉬 메모리 내에 비어있는 슬라이스가 있는 경우에는, 하나의 캐쉬 데이터 채널을 이용하여 해당 데이터를 주소가 일치하는 슬라이스 내에 저장하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 다채널 캐쉬를 이용한 캐쉬 데이터 저장방법은, 다채널 캐쉬를 이용한 솔리드 스테이트 디스크를 사용하여 캐쉬 데이터를 저장하는 방법으로서, 호스트 컴퓨터로부터 데이터 수신 명령을 받은 단계; 수신 명령의 대상이 되는 해당 데이터의 주소와 일치하는 주소를 갖는 슬라이스가 캐쉬 메모리에 존재하는지 여부를 검색하는 단계; 캐쉬 메모리 내에 해당 데이터의 주소와 일치하는 주소를 갖는 슬라이스가 존재하지 않는 경우, 비어 있는 새로운 슬라이스에 해당 데이터의 주소를 갖는 낸드 플래시 메모리로부터 데이터를 전송받아 필링하는 단계; 캐쉬 메모리 내에 비어있는 슬라이스가 있는지 여부를 판단하는 단계; 및 상기 판단 결과 캐쉬 메모리 내에 비어있는 슬라이스가 없는 경우에는, 하나의 캐쉬 데이터 채널을 이용하여 해당 데이터를 상기 필링된 슬라이스에 저장함과 동시에 다른 캐쉬 데이터 채널을 이용하여 특정 슬라이스를 플러싱하는 단계;를 포함한다.
또한, 상기 판단 결과 캐쉬 메모리 내에 비어있는 슬라이스가 있는 경우에는, 하나의 캐쉬 데이터 채널을 이용하여 해당 데이터를 상기 필링된 슬라이스 내에 저장하는 단계를 더 포함할 수 있다.
상기와 같이 구성된 본 발명의 다채널 캐쉬를 이용한 솔리드 스테이트 디스크에 의하면, 다수개의 데이터를 미리 정해진 기준에 따라 다채널 캐쉬를 통해 호스트 컴퓨터와 독립적으로 데이터를 전송할 수 있기 때문에 낸드 플래시 메모리의 한계점인 느린 데이터 접근 속도를 개선할 수 있다.
또한, 본 발명의 다채널 캐쉬를 이용한 캐쉬 데이터 저장방법에 의하면, 캐쉬 메모리 내에 비어 있는 슬라이스를 항상 확보할 수 있기 때문에 데이터 플러싱 시간을 단축시켜 데이터 접근 속도를 더욱 향상시킬 수 있다.
또한, 캐쉬의 슬라이스 단위를 Zone 번호, Logical Block 번호, Section 번호로 구성함으로써, 낸드 플래시의 플러싱 및 필링 동작을 더욱 빠르게 구현할 수 있다.
도 1은 종래의 단일 채널 캐쉬를 이용한 솔리드 스테이트 디스크의 블록도.
도 2는 본 발명의 다채널 캐쉬를 이용한 솔리드 스테이트 디스크의 블록도.
도 3은 본 발명의 다채널 캐쉬를 이용한 데이터 전송의 예를 도시한 도면.
도 4는 본 발명의 다채널 캐쉬를 이용한 캐쉬 데이터 저장방법을 나타낸 순서도.
도 5는 본 발명의 슬라이스 구성을 나타낸 도면.
도 2는 본 발명의 다채널 캐쉬를 이용한 솔리드 스테이트 디스크의 블록도.
도 3은 본 발명의 다채널 캐쉬를 이용한 데이터 전송의 예를 도시한 도면.
도 4는 본 발명의 다채널 캐쉬를 이용한 캐쉬 데이터 저장방법을 나타낸 순서도.
도 5는 본 발명의 슬라이스 구성을 나타낸 도면.
이하에서 첨부된 도면을 참조로 본 발명의 바람직한 일 실시예를 보다 상세히 설명한다.
도 2는 본 발명에 따른 다채널 캐쉬를 이용한 솔리드 스테이트 디스크의 구성 블록도이다.
본 발명의 솔리드 스테이트 디스크는 제어부(10), 낸드 플래시 메모리(20), 캐쉬 메모리(30), 버퍼(41,42) 및 호스트 인터페이스(50)로 이루어져 있다는 점에서 도 1에 도시된 종래의 솔리드 스테이트 디스크와 동일하다.
그러나, 본 발명은 상기 버퍼가 제1 버퍼(41) 및 제2 버퍼(42)의 2개로 구성되고, 2개의 버퍼(41,42)와 상기 낸드 플래시 메모리(20), 캐쉬 메모리(30) 및 호스트 인터페이스(50)는 각각 독립적으로 연결된 캐쉬 데이터 채널로 구성된다. 그리고, 상기 제어부(10)는 미리 정해진 기준에 따라 상기 2개의 캐쉬 데이터 채널을 통해 호스트 컴퓨터와 독립적으로 데이터를 전송할 수 있도록 구성된다.
도 2에는 비록 2개의 버퍼(41,42)를 이용한 캐쉬 데이터 채널을 예시하고 있으나, 본 발명은 이에 한정되지 아니하고, 2개 이상의 캐쉬 데이터 채널을 구성할 수 있음은 물론이다. 이러한 다채널 캐쉬 시스템은 캐쉬 메모리(30)와 버퍼(41,42)가 독립적으로 연결될 뿐만 아니라, 각 버퍼(41,42)에 대한 데이터 전송로가 각 인터페이스별로 독립적으로 구성된다는 것을 의미한다.
이와 같이, 2개 이상의 캐쉬 데이터 채널을 구성하기 위하여 상기 낸드 플래시 메모리(20)는 다수개의 낸드 플래시 메모리가 각 캐쉬 데이터 채널별로 그룹핑(Grouping)되어 동작되도록 구성되고, 상기 캐쉬 메모리(30)는 SDRAM, DDR, DDR2, FRAM과 같은 고속 메모리를 사용하여 각 캐쉬 데이터 채널과 연결되며, 상기 호스트 인터페이스(50)는 ATA, SATA, SAS, USB, PCI EXPRESS와 같은 다양한 통신 인터페이스를 사용하여 각 캐쉬 데이터 채널과 연결된다.
상기와 같이 구성된 다채널 캐쉬 시스템을 이용하여 효과적으로 데이터를 처리하기 위해서는 다음과 같이 미리 정해진 기준에 따라 이벤트를 처리하는 것이 바람직하다.
먼저, 상기 제어부(10)는 각 데이터 입출력 이벤트별로 정해진 우선순위에 따라 2개 이상의 캐쉬 데이터 채널을 통해 데이터를 전송한다. 예를 들어 각 채널별로 일반 데이터의 전송보다 리프레쉬(Refresh) 이벤트를 먼저 처리하도록 제어한다(예: 리프레쉬 이벤트 -> 채널 1의 데이터 처리 -> 채널 2의 데이터 처리).
또한, 상기 제어부(10)는 2개 이상의 캐쉬 데이터 채널을 교대로 사용하는 라운드 로빈(Round Robin) 방식에 따라 데이터를 전송한다. 예를 들어, 단일 버스 안에서 2개의 캐쉬 데이터 채널을 통해 데이터를 전송해야 하는 경우 양 채널을 교대로 사용하도록 제어한다(예: 채널 1 -> 채널 2 -> 채널 1 -> 채널 2).
또한, 상기 제어부(10)는 단일 버스 안에서 2개 이상의 캐쉬 데이터 채널을 통해서 대용량의 데이터를 전송하는 경우 각 채널의 데이터를 일정 수의 데이터로 묶어서 매스 데이터(Mass data)로 전송한다. 해당 캐쉬 데이터 채널의 매스 데이터 전송이 완료되면 상기한 우선순위, 라운드 로빈 방식 등에 의해 다음 매스 데이터나 다른 이벤트를 처리한다.
도 3은 위 3가지 기준에 따라 데이터를 처리하는 일 예가 도시되어 있다.
캐쉬 데이터 채널 1 및 2에는 각각 3개의 매스 데이터가 있고, 각 채널은 라운드 로빈 방식에 의해 데이터 전송 순서가 결정된다. 메모리가 SDRAM이나 DDR인 경우에는 일정 주기 동안에 리프레쉬 동작이 실행되어야 하고, 이 리프레쉬 이벤트는 가장 높은 우선순위를 갖는다.
먼저, 캐쉬 데이터 채널 2의 데이터 전송 이벤트가 발생하면, 제어부(10)는 캐쉬 데이터 채널 2의 매스 데이터 #1, #2를 차례로 전송한다. 매스 데이터 #2를 전송하는 과정에서 캐쉬 데이터 채널 1의 데이터 전송 이벤트와 메모리 리프레쉬 이벤트가 차례로 발생하였다. 이 때, 제어부(10)는 채널 2의 매스 데이터 #2에 대한 전송 작업이 완료된 후에 가장 우선순위가 높은 리프레쉬 이벤트를 먼저 수행한다. 리프레쉬 이벤트가 완료되면, 라운드 로빈 방식에 따라 채널 1의 매스 데이터 #1을 전송한다. 채널 1의 매스 데이터 #1의 전송이 완료되면, 라운드 로빈 방식에 따라 채널 2의 매스 데이터 #3을 전송한다. 그 결과, 채널 2의 데이터 전송은 모두 완료되었으므로, 남아 있는 채널 1의 매스 데이터 #2, #3을 차례로 전송한다.
이하에서는 도 4 및 5를 참조로 다채널 캐쉬를 이용한 솔리드 스테이트 디스크를 사용하여 캐쉬 데이터를 저장하는 방법을 상세히 설명한다. 본 발명의 캐쉬 메모리는 다수개의 슬라이스(Slice)로 분할되어 사용되고, 독립적인 캐쉬 데이터 채널을 통해 동시에 2개 이상의 이벤트를 처리할 수 있도록 구성된다.
도 4에 도시된 바와 같이, 제어부가 호스트 컴퓨터로부터 데이터 수신 명령을 받는다(S100).
제어부는 수신 명령의 대상이 되는 해당 데이터의 주소와 일치하는 주소를 갖는 슬라이스가 캐쉬 메모리에 존재하는지 여부를 검색한다. 이러한 검색 과정은 LBA(Logical Block Allocation table)를 참조하여 해당 데이터의 주소를 구성하는 Zone 번호, Logical Block 번호, Section 번호를 추출하는 단계(S110)와, 캐쉬 메모리에 해당 Zone 번호, Logical Block 번호, Section 번호가 일치하는 슬라이스 A가 존재하는지 여부를 판단하는 단계(S120)로 구성된다.
상기 S120의 판단 결과, 캐쉬 메모리 내에 해당 데이터의 주소와 일치하는 주소를 갖는 슬라이스 A가 존재하는 경우, 캐쉬 메모리 내에 비어있는 슬라이스가 있는지 여부를 다시 판단한다(S130).
상기 S130의 판단 결과, 캐쉬 메모리 내에 비어있는 슬라이스가 있는 경우에는 하나의 캐쉬 데이터 채널을 이용하여 해당 데이터의 주소와 일치하는 주소를 갖는 슬라이스 A에 데이터를 전송함으로써 작업이 완료된다(S140). 반면 상기 S130의 판단 결과, 캐쉬 메모리 내에 비어있는 슬라이스가 없는 경우에는 하나의 캐쉬 데이터 채널을 이용하여 해당 데이터를 슬라이스 A에 전송함과 동시에 다른 캐쉬 데이터 채널을 이용하여 일정한 기준에 따라 선정된 슬라이스 B를 플러싱한다(S150).
이와 같이, 본 발명에 따르면 캐쉬 메모리에 데이터를 전송할 때마다 캐쉬 메모리 내에 여분의 슬라이스가 있는지 여부를 체크하고, 여분의 슬라이스가 없는 경우에는 2개 이상의 독립적인 캐쉬 데이터 채널을 이용하여 해당 데이터를 전송함과 동시에 특정 슬라이스를 플러싱하는 동작을 동시에 수행한다. 이에 의해 캐쉬 메모리 내에는 항상 비어있는 슬라이스가 존재하므로 전체 데이터 전송 속도를 향상시킬 수 있다.
종래의 단일 캐쉬 채널 시스템에서 캐쉬 메모리 내에 비어있는 슬라이스가 존재하지 않는 경우에는 수신 명령 대상인 데이터를 전송하기에 앞서 하나의 슬라이스를 플러싱하고 여기에 낸드 플래시 메모리에 저장된 해당 데이터를 가져와서 플러싱한 슬라이스에 채우는 필링 동작까지 완료된 후에야 비로소 해당 데이터를 캐쉬 메모리 내에 저장할 수 있기 때문에, 전체 데이터 전송 속도가 현저히 떨어지는 문제점이 있었다. 본 발명은 2개 이상의 독립된 캐쉬 데이터 채널을 이용하여 수신 명령 데이터를 저장함과 동시에 다른 슬라이스를 플러싱함으로써 캐쉬 메모리 내에 항상 비어있는 슬라이스가 존재하도록 하여 상기한 종래 단일 캐쉬 채널 시스템의 문제점을 해결한 것이다.
본 발명에 따른 다채널 캐쉬를 이용한 캐쉬 데이터 저장방법의 또 다른 실시예를 설명한다.
먼저, 제어부가 호스트 컴퓨터로부터 데이터 수신 명령을 받는다(S100).
제어부는 수신 명령의 대상이 되는 해당 데이터의 주소와 일치하는 주소를 갖는 슬라이스가 캐쉬 메모리에 존재하는지 여부를 검색한다. 이러한 검색 과정은 LBA(Logical Block Allocation table)를 참조하여 해당 데이터의 주소를 구성하는 Zone 번호, Logical Block 번호, Section 번호를 추출하는 단계(S110)와, 캐쉬 메모리에 해당 Zone 번호, Logical Block 번호, Section 번호가 일치하는 슬라이스 A가 존재하는지 여부를 판단하는 단계(S120)로 구성된다.
상기 S120의 판단 결과, 캐쉬 메모리 내에 해당 데이터의 주소와 일치하는 주소를 갖는 슬라이스 A가 존재하지 않는 경우에는 비어 있는 새로운 슬라이스 B에 해당 데이터의 주소를 갖는 낸드 플래시 메모리로부터 데이터를 전송받아 필링한다(S200).
데이터 필링 동작이 완료되면, 캐쉬 메모리 내에 비어있는 슬라이스가 있는지 여부를 판단한다(S210). 상기 S210의 판단 결과, 캐쉬 메모리 내에 비어있는 슬라이스가 있는 경우에는, 하나의 캐쉬 데이터 채널을 이용하여 해당 데이터를 상기 필링된 슬라이스 B에 저장함으로써 작업이 완료된다(S220). 반면 상기 S210의 판단 결과, 캐쉬 메모리 내에 비어있는 슬라이스가 없는 경우에는, 하나의 캐쉬 데이터 채널을 이용하여 해당 데이터를 상기 필링된 슬라이스에 저장함과 동시에 다른 캐쉬 데이터 채널을 이용하여 일정한 기준에 따라 정해진 슬라이스 C를 플러싱한다(S230).
이와 같이 구성함으로써, 캐쉬 메모리 내에 항상 플러싱된 비어있는 슬라이스가 존재함으로써 새로운 데이터를 전송할 때 해당 데이터에 대한 필링 동작만 수행한 후에 데이터를 저장할 수 있고, 그 결과 데이터 전송 속도를 향상시킬 수 있음은 상기한 바와 같다.
데이터 전송 속도를 향상시키기 위한 또 다른 기술구성으로서, 도 5에 도시된 바와 같이 캐쉬 메모리의 슬라이스 주소를 Zone 번호, Logical Block 번호, Section 번호로 구성할 수 있다. 종래에는 하나의 슬라이스 주소가 Zone 번호, Logical Block 번호로만 세분화되어 있었다. 예를 들어, 하나의 Logical Block은 4Kbyte의 크기를 가진 128개의 page로 구성되어 총 512Kbyte의 크기를 가지는 반면에, 본 발명의 Section은 동일한 크기를 가진 4개의 page로 구성되므로 총 16Kbyte의 크기를 가진다.
따라서 종래의 캐쉬 시스템에서는 Logical Block 단위(512Kbyte)로 플러싱과 필링 동작이 일어난 반면, 본 발명에 따르면 최소 단위인 Section 단위(16Kbyte) 단위로 플러싱과 필링 동작이 일어나므로 시간이 단축되어 고속 데이터 전송이 가능해지는 것이다.
이상에서 본 발명을 바람직한 실시 예를 사용하여 상세히 설명하였으나, 본 발명의 범위는 특정 실시 예에 한정되는 것은 아니며, 첨부된 특허청구범위에 의하여 해석되어야 할 것이다. 또한, 이 기술분야에서 통상의 지식을 습득한 자라면, 본 발명의 범위에서 벗어나지 않으면서도 많은 수정과 변형이 가능함을 이해하여야 할 것이다.
10: 제어부 20: 낸드 플래시 메모리
30: 캐쉬 메모리 40: 버퍼
41: 제1 버퍼 42: 제2 버퍼
50: 호스트 인터페이스
30: 캐쉬 메모리 40: 버퍼
41: 제1 버퍼 42: 제2 버퍼
50: 호스트 인터페이스
Claims (10)
- 제어부, 낸드 플래시 메모리, 캐쉬 메모리, 버퍼 및 호스트 인터페이스로 이루어진 솔리드 스테이트 디스크에 있어서,
상기 버퍼는 2개 이상으로 구성되고,
상기 2개 이상의 버퍼와 상기 낸드 플래시 메모리, 캐쉬 메모리 및 호스트 인터페이스는 각각 독립적으로 연결된 2개 이상의 캐쉬 데이터 채널로 구성되며,
상기 제어부는 미리 정해진 기준에 따라 상기 2개 이상의 캐쉬 데이터 채널을 통해 호스트 컴퓨터와 독립적으로 데이터를 전송하는 것을 특징으로 하는 다채널 캐쉬를 이용한 솔리드 스테이트 디스크. - 청구항 1에 있어서,
상기 제어부는 각 데이터 입출력 이벤트별로 정해진 우선순위에 따라 상기 2개 이상의 캐쉬 데이터 채널을 통해 데이터를 전송하는 것을 특징으로 하는 다채널 캐쉬를 이용한 솔리드 스테이트 디스크. - 청구항 1에 있어서,
상기 제어부는 상기 2개 이상의 캐쉬 데이터 채널을 교대로 사용하는 라운드 로빈(Round Robin) 방식에 따라 데이터를 전송하는 것을 특징으로 하는 다채널 캐쉬를 이용한 솔리드 스테이트 디스크. - 청구항 2 또는 청구항 3에 있어서,
상기 제어부는 일정 수의 데이터를 묶어서 매스 데이터(Mass data)로 전송하는 것을 특징으로 하는 다채널 캐쉬를 이용한 솔리드 스테이트 디스크. - 청구항 1에 기재된 다채널 캐쉬를 이용한 솔리드 스테이트 디스크를 사용하여 캐쉬 데이터를 저장하는 방법으로서,
호스트 컴퓨터로부터 데이터 수신 명령을 받은 단계;
수신 명령의 대상이 되는 해당 데이터의 주소와 일치하는 주소를 갖는 슬라이스가 캐쉬 메모리에 존재하는지 여부를 검색하는 단계;
캐쉬 메모리 내에 해당 데이터의 주소와 일치하는 주소를 갖는 슬라이스가 존재하는 경우, 캐쉬 메모리 내에 비어있는 슬라이스가 있는지 여부를 판단하는 단계; 및
상기 판단 결과 캐쉬 메모리 내에 비어있는 슬라이스가 없는 경우에는, 하나의 캐쉬 데이터 채널을 이용하여 해당 데이터를 상기 주소가 일치하는 슬라이스 내에 저장함과 동시에 다른 캐쉬 데이터 채널을 이용하여 특정 슬라이스를 플러싱하는 단계;를 포함하는 것을 특징으로 하는 다채널 캐쉬를 이용한 캐쉬 데이터 저장방법. - 청구항 5에 있어서,
상기 판단 결과 캐쉬 메모리 내에 비어있는 슬라이스가 있는 경우에는, 하나의 캐쉬 데이터 채널을 이용하여 해당 데이터를 주소가 일치하는 슬라이스 내에 저장하는 단계를 더 포함하는 것을 특징으로 하는 다채널 캐쉬를 이용한 캐쉬 데이터 저장방법. - 청구항 5 또는 청구항 6에 있어서,
상기 슬라이스의 주소는 Zone 번호, Logical Block 번호, Section 번호로 이루어진 것을 특징으로 하는 다채널 캐쉬를 이용한 캐쉬 데이터 저장방법. - 청구항 1에 기재된 다채널 캐쉬를 이용한 솔리드 스테이트 디스크를 사용하여 캐쉬 데이터를 저장하는 방법으로서,
호스트 컴퓨터로부터 데이터 수신 명령을 받은 단계;
수신 명령의 대상이 되는 해당 데이터의 주소와 일치하는 주소를 갖는 슬라이스가 캐쉬 메모리에 존재하는지 여부를 검색하는 단계;
캐쉬 메모리 내에 해당 데이터의 주소와 일치하는 주소를 갖는 슬라이스가 존재하지 않는 경우, 비어 있는 새로운 슬라이스에 해당 데이터의 주소를 갖는 낸드 플래시 메모리로부터 데이터를 전송받아 필링하는 단계;
캐쉬 메모리 내에 비어있는 슬라이스가 있는지 여부를 판단하는 단계; 및
상기 판단 결과 캐쉬 메모리 내에 비어있는 슬라이스가 없는 경우에는, 하나의 캐쉬 데이터 채널을 이용하여 해당 데이터를 상기 필링된 슬라이스에 저장함과 동시에 다른 캐쉬 데이터 채널을 이용하여 특정 슬라이스를 플러싱하는 단계;를 포함하는 것을 특징으로 하는 다채널 캐쉬를 이용한 캐쉬 데이터 저장방법. - 청구항 8에 있어서,
상기 판단 결과 캐쉬 메모리 내에 비어있는 슬라이스가 있는 경우에는, 하나의 캐쉬 데이터 채널을 이용하여 해당 데이터를 상기 필링된 슬라이스 내에 저장하는 단계를 더 포함하는 것을 특징으로 하는 다채널 캐쉬를 이용한 캐쉬 데이터 저장방법. - 청구항 8 또는 청구항 9에 있어서,
상기 슬라이스의 주소는 Zone 번호, Logical Block 번호, Section 번호로 이루어진 것을 특징으로 하는 다채널 캐쉬를 이용한 캐쉬 데이터 저장방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100072186A KR101162679B1 (ko) | 2010-07-27 | 2010-07-27 | 다채널 캐쉬를 이용한 솔리드 스테이트 디스크 및 캐쉬 데이터 저장방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100072186A KR101162679B1 (ko) | 2010-07-27 | 2010-07-27 | 다채널 캐쉬를 이용한 솔리드 스테이트 디스크 및 캐쉬 데이터 저장방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120010698A KR20120010698A (ko) | 2012-02-06 |
KR101162679B1 true KR101162679B1 (ko) | 2012-07-05 |
Family
ID=45835137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100072186A KR101162679B1 (ko) | 2010-07-27 | 2010-07-27 | 다채널 캐쉬를 이용한 솔리드 스테이트 디스크 및 캐쉬 데이터 저장방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101162679B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304938B2 (en) | 2012-11-26 | 2016-04-05 | Samsung Electronics Co., Ltd. | Storage device and data transferring method thereof |
US9582439B2 (en) | 2013-11-14 | 2017-02-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory system and operating method thereof |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101665667B1 (ko) * | 2015-04-16 | 2016-10-11 | 황태래 | 낸드 플래시 메모리 제어장치 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100950937B1 (ko) | 2009-06-30 | 2010-04-08 | 주식회사 셀픽 | 솔리드 스테이트 디스크의 캐쉬 메모리 및 이를 이용한 캐쉬 관리시스템 |
-
2010
- 2010-07-27 KR KR1020100072186A patent/KR101162679B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100950937B1 (ko) | 2009-06-30 | 2010-04-08 | 주식회사 셀픽 | 솔리드 스테이트 디스크의 캐쉬 메모리 및 이를 이용한 캐쉬 관리시스템 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304938B2 (en) | 2012-11-26 | 2016-04-05 | Samsung Electronics Co., Ltd. | Storage device and data transferring method thereof |
US9582439B2 (en) | 2013-11-14 | 2017-02-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory system and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20120010698A (ko) | 2012-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230152969A1 (en) | Memory system and method of controlling memory system | |
CN108572796B (zh) | 具有异构nvm类型的ssd | |
US9697116B2 (en) | Storage system and writing method thereof | |
CN109213440B (zh) | 存储器***、存储器控制器及其操作方法 | |
KR102569783B1 (ko) | 비순차적 구역 네임스페이스들 | |
KR101717081B1 (ko) | 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치 | |
US8639883B2 (en) | Reducing write amplification in a cache with flash memory used as a write cache | |
JP5418808B2 (ja) | 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置 | |
US8874826B2 (en) | Programming method and device for a buffer cache in a solid-state disk system | |
US20190294376A1 (en) | Storage device and method of operating the storage device | |
US20160162187A1 (en) | Storage System And Method For Processing Writing Data Of Storage System | |
US8954656B2 (en) | Method and system for reducing mapping table size in a storage device | |
CN110032333B (zh) | 存储器***及其操作方法 | |
JP6139381B2 (ja) | メモリシステムおよび方法 | |
US10782909B2 (en) | Data storage device including shared memory area and dedicated memory area | |
US10990325B2 (en) | Write control method, associated data storage device and controller thereof | |
KR102378295B1 (ko) | 저장 캐시 관리 | |
CN113614702B (zh) | 基于检测到的读取命令活跃流的自适应预读高速缓存管理器 | |
US20170003911A1 (en) | Information processing device | |
JP7030942B2 (ja) | メモリ装置及びその制御方法 | |
US20220035566A1 (en) | Pre-suspend before program in a non-volatile memory (nvm) | |
CN114063893A (zh) | 数据储存装置与数据处理方法 | |
KR20170065427A (ko) | Ssd의 데이터 프로세싱 방법 및 장치 | |
US9990280B2 (en) | Methods for reading data from a storage unit of a flash memory and apparatuses using the same | |
US11455186B2 (en) | Controller and memory system having the same |
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: 20150623 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160608 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170609 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190618 Year of fee payment: 8 |