Memory system and host device
US-2024394189-A1 · Nov 28, 2024 · US
US9632938B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9632938-B2 |
| Application number | US-201514680262-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 7, 2015 |
| Priority date | Oct 10, 2012 |
| Publication date | Apr 25, 2017 |
| Grant date | Apr 25, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method and an apparatus for pushing memory data from a memory to a push destination storage used to store data prefetched by a central processing unit (CPU) in a computing system are disclosed. In the method, a memory controller of the computing system periodically generates a push command according to a push period. Then the memory controller acquires a push parameter of to-be-pushed data according to the push command and sends at least one memory access request to memory according to the push parameter, where the at least one memory access request is used to request the to-be-pushed data from the memory. After receiving the to-be-pushed data that is sent according to the at least one memory access request by the memory, the memory controller buffers the to-be-pushed data and pushes the to-be-pushed data from the data buffer to the push destination storage.
Opening claim text (preview).
What is claimed is: 1. A method performed by a memory controller for pushing memory data from a memory to a push destination storage used to store data prefetched by a central processing unit (CPU) in a computing system, comprising: periodically generating a push command according to a push period, wherein one push command is periodically generated within one push period, and wherein the push period is calculated according to a periodical push command received from a program; acquiring a push parameter of to-be-pushed data according to the push command, wherein the push parameter comprises the push destination storage of the to-be-pushed data, wherein the push parameter is determined by a data structure type of the to-be-pushed data, wherein the data structure type of the to-be-pushed data comprises at least one linked list, and wherein the data structure type of the to-be-pushed data further comprises at least a non-sequential structure type; sending at least one memory access request to the memory according to the push parameter, wherein the at least one memory access request is used to request the to-be-pushed data from the memory; receiving and buffering the to-be-pushed data that is sent according to the at least one memory access request by the memory; and pushing the to-be-pushed data from a data buffer to the push destination storage. 2. The method according to claim 1 , wherein the push parameter further comprises storage information of the to-be-pushed data, an access step of the to-be-pushed data, and the number of times of pushing the to-be-pushed data, and wherein sending the at least one memory access request to the memory according to the push parameter comprises: generating an access address of the to-be-pushed data according to the storage information of the to-be-pushed data; generating the at least one memory access request according to the push command, the number of times of pushing the to-be-pushed data, and the access address of the to-be-pushed data; sorting the at least one memory access request in a queue; and sending the at least one memory access request to the memory according to an order in the queue. 3. The method according to claim 2 , wherein the to-be-pushed data comprises an array, and wherein the storage information of the to-be-pushed data comprises a start address of the array and an element size of the array. 4. The method according to claim 2 , wherein the to-be-pushed data comprises the linked list, and wherein the storage information of the to-be-pushed data comprises a start address of the linked list, a node size of the linked list, a position of a pointer field of the linked list, and an end mark of the linked list. 5. The method according to claim 2 , wherein the to-be-pushed data comprises a pointer array, and wherein the storage information of the to-be-pushed data comprises a start address of the pointer array, a size of a pointer field of the pointer array, and an element size of the pointer array. 6. The method according to claim 1 , wherein before periodically generating the push command according to the push period, the method further comprises determining the push period according to the periodical push command, and wherein the periodical push command is received from an application program. 7. The method according to claim 1 , wherein pushing the to-be-pushed data from the data buffer to the push destination storage comprises: acquiring status information of the push destination storage of the to-be-pushed data, wherein the status information indicates whether there is valid data stored in the push destination storage; pushing the to-be-pushed data from the data buffer to the push destination storage of the to-be-pushed data when the status information indicates that there is no valid data stored in the push destination storage; and setting a status of the push destination storage of the to-be-pushed data to a state indicating that there is valid data stored in the push destination storage. 8. The method according to claim 1 , wherein the to-be-pushed data comprises data having a plurality of different structures, wherein the plurality of different structures comprises an array, the linked list, and a pointer array, wherein the push parameter comprises a plurality of different push parameters, and wherein each of the array, the linked list, and the pointer array are associated with different ones of the plurality of different push parameters. 9. A computing system comprising: a memory configured to store data; a push destination storage configured to store data prefetched by a central processing unit (CPU) in the computing system, wherein an access speed of the push destination storage is higher than an access speed of the memory; and a memory controller configured to: periodically generate a push command according to a push period, wherein one push command is periodically generated within one push period, and wherein the push period is calculated according to a periodical push command received from a program; acquire a push parameter of to-be-pushed data according to the push command, wherein the push parameter comprises the push destination storage of the to-be-pushed data, wherein the push parameter is determined by a data structure type of the to-be-pushed data, wherein the data structure type of the to-be-pushed data comprises at least one linked list, and wherein the data structure type of the to-be-pushed data further comprises at least a non-sequential structure type; send at least one memory access request to the memory according to the push parameter, wherein the at least one memory access request is used to request the to-be-pushed data from the memory; receive and buffering the to-be-pushed data that is sent according to the at least one memory access request by the memory; and push the to-be-pushed data from a data buffer to the push destination storage. 10. The computing system according to claim 9 , wherein the push parameter further comprises storage information of the to-be-pushed data, an access step of the to-be-pushed data, and the number of times of pushing the to-be-pushed data, and wherein the operation of pushing by the memory controller comprises: generating an access address of the to-be-pushed data according to the storage information of the to-be-pushed data; generating the at least one memory access request according to the push command, the number of times of pushing the to-be-pushed data, and the access address of the to-be-pushed data; sorting the at least one memory access request in a queue; and sending the at least one memory access request to the memory according to an order in the queue. 11. The computing system according to claim 10 , wherein the to-be-pushed data comprises an array, and wherein the storage information of the to-be-pushed data comprises a start address of the array and an element size of the array. 12. The computing system according to claim 10 , wherein the to-be-pushed data comprises the linked list, and wherein the storage information of the to-be-pushed data comprises a start address of the linked list, a node size of the linked list, a position of a pointer field of the linked list, and an end mark of the linked list. 13. The computing system according to claim 10 , wherein the to-be-pushed data comprises a pointer array, and wherein the storage information of the to-be-pushed data comprises a start address of the pointer array, a size of a pointer field of the pointer array, and an element size of the pointer array. 14. The computing system according to claim 9 , wherein the memory controller is furth
Prefetching based on hints or prefetch instructions · CPC title
with prefetch · CPC title
In storage controller · CPC title
Physics · mapped topic
Details relating to cache prefetching · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.