Management system for a buffer memory having buffers of uniform size in which the buffers are divided into a portion of contiguous unused buffers and a portion of contiguous buffers in which at least some are used
AssigneeInternational Business Machines Corporation
InventorsOdysseas Koufopavlou, Ahmed Nasr-El-Din Tantawy
Life of this patent
Estimating the term…
Abstract
A memory management system for maximizing the number of contiguous free buffers to reduce the required number of free buffer pointers. Accordingly, with this invention a buffer memory is divided into two disjoint areas with one area having only contiguous free buffers while the other area has a combination of free and used buffers. This invention also has a means for maximizing the number of contiguous free buffers by using the buffers in the area having only contiguous free buffers only if there are no free buffers in the other area having both used and free buffers.
Claims12
A management system for a buffer memory containing a multiplicity of buffers all of identical size and each having a unique buffer address, comprising:
- means for defining a border between an unused buffer memory portion of said buffer memory which contains only buffers that are contiguous in address and unused and a used buffer memory portion of said buffer memory which contains at least one buffer that is used and possibly contains also one or more buffers that are unused;
- a pointer memory for holding a list of currently unused buffers in said used buffer memory portion;
- means for selecting a next buffer for use from said list of unused buffers, and if there is no unused buffer in said list, for selecting as said next buffer for use a buffer from said unused buffer memory portion that is immediately adjacent in address to said used buffer memory portion and increasing said used buffer memory portion by one so as to include said next buffer for use in said used buffer memory portion;
- means for returning a used buffer to unused status by adding said returning buffer to said list of unused buffers;
- and
- means for checking each time a returning buffer is added to said list of unused buffers, whether said added buffer is immediately adjacent to said border between said used and unused buffer memory portions, and if so increasing said unused buffer memory portion by one so as to include said returning buffer in said unused buffer portion and removing said returning buffer from said list of unused buffers.
A method for managing a buffer memory containing a multiplicity of buffers all of identical size and each having a unique buffer address, comprising the steps of:
- defining a border between an unused buffer memory portion of said buffer memory which contains only buffers that are contiguous in address and unused and a used buffer memory portion of said buffer memory which contains at least one buffer that is used and possibly contains also one or more buffers that are unused;
- storing a list of currently unused buffers in said used buffer memory portion;
- selecting a next buffer for use from the stored list of unused buffers, and if there is no unused buffer in the list, selecting as the next buffer for use a buffer from the unused buffer memory portion that is immediately adjacent in address to the used buffer memory portion and increasing the used buffer memory portion by one so as to include the next buffer for use in the used buffer memory portion;
- returning a used buffer to unused status by adding the returning buffer to the list of unused buffers;
- and
- checking each time a returning buffer is added to the list of unused buffers, whether the added buffer is immediately adjacent to the border between the used and unused buffer memory portions, and if so increasing the unused buffer memory portion by one so as to include the returning buffer in the unused buffer portion and removing the returning buffer from the list of unused buffers.
Dependencies are inferred from the claim text.