iocontrollers.h revision 10152:52c552138ba1
1803SN/A/*****************************************************************************
21363SN/A *                                McPAT
3803SN/A *                      SOFTWARE LICENSE AGREEMENT
4803SN/A *            Copyright 2012 Hewlett-Packard Development Company, L.P.
5803SN/A *                          All Rights Reserved
6803SN/A *
7803SN/A * Redistribution and use in source and binary forms, with or without
8803SN/A * modification, are permitted provided that the following conditions are
9803SN/A * met: redistributions of source code must retain the above copyright
10803SN/A * notice, this list of conditions and the following disclaimer;
11803SN/A * redistributions in binary form must reproduce the above copyright
12803SN/A * notice, this list of conditions and the following disclaimer in the
13803SN/A * documentation and/or other materials provided with the distribution;
14803SN/A * neither the name of the copyright holders nor the names of its
15803SN/A * contributors may be used to endorse or promote products derived from
16803SN/A * this software without specific prior written permission.
17803SN/A
18803SN/A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19803SN/A * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20803SN/A * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21803SN/A * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22803SN/A * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23803SN/A * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24803SN/A * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25803SN/A * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26803SN/A * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
272665SN/A * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
282665SN/A * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.”
292665SN/A *
302665SN/A ***************************************************************************/
31803SN/A#ifndef IOCONTROLLERS_H_
32768SN/A#define IOCONTROLLERS_H_
331730SN/A
34773SN/A
35768SN/A#endif /* IOCONTROLLERS_H_ */
36768SN/A
37773SN/A#include "XML_Parse.h"
38773SN/A#include "parameter.h"
39768SN/A//#include "io.h"
40768SN/A#include "array.h"
41768SN/A//#include "Undifferentiated_Core_Area.h"
42768SN/A#include <vector>
434762Snate@binkert.org
44768SN/A#include "basic_components.h"
452542SN/A
463540Sgblack@eecs.umich.educlass NIUController : public Component {
473540Sgblack@eecs.umich.edu  public:
483540Sgblack@eecs.umich.edu        ParseXML *XML;
493540Sgblack@eecs.umich.edu        InputParameter interface_ip;
503348SN/A    NIUParam  niup;
513348SN/A    powerDef power_t;
522542SN/A    uca_org_t local_result;
532542SN/A    NIUController(ParseXML *XML_interface,InputParameter* interface_ip_);
54768SN/A    void set_niu_param();
55768SN/A    void computeEnergy(bool is_tdp=true);
562107SN/A    void displayEnergy(uint32_t indent = 0,int plevel = 100, bool is_tdp=true);
572107SN/A    ~NIUController(){};
58773SN/A};
595606Snate@binkert.org
605606Snate@binkert.orgclass PCIeController : public Component {
615606Snate@binkert.org  public:
621817SN/A        ParseXML *XML;
63772SN/A        InputParameter interface_ip;
64772SN/A    PCIeParam  pciep;
654762Snate@binkert.org    powerDef power_t;
665606Snate@binkert.org    uca_org_t local_result;
675606Snate@binkert.org    PCIeController(ParseXML *XML_interface,InputParameter* interface_ip_);
68768SN/A    void set_pcie_param();
693846Shsul@eecs.umich.edu    void computeEnergy(bool is_tdp=true);
70909SN/A    void displayEnergy(uint32_t indent = 0,int plevel = 100, bool is_tdp=true);
71803SN/A    ~PCIeController(){};
72803SN/A};
73803SN/A
74771SN/Aclass FlashController : public Component {
75777SN/A  public:
76777SN/A        ParseXML *XML;
77773SN/A        InputParameter interface_ip;
78773SN/A    MCParam  fcp;
791634SN/A    powerDef power_t;
801634SN/A    uca_org_t local_result;
811634SN/A    FlashController(ParseXML *XML_interface,InputParameter* interface_ip_);
822539SN/A    void set_fc_param();
831634SN/A    void computeEnergy(bool is_tdp=true);
841634SN/A    void displayEnergy(uint32_t indent = 0,int plevel = 100, bool is_tdp=true);
852542SN/A    ~FlashController(){};
863349SN/A};
87768SN/A
882641SN/A