Transactional Synchronization Extensions: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
LauBot (discussione | contributi)
m Bot: passaggio degli url da HTTP a HTTPS
Botcrux (discussione | contributi)
m Bot: typo nelle date ed eventuali correzioni minori
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=https://software.intel.com/en-us/blogs/2012/02/07/transactional-synchronization-in-haswell|titolo=Transactional Synchronization in Haswell|cognome=R.|nome=James|editore=[[Intel]]|data=7 febbraio 2012|lingua=en|accesso=15 novembre 2018}}</ref><ref>{{Cita news|lingua=en|nome=Peter|cognome=Bright|url=https://arstechnica.com/information-technology/2012/02/transactional-memory-going-mainstream-with-intel-haswell/|titolo=Transactional memory going mainstream with Intel Haswell|pubblicazione=[[Ars Technica]]|data=9 febbraio 2012|accesso=15 novembre 2018}}</ref><ref>{{Cita news|lingua=en|nome=Chris|cognome=Angelini|url=https://www.tomshardware.com/reviews/core-i7-4770k-haswell-review,3521.html|titolo=The Core i7-4770K Review: Haswell Is Faster; Desktop Enthusiasts Yawn|pubblicazione=[[Tom's Hardware]]|data=1º giugno 2013|accesso=15 novembre 2018}}</ref> Nei processori Haswell inferiori a 45xx così come le serie R e K (con moltiplicatore sbloccato) non supportano TSX.<ref>{{Cita web|url=https://ark.intel.com/compare/77773,77775,77777,77480,77769,77771,75036,75037,75043,76640,75044,75045,75047,75048,76641,75049,75050,75121,75122,75123,76642,75124,75125|titolo=Intel Comparison Table of Haswell Pentium, i3, i5, and i7 models|editore=[[Intel]]|lingua=en|accesso=15 novembre 2018}}</ref> Nell'agosto 2014, Intel ha annunciato un bug nell'implementazione del TSX sulle attuali ottimizzazioni di Haswell, Haswell-E, Haswell-EP e delle prime cpu [[Broadwell (hardware)|Broadwell]], che ha portato alla disabilitazione della funzione TSX sulle cpu interessate tramite un aggiornamento del [[microcodice]].<ref name=":0">{{Cita news|lingua=en|nome=Scott|cognome=Wasson|url=https://techreport.com/news/26911/errata-prompts-intel-to-disable-tsx-in-haswell-early-broadwell-cpus|titolo=Errata prompts Intel to disable TSX in Haswell, early Broadwell CPUs|pubblicazione=[[The Tech Report]]|data=12 agosto 2014|accesso=15 novembre 2018}}</ref><ref name=":1">{{Cita web|url=https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/4th-gen-core-family-desktop-specification-update.pdf|titolo=Desktop 4th Generation Intel Core Processor Family, Desktop Intel Pentium Processor Family, and Desktop Intel Celeron Processor Family|editore=[[Intel]]|data=marzo 2017|lingua=en|formato=PDF|p=46|accesso=15 novembre 2018}}</ref>
 
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=https://people.csail.mit.edu/stephentu/papers/tsx.pdf|titolo=Supporting Intel Transactional Synchronization Extensions in QEMU|cognome=Dabdoub|nome=Sebastien|editore=[[Massachusetts Institute of Technology]]|lingua=en|formato=PDF|accesso=15 novembre 2018|cognome2=Tu|nome2=Stephen}}</ref>
Riga 15:
'''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=https://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/cpp-win/GUID-A462FBC8-37F2-490F-A68B-2FFA8010DEBC.htm|titolo=Hardware Lock Elision Overview|editore=[[Intel]]|lingua=en|accesso=15 novembre 2018|urlarchivio=https://web.archive.org/web/20131029205123/http://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/cpp-win/GUID-A462FBC8-37F2-490F-A68B-2FFA8010DEBC.htm|dataarchivio=29 ottobre 2013|urlmorto=sì}}</ref>
 
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>.
 
Il suggerimento del prefisso <code>XRELEASE</code> può essere utilizzato sia con le istruzioni sopra elencate, sia con le istruzioni <code>MOV mem, reg</code> e <code>MOV mem, imm</code>.
Riga 84:
{{Multimedia extensions}}
{{Portale|Informatica}}
 
[[Categoria:Calcolo parallelo]]
[[Categoria:Controllo della concorrenza]]