+1 ! non-blocking datastructures are indispensible !

2014-03-04 16:15 GMT+01:00 Charles Steinkuehler <char...@steinkuehler.net>:
> On 3/3/2014 5:16 PM, John Kasunich wrote:
>
> <massive in-line snippage>
>
>> Can we agree that on a single core system, slow threads should never
>> steal the CPU from fast threads, and web browsers should never steal
>> the CPU from any "real-time" threads?  Even if you are only doing
>> simulated real-time?
>
> Even on a single core system, there are more ways to implement thread
> scheduling than "you can shake a stick at".  The important issue is the
> code operates correctly under the implemented scheduling scheme.  The
> "right" scheduler is the one that works for your application.
>
> That said, I don't have an issue with your proposal, although terms like
> "fast", "slow", and "real-time" should probably be rephrased in terms of
> relative thread priorities.
>
>> It would be foolish to try to implement a ringbuffer or other fairly
>> heavy-weight protocol in an FPGA.  Instead, you define a register
>> map by which the slow task controls the fast hardware.  Ideally
>> every register is independent and the FPGA does the right thing
>> regardless of what order you write them in.
>>
>> In some cases, there may be groups of registers that need to be
>> atomic.  It isn't uncommon to have double-buffers with a strobe
>> or similar signal that tells the FPGA to transfer from the first set
>> to the second set in parallel.
>
> I totally disagree.  I work with FPGA systems on a daily basis, and
> would be completely crippled if you remove ringbuffers (and their
> identical twins: FIFOs and queues) from my "bag of tricks".  These
> constructs are used extensively in my designs for the exact same reasons
> we need them in the new real-time layers:  Communicating chunks of data
> atomically across clock domains (or threads / scheduling contexts in
> software).  These constructs are non-blocking, and serve to isolate
> various timing domains from each other while providing for highly
> efficient transfers of data/messages/whatever.
>
> --
> Charles Steinkuehler
> char...@steinkuehler.net
>
> ------------------------------------------------------------------------------
> Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
> With Perforce, you get hassle-free workflows. Merge that actually works.
> Faster operations. Version large binaries.  Built-in WAN optimization and the
> freedom to use Git, Perforce or both. Make the move to Perforce.
> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
> _______________________________________________
> Emc-developers mailing list
> Emc-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-developers

------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to