Dynamic memory allocation and relocation to create low power regions
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-011/30
G06F-012/00
G06F-012/02
G06F-001/32
G06F-003/06
출원번호
US-0954876
(2015-11-30)
등록번호
US-9760300
(2017-09-12)
발명자
/ 주소
Worthington, Bruce L.
Sharda, Vishal
Zhang, Qi
Kavalanekar, Swaroop
출원인 / 주소
Microsoft Technology Licensing, LLC
대리인 / 주소
Schwabe, Williamson & Wyatt P.C.
인용정보
피인용 횟수 :
0인용 특허 :
11
초록▼
Memory objects may be allocated and re-allocated within a computer system to consolidate infrequently used memory objects to memory regions that may be operated at lower power. During initial allocation of memory objects, the objects may be placed into high power regions. During subsequent periodic
Memory objects may be allocated and re-allocated within a computer system to consolidate infrequently used memory objects to memory regions that may be operated at lower power. During initial allocation of memory objects, the objects may be placed into high power regions. During subsequent periodic analysis, memory objects in high power regions that are infrequently used may be relocated to lower power regions while memory objects in low power regions that are frequently used may be moved to the high power regions. Various heuristics or logic may be used to handle unmovable objects, shared objects, and other types of objects.
대표청구항▼
1. A method, comprising: operating a plurality of first memory regions of a memory device at a first operating power level;operating a plurality of second memory regions of the memory device at a second operating power level different from the first operating power level;based on a classification of
1. A method, comprising: operating a plurality of first memory regions of a memory device at a first operating power level;operating a plurality of second memory regions of the memory device at a second operating power level different from the first operating power level;based on a classification of the first memory object being movable, selecting at least one of the plurality of first memory regions;determining available memory space in the at least one of the plurality of first memory regions;based on the available memory space in the at least one of the plurality of first memory regions being sufficient to allocate the first memory object: allocating at least a portion of the available first memory space to the first memory object; andplacing the first memory object in the at least one of the plurality of first memory regions; andbased on the available memory space in the at least one of the plurality of first memory regions not being sufficient to allocate the first memory object: selecting a second memory object in the at least one of the plurality of first memory regions for relocation based at least in part on use of the second memory object;identifying a queue including the selected second memory object;relocating the second memory object to at least one second memory region based at least in part on the queue; andplacing the first memory object in the at least one of the plurality of first memory regions. 2. The method of claim 1, further comprising: based on the classification of the first memory object being unmovable: allocating second memory space in at least one of the plurality of second memory regions to the first memory object; andplacing the first memory object in the second memory space. 3. The method of claim 2, wherein the classification of the first memory object being unmovable is associated with the first operating power level of the first memory object; andwherein the classification of the first memory object being movable is associated with the second operating power level of the first memory object, the first operating power level being higher than the second operating power level. 4. The method of claim 1, further comprising: based on the classification of the first memory object being unmovable: determining available contiguous space in the plurality of second memory regions; anddisassociating at least one movable memory object placed in the plurality of second memory regions based at least in part on the available contiguous space. 5. The at least one memory device of claim 1, wherein the classification of the first memory object being unmovable is associated with the first operating power level of the first memory object; andwherein the classification of the first memory object being movable is associated with the second operating power level of the first memory object, the first operating power level being higher than the second operating power level. 6. The method of claim 1, further comprising: placing the first memory object in the plurality of second memory regions only when sufficient available contiguous memory space exists in the at least one of the plurality of second memory regions, otherwise placing the first memory object in at least another of the plurality of second memory regions different from the at least one of the plurality of second memory regions having sufficient available contiguous memory space. 7. The method of claim 1, further comprising: repeating the selecting the second memory object in the at least one of the plurality of first memory regions and the relocating the second memory object for a next second memory object until the available memory space in the at least one of the plurality of first memory regions is sufficient to allocate the first memory object. 8. At least one memory device having instructions stored thereon that, in response to execution by a processing device, cause the processing device to perform operations comprising: operating a plurality of first memory regions of a memory device at a first operating power level;operating a plurality of second memory regions of the memory device at a second operating power level different from the first operating power level;based on a classification of the first memory object being movable, selecting at least one of the plurality of first memory regions;determining available memory space in the at least one of the plurality of first memory regions; andbased on the available memory space in the at least one of the plurality of first memory regions not being sufficient to allocate the first memory object: selecting a second memory object in the at least one of the plurality of first memory regions for relocation based at least in part on use of the second memory object;identifying a queue including the selected second memory object;relocating the second memory object to at least one second memory region based at least in part on the queue; andplacing the first memory object in the at least one of the plurality of first memory regions. 9. The at least one memory device of claim 8, wherein the instructions stored thereon, in response to execution by the processing device, cause the processing device to perform operations further comprising: based on the available memory space in the at least one of the plurality of first memory regions being sufficient to allocate the first memory object: allocating at least a portion of the available first memory space to the first memory object; andplacing the first memory object in the at least one of the plurality of first memory regions. 10. The at least one memory device of claim 9, wherein the classification of the first memory object being unmovable is associated with the first operating power level of the first memory object; andwherein the classification of the first memory object being movable is associated with the second operating power level of the first memory object, the first operating power level being higher than the second operating power level. 11. The at least one memory device of claim 9, wherein the instructions stored thereon, in response to execution by the processing device, cause the processing device to perform operations further comprising: placing the first memory object in the second memory region only when sufficient available contiguous memory space exists in the at least one of the plurality of second memory regions, otherwise placing the first memory object in another second memory region different from the second memory region having sufficient available contiguous memory space. 12. The at least one memory device of claim 9, wherein the instructions stored thereon, in response to execution by the processing device, cause the processing device to perform operations further comprising: repeating the selecting the second memory object in the at least one of the plurality of first memory regions and the relocating the second memory object for a next second memory object until the available memory space in the at least one of the plurality of first memory regions is sufficient to allocate the first memory object. 13. The at least one memory device of claim 8, wherein the instructions stored thereon, in response to execution by the processing device, cause the processing device to perform operations further comprising: based on the classification of the first memory object being unmovable: allocating second memory space in at least one of the plurality of second memory regions to the first memory object; andplacing the first memory object in the second memory space of the least of plurality of memory regions. 14. The at least one memory device of claim 8, wherein the instructions stored thereon, in response to execution by the processing device, cause the processing device to perform operations further comprising: based on the classification of the first memory object being unmovable: determining sufficient available contiguous memory space in at least one of the plurality of second memory regions; andplacing the first memory object in at least a portion of the available contiguous memory space of the at least one of the plurality of second memory regions. 15. The at least one memory device of claim 8, based on the classification of the first memory object being unmovable: determining available contiguous space in the second memory region; anddisassociating at least one movable memory object placed in the second memory region based at least in part on the available contiguous space. 16. A method, comprising: operating a plurality of first memory regions of a memory device at a first operating power level;operating a plurality of second memory regions of the memory device at a second operating power level different from the first operating power level;based on a classification of the first memory object being movable, selecting at least one of the plurality of first memory regions;determining available memory space in the at least one of the plurality of first memory regions;based on the available memory space in the at least one of the plurality of first memory regions not being sufficient to allocate the first memory object: selecting a second memory object in the at least one of the plurality of first memory regions for relocation based at least in part on use of the second memory object;identifying a queue including the selected second memory object;relocating the second memory object to at least one second memory region based at least one the queue; andplacing the first memory object in the at least one of the plurality of first memory regions. 17. The method of claim 16, further comprising: repeating the selecting the second memory object in the at least one of the plurality of first memory regions and the relocating the second memory object for a next second memory object until the available memory space in the at least one of the plurality of first memory regions is sufficient to allocate the first memory object.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (11)
Yoshida Hideki,JPX, Computer system using software controlled power management method with respect to the main memory according to a progra.
Raatz Donovan L. (New Germany MN) Sobelman Gerald E. (Minnetonka MN), Digital signal processor with delayed-evaluation array multipliers and low-power memory addressing.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.