[Gems-users] need help


Date: Sat, 20 Feb 2010 12:08:16 -0800 (PST)
From: amer elkourd <el_kourd@xxxxxxxxx>
Subject: [Gems-users] need help

Dear sir,

I am simulating a new  protocol that is based on bit vector protocol . I am using simics with GEMS toolset.

The directory consist of  2 state bit (dirty bit and a shared bit )and a tag field

Where the tag field depends on the directory states

If the directory is dirty the tag field contains the id of the dirty node and we don’t need to allocate presence bit entry

 And If the directory is shared the tag field containsa link to the memory address of the presence bit entry (the presence bit will be allocated dynamically in memory  )

 

I need a code for each of the following :

 

1.  Write address of requester in tag field

2. Write the address of directory in tag field

3. Add new directory entry in memory and set the presence bit of requester

4. To set dirty bit and reset the shared bit

5. Fetch data

6. Send an ownership message

 

Please help me I need it very urgently

 

 With best regard

Amer elkourd

 

 

For example the existing code in GEMS for sending data is

action(d_sendData, "d", desc="Send data to requestor") {

peek(requestQueue_in, RequestMsg) {

enqueue(responseNetwork_out, ResponseMsg, latency="MEMORY_LATENCY") {

out_msg.Address := address;

if(in_msg.Type == CoherenceRequestType:GETS) {

out_msg.Type := CoherenceResponseType:DATA;

} else {

error("issued GETS to Dir from I");}

 


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