bulk_bloom_filter.hh revision 14262:991410960fdb
12810Srdreslin@umich.edu/* 22810Srdreslin@umich.edu * Copyright (c) 2019 Inria 32810Srdreslin@umich.edu * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 42810Srdreslin@umich.edu * All rights reserved. 52810Srdreslin@umich.edu * 62810Srdreslin@umich.edu * Redistribution and use in source and binary forms, with or without 72810Srdreslin@umich.edu * modification, are permitted provided that the following conditions are 82810Srdreslin@umich.edu * met: redistributions of source code must retain the above copyright 92810Srdreslin@umich.edu * notice, this list of conditions and the following disclaimer; 102810Srdreslin@umich.edu * redistributions in binary form must reproduce the above copyright 112810Srdreslin@umich.edu * notice, this list of conditions and the following disclaimer in the 122810Srdreslin@umich.edu * documentation and/or other materials provided with the distribution; 132810Srdreslin@umich.edu * neither the name of the copyright holders nor the names of its 142810Srdreslin@umich.edu * contributors may be used to endorse or promote products derived from 152810Srdreslin@umich.edu * this software without specific prior written permission. 162810Srdreslin@umich.edu * 172810Srdreslin@umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 182810Srdreslin@umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 192810Srdreslin@umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 202810Srdreslin@umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 212810Srdreslin@umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 222810Srdreslin@umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 232810Srdreslin@umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 242810Srdreslin@umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 252810Srdreslin@umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 262810Srdreslin@umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 272810Srdreslin@umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 282810Srdreslin@umich.edu * 292810Srdreslin@umich.edu * Authors: Daniel Carvalho 302810Srdreslin@umich.edu */ 312810Srdreslin@umich.edu 322810Srdreslin@umich.edu#ifndef __BASE_FILTERS_BULK_BLOOM_FILTER_HH__ 332810Srdreslin@umich.edu#define __BASE_FILTERS_BULK_BLOOM_FILTER_HH__ 342810Srdreslin@umich.edu 352810Srdreslin@umich.edu#include "base/filters/base.hh" 366216Snate@binkert.org 372810Srdreslin@umich.edustruct BloomFilterBulkParams; 382810Srdreslin@umich.edu 392810Srdreslin@umich.edunamespace BloomFilter { 402814Srdreslin@umich.edu 416216Snate@binkert.org/** 422810Srdreslin@umich.edu * Implementation of the bloom filter, as described in "Bulk Disambiguation of 432810Srdreslin@umich.edu * Speculative Threads in Multiprocessors", by Ceze, Luis, et al. 442810Srdreslin@umich.edu */ 459288Sandreas.hansson@arm.comclass Bulk : public Base 466978SLisa.Hsu@amd.com{ 472810Srdreslin@umich.edu public: 482810Srdreslin@umich.edu Bulk(const BloomFilterBulkParams* p); 492810Srdreslin@umich.edu ~Bulk(); 502810Srdreslin@umich.edu 512810Srdreslin@umich.edu void set(Addr addr) override; 522810Srdreslin@umich.edu 532810Srdreslin@umich.edu bool isSet(Addr addr) const override; 542810Srdreslin@umich.edu int getCount(Addr addr) const override; 552810Srdreslin@umich.edu 562810Srdreslin@umich.edu private: 572810Srdreslin@umich.edu /** Permutes the address to generate its signature. */ 582810Srdreslin@umich.edu Addr hash(Addr addr) const; 592810Srdreslin@umich.edu 602810Srdreslin@umich.edu // split the filter bits in half, c0 and c1 612810Srdreslin@umich.edu const int sectorBits; 622810Srdreslin@umich.edu}; 632810Srdreslin@umich.edu 642810Srdreslin@umich.edu} // namespace BloomFilter 652810Srdreslin@umich.edu 662810Srdreslin@umich.edu#endif // __BASE_FILTERS_BULK_BLOOM_FILTER_HH__ 676978SLisa.Hsu@amd.com