Buffer managing method and buffer controller thereof
AssigneeSkymedi Corporation
InventorsLi-Hsiang Chan, Po-Yen Liu
Life of this patent
Estimating the term…
Abstract
By assigning a slave unit and at least one master unit in a buffer controller, clocks of the at least one master unit can be unified with a clock of the slave unit. A buffer status array is assigned for the slave unit in a buffer, and either a range status array or a queue status array is assigned for the master unit in the buffer for performing operations of the buffer controller in an accessing-by-block manner or in an accessing-by-spaced-interval manner. The master unit cooperated with the slave unit is determined from the at least one master unit by using a starvation-preventing algorithm.
Claims26
A buffer managing method, comprising:
- receiving data from a host to a set of physical memory segments of a buffer of a buffer controller, the set of physical memory segments having corresponding buffer status slots indicating allowance to write on the set of physical memory segments and having corresponding accessing-by-block status slots indicating the set of physical memory segments is current datum receiving targets;
- changing status of the buffer status slots corresponding to the set of physical memory segments receiving data from the host to indicate allowance to read;
- outputting data from a plurality of physical memory segments of the buffer to a flash memory, the plurality of physical memory segments having corresponding buffer status slots indicating allowance to read and having corresponding accessing-by-block status slots indicating the plurality of physical memory segments are current datum outputting sources;
- and
- changing status of the buffer status slots corresponding to the plurality of physical memory segments outputting data from the plurality of physical memory segments to indicate allowance to write;
- wherein the plurality of physical memory segments include the set of physical memory segments, and the accessing-by-block status slots indicate that the plurality of physical memory segments are consecutive.
A buffer managing method, comprising:
- receiving data from a host to a set of physical memory segment of a buffer of a buffer controller, the set of physical memory segments having corresponding buffer status slots indicating allowance to write on the set of physical memory segments and having corresponding accessing-by-spaced-interval status slots indicating the set of physical memory segment is current datum receiving targets;
- changing status of the buffer status slots corresponding to the set of physical memory segments receiving data from the host to indicate allowance to read;
- outputting data from a plurality of physical memory segments of the buffer to a flash memory, the plurality of physical memory segments having corresponding buffer status slots indicating allowance to read and having corresponding accessing-by-spaced-interval status slots indicating the plurality of physical memory segments are current datum outputting sources;
- and
- changing status of the buffer status slots corresponding to the plurality of physical memory segments outputting data from the plurality of physical memory segments to indicate allowance to write;
- wherein the plurality of physical memory segments include the set of physical memory segments, and the accessing-by-spaced-interval status slots indicate that the plurality of physical memory segments are intermittent.
A buffer managing method, comprising:
- moving data from a first physical memory segment of a buffer of a buffer controller to a second physical memory segment of the buffer when an accessing-by-block status slot and a buffer status slot corresponding to the first physical memory segment indicate that the first physical memory segment is a current source of a data moving instruction for moving data and when an accessing-by-spaced-interval status slot and a buffer status slot corresponding to the second physical memory segment indicate that the second physical memory segment is a current target of the data moving instruction;
- changing status of the buffer status slot corresponding to the second physical memory segment to indicate the second physical memory segment is a current source of another data moving instruction;
- changing status of the buffer status slot corresponding to the first physical memory segment to indicate the first physical memory segment is a current target of the another data moving instruction;
- wherein each physical memory segment of the buffer has a corresponding buffer status slot to indicate whether the each physical memory segment is allowed to read or write;
- wherein buffer status slots are elements of a buffer status array;
- wherein accessing-by-block status slots are utilized for accessing a plurality of physical memory segments mapped by a corresponding plurality of consecutive buffer status slots in the buffer status array at a time;
- wherein accessing-by-spaced-intervals status slots are elements of an accessing-by-spaced-interval status array utilized for accessing a plurality of physical memory segments mapped by a corresponding plurality of intermittent buffer status slots;
- and
- wherein an accessing-by-block status array comprises of accessing-by-block status slots;
- each of the accessing-by-block status slots corresponds to one of the consecutive buffer status slots.
A buffer managing method, comprising:
- accessing data of a physical memory segment of a buffer by another physical memory segment of the buffer according to a data moving instruction, when an accessing-by-spaced interval status slot and a buffer status slot corresponding to the physical memory segment indicate that the physical memory segment is allowed to be accessed by the another physical memory segment, and when an accessing-by-block status slot and a buffer status slot corresponding to the another physical memory segment indicate that the another physical memory segment is allowed to access the physical memory segment;
- changing status of the buffer status slot corresponding to the physical memory segment to indicate allowance to access a different physical memory segment;
- changing status of the buffer status slot corresponding to the another physical memory segment to indicate allowance to be accessed;
- wherein each physical memory segment of the buffer has a corresponding buffer status slot to indicate whether the each physical memory segment is allowed to read or write;
- wherein buffer status slots are elements of a buffer status array;
- wherein accessing-by-block status slots are utilized for accessing physical memory segments mapped by a corresponding plurality of consecutive buffer status slots in the buffer status array at a time;
- wherein accessing-by-spaced-intervals status slots are an elements of an accessing-by-spaced-interval status array utilized for accessing physical memory segments mapped by a corresponding plurality of intermittent buffer status slots in the buffer status array;
- wherein an accessing-by-block status array comprises of accessing-by-block status slots;
- each of the accessing-by-block status slots corresponds to one of the plurality of consecutive buffer status slots.
A buffer controller, comprising:
- a buffer having a plurality of physical memory segments, a buffer status array having a plurality of buffer status slots corresponding to the plurality of physical memory segments and configured to simultaneously indicate allowance to write on a set of physical memory segments and indicate allowance to read on physical memory segments other than the set of physical memory segments, an accessing-by-block status array having a plurality of accessing-by-block status slots corresponding to the plurality of buffer status slots and configured to indicate that the plurality of physical memory segments are allowed to be accessed, and an accessing-by-spaced-interval status array having a plurality of accessing-by-spaced-interval status slots corresponding to the plurality of physical memory segments;
- at least one master unit for accessing the buffer;
- and
- an arbitration module for determining a master unit among the at least one master unit by using a starvation-preventing algorithm when the buffer controller executes an instruction;
- wherein status of the buffer status slots corresponding to the set physical memory segments is changed to indicate allowance to read the set physical memory segments after being written on;
- status of the buffer status slots corresponding to the physical memory segments other than the set physical memory segments is changed to indicate allowance to write on the physical memory segments other than the set physical memory segments after being read.
Dependencies are inferred from the claim text.