From a3b4b9b3e3f8a1462b34d758199312d33af4b0c7 Mon Sep 17 00:00:00 2001 From: Brad Beckmann Date: Fri, 20 Aug 2010 11:46:12 -0700 Subject: [PATCH] ruby: Added bcast msg profiling to hammer and token --- src/mem/protocol/MOESI_CMP_token-L1cache.sm | 8 ++++---- src/mem/protocol/MOESI_CMP_token-L2cache.sm | 2 +- src/mem/protocol/MOESI_CMP_token-dir.sm | 4 ++-- src/mem/protocol/MOESI_hammer-dir.sm | 6 +++--- src/mem/protocol/RubySlicc_Exports.sm | 1 + src/mem/ruby/network/Network.cc | 1 + 6 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/mem/protocol/MOESI_CMP_token-L1cache.sm b/src/mem/protocol/MOESI_CMP_token-L1cache.sm index fa32b94ab..381debce5 100644 --- a/src/mem/protocol/MOESI_CMP_token-L1cache.sm +++ b/src/mem/protocol/MOESI_CMP_token-L1cache.sm @@ -730,9 +730,9 @@ machine(L1Cache, "Token protocol") out_msg.RetryNum := L1_TBEs[address].IssueCount; out_msg.isLocal := true; if (L1_TBEs[address].IssueCount == 0) { - out_msg.MessageSize := MessageSizeType:Request_Control; + out_msg.MessageSize := MessageSizeType:Broadcast_Control; } else { - out_msg.MessageSize := MessageSizeType:Reissue_Control; + out_msg.MessageSize := MessageSizeType:Broadcast_Control; } out_msg.Prefetch := L1_TBEs[address].Prefetch; out_msg.AccessMode := L1_TBEs[address].AccessMode; @@ -854,9 +854,9 @@ machine(L1Cache, "Token protocol") out_msg.RetryNum := L1_TBEs[address].IssueCount; if (L1_TBEs[address].IssueCount == 0) { - out_msg.MessageSize := MessageSizeType:Request_Control; + out_msg.MessageSize := MessageSizeType:Broadcast_Control; } else { - out_msg.MessageSize := MessageSizeType:Reissue_Control; + out_msg.MessageSize := MessageSizeType:Broadcast_Control; } out_msg.Prefetch := L1_TBEs[address].Prefetch; out_msg.AccessMode := L1_TBEs[address].AccessMode; diff --git a/src/mem/protocol/MOESI_CMP_token-L2cache.sm b/src/mem/protocol/MOESI_CMP_token-L2cache.sm index 789a2b5cd..706b286fa 100644 --- a/src/mem/protocol/MOESI_CMP_token-L2cache.sm +++ b/src/mem/protocol/MOESI_CMP_token-L2cache.sm @@ -748,7 +748,7 @@ machine(L2Cache, "Token protocol") out_msg.Type := in_msg.Type; out_msg.isLocal := false; - out_msg.MessageSize := MessageSizeType:Request_Control; + out_msg.MessageSize := MessageSizeType:Broadcast_Control; out_msg.AccessMode := in_msg.AccessMode; out_msg.Prefetch := in_msg.Prefetch; } diff --git a/src/mem/protocol/MOESI_CMP_token-dir.sm b/src/mem/protocol/MOESI_CMP_token-dir.sm index fce030d98..5122e30d3 100644 --- a/src/mem/protocol/MOESI_CMP_token-dir.sm +++ b/src/mem/protocol/MOESI_CMP_token-dir.sm @@ -434,7 +434,7 @@ machine(Directory, "Token protocol") l2_select_num_bits)); out_msg.RetryNum := 0; - out_msg.MessageSize := MessageSizeType:Request_Control; + out_msg.MessageSize := MessageSizeType:Broadcast_Control; out_msg.Prefetch := PrefetchBit:No; out_msg.AccessMode := AccessModeType:SupervisorMode; } @@ -500,7 +500,7 @@ machine(Directory, "Token protocol") l2_select_num_bits)); out_msg.RetryNum := 0; - out_msg.MessageSize := MessageSizeType:Request_Control; + out_msg.MessageSize := MessageSizeType:Broadcast_Control; out_msg.Prefetch := PrefetchBit:No; out_msg.AccessMode := AccessModeType:SupervisorMode; } diff --git a/src/mem/protocol/MOESI_hammer-dir.sm b/src/mem/protocol/MOESI_hammer-dir.sm index 7938505d9..b2fec17f5 100644 --- a/src/mem/protocol/MOESI_hammer-dir.sm +++ b/src/mem/protocol/MOESI_hammer-dir.sm @@ -477,7 +477,7 @@ machine(Directory, "AMD Hammer-like protocol") out_msg.Requestor := in_msg.Requestor; out_msg.Destination.broadcast(MachineType:L1Cache); // Send to all L1 caches out_msg.Destination.remove(in_msg.Requestor); // Don't include the original requestor - out_msg.MessageSize := MessageSizeType:Forwarded_Control; + out_msg.MessageSize := MessageSizeType:Broadcast_Control; } } } @@ -494,7 +494,7 @@ machine(Directory, "AMD Hammer-like protocol") // out_msg.Requestor := machineID; out_msg.Destination.broadcast(MachineType:L1Cache); - out_msg.MessageSize := MessageSizeType:Forwarded_Control; + out_msg.MessageSize := MessageSizeType:Broadcast_Control; } } } @@ -510,7 +510,7 @@ machine(Directory, "AMD Hammer-like protocol") // out_msg.Requestor := machineID; out_msg.Destination.broadcast(MachineType:L1Cache); - out_msg.MessageSize := MessageSizeType:Forwarded_Control; + out_msg.MessageSize := MessageSizeType:Broadcast_Control; } } } diff --git a/src/mem/protocol/RubySlicc_Exports.sm b/src/mem/protocol/RubySlicc_Exports.sm index 599e895db..d29620d16 100644 --- a/src/mem/protocol/RubySlicc_Exports.sm +++ b/src/mem/protocol/RubySlicc_Exports.sm @@ -200,6 +200,7 @@ enumeration(MessageSizeType, default="MessageSizeType_Undefined", desc="...") { Response_Control, desc="non-data response"; Writeback_Data, desc="Writeback data"; Writeback_Control, desc="Writeback control"; + Broadcast_Control, desc="Broadcast control"; Forwarded_Control, desc="Forwarded control"; Invalidate_Control, desc="Invalidate control"; Unblock_Control, desc="Unblock control"; diff --git a/src/mem/ruby/network/Network.cc b/src/mem/ruby/network/Network.cc index f2e056f75..91800d5bb 100644 --- a/src/mem/ruby/network/Network.cc +++ b/src/mem/ruby/network/Network.cc @@ -71,6 +71,7 @@ Network::MessageSizeType_to_int(MessageSizeType size_type) case MessageSizeType_Reissue_Control: case MessageSizeType_Response_Control: case MessageSizeType_Writeback_Control: + case MessageSizeType_Broadcast_Control: case MessageSizeType_Forwarded_Control: case MessageSizeType_Invalidate_Control: case MessageSizeType_Unblock_Control: