Googles appar
Huvudmeny

Post a Comment On: cbloom rants

"01-25-09 - Low Level Threading Junk Part 2.02"

3 Comments -

1 – 3 of 3
Anonymous Anonymous said...

I think it must be that the caches talk to each other and they must invalidate pages in temporal order or something.

Old school, there's a shared bus, and they implement bus snooping. However, once you start having, say, huge quanties of cores without a single temporally-coherent bus, I have no clue how the magic happens.

I wonder if future processors will be more Alpha-like, or if everyone will agree that that's just too nuts.

(The thing about an implementation that's Alpha-like isn't just the suckiness if you don't fence; if the thing is being that crazily out-of-order in its cache handling, it seems like the fences are going to be really expensive since it's going to have to force the cache to come to a consistent state--even while other stuff is happening in adjacent cores.)

January 28, 2009 at 10:45 AM

Blogger Brian said...

Having atomic data types does make some sense. It could provide some static checking that someone doesn't perform non-atomic operations in an unsafe way on the data.

A lot of researchers are looking at implementation transactional memory models to replace locking. The devil is of course getting the overhead low enough to work.

January 30, 2009 at 12:46 AM

Blogger Brian said...

BTW...As far as future processors with very large numbers of cores, people are talking relaxing cache coherency guarantees. Maybe only some cores will be coherent with respect to others...

It may okay though... There are some processors with large numbers of cores today that use directory based cache coherency systems...

January 30, 2009 at 12:53 AM

You can use some HTML tags, such as <b>, <i>, <a>

This blog does not allow anonymous comments.

Comment moderation has been enabled. All comments must be approved by the blog author.

You will be asked to sign in after submitting your comment.