KR20180050883A - 메모리 데이터 억세스 장치 및 방법 - Google Patents
메모리 데이터 억세스 장치 및 방법 Download PDFInfo
- Publication number
- KR20180050883A KR20180050883A KR1020160147452A KR20160147452A KR20180050883A KR 20180050883 A KR20180050883 A KR 20180050883A KR 1020160147452 A KR1020160147452 A KR 1020160147452A KR 20160147452 A KR20160147452 A KR 20160147452A KR 20180050883 A KR20180050883 A KR 20180050883A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- buffer
- memory
- search
- dma
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 239000000872 buffer Substances 0.000 claims abstract description 205
- 230000003247 decreasing effect Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 4
- 230000007423 decrease Effects 0.000 abstract description 10
- 238000012545 processing Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 13
- 230000003139 buffering effect Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000004044 response Effects 0.000 description 8
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 238000012005 ligant binding assay Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
본 기술은, 직접 메모리 억세스 장치 및 방법에 관한 것으로, 직접 메모리 억세스(direct memory access, DMA) 장치는 메모리, 버퍼, 상기 메모리의 데이터를 리드하기 위한 그룹 영역들을 설정하고, 매 홀수 번째 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제1 방향으로 라이트하고, 매 짝수번째 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제2 방향으로 라이트하는 DMA 제어기 및 상기 버퍼에 기록된 매 홀수번째 그룹영역의 데이터를 상기 제2 방향으로 리드하고, 매 짝수번째 그룹 영역의 데이터를 상기 제1 방향으로 리드하는 리더 모듈을 포함할 수 있다. 상기 제1 방향은 상기 버퍼의 포인터가 증가하는 정방향이고 상기 제2 방향은 상기 버퍼의 포인터가 감소하는 역방향일 수 있다.
Description
본 발명은 메모리에 저장된 데이터를 억세스하는 장치 및 방법에 관한 것이다.
DMA(direct memory access)는 시스템 제어부(예를들면 CPU(central processing unit, microprocessor 등)를 통하지 않고 입출력 장치에서 메모리로 데이터를 전달하거나 또는 메모리의 데이터를 입출력 장치로 전달하는 기능이 될 수 있다. 이때 시스템 제어부는 데이터의 억세스에 관여하지 않고 다른 기능을 수행할 수 있다. 예를들면, 메모리의 데이터를 억세스하는 경우, CPU가 메모리의 데이터를 억세스하면 리소스(resource)를 약 80%까지 사용하게 되지만, DMA를 사용하면 CPU는 리소스를 약 10~20%를 사용하게 될 수 있다. 따라서 DMA를 사용하게 되면 다중작업(multi-processing, 예를들면, 메모리 장치에 파일을 저장하거나 리드할 때, CPU의 리소스를 많이 필요로 하는 프로그램이나 영상 저장, 편집 작업을 할 때) 중에 발생될 수 있는 시스템 부하를 감소시킬 수 있다.
DMA동작을 살펴보면, CPU가 DMA 제어기(DMA controller)에 메모리 억세스 명령을 전송하면, DMA 제어기는 CPU로 버스 사용을 허락(bus grant) 허락 받은 후, 메모리를 직접 억세스할 수 있다. DMA 기능을 수행할 때, 억세스되는 데이터를 버퍼링을 위한 내부 버퍼를 구비할 수 있다.
DMA 제어기는 메모리에 저장된 데이터를 억세스할 때, 메모리의 어드레스(address)가 증가하는 방향으로 데이터를 억세스할 수 있다. 예를들면, 검색 엔진은 DMA 제어기를 포함할 수 있으며, DMA 제어기에서 억세스되는 되는 데이터를 검색할 수 있다. 이때 메모리의 초기 어드레스의 데이터들을 억세스하여 검색(search) 기능을 수행하는 경우, DMA 제어기에서 억세스되는 데이터들을 내부 버퍼(예를들면, FIFO(first in first out)에 저장할 수 있으며, 검색 엔진(예를들면, linear search module)은 FIFO에 저장된 데이터들을 처음부터 읽어서 검색 동작을 할 수 있다. 그러나 검색 엔진이 메모리의 중간 또는 마지막 부분에 저장된 데이터(메모리의 중간 또는 뒤쪽 어드레스 위치에 저장된 데이터들)를 검색하기 위한 검색(backward search) 동작은 복잡한 절차로 진행될 수 있다.
본 발명의 다양한 실시예들은 메모리에 저장된 데이터를 역방향으로 억세스할 수 있는 메모리 억세스 장치 및 방법을 제안한다.
본 발명의 다양한 실시예들은 직접 메모리 억세스 기능을 포함하는 검색 엔진이 메모리에 저장된 데이터를 정방향 또는 역방향으로 억세스하여 데이터를 검색할 수 있는 장치 및 방법을 제안한다.
본 발명의 다양한 실시예들은 대용량 메모리 장치를 구비하는 메모리 시스템이 메모리에 저장된 데이터를 검색할 수 있는 검색 엔진을 포함할 수 있으며, 검색 엔진은 직접 메모리 억세스 기능을 이용하여 메모리에 저장된 데이터를 정방향 또는 역방향으로 억세스하여 데이터를 검색할 수 있는 장치 및 방법을 제안한다.
본 발명의 다양한 실시예들에 따른 호스트의 제어하에 제1 메모리를 제어하는 메모리 제어장치는 제2 메모리, 상기 제2 메모리에 저장된 데이터의 검색을 요청하는 프로세서 및 상기 프로세서의 검색 요청 데이터에 기반하여 상기 제2 메모리에 저장된 데이터를 역방향으로 검색하는 검색부를 포함할 수 있다. 상기 검색부는, 버퍼, 상기 검색 요청에 기반하여 상기 제2 메모리의 데이터를 리드하기 위한 그룹 영역들을 설정하고, 매 홀수 번째 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제1 방향으로 라이트하고, 매 짝수번째 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제2 방향으로 라이트하는 DMA 제어기 및 상기 버퍼에 기록된 매 홀수번째 그룹영역의 데이터를 상기 제2 방향으로 리드하고, 매 짝수번째 그룹 영역의 데이터를 상기 제1 방향으로 리드하며, 리드된 데이터들을 분석하여 검색 결과를 상기 프로세서에 전송하는 검색 모듈을 포함하며, 상기 제1 방향은 상기 버퍼의 포인터가 증가하는 정방향이고 상기 제2 방향은 상기 버퍼의 포인터가 감소하는 역방향일 수 있다.
본 발명의 다양한 실시예들에 따른 직접 메모리 억세스(direct memory access, DMA) 장치는 메모리, 버퍼, 상기 메모리의 데이터를 리드하기 위한 그룹 영역들을 설정하고, 매 홀수 번째 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제1 방향으로 라이트하고, 매 짝수번째 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제2 방향으로 라이트하는 DMA 제어기 및 상기 버퍼에 기록된 매 홀수번째 그룹영역의 데이터를 상기 제2 방향으로 리드하고, 매 짝수번째 그룹 영역의 데이터를 상기 제1 방향으로 리드하는 리더 모듈을 포함할 수 있으며, 상기 제1 방향은 상기 버퍼의 포인터가 증가하는 정방향이고 상기 제2 방향은 상기 버퍼의 포인터가 감소하는 역방향일 수 있다.
내부의 제2 메모리를 구비하며, 호스트의 요청에 의해 대용량의 제1 메모리의 동작을 제어하는 메모리 제어장치의 동작 방법은, 상기 제2 메모리의 검색 요청 데이터에 기반하여 상기 제2 메모리의 데이터를 리드하기 위한 그룹 영역들을 설정하는 단계, 홀수 번째 그룹 영역이면, 상기 제2 메모리에서 해당 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제1 방향으로 라이트하고, 상기 버퍼에 기록된 홀수번째 그룹영역의 데이터를 상기 제2 방향으로 리드하는 제1 억세스 단계, 짝수 번째 그룹 영역이면, 상기 제2 메모리에서 해당 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제2 방향으로 라이트하고, 상기 버퍼에 기록된 짝수번째 그룹의 데이터를 상기 제1 방향으로 리드하는 제2 억세스 단계 및 상기 리드된 데이터들을 분석하며, 검색 결과를 상기 프로세서에 전송하는 검색 단계를 포함할 수 있다. 상기 제1 방향은 상기 버퍼의 포인터가 증가하는 정방향이고 상기 제2 방향은 상기 버퍼의 포인터가 감소하는 역방향일 수 있다.
본 발명의 다양한 실시예들에 따른 직접 메모리 억세스(direct memory access, DMA) 장치의 억세스 방법은, 메모리의 데이터를 리드하기 위한 그룹 영역들을 설정하는 단계, 홀수 번째 그룹 영역이면, 상기 제2 메모리에서 해당 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제1 방향으로 라이트하고, 상기 버퍼에 기록된 홀수번째 그룹영역의 데이터를 상기 제2 방향으로 리드하는 제1 억세스 단계 및 짝수 번째 그룹 영역이면, 상기 제2 메모리에서 해당 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제2 방향으로 라이트하고, 상기 버퍼에 기록된 짝수번째 그룹의 데이터를 상기 제1 방향으로 리드하는 제2 억세스 단계를 포함할 수 있다. 상기 제1 방향은 상기 버퍼의 포인터가 증가하는 정방향이고 상기 제2 방향은 상기 버퍼의 포인터가 감소하는 역방향일 수 있다.
DMA 억세스 장치에서 DMA 버퍼의 크기는 DMA 버스트 길이(burst length)에 따라 결정될 수 있다. 메모리에 저장된 데이터를 역방향으로 억세스하고자 할 때, LIFO 버퍼를 사용하여 더블 버퍼링 동작을 수행하여야 하며, 이로인해 같은 뎁스(depth)를 가지는 두개의 버퍼가 필요할 수 있다. 본 발명의 실시 예들에 따른, DMA 억세스 장치 및 방법은 버스트 리드 동작에서 DMA 억세스되는 데이터를 버퍼링할 때 버퍼의 라이트 및 리드를 지그재그 제어하여 역방향 억세스를 가능하게 할 수 있다. 따라서 본 발명의 다양한 실시예들에 따른 DMA 억세스 장치 및 방법은 하나의 버퍼를 사용하여 역방향 억세스를 가능하게 할 수 있으며, 이로인해 버퍼 사이즈를 감소시킬 수 이점이 있다.
도 1은 본 발명의 다양한 실시예들에 따른 메모리 억세스 장치의 구성을 도시하는 도면이다.
도 2는 본 발명의 다양한 실시예들에 따른 DMA 억세스 방법을 설명하는 도면이다.
도 3a - 도 3d는 도 2와 같은 억세스 방법을 수행할 때 역방향 억세스 동작을 설명하기 위한 도면이다.
도 4는 도 2와 같은 역방향 억세스 동작의 타이밍을 설명하는 도면이다.
도 5는 본 발명의 다양한 실시예에 따른 DMA 억세스 동작 절차를 도시하는 흐름도이다.
도 6은 본 발명의 다양한 실시예들에 따른 DMA 억세스 동작에서 버퍼링 동작을 도시하는 흐름도이다.
도 7은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템의 일 예를 개략적으로 도시한 도면이다.
도 8은 본 발명의 다양한 실시예에 따른 메모리 장치의 구성을 도시하는 도면이다.
도 9는 본 발명의 다양한 실시예들에 따른 메모리 시스템이 맵 테이블을 검색하는 동작을 도시하는 흐름도이다.
도 2는 본 발명의 다양한 실시예들에 따른 DMA 억세스 방법을 설명하는 도면이다.
도 3a - 도 3d는 도 2와 같은 억세스 방법을 수행할 때 역방향 억세스 동작을 설명하기 위한 도면이다.
도 4는 도 2와 같은 역방향 억세스 동작의 타이밍을 설명하는 도면이다.
도 5는 본 발명의 다양한 실시예에 따른 DMA 억세스 동작 절차를 도시하는 흐름도이다.
도 6은 본 발명의 다양한 실시예들에 따른 DMA 억세스 동작에서 버퍼링 동작을 도시하는 흐름도이다.
도 7은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템의 일 예를 개략적으로 도시한 도면이다.
도 8은 본 발명의 다양한 실시예에 따른 메모리 장치의 구성을 도시하는 도면이다.
도 9는 본 발명의 다양한 실시예들에 따른 메모리 시스템이 맵 테이블을 검색하는 동작을 도시하는 흐름도이다.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩뜨리지 않도록 생략될 것이라는 것을 유의하여야 한다.
이하, 도면들을 참조하여 본 발명의 실시 예들에 대해서 보다 구체적으로 설명하기로 한다.
도 1은 본 발명의 다양한 실시예들에 따른 메모리 억세스 장치의 구성을 도시하는 도면이다.
도 1을 참조하면, 메모리 억세스 장치는 제어부(100), 메모리(110), DMA 제어기(120), 버퍼(130), 처리모듈(140)을 포함할 수 있다.
제어부(100)은 장치 또는 시스템의 전반적인 동작을 제어할 수 있다. 제어부(100)은 DMA 제어기(120)을 제어하여 메모리 억세스 동작을 포함하는 멀티 프로세싱 기능을 제어할 수 있다. 제어부(100)는 DMA 제어기(120)에 메모리(100)을 억세스하기 위한 어드레스 범위 및 검색 모드를 포함하는 제어 정보들을 전송할 수 있다. 검색 모드는 역방향 검색 모드 또는 정방향 검색 모드가 될 수 있다. 메모리(110)은 제어부(100)의 제어하에 데이터들을 저장 및 저장된 데이터를 출력할 수 있다. DMA 제어기(120)은 제어부(100)의 제어하에 활성화될 수 있으며, 제어부(100)에서 버스 사용이 허락되면, 상기 메모리(110)에서 설정된 어드레스 영역들 내에 저장된 데이터들을 억세스할 수 있다. 버퍼(130)는 DMA 제어기(120)에서 억세스되는 데이터를 버퍼링할 수 있다. 처리모듈(140)는 버퍼(130)에 버퍼링된 데이터들을 리드하여 설정된 기능으로 처리할 수 있다. 처리 모듈(140)은 검색 기능을 포함할 수 있다. 검색 기능을 포함하는 경우, 처리 모듈(140)은 버퍼(130)에서 리드되는 데이터를 검색할 수 있으며, 검색된 결과를 제어부(100)에 전송할 수 있다.
일반적으로 DMA의 데이터 전송을 버스트 모드(burst mode)라 할 수 있다. 버스트 모드 전송은 메모리(110)의 데이터를 리드하여 버퍼(130)에 라이트할 때, DMA 제어기(120)는 제어부(100)에서 전송되는 첫번째 데이터의 주소를 사용하여 연속된 데이터(burst data)를 고속으로 억세스할 수 있다. 따라서 두 번째 버스트 데이터부터는 별도의 셋업시간(setup time, addressing time)이 필요없기 때문에 데이터를 억세스하는 시간이 빠를 수 있다. 그리고 메모리 저장된 버스트 데이터는 일정 크기를 가지는 데이터가 될 수 있다. 예를들면, 메모리(110)가 맵 테이블(map table)인 경우 버스트 사이즈는 128 바이트의 크기를 가질 수 있다. 맵 테이블은 SSD(solid state device)에서 로지컬 어드레스(logical block address, LBA)와 피지컬 어드레스(physical block address)를 맵핑하는 테이블이 될 수 있다.
본 발명의 다양한 실시예들에 따른 DMA 제어기(120), 버퍼(130) 및 처리모듈(140)은 역방향 검색(reverse linear search)을 수행할 수 있다. 역방향 검색 모드가 설정되면, DMA 제어기(120) 및 처리모듈(140)은 버퍼(130)를 지그재그 버퍼(zigzag buffer)로 운용할 수 있다. 이하의 설명에서 “역방향 억세스”라는 용어는 메모리의 어드레스를 감소시키면서 데이터를 억세스하여 용어를 의미하며, “정방향 억세스”는 어드레스를 증가시키면서 데이터를 억세스하는 용어로 사용될 것이다.
본 발명의 다양한 실시예에 따른 DMA 억세스 방법은 버스트 데이터(burst data)를 억세스할 때, 어드레스가 증가하는 방향으로의 억세스되는 데이터를 지그재그 버퍼링(zigzag buffering)하여 역방향 억세스를 가능하게 하는 장치 및 방법이 될 수 있다.
DMA 제어기(120)는 메모리(100)에서 데이터를 억세스할 때, 어드레스를 증가시키면서 데이터를 리드할 수 있다. 따라서 DMA 제어기(120)에서 억세스되는 데이터는 어드레스가 증가하는 방향으로 리드되는 데이터가 될 수 있다. 예를들면, DMA 버스트가 16 버스트라 하고, 역방향 억세스하는 방법을 살펴본다. 이런 경우, 버퍼(130)의 크기(size)는 N 버스트 데이터 이상의 데이터들을 저장할 수 있는 크기로 설정할 수 있다, N 버스트 사이즈이며 역방향 억세스를 하는 경우, DMA 제어기(120)은 메모리(110)에 저장된 데이터들을 N 버스트 단위로 그룹핑하고, 그룹핑된 영역에서 어드레스를 증가시키면서 데이터를 억세스하여 버퍼(130)에 저장할 수 있다. 그리고 DMA 제어기(120)은, 메모리(110)의 매 홀수번째 그룹핑 영역에서 억세스되는 데이터들을 버퍼(130)에 제1 방향으로 라이트하고 메모리(110)의 매 짝수번째 그룹핑 영역에서 억세스되는 데이터들을 버퍼(130)에 제2 방향으로 라이트할 수 있다. 그리고 처리 모듈(140)은 버퍼(130)에 버퍼링된 데이터들을 리드할 때, 메모리(110)의 매 홀수번째 그룹핑 영역에서 억세스되는 데이터들을 버퍼(130)에 제2 방향으로 리드하고 메모리(110)의 매 짝수번째 그룹핑 영역에서 억세스되는 데이터들을 버퍼(130)에 제1 방향으로 리드할 수 있다. 즉, DMA 제어기(120)은 메모리(110)에서 리드되는 그룹핑된 영역들의 데이터를 지그재그 형태로 버퍼(130)에 라이트하고, 처리모듈(140)은 버퍼(130)의 버퍼링된 데이터를 DMA의 라이트 방법과 역 지그재그 방향으로 리드할 수 있다. 여기서 제1 방향은 어드레스가 증가되는 방향이 될 수 있으며, 제2 방향은 어드레스가 감소되는 방향이 될 수 있다.
예를들면, N=16이면, 그룹핑 영역은 16개의 버스트들이 저장되는 영역이 될 수 있으며, 버퍼(130)은 16개의 버스트들을 버퍼링할 수 있는 크기를 가질 수 있다. 먼저 DMA 제어기(120)는 메모리(110)의 전체 어드레스 영역(total address range)에서 뒤쪽부터 16 burst 단위로 그룹핑하고, 그룹핑된 영역에서 어드레스가 증가되는 방향으로 메모리(110)에 저장된 데이터들을 리드하여 버퍼(130)에서 라이트할 수 있다. 예를 들어, 메모리(110)에서 저장된 데이터가 0~100까지 저장되었다고 가정하면, DMA제어기(120)는 역방향 억세스시 어드레스가 어드레스가 증가하는 방향으로 DMA 16 버스트를 리드할 수 있으며, 이때의 순서는 (85->100), (69 ->84), (53->68)의 순서가 될 수 있다. 이렇게 읽어온 data를 16 뎁스(depth)의 버퍼(130)에 라이트할 때, DMA 제어기(120)는 매 홀수번째 그룹 영역의 데이터들을 제1 방향(예를들면 어드레스가 증가하는 방향)으로 라이트하고, 매 짝수번째 그룹 영역들의 데이터들을 제2 방향(예를들면 어드레스가 감소하는 방향)으로 라이트할 수 있다. 그리고 처리모듈(140)은 매 홀수번째 그룹 영역의 데이터들을 제2 방향으로 리드하고, 매 짝수번째 그룹 영역들의 데이터들을 제1 방향으로 리드할 수 있다. 예를들면, DMA 제어기(120)이 매 홀수번째 그룹 영역의 데이터들을 리드하여 버퍼(120)의 라이트 포인터(write pointer) 를 1->16 순으로 증가시키면서 라이트하면, 처리 모듈(140)은 버퍼(130)에서 라이트 완료 시점에서 리드 포인터(read pointer)를 16->1의 순으로 감소시키면서 버퍼(130)의 데이터를 리드할 수 있다. 즉, DMA 제어기(120)은 메모리(110)의 그룹 영역 데이터들을 리드하여 버퍼(130)에 지그재그 방향으로 데이터를 라이트하고, 처리 모듈(140)은 버퍼(130)에 라이트된 데이터들을 DMA 제어기(120)의 지그재그 방향과 역지그재그 방향으로 리드하여 출력할 수 있다. 따라서 본 발명의 다양한 실시예들에 따른 DMA 방법은 메모리(110)의 1->100의 순서로 저장된 데이터들을 100 -> 1 순서로 억세스할 수 있다.
도 2는 본 발명의 다양한 실시예들에 따른 DMA 억세스 방법을 설명하는 도면이다. 도 3a - 도 3d는 도 2와 같은 억세스 방법을 수행할 때 역방향 억세스 동작을 설명하기 위한 도면이다. 도 4는 도 2와 같은 역방향 억세스 동작의 타이밍을 설명하는 도면이다.
DMA의 버퍼(130)의 크기는 DMA 버스트 길이(DMA burst length)에 맞춰 결정할 수 있다. 예를들면, 16 버스트가 가능한 DMA이면 버퍼(130)는 16 뎁스(depth) 버퍼로 설정할 수 있으며, 8 버스트이면 버퍼(130)는 8 뎁스 버퍼로 설정할 수 있으며, 4 버스트이면 버퍼(130)는 4 뎁스 버퍼로 설정할 수 있다. DMA 억세스 동작을 역방향 억세스 방법으로 수행할 때, LIFO(last in first out) 버퍼를 사용하면 더블 버퍼링(double buffering) 동작(예를들면 정방향으로 리드하여 제1 버퍼링하고, 제1 버퍼링된 데이터를 역방향으로 리드하여 제2 버퍼링하는 동작)을 수행하여야 할 수 있으며, 이로인해 동일한 뎁스(same depth)를 가지는 2개의 버퍼들을 필요로할 수 있다. 본 발명의 다양한 실시예들에 따르면, DMA 억세스 동작을 수행할 때 하나의 버퍼를 사용하면서 역방향 억세스 동작을 수행할 수 있는 장치 및 방법을 제공할 수 있다.
본 발명의 다양한 실시예들에 따른 DMA 역방향 억세스 방법은 DMA 억세스되는 데이터를 버퍼(130)에 라이트하고 리드할 때, 버퍼(130)의 라이트 포인터 및 리드 포인터를 지그재그 방식으로 제어할 수 있다. 이를 위하여, 본 발명의 다양한 실시예들에 따른 DMA 역방항 억세스 방법은, 초기화시 버퍼(130)의 라이트 포인터와 리드 포인터의 위치를 각각 버퍼(130)의 양끝(예를들면, write pointer =0, read pointer=total buffer depth) 로 초기화시킬 수 있다. 이후 버퍼(130)의 라이트 포인터와 리드 포인터를 지그재그 형태로 제어(예를들면, 0->max, max->0, 0->max, …)하여 메모리(110)에서 리드되는 데이터들을 버퍼링할 수 있다. 또한 본 발명의 다양한 실시예들에 따른 DMA 억세스 방법은 버퍼(130)의 라이트 포인터가 버퍼(130)의 양끝 포인트를 가르키고, 버퍼(130)의 풀(full, DMA 제어기(120)가 버퍼(130)의 마지막 포인트에 데이터를 라이트하는 동작) 신호가 발생되기 전에 버퍼(130)의 리드 시작을 하지 못하도록 제어할 수 있다.
도 2를 참조하면, 메모리(110)는 도 2와 같은 구성을 가지며, 버퍼(130)은 4 버스트 뎁스를 가진다고 가정한다. 그러면 DMA 제어기(120)은 211 - 213과 같이 각 그룹 영역들의 4 버스트 데이터 데이터들을 어드레스가 증가하는 방향(제1 방향)으로 리드할 수 있다. 그리고 DMA 제어기(120)는 메모리(110)에서 리드한 데이터를 버퍼(130)에 라이트할 때, 211과 같이 리드한 데이터들은 213과 같이 어드레스가 증가하는 방향으로 라이트하고, 221과 같이 리드한 데이터들은 223과 같이 어드레스가 감소하는 방향으로 라이트하고, 231과 같이 리드한 데이터들은 233과 같이 어드레스가 증가하는 방향으로 라이트할 수 있다. 그리고 버퍼(130)에서 데이터의 라이트가 완료되면(buffer full), 처리 모듈(140)은 213과 같이 라이트된 데이터를 215와 같이 어드레스가 감소하는 방향으로 리드하고, 223과 같이 라이트된 데이터를 225와 같이 어드레스가 증가하는 방향으로 리드하고, 233과 같이 라이트된 데이터를 235와 같이 어드레스가 증가하는 방향으로 리드할 수 있다.
메모리(110)에 저장된 데이터들 중에서 어르데스 40번의 데이터에서 어드레스 1 번의 데이터까지 역방향으로 억세스하기 위하여, DMA 제어기(120)는 메모리(110)에서 4 버스트 길이로 그룹핑된 영역에서 어드레스가 증가하는 방향으로 데이터를 리드할 수 있다.
먼저 도 3a를 참조하면, DMA 제어기(120)는 첫번째 그룹 영역의 데이터들을 311과 같이 어드레스가 증가되는 방향으로 라이트 포인터를 제어하여 버퍼(130)에 313과 같이 라이트할 수 있다. 처리 모듈(140)은 313과 같이 첫번째 그룹의 데이터들이 버퍼(130)에 라이트 완료되면, 리드 포인터를 315와 같이 어드레스가 감소하는 방향으로 제어하여 317과 같이 리드할 수 있다. 즉, DMA 제어기(120)은 첫번째 그룹의 데이터들을 37->40의 순서로 버퍼(130)에 라이트하고, 처리모듈(140)은 40->37의 순서로 버퍼(130)에서 데이터를 리드할 수 있다.
두 번째로 도 3b를 참조하면, DMA 제어기(120)는 두번째 그룹 영역의 데이터들을 321과 같이 어드레스가 감소되는 방향으로 라이트 포인터를 제어하여 버퍼(130)에 323과 같이 라이트할 수 있다. 처리 모듈(140)은 323과 같이 두번째 그룹의 데이터들이 버퍼(130)에 라이트 완료되면, 리드 포인터를 325와 같이 어드레스가 증가하는 방향으로 제어하여 327과 같이 리드할 수 있다. 즉, DMA 제어기(120)은 첫번째 그룹의 데이터들을 33->36의 순서로 버퍼(130)에 라이트하고, 처리모듈(140)은 36->33의 순서로 버퍼(130)에서 데이터를 리드할 수 있다.
세번째로 도 3c와 같은 절차로 세번째 그룹 영역의 데이터들을 억세스할 수 있으며, 네번째로 도 3d와 같은 절차로 네번째 그룹 영역의 데이터들을 억세스할 수 있다. 즉, 매 홀수번째 그룹의 억세스 동작은 도 3a 및 도 3c와 같은 방법으로 수행될 수 있으며, 매 짝수번째 그룹의 억세스 동작은 도 3b 및 도 3와 같은 방법으로 수행될 수 있다. 이와 같은 방법으로 버퍼(130)의 라이트 및 리드 동작을 지그재그 방식으로 제어하면, 메모리(110)에 저장된 1 -> 40 데이터들을 40 ->1 번의 순서로 억세스할 수 있다.
도 4는 본 발명의 다양한 실시예들에 따른 DMA 억세스 동작에서 버퍼에 데이터를 라이트 및 리드하는 동작을 설명하는 도면이다.
도 4를 참조하면, 버퍼(130)에 라이트된 데이터를 리드할 때, 라이트 포인터가 버퍼(130)의 끝(버퍼의 가장 낮은 포인터 위치 또는 가장 높은 포인터 위치)을 가르키고 버퍼 풀 신호가 발생되기 전까지 리드 동작을 방지하고, 버퍼 풀 신호가 발생되면 버퍼의 끝 위치에서부터 리드를 시작할 수 있다. 즉, 버퍼 풀 상태가 되면, DMA 제어기(120)가 데이터 라이트 동작과 처리 모듈(140)이 리드하는 동작을 동시에 수행할 수 있다. 도 4의 t1 - t3 시점에서 DMA 제어기(120)은 버퍼(130)에 데이터를 라이트할 수 있으며, 버퍼 풀 상태가 아니므로 처리 모??(140)은 리드 동작을 수행하지 않을 수 있다. 도 4의 t4 시점에서 DMA 제어기(120)이 버퍼(130)의 마지막 포인터(가장 높은 라이트 포인터) 위치에 데이터(예를들면 “40”)를 라이트하고 풀 신호가 발생할 수 있다. 버퍼 풀 신호가 발생되면, 처리 모듈(140)은 t5 시점에서 리드 포인터를 버퍼(130)의 마지막 포인터에 위치시켜 데이터(예를들면 “40”)를 리드할 수 있다. 이후 t6 - t8 시점에서 처리모듈(140)은 리드 포인터를 감소시키면서 데이터들(“39”, “38”, “37”)을 리드하고, DMA 제어기(120)는 라이트 포인터를 하강시키면서 다음 그룹 영역의 데이터들(“33”, “34”, “35”)을 라이트할 수 있다.
도 4의 t9 시점에서 DMA 제어기(120)이 버퍼(130)의 마지막 포인터(가장 낮은 라이트 포인터) 위치에 데이터(예를들면 “36”)를 라이트하고 풀 신호가 발생할 수 있다. 버퍼 풀 신호가 발생되면, 처리 모듈(140)은 t10 시점에서 리드 포인터를 버퍼(130)의 가장 낮은 마지막 포인터에 위치시켜 데이터(예를들면 “36”)를 리드할 수 있다. 이후 t11 - t13 시점에서 처리모듈(140)은 리드 포인터를 증가시키면서 데이터들(“35”, “34”, “33”)을 리드하고, DMA 제어기(120)는 라이트 포인터를 증가시키면서 다음 그룹 영역의 데이터들(“29”, “30”, “31”)을 라이트할 수 있다. 110)에서 다음 그룹 영역의 데이터들을 리드하여 버퍼(130)에 라이트할 수 있다.
본 발명의 다양한 실시예들에 따르면, 버퍼(130)의 데이터 리드 및 라이트 동작을 동시에 수행할 수 있다. 즉, 처리 모듈(140)이 버퍼(130)에 라이트한 데이터들을 리드할 때, DMA 제어기(120)은 메모리(110)에서 다음 그룹 영역의 데이터들을 리드하여 버퍼(130)에 라이트할 수 있다. 따라서 DMA 억세스 동작을 수행할 때 역방향 억세스 동작을 빠르게 수행할 수 있다.
도 5는 본 발명의 다양한 실시예에 따른 DMA 억세스 동작 절차를 도시하는 흐름도이다.
도 5를 참조하면, 역방향 검색 모드가 설정되면, DMA 장치는 511 단계에서 역방향 검색을 인식할 수 있다. DMA 장치는 DMA 제어기(120), 버퍼(130), 처리모듈(140)을 포함할 수 있다. 역방향 검색 모드이면, DMA 장치는 513단계에서 메모리에서 리드할 그룹을 분석할 수 있다. 이때 리드할 그룹이 홀수 그룹이면, DMA 장치는 515단계에서 메모리의 해당 그룹 데이터들을 제1 방향으로 리드하고, 517단계에서 메모리에서 리드되는 데이터들을 버퍼에 제1 방향으로 라이트할 수 있다. 여기서 제1 방향은 어드레스가 증가하는 방향이 될 수 있다. 그리고 버퍼에 라이트 동작이 완료(buffer full)되면, DMA 장치는 519 단계에서 버퍼에 라이트된 데이터들을 제2 방향으로 리드할 수 있다. 여기서 제2 방향은 어드레스가 감소하는 방향이 될 수 있다. 또한 역방향 모드에서 메모리에서 리드할 그룹이 짝수 그룹이면, DMA 장치는 513단계에서 이를 인식하고, 523단계에서 메모리의 해당 그룹 데이터들을 제1 방향으로 리드한 후, 525단계에서 메모리에서 리드되는 데이터들을 버퍼에 제2 방향으로 라이트할 수 있다. 그리고 버퍼에 라이트 동작이 완료(buffer full)되면, DMA 장치는 527 단계에서 버퍼에 라이트된 데이터들을 제1 방향으로 리드할 수 있다.
본 발명의 다양한 실시예들에 따른 DMA 억세스 방법은, 메모리의 그룹 데이터들을 제1방향으로 리드하고, 리드되는 그룹이 홀수번째 그룹이면 리드되는 데이터들을 버퍼에 제1 방향으로 라이트하고, 라이트가 완료되면 라이트된 데이터를 제2 방향으로 리드하여 출력할 수 있다. 그리고 리드되는 그룹이 짝수번째 그룹이면, 메모리에서 리드되는 데이터를 상기 버퍼에 제2 방향으로 라이트하고, 라이트가 완료되면 버퍼에 라이트된 데이터를 제1 방향으로 리드하여 출력할 수 있다. 이때 제1 방향은 상기 버퍼의 포인터가 증가하는 역방향이고 제2 방향은 상기 버퍼의 포인터가 감소하는 정방향이며, 버퍼는 메모리의 그룹을 구성하는 버스트들의 수(depth)를 가질 수 있다.
위와 같은 동작을 반복하면서 메모리에 저장된 데이터들을 모두 억세스하면, DMA 장치는 521 단계에서 이를 인식하고, DMA 역방향 억세스 동작을 종료할 수 있다.
또한 정방향 억세스 동작이면, DMA 장치는 511 단계에서 이를 인식하고, 551 단계에서 정방향 억세스 동작을 수행할 수 있다. 정방향 억세스인 경우, DMA 장치는 메모리에서 어드레스가 증가하는 방향으로 순차적으로 데이터를 리드할 수 있으며, 리드되는 데이터들을 버퍼의 라이트 포인터를 증가시키면서 순차적으로 저장할 수 있다. 그리고 버퍼에 라이트가 완료되면, DMA 장치는 리드 포인터를 순차적으로 증가시키면서 저장된 데이터들을 리드 출력할 수 있다.
도 6은 본 발명의 다양한 실시예들에 따른 DMA 억세스 동작에서 버퍼링 동작을 도시하는 흐름도이다.
도 6을 참조하면, DMA 장치는 611단계에서 메모리에서 현재 그룹의 데이터를 리드할 수 있으며, 613단계에서 설정된 방향으로 버퍼에 라이트할 수 있다. 이때 버퍼가 풀 상태가 될 때까지 611 단계 및 613단계를 반복하면서 메모리에서 데이터를 리드하여 버퍼에 라이트할 수 있다. 이때 DMA 장치는 버퍼에 현재 그룹의 데이터를 라이트할 때, 버퍼에 라이트된 이전 그룹의 데이터들을 리드할 수 있다. 이후 버퍼가 풀 상태가되면, DMA 장치는 615단계에서 이를 인식하고, 라이트가 완료된 현재 그룹의 첫번째 데이터(예를들면 라이트 포인터의 마지막 위치에 라이트된 데이터)가 리드되었는가 검사하고, 리드되지 않은 상태이면 해당 데이터가 리드될 때까지 라이트 동작을 수행하지 않을 수 있다. 해당 그룹의 마지막 라이트 포인터 위치의 데이터를 리드하면, DMA 장치는 619 단계에서 라이트 포인터의 방향을 전환하고, 리턴하여 다음 그룹의 데이터들을 저장할 수 있다.
본 발명의 다양한 실시예들에 따른 DMA 장치는 역방향 억세스 모드에서 메모리에서 리드되는 그룹 단위의 데이터들을 버퍼에 제1 방향으로 라이트하고, 라이트가 완료되면 라이트된 데이터를 제2 방향으로 리드할 수 있다. 이때 제1 방향으로 라이트된 그룹의 마지막 라이트 포인터 위치에 라이트된 데이터를 리드하면, DMA 장치는 라이트 포인터의 방향을 반전하여 메모리에서 리드되는 데이터를 버퍼에 제2 방향으로 라이트하는 동작을 시작할 수 있다. 이때 이전 그룹의 마지막 라이트 포인터 위치는 다음 그룹에서 시작 라이트 포인터 위치가 될 수 있다. 이런 경우, DMA 장치는 제2 방향으로 데이터를 리드하면서 리드된 위치에 제2 방향으로 다음 그룹의 데이터들을 라이트할 수 있다. 즉, DMA 장치는 메모리에서 설정된 그룹 영역의 데이터들을 어드레스가 증가하는 방향으로 순차적으로 리드하며, 리드된 데이터들을 버퍼(130)에 지그재그 방향으로 라이트하고, 역지그방향으로 라이트된 데이터를 리드할 수 있다.
본 발명의 다양한 실시예들에 따른 DMA 억세스 장치 및 방법은 메모리 시스템의 검색 모듈(linear search hardware module)에서 이용될 수 있다. 메모리 시스템의 검색 모듈은 메모리에 저장된 데이터들을 저장 순서와 반대 방향으로 검색할 수 있다. 본 발명의 다양한 실시예들에 따르면, 메모리 시스템의 검색 모듈이 역방향 검색(backward search)을 DMA(direct memory access)로 구현할 수 있다. 검색 모듈은 DMA 억세스 동작을 수행할 수 있으며, DMA에서 메모리에 저장된 데이터들을 버스트(burst) 단위로 리드할 때, 버퍼를 구비하는 검색모듈은 버퍼의 라이트 포인터 및 리드 포인터를 지그재그 방향 및 역지그재그 방향으로 제어하면서 데이터를 검색할 수 있다.
본 발명의 다양한 실시예들에서 메모리는 맵 테이블(map table)을 저장할 수 있다. 메모리 시스템의 FTL(flash translation layer)에서 P2L(physical to logical) 테이블로 맵 테이블을 관리할 때 P2L 테이블의 갱신(update) 정보는 메모리에서 어드르세의 정방향(어드레스가 증가하는 방향)으로 순서대로 쌓이게 될 수 있다(저장될 수 있다). 이때 FTL이 어느 시점에서 특정 데이터를 검색하고자 할 때, 역방향 검색이 필요할 수 있다. 예를들면, 검색할 데이터가 최근에 갱신된 데이터인 경우, 맵테이블에서 갱신된 순서의 역순으로 검색하는 것이 효과적일 수 있다. 이런 경우, 메모리 시스템의 검색 모듈은 역방향 검색(reverse search) 통해 최신의 갱신 데이터들을 검색할 수 있다. 맵 테이블에서 하나의 버스트는 128 바이트 크기를 가질 수 있으며, 두 쌍의 피지컬 어드레스 및 로지컬 어드레스들을 포함할 수 있다.
본 발명의 다양한 실시예들에 따른 메모리 시스템의 검색 모듈은 DMA 버스트로 맵 테이블의 데이터들을 리드하여 검색할 때, 리드되는 데이터들을 버퍼링하는 버퍼의 라이트 포인터 및 리드 포인터를 지그재그 형태로 제어하면서, 버퍼에서 역방향 어드레스(address backward) 방향의 (address 뒤쪽부터 감소하는 방향의) 데이터들을 억세스할 수 있는 장치 및 방법을 제공할 수 있다.
도 7은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템의 일 예를 개략적으로 도시한 도면이다.
도 7을 참조하면, 데이터 처리 시스템은 호스트(host)(790) 및 메모리 시스템(780)을 포함할 수 있다. 그리고 메모리 시스템(780)은 컨트롤러(700) 및 제1 메모리(750)을 포함할 수 있다.
호스트(790)는 전자장치가 될 수 있다. 전자장치는 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치(wearable device) 중 적어도 하나를 포함할 수 있다.
메모리 시스템(780)은, 호스트(790)의 요청에 응답하여 동작하며, 호스트(790)에 의해서 액세스되는 데이터를 저장할 수 있다. 메모리 시스템(780)은 호스트(790)의 주 기억 장치 또는 보조 기억 장치로 사용될 수 있다. 여기서, 메모리 시스템(780)은 호스트(790)와 연결되는 호스트 인터페이스 프로토콜에 따라, 다양한 종류의 저장 장치들 중 어느 하나로 구현될 수 있다. 예를 들면, 메모리 시스템(780)은, 솔리드 스테이트 드라이브(SSD: Solid State Drive), MMC, eMMC(embedded MMC), RS-MMC(Reduced Size MMC), micro-MMC 형태의 멀티 미디어 카드(MMC: Multi Media Card), SD, mini-SD, micro-SD 형태의 시큐어 디지털(SD: Secure Digital) 카드, USB(Universal Storage Bus) 저장 장치, UFS(Universal Flash Storage) 장치, CF(Compact Flash) 카드, 스마트 미디어(Smart Media) 카드, 메모리 스틱(Memory Stick) 등과 같은 다양한 종류의 저장 장치들 중 어느 하나로 구현될 수 있다.
아울러, 메모리 시스템(780)을 구현하는 저장 장치들은, DRAM(Dynamic Random Access Memory), SRAM(Static RAM) 등과 같은 휘발성 메모리 장치와 ROM(Read Only Memory), MROM(Mask ROM), PROM(Programmable ROM), EPROM(Erasable ROM), EEPROM(Electrically Erasable ROM), FRAM(Ferromagnetic ROM), PRAM(Phase change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), 플래시 메모리 등과 같은 비휘발성 메모리 장치로 구현될 수 있다.
그리고, 메모리 시스템(780)은, 호스트(790)에 의해서 액세스되는 데이터를 저장하는 제1 메모리(750), 및 메모리 장치(750)로의 데이터 저장을 제어하는 컨트롤러(700)를 포함한다.
여기서, 컨트롤러(700) 및 제1 메모리(750)는 하나의 반도체 장치로 집적될 수 있다. 일 예로, 컨트롤러(700) 및 메모리 장치(750)는 하나의 반도체 장치로 집적되어 SSD를 구성할 수 있다.
컨트롤러(700) 및 제1 메모리(750)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 컨트롤러(700) 및 제1 메모리(750)는, 하나의 반도체 장치로 집적되어, PC 카드(PCMCIA: Personal Computer Memory Card International Association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억 장치(UFS) 등과 같은 메모리 카드를 구성할 수 있다.
제1 메모리(750)는 전원이 공급되지 않아도 저장된 데이터를 유지할 수 있으며, 특히 라이트(write) 동작을 통해 호스트(790)로부터 제공된 데이터를 저장하고, 리드(read) 동작을 통해 저장된 데이터를 호스트(790)로 제공할 수 있다. 제1 메모리(750)는 플래시 메모리 장치가 될 수 있다. 플래시 메모리는 3차원(dimension) 입체 스택(stack) 구조가 될 수 있다.
컨트롤러(700)는 한 실시예에 따르면, 컨트롤러(700)는 전자 장치의 제어부가 될 수 있다. 한 실시예에 따르면, 컨트롤러(700)는 호스트(790)와 연결되는 SSD(solid state drive)가 될 수 있다. 컨트롤러(700)이 SSD이면, 메모리 시스템(780)은 외부 장치(예를들면 호스트(790))의 라이트(write, program) 요청에 응답하여, 외부 장치로부터 제공된 프로그램 데이터를 메모리 장치에 라이트하도록 구성될 수 있다. 또한, 메모리 시스템은 외부 장치의 리드 요청에 응답하여, 메모리 장치에 라이트된 데이터를 외부 장치로 제공하도록 구성될 수 있다.
도 7은 SSD 장치의 구성 예를 도시하는 도면이 될 수 있다. 도 7를 참조하면, 컨트롤러(700)는 프로세서(710), 호스트 인터페이스(720), 메모리 인터페이스(725), 검색부(search engine)(730), 버퍼 메모리(740), 버스(on-chip bus)(745) 등을 포함할 수 있다.
호스트 인터페이스(720)는 컨트롤러(700)과 호스트(790) 간의 인터페이스 기능을 수행할 수 있다. 메모리 인터페이스(725)는 컨트롤러(700)과 메모리 장치(750) 간의 인터페이스 기능을 수행할 수 있다.
제2 메모리(740)는 버퍼 메모리 및/또는 맵 테이블(map table)을 포함할 수 있다. 버퍼 메모리는 제1 메모리(750)에 라이트하기 위한 데이터 또는 제2 메모리(750)에서 리드되는 데이터를 버퍼링하는 메모리가 될 수 있다. 맵 테이블은 호스트 영역의 로지컬 어드레스(logical block address, LBA)를 제1 메모리(750)의 피지컬 어드레스(physical block address, PBA)를 맵핑하는 테이블이 될 수 있다. 제2 메모리(740)는 DRAM 및/또는 SRAM을 포함할 수 있으며, 맵 테이블은 전원 오프시에도 유지될 수 있도록 SRAM에 저장될 수 있다.
프로세서(710)는 메모리 시스템의 전반적인 동작을 제어할 수 있다. 프로세서(710)는 호스트(790)로부터 전송된 라이트 요청에 응답하여 메모리 장치(750)에 데이터를 저장하고, 호스트(790)의 리드 요청에 응답하여 메모리 장치(750)에 라이트된 데이터를 리드하여 호스트(790)로 출력하는 동작을 제어할 수 있다.
검색부(730)은 DMA 제어기, 버퍼 및 검색 모듈들을 포함할 수 있다. 검색부(730)은 도 1과 같은 구성을 포함할 수 있다. 프로세서(710)의 제어하에 역방향 검색 모드시 제2 메모리(740)의 맵 테이블의 데이터를 역방향 억세스하여 검색하는 기능을 수행할 수 있다. 본 발명의 다양한 실시예에 따른 검색부(730)는 프로세서(710)의 제어하에 맵 테이블에 저장된 정보들을 정방향 또는 역방향 억세스하여 LBA 및/또는 PBA를 검색할 수 있으며, 검색 결과를 상기 프로세서(710)에 제공할 수 있다.
도 8은 본 발명의 다양한 실시예에 따른 메모리 장치의 구성을 도시하는 도면이다.
도 8을 참조하면, 메모리 장치(750)는 메모리 제어부(810), 전압 공급부(820), 로우 디코더(row decoder)(830), 메모리 셀 어레이(memory cell array)(840), 컬럼 디코더(column decoder)(850) 및 프로그램/리드 회로(860)를 포함할 수 있다.
메모리 장치(750)는 낸드 플래시(NAND Flash) 또는 노어 플래시(NOR Flash)와 같은 플래시 메모리 장치, FeRAM(Ferroelectrics Random Access Memory), PCRAM(Phase-Change Random Access Memory), MRAM(Magnetic Random Access Memory) 또는 ReRAM(Resistive Random Access Memory) 등을 포함할 수 있다. 이하의 설명에서는 메모리 장치(750)는 비휘발성 메모리 장치인 낸드 플래시로 설명될 수 있다.
메모리 셀 어레이(840)는 복수의 워드라인 WL들 및 복수의 비트라인(bit line) BL들에 연결될 수 있다. 또한, 메모리 셀 어레이(840)는 복수의 WL들과 복수의 BL들이 교차하는 영역들에 각각 배치되는 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(840)는 커맨드(CMD)에 수반하여 엑세스될 메모리 셀을 지시하기 위한 어드레스(ADDR)가 수신될 수 있으며, 어드레스(ADDR)는 메모리 셀 어레이(840)의 워드 라인들(WL)을 선택하기 위한 로우 어드레스(X_ADDR)와 메모리 셀 어레이(840)의 비트 라인을 선택하기 위한 칼럼 어드레스(Y_ADDR)를 포함할 수 있다.
로우 디코더(830)는 워드 라인들(WL)을 통해 메모리 셀 어레이(840)에 연결되며, 로우 어드레스(X_ADDR)에 응답하여 워드라인들 중 적어도 하나를 선택할 수 있다. 컬럼 디코더(850)는 BL들을 통해 메모리 셀 어레이(840)에 연결되며, 칼럼 어드레스(Y_ADDR)에 응답하여 비트 라인들 중 적어도 하나를 선택할 수 있다.
프로그램/리드 회로(860)는 프로그램 회로(863) 및 리드 회로(865)를 포함할 수 있다. 프로그램 회로(863)는 컬럼 디코더(850)를 통해 선택된 비트 라인(BL)에 연결되어 메모리 셀 어레이(840)의 선택된 메모리 셀에 프로그램 펄스를 제공함으로써 프로그램 동작(즉, data write operation)을 수행할 수 있다. 리드 회로(865)는 칼럼 디코더(850)를 통해 선택된 BL에 연결되고, 메모리 셀 어레이(840)의 선택된 메모리 셀의 레벨을 센싱하여 저장된 데이터(data)를 리드(출력)할 수 있다. 또한 리드회로(865)는 데이터(data)를 메모리 장치(750)의 외부로, 예를 들어, 컨트롤러(700)에 출력할 수 있다.
전압 공급부(820)는 메모리 제어부(810)의 전압 제어에 기반하여 메모리 셀 어레이(840)에 대한 프로그램, 리드 및 소거(erase) 동작을 수행하기 위한 다양한 유형의 전압들을 생성할 수 있다. 또한 전압 공급부(820)는 복수의 워드 라인들(WL) 및 비트 라인들(BL)을 구동하기 위한 구동 전압(또는 바이어스 전압), 예컨대 셋 프로그램 전압, 리셋 전압, 리드 전압, 차단 전압들을 생성할 수 있다.
메모리 제어부(810)은 컨트롤러(700)로부터 수신한 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 하여, 메모리 셀 어레이(840)에 데이터를 프로그램하거나 메모리 셀 어레이(840)로부터 데이터를 리드하기 위한 전압 제어 신호들을 상기 전압공급부(820)에 출력할 수 있다. 또한 메모리 제어부(810)에서 컨트롤러(700)에서 출력되는 동작 제어 신호들은 프로그램/리드 회로(860), 전압 공급부(820), 로우 디코더(830) 및 컬럼 디코더(850)에 제공할 수 있다. 메모리 제어부(810)은 메모리 장치(750) 내의 동작들을 전반적으로 제어할 수 있다.
도 9는 본 발명의 다양한 실시예들에 따른 메모리 시스템이 맵 테이블을 검색하는 동작을 도시하는 흐름도이다.
도 9를 참조하면, 맵 테이블은 호스트(790) 영역의 LBA와 제2 메모리(750)의 PBA를 저장하는 테이블이 될 수 있다. 맵 테이블은 빠른 억세스를 위해 제2 메모리(예를들면, SRAM)에 저장될 수 있으며, 전원이 오프 등에 대비하여 제1 메모리(750)에도 저장될 수 있다. 이런 경우, 전원이 온되면 제1 메모리(750)에 저장된 맵 테이블은 제2 메모리(740)에 로딩되어 저장될 수 있다. 맵 테이블은 호스트(790)에 의해 컨트롤러(700)이 제1 메모리(750)을 억세스(예를들면 data write 등)하거나, 이레이즈(erase), 가비지 컬렉션(garbage collection), 웨어 레벨링(wear leveling) 등에 의해 변경될 수 있다. 즉, 컨트롤러(700)은 제1 메모리(750)의 저장 상태에 변경이 발생되면, 제2 메모리(740)의 맵테이블에 변경된 LBA 및/또는 PBA를 갱신시킬 수 있다.
컨트롤러(700)는 제1 메모리(750)의 상태를 확인하기 위하여 제2 메모리(740)의 맵 테이블을 검색할 수 있다. 컨트롤러(700)는 FTL 에서 맵 테이블을 관리할 때 갱신(update)되는 정보를 맵 테이블의 어드레스 정방향으로 순서대로 저장할 수 있다. 예를드면, 컨트롤러(700)는 맵 테이블의 어드레스를 증가시키면서 갱신된 어드레스 정보들을 저장할 수 있다. 이때 컨트롤러(예를들면, FTL)(700)가 어느 시점에서 맵테이블의 특정 데이터를 검색할 수 있다. 맵테이블을 검색할 때 검색할 데이터가 최근에 갱신된 데이터인 경우에는 갱신된 순서의 역순으로 검색(역방향 검색)이 효과적일 수 있다. 즉 컨트롤러(700)는 제2 메모리(740)의 맵테이블에 저장된 데이터들을 역방향 검색할 수 있다.
프로세서(710)는 911단계에서 검색부(730)에 검색 요청 정보(search request information)를 전송할 수 있다. 검색 요청 정보는 제2 메모리(740)의 맵 테이블의 어드레스 정보(예를들면 검색 영역 정보), 검색 방향(역방향 검색 또는 정방향 검색), 검색 패턴(LBA 및/또는 PBA) 등의 정보를 포함할 수 있다. 검색 요청 정보를 수신하는 검색부(730)는 913 단계에서 검색 방향을 설정할 수 있다. 예를들면, 역방향 검색이면 검색부(730)은 913단계에서 역방향 DMA 억세스 방법을 설정할 수 있다. 검색부(730)은 913단계에서 검색 요청 정보에 포함된 어드레스 정보에 기반하여 맵테이블의 검색 영역을 설정하고, 검색 영역의 데이터들을 억세스하기 위한 그룹 영역들을 설정할 수 있다. 그룹 영역은 도 2의 211 - 213과 같이 버퍼(도 1의 버퍼(130))의 뎁스(depth) 크기로 설정될 수 있다.
이후 검색부(730)는 921 단계에서 제2 메모리(740)의 맵 테이블에서 데이터를 리드할 수 있다. 이때 리드되는 데이터는 선택된 그룹 영역에서 제1 방향(예를들면 선택된 그룹 영역에서 어드레스가 증가되는 방향)으로 데이터를 순차적으로 리드할 수 있다. 선택된 그룹 영역의 마지막 어드레스 위치에 데이터를 리드하면, 검색부(730)는 맵 테이블의 다음 그룹 영역을 선택하고, 선택된 그룹 영역의 어드레스를 제1 방향으로 증가시키면서 데이터를 리드할 수 있다.
검색부(730)는 923 단계에서 버퍼를 지그재그 제어하여 제2 메모리(740)의 맵 테이블에서 리드되는 데이터를 버퍼에 버퍼링할 수 있다. 검색부(730)에서 수행하는 921단계 및 923 단계의 동작은 도 2 - 도 4에 도시된 바와 같은 방법으로 수행될 수 있으며, 그 동작 절차는 도 5 및 도 6과 같은 절차로 수행될 수 있다.
예를들면, DMA 제어기(예를들면, 도 1의 DMA 제어기(120))는 맵 테이블의 홀수 그룹 영역에서 리드되는 데이터들을 버퍼(예를들면, 도 1의 버퍼(130))에 제1 방향(어드레스가 증가하는 방향, 정방향)으로 라이트하며, 짝수 그룹 영역에서 리드되는 데이터들을 버퍼에 제2 방향(어드레스가 감소하는 방향, 역방향)으로 라이트할 수 있다. 그리고 검색 모듈(예를들면, 도 1의 처리 모듈(140))은 버퍼에 라이트된 홀수 그룹의 데이터들을 제2 방향(어드레스가 감소하는 방향, 역방향)으로 리드할 수 있으며, 짝수 그룹의 데이터들을 제1 방향(어드레스가 증가하는 방향, 정방향)으로 리드할 수 있다.
그리고 검색부(730)는 925단계에서 버퍼에서 리드되는 데이터들을 검색하며, 프로세서(710)에서 요청한 검색 패턴의 데이터가 검색되면 825 단계에서 검색된 데이터를 프로세서(710)에 전송할 수 있다.
본 발명의 다양한 실시예들에 따른 직접 메모리 억세스(direct memory access, DMA) 장치의 억세스 방법은, 메모리의 데이터를 리드하기 위한 그룹 영역들을 설정하는 단계와, 홀수 번째 그룹 영역이면, 상기 제2 메모리에서 해당 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제1 방향으로 라이트하고, 상기 버퍼에 기록된 홀수번째 그룹영역의 데이터를 상기 제2 방향으로 리드하는 제1 억세스 단계 및 짝수 번째 그룹 영역이면, 상기 제2 메모리에서 해당 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제2 방향으로 라이트하고, 상기 버퍼에 기록된 짝수번째 그룹의 데이터를 상기 제1 방향으로 리드하는 제2 억세스 단계를 포함할 수 있다. 여기서 상기 제1 방향은 상기 버퍼의 포인터가 증가하는 정방향이고 상기 제2 방향은 상기 버퍼의 포인터가 감소하는 역방향이 될 수 있다.
상기 버퍼는 상기 메모리의 그룹 영역 사이즈와 같은 크기를 가질 수 있다. 그리고 상기 제1 억세스 단계 또는 제2 억세스 단계는, 설정된 방향으로 상기 버퍼의 라이트 포인터를 변경하면서 데이터를 라이트하는 단계와, 상기 버퍼에 데이터 라이트를 완료하면 버퍼 풀 신호를 발생하고, 상기 설정 방향을 역방향으로 설정하는 단계 및 상기 리더는 버퍼 풀 신호가 인식되면 상기 DMA의 라이트 방향과 역방향으로 상기 버퍼의 데이터를 리드하는 단계를 포함할 수 있다. 상기 라이트 단계는, 상기 버퍼 풀 신호를 출력한 후, 상기 버퍼의 데이터가 리드되면 상기 버퍼의 라이트 포인터 진행 방향을 반전시키는 단계 및 상기 설정된 방향으로 상기 버퍼에 데이터 라이트를 재개하는 단계를 더 포함할 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
Claims (16)
- 호스트의 제어하에 제1 메모리를 제어하는 메모리 제어장치에 있어서,
제2 메모리;
상기 제2 메모리에 저장된 데이터의 검색을 요청하는 프로세서; 및
상기 프로세서의 검색 요청 데이터에 기반하여 상기 제2 메모리에 저장된 데이터를 역방향으로 검색하는 검색부를 포함하고,
상기 검색부는
버퍼;
상기 검색 요청에 기반하여 상기 제2 메모리의 데이터를 리드하기 위한 그룹 영역들을 설정하고,
매 홀수 번째 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제1 방향으로 라이트하고, 매 짝수번째 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제2 방향으로 라이트하는 DMA 제어기; 및
상기 버퍼에 기록된 매 홀수번째 그룹영역의 데이터를 상기 제2 방향으로 리드하고, 매 짝수번째 그룹 영역의 데이터를 상기 제1 방향으로 리드하며, 리드된 데이터들을 분석하여 검색 결과를 상기 프로세서에 전송하는 검색 모듈을 포함하며,
상기 제1 방향은 상기 버퍼의 포인터가 증가하는 정방향이고 상기 제2 방향은 상기 버퍼의 포인터가 감소하는 역방향인 장치. - 제1항에 있어서,
상기 제2 메모리는 호스트의 논리 어드레스 및 상기 제1 메모리의 물리 어드레스를 매핑하는 맵 테이블을 포함하며,
상기 검색 요청 데이터는 상기 맵 테이블의 데이터인 장치.
- 제2항에 있어서,
상기 검색 요청 데이터는
역방향 검색, 맵테이블의 검색 위치 정보 및 검색 패턴을 포함하는 장치.
- 제3항에 있어서,
상기 검색 패턴은 논리 어드레스 또는 물리 어드레스 데이터이며,
상기 검색 모듈은 상기 버퍼에서 억세스되는 데이터를 분석하여 상기 검색 패턴과 동일한 데이터를 상기 프로세서에 전송하는 장치.
- 제2항에 있어서,
상기 DMA 제어기는 설정된 방향으로 상기 버퍼의 라이트 포인터를 변경하면서 데이터를 라이트하며 상기 버퍼에 데이터 라이트를 완료하면 버퍼 풀 신호를 발생하고, 상기 설정 방향을 역방향으로 설정하며,
상기 검색 모듈은 버퍼 풀 신호가 인식되면 상기 DMA의 라이트 방향과 역방향으로 상기 버퍼의 데이터를 리드하는 장치.
- 제5항에 있어서,
상기 버퍼는 상기 그룹 영역의 데이터 사이즈와 같은 크기를 가지는 장치.
- 직접 메모리 억세스(direct memory access, DMA) 장치에 있어서,
메모리;
버퍼;
상기 메모리의 데이터를 리드하기 위한 그룹 영역들을 설정하고,
매 홀수 번째 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제1 방향으로 라이트하고, 매 짝수번째 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제2 방향으로 라이트하는 DMA 제어기; 및
상기 버퍼에 기록된 매 홀수번째 그룹영역의 데이터를 상기 제2 방향으로 리드하고, 매 짝수번째 그룹 영역의 데이터를 상기 제1 방향으로 리드하는 리더 모듈을 포함하며,
상기 제1 방향은 상기 버퍼의 포인터가 증가하는 정방향이고 상기 제2 방향은 상기 버퍼의 포인터가 감소하는 역방향인 장치.
- 제7항에 있어서,
상기 버퍼는 상기 메모리의 그룹 영역 사이즈와 같은 크기를 가지는 장치.
- 제8항에 있어서,
상기 DMA는 설정된 방향으로 상기 버퍼의 라이트 포인터를 변경하면서 데이터를 라이트하며 상기 버퍼에 데이터 라이트를 완료하면 버퍼 풀 신호를 발생하고, 상기 설정 방향을 역방향으로 설정하며,
상기 리더는 버퍼 풀 신호가 인식되면 상기 DMA의 라이트 방향과 역방향으로 상기 버퍼의 데이터를 리드하는 장치.
- 제9항에 있어서,
상기 DMA는 상기 버퍼 풀 신호를 출력한 후, 상기 리더 모듈에 의해 상기 버퍼의 데이터가 리드되면 상기 버퍼의 라이트 포인터 진행 방향을 반전시키고, 상기 설정된 방향으로 상기 버퍼에 데이터 라이트를 재개하는 장치. - 내부의 제2 메모리를 구비하며, 호스트의 요청에 의해 대용량의 제1 메모리의 동작을 제어하는 메모리 제어장치의 동작 방법에 있어서,
상기 제2 메모리의 검색 요청 데이터에 기반하여 상기 제2 메모리의 데이터를 리드하기 위한 그룹 영역들을 설정하는 단계;
홀수 번째 그룹 영역이면, 상기 제2 메모리에서 해당 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제1 방향으로 라이트하고, 상기 버퍼에 기록된 홀수번째 그룹영역의 데이터를 상기 제2 방향으로 리드하는 제1 억세스 단계;
짝수 번째 그룹 영역이면, 상기 제2 메모리에서 해당 그룹 영역의 데이터를 제1 방향으로 리드하여 상기 버퍼에 제2 방향으로 라이트하고, 상기 버퍼에 기록된 짝수번째 그룹의 데이터를 상기 제1 방향으로 리드하는 제2 억세스 단계; 및
상기 리드된 데이터들을 분석하며, 검색 결과를 상기 프로세서에 전송하는 검색 단계를 포함하며,
상기 제1 방향은 상기 버퍼의 포인터가 증가하는 정방향이고 상기 제2 방향은 상기 버퍼의 포인터가 감소하는 역방향인 방법.
- 제11항에 있어서,
상기 제2 메모리는 호스트의 논리 어드레스 및 상기 제1 메모리의 물리 어드레스를 매핑하는 맵 테이블을 포함하며,
상기 검색 요청 데이터는 상기 맵 테이블의 데이터인 방법.
- 제12항에 있어서,
상기 검색 요청 데이터는
역방향 검색, 맵테이블의 검색 위치 정보 및 검색 패턴을 포함하는 방법.
- 제3항에 있어서,
상기 검색 패턴은 논리 어드레스 또는 물리 어드레스 데이터이며,
상기 검색 단계는 상기 버퍼에서 억세스되는 데이터를 분석하여 상기 검색 패턴과 동일한 데이터를 상기 프로세서에 전송하는 방법.
- 제12항에 있어서,
상기 제1 억세스 단계 또는 제2 억세스 단계는
설정된 방향으로 상기 버퍼의 라이트 포인터를 변경하면서 데이터를 라이트하는 단계;
상기 버퍼에 데이터 라이트를 완료하면 버퍼 풀 신호를 발생하고, 상기 설정 방향을 역방향으로 설정하는 단계; 및,
상기 버퍼 풀 신호가 인식되면 상기 DMA의 라이트 방향과 역방향으로 상기 버퍼의 데이터를 리드하는 단계를 포함하는 방법.
- 제15항에 있어서,
상기 버퍼는 상기 그룹 영역의 데이터 사이즈와 같은 크기를 가지는 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160147452A KR20180050883A (ko) | 2016-11-07 | 2016-11-07 | 메모리 데이터 억세스 장치 및 방법 |
US15/641,946 US10282328B2 (en) | 2016-11-07 | 2017-07-05 | Apparatus having direct memory access controller and method for accessing data in memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160147452A KR20180050883A (ko) | 2016-11-07 | 2016-11-07 | 메모리 데이터 억세스 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180050883A true KR20180050883A (ko) | 2018-05-16 |
Family
ID=62064643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160147452A KR20180050883A (ko) | 2016-11-07 | 2016-11-07 | 메모리 데이터 억세스 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10282328B2 (ko) |
KR (1) | KR20180050883A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11429530B2 (en) | 2019-07-30 | 2022-08-30 | SK Hynix Inc. | Data storage device and operating method thereof |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11610111B2 (en) * | 2018-10-03 | 2023-03-21 | Northeastern University | Real-time cognitive wireless networking through deep learning in transmission and reception communication paths |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2502403B2 (ja) * | 1990-07-20 | 1996-05-29 | 三菱電機株式会社 | Dma制御装置 |
US5870627A (en) * | 1995-12-20 | 1999-02-09 | Cirrus Logic, Inc. | System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue |
US20060155895A1 (en) * | 2004-12-10 | 2006-07-13 | Fujitsu Limited | Data transferring apparatus and data transferring method |
JP4974078B2 (ja) * | 2007-07-26 | 2012-07-11 | Necアクセステクニカ株式会社 | データ処理装置 |
KR100922290B1 (ko) | 2007-12-28 | 2009-10-15 | 엘에스산전 주식회사 | 저장 공간 분할을 이용한 디엠에이 버퍼 관리 방법 및장치, 메인루틴에서의 디엠에이 데이터 처리 방법 및 장치 |
US8949569B2 (en) * | 2008-04-30 | 2015-02-03 | International Business Machines Corporation | Enhanced direct memory access |
KR101579592B1 (ko) * | 2009-12-03 | 2015-12-22 | 삼성전자 주식회사 | 직접 메모리 액세스 컨트롤러 및 직접 메모리 액세스 컨트롤러의 동작 방법 |
KR102107723B1 (ko) | 2012-12-03 | 2020-05-07 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
-
2016
- 2016-11-07 KR KR1020160147452A patent/KR20180050883A/ko not_active Application Discontinuation
-
2017
- 2017-07-05 US US15/641,946 patent/US10282328B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11429530B2 (en) | 2019-07-30 | 2022-08-30 | SK Hynix Inc. | Data storage device and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
US10282328B2 (en) | 2019-05-07 |
US20180129621A1 (en) | 2018-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9658955B2 (en) | Data storage device and operating method thereof | |
KR102704776B1 (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
US11630766B2 (en) | Memory system and operating method thereof | |
KR102714135B1 (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
US9727250B2 (en) | Nonvolatile memory system and operation method of a memory controller that manages page serial numbers according to program elapsed times of pages | |
US20150098271A1 (en) | System and method of storing data in a data storage device | |
KR20160078611A (ko) | 불휘발성 메모리 시스템 및 그것의 동작 방법 | |
US11334493B2 (en) | Memory system and operating method thereof | |
KR20180041898A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US20160062883A1 (en) | Data storage device and operating method thereof | |
KR20210070054A (ko) | 저장 장치 및 그 동작 방법 | |
KR20200137244A (ko) | 메모리 시스템 및 그것의 동작방법 | |
KR20200077276A (ko) | 저장 장치 및 그 동작 방법 | |
KR102691784B1 (ko) | 메모리 시스템 및 그것의 동작방법 | |
KR20210157544A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
US11645008B2 (en) | Memory system and operating method thereof for controlling a multi-plane read operation | |
US10282328B2 (en) | Apparatus having direct memory access controller and method for accessing data in memory | |
US11520519B2 (en) | Storage device and method of operating the same | |
KR20220037638A (ko) | 맵 캐시를 포함하는 컨트롤러 및 이를 포함하는 메모리 시스템 | |
KR20210085499A (ko) | 저장 장치 및 그 동작 방법 | |
US11755247B2 (en) | Storage device and operating method thereof | |
KR102724610B1 (ko) | 저장 장치 및 그 동작 방법 | |
KR20210142477A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR20230048769A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR20230139153A (ko) | 메모리 컨트롤러를 포함하는 저장 장치 및 그 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal |