1. A method of operating a hierarchical memory system, comprising: determining if requested data is available in a first cache level of the hierarchical memory system in response to receiving a request; determining if the requested data is available in a second cache level of the hierarchical memory system; obtaining a line of data containing the requested data from a higher level of the hierarchical memory system if the requested data is not available in either the first cache level or in the second cache level; and allocating the line of data to both the first cache level and to the second cache level simultaneously.