View Single Post
Old 29 June 2017, 20:31   #255
Registered User

Join Date: May 2017
Location: Munich/Bavaria
Posts: 515
Originally Posted by grond View Post
Well, the 080 core has normal DMA (start address, destination address, number of bytes, pull trigger, go) already in case facts about the present state are of any interest here. DMA should go through the cache for coherency such that there is again no real difference when comparing to a second CPU. Just try to see the 2nd thread as a flexibly programmable DMA controller and one that uses all resources that are currently not used by the main thread: it's completely for free! You could also use it as a software blitter doing pixel format conversion on-the-fly and much more.
As I pointed out already: it is not completely for free:

On a real second core it would occupy some memory bandwidth - so you have to code and schedule things very carefully, so nothing gets slowed down.
This is a problem you can observe on every multicore system out there.

It gets worse if you just have two virtual cores through hyper-something:
the second thread will slow down the first one, since not everything can be absorbed just by a multiscalar design.
Gorf is offline  
Page generated in 0.03939 seconds with 10 queries