KR20200088713A - 메모리 컨트롤러 및 그 동작 방법 - Google Patents
메모리 컨트롤러 및 그 동작 방법 Download PDFInfo
- Publication number
- KR20200088713A KR20200088713A KR1020190005361A KR20190005361A KR20200088713A KR 20200088713 A KR20200088713 A KR 20200088713A KR 1020190005361 A KR1020190005361 A KR 1020190005361A KR 20190005361 A KR20190005361 A KR 20190005361A KR 20200088713 A KR20200088713 A KR 20200088713A
- Authority
- KR
- South Korea
- Prior art keywords
- map data
- map
- host
- segment
- memory
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
도 2는 도 1의 메모리 장치의 구조를 설명하기 위한 도면이다.
도 3은 도 2의 메모리 셀 어레이의 일 실시 예를 나타낸 도면이다.
도 4는 도 3의 메모리 블록들(BLK1~BLKz) 중 어느 하나의 메모리 블록(BLKa)을 보여주는 회로도이다.
도 5는 도 3의 메모리 블록들(BLK1~BLKz) 중 어느 하나의 메모리 블록(BLKb)의 다른 실시 예를 보여주는 회로도이다.
도 6은 실시 예에 따른 메모리 컨트롤러의 구성 및 동작을 설명하기 위한 도면이다.
도 7은 호스트와 저장 장치 간의 통신을 설명하기 위한 도면이다.
도 8은 실시 예에 따른 맵 데이터의 구조를 설명하기 위한 도면이다.
도 9는 실시 예에 따른 맵 데이터 관리 동작을 설명하기 위한 도면이다.
도 10은 다른 실시 예에 따른 맵 데이터 서브 세그먼트를 제공하는 동작을 설명하기 위한 도면이다.
도 11은 다른 실시 예에 따른 맵 데이터 세그먼트를 삭제하는 동작을 설명하기 위한 도면이다.
도 12는 실시 예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 순서도이다.
도 13은 실시 예에 따른 제공될 맵 데이터 서브 세그먼트 결정 동작을 설명하기 위한 순서도이다.
도 14는 다른 실시 예에 따른 제공될 맵 데이터 서브 세그먼트 결정 동작을 설명하기 위한 순서도이다.
도 15는 실시 예에 따른 삭제될 맵 데이터 세그먼트 정보 생성 동작을 설명하기 위한 순서도이다.
도 16은 다른 실시 예에 따른 삭제될 맵 데이터 세그먼트 정보 생성 동작을 설명하기 위한 순서도이다.
도 17은 도 1의 메모리 컨트롤러의 다른 실시 예를 설명하기 위한 도면이다.
도 18은 본 발명의 실시 예에 따른 저장 장치가 적용된 메모리 카드 시스템을 보여주는 블록도이다.
도 19는 본 발명의 실시 예에 따른 저장 장치가 적용된 SSD(Solid State Drive) 시스템을 보여주는 블록도이다.
도 20은 본 발명의 실시 예에 따른 저장 장치가 적용된 사용자 시스템을 보여주는 블록도이다.
100: 메모리 장치
200: 메모리 컨트롤러
210: 맵 캐시
220: 맵 데이터 관리부
300: 호스트
310: 호스트 메모리
Claims (28)
- 메모리 장치를 제어하는 메모리 컨트롤러에 있어서,
상기 메모리 장치의 물리 주소에 대응되는 논리 주소는 복수의 영역들로 구분되고,
상기 복수의 영역들 각각에 포함되는 복수의 서브 영역들에 대응되는 복수의 맵 데이터 서브 세그먼트들 중 적어도 하나의 맵 데이터 서브 세그먼트를 저장하는 맵 캐시; 및
상기 복수의 맵 데이터 서브 세그먼트들 중 상기 메모리 장치에 대한 리드 카운트를 기초로 결정된 외부 호스트에 제공될 맵 데이터 서브 세그먼트에 관한 정보를 생성하고, 상기 외부 호스트에 저장된 적어도 하나의 맵 데이터 세그먼트 중 상기 메모리 장치에 대한 리드 카운트 및 상기 외부 호스트의 메모리 공간을 기초로 결정된, 상기 외부 호스트에서 삭제될 맵 데이터 세그먼트에 관한 정보를 생성하는 맵 데이터 관리부;를 포함하고,
상기 적어도 하나의 맵 데이터 세그먼트는,
상기 복수의 영역들 중 적어도 하나의 영역에 대응되는 맵 데이터 세그먼트인 메모리 컨트롤러.
- 제 1항에 있어서, 상기 맵 데이터 관리부는,
상기 적어도 하나의 맵 데이터 서브 세그먼트에 대한 리드 카운트를 포함하는 맵 캐시 관리 정보 및 상기 적어도 하나의 맵 데이터 세그먼트에 대한 리드 카운트를 포함하는 호스트 맵 관리 정보를 생성하고, 상기 외부 호스트로부터 리드 요청을 수신하면, 상기 맵 캐시 관리 정보 및 상기 호스트 맵 관리 정보를 갱신하는 맵 관리 정보 처리부;
상기 맵 캐시 관리 정보 및 상기 호스트 맵 관리 정보를 저장하는 맵 관리 정보 저장부; 및
상기 맵 캐시 관리 정보를 기초로, 상기 맵 캐시에 저장된 상기 적어도 하나의 맵 데이터 서브 세그먼트 중 퇴거될 맵 데이터 서브 세그먼트를 상기 제공될 맵 데이터 서브 세그먼트로 결정하고, 상기 제공될 맵 데이터 서브 세그먼트에 관한 정보를 생성하는 맵 데이터 처리부;를 포함하는 메모리 컨트롤러.
- 제 2항에 있어서, 상기 맵 데이터 처리부는,
상기 외부 호스트의 메모리 공간에 저장된 맵 데이터 세그먼트의 개수가 임계 값과 동일하면, 상기 제공될 맵 데이터 서브 세그먼트에 관한 정보 및 상기 호스트 맵 관리 정보를 기초로, 상기 삭제될 맵 데이터 세그먼트에 관한 정보를 생성하는 메모리 컨트롤러.
- 제 3항에 있어서, 상기 맵 데이터 처리부는,
상기 제공될 맵 데이터 서브 세그먼트의 리드 카운트가 상기 삭제될 맵 데이터 세그먼트의 리드 카운트보다 크면, 상기 삭제될 맵 데이터 세그먼트에 관한 정보를 생성하는 메모리 컨트롤러.
- 제 4항에 있어서, 상기 삭제될 맵 데이터 세그먼트는,
상기 적어도 하나의 맵 데이터 세그먼트 중 가장 낮은 리드 카운트를 갖는 맵 데이터 세그먼트인 메모리 컨트롤러.
- 제 3항에 있어서, 상기 맵 관리 정보 처리부는,
상기 적어도 하나의 맵 데이터 세그먼트 각각에 대응되는 맵 데이터 서브 세그먼트들이 노멀 맵 데이터 서브 세그먼트인지 아닌지 여부를 나타내는 호스트 맵 상태 정보를 생성하고, 상기 제공될 맵 데이터 서브 세그먼트가 상기 외부 호스트에 저장되거나, 상기 삭제될 맵 데이터 세그먼트가 상기 외부 호스트에서 삭제되거나, 상기 외부 호스트에 저장된 노멀 맵 데이터 서브 세그먼트가 더티 맵 데이터 서브 세그먼트로 변경되면, 상기 호스트 맵 상태 정보를 갱신하고,
상기 맵 관리 정보 저장부는,
상기 호스트 맵 상태 정보를 저장하는 메모리 컨트롤러.
- 제 6항에 있어서, 상기 호스트 맵 상태 정보는,
상기 노멀 맵 데이터 서브 세그먼트를 나타내는 논리 값과 상기 더티 맵 데이터 서브 세그먼트 또는 빈 맵 데이터 서브 세그먼트를 나타내는 논리 값이 상반되는 비트맵 정보인 메모리 컨트롤러.
- 제 6항에 있어서, 상기 맵 데이터 처리부는,
상기 제공될 맵 데이터 서브 세그먼트의 리드 카운트가 상기 삭제될 맵 데이터 세그먼트의 리드 카운트보다 크고, 상기 호스트 맵 상태 정보를 기초로 판단된 상기 삭제될 맵 데이터 세그먼트에 포함된 노멀 맵 데이터 서브 세그먼트의 개수가 미리 설정된 개수보다 작으면, 상기 삭제될 맵 데이터 세그먼트에 관한 정보를 생성하는 메모리 컨트롤러.
- 제 1항에 있어서, 상기 맵 데이터 관리부는,
상기 복수의 맵 데이터 서브 세그먼트들 각각에 대한 리드 카운트들을 포함하는 메모리 장치 맵 관리 정보 및 상기 적어도 하나의 맵 데이터 세그먼트에 대한 리드 카운트를 포함하는 호스트 맵 관리 정보를 생성하고, 상기 외부 호스트로부터 리드 요청을 수신하면, 상기 메모리 장치 맵 관리 정보를 갱신하는 맵 관리 정보 처리부;
상기 메모리 장치 맵 관리 정보를 저장하는 맵 관리 정보 저장부; 및
상기 메모리 장치 맵 관리 정보를 기초로, 상기 제공될 맵 데이터 서브 세그먼트를 결정하고, 상기 제공될 맵 데이터 서브 세그먼트에 관한 정보를 생성하는 맵 데이터 처리부;를 포함하는 메모리 컨트롤러.
- 제 9항에 있어서, 상기 리드 카운트는,
각 맵 데이터 서브 세그먼트에 포함된 물리 주소에 저장된 데이터 중 미리 설정된 크기의 데이터에 대한 리드 동작이 카운트된 횟수인 메모리 컨트롤러.
- 제 10항에 있어서, 상기 맵 데이터 처리부는,
상기 복수의 맵 데이터 서브 세그먼트들 중 미리 설정된 횟수보다 큰 리드 카운트를 갖는 맵 데이터 서브 세그먼트를 상기 제공될 맵 데이터 서브 세그먼트로 결정하는 메모리 컨트롤러.
- 제 11항에 있어서, 상기 맵 데이터 처리부는,
상기 복수의 맵 데이터 서브 세그먼트들 중 가장 높은 리드 카운트를 갖는 맵 데이터 서브 세그먼트를 상기 제공될 맵 데이터 서브 세그먼트로 결정하는 메모리 컨트롤러.
- 제 10항에 있어서, 상기 맵 데이터 처리부는,
상기 외부 호스트의 메모리 공간에 저장된 맵 데이터 세그먼트의 개수가 임계 값과 동일하면, 상기 제공될 맵 데이터 서브 세그먼트에 관한 정보 및 상기 호스트 맵 관리 정보를 기초로, 상기 삭제될 맵 데이터 세그먼트에 관한 정보를 생성하는 메모리 컨트롤러.
- 제 13항에 있어서, 상기 맵 데이터 처리부는,
상기 제공될 맵 데이터 서브 세그먼트의 리드 카운트가 상기 삭제될 맵 데이터 세그먼트의 리드 카운트보다 크면, 상기 삭제될 맵 데이터 세그먼트에 관한 정보를 생성하는 메모리 컨트롤러.
- 제 14항에 있어서, 상기 삭제될 맵 데이터 세그먼트는,
상기 적어도 하나의 맵 데이터 세그먼트 중 가장 낮은 리드 카운트를 갖는 맵 데이터 세그먼트인 메모리 컨트롤러.
- 제 13항에 있어서, 상기 맵 관리 정보 처리부는,
상기 적어도 하나의 맵 데이터 세그먼트 각각에 대응되는 맵 데이터 서브 세그먼트들이 노멀 맵 데이터 서브 세그먼트인지 아닌지 여부를 나타내는 호스트 맵 상태 정보를 생성하고, 상기 제공될 맵 데이터 서브 세그먼트가 상기 외부 호스트에 저장되거나, 상기 삭제될 맵 데이터 세그먼트가 상기 외부 호스트에서 삭제되거나, 상기 외부 호스트에 저장된 노멀 맵 데이터 서브 세그먼트가 더티 맵 데이터 서브 세그먼트로 변경되면, 상기 호스트 맵 상태 정보를 갱신하고,
상기 맵 관리 정보 저장부는,
상기 호스트 맵 상태 정보를 저장하는 메모리 컨트롤러.
- 제 16항에 있어서, 상기 호스트 맵 상태 정보는,
상기 노멀 맵 데이터 서브 세그먼트를 나타내는 논리 값과 상기 더티 맵 데이터 서브 세그먼트 또는 빈 맵 데이터 서브 세그먼트를 나타내는 논리 값이 상반되는 비트맵 정보인 메모리 컨트롤러.
- 제 16항에 있어서, 상기 맵 데이터 처리부는,
상기 제공될 맵 데이터 서브 세그먼트의 리드 카운트가 상기 삭제될 맵 데이터 세그먼트의 리드 카운트보다 크고, 상기 호스트 맵 상태 정보를 기초로 판단된 상기 삭제될 맵 데이터 세그먼트에 포함된 노멀 맵 데이터 서브 세그먼트의 개수가 미리 설정된 개수보다 작으면, 상기 삭제될 맵 데이터 세그먼트에 관한 정보를 생성하는 메모리 컨트롤러.
- 제 1항에 있어서, 상기 맵 데이터 관리부는,
상기 외부 호스트의 읽기 요청 또는 쓰기 요청을 수신하면, 호스트 맵 갱신 정보를 포함하는 응답을 상기 외부 호스트에 제공하고,
상기 호스트 맵 갱신 정보는,
상기 제공될 맵 데이터 서브 세그먼트에 관한 정보 및 상기 삭제될 맵 데이터 세그먼트에 관한 정보 중 적어도 하나를 포함하는 메모리 컨트롤러.
- 제 1항에 있어서, 상기 맵 데이터 관리부는,
상기 외부 호스트의 맵 데이터 요청에 응답하여, 상기 결정된 맵 데이터 서브 세그먼트를 상기 외부 호스트에 제공하는 메모리 컨트롤러.
- 메모리 장치를 제어하고, 복수의 맵 데이터 서브 세그먼트들 중 적어도 하나의 맵 데이터 서브 세그먼트를 저장하는 맵 캐시를 포함하는 메모리 컨트롤러의 동작 방법에 있어서,
상기 복수의 맵 데이터 서브 세그먼트들 중 상기 메모리 장치에 대한 리드 카운트를 기초로 외부 호스트에 제공될 맵 데이터 서브 세그먼트에 관한 정보를 생성하는 단계; 및
상기 외부 호스트에 저장된 적어도 하나의 맵 데이터 세그먼트 중, 상기 메모리 장치에 대한 리드 카운트 및 상기 외부 호스트의 메모리 공간을 기초로 상기 외부 호스트에서 삭제될 맵 데이터 세그먼트에 관한 정보를 생성하는 단계;를 포함하고,
상기 메모리 장치의 물리 주소에 대응되는 논리 주소는 복수의 서브 영역들을 각각 포함하는 복수의 영역들로 구분되고,
상기 적어도 하나의 맵 데이터 세그먼트는,
상기 복수의 영역들 중 적어도 하나의 영역에 대응되는 맵 데이터 세그먼트이고,
상기 복수의 맵 데이터 서브 세그먼트들은,
상기 복수의 서브 영역들 각각에 대응되는 맵 데이터 서브 세그먼트들인 메모리 컨트롤러의 동작 방법.
- 제 21항에 있어서,
상기 제공될 맵 데이터 서브 세그먼트에 관한 정보 및 상기 삭제될 맵 데이터 세그먼트에 관한 정보 중 적어도 하나를 포함하는 호스트 맵 갱신 정보를 상기 외부 호스트에 제공하는 단계;를 더 포함하는 메모리 컨트롤러의 동작 방법.
- 제 22항에 있어서, 상기 제공될 맵 데이터 서브 세그먼트에 관한 정보를 생성하는 단계는,
상기 적어도 하나의 맵 데이터 서브 세그먼트에 대한 리드 카운트를 기초로, 상기 적어도 하나의 맵 데이터 서브 세그먼트 중 상기 제공될 맵 데이터 서브 세그먼트를 결정하는 단계를 포함하는 메모리 컨트롤러의 동작 방법.
- 제 23항에 있어서, 상기 삭제될 맵 데이터 세그먼트에 관한 정보를 생성하는 단계는,
상기 외부 호스트의 메모리 공간에 저장된 맵 데이터 세그먼트의 개수가 임계 값과 동일한지 판단하는 단계; 및
상기 저장된 맵 데이터 세그먼트의 개수가 상기 임계 값과 동일하면, 상기 제공될 맵 데이터 서브 세그먼트의 리드 카운트 및 상기 삭제될 맵 데이터 세그먼트의 리드 카운트를 비교하는 단계; 를 포함하고,
상기 제공될 맵 데이터 서브 세그먼트의 리드 카운트가 상기 삭제될 맵 데이터 세그먼트의 리드 카운트보다 크면, 상기 삭제될 맵 데이터 세그먼트에 관한 정보를 생성하는 메모리 컨트롤러의 동작 방법.
- 제 22항에 있어서, 상기 제공될 맵 데이터 서브 세그먼트에 관한 정보를 생성하는 단계는,
상기 복수의 맵 데이터 세그먼트들 각각에 대한 리드 카운트들을 기초로, 상기 제공될 맵 데이터 서브 세그먼트를 결정하는 단계를 포함하고,
상기 리드 카운트는,
각 맵 데이터 서브 세그먼트에 포함된 물리 주소에 저장된 데이터 중 미리 설정된 크기의 데이터에 대한 리드 동작이 카운트된 횟수인 메모리 컨트롤러의 동작 방법.
- 제 25항에 있어서, 상기 삭제될 맵 데이터 세그먼트에 관한 정보를 생성하는 단계는,
상기 외부 호스트의 메모리 공간에 저장된 맵 데이터 세그먼트의 개수가 임계 값과 동일한지 판단하는 단계; 및
상기 저장된 맵 데이터 세그먼트의 개수가 상기 임계 값과 동일하면, 상기 제공될 맵 데이터 서브 세그먼트의 리드 카운트 및 상기 삭제될 맵 데이터 세그먼트의 리드 카운트를 비교하는 단계; 를 포함하고,
상기 제공될 맵 데이터 서브 세그먼트의 리드 카운트가 상기 삭제될 맵 데이터 세그먼트의 리드 카운트보다 크면, 상기 삭제될 맵 데이터 세그먼트에 관한 정보를 생성하는 메모리 컨트롤러의 동작 방법.
- 제 22항에 있어서, 호스트 맵 갱신 정보를 상기 외부 호스트에 제공하는 단계는,
상기 외부 호스트로부터 쓰기 요청 또는 리드 요청을 수신하면, 상기 호스트 맵 갱신 정보를 포함하는 응답을 상기 외부 호스트에 제공하는 메모리 컨트롤러의 동작 방법.
- 제 27항에 있어서,
상기 외부 호스트의 맵 데이터 요청에 응답하여, 상기 제공될 맵 데이터 서브 세그먼트를 상기 외부 호스트에 제공하는 단계;를 더 포함하는 메모리 컨트롤러의 동작 방법.
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020190005361A KR102806973B1 (ko) | 2019-01-15 | 2019-01-15 | 메모리 컨트롤러 및 그 동작 방법 |
| US16/582,822 US11194736B2 (en) | 2019-01-15 | 2019-09-25 | Memory controller having improved map data access performance and method of operating the same |
| CN201910995028.6A CN111435289B (zh) | 2019-01-15 | 2019-10-18 | 映射数据访问性能提高的存储器控制器及其操作方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020190005361A KR102806973B1 (ko) | 2019-01-15 | 2019-01-15 | 메모리 컨트롤러 및 그 동작 방법 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20200088713A true KR20200088713A (ko) | 2020-07-23 |
| KR102806973B1 KR102806973B1 (ko) | 2025-05-15 |
Family
ID=71516369
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020190005361A Active KR102806973B1 (ko) | 2019-01-15 | 2019-01-15 | 메모리 컨트롤러 및 그 동작 방법 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11194736B2 (ko) |
| KR (1) | KR102806973B1 (ko) |
| CN (1) | CN111435289B (ko) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20230071018A (ko) * | 2021-11-15 | 2023-05-23 | 삼성전자주식회사 | 스토리지 장치 및 이의 동작 방법 |
| US12299321B2 (en) | 2021-11-15 | 2025-05-13 | Samsung Electronics Co., Ltd. | Storage device and operation method which includes a plurality of data processing engines and data processing policies |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102624620B1 (ko) * | 2018-11-02 | 2024-01-15 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
| KR102787556B1 (ko) * | 2019-02-15 | 2025-03-31 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
| KR102815402B1 (ko) * | 2019-08-05 | 2025-06-02 | 에스케이하이닉스 주식회사 | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 |
| US11449244B2 (en) | 2020-08-11 | 2022-09-20 | Silicon Motion, Inc. | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information |
| CN112181765A (zh) * | 2020-09-25 | 2021-01-05 | 武汉光庭信息技术股份有限公司 | 一种导航地图容量监控方法及系统 |
| CN112905111A (zh) * | 2021-02-05 | 2021-06-04 | 三星(中国)半导体有限公司 | 数据缓存的方法和数据缓存的装置 |
| US11782837B2 (en) * | 2021-11-04 | 2023-10-10 | Qualcomm Incorporated | Systems and methods for fast memory access |
| KR20230157080A (ko) * | 2022-05-09 | 2023-11-16 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치 및 메모리 장치를 포함하는 컴퓨팅 장치, 그리고 컴퓨팅 장치의 동작 방법 |
| KR20240018974A (ko) | 2022-08-03 | 2024-02-14 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
| US12481596B2 (en) * | 2022-12-03 | 2025-11-25 | Qualcomm Incorporated | Efficient offloading of background operations |
| KR20240101098A (ko) * | 2022-12-23 | 2024-07-02 | 에스케이하이닉스 주식회사 | 맵 정보 관리 장치 |
| US12417023B2 (en) * | 2023-08-04 | 2025-09-16 | Qualcomm Incorporated | Host device caching of flash memory address mappings |
| CN121070246A (zh) * | 2024-06-04 | 2025-12-05 | 长江存储科技有限责任公司 | 用于主机性能提升区域的动态管理的方法和装置 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20170081126A (ko) * | 2015-12-30 | 2017-07-11 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법 |
| KR20170105760A (ko) * | 2016-03-10 | 2017-09-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
Family Cites Families (44)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5630088A (en) * | 1995-03-09 | 1997-05-13 | Hewlett-Packard Company | Virtual to physical address translation |
| JP2000048496A (ja) * | 1998-07-31 | 2000-02-18 | Nec Corp | 光ディスク記録再生方法及び装置並びに光ディスク記録再生プログラムを記録した媒体 |
| JP2009181314A (ja) * | 2008-01-30 | 2009-08-13 | Toshiba Corp | 情報記録装置およびその制御方法 |
| TWI375953B (en) * | 2008-02-21 | 2012-11-01 | Phison Electronics Corp | Data reading method for flash memory, controller and system therof |
| US8190810B2 (en) * | 2008-04-18 | 2012-05-29 | Silicon Motion, Inc. | Non-volatile memory apparatus and method for accessing a non-volatile memory apparatus |
| KR101033465B1 (ko) * | 2008-12-30 | 2011-05-09 | 주식회사 하이닉스반도체 | 플래쉬 메모리 장치 및 및 이를 위한 리드동작 제어 방법 |
| US9122579B2 (en) * | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
| US9582431B2 (en) * | 2010-03-22 | 2017-02-28 | Seagate Technology Llc | Storage address space to NVM address, span, and length mapping/converting |
| WO2011143628A2 (en) * | 2010-05-13 | 2011-11-17 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
| US8543757B2 (en) * | 2010-06-23 | 2013-09-24 | Sandisk Technologies Inc. | Techniques of maintaining logical to physical mapping information in non-volatile memory systems |
| DE112011102487B4 (de) * | 2010-07-27 | 2024-07-18 | International Business Machines Corporation | Zuordnen von logischen zu physischen Adressen in Halbleiterspeichereinheiten aufweisenden Speichersystemen |
| US11232022B2 (en) * | 2010-10-29 | 2022-01-25 | Samsung Electronics Co., Ltd. | Memory system, data storage device, user device and data management method thereof having a data management information matching determination |
| JP2012203443A (ja) * | 2011-03-23 | 2012-10-22 | Toshiba Corp | メモリシステムおよびメモリシステムの制御方法 |
| US9652343B2 (en) * | 2011-09-21 | 2017-05-16 | Kevin Mark Klughart | Raid hot spare system and method |
| US9460110B2 (en) * | 2011-09-21 | 2016-10-04 | Kevin Mark Klughart | File system extension system and method |
| JP5547154B2 (ja) * | 2011-09-21 | 2014-07-09 | 株式会社東芝 | メモリ・デバイス |
| US9251086B2 (en) * | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
| US9075710B2 (en) * | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
| TWI486767B (zh) * | 2012-06-22 | 2015-06-01 | Phison Electronics Corp | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |
| WO2014045391A1 (ja) * | 2012-09-21 | 2014-03-27 | 株式会社 東芝 | 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法 |
| WO2014106871A1 (en) * | 2013-01-07 | 2014-07-10 | Hitachi, Ltd. | Storage system which realizes asynchronous remote copy using cache memory composed of flash memory, and control method thereof |
| US9195396B2 (en) * | 2013-03-14 | 2015-11-24 | SanDisk Technologies, Inc. | Estimating access frequency statistics for storage device |
| US9720717B2 (en) * | 2013-03-14 | 2017-08-01 | Sandisk Technologies Llc | Virtualization support for storage devices |
| US9519575B2 (en) * | 2013-04-25 | 2016-12-13 | Sandisk Technologies Llc | Conditional iteration for a non-volatile device |
| US9213633B2 (en) * | 2013-04-30 | 2015-12-15 | Seagate Technology Llc | Flash translation layer with lower write amplification |
| KR20150006614A (ko) | 2013-07-09 | 2015-01-19 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
| KR102088403B1 (ko) * | 2013-08-08 | 2020-03-13 | 삼성전자 주식회사 | 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법 |
| JP6102632B2 (ja) * | 2013-08-14 | 2017-03-29 | ソニー株式会社 | 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法 |
| WO2015065312A1 (en) * | 2013-10-28 | 2015-05-07 | Hitachi, Ltd. | Method and apparatus of data de-duplication for solid state memory |
| US9104325B2 (en) * | 2013-11-13 | 2015-08-11 | Infinidat Ltd. | Managing read operations, write operations and extent change operations |
| KR102156222B1 (ko) * | 2013-12-24 | 2020-09-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템 |
| JP6283771B2 (ja) * | 2015-04-28 | 2018-02-21 | 株式会社日立製作所 | ストレージ装置 |
| US10108503B2 (en) * | 2015-08-24 | 2018-10-23 | Western Digital Technologies, Inc. | Methods and systems for updating a recovery sequence map |
| US20170131947A1 (en) * | 2015-11-06 | 2017-05-11 | Pho Hoang | Data and collection methods to analyze life acceleration of SSD with real usages |
| US20170131948A1 (en) * | 2015-11-06 | 2017-05-11 | Virtium Llc | Visualization of usage impacts on solid state drive life acceleration |
| TWI585676B (zh) * | 2016-03-18 | 2017-06-01 | 慧榮科技股份有限公司 | 資料儲存裝置、記憶體控制器及其操作方法 |
| KR102667430B1 (ko) | 2016-08-04 | 2024-05-23 | 삼성전자주식회사 | 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법 |
| TWI634424B (zh) * | 2017-05-08 | 2018-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
| KR20180128588A (ko) * | 2017-05-24 | 2018-12-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
| KR102310117B1 (ko) * | 2017-07-07 | 2021-10-08 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
| US10929285B2 (en) * | 2018-02-27 | 2021-02-23 | Western Digital Technologies, Inc. | Storage system and method for generating a reverse map during a background operation and storing it in a host memory buffer |
| KR102735049B1 (ko) * | 2018-12-14 | 2024-11-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
| US11237973B2 (en) * | 2019-04-09 | 2022-02-01 | SK Hynix Inc. | Memory system for utilizing a memory included in an external device |
| KR102784548B1 (ko) * | 2019-05-15 | 2025-03-21 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치 |
-
2019
- 2019-01-15 KR KR1020190005361A patent/KR102806973B1/ko active Active
- 2019-09-25 US US16/582,822 patent/US11194736B2/en active Active
- 2019-10-18 CN CN201910995028.6A patent/CN111435289B/zh active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20170081126A (ko) * | 2015-12-30 | 2017-07-11 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법 |
| KR20170081118A (ko) * | 2015-12-30 | 2017-07-11 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법 |
| KR20170105760A (ko) * | 2016-03-10 | 2017-09-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20230071018A (ko) * | 2021-11-15 | 2023-05-23 | 삼성전자주식회사 | 스토리지 장치 및 이의 동작 방법 |
| US12299321B2 (en) | 2021-11-15 | 2025-05-13 | Samsung Electronics Co., Ltd. | Storage device and operation method which includes a plurality of data processing engines and data processing policies |
Also Published As
| Publication number | Publication date |
|---|---|
| US20200226072A1 (en) | 2020-07-16 |
| KR102806973B1 (ko) | 2025-05-15 |
| CN111435289A (zh) | 2020-07-21 |
| US11194736B2 (en) | 2021-12-07 |
| CN111435289B (zh) | 2023-07-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102806973B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
| KR102952300B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
| KR102535104B1 (ko) | 저장 장치 및 그 동작 방법 | |
| KR102736266B1 (ko) | 저장 장치 및 그 동작 방법 | |
| KR102717014B1 (ko) | 저장 장치 및 그 동작 방법 | |
| KR102781472B1 (ko) | 저장 장치, 저장 장치를 포함하는 컴퓨팅 시스템 및 그 동작 방법 | |
| KR102811446B1 (ko) | 저장 장치 및 그 동작 방법 | |
| KR102675307B1 (ko) | 저장 장치 및 그 동작 방법 | |
| KR20210070054A (ko) | 저장 장치 및 그 동작 방법 | |
| KR102724610B1 (ko) | 저장 장치 및 그 동작 방법 | |
| KR20220036468A (ko) | 저장 장치 및 그 동작 방법 | |
| KR102493323B1 (ko) | 저장 장치 및 그 동작 방법 | |
| KR102711406B1 (ko) | 메모리 장치, 메모리 컨트롤러 및 이들을 포함하는 저장 장치 | |
| KR102724063B1 (ko) | 저장 장치 및 그 동작 방법 | |
| KR102809051B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
| KR102679560B1 (ko) | 저장 장치 및 그 동작 방법 | |
| KR102729143B1 (ko) | 저장 장치 및 그 동작 방법 | |
| KR102787556B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
| KR20210090439A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
| KR102501778B1 (ko) | 저장 장치 및 그 동작 방법 | |
| KR20220028332A (ko) | 저장 장치 및 그 동작 방법 | |
| KR102626058B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
| KR20220064101A (ko) | 저장 장치 및 그 동작 방법 | |
| KR20230012334A (ko) | 메모리 장치 및 그 동작 방법 | |
| KR102688483B1 (ko) | 저장 장치 및 그 동작 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20190115 |
|
| PG1501 | Laying open of application | ||
| A201 | Request for examination | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20220113 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20190115 Comment text: Patent Application |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20240902 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20250226 |
|
| PG1601 | Publication of registration |