IP Library Granted Patent US 12,386,742
Granted Patent B2
US 12,386,742 · App. 17/888,398 · Granted Aug 12, 2025

Memory virtualization for accessing heterogeneous memory components

Inventors: Anirban Ray (Santa Clara, CA); Parag R. Maharana (Dublin, CA); Gurpreet Anand (Pleasanton, CA)
Assignee: Micron Technology, Inc.
G06F12/0802G06F9/5077G06F12/0238G06F16/972
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,386,742
App. No.
17/888,398
Granted
Aug 12, 2025
Kind
B2
Abstract

A computing system having at least one bus, a plurality of different memory components, and a processing device operatively coupled with the plurality of memory components through the at least one bus. The different memory components include first memory and second memory having different memory access speeds. The computing system further includes a memory virtualizer operatively to: store an address map between first addresses used by the processing device to access memory and second addresses used to access the first memory and the second memory; monitor usages of the first memory and the second memory; adjust the address map based on the usages to improve speed of the processing device in memory access involving the first memory and the second memory; and swap data content in the first memory and the second memory according to adjustments to the address map.

Claims (53)

1. A computing system, comprising:

at least one bus;

a plurality of memory components, comprising first memory and second memory, wherein the first memory and the second memory have different speeds when accessed via the at least one bus;

a processing device, operatively coupled with the plurality of memory components through the at least one bus;

wherein the computing system further comprises a memory virtualizer operatively to:

store an address map between first addresses used by the processing device to access memory and second addresses used to access the first memory and the second memory;

monitor usages of the first memory and the second memory, and train a self-learning prediction engine to generate a prediction associated with a use of the first memory and the second memory; and

adjust the address map based on the prediction to improve speed of the processing device in memory access involving the first memory and the second memory; and

swap data content in the first memory and the second memory according to adjustments to the address map;

wherein the adjusting of the address map based on the prediction are shielded from an application, virtual machine, or a combination thereof, associated with a request to access a memory location currently in the second memory.

2. The computing system of claim 1 , wherein the first memory is faster than the second memory; and the processing device accesses the second memory over the at least one bus without accessing the first memory for a portion of memory access requests in the computing system.

3. The computing system of claim 1 , wherein the first memory is faster than the second memory; and the first memory and the second memory share a common physical host interface to the bus.

4. The computing system of claim 3 , wherein the first memory and the second memory are disposed in a same memory module.

5. The computing system of claim 4 , wherein the bus is a memory bus; and the memory module is a dual in-line memory module (DIMM).

6. The computing system of claim 5 , wherein the memory module includes a controller that implements at least in part the memory virtualizer.

7. The computing system of claim 6 , wherein in response to a request to access a memory location currently in the second memory, the memory virtualizer instructs the controller to swap data content between a portion of the first memory and a portion of the second memory, in response to a determination that data content in the portion of the first memory is accessed less frequently than the portion of the second memory.

8. The computing system of claim 7 , wherein swapping of the data content between the portion of the first memory and the portion of the second memory is performed within the memory module without going through the bus.

9. The computing system of claim 7 , wherein the swapping of the data content between the portion of the first memory and the portion of the second memory is performed after accessing the memory location in the second memory.

10. The computing system of claim 5 , wherein the memory virtualizer comprises a device driver of the memory module running in the processing device.

11. The computing system of claim 10 , wherein the device driver runs in the processing device to:

receive an address of a memory access request to be made by the processing device;

convert the address to a converted address based on the address map; and

make the memory access request on the bus according to the converted address.

12. The computing system of claim 10 , wherein the memory virtualizer adjusts the address map to place first data in the first memory and second data in the second memory based on a determination that first data is accessed more frequently in a time period than the second data.

13. The computing system of claim 1 , wherein the first memory and the second memory are in a same memory module; and at least a portion of the second memory is not directly addressable on the at least one bus.

14. The computing system of claim 13 , wherein the first memory is volatile dynamic random-access memory and the second memory is non-volatile cross-point memory.

