|
9 | 9 | #include "sparta/simulation/ResourceFactory.hpp" |
10 | 10 | #include "sparta/simulation/RootTreeNode.hpp" |
11 | 11 | #include "sparta/simulation/ResourceTreeNode.hpp" |
12 | | -#include "sparta/simulation/TreeNodeExtensions.hpp" |
13 | 12 |
|
14 | 13 | namespace olympia |
15 | 14 | { |
@@ -128,79 +127,6 @@ namespace olympia |
128 | 127 |
|
129 | 128 | }; // class CPUTopology |
130 | 129 |
|
131 | | - // |
132 | | - // \class CoreExtensions |
133 | | - // \brief Common extensions for a specific core |
134 | | - // |
135 | | - // Similar to Parameters, Extensions allow the modeler to provide |
136 | | - // common "preferences" to any node (and it's children). For |
137 | | - // example, the topology of the execution units: the number of |
138 | | - // ALUs. Both Dispatch and Execute (as well as testers) need to |
139 | | - // know this information. |
140 | | - // |
141 | | - // |
142 | | - class CoreExtensions : public sparta::ExtensionsParamsOnly |
143 | | - { |
144 | | - public: |
145 | | - static constexpr char name[] = "core_extensions"; |
146 | | - |
147 | | - using ExecutionTopology = std::vector<std::vector<std::string>>; |
148 | | - using ExecutionTopologyParam = sparta::Parameter<ExecutionTopology>; |
149 | | - |
150 | | - using PipeTopology = std::vector<std::vector<std::string>>; |
151 | | - using PipeTopologyParam = sparta::Parameter<PipeTopology>; |
152 | | - |
153 | | - using IssueQueueTopology = std::vector<std::vector<std::string>>; |
154 | | - using IssueQueueTopologyParam = sparta::Parameter<IssueQueueTopology>; |
155 | | - |
156 | | - CoreExtensions() : sparta::ExtensionsParamsOnly() {} |
157 | | - |
158 | | - virtual ~CoreExtensions() {} |
159 | | - |
160 | | - void postCreate() override |
161 | | - { |
162 | | - sparta::ParameterSet* ps = getParameters(); |
163 | | - |
164 | | - // |
165 | | - // Example of an execution topology: |
166 | | - // [["alu", "1"], ["fpu", "1"], ["br", "1"]] |
167 | | - // |
168 | | - // LSU is its own entity at this time |
169 | | - // |
170 | | - execution_topology_.reset( |
171 | | - new ExecutionTopologyParam("execution_topology", ExecutionTopology(), |
172 | | - "Topology Post Dispatch -- the execution pipes. " |
173 | | - "Expect: [[\"<unit_name>\", \"<count>\"]] ", |
174 | | - ps)); |
175 | | - pipelines_.reset(new PipeTopologyParam("pipelines", PipeTopology(), |
176 | | - "Topology Mapping" |
177 | | - "Mapping of Pipe Targets to execution unit", |
178 | | - ps)); |
179 | | - issue_queue_to_pipe_map_.reset( |
180 | | - new IssueQueueTopologyParam("issue_queue_to_pipe_map", IssueQueueTopology(), |
181 | | - "Issue Queue Topology" |
182 | | - "Defines Issue Queue to Execution Unit Mapping", |
183 | | - ps)); |
184 | | - exe_pipe_rename_.reset(new IssueQueueTopologyParam("exe_pipe_rename", |
185 | | - IssueQueueTopology(), |
186 | | - "Rename for ExecutionPipes" |
187 | | - "Defines alias for ExecutionPipe", |
188 | | - ps)); |
189 | | - issue_queue_rename_.reset(new IssueQueueTopologyParam("issue_queue_rename", |
190 | | - IssueQueueTopology(), |
191 | | - "Rename for IssueQueues" |
192 | | - "Defines alias for IssueQueue", |
193 | | - ps)); |
194 | | - } |
195 | | - |
196 | | - private: |
197 | | - std::unique_ptr<ExecutionTopologyParam> execution_topology_; |
198 | | - std::unique_ptr<PipeTopologyParam> pipelines_; |
199 | | - std::unique_ptr<IssueQueueTopologyParam> issue_queue_to_pipe_map_; |
200 | | - std::unique_ptr<PipeTopologyParam> exe_pipe_rename_; |
201 | | - std::unique_ptr<PipeTopologyParam> issue_queue_rename_; |
202 | | - }; |
203 | | - |
204 | 130 | /** |
205 | 131 | * @brief CoreTopologySimple topology class |
206 | 132 | */ |
|
0 commit comments