From 8e7fdf4ac460cbfbb373c951a6c7cdae93446241 Mon Sep 17 00:00:00 2001 From: Brandon Potter Date: Tue, 20 Feb 2018 13:19:39 -0500 Subject: [PATCH] ruby,gpu-compute: bugfix for GPU_VIPER* protocols 12db50c895 changed how directory mapping works, but it seems to have broken the VIPER variants of the GPU protocols. The fix involves declaring the function in the related '.sm' files. Change-Id: I116980d42a4aa648369058b529c9f8d9693eb894 Reviewed-on: https://gem5-review.googlesource.com/8521 Reviewed-by: Anthony Gutierrez Reviewed-by: Jason Lowe-Power Maintainer: Anthony Gutierrez --- src/mem/protocol/GPU_VIPER-TCC.sm | 1 + src/mem/protocol/GPU_VIPER_Region-TCC.sm | 1 + src/mem/protocol/MOESI_AMD_Base-Region-dir.sm | 2 ++ 3 files changed, 4 insertions(+) diff --git a/src/mem/protocol/GPU_VIPER-TCC.sm b/src/mem/protocol/GPU_VIPER-TCC.sm index 45477d8d8..f8da4abf1 100644 --- a/src/mem/protocol/GPU_VIPER-TCC.sm +++ b/src/mem/protocol/GPU_VIPER-TCC.sm @@ -126,6 +126,7 @@ machine(MachineType:TCC, "TCC Cache") void wakeUpAllBuffers(); void wakeUpBuffers(Addr a); + MachineID mapAddressToMachine(Addr addr, MachineType mtype); // FUNCTION DEFINITIONS Tick clockEdge(); diff --git a/src/mem/protocol/GPU_VIPER_Region-TCC.sm b/src/mem/protocol/GPU_VIPER_Region-TCC.sm index e3243b3e1..04d7b7a6f 100644 --- a/src/mem/protocol/GPU_VIPER_Region-TCC.sm +++ b/src/mem/protocol/GPU_VIPER_Region-TCC.sm @@ -131,6 +131,7 @@ machine(MachineType:TCC, "TCC Cache") void wakeUpAllBuffers(); void wakeUpBuffers(Addr a); + MachineID mapAddressToMachine(Addr addr, MachineType mtype); // FUNCTION DEFINITIONS diff --git a/src/mem/protocol/MOESI_AMD_Base-Region-dir.sm b/src/mem/protocol/MOESI_AMD_Base-Region-dir.sm index 02b211892..cc5ceb0b5 100644 --- a/src/mem/protocol/MOESI_AMD_Base-Region-dir.sm +++ b/src/mem/protocol/MOESI_AMD_Base-Region-dir.sm @@ -210,6 +210,8 @@ machine(MachineType:Directory, "AMD_Base-like protocol") void wakeUpBuffers(Addr a); Cycles curCycle(); + MachineID mapAddressToMachine(Addr addr, MachineType mtype); + Entry getDirectoryEntry(Addr addr), return_by_pointer="yes" { Entry dir_entry := static_cast(Entry, "pointer", directory.lookup(addr)); -- 2.30.2