15. The computing system of claim 1 , wherein the first memory and the second memory are in separate memory modules that are coupled to a central processing unit via a same memory bus.

16. The computing system of claim 1 , wherein the first memory and the second memory are in separate memory systems that are coupled to a central processing unit via separate communication channels.

17. A method, comprising:

providing a plurality of memory components on at least one bus coupled to a processing device, the plurality of memory components comprising first memory and second memory, wherein the first memory and the second memory have different speeds when accessed via the at least one bus;

storing an address map between first addresses used by the processing device to access memory and second addresses used to access the first memory and the second memory;

monitoring usages of the first memory and the second memory and training a self-learning prediction engine to predict a use of the first memory and the second memory; and

adjusting the address map based on the prediction to improve speed of the processing device in memory access involving the first memory and the second memory; and

swapping data content in the first memory and the second memory according to adjustments to the address map;

wherein the adjusting of the address map based on the prediction, are shielded from an application, virtual machine, or a combination thereof, associated with a request to access a memory location currently in the second memory.

18. The method of claim 17 , further comprising

generating, by a hypervisor, information that is used to predict the usages of the first memory and the second memory.

19. The method of claim 18 , wherein the information comprises at least one of:

a sequence of pages being used in a period of time;

instances of requests to load pages from the second memory to the first memory;

content attributes of the pages loaded from the second memory to the first memory;

ownership attributes of the pages loaded from the second memory to the first memory;

identifications of users of the pages loaded from the second memory to the first memory;

identifications of applications loaded from the second memory to the first memory;

an identification of pages that are accessed in a sequential mode in a virtual machine;

an identification of pages that are accessed in a sequential mode in a user account; and

an identification of page accesses that are in a steady state.

20. A non-transitory computer storage medium storing instructions which, when executed by a computing system having first memory, and second memory provided on at least one bus coupled to a processing device, cause the computing system to perform a method, the method comprising:

storing an address map between first addresses used by the processing device to access memory and second addresses used to access the first memory and the second memory;

monitoring usages of the first memory and the second memory and training a self-learning prediction engine to generate a prediction associated with a use of the first memory and the second memory;

adjusting the address map based on the prediction to improve speed of the processing device in memory access involving the first memory and the second memory; and

swapping data content in the first memory and the second memory according to adjustments to the address map;

