KR20170130011A - 캐시 메모리를 포함하는 서버 장치 및 그것의 동작 방법 - Google Patents

캐시 메모리를 포함하는 서버 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20170130011A
KR20170130011A KR1020160060336A KR20160060336A KR20170130011A KR 20170130011 A KR20170130011 A KR 20170130011A KR 1020160060336 A KR1020160060336 A KR 1020160060336A KR 20160060336 A KR20160060336 A KR 20160060336A KR 20170130011 A KR20170130011 A KR 20170130011A
Authority
KR
South Korea
Prior art keywords
list
cache
page
memory
information
Prior art date
Application number
KR1020160060336A
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 삼성전자주식회사
Priority to KR1020160060336A priority Critical patent/KR20170130011A/ko
Priority to US15/443,097 priority patent/US20170336983A1/en
Publication of KR20170130011A publication Critical patent/KR20170130011A/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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/0253Garbage collection, i.e. reclamation of unreferenced 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/0877Cache access modes
    • G06F12/0882Page mode
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid 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/45Caching of specific data in cache memory
    • G06F2212/452Instruction code

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)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 프로세서가 캐시 메모리에 캐시 데이터를 저장하는 단계, 프로세서가 상기 캐시 데이터 중에서 제 1 특성을 갖는 제 1 캐시 데이터와 연관된 제 1 목록 및 제 2 특성을 갖는 제 2 캐시 데이터와 연관된 제 2 목록을 동작 메모리에 저장하는 단계, 제 1 목록 및 상기 제 2 목록 중 적어도 하나의 목록이 갱신되면, 프로세서가 갱신 정보를 캐시 메모리에 전달하는 단계를 포함한다.

Description

