Hi there, i would like to know if it is possible to stop a single core or hart if it is faulty.
I suppose, a server has many cores to run the software.
In the future, a server cpu can have 64 cores or 80 cores.
If a core become faulty, there must be a way to stop it and use the other cores further.
It is like having a flat tyre on a car with 20 wheels. I dont stop for one flat tyre.
Not sure what do you mean by “faulty” core, but in case of unrecoverable exception or other condition, it is possible to stop a single core.
All SiFive cores implement a custom instruction CEASE that will stop the current core execution until the next reset.
Hope it answers your question.
Ah, so this is already implemented in the CPU and acts kind of automatically, if a calculation fails. It is nothing a person has to type in manually, to stop core 33 of 80 available cores.
Thank you for your answer!
I don’t think that’s quite what @Boris_SiFive said.
If you want to use the custom
CEASE instruction to stop a hart then, presumably, that instruction must be compiled into the software that runs on that hart and there must be a way to cause it to be executed in the appropriate circumstances in order to “switch off” that hart?
Okay, i am not familiar with how software works. So you mean, that it needs to have some kind of management software on the user level, or on the operating system level, that has to send a cease signal to the core, to stop it until the next reboot.
A kind of Boincmanager or htop on linux.
If you want to be able to “switch off” a hart using the aforementioned
CEASE instruction then the hart needs to be able to execute that instruction and be told to do so under the appropriate circumstances. How exactly this is provided for and done is a bigger issue and there’s no single answer.