1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 115 unchanged lines hidden (view full) ---

124 total_outstanding += m_writeRequestTable.size();
125 total_outstanding += m_readRequestTable.size();
126
127 assert(m_outstanding_count == total_outstanding);
128
129 if (m_outstanding_count > 0) {
130 // If there are still outstanding requests, keep checking
131 schedule(deadlockCheckEvent,
132 m_deadlock_threshold * g_system_ptr->getClock() +
133 curTick());
132 g_system_ptr->clockPeriod() * m_deadlock_threshold + curTick());
133 }
134}
135
136void
137Sequencer::printStats(ostream & out) const
138{
139 out << "Sequencer: " << m_name << endl
140 << " store_waiting_on_load_cycles: "

--- 63 unchanged lines hidden (view full) ---

204Sequencer::insertRequest(PacketPtr pkt, RubyRequestType request_type)
205{
206 assert(m_outstanding_count ==
207 (m_writeRequestTable.size() + m_readRequestTable.size()));
208
209 // See if we should schedule a deadlock check
210 if (deadlockCheckEvent.scheduled() == false) {
211 schedule(deadlockCheckEvent,
213 m_deadlock_threshold * g_system_ptr->getClock()
214 + curTick());
212 g_system_ptr->clockPeriod() * m_deadlock_threshold + curTick());
213 }
214
215 Address line_addr(pkt->getAddr());
216 line_addr.makeLineAddress();
217 if ((request_type == RubyRequestType_ST) ||
218 (request_type == RubyRequestType_RMW_Read) ||
219 (request_type == RubyRequestType_RMW_Write) ||
220 (request_type == RubyRequestType_Load_Linked) ||

--- 511 unchanged lines hidden ---