Encapsulates asynchronous prefetching engine.
More...
#include <block_prefetcher.h>
List of all members.
Public Member Functions |
| block_prefetcher (bid_iterator_type _cons_begin, bid_iterator_type _cons_end, int_type *_pref_seq, int_type _prefetch_buf_size, completion_handler do_after_fetch=default_completion_handler()) |
| Constructs an object and immediately starts prefetching.
|
block_type * | pull_block () |
| Pulls next unconsumed block from the consumption sequence.
|
bool | block_consumed (block_type *&buffer) |
| Exchanges buffers between prefetcher and application.
|
bool | empty () const |
unsigned_type | pos () const |
| ~block_prefetcher () |
| Frees used memory.
|
Protected Member Functions |
block_type * | wait (int_type iblock) |
Protected Attributes |
bid_iterator_type | consume_seq_begin |
bid_iterator_type | consume_seq_end |
unsigned_type | seq_length |
int_type * | prefetch_seq |
unsigned_type | nextread |
unsigned_type | nextconsume |
const int_type | nreadblocks |
block_type * | read_buffers |
request_ptr * | read_reqs |
bid_type * | read_bids |
onoff_switch * | completed |
int_type * | pref_buffer |
completion_handler | do_after_fetch |
Detailed Description
template<typename block_type, typename bid_iterator_type>
class block_prefetcher< block_type, bid_iterator_type >
Encapsulates asynchronous prefetching engine.
block_prefetcher
overlaps I/Os with consumption of read data. Utilizes optimal asynchronous prefetch scheduling (by Peter Sanders et.al.)
Constructor & Destructor Documentation
template<typename block_type , typename bid_iterator_type >
Constructs an object and immediately starts prefetching.
- Parameters:
-
_cons_begin | bid_iterator pointing to the bid of the first block to be consumed |
_cons_end | bid_iterator pointing to the bid of the ( last + 1 ) block of consumption sequence |
_pref_seq | gives the prefetch order, is a pointer to the integer array that contains the indices of the blocks in the consumption sequence |
_prefetch_buf_size | amount of prefetch buffers to use |
template<typename block_type , typename bid_iterator_type >
Member Function Documentation
template<typename block_type , typename bid_iterator_type >
bool block_prefetcher< block_type, bid_iterator_type >::block_consumed |
( |
block_type *& |
buffer | ) |
|
|
inline |
template<typename block_type , typename bid_iterator_type >
The documentation for this class was generated from the following file: