Computer Science and Information Systems 2011 Volume 8, Issue 3, Pages: 653-671
https://doi.org/10.2298/CSIS100327022M
Full text ( 239 KB)
Code cache management based on working set in dynamic binary translator
Ma Ruhui (Shanghai key laboratory of scalable computing and systems, Department of Computer Science and Engineering, Shanghai Jiao Tong University, Shanghai, China)
Guan Haibing (Shanghai key laboratory of scalable computing and systems, Department of Computer Science and Engineering, Shanghai Jiao Tong University, Shanghai, China)
Zhu Erzhou (Shanghai key laboratory of scalable computing and systems, Department of Computer Science and Engineering, Shanghai Jiao Tong University, Shanghai, China)
Gao Yongqiang (Shanghai key laboratory of scalable computing and systems, Department of Computer Science and Engineering, Shanghai Jiao Tong University, Shanghai, China)
Liang Alei (Shanghai key laboratory of scalable computing and systems, Department of Computer Science and Engineering, Shanghai Jiao Tong University, Shanghai, China)
Software code cache employed to store translated or optimized codes,
amortizes the overhead of dynamic binary translation via reusing of
stored-altered copies of original program instructions. Though many
conventional code cache managements, such as Flush, Least-Recently Used
(LRU), have been applied on some classic dynamic binary translators, actually
they are so unsophisticated yet unadaptable that it not only brings
additional unnecessary overhead, but also wastes much cache space, since
there exist several noticeable features in software code cache, unlike pages
in memory. Consequently, this paper presents two novel alternative cache
schemes-SCC (Static Code Cache) and DCC (Dynamic Code Cache) based on working
set. In these new schemes, we utilize translation rate to judge working set.
To evaluate these new replacement policies, we implement them on dynamic
binary translator-CrossBit with several commonplace code cache managements.
Through the experiment results based on benchmark SPECint 2000, we achieve
better performance improvement and cache space utilization ratio.
Keywords: code cache management, working set, replacement strategy, code block, bounded code cache