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 --- |