OpenXiangShan/HuanCun

请教关于core_reset的问题

Closed this issue · 2 comments

在huancun/CtrlUnit.scala有一个改动是这样的
remove reset of all cores initially:

  • val core_reset = RegInit(0.U(64.W)) +:Seq.fill(wrapper.num_cores-1){ RegInit(1.U(64.W)) }
  • val core_reset = Seq.fill(wrapper.num_cores){ RegInit(0.U(64.W)) }
    例如一个双核,如果都取消了复位,那一个程序会直接进入两个核同时执行,而不是像之前先进入主核执行,请问这是出于什么考虑呢?谢谢!

Bootloader 和操作系统会通过原子机制选出一个主核来运行对应的代码,让其他核 hang 住直到被唤醒;因此硬件的复位是不必要的

好的,感谢!