KR102646619B1 - 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법 - Google Patents

컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법 Download PDF

Info

Publication number
KR102646619B1
KR102646619B1 KR1020160050059A KR20160050059A KR102646619B1 KR 102646619 B1 KR102646619 B1 KR 102646619B1 KR 1020160050059 A KR1020160050059 A KR 1020160050059A KR 20160050059 A KR20160050059 A KR 20160050059A KR 102646619 B1 KR102646619 B1 KR 102646619B1
Authority
KR
South Korea
Prior art keywords
nvdimm
group
file system
interface
electronic device
Prior art date
Application number
KR1020160050059A
Other languages
English (en)
Other versions
KR20170093666A (ko
Inventor
비샤크 구떼코파
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20170093666A publication Critical patent/KR20170093666A/ko
Application granted granted Critical
Publication of KR102646619B1 publication Critical patent/KR102646619B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • 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/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • 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
    • 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
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0658Controller construction 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile 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
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 전자 장치 및 방법이 제공된다. 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 방법은, 적어도 하나의 NVDIMM-P의 위치 정보에 기초하여, 컴포지트 메모리 장치의 적어도 하나의 NVDIMM-P를 적어도 하나의 그룹으로 구조화하는 것을 포함할 수 있다. 나아가, 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 방법은, 적어도 하나의 그룹 중 각 그룹에 대해 단일 파일 시스템 인스턴스(FSI)를 생성하는 것을 포함할 수 있다.

Description

컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법{Method and system providing file system for an electronic device comprising a composite memory device}
본 발명은 컴포지트 메모리 장치를 포함하는 장치에 관한 것이다. 좀 더 구체적으로, 컴포지트 메모리 장치를 포함하는 장치의 파일 시스템에 관한 것이다.
서버와 같은 컴퓨팅 및 스토리지 시스템은, 클라우드 컴퓨팅(cloud computing), 가상화(virtualization), 고성능 컴퓨팅 (HPC: high-performance computing), 데이터베이스(databases), 빅 데이터(big data), 4K 컨텐트의 실시간 비디오 에디팅(real-time video editing of 4K content) 등의 현재 전자 세계에서 중요한 역할을 하고 있다. 서버 하이퍼 바이저(server hypervisors), 운영 체계(Operating Systems), 어플리케이션 등이 램 메모리를 모두 소모하지 않고, 정상적으로 부팅 및 실행하기 위해 서버와 같은 컴퓨팅 및 스토리지 장치의 주기억 장치(primary memory)가 필요하다. 일반적으로, DRAM이 주기억 장치로서 사용되었다.
NV-DIMMs(Non-Volatile Dual in-line Memory Modules)과 같은 최근의 차세대 메모리 장치 또는 스토리지 장치는, 데이터 스토리지 및 주기억 기능 용도로 폭 넓게 사용되고 있다. NV-DIMMs는 종래의 PCI 버스(Peripheral Component Interconnect (PCI) bus)와 달리, 메모리 컨트롤러를 통해 프로세서에 연결된다. NV-DIMMs는 DRAM의 속도로 작업을 수행 하면서도 지속적이고, 정전이나 시스템 충돌의 경우에 데이터 보존을 제공한다. 게다가, 호스트 컴퓨터에 전원이 복원되면, 데이터를 즉시 이용할 수 있다. 따라서, NV-DIMMs는 입/출력 동작에서 낮은 지연 속도와 높은 속도를 제공할 수 있다.
NV-DIMMs은 세 가지 유형으로 이용이 가능할 수 있다. 첫 번째 유형은, 보조 기억 장치(예, 하드 디스크)로 이용될 수 있는 블록 장치(block device)(블록 어드레서블 장치(block addressable device))인 NVDIMM-F이다. 두 번째 유형은, 주기억 장치에서 파워 백 DRAM(power backed DRAM)으로 이용될 수 있는 문자 장치(character device)(바이트 어드레서블 장치(byte addressable device))인 NVDIMM-N이다. 최근 개발된 세 번째 유형은, NVDIMM-P라고 불리는 컴포지트 메모리 장치 또는 컴포지트 스토리지 장치이다. NVDIMM-P는 NVDIMM-F와 NVDIMM-N을 하나의 장치로 결합한 것이다.
모든 스토리지 장치 또는 메모리 장치는, 메모리 장치에 대해 데이터를 쓰거나 메모리 장치에서 데이터를 읽는 것을 효율적으로 하기 위해, 파일 시스템을 활용할 수 있다. 파일 시스템은, 구조화된 데이터(structured data) 표현과 저장된 데이터를 설명하는 메타 데이터의 집합(set of meta data)일 수 있다.
전통적으로 커널 공간(kernel space)에서 기존의 NVDIMM-N 파일 시스템은, 파일 시스템의 메타 데이터 및 사용자 데이터(user data)를 NVDIMM-N의 NVDIMM-N 영역에 저장한다. 따라서, NVDIMM-N 인식 파일 시스템은 사용자 데이터를 위한 저장 공간에 대한 한계를 드러내고, NVDIMM-N 영역은 사용자 데이터 및 파일 시스템의 메타 데이터를 위해 공유되었다.
NVDIMM-N의 크기가 작아짐(약 1GB에서 2GB)에 따라, 이러한 한계는 중요하게 되었다. 또한, 이러한 한계는 이미, 사용자 데이터를 위해 이용 가능한 저장 공간에 관한 한계가 되었다. 나아가, NVDIMM-N은 급작스러운 파워 오프에 대비할 필요가 있으므로, NVDIMM-F에 비해 바이트 당 비용이 거대하다(크기는 대략 1TB에서 2TB 사이이다.). 따라서, 기존 NVDIMM-N 인식 파일 시스템의 바이트 당 비용이 높다 하더라도, NVDIMM-N 영역 전체는, 사용자 데이터 저장을 위해 사용될 수 없다. 그러므로, 바이트 당 비용은 점점 더 증가될 수 있다.
NVDIMM-N에서 이용 가능한 사용자 데이터 공간에 대한 제약은, NVDIMM-F와 NVDIMM-N를 결합한 NVDIMM-P 스토리지 장치로 옮겨갔다. 나아가, 서버에 의해 사용되는 각 NVDIMM-P는, 파일 시스템 인스턴스(file system instance (FSI))로도 알려져 있는 분리된 파일 시스템(separate file system)을 요구한다. 그러나, 서버 플랫폼은 복수의 NVDIMM-P을 가질 수 있다. 따라서, 각 NVDIMM-P 장치를 위해 분리된 FSI를 갖는 것은, 복수의 파일 인스턴스의 스토리지를 위한 추가적인 공간을 요한다.
나아가, 기존의 NVDIMM-N 인식 파일 시스템은, 인터리브 방식(interleaved manner)으로 메모리 장치에 액세스를 가능하게 하는, 메모리 컨트롤러의 기능을 지원할 수 없다. 따라서, 기존의 파일 시스템은, 메모리 장치에 대한 바이트 당 비용의 증가를 초래하는, 메모리 장치의 저장 공간을 효율적으로 사용할 수 없게 한다. 또한, 기존의 파일 시스템은, 인터리브 방식으로 메모리 장치에 액세스 할 수 없고, 장치의 액세스 지연 속도(latency) 증가시킬 수 있다.
본 발명이 해결하고자 하는 기술적 과제는 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는 컴포지트 메모리 장치에서, 하나 이상의 NVDIMM-P들의 위치 정보에 기초하여, NVDIMM-N과 NVDIMM-F를 포함하는 하나 이상의 NVDIMM-P를, 하나 이상의 그룹으로 정렬하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는 그룹 내의 모든 NVDIMM-N를 위한 단일 파일 시스템 인스턴스(FSI; single file system instance)를, 하나 이상의 그룹 중 각각의 그룹을 위해 생성하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는 그룹의 NVDIMM-F의 메타 파티션(meta partition) 내의 그룹에 상응하는 단일 FSI를 위해, 메타 데이터를 저장하는 것을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예들에 따른 전자 장치에 파일 시스템을 제공하는 방법은, 전자 장치의 컴포지트 메모리 장치(composite memory device)의 적어도 하나의 NVDIMM-P(Non-Volatile Dual in-line Memory Module-P)를, 적어도 하나의 NVDIMM-P의 위치 정보에 기초하여, 적어도 하나의 그룹으로 구조화(organizing) 하고, 적어도 하나의 그룹 중 각 그룹에 대해 단일 파일 시스템 인스턴스(FSI: File System Instance)를 생성하는 것을 포함한다.
몇몇 실시예에서, 상기 적어도 하나의 그룹 중 각 그룹은, 상기 적어도 하나의 NVDIMM-P를 포함하고, 상기 적어도 하나의 NVDIMM-P는, NVDIMM-N과 NVDIMM-F를 포함하고, 상기 컴포지트 메모리 장치의 적어도 하나의 채널에 포함될 수 있다.
몇몇 실시예에서, 상기 적어도 하나의 그룹 중 각 그룹에 대응되는 상기 단일 파일 시스템 인스턴스에 대한 메타 데이터(meta data)는, 상기 적어도 하나의 그룹 중 각 그룹 내의 적어도 하나의 NVDIMM-F의 메타 파티션(meta partition)에 저장될 수 있다.
몇몇 실시예에서, 상기 NVDIMM-F의 메타 파티션에 저장되는 상기 메타 데이터는, 블록 인터페이스(block interface)를 이용하여 액세스 되고, 상기 블록 인터페이스는, 상기 NVDIMM-F의 메타 파티션의 블록 레벨 액세스(block level access)를 제공하는 비동기 인터페이스(asynchronous interface)일 수 있다.
몇몇 실시예에서, 상기 적어도 하나의 그룹 중 각 그룹의 적어도 하나의 NVDIMM-N에 대응되는 NVDIMM-N 영역은, 사용자 데이터를 위해 이용되고, 상기 사용자 데이터는, 저장 인터페이스(store interface)를 이용하여 액세스될 수 있고, 상기 저장 인터페이스는, 상기 NVDIMM-N 영역의 바이트 레벨 액세스(byte level access)를 제공하는 동기 인터페이스(synchronous interface)일 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예들에 따른 파일 시스템을 제공하는 전자 장치는, 전자 장치는 파일 시스템 모듈을 포함하고, 상기 파일 시스템 모듈은, 상기 전자 장치의 컴포지트 메모리 장치(composite memory device)의 적어도 하나의 NVDIMM-P(Non-Volatile Dual in-line Memory Module-P)를, 상기 적어도 하나의 NVDIMM-P의 위치 정보에 기초하여 적어도 하나의 그룹으로 구조화하고, 상기 적어도 하나의 그룹 중 각 그룹에 대해 단일 파일 시스템 인스턴스(FSI: File System Instance)를 생성할 수 있다.
몇몇 실시예에서, 상기 적어도 하나의 그룹 중 각 그룹은, 상기 적어도 하나의 NVDIMM-P를 포함하고, 상기 적어도 하나의 NVDIMM-P는, NVDIMM-N 및 NVDIMM-F를 포함하고, 상기 컴포지트 메모리 장치의 적어도 하나의 채널에 포함된 것일 수 있다.
몇몇 실시예에서, 상기 파일 시스템 모듈은, 상기 적어도 하나의 그룹 중 각 그룹에 대응되는 상기 단일 파일 시스템 인스턴스에 대한 메타 데이터를, 상기 적어도 하나의 그룹 중 각 그룹 내의 적어도 하나의 NVDIMM-F의 메타 파티션에 저장할 수 있다.
몇몇 실시예에서, 상기 파일 시스템 모듈은, 블록 인터페이스(block interface)를 이용하여 상기 적어도 하나의 NVDIMM-F의 메타 파티션에 저장되는 메타 데이터를 액세스 하고, 상기 블록 인터페이스는, 상기 메타 파티션의 블록 레벨 액세스(block level access)를 제공하는 비동기 인터페이스(asynchronous interface)일 수 있다.
몇몇 실시예에서, 상기 적어도 하나의 그룹 중 각 그룹의 적어도 하나의 NVDIMM-N에 대응되는 NVDIMM-N 영역은 사용자 데이터를 위해 이용되고, 상기 파일 시스템 모듈은, 저장 인터페이스(store interface)를 이용하여 상기 사용자 데이터를 액세스 할 수 있고, 상기 저장 인터페이스는, 상기 NVDIMM-N 영역의 바이트 레벨 액세스(byte level access)를 제공하는 동기 인터페이스(synchronous interface)일 수 있다.
상기 과제를 달성하기 위한 본 발명의 몇몇 실시예들에 따른 컴퓨터 프로그램 장치는, 프로세서 및 상기 프로세서와 커플링된(coupled to) 컴퓨터로 판독 가능한 비일시적인 기록 매체(non-transitory computer-readable medium)를 포함하고, 상기 컴퓨터로 판독 가능한 비일시적인 기록 매체는, 상기 프로세서에 의해 실행될 때 상기 프로세서가 동작을 수행하도록 사용될 수 있는(operable) 컴퓨터 프로그램 명령을 저장하고, 상기 동작은, 컴포지트 메모리 장치(composite memory device)의 적어도 하나의 NVDIMM-P(Non-Volatile Dual in-line Memory Module-P)를, 상기 적어도 하나의 NVDIMM-P의 위치 정보에 기초하여, 적어도 하나의 그룹으로 구조화(organizing) 하고, 상기 적어도 하나의 그룹 중 각 그룹에 대해 단일 파일 시스템 인스턴스(FSI: File System Instance)를 생성하는 것을 포함할 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 몇몇 실시예들에 따른 전자 장치 내에서, 컴포지트 메모리 장치에 파일 시스템을 제공하는 전자 장치의 복수의 구성 요소들을 도시한 도면이다.
도 2는 본 발명의 몇몇 실시예들에 따른 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 방법을 도시한 순서도이다.
도 3a는 본 발명의 몇몇 실시예들에 따른 NVDIMM-P 내에 집적된 NVDIMM-N의 메타 데이터 및 사용자 데이터를 위한 저장 공간의 분배와 함께 NVDIMM-P를 도시한 도면이다.
도 3b는 본 발명의 몇몇 실시예들에 따른 그룹 내의 복수의 NVDIMM-N을 위해, 단일 그룹 내에서 단일 파일 시스템 인스턴스(FSI)와 함께 복수의 NVDIMM-P를 그룹화하는 것을 도시한 도면이다.
도 4는 본 발명의 몇몇 실시예들에 따른 컴포지트 메모리 장치의 채널에 걸쳐 확산되어 있는 그룹 내의 NVDIMM-P와 함께, 컴포지트 메모리 장치의 복수의 NVDIMM-P를 복수의 그룹으로 그룹화하는 것을 도시한 예시적인 도면이다.
도 5는 본 발명의 몇몇 실시예들에 따른 전자 장치에서 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 방법을 이용하여 구현된 컴퓨팅 환경을 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 층 및 영역들의 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서는 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법을 제공한다. 컴포지트 메모리 장치는 하나 이상의 NVDIMM-P(Non-Volatile Dual in-line Memory Modules-P)를 포함할 수 있다. NVDIMM-P는 NVDIMM-N 및 NVDIMM-F의 조합(combination)을 포함할 수 있다.
몇몇 실시예에서, 파일 시스템은, 각 NVDIMM-N에 대해 분리된 파일 시스템을 생성하는 것 대신 단일 파일 인스턴스(FSI)를 사용하는 복수의 NVDIMM-P 내의 복수의 NVDIMM-N를 위한, NVDIMM-N 인식 파일 시스템일 수 있다. 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 방법은, 하나 이상의 NVDIMM-P의 위치 정보에 기초하여, 컴포지트 메모리 장치의 NVDIMM-P들을 하나 이상의 그룹으로 구조화(organizing)하는 것을 포함할 수 있다. 따라서, 다른 채널들에 위치해 있는 NVDIMM-P들은, 단일 그룹으로 그룹화될 수 있다.
컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 방법은, 하나 이상의 NVDIMM-P 그룹 중 각 그룹에 대해, 단일 파일 시스템 인스턴스(FSI)를 생성할 수 있는 파일 시스템을 제공할 수 있다. 단일 FSI는, 동일 그룹 내의 모든 NVDIMM-N을 위해 제공될 수 있다.
나아가, 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 방법은, 동일 그룹에 속하는 복수의 NVDIMM-F 중 하나의 NVDIMM-F의 메타 파티션 내에, 각각의 단일 FSI를 위해 메타 데이터를 저장하는 것을 포함할 수 있다. 메타 파티션 내의 메타 데이터를 저장하기 위해 관여하는(identified) NVDIMM-F와 연관된 NVDIMM-P는, 마스터 장치로서 불릴 수 있다.
제안된 단일 FSI 기술은, 컴포지트 메모리 장치의 NVDIMM-P 내의 각 NVDIMM-N을 위해, 다중 파일 인스턴스를 유지할 필요성을 제거할 수 있다. 이는, 하나 이상의 NVDIMM-P를 포함하는 컴포지트 메모리 장치에서, 요구되는 저장 공간을 효과적으로 감소시킬 수 있다.
또한, 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 방법은, 블록 인터페이스(block interface)를 이용하여 메타 데이터를 처리하기 위해 NVDIMM-F의 메타 파티션을 액세스 하는 것을 포함할 수 있다. 블록 인터페이스는, 메타 파티션의 블록 레벨 액세스(block level access)를 제공하는 비동기 인터페이스(asynchronous interface)일 수 있다.
모든 NVDIMM-N의 메타 데이터는, NVDIMM-N의 외부인, 그룹의 마스터 장치(NVDIMM-F) 상에 저장되기 때문에, 그룹의 각 NVDIMM-N의 전체 NVDIMM-N 영역은 사용자 데이터를 위해 이용될 수 있다. 따라서, NVDIMM-N의 저장 공간은 증가될 수 있고, NVDIMM-N의 바이트 당 비용은 효율적으로 감소될 수 있다.
그룹의 각 NVDIMM-N에 상응하는 NVDIMM-N 영역의 사용자 데이터는, 저장 인터페이스(store interface)를 이용하여 액세스될 수 있다. 저장 인터페이스는, NVDIMM-N 영역의 바이트 레벨 액세스(byte level access)를 제공하는 동기 인터페이스(synchronous interface)일 수 있다. 따라서, 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 방법에 의해 제안된 파일 시스템은, 그룹 내의 NVDIMM-N들로부터 사용자 데이터에 대해 병렬 액세스(parallel access)하는 것을 가능하게 할 수 있고, 장치 액세스 지연 속도를 감소시킬 수 있다.
컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 방법은, 블록 인터페이스 및 저장 인터페이스와 같은 장치 인터페이스를 인식하는 파일 시스템을 제공할 수 있다. 또한, 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 방법은, NVDIMM-F의 메타 파티션으로부터의 메타 데이터 액세스 및 NVDIMM-N 영역으로부터의 사용자 데이터 액세스를 위해 파일 시스템을 알맞게 활용하는 것을 제공할 수 있다.
몇몇 실시예에서, 전자 장치는 NVDIMM-P와 같은 컴포지트 메모리를 포함하는 컴퓨팅 및/도는 스토리지 장치일 수 있다. 전자 장치는, 예를 들어, 파일 서버, 금융 및 실시간 트랜잭션 서버(financial and real time transaction servers), 엔터프라이즈 서버(enterprise servers) 등일 수 있다.
더욱 상세하게, 도 1 내지 도 5를 참조하여 실시예들을 설명한다. 유사한 참조 부호는 도면 전체에서 일관되게 대응되는 특징을 나타낼 수 있다.
도 1은 본 발명의 몇몇 실시예들에 따른 전자 장치(100)에서, 컴포지트 메모리 장치에 파일 시스템을 제공하는 전자 장치(100)의 복수의 구성 요소들을 도시한 도면이다.
도 1을 참조하면, 전자 장치(100)는, 본 발명의 기술적 사상에 따라 도시되었다. 몇몇 실시예에서, 전자 장치(100)는, 적어도 하나의 프로세서(102), 입/출력 인터페이스(104)(예를 들어, 구성 가능한 사용자 인터페이스(configurable user interface)), 메모리(106)를 포함할 수 있다. 적어도 하나의 프로세서(102)는, 하나 이상의 마이크로프로세서(microprocessors), 마이크로컴퓨터(microcomputers), 마이크로컨트롤러(microcontrollers), 디지털 싱글 프로세서(digital signal processors), 중앙 처리 장치(central processing units), 상태 기계(state machines), 논리 회로망(logic circuitries), 및/또는 동작 명령에 기초하여 신호를 처리하는 어떠한 장치로 구현될 수 있다. 다른 기능들 중, 적어도 하나의 프로세서(102)는, 메모리(106)에 저장된 컴퓨터 판독 가능 명령(computer-readable instructions)을 호출(fetch)하고 실행할 수 있다.
입/출력 인터페이스(104)는, 예를 들어, 웹 인터페이스(web interface), 그래픽 사용자 인터페이스(graphical user interface)와 같은 다양한 소프트웨어 및 하드웨어 인터페이스를 포함할 수 있다. 입/출력 인터페이스(104)는, 전자 장치(100)가 다른 장치들과 커뮤니케이션(communicate) 하도록 할 수 있다. 입/출력 인터페이스(104)는, 유선 네트워크 및 무선 네트워크를 포함하여, 다양한 네트워크와 프로토콜 타입 사이의 다중 통신(multiple communication)을 용이하게 할 수 있다. 유선 네트워크는, 예를 들어, LAN(Local Area Network), 케이블 등일 수 있다. 무선 네트워크는, 예를 들어, WAN(Wide Area Network), 무선 전화기(cellular), D2D 커뮤니케이션 네트워크(Device to Device communication network), Wi-Fi 네트워크 등일 수 있다.
몇몇 실시예에서, 메모리(106)는 어플리케이션(108), 모듈(110), 하나 이상의 NVDIMM-P(116)를 포함하는 컴포지트 메모리 장치 및 데이터(118)를 포함할 수 있다. 적어도 하나의 프로세서(102)와 메모리(106) 간의 인터페이스인 시스템 메모리 컨트롤러 인터페이스는, 다중 채널을 제공할 수 있다. 각 채널은, NVDIMM(116)과 같은 메모리 장치를 위한 다중 슬롯(multiple slot)을 포함할 수 있다. 따라서, NVDIMM(116)은 메모리 컨트롤러 인터페이스의 채널을 통해 분산되어 있을 수 있다.
모듈(110)은 루틴(routines), 프로그램, 객체(objects), 컴포넌트(components), 데이터 구조(data structures) 등, 특정한 임무, 기능 또는 특정한 추상 데이터 타입(abstract data types)을 수행하는 것일 수 있다. 몇몇 실시예에서, 모듈(110)은 파일 시스템(114)을 포함할 수 있다.
파일 시스템(114)은, 하나 이상의 NVDIMM-P(116)의 위치 정보에 기초하여 컴포지트 메모리 장치의 NVDIMM-P들을 하나 이상의 그룹으로 구조화(organize)하는 파일 시스템 모듈(114)을 포함할 수 있다. 따라서, 서로 다른 채널에 위치하는 NVDIMM-P(116)들은, 단일 그룹으로 그룹화될 수 있다.
몇몇 실시예에서, 파일 시스템(112)은, 복수의 NVDIMM-P(116) 내에 있는 복수의 NVDIMM-N들에 대한 NVDIMM-N 인식 파일 시스템일 수 있다. 파일 시스템(112)은 NVDIMM-P의 단일 그룹 내의 하나 이상의 NVDIMM-N을 위해, 단일 파일 인스턴스(FSI)를 사용할 수 있다. 따라서, 단일 FSI는, 동일 그룹 내의 모든 NVDIMM-N을 위해 제공될 수 있다.
나아가, 파일 시스템 모듈(114)은, 동일 그룹에 속하는 복수의 NVDIMM-F 중 하나의 NVDIMM-F의 메타 파티션 내의 메타 데이터를 단일 FSI에 저장할 수 있다. 메타 파티션 내의 메타 데이터를 저장하기 위해 관여하는 NVDIMM-F와 연관된 NVDIMM-P는, 마스터 장치로서 불릴 수 있다. 파일 시스템(112)의 포맷 유틸리티는, 이용 가능하고 적절한 NVDIMM-P 장치의 NVDIMM-N 부분을 그룹화하고, 메타 파티션에 메타를 기재할 수 있다. 따라서, 제안된 단일 FSI 기술은, 컴포지트 메모리 장치의 각 NVDIMM-N를 위한 다중 파일 인스턴스를 유지할 필요성을 제거할 수 있다.
나아가, 파일 시스템 모듈(114)은 블록 인터페이스를 이용하여 메타 데이터를 처리하기 위해 NVDIMM-F의 메타 파티션을 액세스 할 수 있다. 블록 인터페이스는, 메타 파티션의 블록 레벨 액세스를 제공하는 비동기 인터페이스일 수 있다. 모든 NVDIMM-N의 메타 데이터는, NVDIMM-N 외부인 그룹의 마스터 장치(NVDIMM-F) 상에 저장되기 때문에, 그룹의 각 NVDIMM-N의 전체 NVDIMM-N 영역은 사용자 데이터를 위해 이용될 수 있다. 따라서, NVDIMM-N의 저장 공간은 증가될 수 있고, NVDIMM-N의 바이트 당 비용은 효율적으로 감소될 수 있다.
그룹의 각 NVDIMM-N에 상응하는 NVDIMM-N 영역의 사용자 데이터는, 저장 인터페이스를 이용하여 액세스될 수 있다. 따라서, 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 방법에 의해 제안된 파일 시스템(112)은, 단일 그룹 내의 NVDIMM-N들로부터 사용자 데이터에 대한 병렬 액세스를 가능하게 할 수 있고, 장치 액세스 지연 속도를 감소시킬 수 있다.
사용자 데이터 영역에 대한 병렬 액세스는, 병렬 액세스 능력(capability)에 기초하여, 포맷 시간에 선택된 장치(NVDIMM-P)의 위치 때문에 가능할 수 있다. 각기 다른 채널의 그룹에서 장치들이 선택되기 때문에, 장치들은 병렬적으로 액세스될 수 있다. 파일 시스템(112)은, 도 3a, 도 3b 및 도 4와 함께 설명한다.
모듈(110)은, 전자 장치(100)의 기능 및 어플리케이션(108)을 보충하는 코딩된 명령(coded instruction) 또는 프로그램을 포함할 수 있다. 데이터(118)는, 다른 것들 사이에서, 하나 이상의 모듈(110)에 의해 생성되고, 수신되고, 처리된 저장 데이터를 위한 저장소(repository)로서 사용될 수 있다. 한편, 구성 요소들의 이름과 전자 장치(100)의 모듈은 예시적인 것이며, 제한하는 것으로 해석될 필요는 없다.
도 2는 본 발명의 몇몇 실시예들에 따른 컴포지트 메모리 장치를 포함하는 전자 장치(100)에 파일 시스템(112)을 제공하는 방법(200)을 도시한 순서도이다.
컴포지트 메모리 장치는, 복수의 NVDIMM-P(116)를 포함할 수 있다. 각 NVDIMM-P(116)는 NVDIMM-N 및 NVDIMM-F의 조합을 포함할 수 있다. 적어도 하나의 프로세서(102)와 메모리(106) 간의 인터페이스인 시스템 메모리 컨트롤러 인터페이스는, 다중 채널을 제공할 수 있다. 각 채널은 NVDIMM(116)과 같은 메모리 장치를 위한 다중 슬롯을 포함할 수 있다. 따라서, NVDIMM(116)은 메모리 컨트롤러 인터페이스의 채널을 통해 분산되어 있을 수 있다.
단계(202)에서, 방법(200)은, 파일 시스템 모듈(114)이 채널을 통해 분산되어 있는 NVDIMM-P(116)를 하나 이상의 그룹으로 구조화(organize)하는 것을 포함할 수 있다. 그룹은 도 4에 도시되어 있는 장치 번호나 채널 번호와 같은, 위치 정보에 기초하여 구조화될 수 있다. 따라서, 각기 다른 채널에 위치해있는 NVDIMM-P들은, 단일 그룹으로 그룹화될 수 있다.
단계(204)에서, 방법(200)은, 파일 시스템 모듈(114)이, 그룹 내의 각 NVDIMM-N를 위해 분리된 파일 시스템을 생성하는 것 대신, 하나 이상의 그룹들 중 각 그룹에 대해 단일 파일 시스템 인스턴스(FSI)를 생성하는 것을 포함할 수 있다. 단일 FSI는 동일 그룹 내의 모든 NVDIMM-N를 위해 사용될 수 있다.
단계(206)에서, 방법(200)은, 파일 시스템 모듈(114)이 동일 그룹에 속하는 복수의 NVDIMM-F 중 하나의 NVDIMM-F의 메타 파티션에, 생성된 메타 데이터를 FSI에 저장하는 것을 포함할 수 있다. 따라서, 각 그룹의 하나의 NVDIMM-F는, 메타 파티션으로 분할된 위치 내에 대응되는 그룹에 대한 메타 데이터를 보유할 수 있다.
방법(200)은, 파일 시스템 모듈(114)이 노멀 디스크 파티셔닝 툴(normal disk partitioning tool)을 사용해 NVDIMM-F를 분할하고, 동일 그룹의 모든 NVDIMM-N의 메타 데이터를 저장하기 위한 메타 파티션으로서 하나의 메타 파티션을 확인 및 예약(reserve)하는 것을 포함할 수 있다. 파일 시스템(112)의 포맷 유틸리티는, 이용 가능하고 적절한 NVDIMM-P 장치의 NVDIMM-N 부분을 그룹화하고, 메타 파티션에 메타를 기재할 수 있다. 모든 그룹은, 메타 파티션 내의 메타 데이터를 저장하기 위해 선택된 NVDIMM-F와 연관된 하나의 NVDIMM-P를 확인할 수 있다. 이 NVDIMM-P는, 마스터 장치로 불릴 수도 있다.
따라서, 제안된 단일 FSI 기술은, 컴포지트 메모리 장치 내의 각 NVDIMM-N을 위한 다중 파일 인스턴스를 유지하도록 하는 필요성을 제거할 수 있다. 이는 하나 이상의 NVDIMM-P을 포함하는 컴포지트 메모리 장치에서 요구되는 저장 공간을 효율적으로 감소시킬 수 있다.
단계(208)에서, 방법(200)은, 파일 시스템 모듈(114)이, 블록 인터페이스를 이용하여 메타 데이터를 처리하기 위해, NVDIMM-F의 메타 파티션을 액세스 하는 것을 포함할 수 있다. 블록 인터페이스는, 메타 파티션의 블록 레벨 액세스를 제공하는 비동기 인터페이스일 수 있다. 모든 NVDIMM-N에 대한 메타 데이터가 NVDIMM-N 외부인 그룹의 마스터 장치(NVDIMM-F)에 저장되기 때문에, 그룹의 각 NVDIMM-N의 전체 NVDIMM-N 영역은, 사용자 데이터를 위해 이용될 수 있다. 이는 사용자 데이터를 위한 NVDIMM-N 저장 공간을 증가시킬 수 있고, NVDIMM-N의 바이트 당 비용을 효율적으로 감소시킬 수 있다.
그룹의 각 NVDIMM-N에 대응되는 NVDIMM-N 영역의 사용자 데이터는, 저장 인터페이스를 이용하여 액세스될 수 있다. 저장 인터페이스는, NVDIMM-N 영역의 바이트 레벨 액세스를 제공하는 동기 인터페이스일 수 있다. 따라서, 방법(200)에 의해 제안된 파일 시스템(112)은, 동일 그룹의 NVDIMM-N으로부터 사용자 데이터를 병렬 액세스 하는 것을 허용할 수 있고, 장치 액세스 지연 속도를 감소시킬 수 있다.
병렬 액세스는 각기 다른 채널 내에 위치하는 장치들의 물리적인 위치 때문에 가능할 수 있다. 나아가, NVDIMM-N로부터 사용자 데이터를 액세스 하는데에 이용되는 바이트 인터페이스는, NVDIMM-F로부터 데이터를 액세스 하는데에 이용되는 블록 인터페이스에 비해 빠른 인터페이스이다.
방법(200)은 블록 인터페이스 및 저장 인터페이스와 같은 장치 인터페이스를 인식하는 파일 시스템(112)을 제공한다. 또한, 방법(200)은 메타 부분으로부터 메타 데이터를 액세스하고 NVDIMM-N으로부터 사용자 데이터를 액세스 하기 위해 파일 시스템(112)을 적절히 활용하는 것을 제공할 수 있다.
방법(200)의 다양한 동작은 설명된 순서와 상이한 순서로, 또는 동시에 수행될 수 있다. 나아가, 몇몇 실시예에서, 몇몇 동작은 도 2에서 생략되었을 수 있다.
도 3a는 본 발명의 몇몇 실시예들에 따른 NVDIMM-P(300)에 집적된 NVDIMM-N(302)의 메타 데이터 및 사용자 데이터를 위한 저장 공간의 분배와 함께 NVDIMM-P를 도시한 도면이다. 도 3은, NVDIMM-N(302)와 NVDIMM-F(304)를 포함하는 NVDIMM-P(300)를 나타내고 있다.
NVDIMM-N(302)을 위한 FSI를 생성하는 파일 시스템(112)은, NVDIMM-F의 메타 파티션(308)에 NVDIMM-N(302)의 메타 데이터를 저장할 수 있다. 메타 파티션9308)은 NVDIMM-F(304)의 복수의 노멀 디스크 파티션(normal disk partitions)(306) 중 하나의 파티션일 수 있다. 따라서, NVDIMM-N(302)의 전체 N-영역(310)은, NVDIMM-N(302)에 저장될 사용자 데이터를 위해 이용될 수 있다. 노멀 디스크 파티션은, 디스트 포맷 중에 생성될 수 있다.
도 3b는 본 발명의 몇몇 실시예들에 따른 그룹 내의 복수의 NVDIMM-N을 위해, 단일 그룹 내에서 단일 파일 시스템 인스턴스(FSI)와 함께 복수의 NVDIMM-P(312)를 그룹화하는 것을 도시한 도면이다. 도 3은 메모리(106)의 컴포지트 장치 환경에서, 파일 시스템(112)에 의해 단일 그룹(점선으로 표시함)으로 함께 그룹화된 NVDIMM-P1, NVDIMM-P2 및 NVDIMM-P3를 도시하고 있다.
단일 FSI(314)는, 그룹 내의 모든 NVDIMM-P1, NVDIMM-P2 및 NVDIMM-P3을 위해 생성될 수 있다. 또한, NVDIMM-P1, NVDIMM-P2 및 NVDIMM-P3의 모든 해당 NVDIMM-N을 위한 메타 데이터는, NVDIMM-P2의 NVDIMM-F 영역의 메타 파티션에 저장될 수 있다. 따라서, 사용자 데이터를 위한 NVDIMM-P1, NVDIMM-P2 및 NVDIMM-P3의 전체 NVDIMM-N 영역은 남을 수 있다.
도 4는 본 발명의 몇몇 실시예들에 따른 컴포지트 메모리 장치(400)의 채널에 걸쳐 확산되어 있는 그룹 내의 NVDIMM-P와 함께, 컴포지트 메모리 장치(400)의 복수의 NVDIMM-P(418)를 복수의 그룹으로 그룹화하는 것을 도시한 예시적인 도면이다. 도 4는 채널 C0(410)의 D0, D1 및 채널 C1(412)의 D0, D1을 포함하는 복수의 NVDIMM-P(418)가, 파일 시스템(112)에 의해 각각 두 그룹(G0(402), G1(404))로 구조화된 것을 도시하고 있다.
그룹(G0)은, 채널(C0)의 장치(D0) 및 채널(C1)의 장치(D0)를 포함할 수 있다. 그룹(G0)은, C0D0 및 C1D0의 위치 정보 또는 물리적 위치를 갖는 장치들일 수 있다. 유사하게, 그룹(G1)은, 채널(C0)의 장치(D1) 및 채널(C1)의 장치(D1)를 포함할 수 있다. 그룹(G1)은, C0D1 및 C1D1의 물리적 위치를 갖는 장치들일 수 있다. 각 그룹들(G0, G1)을 위해, FSI-0(406) 및 FSI-1(408)가 각각 생성될 수 있다.
나아가, FSI-0(406)에 대한 메타 데이터는, 그룹(G0)에서 선택된 어느 하나의 NVDIMM-F의 메타 파티션에 저장될 수 있다. 이와 유사하게, FSI-1(408)에 대한 메타 데이터는, 그룹(G1)에서 선택된 어느 하나의 NVDIMM-F의 메타 파티션에 저장될 수 있다.
파일 시스템(112)의 포맷 유틸리티는, 이용 가능하고 적합한 NVDIMM-P 장치의 NVDIMM-N 부분을 그룹화 하는 것일 수 있다. 또한, 파일 시스템(112)의 포맷 유틸리티는, 장치 포맷 중에, 메타 파티션에 메타를 기록하는 것일 수 있다. 이러한 정보(메타 데이터)는, 마스터 장치(그룹을 위해 선택된 NVDIMM-P)의 선택된 파티션(메타 파티션) 상의 수퍼블록(superblock)에 저장될 수 있다.
그룹 내에서 장치의 순서는, 데이터가 장치에서 제거되는 방법을 결정할 수 있기 때문에, 매우 중요하다. 사용자는 부트(boot)들 사이에서 장치들을 교환할 수 있기 때문에, 순서를 결정하기 위해서 장치의 위치에 의존할 수는 없다. 올바는 순서를 얻기 위해, 파일 시스템(112)은, 포맷 당시 각 장치의 NVDIMM-N 영역의 순서 번호(sequence number)를 기록할 수 있다.
각 NVDIMM-N 장치의 제1 블록은, 파일 시스템(112)의 마운트 타임(mount time)에서 읽혀진 순서 번호를 가질 수 있다. 이에 기초하여, 파일 시스템(112)은 교환 여부를 발견할 수 있고, 순서를 정정할 수 있다. 이러한 정보(메타 데이터)는 또한, 장치가 채널에 걸쳐 교환된 경우에도 사용될 수 있다. 이러한 경우, 사용자는 교환에 대해 알릴 수 있다.
따라서, 도 4에 도시된 바와 같이, FSI-0를 포함하는 그룹(G0) 및 FSI-1를 포함하는 G1과 함께, 컴포지트 메모리 장치(400) 내의 NVDIMM-N 영역의 로지컬 데이터 영역(410)은, 두 개의 로지컬 블록(414, 416)을 포함할 수 있다.
그룹 내의 모든 NVDIMM-N의 NVDIMM-N 영역에 상응하는 메타 데이터는, 그룹의 하나의 NVDIMM-F에 저장될 수 있다. 따라서, 그룹 내의 전체 NVDIMM-N 영역은 사용자 데이터 영역으로 이용될 수 있다. 파일 시스템(112)은 그룹(G0, G1)에 대한 메타 데이터를 액세스 하기 위해, 블록 인터페이스를 이용할 수 있다. 파일 시스템(112)은, 그룹 내의 각 NVDIMM-N의 사용자 데이터를 동시에 액세스 하기 위한, 저장 인터페이스를 이용할 수 있다. 그룹 장치들이 병렬로 액세스 되기 때문에, 장치 액세스 지연 속도는 감소될 수 있다.
효과적인 장치 액세스 지연 속도는, 장치 지연 속도를 특정 그룹의 장치 개수로 나눔으로써 계산될 수 있다.
도 5는 본 발명의 몇몇 실시예들에 따른 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 방법을 이용하여 구현된 컴퓨팅 환경을 도시한 도면이다.
도시된 바와 같이, 컴퓨팅 환경(502)은, ALU(Arithmetic Logic Unit)(508) 및 제어부(control unit)(506)를 포함하는 적어도 하나의 처리부(processing unit)(504), 메모리(510), 저장부(storage unit)(512), 복수의 네트워크 장치(514) 및 복수의 입/출력 장치(516)를 포함할 수 있다.
처리부(504)는 알고리즘의 명령(instruction)들을 처리할 수 있다. 처리부(504)는 프로세스를 수행하기 위해, 제어부(506)로부터 커맨드(command)를 수신할 수 있다. 나아가, 명령의 실행과 연관된 그 어떤 논리 및 산술 연산은, ALU(508)의 도움으로 계산될 수 있다.
전체적인 컴퓨팅 환경(502)은, 다수의 동종 및/또는 이종 코어, 다른 종류의 복수의 CPU, 특정 매체 및 다른 가속기(accelerator)를 포함할 수 있다. 처리부(504)는, 알고리즘의 명령을 처리할 수 있다. 나아가, 복수의 처리부(504)는, 단일 칩 또는 복수의 칩 상에 위치할 수 있다.
실행을 위해 요구되는 코드 및 명령을 포함하는 알고리즘은, 메모리(510), 저장부(512) 또는 둘 다에 저장될 수 있다. 실행 시에, 명령은 대응하는 메모리(510) 및/또는 저장부(512)로부터 꺼내질 수 있다. 또한, 실행 시에, 명령은 처리부(504)에 의해 실행될 수 있다. 하드웨어 구현의 경우, 다양한 네트워킹 장치(514) 또는 외부 입/출력 장치(516)는, 네트워크 부(networking unit) 및 입/출력 장치부(I/O device unit)를 통해 실현되도록, 컴퓨팅 환경에 연결될 수 있다.
본 명세서에 개시된 실시예들은, 네트워크 요소들을 제어하기 위해 네트워크 관리 기능을 수행하고, 적어도 하나의 하드웨어 장치에서 실행되는 적어도 하나의 소프트웨어 프로그램을 통해 구현될 수 있다. 도 1 내지 도 5에 도시된 네트워크 요소들은, 적어도 하나의 하드웨어 장치 또는 하드웨어 장치와 소프트웨어 모듈의 조합일 수 있는 블록(block)을 포함할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
102: 프로세서 112: 파일 시스템
114: 파일 시스템 모듈 116: NVDIMM-P

