fix bug: cache size bigger than a block