发明名称 Processing core with speculative register preprocessing in unused execution unit cycles
摘要 A method and circuit arrangement speculatively preprocess data stored in a register file during otherwise unused cycles in an execution unit, e.g., to prenormalize denormal floating point values stored in a floating point register file, to decompress compressed values stored in a register file, to decrypt encrypted values stored in a register file, or to otherwise preprocess data that is stored in an unprocessed form in a register file.
申请公布号 US9195463(B2) 申请公布日期 2015.11.24
申请号 US201113307575 申请日期 2011.11.30
申请人 International Business Machines Corporation 发明人 Hickey Mark J.;Muff Adam J.;Tubbs Matthew R.;Wait Charles D.
分类号 G06F9/302;G06F9/38;G06F7/499;G06F9/30 主分类号 G06F9/302
代理机构 Middleton Reutinger 代理人 Middleton Reutinger
主权项 1. A method of prenormalizing denormal floating point values stored in a floating point register file in a processing core of the type including an issue unit and a floating point execution unit coupled to the floating point register file, wherein the issue unit is configured to issue instructions from an instruction stream to the floating point execution unit for execution thereby, the method comprising: speculatively scanning the floating point register file with background scavenging logic coupled to the floating point register file to identify a floating point register that stores a denormal floating point value, wherein speculatively scanning the floating point register file includes sequencing through each of a plurality of floating point registers in the floating point register file; wherein speculatively scanning the floating point register file is not performed specifically in response to any instruction in the instruction stream; in response to identifying the floating point register, issuing a first instruction to the floating point execution unit coupled to the floating point register file during a spare cycle of the floating point execution unit, wherein the first instruction is configured to normalize the denormal floating point value to generate a normal floating point value; storing the normal floating point value in a scratch register in response to execution of the first instruction by the floating point execution unit; and in response to a second instruction from the instruction stream that references the floating point register that stores the denormal floating point value, modifying the second instruction to reference the scratch register and issuing the modified second instruction to the floating point execution unit such that the modified second instruction uses the normal floating point value.
地址 Armonk NY US