Claims (11)

  1. 전자 장치의 컴포지트 메모리 장치(composite memory device)의 적어도 하나의 NVDIMM-P(Non-Volatile Dual in-line Memory Module-P)를, 상기 적어도 하나의 NVDIMM-P의 위치 정보에 기초하여, 적어도 하나의 그룹으로 구조화(organizing) 하되, 상기 적어도 하나의 그룹은 제1 그룹과 제2 그룹을 포함하고 각각의 그룹은 상기 적어도 하나의 NVDIMM-P를 포함하고, 상기 적어도 하나의 NVDIMM-P는, NVDIMM-N과 NVDIMM-F를 포함하고,
    상기 적어도 하나의 그룹 중 각 그룹에 대해 단일 파일 시스템 인스턴스(FSI: File System Instance)를 생성하되,
    상기 제1 그룹에 대한 단일 파일 시스템 인스턴스는 상기 제1 그룹 내 하나의 NVDIMM-F에 저장되고, 상기 제1 그룹의 상기 단일 파일 시스템 인스턴스는 상기 제1 그룹 내 모든 NVDIMM-N를 위해 제공되는 것을 포함하는, 전자 장치에 파일 시스템을 제공하는 방법.
  2. 삭제
  3. 제 1항에 있어서,
    상기 적어도 하나의 그룹 중 각 그룹에 대응되는 상기 단일 파일 시스템 인스턴스에 대한 메타 데이터(meta data)는, 상기 적어도 하나의 그룹 중 각 그룹 내의 적어도 하나의 NVDIMM-F 중 하나의 NVDIMM-F의 메타 파티션(meta partition)에 저장되는, 전자 장치에 파일 시스템을 제공하는 방법.
  4. 제 3항에 있어서,
    상기 적어도 하나의 NVDIMM-F 중 하나의 NVDIMM-F의 메타 파티션에 저장되는 상기 메타 데이터는, 블록 인터페이스(block interface)를 이용하여 액세스 되고,
    상기 블록 인터페이스는, 상기 적어도 하나의 NVDIMM-F 중 하나의 NVDIMM-F의 메타 파티션의 블록 레벨 액세스(block level access)를 제공하는 비동기 인터페이스(asynchronous interface)인, 전자 장치에 파일 시스템을 제공하는 방법.
  5. 제 3항에 있어서,
    상기 적어도 하나의 그룹 중 각 그룹의 적어도 하나의 NVDIMM-N에 대응되는 NVDIMM-N 영역은, 사용자 데이터를 위해 이용되고,
    상기 사용자 데이터는, 저장 인터페이스(store interface)를 이용하여 액세스될 수 있고,
    상기 저장 인터페이스는, 상기 NVDIMM-N 영역의 바이트 레벨 액세스(byte level access)를 제공하는 동기 인터페이스(synchronous interface)인, 전자 장치에 파일 시스템을 제공하는 방법.
  6. 전자 장치는 파일 시스템 모듈을 포함하고,
    상기 파일 시스템 모듈은, 상기 전자 장치의 컴포지트 메모리 장치(composite memory device)의 적어도 하나의 NVDIMM-P(Non-Volatile Dual in-line Memory Module-P)를, 상기 적어도 하나의 NVDIMM-P의 위치 정보에 기초하여 적어도 하나의 그룹으로 구조화하되, 상기 적어도 하나의 그룹은 제1 그룹과 제2 그룹을 포함하고 각각의 그룹은 상기 적어도 하나의 NVDIMM-P를 포함하고, 상기 적어도 하나의 NVDIMM-P는, NVDIMM-N과 NVDIMM-F를 포함하고,
    상기 적어도 하나의 그룹 중 각 그룹에 대해 단일 파일 시스템 인스턴스(FSI: File System Instance)를 생성하되,
    상기 제1 그룹에 대한 단일 파일 시스템 인스턴스는 상기 제1 그룹 내 하나의 NVDIMM-F에 저장되고, 상기 제1 그룹의 상기 단일 파일 시스템 인스턴스는 상기 제1 그룹 내 모든 NVDIMM-N를 위해 제공되고, 상기 제2 그룹에 대한 단일 파일 시스템 인스턴스는 상기 제2 그룹 내 하나의 NVDIMM-F에 저장되고, 상기 제2 그룹의 상기 단일 파일 시스템 인스턴스는 상기 제2 그룹 내 모든 NVDIMM-N를 위해 제공되는, 파일 시스템을 제공하는 전자 장치.
  7. 삭제
  8. 제 6항에 있어서,
    상기 파일 시스템 모듈은, 상기 적어도 하나의 그룹 중 각 그룹에 대응되는 상기 단일 파일 시스템 인스턴스에 대한 메타 데이터를, 상기 적어도 하나의 그룹 중 각 그룹 내의 적어도 하나의 NVDIMM-F 중 하나의 NVDIMM-F의 메타 파티션에 저장하는, 파일 시스템을 제공하는 전자 장치.
  9. 제 8항에 있어서,
    상기 파일 시스템 모듈은, 블록 인터페이스(block interface)를 이용하여 상기 적어도 하나의 NVDIMM-F 중 하나의 NVDIMM-F의 메타 파티션에 저장되는 메타 데이터를 액세스 하고,
    상기 블록 인터페이스는, 상기 메타 파티션의 블록 레벨 액세스(block level access)를 제공하는 비동기 인터페이스(asynchronous interface)인, 파일 시스템을 제공하는 전자 장치.
  10. 제 8항에 있어서,
    상기 적어도 하나의 그룹 중 각 그룹의 적어도 하나의 NVDIMM-N에 대응되는 NVDIMM-N 영역은 사용자 데이터를 위해 이용되고,
    상기 파일 시스템 모듈은, 저장 인터페이스(store interface)를 이용하여 상기 사용자 데이터를 액세스 할 수 있고,
    상기 저장 인터페이스는, 상기 NVDIMM-N 영역의 바이트 레벨 액세스(byte level access)를 제공하는 동기 인터페이스(synchronous interface)인, 파일 시스템을 제공하는 전자 장치.
  11. 프로세서; 및
    상기 프로세서와 커플링된(coupled to) 컴퓨터로 판독 가능한 비일시적인 기록 매체(non-transitory computer-readable medium)를 포함하고,
    상기 컴퓨터로 판독 가능한 비일시적인 기록 매체는, 상기 프로세서에 의해 실행될 때 상기 프로세서가 동작을 수행하도록 사용될 수 있는(operable) 컴퓨터 프로그램 명령을 저장하고,
    상기 동작은,
    컴포지트 메모리 장치(composite memory device)의 적어도 하나의 NVDIMM-P(Non-Volatile Dual in-line Memory Module-P)를, 상기 적어도 하나의 NVDIMM-P의 위치 정보에 기초하여, 적어도 하나의 그룹으로 구조화(organizing) 하되, 상기 적어도 하나의 그룹은 제1 그룹과 제2 그룹을 포함하고 각각의 그룹은 상기 적어도 하나의 NVDIMM-P를 포함하고, 상기 적어도 하나의 NVDIMM-P는, NVDIMM-N과 NVDIMM-F를 포함하고,
    상기 적어도 하나의 그룹 중 각 그룹에 대해 단일 파일 시스템 인스턴스(FSI: File System Instance)를 생성하되, 상기 제1 그룹에 대한 단일 파일 시스템 인스턴스는 상기 제1 그룹 내 하나의 NVDIMM-F에 저장되고, 상기 제1 그룹의 상기 단일 파일 시스템 인스턴스는 상기 제1 그룹 내 모든 NVDIMM-N를 위해 제공되는 것을 포함하는 컴퓨터 장치(computer product).
