Live data from Hacker News

Synchronous Processors (2016)

yodaiken.com

1–10 of 21 posts

Re: Synchronous Processors (2016)

#4
post #2

And 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)

#5
post #2

And 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%).

Re: Synchronous Processors (2016)

#6
post #2

And 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

That does not solve the problem at all. It just increases the number of "hyper threads", if a new process gets started and all cores are busy that process might never run.

Re: Synchronous Processors (2016)

#7
post #2

And 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)?

Re: Synchronous Processors (2016)

#8
post #5
post #2

And 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%).

Cycle accurate? So now you can predict how long RAM latency is down to the cycle, refreshes and DMA be damned?

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)

#9
post #7
post #2

And 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)?

That limits your OS to numThreads < numCpus

Re: Synchronous Processors (2016)

#10
This article would make more sense if it had the result of a simulation of a workload showing how much time was lost to interrupt latency and how much processor time could be saved by a different technique.
Post reply on HN