<?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 Hi Roman, Thanks and I'll in Intel® ISA Extensions</title>
    <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940488#M3854</link>
    <description>Hi Roman, Thanks and I'll take a look at your results.</description>
    <pubDate>Wed, 14 Nov 2012 00:43:54 GMT</pubDate>
    <dc:creator>SergeyKostrov</dc:creator>
    <dc:date>2012-11-14T00:43:54Z</dc:date>
    <item>
      <title>Synchronizing Time Stamp Counter</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940426#M3792</link>
      <description>Hello everyone!


I have to synchronize time between processors in a multicore system i.e. I have to calculate TSC differences of all processors relative to one of them.
I tried rdtsc() but it returned TSC of the current processor. Is there any way to get TSC from the necessary processor? Or may be I can define processor id somewhere and use an appropriate time stamp counter value.

Thanks in advance,
Roman</description>
      <pubDate>Mon, 29 Oct 2012 18:30:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940426#M3792</guid>
      <dc:creator>Roman_Oderov</dc:creator>
      <dc:date>2012-10-29T18:30:28Z</dc:date>
    </item>
    <item>
      <title>Hi Roman,</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940427#M3793</link>
      <description>Hi Roman,

there is no IA instruction that directly returns TSC from the core that you can specify as a parameter. Operating systems usually implement various tricks executing rdtsc on all cores and using low-latency thread synchronization/spinning on signal variables to estimate differences between processor TSCs.

Best regards,
Roman</description>
      <pubDate>Mon, 29 Oct 2012 20:16:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940427#M3793</guid>
      <dc:creator>Roman_D_Intel</dc:creator>
      <dc:date>2012-10-29T20:16:37Z</dc:date>
    </item>
    <item>
      <title>Hi everybody,</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940428#M3794</link>
      <description>Hi everybody,

&amp;gt;&amp;gt;[ Roman Oderov ]I have to synchronize time between processors in a multicore system i.e. I have to calculate TSC differences of all
&amp;gt;&amp;gt;processors relative to one of them...
&amp;gt;&amp;gt;...
&amp;gt;&amp;gt;[ Roman Dementiev ] there is no IA instruction that directly returns TSC from the core that you can specify as a parameter...

However, if you use a Windows OS there are a couple of Win32 API functions that could help you:

- GetCurrentThread
- SetThreadPriority
- SetThreadAffinityMask
- Sleep

Here is what I would try:

- [Step00] Let's say you have 2 CPUs ( CPU1 and CPU2 )
- [Step01] Declare a static / global 'Array' of two 64-bit values
- [Step02] Initialize array values with 0
- [Step03] Create a new thread
- [Step04] Set the thread priority to 'Normal'
- [Step05] Set the thread affinity to CPU1 with SetThreadAffinityMask
- [Step06] Call Sleep( 0 )
- [Step07] Set the thread priority to 'Time Critical'
- [Step08] Use inline assembler and call RDTSC and store the value in 'Array[0]'
- [Step09] Set the thread affinity to CPU2 with SetThreadAffinityMask
- [Step10] Call Sleep( 0 )
- [Step11] Use inline assembler and call RDTSC and store the value in 'Array[1]'
- [Step12] Calculate a difference between 'Array[0]' and 'Array[1]'

Here are some additional notes:

- an overhead for steps [Step08], [Step09], [Step10] and [Step11] has to be evaluated
- it is very important to call Sleep( 0 ) after a call to SetThreadAffinityMask
- do as many as possible tests and some average differences have to used but they should not exceed some accuracy threshold ( in nano-seconds ) defined in your specs

Best regards,
Sergey</description>
      <pubDate>Thu, 01 Nov 2012 01:48:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940428#M3794</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-11-01T01:48:11Z</dc:date>
    </item>
    <item>
      <title>Quote:Sergey Kostrov wrote:</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940429#M3795</link>
      <description>&lt;BLOCKQUOTE&gt;Sergey Kostrov wrote:&lt;BR /&gt;[embed]&lt;P&gt;Hi everybody,&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;[ Roman Oderov ]I have to synchronize time between processors in a multicore system i.e. I have to calculate TSC differences of all&lt;BR /&gt;
