func_unit.hh (9184:a1a8f137b796) | func_unit.hh (10807:dac26eb4cb64) |
---|---|
1/* 2 * Copyright (c) 2002-2006 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 38 unchanged lines hidden (view full) --- 47// 48// 49 50class OpDesc : public SimObject 51{ 52 public: 53 OpClass opClass; 54 Cycles opLat; | 1/* 2 * Copyright (c) 2002-2006 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 38 unchanged lines hidden (view full) --- 47// 48// 49 50class OpDesc : public SimObject 51{ 52 public: 53 OpClass opClass; 54 Cycles opLat; |
55 Cycles issueLat; | 55 bool pipelined; |
56 57 OpDesc(const OpDescParams *p) 58 : SimObject(p), opClass(p->opClass), opLat(p->opLat), | 56 57 OpDesc(const OpDescParams *p) 58 : SimObject(p), opClass(p->opClass), opLat(p->opLat), |
59 issueLat(p->issueLat) {}; | 59 pipelined(p->pipelined) {}; |
60}; 61 62class FUDesc : public SimObject 63{ 64 public: 65 std::vector<OpDesc *> opDescList; 66 unsigned number; 67 --- 12 unchanged lines hidden (view full) --- 80// The actual FU object 81// 82// 83// 84class FuncUnit 85{ 86 private: 87 unsigned opLatencies[Num_OpClasses]; | 60}; 61 62class FUDesc : public SimObject 63{ 64 public: 65 std::vector<OpDesc *> opDescList; 66 unsigned number; 67 --- 12 unchanged lines hidden (view full) --- 80// The actual FU object 81// 82// 83// 84class FuncUnit 85{ 86 private: 87 unsigned opLatencies[Num_OpClasses]; |
88 unsigned issueLatencies[Num_OpClasses]; | 88 bool pipelined[Num_OpClasses]; |
89 std::bitset<Num_OpClasses> capabilityList; 90 91 public: 92 FuncUnit(); 93 FuncUnit(const FuncUnit &fu); 94 95 std::string name; 96 | 89 std::bitset<Num_OpClasses> capabilityList; 90 91 public: 92 FuncUnit(); 93 FuncUnit(const FuncUnit &fu); 94 95 std::string name; 96 |
97 void addCapability(OpClass cap, unsigned oplat, unsigned issuelat); | 97 void addCapability(OpClass cap, unsigned oplat, bool pipelined); |
98 99 bool provides(OpClass capability); 100 std::bitset<Num_OpClasses> capabilities(); 101 102 unsigned &opLatency(OpClass capability); | 98 99 bool provides(OpClass capability); 100 std::bitset<Num_OpClasses> capabilities(); 101 102 unsigned &opLatency(OpClass capability); |
103 unsigned issueLatency(OpClass capability); | 103 bool isPipelined(OpClass capability); |
104}; 105 106#endif // __FU_POOL_HH__ | 104}; 105 106#endif // __FU_POOL_HH__ |