public MonitoringUpdateResults Update() { MonitoringUpdateResults results = new MonitoringUpdateResults(); results.unitMetrics = new string[cpu.GetThreadCount()][]; cpu.InitializeCoreTotals(); for (int threadIdx = 0; threadIdx < cpu.GetThreadCount(); threadIdx++) { cpu.UpdateThreadCoreCounterData(threadIdx); results.unitMetrics[threadIdx] = computeMetrics("Thread " + threadIdx, cpu.NormalizedThreadCounts[threadIdx]); } results.overallMetrics = computeMetrics("Overall", cpu.NormalizedTotalCounts); results.overallCounterValues = cpu.GetOverallCounterValues("Cycles Not In Halt", "Retired Instr", "DC Fill From L2", "DC Fill From Cache", "DC Fill From DRAM", "DC Fill From Remote Cache or DRAM"); return(results); }
public MonitoringUpdateResults Update() { MonitoringUpdateResults results = new MonitoringUpdateResults(); results.unitMetrics = new string[cpu.GetThreadCount()][]; cpu.InitializeCoreTotals(); for (int threadIdx = 0; threadIdx < cpu.GetThreadCount(); threadIdx++) { cpu.UpdateThreadCoreCounterData(threadIdx); results.unitMetrics[threadIdx] = computeMetrics("Thread " + threadIdx, cpu.NormalizedThreadCounts[threadIdx]); } cpu.ReadPackagePowerCounter(); results.overallMetrics = computeMetrics("Overall", cpu.NormalizedTotalCounts); results.overallCounterValues = cpu.GetOverallCounterValues("Cycles Not In Halt", "Instructions Retired", "Ret Branches", "Ret Misp Branches", "L1 BTB Overrides", "L2 BTB Overrides"); return(results); }