Synchronous Processors (2016)
yodaiken.com
Synchronous Processors (2016)
1–10 of 21 posts
Re: Synchronous Processors (2016)
#2Re: Synchronous Processors (2016)
#3…and the subject should have “(2016)” added…
Re: Synchronous Processors (2016)
#4And how would you do context switches if a CPU-bound task does not yield and you do not have interrupts to ... interrupt ... that?
Re: Synchronous Processors (2016)
#5And how would you do context switches if a CPU-bound task does not yield and you do not have interrupts to ... interrupt ... that?
> We could have a simple cycle timer switch on each core so that after the timer expires there an interrupt-like jump to a function to see what to do next. That jump would be perfectly synchronous since predicting the next jump can be done with 100% accuracy (or nearly 100%).
Re: Synchronous Processors (2016)
#6And how would you do context switches if a CPU-bound task does not yield and you do not have interrupts to ... interrupt ... that?
One approach is to use a barrel processor which switches threads after each cycle or instruction: https://en.m.wikipedia.org/wiki/Barrel_processor
Re: Synchronous Processors (2016)
#7And how would you do context switches if a CPU-bound task does not yield and you do not have interrupts to ... interrupt ... that?
Re: Synchronous Processors (2016)
#8And how would you do context switches if a CPU-bound task does not yield and you do not have interrupts to ... interrupt ... that?
The article says this about it: > We could have a simple cycle timer switch on each core so that after the timer expires there an interrupt-like jump to a function to see what to do next. That jump would be perfectly synchronous since predicting the next jump can be done with 100% accuracy (or nearly 100%).
Interrupt like? So what will you do? save context of this thread, load another...hm...sure sounds like what we already do
Re: Synchronous Processors (2016)
#9And how would you do context switches if a CPU-bound task does not yield and you do not have interrupts to ... interrupt ... that?
What if you have multiple CPUs and you don't want the task to yield (i.e. for performance or latency reasons)?