Method and apparatus for pushing memory data

US9632938B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9632938-B2
Application numberUS-201514680262-A
CountryUS
Kind codeB2
Filing dateApr 7, 2015
Priority dateOct 10, 2012
Publication dateApr 25, 2017
Grant dateApr 25, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9632938B2 cover?
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 ac…
Who is the assignee on this patent?
Huawei Tech Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06F12/0862. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 25 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).