KR20220154612A - 파일 속성에 따른 캐시 관리 방법 및 파일 속성에 따라 동작하는 캐시 관리 장치 - Google Patents

파일 속성에 따른 캐시 관리 방법 및 파일 속성에 따라 동작하는 캐시 관리 장치 Download PDF

Info

Publication number
KR20220154612A
KR20220154612A KR1020220050062A KR20220050062A KR20220154612A KR 20220154612 A KR20220154612 A KR 20220154612A KR 1020220050062 A KR1020220050062 A KR 1020220050062A KR 20220050062 A KR20220050062 A KR 20220050062A KR 20220154612 A KR20220154612 A KR 20220154612A
Authority
KR
South Korea
Prior art keywords
file
ufs
device storage
ufs device
cached
Prior art date
Application number
KR1020220050062A
Other languages
English (en)
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 삼성전자주식회사
Publication of KR20220154612A publication Critical patent/KR20220154612A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • 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
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Abstract

캐시 관리 방법은, 현재 열려 있는 적어도 하나의 파일의 파일 속성들을 획득하는 단계, 적어도 하나의 파일의 파일 속성들 중 미리 결정된 분석 대상과 관련된 제1 속성 서브세트를 추출하는 단계, 제1 속성 서브세트에 기초하여, UFS(Universal Flash Storage) 장치 내에 캐시될 해당 UFS 장치 스토리지 영역들의 영역 번호들을 결정하는 단계, 및 영역 번호들에 기초하여, 캐시 메모리 내에 캐시될 해당 UFS 장치 스토리지 영역들의 데이터를 캐시하는 단계를 포함한다.

Description

