Patents by Inventor Guy L. Guthrie
Guy L. Guthrie 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).
-
Patent number: 9396127Abstract: In some embodiments, in response to execution of a load-reserve instruction that binds to a load target address held in a store-through upper level cache, a processor core sets a core reservation flag, transmits a load-reserve operation to a store-in lower level cache, and tracks, during a core reservation tracking interval, the reservation requested by the load-reserve operation until the store-in lower level cache signals that the store-in lower level cache has assumed responsibility for tracking the reservation. In response to receipt during the core reservation tracking interval of an invalidation signal indicating presence of a conflicting snooped operation, the processor core cancels the reservation by resetting the core reservation flag and fails a subsequent store-conditional operation.Type: GrantFiled: February 27, 2014Date of Patent: July 19, 2016Assignee: International Business Machines CorporationInventors: Guy L. Guthrie, Hugh Shen, Derek E. Williams
-
Patent number: 9396115Abstract: In a multiprocessor data processing system having a distributed shared memory system, a memory transaction that is a rewind-only transaction (ROT) and that includes one or more transactional memory access instructions and a transactional abort instruction is executed. In response to execution of the one or more transactional memory access instructions, one or more memory accesses to the distributed shared memory system indicated by the one or more transactional memory access instructions are performed. In response to execution of the transactional abort instruction, execution results of the one or more transaction memory access instructions are discarded and control is passed to a fail handler.Type: GrantFiled: October 12, 2012Date of Patent: July 19, 2016Assignee: International Business Machines CorporationInventors: Robert J. Blainey, Bradly G. Frey, Guy L. Guthrie, Cathy May, Derek E. Williams
-
Patent number: 9390024Abstract: In response to receipt of a store-conditional (STCX) request of a processor core, the STCX request is buffered in an entry of a store queue for eventual service by a read-claim (RC) machine by reference to a cache array, and the STCX request is concurrently transmitted via a bypass path bypassing the store queue. In response to dispatch logic dispatching the STCX request transmitted via the bypass path to the RC machine for service by reference to the cache array, the entry of the STCX request in the store queue is updated to prohibit selection of the STCX request in the store queue for service. In response to the STCX request transmitted via the bypass path not being dispatched by the dispatch logic, the STCX is thereafter transmitted from the store queue to the dispatch logic and dispatched to the RC machine for service by reference to the cache array.Type: GrantFiled: June 23, 2014Date of Patent: July 12, 2016Assignee: International Business Machines CorporationInventors: Sanjeev Ghai, Guy L Guthrie, Hugh Shen, Derek E. Williams
-
Patent number: 9390026Abstract: In some embodiments, in response to execution of a load-reserve instruction that binds to a load target address held in a store-through upper level cache, a processor core sets a core reservation flag, transmits a load-reserve operation to a store-in lower level cache, and tracks, during a core reservation tracking interval, the reservation requested by the load-reserve operation until the store-in lower level cache signals that the store-in lower level cache has assumed responsibility for tracking the reservation. In response to receipt during the core reservation tracking interval of an invalidation signal indicating presence of a conflicting snooped operation, the processor core cancels the reservation by resetting the core reservation flag and fails a subsequent store-conditional operation.Type: GrantFiled: September 15, 2014Date of Patent: July 12, 2016Assignee: International Business Machines CorporationInventors: Guy L. Guthrie, Hugh Shen, Derek E. Williams
-
Publication number: 20160179591Abstract: A processor core of a data processing system receives a push instruction of a sending thread that requests that a message payload identified by at least one operand of the push instruction be pushed to a mailbox of a receiving thread. In response to receiving the push instruction, the processor core executes the push instruction of the sending thread. In response to executing the push instruction, the processor core initiates transmission of the message payload to the mailbox of the receiving thread. In one embodiment, the processor core initiates transmission of the message payload by transmitting a co-processor request to a switch of the data processing system via an interconnect fabric.Type: ApplicationFiled: December 23, 2014Publication date: June 23, 2016Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: LAKSHMINARAYANA B. ARIMILLI, BERNARD C. DRERUP, BRADLY G. FREY, GUY L. GUTHRIE, JOHN D. IRISH, WILLIAM J. STARKE, JEFFREY A. STUECHELI
-
Publication number: 20160179517Abstract: In at least some embodiments, a processor core executes a sending thread including a first push instruction and a second push instruction subsequent to the first push instruction in a program order. Each of the first and second push instructions requests that a respective message payload be pushed to a mailbox of a receiving thread. In response to executing the first and second push instructions, the processor core transmits respective first and second co-processor requests to a switch in the data processing system via an interconnect fabric of the data processing system. The processor core transmits the second co-processor request to the switch without regard to acceptance of the first co-processor request by the switch.Type: ApplicationFiled: December 23, 2014Publication date: June 23, 2016Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: LAKSHMINARAYANA B. ARIMILLI, BERNARD C. DRERUP, GUY L. GUTHRIE, JOHN D. IRISH, WILLIAM J. STARKE, JEFFREY A. STUECHELI
-
Publication number: 20160179593Abstract: A processor core of a data processing system receives a push instruction of a sending thread that requests that a message payload identified by at least one operand of the push instruction be pushed to a mailbox of a receiving thread. In response to receiving the push instruction, the processor core executes the push instruction of the sending thread. In response to executing the push instruction, the processor core initiates transmission of the message payload to the mailbox of the receiving thread. In one embodiment, the processor core initiates transmission of the message payload by transmitting a co-processor request to a switch of the data processing system via an interconnect fabric.Type: ApplicationFiled: June 8, 2015Publication date: June 23, 2016Inventors: LAKSHMINARAYANA B. ARIMILLI, BERNARD C. DRERUP, BRADLY G. FREY, GUY L. GUTHRIE, JOHN D. IRISH, WILLIAM J. STARKE, JEFFREY A. STUECHELI
-
Publication number: 20160179518Abstract: In at least some embodiments, a processor core executes a sending thread including a first push instruction and a second push instruction subsequent to the first push instruction in a program order. Each of the first and second push instructions requests that a respective message payload be pushed to a mailbox of a receiving thread. In response to executing the first and second push instructions, the processor core transmits respective first and second co-processor requests to a switch in the data processing system via an interconnect fabric of the data processing system. The processor core transmits the second co-processor request to the switch without regard to acceptance of the first co-processor request by the switch.Type: ApplicationFiled: June 8, 2015Publication date: June 23, 2016Inventors: LAKSHMINARAYANA B. ARIMILLI, BERNARD C. DRERUP, GUY L. GUTHRIE, JOHN D. IRISH, WILLIAM J. STARKE, JEFFREY A. STUECHELI
-
Patent number: 9372797Abstract: Statistical data is used to enable or disable snooping on a bus of a processor. A command is received via a first bus or a second bus communicably coupling processor cores and caches of chiplets on the processor. Cache logic on a chiplet determines whether or not a local cache on the chiplet can satisfy a request for data specified in the command. In response to determining that the local cache can satisfy the request for data, the cache logic updates statistical data maintained on the chiplet. The statistical data indicates a probability that the local cache can satisfy a future request for data. Based at least in part on the statistical data, the cache logic determines whether to enable or disable snooping on the second bus by the local cache.Type: GrantFiled: February 10, 2014Date of Patent: June 21, 2016Assignee: International Business Machines CorporationInventors: Guy L. Guthrie, Hien M. Le, Hugh Shen, Derek E. Williams, Phillip G. Williams
-
Patent number: 9367505Abstract: One or more systems, devices, methods, and/or processes described can receive, via an interconnect, messages from processing nodes, and a first portion of the messages can displace a second portion of the messages based on priorities of the first portion of messages or based on expirations times of the second portion of messages. In one example, the second portion of messages can be stored via a buffer of a fabric controller (FBC) of the interconnect, and the first portion of messages, associated with higher priorities than the second portion of messages, can displace the second portion of messages in the buffer. For instance, the second portion of messages can include speculative commands. In another example, the second portion of messages can be stored via the buffer, and the second portion of messages, associated with expiration times, can displace the second portion of messages based on the expiration times.Type: GrantFiled: June 23, 2014Date of Patent: June 14, 2016Assignee: International Business Machines CorporationInventors: Guy L. Guthrie, Charles F. Marino, Michael S. Siegel, William J. Starke, Jeffrey A. Stuecheli
-
Patent number: 9367264Abstract: A processing unit of a data processing system having a shared memory system executes a memory transaction including a transactional store instruction that causes a processing unit of the data processing system to make a conditional update to a target memory block of the shared memory system conditioned on successful commitment of the memory transaction. The memory transaction further includes a transaction check instruction. In response to executing the transaction check instruction, the processing unit determines, prior to conclusion of the memory transaction, whether the target memory block of the shared memory system was modified after the conditional update caused by execution of the transactional store instruction. In response to determining that the target memory block has been modified, a condition register within the processing unit is set to indicate a conflict for the memory transaction.Type: GrantFiled: February 26, 2013Date of Patent: June 14, 2016Assignee: International Business Machines CorporationInventors: Bradly G. Frey, Guy L. Guthrie, Cathy May, Derek E. Williams
-
Patent number: 9367263Abstract: A processing unit of a data processing system having a shared memory system executes a memory transaction including a transactional store instruction that causes a processing unit of the data processing system to make a conditional update to a target memory block of the shared memory system conditioned on successful commitment of the memory transaction. The memory transaction further includes a transaction check instruction. In response to executing the transaction check instruction, the processing unit determines, prior to conclusion of the memory transaction, whether the target memory block of the shared memory system was modified after the conditional update caused by execution of the transactional store instruction. In response to determining that the target memory block has been modified, a condition register within the processing unit is set to indicate a conflict for the memory transaction.Type: GrantFiled: October 22, 2012Date of Patent: June 14, 2016Assignee: International Business Machines CorporationInventors: Bradly G. Frey, Guy L. Guthrie, Cathy May, Derek E. Williams
-
Patent number: 9367504Abstract: One or more systems, devices, methods, and/or processes described can receive, via an interconnect, messages from processing nodes and a first portion of the messages can displace a second portion of the messages based on priorities of the first portion of messages or based on expirations times of the second portion of messages. In one example, the second portion of messages can be stored via a buffer of a fabric controller (FBC) of the interconnect, and the first portion of messages, associated with higher priorities than the second portion of messages, can displace the second portion of messages in the buffer. For instance, the second portion of messages can include speculative commands. In another example, the second portion of messages can be stored via the buffer, and the second portion of messages, associated with expiration times, can displace the second portion of messages based on the expiration times.Type: GrantFiled: December 20, 2013Date of Patent: June 14, 2016Assignee: International Business Machines CorporationInventors: Guy L. Guthrie, Charles F. Marino, Michael S. Siegel, William J. Starke, Jeffrey A. Stuecheli
-
Patent number: 9367348Abstract: A processing unit includes a processor core and a cache memory. Entries in the cache memory are grouped in multiple congruence classes. The cache memory includes tracking logic that tracks a transaction footprint including cache line(s) accessed by transactional memory access request(s) of a memory transaction. The cache memory, responsive to receiving a memory access request that specifies a target cache line having a target address that maps to a congruence class, forms a working set of ways in the congruence class containing cache line(s) within the transaction footprint and updates a replacement order of the cache lines in the congruence class. Based on membership of the at least one cache line in the working set, the update promotes at least one cache line that is not the target cache line to a replacement order position in which the at least one cache line is less likely to be replaced.Type: GrantFiled: August 15, 2013Date of Patent: June 14, 2016Assignee: GLOBALFOUNDRIES INC.Inventors: Sanjeev Ghai, Guy L. Guthrie, Jonathan R. Jackson, Derek E. Williams
-
Patent number: 9342454Abstract: In a multiprocessor data processing system having a distributed shared memory system, first and second nested memory transactions are executed, where the first memory transaction is a rewind-only transaction (ROT) and the second memory transaction is a non-ROT memory transaction. The first memory transaction has a transaction body including the second memory transaction and an additional plurality of transactional memory access instructions. In response to execution of the transactional memory access instructions, memory accesses are performed to the distributed shared memory system. Conflicts between memory accesses not within the first memory transaction and at least a load footprint of any of the transactional memory access instructions preceding the second memory transaction are not tracked.Type: GrantFiled: October 12, 2012Date of Patent: May 17, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Bradly G. Frey, Guy L. Guthrie, Cathy May, Derek E. Williams
-
Patent number: 9323702Abstract: In the verification of an integrated circuit design having arbitration logic which controls access from a plurality of requesters to a shared resource, an arbitration stall simulation mechanism selects one or more of the requesters for an extended stall procedure, and when a global counter expires, applies stalls having controlled durations to the selected requesters. The controlled durations can be randomly generated time periods within a preset range. The number of requesters subjected to the extended stall procedure can be randomly selected based on a predetermined percentage of requesters to stall. Local (requester-specific) code can perform the stalls for respective requesters using a stall duration inputs. The requester-specific codes can carry out the stalls using application program interface calls to override respective arbiter inputs from the requesters.Type: GrantFiled: November 27, 2012Date of Patent: April 26, 2016Assignee: International Business Machines CorporationInventors: David W. Cummings, Jonathan R. Jackson, Guy L. Guthrie
-
Patent number: 9304936Abstract: In response to receipt of a store-conditional (STCX) request of a processor core, the STCX request is buffered in an entry of a store queue for eventual service by a read-claim (RC) machine by reference to a cache array, and the STCX request is concurrently transmitted via a bypass path bypassing the store queue. In response to dispatch logic dispatching the STCX request transmitted via the bypass path to the RC machine for service by reference to the cache array, the entry of the STCX request in the store queue is updated to prohibit selection of the STCX request in the store queue for service. In response to the STCX request transmitted via the bypass path not being dispatched by the dispatch logic, the STCX is thereafter transmitted from the store queue to the dispatch logic and dispatched to the RC machine for service by reference to the cache array.Type: GrantFiled: December 9, 2013Date of Patent: April 5, 2016Assignee: International Business Machines CorporationInventors: Sanjeev Ghai, Guy L. Guthrie, Hugh Shen, Derek E. Williams
-
Publication number: 20160062891Abstract: In response to a transactional store request, the higher level cache transmits, to the lower level cache, a backup copy of an unaltered target cache line in response to a target real address hitting in the higher level cache, updates the target cache line with store data to obtain an updated target cache line, and records the target real address as belonging to a transaction footprint of the memory transaction. In response to a conflicting access to the transaction footprint prior to completion of the memory transaction, the higher level cache signals failure of the memory transaction to the processor core, invalidates the updated target cache line in the higher level cache, and causes the backup copy of the target cache line in the lower level cache to be restored as a current version of the target cache line.Type: ApplicationFiled: August 29, 2014Publication date: March 3, 2016Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: GUY L. GUTHRIE, HIEN M. LE, WILLIAM J. STARKE, DEREK E. WILLIAMS, PHILLIP G. WILLIAMS
-
Publication number: 20160062892Abstract: In response to a transactional store request, the higher level cache transmits, to the lower level cache, a backup copy of an unaltered target cache line in response to a target real address hitting in the higher level cache, updates the target cache line with store data to obtain an updated target cache line, and records the target real address as belonging to a transaction footprint of the memory transaction. In response to a conflicting access to the transaction footprint prior to completion of the memory transaction, the higher level cache signals failure of the memory transaction to the processor core, invalidates the updated target cache line in the higher level cache, and causes the backup copy of the target cache line in the lower level cache to be restored as a current version of the target cache line.Type: ApplicationFiled: October 24, 2014Publication date: March 3, 2016Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: GUY L. GUTHRIE, HIEN M. LE, WILLIAM J. STARKE, DEREK E. WILLIAMS, PHILLIP G. WILLIAMS
-
Patent number: 9274856Abstract: A technique for processing an instruction sequence that includes a barrier instruction, a load instruction preceding the barrier instruction, and a subsequent memory access instruction following the barrier instruction includes determining, by a processor core, that the load instruction is resolved based upon receipt by the processor core of an earliest of a good combined response for a read operation corresponding to the load instruction and data for the load instruction. The technique also includes if execution of the subsequent memory access instruction is not initiated prior to completion of the barrier instruction, initiating by the processor core, in response to determining the barrier instruction completed, execution of the subsequent memory access instruction.Type: GrantFiled: November 28, 2012Date of Patent: March 1, 2016Assignee: International Business Machines CorporationInventors: Guy L. Guthrie, William J Starke, Derek E Williams