Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

VLIW Class Reference

#include <vliw.h>

List of all members.

Public Member Functions

 VLIW ()
 VLIW (A_Proc *a_proc, Op_Hashed_Table *op_hashed_table)
 ~VLIW ()
void init (int issue_width)
void output (FILE *f)
void print (FILE *f)
bool process_pipeline (Multi_Op *mop)
bool is_register_ready (Register *my_register, int reg_num)
bool check_bypass (int op_id_mapping, int reg_num)
bool check_macro_bypass (int op_id_mapping, int reg_num)
void drain_pipeline ()
 VLIW ()
 VLIW (A_Proc *a_proc, Op_Hashed_Table *op_hashed_table)
 ~VLIW ()
void init (int issue_width)
void output (FILE *f)
void print (FILE *f)
bool process_pipeline (Multi_Op *mop)
bool is_register_ready (Register *my_register, int reg_num)
bool check_bypass (int op_id_mapping, int reg_num)
bool check_macro_bypass (int op_id_mapping, int reg_num)
void drain_pipeline ()

Private Attributes

A_Proc_code_database
Op_Hashed_Table_op_hashed_table
int _issue_width
unsigned int _global_cycle
Banked_Cache_i_cache
Data_Cache_new_d_cache
Register ** _local_register_file
int _index_of_local_register_file
Register _global_macro_register [NUM_OF_MACRO_REGISTER]
int _fu_stage
FU ** _fu
bool * _fu_is_empty
int * _index_of_local_register_file_in_fu
int * _fu_ip
Operation_fetch_op
bool _fetch_op_is_empty
int _unique_tag
int _index_of_local_register_file_in_fetch
int _fetch_op_has_branch
int _fetch_ip
int _fetch_fall_through_ip
Operation_dispatch_op
bool _dispatch_op_is_empty
bool * _src1_ready
bool * _src2_ready
bool * _dest1_ready
bool * _dest2_ready
bool _dispatch_ops_are_all_ready
unsigned int _num_of_dispatch_stall
unsigned int _d_cache_penalty
int _index_of_local_register_file_in_dispatch
int _dispatch_op_has_branch
int _dispatch_fall_through_ip
int _dispatch_ip
Branch_Predictor_bp
int _predicted_slot
int _predicted_ip
unsigned int _num_of_miss_branch_direction
unsigned int _num_of_miss_branch_target
unsigned int _num_of_branch_stall
unsigned int _num_of_branch_prediction
unsigned int _num_multiway_br
unsigned int * _num_of_multi_way_br_stall
BTB_btb
RAS_ras
bool _use_ras
Profile_Branch_pb
int _bhr
A_Proc_code_database
Op_Hashed_Table_op_hashed_table
Banked_Cache_i_cache
Data_Cache_new_d_cache
Register ** _local_register_file
FU ** _fu
bool * _fu_is_empty
int * _index_of_local_register_file_in_fu
int * _fu_ip
Operation_fetch_op
Operation_dispatch_op
bool * _src1_ready
bool * _src2_ready
bool * _dest1_ready
bool * _dest2_ready
Branch_Predictor_bp
unsigned int * _num_of_multi_way_br_stall
BTB_btb
RAS_ras
Profile_Branch_pb


Constructor & Destructor Documentation

VLIW::VLIW  )  [inline]
 

Definition at line 59 of file include/vliw.h.

References _bp, _btb, _code_database, _dest1_ready, _dest2_ready, _dispatch_op, _dispatch_op_has_branch, _dispatch_op_is_empty, _fetch_op, _fetch_op_has_branch, _fetch_op_is_empty, _fu, _fu_ip, _fu_is_empty, _fu_stage, _global_cycle, _i_cache, _issue_width, _local_register_file, _new_d_cache, _num_of_branch_prediction, _num_of_branch_stall, _op_hashed_table, _pb, _ras, _src1_ready, and _src2_ready.

VLIW::VLIW A_Proc a_proc,
Op_Hashed_Table op_hashed_table
[inline]
 

Definition at line 61 of file include/vliw.h.

