Method of managing requests for access to memories and data storage system
AssigneeSimpulse
InventorsStephane De Marchi, Emmanuel Hamman
Life of this patent
Estimating the term…
Abstract
The method includes, at a first clock cycle:—obtaining (202) new requests by the processing stage;—supplying (210) by the processing stage at least one of the new requests;—placing on standby (212) by the processing stage at least one further new request, hereinafter referred to as a standby request. The method further includes, at a second clock cycle following the first clock cycle:—obtaining (202) at least one new request by the processing stage;—selecting (208) by the processing stage, from the standby request(s) and the new request(s), at least one request;—la supplying (210) the selected request(s) by the processing stage.
Claims10
A method for handling requests received by a storage system (100) that has a memory stage (114) containing memories (102n), a clock input (CLK) configured to receive a clock signal defining successive clock cycles, a request input (108) for receiving requests, each of said requests requesting access to a location of one of the memories (102n), and a processing stage (112), the method comprising:
- determining (214), by the processing stage (112), an existence or not of an old standby request, said old standby request being defined as a request that, at every one of L consecutive clock cycles immediately preceding a first clock cycle, i) has not been supplied to the memory stage (114), and ii) has been placed on standby in the processing stage, L being a predefined number greater than or equal to two;
- and
- at the first clock cycle:
- in the event that no old standby request is determined, the following steps are performed:
- obtaining (202), by the processing stage (112), one or more new requests from the request input (108), and
- selecting (208), by the processing stage (112), at least one request from the new request(s) and one or more standby requests if any, said standby requests being requests that have not been supplied to the memory stage (114) and have been placed on standby in the processing stage (112) during a previous clock cycle immediately preceding the first cycle;
- in the event that at least one old standby request is determined, the following steps are performed:
- suspending (206), by the processing stage (112), new requests from being obtained from the request input (108) for the first clock cycle, and
- selecting (208), by the processing stage (112), one or more of the standby request(s) not supplied to the memory stage (114) and placed on standby in the processing stage (112) during the previous clock cycle;
- supplying (210), by the processing stage (112), the selected request(s) to the memory stage (114);
- and
- not supplying to the memory stage (114), and placing on standby (212), all non-selected request(s) by the processing stage (112).
A data storage system (100), comprising:
- a memory stage (114) containing memories (102n);
- a clock input (CLK) that receives a clock signal defining successive clock cycles;
- and
- a request input (108) that receives requests, each of said requests requesting access to a location of one of the memories (102n);
- a processing stage (112), configured by way of programming encoded in a programming memory such that, during operation, said processing stage (112):
- determines (214) the existence or not of an old standby request, said old standby request being defined as a request that, at every one of L consecutive clock cycles immediately preceding a first clock cycle, i) has not been supplied to the memory stage (114), and ii) has been placed on standby in the processing stage, L being a predefined number greater than or equal to two;
- and, at the first clock cycle:
- in the event that no old standby request is determined, the processing stage (112):
- obtains one or more new requests from the request input (108), and
- selects (208) at least one request from the new request(s) and one or more standby request(s) if any, said standby requests being requests that have not been supplied to the memory stage (114) and have been placed on standby in the processing stage (112) during a previous clock cycle immediately preceding the first cycle;
- in the event that at least one old standby request is determined, the processing stage (112):
- suspends (206) new requests from being obtained from the request input (108) for the first clock cycle, and
- selects (208) one or more of the standby request(s),
- supplies the selected request(s) to the memory stage (114) not supplied to the memory stage (114) and placed on standby in the processing stage (112) during the previous clock cycle,
- wherein the processing stage (112) supplies the selected request(s) to the memory stage (114), and
- wherein the processing stage (112) places all the non-selected request(s) on standby.
Dependencies are inferred from the claim text.