KR1020160050059A 2016-02-05 2016-04-25 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법 KR102646619B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN201641004286 2016-02-05
IN201641004286 2016-02-05

Publications (2)

Publication Number Publication Date
KR20170093666A KR20170093666A (ko) 2017-08-16
KR102646619B1 true KR102646619B1 (ko) 2024-03-11

Family

ID=59497716

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160050059A KR102646619B1 (ko) 2016-02-05 2016-04-25 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법

Country Status (2)

Country Link
US (1) US10048886B2 (ko)
KR (1) KR102646619B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102353859B1 (ko) * 2017-11-01 2022-01-19 삼성전자주식회사 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈
US10929291B2 (en) 2017-12-06 2021-02-23 MemRay Corporation Memory controlling device and computing device including the same
KR101936951B1 (ko) 2018-04-11 2019-01-11 주식회사 맴레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템
KR101952827B1 (ko) 2018-06-29 2019-02-27 주식회사 맴레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템
US10636455B2 (en) 2018-07-12 2020-04-28 International Business Machines Corporation Enhanced NVDIMM architecture
US11334284B2 (en) * 2018-09-24 2022-05-17 Samsung Electronics Co., Ltd. Database offloading engine
US10901657B2 (en) 2018-11-29 2021-01-26 International Business Machines Corporation Dynamic write credit buffer management of non-volatile dual inline memory module

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160011802A1 (en) 2014-07-09 2016-01-14 Dell Products, Lp System and Method for Enabling Transportability of a Non Volatile Dual Inline Memory Module
US20170160980A1 (en) 2015-12-07 2017-06-08 Plexistor Ltd. Accelerating concurrent access to a file in a memory-based file system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9348705B1 (en) * 2014-06-26 2016-05-24 Inphi Corporation Memory controller system with non-volatile backup storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160011802A1 (en) 2014-07-09 2016-01-14 Dell Products, Lp System and Method for Enabling Transportability of a Non Volatile Dual Inline Memory Module
US20170160980A1 (en) 2015-12-07 2017-06-08 Plexistor Ltd. Accelerating concurrent access to a file in a memory-based file system

