Hi Could you please let me know in which of the following state(s), a row buffer entry can be distinguished as a mis-speculated one? What is the last state a speculative row buffer entry can reside(switch to) before getting the acknowledge that the speculation was correct and it can go further (or be committed)?
Thanks StateList rob_free_list; // Free ROB entyry StateList rob_frontend_list; // Frontend in progress (artificial delay) StateList rob_ready_to_dispatch_list; // Ready to dispatch StateList rob_dispatched_list[MAX_CLUSTERS]; // Dispatched but waiting for operands StateList rob_ready_to_issue_list[MAX_CLUSTERS]; // Ready to issue (all operands ready) StateList rob_ready_to_store_list[MAX_CLUSTERS]; // Ready to store (all operands except possibly rc are ready) StateList rob_ready_to_load_list[MAX_CLUSTERS]; // Ready to load (all operands ready) StateList rob_issued_list[MAX_CLUSTERS]; // Issued and in progress (or for loads, returned here after address is generated) StateList rob_completed_list[MAX_CLUSTERS]; // Completed and result in transit for local and global forwarding StateList rob_ready_to_writeback_list[MAX_CLUSTERS]; // Completed; result ready to writeback in parallel across all cluster register files StateList rob_cache_miss_list; // Loads only: wait for cache miss to be serviced StateList rob_tlb_miss_list; // TLB miss waiting to be serviced on one or more levels StateList rob_memory_fence_list; // mf uops only: wait for memory fence to reach head of LSQ before completing StateList rob_ready_to_commit_queue; // Ready to commit
_______________________________________________ http://www.marss86.org Marss86-Devel mailing list [email protected] https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
