En högkonkurs transaktionsminne (TM) genomförande måste spåra samtidiga åtkomster, buffert spekulativa uppdateringar, och hantera konflikter. Vi presenterar ett system, FlexTM (FLEXible Transactional Memory), som samordnar fyra frikopplade maskinvarumekanismer: läs- och skrivsignaturer, som sammanfattar åtkomstuppsättningar per gång; sammanfattningstabeller per tråd (CST), som identifierar de trådar med vilka konflikter har uppstått; Programmerbar Data Isolering, som upprätthåller spekulativa uppdateringar i den lokala cachen och använder en tråd-privat buffert (i virtuellt minne) i den sällsynta händelse av överflöd; och Alert-On-Update, som selektivt meddelar trådar om koherenshändelser. Alla mekanismer är programvarutillgängliga, för att möjliggöra virtualisering och för att stödja transaktioner av godtycklig längd. FlexTM gör det möjligt för programvara att avgöra när konflikter (antingen ivrigt eller latt) ska hanteras och att använda en mängd olika konflikthanterings- och åtagandeprotokoll. Vi beskriver ett STM-inspirerat protokoll som använder CST för att hantera konflikter på ett distribuerat sätt (inga globala skiljeförfaranden) och tillåter parallella åtaganden. I experiment med en prototyp på Simics/GEMS visar FlexTM upp hastighetshöjning över högkvalitativ programvara TM, utan förlust i policyflexibilitet. Dess distribuerade åtagandeprotokoll är också effektivare än en central hårdvaruhanterare. Våra resultat belyser vikten av flexibilitet när det gäller att avgöra när konflikter ska hanteras: lat maximerar konvergensen och bidrar till att säkerställa framsteg framåt samtidigt som ivrigt ger bättre övergripande utnyttjande i ett multiprogrammerat system.
En intressant, nyligen föreslagen transaktionsminnesmodell som kallas FlexTM REF lägger till mekanismer i hårdvaran för att samordna kontroll av läs- och skrivsignatur, spekulativa uppdateringar av cacheminnen och ivriga meddelanden till transaktioner om koherenshändelser.
Flexible Decoupled Transactional Memory Support
{'venue': 'CARN', 'journal': None, 'mag_field_of_study': ['Computer Science']}