Methods and mechanisms for proactive memory management
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-012/00
G06F-013/00
출원번호
UP-0150686
(2005-06-09)
등록번호
US-7698513
(2010-05-20)
발명자
/ 주소
Sechrest, Stuart
Fortin, Michael R.
Iyigun, Mehmet
Ergan, Cenk
출원인 / 주소
Microsoft Corporation
대리인 / 주소
Workman Nydegger
인용정보
피인용 횟수 :
54인용 특허 :
14
초록▼
A proactive, resilient and self-tuning memory management system and method that result in actual and perceived performance improvements in memory management, by loading and maintaining data that is likely to be needed into memory, before the data is actually needed. The system includes mechanisms di
A proactive, resilient and self-tuning memory management system and method that result in actual and perceived performance improvements in memory management, by loading and maintaining data that is likely to be needed into memory, before the data is actually needed. The system includes mechanisms directed towards historical memory usage monitoring, memory usage analysis, refreshing memory with highly-valued (e.g., highly utilized) pages, I/O pre-fetching efficiency, and aggressive disk management. Based on the memory usage information, pages are prioritized with relative values, and mechanisms work to pre-fetch and/or maintain the more valuable pages in memory. Pages are pre-fetched and maintained in a prioritized standby page set that includes a number of subsets, by which more valuable pages remain in memory over less valuable pages. Valuable data that is paged out may be automatically brought back, in a resilient manner. Benefits include significantly reducing or even eliminating disk I/O due to memory page faults.
대표청구항▼
What is claimed is: 1. In a computer system, a method comprising: tracing page usage for a plurality of pages; associating a priority value with each traced page based on the traced usage of that page and the page's corresponding I/O transfer expense, wherein the I/O transfer expense indicates the
What is claimed is: 1. In a computer system, a method comprising: tracing page usage for a plurality of pages; associating a priority value with each traced page based on the traced usage of that page and the page's corresponding I/O transfer expense, wherein the I/O transfer expense indicates the potential future cost of loading the page into memory if the page is unloaded onto disk; and prioritizing at least some of the pages that are in memory relative to other pages on another storage based on the priority value associated with each page. 2. The method of claim 1 wherein prioritizing at least some of the pages comprises, selecting a page on the other storage based on the priority value associated with the selected page, and loading the selected page to the memory. 3. The method of claim 1 wherein prioritizing at least some of the pages comprises, selecting a set of pages in memory, and compressing the set of pages into a smaller amount of space in the memory. 4. The method of claim 1 wherein tracing page usage comprises performing at least one operation of a set of tracing operations, the set containing, recording frequency of page usage data, recording time data corresponding to a last page usage, counting page usage in a time period, maintaining data corresponding to a creation time of a page, and maintaining data corresponding to a last time a page was accessed. 5. The method of claim 1 further comprising, selecting as traced pages at least one subset of pages available to the computer system. 6. The method of claim 1 wherein associating a priority value with each traced page comprises, grouping selected pages together into a page group, and maintaining a value in association with the group. 7. The method of claim 6 wherein grouping selected pages together comprises grouping pages based on at least one criterion of a set, the set containing, grouping pages based on times of last access, grouping pages based on usage patterns, grouping pages based on frequency of usage, grouping pages based on a virtual location, grouping pages based on a physical location, grouping pages based on times that the pages were trimmed from memory, grouping pages based on I/O transfer efficiency, grouping pages based on which processes use the pages, grouping pages based on process lifetime information, grouping pages based on fault information within a period, grouping pages based on at least one event, grouping pages based on a time of usage, grouping pages based on a specific user's processes, and grouping pages based on context data. 8. The method of claim 1 wherein tracing page usage comprises recording context data in association with usage of a page. 9. The method of claim 8 wherein recording the context data comprises recording the context data based on power state information and/or disk state information. 10. The method of claim 8 wherein recording the context data comprises recording the context data based on event information. 11. The method of claim 10 wherein recording the context data based on the event information comprises recording a memory-related event, the memory-related event corresponding to at least one item of a set, the set containing, information related to a hibernation state of the computer system, information related to a standby state of the computer system, and information related to execution of a computer program on the computer system. 12. The method of claim 1 further comprising ranking the pages based on their respective priority values, and wherein prioritizing at least some of the pages that are in memory comprises pre-fetching pages to memory from another storage in a pre-fetching order based on the ranking. 13. The method of claim 1 wherein prioritizing at least some of the pages comprises reading selected pages from the other storage into a standby page set in memory based on the priority value associated with each selected page. 14. The method of claim 1 wherein tracing page usage comprises evaluating page access information. 15. The method of claim 1 wherein tracing page usage comprises recording data in response to an event or context, wherein the data is recorded in response to an item of a set, the set containing, a switched task, a created window, a detected action, a hibernation-related event of the computer system, a standby-related event of the computer system, a system boot-related event of the computer system, a program launch, a program shutdown, a user logon, a network connection event, a media-related event, and a program-specified context. 16. In a computing environment, a system comprising: a tracing mechanism that tracks memory page usage for a plurality of pages; and a prioritization mechanism that associates a score with each tracked page based on both the memory page usage tracked for that page and the page's corresponding I/O transfer expense, wherein the I/O transfer expense indicates the potential future cost of loading the page into memory if the page is unloaded onto disk. 17. The system of claim 16 further comprising, a rebalancer that determines which pages are in memory based on the score associated with each tracked page. 18. The system of claim 17 wherein the rebalancer pre-fetches a selected page into memory from another storage device based on the score for the selected page, and/or transfers a selected page out of memory to another storage device based on the score for the selected page. 19. The system of claim 17 further comprising a standby page set in memory, wherein the rebalancer reads selected pages from another storage into the standby page set. 20. In a computer system, a method comprising: tracing page usage for a plurality of pages; associating a priority value with each traced page based on the following: the traced usage of that page, a user-provided weighting indication indicating the page's degree of importance to the user, the page's corresponding I/O transfer expense, wherein the I/O transfer expense indicates the potential future cost of loading the page into memory if the page is unloaded onto disk, and at least a portion of associated context information indicating current power and disk states; and prioritizing at least some of the pages that are in memory relative to other pages on another storage based on the priority value associated with each page, such that pages with higher associated priority values are protected from being unloaded from memory.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (14)
Ludmila Cherkasova ; Martin F. Arlitt ; Richard J. Friedrich ; Tai Jin, Caching protocol method and system based on request frequency and relative storage duration.
Herger, Lorraine M.; McHugh, Mary; Poff, Dan E; Saccone, Jr., Robert A.; Schultz, Charles O.; Smith, III, T. Basil, System and method for managing memory compression transparent to an operating system.
Osterhout, Ralph F.; Haddick, John D.; Lohse, Robert Michael; Cella, Charles; Nortrup, Robert J.; Nortrup, Edward H., AR glasses with event and sensor triggered AR eyepiece interface to external devices.
Osterhout, Ralph F.; Haddick, John D.; Lohse, Robert Michael; Cella, Charles; Nortrup, Robert J.; Nortrup, Edward H., AR glasses with event and sensor triggered control of AR eyepiece applications.
Osterhout, Ralph F.; Haddick, John D.; Lohse, Robert Michael; Cella, Charles; Nortrup, Robert J.; Nortrup, Edward H., AR glasses with event and user action control of external applications.
Iyigun, Mehmet; Bak, Yevgeniy M.; Bluestein, Eric M.; Alexander, Robin A.; Herron, Andrew M.; Xing, Xiaozhong, Assigning priorities to data for hybrid drives.
Iyigun, Mehmet; Bak, Yevgeniy M.; Bluestein, Eric M.; Alexander, Robin A.; Herron, Andrew M.; Xing, Xiaozhong, Assigning priorities to data for hybrid drives.
Iyigun, Mehmet; Bak, Yevgeniy M.; Bluestein, Eric M.; Alexander, Robin A.; Herron, Andrew M.; Xing, Xiaozhong, Assigning priorities to data for hybrid drives.
Iyigun, Mehmet; Bak, Yevgeniy M.; Bluestein, Eric M.; Alexander, Robin A.; Herron, Andrew M.; Xing, Xiaozhong, Dirty data management for hybrid drives.
Osterhout, Ralph F.; Haddick, John D.; Lohse, Robert Michael; Border, John N.; Miller, Gregory D.; Stovall, Ross W., Eyepiece with uniformly illuminated reflective display.
Miller, Gregory D.; Border, John N.; Osterhout, Ralph F., Grating in a light transmissive illumination system for see-through near-eye display glasses.
Lee, Jung-Pil; Oh, Hwa-Seok; Yoo, Kyung-Phil; Shin, Myung-Sub, Memory swapping method, and host device, storage device, and data processing system using the same.
Iyigun, Mehmet; Bak, Yevgeniy; Fortin, Michael; Fields, David; Ergan, Cenk; Kirshenbaum, Alexander, Method and system for ensuring reliability of cache data and metadata subsequent to a reboot.
Miller, Gregory D.; Border, John N.; Osterhout, Ralph F., Optical imperfections in a light transmissive illumination system for see-through near-eye display glasses.
Iyigun, Mehmet; Bak, Yevgeniy M.; Bluestein, Eric M.; Alexander, Robin A.; Herron, Andrew M.; Xing, Xiaozhong, Power saving mode hybrid drive access management.
Border, John N.; Bietry, Joseph; Osterhout, Ralph F., See-through near-eye display glasses including a curved polarizing film in the image source, a partially reflective, partially transmitting optical element and an optically flat film.
Border, John N.; Haddick, John D.; Osterhout, Ralph F., See-through near-eye display glasses including a partially reflective, partially transmitting optical element.
Border, John N.; Osterhout, Ralph F., See-through near-eye display glasses including an auto-brightness control for the display brightness based on the brightness in the environment.
Border, John N.; Bietry, Joseph; Osterhout, Ralph F., See-through near-eye display glasses wherein image light is transmitted to and reflected from an optically flat film.
Border, John N.; Osterhout, Ralph F., See-through near-eye display glasses with a fast response photochromic film system for quick transition from dark to clear.
Border, John N.; Haddick, John D.; Osterhout, Ralph F., See-through near-eye display glasses with a light transmissive wedge shaped illumination system.
Border, John N.; Haddick, John D.; Lohse, Robert Michael; Osterhout, Ralph F., See-through near-eye display glasses with the optical assembly including absorptive polarizers or anti-reflective coatings to reduce stray light.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.