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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bpred.hh

?? linux下基于c++的處理器仿真平臺。具有處理器流水線
?? HH
字號:
/* * * bpred.hh - branch predictor interfaces * * This file is a part of the SimpleScalar tool suite written by * Todd M. Austin as a part of the Multiscalar Research Project. * * The tool suite is currently maintained by Doug Burger and Todd M. Austin. * * Copyright (C) 1994, 1995, 1996, 1997, 1998 by Todd M. Austin * * This source file is distributed "as is" in the hope that it will be * useful.  The tool set comes with no warranty, and no author or * distributor accepts any responsibility for the consequences of its * use. * * Everyone is granted permission to copy, modify and redistribute * this tool set under the following conditions: * *    This source code is distributed for non-commercial use only. *    Please contact the maintainer for restrictions applying to *    commercial use. * *    Permission is granted to anyone to make or distribute copies *    of this source code, either as received or modified, in any *    medium, provided that all copyright notices, permission and *    nonwarranty notices are preserved, and that the distributor *    grants the recipient permission for further redistribution as *    permitted by this document. * *    Permission is granted to distribute this file in compiled *    or executable form under the same conditions that apply for *    source code, provided that either: * *    A. it is accompanied by the corresponding machine-readable *       source code, *    B. it is accompanied by a written offer, with no time limit, *       to give anyone a machine-readable copy of the corresponding *       source code in return for reimbursement of the cost of *       distribution.  This written offer must permit verbatim *       duplication by anyone, or *    C. it is distributed by someone who received only the *       executable form, and is accompanied by a copy of the *       written offer of source code that they received concurrently. * * In other words, you are welcome to use, share and improve this * source file.  You are forbidden to forbid anyone else to use, share * and improve what you give them. * * INTERNET: dburger@cs.wisc.edu * US Mail:  1210 W. Dayton Street, Madison, WI 53706 * */#ifndef __ENCUMBERED_CPU_FULL_BPRED_HH__#define __ENCUMBERED_CPU_FULL_BPRED_HH__#define dassert(a) assert(a)#include "base/misc.hh"#include "base/statistics.hh"#include "cpu/smt.hh"#include "cpu/static_inst.hh"#include "encumbered/cpu/full/bpred_update.hh"#include "sim/host.hh"#include "sim/sim_object.hh"// forward declsclass FullCPU;// branch predictor typesenum BPredClass {    BPredComb,			// combined predictor (McFarling/21264)    BPredGlobal,		// 2-level w/global history    BPredLocal,			// 2-level w/local history    BPred_NUM};enum ConfCounterType {    CNT_RESET,			//  Resetting counter    CNT_SAT			//  Saturating counter};enum {    PS_INCORRECT,    PS_CORRECT,    PS_HIGH_CONF,    PS_LOW_CONF,    PS_HC_COR,    PS_HC_INCOR,    PS_LC_COR,    PS_LC_INCOR,    NUM_PRED_STATE_ENTRIES};// branch predictor defclass BranchPred : public SimObject{  public:    // an entry in a BTB    struct BTBEntry    {	Addr addr;		// address of branch being tracked	Addr target;		// last destination of branch when taken	BTBEntry *prev;	// lru chaining pointers	BTBEntry *next;    };    // return address stack (ras)    struct ReturnAddrStack    {	int tos;	// top-of-stack	Addr *stack;	// return-address stack    };    BranchPred(const std::string &name,	       BPredClass bp_class,	// type of predictor	       unsigned int global_hist_bits,	       unsigned int global_pred_index_bits,	       bool global_xor,	       unsigned int num_local_hist_regs,	       unsigned int local_hist_bits,	       unsigned int local_pred_index_bits,	       bool local_xor,	       unsigned int meta_pred_index_bits,	       bool meta_xor,	       unsigned int btb_sets,  // number of sets in BTB	       unsigned int btb_assoc, // BTB associativity	       unsigned int ras_size,  // num entries in ret-addr stack	       bool conf_pred_enable,	       unsigned int conf_pred_index_bits,	       unsigned int conf_pred_ctr_bits,	       int conf_pred_ctr_thresh, // < 0 means static assignment	       bool conf_pred_xor,	       ConfCounterType conf_pred_ctr_type);    FullCPU *cpu;    BPredClass bp_class;	// type of predictor    unsigned int global_hist_reg[SMT_MAX_THREADS];    unsigned int global_hist_bits;    uint8_t *global_pred_table;    unsigned int global_pred_index_bits;    bool global_xor;    unsigned int *local_hist_regs;    unsigned int num_local_hist_regs;    unsigned int local_hist_bits;    uint8_t *local_pred_table;    unsigned int local_pred_index_bits;    bool local_xor;    uint8_t *meta_pred_table;    unsigned int meta_pred_index_bits;    bool meta_xor;    int ras_size;		// return-address stack size    ReturnAddrStack retAddrStack[SMT_MAX_THREADS]; // return-address stack    struct    {	int sets;		// num BTB sets	int assoc;		// BTB associativity	BTBEntry *btb_data;	// BTB addr-prediction table    } btb;    bool conf_pred_enable;	// enable confidence predictor    uint8_t *conf_pred_table;    unsigned int conf_pred_index_bits;    unsigned int conf_pred_ctr_bits;    int conf_pred_ctr_thresh;	// < 0 means static assignment    unsigned int conf_pred_xor;    unsigned int conf_pred_ctr_type;    // stats    //Counter lookups[SMT_MAX_THREADS];	// Counts all lookups    Stats::Vector<> lookups;    Stats::Vector<> conf_chc;    Stats::Vector<> conf_clc;    Stats::Vector<> conf_ihc;    Stats::Vector<> conf_ilc;    Stats::Vector<> cond_predicted;    Stats::Vector<> cond_correct;    // # of BTB lookups (spec & misspec)    Stats::Vector<> btb_lookups;    // # of BTB hits    ( "       "    )    Stats::Vector<> btb_hits;    // # of targets fetched from BTB (committed)    Stats::Vector<> used_btb;    // # of correct targets from BTB    Stats::Vector<> btb_correct;    // number of committed instrs using RAS    Stats::Vector<> used_ras;    // num correct return-address predictions    Stats::Vector<> ras_correct;    unsigned pred_state_table_size;    Stats::Vector<> pred_state[NUM_PRED_STATE_ENTRIES];    Stats::Formula lookup_rate;    Stats::Formula dir_accuracy;    Stats::Formula btb_hit_rate;    Stats::Formula btb_accuracy;    Stats::Formula ras_accuracy;    Stats::Formula conf_sens;    Stats::Formula conf_pvp;    Stats::Formula conf_spec;    Stats::Formula conf_pvn;    Stats::Distribution<> corr_conf_dist;    Stats::Distribution<> incorr_conf_dist;    // initialize CPU pointer    void setCPU(FullCPU *_cpu) { cpu = _cpu; }    void regStats( );    void regFormulas();    // query predictor for predicted target address    enum LookupResult {	Predict_Not_Taken,	Predict_Taken_With_Target,	// taken & BTB or RAS hit	Predict_Taken_No_Target		// taken but BTB miss    };    LookupResult    lookup(int thread_number,	   Addr baddr,	// branch address	   const StaticInstBasePtr &brInst,	   // the following are all output parameters	   Addr *pred_target_ptr, // not touched if no target provided	   BPredUpdateRec *dir_update_ptr, // pred state pointer	   enum conf_pred *confidence = NULL);    // Speculative execution can corrupt the ret-addr stack.  So for    // each lookup we return the top-of-stack (TOS) at that point; a    // mispredicted branch, as part of its recovery, restores the TOS    // using this value -- hopefully this uncorrupts the stack.    void    recover(int thread_number,	    Addr baddr,	// branch address	    BPredUpdateRec *dir_update_ptr);    // update the branch predictor, only useful for stateful predictors;    // updates entry for instruction type OP at address BADDR.  BTB only    // gets updated for branches which are taken.  Inst was determined to    // jump to address BTARGET and was taken if TAKEN is non-zero.    // Predictor statistics are updated with result of prediction,    // indicated by CORRECT and PRED_TAKEN, predictor state to be updated    // is indicated by *DIR_UPDATE_PTR (may be NULL for jumps, which    // shouldn't modify state bits).  Note if bpred_update is done    // speculatively, branch-prediction may get polluted.    void    update(int thread_number,	   Addr baddr,	// branch address	   Addr btarget,	// resolved branch target	   int taken,	// non-zero if branch was taken	   int pred_taken,	// non-zero if branch was pred taken	   int correct,	// was earlier prediction correct?	   const StaticInstBasePtr &brInst,	// static instruction	   BPredUpdateRec *dir_update_ptr); // pred state pointer    /// Pop top element off of return address stack.    void popRAS(int thread_number);};#endif // __ENCUMBERED_CPU_FULL_BPRED_HH__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美美女一区二区在线观看| jlzzjlzz欧美大全| 一区二区国产盗摄色噜噜| 日本一区二区视频在线观看| 精品三级在线看| 日韩视频免费观看高清完整版| 欧美日韩一区久久| 欧美日韩一区二区三区高清| 欧美精品色综合| 欧美一级精品大片| 久久婷婷国产综合国色天香 | 国产麻豆一精品一av一免费| 男人的天堂久久精品| 蜜桃视频在线观看一区二区| 久久狠狠亚洲综合| 国产精华液一区二区三区| 国产精品99久久久久久久女警| 国内精品伊人久久久久影院对白| 国内偷窥港台综合视频在线播放| 国产精品99久久久| 色偷偷88欧美精品久久久| 欧美色图天堂网| 欧美成人a视频| 久久久久国产一区二区三区四区 | 中文字幕一区二区在线播放| 亚洲免费成人av| 日韩电影免费在线观看网站| 国产一区二区三区免费播放| 丰满白嫩尤物一区二区| 在线视频你懂得一区二区三区| 欧美一区二区三区在| 国产日韩影视精品| 亚洲国产cao| 国产激情一区二区三区四区| 日本久久电影网| 亚洲精品一区二区三区精华液| 国产精品进线69影院| 日韩精品成人一区二区在线| 国产成人午夜99999| 欧美亚洲动漫精品| 久久久久成人黄色影片| 亚洲欧洲99久久| 久久国产福利国产秒拍| 在线影视一区二区三区| 久久久久国产免费免费| 午夜精品久久久久久久99水蜜桃 | 91精品在线免费观看| 亚洲国产精品成人综合| 日韩av网站免费在线| 韩国av一区二区三区在线观看| 91色.com| 中文字幕在线不卡视频| 激情五月婷婷综合| 欧美美女一区二区| 一区二区三区日韩精品视频| 国产成都精品91一区二区三| 91精品国产一区二区| 一区二区久久久久久| 成人福利电影精品一区二区在线观看| 欧美另类z0zxhd电影| 一区二区三区日韩欧美| 97久久超碰精品国产| 国产欧美一区二区三区在线老狼| 免费在线观看视频一区| 欧美性做爰猛烈叫床潮| 日韩毛片一二三区| 成人午夜伦理影院| 欧美激情综合网| 国产乱码字幕精品高清av| 欧美电视剧在线看免费| 日韩精品欧美精品| 6080国产精品一区二区| 午夜亚洲国产au精品一区二区| 91麻豆成人久久精品二区三区| 国产精品国产自产拍高清av王其| 国产成人精品亚洲日本在线桃色 | 亚洲婷婷综合色高清在线| 国产一区二区看久久| 精品不卡在线视频| 国产一区视频导航| 亚洲国产精品t66y| 处破女av一区二区| 国产精品久久久久久亚洲伦 | 午夜在线成人av| 欧美日韩精品免费| 日日夜夜免费精品| 欧美成va人片在线观看| 久久成人18免费观看| 久久亚洲综合av| 成人动漫一区二区在线| 亚洲视频一区在线观看| 在线视频观看一区| 日韩在线卡一卡二| 久久综合色8888| 成人免费视频一区| 一区二区三区四区在线| 欧美人xxxx| 国产麻豆视频一区| 亚洲欧美日韩一区二区| 欧美日韩色一区| 国产美女精品在线| 亚洲美女免费在线| 欧美一级片在线看| 成人av网站免费观看| 亚洲一区二区中文在线| 精品欧美乱码久久久久久| 国产成人福利片| 亚洲午夜三级在线| 国产欧美一区二区精品久导航 | 久久人人爽人人爽| 91欧美一区二区| 免费在线观看一区二区三区| 中文字幕国产一区| 欧美一区二区在线免费观看| 成人自拍视频在线观看| 首页国产欧美久久| 国产精品白丝在线| 日韩一级二级三级| 91成人网在线| 东方aⅴ免费观看久久av| 亚洲国产另类精品专区| 国产欧美一区二区精品性色 | 国产精品国产自产拍高清av王其| 欧美色成人综合| 成人动漫精品一区二区| 久久精品国产99| 亚洲在线一区二区三区| 欧美日韩精品电影| 一区二区三区精品久久久| 久久一夜天堂av一区二区三区| 日本二三区不卡| 成人av网站免费| 激情六月婷婷久久| 日韩av一二三| 亚洲成人综合在线| 亚洲精品成人在线| 国产精品久久久久影院色老大| 精品国产成人在线影院| 欧美性色欧美a在线播放| www.亚洲色图| 国产成人精品在线看| 韩国欧美国产1区| 蜜臀91精品一区二区三区| 天堂在线亚洲视频| 亚洲777理论| 亚洲一区在线视频观看| 亚洲视频免费观看| 亚洲欧洲精品天堂一级| 国产日韩欧美精品综合| 一区二区三区四区视频精品免费| 国产精品欧美极品| 国产欧美一区二区精品忘忧草 | 日韩精品一区二区三区视频在线观看 | 久久久综合激的五月天| 精品国产一二三区| 欧美zozo另类异族| 2017欧美狠狠色| 久久久久久久久久久久电影 | 日韩天堂在线观看| 欧美一区二区三区在线观看视频| 欧美精品亚洲一区二区在线播放| 欧美日韩国产a| 欧美一区二区三区播放老司机| 欧美区在线观看| 这里只有精品免费| 日韩免费在线观看| 国产午夜精品在线观看| 国产精品美女久久久久av爽李琼 | 亚洲精品第1页| 亚洲电影中文字幕在线观看| 日韩在线一区二区三区| 久久99国产精品麻豆| 成人激情电影免费在线观看| 99re成人精品视频| 欧美日韩一本到| 久久亚洲一级片| 最新热久久免费视频| 亚洲mv在线观看| 精品一区二区久久久| 成人av网址在线| 欧美福利电影网| 国产女主播一区| 亚洲精品一卡二卡| 日韩av不卡在线观看| 国产91高潮流白浆在线麻豆| 色婷婷精品久久二区二区蜜臂av | 国产69精品一区二区亚洲孕妇| 91蜜桃免费观看视频| 日韩视频免费观看高清在线视频| 中文在线免费一区三区高中清不卡| 一区二区三区产品免费精品久久75| 秋霞午夜鲁丝一区二区老狼| 国产成人亚洲综合色影视| 欧美视频一区二区三区在线观看 | av一区二区不卡| 欧美一区二区在线播放| 国产精品欧美久久久久一区二区| 日本欧洲一区二区| 成人黄色国产精品网站大全在线免费观看| 色av一区二区|