Dynamisk binär översättning (DBT) är en runtime instrumentation teknik som ofta används för att stödja profilering, optimering, säker körning, och bugg detektion verktyg för program binärer. DBT-ramverk kan dock felaktigt hantera multitrådade program på grund av raser som innefattar uppdateringar av applikationsdata och motsvarande metadata som upprätthålls av DBT. Befintliga DBT-ramar hanterar detta problem genom att serialisera trådar, förbjuda multitrådade program eller kräva uttrycklig användning av lås. I detta dokument presenteras en praktisk lösning för korrekt genomförande av multitrådade program inom DBT-ramverk. För att eliminera raser som involverar metadata föreslår vi användning av transaktionsminne (TM). DBT använder minnestransaktioner för att inkapsla data och metadata åtkomst i ett spår, inom ett atomblock. Detta tillvägagångssätt garanterar korrekt utförande av samtidiga trådar av det översatta programmet, som TM mekanismer upptäcka och korrigera raser. För att visa detta tillvägagångssätt har vi implementerat ett DBT-baserat verktyg för säker körning av x86 binärer med hjälp av dynamisk informationsflödesspårning. Detta är den första sådan ram som korrekt hanterar multitrådade binärer utan seriellisering. Vi visar att användningen av programvarutransaktioner i DBT leder till en runtime overhead på 40%. Vi visar också att mjukvaruoptimering i DBT och hårdvarusupport för transaktioner kan minska drifttiden overhead till 6%.
REF föreslog ett dynamiskt binärt översättningsramverk och använder transaktionsminnesmekanismer för att upptäcka och korrigera dataraser i multitrådade program.
Thread-safe dynamic binary translation using transactional memory
{'venue': '2008 IEEE 14th International Symposium on High Performance Computer Architecture', 'journal': '2008 IEEE 14th International Symposium on High Performance Computer Architecture', 'mag_field_of_study': ['Computer Science']}