Early this month Intel held an event about the Sandy Bridge architecture and other near future developments. Attendees signed an NDA before entering the event and the material presented was really interesting to hear. The room was packed to no room with what looked to me like over 500 people sitting and listening.
The event started with a few very detailed presentations about CPU internal behavior including detailed block diagrams and animations of data flowing between CPU Cores. Some of the information can be found here: https://software.intel.com/en-us/articles/sandy-bridge and some of it I am afraid I cannot publicly reveal. We learned about future plans, how cores interact with each other under the Sandy Bridge architecture, and about the special place that RAM has which will allow faster data access with fewer bottle-necks between RAM and CPU Cores. The diagrams also covered how AVX and graphics are improved with this new architecture and how AVX advances SSE to the next level. See AVX and Media SDK under the Sandy-Bridge link above.
There were also details about CPU performance and how CPU manages Cores' clock speed. The new management is expected to reduce power consumption on one hand and increase overall performance and responsiveness on the other. I am not clear on whether this is public or not. I should however warn you that someone who attended the event is still trying to solve the problem with Windows' accurate performance counters (QueryPerformanceCounters API) which seems to be unpredictable now that every core has its own internal speed and the performance frequency (QueryPerformanceFrequency API) is no longer valid. This means that if your embedded / mobile / medical real-time application / driver is measuring time with accuracy that is better than 1 millisecond under Windows XP and Hyper-V Windows XP then you should verify that you have a solution for this. Maurice Zamir and I are still waiting for an answer after he sent it to selected people at Intel and I forwarded it to someone from Microsoft's kernel R&D team. Currently a boot.ini switch should solve this but I am not clear on the implications. See the following Microsoft KB article about /usepmtimer: http://support.microsoft.com/kb/895980.
The second half of the day the group split into two parts: software and hardware. It was interesting for me to find that I know everyone presenting on the software track. Intel's session about Intel's tools was presented by Guy with whom I presented Parallel Programming at Microsoft's TechEd in Israel 2008. Another technical session was presented by someone from Intel's software development teams, and I remember meeting him two months ago when I was sent to Intel by Microsoft as a consultant, to help with the design of a kernel driver dealing with graphics (wasn't even mentioned at the under NDA-Event). There were also sessions about real-time systems including a session about Windows Embedded Presented by Microsoft Partner Account Manager.
My session was the last on the software track and as promised I will blog about the details of my presentation with selected slides included. Some of the demos where live coding demonstration of a previous post: /content/www/us/en/develop/blogs/visual-studio-2010-built-in-cpu-acceleration.html.
Since I was presenting, I had the pleasure of a 'bring my wife to work' day and since we were both out of the house we also brought the youngest atendee to the event, my six months old son which btw. is the only attendee who did not sign an NDA so he is allowed to talk about all the secret content that was there.
The following posts will detail the presentation's content.
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804