Title
STREX: boosting instruction cache reuse in OLTP workloads through stratified transaction execution
Abstract
Online transaction processing (OLTP) workload performance suffers from instruction stalls; the instruction footprint of a typical transaction exceeds by far the capacity of an L1 cache, leading to ongoing cache thrashing. Several proposed techniques remove some instruction stalls in exchange for error-prone instrumentation to the code base, or a sharp increase in the L1-I cache unit area and power. Others reduce instruction miss latency by better utilizing a shared L2 cache. SLICC [2], a recently proposed thread migration technique that exploits transaction instruction locality, is promising for high core counts but performs sub-optimally or may hurt performance when running on few cores. This paper corroborates that OLTP transactions exhibit significant intra- and inter-thread overlap in their instruction footprint, and analyzes the instruction stall reduction benefits. This paper presents STREX, a hardware, programmer-transparent technique that exploits typical transaction behavior to improve instruction reuse in first level caches. STREX time-multiplexes the execution of similar transactions dynamically on a single core so that instructions fetched by one transaction are reused by all other transactions executing in the system as much as possible. STREX dynamically slices the execution of each transaction into cache-sized segments simply by observing when blocks are brought in the cache and when they are evicted. Experiments show that, when compared to baseline execution on 2--16 cores, STREX consistently improves performance while reducing the number of L1 instruction and data misses by 37% and 14% on average, respectively. Finally, this paper proposes a practical hybrid technique that combines STREX and SLICC, thereby guaranteeing performance benefits regardless of the number of available cores and the workload's footprint.
Year
DOI
Venue
2013
10.1145/2485922.2485946
ISCA
Keywords
Field
DocType
oltp workloads,instruction reuse,stratified transaction execution,instruction cache reuse,l1 instruction,typical transaction,transaction instruction locality,oltp transaction,online transaction processing,typical transaction behavior,instruction footprint,l1 cache,instruction stall,oltp
Single-core,CPU cache,Computer science,Cache,Reuse,Parallel computing,Online transaction processing,Thread (computing),Real-time computing,Thrashing,Database transaction,Operating system
Conference
Volume
Issue
ISSN
41
3
0163-5964
Citations 
PageRank 
References 
10
0.50
14
Authors
5
Name
Order
Citations
PageRank
Islam Atta1312.58
Pinar Tözün213911.48
Xin Tong3392.27
Anastasia Ailamaki44178349.12
Andreas Moshovos51863141.95