<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic rep; Nop  /  -asm pause in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/rep-Nop-asm-pause/m-p/995897#M28169</link>
    <description>&lt;DIV&gt;On Xeon or Hyper-Threading tech, what isthe cycle time for rep; nop or _asm pause? The documentation hints that it can be anywhere from a nop to some definite value. So what is it?&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Thanks in advance&lt;/DIV&gt;</description>
    <pubDate>Wed, 09 Feb 2005 01:01:26 GMT</pubDate>
    <dc:creator>mark-whitener</dc:creator>
    <dc:date>2005-02-09T01:01:26Z</dc:date>
    <item>
      <title>rep; Nop  /  -asm pause</title>
      <link>https://community.intel.com/t5/Software-Archive/rep-Nop-asm-pause/m-p/995897#M28169</link>
      <description>&lt;DIV&gt;On Xeon or Hyper-Threading tech, what isthe cycle time for rep; nop or _asm pause? The documentation hints that it can be anywhere from a nop to some definite value. So what is it?&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Thanks in advance&lt;/DIV&gt;</description>
      <pubDate>Wed, 09 Feb 2005 01:01:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/rep-Nop-asm-pause/m-p/995897#M28169</guid>
      <dc:creator>mark-whitener</dc:creator>
      <dc:date>2005-02-09T01:01:26Z</dc:date>
    </item>
    <item>
      <title>Re: rep; Nop  /  -asm pause</title>
      <link>https://community.intel.com/t5/Software-Archive/rep-Nop-asm-pause/m-p/995898#M28170</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;We are forwarding your question to our engineering contacts and will let you know how they respond.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Lexi S.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;NAMESPACE prefix="o" ns="urn:schemas-microsoft-com:office:office"&gt;&lt;P&gt;&lt;/P&gt;&lt;/NAMESPACE&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;IntelSoftware NetworkSupport&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.intel.com/software" target="_blank"&gt;http://www.intel.com/software&lt;/A&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.intel.com/cd/ids/developer/asmo-na/eng/58987.htm" target="_blank"&gt;Contact us&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;P&gt;Message Edited by intel.software.network.support on &lt;SPAN class="date_text"&gt;12-02-2005&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;01:14 PM&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 09 Feb 2005 01:05:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/rep-Nop-asm-pause/m-p/995898#M28170</guid>
      <dc:creator>Intel_Software_Netw1</dc:creator>
      <dc:date>2005-02-09T01:05:48Z</dc:date>
    </item>
    <item>
      <title>Re: rep; Nop  /  -asm pause</title>
      <link>https://community.intel.com/t5/Software-Archive/rep-Nop-asm-pause/m-p/995899#M28171</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;Here is the response we received from our Application Engineers:&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;FONT color="#336600"&gt;NOP instruction can be between 0.4-0.5 clocks and PAUSE instruction can consume 38-40 clocks. Please refer to the&lt;/FONT&gt;&lt;FONT color="#336600"&gt; &lt;A href="http://www.intel.com/cd/ids/developer/asmo-na/eng/microprocessors/ia32/pentium4/optimization/20243.htm" target="_blank"&gt;whitepaper&lt;/A&gt; on how to measure the latency and throughput of various instructions. The REPE instruction comes in various flavors and the latency/throughput of each of them varies. Please also see below for the sample code to measure the average clocks.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;#include &lt;STDIO.H&gt;&lt;/STDIO.H&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;#define ReadTSC( x ) __asm cpuid &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; __asm rdtsc &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; __asm mov dword ptr x,eax &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; __asm mov dword ptr x+4,edx&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;#define LOOP_COUNT 160000.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;#define REPEAT_25( x ) x x x x x x x x x x x x x x x x x x x x x x x x x&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;#define REPEAT_100(x) REPEAT_25(x) REPEAT_25(x) REPEAT_25(x) REPEAT_25(x)&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;#define REPEAT_1000(x) REPEAT_100(x) REPEAT_100(x) REPEAT_100(x) REPEAT_100(x) REPEAT_100(x) REPEAT_100(x) REPEAT_100(x) REPEAT_100(x) REPEAT_100(x) REPEAT_100(x)&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;#define FACTOR ((double)LOOP_COUNT*1000.0)&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;#define CLOCKSPERINSTRUCTION(start,end) ((double)end-(double)start)/(FACTOR)&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;void main(int argc,char **argv)&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;{&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; __int64 start, end,total; &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; total = 0;;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; ReadTSC(start);&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; for (int i=0; i&lt;LOOP_COUNT&gt;&lt;/LOOP_COUNT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; {&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; REPEAT_1000(__asm { nop};)&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; }&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; ReadTSC(end);&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; total = end-start;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; printf("nop: clocks per instruction %4.2f
",(double)total/(double)FACTOR);&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; ReadTSC(start);&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; total = 0;;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; for (int i=0; i&lt;LOOP_COUNT&gt;&lt;/LOOP_COUNT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; {&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; REPEAT_1000(__asm { pause};)&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; }&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; ReadTSC(end);&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; total = end-start;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt; printf("pause: clocks per instruction %4.2f
",(double)total/(double)FACTOR);&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;}&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;&lt;FONT color="#330000"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;&lt;FONT color="#330000"&gt;==&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;&lt;FONT color="#330000"&gt;Regards,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;&lt;FONT color="#330000"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#336600" size="2"&gt;&lt;FONT color="#330000"&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Lexi S.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;NAMESPACE prefix="o" ns="urn:schemas-microsoft-com:office:office"&gt;&lt;P&gt;&lt;/P&gt;&lt;/NAMESPACE&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;IntelSoftware NetworkSupport&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.intel.com/software" target="_blank"&gt;http://www.intel.com/software&lt;/A&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.intel.com/cd/ids/developer/asmo-na/eng/58987.htm" target="_blank"&gt;Contact us&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#336600" size="2"&gt;&lt;FONT color="#330000"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;P&gt;Message Edited by intel.software.network.support on &lt;SPAN class="date_text"&gt;12-02-2005&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;01:14 PM&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 15 Feb 2005 00:43:49 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/rep-Nop-asm-pause/m-p/995899#M28171</guid>
      <dc:creator>Intel_Software_Netw1</dc:creator>
      <dc:date>2005-02-15T00:43:49Z</dc:date>
    </item>
    <item>
      <title>Re: rep; Nop  /  -asm pause</title>
      <link>https://community.intel.com/t5/Software-Archive/rep-Nop-asm-pause/m-p/995900#M28172</link>
      <description>&lt;DIV&gt;Thank you. The documentation states the results vary as does the answer. I'll try this on our various 8x, 16x and32x machines and see what the variance is.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Thanks again. &lt;/DIV&gt;</description>
      <pubDate>Fri, 18 Feb 2005 02:52:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/rep-Nop-asm-pause/m-p/995900#M28172</guid>
      <dc:creator>mark-whitener</dc:creator>
      <dc:date>2005-02-18T02:52:40Z</dc:date>
    </item>
  </channel>
</rss>

