An apparatus for cache associativity, comprising: a cache memory; a byte addressable non-volatile memory; and a cache manager configured to: determine a direct mapped cache location in the cache memory from a target address in the non-volatile memory; write the data for the target address at an available cache location in the cache memory different from the direct mapped cache location in response to the direct mapped cache location storing data for another address in the non-volatile memory; and write the data for the target address in the direct mapped cache location in response to the direct mapped cache location not storing data for another address in the non-volatile memory; characterised in that the cache manager is further configured to: map each address from the non-volatile memory to a set of a plurality of sets of cache locations in the cache memory; map each address from the non-volatile memory to one of the sets; write the data for the target address to an available cache location in the set of cache locations to which the target address maps; and indicate in remapping information at least a portion of the target address and the available cache location in the cache memory, different from the direct mapped cache location, at which the data for the target address was written. a cache memory; a byte addressable non-volatile memory; and a cache manager configured to: determine a direct mapped cache location in the cache memory from a target address in the non-volatile memory; write the data for the target address at an available cache location in the cache memory different from the direct mapped cache location in response to the direct mapped cache location storing data for another address in the non-volatile memory; and write the data for the target address in the direct mapped cache location in response to the direct mapped cache location not storing data for another address in the non-volatile memory; determine a direct mapped cache location in the cache memory from a target address in the non-volatile memory; write the data for the target address at an available cache location in the cache memory different from the direct mapped cache location in response to the direct mapped cache location storing data for another address in the non-volatile memory; and write the data for the target address in the direct mapped cache location in response to the direct mapped cache location not storing data for another address in the non-volatile memory; characterised in that the cache manager is further configured to: map each address from the non-volatile memory to a set of a plurality of sets of cache locations in the cache memory; map each address from the non-volatile memory to one of the sets; write the data for the target address to an available cache location in the set of cache locations to which the target address maps; and map each address from the non-volatile memory to a set of a plurality of sets of cache locations in the cache memory; map each address from the non-volatile memory to one of the sets; write the data for the target address to an available cache location in the set of cache locations to which the target address maps; and indicate in remapping information at least a portion of the target address and the available cache location in the cache memory, different from the direct mapped cache location, at which the data for the target address was written.