Play Video
1
Technology News Week 11 - 17 August 2014 Your News Ticker
Technology News Week 11 - 17 August 2014 Your News Ticker
::2014/08/17::
Play Video
2
Transactional Memory: From Semantics to Silicon
Transactional Memory: From Semantics to Silicon
::2012/08/22::
Play Video
3
Forum Question: Matching 3rd Party Listings in M2EPro & Synchronization settings
Forum Question: Matching 3rd Party Listings in M2EPro & Synchronization settings
::2014/05/15::
Play Video
4
Synchronizing subscribers list with MailChimp (Private Sales Script)
Synchronizing subscribers list with MailChimp (Private Sales Script)
::2012/03/30::
Play Video
5
Transactional Emails Magento
Transactional Emails Magento
::2013/10/31::
Play Video
6
MagentoCRUX Subscriber Name Extension
MagentoCRUX Subscriber Name Extension
::2012/01/03::
Play Video
7
140314    GEO e Work Order Video
140314 GEO e Work Order Video
::2014/03/27::
Play Video
8
Data-driven Marketing with the Bronto API
Data-driven Marketing with the Bronto API
::2012/08/16::
Play Video
9
Check order status Magento
Check order status Magento
::2013/01/23::
Play Video
10
joomlamailer - Mailchimp integration for Joomla!™
joomlamailer - Mailchimp integration for Joomla!™
::2011/03/29::
Play Video
11
Mail Chimp Emailer
Mail Chimp Emailer
::2011/06/22::
Play Video
12
How to remove subscriptions or disable a replication in sql server 2000
How to remove subscriptions or disable a replication in sql server 2000
::2012/11/04::
Play Video
13
BizSyncXL - Mail Order Manager (MOM) to Magento Integration
BizSyncXL - Mail Order Manager (MOM) to Magento Integration
::2011/06/23::
Play Video
14
Merb, Rubinius and the Engine Yard Stack
Merb, Rubinius and the Engine Yard Stack
::2008/10/21::
Play Video
15
Alfresco Summit 2013: Enhanced Script API: Dynamic Import & Batch Processing
Alfresco Summit 2013: Enhanced Script API: Dynamic Import & Batch Processing
::2013/12/06::
Play Video
16
Coping with eBay Selling Allowances with M2E Pro (Magento)
Coping with eBay Selling Allowances with M2E Pro (Magento)
::2014/01/23::
Play Video
17
Forums Question: Adding in an Additional Magento Store View for use on the Website
Forums Question: Adding in an Additional Magento Store View for use on the Website
::2014/04/24::
Play Video
18
M2EPro: Setting Auction & Reserve Prices in Magento to Sell on eBay
M2EPro: Setting Auction & Reserve Prices in Magento to Sell on eBay
::2014/03/05::
Play Video
19
Haswell (microarchitecture)
Haswell (microarchitecture)
::2014/04/29::
Play Video
20
how to view orders and create invoices.mp4
how to view orders and create invoices.mp4
::2011/04/27::
Play Video
21
Sending newsletters in Magento
Sending newsletters in Magento
::2012/02/27::
Play Video
22
Brightpearl Magento Integration
Brightpearl Magento Integration
::2013/05/17::
Play Video
23
Adding Video to eBay Listings via Magento & M2E Pro
Adding Video to eBay Listings via Magento & M2E Pro
::2014/02/28::
Play Video
24
How to send and manage newsletters in Magento Commerce.
How to send and manage newsletters in Magento Commerce.
::2013/01/09::
Play Video
25
Managing orders in Magento
Managing orders in Magento
::2011/10/28::
Play Video
26
25 BEST JAVA WEBSITES
25 BEST JAVA WEBSITES
::2014/07/30::
Play Video
27
Ecommerce: Mailchimp and Magento integration & segmentation with CampChart
Ecommerce: Mailchimp and Magento integration & segmentation with CampChart
::2012/10/23::
Play Video
28
Configuring MailChimp module in Magento (Private Sales Script)
Configuring MailChimp module in Magento (Private Sales Script)
::2012/03/30::
Play Video
29
Haswell (microarchitecture)
Haswell (microarchitecture)
::2014/07/11::
Play Video
30
How to Send and Manage Newsletters in Magento
How to Send and Manage Newsletters in Magento
::2012/08/07::
Play Video
31
Unlimited Newsletter Magento integration
Unlimited Newsletter Magento integration
::2013/01/23::
Play Video
32
Google I/O 2013 - The Chrome Packaged Apps State of the Nation
Google I/O 2013 - The Chrome Packaged Apps State of the Nation
::2013/05/20::
Play Video
33
M2EPro - Automatically Save eBay/Amazon customers to Magento customer Database
M2EPro - Automatically Save eBay/Amazon customers to Magento customer Database
::2013/12/18::
Play Video
34
dotMailer for Magento SMS Setup
dotMailer for Magento SMS Setup
::2013/07/22::
Play Video
35
#Part 4 - Adding in New Magento Store Views - eBay Cross Border Trade with Magento & M2EPro
#Part 4 - Adding in New Magento Store Views - eBay Cross Border Trade with Magento & M2EPro
::2014/11/14::
Play Video
36
M2EPro & Magento Multiple ASINS for Listing onto Amazon
M2EPro & Magento Multiple ASINS for Listing onto Amazon
::2014/06/03::
Play Video
37
How To Add Mailchimp To Magento Store
How To Add Mailchimp To Magento Store
::2010/03/10::
Play Video
38
How to create Newsletter templates in Magento
How to create Newsletter templates in Magento
::2012/10/01::
Play Video
39
Setting up email campaign in MailChimp (Private Sales Script)
Setting up email campaign in MailChimp (Private Sales Script)
::2012/03/30::
NEXT >>
RESULTS [40 .. 90]
From Wikipedia, the free encyclopedia
Jump to: navigation, search

