Profiler.cc (7546:84e8f914b3b8) | Profiler.cc (7565:9fc3475e8175) |
---|---|
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; --- 272 unchanged lines hidden (view full) --- 281 } 282 for (int i = 0; i < m_machLatencyHistograms.size(); i++) { 283 if (m_machLatencyHistograms[i].size() > 0) { 284 out << "miss_latency_" << GenericMachineType(i) << ": " 285 << m_machLatencyHistograms[i] << endl; 286 } 287 } 288 | 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; --- 272 unchanged lines hidden (view full) --- 281 } 282 for (int i = 0; i < m_machLatencyHistograms.size(); i++) { 283 if (m_machLatencyHistograms[i].size() > 0) { 284 out << "miss_latency_" << GenericMachineType(i) << ": " 285 << m_machLatencyHistograms[i] << endl; 286 } 287 } 288 |
289 out << "miss_latency_wCC_issue_to_initial_request: " 290 << m_wCCIssueToInitialRequestHistogram << endl; 291 out << "miss_latency_wCC_initial_forward_request: " 292 << m_wCCInitialRequestToForwardRequestHistogram << endl; 293 out << "miss_latency_wCC_forward_to_first_response: " 294 << m_wCCForwardRequestToFirstResponseHistogram << endl; 295 out << "miss_latency_wCC_first_response_to_completion: " 296 << m_wCCFirstResponseToCompleteHistogram << endl; 297 out << "imcomplete_wCC_Times: " << m_wCCIncompleteTimes << endl; 298 out << "miss_latency_dir_issue_to_initial_request: " 299 << m_dirIssueToInitialRequestHistogram << endl; 300 out << "miss_latency_dir_initial_forward_request: " 301 << m_dirInitialRequestToForwardRequestHistogram << endl; 302 out << "miss_latency_dir_forward_to_first_response: " 303 << m_dirForwardRequestToFirstResponseHistogram << endl; 304 out << "miss_latency_dir_first_response_to_completion: " 305 << m_dirFirstResponseToCompleteHistogram << endl; 306 out << "imcomplete_dir_Times: " << m_dirIncompleteTimes << endl; 307 308 for (int i = 0; i < m_missMachLatencyHistograms.size(); i++) { 309 for (int j = 0; j < m_missMachLatencyHistograms[i].size(); j++) { 310 if (m_missMachLatencyHistograms[i][j].size() > 0) { 311 out << "miss_latency_" << RubyRequestType(i) 312 << "_" << GenericMachineType(j) << ": " 313 << m_missMachLatencyHistograms[i][j] << endl; 314 } 315 } 316 } 317 |
|
289 out << endl; 290 291 out << "All Non-Zero Cycle SW Prefetch Requests" << endl; 292 out << "------------------------------------" << endl; 293 out << "prefetch_latency: " << m_allSWPrefetchLatencyHistogram << endl; 294 for (int i = 0; i < m_SWPrefetchLatencyHistograms.size(); i++) { 295 if (m_SWPrefetchLatencyHistograms[i].size() > 0) { 296 out << "prefetch_latency_" << CacheRequestType(i) << ": " --- 152 unchanged lines hidden (view full) --- 449 m_missLatencyHistograms.resize(RubyRequestType_NUM); 450 for (int i = 0; i < m_missLatencyHistograms.size(); i++) { 451 m_missLatencyHistograms[i].clear(200); 452 } 453 m_machLatencyHistograms.resize(GenericMachineType_NUM+1); 454 for (int i = 0; i < m_machLatencyHistograms.size(); i++) { 455 m_machLatencyHistograms[i].clear(200); 456 } | 318 out << endl; 319 320 out << "All Non-Zero Cycle SW Prefetch Requests" << endl; 321 out << "------------------------------------" << endl; 322 out << "prefetch_latency: " << m_allSWPrefetchLatencyHistogram << endl; 323 for (int i = 0; i < m_SWPrefetchLatencyHistograms.size(); i++) { 324 if (m_SWPrefetchLatencyHistograms[i].size() > 0) { 325 out << "prefetch_latency_" << CacheRequestType(i) << ": " --- 152 unchanged lines hidden (view full) --- 478 m_missLatencyHistograms.resize(RubyRequestType_NUM); 479 for (int i = 0; i < m_missLatencyHistograms.size(); i++) { 480 m_missLatencyHistograms[i].clear(200); 481 } 482 m_machLatencyHistograms.resize(GenericMachineType_NUM+1); 483 for (int i = 0; i < m_machLatencyHistograms.size(); i++) { 484 m_machLatencyHistograms[i].clear(200); 485 } |
486 m_missMachLatencyHistograms.resize(RubyRequestType_NUM); 487 for (int i = 0; i < m_missLatencyHistograms.size(); i++) { 488 m_missMachLatencyHistograms[i].resize(GenericMachineType_NUM+1); 489 for (int j = 0; j < m_missMachLatencyHistograms[i].size(); j++) { 490 m_missMachLatencyHistograms[i][j].clear(200); 491 } 492 } |
|
457 m_allMissLatencyHistogram.clear(200); | 493 m_allMissLatencyHistogram.clear(200); |
494 m_wCCIssueToInitialRequestHistogram.clear(200); 495 m_wCCInitialRequestToForwardRequestHistogram.clear(200); 496 m_wCCForwardRequestToFirstResponseHistogram.clear(200); 497 m_wCCFirstResponseToCompleteHistogram.clear(200); 498 m_wCCIncompleteTimes = 0; 499 m_dirIssueToInitialRequestHistogram.clear(200); 500 m_dirInitialRequestToForwardRequestHistogram.clear(200); 501 m_dirForwardRequestToFirstResponseHistogram.clear(200); 502 m_dirFirstResponseToCompleteHistogram.clear(200); 503 m_dirIncompleteTimes = 0; |
|
458 459 m_SWPrefetchLatencyHistograms.resize(CacheRequestType_NUM); 460 for (int i = 0; i < m_SWPrefetchLatencyHistograms.size(); i++) { 461 m_SWPrefetchLatencyHistograms[i].clear(200); 462 } 463 m_SWPrefetchMachLatencyHistograms.resize(GenericMachineType_NUM+1); 464 for (int i = 0; i < m_SWPrefetchMachLatencyHistograms.size(); i++) { 465 m_SWPrefetchMachLatencyHistograms[i].clear(200); --- 110 unchanged lines hidden (view full) --- 576void 577Profiler::missLatency(Time cycles, 578 RubyRequestType type, 579 const GenericMachineType respondingMach) 580{ 581 m_allMissLatencyHistogram.add(cycles); 582 m_missLatencyHistograms[type].add(cycles); 583 m_machLatencyHistograms[respondingMach].add(cycles); | 504 505 m_SWPrefetchLatencyHistograms.resize(CacheRequestType_NUM); 506 for (int i = 0; i < m_SWPrefetchLatencyHistograms.size(); i++) { 507 m_SWPrefetchLatencyHistograms[i].clear(200); 508 } 509 m_SWPrefetchMachLatencyHistograms.resize(GenericMachineType_NUM+1); 510 for (int i = 0; i < m_SWPrefetchMachLatencyHistograms.size(); i++) { 511 m_SWPrefetchMachLatencyHistograms[i].clear(200); --- 110 unchanged lines hidden (view full) --- 622void 623Profiler::missLatency(Time cycles, 624 RubyRequestType type, 625 const GenericMachineType respondingMach) 626{ 627 m_allMissLatencyHistogram.add(cycles); 628 m_missLatencyHistograms[type].add(cycles); 629 m_machLatencyHistograms[respondingMach].add(cycles); |
630 m_missMachLatencyHistograms[type][respondingMach].add(cycles); |
|
584} 585 | 631} 632 |
633void 634Profiler::missLatencyWcc(Time issuedTime, 635 Time initialRequestTime, 636 Time forwardRequestTime, 637 Time firstResponseTime, 638 Time completionTime) 639{ 640 if ((issuedTime <= initialRequestTime) && 641 (initialRequestTime <= forwardRequestTime) && 642 (forwardRequestTime <= firstResponseTime) && 643 (firstResponseTime <= completionTime)) { 644 m_wCCIssueToInitialRequestHistogram.add(initialRequestTime - issuedTime); 645 646 m_wCCInitialRequestToForwardRequestHistogram.add(forwardRequestTime - 647 initialRequestTime); 648 649 m_wCCForwardRequestToFirstResponseHistogram.add(firstResponseTime - 650 forwardRequestTime); 651 652 m_wCCFirstResponseToCompleteHistogram.add(completionTime - 653 firstResponseTime); 654 } else { 655 m_wCCIncompleteTimes++; 656 } 657} 658 659void 660Profiler::missLatencyDir(Time issuedTime, 661 Time initialRequestTime, 662 Time forwardRequestTime, 663 Time firstResponseTime, 664 Time completionTime) 665{ 666 if ((issuedTime <= initialRequestTime) && 667 (initialRequestTime <= forwardRequestTime) && 668 (forwardRequestTime <= firstResponseTime) && 669 (firstResponseTime <= completionTime)) { 670 m_dirIssueToInitialRequestHistogram.add(initialRequestTime - issuedTime); 671 672 m_dirInitialRequestToForwardRequestHistogram.add(forwardRequestTime - 673 initialRequestTime); 674 675 m_dirForwardRequestToFirstResponseHistogram.add(firstResponseTime - 676 forwardRequestTime); 677 678 m_dirFirstResponseToCompleteHistogram.add(completionTime - 679 firstResponseTime); 680 } else { 681 m_dirIncompleteTimes++; 682 } 683} 684 |
|
586// non-zero cycle prefetch request 587void 588Profiler::swPrefetchLatency(Time cycles, 589 CacheRequestType type, 590 const GenericMachineType respondingMach) 591{ 592 m_allSWPrefetchLatencyHistogram.add(cycles); 593 m_SWPrefetchLatencyHistograms[type].add(cycles); --- 99 unchanged lines hidden --- | 685// non-zero cycle prefetch request 686void 687Profiler::swPrefetchLatency(Time cycles, 688 CacheRequestType type, 689 const GenericMachineType respondingMach) 690{ 691 m_allSWPrefetchLatencyHistogram.add(cycles); 692 m_SWPrefetchLatencyHistograms[type].add(cycles); --- 99 unchanged lines hidden --- |