1/* 2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 210 unchanged lines hidden (view full) --- 219 out << setw(10) << *j; 220 out << setw(11) << count; 221 out << setw(14) << percent << endl; 222 } 223 out << endl; 224} 225 226void |
227Profiler::printDelayProfile(ostream &out) 228{ 229 out << "Message Delayed Cycles" << endl; 230 out << "----------------------" << endl; 231 232 uint32_t numVNets = Network::getNumberOfVirtualNetworks(); 233 Histogram delayHistogram; 234 std::vector<Histogram> delayVCHistogram(numVNets); 235 236 for (uint32_t i = 0; i < MachineType_NUM; i++) { 237 for (map<uint32_t, AbstractController*>::iterator it = 238 g_abs_controls[i].begin(); 239 it != g_abs_controls[i].end(); ++it) { 240 241 AbstractController *ctr = (*it).second; 242 delayHistogram.add(ctr->getDelayHist()); 243 244 for (uint32_t i = 0; i < numVNets; i++) { 245 delayVCHistogram[i].add(ctr->getDelayVCHist(i)); 246 } 247 } 248 } 249 250 out << "Total_delay_cycles: " << delayHistogram << endl; 251 252 for (int i = 0; i < numVNets; i++) { 253 out << " virtual_network_" << i << "_delay_cycles: " 254 << delayVCHistogram[i] << endl; 255 } 256} 257 258void |
259Profiler::printStats(ostream& out, bool short_stats) 260{ 261 out << endl; 262 if (short_stats) { 263 out << "SHORT "; 264 } 265 out << "Profiler Stats" << endl; 266 out << "--------------" << endl; --- 195 unchanged lines hidden (view full) --- 462 m_address_profiler_ptr->printStats(out); 463 } 464 465 if (m_all_instructions) { 466 m_inst_profiler_ptr->printStats(out); 467 } 468 469 out << endl; |
470 printDelayProfile(out); |
471 printResourceUsage(out); 472 } 473} 474 475void 476Profiler::printResourceUsage(ostream& out) const 477{ 478 out << endl; --- 27 unchanged lines hidden (view full) --- 506 m_cycles_executed_at_start[i] = 0; 507 } else { 508 m_cycles_executed_at_start[i] = g_system_ptr->getTime(); 509 } 510 } 511 512 m_busyBankCount = 0; 513 |
514 m_missLatencyHistograms.resize(RubyRequestType_NUM); 515 for (int i = 0; i < m_missLatencyHistograms.size(); i++) { 516 m_missLatencyHistograms[i].clear(200); 517 } 518 m_machLatencyHistograms.resize(GenericMachineType_NUM+1); 519 for (int i = 0; i < m_machLatencyHistograms.size(); i++) { 520 m_machLatencyHistograms[i].clear(200); 521 } --- 82 unchanged lines hidden (view full) --- 604 if (number_contacted == 0) { 605 m_memory_to_cache++; 606 } else { 607 m_cache_to_cache++; 608 } 609} 610 611void |
612Profiler::profilePFWait(Time waitTime) 613{ 614 m_prefetchWaitHistogram.add(waitTime); 615} 616 617void 618Profiler::bankBusy() 619{ --- 135 unchanged lines hidden --- |