캐시 메모리를 포함하는 서버 장치 및 그것의 동작 방법{SERVER DEVICE INCLUDING CACHE MEMORY AND OPERATING METHOD THEREOF}
본 발명은 서버 장치에 관한 것으로, 더욱 상세하게는 캐시 메모리를 포함하는 서버 장치 및 그것의 동작 방법에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리 장치(Nonvolatile memory device)로 구분된다.
불휘발성 메모리 장치의 일종인 플래시 메모리는 대용량, 저소음, 저전력 등의 장점으로 인하여 다양한 분야에서 스토리지 장치로 널리 쓰인다. 특히, 플래시 메모리를 기반으로 구현된 솔리드 스테이트 드라이브(SSD)는 개인용 컴퓨터, 노트북, 워크 스테이션, 서버 시스템 등에서 대용량 스토리지로서 사용된다. 더불어 덮어쓰기가 가능하고, 불휘발성인 다양한 메모리 대용량 스토리지로 사용될 수 있다.
본 발명의 목적은 캐시 메모리 포함하는 서버 장치 및 그것의 동작 방법을 제공하는데 있다.
본 발명의 일 실시 예에 따르면, 프로세서가 캐시 메모리에 캐시 데이터를 저장하는 단계, 프로세서가 상기 캐시 데이터 중에서 제 1 특성을 갖는 제 1 캐시 데이터와 연관된 제 1 목록 및 제 2 특성을 갖는 제 2 캐시 데이터와 연관된 제 2 목록을 동작 메모리에 저장하는 단계, 제 1 목록 및 상기 제 2 목록 중 적어도 하나의 목록이 갱신되면, 프로세서가 갱신 정보를 캐시 메모리에 전달하는 단계를 포함하는 동작 방법이 제공된다.
본 발명의 일 실시 예에 따르면, 캐시 데이터를 저장하는 캐시 메모리, 복수의 하드 디스크 드라이브들을 포함하는 보조 기억 장치 및 캐시 데이터 중에서 제 1 특성을 갖는 제 1 캐시 데이터와 연관된 제 1 목록 및 제 2 특성을 갖는 제 2 캐시 데이터와 연관된 제 2 목록을 동작 메모리에 저장하는 프로세서를 포함하되, 프로세서는 제 1 목록 및 제 2 목록 중 적어도 하나의 목록이 갱신되면, 상기 프로세서가 갱신 정보를 상기 캐시 메모리에 전달하는 서버 장치가 제공된다.
본 발명의 실시 예에 따르면, 페이지 알고리즘에 의해 관리되는 목록들의 갱신 정보를 캐시 메모리에 전달함으로써, 향상된 성능 및 수명을 갖는 캐시 메모리 포함하는 서버 장치 및 그것의 동작 방법이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 서버 장치의 블록도를 보여준다.
도 2는 본 발명의 일 실시 예에 따른 캐시 매니저를 구체적으로 보여주는 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 캐시 매니저(CM)가 관리하는 목록들에 대한 개념도이다.
도 4는 본 발명의 일 실시 예에 따른 캐시 매니저에 의해 관리되는 목록들과 캐시 메모리의 관계를 설명하기 위한 개념도이다.
도 5는 본 발명의 일 실시 예에 따른 목록 변경 신호를 생성하는 캐시 매니저의 동작을 보여주는 순서도이다.
도 6 내지 도 9는 본 발명의 일 실시 예에 따른 목록 변경 신호의 생성 과정에 대한 개념도이다.
도 10 내지 도 13은 본 발명의 다른 실시 예에 따른 목록 변경 신호의 생성 과정에 대한 개념도이다.
도 14는 본 발명의 일 실시 예 에 따른 캐시 영역이 복수 개의 블록들을 포함하는 경우 캐시 매니저의 동작을 설명하기 위한 도면이다.
도 15는 본 발명의 일 실시 예에 따라 수신된 목록 변경 신호를 이용하여 블록별로 가중치를 부여하는 과정을 설명하기 위한 도면이다.
도 16은 본 발명의 일 실시 예에 따라 부여된 가중치를 기반으로 가비지 콜렉션을 수행하는 과정을 설명하기 위한 도면이다.
도 17은 본 발명의 다른 실시 예에 따른 메모리 셀 어레이를 보여주는 블록도이다.
전술한 특성 및 이하 상세한 설명은 모두 본 발명의 설명 및 이해를 돕기 위한 예시적인 사항이다. 즉, 본 발명은 이와 같은 실시 예에 한정되지 않고 다른 형태로 구체화될 수 있다. 다음 실시 형태들은 단지 본 발명을 완전히 개시하기 위한 예시이며, 본 발명이 속하는 기술 분야의 통상의 기술자들에게 본 발명을 전달하기 위한 설명이다. 따라서, 본 발명의 구성 요소들을 구현하기 위한 방법이 여럿 있는 경우에는, 이들 방법 중 특정한 것 또는 이와 동일성 있는 것 가운데 어떠한 것으로든 본 발명의 구현이 가능함을 분명히 할 필요가 있다.
본 명세서에서 어떤 구성이 특정 요소들을 포함한다는 언급이 있는 경우, 또는 어떤 과정이 특정 단계들을 포함한다는 언급이 있는 경우는, 그 외 다른 요소 또는 다른 단계들이 더 포함될 수 있음을 의미한다. 즉, 본 명세서에서 사용되는 용어들은 특정 실시 형태를 설명하기 위한 것일 뿐이고, 본 발명의 개념을 한정하기 위한 것이 아니다. 나아가, 발명의 이해를 돕기 위해 설명한 예시들은 그것의 상보적인 실시 예도 포함한다.
도 1은 본 발명의 일 실시 예에 따른 서버 장치의 블록도를 보여준다. 도 1을 참조하면, 서버 장치(1000)는 호스트 장치(100)와 보조 저장 장치(200)를 포함할 수 있다. 호스트 장치(100)는 호스트 프로세서(110) 및 캐시 메모리(120)를 포함할 수 있다.
호스트 프로세서(110)는 서버 장치(1000)의 전반적인 동작을 제어할 수 있다. 호스트 프로세서(110)는 캐시 매니저(CM, Cache Manager)를 이용해 후술될 캐시 메모리의 캐시 동작을 관리할 수 있다. 또한, 호스트 프로세서(110)는 동작 메모리(예로, DRAM)을 포함할 수 있다.
캐시 매니저(CM)는 프로그램 코드들로 구성된 소프트웨어 혹은 프로세서 내 별도의 하드웨어 장치로 구현될 수 있다. 캐시 매니저(CM)는 페이지 교체 알고리즘을 기반으로 동작할 수 있다. 예를 들어, 페이지 교체 알고리즘은 FIFO(First-In First Out)알고리즘, LRU(Least Recently Used) 알고리즘, LFU(Least Frequently Used) 알고리즘 또는 ARC(Adaptive Replacement Cache) 알고리즘일 수 있다.
캐시 매니저(CM)는 캐시 메모리(130)의 논리 어드레스(LBA)들과 논리 어드레스(LBA)에 대응된 데이터에 대한 정보를 목록 형식으로 관리할 수 있다. 또한, 캐시 매니저(CM)는 보조 저장 장치(200)의 논리 어드레스(LBA)들과 논리 어드레스에 대응된 데이터에 관한 정보를 목록 형식으로 관리할 수 있다. 이 경우 캐시 메모리(130)의 논리 어드레스(LBA)들과 보조 저장 장치(200)의 논리 어드레스(LBA)들은 다른 형식의 어드레스일 수 있다.
캐시 매니저(CM)는 목록을 참조하여 외부 장치(미도시)로부터의 요청 페이지가 캐시 메모리(120)에 존재하는지 또는 보조 저장 장치(200)에 존재하는지 여부를 판단할 수 있다.
예를 들어, 요청 페이지가 캐시 메모리(120)에 존재하는 경우(이후 '캐시 히트'라고 함), 캐시 매니저(CM)는 캐시 메모리(120)로부터 요청 페이지에 대응된 캐시 데이터를 외부 장치(미도시)로 출력하도록 제어할 수 있다.
반대로, 요청 페이지가 캐시 메모리(120)에 존재하지 않는 경우(이후 '캐시 미스'라고 함), 캐시 매니저(CM)는 캐시 메모리(120)로부터 요청 페이지에 대응된 데이터가 보조 저장 장치(200)에 존재하는지 여부를 판단한다. 만약 요청 페이지에 대응된 데이터가 보조 저장 장치(200)에 존재하면, 캐시 매니저(CM)는 해당 데이터를 캐시 메모리(120)로 출력하거나 외부 장치(미도시)로 바로 출력하도록 제어할 수 있다.
캐시 매니저(CM)는 위에 언급된 '캐시 히트' 또는 '캐시 미스'에 따라 목록의 갱신(목록들 사이의 페이지 정보의 변경 또는 목록들로부터 페이지 정보의 축출)이 있는 경우, 캐시 매니저(CM)는 갱신 정보를 생성하여 캐시 메모리(120)로 전달할 수 있다.
캐시 매니저(CM)의 갱신 정보의 생성 과정에 관하여는 후술될 도면들을 이용해 자세히 설명된다.
캐시 메모리(120)는 솔리드 스테이트 드라이브(SSD, Solid State Drive)를 포함할 수 있다. 그리고 캐시 메모리(120)는 메모리 컨트롤러(121), 디램(122) 및 메모리 셀 어레이(123)를 포함할 수 있다.
캐시 메모리(120)는 호스트 프로세서(110)로부터 전달된 갱신 정보를 기반으로 메모리 셀 어레이(123)에 저장된 캐시 데이터의 특성(예로, 핫 데이터 또는 콜드 데이터)을 판단할 수 있다. 갱신 정보를 기반으로 캐시 데이터의 특성을 판단하는 과정은 후술되는 도면들을 기반으로 자세히 설명된다.
메모리 컨트롤러(121)는 캐시 메모리(120)의 입출력(I/O) 동작을 관리할 수 있다. 예를 들어, 메모리 컨트롤러(121)는 호스트 프로세서(110)로부터 전달된 논리 어드레스(LBA)를 물리 어드레스(PBA)로 변환하는 동작을 수행할 수 있다.
메모리 컨트롤러(121)는 프로세서(110)로부터 전달된 갱신 정보를 디램(122)에 전달할 수 있다. 디램(122)은 호스트 프로세서(110)로부터 전달된 갱신 정보를 저장할 수 있다. 메모리 셀 어레이(123)는 복수의 메모리 블록들(미도시)을 포함할 수 있다. 메모리 블록들 각각은 복수의 페이지들(미도시)을 포함한다. 이러한 복수의 페이지들은 호스트 프로세서(110)의 캐시 매니저(CM)를 통해 관리될 수 있다.
보조 저장 장치(200)는 복수의 하드 디스크 드라이브(HDD, Hard Disk Drive)들을 포함할 수 있다. 본 발명의 일 실시 예에 따른 보조 저장 장치(200)는 캐시 메모리(120)보다 큰 저장 용량을 갖지만, 캐시 메모리(120)에 비해 느린 동작 속도를 갖는 것이 일반적이다.
도 2은 본 발명의 일 실시 예에 따른 캐시 매니저를 구체적으로 보여주는 블록도이다. 도 1 및 도 2를 참조하면, 앞서 언급한 바와 같이 캐시 매니저(CM)는 하드웨어 또는 소프트웨어로 구현될 수 있음은 이해될 것이다. 구체적으로, 도 2는 캐시 매니저(CM)가 소프트웨어로 구현된 경우의 내부 계층도를 보여준다.
캐시 매니저(CM)는 어플리케이션부(111), 운영체제(112) 및 디바이스 드라이버(113)을 포함한다.
어플리케이션부(111)는 일반적인 컴퓨터 운영체제에서 동작하는 여러 어플리케이션들의 집합을 가리킬 수 있다. 어플리케이션부(111)는 디스크 입출력(disk I/O)를 수행하는 다양한 종류의 어플리케이션들을 포함할 수 있다.
운영 체제(112)는 디스크 입출력(disk I/O)를 실행할 수 있도록 상위 계층인 어플리케이션부(111)에 표준 인터페이스를 제공할 수 있다.
디바이스 드라이버(113)는 목록을 참조하여 운영 체제(112)의 요청 페이지에 대응한 캐시 데이터가 캐시 메모리(120) 또는 보조 저장 장치(200)에 존재하는지 여부를 판단한다. 디바이스 드라이버(113)는 캐시 매니저(CM)의 페이지 교체 알고리즘에 따라 캐시 영역의 목록들을 관리할 수 있다. 페이지 교체 알고리즘에 따라 목록이 갱신되는 경우, 디바이스 드라이버(113)는 갱신 정보를 생성하여 캐시 메모리(120)로 전달할 수 있다.
예를 들어, ARC(Adaptive Replacement Cache) 알고리즘을 기반으로 페이지 교체 동작이 수행되는 경우, 디바이스 드라이버(113)는 캐시 메모리(120)의 캐시 영역의 총 페이지 개수(c)의 두 배 두 배(2c)의 페이지 정보를 관리해야 한다. 이후 캐시 영역의 페이지 개수(c)는 캐시 사이즈로 언급된다. 이에 관련된 자세한 내용은 후술되는 도면들을 통해 자세히 설명된다.
디바이스 드라이버(113)는 외부 장치(미도시)의 요청 페이지에 응답하여 캐시 메모리(120)에 저장된 페이지에 관한 페이지 정보를 목록으로 관리한다. 디바이스 드라이버(113)는 외부 장치(미도시)의 요청 페이지에 응답하여 보조 저장 장치(200)에 저장된 페이지에 관한 페이지 정보를 목록으로 관리한다.
도 3은 본 발명의 일 실시 예에 따른 캐시 매니저(CM)가 관리하는 목록들에 대한 개념도이다. 도 1 내지 도 3을 참조하면, 캐시 매니저(CM)는 ARC(Adaptive Replacement Cache) 알고리즘을 기반으로 페이지 교체 동작을 수행한다고 가정한다.
간결한 설명을 위해, 캐시 메모리(120)는 메모리 셀 어레이(123)의 하나의 블록에 포함된 8개의 페이지를 캐시 영역으로 이용한다고 가정한다. 널리 알려진 바와 같이 ARC 알고리즘을 기반으로 페이지 교체 동작을 수행하는 경우, 캐시 매니저(CM)는 캐시 사이즈(c)의 두 배(2c)의 페이지 정보를 관리할 것이 요구된다.
도 1 내지 도 3을 참조하면, 캐시 매니저(CM)는 제 1 목록(L1) 및 제 2 목록(L2)을 관리할 수 있다. 캐시 매니저(CM)는 제 1 목록 (L1)의 제 1 영역 내지 제 8 영역(RR1~RR8)의 참조 순위를 최신성(Recency)을 기반으로 관리한다.
구체적으로, 캐시 매니저(CM)는 외부 장치(미도시)로부터 한 번 액세스된 페이지들을 관리할 수 있다. 제 목록(L1)의 제 1 영역(RR1)은 가장 높은 참조 순위(MRU)를 갖고, 제 8 영역(RR8)은 가장 낮은 참조 순위(LRU)를 갖는다.
제 1 목록(L1)는 제 1 페이지 목록(T1)과 제 1 소거 목록 (B1)을 포함한다. 제 1 페이지 목록(T1)은 캐시 메모리(120)의 캐시 영역과 대응된다. 제 1 페이지 목록(T1)은 제 1 영역 내지 제 4 영역들(RR1~RR4)을 포함한다. 제 1 영역 내지 제 4 영역들(RR1~RR4)에 저장된 페이지 정보는 캐시 데이터의 논리 어드레스 및 캐시 데이터와 연관된 정보를 포함한다.
제 1 소거 목록(B1)은 제 1 페이지 목록(T1)로부터 소거된 페이지 정보 중 논리 어드레스를 최신성에 따라 제 5 영역 내지 제 8 영역들(RR5~RR8)에 저장한다.
제 2 목록(L2)은 제 2 페이지 목록(T2)과 제 2 소거 목록 (B2)을 포함한다. 제 2 페이지 목록(T2)은 캐시 메모리(120)의 캐시 영역과 대응된다. 제 2 페이지 목록(T2)은 제 1 영역 내지 제 4 영역들(RF1~RF4)을 포함한다. 제 1 영역 내지 제 4 영역들(RF1~RF4)에 저장된 페이지 정보는 캐시 데이터의 논리 어드레스 및 캐시 데이터와 연관된 정보를 포함한다.
제 2 소거 목록(B2)은 제 2 페이지 목록(T2)로부터 소거된 페이지 정보 중 논리 어드레스를 빈도에 따라 제 5 영역 내지 제 8 영역들(RF5~RF8)에 저장한다.
제 1 페이지 목록(T1)의 영역들과 제 2 페이지 목록(T2)의 영역들은 캐시 메모리(120)의 캐시 영역과 대응되고, 각 페이지 목록의 영역들의 개수는 가변적(adaptively)이다. 다만, 제 1 페이지 목록(T1)의 영역들의 개수와 제 2 페이지 목록(T2)의 영역들의 개수의 합은 캐시 영역의 사이즈(c)와 같게 유지된다.
도 1 및 도 3을 참조하면, 캐시 메니저(CM)는 가장 최근에 액세스된 페이지에 관한 페이지 정보를 제 1 목록(L1)의 가장 높은 참조 순위(MRU, Most Recently Used)의 제 1 영역(RR1)에 저장한다.
캐시 매니저(CM)는 제 1 페이지 목록(L1)의 제 4 영역(R4)로부터 소거된 페이지의 논리 어드레스에 관한 정보를 최신성(Recency)에 따라 제 5 내지 제 8 영역(RR5~RR8)에 저장한다. 이 경우, 제 5 영역 내지 제 8 영역(RR5~RR8)은 캐시 데이터의 논리 어드레스만이 저장된다.
예를 들어, 제 1 소거 목록(B1)은 제 1 페이지 목록 (T1)으로부터 가장 최근에 소거된 페이지 정보 중 논리 어드레스에 관한 정보를 제 5 영역(RR5)에 저장한다.
캐시 매니저(CM)는 제 2 목록(L2)의 제 1 영역 내지 제 8 영역(RF1~RF8)의 참조 순위를 빈도(Frequency)에 따라 관리할 수 있다.
캐시 매니저(CM)는 외부 장치로부터 적어도 두 번 이상 액세스된 페이지들을 제 2 목록(L2)을 이용해 관리할 수 있다. 예를 들어, 제 2 목록(L2)의 제 1 영역(RF1)은 가장 높은 참조 순위(MFU)를 갖고, 제 8 영역(RF8)은 가장 낮은 참조 순위(LFU)를 갖는다.
캐시 매니저(CM)는 가장 많이 액세스된 페이지에 관한 페이지 정보를 제 2 목록(L2)의 가장 높은 참조 순위(MFU, Most Frequently Used)의 제 1 영역(RF1)에 저장한다. 이 경우 제 2 페이지 목록(T2)의 제 1 내지 제 4 영역(RF1~RF4)에 저장되는 페이지 정보는 캐시 데이터의 논리 어드레스 및 캐시 데이터와 연관된 정보를 포함한다.
캐시 메니저(CM)는 제 2 페이지 목록(T2)의 제 4 영역(RF4)로부터 소거된 페이지의 논리 어드레스를 빈도(Frequency)에 따라 제 5 내지 제 8 영역(RF5~RF8)에 저장한다. 즉, 제 2 소거 목록(B2)은 제 2 페이지 목록(T2)으로부터 가장 최근에 소거된 페이지 정보 중 논리 어드레스를 제 5 영역(RF5)에 저장한다.
도 4는 본 발명의 일 실시 예에 따른 캐시 매니저에 의해 관리되는 목록들과 캐시 메모리의 관계를 설명하기 위한 개념도이다.
도 1 내지 도 4를 참조하면, 도 4의 캐시 메모리(120)는 메모리 셀 어레이(123)의 임의의 한 블록(BLKi)에 포함된 제 1 내지 제 8 페이지(P1~P8)의 어드레스 영역들을 캐시 영역으로 이용한다고 가정한다. 이 경우, 제 1 목록 (L1) 및 제 2 목록(L2)의 영역들과 캐시 메모리(120)의 캐시 영역의 페이지들의 저장 공간의 크기는 같거나 다를 수 있다. 도 4의 경우 캐시 영역의 캐시 사이즈(c)는 '8'이다.
캐시 매니저(CM)는 제 1 목록(L1)의 영역들(RR1~RR8) 중 페이지 정보를 저장하는 영역들의 개수를 제 1 엔트리(l1)로 정의한다. 캐시 매니저(CM)는 제 2 목록(L2)의 영역들(RF1~FR8) 중 페이지 정보를 저장하는 영역들의 개수를 제 2 엔트리(l2)로 정의한다. 제 1 엔트리(l1) 또는 제 2 엔트리(l2)의 변경이 발생하면, 캐시 매니저(CM)는 갱신 정보를 생성한다.
도 4의 제 1 및 제 2 페이지 목록(T1, T2)과 제 1 및 제 2 소거 목록(B1, B2)은 도 3에서 언급된 설명이 그대로 적용될 수 있음은 이해될 수 있을 것이다.
도 5는 본 발명의 일 실시 예에 따라 갱신 정보를 생성하는 캐시 매니저의 동작을 보여주는 순서도이다. 본 발명의 일 실시 예에 따른 호스트 장치(100)의 캐시 매니저(CM)는 외부 장치(미도시)로부터의 요청에 응답하여 1차적으로 캐시 메모리(120)와 연관된 목록에요청 페이지(X)와 연관된 페이지 정보가 존재하는지 확인한다
캐시 메모리(120)와 연관된 목록에 요청 페이지(X)와 연관된 페이지 정보가 존재하지 않는 경우, 호스트 장치(100)의 캐시 매니저(CM)는 2차적으로 보조 스토리지 장치(200)와 연관된 목록에 요청 페이지(X)와 연관된 정보가 존재하는지 확인한다. 간결한 설명을 위해, 본 명세서의 요청 페이지(X)는 호스트 장치(100)에 의해 보조 스토리지 장치(200)로부터 읽혀진 것으로 가정한다.
도 1 내지 도 5를 참조하면, S110 단계에서, 호스트 장치(100)는 페이지(X)에 대한 요청(Request)을 수신한다.
S120 단계에서, 캐시 매니저(CM)는 요청 페이지(X)의 페이지 정보가 제 1 목록(L1)에 존재하는지 여부를 판단할 수 있다.
요청 페이지(X)의 페이지 정보가 제 1 목록(L1)에 존재한다고 판단된 경우, S121 단계에서 캐시 매니저(CM)는 제 1 목록(L1)의 영역들 중 요청 페이지(X)에 대응하는 영역의 페이지 정보를 삭제한다.
S122 단계에서, 캐시 매니저(CM)는 제 2 목록(L2)의 가장 높은 참조 순위의 영역(RF1)에 요청 페이지(X)에 대한 페이지 정보를 저장할 수 있다.
S123 단계에서, 캐시 매니저(CM)는 S121 단계 및 S122 단계의 동작에 따라 제 1 엔트리(l1)를 1만큼 감소시키고, 제 2 엔트리(l2)를 1만큼 증가시킬 수 있다. 이어, S160 단계에서, 캐시 매니저(CM)는 4개의 목록들(T1, B1, T2, B2)의 목록 갱신에 관한 갱신 정보를 생성하고, 생성된 갱신 정보를 캐시 메모리(120)로 전달할 수 있다.
요청 페이지(X)의 페이지 정보가 제 1 목록(L1)에 존재하지 않는다고 판단된 경우, S130 단계에서, 캐시 매니저(CM)는 요청 페이지(X)의 페이지 정보가 제 2 목록(L2)에 존재하는지 여부를 판단할 수 있다.
S131 단계에서, 요청 페이지(X)의 페이지 정보가 제 2 목록(L2)에 존재한다고 판단된 경우, 캐시 매니저(CM)는 제 2 목록(L2)의 가장 높은 참조 순위의 영역(RF1)에 요청 페이지(X)의페이지 정보를 저장할 수 있다. 이어, 캐시 매니저(CM)의 해당 수순은 종료한다.
요청 페이지(X)의 페이지 정보가 제 2 목록(L2)에 존재하지 않는다고 판단된 경우, S140 단계에서 캐시 매니저(CM)는 제 1 엔트리(l1)가 캐시 메모리(120)의 캐시 사이즈(c)와 동일한지 여부를 판단한다.
제 1 엔트리(l1)가 캐시 사이즈(c)와 같다고 판단된 경우, S141 단계에서, 캐시 매니저(CM)는 제 1 목록(L1)으로부터 가장 낮은 참조 순위를 갖는 영역(LRU, 도 4의 RR8)의 페이지 정보를 삭제한다. 본 명세서에서 각 목록으로부터 가장 낮은 참조 순위(LRU)를 갖는 영역에서 삭제된 페이지 정보는 축출(eviction)된다고 표현할 것이다.
이어, S142 단계에서 캐시 매니저(CM)는 제 1 목록(L1)의 가장 높은 참조 순위를 갖는 영역(RR1)에 요청 페이지(X)의 페이지 정보를 저장할 수 있다. 이어, 캐시 매니저(CM)의 해당 수순은 종료한다.
제 1 엔트리(l1)가 캐시 사이즈(c)보다 작다고 판단된 경우, S150 단계에서, 캐시 매니저(CM)는 제 1 엔트리(l1) 및 제 2 엔트리(l2)의 합이 캐시 사이즈(c)의 두 배(2c)와 같은지 판단한다.
S151 단계에서, 제 1 엔트리(l1) 및 제 2 엔트리(l2)의 합이 캐시 사이즈의 두 배(2c)인 것으로 판단된 경우, 캐시 매니저(CM)는 제 2 목록(L2)의 가장 낮은 참조 순위를 갖는 영역(RF8)의 페이지 정보를 축출(eviction)한다. 축출된 영역(RF8)의 페이지 정보는 갱신 정보에 포함되어 캐시 메모리로 전달될 수 있다.
S152 단계에서, 캐시 매니저(CM)는 제 2 엔트리(l2)를 1만큼 감소시킨다. S153 단계에서, 캐시 매니저(CM)는 제 1 목록(L1)의 가장 높은 참조 순위(MRU)를 갖는 영역(RR1)에 보조 스토리지 장치(200)로부터 읽어 온 요청 페이지(X)의 페이지 정보를 삽입한다. 이어, S154 단계에서, 캐시 매니저(CM)는 제 1 엔트리(l1)를 1만큼 증가시킨다.
제 1 엔트리(l1) 및 제 2 엔트리(l2)의 합이 캐시 사이즈(c)의 두 배(2c)가 아닌 경우, 캐시 매니저(CM)는 제 1 목록(L1)의 가장 높은 참조 순위(MRU)를 갖는 영역(RR1)에 요청 페이지(X)의 페이지 정보를 삽입한다. 이어, 캐시 매니저(CM)는 제 1 엔트리(l1)를 1만큼 증가시킨다.
S160 단계에서, 캐시 매니저(CM)는 4개의 목록들(T1, B1, T2, B2)의 목록 갱신에 관한 갱신 정보를 생성하고, 생성된 갱신 정보를 캐시 메모리(120)로 전달할 수 있다. 캐시 매니저(CM)에 의해 생성된 갱신 정보를 종래의 신호에 포함시켜 캐시 메모리(120)로 전달할 수 있음은 이해될 수 있을 것이다.
예를 들어, 캐시 메모리(120)의 프로토콜이 NVMe인 경우, 본 발명에 따른 갱신 정보는 별도의 신호 생성 없이 DSM 커맨드를 통해 캐시 메모리에 적용될 수 있을 것이다.
또한, 캐시 메모리(120)의 프로토콜이 SATA 또는 SCSI인 경우, 갱신 정보를 별도 생성하여 캐시 메모리(120)로 전달하거나, 특정 커맨드의 예비 비트들(reserved bits)을 활용하여 캐시 메모리(120)에 목록 갱신에 관한 정보를 전달할 수 있다.
본 발명의 일 실시 예에 따르면, 캐시 메모리(120)가 솔리드 스테이트 드라이브(SSD)를 기반으로 캐시 동작을 수행할 때, 캐시 매니저(CM)는 페이지 교체 알고리즘에 따른 목록의 갱신을 갱신 정보를 통해 캐시 메모리(120)에 전달할 수 있다. 이에 따라, 솔리드 스테이트 드라이브(SSD)를 기반으로 한 캐시 메모리(120)는 최적화된 가비지 콜렉션(GC, Garbage Collection) 동작을 수행할 수 있다. 결국 본 발명의 일 실시 예에 따른 서버 장치는 향상된 성능 및 수명을 갖게 될 수 있다.
도 6 내지 도 9는 본 발명의 일 실시 예에 따른 갱신 정보의 생성 과정에 대한 개념도이다. 간결한 설명을 위해, 캐시 매니저(CM)가 관리하는 목록들(T1, B1, T2, B2)과 캐시 메모리(120)의 캐시 영역(P1~P8)은 초기에 모두 비어 있는(empty) 상태를 가정하여 설명한다.
캐시 메모리(120)는 수신된 갱신 정보를 기반으로 제 1 상태 목록(S1), 제 2 상태 목록(S2), 제 3 상태 목록(S3), 제 4 상태 목록(S4) 및 제 5 상태 목록(S5)을 관리할 수 있다.
예를 들어, 제 1 상태 목록(S1)은 제 1 페이지 목록(T1)과 연관된다. 제 1 페이지 목록(T1)의 갱신이 발생하면, 제 1 상태 목록(S1)은 갱신 정보에 따라 업데이트된다.
제 2 상태 목록(S2)은 제 1 소거 목록(B1)과 연관된다. 제 1 소거 목록(B1)의 갱신이 발생하면, 제 2 상태 목록(S2)은 갱신 정보에 따라 업데이트된다.
제 3 상태 목록(S3)은 제 2 페이지 목록(T2)과 연관된다. 제 2 페이지 목록(T2)의 갱신이 발생하면, 제 3 상태 목록(S3)은 상태 정보에 따라 업데이트된다.
제 4 상태 목록(S4)은 제 2 소거 목록(B2)과 연관된다. 제 2 소거 목록(B2)의 갱신이 발생하면, 제 4 상태 목록(S4)은 갱신 정보에 따라 업데이트된다.
제 5 상태 목록(S5)은 축출된 페이지 정보와 연관된다. 제 1 소거 목록(B1) 또는 제 2 소거 목록(B2)의 갱신이 발생하면, 제 5 상태 목록(S5)은 갱신 정보에 따라 업데이트된다.
도 1 내지 도 6를 참조하면, 캐시 매니저(CM)는 S110 단계, S120 단계, S130 단계, S140 단계, S150 단계 및 S153 단계를 거쳐 제 1 페이지 목록(T1)의 제 1 영역(RR1)에 제 1 요청 페이지(X1)의 페이지 정보를 저장한다.
캐시 메모리(120)는 제 1 요청 페이지(X1)를 캐시 메모리(120)의 제 1 페이지(P1)에 저장한다. 제 1 영역(RR1)에 저장된 페이지 정보는 제 1 페이지(P1)의 캐시 데이터와 연관된 정보 및 제 1 페이지(P1)의 논리 어드레스를 포함한다.
이어, S154 단계에서, 캐시 매니저(CM)는 제 1 목록(L1)의 제 1 엔트리(l1)를 1만큼 증가시키는 목록 갱신(List Change)을 수행한다. 이어, S160 단계에서, 캐시 매니저(CM)는 목록의 갱신에 따른 갱신 정보를 생성하고, 이를 캐시 메모리(120)에 전달할 수 있다.
캐시 메모리(120)는 갱신 정보에 따라 디램(122)에 저장된 상태 목록()을 갱신할 수 있다. 도 6을 참조하면, 캐시 메모리(120)는 제 1 페이지(P1)의 캐시 데이터는 제 1 페이지 목록(T1)에 의해 관리됨을 식별할 수 있다.도 1 내지 도 7을 참조하면, 캐시 매니저(CM)는 S110 단계, S120 단계, S130 단계, S140 단계, S150 단계 및 S153 단계를 거쳐 제 1 페이지 목록(T1)의 제 1 영역(RR1)에 제 2 페이지(X2)의 페이지 정보를 저장한다. 이 경우 제 2 페이지(X2)는 외부 장치(미도시)로부터 요청된 페이지이고, 제 1 요청 페이지(X1)와는 다른 페이지를 의미한다.
제 1 목록(L1)은 최신성(recency)을 참조 순위의 기준으로 한다. 따라서, 캐시 매니저(CM)는 가장 최근에 액세스된 제 2 페이지(X2)의 페이지 정보를 제 1 영역(RR1)에 저장하고, 기존 제 1 영역(RR1)에 저장된 제 1 요청 페이지(X1)의 페이지 정보는 제 2 영역(RR2)로 옮긴다.
제 1 영역(RR1)에 저장된 제 2 페이지(X2)의 페이지 정보는 제 2 페이지(P2)의 캐시 데이터와 연관된 정보 및 제 2 페이지(P2)의 논리 어드레스를 포함한다. 캐시 메모리(120)는 제 2 요청 페이지(X2)를 캐시 메모리(120)의 제 2 페이지(P2)에 저장한다.
이어, S154 단계에서, 캐시 매니저(CM)는 제 1 목록(L1)의 엔트리(l1)를 1만큼 증가시키는 목록 갱신을 수행한다. 이어, S160 단계에서, 캐시 매니저(CM)는 목록 갱신(List Change)에 따른 갱신 정보를 생성하고, 이를 캐시 메모리(120)에 전달할 수 있다.
캐시 메모리(120)는 갱신 정보에 따라 디램(122)에 저장된 목록을 갱신할 수 있다. 도 7을 참조하면, 캐시 메모리(120)는 제 1 페이지(P1)의 캐시 데이터와 제 2 페이지(P2)의 캐시 데이터는 제 1 페이지 목록(T1)에 의해 관리됨을 식별할 수 있다.
도 1 내지 도 8을 참조하면, 외부 장치(미도시)로부터 제 1 요청 페이지(X1)가 다시 요청된 경우를 가정한다. S120 단계에서, 캐시 매니저(CM)는 제 1 요청 페이지(X1)의 페이지 정보가 이미 캐시 메모리(120)에 존재하고 있음을 식별한다.
S121 단계에서, 캐시 매니저(CM)는 제 1 목록(L1)으로부터 제 1 요청 페이지(X1)의 페이지 정보를 삭제한다. 이어, S122 단계에서, 캐시 매니저(CM)는, 제 1 요청 페이지(X1)의 페이지 정보를 2 목록(L2)의 제 1 영역(RF1)에 저장한다.
즉, 제 1 요청 페이지(X1)의 페이지 정보는 기존의 제 1 목록(L1)이 아닌 제 2 목록(L2)에서 관리된다.이어, S123 단계에서, 캐시 매니저(CM)는 제 1 목록(L1)의 엔트리(l1)를 1만큼 감소시키고, 제 1 목록(L2)의 엔트리(l2)를 1만큼 증가시킨다. 이어, S160 단계에서, 캐시 매니저(CM)는 목록들의 변경 사항이 반영된 갱신 정보를 생성하고, 생성된 갱신 정보를 캐시 메모리(120)에 전달할 수 있다.
캐시 메모리(120)는 갱신 정보에 따라 디램(122)에 저장된 목록을 갱신할 수 있다. 도 8을 참조하면, 캐시 메모리(120)는 제 1 페이지(P1)의 캐시 데이터는 제 1 페이지 목록(T1)에 의해 관리되고, 제 2 페이지(P2)의 캐시 데이터는 제 2 페이지 목록(T2)에 의해 관리됨을 식별할 수 있다.
도 1 내지 도 9를 참조하면, S120 단계 및 S123 단계를 거쳐 목록의 갱신이 완료된 캐시 매니저(CM)의 목록들(T1, T2, B1, B2)과 목록들(T1, T2)에 대응된 캐시 메모리(120)의 캐시 영역(P1~P8)이 보여진다.
도 10 내지 도 13은 본 발명의 다른 실시 예에 따른 갱신 정보의 생성 과정에 대한 개념도이다. 간결한 설명을 위해, 도 1 내지 도 6과 도 10 내지 도 13을 참조하여, 캐시 매니저(CM)가 관리하는 목록들(T1, B1, T2, B2)과 캐시 메모리(120)의 캐시 영역들(P1~P8)은 페이지 정보 및 요청 페이지들(X1~X8)로 가득 찬 상태를 가정하여 설명된다.
캐시 영역의 제 1 페이지(P1)는 제 1 요청 페이지(X1), 제 2 페이지(P2)는 제 2 요청 페이지(X2), 제 3 페이지(P3)는 제 3 요청 페이지(X3), 제 4 페이지(P4)는 제 4 요청 페이지(X4), 제 5 페이지(P5)는 제 5 요청 페이지(X5), 제 6 페이지(P6)는 제 6 요청 페이지(X6), 제 7 페이지(P7)는 제 7 요청 페이지(X7) 그리고 제 8 페이지(P8)는 제 8 요청 페이지(X8)를 캐시 데이터로 저장하고 있다고 가정한다.
도 10을 참조하면, 제 1 페이지 목록(T1)은 제 1 내지 제 3 영역들(RR1~RR3)을 포함한다. 제 1 소거 목록(B1)은 제 4 내지 제 7 영역들(RR4~RR7)을 포함한다. 이 경우 도 10의 캐시 매니저(CM)가 관리하는 제 1 엔트리(l1)는 '7'이다.
제 1 영역(RR1)은 제 5 페이지(P5)의 캐시 데이터와 연관된 정보 및 제 5 페이지(P5)의 논리 어드레스(LBA)에 관한 정보를 저장한다. 제 2 영역(RR2)은 제 3 페이지(P3)의 캐시 데이터와 연관된 정보 및 제 3 페이지(P3)의 논리 어드레스(LBA)에 관한 정보를 저장한다. 제 3 영역(RR3)은 제 4 페이지(P4)의 캐시 데이터와 연관된 정보 및 제 4 페이지(P4)의 논리 어드레스(LBA)에 관한 정보를 저장한다.
제 4 영역(RR4)은 제 1 페이지 목록(T1)의 가장 낮은 참조 순위를 갖는 영역으로부터 소거된 페이지 정보 중 논리 어드레스에 관한 정보를 저장한다. 제 4 영역(RR4)은 제 1 소거 목록(B1) 내에서 가장 높은 참조 순위를 갖는다.
제 5 영역(RR5)은 제 4 영역(RR4)에서 전달된 논리 어드레스에 관한 정보를 저장한다. 예를 들어, 제 4 영역(RR4)에 새로운 소거 페이지의 논리 어드레스에 관한 정보가 전달될 때, 기존 제 4 영역(RR4)에 저장된 논리 어드레스 정보는 제 5 영역(RR5)으로 전달된다.
제 6 영역(RR6)은 제 5 영역(RR5)에서 전달된 논리 어드레스에 관한 정보를 저장한다. 예를 들어, 제 5 영역(RR5)에 새로운 소거 페이지의 논리 어드레스(LBA)에 관한 정보가 전달될 때, 기존 제 5 영역(RR6)에 저장된 논리 어드레스 정보는 제 6 영역(RR6)으로 전달된다.
제 7 영역(RR7)은 제 6 영역(RR6)에서 전달된 논리 어드레스에 관한 정보를 저장한다. 예를 들어, 제 6 영역(RR6)에 소거 페이지의 논리 어드레스(LBA)에 관한 새로운 정보가 제 1 페이지 목록(T1)으로부터 전달될 때, 기존 제 6 영역(RR6)에 저장된 논리 어드레스 정보는 제 7 영역(RR7)으로 전달된다.
제 7 영역(RR7)에 새로운 소거 페이지의 논리 어드레스(LBA)에 관한 정보가 전달될 때, 기존 제 7 영역(RR7)에 저장된 논리 어드레스 정보는 축출(eviction)된다. 이 경우 캐시 매니저(CM)는 축출된 정보를 캐시 메모리(120)에 전달되는 갱신 정보에 포함시킬 수 있다.
제 2 페이지 목록(T2)는 제 1 내지 제 5 영역들(RF1~RF5)을 포함한다. 제 2 소거 목록(B2)는 제 6 내지 제 9 영역들(RF6~RF9)을 포함한다. 도 11의 캐시 매니저(CM)가 관리하는 제 2 엔트리(l2)는 '9'이다.
제 1 영역(RF1)은 제 2 페이지(P2)의 캐시 데이터와 연관된 정보 및 제 2 페이지(P2)의 논리 어드레스(LBA)에 관한 정보를 저장한다. 제 2 영역(RF2)은 제 1 페이지(P1)의 캐시 데이터와 연관된 정보 및 제 1 페이지(P1)의 논리 어드레스(LBA)에 관한 정보를 저장한다. 제 3 영역(RF3)은 제 8 페이지(P8)의 캐시 데이터와 연관된 정보 및 제 8 페이지(P8)의 논리 어드레스(LBA)에 관한 정보를 저장한다. 제 4 영역(RF4)은 제 7 페이지(P7)의 캐시 데이터와 연관된 정보 및 제 7 페이지(P7)의 논리 어드레스(LBA)에 관한 정보를 저장한다. 제 5 영역(RF5)은 제 6 페이지(P6)의 캐시 데이터와 연관된 정보 및 제 6 페이지(P6)의 논리 어드레스(LBA)에 관한 정보를 저장한다.
제 6 영역(RF6)은 제 2 페이지 목록(T2)의 가장 낮은 참조 순위를 갖는 영역(예로, 도 11의 경우 제 5 영역(RF5))으로부터 소거된 페이지 정보 중 논리 어드레스에 관한 정보를 저장한다. 제 6 영역(RF6)은 제 2 소거 목록(B2)의 영역들 중에서는 가장 높은 참조 순위를 갖는다.
제 7 영역(RF7)은 제 6 영역(RF6)에서 전달된 논리 어드레스에 관한 정보를 저장한다. 예를 들어, 제 6 영역(RF6)에 새로운 소거 페이지의 논리 어드레스에 관한 정보가 전달될 때, 기존 제 6 영역(RF6)에 저장된 논리 어드레스 정보는 제 7 영역(RF7)으로 전달된다.
제 8 영역(RF8)은 제 7 영역(RF7)에서 전달된 논리 어드레스에 관한 정보를 저장한다. 예를 들어, 제 7 영역(RF7)에 새로운 소거 페이지의 논리 어드레스(LBA)에 관한 정보가 전달될 때, 기존 제 7 영역(RF7)에 저장된 논리 어드레스 정보는 제 8 영역(RF8)으로 전달된다.
제 9 영역(RF9)은 제 8 영역(RF8)에서 전달된 논리 어드레스에 관한 정보를 저장한다. 예를 들어, 제 8 영역(RF8)에 소거 페이지의 논리 어드레스(LBA)에 관한 정보가 전달될 때, 기존 제 8 영역(RF8)에 저장된 논리 어드레스 정보는 제 9 영역(RF9)으로 전달된다.
제 9 영역(RF9)에 새로운 소거 페이지의 논리 어드레스(LBA)에 관한 정보가 전달될 때, 기존 제 9 영역(RF9)에 저장된 논리 어드레스 정보는 축출(eviction)된다. 이 경우 캐시 매니저(CM)는 축출된 정보를 캐시 메모리(120)에 전달되는 갱신 정보에 포함시킬 수 있다.
캐시 메모리(120)는 갱신 정보에 따라 디램(122)에 저장된 목록을 갱신할 수 있다. 도 10을 참조하면, 캐시 메모리(120)는 제 3 내지 제 5 페이지(P3~P5)의 캐시 데이터는 제 1 페이지 목록(T1)에 의해 관리되고, 제 6 내지 제 8 페이지(P6~P8)의 캐시 데이터는 제 2 페이지 목록(T2)에 의해 관리됨을 식별할 수 있다.
도 11을 참조하면, 캐시 매니저(CM)는 S120 단계 및 S130 단계를 거쳐 요청 페이지(X)가 캐시 메모리(120)에 없는 캐시 미스(Cache Miss)인 경우를 가정한다. 이 경우, 캐시 매니저(CM)는 도 5의 S140 단계에서 제 1 엔트리(l1)인 '7'이 캐시 영역의 사이즈(c)인 '8'보다 작기 때문에 S150 단계로 진입한다.
캐시 매니저(CM)는, S150 단계에서, 제 1 엔트리(l1)와 제 2 엔트리(l2)의 합이 캐시 사이즈(c)의 두 배(2c)인 '16'인지를 판단한다. 도 11의 제 1 목록(L1)의 모든 영역들(RR1~RR7)과 제 2 목록(L2)의 모든 영역들(RF1~RF9)은 페이지 정보를 저장하므로, 제 1 엔트리(l1)와 제 2 엔트리(l2)의 합은 '16'이다.
S151 단계에서, 캐시 매니저(CM)는 제 2 목록(L2)의 가장 낮은 참조 순위(LFU)의 제 9 영역(RF9)에 저장된 페이지 정보를 축출(삭제)한다. 축출된 페이지 정보는 캐시 매니저(CM)에 의해 갱신 정보에 포함될 수 있다. 갱신 정보는 축출 목록(EVC)의 갱신에 이용된다.이어, S152 단계에서, 제 2 목록(L2)의 엔트리(l2)는 1만큼 감소되어 '8'이 된다. 제 1 영역(RF1)의 페이지 정보는 제 2 영역(RF2)으로 이동한다. 제 2 영역(RF2)의 페이지 정보는 제 3 영역(RF3)으로 이동한다. 제 3 영역(RF3)의 페이지 정보는 제 4 영역(RF4)으로 이동한다. 제 4 영역(RF4)의 페이지 정보는 제 5 영역(RF5)으로 이동한다.
제 5 영역(RF5)의 페이지 정보는 제 6 영역(RF6)으로 이동한다. 이 경우 제 5 영역(RF5)의 페이지 정보 중 제 5 페이지(P5)의 논리 어드레스에 대한 정보만이 제 6 영역(RF6)에 저장된다.
이 경우 제 5 영역(RF5)의 페이지 정보는 제 2 페이지 목록(T2)에서 제 2 소거 목록(B2)으로 목록이 변경된다. 따라서, 캐시 매니저(CM)는 목록의 변경에 따라 갱신 정보를 캐시 메모리(120)에 전달한다. 갱신 정보는 제 2 소거 목록(B2)의 갱신에 이용된다.
제 7 영역(RF7)의 페이지 정보는 제 8 영역(RF8)으로 이동한다. 제 8 영역(RF8)에 저장된 페이지 정보는 제 9 영역(RF2)으로 이동한다. 제 2 페이지 목록(T2)은 제 1 내지 제 4 영역들(RF1~RF4)을 포함할 것이다.
도 12를 참조하면, S153 단계에서, 캐시 매니저(CM)는 제 1 목록(L1)의 가장 높은 참조 순위(MRU)를 갖도록 신규 영역을 삽입(insert)하고, 삽입된 신규 영역에 요청 페이지(X)의 페이지 정보를 저장한다. 캐시 메모리(120)의 제 6 페이지(P6)에 요청 페이지(X)가 저장된다.
이어, S154 단계에서, 제 1 엔트리(l1)는 1만큼 증가되어 '8'이 된다. 이 경우 제 1 페이지 목록(T1)에 삽입된 신규 영역으로 인해 제 1 페이지 목록(T1)의 영역이 증가한다. 다만, 제 1 소거 목록(B1)의 신규 영역을 제외한 나머지 영역들은 참조 순위만 1만큼 증가한다. 제 8 영역(RR8)의 페이지 정보는 축출(eviction)되지 않고 그대로 유지된다.
도 13은 캐시 미스(Cache Miss)를 가정하여 캐시 영역의 페이지가 교체된 후 캐시 매니저(CM)의 목록들과 캐시 영역의 재정의된 관계를 보여준다.
도 14는 본 발명의 일 실시 예 에 따른 캐시 영역이 복수 개의 블록들을 포함하는 경우 캐시 매니저의 동작을 설명하기 위한 도면이다.
도 1 내지 도 3 및 도 14를 참조하면, 캐시 매니저(CM)가 관리하는 목록들(T1, B1, T2, B2)은 위의 도 3의 설명이 동일하게 적용될 것이다. 캐시 영역은 8개의 페이지들(P1~P8)의 논리 어드레스를 포함할 수 있다.
다만, 캐시 메모리(120)의 관점에서 캐시 영역이 두 개의 블록들(BLK1, BLK2)로 구성된다. 캐시 메모리(120)는 같은 종류의 목록에 의해 관리되는 페이지들은 빈 메모리 블록(미도시)에 따로 모아 관리할 수 있다.
도 14을 참조하면, 제 1 블록(BLK1)에 저장된 페이지들 중 3개의 페이지들(P2, P3, P4)은 제 1 페이지 목록(T1)에 의해 관리되고, 1개의 페이지(P1)는 제 2 페이지 목록(T2)에 의해 관리된다.
제 2 블록(BLK2)에 저장된 페이지들 중 1개의 페이지(P5)는 제 1 페이지 목록(T1)에 의해 관리되고, 3개의 페이지들(P6, P7, P8)은 제 2 페이지 목록(T2)에 의해 관리된다.
빈도(Frequency)를 기반으로 한 제 2 목록(L2)에 의해 관리되는 페이지들은 목록 변경의 가능성이 제 1 페이지 목록(T1)에 의해 관리되는 페이지들보다 상대적으로 적다. 그러므로, 제 2 목록(L2)에 의해 관리되는 페이지들은 제 1 페이지 목록(T1)에 의해 관리되는 페이지들보다 콜드 데이터(cold data)일 것이다.
앞서 설명된 바와 같이, 캐시 매니저(CM)는 페이지 교체 알고리즘에 따른 목록들의 갱신 사항을 갱신 정보를 통해 캐시 메모리(120)에 전달함으로써, 솔리드 스테이트 드라이브(SSD)를 기반으로 한 캐시 메모리(120)는 갱신 정보에 따라 캐시 영역에 저장된 데이터가 핫 데이터인지 콜드 데이터인지를 판단할 수 있다. 이를 통해 본 발명의 솔리드 스테이트 드라이브(SSD)를 기반으로 한 캐시 메모리는 최적화된 가비지 콜렉션을 수행거나 리드 리클레임 동작을 수행하여 장치의 성능 및 수명이 향상된다.
도 15는 본 발명의 일 실시 예에 따라 수신된 갱신 정보를 이용하여 블록별로 가중치를 부여하는 과정을 설명하기 위한 도면이다.
도 1 내지 도 5 그리고 도 14 및 도 15를 참조하면, S210 단계에서, 캐시 메모리(120)는 갱신 정보(Updata information, UI)를 수신한다. 간결한 설명을 위해 캐시 메모리(120)의 메모리 컨트롤러(121)는 갱신 정보를 디코딩하여 캐시 매니저(CM)에서 관리되는 상태 목록들(S1~S5)의 정보를 획득하고, 획득된 상태 목록들(S1~S5)의 정보를 디램(122)에 로딩한다고 가정한다.
S220 단계에서, 캐시 메모리(120)의 메모리 컨트롤러(121)는 갱신 정보를 기반으로 상태 목록들(S1~S5)을 참조하여 목록으로부터 축출(eviction)된 페이지의 페이지 정보가 존재하는지 여부를 판단한다. 캐시 메모리(120)가 갱신 정보에 목록으로부터 축출(eviction)된 페이지 정보가 존재한다고 판단한 경우, S230 단계에서. 메모리 컨트롤러(121)는 축출된 페이지에 대응된 메모리 블록에 제 1 가중치(W1)를 부여한다. 이어, 수순은 S240 단계에 진입한다.
갱신 정보에 목록으로부터 축출(eviction)된 페이지가 존재하지 않는 경우, 수순은 S240 단계로 진행한다. S240 단계에서, 메모리 컨트롤러(121)는 갱신 정보를 기반으로 상태 목록들(S1~S5)을 참조하여 제 1 페이지 목록(T1)에 의해 새롭게 관리되는 페이지가 존재하는지 여부를 판단한다.
갱신 정보에 제 1 페이지 목록(T1)에 의해 새롭게 관리되는 페이지가 존재한다고 판단된 경우, S250 단계에서, 메모리 컨트롤러(121)는 제 1 페이지 목록(T1)에 의해 새롭게 관리되는 페이지를 포함하는 블록에 제 2 가중치(W2)를 부여한다. 이어, 수순은 S260 단계로 진행한다. 만약 갱신 정보에 제 1 페이지 목록(T1)에 의해 새롭게 관리되는 페이지가 존재하지 않는다고 판단된 경우, 수순은 S260 단계로 진입한다.
S260 단계에서, 메모리 컨트롤러(121)는 갱신 정보를 기반으로 상태 목록들(S1~S5)을 참조하여 제 2 페이지 목록(T2)에 의해 새롭게 관리되는 페이지가 존재하는지 여부를 판단한다.
갱신 정보에 제 2 페이지 목록(T2)에 의해 새롭게 관리되는 페이지가 존재한다고 판단된 경우, S270 단계에서, 메모리 컨트롤러(121)는 제 2 페이지 목록(T2)에 의해 새롭게 관리되는 페이지를 포함하는 블록에 제 3 가중치(W3)를 부여한다. 이어, 수순은 S300 단계로 진행한다. 만약 갱신 정보에 제 2 페이지 목록(T2)에 의해 새롭게 관리되는 페이지가 존재하지 않는다고 판단된 경우, 수순은 S300 단계로 진행한다.
이 경우, 각 목록에서 관리되는 데이터 특성(예로, 핫 데이터 또는 콜드 데이터)을 고려하여 제 1 가중치(W1)는 제 2 가중치(W2)보다 크고, 제 2 가중치(W2)는 제 3 가중치(W3)보다 크게 설정된다.
도 16은 본 발명의 일 실시 예에 따라 부여된 가중치를 기반으로 가비지 콜렉션을 수행하는 과정을 설명하기 위한 도면이다. 도 1 내지 도 5와 도 14 내지 도 16을 참조하면, S310 단계에서, 메모리 컨트롤러(121)는 제 1 블록(BLK1)의 총 가중치(BLK1_w)가 제 2 블록(BLK2)의 총 가중치(BLK2_w)보다 큰 지 여부를 판단할 수 있다.
제 1 블록(BLK1)의 총 가중치(BLK1_w)가 제 2 블록(BLK2)의 총 가중치(BLK2_w)보다 큰 경우, S320 단계에서 메모리 컨트롤러(121)는 제 1 블록(BLK1)의 총 가중치(BLK1_w)가 임계 값(THV)보다 큰 지 여부를 판단한다. 만약 제 1 블록(BLK1)의 총 가중치(BLK1_w)가 임계 값(THV)보다 큰 경우, 컨트롤러(121)는 제 1 블록(BLK1)에 대해 가비지 콜렉션(GC, Garbage Collection) 동작을 수행할 수 있다.
S310 단계에서, 제 2 블록(BLK2)의 총 가중치(BLK2_w)가 제 1 블록(BLK1)의 총 가중치(BLK1_w)보다 큰 경우, S340 단계에서 메모리 컨트롤러(121)는 제 2 블록(BLK2)의 총 가중치(BLK2_w)가 임계 값(THV)보다 큰 지 여부를 판단한다. 만약 제 2 블록(BLK2)의 총 가중치(BLK2_w)가 임계 값(THV)보다 큰 경우, 컨트롤러(121)는 제 2 블록(BLK2)에 대해 가비지 콜렉션(GC, Garbage Collection) 동작을 수행할 수 있다.
도 14 내지 도 16의 경우, 제 2 블록(BLK2)은 제 2 페이지 목록(T2)에 의해 관리되는 페이지들을 더 많이 포함할 수 있다. 따라서, 가비지 콜렉션을 수행할 대상 선택(Victim selection)을 수행할 경우 제 2 블록(BLK2)보다 제 1 블록(BLK1)에 대해 가비지 콜렉션이 수행될 가능성이 더 높게 된다. 이러한 방식을 통해 가비지 콜렉션이 최적화된 시점에서 수행될 수 있으며, 이에 따라 장치 전체의 수명 및 성능이 증대된다.
또한, 앞서 도면들을 통해 도시되진 않았으나, 제 1 페이지 목록(T1)에 의해 관리되는 페이지들을 한 블록에 옮기고, 제 2 페이지 목록(T2)에 의해 관리되는 페이지들을 또 다른 블록에 옮겨 캐시 메모리(120)의 캐시 영역을 따로 관리할 수 있다. 즉, 본 발명은 데이터 특성이 유사한 페이지들 또는 블록들을 한 블록에 모아 관리함으로써 장치 전체의 성능 및 수명을 증대시킬 수 있다.
또한, 제 2 목록(T2)에 의해 관리되는 캐시 영역의 페이지들은 제 1 페이지 목록(T1)에 의해 관리되는 캐시 영역의 페이지들에 비해 많은 리드(Read) 동작이 수행된다. 따라서, 제 2 페이지 목록(T2)에 의해 관리되는 페이지들은 소자 특성이 더 빨리 나빠질 가능성이 높다. 따라서, 캐시 메모리(120)는 제 2 페이지 목록(T2)에 의해 관리되는 페이지들에 대해 리드 리클레임(Read Reclaim) 동작이 제 1 페이지 목록(T1)에 의해 관리되는 페이지들에 비해 자주 수행하도록 설정할 수도 있다.
도 17은 본 발명의 다른 실시 예에 따른 메모리 셀 어레이를 보여주는 블록도이다. 도 17은 본 발명의 다른 실시 예에 따른 메모리 블록(BLKi)을 보여주는 회로도이다.
도 1 내지 도 17을 참조하면, 메모리 블록(BLKi)은 복수의 셀 스트링들(CS11~CS21, CS12~CS22)을 포함한다. 복수의 셀 스트링들(CS11~CS21, CS12~CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배열되어, 행들 및 열들을 형성할 수 있다.
예를 들어, 행 방향(row direction)을 따라 배열된 셀 스트링들(CS11, CS12)은 제1 행을 형성하고, 행 방향(row direction)을 따라 배열된 셀 스트링들(CS21, CS22)은 제2 행을 형성할 수 있다. 열 방향(column direction)을 따라 배열된 셀 스트링들(CS11, CS21)은 제1 열을 형성하고, 열 방향(column direction)을 따라 배열된 셀 스트링들(CS12, CS22)은 제2 열을 형성할 수 있다.
각 셀 스트링은 복수의 셀 트랜지스터들을 포함할 수 있다. 복수의 셀 트랜지스터들은 접지 선택 트랜지스터들(GST), 메모리 셀들(MC1~MC6), 그리고 스트링 선택 트랜지스터들(SSTa, SSTb)을 포함한다. 각 셀 스트링의 접지 선택 트랜지스터들(GST), 메모리 셀들(MC1~MC6), 그리고 스트링 선택 트랜지스터들(SSTa, SSTb)은 셀 스트링들(CS11~CS21, CS12~CS22)이 행들 및 열들을 따라 배열되는 평면(예를 들어, 메모리 블록(BLKi)의 기판 상의 평면)과 수직한 높이 방향으로 적층될 수 있다.
복수의 셀 트랜지스터들은 절연막에 포획된 전하량에 따라 가변하는 문턱 전압들을 갖는 전하 포획형(charge trap type) 트랜지스터들일 수 있다.
최하단의 접지 선택 트랜지스터들(GST)의 소스들은 공통 소스 라인(CSL)에 공통으로 연결될 수 있다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 접지 선택 트랜지스터들(GST)의 제어 게이트들은 접지 선택 라인들(GSL1, GSL2)에 각각 연결될 수 있다. 예시적으로, 동일한 행의 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결되고, 서로 다른 행의 접지 선택 트랜지스터들은 서로 다른 접지 선택 라인들에 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 접지 선택 트랜지스터들(GST)은 제1 접지 선택 라인(GSL1)에 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 접지 선택 트랜지스터들(GST)은 제2 접지 선택 라인(GSL2)에 연결될 수 있다.
기판(또는 접지 선택 트랜지스터들(GST))으로부터 동일한 높이(또는 순서)에 위치한 메모리 셀들의 제어 게이트들은 하나의 워드 라인에 공통으로 연결되고, 서로 다른 높이(또는 순서)에 위치한 메모리 셀들의 제어 게이트들은 서로 다른 워드 라인들(WL1~WL6)에 각각 연결될 수 있다. 예를 들어, 메모리 셀들(MC1)은 워드 라인(WL1)에 공통으로 연결된다. 메모리 셀들(MC2)은 워드 라인(WL2)에 공통으로 연결된다. 메모리 셀들(MC3)은 워드 라인(WL3)에 공통으로 연결된다. 메모리 셀들(MC4)은 워드 라인(WL4)에 공통으로 연결된다. 메모리 셀들(MC5)은 워드 라인(WL5)에 공통으로 연결된다. 메모리 셀들(MC6)은 워드 라인(WL6)에 공통으로 연결된다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 동일한 높이(또는 순서)의 제1 스트링 선택 트랜지스터들(SSTa)에서, 서로 다른 행의 제1 스트링 선택 트랜지스터들(SSTa)의 제어 게이트들은 서로 다른 스트링 선택 라인들(SSL1a~SSL2a)에 각각 연결된다. 예를 들어, 셀 스트링들(CS11, CS12)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)에 공통으로 연결된다. 셀 스트링들(CS21, CS22)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL2a)에 공통으로 연결된다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 동일한 높이(또는 순서)의 제2 스트링 선택 트랜지스터들(SSTb)에서, 서로 다른 행의 제2 스트링 선택 트랜지스터들(SSTb)의 제어 게이트들은 서로 다른 스트링 선택 라인들(SSL1b~SSL2b)에 각각 연결된다. 예를 들어, 셀 스트링들(CS11, CS12)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)에 공통으로 연결된다. 셀 스트링들(CS21, CS22)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)에 공통으로 연결된다.
즉, 서로 다른 행의 셀 스트링들은 서로 다른 스트링 선택 라인들에 연결된다. 동일한 행의 셀 스트링들의 동일한 높이(또는 순서)의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인에 연결된다. 동일한 행의 셀 스트링들의 서로 다른 높이(또는 순서)의 스트링 선택 트랜지스터들은 서로 다른 스트링 선택 라인들에 연결된다.
예시적으로, 동일한 행의 셀 스트링들의 스트링 선택 트랜지스터들은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 스트링 선택 트랜지스터들(SSTa, SSTb)은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다. 제2 행의 샐 스트링들(CS21, CS22)의 스트링 선택 트랜지스터들(SSTa, SSTb)은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 열들은 서로 다른 비트 라인들(BL1, BL2)에 각각 연결된다. 예를 들어, 제1 열의 셀 스트링들(CS11~CS21)의 스트링 선택 트랜지스터들(SSTb)은 비트 라인(BL1)에 공통으로 연결된다. 제2 열의 셀 스트링들(CS12~CS22)의 스트링 선택 트랜지스터들(SST)은 비트 라인(BL2)에 공통으로 연결된다.
셀 스트링들(CS11, CS12)은 제1 플레인을 형성할 수 있다. 셀 스트링들(CS21, CS22)은 제2 플레인을 형성할 수 있다.
메모리 블록(BLKi)에서, 각 플레인의 각 높이의 메모리 셀들은 물리 낸드 페이지를 형성할 수 있다. 물리 낸드 페이지는 메모리 셀들(MC1~MC6)의 쓰기 및 읽기의 단위일 수 있다. 예를 들어, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b)에 의해 메모리 블록(BLKi)의 하나의 플레인이 선택될 수 있다. 스트링 선택 라인들(SSL1a, SSL1b)이 턴-온 전압이 공급되고 스트링 선택 라인들(SSL2a, SSL2b)에 턴-오프 전압이 공급될 때, 제1 플레인의 셀 스트링들(CS11, CS12)이 비트 라인들(BL1, BL2)에 연결된다. 즉, 제1 플레인이 선택된다. 스트링 선택 라인들(SSL2a, SSL2b)에 턴-온 전압이 공급되고 스트링 선택 라인들(SSL1a, SSL1B)에 턴-오프 전압이 공급될 때, 제2 플레인의 셀 스트링들(CS21, CS22)이 비트 라인들(BL1, BL2)에 연결된다. 즉, 제2 플레인이 선택된다. 선택된 플레인에서, 워드 라인들(WL1~WL6)에 의해 메모리 셀들(MC)의 하나의 행이 선택될 수 있다. 선택된 행에서, 제2 워드 라인(WL2)에 선택 전압이 인가되고, 나머지 워드 라인들(WL1, WL3~WL6)에 비선택 전압이 인가될 수 있다. 즉, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b) 및 워드 라인들(WL1~WL6)의 전압들을 조절함으로써, 제2 플레인의 제2 워드 라인(WL2)에 대응하는 물리 페이지가 선택될 수 있다. 선택된 물리 페이지의 메모리 셀들(MC2)에서, 쓰기 또는 읽기가 수행될 수 있다.
메모리 블록(BLKi)에서, 메모리 셀들(MC1~MC6)의 소거는 메모리 블록 단위 또는 서브 블록의 단위로 수행될 수 있다. 메모리 블록 단위로 소거가 수행될 때, 메모리 블록(BLKi)의 모든 메모리 셀들(MC)이 하나의 소거 요청(예를 들어, 외부의 메모리 컨트롤러로부터의 소거 요청)에 따라 동시에 소거될 수 있다. 서브 블록의 단위로 수행될 때, 메모리 블록(BLKi)의 메모리 셀들(MC1~MC6) 중 일부는 하나의 소거 요청(예를 들어, 외부의 메모리 컨트롤러로부터의 소거 요청)에 따라 동시에 소거되고, 나머지 일부는 소거 금지될 수 있다. 소거되는 메모리 셀들(MC)에 연결된 워드 라인에 저전압(예를 들어, 접지 전압 또는 접지 전압과 유사한 레벨을 갖는 저전압)이 공급되고, 소거 금지된 메모리 셀들(MC)에 연결된 워드 라인은 플로팅될 수 있다.
예시적으로, 메모리 블록(BLKi)은 블록 어드레스에 의해 식별되는 물리적 저장 공간을 포함할 수 있다. 워드 라인들(WL1~WL6) 각각은 행 어드레스에 의해 식별되는 물리적 저장 공간에 대응할 수 있다. 비트 라인들(BL1, BL2) 각각은 열 어드레스에 의해 식별되는 물리적 저장 공간에 대응할 수 있다. 서로 다른 행의 스트링 선택 라인들(SSL1a 및 SSL2a, 또는 SSL1b 및 SSL2b) 각각은 또는 서로 다른 행의 접지 선택 라인들(GSL1 및 GSL2)은 플레인 어드레스에 의해 식별되는 물리적 저장 공간에 대응할 수 있다.
도 10에 도시된 메모리 블록(BLKi)은 예시적인 것이다. 본 발명의 기술적 사상은 도 10에 도시된 메모리 블록(BLKi)에 한정되지 않는다. 예를 들어, 셀 스트링들의 행들의 수는 증가 또는 감소될 수 있다. 셀 스트링들의 행들의 수가 변경됨에 따라, 셀 스트링들의 행들에 연결되는 스트링 선택 라인들 또는 접지 선택 라인의 수, 그리고 하나의 비트 라인에 연결되는 셀 스트링들의 수 또한 변경될 수 있다.
셀 스트링들의 열들의 수는 증가 또는 감소될 수 있다. 셀 스트링들의 열들의 수가 변경됨에 따라, 셀 스트링들의 열들에 연결되는 비트 라인들의 수, 그리고 하나의 스트링 선택 라인에 연결되는 셀 스트링들의 수 또한 변경될 수 있다.
셀 스트링들의 높이는 증가 또는 감소될 수 있다. 예를 들어, 셀 스트링들 각각에 적층되는 접지 선택 트랜지스터들, 메모리 셀들 또는 스트링 선택 트랜지스터들의 수는 증가 또는 감소될 수 있다.
예시적으로, 하나의 물리 낸드 페이지에 속한 메모리 셀들(MC)은 적어도 세 개의 논리 낸드 페이지들에 대응할 수 있다. 예를 들어, 하나의 메모리 셀(MC)에 k 개(k는 2보다 큰 양의 정수)의 비트들이 프로그램될 수 있다. 하나의 물리 낸드 페이지에 속한 메모리 셀들(MC)에서, 각 메모리 셀(MC)에 프로그램되는 k 개의 비트들은 각각 k 개의 논리 낸드 페이지들을 형성할 수 있다.
예를 들어, 하나의 물리 낸드 페이지는 블록 어드레스, 행 어드레스, 열 어드레스 및 플레인 어드레스에 의해 식별되는 물리적 저장 공간을 포함한다. 하나의 물리 낸드 페이지는 둘 이상의 논리 낸드 페이지들을 포함할 수 있다. 논리 낸드 페이지들 각각은 물리 낸드 페이지의 어드레스에 더하여 논리 낸드 페이지들을 식별하는 추가 어드레스(또는 오프셋)에 의해 식별되는 논리적 저장 공간을 포함할 수 있다.
본 발명의 기술적 사상에 따른 일 예로서, 3차원 메모리 어레이가 제공된다. 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 획일적으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 획일적으로 형성되는 것은, 3차원 어레이의 각 레벨의 레이어들이 3차원 어레이의 하위 레벨의 레이어들 위에 직접 증착됨을 의미한다.
본 발명의 기술적 사상에 따른 일 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 포획 레이어를 포함한다. 각 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 더 포함한다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 획일적으로 형성된다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에서 워드 라인들 또는 비트 라인들이 공유되는 구성은 미국등록특허공보 제7,679,133호, 미국등록특허공보 제8,553,466호, 미국등록특허공보 제8,654,587호, 미국등록특허공보 제8,559,235호, 그리고 미국공개특허공보 제2011/0233648호에 개시되어 있으며, 본 발명의 레퍼런스로 포함된다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로, 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 호스트 장치 110: 호스트 프로세서
111; 어플리케이션부 112: 운영 체제
113: 디바이스 드라이버 120: 캐시 메모리
121: 메모리 컨트롤러 122: 디램
123: 메모리 셀 어레이 200: 보조 기억 장치
1000: 서버 장치

