Call-chain Software Instruction Prefetching in J2EE Server Applications

Priya Nagpurkar1,  Harold Cain2,  Mauricio Serrano2,  Jong-Deok Choi2,  Chandra Krintz1
1University of California, Santa Barbara, 2IBM T.J. Watson Research Center


We present a detailed characterization of instruction cache performance for IBM’s J2EE-enabled webserver, WebSphere Application Server (WAS). When running two J2EE benchmarks on WebSphere, we find that instruction cache misses cause a 12% performance penalty on current-generation Power5-based multiprocessor systems. To mitigate this performance loss, we describe a new call-chain based algorithm for inserting software prefetch instructions, and evaluate its potential for improved instruction cache performance. The performance of this algorithm depends on the selection of several independent parameters which control the distance and number of prefetches inserted for a particular method. Through characterization of the Web-Sphere applications, we select these parameters, and ultimately find that our call-chain based insertion algorithm achieves significant reduction in instruction cache miss rate for Java methods.