Hello,
I am trying to understand the relationship between the public openc910 RTL and real C910-based silicon used in TH1520 boards (for example Meles / other TH1520 development boards).
From the public materials, I can see that TH1520-based boards are described as using XuanTie C910 cores, but I am not sure whether the taped-out microarchitecture is directly based on this repository, or whether the production silicon contains private changes / implementation differences.
I have two questions:
-
Is real TH1520/C910 silicon based on the microarchitecture in this repository?
More specifically, should this repository be treated as:
- the actual basis of the taped-out C910 frontend/microarchitecture, or
- only a public/open version that is functionally similar but not cycle-identical to production silicon?
-
What happens when RAS is invalid / underflows / overflows for a return instruction?
My reading of the public RTL is that the frontend may temporarily follow the default/sequential VPC path before redirecting:
- In
ct_ifu_ipdp.v, ras_target_pc falls back to ras_default_vpc when ras_ipdp_data_vld is not set.
- In
ct_ifu_ibctrl.v, there is a comment saying: if RAS not valid, take next 128 PC as predict PC.
- The user manual also says the RAS supports up to 12 nested calls, and overflow can cause target prediction errors.
So my current inference is:
- for the public openc910 RTL, a RAS-invalid case may transiently fetch the next/default VPC path;
- but I do not know whether real TH1520 silicon behaves the same way.
Could you please clarify:
- Is this inference correct for
openc910?
- Is TH1520/Meles silicon behavior the same?
- If yes, what is the typical correction window in cycles (best case / worst case, or the stage where it is resolved)?
- If no, what are the main frontend / predictor differences between the public RTL and production silicon?
Relevant references I checked:
C910_RTL_FACTORY/gen_rtl/ifu/rtl/ct_ifu_ipdp.v
C910_RTL_FACTORY/gen_rtl/ifu/rtl/ct_ifu_ibctrl.v
C910_RTL_FACTORY/gen_rtl/ifu/rtl/ct_ifu_ibdp.v
- C910 user/integration manuals under
doc/
Thank you.
Hello,
I am trying to understand the relationship between the public
openc910RTL and real C910-based silicon used in TH1520 boards (for example Meles / other TH1520 development boards).From the public materials, I can see that TH1520-based boards are described as using XuanTie C910 cores, but I am not sure whether the taped-out microarchitecture is directly based on this repository, or whether the production silicon contains private changes / implementation differences.
I have two questions:
Is real TH1520/C910 silicon based on the microarchitecture in this repository?
More specifically, should this repository be treated as:
What happens when RAS is invalid / underflows / overflows for a return instruction?
My reading of the public RTL is that the frontend may temporarily follow the default/sequential VPC path before redirecting:
ct_ifu_ipdp.v,ras_target_pcfalls back toras_default_vpcwhenras_ipdp_data_vldis not set.ct_ifu_ibctrl.v, there is a comment saying:if RAS not valid, take next 128 PC as predict PC.So my current inference is:
Could you please clarify:
openc910?Relevant references I checked:
C910_RTL_FACTORY/gen_rtl/ifu/rtl/ct_ifu_ipdp.vC910_RTL_FACTORY/gen_rtl/ifu/rtl/ct_ifu_ibctrl.vC910_RTL_FACTORY/gen_rtl/ifu/rtl/ct_ifu_ibdp.vdoc/Thank you.