파일 속성에 따른 캐시 관리 방법 및 파일 속성에 따라 동작하는 캐시 관리 장치{METHOD OF CACHE MANAGEMENT BASED ON FILE ATTRIBUTES, AND CACHE MANAGEMENT DEVICE OPERATING BASED ON FILE ATTRIBUTES}
본 출원은 데이터 저장에 관한 것으로, 특히 파일 속성에 기초한 캐시 관리 방법 및 파일 속성에 기초하여 동작하는 캐시 관리 장치에 관한 것이다.
범용 플래시 스토리지 호스트 성능 부스터(Universal Flash Storage Host Performance Booster; UFS HPB) 캐시 메모리는 일반적으로 범용 플래시 스토리지(Universal Flash Storage; UFS) 드라이버 레이어에 추가된다. UFS 드라이버 레이어는 간단한 추가 알고리즘과 제거 알고리즘을 통해 UFS 장치의 읽기 성능을 향상시킬 수 있다. 여기서, 추가 알고리즘은 데이터가 액세스 될 때 항상 또는 액세스되는 데이터에 대한 특정 액세스 임계 값에 도달하면 메모리에 데이터를 추가할 수 있다. 제거 알고리즘은 캐시 메모리에서 날짜를 제거할 수 있고, 예를 들어, LRU(Least Recently Use) 제거 알고리즘, LFU(Least Frequently Use) 제거 알고리즘 등이 될 수 있다.
캐시 메모리의 적중률은 추가 알고리즘과 제거 알고리즘의 배열에 따라 달라진다. 그러나, 추가 알고리즘은 너무 단순해서 캐시 메모리에 추가된 데이터가 적절하지 않으면, 이것은 제거 알고리즘에 의한 빈번한 제거로 이어질 수 있으므로, 캐시 메모리 리소스들의 활용도가 낮아지고 캐시 메모리의 적중률이 감소한다.
본 발명의 목적은 파일 속성에 따른 캐시 관리 방법 및 파일 속성에 따라 동작하는 캐시 관리 장치를 제공하는데 있다.
본 개시의 예시적인 실시 예에 따르면, 파일 속성들에 기초한 캐시 관리 방법은 현재 열려 있는 적어도 하나의 파일의 파일 속성들을 획득하는 단계, 상기 적어도 하나의 파일의 상기 파일 속성들 중 미리 결정된 분석 대상과 관련된 제1 속성 서브세트를 추출하는 단계, 상기 제1 속성 서브세트에 기초하여, UFS(Universal Flash Storage) 장치 내에 캐시될 해당 UFS 장치 스토리지 영역들의 영역 번호들을 결정하는 단계, 및 상기 영역 번호들에 기초하여, 캐시 메모리 내에 캐시될 상기 해당 UFS 장치 스토리지 영역들의 데이터를 캐시하는 단계를 포함한다.
본 개시의 다른 실시 예에 따르면, 파일 속성들에 기초한 캐시 관리 장치는 현재 열려 있는 적어도 하나의 파일의 파일 속성들을 획득하는 파일 모니터링 유닛, 상기 적어도 하나의 파일의 상기 파일 속성들 중에서 미리 결정된 분석 대상과 관련된 제1 속성 서브세트를 추출하는 파일 속성 분석 유닛, 상기 제1 속성 서브세트에 기초하여, UFS(Universal Flash Storage) 장치 내에 캐시될 해당 UFS 장치 스토리지 영역들의 영역 번호들을 결정하는 영역 결정 유닛, 및 상기 영역 번호들에 기초하여, 캐시 메모리 내에 캐시될 상기 해당 UFS 장치 스토리지 영역들의 데이터를 캐시하는 캐시 유닛을 포함한다.
본 개시의 다른 양상에 따르면, 전자 장치는 컴퓨터 실행 가능한 명령어들이 저장된 스토리지, 및 상기 명령어들을 실행하는 프로세서를 포함한다. 상기 명령어들이 상기 프로세서에 의해 실행되면, 전자 장치는 파일 속성들에 기초하여 캐시 관리 방법을 수행하고, 상기 캐시 관리 방법은 현재 열려 있는 적어도 하나의 파일의 파일 속성들을 획득하는 단계, 상기 적어도 하나의 파일의 상기 파일 속성들 중 미리 결정된 분석 대상과 관련된 제1 속성 서브세트를 추출하는 단계, 상기 제1 속성 서브세트에 기초하여, UFS(Universal Flash Storage) 장치 내에 캐시될 해당 UFS 장치 스토리지 영역들의 영역 번호들을 결정하는 단계, 및 상기 영역 번호들에 기초하여, 캐시 메모리 내에 캐시될 상기 해당 UFS 장치 스토리지 영역들의 데이터를 캐시하는 단계를 포함한다.
본 개시의 일반적인 개념의 다른 양상 및/또는 이점은 다음 설명에서 부분적으로 설명될 것이며, 다른 부분은 설명을 통해 명확하거나 본 개시의 일반적인 개념의 구현을 통해 알려질 수 있다.
본 개시의 실시 예들에 따르면, 파일 속성에 따른 캐시 관리 방법 및 파일 속성에 따라 동작하는 캐시 관리 장치가 제공된다.
또한, 본 개시의 실시 예들에 따르면, 캐시 메모리 리소스의 활용도가 향상되고, 캐시 메모리의 적중률이 향상되어 캐시 관리 장치를 포함하는 전자 장치의 동작 속도가 향상된다.
본 개시 내용의 상술된 목적 및 다른 목적들 및 특징들은 도면들과 함께 후술되는 상세한 설명으로부터 더욱 명백해질 것이다.
도 1은 본 개시의 일 실시 예에 따른 파일 속성들에 따른 캐시 관리 방법을 도시하는 흐름도이다.
도 2는 본 개시의 일 실시 예에 따른 파일 액세스 모드를 나타내는 개략도이다.
도 3은 본 개시의 일 실시 예에 따른 클러스터링을 예시하는 개략도이다.
도 4는 본 개시의 일 실시 예에 따른 LSTM(Long Short-Term Memory) 네트워크를 나타내는 개략도이다.
도 5는 본 개시의 일 실시 예에 따른 UFS 장치 스토리지 영역과 파일 간의 대응 관계를 나타내는 개략도이다.
도 6은 본 개시의 일 실시 예에 따른 파일 속성들에 기초하여 동작하는 캐시 관리 장치를 나타내는 블록도이다.
도 7은 본 개시의 일 실시 예에 따른 파일 속성들에 기초하여 동작하는 캐시 관리 장치 및 캐시 메모리를 나타내는 개략도이다.
이제 본 개시 내용의 실시 예가 상세하게 언급되고, 실시 예의 예가 도면들에 도시되어 있으며, 여기서 동일한 참조 번호는 항상 동일한 부분들을 지칭한다. 이하, 본 개시를 설명하기 위해 도면들을 참조하여 실시 예들이 설명될 것이다.
시스템은 UFS(Universal Flash Storage) 장치 및 운영 체제로 구성될 수 있다. 운영 체제는 애플리케이션, 가상 파일 시스템(Virtual File System; VFS), 원본 블록 I/O, 파일 시스템, 블록 레이어, 및 UFS 드라이버 레이어, 등을 포함할 수 있다. 운영 체제의 예로는 컴퓨터 시스템의 하드웨어 및 프로세스들 사이의 코어 인터페이스와 같은 리눅스 커널을 포함하는 리눅스 운영 체제가 있다. 응용 프로그램은 원본 블록 I/O을 통해 UFS 장치에 액세스할 수 있고, 파일 형식의 파일 시스템을 통해 UFS 장치에 액세스할 수 있고, 이에 따라 UFS 장치의 파일에 대한 다양한 동작들을 수행한다. VFS는 다양한 파일 시스템의 파일을 관리하기 위해 가상화되고 통합된 인터페이스이다. UFS 장치에 있는 파일의 인덱스 노드(inode)는 VFS를 통해 조회될 수 있다. 블록 레이어는 UFS 장치에서 공통 동작들을 수행하는데 사용할 수 있는 공통 모듈이다. UFS 드라이버 레이어는 다양한 알고리즘들을 통해 UFS HPB 캐시 메모리를 관리한다. UFS HPB 캐시 메모리에 데이터를 캐시하는데 사용되는 알고리즘들은 본 명세서의 교시에 따라 개선될 수 있다. 데이터 특성을 마이닝하여 UFS HPB 캐시 메모리에 진입하는 알고리즘 전략이 동적으로 생성될 수 있다. 알고리즘 전략은 여기에 설명된 현재 열려 있는 파일의 선제적 캐싱 데이터가 포함될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 파일 속성들에 기초하는 캐시 관리 방법의 흐름도를 도시한다.
도 1을 참조하면, S110 단계에서, 현재 열려 있는 적어도 하나의 파일의 속성들을 획득할 수 있다. 여기서, 파일(들)의 속성들은 파일 자체 속성 및 파일 이벤트 속성 중 적어도 하나를 포함할 수 있다. 이러한 파일 속성들을 사용하면, 제거 알고리즘의 정확도는 시스템의 현재 파일 상태를 따를 수 있으므로 개선될 수 있다. 파일 자체 속성 및 파일 이벤트 속성 중 적어도 하나를 포함하는 파일 속성 테이블이 생성될 수 있다. 현재 열려 있는 적어도 하나의 파일의 속성들은 파일 속성 테이블에 기록될 수 있다. 또한, 현재 열려 있는 적어도 하나의 파일은 모니터링되고 파일 속성 테이블의 속성들은 업데이트 될 수 있다.
보다 구체적으로, 각 파일은 파일 자체 속성에 대한 정보를 저장하는 하나의 아이노드(inode)에 해당할 수 있다. 파일 자체의 속성들의 예로는 파일의 바이트 수, 파일 소유자의 사용자 ID, 파일의 그룹 ID, 파일의 읽기 권한, 파일의 쓰기 권한, 파일의 실행 권한, 파일의 하나 이상의 데이터 블록(들)의 위치(들), 파일의 타임 스태프 등을 포함하지만, 본 개시 내용은 파일 자체 속성의 이러한 예에 제한되지 않는다. 파일의 타임 스탬프의 예는 파일의 아이노드의 마지막 변경 시간을 나타낼 수 있는 ctime, 파일 콘텐츠의 마지막 변경 시간을 나타낼 수 있는 mtime, 파일이 마지막으로 열린 시간을 나타낼 수 있는 atime을 포함할 수 있다. UFS 장치 내의 파일의 아이노드는 운영 체제의 VFS에 의해 쿼리될 수 있다. 또한, 파일 이벤트 속성들의 예는 제한되지 않지만, 후술되는 이벤트가 포함될 수 있다.
IN_ACCESS /* File was accessed */, 파일이 액세스 되었음을 나타냄
IN_MODIFY /* File was modified */, 파일이 수정되었음을 나타냄
IN_ATTRIB /* Metadata changed */, 메타데이터가 변경되었음을 나타냄
IN_CLOSE_WRITE /* Writable file was closed */, 쓰기 가능한 파일이 닫힘을 나타냄
IN_CLOSE_NOWRITE /* Unwritable file closed */, 쓰기 불가능한 파일이 닫힘을 나타냄
IN_OPEN /* File was opened */, 파일이 열림을 나타냄
IN_MOVED_FROM /* File was moved from X */, 파일이 어딘가로부터 이동되었음을 나타냄
IN_MOVED_TO /* File was moved to Y */, 파일이 어딘가로 이동되었음을 나타냄
IN_CREATE /* Subfile was created */, 서브파일(subfile)이 생성되었음을 나타냄
IN_DELETE /* Subfile was deleted */, 서브파일이 삭제되었음을 나타냄
IN_DELETE_SELF /* Self was deleted */, 셀프-삭제, 즉, 하나의 실행 가능한 파일이 실행 동안 스스로 삭제됨을 나타냄
IN_MOVE_SELF /* Self was moved */ 셀프-이동, 즉, 하나의 실행 가능한 파일이 실행 동안 스스로 이동됨을 나타냄
또한, 파일의 아이노드 번호는 파일과 일대일로 대응하므로, 상술된 파일 속성 테이블 내의 파일의 ID로 사용할 수 있다. 표 1은 본 개시의 일 실시 예에 따른 파일 속성 테이블을 나타낸다. 후술되는 표 1에 도시된 파일 속성 테이블은 파일 이벤트 속성만을 포함하지만, 본 개시에 따라 설명되는 파일 속성 테이블은 이에 제한되지 않는다.
Figure pat00001
S120 단계에서, 적어도 하나의 파일의 속성들 중으로부터 미리 결정된 분석 대상과 관련된 제1 속성 서브세트를 추출할 수 있다. 한정이 아닌 예시일 뿐이며, 미리 결정된 분석 대상은 파일 읽기 열(heat), 파일 수정 열(heat) 등이 될 수 있고, 제1 속성 서브세트는 적어도 하나의 파일 속성들의 서브세트일 수 있다. 파일 읽기 열은 파일 읽기 빈도를 반영할 수 있다. 파일 수정 열은 파일 수정 빈도를 반영할 수 있다. 하나 이상의 파일 속성에는 열기, 액세스, 수정 닫기, 삭제 등이 포함된다. 제한이 아니라 단지 예로서, 속성들은 리눅스 커널 또는 다른 방법들에 의해 제공되는 도구를 사용하여 아일의 아이노드로부터 획득될 수 있다. 예를 들어, 파일의 속성들은 파일이 처리되고 저장되는 동안 계속적으로 아이노드 내에서 업데이트될 수 있다. 도 2는 본 개시의 일 실시 예에 따른 파일 액세스 모드를 나타내는 개략도이다. 여기서, 제1 속성 서브세트는 도 2에 도시된 바와 같이 파일 액세스 모드를 반영할 수 있다.
UFS 장치는 물리적으로 및/또는 논리적으로 스토리지 영역들로 분할된 메모리를 포함할 수 있다. 영역 번호들은 스토리지 영역들에 할당될 수 있고, 파일들은 스토리지 영역들에 할당될 수 있다. S130 단계에서, 캐시될 해당되는 UFS 장치 스토리지 영역들의 영역 번호들은 적어도 하나의 파일의 속성들의 제1 속성 서브세트에 기초하여 결정될 수 있다. 특히, 적어도 하나의 파일의 데이터는 해당되는 UFS 장치 스토리지 영역들에 저장된다. 제1 속성 서브세트는 데이터를 저장하는 해당 UFS 장치 스토리지 영역들의 영역 번호들을 저장하는데 사용되고, 해당 UFS 장치 스토리지 영역들의 데이터는 캐시될 수 있다. 예를 들어, 자주 열리거나 자주 액세스되는 파일에 대한 데이터에 대해 해당 UFS 스토리지 영역들이 결정될 수 있다. 따라서, 동적 파일 액세스 모드에서 캐시될 데이터의 자동 식별은 가변 로드 하에서 UFS 장치 스토리지 영역을 자동으로 관리함으로써 구현될 수 있다.
또한 캐시될 해당 UFS 장치 스토리지 영역들의 영역 번호들을 결정하는 단계는 제1 속성 서브세트에 기초하여 해당 UFS 장치 스토리지 영역들의 제2 속성 서브세트를 결정하는 단계, 제2 속성 서브세트에 기초하여 대응하는 UFS 장치 스토리지 영역들을 적어도 하나의 클러스터로 클러스터링하는 단계, 그리고 클리스터링 중심 값이 높은 미리 결정된 수의 클러스터들 내의 UFS 장치 스토리지 영역들의 영역 번호들을 캐시될 해당 UFS 장치 스토리지 영역들의 영역 번호들로 결정하는 단계를 포함한다.
한정이 아닌 예시일 뿐이며, 미리 결정된 분석 대상은 파일 읽기 히트일 수 있으며, 클러스터링 단계는 K-means 알고리즘을 사용하여 수행될 수 있다. 예를 들어 열린 파일에 해당하는 스토리지 영역에서 데이터의 파일 읽기 열을 사용할 때와 같이 이러한 기능들을 사용하여 제거 알고리즘을 최적화할 수 있다. 캐시 메모리에 저장할 데이터/스토리지 영역들 및 캐시 메모리로부터 제거할 데이터/스토리지 영역들을 고려할 때, 캐시 메모리 스토리지 프로세스 내의 하나 이상의 열린 파일(들)의 속성들을 동적 사용은 캐시 메모리 리소스의 활용도를 향상하고, 캐시 적중률(hit rate)은 기존의 제거 알고리즘들에 비해 향상될 수 있다. 또한, 파일 속성에 대한 제1 속성 서브세트와 달리, 제2 속성 서브세트는 UFS 장치 스토리지 영역에 대한 속성일 수 있다. 상술된 제1 속성 서브세트에 기초하여 제2 속성 서브세트를 결정하는 단계는 파일 속성을 파일을 저장하기 위한 UFS 장치 스토리지 영역의 속성으로 변환하는 단계에 기초할 수 있다. 즉, 제2 속성 서브세트 내의 UFS 장치 스토리지 영역들의 속성들은 제1 속성 서브세트 내의 파일의 속성들에 기초할 수 있고, 이에 따라 UFS 장치 스토리지의 각 스토리지 영역의 하나 이상의 속성(들)은 스토리지 영역들에 저장된 하나 이상의 파일(들)의 속성들에 기초할 수 있다. 제2 속성 서브세트는 UFS 장치 스토리지 영역 내의 파일들의 수, UFS 장치 스토리지 영역 내의 파일들의 읽기 입출력(IO) 횟수들, 및 UFS 장치 스토리지 영역 내의 평균 파일 사이즈의 캐시 확률 추정(e(-avg_file_size))을 포함할 수 있다. 제2 속성 서브세트의 예로는 상술된 것들로 제한되지 않음을 이해해야 한다. 통상의 기술자는 UFS 장치 스토리지 영역에 특별히 저장된 데이터를 가진 임의의 파일의 열기, 액세스, 수정, 닫기, 삭제 등과 같은 UFS 장치 스토리지 영역의 다른 속성들을 채택할 수 있다. 유사하게, 작은 파일 및 큰 파일이 동일한 액세스 빈도 등을 가질 때, 큰 파일 보다 작은 파일이 캐시되는 것이 선호되기 때문에, 캐시 확률 추정(e(-file_size))은 UFS 장치 스토리지 영역 내에 데이터가 저장된 파일의 파일 사이즈에 기초하여 구성될 수 있다.
도 3은 본 개시의 일 실시 예에 따른 클러스터링을 나타내는 개략도이다. 도 3을 참조하면, 제2 속성 서브세트는 상술된 속성들을 포함하는 것으로 가정되므로, 즉, 제2 속성 서브세트는 UFS 장치 스토리지 영역 내의 파일들의 수, UFS 장치 스토리지 영역 내의 파일들의 읽기 입출력(IO) 횟수들, 및 UFS 장치 스토리지 영역 내의 평균 파일 사이즈의 캐시 확률 추정을 포함합니다. 따라서, UFS 장치 스토리지 영역 각각은 상술된 세 개의 속성들을 가질 수 있다. 그 다음, UFS 장치 스토리지 영역은 UFS 장치 스토리지 영역의 이러한 속성들을 기초로 클러스터링된다. 도 3에 도시된 바와 같이 제1 클러스터, 제2 클러스터, 제3 클러스터, 및 제4 클러스터와 같은 4개의 클러스터들이 획득된다고 가정된다. 여기서, 각 클러스터는 상술된 세가지 속성들을 다르게 정의할 수 있다. 예를 들어, UFS 장치 스토리지 영역 내의 파일들의 수가 제1 미리 결정된 값보다 크고, UFS 장치 스토리지 영역 내의 파일들의 읽기 입출력(IO) 횟수가 제2 미리 결정된 값보다 크고, UFS 장치 스토리지 영역 내의 평균 파일 사이즈의 캐시 확률 추정은 제3 미리 결정된 값보다 크면, 제1 클러스터는 UFS 장치 스토리지 영역을 포함할 수 있다. 미리 결정된 개수의 클러스터들(예를 들어 제1 클러스터 및 제2 클러스터)의 클러스터링 중심 값이 높으면 제1 클러스터 및 제2 클러스터에 있는 UFS 장치 스토리지 영역들의 영역 번호를 캐시될 해당 UFS 장치 스토리지 영역들의 영역 번호로 결정할 수 있다. 상술된 제2 속성 서브세트 내의 속성들의 개수, 클러스터들의 미리 결정된 개수 등은 모두 예시이며, 통상의 기술자는 실제 필요에 따라 변경할 수 있음을 유의해야 한다.
반면에, 파일 읽기 열이 높은 UFS 장치 스토리지 영역의 영역 번호는 클러스터링 외에도 예측 등 다양한 방법 등을 사용하여 결정될 수 있음을 이해해야 한다. 도 4는 본 개시의 일 실시 예에 따른 LSTM 네트워크를 나타내는 개략도이다. 도 4에 도시된 바와 같이, LSTM 인코더의 레이어들에 대한 입력은 시점 T에서 액세스된 UFS 장치 스토리지 영역의 시퀸스, 및 LSTM 디코더의 레이어들로부터의 출력은 시점 S 이후의 K UFS 장치 스토리지 영역의 시퀸스이다. 즉, 과거의 미리 결정된 시간 윈도우 내의 UFS 장치 스토리지 영역의 액세스 시퀀스는 LSTM 인코더에 입력되어 미래의 미리 결정된 시간 윈도우 내에서 액세스될 UFS 장치 스토리지 영역의 시퀀스를 LSTM 디코더로부터 출력한다. 액세스 시퀸스의 요소 값은 본 개시의 일 실시 예에 따른 UFS 장치 스토리지 영역 내의 파일들의 수, UFS 장치 스토리지 영역에 있는 파일의 읽기 입출력(IO) 횟수, 및 UFS 장치 스토리지 영역 내의 평균 파일 사이즈의 캐시 확률 추정(e(-file_size))과 같은 3차원 벡터이다. LSTM 네트워크의 출력에서 식별된 UFS 장치 스토리지 영역의 영역 번호는 파일 읽기 열이 높은 UFS 장치 스토리지 영역의 영역 번호이다. 따라서, UFS 장치 스토리지 영역의 히스토리 액세스 패턴(들)에 따라 미래 시간 윈도우 내 UFS 장치 스토리지 영역의 액세스 시퀸스가 예측될 수 있다.
도 1로 돌아가면, S140 단계에서, 캐시될 해당 UFS 장치 스토리지 영역의 데이터를 영역 번호들에 기초하여 캐시 메모리에 캐시할 수 있다. 여기서, 영역 번호에 기초하여 캐시될 해당 UFS 장치 스토리지 영역들의 데이터는 영역 번호들에 해당하는 UFS 장치 스토리지 영역들의 어드레스 정보로 이해될 수 있다. 어드레스 정보는 UFS 장치 스토리지 영역의 물리 어드레스 및 논리 어드레스의 매핑 테이블을 포함하거나 이에 기초할 수 있다.
보다 구체적으로, 한정이 아닌 단지 에로서, 캐시 메모리는 범용 플래시 메모리 호스트 성능 부스터(Universal Flash Memory Host Performance Booster; UFS HPB) 캐시 메모리일 수 있다. 또한, 캐시 메모리 내에 캐시될 해당 UFS 장치 스토리지 영역들의 데이터를 캐시하는 단계는 UFS 드라이버 레이어에 의해, 캐시될 해당 UFS 장치 스토리지 영역들의 영역 번호들에 기초하여 UFS HPB 캐시 메모리에 영역 프리페칭 커맨드를 생성하고, 영역 프리페칭 커맨드를 UFS 장치로 디스페치하는 단계를 포함할 수 있다. 프리페칭 커맨드가 수신된 이후에, 데이터는 영역 프리페칭 커맨드에 기초하여 UFS 장치에 의해, UFS 드라이버 레이어로 데이터를 디스페치될 수 있고, 그리고 데이터는 UFS 드라이버 레이어에 의해 UFS HPB 캐시 메모리 내에 저장될 수 있다. 따라서, 다양한 워크로드들에 대한 UFS 장치 스토리지 영역의 프리페칭 작업은 애플리케이션이나 리눅스 커널을 수정하지 않고도 자동으로 관리될 수 있다. HPB 특성들이 포함된 UFS 드라이버 레이어를 사용하는 경우, 리눅스 커널을 변경할 필요가 없다. 또한, 캐시 메모리가 가득 찼거나 캐시 메모리에 캐시된 UFS 장치 스토리지 영역의 개수가 상한에 도달하는 경우와 같은 미리 결정된 경우에는 캐시될 해당 UFS 장치 스토리지 영역의 영역 번호는 UFS 드라이버 레이어로 디스페치될 수 있다. 영역 리스트의 형식이 사용될 수 있다. UFS HPB 캐시 메모리에 캐시된 데이터는 미리 결정된 제거 알고리즘에 기초하여 데이터를 사용함으로써 UFS 드라이버 레이어에 의해 제거될 수 있다. 여기서, 한정이 아닌 예시일 뿐이며, 미리 결정된 제거 알고리즘은 LRU(Least Recently Use) 제거 알고리즘 및 LFU(Least Frequently Use) 제거 알고리즘 중 적어도 하나일 수 있다. 또한, 한정이 아닌 예시일 뿐이며, 상술된 UFS 드라이버 레이어에 의해 수행되는 동작들은 UFS 드라이버 레이어 내의 HPB 드라이버에 의해 수행될 수 있다.
또한, 상술된 단계들에서, 한정이 아닌 단지 예로서, 파일에 대응하는 UFS 장치 스토리지 영역의 영역 번호는 획득될 수 있다. 다음 표 2는 안드로이드 시스템과 같은 파일 사이즈 분포를 보여주는 통계표이다.
Figure pat00002
상술된 표 2에 도시된 바와 같이, 안드로이드 시스템에서 파일 사이즈의 통계적 분석은 파일 크기의 99%가 4M 미만임을 보여준다. 또한, UFS 장치 스토리지 영역은 16M의 데이터를 저장할 수 있다. 따라서 UFS 장치 스토리지 영역에는 많은 파일들이 저장될 수 있다. UFS 장치 스토리지 영역 내의 파일 논리적 블록 어드레스(LBA) 및 물리적 어드레스들(예를 들어, UFS 물리적 페이지 번호)간의 관계는 각 열린 파일마다 설정될 수 있고, 주기적으로 유지될 수 있다. 도 5는 본 개시의 일 실시 예에 따른 UFS 장치 스토리지 영역과 파일 간의 대응 관계를 나타내는 개략도이다. 도 5에 도시된 바와 같이, UFS 장치 스토리지 영역 제0 영역에 해당하는 LBA 영역은 제1 파일과 제2 파일과 같은 2개의 파일들을 포함할 수 있다.
또한, 열린 파일은 사용자의 사용 및 시간에 따라 변하기 때문에, 열린 파일의 모니터링은 현재 열려 있는 적어도 하나의 파일의 속성들을 주기적으로 획득하기 위해 유지될 수 있다. S110~S120 단계들은 미리 결정된 타이밍에 따라 주기적으로 반복될 수 있고, 현재 열려 있는 적어도 하나의 파일의 속성은 주기적으로 획득될 수 있다.
도 6은 본 개시의 일 실시 예에 따른 파일 속성들에 기초하여 동작하는 캐시 관리 장치를 나타내는 블록도이다. 도 7은 본 개시의 일 실시 예에 따른 파일 속성들에 기초하여 동작하는 캐시 관리 장치 및 캐시 메모리를 나타내는 개략도이다.
도 6을 참조하면, 본 개시의 일 실시 예에 따른 파일 속성들에 기초하여 동작하는 캐시 관리 장치는 파일 모니터링 유닛(610), 파일 속성 분석 유닛(620), 영역 결정 유닛(630) 및 캐시 유닛(640)을 포함할 수 있다. 도 6의 캐시 관리 장치의 예시는 서버이고, 도 6의 캐시 관리 장치의 유닛들 각각은 유닛들로 표시된 회로로 구현될 수 있다. 본 명세서에 기술된 본 개시의 개념(들)의 분야(들)에서 도시된 바와 같이, 예시 설명된 기능 또는 기능들을 수행하는 그러한 라벨링된 요소들의 관점에서 설명되고 예시될 수 있다. 이러한 라벨링된 요소들, 또는 이와 같은 것들은 논리 게이트들, 집적 회로들, 마이크로프로세서들, 마이크로컨트롤러들, 메모리 회로들, 수동 전자 부품들, 능동 전자 부품들, 광학 부품들, 유선 회로 등과 같은 아날로그 및/또는 디지털 회로에 의해 물리적으로 구현되며, 펌웨어 및/또는 소프트웨어에 의해 선택적으로 구동될 수 있다. 회로는 예를 들어, 하나 이상의 반도체 칩에 내장되거나, 또는 인쇄 회로 기판 등의 기판 지지체에 내장될 수 있다. 이러한 라벨링된 요소들을 구성하는 회로들은 전용 하드웨어, 또는 프로세서(예를 들어, 하나 이상의 프로그래밍된 마이크로프로세서 및 관련 회로)에 의해, 또는 라벨링된 요소의 일부 기능들을 수행하기 위한 전용 하드웨어 및 라벨링된 요소의 다른 기능들을 수행하기 위한 프로세서의 조합에 의해 구현될 수 있다. 예시들의 라벨링된 요소 각각은 본 개시의 범위를 벗어나지 않고 2개 이상의 상호작용 및 개별 회로로 물리적으로 분리될 수 있다. 유사하게, 도 6의 캐시 관리 장치와 같은 예시의 라벨링된 요소들은 본 개시의 범위를 벗어나지 않고 물리적으로 더 복잡한 회로들로 결합될 수 있다.
파일 모니터링 유닛(610)은 현재 열려 있는 적어도 하나의 파일의 속성들을 획득할 수 있다. 여기서, 상술한 바와 같은 파일 속성 테이블은 파일 모니터링 유닛(610)에 의해 생성될 수 있으며, 파일 속성 테이블에는 열린 파일의 정보가 기록될 수 있다. 파일 모니터링 유닛은(610)은 현재 열려 있는 적어도 하나의 파일의 속성들을 주기적으로 획득할 수 있다.
파일 속성 분석 유닛(620)은 적어도 하나의 파일의 속성들 중에서 미리 결정된 분석 대상과 관련된 제1 속성 서브세트를 추출할 수 있다. 여기서, 상술된 파일 속성 테이블은 파일 속성 분석 유닛(620)에 의해 유지될 수 있다.
영역 결정 유닛(630)은 제1 속성 서브세트에 기초하여 캐시될 해당 UFS 장치 스토리지 영역의 영역 번호들을 결정할 수 있다. 보다 구체적으로, 영역 결정 유닛(630)은 제1 속성 서브세트에 기초하여 해당 UFS 장치 스토리지 영역들의 제2 속성 서브세트를 결정하고, 제2 속성 서브세트에 기초하여 해당 UFS 장치 스토리지 영역들을 적어도 하나의 클러스터로 클러스터링하고, 그리고 클리스터링 중심 값이 높은 미리 결정된 수의 클러스터들 내의 UFS 장치 스토리지 영역들의 영역 번호들을 캐시될 해당 UFS 장치 스토리지 영역들의 영역 번호들로 결정하는 동작들을 더 수행할 수 있다. 따라서, 하나 이상의 열린 파일(들)의 데이터를 갖는 UFS 장치 스토리지 영역의 영역 번호들은 제1 속성 서브세트 내의 하나 이상의 열린 파일(들)의 속성들에 기초하여 캐싱을 위해 선택적으로 결정될 수 있다.
캐시 유닛(640)은 영역 번호들에 기초하여 캐시 메모리에 캐시될 해당 UFS 장치 스토리지 영역의 데이터를 캐시할 수 있다. 보다 구체적으로, 캐시 유닛(640)은 캐시될 해당 UFS 장치 스토리지 영역들의 영역 번호들에 기초하여 영역 프리페칭 커맨드를 생성하고, 영역 프리페칭 커맨드를 UFS 장치로 디스페치하고, 영역 프리페칭 커맨드에 기초하여 UFS 드라이버 레이어로 데이터를 디스페치하고, 그리고 UFS HPB 캐시 메모리 내에 데이터를 저장하는 동작들을 더 수행할 수 있다. 또한, 캐시 유닛(640)은 미리 결정된 경우, 미리 결정된 제거 알고리즘에 기초한 데이터를 사용함으로써 UFS HPB 캐시 메모리 내에 캐시된 데이터도 제거할 수 있다. 캐시 유닛(640)은 본 개시의 예시적인 실시 예에 따른 파일 속성들에 기초하여 동작하는 캐시 관리 장치의 선택적 유닛일 수 있음에 유의해야 한다. 도 7에 도시된 바와 같이, UFS HPB 캐시 메모리의 경우, 캐시 유닛(640)의 해당 기능들은 UFS 드라이버 레이어에 의해 구현될 수 있다.
또한, 본 개시의 일 실시 예에 따른 파일 속성들에 기초하여 동작하는 캐시 관리 장치는 본 개시의 예시적인 실시 예 각각에 따라 파일 속성들에 기초한 캐시 관리의 방법들의 다른 단계들에 해당하는 기능들을 구현하는 다른 유닛들을 포함할 수 있다. 예를 들어, 도 7에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 파일 속성들에 기초하여 동작하는 캐시 관리 장치는 LBA-영역 매핑 유닛, 클러스터링 유닛, 및 영역 디스페칭 유닛을 더 포함할 수 있다. LBA-영역 매핑 유닛은 LBA와 UFS 장치 스토리지 영역 사이의 대응 관계를 설정하기 위한 것일 수 있다. 클러스터링 유닛은 클러스터링을 위한 것일 수 있다. 영역 디스페칭 유닛은 UFS 장치 스토리지 영역 리스트를 UFS 드라이버 레이어 등에 디스페치하기 위한 것일 수 있다. UFS 드라이브 레이어는 UFS HPB 캐시 메모리에서 영역 프리페칭 커맨드를 생성하고, UFS 장치에 영역 프리페칭 커맨드를 디스페치한다. 프리페칭 커맨드가 수신된 후, UFS 장치는 필요한 영역 정보를 UFS 드라이버 레이어에 디스페치할 수 있다. UFS 드라이버 레이어는 필요한 영역 정보를 UFS HPB 캐시 메모리에 저장할 수 있으며, 이에 대한 반복 설명은 생략된다.
또한, 본 개시의 일 실시 예에 따르면, 전자 장치도 제공될 수 있다. 전자 장치는 컴퓨터 실행 가능한 명령어들이 저장된 스토리지, 명령어들을 실행하도록 구성된 프로세서를 포함한다. 명령어들이 실행될 때, 프로세서는 본 개시에서 설명된 방법(들)의 일부 또는 모든 양상들을 수행한다. 본 개시의 일 실시 예에 따르면, 컴퓨터-판독가능한 매체는 컴퓨터 실행가능한 명령어들을 저장한다. 명령어들이 실행될 때, 본 개시에서 설명된 방법(들)의 하나 이상의 양상들이 수행된다. 일부 실시 예들에서, 도 6에서 도시되고 설명된 하나 이상의 유닛들은 하나 이상의 프로세서 및 프로세서(들)에 의해 실행되는 컴퓨터 실행가능한 명령어들을 저장하는 하나 이상의 스토리지의 조합들을 사용하여 구현될 수 있다.
본 개시의 일 실시 에에 따르면, 후속 요청된 LBA 어드레스 영역이 프리페치된 UFS 장치 스토리지 영역에 속할 때, HPB 캐시 히트들 및 사용자 데이터는 물리적 페이지 번호(Physical Page Number; PPN)를 통해 식별된 물리적 어드레스를 통해 직접 액세스된다. 이것은 물리적 어드레스를 획득하는데 드는 시간 비용을 크게 단축시켜 UFS 장치의 읽기 성능 및 사용자 경험을 향상시킨다. 또한, 애플리케이션이나 리눅스 커널을 수정할 필요가 없다. 즉, HPB 특성들이 포함된 UFS 드라이버 레이어를 사용하는 경우, 변경이 필요하지 않다. 다양한 워크로드들에 대한 UFS 장치 스토리지 영역의 프리페칭 작업은 자동으로 관리될 수 있다. 동적 파일 액세스 모드 자동 식별 및 가변 부하 내의 UFS 장치 스토리지 영역의 자동 관리가 구현될 수 있다. 미래 시간 윈도우 내 UFS 장치 스토리지 영역의 액세스 시퀀스는 UFS 장치 스토리지 영역의 이력 액세스 정보 및 패턴(들)에 따라 예측될 수 있다. 본 명세서의 개시 내용은 다양한 워크로드들에 맞게 조정될 수 있다.
본 명세서에 기술된 본 개시의 개념(들)은 특정 예시적인 실시 예를 참조하여 도시되고 설명되었지만, 본 기술 분야의 통상의 지식을 가진 자는 본 개시의 사상 및 범위를 벗어나지 않고 형태 및 세부 사항에 있어 다양한 변경들이 이루어질 수 있음을 이해할 것이다.

