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

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

?? cpu.cc

?? linux下基于c++的處理器仿真平臺。具有處理器流水線
?? CC
?? 第 1 頁 / 共 3 頁
字號:
/* * Copyright (c) 2001, 2002, 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 <sys/types.h>#include <sys/stat.h>#include <errno.h>#include <fcntl.h>#include <unistd.h>#include <iostream>#include <string>#include <sstream>#include <vector>#include "base/callback.hh"#include "base/cprintf.hh"#include "base/statistics.hh"#include "encumbered/cpu/full/cpu.hh"#include "encumbered/cpu/full/dd_queue.hh"#include "encumbered/cpu/full/rob_station.hh"#include "mem/cache/cache.hh" // for dynamic cast#include "mem/mem_interface.hh"#include "sim/builder.hh"#include "sim/sim_events.hh"#include "sim/sim_exit.hh"#include "sim/stats.hh"#if FULL_SYSTEM#include "base/remote_gdb.hh"#include "cpu/exec_context.hh"#include "mem/functional/memory_control.hh"#include "mem/functional/physical.hh"#include "sim/system.hh"#include "targetarch/alpha_memory.hh"#include "targetarch/pseudo_inst.hh"#endifusing namespace std;////////////////////////////////////////////////////////////////////////////////  Support for Multiple IQ's & Function-Unit Pools//////////////////////////////////////////////////////////////////////////////unsignedFullCPU::IQLeastFull(){    unsigned iq_idx = 0;    unsigned least_count = IQ[0]->count();    for (int i = 1; i < numIQueues; ++i) {	unsigned num = IQ[i]->count();	if (least_count > num) {	    iq_idx = i;	    least_count = num;	}    }    return iq_idx;}unsignedFullCPU::IQMostFull(){    unsigned iq_idx = 0;    unsigned most_count = IQ[0]->count();    for (int i = 1; i < numIQueues; ++i) {	unsigned num = IQ[i]->count();	if (most_count < num) {	    iq_idx = i;	    most_count = num;	}    }    return iq_idx;}voidFullCPU::ROBDump(){    ROB.dump();}voidFullCPU::fuDump(int p){    FUPools[p]->dump();}voidFullCPU::fuDump(){    for (int i = 0; i < numFUPools; ++i)	FUPools[i]->dump();}unsignedFullCPU::IQNumInstructions(){    unsigned num = 0;    for (int i = 0; i < numIQueues; ++i)	num += IQ[i]->count();    return num;}unsignedFullCPU::IQNumInstructions(unsigned thread){    unsigned num = 0;    for (int i = 0; i < numIQueues; ++i)	num += IQ[i]->count(thread);    return num;}unsignedFullCPU::IQNumReadyInstructions(){    unsigned num = 0;    for (int i = 0; i < numIQueues; ++i)	num += IQ[i]->ready_count();    return num;}voidFullCPU::dumpIQ(){    for (int i = 0; i < numIQueues; ++i)	IQ[i]->dump();    cout << "done with dump!\n";}// Returns true only if _ALL_ queues have their caps metboolFullCPU::IQCapMet(unsigned thread){    switch (dispatch_policy) {      case MODULO_N:      case DEPENDENCE:	for (int i = 0; i < numIQueues; ++i)	    if (!IQ[i]->cap_met(thread))		return false;	break;      case THREAD_PER_QUEUE:	return IQ[thread % numIQueues]->cap_met(thread);	break;    }    return true;}//  Returns the number of free slots in the queue with the largest number//  of slots available --> does not take caps into accountunsignedFullCPU::IQFreeSlots(){    unsigned max_slots = 0;    for (int i = 0; i < numIQueues; ++i) {	unsigned fs = IQ[i]->free_slots();	if (fs > max_slots)	    max_slots = fs;    }    return max_slots;}//  Returns the number of free slots in all EXCEPT queue//  'idx'unsignedFullCPU::IQFreeSlotsX(unsigned idx){    unsigned slots = 0;    for (unsigned i = 0; i < numIQueues; ++i)	if (i != idx)	    slots += IQ[i]->free_slots();    return slots;}//  Returns the number of free slots in the queue with the largest number//  of slots available -> queues with the cap met for this thread have NO//  slots availableunsignedFullCPU::IQFreeSlots(unsigned thread){    unsigned max_slots = 0;    for (int i = 0; i < numIQueues; ++i) {	if (!IQ[i]->cap_met(thread)) {	    unsigned fs = IQ[i]->free_slots();	    if (fs > max_slots)		max_slots = fs;	}    }    return max_slots;}BaseIQ::iteratorFullCPU::IQOldestInstruction(){    BaseIQ::iterator oldest = 0;    for (int i = 0; i < numIQueues; ++i) {	if (oldest.notnull()) {	    if (IQ[i]->oldest().notnull()) {		if ((*oldest).seq > (*IQ[i]->oldest()).seq)		    oldest = IQ[i]->oldest();	    }	} else	    oldest = IQ[i]->oldest();    }    return oldest;}BaseIQ::iteratorFullCPU::IQOldestInstruction(unsigned thread){    BaseIQ::iterator oldest = 0;    for (int i = 0; i < numIQueues; ++i) {	if (oldest.notnull()) {	    if (IQ[i]->oldest(thread).notnull()) {		if ((*oldest).seq > (*IQ[i]->oldest(thread)).seq)		    oldest = IQ[i]->oldest(thread);	    }	} else	    oldest = IQ[i]->oldest(thread);    }    return oldest;}////////////////////////////////////////////////////////////////////////////////   CPU constructor//////////////////////////////////////////////////////////////////////////////FullCPU::FullCPU(Params *p,#if FULL_SYSTEM		 AlphaITB *itb, AlphaDTB *dtb, FunctionalMemory *mem,#else		 vector<Process *> workload,#endif // FULL_SYSTEM		 //		 //  Caches		 //		 MemInterface *_icache_interface,		 MemInterface *_dcache_interface,		 SoftwarePrefetchPolicy _softwarePrefetchPolicy,		 //		 //  Internal structures		 //		 vector<BaseIQ *> _IQ,		 unsigned _ROB_size,		 unsigned _LSQ_size,		 unsigned _storebuffer_size,		 //		 //  Fetch		 //		 int _fetch_width,		 int _lines_to_fetch,		 int _num_icache_ports,		 int _fetch_branches,		 int _ifq_size,		 int _decode_dispatch_latency,		 BranchPred *_bpred,		 int _fetch_policy,		 bool _fetch_priority_enable,		 vector<unsigned> _icount_bias,		 //		 //  Decode/Dispatch		 //		 bool _mt_frontend,		 int _decode_width,		 int _dispatch_to_issue_latency,		 vector<unsigned> _rob_caps,		 DispatchPolicyEnum disp_policy,		 bool _loose_mod_n,		 bool _use_hm_predictor,		 bool _use_lr_predictor,		 bool _use_lat_predictor,		 unsigned _max_chains,		 unsigned _max_wires,		 ChainWireInfo::MappingPolicy _chainWirePolicy,		 //		 //  Issue		 //		 int _issue_width,		 vector<unsigned> _issue_bandwidth,		 bool _inorder_issue,		 MemDisambiguationEnum _disambig_mode,		 bool _prioritize_issue,		 vector<FuncUnitPool *> fupools,		 vector<unsigned> _thread_weights,		 //		 //  Writeback		 //		 int _mispred_fixup_penalty,		 int _fault_handler_delay,		 unsigned _iq_comm_latency,		 //		 //  Commit		 //		 int _commit_width,		 bool _prioritized_commit,		 CommitModelEnum _commit_model,		 //		 //  Other		 //		 int _pc_sample_interval,		 PipeTrace *_ptrace)    : BaseCPU(p),       ROB_size(_ROB_size),      LSQ_size(_LSQ_size),      storebuffer_size(_storebuffer_size),      icacheInterface(_icache_interface),      dcacheInterface(_dcache_interface),      softwarePrefetchPolicy(_softwarePrefetchPolicy),      fetch_width(_fetch_width),      lines_to_fetch(_lines_to_fetch),      num_icache_ports(_num_icache_ports),      fetch_branches(_fetch_branches),      ifq_size(_ifq_size),      decode_dispatch_latency(_decode_dispatch_latency),      branch_pred(_bpred),      fetch_policy(_fetch_policy),      fetch_priority_enable(_fetch_priority_enable),      mt_frontend(_mt_frontend),      decode_width(_decode_width),      dispatch_to_issue_latency(_dispatch_to_issue_latency),      loose_mod_n_policy(_loose_mod_n),      use_hm_predictor(_use_hm_predictor),      use_lr_predictor(_use_lr_predictor),      use_lat_predictor(_use_lat_predictor),      max_chains(_max_chains),      max_wires(_max_wires),      chainWirePolicy(_chainWirePolicy),      issue_width(_issue_width),      inorder_issue(_inorder_issue),      disambig_mode(_disambig_mode),      prioritize_issue(_prioritize_issue),      FUPools(fupools),      mispred_fixup_penalty(_mispred_fixup_penalty),      fault_handler_delay(_fault_handler_delay),      iq_comm_latency(_iq_comm_latency),      commit_width(_commit_width),      commit_model(_commit_model),      prioritized_commit(_prioritized_commit),      ptrace(_ptrace),      writebackEventQueue("writeback event queue"),      tickEvent(this),      pcSampleEvent(NULL){    //Initialize Counters to 0    lsq_fcount = 0;    sim_invalid_addrs = 0;    dependence_depth_count = 0;    for (int i=0; i < SMT_MAX_THREADS; i++) {	used_int_physical_regs[i] = 0;	used_fp_physical_regs[i] = 0;    }    expected_inorder_seq_num = 1;    //    //  check options for sanity    //    if (mispred_fixup_penalty < 1)	fatal("mis-prediction penalty must be at least 1 cycle");    if (ifq_size < 1)	fatal("inst fetch queue size must be positive > 0");    if (fetch_width < 1)	fatal("fetch width must be positive non-zero and a power of two");    if (lines_to_fetch < 1)	fatal("lines to fetch must be positive non-zero");    if (decode_width < 1)	fatal("decode width must be positive non-zero");    if (issue_width < 1)	fatal("issue width must be positive non-zero");    if (commit_width < 1)	fatal("commit width must be positive non-zero");    if (prioritized_commit && commit_model != COMMIT_MODEL_SMT)	fatal("Cannot do prioritized commit with this commit model");    if (use_lat_predictor && use_lr_predictor)	fatal("SegmentedIQ: You really don't want to use BOTH the latency "	      "and L/R predictors");    mod_n_queue_idx = 0;    //  dispatch_width is not (currently) a user-modifiable value    dispatch_width = decode_width;    // note number of IQ's, copy IQ pointers from vector to array    // let IQ know which CPU it belongs to    numIQueues = _IQ.size();    if (numIQueues == 0)	fatal("You must specify at least one IQ");    if (numIQueues > 1) {	if (issue_width % numIQueues)	    panic("issue bandwidth doesn't distribute evenly");	if (dispatch_width % numIQueues)	    panic("dispatch bandwidth doesn't distribute evenly");    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆精品在线| 亚洲精品伦理在线| 久久精品国产99国产| 日韩一级视频免费观看在线| 日本一不卡视频| 精品免费99久久| 国产成人亚洲综合a∨婷婷| 国产欧美精品一区aⅴ影院| 国产成人精品一区二区三区网站观看| 久久综合九色综合97婷婷| 国产成a人无v码亚洲福利| 中文欧美字幕免费| 在线观看日产精品| 看片的网站亚洲| 久久久777精品电影网影网| 99视频在线精品| 亚洲高清一区二区三区| 欧美成人vr18sexvr| 成人av在线播放网址| 亚洲主播在线播放| 精品剧情在线观看| 91色|porny| 日本亚洲天堂网| 国产偷国产偷精品高清尤物| 91色视频在线| 极品销魂美女一区二区三区| 中文字幕一区在线观看| 欧美日韩一级片网站| 精品在线播放免费| 亚洲色图第一区| 欧美大片一区二区| 91污在线观看| 国产在线精品一区二区不卡了 | 日韩一区二区在线观看视频| 精品一区二区日韩| 亚洲激情五月婷婷| 久久综合色婷婷| 欧美在线免费观看视频| 国产一区二区三区在线观看免费| 亚洲女性喷水在线观看一区| 日韩欧美一区电影| 在线免费观看日本一区| 国产大片一区二区| 日本欧美肥老太交大片| 亚洲精品日韩一| 国产日韩一级二级三级| 欧美一区二区三区成人| 色域天天综合网| 国产风韵犹存在线视精品| 日本亚洲一区二区| 亚洲一级不卡视频| 国产精品久久久久久久久果冻传媒| 欧美一区二区三区播放老司机| 91视频精品在这里| 成人免费不卡视频| 国产精品一区久久久久| 丝袜美腿一区二区三区| 亚洲码国产岛国毛片在线| 久久久久国色av免费看影院| 日韩午夜精品电影| 欧美视频第二页| 色哟哟国产精品| 成人丝袜视频网| 国产成人免费在线视频| 国产在线精品一区二区三区不卡| 日韩va亚洲va欧美va久久| 激情小说欧美图片| 五月婷婷欧美视频| 亚洲h在线观看| 亚洲一区电影777| 亚洲高清视频在线| 亚洲成人黄色小说| 亚洲国产精品久久久久秋霞影院| 亚洲精品日韩专区silk| 亚洲黄色片在线观看| 亚洲男人电影天堂| 亚洲精品国产无天堂网2021| 自拍偷拍国产精品| 亚洲欧美激情小说另类| 中文字幕视频一区| 亚洲少妇30p| 一区二区三区四区高清精品免费观看| 亚洲色图视频网| 亚洲永久免费av| 午夜伦欧美伦电影理论片| 视频精品一区二区| 麻豆91小视频| 国产精品一线二线三线| 国产91丝袜在线播放0| 国产91精品免费| 91视视频在线观看入口直接观看www| 91丨porny丨国产入口| 精品视频在线免费看| 日韩一区国产二区欧美三区| 精品日韩一区二区| 国产精品天天看| 一二三区精品福利视频| 亚洲sss视频在线视频| 紧缚捆绑精品一区二区| 成人av第一页| 精品视频1区2区| 欧美变态tickle挠乳网站| 久久久亚洲国产美女国产盗摄| 欧美激情一区二区三区不卡| 一区二区在线观看av| 首页国产欧美日韩丝袜| 韩日精品视频一区| 91原创在线视频| 7777精品久久久大香线蕉| 久久久久久久久岛国免费| 亚洲视频狠狠干| 久久99深爱久久99精品| youjizz久久| 777奇米成人网| 国产精品情趣视频| 日韩福利视频导航| 成人午夜碰碰视频| 69p69国产精品| 国产精品乱人伦中文| 亚洲成人免费电影| 国产福利精品一区| 欧美久久一区二区| 国产精品乱子久久久久| 日韩成人av影视| 不卡一区二区三区四区| 欧美一区二区三区在线看| 国产精品免费丝袜| 毛片av一区二区| 一本到高清视频免费精品| 精品区一区二区| 亚洲一区在线观看网站| 国产精品一区二区久久不卡| 欧美日韩三级一区| 中文字幕一区二区三区乱码在线| 免费美女久久99| 欧美不卡视频一区| 亚洲欧美日韩国产一区二区三区| 精品一区二区三区视频| 欧美色综合久久| 中文字幕一区av| 国精产品一区一区三区mba视频| 欧美日韩一区二区在线视频| 国产偷国产偷精品高清尤物| 奇米影视一区二区三区小说| 91国产免费看| 国产精品的网站| 国产精品99久久久久久似苏梦涵| 91麻豆精品国产| 亚洲韩国一区二区三区| 91免费精品国自产拍在线不卡| 26uuu另类欧美| 久久精品国产亚洲一区二区三区| 欧美日韩亚洲综合一区| 亚洲精品乱码久久久久久日本蜜臀| 国产成人av福利| 2023国产精品自拍| 久久精品国产秦先生| 91精品午夜视频| 日韩精品色哟哟| 欧美日韩电影一区| 亚洲18女电影在线观看| 欧美午夜片在线看| 亚洲成人在线免费| 欧美色窝79yyyycom| 亚洲成a人在线观看| 91福利资源站| 亚洲成人av一区二区三区| 精品视频在线看| 亚洲电影一级片| 欧美精品v国产精品v日韩精品| 亚洲国产精品影院| 欧美精品一级二级三级| 日韩二区在线观看| 日韩精品一区二区三区老鸭窝| 麻豆精品视频在线| 久久久一区二区三区捆绑**| 国产精品1区2区3区| 国产精品视频在线看| 99国产精品视频免费观看| 亚洲女人****多毛耸耸8| 日本高清不卡视频| 视频一区视频二区中文| 日韩精品中文字幕一区二区三区| 精品一区二区在线观看| 国产日本亚洲高清| 色综合色综合色综合色综合色综合| 亚洲日本青草视频在线怡红院| 色天使久久综合网天天| 三级欧美韩日大片在线看| 欧美白人最猛性xxxxx69交| 国产不卡一区视频| 国产美女主播视频一区| 中文字幕一区日韩精品欧美| 在线观看中文字幕不卡| 日韩国产成人精品| 久久精品亚洲麻豆av一区二区| 91麻豆精品视频| 日韩精品一区第一页| 久久综合av免费| 色综合久久久久|