Patents by Inventor Robert A. Philhower
Robert A. Philhower has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20260133798Abstract: A vector table for addressing registers within a processor is disclosed. The vector table includes multiple vector table entries to allow a processor to access a set of registers indirectly. One of the vector table entries includes a register entry number field containing an entry number to indicate a first entry to the set of registers; a vector length field containing a number to indicate whether the one vector table entry points to a single entry of the set of registers or multiple entries of the set of registers concurrently; and a vector stride pattern field containing a stride number to indicate a relative distance between the first entry of the set of registers and another entries of the set of registers when the one vector table entry points to multiple entries of the set of registers.Type: ApplicationFiled: November 12, 2024Publication date: May 14, 2026Applicant: International Business Machines CorporationInventors: Robert A. Philhower, Robert K. Montoye, John-David Wellman
-
Patent number: 12574204Abstract: An apparatus including a computer architecture is provided. The computer architecture includes: a register file; computing engines; and routing circuitry. The apparatus is configured to determine a target configuration associated with one or more computing engines and one or more register banks of the register file or a partition of the register file, based on a target parallelism and a target processing scope for processing data stored at the one or more register banks. The apparatus is configured to couple the one or more computing engines to the one or more register banks, using the routing circuitry, based on the target configuration. The apparatus is configured to perform, by the one or more computing engines and based on the coupling and the target configuration, one or more computing operations on data stored at one or more respective registers of the one or more register banks.Type: GrantFiled: January 19, 2024Date of Patent: March 10, 2026Assignee: International Business Machines CorporationInventors: Charanjit Singh Jutla, Robert A. Philhower, Robert K. Montoye, Nathan J. Manohar
-
Publication number: 20250240149Abstract: An apparatus including a computer architecture is provided. The computer architecture includes: a register file; computing engines; and routing circuitry. The apparatus is configured to determine a target configuration associated with one or more computing engines and one or more register banks of the register file or a partition of the register file, based on a target parallelism and a target processing scope for processing data stored at the one or more register banks. The apparatus is configured to couple the one or more computing engines to the one or more register banks, using the routing circuitry, based on the target configuration. The apparatus is configured to perform, by the one or more computing engines and based on the coupling and the target configuration, one or more computing operations on data stored at one or more respective registers of the one or more register banks.Type: ApplicationFiled: January 19, 2024Publication date: July 24, 2025Inventors: Charanjit Singh Jutla, Robert A. Philhower, Robert K. Montoye, Nathan J. Manohar
-
Patent number: 11157280Abstract: Aspects of the invention include receiving, by a processor, a plurality of instructions at an instruction pipeline. The processor can further determine an operand bit field size for each of the received plurality of instructions. The processor can further compare the operand bit field size of at least a subset of the received instructions to a predetermined threshold. The processor can further fuse at least two of the received instructions that have an operand bit field size that meets the predetermined threshold. The processor can further perform an execution stage within the instruction pipeline to execute the received instructions, including the fused instructions.Type: GrantFiled: December 7, 2017Date of Patent: October 26, 2021Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Maarten J. Boersma, Bruce Fleischer, Robert A. Philhower, Balaram Sinharoy
-
Patent number: 11074379Abstract: For each of a plurality of source-sink pairs, a corresponding interconnect layer is selected having a reach length which permits propagation of a required signal within a required sink cycle delay. For a first clock cycle, a movable region for a first latch is located as a first plurality of overlapped regions one reach length from a source and the required sink cycle delay number of reach lengths from each one of the sinks; and the first plurality of overlapped regions is represented as nodes on a first cycle level of a topology search graph. Analogous actions are carried out for a second clock cycle of the required sink cycle delay. A latch tree is created based on the topology search graph, wherein a required number of latches is minimized, and at each of the cycle levels, all sinks of source nodes selected at a previous level are covered.Type: GrantFiled: March 30, 2019Date of Patent: July 27, 2021Assignee: International Business Machines CorporationInventors: Lakshmi N. Reddy, Gustavo Enrique Tellez, Paul G. Villarrubia, Christopher Joseph Berry, Michael Hemsley Wood, Robert A. Philhower, Gi-Joon Nam, Jinwook Jung
-
Publication number: 20200311221Abstract: For each of a plurality of source-sink pairs, a corresponding interconnect layer is selected having a reach length which permits propagation of a required signal within a required sink cycle delay. For a first clock cycle, a movable region for a first latch is located as a first plurality of overlapped regions one reach length from a source and the required sink cycle delay number of reach lengths from each one of the sinks; and the first plurality of overlapped regions is represented as nodes on a first cycle level of a topology search graph. Analogous actions are carried out for a second clock cycle of the required sink cycle delay. A latch tree is created based on the topology search graph, wherein a required number of latches is minimized, and at each of the cycle levels, all sinks of source nodes selected at a previous level are covered.Type: ApplicationFiled: March 30, 2019Publication date: October 1, 2020Inventors: Lakshmi N. Reddy, Gustavo Enrique Tellez, Paul G. Villarrubia, Christopher Joseph Berry, Michael Hemsley Wood, Robert A. Philhower, Gi-Joon Nam, Jinwook Jung
-
Patent number: 10740104Abstract: A processor-implemented method is provided. The processor-implemented includes reading, by a processor, an instruction stream by fetching instructions from an instruction cache of the processor. The processor then executes a branch prediction operation based on a context of the instruction stream and an index when one of the instructions includes a branch instruction. The branch prediction operation output a prediction and a context. The processor then compares the context of the instruction stream and the context from the branch prediction operation to determine whether to execute a stop fetch.Type: GrantFiled: August 16, 2018Date of Patent: August 11, 2020Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Jentje Leenstra, Nicholas R. Orzol, Christian Zoellin, Michael J. Genden, Robert A. Philhower
-
Patent number: 10579384Abstract: Aspects of the invention include a computer-implemented method for executing one or more instructions by a processing unit. The method includes receiving, by an instruction fetch unit (IFU), a request to fetch an instruction for execution, wherein the instruction includes an effective address (EA). The IFU can further access an instruction cache directory (I-directory) using the EA of the requested instruction to determine whether the EA of the requested instruction matches an EA stored in an associated instruction cache (I-cache). An instruction cache (I-cache) can output the requested instruction in response to or based at least in part on determining that the requested instruction EA matches an entry in the I-cache. A decode unit can decode the requested instruction output by the I-cache.Type: GrantFiled: December 8, 2017Date of Patent: March 3, 2020Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Robert A. Philhower, Balaram Sinharoy
-
Publication number: 20200057641Abstract: A processor-implemented method is provided. The processor-implemented includes reading, by a processor, an instruction stream by fetching instructions from an instruction cache of the processor. The processor then executes a branch prediction operation based on a context of the instruction stream and an index when one of the instructions includes a branch instruction. The branch prediction operation output a prediction and a context. The processor then compares the context of the instruction stream and the context from the branch prediction operation to determine whether to execute a stop fetch.Type: ApplicationFiled: August 16, 2018Publication date: February 20, 2020Inventors: Jentje Leenstra, Nicholas R. Orzol, Christian Zoellin, Michael J. Genden, Robert A. Philhower
-
Patent number: 10552159Abstract: A computer processor includes a branch prediction unit that includes a local branch predictor and a global branch predictor. Managing power consumption in such a computer processor includes, for each of a plurality of branch instructions: performing, by the local branch predictor, a local branch prediction; performing, by each of the global branch predictors, a global branch prediction; determining to utilize the local branch prediction over the global branch predictions as a branch prediction for the branch instruction; incrementing a value of a counter; determining whether the value of the counter exceeds a predetermined threshold; and if the value of the counter exceeds the predetermined threshold, powering down at least one of the global branch predictors and configuring the branch prediction unit to bypass the powered down global branch predictor for branch predictions of subsequent branch instructions.Type: GrantFiled: June 1, 2018Date of Patent: February 4, 2020Assignee: International Business Machines CorporationInventors: David S. Levitan, Nicholas R. Orzol, Robert A. Philhower
-
Publication number: 20190179639Abstract: Aspects of the invention include receiving, by a processor, a plurality of instructions at an instruction pipeline. The processor can further determine an operand bit field size for each of the received plurality of instructions. The processor can further compare the operand bit field size of at least a subset of the received instructions to a predetermined threshold. The processor can further fuse at least two of the received instructions that have an operand bit field size that meets the predetermined threshold. The processor can further perform an execution stage within the instruction pipeline to execute the received instructions, including the fused instructions.Type: ApplicationFiled: December 7, 2017Publication date: June 13, 2019Inventors: Maarten J. Boersma, Bruce Fleischer, Robert A. Philhower, Balaram Sinharoy
-
Publication number: 20190179641Abstract: Aspects of the invention include a computer-implemented method for executing one or more instructions by a processing unit. The method includes receiving, by an instruction fetch unit (IFU), a request to fetch an instruction for execution, wherein the instruction includes an effective address (EA). The IFU can further access an instruction cache directory (I-directory) using the EA of the requested instruction to determine whether the EA of the requested instruction matches an EA stored in an associated instruction cache (I-cache). An instruction cache (I-cache) can output the requested instruction in response to or based at least in part on determining that the requested instruction EA matches an entry in the I-cache. A decode unit can decode the requested instruction output by the I-cache.Type: ApplicationFiled: December 8, 2017Publication date: June 13, 2019Inventors: Robert A. Philhower, Balaram Sinharoy
-
Publication number: 20180275993Abstract: A computer processor includes a branch prediction unit that includes a local branch predictor and a global branch predictor. Managing power consumption in such a computer processor includes, for each of a plurality of branch instructions: performing, by the local branch predictor, a local branch prediction; performing, by each of the global branch predictors, a global branch prediction; determining to utilize the local branch prediction over the global branch predictions as a branch prediction for the branch instruction; incrementing a value of a counter; determining whether the value of the counter exceeds a predetermined threshold; and if the value of the counter exceeds the predetermined threshold, powering down at least one of the global branch predictors and configuring the branch prediction unit to bypass the powered down global branch predictor for branch predictions of subsequent branch instructions.Type: ApplicationFiled: June 1, 2018Publication date: September 27, 2018Inventors: DAVID S. LEVITAN, NICHOLAS R. ORZOL, ROBERT A. PHILHOWER
-
Patent number: 10037207Abstract: A computer processor includes a branch prediction unit that includes a local branch predictor and a global branch predictor. Managing power consumption in such a computer processor includes, for each of a plurality of branch instructions: performing, by the local branch predictor, a local branch prediction; performing, by each of the global branch predictors, a global branch prediction; determining to utilize the local branch prediction over the global branch predictions as a branch prediction for the branch instruction; incrementing a value of a counter; determining whether the value of the counter exceeds a predetermined threshold; and if the value of the counter exceeds the predetermined threshold, powering down at least one of the global branch predictors and configuring the branch prediction unit to bypass the powered down global branch predictor for branch predictions of subsequent branch instructions.Type: GrantFiled: July 27, 2016Date of Patent: July 31, 2018Assignee: International Business Machines CorporationInventors: David S. Levitan, Nicholas R. Orzol, Robert A. Philhower
-
Patent number: 9996351Abstract: A computer processor includes a branch prediction unit that includes a local branch predictor and a global branch predictor. Managing power consumption in such a computer processor includes, for each of a plurality of branch instructions: performing, by the local branch predictor, a local branch prediction; performing, by each of the global branch predictors, a global branch prediction; determining to utilize the local branch prediction over the global branch predictions as a branch prediction for the branch instruction; incrementing a value of a counter; determining whether the value of the counter exceeds a predetermined threshold; and if the value of the counter exceeds the predetermined threshold, powering down at least one of the global branch predictors and configuring the branch prediction unit to bypass the powered down global branch predictor for branch predictions of subsequent branch instructions.Type: GrantFiled: May 26, 2016Date of Patent: June 12, 2018Assignee: International Business Machines CorporationInventors: David S. Levitan, Nicholas R. Orzol, Robert A. Philhower
-
Publication number: 20170344377Abstract: A computer processor includes a branch prediction unit that includes a local branch predictor and a global branch predictor. Managing power consumption in such a computer processor includes, for each of a plurality of branch instructions: performing, by the local branch predictor, a local branch prediction; performing, by each of the global branch predictors, a global branch prediction; determining to utilize the local branch prediction over the global branch predictions as a branch prediction for the branch instruction; incrementing a value of a counter; determining whether the value of the counter exceeds a predetermined threshold; and if the value of the counter exceeds the predetermined threshold, powering down at least one of the global branch predictors and configuring the branch prediction unit to bypass the powered down global branch predictor for branch predictions of subsequent branch instructions.Type: ApplicationFiled: May 26, 2016Publication date: November 30, 2017Inventors: DAVID S. LEVITAN, NICHOLAS R. ORZOL, ROBERT A. PHILHOWER
-
Publication number: 20170344372Abstract: A computer processor includes a branch prediction unit that includes a local branch predictor and a global branch predictor. Managing power consumption in such a computer processor includes, for each of a plurality of branch instructions: performing, by the local branch predictor, a local branch prediction; performing, by each of the global branch predictors, a global branch prediction; determining to utilize the local branch prediction over the global branch predictions as a branch prediction for the branch instruction; incrementing a value of a counter; determining whether the value of the counter exceeds a predetermined threshold; and if the value of the counter exceeds the predetermined threshold, powering down at least one of the global branch predictors and configuring the branch prediction unit to bypass the powered down global branch predictor for branch predictions of subsequent branch instructions.Type: ApplicationFiled: July 27, 2016Publication date: November 30, 2017Inventors: DAVID S. LEVITAN, NICHOLAS R. ORZOL, ROBERT A. PHILHOWER
-
Patent number: 7797521Abstract: A method, system, and computer program product are provided, for maintaining a path history register of register indirect branches. A set of bits is generated based on a set of target address bits using a hit selection and/or a hash function operation, and the generated set of bits is inserted into a path history register by shifting bits in the path history register and/or applying a hash operation, information corresponding to prior history is removed from the path history register, using a shift out operation and/or a hash operation. The path, history register is used to maintain a recent target, table and generate register-indirect branch target address predictions based on path history correlation between register-indirect branches captured by the path history register.Type: GrantFiled: April 12, 2007Date of Patent: September 14, 2010Assignee: International Business Machines CorporationInventors: Richard J. Eickemeyer, Michael K. Gschwind, Ravi Nair, Robert A. Philhower
-
Publication number: 20100031011Abstract: The invention relates to a method and apparatus for controlling the instruction flow in a computer system and more particularly to the predicting of outcome of branch instructions using branch prediction arrays, such as BHTs. In an embodiment, the invention allows concurrent BHT read and write accesses without the need for a multi-ported BHT design, while still providing comparable performance to that of a multi-ported BHT design.Type: ApplicationFiled: August 4, 2008Publication date: February 4, 2010Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Lei Chen, David S. Levitan, David Mui, Robert A. Philhower
-
Publication number: 20080256347Abstract: A method, system, and computer program product are provided, for maintaining a path history register of register indirect branches. A set of bits is generated based on a set of target address bits using a hit selection and/or a hash function operation, and the generated set of bits is inserted into a path history register by shifting bits in the path history register and/or applying a hash operation, information corresponding to prior history is removed from the path history register, using a shift out operation and/or a hash operation. The path, history register is used to maintain a recent target, table and generate register-indirect branch target address predictions based on path history correlation between register-indirect branches captured by the path history register.Type: ApplicationFiled: April 12, 2007Publication date: October 16, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Richard J. Eickemeyer, Michael K. Gschwind, Ravi Nair, Robert A. Philhower