Transactional Synchronization Extensions (TSX) is an extension to the x86 instruction set architecture that adds hardware transactional memory support, speeding up execution of multi-threaded software through lock elision.

TSX was documented by Intel in February 2012, and debuted in June 2013 on selected Intel microprocessors based on the Haswell microarchitecture.[1][2][3] Haswell processors below 45xx as well as R-series and K-series (with unlocked multiplier) SKUs do not support TSX.[4] In August 2014 Intel announced a bug in the TSX implementation on current steppings of Haswell, Haswell-E, Haswell-EP and early Broadwell CPUs, which resulted in disabling the TSX feature on affected CPUs via a microcode update.[5][6]

There is also experimental support for TSX emulation in a QEMU fork,[7] and via emulation available within the Intel Software Development Emulator.[8]

Features[edit]

TSX provides two software interfaces for designating code regions for transactional execution. Hardware Lock Elision (HLE) is an instruction prefix-based interface designed to be backward compatible with processors without TSX support. Restricted Transactional Memory (RTM) is a new instruction set interface that provides greater flexibility for programmers.[9]

TSX enables optimistic execution of transactional code regions. The hardware monitors multiple threads for conflicting memory accesses, while aborting and rolling back transactions that cannot be successfully completed. Mechanisms are provided for software to detect and handle failed transactions.[9]

In other words, lock elision through transactional execution uses memory transactions as a fast path where possible, while the slow (fallback) path is still a normal lock.

Hardware Lock Elision[edit]

Hardware Lock Elision (HLE) adds two new instruction prefixes, XACQUIRE and XRELEASE. These two prefixes reuse the opcodes of the existing REPNE / REPE prefixes (F2H / F3H). On processors that do not support TSX, REPNE / REPE prefixes are ignored on instructions for which the XACQUIRE / XRELEASE are valid, thus enabling backward compatibility.[10]

The XACQUIRE prefix hint can only be used with the following instructions with an explicit LOCK prefix: ADD, ADC, AND, BTC, BTR, BTS, CMPXCHG, CMPXCHG8B, DEC, INC, NEG, NOT, OR, SBB, SUB, XOR, XADD, and XCHG. The XCHG instruction can be used without the LOCK prefix as well.

