Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch > #1543

Re: What are the various alternate uses for the PC's LSB ?

From Stephen Fuld <SFuld@alumni.cmu.edu.invalid>
Newsgroups comp.arch
Subject Re: What are the various alternate uses for the PC's LSB ?
Date 2011-05-13 08:44 -0700
Organization A noiseless patient Spider
Message-ID <iqjjk2$ldo$1@dont-email.me> (permalink)
References <9226d60e-0c97-4863-97ab-1fc568a7bb46@glegroupsg2000goo.googlegroups.com> <iqhv4i$bg8$1@speranza.aioe.org> <4DCCA664.9070207@SPAM.comp-arch.net> <nqev98-qvt2.ln1@ntp6.tmsw.no>

Show all headers | View raw


On 5/13/2011 3:47 AM, Terje Mathisen wrote:

snip

> Personally I prefer algorithms which can use XADD, i.e. atomic
> fetch_and_add(), specifically because they can provide guaranteed
> forward progress, with minimum bus uglyness.

I agree with your preference and would add another reason.  There are 
applications where a system wide unique, guaranteed increasing number is 
exactly what is needed.  Think transaction numbers in some transaction 
systems.  XADD provides this with minimal cost.


> It should also be relatively easy (for hw) to propagate an XADD
> operation across a mesh and handle it at the location of the target memory.

Yes.  Although test and set is perhaps easier to do this with.  But see 
below


> It does mean that you have to allow the XADD - updated counter to wrap
> at whatever the natural size is, and handle any masking/special
> processing in the surrounding code. Saturation does not work in this
> scenario, since there's no easy way to get immediately back out of
> saturation:
>
> 253+, 254+, 255+, 255+, 255+, 255-, 254-, 253
>
> (A workaround would be to detect that the current increment caused an
> overflow, then immediately decrement by that amount, but this can
> quickly get into race conditions against other threads. Having one or
> two secondary counters to record the amount of over/underflow could
> work, but that would make it much more complicated to read the current
> value. :-()

Not having to handle this is the advantage of test and set.  It could 
relatively easily be implemented entirely within the memory chip itself. 
  However, at the cost of that elegance, perhaps a reasonable compromise 
would be to handle the addition within the memory controller chip (or 
part of chip) instead of the RAM chips.  This still avoids the need for 
bus locks/snoops.  It would cost a second transfer at the RAM chips 
themselves, but since many/most RAM to controller interfaces are 64 bits 
wide, it makes the overflow problem small enough that you might be able 
to not implement anything special for it.


-- 
  - Stephen Fuld
(e-mail address disguised to prevent spam)

Back to comp.arch | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Re: What are the various alternate uses for the PC's LSB ? "Paul A. Clayton" <paaronclayton@gmail.com> - 2011-05-12 08:49 -0700
  Re: What are the various alternate uses for the PC's LSB ? whygee <yg@yg.yg> - 2011-05-13 02:01 +0200
    Re: What are the various alternate uses for the PC's LSB ? "Andy \"Krazy\" Glew" <andy@SPAM.comp-arch.net> - 2011-05-12 20:32 -0700
      Re: What are the various alternate uses for the PC's LSB ? Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-05-13 12:47 +0200
        Re: What are the various alternate uses for the PC's LSB ? Stephen Fuld <SFuld@alumni.cmu.edu.invalid> - 2011-05-13 08:44 -0700
          Re: What are the various alternate uses for the PC's LSB ? Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-05-13 19:53 +0200
            Re: What are the various alternate uses for the PC's LSB ? Stephen Fuld <SFuld@alumni.cmu.edu.invalid> - 2011-05-13 11:36 -0700
              Re: What are the various alternate uses for the PC's LSB ? Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-05-13 22:26 +0200
            Re: What are the various alternate uses for the PC's LSB ? "Andy \"Krazy\" Glew" <andy@SPAM.comp-arch.net> - 2011-05-14 17:17 -0700
              Re: What are the various alternate uses for the PC's LSB ? Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-05-16 14:22 +0200
                Re: What are the various alternate uses for the PC's LSB ? "Andy \"Krazy\" Glew" <andy@SPAM.comp-arch.net> - 2011-05-16 07:38 -0700
          Re: What are the various alternate uses for the PC's LSB ? "Andy \"Krazy\" Glew" <andy@SPAM.comp-arch.net> - 2011-05-14 17:14 -0700
      Re: What are the various alternate uses for the PC's LSB ? rpw3@rpw3.org (Rob Warnock) - 2011-05-13 07:45 -0500

csiph-web