Claims (10)

  1. 서버 장치의 동작 방법에 있어서:
    프로세서가 캐시 메모리에 캐시 데이터를 저장하는 단계;
    상기 프로세서가 상기 캐시 데이터 중에서 제 1 특성을 갖는 제 1 캐시 데이터와 연관된 제 1 목록 및 제 2 특성을 갖는 제 2 캐시 데이터와 연관된 제 2 목록을 동작 메모리에 저장하는 단계;
    상기 제 1 목록 및 상기 제 2 목록 중 적어도 하나의 목록이 갱신되면, 상기 프로세서가 갱신 정보를 상기 캐시 메모리에 전달하는 단계를 포함하고,
    상기 제 1 목록은 상기 제 1 캐시 데이터의 제 1 페이지 정보들을 저장하는 제 1 영역과 상기 제 1 캐시 데이터의 제 2 페이지 정보들을 저장하는 제 2 영역을 포함하고, 상기 제 2 목록은 상기 제 2 캐시 데이터의 제 3 페이지 정보들을 저장하는 제 3 영역과 상기 제 2 캐시 데이터의 제 4 페이지 정보들을 저장하는 제 4 영역을 포함하는 방법..
  2. 제 1 항에 있어서,
    상기 제 1 특성은 최신성(recency)과 연관되고, 상기 제 2 특성은 빈도(frequency)와 연관되는 동작 방법.
  3. 제 1 항에 있어서,
    상기 갱신 정보를 기반으로 상기 제 1 목록과 연관된 상기 제 1 캐시 데이터는 핫 데이터(hot data)이고, 상기 제 2 목록과 연관된 상기 제 2 캐시 데이터는 콜드 데이터(cold data)로 판단하는 단계를 더 포함하는 동작 방법.
  4. 제 3 항에 있어서,
    상기 제 1 캐시 데이터와 연관된 저장 영역보다 상기 제 2 캐시 데이터와 연관된 저장 영역에 리드 리클레임의 수행 비율을 높게 설정하는 동작 방법.
  5. 제 1 항에 있어서,
    상기 갱신 정보를 기반으로 상기 캐시 메모리에 저장된 데이터 특성에 따라 가비지 콜렉션을 수행하는 단계를 더 포함하는 동작 방법.
  6. 캐시 데이터를 저장하는 캐시 메모리;
    복수의 하드 디스크 드라이브들을 포함하는 보조 기억 장치; 및
    상기 캐시 데이터 중에서 제 1 특성을 갖는 제 1 캐시 데이터와 연관된 제 1 목록 및 제 2 특성을 갖는 제 2 캐시 데이터와 연관된 제 2 목록을 동작 메모리에 저장하는 프로세서를 포함하되,
    상기 프로세서는 상기 제 1 목록 및 상기 제 2 목록 중 적어도 하나의 목록이 갱신되면, 상기 프로세서가 갱신 정보를 상기 캐시 메모리에 전달하는 서버 장치.
  7. 제 6 항에 있어서,
    상기 캐시 메모리의 메모리 블록들 각각은 기판 위에 배열되는 셀 스트링들을 포함하고,
    상기 셀 스트링들 각각은 상기 기판 위에서 상기 기판과 수직한 방향으로 적층되는 적어도 하나의 선택 트랜지스터 및 메모리 셀들을 포함하고,
    상기 적어도 하나의 선택 트랜지스터 및 상기 메모리 셀들 각각은 전하 포획막을 포함하는 서버 장치.
  8. 제 6 항에 있어서,
    상기 캐시 메모리는 솔리드 스테이트 드라이브(SSD, Solid State Drive)인 서버 장치.
  9. 제 8 항에 있어서,
    상기 캐시 메모리는 상기 갱신 정보를 기반으로 가비지 콜렉션 동작 또는 리드 리클레임 동작을 수행하는 서버 장치.
  10. 제6 항에 있어서,
    상기 프로세서는 상기 캐시 메모리와 연관된 히트 및 미스를 판별하도록 구성되는 서버 장치.