References _bp, _btb, _code_database, _dest1_ready, _dest2_ready, _dispatch_op, _dispatch_op_has_branch, _dispatch_op_is_empty, _fetch_op, _fetch_op_has_branch, _fetch_op_is_empty, _fu, _fu_ip, _fu_is_empty, _fu_stage, _global_cycle, _i_cache, _issue_width, _local_register_file, _new_d_cache, _num_of_branch_prediction, _num_of_branch_stall, _op_hashed_table, _pb, _ras, _src1_ready, and _src2_ready.

VLIW::~VLIW  )  [inline]
 

Definition at line 63 of file include/vliw.h.

References _bp, _btb, _dest1_ready, _dest2_ready, _dispatch_op, _fetch_op, _fu, _fu_ip, _fu_is_empty, _fu_stage, _i_cache, _local_register_file, _new_d_cache, _num_of_multi_way_br_stall, _pb, _ras, _src1_ready, _src2_ready, i, and NUM_OF_LOCAL_REGISTER_FILE.

VLIW::VLIW  )  [inline]
 

Definition at line 59 of file src/vliw.h.

References _bp, _btb, _code_database, _dest1_ready, _dest2_ready, _dispatch_op, _dispatch_op_has_branch, _dispatch_op_is_empty, _fetch_op, _fetch_op_has_branch, _fetch_op_is_empty, _fu, _fu_ip, _fu_is_empty, _fu_stage, _global_cycle, _i_cache, _issue_width, _local_register_file, _new_d_cache, _num_of_branch_prediction, _num_of_branch_stall, _op_hashed_table, _pb, _ras, _src1_ready, and _src2_ready.

VLIW::VLIW A_Proc a_proc,
Op_Hashed_Table op_hashed_table
[inline]
 

Definition at line 61 of file src/vliw.h.

References _bp, _btb, _code_database, _dest1_ready, _dest2_ready, _dispatch_op, _dispatch_op_has_branch, _dispatch_op_is_empty, _fetch_op, _fetch_op_has_branch, _fetch_op_is_empty, _fu, _fu_ip, _fu_is_empty, _fu_stage, _global_cycle, _i_cache, _issue_width, _local_register_file, _new_d_cache, _num_of_branch_prediction, _num_of_branch_stall, _op_hashed_table, _pb, _ras, _src1_ready, and _src2_ready.

VLIW::~VLIW  )  [inline]
 

Definition at line 63 of file src/vliw.h.

References _bp, _btb, _dest1_ready, _dest2_ready, _dispatch_op, _fetch_op, _fu, _fu_ip, _fu_is_empty, _fu_stage, _i_cache, _local_register_file, _new_d_cache, _num_of_multi_way_br_stall, _pb, _ras, _src1_ready, _src2_ready, i, and NUM_OF_LOCAL_REGISTER_FILE.


Member Function Documentation

bool VLIW::check_bypass int  op_id_mapping,
int  reg_num
 

bool VLIW::check_bypass int  op_id_mapping,
int  reg_num
 

Definition at line 1127 of file vliw.cpp.

References _dispatch_op, _fu, _fu_stage, _global_cycle, _issue_width, FU::busy(), Operation::dest1(), FU::dest1(), Operation::dest2(), FU::dest2(), FU::finished_cycle(), i, Operation::latency(), Operation::mapping(), and FU::op_id().

Referenced by is_register_ready().

bool VLIW::check_macro_bypass int  op_id_mapping,
int  reg_num
 

bool VLIW::check_macro_bypass int  op_id_mapping,
int  reg_num
 

Definition at line 1238 of file vliw.cpp.

References _dispatch_op, _fu, _fu_stage, _global_cycle, _issue_width, FU::busy(), Operation::dest1(), FU::dest1(), Operation::dest2(), FU::dest2(), FU::finished_cycle(), i, Operation::latency(), MACRO_OFFSET, Operation::mapping(), and FU::op_id().

Referenced by process_pipeline().

void VLIW::drain_pipeline  ) 
 

void VLIW::drain_pipeline  ) 
 

Definition at line 1229 of file vliw.cpp.

Referenced by Trace_Simulator::do_the_last_time().

void VLIW::init int  issue_width  ) 
 

void VLIW::init int  issue_width  ) 
 

