Practical Temporal Prefetching With Compressed On-Chip Metadata