Also Published As

Publication number Publication date
US20170228190A1 (en) 2017-08-10
KR20170093666A (ko) 2017-08-16
US10048886B2 (en) 2018-08-14

Similar Documents

Publication Publication Date Title
KR102646619B1 (ko) 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법
US10374792B1 (en) Layout-independent cryptographic stamp of a distributed dataset
KR102137761B1 (ko) 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법
US9619509B2 (en) Database auditing for bulk operations
US9817754B2 (en) Flash memory management
Lee et al. ActiveSort: Efficient external sorting using active SSDs in the MapReduce framework
US20200210114A1 (en) Networked shuffle storage
Ma et al. Dependency-aware data locality for MapReduce
JP2015528957A (ja) 分散ファイルシステム、ファイルアクセス方法及びクライアントデバイス
CN113590508A (zh) 动态可重构的内存地址映射方法及装置
Merceedi et al. A comprehensive survey for hadoop distributed file system
US20230028071A1 (en) Memory module, system including the same, and operation method of memory module
US20240220334A1 (en) Data processing method in distributed system, and related system
US10592493B1 (en) Spot-instanced bulk data uploading
CN103049546B (zh) 一种管理、访问系统日志的方法和装置
US10817510B1 (en) Systems and methods for navigating through a hierarchy of nodes stored in a database
WO2019223445A1 (zh) 硬盘读写控制方法、装置、电子设备及存储介质
US8688889B2 (en) Virtual USB key for blade server
CN108139980B (zh) 用于合并存储器页的方法和存储器合并功能
US9305036B2 (en) Data set management using transient data structures
CN113986846A (zh) 数据处理方法、系统、设备及存储介质
US9176910B2 (en) Sending a next request to a resource before a completion interrupt for a previous request
KR101772955B1 (ko) 맵리듀스 기반의 분산 처리 시스템에서 인덱스를 이용하여 레코드를 처리하는 방법
KR102365261B1 (ko) 전자시스템, 그 동작방법 및 그 메모리 장치의 동작방법
WO2015004571A1 (en) Method and system for implementing a bit array in a cache line

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant