发明名称 Cache metadata for implementing bounded transactional memory
摘要 Various technologies and techniques are disclosed for providing a bounded transactional memory application that accesses cache metadata in a cache of a central processing unit. When performing a transactional read from the bounded transactional memory application, a cache line metadata transaction-read bit is set. When performing a transactional write from the bounded transactional memory application, a cache line metadata transaction-write bit is set and a conditional store is performed. At commit time, if any lines marked with the transaction-read bit or the transaction-write bit were evicted or invalidated, all speculatively written lines are discarded. The application can also interrogate a cache line metadata eviction summary to determine whether a transaction is doomed and then take an appropriate action.
申请公布号 US8813052(B2) 申请公布日期 2014.08.19
申请号 US200711811370 申请日期 2007.06.08
申请人 Microsoft Corporation 发明人 Gray Jan;Harris Timothy L.;Larus James;Smith Burton
分类号 G06F9/45;G06F9/46 主分类号 G06F9/45
代理机构 代理人 Sullivan Kevin;Drakos Kate;Minhas Micky
主权项 1. A method for improving operations of a bounded transactional memory system using cache metadata in a cache of a central processing unit comprising the operations of: providing a bounded transactional memory application with access to cache metadata in a cache of a central processing unit; for every transactional read, setting a cache line metadata transaction-read bit; for respective transactional writes, setting a cache line metadata transaction-write bit that designates a speculative write; testing for evictions or invalidations of lines marked with the cache line metadata transaction-read bit or the cache line metadata transaction-write bit, the testing performed by determining if an eviction summary register is non-zero, the eviction summary register including state corresponding to each cache line, the state corresponding to a respective cache line propagated to the eviction summary register from the cache line metadata when the respective cache line is evicted or invalidated; by the testing, finding that one or more of the lines marked with the cache line metadata transaction-read bit or the cache line metadata transaction-write bit were evicted or invalidated; and at commit time, based on the finding that one or more of the lines marked with the cache line metadata transaction-read bit or the cache line metadata transaction-write bit were evicted or invalidated, discarding speculatively written lines and calling a cache metadata invalidate instruction to reset all cache line metadata and the eviction summary register to zero, wherein the discarding the speculatively written lines comprises invalidating the speculatively written lines, the speculatively written lines comprising the lines marked with the cache line metadata transaction-write bit.
地址 Redmond WA US