KR1020160060336A 2016-05-17 2016-05-17 캐시 메모리를 포함하는 서버 장치 및 그것의 동작 방법 KR20170130011A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160060336A KR20170130011A (ko) 2016-05-17 2016-05-17 캐시 메모리를 포함하는 서버 장치 및 그것의 동작 방법
US15/443,097 US20170336983A1 (en) 2016-05-17 2017-02-27 Server device including cache memory and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160060336A KR20170130011A (ko) 2016-05-17 2016-05-17 캐시 메모리를 포함하는 서버 장치 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20170130011A true KR20170130011A (ko) 2017-11-28

Family

ID=60330740

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160060336A KR20170130011A (ko) 2016-05-17 2016-05-17 캐시 메모리를 포함하는 서버 장치 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US20170336983A1 (ko)
KR (1) KR20170130011A (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10459892B2 (en) 2014-04-23 2019-10-29 Qumulo, Inc. Filesystem hierarchical aggregate metrics
JP6799256B2 (ja) * 2016-11-28 2020-12-16 富士通株式会社 ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US10095729B2 (en) 2016-12-09 2018-10-09 Qumulo, Inc. Managing storage quotas in a shared storage system
US11360936B2 (en) 2018-06-08 2022-06-14 Qumulo, Inc. Managing per object snapshot coverage in filesystems
US10534758B1 (en) 2018-12-20 2020-01-14 Qumulo, Inc. File system cache tiers
US10860372B1 (en) 2020-01-24 2020-12-08 Qumulo, Inc. Managing throughput fairness and quality of service in file systems
US10795796B1 (en) 2020-01-24 2020-10-06 Qumulo, Inc. Predictive performance analysis for file systems
US11151001B2 (en) 2020-01-28 2021-10-19 Qumulo, Inc. Recovery checkpoints for distributed file systems
US11157418B2 (en) * 2020-02-09 2021-10-26 International Business Machines Corporation Prefetching data elements within a heterogeneous cache
KR20210141159A (ko) * 2020-05-15 2021-11-23 에스케이하이닉스 주식회사 메모리 시스템
US11586557B2 (en) * 2020-08-26 2023-02-21 Micron Technology, Inc. Dynamic allocation of buffers for eviction procedures
US11775481B2 (en) 2020-09-30 2023-10-03 Qumulo, Inc. User interfaces for managing distributed file systems
KR20220048869A (ko) * 2020-10-13 2022-04-20 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11157458B1 (en) 2021-01-28 2021-10-26 Qumulo, Inc. Replicating files in distributed file systems using object-based data storage
US11461241B2 (en) * 2021-03-03 2022-10-04 Qumulo, Inc. Storage tier management for file systems
US11132126B1 (en) 2021-03-16 2021-09-28 Qumulo, Inc. Backup services for distributed file systems in cloud computing environments
US11567660B2 (en) 2021-03-16 2023-01-31 Qumulo, Inc. Managing cloud storage for distributed file systems
US11669255B2 (en) 2021-06-30 2023-06-06 Qumulo, Inc. Distributed resource caching by reallocation of storage caching using tokens and agents with non-depleted cache allocations
US11294604B1 (en) 2021-10-22 2022-04-05 Qumulo, Inc. Serverless disk drives based on cloud storage
US11354273B1 (en) 2021-11-18 2022-06-07 Qumulo, Inc. Managing usable storage space in distributed file systems
US11599508B1 (en) 2022-01-31 2023-03-07 Qumulo, Inc. Integrating distributed file systems with object stores
US11722150B1 (en) 2022-09-28 2023-08-08 Qumulo, Inc. Error resistant write-ahead log
US11729269B1 (en) 2022-10-26 2023-08-15 Qumulo, Inc. Bandwidth management in distributed file systems
US11934660B1 (en) 2023-11-07 2024-03-19 Qumulo, Inc. Tiered data storage with ephemeral and persistent tiers
US11921677B1 (en) 2023-11-07 2024-03-05 Qumulo, Inc. Sharing namespaces across file system clusters

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141731A (en) * 1998-08-19 2000-10-31 International Business Machines Corporation Method and system for managing data in cache using multiple data structures
US6996676B2 (en) * 2002-11-14 2006-02-07 International Business Machines Corporation System and method for implementing an adaptive replacement cache policy
US8930624B2 (en) * 2012-03-05 2015-01-06 International Business Machines Corporation Adaptive cache promotions in a two level caching system
KR102024850B1 (ko) * 2012-08-08 2019-11-05 삼성전자주식회사 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
US9779027B2 (en) * 2012-10-18 2017-10-03 Oracle International Corporation Apparatus, system and method for managing a level-two cache of a storage appliance
US9645920B2 (en) * 2013-06-25 2017-05-09 Marvell World Trade Ltd. Adaptive cache memory controller
US9990296B2 (en) * 2015-07-31 2018-06-05 Oracle International Corporation Systems and methods for prefetching data
US9824030B2 (en) * 2015-10-30 2017-11-21 International Business Machines Corporation Adjusting active cache size based on cache usage

Also Published As

Publication number Publication date
US20170336983A1 (en) 2017-11-23

Similar Documents

Publication Publication Date Title
KR20170130011A (ko) 캐시 메모리를 포함하는 서버 장치 및 그것의 동작 방법
US10936252B2 (en) Storage system capable of invalidating data stored in a storage device thereof
US9274942B2 (en) Information processing system and nonvolatile storage unit
KR101563875B1 (ko) 호스트 기록 작업과 캐시 플러싱을 균형화하기 위한 방법과 시스템
US9367444B2 (en) Non-volatile memory device, control method for information processing device, and information processing device
CN109101434B (zh) 存储装置、存储系统及所述存储装置的操作方法
US11216368B2 (en) Memory system for garbage collection using page offsets, invalid offset ratio, sequential ratio, and logical address prediction
US20150127889A1 (en) Nonvolatile memory system
WO2016135955A1 (ja) 不揮発性メモリデバイス
US11386005B2 (en) Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache
KR20150129941A (ko) 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
KR20100114381A (ko) 동작 수행 중 다른 요청을 우선 처리할 수 있는 비휘발성 메모리 컨트롤러, 이를 포함하는 시스템 및 그 관리 방법
KR20160083762A (ko) 스토리지 시스템에서의 매핑 테이블 관리 방법 및 이를 적용한 스토리지 시스템
KR20160124990A (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
JP2007115004A (ja) 記憶装置、コンピュータシステム、およびデータ書き込み方法
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
KR20160103236A (ko) 저장 장치 및 그것의 동작 방법
US11875055B2 (en) Storage device that receives inode address information to reduce external communication overhead
KR20200122875A (ko) 컨트롤러 및 그 동작 방법
KR20200132495A (ko) 메모리 시스템, 컨트롤러 및 컨트롤러의 동작 방법
KR100963009B1 (ko) 파일 관리 시스템 및 방법
US11698754B2 (en) Coalescing read commands by location from a host queue
US20170147231A1 (en) Storage device and operating method of storage device
KR20200145151A (ko) 맵핑 정보를 축약하는 플래시 변환 계층 구조를 이용하여 메모리 리소스를 관리하는 데이터 저장 장치
KR101070511B1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법