The XRELEASE prefix hint can be used both with the instructions listed above, and with the MOV mem, reg and MOV mem, imm instructions.

HLE allows optimistic execution of a critical section by eliding the write to a lock, so that the lock appears to be free to other threads. A failed transaction results in execution restarting from the XACQUIRE-prefixed instruction, but treating the instruction as if the XACQUIRE prefix were not present.

Restricted Transactional Memory[edit]

Restricted Transactional Memory (RTM) is an alternative implementation to HLE which gives the programmer the flexibility to specify a fallback code path that is executed when a transaction cannot be successfully executed.

RTM adds three new instructions: XBEGIN, XEND and XABORT. The XBEGIN and XEND instructions mark the start and the end of a transactional code region; the XABORT instruction explicitly aborts a transaction. Transaction failure redirects the processor to the fallback code path specified by the XBEGIN instruction, with the abort status returned in the EAX register.

EAX register
bit position
Meaning
0 Set if abort caused by XABORT instruction.
1 If set, the transaction may succeed on a retry. This bit is always clear if bit 0 is set.
2 Set if another logical processor conflicted with a memory address that was part of the transaction that aborted.
3 Set if an internal buffer overflowed.
4 Set if debug breakpoint was hit.
5 Set if an abort occurred during execution of a nested transaction.
23:6 Reserved.
31:24 XABORT argument (only valid if bit 0 set, otherwise reserved).

XTEST instruction[edit]

TSX provides a new XTEST instruction that returns whether the processor is executing a transactional region.

Implementation[edit]

Intel's TSX specification describes how the transactional memory is exposed to programmers, but withholds details on the actual transactional memory implementation.[11] Intel specifies in its developer's and optimization manuals that Haswell maintains both read-sets and write-sets at the granularity of a cache line, tracking addresses in the L1 data cache of the processor.[12][13][14][15] Intel also states that data conflicts are detected through the cache coherence protocol.[13]

Haswell's L1 data cache has an associativity of eight. This means that in this implementation, a transactional execution that writes to nine distinct locations mapping to the same cache set, will abort. However, due to micro-architectural implementations, this does not mean that fewer accesses to the same set are guaranteed to never abort. Additionally, in CPU configurations with Hyper-Threading Technology, the L1 cache is shared between the two threads on the same core, so operations in a sibling logical processor of the same core can cause evictions.[13]

Independent research points into Haswell’s transactional memory most likely being a deferred update system using the per-core caches for transactional data and register checkpoints.[11] In other words, Haswell is more likely to use the cache-based transactional memory system, as it is a much less risky implementation choice. On the other hand, Intel's future microarchitectures (Skylake or later) might be combinining this cache-based approach with using memory ordering buffer (MOB) for the same purpose, possibly also providing multi-versioned transactional memory that is more amenable to speculative multithreading.[16]

However, in August 2014 Intel announced that a bug exists in the TSX implementation on Haswell, Haswell-E, Haswell-EP and early Broadwell CPUs, which resulted in disabling the TSX feature on affected CPUs via a microcode update.[5][6][17]

Performance[edit]

According to benchmarks, TSX can provide around 40% faster applications execution in specific workloads, and 4–5 times more database transactions per second (TPS).[18][19][20][21]

See also[edit]

