Adaptive memory management method for coupled memory multiprocessor systems
Abstract
An adaptive memory management method for coupled memory multiprocessor computer systems is disclosed. In a coupled memory multiprocessor system all the data and stack pages of processes assigned to individual multiprocessors are, preferably, located in a memory region coupled to the assigned processor. When this becomes impossible, some data and stack pages are assigned to global memory or memory regions coupled to other processors. The present invention is a method of making certain that the most referenced data and stack pages are located in the coupled memory of the processor to which a specific process is assigned and lesser referenced pages are located in global memory or the coupled memory region of other processors. This result is accomplished by sampling the memory references made by the processors of the computer system and causing the most recently referenced pages in each coupled memory region to be maintained at the head of an active page list. References to remote data and stack pages are stored in a remote page hash table. Remote pages are pages stored in global memory or in coupled memory other than the coupled memory of the processor to which the process owning the pages is assigned. Any remote data and stack pages referenced more frequently than pages stored in a processor's coupled memory region are transferred to the processor's coupled memory region. If a processor's coupled memory region is tight, pages are transferred from the processor's coupled memory region to global memory or to the coupled memory region of another processor.
Claims
exact text as granted — not AI-modifiedThe embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
1. An adaptive memory management method for a coupled memory multiprocessor computer system comprising a plurality of CPU modules to which processes are assigned and a global interconnect, each of said CPU modules including a processor and a coupled memory region accessible by the processor without using the global interconnect, the coupled memory regions of other CPU modules being accessible by other processors via the global interconnect, said adaptive memory management method comprising the steps of: monitoring the memory references made by the processor of each CPU module; maintaining an active page list for each CPU module based on the references of the processor of the CPU module to the coupled memory region of the CPU module, the head of each of said active page lists being the most recently referenced page and the tail of said active page list being the least recently referenced page; maintaining a remote page hash table for each CPU module based on the frequency of references made by the processor of the CPU module to pages which are not located in the coupled memory region of the CPU module; and transferring pages that are not located in the coupled memory region of a CPU module and are referenced more frequently by the processor of the CPU module than pages located in the coupled memory region of the CPU module, to the coupled memory region of the CPU module.
2. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 1, wherein: said step of monitoring the memory references made by the processor of each CPU module comprises the substeps of detecting the memory requests made by the processor of the CPU module, and storing samples of said memory requests; and said steps of maintaining an active page list and maintaining a remote page hash table are based on said stored samples.
3. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 2, wherein both read and write memory request samples are detected and stored.
4. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 1, wherein said steps of maintaining an active page list and maintaining a remote page table are accomplished by an adapt daemon running on each CPU module.
5. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 4, wherein: said step of monitoring memory references made by the processor of each CPU module comprises the substeps of detecting the memory requests made by the processor of the CPU module and storing samples of said memory requests; and said steps of maintaining an active page list and maintaining a remote page hash table are based on said stored samples.
6. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 5, wherein said adapt daemon periodically checks said stored samples and causes coupled memory pages referenced by the processor of the CPU module running the adapt daemon to be placed at the head of said active page list and uses said stored samples to maintain said remote page hash table.
7. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 6, wherein said adapt daemon marks for migration to the coupled memory region of the CPU module running the adapt daemon frequently referenced pages not located in the coupled memory region of the CPU module.
8. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 7, wherein the pages marked for migration by said adapt daemon form a migration array for each of said CPU modules.
9. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 8, wherein said adapt daemon includes a collection phase, said collection phase including the steps of: evaluating said stored samples to determine if the samples relate to pages in the coupled memory region of the CPU module running the adapt daemon; and if related, placing the pages at the head of the active page list of said CPU module.
10. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 9, wherein said collection phase also includes the step of determining whether the samples of pages not located in the coupled memory region of a CPU module to which a process is assigned are data or stack pages and using such information to maintain the remote page hash table for the related CPU module.
11. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 10, wherein said collection phase also test the pages of said remote page hash table and adds pages from said remote page hash table to said migration array when the references to pages in said remote page hash table increase above a predetermined level.
12. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 11, wherein said predetermined level is based on the number of references made by the processor of the CPU module to which a particular remote page hash table relates.
13. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 12, wherein said adapt daemon includes a migration decision phase, said migration decision phase including the step of testing each of the pages in the migration array of the CPU module on which the adapt daemon is running to determine if the number of times each page has been referenced is above a second predetermined level, said second predetermined level greater than said first predetermined level and marking the pages that have been referenced above said second predetermined level for migration.
14. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 13, wherein said migration decision phase also includes the step of determining if the amount of free memory of the coupled memory region of the CPU module running the adapt daemon is plentiful and, if plentiful relative to a predetermined level, marking for migration pages contained in said migration array lying between said first and second predetermined levels.
15. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 14, wherein said migration decision phase also includes the step of determining the size of the process related to a particular page in said migration array and marking said page for migration even if the free memory of the coupled memory region of the CPU module running the adapt daemon is not plentiful.
16. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 15, wherein said migration decision phase includes a disassociated page routine that tests pages to determine if they are migratable prior to said pages being marked for migration.
17. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 16, wherein said step of transferring pages that are not located in the coupled memory region of a CPU module is performed by a page fault routine.
18. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 17, wherein said page fault routine determines if pages are reclaimable and reclaims pages that are reclaimable.
19. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 18, wherein said coupled memory multiprocessor computer system includes global memory and wherein said page fault routine allocates non-reclaimable data and stack pages to either global memory or the coupled memory region of the CPU module to which the process owning the data and stack pages is assigned based on whether said coupled memory region is in short supply.
20. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 19, wherein said page fault routine tests reclaimable data or stack pages to determine if they are in the coupled memory region of the CPU module to which the process owning the reclaimable data and stack pages is assigned and if the reclaimable data or stack pages have been marked for migration and, if not in said coupled memory region and marked for migration, allocating a page in the coupled memory region of the CPU module, to which the process owning the reclaimable data or stack pages has been assigned, to one of the reclaimable data or stack pages.
21. An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 20, wherein said page fault routine also determines if the free memory of the coupled memory region to which a data or stack page is assigned is low and, if low, either takes away pages located at the end of the active page list of the process that owns the data and stack page, depending upon whether the data and stack pages stored in the coupled memory region of the CPU module assigned the process owning the data or stack page is above or below a predetermined level.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.