C2C Snoop address mapping between CHI

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,

So the mapping between CHI <-> C2C would be:

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,

So the mapping between CHI <-> C2C would be:

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

0