wherein the adjusting of the address map based on the prediction, are shielded from an application, virtual machine, or a combination thereof, associated with a request to access a memory location currently in the second memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: RAY, ANIRBAN; MAHARANA, PARAG R.; ANAND, GURPREET
To: MICRON TECHNOLOGY, INC.
Reel/Frame 061178/0240 →
Continuity (3)
Continuation 16054719 · Aug 3, 2018
Provisional Application 62626491 · Feb 5, 2018
Related Publication 20220398194A1 · Dec 15, 2022
References Cited (242)
US 5390334A · Harrison · 1995 [cited by applicant]
US 5727150A · Laudon et al. · 1998 [cited by applicant]
US 5909540A · Carter et al. · 1999 [cited by applicant]
US 5918229A · Davis et al. · 1999 [cited by applicant]
US 6026475A · Woodman · 2000 [cited by applicant]
US 6230260B1 · Luick · 2001 [cited by applicant]
US 6247097B1 · Sinharoy · 2001 [cited by applicant]
US 6279138B1 · Jadav et al. · 2001 [cited by applicant]
US 6473845B1 · Hornung et al. · 2002 [cited by applicant]
US 7376681B1 · Todd et al. · 2008 [cited by applicant]
US 8082400B1 · Chang et al. · 2011 [cited by applicant]
US 8117373B2 · Berlin · 2012 [cited by applicant]
US 8131814B1 · Schlansker et al. · 2012 [cited by applicant]
US 8135933B2 · Fisher et al. · 2012 [cited by applicant]
US 8316187B2 · Pothireddy · 2012 [cited by applicant]
US 8352709B1 · Glasco et al. · 2013 [cited by applicant]
US 8560761B2 · Tzeng · 2013 [cited by applicant]
US 8700724B2 · McDaniel et al. · 2014 [cited by applicant]
US 8799554B1 · Vincent et al. · 2014 [cited by applicant]
US 8825937B2 · Atkisson et al. · 2014 [cited by applicant]
US 8838887B1 · Burke et al. · 2014 [cited by applicant]
US 8868842B2 · Yano et al. · 2014 [cited by applicant]
US 8930647B1 · Smith · 2015 [cited by examiner]
US 8965819B2 · Tirunagari · 2015 [cited by applicant]
US 8996834B2 · Brenner et al. · 2015 [cited by applicant]
US 9043530B1 · Sundaram et al. · 2015 [cited by applicant]
US 9047017B1 · Dolan et al. · 2015 [cited by applicant]
US 9104555B2 · Liebowitz et al. · 2015 [cited by applicant]
US 9122503B1 · Hoff · 2015 [cited by applicant]
US 9342453B2 · Nale et al. · 2016 [cited by applicant]
US 9535740B1 · Graham et al. · 2017 [cited by applicant]
US 9619408B2 · Nale et al. · 2017 [cited by applicant]
US 9817739B1 · Pise et al. · 2017 [cited by applicant]
US 9910618B1 · Curley et al. · 2018 [cited by applicant]
US 9996370B1 · Khafizov et al. · 2018 [cited by applicant]
US 10120797B1 · Foley et al. · 2018 [cited by applicant]
US 10223371B2 · Thirumal · 2019 [cited by applicant]
US 10241943B2 · Nale et al. · 2019 [cited by applicant]
US 10282322B2 · Nale et al. · 2019 [cited by applicant]
US 10282323B2 · Nale et al. · 2019 [cited by applicant]
US 10289566B1 · Dalmatov et al. · 2019 [cited by applicant]
US 10298496B1 · Nakibly et al. · 2019 [cited by applicant]
US 10394789B1 · Animesh et al. · 2019 [cited by applicant]
US 10430723B1 · Tzur et al. · 2019 [cited by applicant]
US 10514855B2 · Voigt · 2019 [cited by applicant]
US 10725663B2 · Awasthi et al. · 2020 [cited by applicant]
US 10782908B2 · Mittal et al. · 2020 [cited by applicant]
US 10852949B2 · Frolikov et al. · 2020 [cited by applicant]
US 10877892B2 · Ray et al. · 2020 [cited by applicant]
US 10880401B2 · Maharana et al. · 2020 [cited by applicant]
US 11099789B2 · Maharana et al. · 2021 [cited by applicant]
US 11354056B2 · Mittal et al. · 2022 [cited by applicant]
US 11416395B2 · Ray et al. · 2022 [cited by applicant]
US 20020145919A1 · Lamb et al. · 2002 [cited by applicant]
US 20020196659A1 · Hurst · 2002 [cited by examiner]
US 20030126232A1 · Mogul et al. · 2003 [cited by applicant]
US 20040186960A1 · Poggio · 2004 [cited by applicant]
US 20060087893A1 · Nishihara et al. · 2006 [cited by applicant]
US 20060095679A1 · Edirisooriya · 2006 [cited by applicant]
US 20060206658A1 · Hendel et al. · 2006 [cited by applicant]
US 20070033367A1 · Sakarda et al. · 2007 [cited by applicant]
US 20070074093A1 · Lasser · 2007 [cited by applicant]
US 20070112864A1 · Ben-natan · 2007 [cited by applicant]
US 20080016297A1 · Bartley et al. · 2008 [cited by applicant]
US 20080276038A1 · Tanaka et al. · 2008 [cited by applicant]
US 20090113422A1 · Kani · 2009 [cited by applicant]
US 20090150639A1 · Ohata · 2009 [cited by applicant]
US 20090248957A1 · Tzeng · 2009 [cited by applicant]
US 20100011169A1 · Pothireddy · 2010 [cited by applicant]
US 20100017650A1 · Chin et al. · 2010 [cited by applicant]
US 20100082899A1 · Nakajima et al. · 2010 [cited by applicant]
US 20100281230A1 · Rabii et al. · 2010 [cited by applicant]
US 20100293412A1 · Sakaguchi et al. · 2010 [cited by applicant]
US 20110161554A1 · Selinger et al. · 2011 [cited by applicant]
US 20110231857A1 · Zaroo et al. · 2011 [cited by applicant]
US 20110238887A1 · Bazzani · 2011 [cited by applicant]
US 20110238899A1 · Yano et al. · 2011 [cited by applicant]
US 20120047312A1 · Nathuji · 2012 [cited by examiner]
US 20120054419A1 · Chen et al. · 2012 [cited by applicant]
US 20120084497A1 · Subramaniam et al. · 2012 [cited by applicant]
US 20120117304A1 · Worthington et al. · 2012 [cited by applicant]
US 20120124572A1 · Cunningham et al. · 2012 [cited by applicant]
US 20120226850A1 · Nakanishi · 2012 [cited by applicant]
US 20120246403A1 · Mchale et al. · 2012 [cited by applicant]
US 20120297121A1 · Gorobets et al. · 2012 [cited by applicant]
US 20120297122A1 · Gorobets et al. · 2012 [cited by applicant]
US 20130024609A1 · Gorobets et al. · 2013 [cited by applicant]
US 20130111113A1 · Harari et al. · 2013 [cited by applicant]
US 20130124811A1 · Hamilton et al. · 2013 [cited by applicant]
US 20130145095A1 · McKean et al. · 2013 [cited by applicant]
US 20130151761A1 · Kim et al. · 2013 [cited by applicant]
US 20130152086A1 · Yoo · 2013 [cited by examiner]
US 20130179632A1 · Ben-shemesh et al. · 2013 [cited by applicant]
US 20130226837A1 · Lymberopoulos et al. · 2013 [cited by applicant]
US 20140006740A1 · Tokusho et al. · 2014 [cited by applicant]
US 20140032818A1 · Chang et al. · 2014 [cited by applicant]
US 20140040550A1 · Bill et al. · 2014 [cited by applicant]
US 20140089631A1 · King · 2014 [cited by applicant]
US 20140164676A1 · Borchers et al. · 2014 [cited by applicant]
US 20140207954A1 · Calo · 2014 [cited by examiner]
US 20150016046A1 · Shaeffer · 2015 [cited by applicant]
US 20150026509A1 · Zhang et al. · 2015 [cited by applicant]
US 20150032921A1 · Malkin · 2015 [cited by applicant]
US 20150067087A1 · Guerin et al. · 2015 [cited by applicant]
US 20150082062A1 · Saraswat et al. · 2015 [cited by applicant]
US 20150097851A1 · Anderson et al. · 2015 [cited by applicant]
US 20150106656A1 · Bian et al. · 2015 [cited by applicant]
US 20150134927A1 · Varanasi · 2015 [cited by applicant]
US 20150160858A1 · Okada et al. · 2015 [cited by applicant]
US 20150169238A1 · Lee et al. · 2015 [cited by applicant]
US 20150199276A1 · Radhakrishnan et al. · 2015 [cited by applicant]
US 20150212741A1 · Lee et al. · 2015 [cited by applicant]
US 20150227465A1 · Sundaram et al. · 2015 [cited by applicant]
US 20150268875A1 · Jeddeloh · 2015 [cited by applicant]
US 20150278091A1 · Wilkerson et al. · 2015 [cited by applicant]
US 20150356125A1 · Golander et al. · 2015 [cited by applicant]
US 20160042005A1 · Liu et al. · 2016 [cited by applicant]
US 20160054922A1 · Awasthi et al. · 2016 [cited by applicant]
US 20160125048A1 · Hamada · 2016 [cited by applicant]
US 20160152086A1 · Kawakita · 2016 [cited by applicant]
US 20160188218A1 · Gray et al. · 2016 [cited by applicant]
US 20160188700A1 · Kleinschnitz, Jr et al. · 2016 [cited by applicant]
US 20160210167A1 · Bolic et al. · 2016 [cited by applicant]
US 20160210251A1 · Nale et al. · 2016 [cited by applicant]
US 20160210465A1 · Craske et al. · 2016 [cited by applicant]
US 20160212214A1 · Rahman et al. · 2016 [cited by applicant]
US 20160253263A1 · Takada · 2016 [cited by applicant]
US 20160294710A1 · Sreeramoju · 2016 [cited by applicant]
US 20160306557A1 · Koseki et al. · 2016 [cited by applicant]
US 20160350236A1 · Tsirkin et al. · 2016 [cited by applicant]
US 20160371014A1 · Roberts · 2016 [cited by applicant]
US 20160371496A1 · Sell · 2016 [cited by examiner]
US 20170039164A1 · Nikolas et al. · 2017 [cited by applicant]
US 20170060754A1 · Nakra et al. · 2017 [cited by applicant]
US 20170060769A1 · Wires et al. · 2017 [cited by applicant]
US 20170123796A1 · Kumar et al. · 2017 [cited by applicant]
US 20170131902A1 · Goss et al. · 2017 [cited by applicant]
US 20170147427A1 · Nero · 2017 [cited by applicant]
US 20170177486A1 · Horn · 2017 [cited by applicant]
US 20170187621A1 · Shalev et al. · 2017 [cited by applicant]
US 20170199666A1 · Sundaram et al. · 2017 [cited by applicant]
US 20170249266A1 · Nale et al. · 2017 [cited by applicant]
US 20170255383A1 · Chang et al. · 2017 [cited by applicant]
US 20170262215A1 · Banerjee et al. · 2017 [cited by applicant]
US 20170285967A1 · Pandurangan et al. · 2017 [cited by applicant]
US 20170285992A1 · Vogt · 2017 [cited by applicant]
US 20170302734A1 · Liang et al. · 2017 [cited by applicant]
US 20170316321A1 · Whitney et al. · 2017 [cited by applicant]
US 20170364422A1 · Antony et al. · 2017 [cited by applicant]
US 20170364450A1 · Struttmann · 2017 [cited by applicant]
US 20180004441A1 · Takamura et al. · 2018 [cited by applicant]
US 20180011790A1 · Gaur et al. · 2018 [cited by applicant]
US 20180018379A1 · Eda · 2018 [cited by examiner]
US 20180024853A1 · Warfield et al. · 2018 [cited by applicant]
US 20180046581A1 · Banerjee et al. · 2018 [cited by applicant]
US 20180089087A1 · Chang et al. · 2018 [cited by applicant]
US 20180121366A1 · Tian · 2018 [cited by applicant]
US 20180150219A1 · Chen · 2018 [cited by examiner]
US 20180189207A1 · Nale et al. · 2018 [cited by applicant]
US 20180260135A1 · Hayashida et al. · 2018 [cited by applicant]
US 20180293163A1 · Bergeron · 2018 [cited by applicant]
US 20180316569A1 · Cilfone et al. · 2018 [cited by applicant]
US 20180332366A1 · Paduroiu · 2018 [cited by applicant]
US 20190004841A1 · Starks · 2019 [cited by applicant]
US 20190018809A1 · Nale et al. · 2019 [cited by applicant]
US 20190079689A1 · Cherubini et al. · 2019 [cited by applicant]
US 20190129834A1 · Purkayastha et al. · 2019 [cited by applicant]
US 20190129847A1 · Roh · 2019 [cited by applicant]
US 20190179760A1 · Bhargava et al. · 2019 [cited by applicant]
US 20190196996A1 · Balakrishnan et al. · 2019 [cited by applicant]
US 20190243552A1 · Maharana et al. · 2019 [cited by applicant]
US 20190243570A1 · Mittal et al. · 2019 [cited by applicant]
US 20190243756A1 · Ray et al. · 2019 [cited by applicant]
US 20190243771A1 · Mittal et al. · 2019 [cited by applicant]
US 20190243787A1 · Mittal et al. · 2019 [cited by applicant]
US 20190253520A1 · Maharana et al. · 2019 [cited by applicant]
US 20190303283A1 · McGlaughlin · 2019 [cited by examiner]
US 20190310780A1 · Gholamipour et al. · 2019 [cited by applicant]
US 20190332556A1 · Nale et al. · 2019 [cited by applicant]
US 20190370043A1 · Olderdissen · 2019 [cited by examiner]
US 20200019506A1 · Ray et al. · 2020 [cited by applicant]
US 20200073827A1 · Wallach · 2020 [cited by applicant]
US 20200074094A1 · Wallach · 2020 [cited by applicant]
US 20200319813A1 · Mittal et al. · 2020 [cited by applicant]
US 20200326851A1 · Frolikov et al. · 2020 [cited by applicant]
US 20210034524A1 · Leidel et al. · 2021 [cited by applicant]
US 20210048947A1 · Frolikov et al. · 2021 [cited by applicant]
US 20210117326A1 · Ray et al. · 2021 [cited by applicant]
US 20210120099A1 · Maharana et al. · 2021 [cited by applicant]
US 20210349638A1 · Maharana et al. · 2021 [cited by applicant]
KR 20140041408 · 2014 [cited by applicant]
KR 20160116533A · 2016 [cited by applicant]
“Solid-State Drive”, Wikipedia, printed on Mar. 14, 2018. [cited by applicant]
“Write combining,” Wikipedia encyclopedia entry located at https://en.wikipedia.org/wiki/Write_combining, Feb. 12, 2018. [cited by applicant]
A. Romanow, J. Mogul, T. Talpey, S. Bailey, “Remote Direct Memory Access (RDMA) over IP Problem Statement”, RFC 4297, Dec. 2005 (https://www.rfc-editor.org/search/rfc_search_detail.php). [cited by applicant]
Abhijith, et al. “The Efficient Use of Storage Resources in SAN for Storage Tiering and Caching,” 2015 International Conference on Computational Intelligence and Networks, IEEE, Jan. 11, 2016. [cited by applicant]
Cai, “Error Characterization, Mitigation and Recovery”, 2017. [cited by applicant]
Demand paging, Wikipedia, printed on Apr. 18, 2018. [cited by applicant]
Device driver, Wikipedia, printed on Apr. 19, 2018. [cited by applicant]
Extended European Search Report, EP19746665.9, mailed on May 3, 2021. [cited by applicant]
Extended European Search Report, EP19747107.1, mailed on Apr. 30, 2021. [cited by applicant]
Extended European Search Report, EP19746836.6, mailed on May 19, 2021. [cited by applicant]
Extended European Search Report, EP19748086.6, mailed on Jun. 8, 2021. [cited by applicant]
Extended European Search Report, EP19746972.9, mailed on May 19, 2021. [cited by applicant]
Extended European Search Report, EP19833924.4, mailed on Mar. 18, 2022. [cited by applicant]
Garbage collection (computer science), Wikipedia, printed on Sep. 26, 2018. [cited by applicant]
Graphics processing unit, Wikipedia, printed on Jul. 26, 2018. [cited by applicant]
Handy, Jim. “Where does NVRAM Fit?” Objective Analysis, Aug. 15, 2014. [cited by applicant]
Hypervisor, Wikipedia, printed on Apr. 19, 2018. [cited by applicant]
InfiniBand, Wikipedia, printed on Jul. 26, 2018. [cited by applicant]
Integrated circuit, Wikipedia, printed on Sep. 24, 2018. [cited by applicant]
Interlaken (networking), Wikipedia, printed on Sep. 21, 2018. [cited by applicant]
International Search Report and Written Opinion, PCT/US2019/013841, Apr. 23, 2019. [cited by applicant]
International Search Report and Written Opinion, PCT/US2019/013836, Apr. 22, 2019. [cited by applicant]
International Search Report and Written Opinion, PCT/US2019/015602, mailed May 3, 2019. [cited by applicant]
International Search Report and Written Opinion, PCT/US2019/014205, mailed May 1, 2019. [cited by applicant]
International Search Report and Written Opinion, PCT/US2019/014285, mailed May 8, 2019. [cited by applicant]
International Search Report, PCT/US2019/040413, mailed Oct. 25, 2019. [cited by applicant]
International Search Report and Written Opinion, PCT/US2019/014275, mailed May 8, 2019. [cited by applicant]
International Search Report and Written Opinion, PCT/US2020/021825, mailed Jul. 6, 2020. [cited by applicant]
Jacob, et al. “Optimized utilization of disks in storage area network by storage tiering,” 2017 International Conference on Computing, Communication, and Automation 9ICCCA), IEEE, May 5, 2017. [cited by applicant]
Jeff Hawkins et al., “Sequence memory for prediction, inference and behaviour”, In: Philosophical Transactions of the Royal Society B: Biological Sciences, pp. 1203-1209, May 1, 2009. [cited by applicant]
Kalnoskas, Aimee. “SSD controllers integrate DDR4 DRAM on chip.” Microsemi, Aug. 5, 2016. [cited by applicant]
Message Passing Interface, Wikipedia, printed on Jul. 26, 2018. [cited by applicant]
Microsequencer, Wikipedia, printed on Sep. 21, 2018. [cited by applicant]
Oracle, “NFS Over ROMA”, Retrieved on Feb. 18, 2020 from https://web.archive.org/web/20150920225910/https://docs.oracle.com/cd/E23824_01/html/821-1454/rfsrefer-154.html# (Year: 2015). [cited by applicant]
Operating system, Wikipedia, printed on Apr. 18, 2018. [cited by applicant]
PCI Express, Wikipedia, printed on Sep. 21, 2018. [cited by applicant]
Page cache, Wikipedia, printed on Apr. 18, 2018. [cited by applicant]
Page replacement algorithm, Wikipedia, printed on Jul. 31, 2018. [cited by applicant]
Page table, Wikipedia, printed on Jul. 31, 2018. [cited by applicant]
Paging, Wikipedia, printed on Apr. 18, 2018. [cited by applicant]
Palmer, Mark, et al. “Fido: A Cache That Learns to Fetch.” Proceedings of the 17th International Conference on Very arge Data Bases, Sep. 1991. [cited by applicant]
Ppeled, Leeor, et al. “A neural network memory prefetcher using semantic locality.” arXiv:1804.00478v2, Jul. 26, 2018. [cited by applicant]
RAM drive, Wikipedia, printed on Apr. 18, 2018. [cited by applicant]
Salkhordeh, et al. “Operating system level data tiering using online workload characterization,” Journal of Supercomputing, Kluwer Academic Publishers, Jan. 31, 2015. [cited by applicant]
SerDes, Wikipedia, printed on Sep. 21, 2018. [cited by applicant]
Switched fabric, Wikipedia, printed on Jul. 26, 2018. [cited by applicant]
Translation lookaside buffer, Wikipedia, printed on Apr. 18, 2018. [cited by applicant]
Vatto, “Analyzing Intel-Micron 3D XPoint: The NextGeneration Non-Volatile Memory”, 2015. [cited by applicant]
Virtual memory, Wikipedia, printed on Apr. 18, 2018. [cited by applicant]
Wilson, Tracy. “How PCI Express Works.” Retrieved from the Internet <https://computer.howstuffworks.com/pci-express.htm>, Mar. 30, 2021. [cited by applicant]