发明名称 Register window performance via lazy register fills
摘要 The present embodiments provide a system that facilitates lazy register window fills in a processor. During program execution, when the system encounters a restore instruction for a register window, the system determines if the restore instruction causes an underflow condition that requires the register window to be filled from a stack in memory. If so, the system completes the restore instruction by updating state information for the register window to indicate that the restore instruction is complete without actually filling the individual registers that comprise the register window from the stack. During subsequent program execution, the system lazily fills registers in the register window from the stack as the registers are accessed by the program.
申请公布号 US9535697(B2) 申请公布日期 2017.01.03
申请号 US201313932473 申请日期 2013.07.01
申请人 ORACLE INTERNATIONAL CORPORATION 发明人 Chou Yuan C.
分类号 G06F9/00;G06F9/44;G06F9/30;G06F9/38 主分类号 G06F9/00
代理机构 Park, Vaughan, Fleming & Dowler LLP 代理人 Park, Vaughan, Fleming & Dowler LLP
主权项 1. A method for facilitating lazy register window fills, comprising: while executing a program, upon encountering a restore instruction for a register window, determining if the restore instruction causes an underflow condition that requires the register window to be filled from a stack in memory; and if the restore instruction causes an underflow condition, completing the restore instruction by updating state information for the register window to indicate that the restore instruction is complete without actually filling individual registers that comprise the register window from the stack, andduring subsequent program execution, lazily filling registers in the register window from the stack as the registers are accessed by the program by: keeping track of which registers in the register window are valid by keeping track of which registers have been filled from the stack or have been updated during program execution; andupon encountering an instruction that loads from a register in the register window, determining if the register is valid, and if not filling the register from the stack before the instruction loads from the register by inserting a fill instruction for the register into an execution pipeline ahead of the instruction that loads from the register.
地址 Redwood Shores CA US