References[edit]

  1. ^ "Transactional Synchronization in Haswell". Software.intel.com. Retrieved 2012-02-07. 
  2. ^ "Transactional memory going mainstream with Intel Haswell". Ars Technica. 2012-02-08. Retrieved 2012-02-09. 
  3. ^ "The Core i7-4770K Review". Tom's Hardware. 2013-06-01. Retrieved 2012-06-03. 
  4. ^ "Intel Comparison Table of Haswell Pentium, i3, i5, and i7 models". intel.com. Retrieved 2014-02-11. 
  5. ^ a b Scott Wasson (2014-08-12). "Errata prompts Intel to disable TSX in Haswell, early Broadwell CPUs". The Tech Report. Retrieved 2014-08-12. 
  6. ^ a b "Desktop 4th Generation Intel Core Processor Family, Desktop Intel Pentium Processor Family, and Desktop Intel Celeron Processor Family: Specification Update (Revision 014)" (PDF). Intel. June 2014. p. 46. Retrieved 2014-08-13. Under a complex set of internal timing conditions and system events, software using the Intel TSX (Transactional Synchronization Extensions) instructions may observe unpredictable system behavior. 
  7. ^ Sebastien Dabdoub; Stephen Tu. "Supporting Intel Transactional Synchronization Extensions in QEMU" (PDF). mit.edu. Retrieved 2013-11-12. 
  8. ^ Wooyoung Kim (2013-07-25). "Fun with Intel Transactional Synchronization Extensions". intel.com. Retrieved 2013-11-12. 
  9. ^ a b Johan De Gelas (2012-09-20). "Making Sense of the Intel Haswell Transactional Synchronization eXtensions". AnandTech. Retrieved 2013-10-20. 
  10. ^ "Hardware Lock Elision Overview". intel.com. Retrieved 2013-10-27. 
  11. ^ a b David Kanter (2012-08-21). "Analysis of Haswell's Transactional Memory". Real World Technologies. Retrieved 2013-11-19. 
  12. ^ "Intel 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes: 1, 2A, 2B, 2C, 3A, 3B, and 3C" (PDF). Intel. September 2013. p. 342. Retrieved 2013-11-19. 
  13. ^ a b c "Intel 64 and IA-32 Architectures Optimization Reference Manual" (PDF). Intel. September 2013. p. 446. Retrieved 2013-11-19. 
  14. ^ "Intel TSX implementation properties". Intel. 2013. Retrieved 2013-11-14. The processor tracks both the read-set addresses and the write-set addresses in the first level data cache (L1 cache) of the processor. 
  15. ^ De Gelas, Johan (September 20, 2012). "Making Sense of the Intel Haswell Transactional Synchronization eXtensions". AnandTech. Retrieved 23 December 2013. The whole "CPU does the fine grained locks" is based upon tagging the L1 (64 B) cachelines and there are 512 of them to be specific (64 x 512 = 32 KB). There is only one "lock tag" per cacheline. 
  16. ^ David Kanter (2012-08-21). "Haswell Transactional Memory Alternatives". Real World Technologies. Retrieved 2013-11-14. 
  17. ^ Ian Cutress (2014-08-12). "Intel Disables TSX Instructions: Erratum Found in Haswell, Haswell-E/EP, Broadwell-Y". AnandTech. Retrieved 2014-08-30. 
  18. ^ Richard M. Yoo; Christopher J. Hughes; Konrad Lai; Ravi Rajwar (November 2013). "Performance Evaluation of Intel Transactional Synchronization Extensions for High-Performance Computing" (PDF). intel-research.net. Retrieved 2013-11-14. 
  19. ^ Tomas Karnagel; Roman Dementiev; Ravi Rajwar; Konrad Lai; Thomas Legler; Benjamin Schlegel; Wolfgang Lehner (February 2014). "Improving In-Memory Database Index Performance with Intel Transactional Synchronization Extensions". 20th IEEE International Symposium On High Performance Computer Architecture (HPCA-2014). Retrieved 2014-03-03. 
  20. ^ "Performance Evaluation of Intel Transactional Synchronization Extensions for High Performance Computing". supercomputing.org. November 2013. Retrieved 2013-11-14. 
  21. ^ "Benchmarks: Haswell's TSX and Memory Transaction Throughput (HLE and RTM)". sisoftware.co.uk. Retrieved 2013-11-14. 

External links[edit]

Wikipedia content is licensed under the GFDL License
Powered by YouTube
MASHPEDIA
LEGAL
  • Mashpedia © 2014