public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
* RSE and incomplete register frame
@ 2006-08-02  8:17 Christian Hildner
  2006-08-03  5:41 ` Matthew Chapman
  2006-08-03  9:09 ` Christian Hildner
  0 siblings, 2 replies; 3+ messages in thread
From: Christian Hildner @ 2006-08-02  8:17 UTC (permalink / raw)
  To: linux-ia64

Hi there,

for an IA64 related question I dropped a query to 
ia64-technical@gelato.unsw.edu.au . However there was not really any 
helpful response. So please let me make use of the bigger audience on 
this list. Your comments are all welcome. Thanks.

Here the original text:
Hi,

while developing an instruction set simulator I found the chapter about 
incomplete register frame (ASDM vol. 2) to be inaccurate. It says that 
the incomplete frame becomes complete when RSE.ndirty_words becomes 
non-negative by executing mandatory RSE loads. However, mandatory RSE 
loads are not touching BSPSTORE or the dirty partition. RSE loads are 
extending the clean partition. Furthermore if you consider RSE.BOF to 
end up inside the clean partition after a br.ret or rfi, then BSPSTORE 
is located above BSP. However, the new current frame should be 
considered complete since there are no mandatory RSE loads needed. Given 
this, BSPSTORE should be replaced by RSE.Bspload, which is the true 
criterion for an incomplete register frame.

The practice when dealing with br.ret or rfi seems to be that BSPSTORE 
is forced to BSP when RSE.BOF is updated into the clean partition. 
However, this behavior is lacking documentation in one of the ASDM.

Christian


____________
Virus checked by G DATA AntiVirusKit



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: RSE and incomplete register frame
  2006-08-02  8:17 RSE and incomplete register frame Christian Hildner
@ 2006-08-03  5:41 ` Matthew Chapman
  2006-08-03  9:09 ` Christian Hildner
  1 sibling, 0 replies; 3+ messages in thread
From: Matthew Chapman @ 2006-08-03  5:41 UTC (permalink / raw)
  To: linux-ia64

Hi Christian,

It took me a while to get my head around this.  I'm not convinced that
the documentation is incorrect, although they are maybe looking at it
from a slightly different perspective.

Keep in mind Figure 6-3... the current partition is above the dirty
partition is above the clean partition.  RSE operation should preserve
this relationship (as I see it).

Also, note that the registers in the current partition, even though not
technically part of the dirty partition, are necessarily dirty... they
may be targeted at any time by writebacks.

> while developing an instruction set simulator

I'd be interested in learning more about this simulator :)

> incomplete register frame (ASDM vol. 2) to be inaccurate. It says that 
> the incomplete frame becomes complete when RSE.ndirty_words becomes 
> non-negative by executing mandatory RSE loads. However, mandatory RSE 
> loads are not touching BSPSTORE or the dirty partition.

Indirectly they are, because presumably the dirty partition (and BSPSTORE)
must remain squeezed between the invalid partition and the current
partition (albeit being zero-size, or negative-size depending on how you
look at it - the invalid partition extends into the current partition!).

> RSE loads are extending the clean partition.

IMHO there is no clean partition.  The RSE loads are targeting the current
frame so they are immediately dirty+current.

> Furthermore if you consider RSE.BOF to 
> end up inside the clean partition after a br.ret or rfi, then BSPSTORE 
> is located above BSP.

RSE.BOF by definition ends up in the current partition (which is
immediately dirty), which is above the other dirty registers (if any) in
the dirty partition, which is above the clean partition.  Hence in the
normal case BSPSTORE is less than or equal to BSP.

Hope this helps, feel free to argue with me if you disagree.

Matt


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: RSE and incomplete register frame
  2006-08-02  8:17 RSE and incomplete register frame Christian Hildner
  2006-08-03  5:41 ` Matthew Chapman
@ 2006-08-03  9:09 ` Christian Hildner
  1 sibling, 0 replies; 3+ messages in thread
From: Christian Hildner @ 2006-08-03  9:09 UTC (permalink / raw)
  To: linux-ia64

Matthew Chapman schrieb:

>Hi Christian,
>
>It took me a while to get my head around this.  
>
>>while developing an instruction set simulator
>>    
>>
>I'd be interested in learning more about this simulator :)
>
It will become a functional IA64 simulator with some more features 
compared to HP Ski. And in opposite to HP Ski it also has the clean 
partition architected.

>>incomplete register frame (ASDM vol. 2) to be inaccurate. It says that 
>>the incomplete frame becomes complete when RSE.ndirty_words becomes 
>>non-negative by executing mandatory RSE loads. However, mandatory RSE 
>>loads are not touching BSPSTORE or the dirty partition.
>>    
>>
>Indirectly they are, because presumably the dirty partition (and BSPSTORE)
>must remain squeezed between the invalid partition and the current
>partition (albeit being zero-size, or negative-size depending on how you
>look at it - the invalid partition extends into the current partition!).
>
>>RSE loads are extending the clean partition.
>>    
>>
>IMHO there is no clean partition.  The RSE loads are targeting the current
>frame so they are immediately dirty+current.
>
>>Furthermore if you consider RSE.BOF to 
>>end up inside the clean partition after a br.ret or rfi, then BSPSTORE 
>>is located above BSP.
>>    
>>
>RSE.BOF by definition ends up in the current partition (which is
>immediately dirty), which is above the other dirty registers (if any) in
>the dirty partition, which is above the clean partition.  Hence in the
>normal case BSPSTORE is less than or equal to BSP.
>
It looks to me like the clean partition only exists in the high level 
IA64 architecture design. The clean partition is probably lacking in the 
Intel reference models as well as in current hardware designs. So the 
documentation does not care a lot about the clean partition and leaves 
it up to the phantasy of the reader what happens to it in the case of a 
br.ret or rfi.

>Hope this helps, feel free to argue with me if you disagree.
>
Your idea of treating all former clean regs as current dirty regs and so 
logically flushing the clean parition is exactly the way I solved the 
issue in our simulator.

Thanks

Christian


____________
Virus checked by G DATA AntiVirusKit



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-08-03  9:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-02  8:17 RSE and incomplete register frame Christian Hildner
2006-08-03  5:41 ` Matthew Chapman
2006-08-03  9:09 ` Christian Hildner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox