Patents by Inventor Richard William Doing
Richard William Doing 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: 20260195197Abstract: A computing device including a system-on-a-chip (SoC). The SoC includes a plurality of logic circuit blocks, including synchronization blocks and hardware accelerator blocks. A synchronization block is configured to receive a wait request from a first hardware accelerator block. The wait request includes one or more semaphores and one or more wait threshold values. The synchronization block is configured to store the wait request. The synchronization block is configured to receive, from a signal source block, a signal request that indicates a semaphore included among the one or more semaphores in the wait request. In response to receiving the signal request, the synchronization block is configured to update the semaphore. The synchronization block is configured to determine that the updated value of the semaphore has reached the wait threshold value and to transmit a wait completion response to at least the first hardware accelerator block.Type: ApplicationFiled: January 7, 2025Publication date: July 9, 2026Applicant: Microsoft Technology Licensing, LLCInventors: Richard William DOING, Chulian ZHANG, Lu WAN, James Oscar TINGEN, Xiaoling XU, George PETRE, Thomas Craig SAVELL, Andrew Alan PFEIFER
-
Patent number: 12086600Abstract: Embodiments of the present disclosure include techniques for branch prediction. A branch predictor may be included in a front end of a processor. The branch predictor may store branch targets in a branch target buffer. The branch target buffer includes shared bits, which may be combined with branch target bits to specify branch target destination addresses. Shared bits may result in more efficient memory usage in the processor, for example.Type: GrantFiled: December 5, 2022Date of Patent: September 10, 2024Assignee: Microsoft Technology Licensing, LLCInventors: Somasundaram Arunachalam, Daren Eugene Streett, Richard William Doing
-
Publication number: 20240192957Abstract: Embodiments of the present disclosure include techniques for branch prediction. A branch predictor may be included in a processor. The branch predictor may use heuristics to control lookups against multiple different memory caches in a branch target buffer. In one embodiment, a branch predictor monitors successful lookups and a lookup is performed against one cache before another cache based on a number of successful lookups. In another embodiment, lookups are performed against different caches based on a current available capacity of a fetch target queue.Type: ApplicationFiled: December 9, 2022Publication date: June 13, 2024Inventors: Somasundaram ARUNACHALAM, Daren Eugene STREETT, Richard William DOING
-
Publication number: 20240184587Abstract: Embodiments of the present disclosure include techniques for branch prediction. A branch predictor may be included in a front end of a processor. The branch predictor may store branch targets in a branch target buffer. The branch target buffer includes shared bits, which may be combined with branch target bits to specify branch target destination addresses. Shared bits may result in more efficient memory usage in the processor, for example.Type: ApplicationFiled: December 5, 2022Publication date: June 6, 2024Inventors: Somasundaram ARUNACHALAM, Daren Eugene STREETT, Richard William DOING
-
Patent number: 9715411Abstract: A technique for mapping logical threads to physical threads of a simultaneous multithreading (SMT) data processing system includes mapping one or more logical threads to one or more physical threads based on a selected SMT mode for a processor. In this case, respective resources for each of the one or more physical threads are predefined based on the SMT mode and an identifier of the one or more physical threads. The one or more physical threads are then executed on the processor utilizing the respective resources.Type: GrantFiled: February 5, 2014Date of Patent: July 25, 2017Assignee: International Business Machines CorporationInventors: Richard William Doing, Brian R. Konigsburg, David Stephen Levitan, Kevin Neal Magill
-
Publication number: 20150220366Abstract: A technique for mapping logical threads to physical threads of a simultaneous multithreading (SMT) data processing system includes mapping one or more logical threads to one or more physical threads based on a selected SMT mode for a processor. In this case, respective resources for each of the one or more physical threads are predefined based on the SMT mode and an identifier of the one or more physical threads. The one or more physical threads are then executed on the processor utilizing the respective resources.Type: ApplicationFiled: February 5, 2014Publication date: August 6, 2015Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Richard William Doing, Brian R. Konigsburg, David Stephen Levitan, Kevin Neal Magill
-
Patent number: 8479184Abstract: An information handling system includes a memory, a processor, and an instruction tracking unit. The processor executes program code and, while the program code executes, the instruction tracking unit decodes a multi-purpose no-op instruction within the program code. In turn, the instruction tracking unit sends an interrupt to the processor, which invokes a profiling module to collect and store profiling data in a profiling buffer.Type: GrantFiled: August 24, 2010Date of Patent: July 2, 2013Assignee: International Business Machines CorporationInventors: Richard William Doing, Venkat Rajeev Indukuru, Alexander Erik Mericas, Mauricio Jose Serrano, Zhong Liang Wang
-
Publication number: 20120054726Abstract: An information handling system includes a memory, a processor, and an instruction tracking unit. The processor executes program code and, while the program code executes, the instruction tracking unit decodes a multi-purpose no-op instruction within the program code. In turn, the instruction tracking unit sends an interrupt to the processor, which invokes a profiling module to collect and store profiling data in a profiling buffer.Type: ApplicationFiled: August 24, 2010Publication date: March 1, 2012Applicant: International Business Machines CorporationInventors: RICHARD WILLIAM DOING, VENKAT RAJEEV INDUKURU, ALEXANDER ERIK MERICAS, MAURICIO JOSE SERRANO, ZHONG LIANG WANG
-
Patent number: 8127115Abstract: Disclosed are a method and a system for grouping processor instructions for execution by a processor, where the group of processor instructions includes at least two branch processor instructions. In one or more embodiments, an instruction buffer can decouple an instruction fetch operation from an instruction decode operation by storing fetched processor instructions in the instruction buffer until the fetched processor instructions are ready to be decoded. Group formation can involve removing processor instructions from the instruction buffer and routing the processor instruction to latches that convey the processor instructions to decoders. Processor instructions that are removed from instruction buffer in a single clock cycle can be called a group of processor instructions. In one or more embodiments, the first instruction in the group must be the oldest instruction in the instruction buffer and instructions must be removed from the instruction buffer ordered from oldest to youngest.Type: GrantFiled: April 3, 2009Date of Patent: February 28, 2012Assignee: International Business Machines CorporationInventors: Richard William Doing, Kevin Neal Magil, Balaram Sinharoy, Jeffrey R. Summers, James Albert Van Norstrand, Jr.
-
Patent number: 8015565Abstract: A method, and apparatus are provided for preventing livelocks in processor selection of load requests in a multiprocessor (MP) system. On random occasions a selection mechanism is changed for first holding up all requests and then a random selection is made. Then a round robin selection mechanism is used for further requests. A livelock-preventing selection mechanism includes a pair of linear feedback shift registers (LFSRs), each LFSR for generating pseudo random values.Type: GrantFiled: November 21, 2005Date of Patent: September 6, 2011Assignee: International Business Machines CorporationInventors: Richard William Doing, John R. Patty, Steven Robert Testa, Thuong Quang Truong
-
Patent number: 7836287Abstract: A method and processor for reducing the fetch time of target instructions of a predicted taken branch instruction. Each entry in a buffer, referred to herein as a “branch target buffer”, may store an address of a branch instruction predicted taken and the instructions beginning at the target address of the branch instruction predicted taken. When an instruction is fetched from the instruction cache, a particular entry in the branch target buffer is indexed using particular bits of the fetched instruction. The address of the branch instruction in the indexed entry is compared with the address of the instruction fetched from the instruction cache. If there is a match, then the instructions beginning at the target address of that branch instruction are dispatched directly behind the branch instruction. In this manner, the fetch time of target instructions of a predicted taken branch instruction is reduced.Type: GrantFiled: July 20, 2008Date of Patent: November 16, 2010Assignee: International Business Machines CorporationInventors: Richard William Doing, Brett Olsson, Kenichi Tsuchiya
-
Publication number: 20100257340Abstract: Disclosed are a method and a system for grouping processor instructions for execution by a processor, where the group of processor instructions includes at least two branch processor instructions. In one or more embodiments, an instruction buffer can decouple an instruction fetch operation from an instruction decode operation by storing fetched processor instructions in the instruction buffer until the fetched processor instructions are ready to be decoded. Group formation can involve removing processor instructions from the instruction buffer and routing the processor instruction to latches that convey the processor instructions to decoders. Processor instructions that are removed from instruction buffer in a single clock cycle can be called a group of processor instructions. In one or more embodiments, the first instruction in the group must be the oldest instruction in the instruction buffer and instructions must be removed from the instruction buffer ordered from oldest to youngest.Type: ApplicationFiled: April 3, 2009Publication date: October 7, 2010Applicant: INTERNATIONAL BUISNESS MACHINES CORPORATIONInventors: Richard William Doing, Kevin Neal Magil, Balaram Sinharoy, Jeffrey R. Summers, James A. Van Norstrand, JR.
-
Publication number: 20080276071Abstract: A method and processor for reducing the fetch time of target instructions of a predicted taken branch instruction. Each entry in a buffer, referred to herein as a “branch target buffer”, may store an address of a branch instruction predicted taken and the instructions beginning at the target address of the branch instruction predicted taken. When an instruction is fetched from the instruction cache, a particular entry in the branch target buffer is indexed using particular bits of the fetched instruction. The address of the branch instruction in the indexed entry is compared with the address of the instruction fetched from the instruction cache. If there is a match, then the instructions beginning at the target address of that branch instruction are dispatched directly behind the branch instruction. In this manner, the fetch time of target instructions of a predicted taken branch instruction is reduced.Type: ApplicationFiled: July 20, 2008Publication date: November 6, 2008Applicant: International Business Machines CorporationInventors: Richard William Doing, Brett Olsson, Kenichi Tsuchiya
-
Publication number: 20080276070Abstract: A method and processor for reducing the fetch time of target instructions of a predicted taken branch instruction. Each entry in a buffer, referred to herein as a “branch target buffer”, may store an address of a branch instruction predicted taken and the instructions beginning at the target address of the branch instruction predicted taken. When an instruction is fetched from the instruction cache, a particular entry in the branch target buffer is indexed using particular bits of the fetched instruction. The address of the branch instruction in the indexed entry is compared with the address of the instruction fetched from the instruction cache. If there is a match, then the instructions beginning at the target address of that branch instruction are dispatched directly behind the branch instruction. In this manner, the fetch time of target instructions of a predicted taken branch instruction is reduced.Type: ApplicationFiled: July 20, 2008Publication date: November 6, 2008Applicant: International Business Machines CorporationInventors: Richard William Doing, Brett Olsson, Kenichi Tsuchiya
-
Patent number: 7437543Abstract: A method and processor for reducing the fetch time of target instructions of a predicted taken branch instruction. Each entry in a buffer, referred to herein as a “branch target buffer”, may store an address of a branch instruction predicted taken and the instructions beginning at the target address of the branch instruction predicted taken. When an instruction is fetched from the instruction cache, a particular entry in the branch target buffer is indexed using particular bits of the fetched instruction. The address of the branch instruction in the indexed entry is compared with the address of the instruction fetched from the instruction cache. If there is a match, then the instructions beginning at the target address of that branch instruction are dispatched directly behind the branch instruction. In this manner, the fetch time of target instructions of a predicted taken branch instruction is reduced.Type: GrantFiled: April 19, 2005Date of Patent: October 14, 2008Assignee: International Business Machines CorporationInventors: Richard William Doing, Brett Olsson, Kenichi Tsuchiya
-
Patent number: 7305586Abstract: A microprocessor includes an externally accessible port and a serial communication bus connected to the port. An execution pipeline of the processor includes a pipeline satellite circuit coupling the pipeline to the bus. The satellite enables an external agent to provide an instruction directly to the pipeline via the serial bus. A dedicated register and register satellite circuit couple the register to the communication bus. The execution pipeline can access the dedicated register during execution of the instruction. In this manner, the satellite circuits enable the external agent to access architected state. The communication bus enables access to the satellites while a system clock to the processor remains active. In one embodiment, the pipeline satellite accesses the pipeline “downstream” of the decode stage such that the set of instructions that may be “rammed” into the pipeline is not limited to the set of instructions that the decode stage can generate.Type: GrantFiled: April 25, 2003Date of Patent: December 4, 2007Assignee: International Business Machines CorporationInventors: Richard William Doing, Michael Stephen Floyd, Ronald Nick Kalla, John Wesley Ward, III
-
Patent number: 6993640Abstract: A processor supports logical partitioning of hardware resources including real address spaces of a computer system. An ultra-privileged supervisor process, called a hypervisor, regulates the logical partitions and can dynamically re-allocate resources. Preferably, the processor supports hardware multithreading, each thread independently capable of being in either hypervisor, supervisor, or problem state, and is capable of entering hypervisor state only upon occurrence of certain pre-defined events. A logical partition identifier is stored in a processor register, and can be altered by the processor only when in hypervisor state. Certain bus communications contain a logical partition identifier tag, and the processor ignores such communications if the tag does not match its own logical partition identifier in its register.Type: GrantFiled: September 23, 2004Date of Patent: January 31, 2006Assignee: International Business Machines CorporationInventors: Richard William Doing, Ronald Nick Kalla, Stephen Joseph Schwinn, Edward John Silha, Kenichi Tsuchiya
-
Patent number: 6829684Abstract: A real address range check mechanism verifies real addresses generated in a computer system which translates real addresses from effective addresses, some of the effective addresses being real addresses not requiring translation. The system has at least two operating modes. In one mode, the range checking mechanism generates an error signal responsive to detecting a real address outside a predetermined range, and in the other operating mode no error signal is generated. Preferably, the computer system's hardware resources, including real address space, is logically partitioned, partitioning being managed by an ultra-privileged process called a hypervisor. Preferably, the processor supports hardware multithreading, each thread independently capable of being in either hypervisor, supervisor, or problem state, real address range checking error signals being disabled in the hypervisor state.Type: GrantFiled: June 20, 2002Date of Patent: December 7, 2004Assignee: International Business Machines CorporationInventors: Richard William Doing, Ronald Nick Kalla, Stephen Joseph Schwinn, Edward John Silha, Kenichi Tsuchiya
-
Publication number: 20040225917Abstract: A microprocessor includes an externally accessible port and a serial communication bus connected to the port. An execution pipeline of the processor includes a pipeline satellite circuit coupling the pipeline to the bus. The satellite enables an external agent to provide an instruction directly to the pipeline via the serial bus. A dedicated register and register satellite circuit couple the register to the communication bus. The execution pipeline can access the dedicated register during execution of the instruction. In this manner, the satellite circuits enable the external agent to access architected state. The communication bus enables access to the satellites while a system clock to the processor remains active. In one embodiment, the pipeline satellite accesses the pipeline “downstream” of the decode stage such that the set of instructions that may be “rammed” into the pipeline is not limited to the set of instructions that the decode stage can generate.Type: ApplicationFiled: April 25, 2003Publication date: November 11, 2004Applicant: International Business Machines CorporationInventors: Richard William Doing, Michael Stephen Floyd, Ronald Nick Kalla, John Wesley Ward
-
Publication number: 20030009648Abstract: A processor supports logical partitioning of hardware resources including real address spaces of a computer system. An ultra-privileged supervisor process, called a hypervisor, regulates the logical partitions and can dynamically re-allocate resources. Preferably, the processor supports hardware multithreading, each thread independently capable of being in either hypervisor, supervisor, or problem state. The processor assigns certain generated addresses to its logical partition, preferably by concatenating certain high order bits from a special register with lower order bits of the generated address. A separate range check mechanism concurrently verifies that these high order effective address bits are in fact 0, and generates an error signal if they are not.Type: ApplicationFiled: June 20, 2002Publication date: January 9, 2003Applicant: International Business Machines CorporationInventors: Richard William Doing, Ronald Nick Kalla, Stephen Joseph Schwinn, Edward John Silha, Kenichi Tsuchiya