Definition at line 39 of file vliw.cpp.

References _bhr, _bp, _btb, _d_cache_penalty, _dest1_ready, _dest2_ready, _dispatch_fall_through_ip, _dispatch_ip, _dispatch_op, _dispatch_op_has_branch, _dispatch_op_is_empty, _dispatch_ops_are_all_ready, _fetch_fall_through_ip, _fetch_ip, _fetch_op, _fetch_op_has_branch, _fetch_op_is_empty, _fu, _fu_ip, _fu_is_empty, _fu_stage, _global_cycle, _global_macro_register, _i_cache, _index_of_local_register_file, _index_of_local_register_file_in_dispatch, _index_of_local_register_file_in_fetch, _index_of_local_register_file_in_fu, _issue_width, _local_register_file, _new_d_cache, _num_multiway_br, _num_of_branch_prediction, _num_of_branch_stall, _num_of_dispatch_stall, _num_of_miss_branch_direction, _num_of_miss_branch_target, _num_of_multi_way_br_stall, _pb, _predicted_ip, _predicted_slot, _ras, _src1_ready, _src2_ready, _unique_tag, i, NUM_OF_CALL_STACK_LENGTH, NUM_OF_LOCAL_REGISTER, NUM_OF_LOCAL_REGISTER_FILE, and NUM_OF_MACRO_REGISTER.

Referenced by Trace_Simulator::init().

bool VLIW::is_register_ready Register my_register,
int  reg_num
 

bool VLIW::is_register_ready Register my_register,
int  reg_num
 

Definition at line 1095 of file vliw.cpp.

References _global_macro_register, check_bypass(), MACRO_OFFSET, Register::op_id(), and TOTAL_NUM_OF_REGISTER.

Referenced by process_pipeline().

void VLIW::output FILE *  f  ) 
 

void VLIW::output FILE *  f  ) 
 

Definition at line 202 of file vliw.cpp.

References _bp, _code_database, _d_cache_penalty, _global_cycle, _i_cache, _issue_width, _new_d_cache, _num_multiway_br, _num_of_branch_prediction, _num_of_branch_stall, _num_of_dispatch_stall, _num_of_miss_branch_direction, _num_of_miss_branch_target, _num_of_multi_way_br_stall, _pb, fclose(), fopen(), fprintf(), i, I_CACHE_READ_MISS_PENALTY, Profile_Branch::print(), Data_Cache::report(), Banked_Cache::report(), Branch_Predictor::show(), Data_Cache::show_cache(), Banked_Cache::show_cache(), and Banked_Cache::total_num_of_miss().

Referenced by Trace_Simulator::output().

void VLIW::print FILE *  f  ) 
 

void VLIW::print FILE *  f  ) 
 

Definition at line 1171 of file vliw.cpp.

References _dest1_ready, _dest2_ready, _dispatch_ip, _dispatch_op, _dispatch_ops_are_all_ready, _fetch_ip, _fetch_op, _fu, _fu_ip, _fu_is_empty, _fu_stage, _global_cycle, _index_of_local_register_file_in_dispatch, _index_of_local_register_file_in_fetch, _index_of_local_register_file_in_fu, _issue_width, _src1_ready, _src2_ready, FU::busy(), fprintf(), i, Operation::mapping(), FU::print(), and Operation::print_special().

Referenced by process_pipeline().

bool VLIW::process_pipeline Multi_Op mop  ) 
 

bool VLIW::process_pipeline Multi_Op mop  ) 
 

Definition at line 318 of file vliw.cpp.

