#include <mcFrontEnd.h>
Definition at line 40 of file mcFrontEnd.h.
McFrontEnd::McFrontEnd | ( | ) |
Definition at line 31 of file mcFrontEnd.cc.
References mc, NetworkComponent::name, and Processor::ni_recv.
McFrontEnd::~McFrontEnd | ( | ) |
Definition at line 42 of file mcFrontEnd.cc.
void McFrontEnd::add_mc_bits | ( | Request * | req | ) | [private] |
Definition at line 133 of file mcFrontEnd.cc.
References MC_ADDR_BITS, mc_positions, no_mcs, and node_ip.
Referenced by handle_out_pull_event().
bool McFrontEnd::compare | ( | ) |
void McFrontEnd::convertFromBitStream | ( | Request * | req, | |
HighLevelPacket * | hlp | |||
) | [private] |
Definition at line 524 of file mcFrontEnd.cc.
References HighLevelPacket::data, NETWORK_ADDRESS_BITS, NETWORK_COMMAND_BITS, and NETWORK_THREADID_BITS.
Referenced by handle_new_packet_event().
void McFrontEnd::convertToBitStream | ( | Request * | req, | |
HighLevelPacket * | hlp | |||
) | [private] |
Definition at line 485 of file mcFrontEnd.cc.
References CACHE_BLOCK_SIZE, CACHE_PREFETCH, CACHE_READ, CACHE_WRITE, HighLevelPacket::data, HighLevelPacket::data_payload_length, max_phy_link_bits, and NETWORK_ADDRESS_BITS.
Referenced by handle_out_pull_event().
void McFrontEnd::finish | ( | ) |
bool McFrontEnd::GetFrommcFrontEndQueue | ( | Request * | req | ) | [private] |
Definition at line 471 of file mcFrontEnd.cc.
References niQueue.
Referenced by handle_out_pull_event().
void McFrontEnd::handle_detect_deadlock_event | ( | IrisEvent * | ) | [private] |
void McFrontEnd::handle_new_packet_event | ( | IrisEvent * | e | ) | [private] |
Definition at line 192 of file mcFrontEnd.cc.
References _DBG, NetworkComponent::address, HighLevelPacket::avg_network_latency, convertFromBitStream(), IrisEvent::dst, IrisEvent::event_data, flast_vc, HighLevelPacket::hop_count, Processor::interface_connections, last_pkt_out_cycle, mc, NEW_PACKET_EVENT, Processor::ni_recv, Simulator::Now(), outstanding_hlp, packets, NetworkComponent::process_event(), READY_EVENT, HighLevelPacket::recv_time, HighLevelPacket::req_start_time, Simulator::Schedule(), IrisEvent::src, IrisEvent::src_id, START, strip_mc_bits(), IrisEvent::toString(), total_missed_time, IrisEvent::type, IrisEvent::vc, vcs, and HighLevelPacket::virtual_channel.
Referenced by process_event().
void McFrontEnd::handle_old_packet_event | ( | IrisEvent * | e | ) | [private] |
void McFrontEnd::handle_out_pull_event | ( | IrisEvent * | e | ) | [private] |
Definition at line 295 of file mcFrontEnd.cc.
References add_mc_bits(), HighLevelPacket::addr, HighLevelPacket::avg_network_latency, avg_resp_buff_occ, convertToBitStream(), HighLevelPacket::destination, IrisEvent::dst, GetFrommcFrontEndQueue(), HighLevelPacket::hop_count, Processor::interface_connections, last_out_pull_cycle, last_vc, mc, HighLevelPacket::msg_class, NEW_PACKET_EVENT, niQueue, node_ip, Simulator::Now(), packets_out, NetworkComponent::process_event(), ready, HighLevelPacket::recv_time, HighLevelPacket::req_start_time, resp_buff_occ_cycles, RESPONSE_PKT, Simulator::Schedule(), SEND_TO_NI, sending, HighLevelPacket::sent_time, HighLevelPacket::source, HighLevelPacket::stat_memory_serviced_time, total_backward_time, HighLevelPacket::transaction_id, IrisEvent::type, vcs, HighLevelPacket::virtual_channel, and HighLevelPacket::waiting_in_ni.
Referenced by process_event().
void McFrontEnd::handle_ready_event | ( | IrisEvent * | e | ) | [private] |
Definition at line 389 of file mcFrontEnd.cc.
References _DBG, max_sim_time, Simulator::Now(), OUT_PULL_EVENT, NetworkComponent::process_event(), ready, Simulator::Schedule(), sending, IrisEvent::vc, and vcs.
Referenced by process_event().
string McFrontEnd::print_stats | ( | void | ) | const [virtual] |
Implements Processor.
Definition at line 554 of file mcFrontEnd.cc.
References avg_resp_buff_occ, last_pkt_out_cycle, mc, node_ip, packets, packets_out, resp_buff_occ_cycles, total_backward_time, and total_missed_time.
void McFrontEnd::process_event | ( | IrisEvent * | e | ) | [virtual] |
Implements Processor.
Definition at line 110 of file mcFrontEnd.cc.
References handle_new_packet_event(), handle_out_pull_event(), handle_ready_event(), NEW_PACKET_EVENT, OUT_PULL_EVENT, READY_EVENT, and IrisEvent::type.
void McFrontEnd::set_no_vcs | ( | uint | v | ) |
void McFrontEnd::set_output_path | ( | string | v | ) | [virtual] |
Implements Processor.
Definition at line 87 of file mcFrontEnd.cc.
References node_ip, out_file, and out_filename.
Implements Processor.
Definition at line 53 of file mcFrontEnd.cc.
References NetworkComponent::address, avg_resp_buff_occ, flast_vc, last_vc, max_sim_time, mc, missed_time, Component::myId(), no_nodes, node_ip, outstanding_hlp, packets, packets_out, ready, resp_buff_occ_cycles, total_backward_time, total_missed_time, and vcs.
void McFrontEnd::strip_mc_bits | ( | Request * | req | ) | [private] |
Definition at line 158 of file mcFrontEnd.cc.
References MC_ADDR_BITS, mc_positions, no_mcs, NO_OF_THREADS, and node_ip.
Referenced by handle_new_packet_event().
string McFrontEnd::toString | ( | ) | const [virtual] |
Reimplemented from Processor.
Definition at line 459 of file mcFrontEnd.cc.
References NetworkComponent::address, Processor::interface_connections, and out_filename.
ullint McFrontEnd::avg_resp_buff_occ [private] |
Definition at line 68 of file mcFrontEnd.h.
Referenced by handle_out_pull_event(), print_stats(), and setup().
unsigned int McFrontEnd::flast_vc [private] |
ullint McFrontEnd::last_out_pull_cycle [private] |
double McFrontEnd::last_pkt_out_cycle [private] |
Definition at line 61 of file mcFrontEnd.h.
Referenced by handle_new_packet_event(), and print_stats().
unsigned int McFrontEnd::last_vc [private] |
unsigned long long int McFrontEnd::max_sim_time [private] |
Definition at line 45 of file mcFrontEnd.h.
Referenced by handle_new_packet_event(), handle_out_pull_event(), McFrontEnd(), print_stats(), and setup().
uint McFrontEnd::missed_time [private] |
vector<Request> McFrontEnd::niQueue |
Definition at line 46 of file mcFrontEnd.h.
Referenced by GetFrommcFrontEndQueue(), and handle_out_pull_event().
uint McFrontEnd::no_nodes [private] |
Reimplemented from NetworkComponent.
Definition at line 51 of file mcFrontEnd.h.
Referenced by add_mc_bits(), handle_out_pull_event(), print_stats(), set_output_path(), setup(), and strip_mc_bits().
ofstream McFrontEnd::out_file [private] |
string McFrontEnd::out_filename [private] |
deque< HighLevelPacket > McFrontEnd::out_packets [private] |
Definition at line 74 of file mcFrontEnd.h.
vector<HighLevelPacket*> McFrontEnd::outstanding_hlp [private] |
unsigned int McFrontEnd::packets [private] |
Definition at line 72 of file mcFrontEnd.h.
Referenced by handle_new_packet_event(), print_stats(), and setup().
unsigned long long int McFrontEnd::packets_out [private] |
Definition at line 66 of file mcFrontEnd.h.
Referenced by handle_out_pull_event(), print_stats(), and setup().
vector< bool > McFrontEnd::ready [private] |
Definition at line 81 of file mcFrontEnd.h.
Referenced by handle_out_pull_event(), handle_ready_event(), and setup().
ullint McFrontEnd::resp_buff_occ_cycles [private] |
Definition at line 67 of file mcFrontEnd.h.
Referenced by handle_out_pull_event(), print_stats(), and setup().
bool McFrontEnd::sending |
Definition at line 56 of file mcFrontEnd.h.
Referenced by handle_out_pull_event(), and handle_ready_event().
deque< HighLevelPacket > McFrontEnd::sent_packets [private] |
Definition at line 75 of file mcFrontEnd.h.
unsigned long long int McFrontEnd::total_backward_time [private] |
Definition at line 64 of file mcFrontEnd.h.
Referenced by handle_out_pull_event(), print_stats(), and setup().
unsigned long long int McFrontEnd::total_missed_time [private] |
Definition at line 63 of file mcFrontEnd.h.
Referenced by handle_new_packet_event(), print_stats(), and setup().
fstream McFrontEnd::trace_filename [private] |
Definition at line 80 of file mcFrontEnd.h.
string McFrontEnd::trace_name [private] |
Definition at line 78 of file mcFrontEnd.h.
uint McFrontEnd::vcs [private] |
Definition at line 70 of file mcFrontEnd.h.
Referenced by handle_new_packet_event(), handle_out_pull_event(), handle_ready_event(), set_no_vcs(), and setup().