Segment load and stores
AssigneeImagination Technologies Limited
InventorPeter Vrabel
Life of this patent
Estimating the term…
Abstract
Segment load operations are performed by processing data through an anything-to-anything mux, and sections writing elements to respective storage locations based on corresponding indices of the elements and the storage locations. Once all of the elements are loaded into the correct storage location, each location is read again with the elements of that storage location being sent through the mux, arranged) into the correct order, and written back to the same register.
Claims20
A computer-implemented method of loading data from memory into register-based storage of a processing system, wherein the data is stored in the memory as interleaved elements, each element belonging to one of a plurality of segments, each element representing a respective data type, wherein each element is associated with a respective element index based on the respective data type of the respective element, and wherein each element is associated with a respective position based on an ordering of the data, wherein the register-based storage comprises a plurality of result entries, wherein each result entry is associated with a respective entry index, each entry having a same size, and wherein the processing system comprises a byte-wise anything-to-anything mux and a load entry for temporarily storing data, and wherein the method comprises:
- for each of a plurality of respective data subsets of the data, each data subset being the same size as the entries and comprising one or more elements:
- loading the respective data subset from memory into the load entry;
- inputting each element of the respective data subset into the mux;
- and
- outputting each element of the respective data subset to a respective result entry having a respective entry index corresponding to a respective element index of the respective element, wherein each element is output to a respective available slot of the respective result entry, wherein said outputting results in each result entry comprising elements having a same respective element index;
- and
- for each result entry:
- inputting each element stored in the respective result entry into the mux;
- and
- outputting each element to the respective result entry at a respective slot of the respective result entry based on the respective position of the respective element.
A processing system comprising memory, register-based storage, a byte-wise anything-to-anything mux, and a load entry for temporarily storing data, wherein the register-based storage comprises a plurality of result entries, wherein each result entry is associated with a respective entry index, each entry having a same size, wherein the processing system is configured to load data from memory into the register-based storage, wherein the data is stored in the memory as interleaved elements, each element belonging to one of a plurality of segments, each element representing a respective data type, wherein each element is associated with a respective element index based on the respective data type of the respective element, and wherein each element is associated with a respective position based on an ordering of the data, and wherein the processing system is configured to:
- for each of a plurality of respective data subsets of the data, each data subset being the same size as the entries and comprising one or more elements:
- load the respective data subset from memory into the load entry;
- input each element of the respective data subset into the mux;
- and
- output each element of the respective data subset to a respective result entry having a respective entry index corresponding to a respective element index of the respective element, wherein each element is output to a respective available slot of the respective result entry, wherein said outputting results in each result entry comprising elements having a same respective element index;
- and
- for each result entry:
- input each element stored in the respective result entry into the mux;
- and
- output each element to the respective result entry at a respective slot of the respective result entry based on the respective position of the respective element.
A computer-implemented method of storing data into memory from register-based storage of a processing system, wherein the data is to be stored in the memory as interleaved elements, each element belonging to one of a plurality of segments, each element representing a respective data type, wherein each element is associated with a respective segment index based on the respective segment to which the respective element belongs, and wherein each element is associated with a respective position based on an ordering of the data, wherein the register-based storage comprises a plurality of result entries and a plurality of source registers, wherein each result entry is associated with a respective entry index, each entry having a same size, wherein each source register comprises a plurality of respective elements each associated with a same respective element index and ordered based on the respective position of the respective element, wherein the processing system comprises a byte-wise anything-to-anything mux, and wherein the method comprises:
- for each source register:
- inputting each element of the respective source register into the mux;
- and
- outputting each element of the respective source register to a respective result entry having a respective entry index corresponding to a respective segment index of the respective element, wherein each element is output to a respective available slot of the respective result entry, and wherein said outputting results in each result entry comprising elements having a same respective segment index;
- and
- for each result entry:
- inputting each element stored in the respective result entry into the mux;
- and
- outputting each element to the respective result entry at a respective slot of the respective result entry based on the respective position of the respective element.
A processing system comprising memory, register-based storage and a byte-wise anything-to-anything mux, wherein the register-based storage comprises a plurality of result entries and a plurality of source registers, wherein each result entry is associated with a respective entry index, each entry having a same size, wherein the processing system is configured to store data to memory from the register-based storage, wherein the data is to be stored in the memory as interleaved elements, each element belonging to one of a plurality of segments, each element representing a respective data type, wherein each element is associated with a respective segment index based on the respective segment to which the respective element belongs, and wherein each element is associated with a respective position based on an ordering of the data, and wherein the processing system is configured to:
- for each source register:
- input each element of the respective source register into the mux;
- and
- output each element of the respective source register to a respective result entry having a respective entry index corresponding to a respective segment index of the respective element, wherein each element is output to a respective available slot of the respective result entry, and wherein said outputting results in each result entry comprising elements having a same respective segment index;
- and
- for each result entry:
- input each element stored in the respective result entry into the mux;
- and
- output each element to the respective result entry at a respective slot of the respective result entry based on the respective position of the respective element.
Dependencies are inferred from the claim text.