References _bhr, _bp, _btb, _d_cache_penalty, _dest1_ready, _dest2_ready, _dispatch_fall_through_ip, _dispatch_ip, _dispatch_op, _dispatch_op_has_branch, _dispatch_op_is_empty, _dispatch_ops_are_all_ready, _fetch_fall_through_ip, _fetch_ip, _fetch_op, _fetch_op_has_branch, _fetch_op_is_empty, _fu, _fu_ip, _fu_is_empty, _fu_stage, _global_cycle, _global_macro_register, _i_cache, _index_of_local_register_file_in_dispatch, _index_of_local_register_file_in_fetch, _index_of_local_register_file_in_fu, _issue_width, _local_register_file, _new_d_cache, _num_multiway_br, _num_of_branch_prediction, _num_of_branch_stall, _num_of_dispatch_stall, _num_of_miss_branch_direction, _num_of_miss_branch_target, _num_of_multi_way_br_stall, _pb, _predicted_ip, _predicted_slot, _ras, _src1_ready, _src2_ready, _unique_tag, _use_ras, BRDVI, BRL, BRW_F_F_F, FU::busy(), check_macro_bypass(), Operation::copy(), FU::copy(), D_CACHE_READ_HIT_LATENCY, Operation::data_address(), Operation::dest1(), FU::dest1(), Operation::dest2(), FU::dest2(), Operation::filled(), FU::finished_cycle(), FL_INC_D_C3_C3, fprintf(), FS_INC_D_C3, Multi_Op::has_branch(), i, Multi_Op::ip(), is_register_ready(), L_B_V1_V1, Operation::latency(), MACRO_OFFSET, Operation::mapping(), Operation::mop(), Operation::next(), Multi_Op::next_ip(), NUM_OF_MACRO_REGISTER, Multi_Op::num_of_op(), Multi_Op::op(), Register::op_id(), FU::op_id(), Operation::opcode(), opcode, Multi_Op::opcode_of_branches(), RAS::pop(), BTB::predict(), Branch_Predictor::predict(), print(), Operation::print_special(), RAS::push(), REAL_D_CACHE, Profile_Branch::record(), Operation::reset(), RTS, S_B_V1, FU::set(), FU::set_busy(), Operation::set_filled(), Operation::set_mapping(), Register::set_op_id(), Banked_Cache::simulate(), Data_Cache::simulate(), Operation::src1(), Operation::src2(), RAS::top(), BTB::update(), and Branch_Predictor::update().

Referenced by Trace_Simulator::process_mop().


Member Data Documentation

int VLIW::_bhr [private]
 

Definition at line 216 of file src/vliw.h.

Referenced by init(), and process_pipeline().

Branch_Predictor* VLIW::_bp [private]
 

Definition at line 184 of file src/vliw.h.

Branch_Predictor* VLIW::_bp [private]
 

Definition at line 184 of file include/vliw.h.

Referenced by init(), output(), process_pipeline(), VLIW(), and ~VLIW().

BTB* VLIW::_btb [private]
 

Definition at line 200 of file src/vliw.h.

BTB* VLIW::_btb [private]
 

Definition at line 200 of file include/vliw.h.

Referenced by init(), process_pipeline(), VLIW(), and ~VLIW().

A_Proc* VLIW::_code_database [private]
 

Definition at line 118 of file src/vliw.h.

A_Proc* VLIW::_code_database [private]
 

Definition at line 118 of file include/vliw.h.

Referenced by output(), and VLIW().

unsigned int VLIW::_d_cache_penalty [private]
 

Definition at line 173 of file src/vliw.h.

Referenced by init(), output(), and process_pipeline().

bool* VLIW::_dest1_ready [private]
 

Definition at line 169 of file src/vliw.h.

bool* VLIW::_dest1_ready [private]
 

Definition at line 169 of file include/vliw.h.

Referenced by init(), print(), process_pipeline(), VLIW(), and ~VLIW().

bool* VLIW::_dest2_ready [private]
 

Definition at line 170 of file src/vliw.h.

bool* VLIW::_dest2_ready [private]
 

Definition at line 170 of file include/vliw.h.

Referenced by init(), print(), process_pipeline(), VLIW(), and ~VLIW().

int VLIW::_dispatch_fall_through_ip [private]
 

Definition at line 178 of file src/vliw.h.

Referenced by init(), and process_pipeline().

int VLIW::_dispatch_ip [private]
 

Definition at line 179 of file src/vliw.h.

Referenced by init(), print(), and process_pipeline().

Operation* VLIW::_dispatch_op [private]
 

Definition at line 165 of file src/vliw.h.

Operation* VLIW::_dispatch_op [private]
 

Definition at line 165 of file include/vliw.h.

