亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sampler.cc

?? linux下基于c++的處理器仿真平臺。具有處理器流水線
?? CC
字號:
/* * Copyright (c) 2003, 2004, 2005 * The Regents of The University of Michigan * All Rights Reserved * * This code is part of the M5 simulator, developed by Nathan Binkert, * Erik Hallnor, Steve Raasch, and Steve Reinhardt, with contributions * from Ron Dreslinski, Dave Greene, Lisa Hsu, Kevin Lim, Ali Saidi, * and Andrew Schultz. * * Permission is granted to use, copy, create derivative works and * redistribute this software and such derivative works for any * purpose, so long as the copyright notice above, this grant of * permission, and the disclaimer below appear in all copies made; and * so long as the name of The University of Michigan is not used in * any advertising or publicity pertaining to the use or distribution * of this software without specific, written prior authorization. * * THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION FROM THE * UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY PURPOSE, AND * WITHOUT WARRANTY BY THE UNIVERSITY OF MICHIGAN OF ANY KIND, EITHER * EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE. THE REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE * LIABLE FOR ANY DAMAGES, INCLUDING DIRECT, SPECIAL, INDIRECT, * INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM * ARISING OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN * IF IT HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF SUCH * DAMAGES. */#include "base/statistics.hh"#include "base/trace.hh"#include "cpu/base.hh"#include "cpu/sampler/sampler.hh"#include "sim/builder.hh"#include "sim/serialize.hh"#include "sim/sim_events.hh"using namespace std;Sampler *SampCPU;class CpuSwitchEvent : public Event{  private:        Sampler *sampler;      public:        CpuSwitchEvent(Tick _when, Sampler *sampler);    CpuSwitchEvent(Sampler *sampler);    virtual ~CpuSwitchEvent() {}        void process();    const char *description() { return "cpu switch event"; }    void serialize(std::ostream &os);    void unserialize(Checkpoint *cp, const std::string &section);    static Serializable *createForUnserialize(Checkpoint *cp, 					       const std::string &section);};CpuSwitchEvent::CpuSwitchEvent(Tick when, Sampler *_sampler)    : Event(&mainEventQueue, CPU_Switch_Pri), sampler(_sampler){    DPRINTF(Sampler, "New switch event curTick=%d when=%d\n", curTick, when);    setFlags(AutoDelete);    schedule(when);}//non-scheduling version for createForUnserialized()CpuSwitchEvent::CpuSwitchEvent(Sampler *_sampler)    : Event(&mainEventQueue), sampler(_sampler){    setFlags(AutoDelete);}voidCpuSwitchEvent::process(){    sampler->switchCPUs();}voidCpuSwitchEvent::serialize(ostream &os){    paramOut(os, "type", string("CpuSwitchEvent"));    Event::serialize(os);    SERIALIZE_OBJPTR(sampler);}voidCpuSwitchEvent::unserialize(Checkpoint *cp, const string &section){    Event::unserialize(cp,section);}Serializable *CpuSwitchEvent::createForUnserialize(Checkpoint *cp, 				     const string &section){    Sampler *sampler;    UNSERIALIZE_OBJPTR(sampler);    return new CpuSwitchEvent(sampler);}REGISTER_SERIALIZEABLE("CpuSwitchEvent", CpuSwitchEvent)Sampler::Sampler(const std::string &_name,		 vector<BaseCPU *> &_phase0_cpus, 		 vector<BaseCPU *> &_phase1_cpus, 		 vector<Tick> &_periods)    : SimObject(_name), phase0_cpus(_phase0_cpus),       phase1_cpus(_phase1_cpus),periods(_periods), phase(0){    assert(curTick == 0);    size = phase0_cpus.size();    SampCPU = this;}Sampler::~Sampler(){}voidSampler::init(){    // set up only the first CPU to run    for(int i = 0; i < size; i++) {	phase0_cpus[i]->registerExecContexts();    }}voidSampler::startup(){    new CpuSwitchEvent(curTick + periods[0], this);    /**     * @todo this is really a hack.  I saw in some instances that the     * simulator would not actually exit when it was done sampling, so     * put this catchall in here.  Return a failure code since we want     * to notice this situation.     */    new SimExitEvent(curTick + periods[0] + periods[1] + periods[0],		     "We should not have gotten here!  Sampler exit lost",		     1);}/** * @todo This is just a quick hack that makes the simulator exit after * the last sampling phase, but the intent is to have it repeat the * samples.  In order to do this, we need to make the sampling time * be relative to the inital curTick on an unserialization, we should * also put in a periods parameter to prevent it from running forever. */voidSampler::switchCPUs(){    DPRINTF(Sampler, "switching CPUs");    if (phase == 1) {	//We can't switch back from detailed yet, just finish sampling	//Temporary stop-gap	new SimExitEvent(curTick, "Done Sampling\n");    } else {	//Reset count of cpus who finished switching	numFinished = 0;	//Depending on phase, call switchout on the cpus now	if (phase == 0) {	    for(int i = 0; i < size; i++) {		phase0_cpus[i]->switchOut(this);	    }	}	else {	    //Switch Back to original phase now	    for(int i = 0; i < size; i++) {		phase1_cpus[i]->switchOut(this);	    }	}    }}voidSampler::signalSwitched(){        if (++numFinished == size) {	DPRINTF(Sampler, "Done switching CPUs\n");	//Signal each cpu to takeover	if (phase == 0) {	    for(int i = 0; i < size; i++) {		phase1_cpus[i]->takeOverFrom(phase0_cpus[i]);	    }	    phase = 1;	    new CpuSwitchEvent(curTick + periods[1], this);	}	else {	    for(int i = 0; i < size; i++) {		phase0_cpus[i]->takeOverFrom(phase1_cpus[i]);	    }	    phase = 0;	    new CpuSwitchEvent(curTick + periods[0], this);	}	Stats::reset();    }}voidSampler::serialize(ostream &os){    SERIALIZE_SCALAR(phase);}voidSampler::unserialize(Checkpoint *cp, const string &section){    UNSERIALIZE_SCALAR(phase);}BEGIN_DECLARE_SIM_OBJECT_PARAMS(Sampler)    SimObjectVectorParam<BaseCPU *> phase0_cpus;    SimObjectVectorParam<BaseCPU *> phase1_cpus;    VectorParam<Tick> periods;END_DECLARE_SIM_OBJECT_PARAMS(Sampler)BEGIN_INIT_SIM_OBJECT_PARAMS(Sampler)    INIT_PARAM(phase0_cpus, "vector of actual CPUs to run in phase 0"),    INIT_PARAM(phase1_cpus, "vector of actual CPUs to run in phase 1"),    INIT_PARAM(periods, "vector of per-phase sample periods")END_INIT_SIM_OBJECT_PARAMS(Sampler)CREATE_SIM_OBJECT(Sampler){    if (phase0_cpus.size() != phase1_cpus.size())	panic("'phase0_cpus' and 'phase1_cpus' vector lengths must match");    if (periods.size() != 2)	panic("'periods' vector lengths must be two");    return new Sampler(getInstanceName(), phase0_cpus, phase1_cpus,                           periods);}REGISTER_SIM_OBJECT("Sampler", Sampler)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99v久久综合狠狠综合久久| 欧美一区二区黄色| 日产欧产美韩系列久久99| 国产欧美日韩一区二区三区在线观看| 欧美日韩精品一区二区三区蜜桃 | 国产福利精品导航| 狠狠狠色丁香婷婷综合激情| 日韩电影一区二区三区四区| 国产精品一区一区三区| 91麻豆精品在线观看| 不卡视频免费播放| 国产一区二区三区视频在线播放| 丝袜美腿亚洲综合| 另类的小说在线视频另类成人小视频在线 | 色一区在线观看| 91丨porny丨在线| 精品国产区一区| 26uuu成人网一区二区三区| 精品福利一二区| 亚洲福利国产精品| 日韩经典一区二区| 色狠狠一区二区三区香蕉| 欧美日韩中文字幕精品| 欧美一区三区二区| 亚洲国产综合人成综合网站| 成人99免费视频| 久久久久久电影| 亚洲美女精品一区| 天天综合色天天| 国产成人av电影在线| 色综合色狠狠天天综合色| 国产欧美一区二区在线观看| 蜜桃久久精品一区二区| 成人午夜视频免费看| 91久久线看在观草草青青| 国产精品美女久久福利网站| 亚洲久本草在线中文字幕| 日本网站在线观看一区二区三区 | 久久国产免费看| 91精品国产综合久久香蕉的特点| 久久婷婷色综合| 精品一区二区三区视频在线观看 | 欧美大片拔萝卜| 国产亚洲欧美在线| 亚洲综合免费观看高清完整版在线| 日本不卡不码高清免费观看| 成人午夜av在线| 国产精品系列在线| www.亚洲免费av| 精品日韩在线观看| 亚洲成精国产精品女| 高清久久久久久| 国产精品卡一卡二卡三| 久久国产麻豆精品| 日韩欧美国产三级电影视频| 国产一区二区三区在线观看免费 | 国产三级精品三级| aaa国产一区| 亚洲丝袜自拍清纯另类| 青青草97国产精品免费观看| 欧美精品亚洲二区| 亚洲精品五月天| 91.com视频| 国产精品中文欧美| 亚洲精品中文在线观看| 欧美日本一区二区三区四区 | 7777精品伊人久久久大香线蕉最新版| 日韩中文欧美在线| 国产午夜亚洲精品理论片色戒| 成人涩涩免费视频| 五月婷婷色综合| 国产午夜精品在线观看| 成人黄页毛片网站| 亚洲1区2区3区视频| 精品va天堂亚洲国产| 色综合天天狠狠| 看电视剧不卡顿的网站| 最近中文字幕一区二区三区| 538在线一区二区精品国产| 狠狠网亚洲精品| 国产精品久久久久久福利一牛影视 | 国产精品久久久久久妇女6080| 欧美在线观看你懂的| 亚洲综合区在线| 欧美一区二区女人| 色综合色综合色综合 | 欧美一区二区三区四区五区| 狠狠色丁香婷婷综合| 亚洲一二三区在线观看| 亚洲国产成人一区二区三区| 国产成人av电影在线播放| 天堂成人国产精品一区| 久久精品视频网| 8x8x8国产精品| 色菇凉天天综合网| 国产乱淫av一区二区三区| 亚洲线精品一区二区三区八戒| 久久亚区不卡日本| 欧美麻豆精品久久久久久| av成人老司机| 国产不卡高清在线观看视频| 美女看a上一区| 洋洋成人永久网站入口| 制服.丝袜.亚洲.另类.中文| 91视视频在线观看入口直接观看www| 激情图区综合网| 日韩成人一级大片| 亚洲小说欧美激情另类| 亚洲欧美aⅴ...| 国产精品视频一二三| 久久久亚洲欧洲日产国码αv| 91麻豆蜜桃一区二区三区| av不卡免费电影| www.在线成人| 91麻豆蜜桃一区二区三区| 成人激情免费网站| 不卡免费追剧大全电视剧网站| 国产不卡视频在线观看| 国产一本一道久久香蕉| 激情五月播播久久久精品| 久久精品国产精品亚洲精品 | 青青草97国产精品免费观看无弹窗版| 亚洲成人av在线电影| 一区二区三区毛片| 亚洲一二三专区| 亚洲成a人v欧美综合天堂下载| 午夜一区二区三区视频| 天天综合天天综合色| 奇米一区二区三区| 精品一区二区国语对白| 国产综合色视频| 粉嫩绯色av一区二区在线观看| 成人午夜视频在线观看| 在线免费观看视频一区| 欧美午夜精品久久久久久孕妇 | 风间由美一区二区三区在线观看| 精品综合免费视频观看| 国产成人一级电影| 91在线观看视频| 欧美日韩精品一区二区天天拍小说| 欧美丰满少妇xxxxx高潮对白| 日韩一区二区三区av| 色噜噜夜夜夜综合网| 欧美亚洲国产一卡| 欧美一级免费观看| 欧美国产精品专区| 亚洲精品乱码久久久久| 日本美女一区二区三区视频| 韩国中文字幕2020精品| 99精品欧美一区二区三区小说 | 亚洲蜜臀av乱码久久精品| 亚洲妇女屁股眼交7| 麻豆精品在线播放| 成人毛片老司机大片| 欧美在线视频日韩| 精品国产露脸精彩对白| 亚洲欧美色综合| 理论电影国产精品| av成人免费在线观看| 日韩欧美资源站| 国产精品高潮呻吟久久| 欧美a一区二区| 欧美在线影院一区二区| 日韩三级在线免费观看| 综合久久综合久久| 精品在线免费观看| 欧美在线视频全部完| 26uuu国产电影一区二区| 尤物av一区二区| 国产精品一卡二卡| 在线播放亚洲一区| 最新高清无码专区| 国产福利91精品一区二区三区| 欧美日韩综合在线免费观看| 欧美激情资源网| 另类小说图片综合网| 欧美体内she精视频| 国产精品欧美久久久久无广告| 日本在线播放一区二区三区| 97se亚洲国产综合自在线| 精品国产乱码久久久久久1区2区 | 香蕉成人啪国产精品视频综合网| 国产盗摄视频一区二区三区| 欧美高清dvd| 亚洲18色成人| 色综合中文综合网| 亚洲国产精品久久久久婷婷884| 国产精选一区二区三区| 欧美一级专区免费大片| 亚洲综合男人的天堂| 99综合影院在线| 国产欧美精品一区二区色综合| 免费不卡在线视频| 欧美日韩二区三区| 亚洲综合另类小说| 色老汉一区二区三区| 中文字幕一区二区三区乱码在线| 亚洲一区二区三区在线| 99riav久久精品riav| 国产精品久久久久久久久免费相片 |