Analyzing replacement policies in list-based caches with non-uniform access costs