⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p4.py

📁 linux下基于c++的处理器仿真平台。具有处理器流水线
💻 PY
字号:
from m5 import *from Config import *from Memory import *from System import *from FuncUnit import *class P4BranchPred(BranchPred):    pred_class='hybrid'    local_hist_regs='2ki'    local_hist_bits=11    local_index_bits=11    local_xor=False    global_hist_bits=13    global_index_bits=13    global_xor=False    choice_index_bits=13    choice_xor=False    ras_size=16    btb_size='4ki'    btb_assoc=4class Pentium4(FullCPU):    iq = StandardIQ(size=64, caps = [0, 0, 0, 0])    iq_comm_latency = 1    branch_pred=P4BranchPred()    fupools=DefaultFUP()    lsq_size=48    rob_size=128    width=4    decode_to_dispatch=15    mispred_recover=3    fetch_branches=3    ifq_size=32    num_icache_ports=1    storebuffer_size=24    icache=Parent.icache    dcache=Parent.dcache    pc_sample_interval= 100 * Parent.clock.periodclass IL1Cache(BaseCache):    size='16kB'    assoc=2    block_size=64    tgts_per_mshr=16    latency=Parent.clock.period    mshrs=4class DL1Cache(BaseCache):    size='8kB'    assoc=4    block_size=64    tgts_per_mshr=16    latency=2*Parent.clock.period    mshrs=32class L1DBus(Bus):    width=64    clock=2*Parent.clock.periodclass L1IBus(Bus):    width=8    clock=2*Parent.clock.periodclass CacheBridge(BusBridge):    max_buffer=16    latency='0ns'class L2Bus(Bus):    width=64    clock=2*Parent.clock.periodclass L2Cache(BaseCache):    size='256kB'    assoc=8    block_size=64    latency=19*Parent.clock.period    mshrs=6    tgts_per_mshr=16class MainMem(BaseMemory):    latency=40*Parent.clock.period    addr_range=AddrRange('512MB')def P4SimpleCache(Processor = Pentium4, **kwargs):    self = Processor(**kwargs)    self.icache = IL1Cache(in_bus = Null, out_bus = Parent.l2bus)    self.dcache = DL1Cache(in_bus = Null, out_bus = Parent.l2bus)    self.l2bus = L2Bus()    self.l2 = L2Cache(in_bus = Parent.l2bus, out_bus = Parent.membus)    return selfdef P4FullCache(Processor = Pentium4, **kwargs):    self = Processor(**kwargs)    self.icache = IL1Cache(in_bus = Null, out_bus = Parent.ibus)    self.dcache = DL1Cache(in_bus = Null, out_bus = Parent.dbus)    self.ibus = L1IBus()    self.dbus = L1DBus()    self.ibridge = CacheBridge(in_bus=Parent.ibus, out_bus=Parent.l2bus)    self.dbridge = CacheBridge(in_bus=Parent.dbus, out_bus=Parent.l2bus)    self.l2bus = L2Bus()    self.l2 = L2Cache(in_bus = Parent.l2bus, out_bus = Parent.membus)    return selfdef P4System(Processor, **kwargs):    self = TsunamiSystem()    self.cpu = Processor()    return selfdef P4Memory(System, **kwargs):    self = MemoryBase(System, **kwargs)    self.membus = Bus(width=8, clock='266.666666MHz')    self.ram = MainMem(in_bus = Parent.membus)    self.iobridge = BusBridge(max_buffer=16, latency='180ns',                              in_bus=Parent.membus, out_bus=Parent.iobus)    self.iobus = Bus(width=4, clock='66.666666MHz')    self.pcibridge = BusBridge(max_buffer=16, latency='200ns',                               in_bus=Parent.iobus, out_bus=Parent.pcibus)    self.pcibus = Bus(width=4, clock='33.333333MHz')    self.nibridge = BusBridge(max_buffer=16, latency='200ns',                              in_bus=Parent.iobus, out_bus=Parent.nibus)    self.nibus = Bus(width=4, clock='33.333333MHz')    for i in xrange(len(self.tsunami.etherdev)):        self.tsunami.etherdev[i].io_bus = Parent.nibus    return self

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -