cpu_policy.hh revision 1755
112837Sgabeblack@google.com/*
212837Sgabeblack@google.com * Copyright (c) 2004-2005 The Regents of The University of Michigan
312837Sgabeblack@google.com * All rights reserved.
412837Sgabeblack@google.com *
512837Sgabeblack@google.com * Redistribution and use in source and binary forms, with or without
612837Sgabeblack@google.com * modification, are permitted provided that the following conditions are
712837Sgabeblack@google.com * met: redistributions of source code must retain the above copyright
812837Sgabeblack@google.com * notice, this list of conditions and the following disclaimer;
912837Sgabeblack@google.com * redistributions in binary form must reproduce the above copyright
1012837Sgabeblack@google.com * notice, this list of conditions and the following disclaimer in the
1112837Sgabeblack@google.com * documentation and/or other materials provided with the distribution;
1212837Sgabeblack@google.com * neither the name of the copyright holders nor the names of its
1312837Sgabeblack@google.com * contributors may be used to endorse or promote products derived from
1412837Sgabeblack@google.com * this software without specific prior written permission.
1512837Sgabeblack@google.com *
1612837Sgabeblack@google.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1712837Sgabeblack@google.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1812837Sgabeblack@google.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1912837Sgabeblack@google.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2012837Sgabeblack@google.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2112837Sgabeblack@google.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
2212837Sgabeblack@google.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2312837Sgabeblack@google.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2412837Sgabeblack@google.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2512837Sgabeblack@google.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2612837Sgabeblack@google.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2712837Sgabeblack@google.com */
2812837Sgabeblack@google.com
2912837Sgabeblack@google.com#ifndef __CPU_O3_CPU_CPU_POLICY_HH__
3012837Sgabeblack@google.com#define __CPU_O3_CPU_CPU_POLICY_HH__
3112837Sgabeblack@google.com
3212837Sgabeblack@google.com#include "cpu/o3/bpred_unit.hh"
3313043Sgabeblack@google.com#include "cpu/o3/free_list.hh"
3413043Sgabeblack@google.com#include "cpu/o3/inst_queue.hh"
3512860Sgabeblack@google.com#include "cpu/o3/ldstq.hh"
3612860Sgabeblack@google.com#include "cpu/o3/mem_dep_unit.hh"
3712860Sgabeblack@google.com#include "cpu/o3/regfile.hh"
3812837Sgabeblack@google.com#include "cpu/o3/rename_map.hh"
3912837Sgabeblack@google.com#include "cpu/o3/rob.hh"
4012837Sgabeblack@google.com#include "cpu/o3/store_set.hh"
4112837Sgabeblack@google.com
4212837Sgabeblack@google.com#include "cpu/o3/commit.hh"
4312837Sgabeblack@google.com#include "cpu/o3/decode.hh"
4412837Sgabeblack@google.com#include "cpu/o3/fetch.hh"
4512837Sgabeblack@google.com#include "cpu/o3/iew.hh"
4612837Sgabeblack@google.com#include "cpu/o3/rename.hh"
4712860Sgabeblack@google.com
4812860Sgabeblack@google.com#include "cpu/o3/comm.hh"
4912860Sgabeblack@google.com
5012860Sgabeblack@google.comtemplate<class Impl>
5112860Sgabeblack@google.comstruct SimpleCPUPolicy
5212860Sgabeblack@google.com{
5312860Sgabeblack@google.com    typedef TwobitBPredUnit<Impl> BPredUnit;
5412860Sgabeblack@google.com    typedef PhysRegFile<Impl> RegFile;
5512860Sgabeblack@google.com    typedef SimpleFreeList FreeList;
5612860Sgabeblack@google.com    typedef SimpleRenameMap RenameMap;
5712860Sgabeblack@google.com    typedef ROB<Impl> ROB;
5812860Sgabeblack@google.com    typedef InstructionQueue<Impl> IQ;
5912860Sgabeblack@google.com    typedef MemDepUnit<StoreSet, Impl> MemDepUnit;
6012860Sgabeblack@google.com    typedef LDSTQ<Impl> LDSTQ;
6112860Sgabeblack@google.com
6212860Sgabeblack@google.com    typedef SimpleFetch<Impl> Fetch;
6312860Sgabeblack@google.com    typedef SimpleDecode<Impl> Decode;
6412860Sgabeblack@google.com    typedef SimpleRename<Impl> Rename;
6512860Sgabeblack@google.com    typedef SimpleIEW<Impl> IEW;
6612860Sgabeblack@google.com    typedef SimpleCommit<Impl> Commit;
6712860Sgabeblack@google.com
6812860Sgabeblack@google.com    /** The struct for communication between fetch and decode. */
6912860Sgabeblack@google.com    typedef SimpleFetchSimpleDecode<Impl> FetchStruct;
7012860Sgabeblack@google.com
7112860Sgabeblack@google.com    /** The struct for communication between decode and rename. */
7212860Sgabeblack@google.com    typedef SimpleDecodeSimpleRename<Impl> DecodeStruct;
7312860Sgabeblack@google.com
7412860Sgabeblack@google.com    /** The struct for communication between rename and IEW. */
7512860Sgabeblack@google.com    typedef SimpleRenameSimpleIEW<Impl> RenameStruct;
7612860Sgabeblack@google.com
7712860Sgabeblack@google.com    /** The struct for communication between IEW and commit. */
7812860Sgabeblack@google.com    typedef SimpleIEWSimpleCommit<Impl> IEWStruct;
7912860Sgabeblack@google.com
8012860Sgabeblack@google.com    /** The struct for communication within the IEW stage. */
8112860Sgabeblack@google.com    typedef IssueStruct<Impl> IssueStruct;
8212860Sgabeblack@google.com
8312860Sgabeblack@google.com    /** The struct for all backwards communication. */
8412860Sgabeblack@google.com    typedef TimeBufStruct TimeStruct;
8512860Sgabeblack@google.com
8612860Sgabeblack@google.com};
8712860Sgabeblack@google.com
8812860Sgabeblack@google.com#endif //__CPU_O3_CPU_CPU_POLICY_HH__
8912860Sgabeblack@google.com