Re: [Gems-users] Identifying outstanding transaction


Date: Fri, 22 Jun 2007 18:39:09 -0500
From: Mike Marty <mikem@xxxxxxxxxxx>
Subject: Re: [Gems-users] Identifying outstanding transaction
If there is a TBE already allocated for a block, then the controller will likely see a different state indicating this. Have a look at the getState() function inside of each controller. As you will see, it will return the state either in an already allocated TBE (usually indicating another request outstanding), or the state in the cache block. If a request is already outstanding for the block, then the controller will typically stall the subsequent request (with z_stall), or "recycle" the request by popping it off of the queue and re-enqueuing it for a later time.
--Mike


Juyoung Jung wrote:
Dear list,


I read "No transactions can be issued if there is already an outstanding transaction for that block." from some documents. However, TBETable's allocate( ) method performs allocation without checking outstanding transactions except for bold assert statement. I guess there may exist routine for this address comparison elsewhere. I will appreciate any response from you.

template<class ENTRY>
extern inline
void TBETable<ENTRY>::allocate(const Address& address)
{
  assert(isPresent(address) == false);
  assert(m_map.size() < m_numberOfTBEs);
  g_system_ptr->getProfiler()->L2tbeUsageSample(m_map.size());
  m_map.add(address, ENTRY());
}


Thank you.


- Young
------------------------------------------------------------------------

_______________________________________________
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→]