发明名称 Techniques for moving data between memory types
摘要 A two-level paging mechanism. The first level gathers data from reclaimable memory locations for a process and compacts the data into a single container. The second level sends the compact container's contents to a swap file and may use optimal I/O operations to the target memory device. On-demand paging is made possible by having a first pager locate the requested data in the compact container and then having a second pager retrieve the corresponding data from the swap file.
申请公布号 US9195581(B2) 申请公布日期 2015.11.24
申请号 US201113175303 申请日期 2011.07.01
申请人 Apple Inc. 发明人 Barbou-Des-Places Francois;Crane Neil G.;Desai Lionel D.;Sokol, Jr. Joseph
分类号 G06F9/46;G06F12/02;G06F12/08;G06F12/12 主分类号 G06F9/46
代理机构 Downey Brand LLP 代理人 Downey Brand LLP
主权项 1. A method for migrating data between a volatile memory and a non-volatile memory, the method comprising: receiving a first request to migrate the data from the volatile memory to the non-volatile memory, wherein: the data corresponds to a first process having a first priority, andthe first request is received when a second process having a second priority greater than the first priority requires additional memory; in response to receiving the first request: when a portion of the data corresponding to the first process can be designated for eviction from the volatile memory: designating the portion of the data for eviction from the volatile memory, freezing the first process,in a first memory space of the volatile memory, determining a first set of memory locations that correspond to the portion of the data that is designated for eviction,for each memory location of the first set of memory locations, storing, to an auxiliary memory that is separate and distinct from each of the volatile memory and the non-volatile memory, a pointer that refers to the memory location,for each pointer stored in the auxiliary memory, copying the portion of the data in the volatile memory referenced by the pointer to the non-volatile memory using one or more selected memory locations that are within a second memory space of the non-volatile memory, wherein the second process is allowed access to the portion of the data in the one or more selected memory locations associated with the non-volatile memory after the portion of the data is evicted from the volatile memory, andstoring, in the auxiliary memory, information about the one or more selected memory locations; receiving a second request to migrate the portion of the data from the non-volatile memory to the volatile memory, wherein the second request is triggered based on a reactivation of the first process that was previously frozen in response to receiving the first request; and in response to receiving the second request: copying, based on the information about the one or more selected memory locations stored in the auxiliary memory, the portion of the data from the non-volatile memory to the volatile memory.
地址 Cupertino CA US