{"id":301880,"date":"2020-04-14T21:00:28","date_gmt":"2020-04-14T21:00:28","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=301880"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=301880","title":{"rendered":"\u041f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c uop-\u043a\u044d\u0448\u0430 \u043d\u0430 Sandy Bridge+"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/497290\/\">\u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 x86 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u0445 Intel, \u043a\u043e\u043d\u0432\u0435\u0435\u0440 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 2 \u0447\u0430\u0441\u0442\u0438: Front End \u0438 Back End. <\/p>\n<p>  Front End \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043a\u043e\u0434\u0430 \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0435\u0433\u043e \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>  Back End \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0445 \u043e\u0442 Front End. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u0438 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u044f\u0434\u0440\u043e\u043c \u043d\u0435 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443, \u0442\u043e Back End \u0442\u0430\u043a\u0436\u0435 \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b <i>\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/i> \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441\u0442\u0440\u043e\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d\u0438 \u0438\u0434\u0443\u0442 \u0432 \u043a\u043e\u0434\u0435.<\/p>\n<p>  \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043d\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Front End&#8217;a \u043d\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0433\u043e \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041f\u0438\u043a\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 Intel \u2014 4 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430 \u0442\u0430\u043a\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f Memory\/L3-bound \u043a\u043e\u0434\u0430 \u0426\u041f\u0423 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0435\u0435 \u0443\u0442\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c. <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u043e\u0432\u044b\u0439 Ice Lake<\/b><\/p>\n<div class=\"spoiler_text\">\u0415\u0441\u043b\u0438 \u0432\u0435\u0440\u0438\u0442\u044c \u043e\u0444\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0442\u043e \u043f\u0438\u043a\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0443 Ice Lake \u0431\u044b\u043b\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0430 \u0441 4 \u0434\u043e 5 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0437\u0430 \u0442\u0430\u043a\u0442. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0441 \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0446\u043f\u0443 \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438.   <\/div>\n<\/div>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u2014 \u0430\u043d\u0430\u043b\u0438\u0437 \u0432\u043b\u0438\u044f\u043d\u0438\u044f \u043a\u044d\u0448\u0430 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<br \/>  <a name=\"habracut\"><\/a><\/p>\n<h4>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438<\/h4>\n<ul>\n<li>\u041e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435<\/li>\n<li>\u041e\u0431\u0437\u043e\u0440 Front End&#8217;a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 Intel<\/li>\n<li>\u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u0438\u043a\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u00b5op cache &#8212;&gt; IDQ<\/li>\n<li>\u041f\u0440\u0438\u043c\u0435\u0440<\/li>\n<\/ul>\n<h4>\u041e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u0437\u0430\u043c\u0435\u0440\u043e\u0432 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <code>i7-8550U Kaby Lake<\/code>, HT \u0432\u043a\u043b\u044e\u0447\u0435\u043d\/<code>Ubuntu 18.04\/Linux Kernel 5.3.0-45-generic<\/code>. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0430\u043a\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c, \u0442.\u043a. \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 CPU \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0441\u0432\u043e\u0438 \u043f\u0435\u0440\u0444\u043e\u043c\u0430\u043d\u0441 \u044d\u0432\u0435\u043d\u0442\u044b. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u0441\u0442\u0430\u0440\u0448\u0435 Sandy Bridge \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u044d\u0432\u0435\u043d\u0442\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c, \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u043c\u044b\u0441\u043b\u0430. <\/p>\n<h4>\u041e\u0431\u0437\u043e\u0440 Front End&#8217;a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 Intel<\/h4>\n<p>  \u0412\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0430\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0432\u0435\u0435\u0440\u0430 \u2014 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0430 \u0432 <a href=\"https:\/\/www.intel.com\/content\/dam\/www\/public\/us\/en\/documents\/manuals\/64-ia-32-architectures-optimization-manual.pdf\" rel=\"nofollow\">\u043e\u0444\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Intel \u043f\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e\u0444\u0442\u0430<\/a>. \u0411\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0443\u0449\u0435\u043d\u044b \u0432 \u043e\u0444\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a <a href=\"https:\/\/www.agner.org\/optimize\/microarchitecture.pdf\" rel=\"nofollow\">Agner Fog<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/travisdowns.github.io\/\" rel=\"nofollow\">Travis Downs<\/a>. \u0422\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0445\u0435\u043c\u0430 \u043a\u043e\u043d\u0432\u0435\u0435\u0440\u0430 \u0434\u043b\u044f Skylake \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Intel \u0438\u043c\u0435\u0435\u0442 \u0432\u0438\u0434:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qe\/jr\/xa\/qejrxaieyvky3yjl5yps8toljme.png\" alt=\"Skylake Pipeline\"><\/p>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u0447\u0430\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u2014 Front End.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dp\/ya\/yw\/dpyaywk2lq0qub5zh4dvjlqwjn4.png\"><\/p>\n<p>  \u0417\u0430 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0432 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 Legacy Decode Pipeline. \u041e\u043d \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432:<\/p>\n<ol>\n<li>Instruction Fetch Unit \u2014 IFU<br \/> \n<ul>\n<li>\u041a\u044d\u0448 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u0430\u044f \u2014 L1i<\/li>\n<li>\u041a\u044d\u0448 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0439 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u2014 ITLB<\/li>\n<li>\u041f\u0435\u0440\u0444\u0435\u0442\u0447\u0435\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439<\/li>\n<li>\u041f\u0440\u0435-\u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439<\/li>\n<\/ul>\n<\/li>\n<li>\u041e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u0440\u0435-\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439<\/li>\n<li>\u0414\u0435\u043a\u043e\u0434\u0435\u0440\u044b \u043f\u0440\u0435-\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0432 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/li>\n<\/ol>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u0436\u0434\u0443\u044e \u0438\u0437 \u0447\u0430\u0441\u0442\u0435\u0439 Legacy Decode Pipeline \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <b>Instruction Fetch Unit.<\/b><\/p>\n<p>  \u041e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043a\u043e\u0434\u0430, \u043f\u0440\u0435\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u043d\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0442\u0438\u043f\u0430 \u00ab\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435\u043c\u00bb) \u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u0440\u0435-\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439.<\/p>\n<p>  <b>\u041a\u044d\u0448 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u0430\u044f \u2014 L1i<\/b><\/p>\n<p>  \u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043a\u043e\u0434\u0430 IFU \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 L1i \u2014 \u043a\u044d\u0448 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u0430\u044f \u0438 L2\/LLC \u2014 \u043a\u044d\u0448 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0438 offcore-\u043a\u044d\u0448 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u043e\u0431\u0449\u0438\u0435 \u0434\u043b\u044f \u043a\u043e\u0434\u0430 \u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0443\u0441\u043a\u0430\u043c\u0438 \u043f\u043e 16 \u0431\u0430\u0439\u0442, \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 16-\u0431\u0430\u0439\u0442. \u041f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 16-\u0431\u0430\u0439\u0442\u043d\u043e\u0433\u043e \u043a\u0443\u0441\u043a\u0430 \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a L1i \u0438, \u0435\u0441\u043b\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0432\u0443\u044e\u0449\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430, \u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0438\u0441\u043a \u0432 L2 \u0438, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u0443\u0441\u043f\u0435\u0445\u0430, \u0432 LLC \u0438 \u043f\u0430\u043c\u044f\u0442\u0438. \u0414\u043e Skylake, LLC \u043a\u044d\u0448 \u0431\u044b\u043b \u0438\u043d\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u043c \u2014 \u043a\u0430\u0436\u0434\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u0432 L1(i\/d) \u0438 L2 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u043b\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0432 LLC. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c LLC \u00ab\u0437\u043d\u0430\u043b\u00bb \u043f\u0440\u043e \u0432\u0441\u0435 \u043b\u0438\u043d\u0438\u0438 \u0432\u043e \u0432\u0441\u0435\u0445 \u044f\u0434\u0440\u0430\u0445 \u0438, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 LLC \u043f\u0440\u043e\u043c\u0430\u0445\u0430 \u0431\u044b\u043b\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043b\u0438 \u043a\u044d\u0448\u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0434\u0440\u0430\u0445 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u0443\u044e \u043b\u0438\u043d\u0438\u044e \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 Modified, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0434\u0430\u043d\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u043c\u043e\u0433\u043b\u0430 \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430 \u0438\u0437 \u0434\u0440\u0443\u0433\u043e \u044f\u0434\u0440\u0430. \u0412 Skylake, LLC \u0441\u0442\u0430\u043b \u043d\u0435 \u0438\u043d\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u043c L2-victim \u043a\u044d\u0448\u0435\u043c, \u043e\u0434\u043d\u0430\u043a\u043e \u0432 4 \u0440\u0430\u0437\u0430 \u0431\u044b\u043b \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d \u0440\u0430\u0437\u043c\u0435\u0440 L2. \u041c\u043d\u0435 \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 L2 \u0438\u043d\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u043c \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a L1i. L2 <b>\u043d\u0435<\/b> \u0438\u043d\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0439 \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a L1d.<\/p>\n<p>  <b>\u041a\u044d\u0448 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0439 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u2014 ITLB<\/b> <\/p>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043a\u044d\u0448\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043b\u0438\u043d\u0438\u0438. \u0414\u043b\u044f <a href=\"https:\/\/en.wikipedia.org\/wiki\/CPU_cache#Associativity\" rel=\"nofollow\"><code>n<\/code>-way \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u044d\u0448\u0435\u0439<\/a>, \u043a\u0430\u0436\u0434\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <code>n<\/code> \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u0432 \u0441\u0430\u043c\u043e\u043c \u043a\u044d\u0448\u0435. \u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043b\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0432 \u043a\u044d\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043d\u0434\u0435\u043a\u0441 (\u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043b\u0430\u0434\u0448\u0438\u0445 \u0431\u0438\u0442 \u0430\u0434\u0440\u0435\u0441\u0430). \u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u043b\u0438\u043d\u0438\u044f \u0442\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u044d\u0433 (\u043e\u0441\u0442\u0430\u0432\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430). \u041a\u0430\u043a\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c: \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u043b\u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u2014 <a href=\"https:\/\/en.wikipedia.org\/wiki\/CPU_cache#Address_translation\" rel=\"nofollow\">\u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0440\u0435\u043b\u0430\u0437\u0430\u0446\u0438\u0438 \u043a\u044d\u0448\u0430<\/a>. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438. \u0414\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f TLB \u2014 \u0431\u0443\u0444\u0444\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u044d\u0448\u0438\u0440\u0443\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b page walk&#8217;\u043e\u0432, \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044f \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u0438\u0437 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f\u0445. \u0414\u043b\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 Instruction TLB \u0431\u0443\u0444\u0444\u0435\u0440, \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442 Data TLB. \u0412 \u0446\u043f\u0443 \u044f\u0434\u0440\u0435 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0431\u0449\u0438\u0439 \u0434\u043b\u044f \u043a\u043e\u0434\u0430 \u0438 \u0434\u0430\u043d\u043d\u044b\u0445 TLB \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u2014 STLB. \u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 STLB \u0438\u043d\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u043c \u2014 \u043c\u043d\u0435 \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e (\u043f\u043e \u0441\u043b\u0443\u0445\u0430\u043c, \u044d\u0442\u043e \u043d\u0435 \u0438\u043d\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0439 victim \u043a\u044d\u0448 \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a D\/I TLB). \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e Software \u043f\u0435\u0440\u0444\u0435\u0442\u0447\u0430 <code>prefetcht1<\/code> \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442\u044c \u043b\u0438\u043d\u0438\u044e \u0441 \u043a\u043e\u0434\u043e\u043c \u0432 L2, \u043e\u0434\u043d\u0430\u043a\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f TLB \u0437\u0430\u043f\u0438\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 DTLB. \u0415\u0441\u043b\u0438 STLB \u043d\u0435 \u0438\u043d\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0439, \u0442\u043e, \u043f\u0440\u0438 \u043f\u043e\u0438\u0441\u043a\u0435 \u044d\u0442\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0441 \u043a\u043e\u0434\u043e\u043c \u0432 \u043a\u044d\u0448\u0430\u0445, \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e ITLB miss &#8212;&gt; STLB miss &#8212;&gt; page walk (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435 \u0432\u0441\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f\u0434\u0440\u043e \u043c\u043e\u0436\u0435\u0442 <a href=\"https:\/\/stackoverflow.com\/a\/32258855\/2786156\" rel=\"nofollow\">\u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u043a\u0443\u043b\u044f\u0442\u0438\u0432\u043d\u044b\u0439 page walk<\/a> \u0434\u043e \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 TLB miss). \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Intel \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c SW \u043f\u0435\u0440\u0444\u0435\u0442\u0447\u0438 \u0434\u043b\u044f \u043a\u043e\u0434\u0430, Intel Software Optimization Manual\/2.5.5.4:<\/p>\n<blockquote><p>The software-controlled prefetch is intended for prefetching data, but not for prefetching code.<\/p><\/blockquote>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e Travis D. <a href=\"https:\/\/software.intel.com\/en-us\/forums\/software-tuning-performance-optimization-platform-monitoring\/topic\/805472\" rel=\"nofollow\">\u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b<\/a>, \u0447\u0442\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043f\u0440\u0435\u0444\u0435\u0442\u0447 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u043d\u044b\u043c (\u0438 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e \u0442\u0430\u043a \u0438 \u0435\u0441\u0442\u044c), \u043d\u043e \u043c\u043d\u0435 \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0438 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432 \u044d\u0442\u043e\u043c \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441.<\/p>\n<p>  <b>\u041f\u0435\u0440\u0444\u0435\u0442\u0447\u0435\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439<\/b><\/p>\n<p>  \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u044d\u0448 (L1d\/i, L2, etc) \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a \u043d\u0435\u0437\u0430\u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0443\u0447\u0430\u0441\u0442\u043a\u0443 \u043f\u0430\u043c\u044f\u0442\u0438. \u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0442\u0430\u043a\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u0442\u043e \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043c\u044b \u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043a\u044d\u0448\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 Sandy Bridge \u0434\u043b\u044f L1d \u2014 2 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435, 1 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u043e 16 \u0431\u0430\u0439\u0442 \u0437\u0430 \u0442\u0430\u043a\u0442; \u0434\u043b\u044f L1i \u2014 1 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u043f\u043e 16 \u0431\u0430\u0439\u0442, \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0443 Agner Fog \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u043e\u0441\u044c. \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 Hardware \u043f\u0440\u0435\u0444\u0435\u0442\u0447\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043c\u0435\u044e\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u043b\u0438\u043d\u0438\u0438 \u0432 \u043a\u044d\u0448 \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043a\u043e\u0434 \u043f\u043e \u0444\u0430\u043a\u0442\u0443 \u043a \u043d\u0438\u043c \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0441\u044f. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Intel \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 4 \u043f\u0440\u0435\u0444\u0435\u0442\u0447\u0435\u0440\u0430: 2 \u0434\u043b\u044f L1d, 2 \u0434\u043b\u044f L2:<\/p>\n<p>  1. <b>L1 DCU<\/b> \u2014 \u043f\u0440\u0435\u0444\u0435\u0442\u0447\u0438\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u044d\u0448 \u043b\u0438\u043d\u0438\u0438. <b>\u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u0439 \u0432\u043f\u0435\u0440\u0435\u0434<\/b><br \/>  2. <b>L1 IP<\/b> \u2014 \u0435\u0441\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0447\u0438\u0442\u0430\u0435\u0442 \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0430\u043c \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0448\u0430\u0433\u043e\u043c (\u043d\u0430\u043f\u0440. 0x5555555545a0, 0x5555555545b0, 0x5555555545c0, &#8230;, \u0442\u043e \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0442\u0430\u043a\u043e\u043c\u0443 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0443, \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0440\u0435\u0444\u0435\u0442\u0447\u0435\u043d\u0430)<br \/>  3. <b>L2 Spatial<\/b> \u2014 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a \u043a\u044d\u0448 \u043b\u0438\u043d\u0438\u0438 \u0432 L2 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0440\u0435\u0444\u0435\u0442\u0447\u0435\u043d\u0430 \u0441\u043e\u0441\u0435\u0434\u043d\u044f\u044f \u043a\u044d\u0448-\u043b\u0438\u043d\u0438\u044f, \u0442\u0430\u043a \u0447\u0442\u043e \u0438\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u0430 \u043d\u0430 128-\u0431\u0430\u0439\u0442. \u0412 \u0440\u044f\u0434\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043f\u0440\u0435\u0444\u0435\u0442\u0447\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 LLC<br \/>  4. <b>L2 Streamer<\/b> \u2014 \u043f\u0440\u0435\u0444\u0435\u0442\u0447\u0438\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u044d\u0448 \u043b\u0438\u043d\u0438\u0438. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 L1 DCU \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0444\u0435\u0442\u0447\u0438\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0447\u0442\u0435\u043d\u0438\u0438 \u00ab\u043d\u0430\u0437\u0430\u0434\u00bb. \u0412 \u0440\u044f\u0434\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043f\u0440\u0435\u0444\u0435\u0442\u0447\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 LLC<\/p>\n<p>  \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Intel \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b L1i \u043f\u0435\u0440\u0444\u0435\u0442\u0447\u0435\u0440\u0430. \u0412\u0441\u0435 \u0447\u0442\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u2014 \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0447\u0430\u0432\u0441\u0442\u0432\u0443\u0435\u0442 Branch Prediction Unit (BPU), Intel Software Optimization Manual\/2.6.2:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/sd\/js\/y3\/sdjsy3jrgseyeuukletr84i2gyu.png\"><\/p>\n<p>  \u0423 Agner Fog \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0434\u0435\u0442\u0430\u043b\u0435\u0439 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f. <\/p>\n<p>  \u041f\u0440\u0435\u0444\u0435\u0442\u0447 \u043a\u043e\u0434\u0430 \u0432 L2\/LLC \u044f\u0432\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Streamer. Optimization Manual\/2.5.5.4 Data Prefectching:<\/p>\n<blockquote><p><b>Streamer<\/b>: This prefetcher monitors read requests from the L1 cache for ascending and descending sequences of addresses. Monitored read requests include L1 DCache requests initiated by load and store operations and by the hardware prefetchers, and L1 ICache requests for code fetch.<\/p><\/blockquote>\n<p>  \u0414\u043b\u044f Spatial \u043f\u0440\u0435\u0444\u0435\u0442\u0447\u0435\u0440\u0430 \u044d\u0442\u043e \u044f\u0432\u043d\u043e \u043d\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u043e:<\/p>\n<blockquote><p><b>Spatial Prefetcher:<\/b> This prefetcher strives to complete every cache line fetched to the L2 cache with the pair line that completes it to a 128-byte aligned chunk.<\/p><\/blockquote>\n<p>  \u041d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e. \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u044d\u0442\u0438\u0445 \u043f\u0440\u0435\u0444\u0435\u0442\u0447\u0435\u0440\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>MSR 0x1A4<\/code>, \u043a\u0430\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u043c\u0430\u043d\u0443\u0430\u043b\u0435 <a href=\"https:\/\/software.intel.com\/sites\/default\/files\/managed\/22\/0d\/335592-sdm-vol-4.pdf\" rel=\"nofollow\">Model-Specific Registers<\/a><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u043e MSR 0x1A4<\/b><\/p>\n<div class=\"spoiler_text\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0434\u0430\u043d\u043d\u044b\u0439 MSR \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u0440\u0435\u0430\u043a\u0446\u0438\u0438 L2 Spatial \u043d\u0430 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438\u0437 L1i. \u042f \u0441\u0430\u043c \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u044b\u0432\u0430\u043b. \u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0444\u0435\u0442\u0447\u0435\u0440\u043e\u0432 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435 \u0432\u043b\u0435\u0437\u0430\u044e\u0449\u0438\u0445 \u0432 LLC. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 L2 Streamer \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u043e \u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u0432 2.5 \u0440\u0430\u0437\u0430. <\/p>\n<p>  \u0412 Linux \u0435\u0441\u0442\u044c msr \u0434\u0440\u0430\u0439\u0432\u0435\u0440, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c msr \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u044f\u0434\u0440\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>$ sudo wrmsr -p 1 0x1a4 1<\/code> \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442 L2 Streamer \u0434\u043b\u044f \u044f\u0434\u0440\u0430 1.  <\/div>\n<\/div>\n<p>  <b>\u041f\u0440\u0435-\u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439<\/b><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u044b\u0435 16-\u0431\u0430\u0439\u0442 \u043a\u043e\u0434\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b, \u043e\u043d\u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043f\u0440\u0435-\u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439. \u0415\u0433\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u043b\u0438\u043d\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u044b \u0438 \u043f\u043e\u043c\u0435\u0442\u0438\u0442\u044c, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435\u043c (\u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0435\u0449\u0435 \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432, \u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043e \u043d\u0438\u0445 \u0443\u043c\u0430\u043b\u0447\u0438\u0432\u0430\u0435\u0442). Intel Software Optimization Manual\/2.6.2.2:<\/p>\n<blockquote><p>The predecode unit accepts the sixteen bytes from the instruction cache or prefetch buffers and carries out the following tasks:<br \/>  \u2022 Determine the length of the instructions.<br \/>  \u2022 Decode all prefixes associated with instructions.<br \/>  \u2022 Mark various properties of instructions for the decoders (for example, \u201cis branch.\u201d).<\/p><\/blockquote>\n<p>  <b>\u041e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u0440\u0435-\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439.<\/b><\/p>\n<p>  \u0418\u0437 IFU \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u0440\u0435\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439. \u0414\u0430\u043d\u043d\u0430\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 Nehalem, \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0432\u0441\u0442\u0432\u0438\u0438 \u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435 Intel \u0435\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u2014 18 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439. Agner Fog \u0442\u0430\u043a\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442, \u0447\u0442\u043e \u0432 \u044d\u0442\u0443 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0432\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 64 \u0431\u0430\u0439\u0442.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0432 Core2 \u0434\u0430\u043d\u043d\u0430\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043a\u0430\u043a \u043a\u044d\u0448 \u0446\u0438\u043a\u043b\u043e\u0432 (loop cache). \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0437 \u0446\u0438\u043a\u043b\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438, \u0442\u043e \u0432 \u0440\u044f\u0434\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0438 \u043f\u0440\u0435\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. Loop Stream Detector (LSD) \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 BPU \u043d\u0435 \u043f\u0440\u043e\u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0442, \u0447\u0442\u043e \u0446\u0438\u043a\u043b \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f. \u0423 Agner Fog \u0435\u0441\u0442\u044c \u0440\u044f\u0434 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0439 \u043a\u0430\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u043e LSD \u043d\u0430 Core2:<\/p>\n<ul>\n<li>\u0421\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 4 \u043b\u0438\u043d\u0438\u0439 \u043f\u043e 16 \u0431\u0430\u0439\u0442<\/li>\n<li>\u041f\u0438\u043a\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0434\u043e 32 \u0431\u0430\u0439\u0442 \u043a\u043e\u0434\u0430 \u0437\u0430 \u0442\u0430\u043a\u0442<\/li>\n<\/ul>\n<p>  \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 Sandy Bridge, \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u044d\u0448 \u0446\u0438\u043a\u043b\u043e\u0432 \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b \u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043f\u0440\u0435-\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 IDQ.<\/p>\n<p>  <b>\u0414\u0435\u043a\u043e\u0434\u0435\u0440\u044b \u043f\u0440\u0435-\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0432 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/b><\/p>\n<p>  \u0418\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043f\u0440\u0435-\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043a\u043e\u0434 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043d\u0430 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u0417\u0430 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u044b \u2014 \u0432\u0441\u0435\u0433\u043e \u0438\u0445 4. \u0412 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 Intel, \u043e\u0434\u0438\u043d \u0438\u0437 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u043e\u0432 \u0443\u043c\u0435\u0435\u0442 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0438\u0437 4-\u0445 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438 \u043c\u0435\u043d\u0435\u0435. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u044e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 (micro\/macro fused), Intel Software Optimization Manual\/2.5.2.1:<\/p>\n<blockquote><p>There are four decoding units that decode instruction into micro-ops. The first can decode all IA-32 and Intel 64 instructions up to four micro-ops in size. The remaining three decoding units handle single-micro-op instructions. All four decoding units support the common cases of single micro-op flows including micro-fusion and macro-fusion.<\/p><\/blockquote>\n<p>  \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0432 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f (\u043d\u0430\u043f\u0440. rep movsb, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 memcpy \u0432 libc \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438) \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0438\u0437 Microcode Sequencer (MS ROM). \u041f\u0438\u043a\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0441\u0435\u043a\u0432\u0435\u043d\u0441\u0435\u0440\u0430 \u2014 4 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430 \u0442\u0430\u043a\u0442.<\/p>\n<p>  \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 \u043a\u043e\u043d\u0432\u0435\u0435\u0440\u0430, Legacy Decode Pipeline \u043c\u043e\u0436\u0435\u0442 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043e 5 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0437\u0430 \u0442\u0430\u043a\u0442 \u043d\u0430 Skylake. \u041d\u0430 Broadwell \u0438 \u0441\u0442\u0430\u0440\u0448\u0435 \u043f\u0438\u043a\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c Legacy Decode Pipeline&#8217;a \u0431\u044b\u043b\u0430 4 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430 \u0442\u0430\u043a\u0442.<\/p>\n<p>  <b>\u041a\u044d\u0448 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439<\/b><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0438\u0437 Legacy Decode Pipeline \u043e\u043d\u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u2014 Instruction Decode Queue (IDQ), \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u043a\u044d\u0448 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 (Decoded ICache, \u00b5op cache). \u041a\u044d\u0448 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432 Sandy Bridge \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0444\u0435\u0442\u0447\u0438\u043d\u0433\u0430 \u0438 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0432 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043f\u043e\u0432\u044b\u0448\u0430\u044f \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 IDQ \u2014 \u0434\u043e 6 \u0437\u0430 \u0442\u0430\u043a\u0442. \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u0432 IDQ, \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0443\u0445\u043e\u0434\u044f\u0442 \u0432 Back End \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0441 \u043f\u0438\u043a\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c\u044e \u2014 4 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430 \u0442\u0430\u043a\u0442. <\/p>\n<p>  \u0412 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 Intel, \u043a\u044d\u0448 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 32-\u0445 \u0441\u0435\u0442\u043e\u0432, \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e 8 \u043b\u0438\u043d\u0438\u0439, \u043a\u0430\u0436\u0434\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043e 6 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 (micro\/macro fused), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0432 \u043e\u0431\u0449\u0435\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043e 32 * 8 * 6 = 1536 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439. \u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u0433\u0440\u0430\u043d\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c\u044e \u0432 32 \u0431\u0430\u0439\u0442\u0430, \u0442.\u0435. \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c \u0438\u0437 \u0440\u0430\u0437\u043d\u044b\u0445 32-\u0431\u0430\u0439\u0442\u043d\u044b\u0445 \u0440\u0435\u0433\u0438\u043e\u043d\u043e\u0432 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043e\u0434\u043d\u0443 \u043b\u0438\u043d\u0438\u044e. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043e\u0434\u043d\u043e\u043c\u0443 32-\u0431\u0430\u0439\u0442\u043d\u043e\u043c\u0443 \u0440\u0435\u0433\u0438\u043e\u043d\u0443 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0434\u043e 3-\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439 \u043a\u044d\u0448\u0430. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043a\u0430\u0436\u0434\u043e\u043c\u0443 32-\u0431\u0430\u0439\u0442\u043d\u043e\u043c\u0443 \u0440\u0435\u0433\u0438\u043e\u043d\u0443 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0434\u043e 18 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 \u00b5op cache.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Intel Software Optimization Manual\/2.5.5.2<\/b><\/p>\n<div class=\"spoiler_text\">\n<blockquote><p>The Decoded ICache consists of 32 sets. Each set contains eight Ways. Each Way can hold up to six micro-ops. The Decoded ICache can ideally hold up to 1536 micro-ops. The following are some of the rules how the Decoded ICache is filled with micro-ops:<\/p>\n<p>  \u2022 All micro-ops in a Way represent instructions which are statically contiguous in the code and have their EIPs within the same aligned 32-byte region.<\/p>\n<p>  \u2022 Up to three Ways may be dedicated to the same 32-byte aligned chunk, allowing a total of 18 micro-ops to be cached per 32-byte region of the original IA program.<\/p>\n<p>  \u2022 A multi micro-op instruction cannot be split across Ways.<\/p>\n<p>  \u2022 Up to two branches are allowed per Way. <\/p>\n<p>  \u2022 An instruction which turns on the MSROM consumes an entire Way.<\/p>\n<p>  \u2022 A non-conditional branch is the last micro-op in a Way. <\/p>\n<p>  \u2022 Micro-fused micro-ops (load+op and stores) are kept as one micro-op.<\/p>\n<p>  \u2022 A pair of macro-fused instructions is kept as one micro-op.<\/p>\n<p>  \u2022 Instructions with 64-bit immediate require two slots to hold the immediate.<\/p><\/blockquote>\n<p>  <\/div>\n<\/div>\n<p>  Agner Fog \u0442\u0430\u043a\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442, \u0447\u0442\u043e \u0437\u0430 \u0442\u0430\u043a\u0442 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 (\u044f\u0432\u043d\u043e \u043d\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Intel, \u0445\u043e\u0442\u044f \u0438 \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0432 \u0440\u0443\u0447\u043d\u0443\u044e).<\/p>\n<h4>\u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u0438\u043a\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u00b5op cache &#8212;&gt; IDQ<\/h4>\n<p>  \u0412 \u0440\u044f\u0434\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f Front End \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>nop<\/code>-\u044b \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0432 1 \u0431\u0430\u0439\u0442. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c \u0438\u043c\u0435\u043d\u043d\u043e Front End, \u0430 \u043d\u0435 Resource Stall \u043d\u0430 Back End \u0432 \u0441\u0438\u043b\u0443 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043f\u0440\u0438\u0447\u0438\u043d. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e <code>nop<\/code>-\u044b, \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 Legacy Decode Pipeline, \u0441\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u00b5op cache \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 IDQ. \u0414\u0430\u043b\u0435\u0435 <code>nop<\/code>-\u044b, \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 Back End. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0438\u0437 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0430 Back End <code>nop<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e <a href=\"https:\/\/en.wikipedia.org\/wiki\/Re-order_buffer\" rel=\"nofollow\">Reorder Buffer<\/a> \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0442\u0430 \u0432 Reservation Station (a.k.a Scheduler). \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u0432 Reorder Buffer, <code>nop<\/code> \u0433\u043e\u0442\u043e\u0432 \u043a retirement&#8217;\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u043c \u043a\u043e\u0434\u0435.<\/p>\n<p>  \u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u044a\u044f\u0432\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e   <\/p>\n<pre><code class=\"cpp\">void test_decoded_icache(size_t iteration_count);<\/code><\/pre>\n<p>  \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043d\u0430 <code>nasm<\/code>:<\/p>\n<p>  <code>align 32<br \/>  test_decoded_icache:<br \/>   ;nop'\u044b, \u043e\u0442 0 \u0434\u043e 23 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e<br \/>   dec rdi<br \/>   ja test_decoded_icache<br \/>   ret<\/code><\/p>\n<p>  <code>ja<\/code> \u0431\u044b\u043b\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043e \u043d\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e. <code>ja<\/code> \u0438 <code>dec<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0444\u043b\u0430\u0433\u0438 \u2014 <code>ja<\/code> \u0447\u0438\u0442\u0430\u0435\u0442 \u0438\u0437 <code>CF<\/code> \u0438 <code>ZF<\/code>, <code>dec<\/code> \u043d\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432 CF, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 Macro Fusion \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0447\u0438\u0441\u0442\u043e \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 \u0446\u0438\u043a\u043b\u0435 \u2014 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u043d\u0441\u0442\u0443\u043a\u0446\u0438\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f.<\/p>\n<p>  \u0414\u043b\u044f \u0437\u0430\u043c\u0435\u0440\u043e\u0432 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 perf \u044d\u0432\u0435\u043d\u0442\u044b:<\/p>\n<p>  1. <code>uops_issued.any<\/code> \u2014 \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Renamer \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u0437 IDQ.<\/p>\n<p>  Intel System Programming Guide \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u044d\u0442\u043e\u0442 \u044d\u0432\u0435\u043d\u0442 \u043a\u0430\u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Renamer \u043a\u043b\u0430\u0434\u0435\u0442 \u0432 Reservation Station:<\/p>\n<blockquote><p>Counts the number of uops that the Resource Allocation Table (RAT) issues to the Reservation Station (RS).  <\/p><\/blockquote>\n<p>  \u0414\u0430\u043d\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043a\u043e\u0440\u0440\u0435\u043b\u0438\u0440\u0443\u0435\u0442 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, <code>nop<\/code>-\u044b \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u0430\u0443\u043d\u0442\u0435\u0440, \u0445\u043e\u0442\u044f \u043e\u0447\u0435\u0432\u0438\u043d\u0434\u043e, \u0447\u0442\u043e \u0432 Reservation Station \u043e\u043d\u0438 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u044b.<\/p>\n<p>  2. <code>uops_retired.retire_slots<\/code> \u2014 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e retired \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c micro\/macro-fusion<\/p>\n<p>  3. <code>uops_retired.stall_cycles<\/code> \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0442\u043e\u0432, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 retired \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/p>\n<p>  4. <code>resource_stalls.any<\/code> \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0442\u043e\u0432 \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0432\u0435\u0435\u0440\u0430 \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0438\u0437 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 Back End<\/p>\n<p>  \u0412 Intel Software Optimization Manual\/B.4.1 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0430\u0436\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0437\u0443\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435 \u044d\u0432\u0435\u043d\u0442\u044b:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wq\/j9\/y3\/wqj9y3jj7aeisnmdjxxxjwsl_jk.png\"><\/p>\n<p>  5. <code>idq.all_dsb_cycles_4_uops<\/code> \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0442\u043e\u0432, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u00b5op cache \u0431\u044b\u043b\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u043e 4 (\u0438 \u0431\u043e\u043b\u0435\u0435) \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438. <\/p>\n<p>  \u0422\u043e, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0443 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u0431\u043e\u043b\u0435\u0435 4\u0445 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0437\u0430 \u0442\u0430\u043a\u0442 \u2014 \u043d\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Intel, \u043e\u0434\u043d\u0430\u043a\u043e \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043e\u0433\u043b\u0430\u0441\u0443\u0435\u0442\u0441\u044f \u0441 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043c\u0438.<\/p>\n<p>  6. <code>idq.all_dsb_cycles_any_uops<\/code> \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0442\u043e\u0432, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0430\u0441\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f.<\/p>\n<p>  7. <code>idq.dsb_cycles<\/code> \u2014 \u0418\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0442\u043e\u0432, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u044b\u043b\u0430 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u0438\u0437 \u00b5op cache <\/p>\n<p>  8. <code>idq_uops_not_delivered.cycles_le_N_uop_deliv.core<\/code> \u2014 \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0442\u043e\u0432, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Renamer \u0437\u0430\u0431\u0438\u0440\u0430\u043b \u043f\u043e <code>N<\/code> \u0438\u043b\u0438 \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438 <b>\u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u044f \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 Back End<\/b>, <code>N<\/code> \u2014 1, 2, 3.<\/p>\n<p>  \u0414\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e\u0437\u044c\u043c\u0435\u043c <code>iteration_count = 1 &lt;&lt; 31<\/code>. \u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0432 \u0426\u041f\u0423 \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043c\u0435\u0440\u0438\u0435\u043c \u0441\u0440\u0435\u0434\u043d\u0438\u0439 retirement bandwidth, \u0442.\u0435. <code>uops_retired.retire_slots\/uops_retired.total_cycle<\/code>:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xi\/b2\/0s\/xib20shepbr334i1xmhka10rjeg.png\"><\/p>\n<p>  \u0427\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0431\u0440\u043e\u0441\u0430\u0435\u0442\u0441\u044f \u0432 \u0433\u043b\u0430\u0437\u0430, \u0442\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0435\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 retirement&#8217;a \u043f\u0440\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0435 \u0446\u0438\u043a\u043b\u0430 \u0432 7 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u0432 \u0447\u0435\u043c \u0434\u0435\u043b\u043e, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438\u0437 \u00b5op cache \u2014 <code>idq.all_dsb_cycles_any_uops \/ idq.dsb_cycles<\/code>:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xm\/5s\/su\/xm5ssuzamxr4th-xs7e0ixrisfm.png\"><\/p>\n<p>  \u0438 \u043a\u0430\u043a \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0442\u043e\u0432 \u0438 \u0442\u0430\u043a\u0442\u043e\u0432 \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u00b5op cache \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b \u0432 IDQ:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/it\/w5\/va\/itw5vasl9ogpslneyoclxzasu4k.png\"><\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0446\u0438\u043a\u043b\u0435 \u0438\u0437 6 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u00b5op cache \u2014 6 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0437\u0430 \u0442\u0430\u043a\u0442. \u0412 \u0441\u0438\u043b\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e Renamer \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u00b5op cache, \u0442\u043e \u0447\u0430\u0441\u0442\u044c \u0442\u0430\u043a\u0442\u043e\u0432 \u00b5op cache \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442, \u0447\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u0438\u0434\u043d\u043e \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435.<\/p>\n<p>  \u041f\u0440\u0438 \u0446\u0438\u043a\u043b\u0435 \u0438\u0437 7 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0440\u0435\u0437\u043a\u043e\u0435 \u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u00b5op cache \u2014 3.5 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430 \u0442\u0430\u043a\u0442. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0430, \u00b5op cache \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0440\u0430\u0437\u043e\u043c, \u043f\u0440\u0438 \u0446\u0438\u043a\u043b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0432 7 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043d\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u00b5op cache. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e, \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043e \u0440\u0430\u043d\u0435\u0435, \u00b5op cache \u0437\u0430 \u0442\u0430\u043a\u0442 \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 7 \u2014 \u043f\u0435\u0440\u0432\u044b\u0435 6 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043e\u0434\u043d\u0443 \u043b\u0438\u043d\u0438\u044e, \u0430 \u043e\u0441\u0442\u0430\u0432\u0448\u0430\u044f\u0441\u044f 7\u044f \u2014 \u0432 \u0434\u0440\u0443\u0433\u0443\u044e. \u0422\u0430\u043a\u0438\u043c\u0438 \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c 7 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0437\u0430 2 \u0442\u0430\u043a\u0442\u0430, \u0438\u043b\u0438 \u0436\u0435 3.5 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430 \u0442\u0430\u043a\u0442.<\/p>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c Renamer \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0437 IDQ. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f <code>idq_uops_not_delivered.core<\/code> \u0438 <code>idq_uops_not_delivered.cycles_le_N_uop_deliv.core<\/code>:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/kv\/mg\/qv\/kvmgqvwgra-j4qgpxia46mwlsh4.png\"><\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438 7-\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445, \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0442\u0430\u043a\u0442\u043e\u0432 Renamer \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e 3 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430 \u0440\u0430\u0437. \u041e\u0442\u0441\u044e\u0434\u0430 \u043c\u044b \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c retirement&#8217;\u0430 \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c 3.5 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430 \u0442\u0430\u043a\u0442.<\/p>\n<p>  \u0414\u0440\u0443\u0433\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0435\u0441\u043b\u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <i>\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e<\/i> \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c retirement&#8217;\u0430. \u0422.\u0435. \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f <code>uops_retired.stall_cycles<\/code>:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/uo\/hy\/gt\/uohygtod0xknhsvolqjnig7tfos.png\"><\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438 7-\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445, \u043a\u0430\u0436\u0434\u044b\u0435 7 \u0442\u0430\u043a\u0442\u043e\u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f retirement 4-\u0445 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u0430 \u043a\u0430\u0436\u0434\u044b\u0439 8-\u0439 \u0442\u0430\u043a\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u043d\u0438\u0438 \u0441 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435\u043c retired \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 (retirement stall). \u041f\u0440\u043e\u0432\u0435\u0434\u044f \u0440\u044f\u0434 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432, \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438 7-\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445, \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438 1-6, 6-1, 2-5, 5-2, 3-4, 4-3. \u041c\u043d\u0435 \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043f\u043e\u0447\u0435\u043c\u0443 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a, \u0430 \u043d\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430 \u043e\u0434\u0438\u043d \u0442\u0430\u043a\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f retirement 3-\u0445 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u0437\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u2014 4-\u0445. Agner Fog \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u043f\u043e \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f\u043c \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u0442\u044c \u0441\u043b\u043e\u0442\u043e\u0432 retirement station. <i>\u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c<\/i> \u044d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0438 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f retirement&#8217;\u0430.<\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440<\/h4>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e \u0432\u0441\u0435 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0435\u043c \u0441 <code>nop<\/code>-\u0430\u043c\u0438:<\/p>\n<p>  \u0414\u0430\u043d\u044b \u0434\u0432\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <code>unsigned<\/code>&#8216;\u043e\u0432. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u044c \u0441\u0443\u043c\u043c\u0443 \u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0435 \u0432 \u0442\u0440\u0435\u0442\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432.<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"cpp\"> static unsigned arr1[] = { ... };  static unsigned arr2[] = { ... };  static void arithmetic_mean(unsigned *arr1, unsigned *arr2, unsigned *out, size_t sz){     unsigned sum = 0;     size_t idx = 0;     while(idx &lt; sz){         sum += (arr1[idx] + arr2[idx]) &gt;&gt; 1;         out[idx] = sum;         idx++;     }     __asm__ __volatile__(&quot;&quot; ::: &quot;memory&quot;); }  int main(void){     unsigned out[sizeof arr1 \/ sizeof(unsigned)];     for(size_t i = 0; i &lt; 4096 * 4096; i++){         arithmetic_mean(arr1, arr2, out, sizeof arr1 \/ sizeof(unsigned));     } }<\/code><\/pre>\n<p>  \u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u0441 gcc-\u0444\u043b\u0430\u0433\u0430\u043c\u0438 <br \/>  <code>-Werror<br \/>  -Wextra<br \/>  -Wall<br \/>  -pedantic<br \/>  -Wno-stack-protector<br \/>  -g3<br \/>  -O3<br \/>  -Wno-unused-result<br \/>  -Wno-unused-parameter<\/code><\/p>\n<p>  \u0412\u043f\u043e\u043b\u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>arithmetic_mean<\/code> \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u0434\u0435 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 <code>main<\/code>:<\/p>\n<p>  <code>(gdb) disas main<br \/>  Dump of assembler code for function main:<br \/>   #...<br \/>   0x00000000000005dc &lt;+60&gt;: nop DWORD PTR [rax+0x0]<br \/>   0x00000000000005e0 &lt;+64&gt;: mov edx,DWORD PTR [rdi+rax*4]<br \/>   0x00000000000005e3 &lt;+67&gt;: add edx,DWORD PTR [r8+rax*4]<br \/>   0x00000000000005e7 &lt;+71&gt;: shr edx,1<br \/>   0x00000000000005e9 &lt;+73&gt;: add ecx,edx<br \/>   0x00000000000005eb &lt;+75&gt;: mov DWORD PTR [rsi+rax*4],ecx<br \/>   0x00000000000005ee &lt;+78&gt;: add rax,0x1<br \/>   0x00000000000005f2 &lt;+82&gt;: cmp rax,0x80<br \/>   0x00000000000005f8 &lt;+88&gt;: jne 0x5e0 &lt;main+64&gt;<br \/>   0x00000000000005fa &lt;+90&gt;: sub r9,0x1<br \/>   0x00000000000005fe &lt;+94&gt;: jne 0x5d8 &lt;main+56&gt;<br \/>   #...<br \/>  <\/code><\/p>\n<p>  \u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u043b \u043a\u043e\u0434 \u0446\u0438\u043a\u043b\u0430 \u043d\u0430 32 \u0431\u0430\u0439\u0442\u0430 (<code>nop DWORD PTR [rax+0x0]<\/code>), \u0430 \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e. \u0423\u0431\u0435\u0434\u0438\u0432\u0448\u0438\u0441\u044c \u0432 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 <code>resource_stalls.any<\/code> \u043d\u0430 Back End (\u0432\u0441\u0435 \u0437\u0430\u043c\u0435\u0440\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0435\u0442\u043e\u0433\u043e L1d \u043a\u044d\u0448\u0430) \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044e \u043a\u0430\u0443\u043d\u0442\u0435\u0440\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u043e\u0439 \u0432 IDQ:<\/p>\n<p>  <code> Performance counter stats for '.\/test_decoded_icache':<\/p>\n<p>  2\u202f273\u202f343\u202f251 idq.all_dsb_cycles_4_uops (15,94%)<br \/>   4\u202f458\u202f322\u202f025 idq.all_dsb_cycles_any_uops (16,26%)<br \/>   15\u202f473\u202f065\u202f238 idq.dsb_uops (16,59%)<br \/>   4\u202f358\u202f690\u202f532 idq.dsb_cycles (16,91%)<br \/>   2\u202f528\u202f373\u202f243 idq_uops_not_delivered.core (16,93%)<br \/>   73\u202f728\u202f040 idq_uops_not_delivered.cycles_0_uops_deliv.core (16,93%)<br \/>   107\u202f262\u202f304 idq_uops_not_delivered.cycles_le_1_uop_deliv.core (16,93%)<br \/>   108\u202f454\u202f043 idq_uops_not_delivered.cycles_le_2_uop_deliv.core (16,65%)<br \/>   2\u202f248\u202f557\u202f762 idq_uops_not_delivered.cycles_le_3_uop_deliv.core (16,32%)<br \/>   2\u202f385\u202f493\u202f805 idq_uops_not_delivered.cycles_fe_was_ok (16,00%)<br \/>   15\u202f147\u202f004\u202f678 uops_retired.retire_slots<br \/>   4\u202f724\u202f790\u202f623 uops_retired.total_cycles<\/p>\n<p>   1,228684264 seconds time elapsed<br \/>  <\/code><\/p>\n<p>  \u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e retirement badwidth \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 = 15147004678 \/ 4724790623 = 3.20585733562, \u0430 \u0442\u0430\u043a\u0436\u0435, \u0447\u0442\u043e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0442\u0430\u043a\u0442\u043e\u0432 Renamer \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e 3 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0443\u0447\u043d\u0443\u044e \u0440\u0430\u0441\u043a\u0440\u0443\u0442\u043a\u0443 \u0446\u0438\u043a\u043b\u0430 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e:<\/p>\n<pre><code class=\"cpp\">static void arithmetic_mean(unsigned *arr1, unsigned *arr2, unsigned *out, size_t sz){     unsigned sum = 0;     size_t idx = 0;     if(sz &amp; 2){         sum += (arr1[idx] + arr2[idx]) &gt;&gt; 1;         out[idx] = sum;         idx++;     }     while(idx &lt; sz){         sum += (arr1[idx] + arr2[idx]) &gt;&gt; 1;         out[idx] = sum;         idx++;         sum += (arr1[idx] + arr2[idx]) &gt;&gt; 1;         out[idx] = sum;         idx++;  \/\/\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442 \u044d\u0442\u043e\u0442 idx++ \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c \u0432 \u043e\u0434\u0438\u043d idx+=2     }     __asm__ __volatile__(&quot;&quot; ::: &quot;memory&quot;); }<\/code><\/pre>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u043f\u0435\u0440\u0444 \u043a\u0430\u0443\u043d\u0442\u0435\u0440\u044b \u0438\u043c\u0435\u044e\u0442 \u0432\u0438\u0434:<\/p>\n<p>  <code>Performance counter stats for '.\/test_decoded_icache':<\/p>\n<p>  2\u202f152\u202f818\u202f549 idq.all_dsb_cycles_4_uops (14,79%)<br \/>   3\u202f207\u202f203\u202f856 idq.all_dsb_cycles_any_uops (15,25%)<br \/>   12\u202f855\u202f932\u202f240 idq.dsb_uops (15,70%)<br \/>   3\u202f184\u202f814\u202f613 idq.dsb_cycles (16,15%)<br \/>   24\u202f946\u202f367 idq_uops_not_delivered.core (16,24%)<br \/>   3\u202f011\u202f119 idq_uops_not_delivered.cycles_0_uops_deliv.core (16,24%)<br \/>   5\u202f239\u202f222 idq_uops_not_delivered.cycles_le_1_uop_deliv.core (16,24%)<br \/>   7\u202f373\u202f563 idq_uops_not_delivered.cycles_le_2_uop_deliv.core (16,24%)<br \/>   7\u202f837\u202f764 idq_uops_not_delivered.cycles_le_3_uop_deliv.core (16,24%)<br \/>   3\u202f418\u202f529\u202f799 idq_uops_not_delivered.cycles_fe_was_ok (16,24%)<br \/>   3\u202f444\u202f833\u202f440 uops_retired.total_cycles (18,18%)<br \/>   13\u202f037\u202f919\u202f196 uops_retired.retire_slots (18,17%)<\/p>\n<p>  0,871040207 seconds time elapsed<\/code><\/p>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u043c\u0435\u0435\u043c retirement bandwidth = 13037919196 \/ 3444833440 = 3.78477491672, \u0430 \u0442\u0430\u043a\u0436\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 Renamer.<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043e\u0434\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u0446\u0438\u043a\u043b\u0435, \u043d\u043e \u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0438 retirement bandwidth \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043a\u044d\u0448\u0430 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u0447\u0442\u043e \u0434\u0430\u043b\u043e \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0435 28% \u043f\u0440\u0438\u0440\u043e\u0441\u0442\u0430 \u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  \u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0438\u0448\u044c \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430 \u0434\u0430\u0435\u0442 \u043f\u0440\u0438\u0440\u043e\u0441\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u043d\u0430 9%.<\/p>\n<h4>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/h4>\n<p>  \u041d\u0430 \u0426\u041f\u0423, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432, \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d LSD. \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e LSD \u043c\u043e\u0433 \u0431\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u0414\u043b\u044f \u0426\u041f\u0423 \u0441\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c LSD \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/497290\/\"> https:\/\/habr.com\/ru\/post\/497290\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/497290\/\">\u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 x86 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u0445 Intel, \u043a\u043e\u043d\u0432\u0435\u0435\u0440 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 2 \u0447\u0430\u0441\u0442\u0438: Front End \u0438 Back End. <\/p>\n<p>  Front End \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043a\u043e\u0434\u0430 \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0435\u0433\u043e \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>  Back End \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0445 \u043e\u0442 Front End. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u0438 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u044f\u0434\u0440\u043e\u043c \u043d\u0435 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443, \u0442\u043e Back End \u0442\u0430\u043a\u0436\u0435 \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b <i>\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/i> \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441\u0442\u0440\u043e\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d\u0438 \u0438\u0434\u0443\u0442 \u0432 \u043a\u043e\u0434\u0435.<\/p>\n<p>  \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043d\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Front End&#8217;a \u043d\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0433\u043e \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041f\u0438\u043a\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 Intel \u2014 4 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430 \u0442\u0430\u043a\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f Memory\/L3-bound \u043a\u043e\u0434\u0430 \u0426\u041f\u0423 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0435\u0435 \u0443\u0442\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c. <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u043e\u0432\u044b\u0439 Ice Lake<\/b><\/p>\n<div class=\"spoiler_text\">\u0415\u0441\u043b\u0438 \u0432\u0435\u0440\u0438\u0442\u044c \u043e\u0444\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0442\u043e \u043f\u0438\u043a\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0443 Ice Lake \u0431\u044b\u043b\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0430 \u0441 4 \u0434\u043e 5 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0437\u0430 \u0442\u0430\u043a\u0442. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0441 \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0446\u043f\u0443 \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438.   <\/div>\n<\/div>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u2014 \u0430\u043d\u0430\u043b\u0438\u0437 \u0432\u043b\u0438\u044f\u043d\u0438\u044f \u043a\u044d\u0448\u0430 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-301880","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/301880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=301880"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/301880\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=301880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=301880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=301880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}