Re: [Gems-users] Generating a new line address in Ruby


Date: Sat, 8 Dec 2007 10:05:13 -0600
From: "Mike Marty" <mike.marty@xxxxxxxxx>
Subject: Re: [Gems-users] Generating a new line address in Ruby
How are you issuing the prefetch?  The assertion indicates that the DirectoryController got a message for an address that falls outside of its mapped range.

--Mike


On Dec 8, 2007 3:28 AM, Tushar Krishna ( tkrishna@xxxxxxxxxxxxx) <tkrishna@xxxxxxxxxxxxx> wrote:
Hi,
I am trying to implement data prefetch in ruby.
I wish to prefetch the next line of memory on a miss from L2.

I faced a problem in generating the new address to prefetch.

>From the ruby code I saw that the Sequencer generates the line address from the request address and that is what is sent to L1 and L2 and the memory. So the addr that the L2Cache controller receives is the line address. Initially I tried using makeNextStrideAddress(1) for the prefetch line but got a runtime error in simics :

failed assertion 'isPresent(address)' at fn Directory_Entry& DirectoryMemory::lookup(PhysAddress) in system/DirectoryMemory.C:132
failed assertion 'isPresent(address)' at fn Directory_Entry& DirectoryMemory::lookup(PhysAddress) in system/DirectoryMemory.C:132
At this point you might want to attach a debug to the running and get to the
crash site; otherwise press enter to continue
PID: 21441


I realized that makeNextStrideAddress does a maskLowOrderBits which I do not need as I already have the line address. So I created a new function that would just add RubyConfig::dataBlockBytes()*stride to the current address.
However, that also gave the same error.

Could anyone tell me where I'm going wrong?

Thanks
Tushar
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site: https://lists.cs.wisc.edu/archive/gems-users/" to your search.


[← Prev in Thread] Current Thread [Next in Thread→]