A Segmented Bloom Filter Algorithm for Efficient Predictors
Resumo
Bloom Filters are a technique to reduce the effects of conflicts/interference in hash table-like structures. Conventional hash tables store information in a single location which is susceptible to destructive interference through hash conflicts. A Bloom Filter uses multiple hash functions to store information in several locations, and recombines the information through some voting mechanism. Many microarchitectural predictors use simple single-index hash tables to make binary 0/1 predictions, and Bloom Filters help improve predictor accuracy. However, implementing a true Bloom Filter requires k hash functions, which in turn implies a k-ported hash table, or k sequential accesses. Unfortunately,the area of a hardware table increases quadratically with the port count, increasing costs of area, latency and power consumption. We propose a simple but elegant modification to the Bloom Filter algorithm that uses banking combined with special hash functions that guarantee all hash indexes fall into non-conflicting banks. We evaluate several applications of our Banked Bloom Filter (BBF) prediction in processors: BBF branch prediction, BBF load hit/miss prediction, and BBF last-tag prediction. We show that BBF predictors can provide accurate predictions with substantially less cost than previous techniques.
Palavras-chave:
Prediction algorithms, Interference, Costs, Information filtering, Information filters, Voting, Microarchitecture, Accuracy, Hardware, Delay, Bloom Filters, predictors, speculation, banking
Publicado
29/10/2008
Como Citar
BRETERNITZ, M.; LOH, Gabriel H.; BLACK, Bryan; RUPLEY, Jeffrey; SASSONE, Peter G.; ATTROT, Wesley; WU, Youfeng.
A Segmented Bloom Filter Algorithm for Efficient Predictors. In: INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING (SBAC-PAD), 20. , 2008, Campo Grande/MS.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2008
.
p. 123-130.
