Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

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