&amp;gt;&amp;gt;processors relative to one of them...&lt;BR /&gt;
&amp;gt;&amp;gt;...&lt;BR /&gt;
&amp;gt;&amp;gt;[ Roman Dementiev ] there is no IA instruction that directly returns TSC from the core that you can specify as a parameter...&lt;/P&gt;
&lt;P&gt;However, if you use a Windows OS there are a couple of Win32 API functions that could help you:&lt;/P&gt;
&lt;P&gt;- GetCurrentThread&lt;BR /&gt;
- SetThreadPriority&lt;BR /&gt;
- SetThreadAffinityMask&lt;BR /&gt;
- Sleep&lt;/P&gt;
&lt;P&gt;Here is what I would try:&lt;/P&gt;
&lt;P&gt;- [Step00] Let's say you have 2 CPUs ( CPU1 and CPU2 )&lt;BR /&gt;
- [Step01] Declare a static / global 'Array' of two 64-bit values&lt;BR /&gt;
- [Step02] Initialize array values with 0&lt;BR /&gt;
- [Step03] Create a new thread&lt;BR /&gt;
- [Step04] Set the thread priority to 'Normal'&lt;BR /&gt;
- [Step05] Set the thread affinity to CPU1 with SetThreadAffinityMask&lt;BR /&gt;
- [Step06] Call Sleep( 0 )&lt;BR /&gt;
- [Step07] Set the thread priority to 'Time Critical'&lt;BR /&gt;
- [Step08] Use inline assembler and call RDTSC and store the value in 'Array[0]'&lt;BR /&gt;
- [Step09] Set the thread affinity to CPU2 with SetThreadAffinityMask&lt;BR /&gt;
- [Step10] Call Sleep( 0 )&lt;BR /&gt;
- [Step11] Use inline assembler and call RDTSC and store the value in 'Array[1]'&lt;BR /&gt;
- [Step12] Calculate a difference between 'Array[0]' and 'Array[1]'&lt;/P&gt;
&lt;P&gt;Here are some additional notes:&lt;/P&gt;
&lt;P&gt;- an overhead for steps [Step08], [Step09], [Step10] and [Step11] has to be evaluated&lt;BR /&gt;
- it is very important to call Sleep( 0 ) after a call to SetThreadAffinityMask&lt;BR /&gt;
- do as many as possible tests and some average differences have to used but they should not exceed some accuracy threshold ( in nano-seconds ) defined in your specs&lt;/P&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;
Sergey&lt;/P&gt;
[/embed]&lt;/BLOCKQUOTE&gt;

Sergey, thank you for your answer. I've chosen right this method in my project.</description>
      <pubDate>Thu, 01 Nov 2012 06:01:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940429#M3795</guid>
      <dc:creator>Roman_Oderov</dc:creator>
      <dc:date>2012-11-01T06:01:18Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;- an overhead for steps</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940430#M3796</link>
      <description>&amp;gt;&amp;gt;&amp;gt;- an overhead for steps [Step08], [Step09], [Step10] and [Step11] has to be evaluated&amp;gt;&amp;gt;&amp;gt;
In such a unpredictable environment like Windows OS you have to pay attention also to time-critical kernel componenets that are managing context
switching and scheduling these components will always postpone currently running thread.Moreover hardware interrupts and their ISR and DPC will
run at higher priority than user-mode code.Would not be a better option to run timing code in kernel mode at DPC level as a dummy driver.You can also queue a DPC at another CPU so you can have some kind of "concurrency".</description>
      <pubDate>Thu, 01 Nov 2012 07:18:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940430#M3796</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2012-11-01T07:18:46Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...Moreover hardware</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940431#M3797</link>
      <description>&amp;gt;&amp;gt;...Moreover hardware interrupts and their ISR and DPC...

What is DPC?</description>
      <pubDate>Thu, 01 Nov 2012 12:43:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940431#M3797</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-11-01T12:43:29Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;However, if you use a</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940432#M3798</link>
      <description>&amp;gt;&amp;gt;However, if you use a Windows OS there are a couple of Win32 API functions that could help you:
&amp;gt;&amp;gt;
&amp;gt;&amp;gt;- GetCurrentThread
&amp;gt;&amp;gt;- SetThreadPriority
&amp;gt;&amp;gt;- SetThreadAffinityMask
&amp;gt;&amp;gt;- Sleep

In case of Non-Windows OS a similar set these functions has to be used.</description>
      <pubDate>Thu, 01 Nov 2012 12:46:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940432#M3798</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-11-01T12:46:30Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;What is DPC?&gt;&gt;&gt;</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940433#M3799</link>
      <description>&amp;gt;&amp;gt;&amp;gt;What is DPC?&amp;gt;&amp;gt;&amp;gt;
