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

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

?? cpu.cc

?? linux下基于c++的處理器仿真平臺(tái)。具有處理器流水線
?? CC
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/* * 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");    }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区免费| 久久成人18免费观看| 欧美一二三在线| 成人一区二区视频| 爽爽淫人综合网网站| 激情伊人五月天久久综合| 国产精品久久久久久久久免费樱桃| 欧美视频一区在线观看| 国产不卡视频一区二区三区| 午夜精品福利一区二区蜜股av | 国产精品免费av| 在线不卡中文字幕| 在线一区二区视频| 丁香激情综合国产| 国产做a爰片久久毛片| 午夜精品久久久久久久久| 中文字幕一区二区5566日韩| 久久亚洲综合av| 日韩午夜av电影| 欧美日韩成人一区| 欧美在线你懂得| 99re8在线精品视频免费播放| 国产乱色国产精品免费视频| 秋霞电影一区二区| 亚洲国产aⅴ成人精品无吗| 国产精品国产a| 国产精品视频麻豆| 国产欧美日本一区二区三区| 精品国产一区二区在线观看| 91精品国产欧美一区二区成人 | 成人激情视频网站| 国产盗摄一区二区三区| 激情综合色综合久久| 免费观看一级特黄欧美大片| 亚洲bt欧美bt精品777| 亚洲自拍偷拍网站| 一级中文字幕一区二区| 亚洲人123区| 亚洲日本丝袜连裤袜办公室| 国产欧美精品一区二区色综合| 久久综合九色综合97婷婷女人 | 久久精品一区二区三区四区| www国产亚洲精品久久麻豆| 日韩一区二区在线观看视频 | 久久99深爱久久99精品| 蜜桃视频第一区免费观看| aaa亚洲精品一二三区| 成人国产亚洲欧美成人综合网| 国产成人精品亚洲777人妖| 国产精品亚洲第一| 成人av在线网站| 色婷婷国产精品| 欧美日韩精品久久久| 在线成人免费视频| 精品毛片乱码1区2区3区| 日韩免费高清av| 久久久久99精品一区| 中文字幕成人在线观看| 最新高清无码专区| 亚洲精品欧美二区三区中文字幕| 亚洲免费看黄网站| 一区二区三区精品视频| 亚洲亚洲人成综合网络| 婷婷一区二区三区| 精品亚洲成a人| 国产成人精品免费看| 成人午夜碰碰视频| 一本久久a久久免费精品不卡| 99精品视频在线免费观看| 91麻豆福利精品推荐| 欧美视频在线一区| 91麻豆精品国产综合久久久久久| 精品免费99久久| 中文字幕在线一区免费| 亚洲国产成人av网| 国产精品一二一区| 色嗨嗨av一区二区三区| 日韩一区二区免费高清| 中文幕一区二区三区久久蜜桃| 亚洲男人的天堂在线观看| 日韩和欧美的一区| 成人美女在线视频| 88在线观看91蜜桃国自产| 久久久久久麻豆| 亚洲电影一级片| 国产高清不卡一区二区| 欧美日韩综合在线| 国产欧美日韩久久| 日本不卡不码高清免费观看| 成人污视频在线观看| 欧美一区二区视频观看视频| 欧美激情一区在线观看| 日本欧美在线看| 99精品视频一区二区三区| 日韩免费观看高清完整版在线观看| 国产精品每日更新在线播放网址| 日产精品久久久久久久性色| jlzzjlzz欧美大全| 久久免费视频色| 日韩成人免费电影| 色综合久久中文综合久久97| 久久免费偷拍视频| 日本午夜精品视频在线观看| 日本精品视频一区二区三区| 久久99热国产| 91官网在线观看| 国产精品电影一区二区三区| 久久99精品久久久| 欧美片网站yy| 亚洲激情综合网| 成人福利电影精品一区二区在线观看 | 亚洲欧洲综合另类在线| 国产美女视频一区| 日韩欧美国产三级电影视频| 亚洲激情第一区| av成人老司机| 国产欧美一区二区精品性色超碰 | 亚洲激情成人在线| 国产成人在线免费| 久久综合久久久久88| 秋霞电影网一区二区| 欧美日韩在线一区二区| 一区二区三区**美女毛片| 懂色av中文一区二区三区| 精品国产一区二区三区不卡| 日本不卡123| 欧美老肥妇做.爰bbww| 亚洲美女视频在线| 色狠狠色狠狠综合| 亚洲男同性视频| 色av综合在线| 亚洲中国最大av网站| 91黄色激情网站| 亚洲在线观看免费| 欧美日韩在线播| 亚洲午夜精品在线| 欧美日韩视频在线一区二区| 亚洲国产日韩a在线播放| 欧美伊人久久大香线蕉综合69| 亚洲天堂中文字幕| 色婷婷久久久综合中文字幕| 亚洲欧美日韩在线不卡| 色综合久久88色综合天天免费| 国产精品国产精品国产专区不蜜| www.性欧美| 亚洲乱码国产乱码精品精小说| 一本大道久久a久久精二百| 亚洲人妖av一区二区| 色偷偷久久一区二区三区| 亚洲第一久久影院| 欧美一级片在线| 国产精品影视网| 国产精品乱码一区二区三区软件| aaa国产一区| 亚洲激情校园春色| 4438x成人网最大色成网站| 久久国产精品露脸对白| 国产午夜一区二区三区| 99re6这里只有精品视频在线观看| 亚洲少妇中出一区| 69堂精品视频| 国产xxx精品视频大全| 亚洲色大成网站www久久九九| 欧美午夜精品电影| 激情久久五月天| **性色生活片久久毛片| 欧美日韩精品久久久| 韩国精品在线观看| 亚洲欧美日韩综合aⅴ视频| 欧美丰满美乳xxx高潮www| 国产乱子轮精品视频| 亚洲精选一二三| 日韩欧美一卡二卡| 99久久伊人精品| 日韩精品国产欧美| 国产精品热久久久久夜色精品三区| 色综合中文综合网| 在线精品视频一区二区| 精品在线亚洲视频| 最新欧美精品一区二区三区| 在线综合视频播放| 成人午夜激情影院| 97精品久久久午夜一区二区三区| 亚洲成人1区2区| 欧美激情一区二区三区蜜桃视频| 欧美午夜不卡视频| 国产剧情一区二区三区| 亚洲国产欧美日韩另类综合| 久久久午夜精品理论片中文字幕| 91国产精品成人| 国产成人午夜精品影院观看视频| 一区二区三区欧美久久| 国产亚洲午夜高清国产拍精品| 欧美系列一区二区| 国产精品18久久久久久vr| 亚洲高清视频中文字幕| 国产精品卡一卡二| 欧美zozozo| 欧美精品精品一区| 91网站在线播放|