Claims (10)

  1. 파일 속성들에 기초한 캐시 관리 방법에 있어서,
    현재 열려 있는 적어도 하나의 파일의 파일 속성들을 획득하는 단계;
    상기 적어도 하나의 파일의 상기 파일 속성들 중 미리 결정된 분석 대상과 관련된 제1 속성 서브세트를 추출하는 단계;
    상기 제1 속성 서브세트에 기초하여, UFS(Universal Flash Storage) 장치 내에 캐시될 해당 UFS 장치 스토리지 영역들의 영역 번호들을 결정하는 단계; 및
    상기 영역 번호들에 기초하여, 캐시 메모리 내에 캐시될 상기 해당 UFS 장치 스토리지 영역들의 데이터를 캐시하는 단계를 포함하는, 파일 속성들에 기초한 캐시 관리 방법.
  2. 제 1 항에 있어서,
    상기 파일의 상기 파일 속성들은 파일 자체 속성 또는 파일 이벤트 속성 중 적어도 하나를 포함하는, 파일 속성들에 기초한 캐시 관리 방법.
  3. 제 1 항에 있어서,
    캐시될 상기 해당 UFS 장치 스토리지 영역들의 영역 번호들을 결정하는 단계는:
    상기 제1 속성 서브세트에 기초하여 상기 해당 UFS 장치 스토리지 영역들의 제2 속성 서브세트를 결정하는 단계;
    상기 제2 속성 서브세트에 기초하여 상기 해당 UFS 장치 스토리지 영역들을 적어도 하나의 클러스터로 클러스터링하는 단계; 및
    클러스터링 중심 값이 높은 미리 결정된 수의 클러스터들 내의 상기 UFS 장치 스토리지 영역들의 영역 번호들을 캐시될 상기 해당 UFS 장치 스토리지 영역들의 상기 영역 번호들로 결정하는 단계를 포함하는, 파일 속성들에 기초한 캐시 관리 방법.
  4. 제 3 항에 있어서,
    상기 미리 결정된 분석 대상은 파일 읽기 히트인, 파일 속성들에 기초한 캐시 관리 방법.
  5. 제 3 항에 있어서,
    상기 제2 속성 서브세트는 상기 UFS 장치 스토리지 영역 내의 파일들의 수, 상기 UFS 장치 스토리지 영역 내의 파일들의 읽기 입출력 횟수들, 및 상기 UFS 장치 스토리지 영역 내의 평균 파일 사이즈의 캐시 확률 추정을 포함하는, 파일 속성들에 기초한 캐시 관리 방법.
  6. 제 3 항에 있어서,
    상기 캐시 메모리는 UFS HPB(Universal Flash Storage Host Performance Booster) 캐시 메모리인, 파일 속성들에 기초한 캐시 관리 방법.
  7. 제 6 항에 있어서,
    상기 캐시 메모리 내에 캐시될 상기 해당 UFS 장치 스토리지 영역들의 데이터를 캐시하는 단계는:
    캐시될 상기 해당 UFS 장치 스토리지 영역들의 상기 영역 번호들에 기초하여 영역 프리페칭 커맨드를 생성하고, 상기 영역 프리페칭 커맨드를 상기 UFS 장치로 디스페치하는 단계;
    상기 영역 프리페칭 커맨드에 기초하여 UFS 드라이버 레이어로 데이터를 디스페치하는 단계; 및
    상기 UFS HPB 캐시 메모리 내에 상기 데이터를 저장하는 단계를 포함하는, 파일 속성들에 기초한 캐시 관리 방법.
  8. 제 7 항에 있어서,
    상기 데이터를 상기 캐시 메모리 내에 캐시하는 단계는:
    미리 결정된 경우의 미리 결정된 제거 알고리즘에 기초하여 상기 데이터를 사용함으로써 상기 UFS HPB 캐시 메모리 내에 캐시된 데이터를 제거하는 단계를 포함하는, 파일 속성들에 기초한 캐시 관리 방법.
  9. 제 1 항에 있어서,
    상기 현재 열려 있는 적어도 하나의 파일의 상기 파일 속성들은 주기적으로 획득되는, 파일 속성들에 기초한 캐시 관리 방법.
  10. 현재 열려 있는 적어도 하나의 파일의 파일 속성들을 획득하는 파일 모니터링 유닛;
    상기 적어도 하나의 파일의 상기 파일 속성들 중에서 미리 결정된 분석 대상과 관련된 제1 속성 서브세트를 추출하는 파일 속성 분석 유닛;
    상기 제1 속성 서브세트에 기초하여, UFS(Universal Flash Storage) 장치 내에 캐시될 해당 UFS 장치 스토리지 영역들의 영역 번호들을 결정하는 영역 결정 유닛; 및
    상기 영역 번호들에 기초하여, 캐시 메모리 내에 캐시될 상기 해당 UFS 장치 스토리지 영역들의 데이터를 캐시하는 캐시 유닛을 포함하는, 파일 속성들에 기초하여 동작하는 캐시 관리 장치.

