All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Member Functions | Public Attributes | Private Types | Private Member Functions | List of all members
risc::sg::PredictionEventNotificationTable Class Reference

#include <prediction_event_notification_table.h>

Collaboration diagram for risc::sg::PredictionEventNotificationTable:
Collaboration graph

Classes

struct  Node
 

Public Member Functions

 PredictionEventNotificationTable (risc::sg::EventConflictTable &ect, PathInstanceMapper *path_instance_mapper, bool t=true)
 Creates the combined data conflict table. The maximum number of steps will be calculated automatically. More...
 
int get_max_instances (int segment_id)
 This functions returns how many instances of a given segment exist. More...
 
std::pair< int, int > index_to_segment_and_instance_id (int index)
 This function translates a given index from the conflict table into the corresponding segment id and instance id. The first value is the segment id and the second value is the instance id. More...
 
int segment_and_instance_id_to_index (int segment_id, int instance_id)
 This function translates a given segment id and instance id to a index of the conflict table. More...
 
void print_notification_table ()
 This function prints the prediction event notification table in the terminal. More...
 
void print_notification_table (std::string filename)
 This function prints the prediction event notification table in the file filename. More...
 
void print_instance_id_to_index_lookup_table ()
 This function prints the table instance_id_to_index_lookup_ table in the terminal. More...
 
void print_instance_id_to_index_lookup_table (std::string filename)
 This function prints the table instance_id_to_index_lookup_ table in the file filename. More...
 

Public Attributes

PathInstanceMapperpath_instance_mapper_
 
VertexDescriptorvertex_lookup_
 This lookup table translates segment ids into vertex descriptors. At position i is the segment with the id of instance_id_to_index_lookup_[0][i]. More...
 
int max_instances_
 This variable represents the max number of module instances in the design. Also, this is the number of rows in the instance_id_to_index_lookup_ table. More...
 
int number_of_segments_
 This variable defines how many segments exist in the segment graph. Also, this is the number of columns in the instance_id_to_index_lookup_ table. More...
 
int size_of_conflict_table_
 This variable defines the size of the conflict table. The size is quadratic. More...
 
int ** instance_id_to_index_lookup_
 This table should be used a lookup table: (segment id, instance id) -> index of conflict table. More...
 
Time ** combined_table_
 The prediction event notification table. More...
 
risc::sg::EventConflictTableect_
 Refers to the real event conflict table. More...
 
bool consider_indirect_
 Whether or not the predicition considers indirect notification: seg1 notifies seg2, seg2 then notifies seg3. If false, this not considered in prediction. Default is true. More...
 

Private Types

typedef std::pair
< VertexDescriptor, Time
SegmentTimeTuple
 

Private Member Functions

void bfs (VertexDescriptor start, int instance)
 
void compute_combined_table ()
 This function computes the combined table for 'prediction_steps_' prediction steps. More...
 

Member Typedef Documentation

Constructor & Destructor Documentation

risc::sg::PredictionEventNotificationTable::PredictionEventNotificationTable ( risc::sg::EventConflictTable ect,
PathInstanceMapper path_instance_mapper,
bool  t = true 
)

Creates the combined data conflict table. The maximum number of steps will be calculated automatically.

Member Function Documentation

risc::sg::PredictionEventNotificationTable::bfs ( VertexDescriptor  start,
int  instance 
)
private
risc::sg::PredictionEventNotificationTable::compute_combined_table ( )
private

This function computes the combined table for 'prediction_steps_' prediction steps.

risc::sg::PredictionEventNotificationTable::get_max_instances ( int  segment_id)

This functions returns how many instances of a given segment exist.

risc::sg::PredictionEventNotificationTable::index_to_segment_and_instance_id ( int  index)

This function translates a given index from the conflict table into the corresponding segment id and instance id. The first value is the segment id and the second value is the instance id.

risc::sg::PredictionEventNotificationTable::print_instance_id_to_index_lookup_table ( )

This function prints the table instance_id_to_index_lookup_ table in the terminal.

risc::sg::PredictionEventNotificationTable::print_instance_id_to_index_lookup_table ( std::string  filename)

This function prints the table instance_id_to_index_lookup_ table in the file filename.

risc::sg::PredictionEventNotificationTable::print_notification_table ( )

This function prints the prediction event notification table in the terminal.

risc::sg::PredictionEventNotificationTable::print_notification_table ( std::string  filename)

This function prints the prediction event notification table in the file filename.

risc::sg::PredictionEventNotificationTable::segment_and_instance_id_to_index ( int  segment_id,
int  instance_id 
)

This function translates a given segment id and instance id to a index of the conflict table.

Member Data Documentation

Time** risc::sg::PredictionEventNotificationTable::combined_table_

The prediction event notification table.

bool risc::sg::PredictionEventNotificationTable::consider_indirect_

Whether or not the predicition considers indirect notification: seg1 notifies seg2, seg2 then notifies seg3. If false, this not considered in prediction. Default is true.

risc::sg::EventConflictTable& risc::sg::PredictionEventNotificationTable::ect_

Refers to the real event conflict table.

int** risc::sg::PredictionEventNotificationTable::instance_id_to_index_lookup_

This table should be used a lookup table: (segment id, instance id) -> index of conflict table.

int risc::sg::PredictionEventNotificationTable::max_instances_

This variable represents the max number of module instances in the design. Also, this is the number of rows in the instance_id_to_index_lookup_ table.

int risc::sg::PredictionEventNotificationTable::number_of_segments_

This variable defines how many segments exist in the segment graph. Also, this is the number of columns in the instance_id_to_index_lookup_ table.

PathInstanceMapper* risc::sg::PredictionEventNotificationTable::path_instance_mapper_
int risc::sg::PredictionEventNotificationTable::size_of_conflict_table_

This variable defines the size of the conflict table. The size is quadratic.

VertexDescriptor* risc::sg::PredictionEventNotificationTable::vertex_lookup_

This lookup table translates segment ids into vertex descriptors. At position i is the segment with the id of instance_id_to_index_lookup_[0][i].


The documentation for this class was generated from the following files: