00001 // 00002 // Copyright (c) 2005-2008 Kenichi Watanabe. 00003 // Copyright (c) 2005-2008 Yasuhiro Watari. 00004 // Copyright (c) 2005-2008 Hironori Ichibayashi. 00005 // Copyright (c) 2008-2009 Kazuo Horio. 00006 // Copyright (c) 2009-2013 Naruki Kurata. 00007 // Copyright (c) 2005-2013 Ryota Shioya. 00008 // Copyright (c) 2005-2013 Masahiro Goshima. 00009 // 00010 // This software is provided 'as-is', without any express or implied 00011 // warranty. In no event will the authors be held liable for any damages 00012 // arising from the use of this software. 00013 // 00014 // Permission is granted to anyone to use this software for any purpose, 00015 // including commercial applications, and to alter it and redistribute it 00016 // freely, subject to the following restrictions: 00017 // 00018 // 1. The origin of this software must not be misrepresented; you must not 00019 // claim that you wrote the original software. If you use this software 00020 // in a product, an acknowledgment in the product documentation would be 00021 // appreciated but is not required. 00022 // 00023 // 2. Altered source versions must be plainly marked as such, and must not be 00024 // misrepresented as being the original software. 00025 // 00026 // 3. This notice may not be removed or altered from any source 00027 // distribution. 00028 // 00029 // 00030 00031 00032 // 00033 // This file defines the mapping of resource names used in 00034 // XML files and resource types defined in cpp files. 00035 // 00036 // This file is included from Resource/Builder/ResourceFactory.cpp 00037 // 00038 00039 #include "Sim/Foundation/Checkpoint/CheckpointMaster.h" 00040 #include "Sim/System/GlobalClock.h" 00041 #include "Sim/System/ForwardEmulator.h" 00042 00043 #include "Sim/Core/Core.h" 00044 #include "Sim/Thread/Thread.h" 00045 00046 #include "Sim/InorderList/InorderList.h" 00047 #include "Sim/Memory/MemOrderManager/MemOrderManager.h" 00048 00049 #include "Sim/Register/RegisterFile.h" 00050 #include "Sim/Register/RegisterFreeList.h" 00051 #include "Sim/Memory/Cache/Cache.h" 00052 #include "Sim/Memory/Cache/CacheSystem.h" 00053 #include "Sim/Memory/Prefetcher/PrefetcherBase.h" 00054 #include "Sim/Memory/Prefetcher/StreamPrefetcher.h" 00055 #include "Sim/Memory/Prefetcher/StridePrefetcher.h" 00056 00057 #include "Sim/ExecUnit/ExecUnit.h" 00058 #include "Sim/ExecUnit/PipelinedExecUnit.h" 00059 #include "Sim/ExecUnit/MemExecUnit.h" 00060 #include "Sim/ExecUnit/ExecLatencyInfo.h" 00061 00062 #include "Sim/Pipeline/Fetcher/Fetcher.h" 00063 #include "Sim/Pipeline/Fetcher/Steerer/RoundRobinFetchThreadSteerer.h" 00064 #include "Sim/Pipeline/Fetcher/Steerer/IcountFetchThreadSteerer.h" 00065 #include "Sim/Pipeline/Dispatcher/Dispatcher.h" 00066 #include "Sim/Pipeline/Renamer/Renamer.h" 00067 #include "Sim/Pipeline/Dispatcher/Steerer/OpCodeSteerer.h" 00068 #include "Sim/Pipeline/Scheduler/Scheduler.h" 00069 #include "Sim/Pipeline/Retirer/Retirer.h" 00070 00071 #include "Sim/Pipeline/Scheduler/IssueSelector/AgeIssueSelector.h" 00072 #include "Sim/Pipeline/Scheduler/IssueSelector/InorderIssueSelector.h" 00073 #include "Sim/Pipeline/Scheduler/IssueSelector/IssueSelector.h" 00074 00075 00076 #include "Sim/Predictor/BPred/BPred.h" 00077 #include "Sim/Predictor/BPred/BTB.h" 00078 #include "Sim/Predictor/BPred/GlobalHistory.h" 00079 #include "Sim/Predictor/BPred/GShare.h" 00080 #include "Sim/Predictor/BPred/PHT.h" 00081 #include "Sim/Predictor/BPred/RAS.h" 00082 00083 #include "Sim/Predictor/DepPred/MemDepPred/ConservativeMemDepPred.h" 00084 #include "Sim/Predictor/DepPred/MemDepPred/OptimisticMemDepPred.h" 00085 #include "Sim/Predictor/DepPred/MemDepPred/StoreSet.h" 00086 #include "Sim/Predictor/DepPred/MemDepPred/MemDepPred.h" 00087 #include "Sim/Predictor/DepPred/MemDepPred/PerfectMemDepPred.h" 00088 #include "Sim/Predictor/DepPred/RegDepPred/RMT.h" 00089 00090 #include "Sim/Predictor/LatPred/LatPredResult.h" 00091 #include "Sim/Predictor/LatPred/LatPred.h" 00092 #include "Sim/Predictor/HitMissPred/CounterBasedHitMissPred.h" 00093 #include "Sim/Predictor/HitMissPred/StaticHitMissPred.h" 00094 00095 #include "Sim/Recoverer/Recoverer.h" 00096 00097 00098 // 00099 // --- Type map 00100 // 00101 // RESOURCE_TYPE_ENTRY : 00102 // Register a type. 00103 // 00104 // RESOURCE_INTERFACE_ENTRY : 00105 // Register a interface. 00106 // 00107 // Ex. 00108 // RESOURCE_TYPE_ENTRY( Module ) 00109 // This statement maps a 00110 // 'Module' node in XML files and 00111 // 'class Module' in cpp source files. 00112 // 00113 // 00114 00115 BEGIN_RESOURCE_TYPE_MAP() 00116 00117 RESOURCE_INTERFACE_ENTRY(EmulatorIF); 00118 RESOURCE_TYPE_ENTRY(CheckpointMaster) 00119 RESOURCE_TYPE_ENTRY(GlobalClock) 00120 RESOURCE_TYPE_ENTRY(ForwardEmulator) 00121 00122 RESOURCE_TYPE_ENTRY(Core) 00123 RESOURCE_TYPE_ENTRY(Thread) 00124 RESOURCE_TYPE_ENTRY(InorderList) 00125 00126 RESOURCE_TYPE_ENTRY(RMT) 00127 RESOURCE_INTERFACE_ENTRY(RegDepPredIF) 00128 RESOURCE_TYPE_ENTRY(RegisterFile) 00129 RESOURCE_TYPE_ENTRY(RegisterFreeList) 00130 00131 RESOURCE_TYPE_ENTRY(MemOrderManager) 00132 RESOURCE_TYPE_ENTRY(Cache) 00133 RESOURCE_TYPE_ENTRY(CacheSystem) 00134 00135 RESOURCE_INTERFACE_ENTRY(PrefetcherIF) 00136 RESOURCE_TYPE_ENTRY(StreamPrefetcher) 00137 RESOURCE_TYPE_ENTRY(StridePrefetcher) 00138 00139 RESOURCE_TYPE_ENTRY(ExecUnit) 00140 RESOURCE_TYPE_ENTRY(PipelinedExecUnit) 00141 RESOURCE_TYPE_ENTRY(MemExecUnit) 00142 RESOURCE_INTERFACE_ENTRY(ExecUnitIF) 00143 RESOURCE_TYPE_ENTRY(ExecLatencyInfo) 00144 00145 RESOURCE_INTERFACE_ENTRY(PipelineNodeIF) 00146 RESOURCE_TYPE_ENTRY(Fetcher) 00147 RESOURCE_TYPE_ENTRY(Renamer) 00148 RESOURCE_TYPE_ENTRY(Dispatcher) 00149 RESOURCE_TYPE_ENTRY(Scheduler) 00150 RESOURCE_TYPE_ENTRY(Retirer) 00151 00152 RESOURCE_INTERFACE_ENTRY(FetchThreadSteererIF) 00153 RESOURCE_TYPE_ENTRY(RoundRobinFetchThreadSteerer) 00154 RESOURCE_TYPE_ENTRY(IcountFetchThreadSteerer) 00155 00156 RESOURCE_INTERFACE_ENTRY(DispatchSteererIF) 00157 RESOURCE_TYPE_ENTRY(OpCodeDispatchSteerer) 00158 00159 RESOURCE_INTERFACE_ENTRY(IssueSelectorIF) 00160 RESOURCE_TYPE_ENTRY(AgeIssueSelector) 00161 RESOURCE_TYPE_ENTRY(InorderIssueSelector) 00162 RESOURCE_TYPE_ENTRY(IssueSelector) 00163 00164 RESOURCE_TYPE_ENTRY(BPred) 00165 RESOURCE_TYPE_ENTRY(BTB) 00166 RESOURCE_TYPE_ENTRY(GlobalHistory) 00167 RESOURCE_INTERFACE_ENTRY(DirPredIF) 00168 RESOURCE_TYPE_ENTRY(GShare) 00169 RESOURCE_TYPE_ENTRY(PHT) 00170 RESOURCE_TYPE_ENTRY(RAS) 00171 00172 RESOURCE_TYPE_ENTRY(ConservativeMemDepPred) 00173 RESOURCE_TYPE_ENTRY(OptimisticMemDepPred) 00174 RESOURCE_TYPE_ENTRY(StoreSet) 00175 RESOURCE_TYPE_ENTRY(MemDepPred) 00176 RESOURCE_TYPE_ENTRY(PerfectMemDepPred) 00177 RESOURCE_INTERFACE_ENTRY(MemDepPredIF) 00178 00179 RESOURCE_TYPE_ENTRY(LatPred) 00180 RESOURCE_TYPE_ENTRY(CounterBasedHitMissPred) 00181 RESOURCE_TYPE_ENTRY(OptimisticHitMissPred) 00182 RESOURCE_TYPE_ENTRY(PessimisticHitMissPred) 00183 RESOURCE_INTERFACE_ENTRY(HitMissPredIF) 00184 00185 RESOURCE_TYPE_ENTRY(Recoverer) 00186 00187 END_RESOURCE_TYPE_MAP() 00188