Band Memory Arena Management for Complex Page RIP
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In commercial printing, existing software struggles to efficiently manage memory and schedule tasks in multi-threaded raster image processors (RIPs), leading to inefficiencies in memory allocation and rendering times, particularly when dealing with complex page description language (PDL) documents and high-speed printing demands.
Innovation Solution
A method for managing memory in a graphics processing system by dividing the output medium into bands, storing objects in corresponding band memory, and using shared memory arenas with band counters to determine global memory metrics for efficient rasterization and resource allocation, allowing for prioritization and release of memory resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a shared display list memory is used to store all objects on the page, then all objects overlapping a particular band are accessible by a thread rendering that band, but when the printing system runs out of memory, all objects stored in the shared display list memory must be rendered even though only particular bands caused the system to run out of memory
Solution Approach 1:
The patent segments the shared display list memory into multiple arenas, where each arena stores objects that overlap with a specific band. This allows the system to selectively render only the arenas corresponding to bands that need rendering, rather than rendering all objects in the shared display list memory. The segmentation enables efficient memory management by isolating objects into band-specific groups.
2Productivity
If objects are stored locally in each y-band or sub-region, then memory can be freed by rendering, but the solution is prone to memory fragmentation as the memory is divided into sub-regions
Solution Approach 1:
The patent introduces a new dimension of organization by creating arenas that span multiple bands vertically. Instead of dividing memory horizontally by band, the arenas are organized in a vertical dimension where each arena contains objects overlapping with multiple bands. This dimensional reorganization allows memory to be freed more efficiently without creating fragmentation, as arenas can be selectively rendered based on band requirements while maintaining a structured memory layout.
3Productivity
If the total memory is split into multiple large blocks with bitmasks to indicate region numbers, then rendered regions can reference blocks to determine which blocks can be freed, but the solution does not provide guidance on how regions should be scheduled for rendering
Solution Approach 1:
The patent implements a feedback mechanism where the system monitors memory usage and identifies which arenas need to be rendered based on current band rendering requirements. The feedback loop allows the system to dynamically select and render arenas in an optimal sequence, using information about which bands are being rendered and which arenas contain relevant objects. This feedback-driven approach provides clear guidance for rendering scheduling without requiring complex bitmask management.
4Productivity
If regions are prioritized for rendering based on their complexity from largest to smallest, then rendering can be optimized, but the solution does not provide a method of scheduling if the multiple regions are to be rendered nor does it resolve the problem of efficient allocation of object data shared by multiple regions
Solution Approach 1:
The patent performs preliminary organization of objects into arenas during the memory allocation phase, before rendering begins. Each arena is pre-configured to contain objects that overlap with specific bands, and the system pre-identifies which arenas will be needed for each band rendering task. This preliminary action eliminates the need for complex runtime scheduling decisions, as the rendering sequence is determined in advance based on the arena structure and band requirements.
Data Source
AI summary
A method for managing memory use in a graphics processing system receives a plurality of objects to be reproduced on an output medium, the output medium being divided into a plurality of bands. Objects falling within a band are stored in a corresponding local band memory and shared objects intersecting the band and at least one other band in at least one shared memory arena. Each shared memory arena is associated with a band counter defining the number of bands referencing said shared memory arena. The local band memory is associated with a data structure storing a shared memory arena identifier of the at least one shared memory arena where the shared objects intersecting the band are stored. The method facilitates release of the at least one shared memory arena in response to rasterizing the band selected for rasterizing based on the plurality of shared memory arena identifiers.


