1. A method of managing a cache, comprising: partitioning the cache into a locked cache portion and a normal cache portion, wherein the contents of the normal cache portion is controlled by a hardware replacement algorithm; locking the locked cache portion so that the hardware replacement algorithm cannot change the contents of the locked cache portion; and using software to control the contents of each block in the locked cache portion.