[Gems-users] MEMBAR implementation in opal+ruby


Date: Fri, 26 Feb 2010 21:52:28 -0600
From: Byn Choi <bynchoi1@xxxxxxxxxxxx>
Subject: [Gems-users] MEMBAR implementation in opal+ruby
Hello,

I have a question regarding the treatment of MEMBAR instruction in the opal+ruby setup. According to the ISCA'05 tutorial list, membar (as well as STBAR) is implemented by opal. However, when I go to look at the opal source code, both system/ix.i and system/dx.i contain empty block of code for membar.

According to Sun's documentation, membar ensures the ordering of the memory accesses that come after it with respect to the ones that come before it. In order to realize this faithfully in opal+ruby setup, I'd imagine that there should be some sort of "polling" mechanism by which the opal can ask ruby if the given set of memory accesses (ones that come before membar) are complete (globally performed), so that it can hold off executing (retiring) the memory accesses that come after it. However I don't see interface functions to suit such need in ruby/ interfaces/OpalInterface.h

As I understand, opal+ruby setup follows the timing-first approach to correctness, whereby only a subset of SPARC ISA is implemented. This explains the correctness as a whole (correct as in "in accordance to SC implemented by simics) of the system despite no special actions taken in the event of membar/stbar.

Have I missed something here? Now I'm a little confused as to why membar and stbar were included in the list of instructions implemented by opal in the ISCA slides.

Thanks,

Byn
[← Prev in Thread] Current Thread [Next in Thread→]
  • [Gems-users] MEMBAR implementation in opal+ruby, Byn Choi <=