A computer readable medium for storing data, said computer readable medium containing program instructions that, when loaded into a processor, cause the processor to perform the steps of
- staring a plurality of data packets in a memory, the data packets being associated with a plurality of data types;
- receiving requests for data packets from a processing unit with a memory controller coupled to the memory and passing requested data packets from the memory to the processing unit;
- and
- passing requested data packets from the memory to a cache and passing requested data packets from the cache to the processing unit in response to subsequent data packet requests from the processing unit to the memory controller, the cache comprising a plurality of independently cached areas;
- assigning each independently cached area in the cache to store data packets associated with one data type, each independently cached area being associated with a data usage indicator;
- incrementing the data usage indicator of an independently cached area for each data packet passed from that independently cached area to the processing unit in response to a subsequent data packet request;
- and
- decrementing the data usage indicators of other independently cached areas.