commit.hh (10193:d717abc806aa) commit.hh (10328:867b536a68be)
1/*
2 * Copyright (c) 2010-2012 ARM Limited
3 * All rights reserved.
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

180 void setRenameQueue(TimeBuffer<RenameStruct> *rq_ptr);
181
182 /** Sets the pointer to the queue coming from IEW. */
183 void setIEWQueue(TimeBuffer<IEWStruct> *iq_ptr);
184
185 /** Sets the pointer to the IEW stage. */
186 void setIEWStage(IEW *iew_stage);
187
1/*
2 * Copyright (c) 2010-2012 ARM Limited
3 * All rights reserved.
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

180 void setRenameQueue(TimeBuffer<RenameStruct> *rq_ptr);
181
182 /** Sets the pointer to the queue coming from IEW. */
183 void setIEWQueue(TimeBuffer<IEWStruct> *iq_ptr);
184
185 /** Sets the pointer to the IEW stage. */
186 void setIEWStage(IEW *iew_stage);
187
188 /** Skid buffer between rename and commit. */
189 std::queue<DynInstPtr> skidBuffer;
190
191 /** The pointer to the IEW stage. Used solely to ensure that
192 * various events (traps, interrupts, syscalls) do not occur until
193 * all stores have written back.
194 */
195 IEW *iewStage;
196
197 /** Sets pointer to list of active threads. */
198 void setActiveThreads(std::list<ThreadID> *at_ptr);

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

246 */
247 void updateStatus();
248
249 /** Sets the next status based on threads' statuses, which becomes the
250 * current status at the end of the cycle.
251 */
252 void setNextStatus();
253
188 /** The pointer to the IEW stage. Used solely to ensure that
189 * various events (traps, interrupts, syscalls) do not occur until
190 * all stores have written back.
191 */
192 IEW *iewStage;
193
194 /** Sets pointer to list of active threads. */
195 void setActiveThreads(std::list<ThreadID> *at_ptr);

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

243 */
244 void updateStatus();
245
246 /** Sets the next status based on threads' statuses, which becomes the
247 * current status at the end of the cycle.
248 */
249 void setNextStatus();
250
254 /** Checks if the ROB is completed with squashing. This is for the case
255 * where the ROB can take multiple cycles to complete squashing.
256 */
257 bool robDoneSquashing();
258
259 /** Returns if any of the threads have the number of ROB entries changed
260 * on this cycle. Used to determine if the number of free ROB entries needs
261 * to be sent back to previous stages.
262 */
263 bool changedROBEntries();
264
265 /** Squashes all in flight instructions. */
266 void squashAll(ThreadID tid);

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

316 /** Tries to commit the head ROB instruction passed in.
317 * @param head_inst The instruction to be committed.
318 */
319 bool commitHead(DynInstPtr &head_inst, unsigned inst_num);
320
321 /** Gets instructions from rename and inserts them into the ROB. */
322 void getInsts();
323
251 /** Returns if any of the threads have the number of ROB entries changed
252 * on this cycle. Used to determine if the number of free ROB entries needs
253 * to be sent back to previous stages.
254 */
255 bool changedROBEntries();
256
257 /** Squashes all in flight instructions. */
258 void squashAll(ThreadID tid);

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

308 /** Tries to commit the head ROB instruction passed in.
309 * @param head_inst The instruction to be committed.
310 */
311 bool commitHead(DynInstPtr &head_inst, unsigned inst_num);
312
313 /** Gets instructions from rename and inserts them into the ROB. */
314 void getInsts();
315
324 /** Insert all instructions from rename into skidBuffer */
325 void skidInsert();
326
327 /** Marks completed instructions using information sent from IEW. */
328 void markCompletedInsts();
329
330 /** Gets the thread to commit, based on the SMT policy. */
331 ThreadID getCommittingThread();
332
333 /** Returns the thread ID to use based on a round robin policy. */
334 ThreadID roundRobin();

--- 210 unchanged lines hidden ---
316 /** Marks completed instructions using information sent from IEW. */
317 void markCompletedInsts();
318
319 /** Gets the thread to commit, based on the SMT policy. */
320 ThreadID getCommittingThread();
321
322 /** Returns the thread ID to use based on a round robin policy. */
323 ThreadID roundRobin();

--- 210 unchanged lines hidden ---