KR102266477B1 - 의사 메인 메모리 시스템 - Google Patents

의사 메인 메모리 시스템 Download PDF

Info

Publication number
KR102266477B1
KR102266477B1 KR1020170126199A KR20170126199A KR102266477B1 KR 102266477 B1 KR102266477 B1 KR 102266477B1 KR 1020170126199 A KR1020170126199 A KR 1020170126199A KR 20170126199 A KR20170126199 A KR 20170126199A KR 102266477 B1 KR102266477 B1 KR 102266477B1
Authority
KR
South Korea
Prior art keywords
memory
processing unit
central processing
increase
interface
Prior art date
Application number
KR1020170126199A
Other languages
English (en)
Other versions
KR20180036591A (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
Priority claimed from US15/282,848 external-priority patent/US10372606B2/en
Priority claimed from US15/663,619 external-priority patent/US10515006B2/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20180036591A publication Critical patent/KR20180036591A/ko
Application granted granted Critical
Publication of KR102266477B1 publication Critical patent/KR102266477B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

의사 메인 메모리 시스템은 압축, 중복제거, 및 에러 정정을 이용하여 메모리 증대를 수행하기 위한 메모리 어댑터 회로를 포함한다. 메모리 어댑터 회로는 메모리에 연결되고, 메모리 증대 방법을 채택하여 메모리의 유효 저장 용량을 증가시킨다. 또한, 메모리 어댑터 회로는 메모리 버스에 연결되고, 메모리 버스에 연결되기 위한 플래시 메모리 또는 수정된 플래시 메모리 인터페이스를 구현한다.

Description

의사 메인 메모리 시스템{PSEUDO MAIN MEMORY SYSTEM}
본 발명은 데이터 저장 장치에 관한 것으로 더욱 상세하게는 메모리 증대를 사용하여 데이터를 저장하기 위한 시스템에 관한 것이다.
데이터베이스들, 가상 데스크탑 인프라(infrastructure), 및 데이터 분석과 같은 일부 현대의 어플리케이션들은 대형 메인 메모리 공간을 가질 수 있다. 시스템이 확장됨에 따라, 이러한 용량의 요구들이 크게 증가하고 있다. 따라서, 보다 더 큰 저장 용량을 제공하는 시스템 및 방법이 요구된다.
본 발명의 목적은 메모리를 효율적으로 증가시켜 데이터를 저장하기 위한 시스템을 제공하는데 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은 중앙 처리 장치 및 메모리 어댑터 회로 및 제1 메모리를 포함하는 메모리 시스템을 포함하고, 상기 메모리 어댑터 회로는, 상기 중앙 처리 장치에 연결된 제1 메모리 인터페이스 및 상기 제1 메모리에 연결된 제2 메모리 인터페이스를 포함하고, 상기 제1 메모리 인터페이스는 2배속 동기식 다이나믹 랜덤 액세스 메모리 인터페이스이고, 상기 메모리 어댑터 회로는 상기 제1 메모리의 저장 용량의 증가를 이용하여 상기 제1 메모리에 데이터를 저장하고, 상기 제1 메모리로부터 데이터를 회수 하도록 구성된다.
상기 제1 메모리의 저장 용량의 증가는 압축, 중복제거, 및 에러 정정 중 적어도 하나를 포함한다.
상기 제1 메모리 인터페이스는 제2 세대 또는 그 보다 높은 세대의 2배속 동기식 다이나믹 랜덤 액세스 메모리 인터페이스이다.
상기 제2 메모리 인터페이스는 제2 세대 또는 그 보다 높은 세대의 2배속 동기식 다이나믹 랜덤 액세스 메모리 인터페이스이다.
상기 제1 메모리 인터페이스는 플래시 메모리 인터페이스 이고, 상기 컴퓨팅 시스템은 블록 장치로서 상기 메모리 시스템을 동작시키도록 구성된다.
상기 중앙 처리 장치는 메모리 관리 회로를 통해 상기 메모리 어댑터 회로에 연결된다.
상기 제1 메모리는 다이나믹 랜덤 액세스 메모리이고, 상기 제2 메모리 인터페이스는 제2 세대 또는 그 보다 높은 세대의 2배속 동기식 다이나믹 랜덤 액세스 메모리 인터페이스이다.
상기 메모리 어댑터 회로는 압축, 중복제거, 및 에러 정정을 수행하도록 구성된 단일 집적 회로이다.
상기 컴퓨팅 시스템은 메모리 관리 회로를 통해 상기 중앙 처리 장치에 연결된 제2 메모리를 더 포함한다.
상기 제2 메모리는 제3 메모리 인터페이스를 통해 상기 메모리 관리 회로에 연결되고, 상기 제3 메모리 인터페이스는 제2 세대 또는 그 보다 높은 세대의 2배속 동기식 다이나믹 랜덤 액세스 메모리 인터페이스이다.
상기 중앙 처리 장치는 상기 제2 메모리에 페이지 캐쉬를 유지하도록 구성되고, 상기 중앙 처리 장치는 상기 페이지 캐쉬로부터 클린 페이지들을 축출할 때, 상기 클린 페이지들에 대한 클린 캐쉬 기능을 호출하도록 구성되고, 상기 클린 캐쉬 기능은 상기 클린 페이지들을 저장하기 위해 구성되고, 상기 클린 페이지들을 저장하기 위한 충분한 공간이 상기 제1 메모리에서 이용 가능할 때 상기 클린 페이지들은 상기 제1 메모리에 저장되고, 그렇지 않으면 상기 클린 페이지들은 영구 저장장치에 저장된다.
상기 클린 캐쉬 기능은 추정된 증가 비율에 기초하여 상기 제1 메모리에서 상기 클린 페이지들을 저장하기 위한 충분한 공간이 이용가능한지 여부를 평가하도록 구성되고, 상기 추정된 증가 비율은 설정된 시간 간격 동안 상기 제1 메모리에 저장된 데이터에 대한 증가 비율의 함수이다.
상기 중앙 처리 장치는 상기 제2 메모리에 사용자 메모리 공간을 유지하도록 구성되고, 상기 중앙 처리 장치는 상기 사용자 메모리 공간으로부터 더티 페이지들을 축출할 때, 상기 더티 페이지들에 대한 프론트스왑 기능을 호출하도록 구성되고, 상기 프론트스왑 기능은 상기 더티 페이지들을 저장하도록 구성되고, 상기 더티 페이지들을 저장하기 위한 충분한 공간이 상기 제1 메모리에서 이용 가능할 때 상기 더티 페이지들은 상기 제1 메모리에 저장되고, 그렇지 않으면 상기 더티 페이지들은 영구 저장장치에 저장된다.
상기 프론트스왑 기능은 추정된 증가 비율에 기초하여 상기 제1 메모리에서 상기 더티 페이지들을 저장하기 위한 충분한 공간이 이용가능한지 여부를 평가하도록 구성되고, 상기 추정된 증가 비율은 설정된 시간 간격 동안 상기 제1 메모리에 저장된 데이터에 대한 증가 비율의 함수이다.
상기 중앙 처리 장치는 하나 이상의 어플리케이션들을 실행하고, 시스템 정보 함수에 대한 하나 이상의 어플리 케이션에 응답하여, 상기 제1 메모리의 크기 및 상기 제2 메모리의 크기에 기초한 전체 가용 메모리에 대한 값 및 상기 제1 메모리에서 사용 가능한 메모리의 양 및 상기 제2 메모리에서 사용 가능한 메모리의 양에 기초한 전체 사용 가능한 메모리 값을 리턴 시키도록 구성된다.
상기 전체 사용 가능한 메모리에 대한 상기 값은 상기 제2 메모리에서 사용 가능한 메모리의 양 및 최소 증가 비율과 상기 제1 메모리에서 사용 가능한 메모리의 양을 곱한값을 합한 값이고, 상기 최소 증가 비율은 시스템 시작 후 설정된 간격이 경과될 때, 상기 설정 간격의 시간 동안 상기 제1 메모리에 저장된 데이터에 대한 증가 비율들의 함수이고, 그렇지 않으면 2.0이다.
본 발명의 실시 예에서, 중앙 처리 장치 및 메모리 어댑터 회로 및 제1 메모리를 포함하는 메모리 시스템을 포함하고, 상기 메모리 어댑터 회로는 상기 중앙 처리 장치에 연결된 제1 메모리 인터페이스 및 상기 제1 메모리에 연결된 제2 메모리 인터페이스를 포함하고, 상기 제1 메모리 인터페이스는 2배속 동기식 다이나믹 랜덤 액세스 인터페이스인 컴퓨터 시스템의 동작 방법은 상기 제1 메모리의 저장 용량의 증가를 이용하여 상기 제1 메모리에 데이터를 저장하고, 상기 제1 메모리로부터 데이터를 회수하는 단계를 포함한다.
상기 제1 메모리의 저장 용량의 증가는 압축, 중복제거, 및 에러 정정 중 적어도 하나를 포함한다.
상기 컴퓨터 시스템의 동작 방법은 상기 메모리 시스템을 플래시 메모리 프로토콜로 동작할 수 있는 블록 장치로서 사용하는 단계를 더 포함한다.
상기 메모리 어댑터 회로는 압축, 중복제거, 및 에러 정정을 수행하도록 구성된 단일 집적 회로이다.
본 발명의 실시 예에 따르면, 의사 메인 메모리 시스템은 메모리를 효율적으로 증가시켜 데이터를 저장하기 위한 시스템을 제공할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 의사 메인 메모리로서 메모리 ABCDE를 사용한 시스템 메모리 계층을 보여주는 도면이다.
도 2는 본 발명의 일 실시 예에 따른 컴퓨팅 시스템의 하드웨어 블록도 이다.
도 3은 일부 실시예들에 따른 하이브리드 하드웨어-소프트웨어 블록도이다.
도 4는 본 발명의 실시 예에 따른 sysinfo 함수 호출에 대한 응답을 수정하기 위한 시스템의 소프트웨어 블록도이다.
첨부된 도면과 관련하여 이하 본 명세서의 상세한 설명은 본 발명에 따라서 제공되는 의사 메인 메모리 시스템의 예시적인 실시 예에 대한 설명이며 본 발명이 구성되거나 이용될 수 있는 단일한 형태를 나타내는 것은 아니다. 상세한 설명은 예시적인 실시 예들과 관련하여 본 발명의 특징들에 대한 설명이다. 그러나, 본 발명의 사상이나 범위 내에 포함되는 다른 실시 예들에 의해 동일하거나 같은 기능 및 구조가 수행될 수 있음을 이해해야 할 것이다. 본 명세서의 어딘가에서 나타내는 바와 같이, 같은 구성의 번호는 동일한 요소 또는 특징들을 가리키기 위한 것이다.
일부 실시 예들에서 시스템은 "메모리 ABCDE"라고 하는 압축 및/또는 중복 제거 및/또는 에러-정정에 의해 인라인 메모리 증가를 배치하기 위한 효율적인 의사-메모리 메커니즘이다. 이러한 시스템은 메모리 시스템에 완전히 국부적인 하드웨어 기술들에 의존하면서 메모리 밀도를 극적으로 증가시킬 수 있다. 메모리 ABCDE 시스템들을 위한 과제들은 2배속 동기식 다이나믹 랜덤 액세스 메모리(DDR:double data rate synchronous dynamic random-access memory) 버스에 대한 통합과 이러한 시스템들이 제공할 수 있는 가변 메모리 밀도에 대한 관리(예를 들어 어플리케이션 데이터 또는 외부 조건들(예를 들어, 에러들에 영향을 줄 수 있는 외부 조건들)에 따라 변화하는 메모리 밀도)를 포함한다. 더욱이 일부 어플리케이션들은 메모리 ABCDE 시스템에 의해 제공되는 추가 용량을 명시적으로 사용하도록 작성되지 않을 수 있다. 일부 실시 예들에서 시스템은 시뮬레이션된 시스템 메모리 용량을 제공하여 사용자 공간 어플리케이션이 대용량의 메모리를 처리할 수 있도록 한다.
일부 실시 예들에서, 운영 체제(OS:operating system)는 하부 메모리의 물리적 구성 및 용량을 인식하고 관련 동작들을 수행하여 어플리케이션들로부터 이러한 세부 사항들을 마스크한다. 사용자 공간 하에서, 운영 체제 메모리 관리 장치(MMU)(또는 "메모리 관리 회로")는 리눅스 커널에 존재하는 트랜스샌던트 메모리 기능을 재사용하여 메모리 ABCDE 시스템을 DDR 인터페이스(예를 들어, 제4 세대 DDR(DDR4) 인터페이스)에 대한 고속 스왑 블록 장치로서 나타낸다.
도 1은 본 발명의 일 실시 예에 따른 의사 메인 메모리로서 메모리 ABCDE를 사용한 시스템 메모리 계층을 보여주는 도면이다. 메모리 ABCDE 시스템은 블록 장치로서 동작할 수 있기 때문에 메모리 ABCDE "드라이브"라고도 한다.
도 2는 본 발명의 일 실시 예에 따른 컴퓨팅 시스템의 하드웨어 블록도 이다. 일부 실시 예들에서, 메모리 ABCDE 시스템을 사용하는 컴퓨팅 시스템은 다음 3개의 구성들을 포함할 수 있다. 첫 번째로, 컴퓨팅 시스템은 플래시 메모리(NVDIMM-F) 폼 팩터 및 인터페이스(예를 들어, 도 2에서, 메모리 ABCDE 시스템(240)과 메모리 관리 회로(220) 사이의 인터페이스)를 구비한 비 휘발성 듀얼 인-라인 메모리 모듈(NVDIMM)에 기반한 메모리 ABCDE 시스템(240)을 포함할 수 있다. 플래시 메모리(NVDIMM-F)는 메모리 ABCDE 시스템과 공통되는 속성을 가질 수 있으며, 이러한 이유는, 예를 들어 둘 다 가변 저장 밀도를 나타낼 수 있기 때문이다. 두 번째로 컴퓨팅 시스템은 트랜스샌던트 메모리에 기반한 소프트웨어 인프라를 사용할 수 있다. 이러한 인프라는, 메모리 ABCDE 시스템에 액세스하기 위해 운영 체재에 의해 사용되는 메모리 ABCDE 드라이버라고 하는 드라이버를 포함할 수 있다. 세 번째로, 컴퓨팅 시스템은 증가된 메인 메모리 용량을 시뮬레이션 하기 위해 수정된 시스템 기능들(예를 들어, 수정된 시스템정보(함수( sysinfo() ))을 채용할 수 있다.
플래시 메모리(NVDIMM-F) 프로토콜은 DDR 메모리 버스 상에 플래시 모듈들을 채우기 위해 관련 기술 분야의 어플리케이션들에 채용될 수 있다. 이러한 어플리 케이션들은 64 바이트 캐시 라인들을 구비한 짧은 액세스 버스트들을 오직 지원하는 인터페이스(예를 들어 DDR 인터페이스)를 사용하여, 긴 액세스 대기 시간으로 블록 액세스를 할 수 있다. 이러한 어플리케이션들에서, 어드레스 공간은 DDR 명령 버스가 자신의 핀 한계 내에서 로직 블록 어드레스(LBA)를 전송 할 수 없도록 충분히 클 수 있다. 따라서, 플래시 메모리(NVDIMM-F) 인터페이스는 DRAM 데이터 버스를 이용하여 플래시 모듈들에 명령들(어드레스들을 포함)을 전송할 수 있다.
일부 실시 예들에서, 블록 액세스를 제공하기 위해 다이나믹 랜덤-액세스 메모리(DRAM) 기반 메모리 ABCDE 시스템에 대한 액세스를 포함하도록 플래시 메모리(NVDIMM-F) 프로토콜이 대신 채용된다. 일부 실시 예들에서 메모리 ABCDE 시스템은 플래시 기반 시스템들보다 적은 용량을 가질 수 있기 때문에, 플래시 메모리(NVDIMM-F) 프로토콜이 명령들과 어드레스들을 위한 명령 및 어드레스 버스(데이터 버스 대신에)를 사용하도록 수정될 수 있다. 이러한 실시 예에서, 어드레스는 명령 및 어드레스 버스 상에 기입되고(메모리 ABCDE 드라이버에 의해), 따라서 메모리 위치에 직접 액세스(수정되지 않은 플래시 메모리(NVDIMM-F) 프로토콜에서처럼 어드레스 자체를 작은 버퍼에 기입하는 대신에)한다.
일부 실시 예들에서, 시스템은 메모리 ABCDE 시스템에 대한 읽기 및 쓰기 명령이 캐시되지 않도록 보장하고, 그러므로 명령이 중앙 처리 장치(CPU) 캐시로부터 플러쉬(flush)되기를 기다리는 대신에 메모리 ABCDE시스템으로 직접 전송된다. 이를 달성하기 위해, 메모리 ABCDE 드라이버는 플러쉬 캐쉬 라인(예를 들어 CLFLUSH) CPU 명령 및 플러쉬-온-디맨드(예를 들어 PCOMMIT) CPU 명령들을 사용하여 명령들이 ABCDE 모듈에 도달하게한다. 추가적으로, 메모리 ABCDE 시스템에서 효율적인 메모리-메모리 다이렉트 메모리 액세스(DMA) 엔진은, 메인 메모리와 메모리 ABCDE 시스템 사이에서 앞 뒤로 신속하게 페이지들이 이동되도록, 메모리 ABCDE 시스템의 블록 기반 내부 페이지들로부터 컴퓨팅 시스템의 DDR4 버스로 데이터를 전송하기 위해 채용될 수 있다.
도 2의 실시 예에서, 중앙 처리 장치(210)는 메모리 관리 회로(220)를 통해 (i) 메인 메모리(230)(DDR 메모리, 예를 들어, DDR4 메모리 또는 다른 실시 예들에서 제2 세대 또는 그 이상의 세대의 2배속 동기식 다이나믹 랜덤 액세스 메모리 인터페이스(예를 들어 DDR2, DDR3, DDR4, 또는 DDR5 메모리))와 통신한다. 메모리 관리 회로(220)는 또한 메모리 어댑터 회로(250) 및 중간 메모리(260)(그 역할이 메인 메모리(230)와 영구 기억 장치(예를 들어 솔리드 스테이트 드라이브(SSD))의 중간 역할을 하는 것으로 여겨질 수 있기 때문에 "중간 메모리"로 불리움)를 포함하는 메모리 ABCDE 시스템 (240)에 접속된다.
메모리 어댑터 회로(250)는 시스템 온 칩(SoC)일 수 있으며, 예를 들어, 그것은 프로세서, 메모리(프로세서를 위한 프로그램들 및 데이터를 저장하기 위한), 및 다른 로직이나 드라이브 회로를 포함하는 단일 집적 회로 일 수 있다. 메모리 어댑터 회로(250)는 메모리 관리 회로(220)에 접속된(예를 들어 DDR 버스를 통해) 제1 메모리 인터페이스(예를 들어 DDR4 인터페이스) 및 중간 메모리(260)에 접속된 제2 메모리 인터페이스를 포함할 수 있다. 제2 메모리 인터페이스는 중간 메모리(260)가 호환 가능한 임의의 적합한 인터페이스(예를 들어, 중간 메모리(260)가 DDR4메모리이면, DDR4 인터페이스)일 수 있다. 메모리 어댑터 회로(250)는 앞서 설명된 바와 같이, 제1 메모리 인터페이스에서, 플래시 메모리(NVDIMM-F) 프로토콜, 또는 수정된 플래시 메모리(NVDIMM-F) 프로토콜(후자는 데이터 버스 대신에 제어 및 어드레스 버스 상의 어드레스를 송신함)을 실행할 수 있다.
메모리 어댑터 회로(250)는, 일부 실시 예들에서, 압축, 중복 제거, 및 에러 정정 중 하나 이상에 의해 메모리 증가(메모리 가용 공간 증가)를 제공하도록 더욱 더 구성될 수 있다. 예를 들어, 메모리 어댑터 회로(250)는 메모리 관리 회로(220)로부터 수신된 데이터를 압축하여 중간 메모리(260)에 저장할 수 있고, 메모리 관리 회로(220)로부터의 요청에 의해 중간 메모리(260)로부터 압축된 데이터를 가져올 수 있으며, 압축된 데이터의 압축을 풀어 메모리 관리 회로(220)에 전송할 수 있다. 유사하게, 메모리 어댑터 회로(250)는 중간 메모리(260)에 저장된 데이터로부터 중복된 데이터를 제거할 수 있고(중복 엔트리가 포함된 데이터가 메모리 관리 회로(220)에 의해 요청될 때, 중복 엔트리를 복원할 수 있음), 중간 메모리(260)에 데이터를 저장하기 전에 에러-정정 코드들을 통해 데이터를 인코딩할 수 있고, 중간 메모리(260)로부터 회수하는 임의의 데이터에 대해 에러 정정을 수행할 수 있다.
도 3은 일부 실시예들에 따른 하이브리드 하드웨어-소프트웨어 블록도이다. 중앙 처리 장치(210)는 메인 메모리(230) 및 메모리 ABCDE 시스템(240)을 포함하는 복합 메모리(310)에 액세스한다. 부팅시, 기본 입/출력 시스템(BIOS)의 명령들은 DDR 버스의 주소 범위를 메모리 ABCDE 시스템에 등록하고, 주소 범위에 대해 주소 인터리빙을 비활성화하고, 블록 장치에 대응하는 주소 범위를 지정한다. 메모리 ABCDE 시스템(240)은 블록 장치로서 등록되는데 이러한 이유는, (i) 데이터를 압축 및 압축 해제하는 것과 같은 일부 동작이 개별적인 워드 액세스보다 블록 액세스에 더 적합할 수 있고 (ii) 중앙 처리 장치(210)가 동기식 DDR 메모리로서의 동작에 부적절하게 의존하지 않을 것이기 때문이다.
일부 실시 예들에서, 동작 시스템이 로딩될 때, 메모리 ABCDE 드라이버 (320)는 프론트 스왑 기능 및 클린 캐쉬 기능을 등록하고 실행한다. 이러한 기능들은, 이러한 기능이 리눅스 커널에 존재하고 사용 가능하다면, 리눅스 커널의 트랜스샌던트 메모리 기능이라고 불리운다. 트랜스샌던트 메모리 기능은 커널 동작들을 인터셉트하여 (i) 클린 캐쉬 페이지들 또는 (ii) 더티(dirty) 사용자 페이지들을 축출하고, 메모리 ABCDE 드라이버(320)의 클린 캐쉬 및 프론트 스왑 기능들을 호출할 수 있다. 예를 들어, 클린 캐쉬 페이지가 축출될 때, 트랜스샌던트 메모리 기능은 축출 동작을 인터셉트하고 메인 메모리 (230)로부터 메모리 ABCDE 시스템(240)으로 페이지를 복사할 수 있는 클린 캐쉬 기능을 호출할 수 있으며, 중앙 처리 장치(210)에 의해 다음에 액세스될 수 있거나, 대신에 삭제되는 것보다 더 빠르게 메인 메모리(230)로 다시 복사될 수 있다. (후속 액세스는 SSD 또는 하드 드라이브와 같은 영구 저장 장치로부터 복구되는 것이 요구될 것이다.) 더티 사용자 페이지가 커널에 의해 축출될 때, 트랜스샌던트 메모리 기능은 축출 동작을 인터셉트하고 축출되는 더티 사용자 페이지를 메모리 ABCDE 시스템(240)에 복사할 수 있는 프론트 스왑 기능을 호출할 수 있고, 이는 페이지를 영구 저장장치에 기입하는 것 보다 더 빠르게 수행되는 동작이다.
메모리 ABCDE 드라이버(320)는 메모리 ABCDE 시스템 (240)에 의해 수신된 임의의 기입 요청들을 수용 또는 거절할 지 여부를 결정하기 위한 방법들을 포함할 수 있다. 메모리 ABCDE 드라이버(320)는 추정된 증가 비율에 따라 중간 메모리(260)의 자유 공간을 증대시키고 그 결과를 기입 요청의 데이터 량과 비교함으로써 이러한 결정을 할 수 있다. 추정된 증가 비율은, 예를 들어, 추정된 중복 제거 비율, 즉, 중복 제거를 사용한 결과로서 얼마나 많은 데이터가 더 저장될 수 있는지에 대한 추정치 일 수 있다. 일부 실시 예들에서, 메모리 ABCDE 드라이버(320)는 완료된 기입 동작들에 대한 실제 증가 비율에 기초하지만 시간에 따라 느리게 변하는 추정된 증가 비율을 산출하도록 구성되며, 실제 증가 비율(예를 들어 적은 양의 데이터들에 관련된 기입 동작들에 대한)의 큰 변동들이 추정된 증가 비율의 큰 변동들을 야기하지 않는다. 예를 들어, 추정된 증가 비율은 시작시 1.0으로 설정될 수 있고, 설정된 길이의 시간 간격이 경과한 후, 이러한 설정된 길이와 끝을 갖는 시간 간격 동안 실제 증가 비율의 평균과 동일하도록 주기적으로 업데이트될 수 있다.
최종 사용자들 및 어플리케이션 프레임워크들은 비-페이지(non-paged) 메모리를 사용하지 않도록 특별히 설계될 수 있으며, 이러한 이유는, 다른 비-페이지 메모리 시스템이 이차적인 저장 장치(예를 들어 영구 저장장치)에 존재할 수 있고, 긴 액세스 지연들을 가질 수 있기 때문이다. 일부 실시 예들에서 메모리 ABCDE 시스템(240)이 비-페이지 메모리를 제공하기 때문에, 이는 메모리 ABCDE 시스템(240)의 이점들을 불필요하게 앞서가는 어플리케이션들을 초래할 수 있다. 한가지 가능한 해법은 개발자가 어플리케이션 라이브러리들 및 미들웨어 프레임워크들을 재작성하는 것이나, 이는 많은 기존의 프레임 워크들에 대한 수정을 수반하는 중대한 과제를 야기한다.
따라서, 일부 실시 예들에서, 커널은 메모리 ABCDE 시스템(240)이 시스템 정보 함수에 대한 호출과 같은 시스템 호출에 응답하기 위해 메인 메모리를 시뮬레이션 하도록 수정될 수 있다.
도 4는 본 발명의 실시 예에 따른 시스템정보 함수 호출에 대한 응답을 수정하기 위한 시스템의 소프트웨어 블록도이다. 도 4를 참조하면, 일부 실시 예들에서, 어플리케이션 또는 미들웨어(410)가 시스템 함수(sysinfo())를 호출할 때, 리턴되는 구조(420)는 (i) 메인 메모리(230)의 크기 및 중간 메모리(260)의 크기에 기초한 전체 가용 메모리(예를 들어, 도 4에서 트램(tram))에 대한 값 및 (ii) 메인 메모리(230)의 사용가능한 메모리의 양 및 중간 메모리(260)의 사용가능한 메모리의 양에 기초한 전체 사용가능한 메모리에 대한 값을 포함할 수 있다.
전체 메모리 및 사용가능한 메모리 정보가 중간 메모리(260)에서의 저장을 고려하여 증가되는 양은 중간 메모리(260)에 저장될 데이터에 대한 예상된 증가 비율을 고려할 수 있다. 일부 실시 예들에서, 리턴된 전체 사용가능한 메모리에 대한 값은 (i) 메인 메모리(230)에서 사용가능한 메모리의 양과 (ii) (1) 추정된 증가 비율 및 (2) 중간 메모리(260)에서 사용가능한 메모리의 양을 곱한 값의 합과 같다. 추정된 증가 비율은 앞서 설명된 대로 계산될 수 있거나, 시스템 시작 시에 값 1.0을 사용하거나 또는 의미 있는 추정의 기초가 되는 데이터를 달리 이용할 수 없을 때, 보존 알고리즘("최소 증가 비율"이라고 하는 추정의 결과)에 따라서 계산될 수 있다. 의미 있는 추정의 기초가 되는 데이터가 이용 가능할 때, 추정된 증가 비율은, 예를 들어, 일정 기간 동안 완료된 기입동작들에 대한 최소 실제 증가 비율을 사용하여 계산될 수 있다.
이러한 접근은 mlock() 시스템 기능의 구현이라는 추가적인 과제를 제기할 수 있다. 이러한 시스템 기능은, 호출시, 가상 어드레스에서 메인 메모리로 시작하여, 특정 크기의 메모리를 고정하여, 2차적인 저장장치로 스왑되지 않도록 설계될 수 있다. 일부 실시 예들에서, 동작 시, 이러한 메모리의 일부분이 메인 메모리(230)에 존재하고, 반면 다른 부분은 메모리 ABCDE 시스템(240)에 존재할 수 있다. 사용자 공간 요청을 이행하기 위해, 메모리 ABCDE 드라이버는 메모리 ABCDE 시스템의 현재 페이지가 그 자리에 고정되도록 잔존시키고 2차적인 저장장치(예를 들어 영구저장장치)로 스와핑하는 것을 지연시도록 구성될 수 있다.
전술한 관점에서, 일부 실시 예들은 의사 메인 메모리 시스템을 제공한다. 이 시스템은 압축, 중복 제거 및/또는 에러 정정을 사용하여 메모리 증대를 수행하기 위한 메모리 어댑터 회로를 포함한다. 메모리 어댑터 회로는 메모리에 연결되고, 메모리 증대 방법들을 채용하여 메모리의 유효 저장 용량을 증가시킨다.
"제1", "제2", "제3" 등의 용역들이 본 명세서에서 다양한 요소들, 구성들, 영역들, 층들 및/또는 섹션들을 설명하기 위한 사용되지만, 이러한 요소들, 구성들, 영역들, 층들 및/또는 섹션들이 이러한 용어들에 제한되지는 않는다. 이들 용어들은 오직 하나의 요소, 구성, 영역, 층 또는 섹션을 다른 요소, 구성, 영역, 층 또는 섹션과 구별하기 위해 사용된다. 따라서, 이하 설명되는 제1 요소, 구성, 영역, 층 또는 섹션은 본 발명의 사상 및 범위를 벗어나지 않고, 제2 요소, 구성, 영역, 층 또는 섹션으로 지칭될 수 있다.
본 명세서에서 사용되는 용어는 특정 실시 예들을 설명하기 위한 것이며, 본 발명의 사상을 제한하는 것은 아니다. 본 명세서에서 사용된 용어들 "실질적을", "약", 및 유사한 용어들은 비슷한 용어로서 사용되고, 정도(등급)의 용어로 사용되지 않으며, 이들에 의해 인식되는 측정 또는 계산된 값의 고유한 편차를 설명하기 위한 것이다. 본 명세서에서 사용된 용어 "주요 성분"은 조성물 또는 생성물에서 임의의 다른 단일 성분보다 많은 양의 조성물, 중합체, 또는 생성물에 존재하는 성분을 의미한다. 대조적으로, "기본 성분"이란 용어는 조성울, 중합체, 또는 생성물의 적어도 50% 중량을 구성하는 성분을 의미한다. 본 명에서 사용되는 "주요 부분"이란 용어는, 복수의 항목들에 적용될 때, 항목들의 적어도 절반을 의미한다.
본 명세서에서 사용된 단수 형태들은 문맥 상 다르게 지시하지 않는 한 복수의 형태를 포함하는 것으로 의도된다. 본 명세서에서 사용되는 용어 "포함하다" 및/또는 "포함하는"은 설명된 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 구성들이 존재함을 나타내지만, 이러한 존재를 배제하는 것은 아니며 또한, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 구성들 및/또는 그룹들의 추가를 포함하는 것으로 이해될 것이다. 본 명에서 사용된 용어 "및/또는"은 하나 이상의 관련되어 열거된 항목들의 임의 및 모든 조합을 포함한다. "적어도 하나"와 같은 표현은 요소들의 목록 앞에서 요소들의 전체 목록을 수정하고 요소들의 개별 요소를 수정하지 않는다. 더욱이, 본 발명의 실시 예들을 설명할 때 사용된 "할 수 있다"라는 용어는 본 발명의 하나 이상의 실시 예들을 의미한다. 또한, "예시적인"이라는 용어는 예 또는 설명을 의미한다. 본 명세서에서 사용된 용어 "사용하다", "사용", 및 "사용된"은 각각 "활용하다", "활용하는", 및 "활용된"과 동의어로 고려될 수 있다.
구성 요소 또는 층이 다른 구성 요소 또는 층의 "위", "연결된", "결합된", 또는 "인접한"으로 언급될 때, 이는 다른 구성 요소 또는 층의 바로 위, 바로 연결된, 바로 결합된, 바로 인접한 것을 나타내거나, 또는 구성 요소들 또는 층들 사이에 적어도 하나 이상의 구성 요소 및 층이 존재하는 것을 나타낸다. 대조 적으로 하나의 구성 요소 또는 층이 다른 구성 요소 또는 층의 "바로 위", "바로 연결된", "바로 결합된", "바로 인접한" 것으로 언급될 때, 구성 요소들 또는 층들 사이에 구성 요소 및 층이 존재하지 않는다. 중간에 개재되는 구성이 제2 구성에 연결된 제1 구성 사이에 존재할 때, 제1 구성은 중간에 개재되는 구성을 통해 제2 구성에 연결되는 것으로 볼 수 있다.
본 명세서에서 인용되는 임의의 수치 범위는 인용된 범위 내의 동일한 수치정밀의 모든 하위 범위를 포함하는 것으로 의도된다. 예를 들어, "1.0 내지 10.0"의 범위는 인용된 최소값 1.0과 인용된 최대값 10.0 즉, 예를 들어, 2.4 내지 7.6과 같이 1.0보다 크거나 같은 최소값과10.0보다 작거나 같은 최대값 사이(그리고 포함하는)의 모든 부분 범위를 포함하기 위한 것이다. 본 명세서에서 인용된 임의의 최대 수치 제한은 그 안에 포함된 모든 더 낮은 수치 제한들을 포함하는 것으로 의도되며, 본 명세서에서 인용된 임의의 최소 수치 제안은 그 안에 포함된 모든 더 높은 수치 제안들을 포함하는 것으로 의도된다.
의사 메인 메모리 시스템의 예시적인 실시 예가 본 명세서에서 구체적이고 예시적으로 설명되었으나, 다양한 변형 및 변경이 당업자에게 가능할 것이다. 따라서, 본 발명의 사상에 따라 구성된 의사 메인 메모리 시스템이 본 명세서에서 구체적으로 설명된 것 이외의 다른 것으로 구현될 수 있다는 것이 이해될 것이다. 본 발명은 다음의 특허 청구 범위에 의해 정의된다.
210: 중앙 처리 장치 220: 메모리 관리 회로
230: 메인 메모리 240: 메모리 ABCDE 시스템
250: 메모리 어댑터 회로 260: 중간 메모리
310: 복합 메모리 320: 메모리 ABCDE 드라이버

Claims (20)

  1. 중앙 처리 장치;
    메모리 어댑터 회로 및 제1 메모리를 포함하는 메모리 시스템; 및
    메모리 관리 회로를 통해 상기 중앙 처리 장치와 연결된 제2 메모리를 포함하되,
    상기 메모리 어댑터 회로는 상기 중앙 처리 장치와 연결된 제1 메모리 인터페이스 및 상기 제1 메모리와 연결된 제2 메모리 인터페이스를 포함하고, 상기 제1 메모리 인터페이스는 2배속(double data rate) 동기식 다이나믹 랜덤 액세스 메모리(Dynamic random access memory) 인터페이스이고,
    상기 메모리 어댑터 회로는 상기 제1 메모리의 저장 용량의 증가를 이용하여 상기 제1 메모리에 데이터를 저장하고 그리고 상기 제1 메모리로부터 데이터를 회수하고, 상기 증가는 증가 비율에 따라 상기 제1 메모리의 사용 가능한(free) 메모리를 증가시키도록 구성되고,
    상기 메모리 어댑터 회로는 이전 쓰기 동작들의 압축 및/또는 중복 제거에 기초하여 상기 증가 비율을 추정하도록 더 구성되고,
    상기 중앙 처리 장치는 상기 제2 메모리에 페이지 캐쉬를 유지하도록 구성되고,
    상기 중앙 처리 장치는 상기 페이지 캐쉬로부터 클린 페이지들을 축출할 때, 상기 클린 페이지들에 대한 클린 캐쉬 기능을 호출하도록 구성되고, 상기 클린 캐쉬 기능은 상기 클린 페이지들을 저장하도록 구성되고, 상기 제1 메모리에 충분한 공간이 이용 가능하면 상기 클린 페이지들은 상기 제1 메모리에 저장되고, 그렇지 않으면 상기 클린 페이지들은 영구 저장장치에 저장되고, 그리고
    상기 중앙 처리 장치는 추정된 증가 비율에 기초하여 상기 제1 메모리에서 충분한 공간이 이용 가능한지 여부를 평가하도록 더 구성되고, 상기 추정된 증가 비율은 설정된 시간 간격 동안 상기 제1 메모리에 저장된 데이터에 대한 증가 비율들의 함수인 컴퓨팅 시스템.
  2. 제 1 항에 있어서,
    상기 증가는:
    압축;
    중복 제거; 및
    에러 정정 중 적어도 하나를 포함하는 컴퓨팅 시스템.
  3. 제 1 항에 있어서,
    상기 제1 메모리 인터페이스는 제2 세대 또는 그 보다 높은 세대의 2배속 동기식 다이나믹 랜덤 액세스 메모리 인터페이스인 컴퓨팅 시스템.
  4. 제 3 항에 있어서,
    상기 제2 메모리 인터페이스는 제2 세대 또는 그 보다 높은 세대의 2배속 동기식 다이나믹 랜덤 액세스 메모리 인터페이스인 컴퓨팅 시스템.
  5. 제 3 항에 있어서,
    상기 제1 메모리 인터페이스는 NVDIMM-F 인터페이스이고, 그리고 상기 컴퓨팅 시스템은 블록 장치로서 상기 메모리 시스템을 동작시키도록 구성되는 컴퓨팅 시스템.
  6. 제 1 항에 있어서,
    상기 중앙 처리 장치는 메모리 관리 회로를 통해 상기 메모리 어댑터 회로에 연결되는 컴퓨팅 시스템.
  7. 제 1 항에 있어서,
    상기 제1 메모리는 다이나믹 랜덤 액세스 메모리이고, 상기 제2 메모리 인터페이스는 제2 세대 또는 그 보다 높은 세대의 2배속 동기식 다이나믹 랜덤 액세스 메모리 인터페이스인 컴퓨팅 시스템.
  8. 제 1 항에 있어서,
    상기 메모리 어댑터 회로는:
    압축;
    중복 제거; 및
    에러 정정을 수행하도록 구성된 단일 집적 회로인 컴퓨팅 시스템.
  9. 제 1 항에 있어서,
    상기 제2 메모리는 제3 메모리 인터페이스를 통해 상기 메모리 관리 회로와 연결되고, 상기 제3 메모리 인터페이스는 제2 세대 또는 그 보다 높은 세대의 2배속 동기식 다이나믹 랜덤 액세스 메모리 인터페이스인 컴퓨팅 시스템.
  10. 제 1 항에 있어서,
    상기 클린 캐쉬 기능은 상기 추정된 증가 비율에 기초하여 상기 제1 메모리에서 충분한 공간이 이용 가능한지 여부를 평가하도록 구성된 컴퓨팅 시스템.
  11. 제 1 항에 있어서,
    상기 중앙 처리 장치는 상기 제2 메모리에 사용자 메모리 공간을 유지하도록 구성되고, 그리고
    상기 중앙 처리 장치는 상기 사용자 메모리 공간으로부터 더티 페이지들을 축출할 때, 상기 더티 페이지들에 대한 프론트스왑 기능을 호출하도록 구성되고, 상기 프론트스왑 기능은 상기 더티 페이지들을 저장하도록 구성되고, 상기 제1 메모리에 충분한 공간이 이용 가능하면 상기 더티 페이지들은 상기 제1 메모리에 저장되고, 그렇지 않으면 상기 더티 페이지들은 영구 저장장치에 저장되는 컴퓨팅 시스템.
  12. 제 11 항에 있어서,
    상기 프론트스왑 기능은 상기 추정된 증가 비율에 기초하여 상기 제1 메모리에서 충분한 공간이 이용 가능한지 여부를 평가하도록 구성된 컴퓨팅 시스템.
  13. 제 1 항에 있어서,
    상기 중앙 처리 장치는:
    하나 이상의 어플리케이션을 실행하고, 그리고
    시스템 정보 함수에 대한 하나 이상의 어플리케이션 중 하나의 어플리케이션에 응답하여:
    상기 제1 메모리의 크기 및 상기 제2 메모리의 크기에 기초한 전체 가용 메모리에 대한 제1 값; 및
    상기 제1 메모리에서 사용 가능한 메모리의 양 및 상기 제2 메모리에서 사용 가능한 메모리의 양에 기초한 전체 사용 가능한(free) 메모리에 대한 제2 값을 리턴하도록 구성된 컴퓨팅 시스템.
  14. 제 13 항에 있어서,
    상기 전체 사용 가능한 메모리(free)에 대한 상기 제2 값은:
    상기 제2 메모리에서 사용 가능한 메모리의 양; 및
    상기 제1 메모리에서의 상기 사용 가능한 메모리의 양 및 최소 증가 비율의 곱의 합이고,
    상기 최소 증가 비율은 시스템 시작 후 설정된 시간 간격이 경과되면 상기 설정된 시간 간격 동안 상기 제1 메모리에 저장된 데이터에 대한 증가 비율들의 함수이고, 그렇지 않으면 2.0인 컴퓨팅 시스템.
  15. 컴퓨팅 시스템의 동작 방법에 있어서:
    상기 컴퓨팅 시스템은:
    중앙 처리 장치;
    메모리 어댑터 회로 및 제1 메모리를 포함하는 메모리 시스템; 및
    메모리 관리 회로를 통해 상기 중앙 처리 장치와 연결된 제2 메모리를 포함하고,
    상기 메모리 어댑터 회로는 상기 중앙 처리 장치와 연결된 제1 메모리 인터페이스 및 상기 제1 메모리와 연결된 제2 메모리 인터페이스를 포함하고,
    상기 제1 메모리 인터페이스는 2배속(double data rate) 동기식 다이나믹 랜덤 액세스 메모리(Dynamic random access memory) 인터페이스이고,
    상기 동작 방법은 상기 제1 메모리의 저장 용량의 증가를 이용하여 상기 제1 메모리에 데이터를 저장하고 그리고 상기 제1 메모리로부터 데이터를 회수하는 단계를 포함하고, 상기 증가는 증가 비율에 따라 상기 제1 메모리의 사용 가능한(free) 메모리를 증가시키도록 구성되고,
    상기 메모리 어댑터 회로는 이전 쓰기 동작들의 압축 및/또는 중복 제거에 기초하여 상기 증가 비율을 추정하도록 구성되고,
    상기 중앙 처리 장치는 상기 제2 메모리에 페이지 캐쉬를 유지하도록 구성되고,
    상기 중앙 처리 장치는 상기 페이지 캐쉬로부터 클린 페이지들을 축출할 때, 상기 클린 페이지들에 대한 클린 캐쉬 기능을 호출하도록 구성되고, 상기 클린 캐쉬 기능은 상기 클린 페이지들을 저장하도록 구성되고, 상기 제1 메모리에 충분한 공간이 이용 가능하면 상기 클린 페이지들은 상기 제1 메모리에 저장되고, 그렇지 않으면 상기 클린 페이지들은 영구 저장장치에 저장되고, 그리고
    상기 중앙 처리 장치는 추정된 증가 비율에 기초하여 상기 제1 메모리에서 충분한 공간이 이용 가능한지 여부를 평가하도록 더 구성되고, 상기 추정된 증가 비율은 설정된 시간 간격 동안 상기 제1 메모리에 저장된 데이터에 대한 증가 비율들의 함수인 동작 방법.
  16. 제 15 항에 있어서,
    상기 증가는:
    압축;
    중복 제거; 및
    에러 정정 중 적어도 하나를 포함하는 동작 방법.
  17. 제 15 항에 있어서,
    상기 메모리 시스템을 NVDIMM-F 프로토콜로 동작 가능한 블록 장치로서 사용하는 단계를 더 포함하는 동작 방법.
  18. 제 15 항에 있어서,
    상기 메모리 어댑터 회로는:
    압축;
    중복 제거; 및
    에러 정정을 수행하도록 구성된 단일 집적 회로인 동작 방법.
  19. 중앙 처리 장치;
    제1 메모리 및 메모리 어댑터 수단을 포함하는 메모리 시스템;
    NVDIMM-F 인터페이스인 제1 메모리 인터페이스; 및
    상기 메모리 시스템을 블록 장치로서 동작시키도록 구성된 컴퓨팅 시스템을 포함하되,
    상기 메모리 어댑터 수단은 상기 제1 메모리의 저장 용량의 증가를 이용하여 상기 제1 메모리에 데이터를 저장하고 그리고 상기 제1 메모리로부터 데이터를 회수하고, 상기 증가는 증가 비율에 따라 상기 제1 메모리의 사용 가능한(free) 메모리를 증가시키도록 구성되고, 상기 메모리 어댑터 수단은 이전 쓰기 동작들의 압축 및/또는 중복 제거에 기초하여 상기 증가 비율을 추정하도록 구성되고,
    상기 메모리 어댑터 수단은 상기 중앙 처리 장치와 연결된 상기 제1 메모리 인터페이스 및 상기 제1 메모리와 연결된 제2 메모리 인터페이스를 포함하고,
    상기 컴퓨팅 시스템은 메모리 관리 회로를 통해 상기 중앙 처리 장치와 연결된 제2 메모리를 더 포함하고,
    상기 중앙 처리 장치는 상기 제2 메모리에 페이지 캐쉬를 유지하도록 구성되고,
    상기 중앙 처리 장치는 상기 페이지 캐쉬로부터 클린 페이지들을 축출할 때, 상기 클린 페이지들에 대한 클린 캐쉬 기능을 호출하도록 구성되고, 상기 클린 캐쉬 기능은 상기 클린 페이지들을 저장하도록 구성되고, 상기 제1 메모리에 충분한 공간이 이용 가능하면 상기 클린 페이지들은 상기 제1 메모리에 저장되고, 그렇지 않으면 상기 클린 페이지들은 영구 저장장치에 저장되고, 그리고
    상기 중앙 처리 장치는 추정된 증가 비율에 기초하여 상기 제1 메모리에서 충분한 공간이 이용 가능한지 여부를 평가하도록 더 구성되고, 상기 추정된 증가 비율은 설정된 시간 간격 동안 상기 제1 메모리에 저장된 데이터에 대한 증가 비율들의 함수인 컴퓨팅 시스템.
  20. 삭제
KR1020170126199A 2016-09-30 2017-09-28 의사 메인 메모리 시스템 KR102266477B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US15/282,848 US10372606B2 (en) 2016-07-29 2016-09-30 System and method for integrating overprovisioned memory devices
US15/282,848 2016-09-30
US201762489997P 2017-04-25 2017-04-25
US62/489,997 2017-04-25
US15/663,619 2017-07-28
US15/663,619 US10515006B2 (en) 2016-07-29 2017-07-28 Pseudo main memory system

Publications (2)

Publication Number Publication Date
KR20180036591A KR20180036591A (ko) 2018-04-09
KR102266477B1 true KR102266477B1 (ko) 2021-06-18

Family

ID=61781195

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170126199A KR102266477B1 (ko) 2016-09-30 2017-09-28 의사 메인 메모리 시스템

Country Status (4)

Country Link
JP (1) JP6788566B2 (ko)
KR (1) KR102266477B1 (ko)
CN (2) CN116594931B (ko)
TW (1) TWI710903B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11074007B2 (en) * 2018-08-08 2021-07-27 Micron Technology, Inc. Optimize information requests to a memory system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100161909A1 (en) 2008-12-18 2010-06-24 Lsi Corporation Systems and Methods for Quota Management in a Memory Appliance
US20120266165A1 (en) 2011-04-18 2012-10-18 Shanwei Cen Combined virtual graphics device

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668957A (en) * 1995-11-02 1997-09-16 International Business Machines Corporation Method and apparatus for providing virtual DMA capability on an adapter connected to a computer system bus with no DMA support
JP2004139503A (ja) * 2002-10-21 2004-05-13 Matsushita Electric Ind Co Ltd 記憶装置及びその制御方法
US8001294B2 (en) * 2004-09-28 2011-08-16 Sony Computer Entertainment Inc. Methods and apparatus for providing a compressed network in a multi-processing system
JP4700562B2 (ja) * 2006-05-18 2011-06-15 株式会社バッファロー データ記憶装置およびデータ記憶方法
CN100524244C (zh) * 2006-12-14 2009-08-05 英业达股份有限公司 网络存储系统的存储空间不足预警方法
KR20100133710A (ko) * 2009-06-12 2010-12-22 삼성전자주식회사 메모리 시스템 및 그것의 코드 데이터 로딩 방법
JP2011128792A (ja) * 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
US9507639B2 (en) * 2012-05-06 2016-11-29 Sandisk Technologies Llc Parallel computation with multiple storage devices
KR20140030383A (ko) * 2012-08-27 2014-03-12 삼성전자주식회사 컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법
US20150242432A1 (en) * 2014-02-21 2015-08-27 Microsoft Corporation Modified Memory Compression

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100161909A1 (en) 2008-12-18 2010-06-24 Lsi Corporation Systems and Methods for Quota Management in a Memory Appliance
US20120266165A1 (en) 2011-04-18 2012-10-18 Shanwei Cen Combined virtual graphics device

Also Published As

Publication number Publication date
KR20180036591A (ko) 2018-04-09
CN116594931A (zh) 2023-08-15
JP2018060538A (ja) 2018-04-12
CN107885676B (zh) 2023-06-13
CN116594931B (zh) 2024-04-05
TW201823994A (zh) 2018-07-01
CN107885676A (zh) 2018-04-06
JP6788566B2 (ja) 2020-11-25
TWI710903B (zh) 2020-11-21

Similar Documents

Publication Publication Date Title
US11030088B2 (en) Pseudo main memory system
US10956323B2 (en) NVDIMM emulation using a host memory buffer
Bae et al. 2B-SSD: The case for dual, byte-and block-addressable solid-state drives
KR102423713B1 (ko) 가상 어드레스를 물리적 어드레스로 번역을 수행하기 위해 입력-출력 메모리 관리 유닛내 다수의 메모리 소자들 사용
US20110276746A1 (en) Caching storage adapter architecture
TW201237624A (en) Two-level system main memory
US20180089088A1 (en) Apparatus and method for persisting blocks of data and metadata in a non-volatile memory (nvm) cache
JP2011258189A (ja) プロセッサ・メインメモリのための持続性メモリ
US20130111103A1 (en) High-speed synchronous writes to persistent storage
KR102168193B1 (ko) 초과 공급 메모리 장치들을 통합하기 위한 시스템 및 방법
US10769074B2 (en) Computer memory content movement
JP2020030822A (ja) インメモリコンピューティングのための大容量メモリシステム
US11526441B2 (en) Hybrid memory systems with cache management
CA2787560C (en) System and method for locking data in a cache memory
KR102266477B1 (ko) 의사 메인 메모리 시스템
US20150153965A1 (en) Electronic system and method of operating the same
US20220382478A1 (en) Systems, methods, and apparatus for page migration in memory systems
JP4792065B2 (ja) データ記憶方法
US20230409472A1 (en) Snapshotting Pending Memory Writes Using Non-Volatile Memory
Choi et al. Analysis of DRAM-based Network of DRAM Swap Space Adopting Latency Hiding Technique
Li et al. A NUMA-aware Key-Value Store for Hybrid Memory Architecture
US20230409478A1 (en) Method and apparatus to reduce latency of a memory-side cache
Lin et al. When Caching Systems Meet Emerging Storage Devices: A Case Study
TW202349214A (zh) 輸入/輸出裝置的位址變換預取出
CN117806560A (zh) 内存语义固态盘及数据存储系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right