mem-ruby,configs: Add CHI far atomics support
Introduce far atomic operations in CHI protocol.
Three configuration parameters have been used to tune this behavior:
policy_type: sets the atomic policy to one of the described in our paper
atomic_op_latency: simulates the AMO ALU operation latency
comp_anr: configures the Atomic No return transaction to split
CompDBIDResp into two different messages DBIDResp and Comp
Change-Id: I087afad9ad9fcb9df42d72893c9e32ad5a5eb478
This commit is contained in:
@@ -244,6 +244,7 @@ class CHI_L1Controller(CHI_Cache_Controller):
|
||||
self.alloc_on_readunique = True
|
||||
self.alloc_on_readonce = True
|
||||
self.alloc_on_writeback = True
|
||||
self.alloc_on_atomic = False
|
||||
self.dealloc_on_unique = False
|
||||
self.dealloc_on_shared = False
|
||||
self.dealloc_backinv_unique = True
|
||||
@@ -280,6 +281,7 @@ class CHI_L2Controller(CHI_Cache_Controller):
|
||||
self.alloc_on_readunique = True
|
||||
self.alloc_on_readonce = True
|
||||
self.alloc_on_writeback = True
|
||||
self.alloc_on_atomic = False
|
||||
self.dealloc_on_unique = False
|
||||
self.dealloc_on_shared = False
|
||||
self.dealloc_backinv_unique = True
|
||||
@@ -316,6 +318,7 @@ class CHI_HNFController(CHI_Cache_Controller):
|
||||
self.alloc_on_readunique = False
|
||||
self.alloc_on_readonce = True
|
||||
self.alloc_on_writeback = True
|
||||
self.alloc_on_atomic = True
|
||||
self.dealloc_on_unique = True
|
||||
self.dealloc_on_shared = False
|
||||
self.dealloc_backinv_unique = False
|
||||
@@ -392,6 +395,7 @@ class CHI_DMAController(CHI_Cache_Controller):
|
||||
self.alloc_on_readunique = False
|
||||
self.alloc_on_readonce = False
|
||||
self.alloc_on_writeback = False
|
||||
self.alloc_on_atomic = False
|
||||
self.dealloc_on_unique = False
|
||||
self.dealloc_on_shared = False
|
||||
self.dealloc_backinv_unique = False
|
||||
|
||||
Reference in New Issue
Block a user