Data processing systems and methods for controlling storage of input data values for use by an executing unit
AssigneeArm Limited
InventorsDaren Croxford, Sharjeel Saeed, Isidoros Sideris
Life of this patent
Estimating the term…
Abstract
Data processing systems comprising a data processor, the data processor comprising an execution unit and storage for storing input data values for use by and/or output data values generated by the execution unit when executing instructions to perform data processing operations, and methods of control thereof, in which control of storage of data values for data source(s) of the storage is based on indication(s), in instruction(s) requiring use of data source(s) for a data processing operation, that one or more data values in the data source(s) are no longer required to be retained.
Claims20
A method of operating a data processing system, the data processing system comprising:
- a data processor, the data processor comprising:
- an execution unit configured to execute instructions in a program to be executed to perform data processing operations for execution threads executing the program;
- and
- storage configured to store input data values for use by the execution unit when executing an instruction to perform a data processing operation for an execution thread and to store output data values generated by the execution unit when performing a data processing operation for an instruction being executed by an execution thread;
- the method comprising:
- the execution unit of the data processor executing an instruction indicating one or more data sources of the storage for use when performing a data processing operation, the instruction further more including an indication that one or more data values in a data source of the one or more indicated data sources are no longer required to be retained in said data source:
- controlling storage of data values in the storage based on the indication in the instruction that one or more data values in a data source of the one or more indicated data sources are no longer required to be retained in said data source;
- and
- wherein each data source which is controlled based on indications that one or more data values are no longer required to be retained has associated metadata indicating a memory access pattern for loading data values from memory into the data source or for storing data values to memory from the data source, wherein the memory access pattern is permitted to differ between different data sources.
A data processing system, the data processing system comprising:
- a data processor, the data processor comprising:
- an execution unit configured to execute instructions in a program to be executed to perform data processing operations for execution threads executing the program;
- and
- storage configured to store data values for use by the execution unit when executing an instruction to perform a data processing operation for an execution thread and to store output data values generated by the execution unit when performing a data processing operation for an instruction being executed by an execution thread;
- the data processing system further comprising a processing circuit configured to:
- in response to the execution unit of the data processor executing an instruction indicating one or more data sources of the storage for use when performing a data processing operation, and the instruction furthermore including an indication that one or more data values in a data source of the one or more indicated data sources are no longer required to be retained in said data source:
- control storage of data values in the storage based on the indication in the instruction that one or more data values in a data source of the one or more indicated data sources are no longer required to be retained in said data source;
- wherein each data source which is controlled based on indications that one or more data values are no longer required to be retained has associated metadata indicating a memory access pattern for loading data values from memory into the data source or for storing data values to memory from the data source, wherein the memory access pattern is permitted to differ between different data sources.
A method of compiling a program to generate instructions for a data processor in which execution threads may execute program instructions to perform data processing operations, the data processor comprising:
- an execution unit configured to execute instructions in a program to be executed to perform data processing operations for execution threads executing the program;
- and
- storage configured to store input data values for use by the execution unit when executing an instruction to perform a data processing operation for an execution thread and to store output data values generated by the execution unit when performing a data processing operation for an instruction being executed by an execution thread;
- the method comprising:
- including in one or more instructions in the program to be executed an indication of one or more data sources of the storage for use by the execution unit when performing a data processing operation, and also including an indication that one or more data values in a data source of the one or more indicated data sources are no longer required to be retained in said data source;
- wherein each data source indicated in the one or more instructions along with an indication that one or more data values are no longer required to be retained in the data source, has associated metadata indicating a memory access pattern for loading data values from memory into the data source or for storing data values to memory from the data source, wherein the memory access pattern is permitted to differ between different data sources.
A method of operating a data processing system, the data processing system comprising:
- a data processor, the data processor comprising:
- an execution unit configured to execute instructions in a program to be executed to perform data processing operations for execution threads executing the program;
- and
- storage configured to store input data values for use by the execution unit when executing an instruction to perform a data processing operation for an execution thread, and to store output data values generated by the execution unit when performing a data processing operation for an instruction being executed by an execution thread;
- wherein the data processing system is configured to control storage of data values in the storage according to plural different control procedures;
- the method comprising:
- the execution unit of the data processor executing an instruction indicating a data source of the storage for use when performing a data processing operation, and indicating which of the plural different control procedures is to be used for controlling storage of data values in the data source:
- the data processing system controlling storage of data values in the data source based on the indication of which of the plural different control procedures is to be used for controlling storage of data values;
- and
- wherein each data source which is controlled based on indications that one or more data values are no longer required to be retained has associated metadata indicating a memory access pattern for loading data values from memory into the data source or for storing data values to memory from the data source, wherein the memory access pattern is permitted to differ between different data sources.
Dependencies are inferred from the claim text.