Patent ID: 8250346

Claim:
Apparatus for processing data, said apparatus comprising: processing circuitry, responsive to a stream of program instructions having a program order running from old to young, configured to perform a corresponding stream of data processing operations, at least some of said data processing operations writing one or more values to at least a portion of a data granule; a register store having a plurality of registers, each of said registers configured to store a data granule written in dependence upon said data processing operations; register renaming circuitry, responsive to a program instruction of said stream of program instructions specifying a data processing operation, configured to identify a destination register to store a data granule that is an output operand of said data processing operation; and rename table circuitry, coupled to said register renaming circuitry and responsive to identification of said destination register, configured to store tag data identifying which of said plurality of registers is said destination register storing a latest copy of said data granule, said processing circuitry is responsive to said tag data and configured to identify a source register currently associated with an oldest up-to-date copy of one or more values that are an input operand of a younger program instruction within said stream of program instruction; wherein different groups of data processing operations set different values within said data granule, said tag data comprises a plurality of tag values for at least one data granule, different tag values tracking writes to differing subsets of values of said data granule and each tag value identifying a respective one of said plurality of registers, and said rename table circuitry is responsive to said data processing operation to determine which of values of said data granule are updated values written by said data processing operation and is configured (i) to store tag values identifying said destination register as storing at least one of said updated values to those tag values of said plurality of tag values tracking writes to at least one of said updated values; and (ii) to leave those tag values of said plurality of tag values not tracking writes to at least one of said updated values as identifying respective destination registers storing values set by one or more preceding processing operations.