Referenced by check_bypass(), check_macro_bypass(), init(), print(), process_pipeline(), VLIW(), and ~VLIW().

int VLIW::_dispatch_op_has_branch [private]
 

Definition at line 176 of file src/vliw.h.

Referenced by init(), process_pipeline(), and VLIW().

bool VLIW::_dispatch_op_is_empty [private]
 

Definition at line 166 of file src/vliw.h.

Referenced by init(), process_pipeline(), and VLIW().

bool VLIW::_dispatch_ops_are_all_ready [private]
 

Definition at line 171 of file src/vliw.h.

Referenced by init(), print(), and process_pipeline().

int VLIW::_fetch_fall_through_ip [private]
 

Definition at line 160 of file src/vliw.h.

Referenced by init(), and process_pipeline().

int VLIW::_fetch_ip [private]
 

Definition at line 159 of file src/vliw.h.

Referenced by init(), print(), and process_pipeline().

Operation* VLIW::_fetch_op [private]
 

Definition at line 152 of file src/vliw.h.

Operation* VLIW::_fetch_op [private]
 

Definition at line 152 of file include/vliw.h.

Referenced by init(), print(), process_pipeline(), VLIW(), and ~VLIW().

int VLIW::_fetch_op_has_branch [private]
 

Definition at line 157 of file src/vliw.h.

Referenced by init(), process_pipeline(), and VLIW().

bool VLIW::_fetch_op_is_empty [private]
 

Definition at line 153 of file src/vliw.h.

Referenced by init(), process_pipeline(), and VLIW().

FU** VLIW::_fu [private]
 

Definition at line 144 of file src/vliw.h.

FU** VLIW::_fu [private]
 

Definition at line 144 of file include/vliw.h.

Referenced by check_bypass(), check_macro_bypass(), init(), print(), process_pipeline(), VLIW(), and ~VLIW().

int* VLIW::_fu_ip [private]
 

Definition at line 147 of file src/vliw.h.

int* VLIW::_fu_ip [private]
 

Definition at line 147 of file include/vliw.h.

Referenced by init(), print(), process_pipeline(), VLIW(), and ~VLIW().

bool* VLIW::_fu_is_empty [private]
 

Definition at line 145 of file src/vliw.h.

bool* VLIW::_fu_is_empty [private]
 

Definition at line 145 of file include/vliw.h.

Referenced by init(), print(), process_pipeline(), VLIW(), and ~VLIW().

int VLIW::_fu_stage [private]
 

Definition at line 143 of file src/vliw.h.

Referenced by check_bypass(), check_macro_bypass(), init(), print(), process_pipeline(), VLIW(), and ~VLIW().

unsigned int VLIW::_global_cycle [private]
 

Definition at line 125 of file src/vliw.h.

Referenced by check_bypass(), check_macro_bypass(), init(), output(), print(), process_pipeline(), and VLIW().

Register VLIW::_global_macro_register [private]
 

Definition at line 138 of file src/vliw.h.

Referenced by init(), is_register_ready(), and process_pipeline().

Banked_Cache* VLIW::_i_cache [private]
 

Definition at line 130 of file src/vliw.h.

Banked_Cache* VLIW::_i_cache [private]
 

Definition at line 130 of file include/vliw.h.

Referenced by init(), output(), process_pipeline(), VLIW(), and ~VLIW().

int VLIW::_index_of_local_register_file [private]
 

Definition at line 137 of file src/vliw.h.

Referenced by init().

int VLIW::_index_of_local_register_file_in_dispatch [private]
 

Definition at line 175 of file src/vliw.h.

Referenced by init(), print(), and process_pipeline().

int VLIW::_index_of_local_register_file_in_fetch [private]
 

Definition at line 156 of file src/vliw.h.

Referenced by init(), print(), and process_pipeline().

int* VLIW::_index_of_local_register_file_in_fu [private]
 

Definition at line 146 of file src/vliw.h.

int* VLIW::_index_of_local_register_file_in_fu [private]
 

Definition at line 146 of file include/vliw.h.

Referenced by init(), print(), and process_pipeline().

int VLIW::_issue_width [private]
 

Definition at line 124 of file src/vliw.h.

