Transactional Synchronization Extensions: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
+ bibliografia |
m Bot: passaggio degli url da HTTP a HTTPS |
||
Riga 1:
'''Transactional Synchronization Extensions''' ('''TSX-NI''') è un'estensione all'architettura del [[Instruction set|set di istruzioni x86]] (ISA) che aggiunge il supporto alla [[memoria transazionale]] hardware, velocizzando l'esecuzione di software multi-threaded attraverso l'elisione della serratura. In base a diversi benchmark, TSX è in grado di fornire circa il 40% di esecuzione più veloce delle applicazioni in specifici carichi di lavoro, e 4-5 volte di più di [[Transazioni al secondo|transazioni di database al secondo]] (TPS).<ref>{{Cita web|url=http://pcl.intel-research.net/publications/SC13-TSX.pdf|titolo=Performance Evaluation of Intel R Transactional Synchronization Extensions for High-Performance Computing|cognome=Yoo|nome=Richard M.|editore=[[Intel]]|data=novembre 2013|lingua=en|formato=PDF|accesso=15 novembre 2018|urlarchivio=https://web.archive.org/web/20161110144922/http://pcl.intel-research.net/publications/SC13-TSX.pdf|dataarchivio=10 novembre 2016|urlmorto=sì|cognome2=Hughes|nome2=Christopher J.|cognome3=Lai|nome3=Konrad|cognome4=Rajwar|nome4=Ravi}}</ref><ref>{{Cita web|url=https://software.intel.com/sites/default/files/managed/4d/2a/hpca_TSX.pdf|titolo=Improving In-Memory Database Index Performance with Intel R Transactional Synchronization Extensions|cognome=Karnagel|nome=Tomas|cognome2=Dementiev|nome2=Roman|cognome3=Rajwar|nome3=Ravi|cognome4=Lai|nome4=Konrad|cognome5=Legler|nome5=Thomas|cognome6=Schlegel|nome6=Benjamin|cognome7=Lehner|nome7=Wolfgang|editore=[[Intel]]|data=febbraio 2014|lingua=en|formato=PDF|accesso=15 novembre 2018}}</ref><ref>{{Cita conferenza|titolo=Performance Evaluation of Intel Transactional Synchronization Extensions for High Performance Computing|conferenza=SC13|data=21 novembre 2013|url=https://web.archive.org/web/20130927105131/http://sc13.supercomputing.org/schedule/event_detail.php?evid=pap260|lingua=en|accesso=15 novembre 2018|cognome=Yoo|nome=Richard|cognome2=Hughes|nome2=Christopher|cognome3=Lai|nome3=Konrad|cognome4=Rajwar|nome4=Ravi}}</ref>
TSX è stato documentato da Intel nel febbraio 2012, e ha debuttato nel giugno 2013 su [[Microprocessore|microprocessori]] [[Intel]] selezionati basati sulla microarchitettura [[Haswell (hardware)|Haswell]].<ref>{{Cita web|url=
Il supporto per l'emulazione TSX è fornito come parte dell'emulatore di sviluppo software di Intel.<ref>{{Cita web|url=https://software.intel.com/en-us/blogs/2013/07/25/fun-with-intel-transactional-synchronization-extensions|titolo=Fun with Intel Transactional Synchronization Extensions|cognome=Wooyoung|nome=Kim|editore=[[Intel]]|data=25 luglio 2013|lingua=en|accesso=15 novembre 2015}}</ref> C'è anche un supporto sperimentale per l'emulazione TSX in [[QEMU]].<ref>{{Cita web|url=
== Caratteristiche ==
Riga 13:
=== {{anchor|HLE}}Hardware Lock Elision ===
'''Hardware Lock Elision''' (HLE) aggiunge due nuovi prefissi di istruzioni, <code>XACQUIRE</code> e <code>XRELEASE</code>. Questi due prefissi riutilizzano gli [[opcode]] dei prefissi <code>REPNE</code> / <code>REPE</code> esistenti (<code>F2H</code> / <code>F3H</code>). Sui processori che non supportano TSX, i prefissi <code>REPNE</code> / <code>REPE</code> vengono ignorati sulle istruzioni per le quali sono validi i prefissi <code>XACQUIRE</code> / <code>XRELEASE</code>, consentendo così una retrocompatibilità.<ref>{{Cita web|url=
Il suggerimento del prefisso <code>XACQUIRE</code> può essere utilizzato solo con le seguenti istruzioni con un esplicito prefisso <code>LOCK</code>: <code>ADD</code>, <code>ADC</code>, <code>AND</code>, <code>BTC</code>, <code>BTR</code>, <code>BTS</code>, <code>CMPXCHG</code>, <code>CMPXCHG8B</code>, <code>DEC</code>, <code>INC</code>, <code>NEG</code>, <code>NOT</code>, <code>OR</code>, <code>SBB</code>, <code>SUB</code>, <code>XOR</code>, <code>XADD</code> e <code>XCHG</code>. L'istruzione <code>XCHG</code> può essere utilizzata anche senza il prefisso <code>LOCK</code>.
Riga 75:
==Bibliografia==
*{{Cita pubblicazione|nome=Yehuda|cognome=Afek|data=15 luglio 2014|titolo=Software-improved hardware lock elision|rivista=Proceedings of the 2014 ACM symposium on Principles of distributed computing|editore=ACM|volume=|numero=|pp=212–221|accesso=15 novembre 2018|doi=10.1145/2611462.2611482|url=
== Voci correlate ==
|