Transactional Memory (TM) systems must track the read and write sets-items read and written during a transaction-to detect conflicts among concurrent transactions. Several TMs use signatures, which summarize unbounded read/write sets in bounded hardware at a performance cost of false positives (conflicts detected when none exists). This paper examines different organizations to achieve hardware-efficient and accurate TM signatures. First, we find that implementing each signature with a single k-hashfunction Bloom filter (True Bloom signature) is inefficient, as it requires multi-ported SRAMs. Instead, we advocate using k single-hash-function Bloom filters in parallel (Parallel Bloom signature), using area-efficient single-ported SRAMs. Our formal analysis shows that both organizations perform equally well in theory and our simulationbased evaluation shows this to hold approximately in practice. We also show that by choosing high-quality hash functions we can achieve signature designs noticeably more accurate than the previously proposed implementations. Finally, we adapt Pagh and Rodler's cuckoo hashing to implement Cuckoo-Bloom signatures. While this representation does not support set intersection, it mitigates false positives for the common case of small read/write sets and performs like a Bloom filter for large sets.
As a hardware-efficient alternative to regular Bloom filters, Sanchez et al. REF proposed the parallel Bloom filter implementation.
Implementing Signatures for Transactional Memory
40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007)
40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007)
Computer Science