Cache and Memory Hierarchy Design: A Performance Directed Approach (The Morgan Kaufmann Series in Computer Architecture and Design)