In Windows kernel architecture DPC stands for "Deferred procedure calls".These are global system-wide procedure(kernel objects) scheduled to perform some
action on behalf of driver'sISR routine at DPC interrupt level.</description>
      <pubDate>Thu, 01 Nov 2012 19:55:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940433#M3799</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2012-11-01T19:55:15Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;In Windows kernel</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940434#M3800</link>
      <description>&amp;gt;&amp;gt;In Windows kernel architecture DPC stands for "Deferred procedure calls".These are global system-wide procedure(kernel objects)
&amp;gt;&amp;gt;scheduled to perform some action on behalf of driver'sISR routine at DPC interrupt level.

Thanks, Iliya.</description>
      <pubDate>Fri, 02 Nov 2012 03:26:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940434#M3800</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-11-02T03:26:37Z</dc:date>
    </item>
    <item>
      <title>Hi everybody,</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940435#M3801</link>
      <description>Hi everybody,

&amp;gt;&amp;gt;I have to synchronize time between processors in a multicore system i.e. I have to calculate TSC differences of all processors
&amp;gt;&amp;gt;relative to one of them...

I'll provide C/C++ sources for a test case. Here is a screenshot that demonstrates output:

&lt;span class="lia-inline-image-display-wrapper" image-alt="cpusswitchdemo.jpg"&gt;&lt;img src="https://community.intel.com/t5/image/serverpage/image-id/10068i642A9DABF187FF59/image-size/large?v=v2&amp;amp;px=999&amp;amp;whitelist-exif-data=Orientation%2CResolution%2COriginalDefaultFinalSize%2CCopyright" role="button" title="cpusswitchdemo.jpg" alt="cpusswitchdemo.jpg" /&gt;&lt;/span&gt;</description>
      <pubDate>Fri, 02 Nov 2012 03:46:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940435#M3801</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-11-02T03:46:26Z</dc:date>
    </item>
    <item>
      <title>Hi Sergey!</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940436#M3802</link>
      <description>Hi Sergey!
By looking at your console test picture I can see that RDTSC overhead is only 24.000 cpi and is very close to the result measured by Agner Fog.
How many timing tests did you perform?
I can spot small spike before the start of your testing loop could that be a CreateThread function overhead which includes also context switching penalty.
If you are interested in more precise profilling and instruction break down timing analysis you can use XPERF tool and Kernrate tool will track the instruction pointer in kernel space and report the results.</description>
      <pubDate>Fri, 02 Nov 2012 07:50:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940436#M3802</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2012-11-02T07:50:10Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;I'll provide C/C++ sources</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940437#M3803</link>
      <description>&amp;gt;&amp;gt;I'll provide C/C++ sources for a test case...

Attached.</description>
      <pubDate>Fri, 02 Nov 2012 14:10:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940437#M3803</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-11-02T14:10:50Z</dc:date>
    </item>
    <item>
      <title>This is an example of output</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940438#M3804</link>
      <description>This is an example of output when some error happened:
...
Test-Case 2 - Switching CPUs at runtime
Switched to CPU2
Switched to CPU1
Test-Case 3 - Retrieving RDTSC values for CPUs
RDTSC for CPU1  : 10124080002908
RDTSC for CPU2  : 10124080010328
RDTSC Difference: 7420 ( RDTSC2 - RDTSC1 )
dwThreadAMPrev1 : 1 ( Processing Error if 0 )
dwThreadAMPrev2 : 0 ( Processing Error if 0 )      // &amp;lt;= It was a simple verification that error processing works
...</description>
      <pubDate>Fri, 02 Nov 2012 14:15:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940438#M3804</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-11-02T14:15:04Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;By looking at your console</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940439#M3805</link>
      <description>&amp;gt;&amp;gt;By looking at your console test picture I can see that RDTSC overhead is only 24.000 cpi and is very close to
&amp;gt;&amp;gt;the result measured by Agner Fog.

It is good to know that my number looks right.

&amp;gt;&amp;gt;How many timing tests did you perform?

1000000 ( one million )

But, I also tested for 10000000 and 100000000:
...
	iNumOfIterations = 1000000;
//	iNumOfIterations = 10000000;
//	iNumOfIterations = 100000000;
...
and results for RDTSC overhead were very consistent.

&amp;gt;&amp;gt;I can spot small spike before the start of your testing loop could that be a CreateThread function overhead which includes
&amp;gt;&amp;gt;also context switching penalty.

I think this is related to some network transfers.</description>
      <pubDate>Fri, 02 Nov 2012 14:16:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940439#M3805</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-11-02T14:16:46Z</dc:date>
    </item>
    <item>
      <title>** A question to Roman</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940440#M3806</link>
      <description>** A question to Roman Dementiev (Intel) **

