MECHANISM TO PRECLUDE I/O-DEPENDENT LOAD REPLAYS IN OUT-OF-ORDER PROCESSOR

    公开(公告)号:EP3049956B1

    公开(公告)日:2018-10-10

    申请号:EP14891599.4

    申请日:2014-12-14

    IPC分类号: G06F15/163

    摘要: An apparatus including first and second reservation stations. The first reservation station dispatches a load micro instruction, and indicates on a hold bus if the load micro instruction is a specified load micro instruction directed to retrieve an operand from a prescribed resource other than on-core cache memory. The second reservation station is coupled to the hold bus, and dispatches one or more younger micro instructions therein that depend on the load micro instruction for execution after a number of clock cycles following dispatch of the first load micro instruction, and if it is indicated on the hold bus that the load micro instruction is the specified load micro instruction, the second reservation station is configured to stall dispatch of the one or more younger micro instructions until the load micro instruction has retrieved the operand. The resources include an input/output (I/O) unit, configured to perform I/O operations via an I/O bus coupling an out-of-order processor to I/O resources.

    SEPARATE TRACKING OF PENDING LOADS AND STORES

    公开(公告)号:EP3367235A1

    公开(公告)日:2018-08-29

    申请号:EP17159096.1

    申请日:2017-03-03

    IPC分类号: G06F9/30 G06F9/38

    摘要: Systems, apparatuses, and methods for maintaining separate pending load and store counters are disclosed herein. In one embodiment, a system includes at least one execution unit, a memory subsystem, and a pair of counters for each thread of execution. In one embodiment, the system implements a software based approach for managing dependencies between instructions. In one embodiment, the execution unit(s) maintains counters to support the software-based approach for managing dependencies between instructions. The execution unit(s) are configured to execute instructions that are used to manage the dependencies during run-time. In one embodiment, the execution unit(s) execute wait instructions to wait until a given counter is equal to a specified value before continuing to execute the instruction sequence.