KR-20260061971-A - MEMORY DEVICE PROVIDING HOTNESS TRACKING AND OPERATING METHOD THEREOF
Abstract
핫니스 트래킹을 제공하는 메모리 디바이스 및 그 동작 방법이 제공된다. 그 디바이스는 메모리 공간을 포함하는 메모리 어레이, 핫니스 트래킹을 위한 호스트의 포커스 요청에 기초하여 메모리 공간에 포커스 주소 범위들을 설정하는 컨트롤러, 및 포커스 주소 범위들 중 대응 포커스 주소 범위로의 메모리 접근을 카운트하여 카운트 값을 결정하고, 카운트 값을 호스트에 제공하는 카운터를 포함하는 카운터들을 포함할 수 있다.
Inventors
- 신용삼
- 오덕재
Assignees
- 삼성전자주식회사
Dates
- Publication Date
- 20260506
- Application Date
- 20241028
Claims (20)
- 메모리 공간을 포함하는 메모리 어레이; 핫니스 트래킹을 위한 호스트의 포커스 요청에 기초하여 상기 메모리 공간에 포커스 주소 범위들을 설정하는 컨트롤러; 및 상기 포커스 주소 범위들 중 대응 포커스 주소 범위로의 메모리 접근을 카운트하여 카운트 값을 결정하고, 상기 카운트 값을 상기 호스트에 제공하는 카운터를 포함하는 카운터들 을 포함하는 메모리 디바이스.
- 제1항에 있어서, 상기 컨트롤러는 상기 메모리 접근의 메모리 주소를 수신하고, 상기 메모리 접근의 상기 메모리 주소가 상기 대응 포커스 주소 범위에 속하는 경우, 상기 카운터의 상기 카운트 값을 증가시키는, 메모리 디바이스.
- 제2항에 있어서, 상기 컨트롤러는 재설정가능 주소 필터를 포함하고, 상기 포커스 주소 범위들에 기초하여 상기 재설정가능 주소 필터의 필터링 범위를 설정하고, 상기 재설정가능 주소 필터는 상기 메모리 접근의 상기 메모리 주소가 입력되면 상기 포커스 주소 범위들에 기초하여 상기 메모리 주소를 필터링하여 상기 메모리 주소가 속하는 상기 대응 포커스 주소 범위를 식별하는, 메모리 디바이스.
- 제1항에 있어서, 상기 카운터는 상기 호스트의 피드백 요청에 기초하여 상기 카운트 값을 상기 호스트에 제공하는, 메모리 디바이스.
- 제4항에 있어서, 상기 피드백 요청은 상기 포커스 주소 범위들 중 상기 대응 포커스 주소 범위를 포함하는, 메모리 디바이스.
- 제1항에 있어서, 상기 포커스 요청은 상기 포커스 주소 범위들을 포함하는, 메모리 디바이스.
- 제6항에 있어서, 상기 포커스 주소 범위들은 상기 호스트에 의해 관리되는 핫 페이지 후보 및 콜드 페이지 후보 중 하나 이상에 기초하여 결정되는, 메모리 디바이스.
- 제7항에 있어서, 상기 핫 페이지 후보 및 상기 콜드 페이지 후보 중 하나 이상은 상기 포커스 주소 범위들의 카운트 값들에 기초하여 핫 페이지 및 콜드 페이지 중 하나 이상으로 결정되는, 메모리 디바이스.
- 제1항에 있어서, 상기 카운터는 상기 카운트 값이 피드백 조건을 만족하는 경우 상기 카운트 값을 상기 호스트에 제공하는, 메모리 디바이스.
- 제9항에 있어서, 상기 피드백 조건은 핫 페이지를 위한 핫 피드백 임계치 및 콜드 페이지를 위한 콜드 피드백 임계치 중 하나 이상에 기초하여 결정되는, 메모리 디바이스.
- 제1항에 있어서, 상기 컨트롤러는 상기 대응 포커스 주소 범위의 사이즈를 줄여서 상기 대응 포커스 주소 범위의 서브 주소 범위들을 설정하고, 상기 서브 주소 범위들의 카운트 값들을 상기 호스트에 제공하는, 메모리 디바이스.
- 제11항에 있어서, 상기 대응 포커스 주소 범위의 상기 사이즈 및 상기 서브 주소 범위들의 사이즈는 복수의 레벨들의 페이지 테이블들 별 페이지 테이블 엔트리에 의해 지시되는 메모리 공간의 사이즈에 기초하여 설정되는, 메모리 디바이스.
- 제1항에 있어서, 상기 컨트롤러는 디모션(demotion)에 따라 콜드 페이지가 상기 메모리 공간에 저장된 경우 상기 디모션의 적합성 체크를 위해 상기 콜드 페이지에 대응하는 콜드 포커스 주소 범위를 설정하고, 상기 콜드 포커스 주소 범위로의 메모리 접근에 대한 카운트 값을 상기 호스트에 피드백하는, 메모리 디바이스.
- 제1항에 있어서, 상기 포커스 주소 범위들은 상기 포커스 주소 범위들을 사용하는 어플리케이션의 메모리 정책에 기초하여 설정되는, 메모리 디바이스.
- 제1항에 있어서, 상기 메모리 디바이스는 상기 호스트의 제1 티어(tier) 메모리 디바이스와 구분되는 제2 티어 메모리 디바이스인, 메모리 디바이스.
- 호스트; 제1 메모리 공간을 포함하는 제1 티어 메모리 디바이스; 및 제2 메모리 공간을 포함하고, 상기 제1 티어 메모리 디바이스보다 느린 처리 속도를 갖는 제2 티어 메모리 디바이스 를 포함하고, 상기 제2 티어 메모리 디바이스는 핫니스 트래킹을 위한 상기 호스트의 포커스 요청에 기초하여 상기 제2 메모리 공간에 포커스 주소 범위들을 설정하고, 상기 포커스 주소 범위들 중 카운터의 대응 포커스 주소 범위로의 메모리 접근을 카운트하여 상기 카운터의 카운트 값을 결정하고, 상기 카운트 값을 상기 호스트에 제공하는, 전자 장치.
- 제16항에 있어서, 상기 제2 티어 메모리 디바이스는 상기 메모리 접근의 메모리 주소를 수신하고, 상기 메모리 접근의 상기 메모리 주소가 상기 대응 포커스 주소 범위에 속하는 경우, 상기 카운터의 상기 카운트 값을 증가시키는, 전자 장치.
- 제17항에 있어서, 상기 제2 티어 메모리 디바이스는 재설정가능 주소 필터를 포함하고, 상기 포커스 주소 범위들에 기초하여 상기 재설정가능 주소 필터의 필터링 범위를 설정하고, 상기 재설정가능 주소 필터는 상기 메모리 접근의 상기 메모리 주소가 입력되면 상기 포커스 주소 범위들에 기초하여 상기 메모리 주소를 필터링하여 상기 메모리 주소가 속하는 상기 대응 포커스 주소 범위를 식별하는, 전자 장치.
- 제16항에 있어서, 상기 제2 티어 메모리 디바이스는 상기 포커스 주소 범위들 중 상기 대응 포커스 주소 범위를 포함하는 상기 호스트의 피드백 요청에 기초하여 상기 카운트 값을 상기 호스트에 제공하는, 메모리 디바이스.
- 메모리 디바이스의 동작 방법에 있어서, 핫니스 트래킹을 위한 호스트의 포커스 요청에 기초하여 메모리 공간에 포커스 주소 범위들을 설정하는 단계; 상기 포커스 주소 범위들 중 카운터의 대응 포커스 주소 범위로의 메모리 접근을 카운트하여 상기 카운터의 카운트 값을 결정하는 단계; 및 상기 카운트 값을 상기 호스트에 제공하는 단계 를 포함하는 동작 방법.
Description
핫니스 트래킹을 제공하는 메모리 디바이스 및 그 동작 방법{MEMORY DEVICE PROVIDING HOTNESS TRACKING AND OPERATING METHOD THEREOF} 아래 실시예들은 핫니스 트래킹을 제공하는 메모리 디바이스 및 그 동작 방법에 관한 것이다. 계층적 메모리(tired memory) 관리 기법은 다양한 성능 특성을 가진 계층적 메모리를 기반으로 시스템의 메모리 성능을 최적화하는데 이용될 수 있다. 예를 들어, 계층적 메모리는 CXL(Compute Express Link) 기반 메모리 디바이스를 포함할 수 있다. 계층적 메모리 관리 기법 중 기존의 핫니스 트래킹 기법에 따르면, 호스트(host)에 의해 계층적 메모리에 대한 메모리 접근 패턴이 분석되고, 핫 페이지(hot page) 및 콜드 페이지(cold page)가 구분될 수 있다. 핫니스 트래킹 기법에 따르면, 자주 접근되는 페이지가 빠른 메모리 계층에 배치되어 시스템 성능이 향상될 수 있다. 도 1은 일 실시예에 따른, 계층적 메모리 시스템을 갖는 전자 장치의 핫니스 트래킹을 이용한 메모리 관리 동작을 예시적으로 나타내는 도면이다. 도 2는 일 실시예에 따른, 메모리 디바이스의 구성을 예시적으로 나타내는 도면이다. 도 3은 일 실시예에 따른, 호스트 및 컨트롤러의 메모리 관리 동작을 예시적으로 나타내는 도면이다. 도 4는 일 실시예에 따른, 디모션 검증을 예시적으로 나타내는 도면이다. 도 5는 일 실시예에 따른, 피드백 조건을 이용한 메모리 디바이스의 피드백 동작을 예시적으로 나타내는 도면이다. 도 6은 일 실시예에 따른, 메모리 주소 범위의 업데이트 과정을 예시적으로 나타내는 도면이다. 도 7은 일 실시예에 따른, 어플리케이션의 메모리 정책에 기초한 메모리 관리 동작을 예시적으로 나타내는 도면이다. 도 8은 일 실시예에 따른, 메모리 디바이스의 동작 방법을 예시적으로 나타내는 플로우 차트이다. 실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다. 제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 본 명세서에서, "A 또는 B 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다. 도 1은 일 실시예에 따른, 계층적 메모리 시스템을 갖는 전자 장치의 핫니스 트래킹을 이용한 메모리 관리 동작을 예시적으로 나타내는 도면이다. 도 1을 참조하면, 전자 장치(100)는 호스트(host), 제1 티어(first tier) 메모리 디바이스(140), 및 제2 티어 메모리(second tier) 디바이스(150)를 포함할 수 있다. 전자 장치(100)는 도 1에 도시되지 않은 추가적인 구성, 예를 들어 스토리지(예: 디스크(disk)), I/O 디바이스(input/output device), 통신 인터페이스, 보조 프로세서(auxiliary processor)(예: GPU(graphic processing unit), NPU(neural processing unit), 가속기(accelerator)) 등을 더 포함할 수 있다. 예를 들어, 전자 장치(100)는 데스크탑, 서버 등과 같은 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 호스트(110)는 프로세서(예: CPU(central processing unit))일 수 있다. 전자 장치(100)가 보조 프로세서를 포함하는 경우, 호스트(110)는 메인 프로세서에 해당할 수 있다. 제1 티어 메모리 디바이스(140)는 제2 티어 메모리 디바이스(150)에 비해 빠를 수 있다. 제2 티어 메모리 디바이스(150)는 제1 티어 메모리 디바이스(140)에 비해 큰 용량을 제공할 수 있다. 예를 들어, 제1 티어 메모리 디바이스(140)는 DRAM(dynamic random access memory)과 같은 시스템 메모리에 해당할 수 있고, 제2 티어 메모리 디바이스(150)는 CXL(compute express link) 기반의 메모리와 같은 추가 메모리, 보조 메모리, 혹은 원격 메모리에 해당할 수 있다. 제1 티어 메모리 디바이스(140)는 빠른 메모리(fast memory)로 부를 수 있고, 제2 티어 메모리 디바이스(150)는 느린 메모리(slow memory)로 부를 수 있다. 호스트(110)와 제1 티어 메모리 디바이스(140)는 제1 인터페이스(120)를 통해 연결될 수 있다. 예를 들어, 제1 티어 메모리 디바이스(140)는 DRAM일 수 있고, 제1 인터페이스(120)는 DIMM(dual inline memory module)일 수 있다. 호스트(110)와 제2 티어 메모리 디바이스(150)는 제2 인터페이스(130)를 통해 연결될 수 있다. 예를 들어, 제2 티어 메모리 디바이스(150)는 CXL 기반 메모리일 수 있고, 제2 인터페이스(130)는 CXL 인터페이스일 수 있다. 제1 인터페이스(120)와 제2 인터페이스(130)는 서로 구분될 수 있다. 예를 들어, 제1 인터페이스(120)와 제2 인터페이스(130)는 서로 다른 표준 및/또는 서로 다른 연결 방식을 이용할 수 있다. 호스트(110)는 제1 인터페이스(120) 및 제2 인터페이스(130)를 이용하여 제1 티어 메모리 디바이스(140) 및 제2 티어 메모리 디바이스(150)에 접근할 수 있다. 호스트(110)는 메모리 주소를 이용하여 메모리 접근을 수행할 수 있고, 메모리 접근에 따라 메모리 주소의 메모리 공간에 데이터가 저장되거나, 메모리 공간으로부터 데이터가 로드될 수 있다. 호스트(110)는 핫니스 트래킹(hotness tracking)(111)을 수행하여 태스크(task)의 메모리 접근 패턴을 프로파일링할 수 있다. 핫니스 트래킹(111)에 기초하여 자주 접근되는 데이터는 제1 티어 메모리 디바이스(140)에 배치될 수 있고, 자주 접근되지 않는 데이터는 제2 티어 메모리 디바이스(150)에 배치될 수 있다. 핫니스 트래킹(111)에 기초하여 자주 사용되는 데이터가 제1 티어 메모리 디바이스(140)에 배치됨에 따라 성능 최적화가 이루어질 수 있다. 제1 티어 메모리 디바이스(140)는 비용 등으로 인해 제한적일 수 있는데, 핫니스 트래킹(111)에 기초하여 제1 티어 메모리 디바이스(140)가 효율적으로 사용될 수 있다. 또한, 제1 티어 메모리 디바이스(140)를 효율적으로 사용함으로써 전체 시스템 비용이 절감될 수 있다. 핫니스 트래킹에 따른 프로파일링 결과는 핫 페이지 리스트(HPL), 콜드 페이지 리스트(CPL), 및 후보 페이지 리스트(CAPL) 중 하나 이상을 포함할 수 있다. 핫 페이지 리스트(HPL)는 많은 메모리 접근이 이루어진 페이지들을 핫 페이지로 포함할 수 있다. 콜드 페이지 리스트(CPL)는 적은 메모리 접근이 이루어진 페이지들을 콜드 페이지로 포함할 수 있다. 후보 페이지 리스트(CAPL)는 핫 페이지 후보(hot page candidate) 및 콜드 페이지 후보(cold page candidate)를 포함할 수 있다. 페이지들로의 모든 메모리 접근을 호스트(110)가 직접적으로 트래킹하는 것은 호스트(110)의 성능 오버헤드를 발생시킬 수 있다. 성능 오버헤드를 줄이기 위해 샘플링 주기를 늘릴 경우 즉시성이 떨어질 수 있고, 샘플링 범위를 늘릴 경우 정확성이 떨어질 수 있다. 제2 티어 메모리 디바이스(150)는 메모리 접근을 카운트하는 카운팅 로직(counting logic)을 포함할 수 있다. 예를 들어, 카운팅 로직은 카운터들을 포함할 수 있다. 호스트(110)는 핫니스 트래킹(111)에 제2 티어 메모리 디바이스(150)의 카운팅 로직을 이용하여 즉시성 및/또는 정확성을 향상시키고, 성능 오버헤드를 낮출 수 있다. 호스트(110)는 개략적인 메모리 프로파일링을 수행하여 후보 페이지 리스트(CAPL)의 핫 페이지 후보 및 콜드 페이지 후보를 결정할 수 있다. 예를 들어, 호스트(110)는 성능 카운터(performance counter), NUMA(non-uniform memo