From 84c6cf45131e42b1a724ebf7977987a9ddb70db9 Mon Sep 17 00:00:00 2001 From: VijayKandiah Date: Sun, 17 Oct 2021 02:18:10 -0500 Subject: AccelWattch dev Integration --- src/gpuwattch/XML_Parse.cc | 4584 -------------------------------------------- 1 file changed, 4584 deletions(-) delete mode 100644 src/gpuwattch/XML_Parse.cc (limited to 'src/gpuwattch/XML_Parse.cc') diff --git a/src/gpuwattch/XML_Parse.cc b/src/gpuwattch/XML_Parse.cc deleted file mode 100644 index 1b9a38a..0000000 --- a/src/gpuwattch/XML_Parse.cc +++ /dev/null @@ -1,4584 +0,0 @@ -/***************************************************************************** - * McPAT - * SOFTWARE LICENSE AGREEMENT - * Copyright 2012 Hewlett-Packard Development Company, L.P. - * All Rights Reserved - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.” - * - ***************************************************************************/ -/******************************************************************** - * Modified by: - ** Jingwen Leng, Univeristy of Texas, Austin * Syed Gilani, - *University of Wisconsin–Madison * Tayler Hetherington, - *University of British Columbia * Ahmed ElTantawy, University of - *British Columbia * - ********************************************************************/ - -#include "XML_Parse.h" -#include -#include -#include "xmlParser.h" - -using namespace std; - -const char* perf_count_label[] = { - "TOT_INST,", "FP_INT,", "IC_H,", "IC_M,", "DC_RH,", - "DC_RM,", "DC_WH,", "DC_WM,", "TC_H,", "TC_M,", - "CC_H,", "CC_M,", "SHRD_ACC,", "REG_RD,", "REG_WR,", - "NON_REG_OPs,", "SP_ACC,", "SFU_ACC,", "FPU_ACC,", "MEM_RD,", - "MEM_WR,", "MEM_PRE,", "L2_RH,", "L2_RM,", "L2_WH,", - "L2_WM,", "NOC_A,", "PIPE_A,", "IDLE_CORE_N,", "CONST_DYNAMICN"}; - -void ParseXML::parse(char* filepath) { - unsigned int i, j, k, m, n; - unsigned int NumofCom_4; - unsigned int itmp; - // Initialize all structures - ParseXML::initialize(); - string strtmp; - char chtmp[60]; - char chtmp1[60]; - chtmp1[0] = '\0'; - // this open and parse the XML file: - XMLNode xMainNode = XMLNode::openFileHelper( - filepath, "component"); // the 'component' in the first layer - - XMLNode xNode2 = xMainNode.getChildNode( - "component"); // the 'component' in the second layer - // get all params in the second layer - itmp = xNode2.nChildNode("param"); - for (i = 0; i < itmp; i++) { - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "GPU_Architecture") == 0) { - sys.GPU_Architecture = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "number_of_cores") == 0) { - sys.number_of_cores = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "architecture") == 0) { - sys.architecture = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "number_of_L1Directories") == 0) { - sys.number_of_L1Directories = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "number_of_L2Directories") == 0) { - sys.number_of_L2Directories = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "number_of_L2s") == 0) { - sys.number_of_L2s = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "Private_L2") == 0) { - sys.Private_L2 = - (bool)atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "number_of_L3s") == 0) { - sys.number_of_L3s = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "number_of_NoCs") == 0) { - sys.number_of_NoCs = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "number_of_dir_levels") == 0) { - sys.number_of_dir_levels = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "domain_size") == 0) { - sys.domain_size = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "first_level_dir") == 0) { - sys.first_level_dir = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "homogeneous_cores") == 0) { - sys.homogeneous_cores = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "core_tech_node") == 0) { - sys.core_tech_node = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "target_core_clockrate") == 0) { - sys.target_core_clockrate = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "target_chip_area") == 0) { - sys.target_chip_area = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "temperature") == 0) { - sys.temperature = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "number_cache_levels") == 0) { - sys.number_cache_levels = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "L1_property") == 0) { - sys.L1_property = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "L2_property") == 0) { - sys.L2_property = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "homogeneous_L2s") == 0) { - sys.homogeneous_L2s = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "homogeneous_L1Directories") == 0) { - sys.homogeneous_L1Directories = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "homogeneous_L2Directories") == 0) { - sys.homogeneous_L2Directories = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "L3_property") == 0) { - sys.L3_property = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "homogeneous_L3s") == 0) { - sys.homogeneous_L3s = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "homogeneous_ccs") == 0) { - sys.homogeneous_ccs = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "homogeneous_NoCs") == 0) { - sys.homogeneous_NoCs = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "Max_area_deviation") == 0) { - sys.Max_area_deviation = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "Max_power_deviation") == 0) { - sys.Max_power_deviation = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "device_type") == 0) { - sys.device_type = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "longer_channel_device") == 0) { - sys.longer_channel_device = - (bool)atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "opt_dynamic_power") == 0) { - sys.opt_dynamic_power = - (bool)atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "opt_lakage_power") == 0) { - sys.opt_lakage_power = - (bool)atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "opt_clockrate") == 0) { - sys.opt_clockrate = - (bool)atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "opt_area") == 0) { - sys.opt_area = - (bool)atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "Embedded") == 0) { - sys.Embedded = - (bool)atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "interconnect_projection_type") == 0) { - sys.interconnect_projection_type = - atoi(xNode2.getChildNode("param", i).getAttribute("value")) == 0 ? 0 - : 1; - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "machine_bits") == 0) { - sys.machine_bits = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "virtual_address_width") == 0) { - sys.virtual_address_width = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "physical_address_width") == 0) { - sys.physical_address_width = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "virtual_memory_page_size") == 0) { - sys.virtual_memory_page_size = - atoi(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "idle_core_power") == 0) { - sys.idle_core_power = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "TOT_INST") == 0) { - sys.scaling_coefficients[TOT_INST] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "FP_INT") == 0) { - sys.scaling_coefficients[FP_INT] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "IC_H") == - 0) { - sys.scaling_coefficients[IC_H] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "IC_M") == - 0) { - sys.scaling_coefficients[IC_M] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "DC_RH") == - 0) { - sys.scaling_coefficients[DC_RH] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "DC_RM") == - 0) { - sys.scaling_coefficients[DC_RM] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "DC_WH") == - 0) { - sys.scaling_coefficients[DC_WH] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "DC_WM") == - 0) { - sys.scaling_coefficients[DC_WM] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "TC_H") == - 0) { - sys.scaling_coefficients[TC_H] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "TC_M") == - 0) { - sys.scaling_coefficients[TC_M] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "CC_H") == - 0) { - sys.scaling_coefficients[CC_H] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "CC_M") == - 0) { - sys.scaling_coefficients[CC_M] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "SHRD_ACC") == 0) { - sys.scaling_coefficients[SHRD_ACC] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "REG_RD") == 0) { - sys.scaling_coefficients[REG_RD] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "REG_WR") == 0) { - sys.scaling_coefficients[REG_WR] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "NON_REG_OPs") == 0) { - sys.scaling_coefficients[NON_REG_OPs] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "SP_ACC") == 0) { - sys.scaling_coefficients[SP_ACC] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "SFU_ACC") == 0) { - sys.scaling_coefficients[SFU_ACC] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "FPU_ACC") == 0) { - sys.scaling_coefficients[FPU_ACC] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "MEM_RD") == 0) { - sys.scaling_coefficients[MEM_RD] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "MEM_WR") == 0) { - sys.scaling_coefficients[MEM_WR] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "MEM_PRE") == 0) { - sys.scaling_coefficients[MEM_PRE] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "L2_RH") == - 0) { - sys.scaling_coefficients[L2_RH] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "L2_RM") == - 0) { - sys.scaling_coefficients[L2_RM] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "L2_WH") == - 0) { - sys.scaling_coefficients[L2_WH] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "L2_WM") == - 0) { - sys.scaling_coefficients[L2_WM] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), "NOC_A") == - 0) { - sys.scaling_coefficients[NOC_A] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "PIPE_A") == 0) { - sys.scaling_coefficients[PIPE_A] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "IDLE_CORE_N") == 0) { - sys.scaling_coefficients[IDLE_CORE_N] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - if (strcmp(xNode2.getChildNode("param", i).getAttribute("name"), - "CONST_DYNAMICN") == 0) { - sys.scaling_coefficients[CONST_DYNAMICN] = - atof(xNode2.getChildNode("param", i).getAttribute("value")); - continue; - } - - /* - if - (strcmp(xNode2.getChildNode("param",i).getAttribute("name"),"scaling_coefficients")==0) - { - strtmp.assign(xNode2.getChildNode("param",i).getAttribute("value")); - m=0; - for(n=0; n OrderofComponents_3layer) { - //___________________________get all - // system.core0-n________________________________________________ - if (sys.homogeneous_cores == 1) - OrderofComponents_3layer = 0; - else - OrderofComponents_3layer = sys.number_of_cores - 1; - for (i = 0; i <= OrderofComponents_3layer; i++) { - xNode3 = xNode2.getChildNode("component", i); - if (xNode3.isEmpty() == 1) { - printf( - "The value of homogeneous_cores or number_of_cores is not " - "correct!"); - exit(0); - } else { - if (strstr(xNode3.getAttribute("name"), "core") != NULL) { - { // For cpu0-cpui - // Get all params with system.core? - itmp = xNode3.nChildNode("param"); - for (k = 0; k < itmp; k++) { - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "clock_rate") == 0) { - sys.core[i].clock_rate = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "opt_local") == 0) { - sys.core[i].opt_local = (bool)atoi( - xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "x86") == 0) { - sys.core[i].x86 = (bool)atoi( - xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "machine_bits") == 0) { - sys.core[i].machine_bits = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "virtual_address_width") == 0) { - sys.core[i].virtual_address_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "physical_address_width") == 0) { - sys.core[i].physical_address_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "instruction_length") == 0) { - sys.core[i].instruction_length = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "opcode_width") == 0) { - sys.core[i].opcode_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "micro_opcode_width") == 0) { - sys.core[i].micro_opcode_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "machine_type") == 0) { - sys.core[i].machine_type = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "internal_datapath_width") == 0) { - sys.core[i].internal_datapath_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "number_hardware_threads") == 0) { - sys.core[i].number_hardware_threads = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "fetch_width") == 0) { - sys.core[i].fetch_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "number_instruction_fetch_ports") == 0) { - sys.core[i].number_instruction_fetch_ports = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "decode_width") == 0) { - sys.core[i].decode_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "issue_width") == 0) { - sys.core[i].issue_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "peak_issue_width") == 0) { - sys.core[i].peak_issue_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "commit_width") == 0) { - sys.core[i].commit_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "fp_issue_width") == 0) { - sys.core[i].fp_issue_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "prediction_width") == 0) { - sys.core[i].prediction_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "pipelines_per_core") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].pipelines_per_core[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].pipelines_per_core[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "pipeline_depth") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].pipeline_depth[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].pipeline_depth[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "FPU") == 0) { - strcpy(sys.core[i].FPU, - xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "divider_multiplier") == 0) { - strcpy(sys.core[i].divider_multiplier, - xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "ALU_per_core") == 0) { - sys.core[i].ALU_per_core = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "FPU_per_core") == 0) { - sys.core[i].FPU_per_core = - atof(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "MUL_per_core") == 0) { - sys.core[i].MUL_per_core = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "instruction_buffer_size") == 0) { - sys.core[i].instruction_buffer_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "decoded_stream_buffer_size") == 0) { - sys.core[i].decoded_stream_buffer_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "instruction_window_scheme") == 0) { - sys.core[i].instruction_window_scheme = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "instruction_window_size") == 0) { - sys.core[i].instruction_window_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "fp_instruction_window_size") == 0) { - sys.core[i].fp_instruction_window_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "ROB_size") == 0) { - sys.core[i].ROB_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "rf_banks") == 0) { - sys.core[i].rf_banks = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "simd_width") == 0) { - sys.core[i].simd_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "collector_units") == 0) { - sys.core[i].collector_units = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "core_clock_ratio") == 0) { - sys.core[i].core_clock_ratio = - atof(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "warp_size") == 0) { - sys.core[i].warp_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "archi_Regs_IRF_size") == 0) { - sys.core[i].archi_Regs_IRF_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "archi_Regs_FRF_size") == 0) { - sys.core[i].archi_Regs_FRF_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "phy_Regs_IRF_size") == 0) { - sys.core[i].phy_Regs_IRF_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "phy_Regs_FRF_size") == 0) { - sys.core[i].phy_Regs_FRF_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "rename_scheme") == 0) { - sys.core[i].rename_scheme = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "register_windows_size") == 0) { - sys.core[i].register_windows_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "LSU_order") == 0) { - strcpy(sys.core[i].LSU_order, - xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "store_buffer_size") == 0) { - sys.core[i].store_buffer_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "load_buffer_size") == 0) { - sys.core[i].load_buffer_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "memory_ports") == 0) { - sys.core[i].memory_ports = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "Dcache_dual_pump") == 0) { - strcpy(sys.core[i].Dcache_dual_pump, - xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "RAS_size") == 0) { - sys.core[i].RAS_size = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - } - // Get all stats with system.core? - itmp = xNode3.nChildNode("stat"); - for (k = 0; k < itmp; k++) { - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_instructions") == 0) { - sys.core[i].total_instructions = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "int_instructions") == 0) { - sys.core[i].int_instructions = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "fp_instructions") == 0) { - sys.core[i].fp_instructions = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "branch_instructions") == 0) { - sys.core[i].branch_instructions = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "branch_mispredictions") == 0) { - sys.core[i].branch_mispredictions = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "committed_instructions") == 0) { - sys.core[i].committed_instructions = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "committed_int_instructions") == 0) { - sys.core[i].committed_int_instructions = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "committed_fp_instructions") == 0) { - sys.core[i].committed_fp_instructions = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "load_instructions") == 0) { - sys.core[i].load_instructions = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "store_instructions") == 0) { - sys.core[i].store_instructions = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_cycles") == 0) { - sys.core[i].total_cycles = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "idle_cycles") == 0) { - sys.core[i].idle_cycles = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "busy_cycles") == 0) { - sys.core[i].busy_cycles = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "instruction_buffer_reads") == 0) { - sys.core[i].instruction_buffer_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "instruction_buffer_write") == 0) { - sys.core[i].instruction_buffer_write = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "ROB_reads") == 0) { - sys.core[i].ROB_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "ROB_writes") == 0) { - sys.core[i].ROB_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "rename_reads") == 0) { - sys.core[i].rename_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "rename_writes") == 0) { - sys.core[i].rename_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "fp_rename_reads") == 0) { - sys.core[i].fp_rename_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "fp_rename_writes") == 0) { - sys.core[i].fp_rename_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "inst_window_reads") == 0) { - sys.core[i].inst_window_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "inst_window_writes") == 0) { - sys.core[i].inst_window_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "inst_window_wakeup_accesses") == 0) { - sys.core[i].inst_window_wakeup_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "inst_window_selections") == 0) { - sys.core[i].inst_window_selections = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "fp_inst_window_reads") == 0) { - sys.core[i].fp_inst_window_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "fp_inst_window_writes") == 0) { - sys.core[i].fp_inst_window_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "fp_inst_window_wakeup_accesses") == 0) { - sys.core[i].fp_inst_window_wakeup_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "archi_int_regfile_reads") == 0) { - sys.core[i].archi_int_regfile_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "archi_float_regfile_reads") == 0) { - sys.core[i].archi_float_regfile_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "phy_int_regfile_reads") == 0) { - sys.core[i].phy_int_regfile_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "phy_float_regfile_reads") == 0) { - sys.core[i].phy_float_regfile_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "phy_int_regfile_writes") == 0) { - sys.core[i].archi_int_regfile_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "phy_float_regfile_writes") == 0) { - sys.core[i].archi_float_regfile_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "archi_int_regfile_writes") == 0) { - sys.core[i].phy_int_regfile_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "archi_float_regfile_writes") == 0) { - sys.core[i].phy_float_regfile_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "int_regfile_reads") == 0) { - sys.core[i].int_regfile_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "float_regfile_reads") == 0) { - sys.core[i].float_regfile_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "int_regfile_writes") == 0) { - sys.core[i].int_regfile_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "float_regfile_writes") == 0) { - sys.core[i].float_regfile_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "non_rf_operands") == 0) { - sys.core[i].non_rf_operands = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "windowed_reg_accesses") == 0) { - sys.core[i].windowed_reg_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "windowed_reg_transports") == 0) { - sys.core[i].windowed_reg_transports = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "function_calls") == 0) { - sys.core[i].function_calls = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "context_switches") == 0) { - sys.core[i].context_switches = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "ialu_accesses") == 0) { - sys.core[i].ialu_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "fpu_accesses") == 0) { - sys.core[i].fpu_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "mul_accesses") == 0) { - sys.core[i].mul_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "cdb_alu_accesses") == 0) { - sys.core[i].cdb_alu_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "cdb_mul_accesses") == 0) { - sys.core[i].cdb_mul_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "cdb_fpu_accesses") == 0) { - sys.core[i].cdb_fpu_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "load_buffer_reads") == 0) { - sys.core[i].load_buffer_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "load_buffer_writes") == 0) { - sys.core[i].load_buffer_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "load_buffer_cams") == 0) { - sys.core[i].load_buffer_cams = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "store_buffer_reads") == 0) { - sys.core[i].store_buffer_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "store_buffer_writes") == 0) { - sys.core[i].store_buffer_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "store_buffer_cams") == 0) { - sys.core[i].store_buffer_cams = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "store_buffer_forwards") == 0) { - sys.core[i].store_buffer_forwards = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "main_memory_access") == 0) { - sys.core[i].main_memory_access = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "main_memory_read") == 0) { - sys.core[i].main_memory_read = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "main_memory_write") == 0) { - sys.core[i].main_memory_write = - atoi(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "pipeline_duty_cycle") == 0) { - sys.core[i].pipeline_duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "IFU_duty_cycle") == 0) { - sys.core[i].IFU_duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "BR_duty_cycle") == 0) { - sys.core[i].BR_duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "LSU_duty_cycle") == 0) { - sys.core[i].LSU_duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "MemManU_I_duty_cycle") == 0) { - sys.core[i].MemManU_I_duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "MemManU_D_duty_cycle") == 0) { - sys.core[i].MemManU_D_duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "ALU_duty_cycle") == 0) { - sys.core[i].ALU_duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "MUL_duty_cycle") == 0) { - sys.core[i].MUL_duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "FPU_duty_cycle") == 0) { - sys.core[i].FPU_duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "ALU_cdb_duty_cycle") == 0) { - sys.core[i].ALU_cdb_duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "MUL_cdb_duty_cycle") == 0) { - sys.core[i].MUL_cdb_duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "FPU_cdb_duty_cycle") == 0) { - sys.core[i].FPU_cdb_duty_cycle = - atoi(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } - - NumofCom_4 = - xNode3.nChildNode("component"); // get the number of components - // within the third layer - for (j = 0; j < NumofCom_4; j++) { - xNode4 = xNode3.getChildNode("component", j); - if (strcmp(xNode4.getAttribute("name"), "PBT") == 0) { // find PBT - itmp = xNode4.nChildNode("param"); - for (k = 0; k < itmp; k++) { // get all items of param in - // system.core0.predictor--PBT - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "prediction_width") == 0) { - sys.core[i].predictor.prediction_width = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "prediction_scheme") == 0) { - strcpy(sys.core[i].predictor.prediction_scheme, - xNode4.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "predictor_size") == 0) { - sys.core[i].predictor.predictor_size = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "predictor_entries") == 0) { - sys.core[i].predictor.predictor_entries = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "local_predictor_size") == 0) { - strtmp.assign( - xNode4.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].predictor.local_predictor_size[m] = - atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].predictor.local_predictor_size[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "local_predictor_entries") == 0) { - sys.core[i].predictor.local_predictor_entries = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "global_predictor_entries") == 0) { - sys.core[i].predictor.global_predictor_entries = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "global_predictor_bits") == 0) { - sys.core[i].predictor.global_predictor_bits = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "chooser_predictor_entries") == 0) { - sys.core[i].predictor.chooser_predictor_entries = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "chooser_predictor_bits") == 0) { - sys.core[i].predictor.chooser_predictor_bits = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - continue; - } - } - itmp = xNode4.nChildNode("stat"); - for (k = 0; k < itmp; k++) { // get all items of stat in - // system.core0.predictor--PBT - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "predictor_accesses") == 0) - sys.core[i].predictor.predictor_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - } - } - if (strcmp(xNode4.getAttribute("name"), "itlb") == - 0) { // find system.core0.itlb - itmp = xNode4.nChildNode("param"); - for (k = 0; k < itmp; - k++) { // get all items of param in system.core0.itlb--itlb - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "number_entries") == 0) - sys.core[i].itlb.number_entries = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - } - itmp = xNode4.nChildNode("stat"); - for (k = 0; k < itmp; k++) { // get all items of stat in itlb - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_hits") == 0) { - sys.core[i].itlb.total_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_accesses") == 0) { - sys.core[i].itlb.total_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_misses") == 0) { - sys.core[i].itlb.total_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "conflicts") == 0) { - sys.core[i].itlb.conflicts = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } - if (strcmp(xNode4.getAttribute("name"), "icache") == - 0) { // find system.core0.icache - itmp = xNode4.nChildNode("param"); - for (k = 0; k < itmp; k++) { // get all items of param in - // system.core0.icache--icache - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "icache_config") == 0) { - strtmp.assign( - xNode4.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].icache.icache_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].icache.icache_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "buffer_sizes") == 0) { - strtmp.assign( - xNode4.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].icache.buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].icache.buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - itmp = xNode4.nChildNode("stat"); - for (k = 0; k < itmp; k++) { - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_accesses") == 0) { - sys.core[i].icache.total_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_accesses") == 0) { - sys.core[i].icache.read_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_misses") == 0) { - sys.core[i].icache.read_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "replacements") == 0) { - sys.core[i].icache.replacements = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_hits") == 0) { - sys.core[i].icache.read_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_hits") == 0) { - sys.core[i].icache.total_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_misses") == 0) { - sys.core[i].icache.total_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "miss_buffer_access") == 0) { - sys.core[i].icache.miss_buffer_access = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "fill_buffer_accesses") == 0) { - sys.core[i].icache.fill_buffer_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_accesses") == 0) { - sys.core[i].icache.prefetch_buffer_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_writes") == 0) { - sys.core[i].icache.prefetch_buffer_writes = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_reads") == 0) { - sys.core[i].icache.prefetch_buffer_reads = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_hits") == 0) { - sys.core[i].icache.prefetch_buffer_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "conflicts") == 0) { - sys.core[i].icache.conflicts = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } - if (strcmp(xNode4.getAttribute("name"), "dtlb") == - 0) { // find system.core0.dtlb - itmp = xNode4.nChildNode("param"); - for (k = 0; k < itmp; - k++) { // get all items of param in system.core0.dtlb--dtlb - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "number_entries") == 0) - sys.core[i].dtlb.number_entries = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - } - itmp = xNode4.nChildNode("stat"); - for (k = 0; k < itmp; k++) { // get all items of stat in dtlb - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_accesses") == 0) { - sys.core[i].dtlb.total_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_accesses") == 0) { - sys.core[i].dtlb.read_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_accesses") == 0) { - sys.core[i].dtlb.write_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_hits") == 0) { - sys.core[i].dtlb.read_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_hits") == 0) { - sys.core[i].dtlb.write_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_misses") == 0) { - sys.core[i].dtlb.read_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_misses") == 0) { - sys.core[i].dtlb.write_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_hits") == 0) { - sys.core[i].dtlb.total_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_misses") == 0) { - sys.core[i].dtlb.total_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "conflicts") == 0) { - sys.core[i].dtlb.conflicts = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } - - // Added by Jingwen - if (strcmp(xNode4.getAttribute("name"), "ccache") == - 0) { // find system.core0.ccache - itmp = xNode4.nChildNode("param"); - for (k = 0; k < itmp; k++) { // get all items of param in - // system.core0.ccache--ccache - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "ccache_config") == 0) { - strtmp.assign( - xNode4.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].ccache.dcache_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].ccache.dcache_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "buffer_sizes") == 0) { - strtmp.assign( - xNode4.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].ccache.buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].ccache.buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - itmp = xNode4.nChildNode("stat"); - for (k = 0; k < itmp; k++) { // get all items of stat in ccache - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_accesses") == 0) { - sys.core[i].ccache.total_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_accesses") == 0) { - sys.core[i].ccache.read_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_accesses") == 0) { - sys.core[i].ccache.write_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_hits") == 0) { - sys.core[i].ccache.total_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_misses") == 0) { - sys.core[i].ccache.total_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_hits") == 0) { - sys.core[i].ccache.read_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_hits") == 0) { - sys.core[i].ccache.write_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_misses") == 0) { - sys.core[i].ccache.read_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_misses") == 0) { - sys.core[i].ccache.write_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "replacements") == 0) { - sys.core[i].ccache.replacements = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_backs") == 0) { - sys.core[i].ccache.write_backs = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "miss_buffer_access") == 0) { - sys.core[i].ccache.miss_buffer_access = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "fill_buffer_accesses") == 0) { - sys.core[i].ccache.fill_buffer_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_accesses") == 0) { - sys.core[i].ccache.prefetch_buffer_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_writes") == 0) { - sys.core[i].ccache.prefetch_buffer_writes = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_reads") == 0) { - sys.core[i].ccache.prefetch_buffer_reads = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_hits") == 0) { - sys.core[i].ccache.prefetch_buffer_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "wbb_writes") == 0) { - sys.core[i].ccache.wbb_writes = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "wbb_reads") == 0) { - sys.core[i].ccache.wbb_reads = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "conflicts") == 0) { - sys.core[i].ccache.conflicts = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } - - // tcache - if (strcmp(xNode4.getAttribute("name"), "tcache") == - 0) { // find system.core0.tcache - itmp = xNode4.nChildNode("param"); - for (k = 0; k < itmp; k++) { // get all items of param in - // system.core0.tcache--tcache - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "tcache_config") == 0) { - strtmp.assign( - xNode4.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].tcache.dcache_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].tcache.dcache_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "buffer_sizes") == 0) { - strtmp.assign( - xNode4.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].tcache.buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].tcache.buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - itmp = xNode4.nChildNode("stat"); - for (k = 0; k < itmp; k++) { // get all items of stat in tcache - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_accesses") == 0) { - sys.core[i].tcache.total_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_accesses") == 0) { - sys.core[i].tcache.read_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_accesses") == 0) { - sys.core[i].tcache.write_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_hits") == 0) { - sys.core[i].tcache.total_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_misses") == 0) { - sys.core[i].tcache.total_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_hits") == 0) { - sys.core[i].tcache.read_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_hits") == 0) { - sys.core[i].tcache.write_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_misses") == 0) { - sys.core[i].tcache.read_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_misses") == 0) { - sys.core[i].tcache.write_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "replacements") == 0) { - sys.core[i].tcache.replacements = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_backs") == 0) { - sys.core[i].tcache.write_backs = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "miss_buffer_access") == 0) { - sys.core[i].tcache.miss_buffer_access = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "fill_buffer_accesses") == 0) { - sys.core[i].tcache.fill_buffer_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_accesses") == 0) { - sys.core[i].tcache.prefetch_buffer_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_writes") == 0) { - sys.core[i].tcache.prefetch_buffer_writes = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_reads") == 0) { - sys.core[i].tcache.prefetch_buffer_reads = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_hits") == 0) { - sys.core[i].tcache.prefetch_buffer_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "wbb_writes") == 0) { - sys.core[i].tcache.wbb_writes = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "wbb_reads") == 0) { - sys.core[i].tcache.wbb_reads = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "conflicts") == 0) { - sys.core[i].tcache.conflicts = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } - - 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 - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "sharedmemory_config") == 0) { - strtmp.assign( - xNode4.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].sharedmemory.dcache_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].sharedmemory.dcache_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "buffer_sizes") == 0) { - strtmp.assign( - xNode4.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].sharedmemory.buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].sharedmemory.buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - itmp = xNode4.nChildNode("stat"); - for (k = 0; k < itmp; - k++) { // get all items of stat in sharedmemory - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_accesses") == 0) { - sys.core[i].sharedmemory.total_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_accesses") == 0) { - sys.core[i].sharedmemory.read_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_accesses") == 0) { - sys.core[i].sharedmemory.write_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_hits") == 0) { - sys.core[i].sharedmemory.total_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_misses") == 0) { - sys.core[i].sharedmemory.total_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_hits") == 0) { - sys.core[i].sharedmemory.read_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_hits") == 0) { - sys.core[i].sharedmemory.write_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_misses") == 0) { - sys.core[i].sharedmemory.read_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_misses") == 0) { - sys.core[i].sharedmemory.write_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "replacements") == 0) { - sys.core[i].sharedmemory.replacements = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_backs") == 0) { - sys.core[i].sharedmemory.write_backs = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "miss_buffer_access") == 0) { - sys.core[i].sharedmemory.miss_buffer_access = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "fill_buffer_accesses") == 0) { - sys.core[i].sharedmemory.fill_buffer_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_accesses") == 0) { - sys.core[i].sharedmemory.prefetch_buffer_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_writes") == 0) { - sys.core[i].sharedmemory.prefetch_buffer_writes = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_reads") == 0) { - sys.core[i].sharedmemory.prefetch_buffer_reads = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_hits") == 0) { - sys.core[i].sharedmemory.prefetch_buffer_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "wbb_writes") == 0) { - sys.core[i].sharedmemory.wbb_writes = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "wbb_reads") == 0) { - sys.core[i].sharedmemory.wbb_reads = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "conflicts") == 0) { - sys.core[i].sharedmemory.conflicts = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } - - if (strcmp(xNode4.getAttribute("name"), "dcache") == - 0) { // find system.core0.dcache - itmp = xNode4.nChildNode("param"); - for (k = 0; k < itmp; k++) { // get all items of param in - // system.core0.dcache--dcache - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "dcache_config") == 0) { - strtmp.assign( - xNode4.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].dcache.dcache_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].dcache.dcache_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "buffer_sizes") == 0) { - strtmp.assign( - xNode4.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].dcache.buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].dcache.buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - itmp = xNode4.nChildNode("stat"); - for (k = 0; k < itmp; k++) { // get all items of stat in dcache - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_accesses") == 0) { - sys.core[i].dcache.total_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_accesses") == 0) { - sys.core[i].dcache.read_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_accesses") == 0) { - sys.core[i].dcache.write_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_hits") == 0) { - sys.core[i].dcache.total_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_misses") == 0) { - sys.core[i].dcache.total_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_hits") == 0) { - sys.core[i].dcache.read_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_hits") == 0) { - sys.core[i].dcache.write_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_misses") == 0) { - sys.core[i].dcache.read_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_misses") == 0) { - sys.core[i].dcache.write_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "replacements") == 0) { - sys.core[i].dcache.replacements = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_backs") == 0) { - sys.core[i].dcache.write_backs = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "miss_buffer_access") == 0) { - sys.core[i].dcache.miss_buffer_access = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "fill_buffer_accesses") == 0) { - sys.core[i].dcache.fill_buffer_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_accesses") == 0) { - sys.core[i].dcache.prefetch_buffer_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_writes") == 0) { - sys.core[i].dcache.prefetch_buffer_writes = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_reads") == 0) { - sys.core[i].dcache.prefetch_buffer_reads = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_hits") == 0) { - sys.core[i].dcache.prefetch_buffer_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "wbb_writes") == 0) { - sys.core[i].dcache.wbb_writes = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "wbb_reads") == 0) { - sys.core[i].dcache.wbb_reads = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "conflicts") == 0) { - sys.core[i].dcache.conflicts = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } - - if (strcmp(xNode4.getAttribute("name"), "BTB") == - 0) { // find system.core0.BTB - itmp = xNode4.nChildNode("param"); - for (k = 0; k < itmp; - k++) { // get all items of param in system.core0.BTB--BTB - if (strcmp(xNode4.getChildNode("param", k).getAttribute("name"), - "BTB_config") == 0) { - strtmp.assign( - xNode4.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.core[i].BTB.BTB_config[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.core[i].BTB.BTB_config[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - itmp = xNode4.nChildNode("stat"); - for (k = 0; k < itmp; k++) { // get all items of stat in BTB - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_accesses") == 0) { - sys.core[i].BTB.total_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_accesses") == 0) { - sys.core[i].BTB.read_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_accesses") == 0) { - sys.core[i].BTB.write_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_hits") == 0) { - sys.core[i].BTB.total_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "total_misses") == 0) { - sys.core[i].BTB.total_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_hits") == 0) { - sys.core[i].BTB.read_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_hits") == 0) { - sys.core[i].BTB.write_hits = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "read_misses") == 0) { - sys.core[i].BTB.read_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "write_misses") == 0) { - sys.core[i].BTB.write_misses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode4.getChildNode("stat", k).getAttribute("name"), - "replacements") == 0) { - sys.core[i].BTB.replacements = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } - } - } else { - printf( - "The value of homogeneous_cores or number_of_cores is not " - "correct!"); - exit(0); - } - } - } - - //__________________________________________Get - // system.L1Directory0-n____________________________________________ - int w, tmpOrderofComponents_3layer; - w = OrderofComponents_3layer + 1; - tmpOrderofComponents_3layer = OrderofComponents_3layer; - if (sys.homogeneous_L1Directories == 1) - OrderofComponents_3layer = OrderofComponents_3layer + 1; - else - OrderofComponents_3layer = - OrderofComponents_3layer + sys.number_of_L1Directories; - - for (i = 0; i < (OrderofComponents_3layer - tmpOrderofComponents_3layer); - i++) { - xNode3 = xNode2.getChildNode("component", w); - if (xNode3.isEmpty() == 1) { - printf( - "The value of homogeneous_L1Directories or number_of_L1Directories " - "is not correct!"); - exit(0); - } else { - if (strstr(xNode3.getAttribute("id"), "L1Directory") != NULL) { - itmp = xNode3.nChildNode("param"); - for (k = 0; k < itmp; - k++) { // get all items of param in system.L1Directory - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "Dir_config") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.L1Directory[i].Dir_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.L1Directory[i].Dir_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "buffer_sizes") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.L1Directory[i].buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.L1Directory[i].buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "clockrate") == 0) { - sys.L1Directory[i].clockrate = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "ports") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.L1Directory[i].ports[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.L1Directory[i].ports[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "device_type") == 0) { - sys.L1Directory[i].device_type = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "Directory_type") == 0) { - sys.L1Directory[i].Directory_type = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "3D_stack") == 0) { - strcpy(sys.L1Directory[i].threeD_stack, - xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - } - itmp = xNode3.nChildNode("stat"); - for (k = 0; k < itmp; - k++) { // get all items of stat in system.L2directorydirectory - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_accesses") == 0) { - sys.L1Directory[i].total_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "read_accesses") == 0) { - sys.L1Directory[i].read_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "write_accesses") == 0) { - sys.L1Directory[i].write_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "read_misses") == 0) { - sys.L1Directory[i].read_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "write_misses") == 0) { - sys.L1Directory[i].write_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "conflicts") == 0) { - sys.L1Directory[i].conflicts = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "duty_cycle") == 0) { - sys.L1Directory[i].duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - w = w + 1; - } else { - printf( - "The value of homogeneous_L1Directories or " - "number_of_L1Directories is not correct!"); - exit(0); - } - } - } - - //__________________________________________Get - // system.L2Directory0-n____________________________________________ - w = OrderofComponents_3layer + 1; - tmpOrderofComponents_3layer = OrderofComponents_3layer; - if (sys.homogeneous_L2Directories == 1) - OrderofComponents_3layer = OrderofComponents_3layer + 1; - else - OrderofComponents_3layer = - OrderofComponents_3layer + sys.number_of_L2Directories; - - for (i = 0; i < (OrderofComponents_3layer - tmpOrderofComponents_3layer); - i++) { - xNode3 = xNode2.getChildNode("component", w); - if (xNode3.isEmpty() == 1) { - printf( - "The value of homogeneous_L2Directories or number_of_L2Directories " - "is not correct!"); - exit(0); - } else { - if (strstr(xNode3.getAttribute("id"), "L2Directory") != NULL) { - itmp = xNode3.nChildNode("param"); - for (k = 0; k < itmp; - k++) { // get all items of param in system.L2Directory - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "Dir_config") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.L2Directory[i].Dir_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.L2Directory[i].Dir_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "buffer_sizes") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.L2Directory[i].buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.L2Directory[i].buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "clockrate") == 0) { - sys.L2Directory[i].clockrate = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "Directory_type") == 0) { - sys.L2Directory[i].Directory_type = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "ports") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.L2Directory[i].ports[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.L2Directory[i].ports[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "device_type") == 0) { - sys.L2Directory[i].device_type = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "3D_stack") == 0) { - strcpy(sys.L2Directory[i].threeD_stack, - xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - } - itmp = xNode3.nChildNode("stat"); - for (k = 0; k < itmp; - k++) { // get all items of stat in system.L2directorydirectory - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_accesses") == 0) { - sys.L2Directory[i].total_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "read_accesses") == 0) { - sys.L2Directory[i].read_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "write_accesses") == 0) { - sys.L2Directory[i].write_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "read_misses") == 0) { - sys.L2Directory[i].read_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "write_misses") == 0) { - sys.L2Directory[i].write_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "conflicts") == 0) { - sys.L2Directory[i].conflicts = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "duty_cycle") == 0) { - sys.L2Directory[i].duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - w = w + 1; - } else { - printf( - "The value of homogeneous_L2Directories or " - "number_of_L2Directories is not correct!"); - exit(0); - } - } - } - - //__________________________________________Get - // system.L2[0..n]____________________________________________ - w = OrderofComponents_3layer + 1; - tmpOrderofComponents_3layer = OrderofComponents_3layer; - if (sys.homogeneous_L2s == 1) - OrderofComponents_3layer = OrderofComponents_3layer + 1; - else - OrderofComponents_3layer = OrderofComponents_3layer + sys.number_of_L2s; - - for (i = 0; i < (OrderofComponents_3layer - tmpOrderofComponents_3layer); - i++) { - xNode3 = xNode2.getChildNode("component", w); - if (xNode3.isEmpty() == 1) { - printf("The value of homogeneous_L2s or number_of_L2s is not correct!"); - exit(0); - } else { - if (strstr(xNode3.getAttribute("name"), "L2") != NULL) { - { // For L20-L2i - // Get all params with system.L2? - itmp = xNode3.nChildNode("param"); - for (k = 0; k < itmp; k++) { - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "L2_config") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.L2[i].L2_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.L2[i].L2_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "clockrate") == 0) { - sys.L2[i].clockrate = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "merged_dir") == 0) { - sys.L2[i].merged_dir = (bool)atoi( - xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "ports") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.L2[i].ports[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.L2[i].ports[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "device_type") == 0) { - sys.L2[i].device_type = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "threeD_stack") == 0) { - strcpy(sys.L2[i].threeD_stack, - (xNode3.getChildNode("param", k).getAttribute("value"))); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "buffer_sizes") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.L2[i].buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.L2[i].buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - } - // Get all stats with system.L2? - itmp = xNode3.nChildNode("stat"); - for (k = 0; k < itmp; k++) { - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_accesses") == 0) { - sys.L2[i].total_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "read_accesses") == 0) { - sys.L2[i].read_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "write_accesses") == 0) { - sys.L2[i].write_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_hits") == 0) { - sys.L2[i].total_hits = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_misses") == 0) { - sys.L2[i].total_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "read_hits") == 0) { - sys.L2[i].read_hits = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "write_hits") == 0) { - sys.L2[i].write_hits = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "read_misses") == 0) { - sys.L2[i].read_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "write_misses") == 0) { - sys.L2[i].write_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "replacements") == 0) { - sys.L2[i].replacements = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "write_backs") == 0) { - sys.L2[i].write_backs = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "miss_buffer_accesses") == 0) { - sys.L2[i].miss_buffer_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "fill_buffer_accesses") == 0) { - sys.L2[i].fill_buffer_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_accesses") == 0) { - sys.L2[i].prefetch_buffer_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_writes") == 0) { - sys.L2[i].prefetch_buffer_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_reads") == 0) { - sys.L2[i].prefetch_buffer_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_hits") == 0) { - sys.L2[i].prefetch_buffer_hits = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "wbb_writes") == 0) { - sys.L2[i].wbb_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "wbb_reads") == 0) { - sys.L2[i].wbb_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "conflicts") == 0) { - sys.L2[i].conflicts = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "duty_cycle") == 0) { - sys.L2[i].duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "homenode_read_accesses") == 0) { - sys.L2[i].homenode_read_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "homenode_read_accesses") == 0) { - sys.L2[i].homenode_read_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "homenode_read_hits") == 0) { - sys.L2[i].homenode_read_hits = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "homenode_write_hits") == 0) { - sys.L2[i].homenode_write_hits = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "homenode_read_misses") == 0) { - sys.L2[i].homenode_read_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "homenode_write_misses") == 0) { - sys.L2[i].homenode_write_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "dir_duty_cycle") == 0) { - sys.L2[i].dir_duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } - w = w + 1; - } else { - printf( - "The value of homogeneous_L2s or number_of_L2s is not correct!"); - exit(0); - } - } - } - //__________________________________________Get - // system.L3[0..n]____________________________________________ - w = OrderofComponents_3layer + 1; - tmpOrderofComponents_3layer = OrderofComponents_3layer; - if (sys.homogeneous_L3s == 1) - OrderofComponents_3layer = OrderofComponents_3layer + 1; - else - OrderofComponents_3layer = OrderofComponents_3layer + sys.number_of_L3s; - - for (i = 0; i < (OrderofComponents_3layer - tmpOrderofComponents_3layer); - i++) { - xNode3 = xNode2.getChildNode("component", w); - if (xNode3.isEmpty() == 1) { - printf("The value of homogeneous_L3s or number_of_L3s is not correct!"); - exit(0); - } else { - if (strstr(xNode3.getAttribute("name"), "L3") != NULL) { - { // For L30-L3i - // Get all params with system.L3? - itmp = xNode3.nChildNode("param"); - for (k = 0; k < itmp; k++) { - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "L3_config") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.L3[i].L3_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.L3[i].L3_config[m] = atof(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "clockrate") == 0) { - sys.L3[i].clockrate = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "merged_dir") == 0) { - sys.L3[i].merged_dir = (bool)atoi( - xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "ports") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.L3[i].ports[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.L3[i].ports[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "device_type") == 0) { - sys.L3[i].device_type = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "threeD_stack") == 0) { - strcpy(sys.L3[i].threeD_stack, - (xNode3.getChildNode("param", k).getAttribute("value"))); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "buffer_sizes") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.L3[i].buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.L3[i].buffer_sizes[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - } - // Get all stats with system.L3? - itmp = xNode3.nChildNode("stat"); - for (k = 0; k < itmp; k++) { - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_accesses") == 0) { - sys.L3[i].total_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "read_accesses") == 0) { - sys.L3[i].read_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "write_accesses") == 0) { - sys.L3[i].write_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_hits") == 0) { - sys.L3[i].total_hits = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_misses") == 0) { - sys.L3[i].total_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "read_hits") == 0) { - sys.L3[i].read_hits = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "write_hits") == 0) { - sys.L3[i].write_hits = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "read_misses") == 0) { - sys.L3[i].read_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "write_misses") == 0) { - sys.L3[i].write_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "replacements") == 0) { - sys.L3[i].replacements = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "write_backs") == 0) { - sys.L3[i].write_backs = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "miss_buffer_accesses") == 0) { - sys.L3[i].miss_buffer_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "fill_buffer_accesses") == 0) { - sys.L3[i].fill_buffer_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_accesses") == 0) { - sys.L3[i].prefetch_buffer_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_writes") == 0) { - sys.L3[i].prefetch_buffer_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_reads") == 0) { - sys.L3[i].prefetch_buffer_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "prefetch_buffer_hits") == 0) { - sys.L3[i].prefetch_buffer_hits = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "wbb_writes") == 0) { - sys.L3[i].wbb_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "wbb_reads") == 0) { - sys.L3[i].wbb_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "conflicts") == 0) { - sys.L3[i].conflicts = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "duty_cycle") == 0) { - sys.L3[i].duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "homenode_read_accesses") == 0) { - sys.L3[i].homenode_read_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "homenode_read_accesses") == 0) { - sys.L3[i].homenode_read_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "homenode_read_hits") == 0) { - sys.L3[i].homenode_read_hits = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "homenode_write_hits") == 0) { - sys.L3[i].homenode_write_hits = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "homenode_read_misses") == 0) { - sys.L3[i].homenode_read_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "homenode_write_misses") == 0) { - sys.L3[i].homenode_write_misses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "dir_duty_cycle") == 0) { - sys.L3[i].dir_duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } - w = w + 1; - } else { - printf( - "The value of homogeneous_L3s or number_of_L3s is not correct!"); - exit(0); - } - } - } - //__________________________________________Get - // system.NoC[0..n]____________________________________________ - w = OrderofComponents_3layer + 1; - tmpOrderofComponents_3layer = OrderofComponents_3layer; - if (sys.homogeneous_NoCs == 1) - OrderofComponents_3layer = OrderofComponents_3layer + 1; - else - OrderofComponents_3layer = OrderofComponents_3layer + sys.number_of_NoCs; - - for (i = 0; i < (OrderofComponents_3layer - tmpOrderofComponents_3layer); - i++) { - xNode3 = xNode2.getChildNode("component", w); - if (xNode3.isEmpty() == 1) { - printf( - "The value of homogeneous_NoCs or number_of_NoCs is not correct!"); - exit(0); - } else { - if (strstr(xNode3.getAttribute("name"), "noc") != NULL) { - { // For NoC0-NoCi - // Get all params with system.NoC? - itmp = xNode3.nChildNode("param"); - for (k = 0; k < itmp; k++) { - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "clockrate") == 0) { - sys.NoC[i].clockrate = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "type") == 0) { - sys.NoC[i].type = (bool)atoi( - xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "topology") == 0) { - strcpy(sys.NoC[i].topology, - (xNode3.getChildNode("param", k).getAttribute("value"))); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "horizontal_nodes") == 0) { - sys.NoC[i].horizontal_nodes = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "vertical_nodes") == 0) { - sys.NoC[i].vertical_nodes = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "has_global_link") == 0) { - sys.NoC[i].has_global_link = (bool)atoi( - xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "link_throughput") == 0) { - sys.NoC[i].link_throughput = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "link_latency") == 0) { - sys.NoC[i].link_latency = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "input_ports") == 0) { - sys.NoC[i].input_ports = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "output_ports") == 0) { - sys.NoC[i].output_ports = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "virtual_channel_per_port") == 0) { - sys.NoC[i].virtual_channel_per_port = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "flit_bits") == 0) { - sys.NoC[i].flit_bits = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "input_buffer_entries_per_vc") == 0) { - sys.NoC[i].input_buffer_entries_per_vc = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "dual_pump") == 0) { - sys.NoC[i].dual_pump = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "chip_coverage") == 0) { - sys.NoC[i].chip_coverage = - atof(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "link_routing_over_percentage") == 0) { - sys.NoC[i].route_over_perc = - atof(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "ports_of_input_buffer") == 0) { - strtmp.assign( - xNode3.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.NoC[i].ports_of_input_buffer[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.NoC[i].ports_of_input_buffer[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "number_of_crossbars") == 0) { - sys.NoC[i].number_of_crossbars = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "crossbar_type") == 0) { - strcpy(sys.NoC[i].crossbar_type, - (xNode3.getChildNode("param", k).getAttribute("value"))); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "crosspoint_type") == 0) { - strcpy(sys.NoC[i].crosspoint_type, - (xNode3.getChildNode("param", k).getAttribute("value"))); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "arbiter_type") == 0) { - sys.NoC[i].arbiter_type = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - } - NumofCom_4 = - xNode3.nChildNode("component"); // get the number of components - // within the third layer - for (j = 0; j < NumofCom_4; j++) { - xNode4 = xNode3.getChildNode("component", j); - if (strcmp(xNode4.getAttribute("name"), "xbar0") == - 0) { // find PBT - itmp = xNode4.nChildNode("param"); - for (k = 0; k < itmp; k++) { // get all items of param in - // system.XoC0.xbar0--xbar0 - if (strcmp( - xNode4.getChildNode("param", k).getAttribute("name"), - "number_of_inputs_of_crossbars") == 0) { - sys.NoC[i].xbar0.number_of_inputs_of_crossbars = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp( - xNode4.getChildNode("param", k).getAttribute("name"), - "number_of_outputs_of_crossbars") == 0) { - sys.NoC[i].xbar0.number_of_outputs_of_crossbars = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp( - xNode4.getChildNode("param", k).getAttribute("name"), - "flit_bits") == 0) { - sys.NoC[i].xbar0.flit_bits = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp( - xNode4.getChildNode("param", k).getAttribute("name"), - "input_buffer_entries_per_port") == 0) { - sys.NoC[i].xbar0.input_buffer_entries_per_port = atoi( - xNode4.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp( - xNode4.getChildNode("param", k).getAttribute("name"), - "ports_of_input_buffer") == 0) { - strtmp.assign( - xNode4.getChildNode("param", k).getAttribute("value")); - m = 0; - for (n = 0; n < strtmp.length(); n++) { - if (strtmp[n] != ',') { - sprintf(chtmp, "%c", strtmp[n]); - strcat(chtmp1, chtmp); - } else { - sys.NoC[i].xbar0.ports_of_input_buffer[m] = - atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - sys.NoC[i].xbar0.ports_of_input_buffer[m] = atoi(chtmp1); - m++; - chtmp1[0] = '\0'; - } - } - itmp = xNode4.nChildNode("stat"); - for (k = 0; k < itmp; k++) { // get all items of stat in - // system.core0.predictor--PBT - if (strcmp( - xNode4.getChildNode("stat", k).getAttribute("name"), - "predictor_accesses") == 0) - sys.core[i].predictor.predictor_accesses = atof( - xNode4.getChildNode("stat", k).getAttribute("value")); - } - } - } - // Get all stats with system.NoC? - itmp = xNode3.nChildNode("stat"); - for (k = 0; k < itmp; k++) { - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_accesses") == 0) - sys.NoC[i].total_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "duty_cycle") == 0) - sys.NoC[i].duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - } - } - w = w + 1; - } - } - } - //__________________________________________Get - // system.mem____________________________________________ - if (OrderofComponents_3layer > 0) - OrderofComponents_3layer = OrderofComponents_3layer + 1; - xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer); - if (xNode3.isEmpty() == 1) { - printf( - "some value(s) of " - "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " - "not correct!"); - exit(0); - } - if (strstr(xNode3.getAttribute("id"), "system.mem") != NULL) { - itmp = xNode3.nChildNode("param"); - for (k = 0; k < itmp; k++) { // get all items of param in system.mem - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "mem_tech_node") == 0) { - sys.mem.mem_tech_node = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "device_clock") == 0) { - sys.mem.device_clock = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "peak_transfer_rate") == 0) { - sys.mem.peak_transfer_rate = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "capacity_per_channel") == 0) { - sys.mem.capacity_per_channel = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "number_ranks") == 0) { - sys.mem.number_ranks = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "num_banks_of_DRAM_chip") == 0) { - sys.mem.num_banks_of_DRAM_chip = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "Block_width_of_DRAM_chip") == 0) { - sys.mem.Block_width_of_DRAM_chip = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "output_width_of_DRAM_chip") == 0) { - sys.mem.output_width_of_DRAM_chip = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "page_size_of_DRAM_chip") == 0) { - sys.mem.page_size_of_DRAM_chip = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "burstlength_of_DRAM_chip") == 0) { - sys.mem.burstlength_of_DRAM_chip = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "internal_prefetch_of_DRAM_chip") == 0) { - sys.mem.internal_prefetch_of_DRAM_chip = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - } - itmp = xNode3.nChildNode("stat"); - for (k = 0; k < itmp; k++) { // get all items of stat in system.mem - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "memory_accesses") == 0) { - sys.mem.memory_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "memory_reads") == 0) { - sys.mem.memory_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "memory_writes") == 0) { - sys.mem.memory_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "dram_pre") == 0) { - sys.mem.dram_pre = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } else { - printf( - "some value(s) of " - "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " - "not correct!"); - exit(0); - } - //__________________________________________Get - // system.mc____________________________________________ - if (OrderofComponents_3layer > 0) - OrderofComponents_3layer = OrderofComponents_3layer + 1; - xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer); - if (xNode3.isEmpty() == 1) { - printf( - "some value(s) of " - "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " - "not correct!"); - exit(0); - } - if (strstr(xNode3.getAttribute("id"), "system.mc") != NULL) { - itmp = xNode3.nChildNode("param"); - for (k = 0; k < itmp; k++) { // get all items of param in system.mem - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "mc_clock") == 0) { - sys.mc.mc_clock = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "block_size") == 0) { - sys.mc.llc_line_length = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "number_mcs") == 0) { - sys.mc.number_mcs = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "memory_channels_per_mc") == 0) { - sys.mc.memory_channels_per_mc = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "req_window_size_per_channel") == 0) { - sys.mc.req_window_size_per_channel = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "IO_buffer_size_per_channel") == 0) { - sys.mc.IO_buffer_size_per_channel = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "databus_width") == 0) { - sys.mc.databus_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "addressbus_width") == 0) { - sys.mc.addressbus_width = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "PRT_entries") == 0) { - sys.mc.PRT_entries = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "peak_transfer_rate") == 0) { - sys.mc.peak_transfer_rate = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "number_ranks") == 0) { - sys.mc.number_ranks = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "LVDS") == 0) { - sys.mc.LVDS = - (bool)atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "type") == 0) { - sys.mc.type = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "withPHY") == 0) { - sys.mc.withPHY = - (bool)atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "dram_cmd_coeff") == 0) { - sys.mc.dram_cmd_coeff = - atof(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "dram_act_coeff") == 0) { - sys.mc.dram_act_coeff = - atof(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "dram_nop_coeff") == 0) { - sys.mc.dram_nop_coeff = - atof(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "dram_activity_coeff") == 0) { - sys.mc.dram_activity_coeff = - atof(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "dram_pre_coeff") == 0) { - sys.mc.dram_pre_coeff = - atof(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "dram_rd_coeff") == 0) { - sys.mc.dram_rd_coeff = - atof(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "dram_wr_coeff") == 0) { - sys.mc.dram_wr_coeff = - atof(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "dram_req_coeff") == 0) { - sys.mc.dram_req_coeff = - atof(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "dram_const_coeff") == 0) { - sys.mc.dram_const_coeff = - atof(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - } - itmp = xNode3.nChildNode("stat"); - for (k = 0; k < itmp; - k++) { // get all items of stat in system.mendirectory - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "memory_accesses") == 0) { - sys.mc.memory_accesses = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "memory_reads") == 0) { - sys.mc.memory_reads = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "memory_writes") == 0) { - sys.mc.memory_writes = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "dram_pre") == 0) { - sys.mc.dram_pre = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } else { - printf( - "some value(s) of " - "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " - "not correct!"); - exit(0); - } - //__________________________________________Get - // system.niu____________________________________________ - if (OrderofComponents_3layer > 0) - OrderofComponents_3layer = OrderofComponents_3layer + 1; - xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer); - if (xNode3.isEmpty() == 1) { - printf( - "some value(s) of " - "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " - "not correct!"); - exit(0); - } - if (strstr(xNode3.getAttribute("id"), "system.niu") != NULL) { - itmp = xNode3.nChildNode("param"); - for (k = 0; k < itmp; k++) { // get all items of param in system.mem - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "clockrate") == 0) { - sys.niu.clockrate = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "number_units") == 0) { - sys.niu.number_units = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "type") == 0) { - sys.niu.type = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - } - itmp = xNode3.nChildNode("stat"); - for (k = 0; k < itmp; - k++) { // get all items of stat in system.mendirectory - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "duty_cycle") == 0) { - sys.niu.duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_load_perc") == 0) { - sys.niu.total_load_perc = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } else { - printf( - "some value(s) of " - "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " - "not correct!"); - exit(0); - } - - //__________________________________________Get - // system.pcie____________________________________________ - if (OrderofComponents_3layer > 0) - OrderofComponents_3layer = OrderofComponents_3layer + 1; - xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer); - if (xNode3.isEmpty() == 1) { - printf( - "some value(s) of " - "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " - "not correct!"); - exit(0); - } - if (strstr(xNode3.getAttribute("id"), "system.pcie") != NULL) { - itmp = xNode3.nChildNode("param"); - for (k = 0; k < itmp; k++) { // get all items of param in system.mem - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "clockrate") == 0) { - sys.pcie.clockrate = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "number_units") == 0) { - sys.pcie.number_units = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "num_channels") == 0) { - sys.pcie.num_channels = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "type") == 0) { - sys.pcie.type = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "withPHY") == 0) { - sys.pcie.withPHY = - (bool)atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - } - itmp = xNode3.nChildNode("stat"); - for (k = 0; k < itmp; - k++) { // get all items of stat in system.mendirectory - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "duty_cycle") == 0) { - sys.pcie.duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_load_perc") == 0) { - sys.pcie.total_load_perc = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } else { - printf( - "some value(s) of " - "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " - "not correct!"); - exit(0); - } - //__________________________________________Get - // system.flashcontroller____________________________________________ - if (OrderofComponents_3layer > 0) - OrderofComponents_3layer = OrderofComponents_3layer + 1; - xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer); - if (xNode3.isEmpty() == 1) { - printf( - "some value(s) of " - "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " - "not correct!"); - exit(0); - } - if (strstr(xNode3.getAttribute("id"), "system.flashc") != NULL) { - itmp = xNode3.nChildNode("param"); - for (k = 0; k < itmp; k++) { // get all items of param in system.mem - // if - //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"flashc_clock")==0) - //{sys.flashc.mc_clock=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} - // if - //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"block_size")==0) - //{sys.flashc.llc_line_length=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "number_flashcs") == 0) { - sys.flashc.number_mcs = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - // if - //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"memory_channels_per_flashc")==0) - //{sys.flashc.memory_channels_per_mc=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} - // if - //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"req_window_size_per_channel")==0) - //{sys.flashc.req_window_size_per_channel=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} - // if - //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"IO_buffer_size_per_channel")==0) - //{sys.flashc.IO_buffer_size_per_channel=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} - // if - //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"databus_width")==0) - //{sys.flashc.databus_width=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} - // if - //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"addressbus_width")==0) - //{sys.flashc.addressbus_width=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "peak_transfer_rate") == 0) { - sys.flashc.peak_transfer_rate = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - // if - //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"number_ranks")==0) - //{sys.flashc.number_ranks=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} - // if - //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"LVDS")==0) - //{sys.flashc.LVDS=(bool)atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "type") == 0) { - sys.flashc.type = - atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), - "withPHY") == 0) { - sys.flashc.withPHY = - (bool)atoi(xNode3.getChildNode("param", k).getAttribute("value")); - continue; - } - } - itmp = xNode3.nChildNode("stat"); - for (k = 0; k < itmp; - k++) { // get all items of stat in system.mendirectory - // if - //(strcmp(xNode3.getChildNode("stat",k).getAttribute("name"),"memory_accesses")==0) - //{sys.flashc.memory_accesses=atof(xNode3.getChildNode("stat",k).getAttribute("value"));continue;} - // if - //(strcmp(xNode3.getChildNode("stat",k).getAttribute("name"),"memory_reads")==0) - //{sys.flashc.memory_reads=atof(xNode3.getChildNode("stat",k).getAttribute("value"));continue;} - // if - //(strcmp(xNode3.getChildNode("stat",k).getAttribute("name"),"memory_writes")==0) - //{sys.flashc.memory_writes=atof(xNode3.getChildNode("stat",k).getAttribute("value"));continue;} - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "duty_cycle") == 0) { - sys.flashc.duty_cycle = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), - "total_load_perc") == 0) { - sys.flashc.total_load_perc = - atof(xNode3.getChildNode("stat", k).getAttribute("value")); - continue; - } - } - } else { - printf( - "some value(s) of " - "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " - "not correct!"); - exit(0); - } - } -} -void ParseXML::initialize() // Initialize all -{ - // All number_of_* at the level of 'system' 03/21/2009 - sys.number_of_cores = 1; - sys.architecture = 1; // 1 - fermi - sys.number_of_L1Directories = 1; - sys.number_of_L2Directories = 1; - sys.number_of_L2s = 1; - sys.Private_L2 = false; - sys.number_of_L3s = 1; - sys.number_of_NoCs = 1; - // All params at the level of 'system' - // strcpy(sys.homogeneous_cores,"default"); - sys.core_tech_node = 1; - sys.target_core_clockrate = 1; - sys.target_chip_area = 1; - sys.temperature = 1; - sys.number_cache_levels = 1; - sys.homogeneous_cores = 1; - sys.homogeneous_L1Directories = 1; - sys.homogeneous_L2Directories = 1; - sys.homogeneous_L2s = 1; - sys.homogeneous_L3s = 1; - sys.homogeneous_NoCs = 1; - sys.homogeneous_ccs = 1; - - sys.Max_area_deviation = 1; - sys.Max_power_deviation = 1; - sys.device_type = 1; - sys.longer_channel_device = true; - sys.Embedded = false; - sys.opt_dynamic_power = false; - sys.opt_lakage_power = false; - sys.opt_clockrate = true; - sys.opt_area = false; - sys.interconnect_projection_type = 1; - sys.idle_core_power = 0; - int i, j; - for (i = 0; i <= 63; i++) { - sys.scaling_coefficients[i] = 1; - sys.core[i].clock_rate = 1; - sys.core[i].opt_local = true; - sys.core[i].x86 = false; - sys.core[i].machine_bits = 1; - sys.core[i].virtual_address_width = 1; - sys.core[i].physical_address_width = 1; - sys.core[i].opcode_width = 1; - sys.core[i].micro_opcode_width = 1; - // strcpy(sys.core[i].machine_type,"default"); - sys.core[i].internal_datapath_width = 1; - sys.core[i].number_hardware_threads = 1; - sys.core[i].fetch_width = 1; - sys.core[i].number_instruction_fetch_ports = 1; - sys.core[i].decode_width = 1; - sys.core[i].issue_width = 1; - sys.core[i].peak_issue_width = 1; - sys.core[i].commit_width = 1; - for (j = 0; j < 20; j++) sys.core[i].pipelines_per_core[j] = 1; - for (j = 0; j < 20; j++) sys.core[i].pipeline_depth[j] = 1; - strcpy(sys.core[i].FPU, "default"); - strcpy(sys.core[i].divider_multiplier, "default"); - sys.core[i].ALU_per_core = 1; - sys.core[i].FPU_per_core = 1.0; - sys.core[i].MUL_per_core = 1; - sys.core[i].instruction_buffer_size = 1; - sys.core[i].decoded_stream_buffer_size = 1; - // strcpy(sys.core[i].instruction_window_scheme,"default"); - sys.core[i].instruction_window_size = 1; - sys.core[i].ROB_size = 1; - sys.core[i].archi_Regs_IRF_size = 1; - sys.core[i].archi_Regs_FRF_size = 1; - sys.core[i].phy_Regs_IRF_size = 1; - sys.core[i].phy_Regs_FRF_size = 1; - // strcpy(sys.core[i].rename_scheme,"default"); - sys.core[i].register_windows_size = 1; - strcpy(sys.core[i].LSU_order, "default"); - sys.core[i].store_buffer_size = 1; - sys.core[i].load_buffer_size = 1; - sys.core[i].memory_ports = 1; - strcpy(sys.core[i].Dcache_dual_pump, "default"); - sys.core[i].RAS_size = 1; - // all stats at the level of system.core(0-n) - sys.core[i].total_instructions = 1; - sys.core[i].int_instructions = 1; - sys.core[i].fp_instructions = 1; - sys.core[i].branch_instructions = 1; - sys.core[i].branch_mispredictions = 1; - sys.core[i].committed_instructions = 1; - sys.core[i].load_instructions = 1; - sys.core[i].store_instructions = 1; - sys.core[i].total_cycles = 1; - sys.core[i].idle_cycles = 1; - sys.core[i].busy_cycles = 1; - sys.core[i].instruction_buffer_reads = 1; - sys.core[i].instruction_buffer_write = 1; - sys.core[i].ROB_reads = 1; - sys.core[i].ROB_writes = 1; - sys.core[i].rename_accesses = 1; - sys.core[i].inst_window_reads = 1; - sys.core[i].inst_window_writes = 1; - sys.core[i].inst_window_wakeup_accesses = 1; - sys.core[i].inst_window_selections = 1; - sys.core[i].archi_int_regfile_reads = 1; - sys.core[i].archi_float_regfile_reads = 1; - sys.core[i].phy_int_regfile_reads = 1; - sys.core[i].phy_float_regfile_reads = 1; - sys.core[i].windowed_reg_accesses = 1; - sys.core[i].windowed_reg_transports = 1; - sys.core[i].function_calls = 1; - sys.core[i].ialu_accesses = 1; - sys.core[i].fpu_accesses = 1; - sys.core[i].mul_accesses = 1; - sys.core[i].cdb_alu_accesses = 1; - sys.core[i].cdb_mul_accesses = 1; - sys.core[i].cdb_fpu_accesses = 1; - sys.core[i].load_buffer_reads = 1; - sys.core[i].load_buffer_writes = 1; - sys.core[i].load_buffer_cams = 1; - sys.core[i].store_buffer_reads = 1; - sys.core[i].store_buffer_writes = 1; - sys.core[i].store_buffer_cams = 1; - sys.core[i].store_buffer_forwards = 1; - sys.core[i].main_memory_access = 1; - sys.core[i].main_memory_read = 1; - sys.core[i].main_memory_write = 1; - sys.core[i].IFU_duty_cycle = 1; - sys.core[i].BR_duty_cycle = 1; - sys.core[i].LSU_duty_cycle = 1; - sys.core[i].MemManU_I_duty_cycle = 1; - sys.core[i].MemManU_D_duty_cycle = 1; - sys.core[i].ALU_duty_cycle = 1; - sys.core[i].MUL_duty_cycle = 1; - sys.core[i].FPU_duty_cycle = 1; - sys.core[i].ALU_cdb_duty_cycle = 1; - sys.core[i].MUL_cdb_duty_cycle = 1; - sys.core[i].FPU_cdb_duty_cycle = 1; - // system.core?.predictor - sys.core[i].predictor.prediction_width = 1; - strcpy(sys.core[i].predictor.prediction_scheme, "default"); - sys.core[i].predictor.predictor_size = 1; - sys.core[i].predictor.predictor_entries = 1; - sys.core[i].predictor.local_predictor_entries = 1; - for (j = 0; j < 20; j++) sys.core[i].predictor.local_predictor_size[j] = 1; - sys.core[i].predictor.global_predictor_entries = 1; - sys.core[i].predictor.global_predictor_bits = 1; - sys.core[i].predictor.chooser_predictor_entries = 1; - sys.core[i].predictor.chooser_predictor_bits = 1; - sys.core[i].predictor.predictor_accesses = 1; - // system.core?.itlb - sys.core[i].itlb.number_entries = 1; - sys.core[i].itlb.total_hits = 1; - sys.core[i].itlb.total_accesses = 1; - sys.core[i].itlb.total_misses = 1; - // system.core?.icache - for (j = 0; j < 20; j++) sys.core[i].icache.icache_config[j] = 1; - // strcpy(sys.core[i].icache.buffer_sizes,"default"); - sys.core[i].icache.total_accesses = 1; - sys.core[i].icache.read_accesses = 1; - sys.core[i].icache.read_misses = 1; - sys.core[i].icache.replacements = 1; - sys.core[i].icache.read_hits = 1; - sys.core[i].icache.total_hits = 1; - sys.core[i].icache.total_misses = 1; - sys.core[i].icache.miss_buffer_access = 1; - sys.core[i].icache.fill_buffer_accesses = 1; - sys.core[i].icache.prefetch_buffer_accesses = 1; - sys.core[i].icache.prefetch_buffer_writes = 1; - sys.core[i].icache.prefetch_buffer_reads = 1; - sys.core[i].icache.prefetch_buffer_hits = 1; - // system.core?.dtlb - sys.core[i].dtlb.number_entries = 1; - sys.core[i].dtlb.total_accesses = 1; - sys.core[i].dtlb.read_accesses = 1; - sys.core[i].dtlb.write_accesses = 1; - sys.core[i].dtlb.write_hits = 1; - sys.core[i].dtlb.read_hits = 1; - sys.core[i].dtlb.read_misses = 1; - sys.core[i].dtlb.write_misses = 1; - sys.core[i].dtlb.total_hits = 1; - sys.core[i].dtlb.total_misses = 1; - // system.core?.dcache - for (j = 0; j < 20; j++) sys.core[i].dcache.dcache_config[j] = 1; - // strcpy(sys.core[i].dcache.buffer_sizes,"default"); - sys.core[i].dcache.total_accesses = 1; - sys.core[i].dcache.read_accesses = 1; - sys.core[i].dcache.write_accesses = 1; - sys.core[i].dcache.total_hits = 1; - sys.core[i].dcache.total_misses = 1; - sys.core[i].dcache.read_hits = 1; - sys.core[i].dcache.write_hits = 1; - sys.core[i].dcache.read_misses = 1; - sys.core[i].dcache.write_misses = 1; - sys.core[i].dcache.replacements = 1; - sys.core[i].dcache.write_backs = 1; - sys.core[i].dcache.miss_buffer_access = 1; - sys.core[i].dcache.fill_buffer_accesses = 1; - sys.core[i].dcache.prefetch_buffer_accesses = 1; - sys.core[i].dcache.prefetch_buffer_writes = 1; - sys.core[i].dcache.prefetch_buffer_reads = 1; - sys.core[i].dcache.prefetch_buffer_hits = 1; - sys.core[i].dcache.wbb_writes = 1; - sys.core[i].dcache.wbb_reads = 1; - // system.core?.BTB - for (j = 0; j < 20; j++) sys.core[i].BTB.BTB_config[j] = 1; - sys.core[i].BTB.total_accesses = 1; - sys.core[i].BTB.read_accesses = 1; - sys.core[i].BTB.write_accesses = 1; - sys.core[i].BTB.total_hits = 1; - sys.core[i].BTB.total_misses = 1; - sys.core[i].BTB.read_hits = 1; - sys.core[i].BTB.write_hits = 1; - sys.core[i].BTB.read_misses = 1; - sys.core[i].BTB.write_misses = 1; - sys.core[i].BTB.replacements = 1; - } - - // system_L1directory - for (i = 0; i <= 63; i++) { - for (j = 0; j < 20; j++) sys.L1Directory[i].Dir_config[j] = 1; - for (j = 0; j < 20; j++) sys.L1Directory[i].buffer_sizes[j] = 1; - sys.L1Directory[i].clockrate = 1; - sys.L1Directory[i].ports[20] = 1; - sys.L1Directory[i].device_type = 1; - strcpy(sys.L1Directory[i].threeD_stack, "default"); - sys.L1Directory[i].total_accesses = 1; - sys.L1Directory[i].read_accesses = 1; - sys.L1Directory[i].write_accesses = 1; - sys.L1Directory[i].duty_cycle = 1; - } - // system_L2directory - for (i = 0; i <= 63; i++) { - for (j = 0; j < 20; j++) sys.L2Directory[i].Dir_config[j] = 1; - for (j = 0; j < 20; j++) sys.L2Directory[i].buffer_sizes[j] = 1; - sys.L2Directory[i].clockrate = 1; - sys.L2Directory[i].ports[20] = 1; - sys.L2Directory[i].device_type = 1; - strcpy(sys.L2Directory[i].threeD_stack, "default"); - sys.L2Directory[i].total_accesses = 1; - sys.L2Directory[i].read_accesses = 1; - sys.L2Directory[i].write_accesses = 1; - sys.L2Directory[i].duty_cycle = 1; - } - for (i = 0; i <= 63; i++) { - // system_L2 - for (j = 0; j < 20; j++) sys.L2[i].L2_config[j] = 1; - sys.L2[i].clockrate = 1; - for (j = 0; j < 20; j++) sys.L2[i].ports[j] = 1; - sys.L2[i].device_type = 1; - strcpy(sys.L2[i].threeD_stack, "default"); - for (j = 0; j < 20; j++) sys.L2[i].buffer_sizes[j] = 1; - sys.L2[i].total_accesses = 1; - sys.L2[i].read_accesses = 1; - sys.L2[i].write_accesses = 1; - sys.L2[i].total_hits = 1; - sys.L2[i].total_misses = 1; - sys.L2[i].read_hits = 1; - sys.L2[i].write_hits = 1; - sys.L2[i].read_misses = 1; - sys.L2[i].write_misses = 1; - sys.L2[i].replacements = 1; - sys.L2[i].write_backs = 1; - sys.L2[i].miss_buffer_accesses = 1; - sys.L2[i].fill_buffer_accesses = 1; - sys.L2[i].prefetch_buffer_accesses = 1; - sys.L2[i].prefetch_buffer_writes = 1; - sys.L2[i].prefetch_buffer_reads = 1; - sys.L2[i].prefetch_buffer_hits = 1; - sys.L2[i].wbb_writes = 1; - sys.L2[i].wbb_reads = 1; - sys.L2[i].duty_cycle = 1; - sys.L2[i].merged_dir = false; - sys.L2[i].homenode_read_accesses = 1; - sys.L2[i].homenode_write_accesses = 1; - sys.L2[i].homenode_read_hits = 1; - sys.L2[i].homenode_write_hits = 1; - sys.L2[i].homenode_read_misses = 1; - sys.L2[i].homenode_write_misses = 1; - sys.L2[i].dir_duty_cycle = 1; - } - for (i = 0; i <= 63; i++) { - // system_L3 - for (j = 0; j < 20; j++) sys.L3[i].L3_config[j] = 1; - sys.L3[i].clockrate = 1; - for (j = 0; j < 20; j++) sys.L3[i].ports[j] = 1; - sys.L3[i].device_type = 1; - strcpy(sys.L3[i].threeD_stack, "default"); - for (j = 0; j < 20; j++) sys.L3[i].buffer_sizes[j] = 1; - sys.L3[i].total_accesses = 1; - sys.L3[i].read_accesses = 1; - sys.L3[i].write_accesses = 1; - sys.L3[i].total_hits = 1; - sys.L3[i].total_misses = 1; - sys.L3[i].read_hits = 1; - sys.L3[i].write_hits = 1; - sys.L3[i].read_misses = 1; - sys.L3[i].write_misses = 1; - sys.L3[i].replacements = 1; - sys.L3[i].write_backs = 1; - sys.L3[i].miss_buffer_accesses = 1; - sys.L3[i].fill_buffer_accesses = 1; - sys.L3[i].prefetch_buffer_accesses = 1; - sys.L3[i].prefetch_buffer_writes = 1; - sys.L3[i].prefetch_buffer_reads = 1; - sys.L3[i].prefetch_buffer_hits = 1; - sys.L3[i].wbb_writes = 1; - sys.L3[i].wbb_reads = 1; - sys.L3[i].duty_cycle = 1; - sys.L3[i].merged_dir = false; - sys.L3[i].homenode_read_accesses = 1; - sys.L3[i].homenode_write_accesses = 1; - sys.L3[i].homenode_read_hits = 1; - sys.L3[i].homenode_write_hits = 1; - sys.L3[i].homenode_read_misses = 1; - sys.L3[i].homenode_write_misses = 1; - sys.L3[i].dir_duty_cycle = 1; - } - // system_NoC - for (i = 0; i <= 63; i++) { - sys.NoC[i].clockrate = 1; - sys.NoC[i].type = true; - sys.NoC[i].chip_coverage = 1; - sys.NoC[i].has_global_link = true; - strcpy(sys.NoC[i].topology, "default"); - sys.NoC[i].horizontal_nodes = 1; - sys.NoC[i].vertical_nodes = 1; - sys.NoC[i].input_ports = 1; - sys.NoC[i].output_ports = 1; - sys.NoC[i].virtual_channel_per_port = 1; - sys.NoC[i].flit_bits = 1; - sys.NoC[i].input_buffer_entries_per_vc = 1; - sys.NoC[i].total_accesses = 1; - sys.NoC[i].duty_cycle = 1; - sys.NoC[i].route_over_perc = 0.5; - for (j = 0; j < 20; j++) sys.NoC[i].ports_of_input_buffer[j] = 1; - sys.NoC[i].number_of_crossbars = 1; - strcpy(sys.NoC[i].crossbar_type, "default"); - strcpy(sys.NoC[i].crosspoint_type, "default"); - // system.NoC?.xbar0; - sys.NoC[i].xbar0.number_of_inputs_of_crossbars = 1; - sys.NoC[i].xbar0.number_of_outputs_of_crossbars = 1; - sys.NoC[i].xbar0.flit_bits = 1; - sys.NoC[i].xbar0.input_buffer_entries_per_port = 1; - sys.NoC[i].xbar0.ports_of_input_buffer[20] = 1; - sys.NoC[i].xbar0.crossbar_accesses = 1; - } - // system_mem - sys.mem.mem_tech_node = 1; - sys.mem.device_clock = 1; - sys.mem.capacity_per_channel = 1; - sys.mem.number_ranks = 1; - sys.mem.peak_transfer_rate = 1; - sys.mem.num_banks_of_DRAM_chip = 1; - sys.mem.Block_width_of_DRAM_chip = 1; - sys.mem.output_width_of_DRAM_chip = 1; - sys.mem.page_size_of_DRAM_chip = 1; - sys.mem.burstlength_of_DRAM_chip = 1; - sys.mem.internal_prefetch_of_DRAM_chip = 1; - sys.mem.memory_accesses = 1; - sys.mem.memory_reads = 1; - sys.mem.memory_writes = 1; - - // system_mc - sys.mc.mc_clock = 1; - sys.mc.number_mcs = 1; - sys.mc.peak_transfer_rate = 1; - sys.mc.memory_channels_per_mc = 1; - sys.mc.number_ranks = 1; - sys.mc.req_window_size_per_channel = 1; - sys.mc.IO_buffer_size_per_channel = 1; - sys.mc.databus_width = 1; - sys.mc.addressbus_width = 1; - sys.mc.memory_accesses = 1; - sys.mc.memory_reads = 1; - sys.mc.memory_writes = 1; - sys.mc.LVDS = true; - sys.mc.type = 1; - - // system_niu - sys.niu.clockrate = 1; - sys.niu.number_units = 1; - sys.niu.type = 1; - sys.niu.duty_cycle = 1; - sys.niu.total_load_perc = 1; - // system_pcie - sys.pcie.clockrate = 1; - sys.pcie.number_units = 1; - sys.pcie.num_channels = 1; - sys.pcie.type = 1; - sys.pcie.withPHY = false; - sys.pcie.duty_cycle = 1; - sys.pcie.total_load_perc = 1; - // system_flash_controller - sys.flashc.mc_clock = 1; - sys.flashc.number_mcs = 1; - sys.flashc.peak_transfer_rate = 1; - sys.flashc.memory_channels_per_mc = 1; - sys.flashc.number_ranks = 1; - sys.flashc.req_window_size_per_channel = 1; - sys.flashc.IO_buffer_size_per_channel = 1; - sys.flashc.databus_width = 1; - sys.flashc.addressbus_width = 1; - sys.flashc.memory_accesses = 1; - sys.flashc.memory_reads = 1; - sys.flashc.memory_writes = 1; - sys.flashc.LVDS = true; - sys.flashc.withPHY = false; - sys.flashc.type = 1; - sys.flashc.duty_cycle = 1; - sys.flashc.total_load_perc = 1; -} -- cgit v1.3