summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNick <[email protected]>2019-09-13 06:12:34 -0400
committerNick <[email protected]>2019-09-13 06:12:34 -0400
commitca563ea85ead434e0d579026b5e66e829af5efe5 (patch)
treed771dfcce1447e7197d0dc7031be248d8874f121 /src
parentb7776785a18d3f4e6229cd625f92c11b55894b75 (diff)
Add additional formatting pass on directories
Diffstat (limited to 'src')
-rw-r--r--src/gpgpu-sim/gpu-cache.h4
-rw-r--r--src/gpgpu-sim/gpu-sim.h16
-rw-r--r--src/gpgpu-sim/mem_latency_stat.h4
-rw-r--r--src/gpgpu-sim/shader.cc2
-rw-r--r--src/gpuwattch/XML_Parse.cc29
-rw-r--r--src/gpuwattch/array.cc41
-rw-r--r--src/gpuwattch/core.cc305
-rw-r--r--src/gpuwattch/iocontrollers.cc10
-rw-r--r--src/gpuwattch/logic.cc54
-rw-r--r--src/gpuwattch/logic.h8
-rw-r--r--src/gpuwattch/memoryctrl.cc35
-rw-r--r--src/gpuwattch/noc.cc46
-rw-r--r--src/gpuwattch/processor.cc5
-rw-r--r--src/gpuwattch/processor.h2
-rw-r--r--src/gpuwattch/sharedcache.cc63
-rw-r--r--src/gpuwattch/technology_xeon_core.cc4
-rw-r--r--src/gpuwattch/xmlParser.cc6
-rw-r--r--src/gpuwattch/xmlParser.h222
18 files changed, 472 insertions, 384 deletions
diff --git a/src/gpgpu-sim/gpu-cache.h b/src/gpgpu-sim/gpu-cache.h
index 9b9898e..9fe14ca 100644
--- a/src/gpgpu-sim/gpu-cache.h
+++ b/src/gpgpu-sim/gpu-cache.h
@@ -1312,9 +1312,9 @@ class baseline_cache : public cache_t {
const cache_config &m_config;
int m_data_port_occupied_cycles; //< Number of cycle that the data port
- //remains used
+ // remains used
int m_fill_port_occupied_cycles; //< Number of cycle that the fill port
- //remains used
+ // remains used
};
bandwidth_management m_bandwidth_management;
diff --git a/src/gpgpu-sim/gpu-sim.h b/src/gpgpu-sim/gpu-sim.h
index 40c4482..a24ceea 100644
--- a/src/gpgpu-sim/gpu-sim.h
+++ b/src/gpgpu-sim/gpu-sim.h
@@ -264,11 +264,11 @@ class memory_config {
// GDDR5 this is identical to RTPS, if for other DRAM this is
// different, you will need to split them in two
- unsigned tCCD; // column to column delay
- unsigned tRRD; // minimal time required between activation of rows in
- // different banks
- unsigned tRCD; // row to column delay - time required to activate a row
- // before a read
+ unsigned tCCD; // column to column delay
+ unsigned tRRD; // minimal time required between activation of rows in
+ // different banks
+ unsigned tRCD; // row to column delay - time required to activate a row
+ // before a read
unsigned tRCDWR; // row to column delay for a write command
unsigned tRAS; // time needed to activate row
unsigned tRP; // row precharge ie. deactivate row
@@ -276,7 +276,7 @@ class memory_config {
tRC; // row cycle time ie. precharge current, then activate different row
unsigned tCDLR; // Last data-in to Read command (switching from write to
// read)
- unsigned tWR; // Last data-in to Row precharge
+ unsigned tWR; // Last data-in to Row precharge
unsigned CL; // CAS latency
unsigned WL; // WRITE latency
@@ -628,9 +628,9 @@ class gpgpu_sim : public gpgpu_t {
std::map<unsigned, watchpoint_event> g_watchpoint_hits;
std::string executed_kernel_info_string(); //< format the kernel information
- //into a string for stat printout
+ // into a string for stat printout
void clear_executed_kernel_info(); //< clear the kernel information after
- //stat printout
+ // stat printout
public:
unsigned long long gpu_sim_insn;
diff --git a/src/gpgpu-sim/mem_latency_stat.h b/src/gpgpu-sim/mem_latency_stat.h
index 21c15ee..d733218 100644
--- a/src/gpgpu-sim/mem_latency_stat.h
+++ b/src/gpgpu-sim/mem_latency_stat.h
@@ -90,8 +90,8 @@ class memory_stats_t {
unsigned int **totalbankreads; // bankreads[dram chip id][bank id]
unsigned int **totalbankaccesses; // bankaccesses[dram chip id][bank id]
unsigned int *num_MCBs_accessed; // tracks how many memory controllers are
- // accessed whenever any thread in a warp
- // misses in cache
+ // accessed whenever any thread in a warp
+ // misses in cache
unsigned int *position_of_mrq_chosen; // position of mrq in m_queue chosen
unsigned ***mem_access_type_stats; // dram access type classification
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc
index 73ea8b3..fc1c1e2 100644
--- a/src/gpgpu-sim/shader.cc
+++ b/src/gpgpu-sim/shader.cc
@@ -3460,7 +3460,7 @@ void shader_core_ctx::warp_exit(unsigned warp_id) {
for (unsigned i = warp_id * get_config()->warp_size;
i < (warp_id + 1) * get_config()->warp_size; i++) {
// if(this->m_thread[i]->m_functional_model_thread_state &&
- //this->m_thread[i].m_functional_model_thread_state->donecycle()==0) {
+ // this->m_thread[i].m_functional_model_thread_state->donecycle()==0) {
// done = false;
// }
diff --git a/src/gpuwattch/XML_Parse.cc b/src/gpuwattch/XML_Parse.cc
index 26115d3..19d3d44 100644
--- a/src/gpuwattch/XML_Parse.cc
+++ b/src/gpuwattch/XML_Parse.cc
@@ -535,7 +535,7 @@ void ParseXML::parse(char* filepath) {
// if (sys.Private_L2 && sys.number_of_cores!=sys.number_of_L2s)
// {
// cout<<"Private L2: Number of L2s must equal to Number of
- //Cores"<<endl;
+ // Cores"<<endl;
// exit(0);
// }
@@ -563,7 +563,7 @@ void ParseXML::parse(char* filepath) {
unsigned int OrderofComponents_3layer = 0;
if (NumofCom_3 > OrderofComponents_3layer) {
//___________________________get all
- //system.core0-n________________________________________________
+ // system.core0-n________________________________________________
if (sys.homogeneous_cores == 1)
OrderofComponents_3layer = 0;
else
@@ -2044,9 +2044,8 @@ void ParseXML::parse(char* filepath) {
if (strcmp(xNode4.getAttribute("name"), "sharedmemory") ==
0) { // find system.core0.sharedmemory
itmp = xNode4.nChildNode("param");
- for (k = 0; k < itmp;
- k++) { // get all items of param in
- // system.core0.sharedmemory--sharedmemory
+ for (k = 0; k < itmp; k++) { // get all items of param in
+ // system.core0.sharedmemory--sharedmemory
if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"),
"sharedmemory_config") == 0) {
strtmp.assign(
@@ -2483,7 +2482,7 @@ void ParseXML::parse(char* filepath) {
}
//__________________________________________Get
- //system.L1Directory0-n____________________________________________
+ // system.L1Directory0-n____________________________________________
int w, tmpOrderofComponents_3layer;
w = OrderofComponents_3layer + 1;
tmpOrderofComponents_3layer = OrderofComponents_3layer;
@@ -2649,7 +2648,7 @@ void ParseXML::parse(char* filepath) {
}
//__________________________________________Get
- //system.L2Directory0-n____________________________________________
+ // system.L2Directory0-n____________________________________________
w = OrderofComponents_3layer + 1;
tmpOrderofComponents_3layer = OrderofComponents_3layer;
if (sys.homogeneous_L2Directories == 1)
@@ -2814,7 +2813,7 @@ void ParseXML::parse(char* filepath) {
}
//__________________________________________Get
- //system.L2[0..n]____________________________________________
+ // system.L2[0..n]____________________________________________
w = OrderofComponents_3layer + 1;
tmpOrderofComponents_3layer = OrderofComponents_3layer;
if (sys.homogeneous_L2s == 1)
@@ -3102,7 +3101,7 @@ void ParseXML::parse(char* filepath) {
}
}
//__________________________________________Get
- //system.L3[0..n]____________________________________________
+ // system.L3[0..n]____________________________________________
w = OrderofComponents_3layer + 1;
tmpOrderofComponents_3layer = OrderofComponents_3layer;
if (sys.homogeneous_L3s == 1)
@@ -3390,7 +3389,7 @@ void ParseXML::parse(char* filepath) {
}
}
//__________________________________________Get
- //system.NoC[0..n]____________________________________________
+ // system.NoC[0..n]____________________________________________
w = OrderofComponents_3layer + 1;
tmpOrderofComponents_3layer = OrderofComponents_3layer;
if (sys.homogeneous_NoCs == 1)
@@ -3641,7 +3640,7 @@ void ParseXML::parse(char* filepath) {
}
}
//__________________________________________Get
- //system.mem____________________________________________
+ // system.mem____________________________________________
if (OrderofComponents_3layer > 0)
OrderofComponents_3layer = OrderofComponents_3layer + 1;
xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer);
@@ -3757,7 +3756,7 @@ void ParseXML::parse(char* filepath) {
exit(0);
}
//__________________________________________Get
- //system.mc____________________________________________
+ // system.mc____________________________________________
if (OrderofComponents_3layer > 0)
OrderofComponents_3layer = OrderofComponents_3layer + 1;
xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer);
@@ -3947,7 +3946,7 @@ void ParseXML::parse(char* filepath) {
exit(0);
}
//__________________________________________Get
- //system.niu____________________________________________
+ // system.niu____________________________________________
if (OrderofComponents_3layer > 0)
OrderofComponents_3layer = OrderofComponents_3layer + 1;
xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer);
@@ -4005,7 +4004,7 @@ void ParseXML::parse(char* filepath) {
}
//__________________________________________Get
- //system.pcie____________________________________________
+ // system.pcie____________________________________________
if (OrderofComponents_3layer > 0)
OrderofComponents_3layer = OrderofComponents_3layer + 1;
xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer);
@@ -4074,7 +4073,7 @@ void ParseXML::parse(char* filepath) {
exit(0);
}
//__________________________________________Get
- //system.flashcontroller____________________________________________
+ // system.flashcontroller____________________________________________
if (OrderofComponents_3layer > 0)
OrderofComponents_3layer = OrderofComponents_3layer + 1;
xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer);
diff --git a/src/gpuwattch/array.cc b/src/gpuwattch/array.cc
index aca5a8a..a50cac6 100644
--- a/src/gpuwattch/array.cc
+++ b/src/gpuwattch/array.cc
@@ -118,7 +118,7 @@ void ArrayST::optimize_array() {
10; // This is the time_dev to be used for next iteration
// from best area to worst area -->worst timing to best
- //timing
+ // timing
if ((((local_result.cycle_time - throughput) <= 1e-10) &&
(local_result.access_time - latency) <= 1e-10) ||
(local_result.data_array2->area_efficiency <
@@ -145,8 +145,8 @@ void ArrayST::optimize_array() {
if (l_ip.cycle_time_dev > 10) { // if not >10 local_result is the last
// result, it cannot be cleaned up
- temp_res = &local_result; // Only solutions not saved in the list
- // need to be cleaned up
+ temp_res = &local_result; // Only solutions not saved in the list
+ // need to be cleaned up
temp_res->cleanup();
}
}
@@ -171,23 +171,36 @@ void ArrayST::optimize_array() {
// /*According to "Content-Addressable Memory (CAM) Circuits and
// Architectures": A Tutorial and Survey
// by Kostas Pagiamtzis et al.
- // CAM structures can be heavily pipelined and use look-ahead
- //techniques,
- // therefore timing can be relaxed. But McPAT does not model the
- //advanced
- // techniques. If continue optimizing, the area efficiency will be
- //too low
+ // CAM structures can be heavily pipelined and use
+ // look-ahead
+ // techniques,
+ // therefore timing can be relaxed. But McPAT does not
+ //model
+ // the
+ // advanced
+ // techniques. If continue optimizing, the area efficiency
+ //will
+ // be
+ // too low
// */
// //For CAM and FA, stop opt if area efficiency is too low
// if (throughput_overflow==true)
- // cout<< "Warning: " <<" McPAT stopped optimization on throughput for
+ // cout<< "Warning: " <<" McPAT stopped optimization on
+ //throughput
+ // for
//"<< name
- // <<" array structure because its area efficiency is below
+ // <<" array structure because its area efficiency
+ //is
+ // below
//"<<area_efficiency_threshold<<"% " << endl;
// if (latency_overflow==true)
- // cout<< "Warning: " <<" McPAT stopped optimization on latency for "<<
- //name
- // <<" array structure because its area efficiency is below
+ // cout<< "Warning: " <<" McPAT stopped optimization on latency
+ //for
+ //"<<
+ // name
+ // <<" array structure because its area efficiency
+ //is
+ // below
//"<<area_efficiency_threshold<<"% " << endl;
// }
diff --git a/src/gpuwattch/core.cc b/src/gpuwattch/core.cc
index 9e9f1ab..6b9f0d5 100644
--- a/src/gpuwattch/core.cc
+++ b/src/gpuwattch/core.cc
@@ -59,31 +59,31 @@
//-gpgpu_num_reg_banks 8 # Number of register banks (default
//= 8)
//-gpgpu_reg_bank_use_warp_id 0 # Use warp ID in mapping
-//registers to banks (default = off)
+// registers to banks (default = off)
//-gpgpu_operand_collector_num_units_sp 6 # number of
-//collector units (default = 4)
+// collector units (default = 4)
//-gpgpu_operand_collector_num_units_sfu 8 # number of
-//collector units (default = 4)
+// collector units (default = 4)
//-gpgpu_operand_collector_num_units_mem 2 # number of
-//collector units (default = 2)
+// collector units (default = 2)
//-gpgpu_operand_collector_num_units_gen 0 # number of
-//collector units (default = 0)
+// collector units (default = 0)
//-gpgpu_operand_collector_num_in_ports_sp 1 # number of
-//collector unit in ports (default = 1)
+// collector unit in ports (default = 1)
//-gpgpu_operand_collector_num_in_ports_sfu 1 # number of
-//collector unit in ports (default = 1)
+// collector unit in ports (default = 1)
//-gpgpu_operand_collector_num_in_ports_mem 1 # number of
-//collector unit in ports (default = 1)
+// collector unit in ports (default = 1)
//-gpgpu_operand_collector_num_in_ports_gen 0 # number of
-//collector unit in ports (default = 0)
+// collector unit in ports (default = 0)
//-gpgpu_operand_collector_num_out_ports_sp 1 # number of
-//collector unit in ports (default = 1)
+// collector unit in ports (default = 1)
//-gpgpu_operand_collector_num_out_ports_sfu 1 # number of
-//collector unit in ports (default = 1)
+// collector unit in ports (default = 1)
//-gpgpu_operand_collector_num_out_ports_mem 1 # number of
-//collector unit in ports (default = 1)
+// collector unit in ports (default = 1)
//-gpgpu_operand_collector_num_out_ports_gen 0 # number of
-//collector unit in ports (default = 0)
+// collector unit in ports (default = 0)
// The total number of collector units and their input ports, and the number of
// register file banks
@@ -827,18 +827,22 @@ SchedulerU::SchedulerU(ParseXML* XML_interface, int ithCore_,
// PC is to id the instruction for recover exception.
// inst is used to map the renamed dest. registers.so that commit stage
// can know which reg/RRAT to update
- // data = int(ceil((robExtra+coredynp.pc_width
+ // data =
+ // int(ceil((robExtra+coredynp.pc_width
//+
- // coredynp.instruction_length +
- //2*coredynp.phy_ireg_width)/8.0));
+ // coredynp.instruction_length
+ //+
+ // 2*coredynp.phy_ireg_width)/8.0));
data = int(ceil(
(robExtra + coredynp.pc_width + coredynp.phy_ireg_width) / 8.0));
} else {
// in RS based OOO, ROB also contains value of destination reg
- // data = int(ceil((robExtra+coredynp.pc_width
+ // data =
+ // int(ceil((robExtra+coredynp.pc_width
+ //+
+ // coredynp.instruction_length
//+
- // coredynp.instruction_length +
- //2*coredynp.phy_ireg_width + coredynp.fp_data_width)/8.0));
+ // 2*coredynp.phy_ireg_width + coredynp.fp_data_width)/8.0));
data = int(ceil((robExtra + coredynp.pc_width +
coredynp.phy_ireg_width + coredynp.fp_data_width) /
8.0));
@@ -2399,8 +2403,9 @@ RENAMINGU::RENAMINGU(ParseXML* XML_interface, int ithCore_,
// detailed explaintions
data =
33; // int(ceil(coredynp.phy_ireg_width*(1+coredynp.globalCheckpoint)/8.0));
- // data =
- //int(ceil(coredynp.phy_ireg_width/8.0));
+ // data
+ //=
+ // int(ceil(coredynp.phy_ireg_width/8.0));
out_w = 1; // int(ceil(coredynp.phy_ireg_width/8.0));
interface_ip.is_cache = false;
interface_ip.pure_cam = false;
@@ -2430,42 +2435,44 @@ RENAMINGU::RENAMINGU(ParseXML* XML_interface, int ithCore_,
XML->sys.core[ithCore].number_hardware_threads);
area.set_area(area.get_area() + iFRAT->area.get_area());
- // //RAHT According to Intel, combine GC with FRAT is
- //very costly.
- // data =
- //int(ceil(coredynp.phy_ireg_width/8.0)*coredynp.num_IRF_entry);
+ // //RAHT According to Intel, combine GC with FRAT
+ // is
+ // very costly.
+ // data
+ //=
+ // int(ceil(coredynp.phy_ireg_width/8.0)*coredynp.num_IRF_entry);
// out_w = data;
// interface_ip.is_cache =
- //false;
+ // false;
// interface_ip.pure_cam = false;
// interface_ip.pure_ram = true;
// interface_ip.line_sz = data;
// interface_ip.cache_sz =
- //data*coredynp.globalCheckpoint;
+ // data*coredynp.globalCheckpoint;
// interface_ip.assoc = 1;
// interface_ip.nbanks = 1;
// interface_ip.out_w = out_w*8;
// interface_ip.access_mode = 0;
// interface_ip.throughput =
- //1.0/clockRate;
+ // 1.0/clockRate;
// interface_ip.latency =
- //1.0/clockRate;
+ // 1.0/clockRate;
// interface_ip.obj_func_dyn_energy = 0;
// interface_ip.obj_func_dyn_power = 0;
// interface_ip.obj_func_leak_power = 0;
// interface_ip.obj_func_cycle_t = 1;
// interface_ip.num_rw_ports = 1;//the extra one
- //port is for GCs
+ // port is for GCs
// interface_ip.num_rd_ports =
- //2*coredynp.decodeW;
+ // 2*coredynp.decodeW;
// interface_ip.num_wr_ports = coredynp.decodeW;
// interface_ip.num_se_rd_ports = 0;
// iFRAT = new ArrayST(&interface_ip, "Int
- //FrontRAT");
+ // FrontRAT");
// iFRAT->area.set_area(iFRAT->area.get_area()+
- //iFRAT->local_result.area*XML->sys.core[ithCore].number_hardware_threads);
+ // iFRAT->local_result.area*XML->sys.core[ithCore].number_hardware_threads);
// area.set_area(area.get_area()+
- //iFRAT->area.get_area());
+ // iFRAT->area.get_area());
// FRAT floating point
data = int(ceil(coredynp.phy_freg_width *
@@ -3223,30 +3230,39 @@ void BranchPredictor::displayEnergy(uint32_t indent, int plevel, bool is_tdp) {
<< " W" << endl;
cout << endl;
} else {
- // cout << indent_str_next << "Global Predictor Peak Dynamic = " <<
- //globalBPT->rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Global Predictor Subthreshold Leakage =
+ // cout << indent_str_next << "Global Predictor Peak Dynamic = "
+ //<<
+ // globalBPT->rt_power.readOp.dynamic*clockRate << " W" << endl;
+ // cout << indent_str_next << "Global Predictor Subthreshold
+ //Leakage
+ //=
//" << globalBPT->rt_power.readOp.leakage <<" W" << endl;
- // cout << indent_str_next << "Global Predictor Gate Leakage = " <<
- //globalBPT->rt_power.readOp.gate_leakage << " W" << endl;
- // cout << indent_str_next << "Local Predictor Peak Dynamic = " <<
- //L1_localBPT->rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Local Predictor Subthreshold Leakage = "
+ // cout << indent_str_next << "Global Predictor Gate Leakage = "
+ //<<
+ // globalBPT->rt_power.readOp.gate_leakage << " W" << endl;
+ // cout << indent_str_next << "Local Predictor Peak Dynamic = "
+ //<<
+ // L1_localBPT->rt_power.readOp.dynamic*clockRate << " W" << endl;
+ // cout << indent_str_next << "Local Predictor Subthreshold Leakage
+ //=
+ //"
//<< L1_localBPT->rt_power.readOp.leakage << " W" << endl;
- // cout << indent_str_next << "Local Predictor Gate Leakage = " <<
- //L1_localBPT->rt_power.readOp.gate_leakage << " W" << endl;
+ // cout << indent_str_next << "Local Predictor Gate Leakage = "
+ //<<
+ // L1_localBPT->rt_power.readOp.gate_leakage << " W" << endl;
// cout << indent_str_next << "Chooser Peak Dynamic = " <<
- //chooser->rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Chooser Subthreshold Leakage = " <<
- //chooser->rt_power.readOp.leakage << " W" << endl;
+ // chooser->rt_power.readOp.dynamic*clockRate << " W" << endl;
+ // cout << indent_str_next << "Chooser Subthreshold Leakage = "
+ //<<
+ // chooser->rt_power.readOp.leakage << " W" << endl;
// cout << indent_str_next << "Chooser Gate Leakage = " <<
- //chooser->rt_power.readOp.gate_leakage << " W" << endl;
+ // chooser->rt_power.readOp.gate_leakage << " W" << endl;
// cout << indent_str_next << "RAS Peak Dynamic = " <<
- //RAS->rt_power.readOp.dynamic*clockRate << " W" << endl;
+ // RAS->rt_power.readOp.dynamic*clockRate << " W" << endl;
// cout << indent_str_next << "RAS Subthreshold Leakage = " <<
- //RAS->rt_power.readOp.leakage << " W" << endl;
+ // RAS->rt_power.readOp.leakage << " W" << endl;
// cout << indent_str_next << "RAS Gate Leakage = " <<
- //RAS->rt_power.readOp.gate_leakage << " W" << endl;
+ // RAS->rt_power.readOp.gate_leakage << " W" << endl;
}
}
@@ -3593,30 +3609,48 @@ void InstFetchU::displayEnergy(uint32_t indent, int plevel, bool is_tdp) {
<< " W" << endl;
cout << endl;
} else {
- // cout << indent_str_next << "Instruction Cache Peak Dynamic = " <<
- //icache.rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Instruction Cache Subthreshold Leakage
+ // cout << indent_str_next << "Instruction Cache Peak Dynamic =
+ //"
+ //<<
+ // icache.rt_power.readOp.dynamic*clockRate << " W" << endl;
+ // cout << indent_str_next << "Instruction Cache Subthreshold
+ // Leakage
//= " << icache.rt_power.readOp.leakage <<" W" << endl;
- // cout << indent_str_next << "Instruction Cache Gate Leakage = " <<
- //icache.rt_power.readOp.gate_leakage << " W" << endl;
- // cout << indent_str_next << "Instruction Buffer Peak Dynamic = " <<
- //IB->rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Instruction Buffer Subthreshold Leakage
+ // cout << indent_str_next << "Instruction Cache Gate Leakage =
+ //"
+ //<<
+ // icache.rt_power.readOp.gate_leakage << " W" << endl;
+ // cout << indent_str_next << "Instruction Buffer Peak Dynamic =
+ //"
+ //<<
+ // IB->rt_power.readOp.dynamic*clockRate << " W" << endl;
+ // cout << indent_str_next << "Instruction Buffer Subthreshold
+ // Leakage
//= " << IB->rt_power.readOp.leakage << " W" << endl;
- // cout << indent_str_next << "Instruction Buffer Gate Leakage = " <<
- //IB->rt_power.readOp.gate_leakage << " W" << endl;
- // cout << indent_str_next << "Branch Target Buffer Peak Dynamic = " <<
- //BTB->rt_power.readOp.dynamic*clockRate << " W" << endl;
+ // cout << indent_str_next << "Instruction Buffer Gate Leakage =
+ //"
+ //<<
+ // IB->rt_power.readOp.gate_leakage << " W" << endl;
+ // cout << indent_str_next << "Branch Target Buffer Peak Dynamic =
+ //"
+ //<<
+ // BTB->rt_power.readOp.dynamic*clockRate << " W" << endl;
// cout << indent_str_next << "Branch Target Buffer Subthreshold
- //Leakage = " << BTB->rt_power.readOp.leakage << " W" << endl;
- // cout << indent_str_next << "Branch Target Buffer Gate Leakage = " <<
- //BTB->rt_power.readOp.gate_leakage << " W" << endl;
- // cout << indent_str_next << "Branch Predictor Peak Dynamic = " <<
- //BPT->rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Branch Predictor Subthreshold Leakage =
+ // Leakage = " << BTB->rt_power.readOp.leakage << " W" << endl;
+ // cout << indent_str_next << "Branch Target Buffer Gate Leakage =
+ //"
+ //<<
+ // BTB->rt_power.readOp.gate_leakage << " W" << endl;
+ // cout << indent_str_next << "Branch Predictor Peak Dynamic = "
+ //<<
+ // BPT->rt_power.readOp.dynamic*clockRate << " W" << endl;
+ // cout << indent_str_next << "Branch Predictor Subthreshold
+ //Leakage
+ //=
//" << BPT->rt_power.readOp.leakage << " W" << endl;
- // cout << indent_str_next << "Branch Predictor Gate Leakage = " <<
- //BPT->rt_power.readOp.gate_leakage << " W" << endl;
+ // cout << indent_str_next << "Branch Predictor Gate Leakage = "
+ //<<
+ // BPT->rt_power.readOp.gate_leakage << " W" << endl;
}
}
@@ -4214,11 +4248,12 @@ void SchedulerU::computeEnergy(bool is_tdp) {
if (!exist) return;
double ROB_duty_cycle;
// ROB_duty_cycle = ((coredynp.ALU_duty_cycle +
- //coredynp.num_muls>0?coredynp.MUL_duty_cycle:0
- // + coredynp.num_fpus>0?coredynp.FPU_duty_cycle:0))*1.1<1 ?
+ // coredynp.num_muls>0?coredynp.MUL_duty_cycle:0
+ // + coredynp.num_fpus>0?coredynp.FPU_duty_cycle:0))*1.1<1
+ //?
//(coredynp.ALU_duty_cycle + coredynp.num_muls>0?coredynp.MUL_duty_cycle:0
// +
- //coredynp.num_fpus>0?coredynp.FPU_duty_cycle:0)*1.1:1;
+ // coredynp.num_fpus>0?coredynp.FPU_duty_cycle:0)*1.1:1;
ROB_duty_cycle = 1;
// init stats
if (is_tdp) {
@@ -4392,7 +4427,7 @@ void SchedulerU::computeEnergy(bool is_tdp) {
} else if (coredynp.multithreaded) {
// set_pppm(pppm_t,
- //XML->sys.core[ithCore].issue_width,1, 1, 1);
+ // XML->sys.core[ithCore].issue_width,1, 1, 1);
int_inst_window->power =
int_inst_window->power_t +
(int_inst_window->local_result.power + instruction_selection->power) *
@@ -4419,7 +4454,7 @@ void SchedulerU::computeEnergy(bool is_tdp) {
} else if (coredynp.multithreaded) {
// set_pppm(pppm_t,
- //XML->sys.core[ithCore].issue_width,1, 1, 1);
+ // XML->sys.core[ithCore].issue_width,1, 1, 1);
int_inst_window->rt_power =
int_inst_window->power_t +
(int_inst_window->local_result.power + instruction_selection->power) *
@@ -4429,9 +4464,9 @@ void SchedulerU::computeEnergy(bool is_tdp) {
}
// set_pppm(pppm_t, XML->sys.core[ithCore].issue_width,1, 1, 1);
// cout<<"Scheduler
- //power="<<power.readOp.dynamic<<"leakage="<<power.readOp.leakage<<endl;
+ // power="<<power.readOp.dynamic<<"leakage="<<power.readOp.leakage<<endl;
// cout<<"IW="<<int_inst_window->local_result.power.searchOp.dynamic *
- //int_inst_window->stats_t.readAc.access +
+ // int_inst_window->stats_t.readAc.access +
// + int_inst_window->local_result.power.writeOp.dynamic *
// int_inst_window->stats_t.writeAc.access<<"leakage="<<int_inst_window->local_result.power.readOp.leakage<<endl;
// cout<<"selection"<<instruction_selection->power.readOp.dynamic<<"leakage"<<instruction_selection->power.readOp.leakage<<endl;
@@ -5104,11 +5139,11 @@ void LoadStoreU::computeEnergy(bool is_tdp) {
} else {
// LSQ->power_t.readOp.dynamic +=
- //LSQ->stats_t.readAc.access*(LSQ->local_result.power.searchOp.dynamic +
- //LSQ->local_result.power.readOp.dynamic)
+ // LSQ->stats_t.readAc.access*(LSQ->local_result.power.searchOp.dynamic +
+ // LSQ->local_result.power.readOp.dynamic)
// +
- //LSQ->stats_t.writeAc.access*LSQ->local_result.power.writeOp.dynamic;//every
- //memory access invloves at least two operations on LSQ
+ // LSQ->stats_t.writeAc.access*LSQ->local_result.power.writeOp.dynamic;//every
+ // memory access invloves at least two operations on LSQ
// No LSQ in GPUs (Syed)
}
@@ -5944,7 +5979,7 @@ void EXECU::displayEnergy(uint32_t indent, int plevel, bool is_tdp) {
bool long_channel = XML->sys.longer_channel_device;
// cout << indent_str_next << "Results Broadcast Bus Area = " <<
- //bypass->area.get_area() *1e-6 << " mm^2" << endl;
+ // bypass->area.get_area() *1e-6 << " mm^2" << endl;
if (is_tdp) {
cout << indent_str << "Register Files:" << endl;
cout << indent_str_next << "Area = " << rfu->area.get_area() * 1e-6
@@ -6151,15 +6186,15 @@ void Core::computeEnergy(bool is_tdp) {
coredynp.num_pipelines / num_units,
coredynp.num_pipelines / num_units);
// cout << "IFU = " <<
- //ifu->power.readOp.dynamic*clockRate << " W" << endl;
+ // ifu->power.readOp.dynamic*clockRate << " W" << endl;
ifu->power = ifu->power + corepipe->power * pppm_t;
// cout << "IFU = " <<
- //ifu->power.readOp.dynamic*clockRate << " W" << endl;
+ // ifu->power.readOp.dynamic*clockRate << " W" << endl;
// cout << "1/4 pipe = " <<
- //corepipe->power.readOp.dynamic*clockRate/num_units << " W" << endl;
+ // corepipe->power.readOp.dynamic*clockRate/num_units << " W" << endl;
power = power + ifu->power;
// cout << "core = " <<
- //power.readOp.dynamic*clockRate << " W" << endl;
+ // power.readOp.dynamic*clockRate << " W" << endl;
}
if (lsu->exist) {
Pipeline_energy +=
@@ -6172,10 +6207,10 @@ void Core::computeEnergy(bool is_tdp) {
coredynp.num_pipelines / num_units);
lsu->power = lsu->power + corepipe->power * pppm_t;
// cout << "LSU = " <<
- //lsu->power.readOp.dynamic*clockRate << " W" << endl;
+ // lsu->power.readOp.dynamic*clockRate << " W" << endl;
power = power + lsu->power;
// cout << "core = " <<
- //power.readOp.dynamic*clockRate << " W" << endl;
+ // power.readOp.dynamic*clockRate << " W" << endl;
}
if (exu->exist) {
Pipeline_energy +=
@@ -6189,10 +6224,10 @@ void Core::computeEnergy(bool is_tdp) {
// cout<<"ExPowerScalingFactor:"<<coredynp.num_pipelines/num_units*coredynp.ALU_duty_cycle<<endl;
exu->power = exu->power + corepipe->power * pppm_t;
// cout << "EXE = " <<
- //exu->power.readOp.dynamic*clockRate << " W" << endl;
+ // exu->power.readOp.dynamic*clockRate << " W" << endl;
power = power + exu->power;
// cout << "core = " <<
- //power.readOp.dynamic*clockRate << " W" << endl;
+ // power.readOp.dynamic*clockRate << " W" << endl;
}
if (mmu->exist) {
Pipeline_energy +=
@@ -6205,10 +6240,10 @@ void Core::computeEnergy(bool is_tdp) {
coredynp.num_pipelines / num_units);
mmu->power = mmu->power + corepipe->power * pppm_t;
// cout << "MMU = " <<
- //mmu->power.readOp.dynamic*clockRate << " W" << endl;
+ // mmu->power.readOp.dynamic*clockRate << " W" << endl;
power = power + mmu->power;
// cout << "core = " <<
- //power.readOp.dynamic*clockRate << " W" << endl;
+ // power.readOp.dynamic*clockRate << " W" << endl;
}
power = power + undiffCore->power;
@@ -6276,8 +6311,9 @@ void Core::computeEnergy(bool is_tdp) {
}
rt_power = rt_power + undiffCore->power;
- // cout << "EXE = " << exu->power.readOp.dynamic*clockRate << " W" <<
- //endl;
+ // cout << "EXE = " << exu->power.readOp.dynamic*clockRate << " W"
+ //<<
+ // endl;
if (XML->sys.Private_L2) {
l2cache->computeEnergy(is_tdp);
// set_pppm(pppm_t,1/l2cache->cachep.executionTime, 1,1,1);
@@ -6436,22 +6472,28 @@ void Core::displayEnergy(uint32_t indent, int plevel, bool is_tdp) {
// if (undiffCore->exist)
// {
// cout << indent_str << "Undifferentiated Core" <<
- //endl;
+ // endl;
// cout << indent_str_next << "Area = " <<
- //undiffCore->area.get_area()*1e-6<< " mm^2" << endl;
+ // undiffCore->area.get_area()*1e-6<< " mm^2" << endl;
// cout << indent_str_next << "Peak Dynamic = " <<
- //undiffCore->power.readOp.dynamic*clockRate << " W" << endl;
- //// cout << indent_str_next << "Subthreshold Leakage = " <<
- ///undiffCore->power.readOp.leakage <<" W" << endl;
- // cout << indent_str_next << "Subthreshold Leakage =
+ // undiffCore->power.readOp.dynamic*clockRate << " W" << endl;
+ //// cout << indent_str_next << "Subthreshold Leakage =
+ ///"
+ ///<<
+ /// undiffCore->power.readOp.leakage <<" W" << endl;
+ // cout << indent_str_next << "Subthreshold Leakage
+ //=
//"
- // << (long_channel?
- //undiffCore->power.readOp.longer_channel_leakage:undiffCore->power.readOp.leakage)
+ // <<
+ //(long_channel?
+ // undiffCore->power.readOp.longer_channel_leakage:undiffCore->power.readOp.leakage)
//<< " W" << endl;
// cout << indent_str_next << "Gate Leakage = " <<
- //undiffCore->power.readOp.gate_leakage << " W" << endl;
- // // cout << indent_str_next << "Runtime Dynamic = " <<
- //undiffCore->rt_power.readOp.dynamic/executionTime << " W" << endl;
+ // undiffCore->power.readOp.gate_leakage << " W" << endl;
+ // // cout << indent_str_next << "Runtime Dynamic =
+ //"
+ //<<
+ // undiffCore->rt_power.readOp.dynamic/executionTime << " W" << endl;
// cout <<endl;
// }
// }
@@ -6465,30 +6507,44 @@ void Core::displayEnergy(uint32_t indent, int plevel, bool is_tdp) {
<< endl;
} else {
- // cout << indent_str_next << "Instruction Fetch Unit Peak Dynamic = "
+ // cout << indent_str_next << "Instruction Fetch Unit Peak Dynamic
+ //=
+ //"
//<< ifu->rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Instruction Fetch Unit Subthreshold
- //Leakage = " << ifu->rt_power.readOp.leakage <<" W" << endl;
- // cout << indent_str_next << "Instruction Fetch Unit Gate Leakage = "
+ // cout << indent_str_next << "Instruction Fetch Unit Subthreshold
+ // Leakage = " << ifu->rt_power.readOp.leakage <<" W" << endl;
+ // cout << indent_str_next << "Instruction Fetch Unit Gate Leakage
+ //=
+ //"
//<< ifu->rt_power.readOp.gate_leakage << " W" << endl;
- // cout << indent_str_next << "Load Store Unit Peak Dynamic = " <<
- //lsu->rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Load Store Unit Subthreshold Leakage = "
+ // cout << indent_str_next << "Load Store Unit Peak Dynamic = "
+ //<<
+ // lsu->rt_power.readOp.dynamic*clockRate << " W" << endl;
+ // cout << indent_str_next << "Load Store Unit Subthreshold Leakage
+ //=
+ //"
//<< lsu->rt_power.readOp.leakage << " W" << endl;
- // cout << indent_str_next << "Load Store Unit Gate Leakage = " <<
- //lsu->rt_power.readOp.gate_leakage << " W" << endl;
- // cout << indent_str_next << "Memory Management Unit Peak Dynamic = "
+ // cout << indent_str_next << "Load Store Unit Gate Leakage = "
+ //<<
+ // lsu->rt_power.readOp.gate_leakage << " W" << endl;
+ // cout << indent_str_next << "Memory Management Unit Peak Dynamic
+ //=
+ //"
//<< mmu->rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Memory Management Unit Subthreshold
- //Leakage = " << mmu->rt_power.readOp.leakage << " W" << endl;
- // cout << indent_str_next << "Memory Management Unit Gate Leakage = "
+ // cout << indent_str_next << "Memory Management Unit Subthreshold
+ // Leakage = " << mmu->rt_power.readOp.leakage << " W" << endl;
+ // cout << indent_str_next << "Memory Management Unit Gate Leakage
+ //=
+ //"
//<< mmu->rt_power.readOp.gate_leakage << " W" << endl;
// cout << indent_str_next << "Execution Unit Peak Dynamic = " <<
- //exu->rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Execution Unit Subthreshold Leakage = "
+ // exu->rt_power.readOp.dynamic*clockRate << " W" << endl;
+ // cout << indent_str_next << "Execution Unit Subthreshold Leakage
+ //=
+ //"
//<< exu->rt_power.readOp.leakage << " W" << endl;
// cout << indent_str_next << "Execution Unit Gate Leakage = " <<
- //exu->rt_power.readOp.gate_leakage << " W" << endl;
+ // exu->rt_power.readOp.gate_leakage << " W" << endl;
}
}
InstFetchU::~InstFetchU() {
@@ -6811,8 +6867,9 @@ void Core::set_core_param() {
}
// if (coredynp.core_ty==OOO)
// {
- // cout<<"OOO processor models are being updated and will be available
- //in next release"<<endl;
+ // cout<<"OOO processor models are being updated and will be
+ // available
+ // in next release"<<endl;
// exit(0);
// }
if (!((coredynp.scheu_ty == PhysicalRegFile) ||
diff --git a/src/gpuwattch/iocontrollers.cc b/src/gpuwattch/iocontrollers.cc
index 2425d40..6a29add 100644
--- a/src/gpuwattch/iocontrollers.cc
+++ b/src/gpuwattch/iocontrollers.cc
@@ -236,7 +236,7 @@ void NIUController::set_niu_param() {
niup.perc_load = XML->sys.niu.total_load_perc;
niup.type = XML->sys.niu.type;
// niup.executionTime =
- //XML->sys.total_cycles/(XML->sys.target_core_clockrate*1e6);
+ // XML->sys.total_cycles/(XML->sys.target_core_clockrate*1e6);
}
PCIeController::PCIeController(ParseXML* XML_interface,
@@ -276,7 +276,7 @@ PCIeController::PCIeController(ParseXML* XML_interface,
1.1 * (interface_ip.F_sz_nm / 65.0);
// //Cadence ChipEstimate using 65nm soft IP;
// frontend_dyn =
- //0.27e-9/8*g_tp.peri_global.Vdd/1.1*g_tp.peri_global.Vdd/1.1*(interface_ip.F_sz_nm/65.0);
+ // 0.27e-9/8*g_tp.peri_global.Vdd/1.1*g_tp.peri_global.Vdd/1.1*(interface_ip.F_sz_nm/65.0);
// SerDer_dyn is power not energy, scaling from 10mw/Gb/s @90nm
SerDer_dyn = 0.01 * 4 * (interface_ip.F_sz_um / 0.09) *
g_tp.peri_global.Vdd / 1.2 * g_tp.peri_global.Vdd /
@@ -305,7 +305,7 @@ PCIeController::PCIeController(ParseXML* XML_interface,
1.1 * (interface_ip.F_sz_nm / 65.0);
// //Cadence ChipEstimate using 65nm soft IP;
// frontend_dyn =
- //0.27e-9/8*g_tp.peri_global.Vdd/1.1*g_tp.peri_global.Vdd/1.1*(interface_ip.F_sz_nm/65.0);
+ // 0.27e-9/8*g_tp.peri_global.Vdd/1.1*g_tp.peri_global.Vdd/1.1*(interface_ip.F_sz_nm/65.0);
// SerDer_dyn is power not energy, scaling from 10mw/Gb/s @90nm
SerDer_dyn = 0.01 * 4 * (interface_ip.F_sz_um / 0.09) *
g_tp.peri_global.Vdd / 1.2 * g_tp.peri_global.Vdd /
@@ -387,7 +387,7 @@ void PCIeController::set_pcie_param() {
pciep.type = XML->sys.pcie.type;
pciep.withPHY = XML->sys.pcie.withPHY;
// pciep.executionTime =
- //XML->sys.total_cycles/(XML->sys.target_core_clockrate*1e6);
+ // XML->sys.total_cycles/(XML->sys.target_core_clockrate*1e6);
}
FlashController::FlashController(ParseXML* XML_interface,
@@ -507,5 +507,5 @@ void FlashController::set_fc_param() {
fcp.type = XML->sys.flashc.type;
fcp.withPHY = XML->sys.flashc.withPHY;
// flashcp.executionTime =
- //XML->sys.total_cycles/(XML->sys.target_core_clockrate*1e6);
+ // XML->sys.total_cycles/(XML->sys.target_core_clockrate*1e6);
}
diff --git a/src/gpuwattch/logic.cc b/src/gpuwattch/logic.cc
index 65e3875..d6937ca 100644
--- a/src/gpuwattch/logic.cc
+++ b/src/gpuwattch/logic.cc
@@ -362,8 +362,8 @@ void Pipeline::compute() {
double clock_power_pipereg = num_piperegs * pipe_reg.e_clock.readOp.dynamic;
//******************pipeline power: currently, we average all the
- //possibilities of the states of DFFs in the pipeline. A better way to do it
- //is to consider
+ // possibilities of the states of DFFs in the pipeline. A better way to do it
+ // is to consider
// the harming distance of two consecutive signals, However McPAT does not
// have plan to do this in near future as it focuses on worst case power.
double pipe_reg_power = num_piperegs * (pipe_reg.e_switch.readOp.dynamic +
@@ -578,8 +578,8 @@ FunctionalUnit::FunctionalUnit(ParseXML *XML_interface, int ithCore_,
// energy = 0.3529/10*1e-9;//this is the energy(nJ) for a FP instruction
// in FPU usually it can have up to 20 cycles.
// base_energy = coredynp.core_ty==Inorder? 0:
- //89e-3*3; //W The base energy of ALU average numbers from Intel 4G and
- //773Mhz (Wattch)
+ // 89e-3*3; //W The base energy of ALU average numbers from Intel 4G and
+ // 773Mhz (Wattch)
// base_energy
//*=(g_tp.peri_global.Vdd*g_tp.peri_global.Vdd/1.2/1.2);
base_energy = 0;
@@ -615,8 +615,8 @@ FunctionalUnit::FunctionalUnit(ParseXML *XML_interface, int ithCore_,
g_tp.peri_global.Vdd / 2;
leakage = 0;
// base_energy = coredynp.core_ty==Inorder?
- //0:89e-3; //W The base energy of ALU average numbers from Intel 4G and
- //773Mhz (Wattch)
+ // 0:89e-3; //W The base energy of ALU average numbers from Intel 4G and
+ // 773Mhz (Wattch)
// base_energy
//*=(g_tp.peri_global.Vdd*g_tp.peri_global.Vdd/1.2/1.2);
base_energy = 0;
@@ -645,8 +645,8 @@ FunctionalUnit::FunctionalUnit(ParseXML *XML_interface, int ithCore_,
inv) *
g_tp.peri_global.Vdd / 2;
// base_energy = coredynp.core_ty==Inorder?
- //0:89e-3*2; //W The base energy of ALU average numbers from Intel 4G and
- //773Mhz (Wattch)
+ // 0:89e-3*2; //W The base energy of ALU average numbers from Intel 4G and
+ // 773Mhz (Wattch)
// base_energy
//*=(g_tp.peri_global.Vdd*g_tp.peri_global.Vdd/1.2/1.2);
base_energy = 0;
@@ -666,7 +666,7 @@ FunctionalUnit::FunctionalUnit(ParseXML *XML_interface, int ithCore_,
}
per_access_energy *= 0.5; // According to ARM data embedded processor has
// much lower per acc energy
- } /* if (XML->sys.Embedded) */
+ } /* if (XML->sys.Embedded) */
else {
if (fu_type == FPU) {
num_fu = coredynp.num_fpus;
@@ -705,16 +705,14 @@ FunctionalUnit::FunctionalUnit(ParseXML *XML_interface, int ithCore_,
if (g_ip->F_sz_nm > 90)
area_t = 8.47 * 1e6 *
g_tp.scaling_factor.logic_scaling_co_eff; // this is um^2
- leakage =
- 37e-3; // area_t
- // *(g_tp.scaling_factor.core_tx_density)*cmos_Isub_leakage(5*g_tp.min_w_nmos_,
- // 5*g_tp.min_w_nmos_*pmos_to_nmos_sizing_r, 1,
- // inv)*g_tp.peri_global.Vdd/2;//unit W
- gate_leakage =
- 0; // area_t
- // *(g_tp.scaling_factor.core_tx_density)*cmos_Ig_leakage(5*g_tp.min_w_nmos_,
- // 5*g_tp.min_w_nmos_*pmos_to_nmos_sizing_r, 1,
- // inv)*g_tp.peri_global.Vdd/2;//unit W
+ leakage = 37e-3; // area_t
+ // *(g_tp.scaling_factor.core_tx_density)*cmos_Isub_leakage(5*g_tp.min_w_nmos_,
+ // 5*g_tp.min_w_nmos_*pmos_to_nmos_sizing_r, 1,
+ // inv)*g_tp.peri_global.Vdd/2;//unit W
+ gate_leakage = 0; // area_t
+ // *(g_tp.scaling_factor.core_tx_density)*cmos_Ig_leakage(5*g_tp.min_w_nmos_,
+ // 5*g_tp.min_w_nmos_*pmos_to_nmos_sizing_r, 1,
+ // inv)*g_tp.peri_global.Vdd/2;//unit W
// energy = 0.3529/10*1e-9;//this is the energy(nJ) for a FP instruction
// in FPU usually it can have up to 20 cycles.
base_energy =
@@ -938,7 +936,7 @@ void FunctionalUnit::displayEnergy(uint32_t indent, int plevel, bool is_tdp) {
bool long_channel = XML->sys.longer_channel_device;
// cout << indent_str_next << "Results Broadcast Bus Area = " <<
- //bypass->area.get_area() *1e-6 << " mm^2" << endl;
+ // bypass->area.get_area() *1e-6 << " mm^2" << endl;
if (is_tdp) {
if (fu_type == FPU) {
cout << indent_str
@@ -1169,10 +1167,11 @@ UndiffCore::UndiffCore(ParseXML *XML_interface, int ithCore_,
// double vt=g_tp.peri_global.Vth;
// double velocity_index=1.1;
// double c_in=gate_C(g_tp.min_w_nmos_,
- //g_tp.min_w_nmos_*pmos_to_nmos_sizing_r , 0.0, false);
- // double c_out= drain_C_(g_tp.min_w_nmos_, NCH, 2, 1, g_tp.cell_h_def,
- //false) + drain_C_(g_tp.min_w_nmos_*pmos_to_nmos_sizing_r, PCH, 1, 1,
- //g_tp.cell_h_def, false) + c_in;
+ // g_tp.min_w_nmos_*pmos_to_nmos_sizing_r , 0.0, false);
+ // double c_out= drain_C_(g_tp.min_w_nmos_, NCH, 2, 1,
+ // g_tp.cell_h_def,
+ // false) + drain_C_(g_tp.min_w_nmos_*pmos_to_nmos_sizing_r, PCH, 1, 1,
+ // g_tp.cell_h_def, false) + c_in;
// double w_nmos=g_tp.min_w_nmos_;
// double w_pmos=g_tp.min_w_nmos_*pmos_to_nmos_sizing_r;
// double i_on_n=1.0;
@@ -1181,15 +1180,16 @@ UndiffCore::UndiffCore(ParseXML *XML_interface, int ithCore_,
// double i_on_p_in=1;
// double vdd=g_tp.peri_global.Vdd;
- // power.readOp.sc=shortcircuit_simple(vt, velocity_index, c_in, c_out,
- //w_nmos,w_pmos, i_on_n, i_on_p,i_on_n_in, i_on_p_in, vdd);
+ // power.readOp.sc=shortcircuit_simple(vt, velocity_index, c_in,
+ // c_out,
+ // w_nmos,w_pmos, i_on_n, i_on_p,i_on_n_in, i_on_p_in, vdd);
// power.readOp.dynamic=c_out*vdd*vdd/2;
// cout<<power.readOp.dynamic << "dynamic" <<endl;
// cout<<power.readOp.sc << "sc" << endl;
// power.readOp.sc=shortcircuit(vt, velocity_index, c_in, c_out,
- //w_nmos,w_pmos, i_on_n, i_on_p,i_on_n_in, i_on_p_in, vdd);
+ // w_nmos,w_pmos, i_on_n, i_on_p,i_on_n_in, i_on_p_in, vdd);
// power.readOp.dynamic=c_out*vdd*vdd/2;
//
// cout<<power.readOp.dynamic << "dynamic" <<endl;
diff --git a/src/gpuwattch/logic.h b/src/gpuwattch/logic.h
index df00837..9a1d3e6 100644
--- a/src/gpuwattch/logic.h
+++ b/src/gpuwattch/logic.h
@@ -172,9 +172,9 @@ class Pipeline : public Component {
double WNANDp;
double load_per_pipeline_stage;
// int Hthread, num_thread, fetchWidth, decodeWidth, issueWidth,
- //commitWidth, instruction_length;
+ // commitWidth, instruction_length;
// int PC_width, opcode_length, num_arch_reg_tag,
- //data_width,num_phsical_reg_tag, address_width;
+ // data_width,num_phsical_reg_tag, address_width;
// bool thread_clock_gated;
// bool in_order, multithreaded;
void compute_stage_vector();
@@ -185,9 +185,9 @@ class Pipeline : public Component {
// class core_pipeline :public pipeline{
// public:
// int Hthread, num_thread, fetchWidth, decodeWidth, issueWidth,
-//commitWidth, instruction_length;
+// commitWidth, instruction_length;
// int PC_width, opcode_length, num_arch_reg_tag,
-//data_width,num_phsical_reg_tag, address_width;
+// data_width,num_phsical_reg_tag, address_width;
// bool thread_clock_gated;
// bool in_order, multithreaded;
// core_pipeline(bool _is_default, const InputParameter
diff --git a/src/gpuwattch/memoryctrl.cc b/src/gpuwattch/memoryctrl.cc
index 07e2f77..d0becc4 100644
--- a/src/gpuwattch/memoryctrl.cc
+++ b/src/gpuwattch/memoryctrl.cc
@@ -102,7 +102,7 @@ void MCBackend::compute() {
// double max_row_addr_width = 20.0;//Current address 12~18bits
double C_MCB, mc_power, backend_dyn,
backend_gates; //, refresh_period,refresh_freq;//Equivalent per bit Cap
- //for backend,
+ // for backend,
double pmos_to_nmos_sizing_r = pmos_to_nmos_sz_ratio();
double NMOS_sizing, PMOS_sizing;
@@ -535,7 +535,7 @@ MCFrontEnd::MCFrontEnd(ParseXML* XML_interface, InputParameter* interface_ip_,
PRT->local_result.area * XML->sys.mc.memory_channels_per_mc);
//***ThreadMasks storage (coalesced threads whose memory requests are
- //satisfied by each memory access)
+ // satisfied by each memory access)
/* contents of the thread masks Array
* 16-bit bit masks for up to 16 memory requests of a warp | Number of
* pending memory requests (5 bits)
@@ -983,7 +983,7 @@ MemoryController::MemoryController(ParseXML* XML_interface,
area.set_area(area.get_area() + PHY->area.get_area());
}
//+++++++++Transaction engine +++++++++++++++++ ////TODO needs better numbers,
- //Run the RTL code from OpenSparc.
+ // Run the RTL code from OpenSparc.
// transecEngine.initialize(&interface_ip);
// transecEngine.peakDataTransferRate = XML->sys.mem.peak_transfer_rate;
// transecEngine.memDataWidth = dataBusWidth;
@@ -1023,7 +1023,7 @@ MemoryController::MemoryController(ParseXML* XML_interface,
//// //clock
//// clockNetwork.init_wire_external(is_default, &interface_ip);
//// clockNetwork.clk_area =area*1.1;//10% of placement overhead.
- ///rule of thumb
+ /// rule of thumb
//// clockNetwork.end_wiring_level =5;//toplevel metal
//// clockNetwork.start_wiring_level =5;//toplevel metal
//// clockNetwork.num_regs = pipeLogic.tot_stage_vector;
@@ -1199,7 +1199,7 @@ void MemoryController::set_mc_param() {
mcp.reads = XML->sys.mc.memory_reads;
mcp.writes = XML->sys.mc.memory_writes;
//+++++++++Transaction engine +++++++++++++++++ ////TODO needs better
- //numbers, Run the RTL code from OpenSparc.
+ // numbers, Run the RTL code from OpenSparc.
mcp.peakDataTransferRate = XML->sys.mc.peak_transfer_rate;
mcp.memRank = XML->sys.mc.number_ranks;
//++++++++++++++PHY ++++++++++++++++++++++++++ //TODO needs better numbers
@@ -1214,16 +1214,17 @@ void MemoryController::set_mc_param() {
// else if (mc_type==FLASHC)
// {
// mcp.clockRate =XML->sys.flashc.mc_clock*2;//DDR double
- //pumped
+ // pumped
// mcp.clockRate *= 1e6;
// mcp.executionTime =
- //XML->sys.total_cycles/(XML->sys.target_core_clockrate*1e6);
+ // XML->sys.total_cycles/(XML->sys.target_core_clockrate*1e6);
//
// mcp.llcBlockSize
//=int(ceil(XML->sys.flashc.llc_line_length/8.0))+XML->sys.flashc.llc_line_length;//ecc
- //overhead
- // mcp.dataBusWidth =int(ceil(XML->sys.flashc.databus_width/8.0)) +
- //XML->sys.flashc.databus_width;
+ // overhead
+ // mcp.dataBusWidth =int(ceil(XML->sys.flashc.databus_width/8.0))
+ //+
+ // XML->sys.flashc.databus_width;
// mcp.addressBusWidth
//=int(ceil(XML->sys.flashc.addressbus_width));//XML->sys.physical_address_width;
// mcp.opcodeW =16;
@@ -1232,16 +1233,18 @@ void MemoryController::set_mc_param() {
// mcp.reads = XML->sys.flashc.memory_reads;
// mcp.writes = XML->sys.flashc.memory_writes;
// //+++++++++Transaction engine +++++++++++++++++ ////TODO needs
- //better numbers, Run the RTL code from OpenSparc.
+ // better numbers, Run the RTL code from OpenSparc.
// mcp.peakDataTransferRate = XML->sys.flashc.peak_transfer_rate;
// mcp.memRank = XML->sys.flashc.number_ranks;
- // //++++++++++++++PHY ++++++++++++++++++++++++++ //TODO needs better
- //numbers
+ // //++++++++++++++PHY ++++++++++++++++++++++++++ //TODO needs
+ // better
+ // numbers
// //PHY.memAccesses=PHY.peakDataTransferRate;//this is the max
- //power
+ // power
// //PHY.llcBlocksize=llcBlockSize;
- // mcp.frontend_duty_cycle = 0.5;//for max power, the actual off-chip
- //links is bidirectional but time shared
+ // mcp.frontend_duty_cycle = 0.5;//for max power, the actual
+ // off-chip
+ // links is bidirectional but time shared
// mcp.LVDS = XML->sys.flashc.LVDS;
// mcp.type = XML->sys.flashc.type;
// }
diff --git a/src/gpuwattch/noc.cc b/src/gpuwattch/noc.cc
index bf8d8b5..85fc0a9 100644
--- a/src/gpuwattch/noc.cc
+++ b/src/gpuwattch/noc.cc
@@ -357,30 +357,44 @@ void NoC::displayEnergy(uint32_t indent, int plevel, bool is_tdp) {
cout << endl;
}
} else {
- // cout << indent_str_next << "Instruction Fetch Unit Peak Dynamic = "
+ // cout << indent_str_next << "Instruction Fetch Unit Peak Dynamic
+ //=
+ //"
//<< ifu->rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Instruction Fetch Unit Subthreshold
- //Leakage = " << ifu->rt_power.readOp.leakage <<" W" << endl;
- // cout << indent_str_next << "Instruction Fetch Unit Gate Leakage = "
+ // cout << indent_str_next << "Instruction Fetch Unit Subthreshold
+ // Leakage = " << ifu->rt_power.readOp.leakage <<" W" << endl;
+ // cout << indent_str_next << "Instruction Fetch Unit Gate Leakage
+ //=
+ //"
//<< ifu->rt_power.readOp.gate_leakage << " W" << endl;
- // cout << indent_str_next << "Load Store Unit Peak Dynamic = " <<
- //lsu->rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Load Store Unit Subthreshold Leakage = "
+ // cout << indent_str_next << "Load Store Unit Peak Dynamic = "
+ //<<
+ // lsu->rt_power.readOp.dynamic*clockRate << " W" << endl;
+ // cout << indent_str_next << "Load Store Unit Subthreshold Leakage
+ //=
+ //"
//<< lsu->rt_power.readOp.leakage << " W" << endl;
- // cout << indent_str_next << "Load Store Unit Gate Leakage = " <<
- //lsu->rt_power.readOp.gate_leakage << " W" << endl;
- // cout << indent_str_next << "Memory Management Unit Peak Dynamic = "
+ // cout << indent_str_next << "Load Store Unit Gate Leakage = "
+ //<<
+ // lsu->rt_power.readOp.gate_leakage << " W" << endl;
+ // cout << indent_str_next << "Memory Management Unit Peak Dynamic
+ //=
+ //"
//<< mmu->rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Memory Management Unit Subthreshold
- //Leakage = " << mmu->rt_power.readOp.leakage << " W" << endl;
- // cout << indent_str_next << "Memory Management Unit Gate Leakage = "
+ // cout << indent_str_next << "Memory Management Unit Subthreshold
+ // Leakage = " << mmu->rt_power.readOp.leakage << " W" << endl;
+ // cout << indent_str_next << "Memory Management Unit Gate Leakage
+ //=
+ //"
//<< mmu->rt_power.readOp.gate_leakage << " W" << endl;
// cout << indent_str_next << "Execution Unit Peak Dynamic = " <<
- //exu->rt_power.readOp.dynamic*clockRate << " W" << endl;
- // cout << indent_str_next << "Execution Unit Subthreshold Leakage = "
+ // exu->rt_power.readOp.dynamic*clockRate << " W" << endl;
+ // cout << indent_str_next << "Execution Unit Subthreshold Leakage
+ //=
+ //"
//<< exu->rt_power.readOp.leakage << " W" << endl;
// cout << indent_str_next << "Execution Unit Gate Leakage = " <<
- //exu->rt_power.readOp.gate_leakage << " W" << endl;
+ // exu->rt_power.readOp.gate_leakage << " W" << endl;
}
}
diff --git a/src/gpuwattch/processor.cc b/src/gpuwattch/processor.cc
index 96c3351..b5b5cfb 100644
--- a/src/gpuwattch/processor.cc
+++ b/src/gpuwattch/processor.cc
@@ -1084,7 +1084,8 @@ void Processor::set_proc_param() {
// if (procdynp.numCore<1)
// {
- // cout<<" The target processor should at least have one core on chip."
+ // cout<<" The target processor should at least have one core on
+ // chip."
//<<endl;
// exit(0);
// }
@@ -1135,7 +1136,7 @@ void Processor::set_proc_param() {
interface_ip.F_sz_um = interface_ip.F_sz_nm / 1000;
//***********This section of code does not have real meaning, they are just to
- //ensure all data will have initial value to prevent errors.
+ // ensure all data will have initial value to prevent errors.
// They will be overridden during each components initialization
interface_ip.cache_sz = 64;
interface_ip.line_sz = 1;
diff --git a/src/gpuwattch/processor.h b/src/gpuwattch/processor.h
index 326206c..c0be8be 100644
--- a/src/gpuwattch/processor.h
+++ b/src/gpuwattch/processor.h
@@ -176,7 +176,7 @@ class Processor : public Component {
read_coef = l2array[0]
->unicache.caches->local_result.tag_array2->power.writeOp
.dynamic; //*(32/4); // removed by Jingwen, the scaling
- //of 32/4 is not used in the mcpat
+ // of 32/4 is not used in the mcpat
read_coef +=
l2array[0]->unicache.caches->local_result.power.writeOp.dynamic;
read_coef +=
diff --git a/src/gpuwattch/sharedcache.cc b/src/gpuwattch/sharedcache.cc
index 147be43..d25d1df 100644
--- a/src/gpuwattch/sharedcache.cc
+++ b/src/gpuwattch/sharedcache.cc
@@ -1106,24 +1106,25 @@ void SharedCache::displayEnergy(uint32_t indent, bool is_tdp) {
// ///cout<<"directory.maxPower=" <<directory.maxPower<<endl;
//
// directory.maxPower +=
-//directory.missb.l_ip.num_search_ports*directory.missb.local_result.power.searchOp.dynamic*clockRate;
+// directory.missb.l_ip.num_search_ports*directory.missb.local_result.power.searchOp.dynamic*clockRate;
// ///cout<<"directory.maxPower=" <<directory.maxPower<<endl;
//
// directory.maxPower +=
-//directory.ifb.l_ip.num_search_ports*directory.ifb.local_result.power.searchOp.dynamic*clockRate;
+// directory.ifb.l_ip.num_search_ports*directory.ifb.local_result.power.searchOp.dynamic*clockRate;
// ///cout<<"directory.maxPower=" <<directory.maxPower<<endl;
//
// directory.maxPower +=
-//directory.prefetchb.l_ip.num_search_ports*directory.prefetchb.local_result.power.searchOp.dynamic*clockRate;
+// directory.prefetchb.l_ip.num_search_ports*directory.prefetchb.local_result.power.searchOp.dynamic*clockRate;
// ///cout<<"directory.maxPower=" <<directory.maxPower<<endl;
//
// directory.maxPower +=
-//directory.wbb.l_ip.num_search_ports*directory.wbb.local_result.power.searchOp.dynamic*clockRate;
+// directory.wbb.l_ip.num_search_ports*directory.wbb.local_result.power.searchOp.dynamic*clockRate;
//
-// cc.power.readOp.dynamic = directory.maxPower*scktRatio*8;//8 is
-//the memory controller counts
+// cc.power.readOp.dynamic = directory.maxPower*scktRatio*8;//8
+// is
+// the memory controller counts
// cc.power.readOp.leakage =
-//directory.caches.local_result.power.readOp.leakage +
+// directory.caches.local_result.power.readOp.leakage +
// directory.missb.local_result.power.readOp.leakage
// +
// directory.ifb.local_result.power.readOp.leakage
@@ -1140,23 +1141,23 @@ void SharedCache::displayEnergy(uint32_t indent, bool is_tdp) {
// ccTot.area.set_area(cc.area.get_area()*1e-6);
// ccTot.power = cc.power;
// cout<<"DC energy per access" <<
-//cc.power.readOp.dynamic/clockRate/8;
+// cc.power.readOp.dynamic/clockRate/8;
// }
// else if (XML->sys.first_level_dir==1)
// {
// inv_dir.maxPower =
-//inv_dir.caches.local_result.power.searchOp.dynamic*clockRate*XML->sys.domain_size;
+// inv_dir.caches.local_result.power.searchOp.dynamic*clockRate*XML->sys.domain_size;
// cc.power.readOp.dynamic =
-//inv_dir.maxPower*scktRatio*64/XML->sys.domain_size;
+// inv_dir.maxPower*scktRatio*64/XML->sys.domain_size;
// cc.power.readOp.leakage =
-//inv_dir.caches.local_result.power.readOp.leakage*inv_dir.caches.l_ip.nbanks*64/XML->sys.domain_size;
+// inv_dir.caches.local_result.power.readOp.leakage*inv_dir.caches.l_ip.nbanks*64/XML->sys.domain_size;
//
// cc.area.set_area(inv_dir.area*64/XML->sys.domain_size);
// cout<<"CC area="<<cc.area.get_area()*1e-6<<endl;
// cout<<"CC Power="<<cc.power.readOp.dynamic<<endl;
// ccTot.area.set_area(cc.area.get_area()*1e-6);
// cout<<"DC energy per access" <<
-//cc.power.readOp.dynamic/clockRate/8;
+// cc.power.readOp.dynamic/clockRate/8;
// ccTot.power = cc.power;
// }
// }
@@ -1173,27 +1174,27 @@ void SharedCache::displayEnergy(uint32_t indent, bool is_tdp) {
//<<directory.maxPower<<endl;
//
// directory.maxPower +=
-//directory.missb.l_ip.num_search_ports*directory.missb.local_result.power.searchOp.dynamic*clockRate;
+// directory.missb.l_ip.num_search_ports*directory.missb.local_result.power.searchOp.dynamic*clockRate;
// ///cout<<"directory.maxPower="
//<<directory.maxPower<<endl;
//
// directory.maxPower +=
-//directory.ifb.l_ip.num_search_ports*directory.ifb.local_result.power.searchOp.dynamic*clockRate;
+// directory.ifb.l_ip.num_search_ports*directory.ifb.local_result.power.searchOp.dynamic*clockRate;
// ///cout<<"directory.maxPower="
//<<directory.maxPower<<endl;
//
// directory.maxPower +=
-//directory.prefetchb.l_ip.num_search_ports*directory.prefetchb.local_result.power.searchOp.dynamic*clockRate;
+// directory.prefetchb.l_ip.num_search_ports*directory.prefetchb.local_result.power.searchOp.dynamic*clockRate;
// ///cout<<"directory.maxPower="
//<<directory.maxPower<<endl;
//
// directory.maxPower +=
-//directory.wbb.l_ip.num_search_ports*directory.wbb.local_result.power.searchOp.dynamic*clockRate;
+// directory.wbb.l_ip.num_search_ports*directory.wbb.local_result.power.searchOp.dynamic*clockRate;
//
// cc.power.readOp.dynamic =
-//directory.maxPower*scktRatio*8;//8 is the memory controller counts
+// directory.maxPower*scktRatio*8;//8 is the memory controller counts
// cc.power.readOp.leakage =
-//directory.caches.local_result.power.readOp.leakage +
+// directory.caches.local_result.power.readOp.leakage +
// directory.missb.local_result.power.readOp.leakage
//+
// directory.ifb.local_result.power.readOp.leakage
@@ -1215,27 +1216,27 @@ void SharedCache::displayEnergy(uint32_t indent, bool is_tdp) {
//<<directory1.maxPower<<endl;
//
// directory1.maxPower +=
-//directory1.missb.l_ip.num_search_ports*directory1.missb.local_result.power.searchOp.dynamic*clockRate;
+// directory1.missb.l_ip.num_search_ports*directory1.missb.local_result.power.searchOp.dynamic*clockRate;
// ///cout<<"directory1.maxPower="
//<<directory1.maxPower<<endl;
//
// directory1.maxPower +=
-//directory1.ifb.l_ip.num_search_ports*directory1.ifb.local_result.power.searchOp.dynamic*clockRate;
+// directory1.ifb.l_ip.num_search_ports*directory1.ifb.local_result.power.searchOp.dynamic*clockRate;
// ///cout<<"directory1.maxPower="
//<<directory1.maxPower<<endl;
//
// directory1.maxPower +=
-//directory1.prefetchb.l_ip.num_search_ports*directory1.prefetchb.local_result.power.searchOp.dynamic*clockRate;
+// directory1.prefetchb.l_ip.num_search_ports*directory1.prefetchb.local_result.power.searchOp.dynamic*clockRate;
// ///cout<<"directory1.maxPower="
//<<directory1.maxPower<<endl;
//
// directory1.maxPower +=
-//directory1.wbb.l_ip.num_search_ports*directory1.wbb.local_result.power.searchOp.dynamic*clockRate;
+// directory1.wbb.l_ip.num_search_ports*directory1.wbb.local_result.power.searchOp.dynamic*clockRate;
//
// cc1.power.readOp.dynamic =
-//directory1.maxPower*scktRatio*64/XML->sys.domain_size;
+// directory1.maxPower*scktRatio*64/XML->sys.domain_size;
// cc1.power.readOp.leakage =
-//directory1.caches.local_result.power.readOp.leakage +
+// directory1.caches.local_result.power.readOp.leakage +
// directory1.missb.local_result.power.readOp.leakage
//+
// directory1.ifb.local_result.power.readOp.leakage
@@ -1247,26 +1248,26 @@ void SharedCache::displayEnergy(uint32_t indent, bool is_tdp) {
// cc1.area.set_area(directory1.area*64/XML->sys.domain_size);
//
// cout<<"CC
-//area="<<(cc.area.get_area()+cc1.area.get_area())*1e-6<<endl;
+// area="<<(cc.area.get_area()+cc1.area.get_area())*1e-6<<endl;
// cout<<"CC Power="<<cc.power.readOp.dynamic +
-//cc1.power.readOp.dynamic <<endl;
+// cc1.power.readOp.dynamic <<endl;
// ccTot.area.set_area((cc.area.get_area()+cc1.area.get_area())*1e-6);
// ccTot.power = cc.power + cc1.power;
// }
// else if (XML->sys.first_level_dir==1)
// {
// inv_dir.maxPower =
-//inv_dir.caches.local_result.power.searchOp.dynamic*clockRate*XML->sys.domain_size;
+// inv_dir.caches.local_result.power.searchOp.dynamic*clockRate*XML->sys.domain_size;
// cc1.power.readOp.dynamic =
-//inv_dir.maxPower*scktRatio*(64/XML->sys.domain_size);
+// inv_dir.maxPower*scktRatio*(64/XML->sys.domain_size);
// cc1.power.readOp.leakage =
-//inv_dir.caches.local_result.power.readOp.leakage*inv_dir.caches.l_ip.nbanks*XML->sys.domain_size;
+// inv_dir.caches.local_result.power.readOp.leakage*inv_dir.caches.l_ip.nbanks*XML->sys.domain_size;
//
// cc1.area.set_area(inv_dir.area*64/XML->sys.domain_size);
// cout<<"CC
-//area="<<(cc.area.get_area()+cc1.area.get_area())*1e-6<<endl;
+// area="<<(cc.area.get_area()+cc1.area.get_area())*1e-6<<endl;
// cout<<"CC Power="<<cc.power.readOp.dynamic +
-//cc1.power.readOp.dynamic <<endl;
+// cc1.power.readOp.dynamic <<endl;
// ccTot.area.set_area((cc.area.get_area()+cc1.area.get_area())*1e-6);
// ccTot.power = cc.power + cc1.power;
//
diff --git a/src/gpuwattch/technology_xeon_core.cc b/src/gpuwattch/technology_xeon_core.cc
index 11bb28e..561f5b5 100644
--- a/src/gpuwattch/technology_xeon_core.cc
+++ b/src/gpuwattch/technology_xeon_core.cc
@@ -1904,8 +1904,8 @@ void init_tech_params(double technology, bool is_tag) {
g_tp.min_w_nmos_ = 3 * g_ip->F_sz_um / 2;
g_tp.max_w_nmos_ = 100 * g_ip->F_sz_um;
- g_tp.w_iso = 12.5 * g_ip->F_sz_um; // was 10 micron for the 0.8 micron
- // process
+ g_tp.w_iso = 12.5 * g_ip->F_sz_um; // was 10 micron for the 0.8 micron
+ // process
g_tp.w_sense_n = 3.75 * g_ip->F_sz_um; // sense amplifier N-trans; was 3
// micron for the 0.8 micron process
g_tp.w_sense_p = 7.5 * g_ip->F_sz_um; // sense amplifier P-trans; was 6
diff --git a/src/gpuwattch/xmlParser.cc b/src/gpuwattch/xmlParser.cc
index 810e6fb..375236f 100644
--- a/src/gpuwattch/xmlParser.cc
+++ b/src/gpuwattch/xmlParser.cc
@@ -765,9 +765,9 @@ static const char XML_gbk_big5_ByteTable[256] = {
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 1 // 0xf0
};
-static const char *XML_ByteTable = (const char *)
- XML_utf8ByteTable; // the default is
- // "characterEncoding=XMLNode::encoding_UTF8"
+static const char *XML_ByteTable =
+ (const char *)XML_utf8ByteTable; // the default is
+// "characterEncoding=XMLNode::encoding_UTF8"
#endif
XMLNode XMLNode::emptyXMLNode;
diff --git a/src/gpuwattch/xmlParser.h b/src/gpuwattch/xmlParser.h
index 64f5515..caee181 100644
--- a/src/gpuwattch/xmlParser.h
+++ b/src/gpuwattch/xmlParser.h
@@ -391,7 +391,7 @@ typedef struct XMLDLLENTRY XMLNode {
*/
static XMLCSTR getError(XMLError error); ///< this gives you a user-friendly
- ///explanation of the parsing error
+ /// explanation of the parsing error
/// Create an XML string starting from the current XMLNode.
XMLSTR createXMLString(int nFormat = 1, int *pnSize = NULL) const;
@@ -426,23 +426,23 @@ typedef struct XMLDLLENTRY XMLNode {
XMLNode getParentNode() const; ///< return the parent node
XMLNode getChildNode(int i = 0) const; ///< return ith child node
XMLNode getChildNode(XMLCSTR name, int i) const; ///< return ith child node
- ///with specific name
- ///(return an empty node if
- ///failing). If i==-1, this
- ///returns the last XMLNode
- ///with the given name.
+ /// with specific name
+ ///(return an empty node if
+ /// failing). If i==-1, this
+ /// returns the last XMLNode
+ /// with the given name.
XMLNode getChildNode(XMLCSTR name, int *i = NULL) const; ///< return next
- ///child node with
- ///specific name
- ///(return an empty
- ///node if failing)
+ /// child node with
+ /// specific name
+ ///(return an empty
+ /// node if failing)
XMLNode getChildNodeWithAttribute(XMLCSTR tagName, XMLCSTR attributeName,
XMLCSTR attributeValue = NULL,
int *i = NULL) const; ///< return child
- ///node with specific
- ///name/attribute
- ///(return an empty
- ///node if failing)
+ /// node with specific
+ /// name/attribute
+ ///(return an empty
+ /// node if failing)
XMLNode getChildNodeByPath(XMLCSTR path, char createNodeIfMissing = 0,
XMLCHAR sep = '/');
///< return the first child node with specific path
@@ -459,21 +459,21 @@ typedef struct XMLDLLENTRY XMLNode {
char isAttributeSet(XMLCSTR name)
const; ///< test if an attribute with a specific name is given
XMLCSTR getAttribute(XMLCSTR name, int i) const; ///< return ith attribute
- ///content with specific
- ///name (return a NULL if
- ///failing)
+ /// content with specific
+ /// name (return a NULL if
+ /// failing)
XMLCSTR getAttribute(XMLCSTR name, int *i = NULL) const; ///< return next
- ///attribute content
- ///with specific
- ///name (return a
- ///NULL if failing)
+ /// attribute content
+ /// with specific
+ /// name (return a
+ /// NULL if failing)
int nAttribute() const; ///< nbr of attribute
XMLClear getClear(int i = 0) const; ///< return ith clear field (comments)
int nClear() const; ///< nbr of clear field
XMLNodeContents enumContents(XMLElementPosition i)
const; ///< enumerate all the different contents (attribute,child,text,
- ///clear) of the current XMLNode. The order is reflecting the
- ///order of the original file/string. NOTE: 0 <= i < nElement();
+ /// clear) of the current XMLNode. The order is reflecting the
+ /// order of the original file/string. NOTE: 0 <= i < nElement();
int nElement() const; ///< nbr of different contents for current node
char isEmpty() const; ///< is this node Empty?
char isDeclaration() const; ///< is this node a declaration <? .... ?>
@@ -515,10 +515,10 @@ typedef struct XMLDLLENTRY XMLNode {
XMLElementPosition pos = -1); ///< Add a new child node
XMLNode addChild(XMLNode nodeToAdd,
XMLElementPosition pos = -1); ///< If the "nodeToAdd" has
- ///some parents, it will be
- ///detached from it's parents
- ///before being attached to
- ///the current XMLNode
+ /// some parents, it will be
+ /// detached from it's parents
+ /// before being attached to
+ /// the current XMLNode
XMLAttribute *addAttribute(XMLCSTR lpszName,
XMLCSTR lpszValuev); ///< Add a new attribute
XMLCSTR addText(XMLCSTR lpszValue,
@@ -539,41 +539,41 @@ typedef struct XMLDLLENTRY XMLNode {
XMLCSTR updateName(XMLCSTR lpszName); ///< change node's name
XMLAttribute *updateAttribute(XMLAttribute *newAttribute,
XMLAttribute *oldAttribute); ///< if the
- ///attribute to
- ///update is
- ///missing, a new
- ///one will be
- ///added
+ /// attribute to
+ /// update is
+ /// missing, a new
+ /// one will be
+ /// added
XMLAttribute *updateAttribute(XMLCSTR lpszNewValue,
XMLCSTR lpszNewName = NULL,
int i = 0); ///< if the attribute to update is
- ///missing, a new one will be added
+ /// missing, a new one will be added
XMLAttribute *updateAttribute(XMLCSTR lpszNewValue, XMLCSTR lpszNewName,
XMLCSTR lpszOldName); ///< set lpszNewName=NULL
- ///if you don't want to
- ///change the name of the
- ///attribute if the
- ///attribute to update is
- ///missing, a new one
- ///will be added
+ /// if you don't want to
+ /// change the name of the
+ /// attribute if the
+ /// attribute to update is
+ /// missing, a new one
+ /// will be added
XMLCSTR updateText(XMLCSTR lpszNewValue, int i = 0); ///< if the text to
- ///update is missing, a
- ///new one will be added
+ /// update is missing, a
+ /// new one will be added
XMLCSTR updateText(XMLCSTR lpszNewValue,
XMLCSTR lpszOldValue); ///< if the text to update is
- ///missing, a new one will be added
+ /// missing, a new one will be added
XMLClear *updateClear(XMLCSTR lpszNewContent,
int i = 0); ///< if the clearTag to update is missing,
- ///a new one will be added
+ /// a new one will be added
XMLClear *updateClear(XMLClear *newP, XMLClear *oldP); ///< if the clearTag
- ///to update is
- ///missing, a new one
- ///will be added
+ /// to update is
+ /// missing, a new one
+ /// will be added
XMLClear *updateClear(XMLCSTR lpszNewValue,
XMLCSTR lpszOldValue); ///< if the clearTag to update
- ///is missing, a new one will be
- ///added
- /** @} */
+ /// is missing, a new one will be
+ /// added
+ /** @} */
/** @defgroup xmlDelete Deleting Nodes or Attributes
* @ingroup xmlModify
@@ -589,33 +589,33 @@ typedef struct XMLDLLENTRY XMLNode {
void deleteAttribute(
int i = 0); ///< Delete the ith attribute of the current XMLNode
void deleteAttribute(XMLCSTR lpszName); ///< Delete the attribute with the
- ///given name (the "strcmp" function
- ///is used to find the right
- ///attribute)
+ /// given name (the "strcmp" function
+ /// is used to find the right
+ /// attribute)
void deleteAttribute(XMLAttribute *anAttribute); ///< Delete the attribute
- ///with the name
- ///"anAttribute->lpszName"
- ///(the "strcmp" function is
- ///used to find the right
- ///attribute)
+ /// with the name
+ ///"anAttribute->lpszName"
+ ///(the "strcmp" function is
+ /// used to find the right
+ /// attribute)
void deleteText(
int i = 0); ///< Delete the Ith text content of the current XMLNode
void deleteText(XMLCSTR lpszValue); ///< Delete the text content "lpszValue"
- ///inside the current XMLNode (direct
- ///"pointer-to-pointer" comparison is
- ///used to find the right text)
+ /// inside the current XMLNode (direct
+ ///"pointer-to-pointer" comparison is
+ /// used to find the right text)
void deleteClear(
int i = 0); ///< Delete the Ith clear tag inside the current XMLNode
void deleteClear(XMLCSTR lpszValue); ///< Delete the clear tag "lpszValue"
- ///inside the current XMLNode (direct
- ///"pointer-to-pointer" comparison is
- ///used to find the clear tag)
- void deleteClear(XMLClear *p); ///< Delete the clear tag "p" inside the
- ///current XMLNode (direct
+ /// inside the current XMLNode (direct
+ ///"pointer-to-pointer" comparison is
+ /// used to find the clear tag)
+ void deleteClear(XMLClear *p); ///< Delete the clear tag "p" inside the
+ /// current XMLNode (direct
///"pointer-to-pointer" comparison on the
- ///lpszName of the clear tag is used to find
- ///the clear tag)
- /** @} */
+ /// lpszName of the clear tag is used to find
+ /// the clear tag)
+ /** @} */
/** @defgroup xmlWOSD ???_WOSD functions.
* @ingroup xmlModify
@@ -666,49 +666,49 @@ typedef struct XMLDLLENTRY XMLNode {
XMLCSTR updateName_WOSD(XMLSTR lpszName); ///< change node's name
XMLAttribute *updateAttribute_WOSD(XMLAttribute *newAttribute,
XMLAttribute *oldAttribute); ///< if the
- ///attribute
- ///to update
- ///is
- ///missing, a
- ///new one
- ///will be
- ///added
+ /// attribute
+ /// to update
+ /// is
+ /// missing, a
+ /// new one
+ /// will be
+ /// added
XMLAttribute *updateAttribute_WOSD(XMLSTR lpszNewValue,
XMLSTR lpszNewName = NULL,
int i = 0); ///< if the attribute to
- ///update is missing, a new
- ///one will be added
+ /// update is missing, a new
+ /// one will be added
XMLAttribute *updateAttribute_WOSD(XMLSTR lpszNewValue, XMLSTR lpszNewName,
XMLCSTR lpszOldName); ///< set
- ///lpszNewName=NULL
- ///if you don't want
- ///to change the
- ///name of the
- ///attribute if the
- ///attribute to
- ///update is
- ///missing, a new
- ///one will be added
+ /// lpszNewName=NULL
+ /// if you don't want
+ /// to change the
+ /// name of the
+ /// attribute if the
+ /// attribute to
+ /// update is
+ /// missing, a new
+ /// one will be added
XMLCSTR updateText_WOSD(XMLSTR lpszNewValue, int i = 0); ///< if the text to
- ///update is
- ///missing, a new
- ///one will be added
+ /// update is
+ /// missing, a new
+ /// one will be added
XMLCSTR updateText_WOSD(XMLSTR lpszNewValue,
XMLCSTR lpszOldValue); ///< if the text to update is
- ///missing, a new one will be
- ///added
+ /// missing, a new one will be
+ /// added
XMLClear *updateClear_WOSD(XMLSTR lpszNewContent,
int i = 0); ///< if the clearTag to update is
- ///missing, a new one will be added
+ /// missing, a new one will be added
XMLClear *updateClear_WOSD(XMLClear *newP,
XMLClear *oldP); ///< if the clearTag to update is
- ///missing, a new one will be
- ///added
+ /// missing, a new one will be
+ /// added
XMLClear *updateClear_WOSD(XMLSTR lpszNewValue,
XMLCSTR lpszOldValue); ///< if the clearTag to
- ///update is missing, a new
- ///one will be added
- /** @} */
+ /// update is missing, a new
+ /// one will be added
+ /** @} */
/** @defgroup xmlPosition Position helper functions (use in conjunction with
* the update&add functions
@@ -729,7 +729,7 @@ typedef struct XMLDLLENTRY XMLNode {
XMLElementPosition positionOfChildNode(XMLNode x) const;
XMLElementPosition positionOfChildNode(XMLCSTR name, int i = 0)
const; ///< return the position of the ith childNode with the specified
- ///name if (name==NULL) return the position of the ith childNode
+ /// name if (name==NULL) return the position of the ith childNode
/** @} */
/// Enumeration for XML character encoding.
@@ -970,11 +970,11 @@ typedef struct XMLDLLENTRY ToXMLStringTool {
ToXMLStringTool() : buf(NULL), buflen(0) {}
~ToXMLStringTool();
void freeBuffer(); ///<call this function when you have finished using this
- ///object to release memory used by the internal buffer.
+ /// object to release memory used by the internal buffer.
XMLSTR toXML(XMLCSTR source); ///< returns a pointer to an internal buffer
- ///that contains a XML-encoded string based on
- ///the "source" parameter.
+ /// that contains a XML-encoded string based on
+ /// the "source" parameter.
/** The "toXMLUnSafe" function is deprecated because there is a possibility of
* "destination-buffer-overflow". It converts the string
@@ -1015,16 +1015,16 @@ typedef struct XMLDLLENTRY XMLParserBase64Tool {
XMLParserBase64Tool() : buf(NULL), buflen(0) {}
~XMLParserBase64Tool();
void freeBuffer(); ///< Call this function when you have finished using this
- ///object to release memory used by the internal buffer.
+ /// object to release memory used by the internal buffer.
/**
* @param formatted If "formatted"=true, some space will be reserved for a
* carriage-return every 72 chars. */
static int encodeLength(int inBufLen,
char formatted = 0); ///< return the length of the
- ///base64 string that encodes a
- ///data buffer of size inBufLen
- ///bytes.
+ /// base64 string that encodes a
+ /// data buffer of size inBufLen
+ /// bytes.
/**
* The "base64Encode" function returns a string containing the base64 encoding
@@ -1035,9 +1035,9 @@ typedef struct XMLDLLENTRY XMLParserBase64Tool {
* All returned strings are sharing the same memory space. */
XMLSTR encode(unsigned char *inByteBuf, unsigned int inByteLen,
char formatted = 0); ///< returns a pointer to an internal
- ///buffer containing the base64 string
- ///containing the binary data encoded from
- ///"inByteBuf"
+ /// buffer containing the base64 string
+ /// containing the binary data encoded from
+ ///"inByteBuf"
/// returns the number of bytes which will be decoded from "inString".
static unsigned int decodeSize(XMLCSTR inString, XMLError *xe = NULL);
@@ -1051,9 +1051,9 @@ typedef struct XMLDLLENTRY XMLParserBase64Tool {
* @param inString If "instring" is malformed, NULL will be returned */
unsigned char *decode(XMLCSTR inString, int *outByteLen = NULL,
XMLError *xe = NULL); ///< returns a pointer to an
- ///internal buffer containing the
- ///binary data decoded from
- ///"inString"
+ /// internal buffer containing the
+ /// binary data decoded from
+ ///"inString"
/**
* decodes data from "inString" to "outByteBuf". You need to provide the size