KR1020220050062A 2021-05-13 2022-04-22 파일 속성에 따른 캐시 관리 방법 및 파일 속성에 따라 동작하는 캐시 관리 장치 KR20220154612A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110521854.4 2021-05-13
CN202110521854.4A CN113268201A (zh) 2021-05-13 2021-05-13 基于文件属性的缓存管理方法和装置

Publications (1)

Publication Number Publication Date
KR20220154612A true KR20220154612A (ko) 2022-11-22

Family

ID=77230600

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220050062A KR20220154612A (ko) 2021-05-13 2022-04-22 파일 속성에 따른 캐시 관리 방법 및 파일 속성에 따라 동작하는 캐시 관리 장치

Country Status (2)

Country Link
KR (1) KR20220154612A (ko)
CN (1) CN113268201A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114968949A (zh) 2022-05-23 2022-08-30 三星(中国)半导体有限公司 缓存数据的方法、主机设备和存储系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152274B2 (en) * 2014-06-25 2018-12-11 Huawei Technologies Co., Ltd. Method and apparatus for reading/writing data from/into flash memory, and user equipment
CN105892937B (zh) * 2016-02-23 2020-09-25 联想(北京)有限公司 一种信息处理方法及电子设备
CN107784108A (zh) * 2017-10-31 2018-03-09 郑州云海信息技术有限公司 一种数据存储管理方法、装置及设备
CN110221782A (zh) * 2019-06-06 2019-09-10 重庆紫光华山智安科技有限公司 视频文件处理方法及装置
CN110471894A (zh) * 2019-07-22 2019-11-19 腾讯科技(深圳)有限公司 一种数据预取方法、装置、终端及存储介质
KR20210057254A (ko) * 2019-11-11 2021-05-21 삼성전자주식회사 스토리지 장치 및 그 동작방법
CN111309650B (zh) * 2020-02-11 2024-01-05 广州市百果园信息技术有限公司 缓存控制方法、装置、存储介质及设备
CN111782612B (zh) * 2020-05-14 2022-07-26 北京航空航天大学 跨域虚拟数据空间中文件数据边缘缓存方法
CN111984602A (zh) * 2020-09-23 2020-11-24 三星(中国)半导体有限公司 数据流的管理方法和装置

