We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Dear Supporters,
As previously descussion in https://community.arm.com/support-forums/f/architectures-and-processors-forum/57205/c2c-snp-address-width-diff-from-chi,
I wish to have your confirm about whether such a SNP address mapping relationship between C2C and CHI is correct or not:
For Req_Addr_Width = 52, SNP Addr width defined as Req_Addr_width – 3 = 49,
So the mapping between CHI <-> C2C would be:
CHI SNP -> C2C Snoop: C2C.Snoop.Addr[47:0] = CHI.SNP.Addr[48:1];
C2C Snoop -> CHI SNP: CHI.SNP.Addr[48:0] = {C2C.Snoop.Addr[47:0],1’b0];
So For Req_Addr_Width = 51, SNP Addr width defined as 51 – 3 = 48,
CHI SNP -> C2C Snoop: C2C.Snoop.Addr[47:0] = {1’b0,CHI.SNP.Addr[47:1]};
C2C Snoop -> CHI SNP: CHI.SNP.Addr[47:0] = {C2C.Snoop.Addr[46:0],1’b0];
Then For Req_Addr_Width = 50, SNP Addr width defined as 50 – 3 = 47,
CHI SNP -> C2C Snoop: C2C.Snoop.Addr[46:0] = {2’b0,CHI.SNP.Addr[46:1]};
C2C Snoop -> CHI SNP: CHI.SNP.Addr[46:0] = {C2C.Snoop.Addr[45:0],1’b0];
Best Regards