Address Range Based Memory Hints for Prefetcher, Cache and Memory Controller
US-2024385966-A1 · Nov 21, 2024 · US
US9836408B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9836408-B2 |
| Application number | US-201514885830-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 16, 2015 |
| Priority date | Nov 28, 2014 |
| Publication date | Dec 5, 2017 |
| Grant date | Dec 5, 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 data processing method, a computer readable medium, and a data processing device capable of improving processing efficiency are provided. A storage destination of sub-read blocks is changed to a high-speed small-capacity memory on a high layer by adding a shape attribute in an attribute group for data blocks, adding a memory access monitoring unit for obtaining the shape attribute of a data block to the configuration of a data processing device, obtaining the shape attribute of the non-rectangular read block by executing a program on a trial basis, and propagating this shape attribute in a direction opposite to a data flow or a process flow within the program.
Opening claim text (preview).
What is claimed is: 1. A data processing method for a data processing device, the data processing device comprising: a program execution unit comprising a processor, and memories on a plurality of layers; an arithmetic control unit that receives a program and attribute values, the program including a plurality of subroutines for causing the processor to read a read block from the memory, perform data processing, and write a write block to the memory, the write block being a result of the data processing, the attribute values being set for the read block and the write block, respectively; and a memory access monitoring unit, the data processing method comprising: a step of executing, by the program execution unit, the program; a step of monitoring, by the memory access monitoring unit, a memory transfer of a data block or a sub-data block whose shape attribute value is a non-rectangle performed between the sub-routines and outputting memory access information related to the memory transfer to the arithmetic control unit; and a step, performed by the arithmetic control unit, of: calculating a shape attribute value by converting a read address or a write address of the data block based on the memory access information; correcting an attribute value by propagating the attribute value including at least the calculated shape attribute value in a direction opposite to a data flow or a process flow within the program; dividing, for each data block exchanged between the subroutines, the data block into sub-data blocks when the attribute value and performance/configuration information of the processor and the memory satisfy a predetermined condition; selecting a memory from which the sub-data blocks are read or to which the sub-data blocks are written from among the memories on the plurality of layers; and controlling memory access to the data block or the sub-data blocks and execution of a subroutine related to the data block performed by the processor. 2. The data processing method according to claim 1 , wherein the arithmetic control unit propagates the attribute value including at least the calculated shape attribute value in the direction opposite to the data flow or the process flow within the program and thereby corrects the attribute value only when, for each data block exchanged between the subroutines, the attribute value and performance/configuration information of the processor and the memory do not satisfy the predetermined condition. 3. The data processing method according to claim 1 , wherein the program comprises a first subroutine and a second subroutine, the second subroutine being executed after the first subroutine, a first attribute value is set in the data block of the first subroutine, a second attribute value is set in the data block of the second subroutine, the second attribute value being related to the same attribute as that of the first attribute value, and when an attribute value is corrected, a logical sum or a logical multiplication of the first and second attribute values is calculated and the calculated logical sum or the logical multiplication is defined as a new first attribute value. 4. The data processing method according to claim 1 , wherein the attribute value further includes a shape dependence attribute value, the shape dependence attribute value, when set for the first data block, indicates the second data block on which a shape of that first data block is dependent, and the data processing method further comprises: a step of monitoring, by the memory access monitoring unit, an update of the second data block and outputting information about the update to the arithmetic control unit; and a step of resetting, by the arithmetic control unit, the shape attribute value of the data block including at least the first data block based on the information about the update. 5. A non-transitory computer readable medium storing a program for causing the data processing device to execute each step of a data processing method for a data processing device, the data processing device comprising: a program execution unit comprising a processor, and memories on a plurality of layers; an arithmetic control unit that receives a program and attribute values, the program including a plurality of subroutines for causing the processor to read a read block from the memory, perform data processing, and write a write block to the memory, the write block being a result of the data processing, the attribute values being set for the read block and the write block, respectively; and a memory access monitoring unit, the data processing method comprising: a step of executing, by the program execution unit, the program; a step of monitoring, by the memory access monitoring unit, a memory transfer of a data block or a sub-data block whose shape attribute value is a non-rectangle performed between the sub-routines and outputting memory access information related to the memory transfer to the arithmetic control unit; and a step, performed by the arithmetic control unit, of: calculating a shape attribute value by converting a read address or a write address of the data block based on the memory access information; correcting an attribute value by propagating the attribute value including at least the calculated shape attribute value in a direction opposite to a data flow or a process flow within the program; dividing, for each data block exchanged between the subroutines, the data block into sub-data blocks when the attribute value and performance/configuration information of the processor and the memory satisfy a predetermined condition; selecting a memory from which the sub-data blocks are read or to which the sub-data blocks are written from among the memories on the plurality of layers; and controlling memory access to the data block or the sub-data blocks and execution of a subroutine related to the data block performed by the processor. 6. A data processing device comprising: a program execution unit comprising a processor, and memories on a plurality of layers; an arithmetic control unit that receives a program and attribute values, the program including a plurality of subroutines for causing the processor to read a read block from the memory, perform data processing, and write a write block to the memory, the write block being a result of the data processing, the attribute values being set for the read block and the write block, respectively; and a memory access monitoring unit, wherein the program execution unit executes the program, the memory access monitoring unit monitors a memory transfer of a data block or a sub-data block whose shape attribute value is a non-rectangle performed between the sub-routines and outputs memory access information related to the memory transfer to the arithmetic control unit, and the arithmetic control unit: calculates a shape attribute value by converting a read address or a write address of the data block based on the memory access information; corrects an attribute value by propagating the attribute value including at least the calculated shape attribute value in a direction opposite to a data flow or a process flow within the program; divides, for each data block exchanged between the subroutines, the data block into sub-data blocks when the attribute value and performance/configuration information of the processor and the memory satisfy a predetermined condition; selects a memory from which the sub-data blocks are read or to which the sub-data blocks are written from among the memories on the plurality of layers; and controls memory access to the data block or the sub-data blocks and execution of a subroutine related to the data block performed by the processor.
Performance improvement · CPC title
Compilation · CPC title
with two or more cache hierarchy levels (with multilevel cache hierarchies G06F12/0811) · CPC title
Pointers; Aliasing · CPC title
Register allocation; Assignment of physical memory space to logical memory space · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.