Also Published As

Publication number Publication date
CN113268201A (zh) 2021-08-17
US20220365876A1 (en) 2022-11-17

Similar Documents

Publication Publication Date Title
CN106354745B (zh) 用于提供计算机装置的接口的方法和计算机装置
US20180276233A1 (en) Techniques for implementing hybrid flash/hdd-based virtual disk files
US9779027B2 (en) Apparatus, system and method for managing a level-two cache of a storage appliance
US6807607B1 (en) Cache memory management system and method
US9684590B2 (en) Storing corresponding data units in a common storage unit
US8176233B1 (en) Using non-volatile memory resources to enable a virtual buffer pool for a database application
US9772949B2 (en) Apparatus, system and method for providing a persistent level-two cache
US9201794B2 (en) Dynamic hierarchical memory cache awareness within a storage system
US20170308297A1 (en) Object tagged memory monitoring method and processing apparatus
US9612975B2 (en) Page cache device and method for efficient mapping
CN105573669A (zh) 一种存储系统的io读加速缓存方法和系统
JPH0571976B2 (ko)
CN107665095B (zh) 存储器空间管理的设备、方法及可读存储介质
CN109086141B (zh) 内存管理方法和装置以及计算机可读存储介质
CN110968269A (zh) 基于scm与ssd的键值存储系统及读写请求处理方法
KR20220154612A (ko) 파일 속성에 따른 캐시 관리 방법 및 파일 속성에 따라 동작하는 캐시 관리 장치
US10073851B2 (en) Fast new file creation cache
CN109002400B (zh) 一种内容感知型计算机缓存管理系统及方法
CN108664217B (zh) 一种降低固态盘存储系统写性能抖动的缓存方法及系统
CN115470157A (zh) 预取方法、电子设备、存储介质及程序产品
CN107967306B (zh) 一种存储系统中关联块的快速挖掘方法
CN109478163B (zh) 用于在高速缓存条目处标识存储器访问请求的待决的系统和方法
US20100268921A1 (en) Data collection prefetch device and methods thereof
US11132128B2 (en) Systems and methods for data placement in container-based storage systems
US11977485B2 (en) Method of cache management based on file attributes, and cache management device operating based on file attributes