Is there an Intel document that describes TSC related solutions / issues in a multi-core system?

Best regards,
Sergey</description>
      <pubDate>Fri, 02 Nov 2012 14:21:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940440#M3806</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-11-02T14:21:13Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;It is good to know that my</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940441#M3807</link>
      <description>&amp;gt;&amp;gt;&amp;gt;It is good to know that my number looks right.&amp;gt;&amp;gt;&amp;gt;
Good job:)

&amp;gt;&amp;gt;&amp;gt;RDTSC Difference: 7420 ( RDTSC2 - RDTSC1 )&amp;gt;&amp;gt;&amp;gt;
These results could be polluted by arbitrary context thread(even your thread) running driver's ISR and DPC routines and also some kernel mode time critical components
could postpone your processing loop.
In order to minimize this dependency run your tests(not RDTSC for-loop) 1e4 or 1e5 times and average the results.</description>
      <pubDate>Fri, 02 Nov 2012 16:27:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940441#M3807</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2012-11-02T16:27:18Z</dc:date>
    </item>
    <item>
      <title>Hi Iliya,</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940442#M3808</link>
      <description>Hi Iliya,

&amp;gt;&amp;gt;&amp;gt;&amp;gt;RDTSC Difference: 7420 ( RDTSC2 - RDTSC1 )
&amp;gt;&amp;gt;&amp;gt;&amp;gt;...
&amp;gt;&amp;gt;&amp;gt;&amp;gt;dwThreadAMPrev2 : 0 ( Processing Error if 0 ) // &amp;lt;= It was a simple verification that error processing works

&amp;gt;&amp;gt;&amp;gt;&amp;gt;RDTSC Difference: 7420 ( RDTSC2 - RDTSC1 )
&amp;gt;&amp;gt;
&amp;gt;&amp;gt;These results could be polluted by arbitrary context thread(even your thread)...

'7420' is a wrong number anyway because in that case I tried to switch processing to a CPU that doesn't exists ( CPU #8 ). I simply wanted to see that error processing works.</description>
      <pubDate>Sat, 03 Nov 2012 01:35:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940442#M3808</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-11-03T01:35:41Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;'7420' is a wrong number</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940443#M3809</link>
      <description>&amp;gt;&amp;gt;&amp;gt;'7420' is a wrong number anyway because in that case I tried to switch processing to a CPU that doesn't exists ( CPU #8 ). I simply wanted to see that error processing works.&amp;gt;&amp;gt;&amp;gt;

Misunderstood your post:)</description>
      <pubDate>Sat, 03 Nov 2012 05:23:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940443#M3809</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2012-11-03T05:23:48Z</dc:date>
    </item>
    <item>
      <title>I have not found anything in</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940444#M3810</link>
      <description>I have not found anything in these Intel manuals that says a RDTSC value could be different for CPUs of some multi-core system.

** Intel(R) 64 and IA-32 Architectures Software Developer's Manual **
&amp;gt;&amp;gt; Volume 3A: System Programming Guide, Part 1 &amp;lt;&amp;lt;

...Chapter 7. MULTIPLE-PROCESSOR MANAGEMENT

** Intel(R) 64 and IA-32 Architectures Software Developer's Manual **
&amp;gt;&amp;gt; Volume 3B: System Programming Guide, Part 2 &amp;lt;&amp;lt;

...Chapter 18. DEBUGGING AND PERFORMANCE MONITORING
...
...18.17 COUNTING CLOCKS
...
Time-stamp counter - Measures clock cycles in which the physical processor is not in deep sleep. These ticks cannot be measured on a logical-processor basis.
...
...18.17.3 Incrementing the Time-Stamp Counter</description>
      <pubDate>Sat, 03 Nov 2012 21:48:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940444#M3810</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-11-03T21:48:47Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;Time-stamp counter -</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940445#M3811</link>
      <description>&amp;gt;&amp;gt;&amp;gt;Time-stamp counter - Measures clock cycles in which the physical processor is not in deep sleep. These ticks cannot be measured on a logical-processor basis.&amp;gt;&amp;gt;&amp;gt;

So HT logical cores cannot be sampled with RDTSC instruction.I think that here is difference between logical HT cores with gp register and apic state and fully fledged cores with it own FPU and SIMD Vector  units</description>
      <pubDate>Sun, 04 Nov 2012 07:59:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/Synchronizing-Time-Stamp-Counter/m-p/940445#M3811</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2012-11-04T07:59:09Z</dc:date>
    </item>
  </channel>
</rss>

