Share to: share facebook share twitter share wa share telegram print page

 

推测执行

推测执行(亦作预测执行投机性执行,英语:Speculative execution)是优化技术的一类,采用这个技术的计算机系统会根据现有信息,利用空转时间提前执行一些将来可能用得上,也可能用不上的指令。如果指令执行完成后发现用不上,系统会抛弃计算结果,并回退执行期间造成的副作用(如缓存)。

推测执行的目标是在处理器系统资源过剩的情况下并行处理其他任务,實際上電腦處理器在工作中,閒置效能的這種情況還不少。因此為了充分運用效率,推测执行无处不在。流水处理器的分支预测、数值预测、[1] 预读取内存和文件、以及数据库系统乐观并发控制等机能中都采用到了推测执行。[2][3]最終可以達到提高整體效能的目的。

举例

假设某程序的结构如下:

  • 从网络上下载一个数据A,耗时30秒。
  • 如果下载A成功,则直接给出A的答案。
  • 如果下载A失败,则计算30秒的算数B,并给出这个答案。

如果没有推测执行功能,那么当A下载后发现失败,那么就要再花30秒做算术B,总共耗时1分钟。但是,由于下载过程中CPU是空转,CPU可以认识到反正闲着也是闲着,不如在下载A的同时将B算出。这样如果将来需要到B,就节省了30秒的时间。就算不需要,丢弃B即可,僅增加些許功耗之外,也没有什么坏处。

参见

参考文献

  1. ^ "A Survey of Value Prediction Techniques for Leveraging Value Locality页面存档备份,存于互联网档案馆)", S. Mittal, Concurrency and Computation, 2017
  2. ^ Lazy and Speculative Execution页面存档备份,存于互联网档案馆Butler Lampson Microsoft Research OPODIS, Bordeaux, France 12 December 2006
  3. ^ International Business Machines Corporation. Research Division; Prabhakar Raghavan; Hadas Schachnai; Mira Yaniv. Dynamic schemes for speculative execution of code. IBM. 1998 [18 January 2011]. (原始内容存档于2020-11-27). 


Kembali kehalaman sebelumnya


Index: pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve 
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9