An apparatus and method for loading data values from a memory
system are provided. The
data processing apparatus comprises a
data processing unit operable to execute instructions, and a
register file having a plurality of registers operable to store data values accessible by the
data processing unit when executing the instructions. Further, a holding register is provided which does not form one of a
working set of registers of the
register file, and is operable to temporarily store a
data value, the holding register having a data portion for storing the
data value, and an identifier portion operable to store identifier data associated with the
data value. The data
processing unit is then responsive to a preload instruction to issue a preload memory access request to a memory
system to cause a data value identified by the preload instruction to be located in the memory
system, and dependent on predetermined criteria to cause a copy of that data value along with associated identifier data to be loaded from the memory system into the holding register. Furthermore, the data
processing unit is responsive to a
load instruction to cause a comparison operation to be performed to determine whether identifier data derived from the
load instruction matches the identifier data in the identifier portion of the holding register. If it does, the data value stored in the holding register is made available to the data
processing unit without requiring a memory access request to be issued to the memory system. Only in the event of there being no match does the memory access request get issued to the memory system to cause a data value identified by the
load instruction to be made available to the data processing unit from the memory system.