IP Library Granted Patent US 8,854,680
Granted Patent B2
US 8,854,680 · App. 12/209,046 · Granted Oct 7, 2014

Systems and methods for optimal memory allocation units

Inventor: Darrell Eugene Bellert (Boulder, CO)
Assignee: Konica Minolta Laboratory U.S.A., Inc.
G06T1/60G06F3/1244G06F3/122
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 8,854,680
App. No.
12/209,046
Granted
Oct 7, 2014
Kind
B2
Abstract

Methods for determining an optimal memory allocation unit size for a framebuffer in a single memory pool comprising frame buffer memory and display list memory on printing devices are presented. In some embodiments, a method for determining an optimal allocation unit size for memory allocation units allocated from a memory pool in response to a memory allocation request for a pixmap comprises determining the amount of unutilized memory when the pixmap is stored using a plurality of memory allocation unit sizes, wherein the memory allocation unit sizes are an integral multiple of a base memory allocation unit; and selecting a memory allocation unit size from the plurality of memory allocation unit sizes based on criteria related to the amount of unutilized memory.

Claims (35)

1. A method performed by a processing unit for determining an optimal size for memory allocation blocks allocated from a memory pool in response to a memory allocation request for a pixmap, wherein the memory pool comprises frame buffer memory and display list memory, the method comprising:

determining, by the processing unit, a first amount and a second amount of unutilized memory associated with storing the pixmap using a memory allocation block of a first size and a second size respectively, wherein:

the first size and the second size are each a different integral multiple of a size of a base memory allocation block, and

the base memory allocation block is a contiguous unit of memory holding one or more scanlines of the pixmap;

comparing the first amount of unutilized memory with at least the second amount of unutilized memory; and

selecting a memory allocation block size from a plurality of memory allocation block sizes based on at least the comparison between the first amount and the second amount of unutilized memory.

2. The method of claim 1 , wherein the selected memory allocation block size is the minimum integral multiple of the base allocation block size that exceeds the size of the pixmap.

3. The method of claim 1 , wherein the selected memory allocation block size is limited by an upper threshold on the integral multiplier of the base memory allocation block size.

4. The method according to claim 3 , wherein the selected memory allocation block size is one that minimizes total amount of unutilized memory when the pixmap is stored.

5. The method according to claim 3 , wherein the selected memory allocation block size is one that results in an amount of unutilized memory associated with storing the pixmap using the selected memory allocation block size being lower than or equal to a specified unutilized memory threshold.

6. The method according to claim 5 , wherein the unutilized memory threshold is specified using user-selectable heuristic methods.

7. The method according to claim 1 , wherein the plurality of memory allocation unit sizes comprise the base memory allocation block size and a fixed integral multiple of the base allocation block size.

8. The method of claim 1 , wherein all allocated memory allocation blocks are of equal size.

9. The method of claim 1 , wherein each individual memory allocation block comprises a contiguous section of memory.

10. The method of claim 1 , wherein the method is performed by the processing unit in communication with a printer.

11. The method of claim 1 , wherein the single memory pool is resident on a printing device.

12. A non-transitory computer-readable medium comprising instructions, which when executed by a processor, perform steps in a method for determining an optimal size for memory allocation blocks allocated from a memory pool in response to a memory allocation request for a pixmap, wherein the memory pool comprises frame buffer memory and display list memory, the steps comprising:

determining a first amount and a second amount of unutilized memory associated with storing the pixmap using a memory allocation block of a first size and a second size respectively, wherein:

the first size and the second size are each a different integral multiple of size of a base memory allocation block, and

the base memory allocation block is a contiguous unit of memory holding one or more scanlines of the pixmap;

comparing the first amount of unutilized memory with at least the second amount of unutilized memory; and

selecting a memory allocation block size from the plurality of memory allocation block sizes based on at least the comparison between the first amount and the second amount of unutilized memory.

13. The computer-readable medium of claim 12 , wherein the selected memory allocation block size is the minimum integral multiple of the base allocation block size that exceeds the size of the pixmap.

14. The computer-readable medium of claim 12 , wherein the selected memory allocation block size is limited by an upper threshold on the integral multiplier of the base memory allocation block size.

15. The computer-readable medium according to claim 14 , wherein the selected memory allocation block size is one that minimizes a total amount of unutilized memory when the pixmap is stored.

16. The computer-readable medium according to claim 14 , wherein the selected memory allocation block size is one that results in an amount of unutilized memory associated with storing the pixmap using the selected memory allocation block size being lower than or equal to a specified unutilized memory threshold.

17. The computer-readable medium according to claim 16 , wherein the unutilized memory threshold is specified using user-selectable heuristic methods.

18. The computer-readable medium according to claim 12 , wherein the plurality of memory allocation unit sizes comprise the base memory allocation block size and a fixed integral multiple of the base allocation block size.

19. The computer-readable medium of claim 12 , wherein all allocated memory allocation blocks are of equal size.

20. A non-transitory computer-readable memory comprising instructions, which when executed by a processor, perform steps in a method for determining an optimal size for memory allocation blocks allocated from a memory pool in response to a memory allocation request for a pixmap, wherein the memory pool comprises frame buffer memory and display list memory, the steps comprising:

determining a first amount and a second amount of unutilized memory associated with storing the pixmap using memory allocation blocks of a first size and a second size respectively, wherein:

the first size and the second size are each a different integral multiple of a size of a base memory allocation block, and

the base memory allocation block is a contiguous unit of memory holding one or more scanlines of the pixmap;

comparing the first amount of unutilized memory with at least the second amount of unutilized memory; and

selecting a memory allocation block size from the plurality of memory allocation block sizes based on at least the comparison between the first amount and the second amount of unutilized memory.

Assignments (2)
CHANGE OF NAME Recorded Oct 4, 2011
From: KONICA MINOLTA SYSTEMS LABORATORY, INC.
To: KONICA MINOLTA LABORATORY U.S.A., INC.
Reel/Frame 027012/0081 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2010
From: BELLERT, DARRELL EUGENE
To: KONICA MINOLTA SYSTEMS LABORATORY, INC.
Reel/Frame 024613/0193 →
Continuity (1)
Related Publication 20100060934A1 · Mar 11, 2010