Referenced by check_bypass(), check_macro_bypass(), init(), output(), print(), process_pipeline(), and VLIW().

Register** VLIW::_local_register_file [private]
 

Definition at line 136 of file src/vliw.h.

Register** VLIW::_local_register_file [private]
 

Definition at line 136 of file include/vliw.h.

Referenced by init(), process_pipeline(), VLIW(), and ~VLIW().

Data_Cache* VLIW::_new_d_cache [private]
 

Definition at line 131 of file src/vliw.h.

Data_Cache* VLIW::_new_d_cache [private]
 

Definition at line 131 of file include/vliw.h.

Referenced by init(), output(), process_pipeline(), VLIW(), and ~VLIW().

unsigned int VLIW::_num_multiway_br [private]
 

Definition at line 193 of file src/vliw.h.

Referenced by init(), output(), and process_pipeline().

unsigned int VLIW::_num_of_branch_prediction [private]
 

Definition at line 190 of file src/vliw.h.

Referenced by init(), output(), process_pipeline(), and VLIW().

unsigned int VLIW::_num_of_branch_stall [private]
 

Definition at line 189 of file src/vliw.h.

Referenced by init(), output(), process_pipeline(), and VLIW().

unsigned int VLIW::_num_of_dispatch_stall [private]
 

Definition at line 172 of file src/vliw.h.

Referenced by init(), output(), and process_pipeline().

unsigned int VLIW::_num_of_miss_branch_direction [private]
 

Definition at line 187 of file src/vliw.h.

Referenced by init(), output(), and process_pipeline().

unsigned int VLIW::_num_of_miss_branch_target [private]
 

Definition at line 188 of file src/vliw.h.

Referenced by init(), output(), and process_pipeline().

unsigned int* VLIW::_num_of_multi_way_br_stall [private]
 

Definition at line 194 of file src/vliw.h.

unsigned int* VLIW::_num_of_multi_way_br_stall [private]
 

Definition at line 194 of file include/vliw.h.

Referenced by init(), output(), process_pipeline(), and ~VLIW().

Op_Hashed_Table* VLIW::_op_hashed_table [private]
 

Definition at line 119 of file src/vliw.h.

Op_Hashed_Table* VLIW::_op_hashed_table [private]
 

Definition at line 119 of file include/vliw.h.

Referenced by VLIW().

Profile_Branch* VLIW::_pb [private]
 

Definition at line 211 of file src/vliw.h.

Profile_Branch* VLIW::_pb [private]
 

Definition at line 211 of file include/vliw.h.

Referenced by init(), output(), process_pipeline(), VLIW(), and ~VLIW().

int VLIW::_predicted_ip [private]
 

Definition at line 186 of file src/vliw.h.

Referenced by init(), and process_pipeline().

int VLIW::_predicted_slot [private]
 

Definition at line 185 of file src/vliw.h.

Referenced by init(), and process_pipeline().

RAS* VLIW::_ras [private]
 

Definition at line 205 of file src/vliw.h.

RAS* VLIW::_ras [private]
 

Definition at line 205 of file include/vliw.h.

Referenced by init(), process_pipeline(), VLIW(), and ~VLIW().

bool* VLIW::_src1_ready [private]
 

Definition at line 167 of file src/vliw.h.

bool* VLIW::_src1_ready [private]
 

Definition at line 167 of file include/vliw.h.

Referenced by init(), print(), process_pipeline(), VLIW(), and ~VLIW().

bool* VLIW::_src2_ready [private]
 

Definition at line 168 of file src/vliw.h.

bool* VLIW::_src2_ready [private]
 

Definition at line 168 of file include/vliw.h.

Referenced by init(), print(), process_pipeline(), VLIW(), and ~VLIW().

int VLIW::_unique_tag [private]
 

Definition at line 154 of file src/vliw.h.

Referenced by init(), and process_pipeline().

bool VLIW::_use_ras [private]
 

Definition at line 206 of file src/vliw.h.

Referenced by process_pipeline().


The documentation for this class was generated from the following files:
Generated on Mon Jul 21 20:31:38 2003 for TINKER LEGO DOC by doxygen 1.3.2